{"version":3,"file":"verben-workflow-ui-src-lib-services.mjs","sources":["../../../projects/verben-workflow-ui/src/lib/services/environment.service.ts","../../../projects/verben-workflow-ui/src/lib/services/http-web-request.service.ts","../../../projects/verben-workflow-ui/src/lib/services/util.service.ts","../../../projects/verben-workflow-ui/src/lib/services/label.service.ts","../../../projects/verben-workflow-ui/src/lib/services/verben-workflow-ui-src-lib-services.ts"],"sourcesContent":["// In your library's services/environment.service.ts\nimport { Injectable, InjectionToken, Inject } from '@angular/core';\n// import { ENVIRONMENT } from '../models/ENVIRONMENT_TOKEN';\n\nexport const ENVIRONMENT = new InjectionToken<Environment>('environment');\n\nexport interface Environment {\n  production: boolean;\n  ReportingAPI: string;\n  MessagingAPI: string;\n  WorkFlowAPI: string;\n  AuthAPI: string;\n  GLAPI: string;\n  APIKey:string,\n  Secret:string,\n  FILE_BASE_URL:string,\n  FILE_URL:string,\n  Token: string,\n}\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class EnvironmentService {\n  constructor(@Inject(ENVIRONMENT) private env: Environment) {\n    console.log('Instantiated');\n  }\n\n  get environment(): Environment {\n    return this.env;\n  }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { NotificationService } from 'verben-ng-ui';\nimport { ErrorResponse } from 'verben-workflow-ui/src/lib/models';\nimport { EnvironmentService } from './environment.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class HttpWebRequestService {\n  isProd: boolean;\n\n  constructor(\n    private http: HttpClient,\n    private envSvc: EnvironmentService,\n    private notificationService: NotificationService\n  ) {\n    this.isProd = this.envSvc.environment.production;\n  }\n\n  private buildHeaders(ovverideToken: string | null = null): { [header: string]: string | string[] } {\n    const customToken = this.envSvc.environment.Token;\n    return customToken ? {\n      'Content-Type': 'application/json',\n      'X-Custom-Auth': customToken,\n      Authorization: customToken,\n    } : {\n      'Content-Type': 'application/json',\n      Authorization:\n        'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJNYWlsQWRkcmVzcyI6InZlcmJlbmFAZ21haWwuY29tIiwiQXBwbGljYXRpb24iOiIiLCJOYW1lIjoiVmVyYmVuYSBMb2dpYyBMaW1pdGVkIiwiUm9sZUlEIjoiUk9MLVpYQVhYVCIsIlRlbmFudElkIjoiUERMVEM2IiwiU2VydmljZU5hbWUiOiJXaGl0ZTM2MCIsIkNvbXBhbnkiOiJDT00tNkxJNjNIIiwibmJmIjoxNzYyOTM2NDEzLCJleHAiOjE3NjMxNTI0MTMsImlhdCI6MTc2MjkzNjQxM30.eRVY1O1tch0-2ysXfhwW8G-kOlRAg-oOd-Oo8UYUx9g',\n    };\n  }\n\n  private buildUrl(url: string, baseUrl: string): string {\n    return `${baseUrl}/${url}`;\n  }\n\n  private handleError(err: any): ErrorResponse {\n    const msg =\n      err?.ErrorMsg ||\n      (err?.errors?.values as string[])?.toString() ||\n      `Error occurred`;\n    this.notificationService.error(msg, { timeout: 10000 }); h:\n    return new ErrorResponse(msg);\n  }\n\n  private request<T>(\n    method: 'GET' | 'POST' | 'PUT' | 'DELETE',\n    url: string,\n    body?: any,\n    overrideToken?: string,\n    baseUrl: string = this.envSvc.environment.WorkFlowAPI\n  ): Promise<T> | Observable<T> {\n    const options = {\n      headers: this.buildHeaders(overrideToken),\n    };\n\n    const requestUrl = this.buildUrl(url, baseUrl);\n\n    switch (method) {\n      case 'GET':\n        return new Promise((resolve) =>\n          this.http.get<T>(requestUrl, options).subscribe({\n            next: resolve,\n            error: (err) => resolve(this.handleError(err) as T),\n          })\n        );\n      case 'POST':\n        return new Promise((resolve) =>\n          this.http.post<T>(requestUrl, body, options).subscribe({\n            next: resolve,\n            error: (err) => resolve(this.handleError(err) as T),\n          })\n        );\n      case 'PUT':\n        return this.http.put<T>(requestUrl, body, options);\n      case 'DELETE':\n        return this.http.delete<T>(requestUrl, options);\n    }\n  }\n\n  get<T>(url: string, baseUrl?: string, overrideToken?: string): Promise<T> {\n    return this.request('GET', url, undefined, overrideToken, baseUrl) as Promise<T>;\n  }\n\n  post<T>(url: string, body: any, overrideToken?: string, baseUrl?: string): Promise<T> {\n    return this.request(\n      'POST',\n      url,\n      JSON.stringify(body),\n      overrideToken,\n      baseUrl\n    ) as Promise<T>;\n  }\n\n  postFile<T>(url: string, formData: FormData, baseUrl?: string): Promise<T> {\n    return new Promise((resolve) =>\n      this.http\n        .post<T>(\n          this.buildUrl(url, baseUrl || this.envSvc.environment.WorkFlowAPI),\n          formData\n        )\n        .subscribe({\n          next: resolve,\n          error: (err) => resolve(this.handleError(err) as T),\n        })\n    );\n  }\n\n  put<T>(url: string, body: any, baseUrl?: string, overrideToken?: string): Observable<T> {\n    return this.request('PUT', url, body, overrideToken, baseUrl) as Observable<T>;\n  }\n\n  delete<T>(url: string, baseUrl?: string, overrideToken?: string): Observable<T> {\n    return this.request('DELETE', url, undefined, overrideToken, baseUrl) as Observable<T>;\n  }\n}\n","import {\n  Inject,\n  Injectable,\n  Optional\n} from '@angular/core';\nimport { UTIL_SERVICE } from 'verben-ng-ui';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class UtilService {\n  constructor(\n    @Optional()\n    @Inject(UTIL_SERVICE)\n    private parentUtilService: any\n  ) { }\n\n  sendBI(state: boolean): void {\n    console.log({ Service: this.parentUtilService });\n    if (this.parentUtilService && this.parentUtilService.sendBI) {\n      this.parentUtilService.sendBI(state);\n    } else {\n      console.warn('Util Service is not provided');\n    }\n  }\n  showInfo(message: string): void {\n    if (this.parentUtilService && this.parentUtilService.showInfo) {\n      this.parentUtilService.showInfo(message);\n    } else {\n      console.warn('Util Service is not provided');\n    }\n  }\n  showSuccess(message: string): void {\n    if (this.parentUtilService && this.parentUtilService.showSuccess) {\n      this.parentUtilService.showSuccess(message);\n    } else {\n      console.warn('Util Service is not provided');\n    }\n  }\n  showError(message: string): void {\n    if (this.parentUtilService && this.parentUtilService.showError) {\n      this.parentUtilService.showError(message);\n    } else {\n      console.warn('Util Service is not provided');\n    }\n  }\n\n  openFullRouteInNewWindow(url: string): void {\n    if (\n      this.parentUtilService &&\n      this.parentUtilService.openFullRouteInNewWindow\n    ) {\n      this.parentUtilService.openFullRouteInNewWindow(url);\n    } else {\n      console.warn('Util Service is not provided');\n    }\n  }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpWebRequestService } from './http-web-request.service';\nimport { SearchDynamicWrapper } from 'verben-workflow-ui/src/lib/models';\nimport { SearchOperator } from 'verben-workflow-ui/src/lib/models';\nimport { SearchPropertySign } from 'verben-workflow-ui/src/lib/models';\nimport { ErrorResponse } from 'verben-workflow-ui/src/lib/models';\nimport { PagedResult } from 'verben-workflow-ui/src/lib/models';\nimport { Observable, of } from 'rxjs';\nimport { UtilService } from './util.service';\n\n@Injectable({\n  providedIn: 'root',\n})\nexport class LabelService {\n  private cache = new Map<string, string>();\n  private inFlightRequests = new Map<string, Promise<string>>();\n\n  constructor(\n    private utilService: UtilService,\n    private server: HttpWebRequestService\n  ) {}\n\n  async getAsyncLabel(\n    value: any,\n    entity: string,\n    labelProp: string,\n    env: string,\n    key: string = 'Code'\n  ): Promise<string> {\n    const cacheKey = `${entity}_${labelProp}_${value}_${env}_${key}`;\n\n    if (this.cache.has(cacheKey)) {\n      const value = this.cache.get(cacheKey)!;\n      return value;\n    }\n\n    var payload: SearchDynamicWrapper = {\n      Fields: [labelProp],\n      SearchKeyValues: [\n        {\n          PropertyName: key,\n          EntityValue: value,\n          Operator: SearchOperator.And,\n          Sign: SearchPropertySign.EQ,\n        },\n      ],\n    };\n\n    this.utilService.sendBI(true);\n    const res = await this.server.post(\n      `SearchDynamic${entity}/0/1`,\n      payload,\n      env\n    );\n    this.utilService.sendBI(false);\n    if (res instanceof ErrorResponse) {\n      return '';\n    } else {\n      const result = (res as PagedResult<string>).Result;\n      const label = result.length > 0 ? result[0] : value;\n      this.cache.set(cacheKey, label);\n      return label;\n    }\n  }\n\n  async getAsyncLabelWithRequestTracking(\n    value: any,\n    entity: string,\n    labelProp: string,\n    env: string,\n    key: string = 'Code'\n  ): Promise<string> {\n    const cacheKey = `${entity}_${labelProp}_${value}_${env}_${key}`;\n\n    if (this.cache.has(cacheKey)) {\n      return this.cache.get(cacheKey)!;\n    }\n\n    if (this.inFlightRequests.has(cacheKey)) {\n      return this.inFlightRequests.get(cacheKey)!;\n    }\n\n    const requestPromise = (async () => {\n      const payload: SearchDynamicWrapper = {\n        Fields: [labelProp],\n        SearchKeyValues: [\n          {\n            PropertyName: key,\n            EntityValue: value,\n            Operator: SearchOperator.And,\n            Sign: SearchPropertySign.EQ,\n          },\n        ],\n      };\n\n      this.utilService.sendBI(true);\n      const res = await this.server.post(\n        `SearchDynamic${entity}/0/1`,\n        payload,\n        env\n      );\n      this.utilService.sendBI(false);\n\n      let label: string;\n      if (res instanceof ErrorResponse) {\n        label = '';\n      } else {\n        const result = (res as PagedResult<string>).Result;\n        label = result.length > 0 ? result[0] : value;\n      }\n\n      this.cache.set(cacheKey, label);\n      this.inFlightRequests.delete(cacheKey);\n\n      return label;\n    })();\n\n    // Save the in-flight request\n    this.inFlightRequests.set(cacheKey, requestPromise);\n\n    return requestPromise;\n  }\n\n  async getAsyncLabelWithRequestTrackingNoGateway(\n    value: any,\n    entity: string,\n    labelProp: string,\n    env: string,\n    controller: string,\n    key: string = 'Code'\n  ): Promise<string> {\n    const cacheKey = `${entity}_${labelProp}_${value}_${env}_${key}_${controller}`;\n\n    if (this.cache.has(cacheKey)) {\n      return this.cache.get(cacheKey)!;\n    }\n\n    if (this.inFlightRequests.has(cacheKey)) {\n      return this.inFlightRequests.get(cacheKey)!;\n    }\n\n    const requestPromise = (async () => {\n      const payload: SearchDynamicWrapper = {\n        Fields: [labelProp],\n        SearchKeyValues: [\n          {\n            PropertyName: key,\n            EntityValue: value,\n            Operator: SearchOperator.And,\n            Sign: SearchPropertySign.EQ,\n          },\n        ],\n      };\n\n      this.utilService.sendBI(true);\n      const res = await this.server.post(\n        `${controller}/SearchDynamic${entity}s/0/1`,\n        payload,\n        env\n      );\n      this.utilService.sendBI(false);\n\n      let label: string;\n      if (res instanceof ErrorResponse) {\n        label = '';\n      } else {\n        const result = (res as PagedResult<string>).Result;\n        label = result.length > 0 ? result[0] : value;\n      }\n\n      this.cache.set(cacheKey, label);\n      this.inFlightRequests.delete(cacheKey);\n\n      return label;\n    })();\n\n    // Save the in-flight request\n    this.inFlightRequests.set(cacheKey, requestPromise);\n\n    return requestPromise;\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.EnvironmentService","i1.UtilService","i2.HttpWebRequestService"],"mappings":";;;;;;;AAAA;AAEA;MAEa,WAAW,GAAG,IAAI,cAAc,CAAc,aAAa,EAAE;MAmB7D,kBAAkB,CAAA;AACY,IAAA,GAAA,CAAA;AAAzC,IAAA,WAAA,CAAyC,GAAgB,EAAA;QAAhB,IAAG,CAAA,GAAA,GAAH,GAAG,CAAa;AACvD,QAAA,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;KAC7B;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,GAAG,CAAC;KACjB;AAPU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBACT,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AADpB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAEc,MAAM;2BAAC,WAAW,CAAA;;;MCdpB,qBAAqB,CAAA;AAItB,IAAA,IAAA,CAAA;AACA,IAAA,MAAA,CAAA;AACA,IAAA,mBAAA,CAAA;AALV,IAAA,MAAM,CAAU;AAEhB,IAAA,WAAA,CACU,IAAgB,EAChB,MAA0B,EAC1B,mBAAwC,EAAA;QAFxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QAChB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAoB;QAC1B,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAqB;QAEhD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,UAAU,CAAC;KAClD;IAEO,YAAY,CAAC,gBAA+B,IAAI,EAAA;QACtD,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;QAClD,OAAO,WAAW,GAAG;AACnB,YAAA,cAAc,EAAE,kBAAkB;AAClC,YAAA,eAAe,EAAE,WAAW;AAC5B,YAAA,aAAa,EAAE,WAAW;AAC3B,SAAA,GAAG;AACF,YAAA,cAAc,EAAE,kBAAkB;AAClC,YAAA,aAAa,EACX,8XAA8X;SACjY,CAAC;KACH;IAEO,QAAQ,CAAC,GAAW,EAAE,OAAe,EAAA;AAC3C,QAAA,OAAO,CAAG,EAAA,OAAO,CAAI,CAAA,EAAA,GAAG,EAAE,CAAC;KAC5B;AAEO,IAAA,WAAW,CAAC,GAAQ,EAAA;AAC1B,QAAA,MAAM,GAAG,GACP,GAAG,EAAE,QAAQ;AACZ,YAAA,GAAG,EAAE,MAAM,EAAE,MAAmB,EAAE,QAAQ,EAAE;AAC7C,YAAA,CAAA,cAAA,CAAgB,CAAC;AACnB,QAAA,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAAC,QAAA,CAAC,EAC1D,OAAO,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;KAC/B;AAEO,IAAA,OAAO,CACb,MAAyC,EACzC,GAAW,EACX,IAAU,EACV,aAAsB,EACtB,OAAA,GAAkB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,EAAA;AAErD,QAAA,MAAM,OAAO,GAAG;AACd,YAAA,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC;SAC1C,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QAE/C,QAAQ,MAAM;AACZ,YAAA,KAAK,KAAK;gBACR,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KACzB,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC;AAC9C,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,KAAK,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAM,CAAC;AACpD,iBAAA,CAAC,CACH,CAAC;AACJ,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAI,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,CAAC;AACrD,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,KAAK,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAM,CAAC;AACpD,iBAAA,CAAC,CACH,CAAC;AACJ,YAAA,KAAK,KAAK;AACR,gBAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,UAAU,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AACrD,YAAA,KAAK,QAAQ;gBACX,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAI,UAAU,EAAE,OAAO,CAAC,CAAC;SACnD;KACF;AAED,IAAA,GAAG,CAAI,GAAW,EAAE,OAAgB,EAAE,aAAsB,EAAA;AAC1D,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,CAAe,CAAC;KAClF;AAED,IAAA,IAAI,CAAI,GAAW,EAAE,IAAS,EAAE,aAAsB,EAAE,OAAgB,EAAA;AACtE,QAAA,OAAO,IAAI,CAAC,OAAO,CACjB,MAAM,EACN,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EACpB,aAAa,EACb,OAAO,CACM,CAAC;KACjB;AAED,IAAA,QAAQ,CAAI,GAAW,EAAE,QAAkB,EAAE,OAAgB,EAAA;QAC3D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KACzB,IAAI,CAAC,IAAI;AACN,aAAA,IAAI,CACH,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,WAAW,CAAC,EAClE,QAAQ,CACT;AACA,aAAA,SAAS,CAAC;AACT,YAAA,IAAI,EAAE,OAAO;AACb,YAAA,KAAK,EAAE,CAAC,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAM,CAAC;AACpD,SAAA,CAAC,CACL,CAAC;KACH;AAED,IAAA,GAAG,CAAI,GAAW,EAAE,IAAS,EAAE,OAAgB,EAAE,aAAsB,EAAA;AACrE,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,CAAkB,CAAC;KAChF;AAED,IAAA,MAAM,CAAI,GAAW,EAAE,OAAgB,EAAE,aAAsB,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,CAAkB,CAAC;KACxF;wGA1GU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAArB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,cAFpB,MAAM,EAAA,CAAA,CAAA;;4FAEP,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAHjC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCCY,WAAW,CAAA;AAIZ,IAAA,iBAAA,CAAA;AAHV,IAAA,WAAA,CAGU,iBAAsB,EAAA;QAAtB,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAK;KAC3B;AAEL,IAAA,MAAM,CAAC,KAAc,EAAA;QACnB,OAAO,CAAC,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACjD,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE;AAC3D,YAAA,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACtC;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC9C;KACF;AACD,IAAA,QAAQ,CAAC,OAAe,EAAA;QACtB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE;AAC7D,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;SAC1C;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC9C;KACF;AACD,IAAA,WAAW,CAAC,OAAe,EAAA;QACzB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE;AAChE,YAAA,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;SAC7C;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC9C;KACF;AACD,IAAA,SAAS,CAAC,OAAe,EAAA;QACvB,IAAI,IAAI,CAAC,iBAAiB,IAAI,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE;AAC9D,YAAA,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;SAC3C;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC9C;KACF;AAED,IAAA,wBAAwB,CAAC,GAAW,EAAA;QAClC,IACE,IAAI,CAAC,iBAAiB;AACtB,YAAA,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,EAC/C;AACA,YAAA,IAAI,CAAC,iBAAiB,CAAC,wBAAwB,CAAC,GAAG,CAAC,CAAC;SACtD;aAAM;AACL,YAAA,OAAO,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;SAC9C;KACF;AA9CU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,kBAGZ,YAAY,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAHX,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,QAAQ;;0BACR,MAAM;2BAAC,YAAY,CAAA;;;MCAX,YAAY,CAAA;AAKb,IAAA,WAAA,CAAA;AACA,IAAA,MAAA,CAAA;AALF,IAAA,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;AAClC,IAAA,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAE9D,WACU,CAAA,WAAwB,EACxB,MAA6B,EAAA;QAD7B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAuB;KACnC;AAEJ,IAAA,MAAM,aAAa,CACjB,KAAU,EACV,MAAc,EACd,SAAiB,EACjB,GAAW,EACX,GAAA,GAAc,MAAM,EAAA;AAEpB,QAAA,MAAM,QAAQ,GAAG,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,SAAS,CAAI,CAAA,EAAA,KAAK,CAAI,CAAA,EAAA,GAAG,CAAI,CAAA,EAAA,GAAG,EAAE,CAAC;QAEjE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;AACxC,YAAA,OAAO,KAAK,CAAC;SACd;AAED,QAAA,IAAI,OAAO,GAAyB;YAClC,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,YAAA,eAAe,EAAE;AACf,gBAAA;AACE,oBAAA,YAAY,EAAE,GAAG;AACjB,oBAAA,WAAW,EAAE,KAAK;oBAClB,QAAQ,EAAE,cAAc,CAAC,GAAG;oBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,iBAAA;AACF,aAAA;SACF,CAAC;AAEF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,QAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,CAAA,aAAA,EAAgB,MAAM,CAAM,IAAA,CAAA,EAC5B,OAAO,EACP,GAAG,CACJ,CAAC;AACF,QAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC/B,QAAA,IAAI,GAAG,YAAY,aAAa,EAAE;AAChC,YAAA,OAAO,EAAE,CAAC;SACX;aAAM;AACL,YAAA,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;AACnD,YAAA,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YACpD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAChC,YAAA,OAAO,KAAK,CAAC;SACd;KACF;AAED,IAAA,MAAM,gCAAgC,CACpC,KAAU,EACV,MAAc,EACd,SAAiB,EACjB,GAAW,EACX,GAAA,GAAc,MAAM,EAAA;AAEpB,QAAA,MAAM,QAAQ,GAAG,CAAG,EAAA,MAAM,CAAI,CAAA,EAAA,SAAS,CAAI,CAAA,EAAA,KAAK,CAAI,CAAA,EAAA,GAAG,CAAI,CAAA,EAAA,GAAG,EAAE,CAAC;QAEjE,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;SAClC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;SAC7C;AAED,QAAA,MAAM,cAAc,GAAG,CAAC,YAAW;AACjC,YAAA,MAAM,OAAO,GAAyB;gBACpC,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,gBAAA,eAAe,EAAE;AACf,oBAAA;AACE,wBAAA,YAAY,EAAE,GAAG;AACjB,wBAAA,WAAW,EAAE,KAAK;wBAClB,QAAQ,EAAE,cAAc,CAAC,GAAG;wBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,qBAAA;AACF,iBAAA;aACF,CAAC;AAEF,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,YAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,CAAA,aAAA,EAAgB,MAAM,CAAM,IAAA,CAAA,EAC5B,OAAO,EACP,GAAG,CACJ,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE/B,YAAA,IAAI,KAAa,CAAC;AAClB,YAAA,IAAI,GAAG,YAAY,aAAa,EAAE;gBAChC,KAAK,GAAG,EAAE,CAAC;aACZ;iBAAM;AACL,gBAAA,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;AACnD,gBAAA,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aAC/C;YAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEvC,YAAA,OAAO,KAAK,CAAC;SACd,GAAG,CAAC;;QAGL,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AAEpD,QAAA,OAAO,cAAc,CAAC;KACvB;AAED,IAAA,MAAM,yCAAyC,CAC7C,KAAU,EACV,MAAc,EACd,SAAiB,EACjB,GAAW,EACX,UAAkB,EAClB,MAAc,MAAM,EAAA;AAEpB,QAAA,MAAM,QAAQ,GAAG,CAAG,EAAA,MAAM,IAAI,SAAS,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA,EAAI,GAAG,CAAI,CAAA,EAAA,GAAG,CAAI,CAAA,EAAA,UAAU,EAAE,CAAC;QAE/E,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;SAClC;QAED,IAAI,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACvC,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;SAC7C;AAED,QAAA,MAAM,cAAc,GAAG,CAAC,YAAW;AACjC,YAAA,MAAM,OAAO,GAAyB;gBACpC,MAAM,EAAE,CAAC,SAAS,CAAC;AACnB,gBAAA,eAAe,EAAE;AACf,oBAAA;AACE,wBAAA,YAAY,EAAE,GAAG;AACjB,wBAAA,WAAW,EAAE,KAAK;wBAClB,QAAQ,EAAE,cAAc,CAAC,GAAG;wBAC5B,IAAI,EAAE,kBAAkB,CAAC,EAAE;AAC5B,qBAAA;AACF,iBAAA;aACF,CAAC;AAEF,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC9B,YAAA,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAChC,GAAG,UAAU,CAAA,cAAA,EAAiB,MAAM,CAAO,KAAA,CAAA,EAC3C,OAAO,EACP,GAAG,CACJ,CAAC;AACF,YAAA,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAE/B,YAAA,IAAI,KAAa,CAAC;AAClB,YAAA,IAAI,GAAG,YAAY,aAAa,EAAE;gBAChC,KAAK,GAAG,EAAE,CAAC;aACZ;iBAAM;AACL,gBAAA,MAAM,MAAM,GAAI,GAA2B,CAAC,MAAM,CAAC;AACnD,gBAAA,KAAK,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;aAC/C;YAED,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;AAChC,YAAA,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAEvC,YAAA,OAAO,KAAK,CAAC;SACd,GAAG,CAAC;;QAGL,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AAEpD,QAAA,OAAO,cAAc,CAAC;KACvB;wGAvKU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,qBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACZD;;AAEG;;;;"}