@experteam-mx/ngx-services 18.9.12 → 18.9.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/apis/api-billing-do.service.mjs +1 -1
  3. package/esm2022/lib/apis/api-billing-gt.service.mjs +1 -1
  4. package/esm2022/lib/apis/api-billing-mx.service.mjs +1 -1
  5. package/esm2022/lib/apis/api-billing-pa.service.mjs +1 -1
  6. package/esm2022/lib/apis/api-billing-sv.service.mjs +1 -1
  7. package/esm2022/lib/apis/api-cash-operations.service.mjs +1 -1
  8. package/esm2022/lib/apis/api-catalogs.service.mjs +1 -1
  9. package/esm2022/lib/apis/api-companies.service.mjs +2 -2
  10. package/esm2022/lib/apis/api-composition.service.mjs +1 -1
  11. package/esm2022/lib/apis/api-customs.service.mjs +1 -1
  12. package/esm2022/lib/apis/api-discounts.service.mjs +1 -1
  13. package/esm2022/lib/apis/api-e-tools-auto-billing.service.mjs +1 -1
  14. package/esm2022/lib/apis/api-events.service.mjs +1 -1
  15. package/esm2022/lib/apis/api-external-ops.service.mjs +87 -0
  16. package/esm2022/lib/apis/api-inventories.service.mjs +1 -1
  17. package/esm2022/lib/apis/api-invoices.service.mjs +1 -1
  18. package/esm2022/lib/apis/api-notifications.service.mjs +1 -1
  19. package/esm2022/lib/apis/api-open-items.service.mjs +1 -1
  20. package/esm2022/lib/apis/api-reports.service.mjs +1 -1
  21. package/esm2022/lib/apis/api-security.service.mjs +1 -1
  22. package/esm2022/lib/apis/api-services.service.mjs +1 -1
  23. package/esm2022/lib/apis/api-shipments.service.mjs +1 -1
  24. package/esm2022/lib/apis/api-supplies.service.mjs +1 -1
  25. package/esm2022/lib/apis/models/api-billing-do.interfaces.mjs +1 -1
  26. package/esm2022/lib/apis/models/api-billing-do.types.mjs +1 -1
  27. package/esm2022/lib/apis/models/api-billing-mx.interfaces.mjs +1 -1
  28. package/esm2022/lib/apis/models/api-billing-mx.types.mjs +1 -1
  29. package/esm2022/lib/apis/models/api-billing-pa.interfaces.mjs +1 -1
  30. package/esm2022/lib/apis/models/api-billing-pa.types.mjs +1 -1
  31. package/esm2022/lib/apis/models/api-billing-sv.interfaces.mjs +1 -1
  32. package/esm2022/lib/apis/models/api-billing-sv.types.mjs +1 -1
  33. package/esm2022/lib/apis/models/api-billing.models.mjs +1 -1
  34. package/esm2022/lib/apis/models/api-cash-operations.interfaces.mjs +1 -1
  35. package/esm2022/lib/apis/models/api-cash-operations.types.mjs +1 -1
  36. package/esm2022/lib/apis/models/api-catalog.enum.mjs +1 -1
  37. package/esm2022/lib/apis/models/api-catalog.interfaces.mjs +1 -1
  38. package/esm2022/lib/apis/models/api-catalog.types.mjs +1 -1
  39. package/esm2022/lib/apis/models/api-companies.interfaces.mjs +1 -1
  40. package/esm2022/lib/apis/models/api-companies.types.mjs +1 -1
  41. package/esm2022/lib/apis/models/api-composition.interfaces.mjs +1 -1
  42. package/esm2022/lib/apis/models/api-composition.types.mjs +1 -1
  43. package/esm2022/lib/apis/models/api-customs.interfaces.mjs +1 -1
  44. package/esm2022/lib/apis/models/api-customs.types.mjs +1 -1
  45. package/esm2022/lib/apis/models/api-discounts.interfaces.mjs +1 -1
  46. package/esm2022/lib/apis/models/api-discounts.types.mjs +1 -1
  47. package/esm2022/lib/apis/models/api-e-tools-auto-billing.interfaces.mjs +1 -1
  48. package/esm2022/lib/apis/models/api-e-tools-auto-billing.types.mjs +1 -1
  49. package/esm2022/lib/apis/models/api-events.enum.mjs +1 -1
  50. package/esm2022/lib/apis/models/api-events.interfaces.mjs +1 -1
  51. package/esm2022/lib/apis/models/api-events.types.mjs +1 -1
  52. package/esm2022/lib/apis/models/api-external-ops.interfaces.mjs +2 -0
  53. package/esm2022/lib/apis/models/api-external-ops.types.mjs +2 -0
  54. package/esm2022/lib/apis/models/api-inventories.enum.mjs +1 -1
  55. package/esm2022/lib/apis/models/api-inventories.interfaces.mjs +1 -1
  56. package/esm2022/lib/apis/models/api-inventories.types.mjs +1 -1
  57. package/esm2022/lib/apis/models/api-invoices.interfaces.mjs +1 -1
  58. package/esm2022/lib/apis/models/api-invoices.types.mjs +1 -1
  59. package/esm2022/lib/apis/models/api-notifications.interfaces.mjs +1 -1
  60. package/esm2022/lib/apis/models/api-notifications.types.mjs +1 -1
  61. package/esm2022/lib/apis/models/api-open-items.interfaces.mjs +1 -1
  62. package/esm2022/lib/apis/models/api-open-items.types.mjs +1 -1
  63. package/esm2022/lib/apis/models/api-reports.interfaces.mjs +1 -1
  64. package/esm2022/lib/apis/models/api-reports.types.mjs +1 -1
  65. package/esm2022/lib/apis/models/api-security.interfaces.mjs +1 -1
  66. package/esm2022/lib/apis/models/api-security.types.mjs +1 -1
  67. package/esm2022/lib/apis/models/api-services.interfaces.mjs +1 -1
  68. package/esm2022/lib/apis/models/api-services.types.mjs +1 -1
  69. package/esm2022/lib/apis/models/api-shipments.enums.mjs +1 -1
  70. package/esm2022/lib/apis/models/api-shipments.interfaces.mjs +1 -1
  71. package/esm2022/lib/apis/models/api-shipments.types.mjs +1 -1
  72. package/esm2022/lib/apis/models/api-supplies.interfaces.mjs +1 -1
  73. package/esm2022/lib/apis/models/api-supplies.types.mjs +1 -1
  74. package/esm2022/lib/apis/models/api.models.mjs +1 -1
  75. package/esm2022/lib/cypher/crypto.service.mjs +1 -1
  76. package/esm2022/lib/helpers/files.mjs +1 -1
  77. package/esm2022/lib/helpers/http.mjs +1 -1
  78. package/esm2022/lib/interceptors/api-headers.interceptor.mjs +1 -1
  79. package/esm2022/lib/interceptors/api-key.interceptor.mjs +48 -0
  80. package/esm2022/lib/interceptors/api-token.interceptor.mjs +1 -1
  81. package/esm2022/lib/interceptors/http-caching.interceptor.mjs +1 -1
  82. package/esm2022/lib/ngx-services.models.mjs +1 -1
  83. package/esm2022/lib/ngx-services.module.mjs +1 -1
  84. package/esm2022/lib/websockets/web-sockets.service.mjs +1 -1
  85. package/esm2022/public-api.mjs +9 -8
  86. package/fesm2022/experteam-mx-ngx-services.mjs +132 -73
  87. package/fesm2022/experteam-mx-ngx-services.mjs.map +1 -1
  88. package/lib/apis/{api-external-pickups.service.d.ts → api-external-ops.service.d.ts} +15 -7
  89. package/lib/apis/models/api-catalog.interfaces.d.ts +1 -1
  90. package/lib/apis/models/api-catalog.types.d.ts +1 -1
  91. package/lib/apis/models/api-external-ops.interfaces.d.ts +21 -0
  92. package/lib/apis/models/{api-external-pickups.types.d.ts → api-external-ops.types.d.ts} +4 -0
  93. package/lib/apis/models/api-reports.interfaces.d.ts +6 -3
  94. package/lib/interceptors/api-key.interceptor.d.ts +35 -0
  95. package/package.json +1 -1
  96. package/public-api.d.ts +8 -7
  97. package/esm2022/lib/apis/api-external-pickups.service.mjs +0 -74
  98. package/esm2022/lib/apis/models/api-external-pickups.types.mjs +0 -2
@@ -1 +1 @@
1
- {"version":3,"file":"experteam-mx-ngx-services.mjs","sources":["../../../../projects/experteam-mx/ngx-services/src/lib/ngx-services.models.ts","../../../../projects/experteam-mx/ngx-services/src/lib/ngx-services.module.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-billing-do.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-billing-gt.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-billing-mx.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-billing-pa.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-billing-sv.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-cash-operations.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-catalogs.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-companies.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-composition.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-customs.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-discounts.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-events.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-e-tools-auto-billing.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-external-pickups.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-inventories.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-invoices.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-notifications.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-open-items.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-reports.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-security.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-services.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-shipments.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-supplies.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/models/api-catalog.enum.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/models/api-events.enum.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/models/api-inventories.enum.ts","../../../../projects/experteam-mx/ngx-services/src/lib/websockets/web-sockets.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/cypher/crypto.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/interceptors/api-headers.interceptor.ts","../../../../projects/experteam-mx/ngx-services/src/lib/interceptors/api-token.interceptor.ts","../../../../projects/experteam-mx/ngx-services/src/lib/interceptors/http-caching.interceptor.ts","../../../../projects/experteam-mx/ngx-services/src/lib/helpers/http.ts","../../../../projects/experteam-mx/ngx-services/src/lib/helpers/files.ts","../../../../projects/experteam-mx/ngx-services/src/public-api.ts","../../../../projects/experteam-mx/ngx-services/src/experteam-mx-ngx-services.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\r\n\r\n/**\r\n * Represents the configuration settings for the application's environment.\r\n * This type includes various API endpoint URLs, authentication details, caching options, and other relevant settings.\r\n *\r\n * Properties:\r\n * - apiCompaniesUrl: The URL for the companies API endpoint.\r\n * - apiEventsUrl: The URL for the events API endpoint.\r\n * - apiInvoicesUrl: The URL for the invoices API endpoint.\r\n * - apiReportsUrl: The URL for the reports API endpoint.\r\n * - apiSecurityUrl: The URL for the security-related API endpoint.\r\n * - apiShipmentUrl: The URL for the shipment API endpoint.\r\n * - authCookie: The name of the authentication cookie used for user sessions.\r\n * - cacheTtl: Optional. Specifies the time-to-live (TTL) for cached items.\r\n * - printUrl: Optional. The URL used for generating or downloading printable documents.\r\n * - secretKey: A secret key used for authentication or other secure operations.\r\n */\r\nexport type Environment = {\r\n apiBillingDO?: string\r\n apiBillingGT?: string\r\n apiBillingMX?: string\r\n apiBillingPA?: string\r\n apiBillingSV?: string\r\n apiCashOperationsUrl?: string\r\n apiCatalogsUrl?: string\r\n apiCompaniesUrl?: string\r\n apiCompositionUrl?: string\r\n apiCustomsUrl?: string\r\n apiDiscountsUrl?: string\r\n apiEventsUrl?: string\r\n apiEToolsAutoBilling?: string\r\n apiExternalOperationsKey?: string\r\n apiExternalOperationsUrl?: string\r\n apiInventoriesUrl?: string\r\n apiInvoicesUrl?: string\r\n apiNotificationsUrl?: string\r\n apiOpenItemsUrl?: string\r\n apiReportsUrl?: string\r\n apiSecurityUrl?: string\r\n apiServicesUrl?: string\r\n apiShipmentUrl?: string\r\n apiSuppliesUrl?: string\r\n authCookie: string\r\n cacheTtl?: number\r\n printUrl?: string\r\n secretKey: string\r\n sockets?: {\r\n app_key: string\r\n debug?: boolean\r\n port: number\r\n url: string\r\n }\r\n}\r\n\r\n/**\r\n * Injection token used to inject environment configurations.\r\n *\r\n * `ENVIRONMENT_TOKEN` is a dependency injection token that allows\r\n * for the provision and retrieval of environment-specific configurations\r\n * within the application. This token is typically associated with an\r\n * `Environment` type that defines the structure of the configuration.\r\n */\r\nexport const ENVIRONMENT_TOKEN = new InjectionToken<Environment>('Environments token')\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport { Environment } from './ngx-services.models'\r\nimport { provideHttpClient } from '@angular/common/http'\r\n\r\n@NgModule({\r\n providers: [provideHttpClient()]\r\n})\r\nexport class NgxServicesModule {\r\n /**\r\n * Returns a module with providers for the NgxServicesModule.\r\n *\r\n * @param {Environment} environment - The environment configuration object.\r\n *\r\n * @return {ModuleWithProviders<NgxServicesModule>} The module with providers for the NgxServicesModule.\r\n */\r\n public static forRoot (environment: Environment): ModuleWithProviders<NgxServicesModule> {\r\n return {\r\n ngModule: NgxServicesModule,\r\n providers: [\r\n {\r\n provide: 'env',\r\n useValue: environment\r\n }\r\n ]\r\n }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { map, Observable } from 'rxjs'\r\nimport { ApiSuccess } from './models/api.models'\r\nimport { IncomeTypesOut } from './models/api-billing-do.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiBillingDOService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the shipments API from the environment configurations.\r\n *\r\n * @return {string} The URL of the shipments API.\r\n */\r\n get url (): string {\r\n return this.environments.apiBillingDO ?? ''\r\n }\r\n\r\n /**\r\n * Retrieves a list of income types\r\n *\r\n * @return {Observable<ApiSuccess<IncomeTypesOut>>} An observable that emits the income types data.\r\n */\r\n getIncomeTypes (): Observable<IncomeTypesOut> {\r\n return this.http.get<ApiSuccess<IncomeTypesOut>>(`${this.url}/income-types`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { map, Observable } from 'rxjs'\r\nimport { ApiSuccess } from './models/api.models'\r\nimport {\r\n ApiBillingConfigurable,\r\n BillingConfigIn,\r\n BillingConfigOut,\r\n BillingConfigsOut\r\n} from './models/api-billing.models'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiBillingGtService implements ApiBillingConfigurable {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the billing GT API from the environment configurations.\r\n *\r\n * @return {string} The URL of the shipments API.\r\n */\r\n get url (): string {\r\n return this.environments.apiBillingGT ?? ''\r\n }\r\n\r\n /**\r\n * RRetrieves the list of billing configurations to locations\r\n *\r\n * @return {Observable<BillingConfigsOut>} An observable that emits an array of billing configurations to locations\r\n */\r\n getConfigs (): Observable<BillingConfigsOut> {\r\n return this.http.get<ApiSuccess<BillingConfigsOut>>(`${this.url}/location/configs`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the details of a location in billing configurations\r\n *\r\n * @param {number} id - The id of the location to fetch.\r\n * @return {Observable<BillingConfigOut>} An observable that emits the location billing configuration data.\r\n */\r\n getConfig (id: number): Observable<BillingConfigOut> {\r\n return this.http.get<ApiSuccess<BillingConfigOut>>(`${this.url}/locations/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create a new billing configuration location.\r\n *\r\n * @param {BillingConfigIn} body - The billing configuration to location data to be sent in the request body.\r\n * @return {Observable<BillingConfigOut>} An observable emitting the created billing configuration to location data.\r\n */\r\n postConfigs (body: BillingConfigIn): Observable<BillingConfigOut> {\r\n return this.http.post<ApiSuccess<BillingConfigOut>>(`${this.url}/locations`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { map, Observable } from 'rxjs'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport { FiscalRegimensAcceptedOut, FiscalRegimensOut, PostalCodesOut } from './models/api-billing-mx.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiBillingMxService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the shipments API from the environment configurations.\r\n *\r\n * @return {string} The URL of the shipments API.\r\n */\r\n get url (): string {\r\n return this.environments.apiBillingMX ?? ''\r\n }\r\n\r\n /**\r\n * Fetches the tax regimen data from the server.\r\n *\r\n * @return {Observable<FiscalRegimensOut>} An observable that emits the fiscal regimen data.\r\n */\r\n getFiscalRegimens (): Observable<FiscalRegimensOut> {\r\n return this.http.get<ApiSuccess<FiscalRegimensOut>>(`${this.url}/fiscal-regimens`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches a paginated list of CFDIs (Comprobante Fiscal Digital por Internet) based on the provided fiscal regimen.\r\n *\r\n * @param {number} fiscalRegimen - The fiscal regimen identifier to filter the CFDIs.\r\n * @return {Observable<FiscalRegimensAcceptedOut>} An observable containing the paginated list of CFDIs.\r\n */\r\n getFiscalRegimensAccepted (fiscalRegimen: number): Observable<FiscalRegimensAcceptedOut> {\r\n const params = { 'fiscal-regimen': fiscalRegimen }\r\n\r\n return this.http.get<ApiSuccess<FiscalRegimensAcceptedOut>>(`${this.url}/cfdi-uses/fiscal-regimen-accepted/list`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches and validates postal code data from the server.\r\n *\r\n * @param {QueryParams} params - Query parameters used to filter the postal code data.\r\n * @return {Observable<PostalCodesOut>} - An observable emitting the validated postal code data.\r\n */\r\n getPostalCodes (params: QueryParams): Observable<PostalCodesOut> {\r\n return this.http.get<ApiSuccess<PostalCodesOut>>(`${this.url}/postal-codes`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport { map, Observable } from 'rxjs'\r\nimport { BillingPaCustomerOut, DistrictsOut, ParishesOut, ProvincesOut } from './models/api-billing-pa.types'\r\nimport { ApiBillingConfigurable, BillingConfigIn, BillingConfigOut, BillingConfigsOut } from './models/api-billing.models'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiBillingPaService implements ApiBillingConfigurable {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the Billing Pa API from the environment configurations.\r\n *\r\n * @return {string} The URL of the Billing Pa API.\r\n */\r\n get url (): string {\r\n return this.environments.apiBillingPA ?? ''\r\n }\r\n\r\n /**\r\n * Retrieves a list of districts based on query parameters.\r\n *\r\n * @param {QueryParams} params - Query parameters for filtering the districts.\r\n * @returns {Observable<DistrictsOut>} The list of districts.\r\n */\r\n getDistricts (params: QueryParams): Observable<DistrictsOut> {\r\n return this.http.get<ApiSuccess<DistrictsOut>>(`${this.url}/districts`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of parishes based on query parameters.\r\n *\r\n * @param {QueryParams} params - Query parameters for filtering the parishes.\r\n * @returns {Observable<ParishesOut>} The list of parishes.\r\n */\r\n getParishes (params: QueryParams): Observable<ParishesOut> {\r\n return this.http.get<ApiSuccess<ParishesOut>>(`${this.url}/parishes`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of provinces based on query parameters.\r\n *\r\n * @param {QueryParams} params - Query parameters for filtering the provinces.\r\n * @returns {Observable<ProvincesOut>} The list of provinces.\r\n */\r\n getProvinces (params: QueryParams): Observable<ProvincesOut> {\r\n return this.http.get<ApiSuccess<ProvincesOut>>(`${this.url}/provinces`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the details of a customer based on query parameters.\r\n *\r\n * @param {QueryParams} params - Query parameters for get customer.\r\n * @return {Observable<BillingPaCustomerOut>} An observable that emits customer data.\r\n */\r\n getValidateCustomer (params: QueryParams): Observable<BillingPaCustomerOut> {\r\n return this.http.get<ApiSuccess<BillingPaCustomerOut>>(`${this.url}/validate-customer`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * RRetrieves the list of billing configurations to locations\r\n *\r\n * @return {Observable<BillingConfigsOut>} An observable that emits an array of billing configurations to locations\r\n */\r\n getConfigs (): Observable<BillingConfigsOut> {\r\n return this.http.get<ApiSuccess<BillingConfigsOut>>(`${this.url}/location/configs`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the details of a location in billing configurations\r\n *\r\n * @param {number} id - The id of the location to fetch.\r\n * @return {Observable<BillingConfigOut>} An observable that emits the location billing configuration data.\r\n */\r\n getConfig (id: number): Observable<BillingConfigOut> {\r\n return this.http.get<ApiSuccess<BillingConfigOut>>(`${this.url}/locations/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create a new billing configuration location.\r\n *\r\n * @param {BillingConfigIn} body - The billing configuration to location data to be sent in the request body.\r\n * @return {Observable<BillingConfigOut>} An observable emitting the created billing configuration to location data.\r\n */\r\n postConfigs (body: BillingConfigIn): Observable<BillingConfigOut> {\r\n return this.http.post<ApiSuccess<BillingConfigOut>>(`${this.url}/locations`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport { map, Observable } from 'rxjs'\r\nimport {\r\n DepartmentsOut,\r\n EconomicActivitiesOut,\r\n EstablishmentTypesOut,\r\n MunicipalitiesOut,\r\n PersonTypesOut\r\n} from './models/api-billing-sv.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiBillingSvService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the billing API.\r\n * If the URL is not defined in the environments configuration, returns an empty string.\r\n *\r\n * @return {string} The billing API URL or an empty string if not set.\r\n */\r\n get url (): string {\r\n return this.environments.apiBillingSV ?? ''\r\n }\r\n\r\n /**\r\n * Fetches the list of economic activities based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter the economic activities.\r\n * @return {Observable<EconomicActivitiesOut>} An observable that emits the list of economic activities.\r\n */\r\n getEconomicActivities (params: QueryParams): Observable<EconomicActivitiesOut> {\r\n return this.http.get<ApiSuccess<EconomicActivitiesOut>>(`${this.url}/economic-activities`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the list of person types based on given query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter the person types.\r\n * @return {Observable<PersonTypesOut>} An observable that emits a list of person types.\r\n */\r\n getPersonTypes (params: QueryParams): Observable<PersonTypesOut> {\r\n return this.http.get<ApiSuccess<PersonTypesOut>>(`${this.url}/person-types`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the list of establishment types.\r\n *\r\n * @param {QueryParams} params The query parameters to be sent with the HTTP request.\r\n * @return {Observable<EstablishmentTypesOut>} An observable that emits the establishment types data.\r\n */\r\n getEstablishmentTypes (params: QueryParams): Observable<EstablishmentTypesOut> {\r\n return this.http.get<ApiSuccess<EstablishmentTypesOut>>(`${this.url}/establishment-types`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the list of departments based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter or modify the departments fetch request.\r\n * @return {Observable<DepartmentsOut>} An observable emitting the list of departments.\r\n */\r\n getDepartments (params: QueryParams): Observable<DepartmentsOut> {\r\n return this.http.get<ApiSuccess<DepartmentsOut>>(`${this.url}/departments`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of municipalities based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter the municipalities.\r\n * @return {Observable<MunicipalitiesOut>} An observable that emits the retrieved municipalities data.\r\n */\r\n getMunicipalities (params: QueryParams): Observable<MunicipalitiesOut> {\r\n return this.http.get<ApiSuccess<MunicipalitiesOut>>(`${this.url}/municipalities`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport { map, Observable } from 'rxjs'\r\nimport {\r\n CashValueSummaryOut,\r\n InstallationCountryReferenceCurrenciesOut,\r\n InstallationCountryReferenceCurrencyIn,\r\n InstallationCountryReferenceCurrencyOut, OpeningTransferenceIn, OpeningTransferenceOut, ReceiptFileOut\r\n} from './models/api-cash-operations.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiCashOperationsService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the cash operations API from the environment configurations.\r\n *\r\n * @return {string} The URL of the cash operations API.\r\n */\r\n get url (): string {\r\n return this.environments.apiCashOperationsUrl ?? ''\r\n }\r\n\r\n /**\r\n * Creates a new installation country reference currency.\r\n *\r\n * @param {InstallationCountryReferenceCurrencyIn} body - The data for the new reference currency.\r\n * @returns {Observable<InstallationCountryReferenceCurrencyOut>} The created reference currency.\r\n */\r\n postInstallationCountryReferenceCurrency (body: InstallationCountryReferenceCurrencyIn): Observable<InstallationCountryReferenceCurrencyOut> {\r\n return this.http.post<ApiSuccess<InstallationCountryReferenceCurrencyOut>>(`${this.url}/installation-country-reference-currencies`,\r\n body\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Updates an existing installation country reference currency.\r\n *\r\n * @param {number} id - The ID of the reference currency to update.\r\n * @param {InstallationCountryReferenceCurrencyIn} body - The updated data for the reference currency.\r\n * @returns {Observable<InstallationCountryReferenceCurrencyOut>} The updated reference currency.\r\n */\r\n putInstallationCountryReferenceCurrency (id:number, body: InstallationCountryReferenceCurrencyIn): Observable<InstallationCountryReferenceCurrencyOut> {\r\n return this.http.put<ApiSuccess<InstallationCountryReferenceCurrencyOut>>(`${this.url}/installation-country-reference-currencies/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of installation country reference currencies based on query parameters.\r\n *\r\n * @param {QueryParams} params - Query parameters for filtering the currencies.\r\n * @returns {Observable<InstallationCountryReferenceCurrenciesOut>} The list of reference currencies.\r\n */\r\n getInstallationCompanyCountryCurrencies (params: QueryParams): Observable<InstallationCountryReferenceCurrenciesOut> {\r\n return this.http.get<ApiSuccess<InstallationCountryReferenceCurrenciesOut>>(`${this.url}/installation-country-reference-currencies`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the cash value summary for a specific opening ID.\r\n *\r\n * @param {number} id - The ID of the opening for which to retrieve the cash value summary.\r\n * @returns {Observable<CashValueSummaryOut>} An observable that emits the cash value summary data.\r\n */\r\n getOpeningCashValueSummary (id: number): Observable<CashValueSummaryOut> {\r\n return this.http.get<ApiSuccess<CashValueSummaryOut>>(`${this.url}/openings/${id}/cash-value-summary`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Creates a new opening transference record.\r\n *\r\n * @param {OpeningTransferenceIn} body - The data to create the new opening transference.\r\n * @returns {Observable<OpeningTransferenceOut>} An observable that emits the newly created opening transference.\r\n */\r\n postOpeningTransferences (body: OpeningTransferenceIn): Observable<OpeningTransferenceOut> {\r\n return this.http.post<ApiSuccess<OpeningTransferenceOut>>(`${this.url}/opening-transferences`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the receipt file associated with the given opening transference ID.\r\n *\r\n * @param {number} id - The ID of the opening transference whose receipt is to be retrieved.\r\n * @returns {Observable<ReceiptFileOut>} An observable that emits the receipt file data.\r\n */\r\n getOpeningTransferenceReceipt (id: number): Observable<ReceiptFileOut> {\r\n return this.http.get<ApiSuccess<ReceiptFileOut>>(`${this.url}/opening-transferences/${id}/receipt`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { map, Observable } from 'rxjs'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport {\r\n CancellationReasonIn,\r\n CancellationReasonOut,\r\n CancellationReasonsOut,\r\n CountriesOut,\r\n CountryIn,\r\n CountryOut,\r\n CurrenciesOut,\r\n ExtraChargeIn,\r\n ExtraChargeOut,\r\n ExtraChargesOut,\r\n GenericFolioIn,\r\n GenericFolioOut,\r\n GenericFoliosOut,\r\n HolidayIn,\r\n HolidayOut,\r\n HolidaysOut,\r\n IdentificationTypeIn,\r\n IdentificationTypeOut,\r\n IdentificationTypesOut,\r\n LanguagesOut,\r\n ManagementAreasOut,\r\n OperationTypesOut,\r\n ProductIn,\r\n ProductOut,\r\n QuestionIn,\r\n QuestionOut,\r\n QuestionsOut,\r\n RegionsOut,\r\n ShipmentContentTypesOut,\r\n ShipmentGroupsOut,\r\n ShipmentIncomeTypeIn,\r\n ShipmentIncomeTypeOut,\r\n ShipmentIncomeTypesOut,\r\n ShipmentScopesOut,\r\n ShipmentStatusesOut,\r\n UniqueFolioIn,\r\n UniqueFolioOut,\r\n UniqueFoliosOut,\r\n UnitsOut,\r\n ZonesOut\r\n} from './models/api-catalog.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiCatalogsService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the reports API from the environment configurations.\r\n *\r\n * @return {string} The URL of the reports API.\r\n */\r\n get url (): string {\r\n return this.environments.apiCatalogsUrl ?? ''\r\n }\r\n\r\n /**\r\n * Retrieves the list of collection payments\r\n *\r\n * @param {QueryParams} params - The query parameters used to fetch the operation types.\r\n * @return {Observable<OperationTypesOut[]>} An observable that emits an array of operation type.\r\n */\r\n getOperationTypes (params: QueryParams): Observable<OperationTypesOut> {\r\n return this.http.get<ApiSuccess<OperationTypesOut>>(`${this.url}/operation-types`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the list of identificatios types\r\n *\r\n * @param {QueryParams} params - The query parameters used to fetch the identification types.\r\n * @return {Observable<IdentificationTypesOut[]>} An observable that emits an array of identification type.\r\n */\r\n getIdentificationTypes (params: QueryParams): Observable<IdentificationTypesOut> {\r\n return this.http.get<ApiSuccess<IdentificationTypesOut>>(`${this.url}/identification-types`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieve a single identification type by its id.\r\n *\r\n * Sends an HTTP GET request to the indentification type endpoint and returns an Observable that emits\r\n * the IdentificationTypeOut payload extracted from the API success envelope.\r\n *\r\n * @param id - The numeric identifier of the identification type to fetch.\r\n * @returns An Observable that emits the requested IdentificationTypeOut. The Observable will error\r\n * if the HTTP request fails (for example network issues or non-2xx responses).\r\n */\r\n getIdentificationType (id: number): Observable<IdentificationTypeOut> {\r\n return this.http.get<ApiSuccess<IdentificationTypeOut>>(`${this.url}/identification-types/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create a new identification type and returns the created resource.\r\n *\r\n * The request payload is sent as an object with a `body` property containing the provided\r\n * IdentificationTypeIn value (i.e. { body: IdentificationTypeIn }). On success the HTTP response is expected\r\n * to follow the ApiSuccess<T> shape; the operator maps that response to the inner `data`\r\n * object and emits it as a IdentificationTypeOut.\r\n *\r\n * @param body - The identification type payload to create (IdentificationTypeIn).\r\n * @returns Observable<IdentificationTypeOut> that emits the created identification type on success.\r\n */\r\n postIdentificationtType (body: IdentificationTypeIn): Observable<IdentificationTypeOut> {\r\n return this.http.post<ApiSuccess<IdentificationTypeOut>>(`${this.url}/identification-types`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Update a identification type by its ID.\r\n *\r\n * Sends an HTTP PUT to `${this.url}/identification-types/${id}` with the provided payload.\r\n * The request body is sent as an object with a `body` property containing the\r\n * `IdentificationTypeIn` data. The server response is expected to be an `ApiSuccess<IdentificationTypeOut>`\r\n * and this method returns an Observable that emits the unwrapped `IdentificationTypeOut`.\r\n *\r\n * @param id - The identifier of the identification type to update.\r\n * @param body - The update payload for the identification type.\r\n * @returns An Observable that emits the updated `IdentificationTypeOut` on success.\r\n */\r\n putIdentificationType (id: number, body: IdentificationTypeIn): Observable<IdentificationTypeOut> {\r\n return this.http.put<ApiSuccess<IdentificationTypeOut>>(`${this.url}/identification-types/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Delete a identification type by its ID.\r\n *\r\n * Sends an HTTP DELETE request to the backend endpoint `/identification-types/{id}` and\r\n * returns an Observable that emits the API response's `data` payload (typically an empty object).\r\n *\r\n * The implementation maps an ApiSuccess wrapper to its `data` property before emitting.\r\n *\r\n * @param id - The numeric identifier of the identification type to delete.\r\n * @returns An Observable that emits the deleted resource payload ({} expected) on success.\r\n * The Observable will emit an error if the HTTP request fails.\r\n */\r\n deleteIdentificationType (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/identification-types/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the extra charges based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the results.\r\n * @return {Observable<ExtraChargesOut>} An observable emitting the extra charges data.\r\n */\r\n getExtraCharges (params: QueryParams): Observable<ExtraChargesOut> {\r\n return this.http.get<ApiSuccess<ExtraChargesOut>>(`${this.url}/extracharges`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Submits an extra charge request to the server and returns the created extra charge details.\r\n *\r\n * @param {ExtraChargeIn} body - The data for the extra charge to be created.\r\n * @return {Observable<ExtraChargeOut>} An observable that emits the details of the created extra charge.\r\n */\r\n postExtraCharge (body: ExtraChargeIn): Observable<ExtraChargeOut> {\r\n return this.http.post<ApiSuccess<ExtraChargeOut>>(`${this.url}/extracharges`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an extra charge entity with new data and returns the updated entity.\r\n *\r\n * @param {number} id - The unique identifier of the extra charge to update.\r\n * @param {ExtraChargeIn} body - The new data for the extra charge.\r\n * @return {Observable<ExtraChargeOut>} An observable emitting the updated extra charge entity.\r\n */\r\n putExtraCharge (id: number, body: ExtraChargeIn): Observable<ExtraChargeOut> {\r\n return this.http.put<ApiSuccess<ExtraChargeOut>>(`${this.url}/extracharges/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches a list of countries from the API.\r\n *\r\n * @param {QueryParams} params - The query parameters to be passed to the API request.\r\n * @return {Observable<CountriesOut>} An observable containing the list of countries.\r\n */\r\n getCountries (params: QueryParams): Observable<CountriesOut> {\r\n return this.http.get<ApiSuccess<CountriesOut>>(`${this.url}/countries`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the details of a country based on its ID.\r\n *\r\n * @param {number} id - The identifier of the country to fetch.\r\n * @return {Observable<CountryOut>} An observable that emits the country data.\r\n */\r\n getCountry (id: number): Observable<CountryOut> {\r\n return this.http.get<ApiSuccess<CountryOut>>(`${this.url}/countries/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the details of a specific country by its ID.\r\n *\r\n * @param {number} id - The unique identifier of the country to be updated.\r\n * @param {CountryIn} body - The data to update the country with.\r\n * @return {Observable<CountryOut>} An observable that emits the updated country data.\r\n */\r\n putCountry (id: number, body: CountryIn): Observable<CountryOut> {\r\n return this.http.put<ApiSuccess<CountryOut>>(`${this.url}/countries/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches a list of regions based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter the regions.\r\n * @return {Observable<RegionsOut>} An observable that emits the list of regions.\r\n */\r\n getRegions (params: QueryParams): Observable<RegionsOut> {\r\n return this.http.get<ApiSuccess<RegionsOut>>(`${this.url}/regions`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the zones data based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter the zones data.\r\n * @return {Observable<ZonesOut>} An observable that emits the fetched zones data.\r\n */\r\n getZones (params: QueryParams): Observable<ZonesOut> {\r\n return this.http.get<ApiSuccess<ZonesOut>>(`${this.url}/zones`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the management areas based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the management areas.\r\n * @return {Observable<ManagementAreasOut>} An observable that emits the management areas data.\r\n */\r\n getManagementAreas (params: QueryParams): Observable<ManagementAreasOut> {\r\n return this.http.get<ApiSuccess<ManagementAreasOut>>(`${this.url}/management-areas`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves cancellation reasons from the server based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the cancellation reasons.\r\n * @return {Observable<CancellationReasonsOut>} An observable containing the retrieved cancellation reasons.\r\n */\r\n getCancellationReasons (params: QueryParams): Observable<CancellationReasonsOut> {\r\n return this.http.get<ApiSuccess<CancellationReasonsOut>>(`${this.url}/cancellation-reasons`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a cancellation reason to the server.\r\n *\r\n * @param {CancellationReasonIn} body - The cancellation reason object to be sent.\r\n * @return {Observable<CancellationReasonOut>} An observable containing the server's response with the processed cancellation reason.\r\n */\r\n postCancellationReason (body: CancellationReasonIn): Observable<CancellationReasonOut> {\r\n return this.http.post<ApiSuccess<CancellationReasonOut>>(`${this.url}/cancellation-reasons`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the cancellation reason for the specified ID with the provided data.\r\n *\r\n * @param {number} id - The unique identifier of the cancellation reason to update.\r\n * @param {CancellationReasonIn} body - The details of the cancellation reason to be updated.\r\n * @return {Observable<CancellationReasonOut>} An observable containing the updated cancellation reason.\r\n */\r\n putCancellationReason (id: number, body: CancellationReasonIn): Observable<CancellationReasonOut> {\r\n return this.http.put<ApiSuccess<CancellationReasonOut>>(`${this.url}/cancellation-reasons/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of currencies based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to customize the currency retrieval request.\r\n * @return {Observable<CurrenciesOut>} An observable that emits the retrieved currencies data.\r\n */\r\n getCurrencies (params: QueryParams): Observable<CurrenciesOut> {\r\n return this.http.get<ApiSuccess<CurrenciesOut>>(`${this.url}/currencies`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the list of available languages based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to pass with the HTTP request.\r\n * @return {Observable<LanguagesOut>} An observable that emits the available languages.\r\n */\r\n getLanguages (params: QueryParams): Observable<LanguagesOut> {\r\n return this.http.get<ApiSuccess<LanguagesOut>>(`${this.url}/languages`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the available units from the API based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the units being fetched.\r\n * @return {Observable<UnitsOut>} An observable that emits the retrieved units data.\r\n */\r\n getUnits (params: QueryParams): Observable<UnitsOut> {\r\n return this.http.get<ApiSuccess<UnitsOut>>(`${this.url}/units`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the shipment scopes based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params The query parameters to filter or modify the request for shipment scopes.\r\n * @return {Observable<ShipmentScopesOut>} An observable that emits the shipment scopes data.\r\n */\r\n getShipmentScopes (params: QueryParams): Observable<ShipmentScopesOut> {\r\n return this.http.get<ApiSuccess<ShipmentScopesOut>>(`${this.url}/shipment-scopes`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the available shipment content types based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the shipment content types.\r\n * @return {Observable<ShipmentContentTypesOut>} An observable that emits the shipment content types data.\r\n */\r\n getShipmentContentTypes (params: QueryParams): Observable<ShipmentContentTypesOut> {\r\n return this.http.get<ApiSuccess<ShipmentContentTypesOut>>(`${this.url}/shipment-content-types`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches a list of generic folios based on the given query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter the generic folios.\r\n * @return {Observable<GenericFoliosOut>} An observable containing the fetched generic folios.\r\n */\r\n getGenericFolios (params: QueryParams): Observable<GenericFoliosOut> {\r\n return this.http.get<ApiSuccess<GenericFoliosOut>>(`${this.url}/generic-folios`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create or update a generic folio.\r\n *\r\n * @param {GenericFolioIn} body - The payload containing the details of the generic folio to be created or updated.\r\n * @return {Observable<GenericFolioOut>} An observable containing the response data of the created or updated generic folio.\r\n */\r\n postGenericFolio (body: GenericFolioIn): Observable<GenericFolioOut> {\r\n return this.http.post<ApiSuccess<GenericFolioOut>>(`${this.url}/generic-folios`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates a generic folio with the specified ID using the provided data.\r\n *\r\n * @param {number} id - The unique identifier of the generic folio to update.\r\n * @param {GenericFolioIn} body - The data to update the generic folio with.\r\n * @return {Observable<GenericFolioOut>} An observable containing the updated generic folio.\r\n */\r\n putGenericFolio (id: number, body: GenericFolioIn): Observable<GenericFolioOut> {\r\n return this.http.put<ApiSuccess<GenericFolioOut>>(`${this.url}/generic-folios/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a PUT request to update a Generic Folio resource with the specified ID and body data, and returns the updated resource.\r\n *\r\n * @param {number} id - The unique identifier of the Generic Folio to be updated.\r\n * @param {Partial<GenericFolioIn>} body - The partial data representing the changes to be applied to the Generic Folio.\r\n * @return {Observable<GenericFolioOut>} An observable containing the updated Generic Folio resource.\r\n */\r\n pathGenericFolio (id: number, body: Partial<GenericFolioIn>): Observable<GenericFolioOut> {\r\n return this.http.put<ApiSuccess<GenericFolioOut>>(`${this.url}/generic-folios/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create a new product.\r\n *\r\n * @param {ProductIn} body - The product data to be sent in the request body.\r\n * @return {Observable<ProductOut>} An observable emitting the created product data.\r\n */\r\n postProduct (body: ProductIn): Observable<ProductOut> {\r\n return this.http.post<ApiSuccess<ProductOut>>(`${this.url}/products`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing product with the given ID using the provided data.\r\n *\r\n * @param {number} id - The unique identifier of the product to update.\r\n * @param {ProductIn} body - The product data to update.\r\n * @return {Observable<ProductOut>} An observable containing the updated product data.\r\n */\r\n putProduct (id: number, body: ProductIn): Observable<ProductOut> {\r\n return this.http.put<ApiSuccess<ProductOut>>(`${this.url}/products/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of shipment income types based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the shipment income types.\r\n * @return {Observable<ShipmentIncomeTypesOut>} An observable containing the shipment income types data.\r\n */\r\n getShipmentIncomeTypes (params: QueryParams): Observable<ShipmentIncomeTypesOut> {\r\n return this.http.get<ApiSuccess<ShipmentIncomeTypesOut>>(`${this.url}/shipment-income-types`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create a new shipment income type.\r\n *\r\n * @param {ShipmentIncomeTypeIn} body The payload containing the details of the shipment income type to be created.\r\n * @return {Observable<ShipmentIncomeTypeOut>} An observable that emits the created shipment income type data.\r\n */\r\n postShipmentIncomeType (body: ShipmentIncomeTypeIn): Observable<ShipmentIncomeTypeOut> {\r\n return this.http.post<ApiSuccess<ShipmentIncomeTypeOut>>(`${this.url}/shipment-income-types`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the shipment income type with the specified ID.\r\n *\r\n * @param {number} id - The identifier of the shipment income type to update.\r\n * @param {ShipmentIncomeTypeIn} body - The data to update the shipment income type with.\r\n * @return {Observable<ShipmentIncomeTypeOut>} An observable emitting the updated shipment income type.\r\n */\r\n putShipmentIncomeType (id: number, body: ShipmentIncomeTypeIn): Observable<ShipmentIncomeTypeOut> {\r\n return this.http.put<ApiSuccess<ShipmentIncomeTypeOut>>(`${this.url}/shipment-income-types/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of unique folios based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter and fetch unique folios.\r\n * @return {Observable<UniqueFoliosOut>} An observable that emits the unique folios data.\r\n */\r\n getUniqueFolios (params: QueryParams): Observable<UniqueFoliosOut> {\r\n return this.http.get<ApiSuccess<UniqueFoliosOut>>(`${this.url}/unique-folios`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create a unique folio.\r\n *\r\n * @param {UniqueFolioIn} body - The data object containing details for the unique folio to be created.\r\n * @return {Observable<UniqueFolioOut>} An observable that emits the created unique folio details.\r\n */\r\n postUniqueFolio (body: UniqueFolioIn): Observable<UniqueFolioOut> {\r\n return this.http.post<ApiSuccess<UniqueFolioOut>>(`${this.url}/unique-folios`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates a unique folio with the given data using the provided ID.\r\n *\r\n * @param {number} id - The ID of the unique folio to be updated.\r\n * @param {UniqueFolioIn} body - The payload containing the details of the unique folio to update.\r\n * @return {Observable<UniqueFolioOut>} An observable that emits the updated unique folio.\r\n */\r\n putUniqueFolio (id: number, body: UniqueFolioIn): Observable<UniqueFolioOut> {\r\n return this.http.put<ApiSuccess<UniqueFolioOut>>(`${this.url}/unique-folios/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates a unique folio by its identifier with the provided data.\r\n *\r\n * @param {number} id - The identifier of the unique folio to update.\r\n * @param {Partial<UniqueFolioIn>} body - The partial data of the unique folio to update.\r\n * @return {Observable<UniqueFolioOut>} An observable emitting the updated unique folio data.\r\n */\r\n pathUniqueFolio (id: number, body: Partial<UniqueFolioIn>): Observable<UniqueFolioOut> {\r\n return this.http.put<ApiSuccess<UniqueFolioOut>>(`${this.url}/unique-folios/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves shipment groups based on the provided query parameters.\r\n *\r\n * @param params - The query parameters to filter the shipment groups.\r\n * @returns An Observable that emits the shipment groups data.\r\n */\r\n getShipmentGroups (params: QueryParams): Observable<ShipmentGroupsOut> {\r\n return this.http.get<ApiSuccess<ShipmentGroupsOut>>(`${this.url}/shipment-groups`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the shipment statuses from the API.\r\n *\r\n * @param params - The query parameters to filter or modify the request.\r\n * @returns An Observable that emits the shipment statuses output.\r\n */\r\n getShipmentStatuses (params: QueryParams): Observable<ShipmentStatusesOut> {\r\n return this.http.get<ApiSuccess<ShipmentStatusesOut>>(`${this.url}/shipment-statuses`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches questions from the catalogs API.\r\n *\r\n * Sends an HTTP GET request to `${this.url}/questions` using the supplied query parameters\r\n * and returns the unwrapped payload (`data`) from the API response.\r\n *\r\n * @param params - Query parameters to include in the request (e.g. paging, filters, sorting).\r\n * @returns An Observable that emits the QuestionsOut payload (the `data` field from ApiSuccess<QuestionsOut>).\r\n */\r\n getQuestions (params: QueryParams): Observable<QuestionsOut> {\r\n return this.http.get<ApiSuccess<QuestionsOut>>(`${this.url}/questions`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieve a single question by its id.\r\n *\r\n * Sends an HTTP GET request to the questions endpoint and returns an Observable that emits\r\n * the QuestionOut payload extracted from the API success envelope.\r\n *\r\n * @param id - The numeric identifier of the question to fetch.\r\n * @returns An Observable that emits the requested QuestionOut. The Observable will error\r\n * if the HTTP request fails (for example network issues or non-2xx responses).\r\n */\r\n getQuestion (id: number): Observable<QuestionOut> {\r\n return this.http.get<ApiSuccess<QuestionOut>>(`${this.url}/questions/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create a new question and returns the created resource.\r\n *\r\n * The request payload is sent as an object with a `body` property containing the provided\r\n * QuestionIn value (i.e. { body: QuestionIn }). On success the HTTP response is expected\r\n * to follow the ApiSuccess<T> shape; the operator maps that response to the inner `data`\r\n * object and emits it as a QuestionOut.\r\n *\r\n * @param body - The question payload to create (QuestionIn).\r\n * @returns Observable<QuestionOut> that emits the created question on success.\r\n */\r\n postQuestion (body: QuestionIn): Observable<QuestionOut> {\r\n return this.http.post<ApiSuccess<QuestionOut>>(`${this.url}/questions`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Update a question by its ID.\r\n *\r\n * Sends an HTTP PUT to `${this.url}/questions/${id}` with the provided payload.\r\n * The request body is sent as an object with a `body` property containing the\r\n * `QuestionIn` data. The server response is expected to be an `ApiSuccess<QuestionOut>`\r\n * and this method returns an Observable that emits the unwrapped `QuestionOut`.\r\n *\r\n * @param id - The identifier of the question to update.\r\n * @param body - The update payload for the question.\r\n * @returns An Observable that emits the updated `QuestionOut` on success.\r\n */\r\n putQuestion (id: number, body: QuestionIn): Observable<QuestionOut> {\r\n return this.http.put<ApiSuccess<QuestionOut>>(`${this.url}/questions/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes a question by its ID.\r\n *\r\n * Sends an HTTP DELETE request to the backend endpoint `/questions/{id}` and\r\n * returns an Observable that emits the API response's `data` payload (typically an empty object).\r\n *\r\n * The implementation maps an ApiSuccess wrapper to its `data` property before emitting.\r\n *\r\n * @param id - The numeric identifier of the question to delete.\r\n * @returns An Observable that emits the deleted resource payload ({} expected) on success.\r\n * The Observable will emit an error if the HTTP request fails.\r\n */\r\n deleteQuestion (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/questions/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches holidays from the catalogs API.\r\n *\r\n * Sends an HTTP GET request to `${this.url}/holidays` using the supplied query parameters\r\n * and returns the unwrapped payload (`data`) from the API response.\r\n *\r\n * @param params - Query parameters to include in the request (e.g. paging, filters, sorting).\r\n * @returns An Observable that emits the HolidaysOut payload (the `data` field from ApiSuccess<HolidaysOut>).\r\n */\r\n getHolidays (params: QueryParams): Observable<HolidaysOut> {\r\n return this.http.get<ApiSuccess<HolidaysOut>>(`${this.url}/holidays`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieve a single holiday by its id.\r\n *\r\n * Sends an HTTP GET request to the holidays endpoint and returns an Observable that emits\r\n * the HolidayOut payload extracted from the API success envelope.\r\n *\r\n * @param id - The numeric identifier of the holiday to fetch.\r\n * @returns An Observable that emits the requested HolidayOut. The Observable will error\r\n * if the HTTP request fails (for example network issues or non-2xx responses).\r\n */\r\n getHoliday (id: number): Observable<HolidayOut> {\r\n return this.http.get<ApiSuccess<HolidayOut>>(`${this.url}/holidays/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create a new holiday and returns the created resource.\r\n *\r\n * The request payload is sent as an object with a `body` property containing the provided\r\n * HolidayIn value (i.e. { body: HolidayIn }). On success the HTTP response is expected\r\n * to follow the ApiSuccess<T> shape; the operator maps that response to the inner `data`\r\n * object and emits it as a HolidayOut.\r\n *\r\n * @param body - The holiday payload to create (HolidayIn).\r\n * @returns Observable<HolidayOut> that emits the created holiday on success.\r\n */\r\n postHoliday (body: HolidayIn): Observable<HolidayOut> {\r\n return this.http.post<ApiSuccess<HolidayOut>>(`${this.url}/holidays`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Update a holiday by its ID.\r\n *\r\n * Sends an HTTP PUT to `${this.url}/holidays/${id}` with the provided payload.\r\n * The request body is sent as an object with a `body` property containing the\r\n * `HolidayIn` data. The server response is expected to be an `ApiSuccess<HolidayOut>`\r\n * and this method returns an Observable that emits the unwrapped `HolidayOut`.\r\n *\r\n * @param id - The identifier of the holiday to update.\r\n * @param body - The update payload for the holiday.\r\n * @returns An Observable that emits the updated `HolidayOut` on success.\r\n */\r\n putHoliday (id: number, body: HolidayIn): Observable<HolidayOut> {\r\n return this.http.put<ApiSuccess<HolidayOut>>(`${this.url}/holidays/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes a question by its ID.\r\n *\r\n * Sends an HTTP DELETE request to the backend endpoint `/questions/{id}` and\r\n * returns an Observable that emits the API response's `data` payload (typically an empty object).\r\n *\r\n * The implementation maps an ApiSuccess wrapper to its `data` property before emitting.\r\n *\r\n * @param id - The numeric identifier of the question to delete.\r\n * @returns An Observable that emits the deleted resource payload ({} expected) on success.\r\n * The Observable will emit an error if the HTTP request fails.\r\n */\r\n deleteHoliday (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/holidays/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport {\r\n AccountCategoriesOut,\r\n AccountEntitiesIn,\r\n AccountEntitiesOut,\r\n AccountIn,\r\n AccountOut,\r\n AccountsOut,\r\n AccountTypeIn,\r\n AccountTypeOut,\r\n AccountTypesOut,\r\n BoardingProcessIdIn,\r\n BoardingProcessIn,\r\n CompanyCountriesOut,\r\n CompanyCountryIn,\r\n CompanyCountryOut,\r\n CompanyCountryTaxesOut,\r\n CompanyIn,\r\n CompanyOut,\r\n CountryReferenceCurrenciesOut,\r\n CountryReferenceCurrencyIn,\r\n CountryReferenceCurrencyOut,\r\n CountryReferenceExtraChargeIn,\r\n CountryReferenceExtraChargeOut,\r\n CountryReferenceIn,\r\n CountryReferenceOut,\r\n CountryReferenceProductIn,\r\n CountryReferenceProductOut,\r\n CountryReferenceProductsOut,\r\n CountryReferencesOut,\r\n EmployeeCustomersIn,\r\n EmployeeCustomersOut,\r\n EmployeeIn,\r\n EmployeeOut,\r\n EmployeesCustomersOut,\r\n EmployeesOut,\r\n ExchangeIn,\r\n ExchangeOut,\r\n ExchangesOut,\r\n ExtraChargeEntitiesIn,\r\n ExtraChargeEntitiesOut,\r\n InstallationIn,\r\n InstallationOut,\r\n InstallationsOut,\r\n LocationEmployeeBatchIn,\r\n LocationEmployeeOut, LocationEmployeesIn,\r\n LocationEmployeesOut,\r\n LocationIn,\r\n LocationOut,\r\n LocationsOut,\r\n ParameterConfigIn,\r\n ParameterConfigOut,\r\n ParameterConfigsOut,\r\n ParametersByLevelIn,\r\n ParametersOut,\r\n ParametersValuesIn,\r\n ParametersValuesOut,\r\n ParameterValueIn,\r\n ParameterValueOut,\r\n ProductEntitiesIn,\r\n ProductEntitiesOut,\r\n SupplyEntitiesIn,\r\n SupplyEntitiesOut,\r\n SystemEntitiesIn,\r\n SystemEntitiesOut,\r\n SystemIn,\r\n SystemOut,\r\n SystemsOut,\r\n TDXAccountSettingsIn,\r\n TDXAccountSettingsOut,\r\n TDXAccountsSettingsOut,\r\n WorkflowConfigsBatchIn,\r\n WorkflowConfigsOut,\r\n WorkflowsOut\r\n} from './models/api-companies.types'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport { forkJoin, map, mergeMap, Observable } from 'rxjs'\r\nimport {\r\n CountryCurrencyRate,\r\n CountryReferenceExtraCharge,\r\n EmployeeCustomerDhl,\r\n} from './models/api-companies.interfaces'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiCompaniesService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the companies API from the environment configurations.\r\n *\r\n * @return {string} The URL of the companies API.\r\n */\r\n get url (): string {\r\n return this.environments.apiCompaniesUrl ?? ''\r\n }\r\n\r\n /**\r\n * Fetches the installations based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The parameters used to filter the installations query.\r\n * @return {Observable<InstallationsOut>} An observable that emits the installation's data.\r\n */\r\n getInstallations (params: QueryParams): Observable<InstallationsOut> {\r\n return this.http.get<ApiSuccess<InstallationsOut>>(`${this.url}/installations`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the installation details based on the given installation ID.\r\n *\r\n * @param {number} id - The unique identifier of the installation to retrieve.\r\n * @returns {Observable<InstallationOut>} An observable of the installation details.\r\n */\r\n getInstallation (id: number): Observable<InstallationOut> {\r\n return this.http.get<ApiSuccess<InstallationOut>>(`${this.url}/installations/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a post-installation request to the server and retrieves the installation details.\r\n *\r\n * @param {InstallationIn} body - The installation details to be sent in the request body.\r\n * @return {Observable<InstallationOut>} An observable that emits the response containing installation output details.\r\n */\r\n postInstallation (body: InstallationIn): Observable<InstallationOut> {\r\n return this.http.post<ApiSuccess<InstallationOut>>(`${this.url}/installations`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing installation record by its ID.\r\n *\r\n * @param id The unique identifier of the installation to update.\r\n * @param body The data payload containing the updated installation information.\r\n * @return An observable that emits the updated installation data upon a successful update.\r\n */\r\n putInstallation (id: number, body: InstallationIn): Observable<InstallationOut> {\r\n return this.http.put<ApiSuccess<InstallationOut>>(`${this.url}/installations/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes an installation by its unique identifier.\r\n *\r\n * @param {number} id - The unique identifier of the installation to be deleted.\r\n * @return {Observable<{}>} An observable that emits the response after the installation is deleted.\r\n */\r\n deleteInstallation (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/installations/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of locations based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The parameters to use for querying locations.\r\n * @return {Observable<LocationsOut>} An observable that emits the location's data.\r\n */\r\n getLocations (params: QueryParams): Observable<LocationsOut> {\r\n return this.http.get<ApiSuccess<LocationsOut>>(`${this.url}/locations`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the location details for a given location ID.\r\n *\r\n * @param {number} id - The unique identifier of the location.\r\n * @return {Observable<LocationOut>} An Observable containing the location details.\r\n */\r\n getLocation (id: number): Observable<LocationOut> {\r\n return this.http.get<ApiSuccess<LocationOut>>(`${this.url}/locations/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a location object to the server and returns the created location data.\r\n *\r\n * @param {LocationIn} body - The location input object to be sent in the request body.\r\n * @return {Observable<LocationOut>} An observable emitting the created location output object.\r\n */\r\n postLocation (body: LocationIn): Observable<LocationOut> {\r\n return this.http.post<ApiSuccess<LocationOut>>(`${this.url}/locations`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the location information for the specified ID.\r\n *\r\n * @param {number} id - The unique identifier of the location to be updated.\r\n * @param {LocationIn} body - The updated location data to be sent in the request body.\r\n * @return {Observable<LocationOut>} An observable containing the updated location information.\r\n */\r\n putLocation (id: number, body: LocationIn): Observable<LocationOut> {\r\n return this.http.put<ApiSuccess<LocationOut>>(`${this.url}/locations/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes a location by its unique identifier.\r\n *\r\n * @param {number} id - The unique identifier of the location to be deleted.\r\n * @return {Observable<{}>} An observable that emits an empty object upon successful deletion.\r\n */\r\n deleteLocation (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/locations/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of active supply entities.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter supply entities.\r\n * @return {Observable<SupplyEntitiesOut>} Observable emitting supply entities data.\r\n */\r\n getSupplyEntitiesActives (params: QueryParams): Observable<SupplyEntitiesOut> {\r\n return this.http.get<ApiSuccess<SupplyEntitiesOut>>(`${this.url}/supply-entities/actives`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves supply entities based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter and fetch the supply entities.\r\n * @return {Observable<SupplyEntitiesOut>} An observable that emits the supply entities data.\r\n */\r\n getSupplyEntities (params: QueryParams): Observable<SupplyEntitiesOut> {\r\n return this.http.get<ApiSuccess<SupplyEntitiesOut>>(`${this.url}/supply-entities`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends supply entities information to the server and receives the processed supply entities data in response.\r\n *\r\n * @param {SupplyEntitiesIn} body - The supply entities data to be sent to the server.\r\n * @return {Observable<SupplyEntitiesOut>} An observable containing the processed supply entities data.\r\n */\r\n putSupplyEntities (body: SupplyEntitiesIn): Observable<SupplyEntitiesOut> {\r\n return this.http.put<ApiSuccess<SupplyEntitiesOut>>(`${this.url}/supply-entities`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches a list of employees based on the specified query parameters.\r\n *\r\n * @param {QueryParams} params - The parameters to filter and sort the employees.\r\n * @return {Observable<EmployeesOut>} An observable that emits the list of employees.\r\n */\r\n getEmployees (params: QueryParams): Observable<EmployeesOut> {\r\n return this.http.get<ApiSuccess<EmployeesOut>>(`${this.url}/employees`, {\r\n params,\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches an employee's details based on the provided employee ID.\r\n *\r\n * @param {number} id - The unique identifier of the employee.\r\n * @return {Observable<EmployeeOut>} An observable that emits the employee's details.\r\n */\r\n getEmployee (id: number): Observable<EmployeeOut> {\r\n return this.http.get<ApiSuccess<EmployeeOut>>(`${this.url}/employees/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create a new employee record.\r\n *\r\n * @param {EmployeeIn} body - The data of the employee to be created.\r\n * @return {Observable<EmployeeOut>} An observable containing the created employee data.\r\n */\r\n postEmployee (body: EmployeeIn): Observable<EmployeeOut> {\r\n return this.http.post<ApiSuccess<EmployeeOut>>(`${this.url}/employees`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing employee record with the specified data.\r\n *\r\n * @param {number} id - The unique identifier of the employee to be updated.\r\n * @param {EmployeeIn} body - The employee data to update the record with.\r\n * @return {Observable<EmployeeOut>} An observable containing the updated employee data.\r\n */\r\n putEmployee (id: number, body: EmployeeIn): Observable<EmployeeOut> {\r\n return this.http.put<ApiSuccess<EmployeeOut>>(`${this.url}/employees/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes an employee based on the provided ID.\r\n *\r\n * @param {number} id - The unique identifier of the employee to delete.\r\n * @return {Observable<{}>} An observable containing the response data after the employee is deleted.\r\n */\r\n deleteEmployee (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/employees/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the list of employees for a specified location based on provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter and retrieve the location employees.\r\n * @returns {Observable<LocationEmployeesOut>} An observable that emits the list of employees for the specified location.\r\n */\r\n getLocationEmployees (params: QueryParams): Observable<LocationEmployeesOut> {\r\n return this.http.get<ApiSuccess<LocationEmployeesOut>>(`${this.url}/location-employees`, {\r\n params,\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the location employee details for a given employee ID.\r\n *\r\n * @param {number} id - The unique identifier of the employee whose location details are to be retrieved.\r\n * @return {Observable<LocationEmployeeOut>} An observable containing the location employee details.\r\n */\r\n getLocationEmployee (id: number): Observable<LocationEmployeeOut> {\r\n return this.http.get<ApiSuccess<LocationEmployeeOut>>(`${this.url}/location-employees/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes a specific location employee by their unique identifier.\r\n *\r\n * @param {number} id - The unique identifier of the employee to be deleted.\r\n * @return {Observable<{}>} - An observable emitting the server's response after the deletion.\r\n */\r\n deleteLocationEmployee (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/location-employees/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a batch of location-employee associations to the server for processing.\r\n *\r\n * @param {LocationEmployeeBatchIn} body - The object containing a batch of location-employee data to be posted.\r\n * @return {Observable<EmployeeOut>} An observable emitting the processed employee data from the server's response.\r\n */\r\n postLocationEmployeeBatch (body: LocationEmployeeBatchIn): Observable<EmployeeOut> {\r\n return this.http.post<ApiSuccess<EmployeeOut>>(`${this.url}/location-employees/batch`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of countries where the company operates.\r\n *\r\n * @param {QueryParams} params - The query parameters for the API request.\r\n * @return {Observable<CompanyCountriesOut>} An observable containing the list of company countries.\r\n */\r\n getCompanyCountries (params: QueryParams): Observable<CompanyCountriesOut> {\r\n return this.http.get<ApiSuccess<CompanyCountriesOut>>(`${this.url}/company-countries`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the country information for a specified company by its ID.\r\n *\r\n * @param {number} id - The unique identifier of the company.\r\n * @return {Observable<CompanyCountryOut>} An observable containing the country information of the company.\r\n */\r\n getCompanyCountry (id: number): Observable<CompanyCountryOut> {\r\n return this.http.get<ApiSuccess<CompanyCountryOut>>(`${this.url}/company-countries/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a request to update or create a company country entry on the server.\r\n *\r\n * @param {CompanyCountryIn} body The data object representing the company country information to be sent to the server.\r\n * @return {Observable<CompanyCountryOut>} An observable containing the server response with the updated or created company country data.\r\n */\r\n postCompanyCountry (body: CompanyCountryIn): Observable<CompanyCountryOut> {\r\n return this.http.post<ApiSuccess<CompanyCountryOut>>(`${this.url}/company-countries`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the country information for a specific company.\r\n *\r\n * @param {number} id - The unique identifier of the company whose country information needs to be updated.\r\n * @param {CompanyCountryIn} body - The updated country information to be applied to the company.\r\n * @return {Observable<CompanyCountryOut>} An observable that emits the updated company country information.\r\n */\r\n putCompanyCountry (id: number, body: CompanyCountryIn): Observable<CompanyCountryOut> {\r\n return this.http.put<ApiSuccess<CompanyCountryOut>>(`${this.url}/company-countries/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes a company-country association by its unique identifier.\r\n *\r\n * @param {number} id - The unique identifier of the company-country record to be deleted.\r\n * @return {Observable<{}>} An observable emitting the result of the delete operation.\r\n */\r\n deleteCompanyCountry (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/company-countries/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the reference currencies for a given country.\r\n *\r\n * @param {QueryParams} params - The query parameters to include in the request.\r\n * @return {Observable<CountryReferenceCurrenciesOut>} The observable containing the country reference currencies data.\r\n */\r\n getCountryReferenceCurrencies (params: QueryParams): Observable<CountryReferenceCurrenciesOut> {\r\n return this.http.get<ApiSuccess<CountryReferenceCurrenciesOut>>(`${this.url}/country-reference-currencies`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the reference currency details for a specific country using its ID.\r\n *\r\n * @param {number} id - The unique identifier of the country.\r\n * @return {Observable<CountryReferenceCurrencyOut>} An observable emitting the country's reference currency details.\r\n */\r\n getCountryReferenceCurrency (id: number): Observable<CountryReferenceCurrencyOut> {\r\n return this.http.get<ApiSuccess<CountryReferenceCurrencyOut>>(`${this.url}/country-reference-currencies/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of currencies for different countries along with their current exchange rates.\r\n *\r\n * @param {QueryParams} params - The query parameters used to fetch the country reference currencies.\r\n * @return {Observable<CountryCurrencyRate[]>} An observable that emits an array of country currency rates.\r\n */\r\n getCountryCurrenciesWithRate (params: QueryParams): Observable<CountryCurrencyRate[]> {\r\n return this.getCountryReferenceCurrencies(params)\r\n .pipe(mergeMap((currenciesData) => {\r\n const $observables = currenciesData.country_reference_currencies\r\n .map((item) =>\r\n this.getCurrentExchanges({\r\n currency_id: item.currency.id,\r\n }).pipe(\r\n map((exchangesData) => ({\r\n ...item,\r\n rate: exchangesData.exchanges[0]?.value,\r\n }))\r\n )\r\n )\r\n\r\n return forkJoin($observables)\r\n }))\r\n }\r\n\r\n /**\r\n * Updates the reference currency for a specified country.\r\n *\r\n * @param {number} id - The unique identifier of the country.\r\n * @param {CountryReferenceCurrencyIn} body - The data for updating the country's reference currency.\r\n * @return {Observable<CountryReferenceCurrencyOut>} An Observable emitting the updated country reference currency data.\r\n */\r\n putCountryReferenceCurrency (id: number, body: CountryReferenceCurrencyIn): Observable<CountryReferenceCurrencyOut> {\r\n return this.http.put<ApiSuccess<CountryReferenceCurrencyOut>>(`${this.url}/country-reference-currencies/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create a country reference currency.\r\n *\r\n * @param {CountryReferenceCurrencyIn} body - The payload containing the country reference currency data.\r\n * @return {Observable<CountryReferenceCurrencyOut>} An observable emitting the created country reference currency.\r\n */\r\n postCountryReferenceCurrency (body: CountryReferenceCurrencyIn): Observable<CountryReferenceCurrencyOut> {\r\n return this.http.post<ApiSuccess<CountryReferenceCurrencyOut>>(`${this.url}/country-reference-currencies`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create or update a country reference extra charge.\r\n *\r\n * @param {CountryReferenceExtraChargeIn} body - The request payload containing details about the country reference extra charge.\r\n * @return {Observable<CountryReferenceExtraChargeOut>} An observable containing the response with the created or updated country reference extra charge.\r\n */\r\n postCountryReferenceExtraCharge (body: CountryReferenceExtraChargeIn): Observable<CountryReferenceExtraChargeOut> {\r\n return this.http.post<ApiSuccess<CountryReferenceExtraChargeOut>>(`${this.url}/country-reference-extra-charges`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates a country reference extra charge by its ID.\r\n *\r\n * @param {number} id - The unique identifier of the country reference extra charge to be updated.\r\n * @param {CountryReferenceExtraChargeIn} body - The data to update the country reference extra charge with.\r\n * @return {Observable<CountryReferenceExtraChargeOut>} An observable that emits the updated country reference extra charge.\r\n */\r\n putCountryReferenceExtraCharge (id: number, body: CountryReferenceExtraChargeIn): Observable<CountryReferenceExtraChargeOut> {\r\n return this.http.put<ApiSuccess<CountryReferenceExtraChargeOut>>(`${this.url}/country-reference-extra-charges/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Enables or disables a country reference extra charge based on the provided parameters.\r\n *\r\n * @param {CountryReferenceExtraCharge} extraCharge - The country reference extra charge object to be updated.\r\n * @param {boolean} [isActive] - Optional parameter to explicitly set the active status of the extra charge.\r\n * If not provided, the current active status will be toggled.\r\n * @return {Observable<EmployeeCustomersOut>} An Observable that emits the updated employee customers output.\r\n */\r\n patchCountryReferenceExtraCharge (extraCharge: CountryReferenceExtraCharge, isActive?: boolean): Observable<EmployeeCustomersOut> {\r\n return this.http.patch<ApiSuccess<EmployeeCustomersOut>>(`${this.url}/country-reference-extra-charges/${extraCharge.id}`, {\r\n is_active: isActive ?? !extraCharge.is_active\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches exchange data based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters for retrieving exchange data.\r\n * @return {Observable<ExchangesOut>} An observable containing the exchange data.\r\n */\r\n getExchanges (params: QueryParams): Observable<ExchangesOut> {\r\n return this.http.get<ApiSuccess<ExchangesOut>>(`${this.url}/exchanges`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create or update an exchange.\r\n *\r\n * @param {ExchangeIn} body - The request body containing the exchange data to be sent.\r\n * @return {Observable<ExchangeOut>} An observable that emits the response containing the created or updated exchange data.\r\n */\r\n postExchange (body: ExchangeIn): Observable<ExchangeOut> {\r\n return this.http.post<ApiSuccess<ExchangeOut>>(`${this.url}/exchanges`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing exchange with new data.\r\n *\r\n * @param {number} id - The unique identifier of the exchange to update.\r\n * @param {ExchangeIn} body - The data to update the exchange with.\r\n * @return {Observable<ExchangeOut>} An observable that emits the updated exchange data.\r\n */\r\n putExchange (id: number, body: ExchangeIn): Observable<ExchangeOut> {\r\n return this.http.put<ApiSuccess<ExchangeOut>>(`${this.url}/exchanges/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the current exchanges based on the given query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the exchanges.\r\n *\r\n * @returns {Observable<ExchangesOut>} - An observable that emits the API response data containing the current exchanges.\r\n */\r\n getCurrentExchanges (params: QueryParams): Observable<ExchangesOut> {\r\n return this.http.get<ApiSuccess<ExchangesOut>>(`${this.url}/exchanges/current`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the country-specific tax information for a company.\r\n *\r\n * @param {QueryParams} params - The parameters used to filter and query the taxes.\r\n * @return {Observable<CompanyCountryTaxesOut>} An observable that emits the tax information.\r\n */\r\n getCompanyCountryTaxes (params: QueryParams): Observable<CompanyCountryTaxesOut> {\r\n return this.http.get<ApiSuccess<CompanyCountryTaxesOut>>(`${this.url}/company-country-taxes`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches account information based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters for fetching account data.\r\n * @return {Observable<AccountsOut>} An observable emitting the account data.\r\n */\r\n getAccounts (params: QueryParams): Observable<AccountsOut> {\r\n return this.http.get<ApiSuccess<AccountsOut>>(`${this.url}/accounts`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the account information for the specified account ID.\r\n *\r\n * @param {number} id - The unique identifier of the account to retrieve.\r\n * @return {Observable<AccountOut>} An observable that emits the account details.\r\n */\r\n getAccount (id: number): Observable<AccountOut> {\r\n return this.http.get<ApiSuccess<AccountOut>>(`${this.url}/accounts/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Creates a new account by sending account details in the body.\r\n *\r\n * @param {AccountIn} body - The account information to be sent in the request body.\r\n * @return {Observable<AccountOut>} Observable that emits the created account details upon success.\r\n */\r\n postAccount (body: AccountIn): Observable<AccountOut> {\r\n return this.http.post<ApiSuccess<AccountOut>>(`${this.url}/accounts`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an account with the specified ID using the provided data.\r\n *\r\n * @param {number} id - The unique identifier of the account to be updated.\r\n * @param {AccountIn} body - The data to update the account with.\r\n * @return {Observable<AccountOut>} An observable emitting the updated account details.\r\n */\r\n putAccount (id: number, body: AccountIn): Observable<AccountOut> {\r\n return this.http.put<ApiSuccess<AccountOut>>(`${this.url}/accounts/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches account entity data from the server based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to be sent with the HTTP request.\r\n * @return {Observable<AccountEntitiesOut>} An observable that emits the account entities data.\r\n */\r\n getAccountEntities (params: QueryParams): Observable<AccountEntitiesOut> {\r\n return this.http.get<ApiSuccess<AccountEntitiesOut>>(`${this.url}/account-entities`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an account entity using the provided details.\r\n *\r\n * @param {AccountEntitiesIn} body The account entity data to be updated.\r\n * @return {Observable<AccountEntitiesOut>} An observable containing the updated account entity details.\r\n */\r\n putAccountEntity (body: AccountEntitiesIn): Observable<AccountEntitiesOut> {\r\n return this.http.put<ApiSuccess<AccountEntitiesOut>>(`${this.url}/account-entities`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the list of active account entities based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The parameters to filter and query active account entities.\r\n * @return {Observable<AccountEntitiesOut>} An observable that emits the list of active account entities.\r\n */\r\n getAccountEntitiesActives (params: QueryParams): Observable<AccountEntitiesOut> {\r\n return this.http.get<ApiSuccess<AccountEntitiesOut>>(`${this.url}/account-entities/actives`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches a list of account categories based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter the account categories.\r\n * @return {Observable<AccountCategoriesOut>} An observable that emits the fetched account categories data.\r\n */\r\n getAccountCategories (params: QueryParams): Observable<AccountCategoriesOut> {\r\n return this.http.get<ApiSuccess<AccountCategoriesOut>>(`${this.url}/account-categories`, { params, })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of account types from the server.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter or customize the request.\r\n * @return {Observable<AccountTypesOut>} An observable emitting the account types data.\r\n */\r\n getAccountTypes (params: QueryParams): Observable<AccountTypesOut> {\r\n return this.http.get<ApiSuccess<AccountTypesOut>>(`${this.url}/account-types`, { params, })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the account type for the given account ID.\r\n *\r\n * @param {number} id - The unique identifier of the account.\r\n * @return {Observable<AccountTypeOut>} An observable that emits the account type data.\r\n */\r\n getAccountType (id: number): Observable<AccountTypeOut> {\r\n return this.http.get<ApiSuccess<AccountTypeOut>>(`${this.url}/account-types/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create a new account type.\r\n *\r\n * @param {AccountTypeIn} body - The data for the account type to be created.\r\n * @return {Observable<AccountTypeOut>} An observable that emits the created account type object.\r\n */\r\n postAccountType (body: AccountTypeIn): Observable<AccountTypeOut> {\r\n return this.http.post<ApiSuccess<AccountTypeOut>>(`${this.url}/account-types`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an account type with the specified ID using the provided data.\r\n *\r\n * @param {number} id - The unique identifier of the account type to update.\r\n * @param {AccountTypeIn} body - The data to update the account type with.\r\n * @return {Observable<AccountTypeOut>} An observable containing the updated account type data.\r\n */\r\n putAccountType (id: number, body: AccountTypeIn): Observable<AccountTypeOut> {\r\n return this.http.put<ApiSuccess<AccountTypeOut>>(`${this.url}/account-types/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves parameters based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter or fetch the desired parameters.\r\n * @return {Observable<ParametersOut>} An observable that emits the fetched parameters.\r\n */\r\n getParameters (params: QueryParams): Observable<ParametersOut> {\r\n return this.http.get<ApiSuccess<ParametersOut>>(`${this.url}/parameters`, { params, })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the parameter values based on the provided parameter names.\r\n *\r\n * @param {Object} params - An object containing the required parameters.\r\n * @param {string[]} params.paramNames - An array of parameter names for which the values need to be fetched.\r\n * @return {Observable<ParametersValuesOut>} An observable that emits the fetched parameter values.\r\n */\r\n postParametersValues ({ paramNames }: ParametersValuesIn): Observable<ParametersValuesOut> {\r\n const parameters = paramNames.map((p) => ({ name: p }))\r\n\r\n return this.http.post<ApiSuccess<ParametersValuesOut>>(`${this.url}/parameters-values`, { parameters })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves parameter values based on the provided level configuration.\r\n *\r\n * @param {ParametersByLevelIn} parameters - The input object containing the criteria or level details to retrieve the parameters.\r\n * @return {Observable<ParametersValuesOut>} An observable that emits the parameter values fetched from the server.\r\n */\r\n postParameterValueByModel (parameters: ParametersByLevelIn): Observable<ParametersValuesOut> {\r\n return this.http.post<ApiSuccess<ParametersValuesOut>>(`${this.url}/parameters-values`, { parameters })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the value of a specified parameter.\r\n *\r\n * @param {Object} input - The input object containing the parameter details.\r\n * @param {string} input.paramName - The name of the parameter whose value is to be retrieved.\r\n * @return {Observable<ParameterValueOut>} An observable emitting the value of the specified parameter.\r\n */\r\n getParameterValue ({\r\n paramName,\r\n }: ParameterValueIn): Observable<ParameterValueOut> {\r\n return this.http.get<ApiSuccess<ParameterValueOut>>(`${this.url}/parameters-values/${paramName}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of country references based on the given query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters for retrieving country references.\r\n * @return {Observable<CountryReferencesOut>} An observable containing the country reference data.\r\n */\r\n getCountryReferences (params: QueryParams): Observable<CountryReferencesOut> {\r\n return this.http.get<ApiSuccess<CountryReferencesOut>>(`${this.url}/country-references`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the country reference data for a given country ID.\r\n *\r\n * @param {number} id - The unique identifier of the country for which the reference data is to be retrieved.\r\n * @return {Observable<CountryReferenceOut>} An observable containing the country reference data.\r\n */\r\n getCountryReference (id: number): Observable<CountryReferenceOut> {\r\n return this.http.get<ApiSuccess<CountryReferenceOut>>(`${this.url}/country-references/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates a country reference resource with the specified ID and data.\r\n *\r\n * @param {number} id - The unique identifier of the country reference to be updated.\r\n * @param {CountryReferenceIn} body - The data to update the country reference with.\r\n * @return {Observable<CountryReferenceOut>} An observable that emits the updated country reference object.\r\n */\r\n putCountryReference (id: number, body: CountryReferenceIn): Observable<CountryReferenceOut> {\r\n return this.http.put<ApiSuccess<CountryReferenceOut>>(`${this.url}/country-references/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the list of workflows based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter workflows.\r\n * @return {Observable<WorkflowsOut>} An observable containing the workflow data.\r\n */\r\n getWorkflows (params: QueryParams): Observable<WorkflowsOut> {\r\n return this.http.get<ApiSuccess<WorkflowsOut>>(`${this.url}/workflows`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the list of employee customer\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter employee customers.\r\n * @return {Observable<EmployeeCustomersOut>} An observable containing the employee customer data.\r\n */\r\n getEmployeesCustomers (params: QueryParams): Observable<EmployeesCustomersOut> {\r\n return this.http.get<ApiSuccess<EmployeesCustomersOut>>(`${this.url}/employee-customers`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create or update employee customer records and processes the server response.\r\n *\r\n * @param {EmployeeCustomersIn} body - The request payload containing employee customer data to be sent to the server.\r\n * @return {Observable<EmployeeCustomersOut>} An observable that emits the updated employee customer data on successful response.\r\n */\r\n postEmployeeCustomers (body: EmployeeCustomersIn): Observable<EmployeeCustomersOut> {\r\n return this.http.post<ApiSuccess<EmployeeCustomersOut>>(`${this.url}/employee-customers`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the employee-customer association record identified by the given ID with the provided data.\r\n *\r\n * @param {number} id - The identifier of the employee-customer record to update.\r\n * @param {EmployeeCustomersIn} body - The data to update the employee-customer record with.\r\n * @return {Observable<EmployeeCustomersOut>} An observable that emits the updated employee-customer data.\r\n */\r\n putEmployeeCustomers (id: number, body: EmployeeCustomersIn): Observable<EmployeeCustomersOut> {\r\n return this.http.put<ApiSuccess<EmployeeCustomersOut>>(`${this.url}/employee-customers/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the employee-customer details based on the provided employee customer ID.\r\n *\r\n * @param {number} id - The identifier of the employee-customer record to update.\r\n * @return {Observable<EmployeeCustomersOut>} An observable that emits the updated employee-customer data.\r\n */\r\n getEmployeeCustomer (id: number): Observable<EmployeeCustomersOut> {\r\n return this.http.get<ApiSuccess<EmployeeCustomersOut>>(`${this.url}/employee-customers/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Enables or disables an employee customer's active state.\r\n *\r\n * @param {EmployeeCustomerDhl} employee - The employee customer object to be updated.\r\n * @param {boolean} [isActive] - Optional parameter to explicitly set the active state.\r\n * If null or undefined, the active state will be toggled.\r\n * @return {Observable<EmployeeCustomersOut>} An observable containing the updated employee customer output.\r\n */\r\n patchEmployeeCustomers (employee: EmployeeCustomerDhl, isActive?: boolean): Observable<EmployeeCustomersOut> {\r\n return this.http.patch<ApiSuccess<EmployeeCustomersOut>>(`${this.url}/employee-customers/${employee.id}`, {\r\n is_active: isActive ?? !employee.is_active\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Submits a file containing employee customer data for a specific country to the server.\r\n *\r\n * @param {number} countryId - The identifier of the country for which the data is being uploaded.\r\n * @param {File} file - The file contains employee customer data to be uploaded.\r\n * @return {Observable<BoardingProcessIdIn>} Observable that emits the processed boarding process ID on success.\r\n */\r\n postEmployeeCustomersLoad (countryId: number, file: File): Observable<BoardingProcessIdIn> {\r\n const body = new FormData()\r\n\r\n body.append('file', file)\r\n body.append('country_id', countryId.toString())\r\n\r\n return this.http.post<ApiSuccess<BoardingProcessIdIn>>(`${this.url}/employee-customers/load`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Downloads a file containing customer data for a specific employee based on the provided country ID.\r\n *\r\n * @param {number} id - The ID of the country used as a filter for fetching the employee's customers.\r\n * @return {Observable<Blob>} An observable that emits the file blob containing the customer data.\r\n */\r\n getEmployeeCustomersDownload (id:number):Observable<Blob> {\r\n return this.http.get(`${this.url}/employee-customers/download`, {\r\n params: { country_id: id },\r\n responseType: 'blob'\r\n })\r\n }\r\n\r\n /**\r\n * Retrieves the boarding process details for a given ID.\r\n *\r\n * @param {number} id - The unique identifier of the boarding process to retrieve.\r\n * @return {Observable<BoardingProcessIn>} An observable containing the boarding process details.\r\n */\r\n getBoardingProcess (id:number) {\r\n return this.http.get<ApiSuccess<BoardingProcessIn>>(`${this.url}/boarding-process/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches a list of systems based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The parameters used to filter the systems.\r\n * @return {Observable<SystemsOut>} An observable that emits the retrieved systems data.\r\n */\r\n getSystems (params: QueryParams): Observable<SystemsOut> {\r\n return this.http.get<ApiSuccess<SystemsOut>>(`${this.url}/systems`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the system by the specified ID.\r\n *\r\n * @param {number} id - The unique identifier of the system to be retrieved.\r\n * @return {Observable<SystemOut>} An observable that emits the requested system information.\r\n */\r\n getSystem (id: number): Observable<SystemOut> {\r\n return this.http.get<ApiSuccess<SystemOut>>(`${this.url}/systems/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create or update a system.\r\n *\r\n * @param {SystemIn} body - The data representing the system to be created or updated.\r\n * @return {Observable<SystemOut>} An observable emitting the resulting system output after the API request succeeds.\r\n */\r\n postSystem (body: SystemIn): Observable<SystemOut> {\r\n return this.http.post<ApiSuccess<SystemOut>>(`${this.url}/systems`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the system identified by the given ID with the provided request body and returns the updated system details.\r\n *\r\n * @param {number} id - The unique identifier of the system to be updated.\r\n * @param {SystemIn} body - The payload containing the updated system details.\r\n * @return {Observable<SystemOut>} An observable emitting the updated system data.\r\n */\r\n putSystem (id: number, body: SystemIn): Observable<SystemOut> {\r\n return this.http.put<ApiSuccess<SystemOut>>(`${this.url}/systems/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of system entities based on the specified query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter or specify the system entities to retrieve.\r\n * @return {Observable<SystemEntitiesOut>} An Observable that emits the retrieved system entities.\r\n */\r\n getSystemEntities (params: QueryParams): Observable<SystemEntitiesOut> {\r\n return this.http.get<ApiSuccess<SystemEntitiesOut>>(`${this.url}/system-entities`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the system entities by sending the provided data to the server.\r\n *\r\n * @param {SystemEntitiesIn} body - The data object representing the system entities to be updated.\r\n * @return {Observable<SystemEntitiesOut>} An observable containing the updated system entities data.\r\n */\r\n putSystemEntities (body: SystemEntitiesIn): Observable<SystemEntitiesOut> {\r\n return this.http.put<ApiSuccess<SystemEntitiesOut>>(`${this.url}/system-entities`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves workflow configurations based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the workflow configurations.\r\n * @return {Observable<WorkflowConfigsOut>} An observable emitting the workflow configurations.\r\n */\r\n getWorkflowConfigs (params: QueryParams): Observable<WorkflowConfigsOut> {\r\n return this.http.get<ApiSuccess<WorkflowConfigsOut>>(`${this.url}/workflow-configs`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a batch of workflow configuration data to the server for processing.\r\n *\r\n * @param {WorkflowConfigsBatchIn} body - The input data containing a batch of workflow configurations to be sent.\r\n * @return {Observable<WorkflowConfigsOut>} An observable that emits the processed batch of workflow configuration data as a response.\r\n */\r\n postWorkflowConfigsBatch (body: WorkflowConfigsBatchIn): Observable<WorkflowConfigsOut> {\r\n return this.http.post<ApiSuccess<WorkflowConfigsOut>>(`${this.url}/workflow-configs/batch`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create a new company and returns the created company's details.\r\n *\r\n * @param {CompanyIn} body - The payload containing the details of the company to be created.\r\n * @return {Observable<CompanyOut>} An Observable emitting the response with the created company's details.\r\n */\r\n postCompany (body: CompanyIn): Observable<CompanyOut> {\r\n return this.http.post<ApiSuccess<CompanyOut>>(`${this.url}/companies`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the details of an existing company using its ID.\r\n *\r\n * @param {number} id - The unique identifier of the company to update.\r\n * @param {CompanyIn} body - The object containing the updated company data.\r\n * @return {Observable<CompanyOut>} An observable that emits the updated company details.\r\n */\r\n putCompany (id: number, body: CompanyIn): Observable<CompanyOut> {\r\n return this.http.put<ApiSuccess<CompanyOut>>(`${this.url}/companies/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes a company by its unique identifier.\r\n *\r\n * @param {number} id - The unique identifier of the company to be deleted.\r\n * @return {Observable<{}>} An observable that emits an empty object upon successful deletion or an error if the operation fails.\r\n */\r\n deleteCompany (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/companies/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches product entities from the server based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params The query parameters used to modify the request for product entities.\r\n * @return {Observable<ProductEntitiesOut>} An observable that emits the product entities retrieved from the server.\r\n */\r\n getProductEntities (params: QueryParams): Observable<ProductEntitiesOut> {\r\n return this.http.get<ApiSuccess<ProductEntitiesOut>>(`${this.url}/product-entities`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a PUT request to update product entities and returns the updated entity.\r\n *\r\n * @param {ProductEntitiesIn} body - The payload containing the data to update the product entity.\r\n * @return {Observable<ProductEntitiesOut>} Observable that emits the updated product entity.\r\n */\r\n putProductEntities (body: ProductEntitiesIn): Observable<ProductEntitiesOut> {\r\n return this.http.put<ApiSuccess<ProductEntitiesOut>>(`${this.url}/product-entities`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the country reference products based on the given query parameters.\r\n *\r\n * @param {QueryParams} params The query parameters used to filter and retrieve the country reference products.\r\n * @return {Observable<CountryReferenceProductsOut>} An observable emitting the fetched country reference products data.\r\n */\r\n getCountryReferenceProducts (params: QueryParams): Observable<CountryReferenceProductsOut> {\r\n return this.http.get<ApiSuccess<CountryReferenceProductsOut>>(`${this.url}/country-reference-products`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a request to update or create country reference products.\r\n *\r\n * @param {CountryReferenceProductIn} body - The payload containing the details of the country reference products to post.\r\n * @return {Observable<CountryReferenceProductOut>} An observable that emits the updated or created country reference product data.\r\n */\r\n postCountryReferenceProducts (body: CountryReferenceProductIn): Observable<CountryReferenceProductOut> {\r\n return this.http.post<ApiSuccess<CountryReferenceProductOut>>(`${this.url}/country-reference-products`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates a country reference product with the specified ID using the provided data.\r\n *\r\n * @param {number} id - The unique identifier of the country reference product to update.\r\n * @param {CountryReferenceProductIn} body - The updated country reference product data to be sent in the request body.\r\n * @return {Observable<CountryReferenceProductOut>} An observable emitting the updated country reference product.\r\n */\r\n putCountryReferenceProducts (id: number, body: CountryReferenceProductIn): Observable<CountryReferenceProductOut> {\r\n return this.http.put<ApiSuccess<CountryReferenceProductOut>>(`${this.url}/country-reference-products/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the extra charge entities from the server based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - An object containing the query parameters to filter the extra charge entities.\r\n * @return {Observable<ExtraChargeEntitiesOut>} An observable that emits the extra charge entities retrieved from the server.\r\n */\r\n getExtraChargeEntities (params: QueryParams): Observable<ExtraChargeEntitiesOut> {\r\n return this.http.get<ApiSuccess<ExtraChargeEntitiesOut>>(`${this.url}/extracharge-entities`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates extra charge entities by sending the provided data to the server.\r\n *\r\n * @param {ExtraChargeEntitiesIn} body - The data to update the extra charge entities.\r\n * @return {Observable<ExtraChargeEntitiesOut>} An observable that emits the updated extra charge entities.\r\n */\r\n putExtraChargeEntities (body: ExtraChargeEntitiesIn): Observable<ExtraChargeEntitiesOut> {\r\n return this.http.put<ApiSuccess<ExtraChargeEntitiesOut>>(`${this.url}/extracharge-entities`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the parameter configurations based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the parameter configurations.\r\n * @return {Observable<ParameterConfigsOut>} An observable that emits the parameter configurations data.\r\n */\r\n getParameterConfigs (params: QueryParams): Observable<ParameterConfigsOut> {\r\n return this.http.get<ApiSuccess<ParameterConfigsOut>>(`${this.url}/parameter-configs`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create or update a parameter configuration.\r\n *\r\n * @param {ParameterConfigIn} body - The input data object containing the parameter configuration to be sent in the request body.\r\n * @return {Observable<ParameterConfigOut>} An observable that emits the server's response containing the updated or newly created parameter configuration.\r\n */\r\n postParameterConfig (body: ParameterConfigIn): Observable<ParameterConfigOut> {\r\n return this.http.post<ApiSuccess<ParameterConfigOut>>(`${this.url}/parameter-configs`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the configuration of a parameter with the provided ID and input data.\r\n *\r\n * @param {number} id - The unique identifier of the parameter configuration to be updated.\r\n * @param {ParameterConfigIn} body - The input data containing the updated configuration for the parameter.\r\n * @return {Observable<ParameterConfigOut>} An observable that emits the updated parameter configuration.\r\n */\r\n putParameterConfig (id: number, body: ParameterConfigIn): Observable<ParameterConfigOut> {\r\n return this.http.put<ApiSuccess<ParameterConfigOut>>(`${this.url}/parameter-configs/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes a parameter configuration specified by its ID.\r\n *\r\n * @param {number} id - The unique identifier of the parameter configuration to be deleted.\r\n * @return {Observable<ParameterConfigOut>} An observable containing the deleted parameter configuration data.\r\n */\r\n deleteParameterConfig (id: number): Observable<ParameterConfigOut> {\r\n return this.http.delete<ApiSuccess<ParameterConfigOut>>(`${this.url}/parameter-configs/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of TDX account settings based on the given query parameters.\r\n *\r\n * @param {QueryParams} params - Query parameters used to filter or paginate the results.\r\n * @returns {Observable<TDXAccountsSettingsOut>} An observable containing the list of TDX account settings.\r\n */\r\n getTDXAccountsSettings (params: QueryParams): Observable<TDXAccountsSettingsOut> {\r\n return this.http.get<ApiSuccess<TDXAccountsSettingsOut>>(`${this.url}/tdx-account-settings`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a single TDX account setting by its ID.\r\n *\r\n * @param {number} id - The unique identifier of the TDX account setting to be retrieved.\r\n * @returns {Observable<TDXAccountSettingsOut>} An observable containing the requested TDX account setting.\r\n */\r\n getTDXAccountSettings (id: number): Observable<TDXAccountSettingsOut> {\r\n return this.http.get<ApiSuccess<TDXAccountSettingsOut>>(`${this.url}/tdx-account-settings/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Creates a new TDX account setting with the provided data.\r\n *\r\n * @param {TDXAccountSettingsIn} body - The data used to create the new TDX account setting.\r\n * @returns {Observable<TDXAccountSettingsOut>} An observable containing the newly created TDX account setting.\r\n */\r\n postTDXAccountSettings (body:TDXAccountSettingsIn): Observable<TDXAccountSettingsOut> {\r\n return this.http.post<ApiSuccess<TDXAccountSettingsOut>>(`${this.url}/tdx-account-settings`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing TDX account setting identified by its ID.\r\n *\r\n * @param {number} id - The unique identifier of the TDX account setting to be updated.\r\n * @param {TDXAccountSettingsIn} body - The updated data for the TDX account setting.\r\n * @returns {Observable<TDXAccountSettingsOut>} An observable containing the updated TDX account setting.\r\n */\r\n putTDXAccountSettings (id: number, body:TDXAccountSettingsIn): Observable<TDXAccountSettingsOut> {\r\n return this.http.put<ApiSuccess<TDXAccountSettingsOut>>(`${this.url}/tdx-account-settings/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the employees of a specific location using a provided token.\r\n *\r\n * @param params - Input parameters for the request, defined by the `LocationEmployeesIn` interface.\r\n * @returns An `Observable<LocationEmployeesOut>` that emits the employees\r\n * associated with the given location.\r\n * @returns The response type is `ApiSuccess<LocationEmployeesOut>`, from which the `data` field is extracted.\r\n */\r\n getLocationEmployeesByToken (params: { token: string, queryParams: QueryParams }): Observable<LocationEmployeesOut> {\r\n return this.http.get<ApiSuccess<LocationEmployeesOut>>(`${this.url}/location-employees`, {\r\n params: params.queryParams,\r\n headers: {\r\n Authorization: `Bearer ${params.token}`\r\n }\r\n }).pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { map, Observable } from 'rxjs'\r\nimport { CookieService } from 'ngx-cookie-service'\r\nimport { CompositionCountryReferencesOut, ShipmentOut } from './models/api-composition.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiCompositionService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private cookie: CookieService,\r\n private http: HttpClient\r\n ) {}\r\n\r\n /**\r\n * Retrieves the API security URL from the environment configuration.\r\n *\r\n * @return {string} The API security URL.\r\n */\r\n get url (): string {\r\n return this.environments.apiCompositionUrl ?? ''\r\n }\r\n\r\n /**\r\n * Retrieves shipment details based on the provided shipment ID.\r\n *\r\n * @param {number} id - The unique identifier of the shipment to retrieve.\r\n * @return {Observable<ShipmentOut>} An observable that emits the details of the shipment.\r\n */\r\n getShipment (id: number): Observable<ShipmentOut> {\r\n return this.http.get<ApiSuccess<ShipmentOut>>(`${this.url}/shipments/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the country references data based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters for the API request.\r\n * @return {Observable<CompositionCountryReferencesOut>} - An observable emitting the country references.\r\n */\r\n getCountryReferences (params: QueryParams): Observable<CompositionCountryReferencesOut> {\r\n return this.http.get<ApiSuccess<CompositionCountryReferencesOut>>(`${this.url}/country-references`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport { map, Observable } from 'rxjs'\r\nimport {\r\n CatalogsOut, CountryGroupsOut,\r\n CriteriaIn,\r\n CriteriaOut,\r\n FieldsOut,\r\n OverridesOut, RuleCriteriaIn, RuleIn,\r\n RuleOut, RulesByCriteriaOut, RulesIn,\r\n RulesOut\r\n} from './models/api-customs.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiCustomsService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the cash operations API from the environment configurations.\r\n *\r\n * @return {string} The URL of the cash operations API.\r\n */\r\n get url (): string {\r\n return this.environments.apiCustomsUrl ?? ''\r\n }\r\n\r\n /**\r\n * Fetches the available fields for a given level.\r\n *\r\n * @return {Observable<FieldsOut>} An Observable that emits the list of fields.\r\n * @param params\r\n */\r\n getFields (params: QueryParams): Observable<FieldsOut> {\r\n return this.http.get<ApiSuccess<FieldsOut>>(\r\n `${this.url}/fields`, {\r\n params\r\n }\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Retrieves override configurations for a given level.\r\n *\r\n * @return {Observable<OverridesOut>} An Observable that emits the overrides configuration.\r\n * @param params\r\n */\r\n getOverrides (params: QueryParams): Observable<OverridesOut> {\r\n return this.http.get<ApiSuccess<OverridesOut>>(\r\n `${this.url}/overrides`, {\r\n params\r\n }\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Fetches the catalogs used in customs operations.\r\n *\r\n * @return {Observable<CatalogsOut>} An Observable that emits the catalogs.\r\n */\r\n getCatalogs (params: QueryParams): Observable<CatalogsOut> {\r\n return this.http.get<ApiSuccess<CatalogsOut>>(\r\n `${this.url}/catalogs`, {\r\n params\r\n }\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Retrieves the list of rules based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - Query parameters to filter the rules.\r\n * @return {Observable<RulesOut>} An Observable that emits the list of rules.\r\n */\r\n getRules (params: QueryParams): Observable<RulesOut> {\r\n return this.http.get<ApiSuccess<RulesOut>>(\r\n `${this.url}/rules`,\r\n { params }\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Retrieves the details of a specific rule by its ID.\r\n *\r\n * @param {number} id - The ID of the rule.\r\n * @return {Observable<RuleOut>} An Observable that emits the rule details.\r\n */\r\n getRule (id: number): Observable<RuleOut> {\r\n return this.http.get<ApiSuccess<RuleOut>>(\r\n `${this.url}/rules/${id}`\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Creates a new criteria.\r\n *\r\n * @param {CriteriaIn} body - The criteria payload to create.\r\n * @return {Observable<CriteriaOut>} An Observable that emits the created criteria.\r\n */\r\n postCriteria (body: CriteriaIn): Observable<CriteriaOut> {\r\n return this.http.post<ApiSuccess<CriteriaOut>>(`${this.url}/criteria`,\r\n body\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Creates a new rule.\r\n *\r\n * @param {RuleIn} body - The rule payload to create.\r\n * @return {Observable<RuleOut>} An Observable that emits the created rule.\r\n */\r\n postRules (body: RuleIn): Observable<RuleOut> {\r\n return this.http.post<ApiSuccess<RuleOut>>(`${this.url}/rules`,\r\n body\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Retrieves rules that match the given criteria.\r\n *\r\n * @param {RuleCriteriaIn} params - Criteria used to search for matching rules.\r\n * @return {Observable<RulesByCriteriaOut>} An Observable that emits the list of matching rules.\r\n */\r\n postRulesByCriteria (params: RuleCriteriaIn): Observable<RulesByCriteriaOut> {\r\n return this.http.post<ApiSuccess<RulesByCriteriaOut>>(\r\n `${this.url}/rules/by-criteria`,\r\n params\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Enables a specific rule by its ID.\r\n *\r\n * @param {number} id - The ID of the rule to enable.\r\n * @return {Observable<{}>} An Observable that emits an empty array on success.\r\n */\r\n putRuleActivate (id:number): Observable<{}> {\r\n return this.http.put<ApiSuccess<{}>>(\r\n `${this.url}/rules/${id}/activate`, null\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Disables (deletes) a specific rule by its ID.\r\n *\r\n * @param {number} id - The ID of the rule to disable.\r\n * @return {Observable<[]>} An Observable that emits an empty array on success.\r\n */\r\n deleteRule (id:number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(\r\n `${this.url}/rules/${id}`\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Updates an existing criteria by its ID.\r\n *\r\n * @param {number} id - The ID of the criteria.\r\n * @param {CriteriaIn} body - The updated criteria payload.\r\n * @return {Observable<CriteriaOut>} An Observable that emits the updated criteria.\r\n */\r\n putCriteria (id:number, body: CriteriaIn): Observable<CriteriaOut> {\r\n return this.http.put<ApiSuccess<CriteriaOut>>(\r\n `${this.url}/criteria/${id}`,\r\n body\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Updates an existing rule by its ID.\r\n *\r\n * @param {number} id - The ID of the rule.\r\n * @param {RulesIn} body - The updated rule payload.\r\n * @return {Observable<RuleOut>} An Observable that emits the updated rule.\r\n */\r\n putRule (id:number, body: RulesIn): Observable<RuleOut> {\r\n return this.http.put<ApiSuccess<RuleOut>>(\r\n `${this.url}/rules/${id}`,\r\n body\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n\r\n /**\r\n * Retrieves the list of country groups used in customs operations.\r\n *\r\n * @return {Observable<CountryGroupsOut>} An Observable that emits the list of country groups.\r\n */\r\n getCountryGroups (params: QueryParams): Observable<CountryGroupsOut> {\r\n return this.http.get<ApiSuccess<CountryGroupsOut>>(\r\n `${this.url}/country-groups`,\r\n {\r\n params\r\n }\r\n ).pipe(\r\n map(({ data }) => data)\r\n )\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http'\r\nimport { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { map, Observable } from 'rxjs'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport {\r\n CustomerRestrictionIn,\r\n CustomerRestrictionInV2,\r\n CustomerRestrictionOut,\r\n CustomerRestrictionsOut,\r\n DiscountIn,\r\n DiscountOut,\r\n DiscountsOut,\r\n LoyaltyPeriodIn,\r\n LoyaltyPeriodOut,\r\n LoyaltyPeriodsOut,\r\n LoyaltyRuleIn,\r\n LoyaltyRuleOut,\r\n LoyaltyRulesOut,\r\n OperationsLoadTopCustomerV2In,\r\n TopCustomersOut\r\n} from './models/api-discounts.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiDiscountsService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Gets the API endpoint URL for discounts from the environments configuration.\r\n *\r\n * @return {string} The URL for the discounts API. Returns an empty string if not defined.\r\n */\r\n get url (): string {\r\n return this.environments.apiDiscountsUrl ?? ''\r\n }\r\n\r\n /**\r\n * Fetches available discounts based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter and retrieve discounts.\r\n * @return {Observable<DiscountsOut>} An Observable that emits the retrieved discounts data.\r\n */\r\n getDiscounts (params: QueryParams): Observable<DiscountsOut> {\r\n return this.http.get<ApiSuccess<DiscountsOut>>(`${this.url}/discounts`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a request to create or update discounts on the server.\r\n *\r\n * @param {DiscountIn} body - The discount information to be submitted.\r\n * @return {Observable<DiscountOut>} An Observable emitting the server's response containing the created or updated discount details.\r\n */\r\n postDiscounts (body: DiscountIn): Observable<DiscountOut> {\r\n return this.http.post<ApiSuccess<DiscountOut>>(`${this.url}/discounts`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the discount information for a specific item.\r\n *\r\n * @param {number} id - The unique identifier of the item whose discount is to be updated.\r\n * @param {DiscountIn} body - The payload containing the updated discount details.\r\n * @return {Observable<DiscountOut>} An observable emitting the updated discount details.\r\n */\r\n putDiscounts (id: number, body: DiscountIn): Observable<DiscountOut> {\r\n return this.http.put<ApiSuccess<DiscountOut>>(`${this.url}/discounts/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the top customers based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter and sort the top customers.\r\n * @return {Observable<TopCustomersOut>} An observable emitting the list of top customers.\r\n */\r\n getTopCustomers (params: QueryParams): Observable<TopCustomersOut> {\r\n return this.http.get<ApiSuccess<TopCustomersOut>>(`${this.url}/top-customers`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to load the top customer data in the system, using the provided input.\r\n * Transforms the API response to extract the data field containing the discount information.\r\n *\r\n * @param {OperationsLoadTopCustomerV2In} body - The input payload containing the company country ID and the file.\r\n * @param {number} body.company_country_id - The ID of the company's country.\r\n * @param {File} body.file - The file containing data to be processed.\r\n * @return {Observable<DiscountOut>} An observable containing the discount output information.\r\n */\r\n postOperationsLoadTopCustomerV2 (body: OperationsLoadTopCustomerV2In): Observable<{}> {\r\n const formData = new FormData()\r\n formData.append('company_country_id', String(body.company_country_id))\r\n formData.append('file', body.file)\r\n\r\n return this.http.post<ApiSuccess<{}>>(`${this.url}/operations/load-top-customer/V2`, formData)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the loyalty periods based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - An object containing query parameters to filter the periods.\r\n * @return {Observable<LoyaltyPeriodsOut>} An observable that emits the fetched loyalty periods.\r\n */\r\n getLoyaltyPeriods (params: QueryParams): Observable<LoyaltyPeriodsOut> {\r\n return this.http.get<ApiSuccess<LoyaltyPeriodsOut>>(`${this.url}/loyalty-periods`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the loyalty period details for the given ID.\r\n *\r\n * @param {number} id - The unique identifier of the loyalty period to retrieve.\r\n * @return {Observable<LoyaltyPeriodOut>} An observable emitting the loyalty period details.\r\n */\r\n getLoyaltyPeriod (id: number): Observable<LoyaltyPeriodOut> {\r\n return this.http.get<ApiSuccess<LoyaltyPeriodOut>>(`${this.url}/loyalty-periods/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a PUT request to update the loyalty period with the provided data.\r\n *\r\n * @param {LoyaltyPeriodIn} body - The data for the loyalty period to be updated.\r\n * @return {Observable<LoyaltyPeriodOut>} An observable that emits the updated loyalty period data.\r\n */\r\n postLoyaltyPeriod (body: LoyaltyPeriodIn): Observable<LoyaltyPeriodOut> {\r\n return this.http.put<ApiSuccess<LoyaltyPeriodOut>>(`${this.url}/loyalty-periods`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the loyalty period for a specified ID with the provided data.\r\n *\r\n * @param {number} id - The unique identifier of the loyalty period to update.\r\n * @param {LoyaltyPeriodIn} body - An object containing the updated details of the loyalty period.\r\n * @return {Observable<LoyaltyPeriodOut>} An observable that emits the updated loyalty period details.\r\n */\r\n putLoyaltyPeriod (id: number, body: LoyaltyPeriodIn): Observable<LoyaltyPeriodOut> {\r\n return this.http.put<ApiSuccess<LoyaltyPeriodOut>>(`${this.url}/loyalty-periods/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the loyalty rules based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the loyalty rules.\r\n * @return {Observable<LoyaltyRulesOut>} An observable containing the loyalty rules output.\r\n */\r\n getLoyaltyRules (params: QueryParams): Observable<LoyaltyRulesOut> {\r\n return this.http.get<ApiSuccess<LoyaltyRulesOut>>(`${this.url}/loyalty-rules`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a specific loyalty rule based on the provided ID.\r\n *\r\n * @param {number} id - The unique identifier of the loyalty rule to retrieve.\r\n * @return {Observable<LoyaltyRuleOut>} An observable that emits the details of the specified loyalty rule.\r\n */\r\n getLoyaltyRule (id: number): Observable<LoyaltyRuleOut> {\r\n return this.http.get<ApiSuccess<LoyaltyRuleOut>>(`${this.url}/loyalty-rules/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a request to add or update a loyalty rule.\r\n *\r\n * @param {LoyaltyRuleIn} body - The loyalty rule data to be sent to the server.\r\n * @return {Observable<LoyaltyRuleOut>} An observable that emits the updated loyalty rule details.\r\n */\r\n postLoyaltyRule (body: LoyaltyRuleIn): Observable<LoyaltyRuleOut> {\r\n return this.http.put<ApiSuccess<LoyaltyRuleOut>>(`${this.url}/loyalty-rules`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing loyalty rule with the provided data.\r\n *\r\n * @param {number} id - The unique identifier of the loyalty rule to update.\r\n * @param {LoyaltyRuleIn} body - The data to update the loyalty rule with.\r\n * @return {Observable<LoyaltyRuleOut>} An observable that emits the updated loyalty rule.\r\n */\r\n putLoyaltyRule (id: number, body: LoyaltyRuleIn): Observable<LoyaltyRuleOut> {\r\n return this.http.put<ApiSuccess<LoyaltyRuleOut>>(`${this.url}/loyalty-rules/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches customer restrictions based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter customer restrictions.\r\n * @return {Observable<CustomerRestrictionsOut>} An observable that emits the customer restrictions data.\r\n */\r\n getCustomerRestrictions (params: QueryParams): Observable<CustomerRestrictionsOut> {\r\n return this.http.get<ApiSuccess<CustomerRestrictionsOut>>(`${this.url}/customer-restrictions`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves customer restriction details for a given customer ID.\r\n *\r\n * @param {number} id - The unique identifier of the customer.\r\n * @return {Observable<CustomerRestrictionOut>} An observable containing the customer restriction details.\r\n */\r\n getCustomerRestriction (id: number): Observable<CustomerRestrictionOut> {\r\n return this.http.get<ApiSuccess<CustomerRestrictionOut>>(`${this.url}/customer-restrictions/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a request to apply a restriction to a customer.\r\n *\r\n * @param {CustomerRestrictionIn} body - The restriction details to be applied to the customer.\r\n * @return {Observable<CustomerRestrictionOut>} An observable containing the response with the applied customer restriction.\r\n */\r\n postCustomerRestriction (body: CustomerRestrictionIn): Observable<CustomerRestrictionOut> {\r\n return this.http.put<ApiSuccess<CustomerRestrictionOut>>(`${this.url}/customer-restrictions`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates customer restrictions using the provided ID and data.\r\n *\r\n * @param {number} id - The unique identifier of the customer restriction to be updated.\r\n * @param {LoyaltyRuleIn} body - The data object containing the customer restriction details to be updated.\r\n * @return {Observable<CustomerRestrictionOut>} An observable emitting the updated customer restriction details.\r\n */\r\n putCustomerRestriction (id: number, body: CustomerRestrictionIn): Observable<CustomerRestrictionOut> {\r\n return this.http.put<ApiSuccess<CustomerRestrictionOut>>(`${this.url}/customer-restrictions/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes a customer restriction by its ID.\r\n *\r\n * @param {number} id - The unique identifier of the customer restriction to delete.\r\n * @return {Observable<{}>} An Observable that emits the result of the deletion operation.\r\n */\r\n deleteCustomerRestriction (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/customer-restrictions/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a request to apply a restriction to a customer (Version 2).\r\n *\r\n * @param {CustomerRestrictionInV2} body - The restriction details to be applied to the customer.\r\n * @return {Observable<CustomerRestrictionOut>} An observable containing the response with the applied customer restriction.\r\n */\r\n postCustomerRestrictionV2 (body: CustomerRestrictionInV2): Observable<CustomerRestrictionOut> {\r\n return this.http.post<ApiSuccess<CustomerRestrictionOut>>(`${this.url}/customer-restrictions/V2`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates customer restrictions using the provided ID and data (Version 2).\r\n *\r\n * @param {number} id - The unique identifier of the customer restriction to be updated.\r\n * @param {CustomerRestrictionInV2} body - The data object containing the customer restriction details to be updated.\r\n * @return {Observable<CustomerRestrictionOut>} An observable emitting the updated customer restriction details.\r\n */\r\n putCustomerRestrictionV2 (id: number, body: CustomerRestrictionInV2): Observable<CustomerRestrictionOut> {\r\n return this.http.put<ApiSuccess<CustomerRestrictionOut>>(`${this.url}/customer-restrictions/V2/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http'\r\nimport { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { map, Observable } from 'rxjs'\r\nimport { ApiSuccess } from './models/api.models'\r\nimport { OperationModuleEndIn, OperationModuleOut, OperationModuleStartIn } from './models/api-events.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiEventsService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Gets the API endpoint URL for Events from the environments configuration.\r\n *\r\n * @return {string} The URL for the Events API. Returns an empty string if not defined.\r\n */\r\n get url (): string {\r\n return this.environments.apiEventsUrl ?? ''\r\n }\r\n\r\n /**\r\n * Sends a request to start an event\r\n *\r\n * @param {OperationModuleStartIn} body - The event information to be submitted.\r\n * @return {Observable<OperationModuleOut>} An Observable emitting the server's response containing the created event details.\r\n */\r\n postOperationModulesStart (body: OperationModuleStartIn): Observable<OperationModuleOut> {\r\n return this.http.post<ApiSuccess<OperationModuleOut>>(`${this.url}/operation-modules/start`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the discount information for a specific item.\r\n *\r\n * @param {number} id - The unique identifier of the item whose event is to be updated.\r\n * @param {OperationModuleEndIn} body - The payload containing the updated event details.\r\n * @return {Observable<OperationModuleOut>} An observable emitting the updated event details.\r\n */\r\n putOperationModulesEnd (id: number, body: OperationModuleEndIn): Observable<OperationModuleOut> {\r\n return this.http.put<ApiSuccess<OperationModuleOut>>(`${this.url}/operation-modules/${id}/end`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http'\r\nimport { Inject, Injectable } from '@angular/core'\r\nimport { map, Observable } from 'rxjs'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport {\r\n ExternalShipmentAddressesIn,\r\n ExternalShipmentAddressesOut,\r\n ExternalShipmentFileOut,\r\n ExternalShipmentHistoriesOut,\r\n ExternalShipmentStatusOut\r\n} from './models/api-e-tools-auto-billing.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiEToolsAutoBillingService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the shipments API from the environment configurations.\r\n *\r\n * @return {string} The URL of the shipments API.\r\n */\r\n get url (): string {\r\n return this.environments.apiEToolsAutoBilling ?? ''\r\n }\r\n\r\n /**\r\n * Updates external shipment address details for the given address ID.\r\n *\r\n * @param {Object} params - The parameters for the API request.\r\n * @param {string} params.id - The unique identifier of the address to update.\r\n * @param {Object} params.body - The payload containing updated address details.\r\n * @return {Observable<ExternalShipmentAddressesOut>} An observable containing the updated external shipment address information.\r\n */\r\n patchExternalShipmentAddresses ({\r\n id,\r\n ...body\r\n }: ExternalShipmentAddressesIn): Observable<ExternalShipmentAddressesOut> {\r\n return this.http.patch<ApiSuccess<ExternalShipmentAddressesOut>>(`${this.url}/external-shipment-addresses/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the external shipment file by its identifier.\r\n *\r\n * @param {number} fileId - The unique identifier of the external shipment file to be retrieved.\r\n * @return {Observable<ExternalShipmentFileOut>} An observable containing the external shipment file data.\r\n */\r\n getExternalShipmentFile (fileId: number): Observable<ExternalShipmentFileOut> {\r\n return this.http.get<ApiSuccess<ExternalShipmentFileOut>>(`${this.url}/external-shipment-files/${fileId}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the history entries for a specific external shipment.\r\n *\r\n * @param {number} id - The ID of the external shipment to retrieve history for.\r\n * @return {Observable<ExternalShipmentHistoriesOut>} An observable containing the external shipment history entries.\r\n */\r\n getExternalShipmentHistories (id: number): Observable<ExternalShipmentHistoriesOut> {\r\n return this.http.get<ApiSuccess<ExternalShipmentHistoriesOut>>(`${this.url}/external-shipments/${id}/external-shipment-histories`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the list of external shipment statuses\r\n *\r\n * @param {QueryParams} params - The query parameters used to fetch the external shipment statuses.\r\n * @return {Observable<ExternalShipmentStatusOut>} An observable that emits the external shipment statuses data.\r\n */\r\n getExternalShipmentStatuses (params: QueryParams): Observable<ExternalShipmentStatusOut> {\r\n return this.http.get<ApiSuccess<ExternalShipmentStatusOut>>(`${this.url}/external-shipment-statuses`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { Environment } from '../ngx-services.models'\r\nimport {\r\n DeliveryConfirmationCompleteIn,\r\n DeliveryConfirmationGenerateIn,\r\n DeliveryConfirmationGenerateOut,\r\n DeliveryConfirmationIn\r\n} from './models/api-external-pickups.types'\r\nimport { Observable } from 'rxjs'\r\nimport { map } from 'rxjs/operators'\r\nimport { ApiSuccess } from './models/api.models'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiExternalPickupsService {\r\n private appKey: string\r\n\r\n constructor (\r\n private httpClient: HttpClient,\r\n @Inject('env') private environment: Environment\r\n ) {\r\n this.appKey = environment.apiExternalOperationsKey ?? ''\r\n }\r\n\r\n /**\r\n * Getter method to retrieve the API's external operations URL.\r\n * Fetches the URL from the `apiExternalOperationsUrl` property of the environment object.\r\n * Defaults to an empty string if the property is undefined or null.\r\n *\r\n * @return {string} The external operations URL or an empty string if unavailable.\r\n */\r\n get url (): string {\r\n return this.environment.apiExternalOperationsUrl ?? ''\r\n }\r\n\r\n /**\r\n * Generates a delivery confirmation by sending the provided payload to the API.\r\n *\r\n * @param {DeliveryConfirmationGenerateIn} payload - The input payload required to generate the delivery confirmation.\r\n * @return {Observable<DeliveryConfirmationGenerateOut>} An observable that emits the generated delivery confirmation data.\r\n */\r\n public postDeliveryConfirmationGenerate (payload: DeliveryConfirmationGenerateIn): Observable<DeliveryConfirmationGenerateOut> {\r\n return this.httpClient.post<ApiSuccess<DeliveryConfirmationGenerateOut>>(\r\n `${this.url}/delivery-confirmation/generate`,\r\n payload, {\r\n headers: { appkey: this.appKey }\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Confirms the completion of a delivery operation by making a PATCH request.\r\n *\r\n * @param {Object} input - The input parameters for the method.\r\n * @param {string} input.operationId - The unique identifier of the delivery operation to be confirmed.\r\n * @param {string} input.keyOTP - The one-time password (OTP) key associated with the delivery confirmation.\r\n * @return {Observable<Object>} - An observable containing the response data from the API.\r\n */\r\n public patchDeliveryConfirmationComplete ({\r\n keyOTP,\r\n operationId,\r\n }: DeliveryConfirmationCompleteIn): Observable<{}> {\r\n return this.httpClient.patch<ApiSuccess<{}>>(\r\n `${this.url}/delivery-confirmation/completed/${keyOTP}`,\r\n null, {\r\n headers: { appkey: this.appKey },\r\n params: { operation_id: operationId }\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Cancels a delivery confirmation by sending an OTP and additional data to the server.\r\n *\r\n * @param {Object} param0 - The parameter object containing the required properties.\r\n * @param {string} param0.otp - The one-time password to authenticate the cancellation request.\r\n * @param {Object} param0.body - Additional body data required for cancellation.\r\n * @return {Observable<Object>} An observable that emits the server's response when the cancellation is processed.\r\n */\r\n public putDeliveryConfirmation ({\r\n otp,\r\n ...body\r\n }: DeliveryConfirmationIn): Observable<{}> {\r\n return this.httpClient.put<ApiSuccess<{}>>(\r\n `${this.url}/delivery-confirmation/confirmation/${otp}`,\r\n body, {\r\n headers: { appkey: this.appKey },\r\n }).pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport { map, Observable } from 'rxjs'\r\nimport { CheckpointEventReasonsOut, CheckpointsOut, IncidentIn, IncidentOut, IncidentReasonComplementIn, IncidentReasonComplementOut, IncidentReasonComplementsOut, IncidentReasonIn, IncidentReasonOut, IncidentReasonsOut, IncidentsOut } from './models/api-inventories.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiInventoriesService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the Inventories API from the environment configurations.\r\n *\r\n * @return {string} The URL of the Inventories API.\r\n */\r\n get url (): string {\r\n return this.environments.apiInventoriesUrl ?? ''\r\n }\r\n\r\n /**\r\n * Retrieves a list of checkpoints based on query parameters.\r\n *\r\n * @param {QueryParams} params - Query parameters for filtering the checkpoints.\r\n * @returns {Observable<CheckpointsOut>} The list of checkpoints.\r\n */\r\n getCheckpoints (params: QueryParams): Observable<CheckpointsOut> {\r\n return this.http.get<ApiSuccess<CheckpointsOut>>(`${this.url}/checkpoints`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of checkpoint event reasons based on query parameters.\r\n *\r\n * @param {QueryParams} params - Query parameters for filtering the checkpoint event reasons.\r\n * @returns {Observable<CheckpointEventReasonsOut>} The list of checkpoint event reasons.\r\n */\r\n getCheckpointEventReasons (params: QueryParams): Observable<CheckpointEventReasonsOut> {\r\n return this.http.get<ApiSuccess<CheckpointEventReasonsOut>>(`${this.url}/checkpoint-event-reasons`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of incidents based on query parameters.\r\n *\r\n * @param {QueryParams} params - Query parameters for filtering the incidents.\r\n * @returns {Observable<IncidentsOut>} An observable that emits the list of incidents.\r\n */\r\n getIncidents (params: QueryParams): Observable<IncidentsOut> {\r\n return this.http.get<ApiSuccess<IncidentsOut>>(`${this.url}/incidents`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the incident details based on the provided incident ID.\r\n *\r\n * @param {number} id - The identifier of the incident record to get detail.\r\n * @return {Observable<IncidentOut>} An observable that emits the detail incident data.\r\n */\r\n getIncident (id: Number): Observable<IncidentOut> {\r\n return this.http.get<ApiSuccess<IncidentOut>>(`${this.url}/incidents/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Creates a new incident.\r\n *\r\n * @param {IncidentIn} body - The data for the new incident.\r\n * @returns {Observable<IncidentOut>} An observable the created incident detail.\r\n */\r\n postIncident (body: IncidentIn): Observable<IncidentOut> {\r\n return this.http.post<ApiSuccess<IncidentOut>>(`${this.url}/incidents`,\r\n body\r\n ).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing incident.\r\n *\r\n * @param {number} id - The identifier of the incident record to update.\r\n * @param {IncidentIn} body - The incident data to be updated.\r\n * @returns {Observable<IncidentOut>} An observable detail of the updated incident.\r\n */\r\n putIncident (id: Number, body: IncidentIn): Observable<IncidentOut> {\r\n return this.http.put<ApiSuccess<IncidentOut>>(`${this.url}/incidents/${id}`,\r\n body\r\n ).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Delete an existing incident.\r\n *\r\n * @param {number} id - The unique identifier of the incident to be deleted.\r\n * @returns {Observable<IncidentOut>} An observable that emits the result of the delete incident.\r\n */\r\n deleteIncident (id: Number): Observable<IncidentOut> {\r\n return this.http.delete<ApiSuccess<IncidentOut>>(`${this.url}/incidents/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of incident reasons based on query parameters.\r\n *\r\n * @param {QueryParams} params - Query parameters for filtering the incident reasons.\r\n * @returns {Observable<IncidentReasonsOut>} An observable that emits the list of incident reasons.\r\n */\r\n getIncidentReasons (params: QueryParams): Observable<IncidentReasonsOut> {\r\n return this.http.get<ApiSuccess<IncidentReasonsOut>>(`${this.url}/incident-reasons`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the incident reason details based on the provided incident reason ID.\r\n *\r\n * @param {number} id - The identifier of the incident reason record to get detail.\r\n * @return {Observable<IncidentReasonOut>} An observable that emits the detail incident reason data.\r\n */\r\n getIncidentReason (id: Number): Observable<IncidentReasonOut> {\r\n return this.http.get<ApiSuccess<IncidentReasonOut>>(`${this.url}/incident-reasons/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Creates a new incident reason.\r\n *\r\n * @param {IncidentReasonIn} body - The data for the new incident reason.\r\n * @returns {Observable<IncidentReasonOut>} An observable the created incident reason detail.\r\n */\r\n postIncidentReason (body: IncidentReasonIn): Observable<IncidentReasonOut> {\r\n return this.http.post<ApiSuccess<IncidentReasonOut>>(`${this.url}/incident-reasons`,\r\n body\r\n ).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing incident reason.\r\n *\r\n * @param {number} id - The identifier of the incident reason record to update.\r\n * @param {IncidentIn} body - The incident reason data to be updated.\r\n * @returns {Observable<IncidentReasonOut>} An observable detail of the updated incident reason.\r\n */\r\n putIncidentReason (id: Number, body: IncidentReasonIn): Observable<IncidentReasonOut> {\r\n return this.http.put<ApiSuccess<IncidentReasonOut>>(`${this.url}/incident-reasons/${id}`,\r\n body\r\n ).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Delete an existing incident reason.\r\n *\r\n * @param {number} id - The unique identifier of the incident reason to be deleted.\r\n * @returns {Observable<IncidentReasonOut>} An observable that emits the result of the delete incident reason.\r\n */\r\n deleteIncidentReason (id: Number): Observable<IncidentReasonOut> {\r\n return this.http.delete<ApiSuccess<IncidentReasonOut>>(`${this.url}/incident-reasons/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of incident reason complements based on query parameters.\r\n *\r\n * @param {QueryParams} params - Query parameters for filtering the incident reason complements.\r\n * @returns {Observable<IncidentReasonComplementsOut>} An observable that emits the list of incident reason complements.\r\n */\r\n getIncidentReasonComplements (params: QueryParams): Observable<IncidentReasonComplementsOut> {\r\n return this.http.get<ApiSuccess<IncidentReasonComplementsOut>>(`${this.url}/incident-reason-complements`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Creates a new incident reason complement.\r\n *\r\n * @param {IncidentReasonIn} body - The data for the new incident reason complement.\r\n * @returns {Observable<IncidentReasonComplementOut>} An observable the created incident reason complement detail.\r\n */\r\n postIncidentReasonComplement (body: IncidentReasonComplementIn): Observable<IncidentReasonComplementOut> {\r\n return this.http.post<ApiSuccess<IncidentReasonComplementOut>>(`${this.url}/incident-reason-complements`,\r\n body\r\n ).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing incident reason complement.\r\n *\r\n * @param {number} id - The identifier of the incident reason complement record to update.\r\n * @param {IncidentIn} body - The incident reason complement data to be updated.\r\n * @returns {Observable<IncidentReasonComplementOut>} An observable detail of the updated incident reason complement.\r\n */\r\n putIncidentReasonComplement (id: Number, body: IncidentReasonComplementIn): Observable<IncidentReasonComplementOut> {\r\n return this.http.put<ApiSuccess<IncidentReasonComplementOut>>(`${this.url}/incident-reason-complements/${id}`,\r\n body\r\n ).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Delete an existing incident reason complement.\r\n *\r\n * @param {number} id - The unique identifier of the incident reason complement to be deleted.\r\n * @returns {Observable<IncidentReasonComplementOut>} An observable that emits the result of the delete incident reason complement.\r\n */\r\n deleteIncidentReasonComplement (id: Number): Observable<IncidentReasonComplementOut> {\r\n return this.http.delete<ApiSuccess<IncidentReasonComplementOut>>(`${this.url}/incident-reason-complements/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http'\r\nimport { Inject, Injectable } from '@angular/core'\r\nimport { map, Observable } from 'rxjs'\r\nimport { Environment } from '../ngx-services.models'\r\nimport {\r\n CancelPaymentReceiptIn,\r\n CountryPaymentTypeFieldIn,\r\n CountryPaymentTypeFieldOut,\r\n CountryPaymentTypeFieldsOut,\r\n CountryPaymentTypeIn,\r\n CountryPaymentTypeOut,\r\n CountryPaymentTypesOut,\r\n CustomerDocumentTypesOut,\r\n CustomersOut,\r\n CustomerTypesOut,\r\n DocumentStatusesOut,\r\n GetDocumentsOut,\r\n OperationAccountPaymentIn,\r\n OperationAccountPaymentOut,\r\n OperationCancelBillingIn,\r\n OperationCancelBillingOut,\r\n OperationDocumentIn,\r\n OperationDocumentOut,\r\n OperationDocumentRequestsOut,\r\n OperationPrintDocumentOut,\r\n OperationPrintXmlOut,\r\n OperationShipmentExternalIn,\r\n OperationShipmentExternalOut,\r\n PaymentTypeFieldAccountIn,\r\n PaymentTypeFieldAccountOut,\r\n PaymentTypeFieldAccountsOut,\r\n PaymentTypeFieldCardTypeIn,\r\n PaymentTypeFieldCardTypeOut,\r\n PaymentTypeFieldCardTypesOut,\r\n PaymentTypesOut,\r\n PrintCollectionReceiptOut,\r\n ToleranceIn,\r\n ToleranceOut,\r\n TolerancesOut,\r\n} from './models/api-invoices.types'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiInvoicesService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the API URL for invoices from the environments configuration.\r\n *\r\n * @return {string} The API URL for invoices.\r\n */\r\n get url (): string {\r\n return this.environments.apiInvoicesUrl ?? ''\r\n }\r\n\r\n /**\r\n * Sends an operation document to the server and processes the response.\r\n *\r\n * @param {OperationDocumentIn} body - The input data for the operation document.\r\n * @return {Observable<OperationDocumentOut>} An observable containing the processed operation document output.\r\n */\r\n postOperationDocument (body: OperationDocumentIn): Observable<OperationDocumentOut> {\r\n return this.http.post<ApiSuccess<OperationDocumentOut>>(`${this.url}/operation/document`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches and returns the collection receipt data for a given collection ID.\r\n *\r\n * @param {number} id - The unique identifier of the collection for which the receipt needs to be retrieved.\r\n * @return {Observable<PrintCollectionReceiptOut>} An observable containing the collection receipt data.\r\n */\r\n getPrintCollectionReceipt (id: number): Observable<PrintCollectionReceiptOut> {\r\n return this.http.get<ApiSuccess<PrintCollectionReceiptOut>>(`${this.url}/operation/print/collection-receipt/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Handles the account payment operation by sending a POST request to the specified endpoint.\r\n * Processes the response and returns the operation data.\r\n *\r\n * @param {OperationAccountPaymentIn} body The payload containing information for the account payment operation.\r\n * @return {Observable<OperationAccountPaymentOut>} An observable emitting the processed account payment operation data.\r\n */\r\n postOperationAccountPayment (body: OperationAccountPaymentIn): Observable<OperationAccountPaymentOut> {\r\n return this.http.post<ApiSuccess<OperationAccountPaymentOut>>(`${this.url}/operation/account-payment`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Cancels a payment receipt based on the provided input.\r\n * This method sends a POST request to cancel a document.\r\n *\r\n * @param body The data required to cancel the payment receipt, encapsulated in a CancelPaymentReceiptIn object.\r\n * @return An Observable representing the result of the cancellation. Emits an empty object on success.\r\n */\r\n postOperationCancelDocument (body: CancelPaymentReceiptIn): Observable<{}> {\r\n return this.http.post<ApiSuccess<{}>>(`${this.url}/operation/cancel-document`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to cancel billing for a specific operation.\r\n *\r\n * @param {Object} params - The parameters for the cancellation request.\r\n * @param {string} params.invoiceId - The ID of the invoice to be canceled.\r\n * @param {Object} params.body - Additional data to be sent in the request body.\r\n * @return {Observable<OperationCancelBillingOut>} An observable emitting the result of the cancellation operation.\r\n */\r\n postOperationCancelBilling ({ invoiceId, ...body }: OperationCancelBillingIn): Observable<OperationCancelBillingOut> {\r\n return this.http.post<ApiSuccess<OperationCancelBillingOut>>(`${this.url}/operation/cancel-billing/${invoiceId}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches a list of customer types from the server.\r\n *\r\n * @param {QueryParams} params - Query parameters to filter or customize the request.\r\n * @return {Observable<CustomerTypesOut>} An observable emitting the customer types fetched from the server.\r\n */\r\n getCustomerTypes (params: QueryParams): Observable<CustomerTypesOut> {\r\n return this.http.get<ApiSuccess<CustomerTypesOut>>(`${this.url}/customer-types`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves document types specific to a given country.\r\n *\r\n * @param {QueryParams} params - The query parameters containing country-specific information.\r\n * @return {Observable<CustomerDocumentTypesOut>} An observable emitting the document types available for the specified country.\r\n */\r\n getCustomerDocumentTypes (params: QueryParams): Observable<CustomerDocumentTypesOut> {\r\n return this.http.get<ApiSuccess<CustomerDocumentTypesOut>>(`${this.url}/customer-country-document-types`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches customer invoice details filtered by a custom invoice type.\r\n *\r\n * @param {InvoiceTypeCustomParamsIn} params - An object containing the filter parameters for the custom invoice type.\r\n * @return {Observable<CustomersOut>} An observable containing customer invoice details of the specified type.\r\n */\r\n getCustomers (params: QueryParams): Observable<CustomersOut> {\r\n return this.http.get<ApiSuccess<CustomersOut>>(`${this.url}/customers`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create or update an external shipment operation.\r\n *\r\n * @param {OperationShipmentExternalIn} params - The input parameters for the external shipment operation.\r\n * @return {Observable<OperationShipmentExternalOut>} An observable that emits the result of the external shipment operation.\r\n */\r\n postOperationShipmentExternal (params: OperationShipmentExternalIn): Observable<OperationShipmentExternalOut> {\r\n return this.http.post<ApiSuccess<OperationShipmentExternalOut>>(`${this.url}/operation/shipment/external`, params)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Processes an external payment operation for a shipment.\r\n *\r\n * @param {OperationShipmentExternalIn} params - The input parameters required for the external payment operation.\r\n * @return {Observable<OperationShipmentExternalOut>} An observable that emits the result of the external payment operation for a shipment.\r\n */\r\n postOperationShipmentExternalPayment (params: OperationShipmentExternalIn): Observable<OperationShipmentExternalOut> {\r\n return this.http.post<ApiSuccess<OperationShipmentExternalOut>>(`${this.url}/operation/shipment/external/payment`, params)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves and returns billing operation print details for a given document ID.\r\n *\r\n * @param {number} documentId - The ID of the document for which to fetch the print billing operation details.\r\n * @return {Observable<OperationPrintDocumentOut>} An observable emitting the print billing operation details for the specified document.\r\n */\r\n getOperationPrintDocument (documentId: number): Observable<OperationPrintDocumentOut> {\r\n return this.http.get<ApiSuccess<OperationPrintDocumentOut>>(`${this.url}/operation/print/document/${documentId}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches all country payment types.\r\n *\r\n * @param {QueryParams} params - Query parameters to filter or customize the request.\r\n * @return {Observable<CountryPaymentTypesOut>} An observable emitting the country payment types fetched from the server.\r\n */\r\n getCountryPaymentTypes (params: QueryParams): Observable<CountryPaymentTypesOut> {\r\n return this.http.get<ApiSuccess<CountryPaymentTypesOut>>(`${this.url}/country-payment-types`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing country payment type.\r\n *\r\n * @param {number} id - The ID of the country payment type to update.\r\n * @param {CountryPaymentTypeIn} body - The updated data for the country payment type.\r\n * @returns {Observable<CountryPaymentTypeOut>} An observable that emits the result of the update operation.\r\n */\r\n putCountryPaymentType (id: number, body: CountryPaymentTypeIn): Observable<CountryPaymentTypeOut> {\r\n return this.http.put<ApiSuccess<CountryPaymentTypeOut>>(`${this.url}/country-payment-types/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Delete an existing country payment type.\r\n *\r\n * @param {number} id - The unique identifier of the country payment type to be deleted.\r\n * @returns {Observable<CountryPaymentTypeOut>} An observable that emits the result of the delete operation.\r\n */\r\n deleteCountryPaymentType (id: number): Observable<CountryPaymentTypeOut> {\r\n return this.http.delete<ApiSuccess<CountryPaymentTypeOut>>(`${this.url}/country-payment-types/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Create a new country payment type resource.\r\n *\r\n * @param {CountryPaymentTypeIn} body - The input parameters required for create a new country payment type.\r\n * @return {Observable<CountryPaymentTypeOut>} An observable that emits the result of create operation.\r\n */\r\n postCountryPaymentType (body: CountryPaymentTypeIn): Observable<CountryPaymentTypeOut> {\r\n return this.http.post<ApiSuccess<CountryPaymentTypeOut>>(`${this.url}/country-payment-types`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves and returns a country payment type for a given ID.\r\n *\r\n * @param {number} id - The ID of the country payment type.\r\n * @return {Observable<CountryPaymentTypeOut>} An observable that emits the result of show operation.\r\n */\r\n getCountryPaymentType (id: number): Observable<CountryPaymentTypeOut> {\r\n return this.http.get<ApiSuccess<CountryPaymentTypeOut>>(`${this.url}/country-payment-types/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches all country payment type fields.\r\n *\r\n * @param {QueryParams} params - Query parameters to filter or customize the request.\r\n * @return {Observable<CountryPaymentTypeFieldsOut>} An observable emitting the country payment type fields fetched from the server.\r\n */\r\n getCountryPaymentTypeFields (params: QueryParams): Observable<CountryPaymentTypeFieldsOut> {\r\n return this.http.get<ApiSuccess<CountryPaymentTypeFieldsOut>>(`${this.url}/country-payment-type-fields`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Create a new country payment type field resource.\r\n *\r\n * @param {CountryPaymentTypeFieldIn} body - The input parameters required for create a new country payment type field.\r\n * @return {Observable<CountryPaymentTypeFieldOut>} An observable that emits the result of create operation.\r\n */\r\n postCountryPaymentTypeField (body: CountryPaymentTypeFieldIn): Observable<CountryPaymentTypeFieldOut> {\r\n return this.http.post<ApiSuccess<CountryPaymentTypeFieldOut>>(`${this.url}/country-payment-type-fields`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing country payment type field.\r\n *\r\n * @param {number} id - The ID of the country payment type field to update.\r\n * @param {CountryPaymentTypeFieldIn} body - The updated data for the country payment type field.\r\n * @returns {Observable<CountryPaymentTypeFieldOut>} An observable that emits the result of the update operation.\r\n */\r\n putCountryPaymentTypeField (id: number, body: CountryPaymentTypeFieldIn): Observable<CountryPaymentTypeFieldOut> {\r\n return this.http.put<ApiSuccess<CountryPaymentTypeFieldOut>>(`${this.url}/country-payment-type-fields/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches all payment types.\r\n *\r\n * @param {QueryParams} params - Query parameters to filter or customize the request.\r\n * @return {Observable<PaymentTypesOut>} An observable emitting the payment types fetched from the server.\r\n */\r\n getPaymentTypes (params: QueryParams): Observable<PaymentTypesOut> {\r\n return this.http.get<ApiSuccess<PaymentTypesOut>>(`${this.url}/payment-types`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches all payment type fields card.\r\n *\r\n * @param {QueryParams} params - Query parameters to filter or customize the request.\r\n * @return {Observable<PaymentTypeFieldCardTypesOut>} An observable emitting the payment type fields card fetched from the server.\r\n */\r\n getPaymentTypeFieldCardTypes (params: QueryParams): Observable<PaymentTypeFieldCardTypesOut> {\r\n return this.http.get<ApiSuccess<PaymentTypeFieldCardTypesOut>>(`${this.url}/payment-type-field-card-types`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Create a new payment type field card resource.\r\n *\r\n * @param {PaymentTypeFieldCardTypeIn} body - The input parameters required for create a new payment type field card.\r\n * @return {Observable<PaymentTypeFieldCardTypeOut>} An observable that emits the result of create operation.\r\n */\r\n postCountryPaymentTypeFieldCardType (body: PaymentTypeFieldCardTypeIn): Observable<PaymentTypeFieldCardTypeOut> {\r\n return this.http.post<ApiSuccess<PaymentTypeFieldCardTypeOut>>(`${this.url}/payment-type-field-card-types`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing payment type field card.\r\n *\r\n * @param {number} id - The ID of the payment type field card to update.\r\n * @param {PaymentTypeFieldCardTypeIn} body - The updated data for the payment type field card.\r\n * @returns {Observable<PaymentTypeFieldCardTypeOut>} An observable that emits the result of the update operation.\r\n */\r\n putCountryPaymentTypeFieldCardType (id: number, body: PaymentTypeFieldCardTypeIn): Observable<PaymentTypeFieldCardTypeOut> {\r\n return this.http.put<ApiSuccess<PaymentTypeFieldCardTypeOut>>(`${this.url}/payment-type-field-card-types/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches all payment type fields accounts.\r\n *\r\n * @param {QueryParams} params - Query parameters to filter or customize the request.\r\n * @return {Observable<PaymentTypeFieldAccountsOut>} An observable emitting the payment type fields accounts fetched from the server.\r\n */\r\n getPaymentTypeFieldAccounts (params: QueryParams): Observable<PaymentTypeFieldAccountsOut> {\r\n return this.http.get<ApiSuccess<PaymentTypeFieldAccountsOut>>(`${this.url}/payment-type-field-accounts`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Create a new payment type field account resource.\r\n *\r\n * @param {PaymentTypeFieldAccountIn} body - The input parameters required for create a new payment type field account.\r\n * @return {Observable<PaymentTypeFieldAccountOut>} An observable that emits the result of create operation.\r\n */\r\n postCountryPaymentTypeFieldAccount (body: PaymentTypeFieldAccountIn): Observable<PaymentTypeFieldAccountOut> {\r\n return this.http.post<ApiSuccess<PaymentTypeFieldAccountOut>>(`${this.url}/payment-type-field-accounts`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing payment type field account.\r\n *\r\n * @param {number} id - The ID of the payment type field account to update.\r\n * @param {PaymentTypeFieldAccountIn} body - The updated data for the payment type field account.\r\n * @returns {Observable<PaymentTypeFieldAccountOut>} An observable that emits the result of the update operation.\r\n */\r\n putCountryPaymentTypeFieldAccount (id: number, body: PaymentTypeFieldAccountIn): Observable<PaymentTypeFieldAccountOut> {\r\n return this.http.put<ApiSuccess<PaymentTypeFieldAccountOut>>(`${this.url}/payment-type-field-accounts/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches tolerance data from the server based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The parameters to use for querying tolerances.\r\n * @return {Observable<TolerancesOut>} An observable emitting the tolerance data.\r\n */\r\n getTolerances (params: QueryParams): Observable<TolerancesOut> {\r\n return this.http.get<ApiSuccess<TolerancesOut>>(`${this.url}/tolerances`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the tolerance detail for a given identifier.\r\n *\r\n * @param {number} id - The unique identifier for the tolerance to retrieve.\r\n * @return {Observable<ToleranceOut>} An observable containing the tolerance data.\r\n */\r\n getTolerance (id: number): Observable<ToleranceOut> {\r\n return this.http.get<ApiSuccess<ToleranceOut>>(`${this.url}/tolerances/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a request to update or create a tolerance record using the provided data.\r\n *\r\n * @param {ToleranceIn} body - The tolerance input object containing the data to be sent in the request.\r\n * @return {Observable<ToleranceOut>} An observable that emits the updated or created tolerance output object.\r\n */\r\n postTolerance (body: ToleranceIn): Observable<ToleranceOut> {\r\n return this.http.post<ApiSuccess<ToleranceOut>>(`${this.url}/tolerances`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the tolerance with the specified ID using the provided data.\r\n *\r\n * @param {number} id - The unique identifier of the tolerance to update.\r\n * @param {ToleranceIn} body - The data to update the tolerance with.\r\n * @return {Observable<ToleranceOut>} An observable containing the updated tolerance information.\r\n */\r\n putTolerance (id: number, body: ToleranceIn): Observable<ToleranceOut> {\r\n return this.http.put<ApiSuccess<ToleranceOut>>(`${this.url}/tolerances/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes the tolerance entry corresponding to the given ID.\r\n *\r\n * @param {number} id - The unique identifier of the tolerance to be deleted.\r\n * @return {Observable<{}>} An Observable that emits the result of the delete operation.\r\n */\r\n deleteTolerance (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/tolerances/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the document requests associated with a document ID.\r\n *\r\n * @param id - The unique identifier for the document.\r\n * @returns An observable that emits the document requests data.\r\n */\r\n getOperationDocumentRequests (id: number): Observable<OperationDocumentRequestsOut> {\r\n return this.http.get<ApiSuccess<OperationDocumentRequestsOut>>(`${this.url}/operation/document/requests/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of documents based on the provided query parameters.\r\n *\r\n * @param params - The query parameters to filter and paginate the documents\r\n * @returns An Observable that emits the documents data when the HTTP request completes\r\n */\r\n getDocuments (params: QueryParams): Observable<GetDocumentsOut> {\r\n return this.http.get<ApiSuccess<GetDocumentsOut>>(`${this.url}/documents`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches document status values from the API.\r\n *\r\n * Sends an HTTP GET request to the service's `/document-status` endpoint using the supplied query parameters\r\n * and returns the decoded `data` payload from the API success envelope.\r\n *\r\n * @param params - Query parameters to apply to the request (e.g. filtering, pagination, search).\r\n * @returns An Observable that emits a DocumentStatusesOut object containing the document status data.\r\n */\r\n getDocumentStatuses (params: QueryParams): Observable<DocumentStatusesOut> {\r\n return this.http.get<ApiSuccess<DocumentStatusesOut>>(`${this.url}/document-status`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the XML print representation for a given operation (invoice).\r\n *\r\n * Sends an HTTP GET request to the backend endpoint `/operation/print/xml/{documentId}` and\r\n * unwraps the `data` field from the API success response before emitting it.\r\n *\r\n * @param documentId - The numeric identifier of the document to fetch.\r\n * @returns An Observable that emits the OperationPrintXmlOut payload on success and completes.\r\n * The Observable will error if the HTTP request fails or the response does not contain the expected data.\r\n */\r\n getOperationPrintXml (documentId: number): Observable<OperationPrintXmlOut> {\r\n return this.http.get<ApiSuccess<OperationPrintXmlOut>>(`${this.url}/operation/print/xml/${documentId}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http'\r\nimport { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport {\r\n NotificationConfigurationIn,\r\n NotificationConfigurationOut,\r\n NotificationIn,\r\n NotificationOut,\r\n NotificationsOut,\r\n NotificationsTypeOut\r\n} from './models/api-notifications.types'\r\nimport { map, Observable } from 'rxjs'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiNotificationsService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the notifications API from the environment settings.\r\n * If the URL is not defined, an empty string is returned.\r\n *\r\n * @return {string} The API Notifications URL or an empty string if not defined.\r\n */\r\n get url (): string {\r\n return this.environments.apiNotificationsUrl ?? ''\r\n }\r\n\r\n /**\r\n * Retrieves notifications based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter and retrieve notifications.\r\n * @return {Observable<NotificationsOut>} An observable that emits the fetched notifications.\r\n */\r\n getNotifications (params: QueryParams): Observable<NotificationsOut> {\r\n return this.http.get<ApiSuccess<NotificationsOut>>(`${this.url}/notifications`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a notification request to the server using the provided body.\r\n *\r\n * @param {NotificationIn} body - The notification data to be sent in the request body.\r\n * @return {Observable<NotificationOut>} An observable emitting the response containing the notification output data.\r\n */\r\n postNotification (body: NotificationIn): Observable<NotificationOut> {\r\n return this.http.post<ApiSuccess<NotificationOut>>(`${this.url}/notifications`, { body })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a PUT request to update a notification with the provided ID and body.\r\n *\r\n * @param {number} id - The unique identifier of the notification to be updated.\r\n * @param {NotificationIn} body - The data to update the notification with.\r\n * @return {Observable<NotificationOut>} An observable containing the updated notification data.\r\n */\r\n putNotification (id: number, body: NotificationIn): Observable<NotificationOut> {\r\n return this.http.put<ApiSuccess<NotificationOut>>(`${this.url}/notifications/${id}`, { body })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes a notification by its unique identifier.\r\n *\r\n * @param {number} id - The unique identifier of the notification to delete.\r\n * @return {Observable<{}>} An observable that emits the response after deleting the notification.\r\n */\r\n deleteNotification (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/notifications/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Marks the notification as finished for the specified notification ID.\r\n *\r\n * @param {number} id - The unique identifier of the notification to be marked as finished.\r\n * @return {Observable<NotificationOut>} An Observable emitting the updated notification object.\r\n */\r\n putNotificationFinish (id: number): Observable<NotificationOut> {\r\n return this.http.put<ApiSuccess<NotificationOut>>(`${this.url}/notifications/finish/${id}`, {})\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to create or update notification configurations.\r\n *\r\n * @param {NotificationConfigurationIn} body - The notification configuration payload to be sent in the request.\r\n * @return {Observable<NotificationConfigurationOut>} An observable emitting the response containing the created or updated notification configuration.\r\n */\r\n postNotificationConfigurations (body: NotificationConfigurationIn): Observable<NotificationConfigurationOut> {\r\n return this.http.post<ApiSuccess<NotificationConfigurationOut>>(`${this.url}/notification-configurations`, { body })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the notification types based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters for fetching the notification types.\r\n * @return {Observable<NotificationsTypeOut>} An observable that emits the fetched notification types.\r\n */\r\n getNotificationsType (params: QueryParams): Observable<NotificationsTypeOut> {\r\n return this.http.get<ApiSuccess<NotificationsTypeOut>>(`${this.url}/notifications-type`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport { OpenItemsOut, OtherInvoiceOut, PaymentOut } from './models/api-open-items.types'\r\nimport { map, Observable } from 'rxjs'\r\nimport { OtherInvoiceIn, PaymentOpenItemIn } from './models/api-open-items.interfaces'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiOpenItemsService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) {}\r\n\r\n /**\r\n * Retrieves the API URL for open-items from the environments' configuration.\r\n *\r\n * @return {string} The API URL for open-items.\r\n */\r\n get url (): string {\r\n return this.environments.apiOpenItemsUrl ?? ''\r\n }\r\n\r\n /**\r\n * Retrieves a list of open-items based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The parameters to use for querying open-items.\r\n * @return {Observable<OpenItemsOut>} An observable that emits the open-item's data.\r\n */\r\n getOpenItems (params: QueryParams): Observable<OpenItemsOut> {\r\n return this.http.get<ApiSuccess<OpenItemsOut>>(`${this.url}/open-items`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Processes a payment for an open item.\r\n *\r\n * @param {PaymentOpenItemIn} body - The payment details for the open item.\r\n * @return {Observable<PaymentOut>} An observable that emits the result of the payment processing.\r\n */\r\n postPayment (body: PaymentOpenItemIn): Observable<PaymentOut> {\r\n return this.http.post<ApiSuccess<PaymentOut>>(`${this.url}/payment`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Processes a payment for other invoice.\r\n *\r\n * @param {OtherInvoiceIn} body - The payment details for the other invoice.\r\n * @return {Observable<OtherInvoiceOut>} An observable that emits the result of the payment processing.\r\n */\r\n postOtherInvoice (body: OtherInvoiceIn): Observable<OtherInvoiceOut> {\r\n return this.http.post<ApiSuccess<OtherInvoiceOut>>(`${this.url}/other-invoices`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { HttpClient, HttpResponse } from '@angular/common/http'\r\nimport { Inject, Injectable } from '@angular/core'\r\nimport { map, Observable } from 'rxjs'\r\nimport { Environment } from '../ngx-services.models'\r\nimport {\r\n CollectionPaymentsOut, ExternalShipmentsOut,\r\n FileCheckOut, InvoicesOut, PartialWithdrawalsOut,\r\n PromotionCodeDiscountsOut,\r\n ShipmentsReportOut\r\n} from './models/api-reports.types'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiReportsService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the reports API from the environment configurations.\r\n *\r\n * @return {string} The URL of the reports API.\r\n */\r\n get url (): string {\r\n return this.environments.apiReportsUrl ?? ''\r\n }\r\n\r\n /**\r\n * Retrieves the list of collection payments\r\n *\r\n * @param {QueryParams} params - The query parameters used to fetch the collection payments.\r\n * @return {Observable<CollectionPaymentsOut[]>} An observable that emits an array of collection payment.\r\n */\r\n getCollectionPayments (params: QueryParams): Observable<CollectionPaymentsOut> {\r\n return this.http.get<ApiSuccess<CollectionPaymentsOut>>(`${this.url}/collection-payment`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches shipment reports based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters used to filter or define the shipment reports.\r\n * @return {Observable<ShipmentsReportOut>} An observable emitting the shipment report data.\r\n */\r\n getShipmentsReport (params: QueryParams): Observable<ShipmentsReportOut> {\r\n return this.http.get<ApiSuccess<ShipmentsReportOut>>(`${this.url}/shipments-report`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a report of external shipments based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - An object representing the query parameters for filtering the external shipments report.\r\n * @return {Observable<ExternalShipmentsOut>} An observable that emits the external shipments report data.\r\n */\r\n getExternalShipmentsReport (params: QueryParams): Observable<ExternalShipmentsOut> {\r\n return this.http.get<ApiSuccess<ExternalShipmentsOut>>(`${this.url}/external-shipments-report`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a report of promotion code discounts based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - An object representing the query parameters for filtering the promotion code discounts report.\r\n * @return {Observable<PromotionCodeDiscountsOut>} An observable that emits the promotion code discounts report data.\r\n */\r\n getPromotionCodeDiscounts (params: QueryParams): Observable<PromotionCodeDiscountsOut> {\r\n return this.http.get<ApiSuccess<PromotionCodeDiscountsOut>>(`${this.url}/promotion-code-discounts`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the downloadable resource associated with the given transaction ID.\r\n *\r\n * @param {string} transactionId - The unique identifier of the transaction whose download is requested.\r\n * @return {Observable<HttpResponse<ArrayBuffer>>} An observable that emits the HTTP response containing the resource in the form of an ArrayBuffer.\r\n */\r\n getDownload (transactionId: string): Observable<HttpResponse<ArrayBuffer>> {\r\n return this.http.get(`${this.url}/download/${transactionId}`, {\r\n observe: 'response',\r\n responseType: 'arraybuffer'\r\n })\r\n }\r\n\r\n /**\r\n * Retrieves file check information for the specified transaction ID.\r\n *\r\n * @param {string} transactionId - The ID of the transaction for which the file check information is to be retrieved.\r\n * @return {Observable<FileCheckOut>} An observable that emits the file check information associated with the given transaction ID.\r\n */\r\n getFileCheck (transactionId: string): Observable<FileCheckOut> {\r\n return this.http.get<ApiSuccess<FileCheckOut>>(`${this.url}/file-check/${transactionId}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes the file check associated with the provided transaction ID.\r\n *\r\n * @param {string} transactionId - The unique identifier of the transaction whose file check is to be deleted.\r\n * @return {Observable<{}>} An observable emitting the response data after the deletion is processed.\r\n */\r\n deleteFileCheck (transactionId: string): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/file-check/${transactionId}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves partial withdrawals based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The parameters used to filter the list of partial withdrawals.\r\n * @returns {Observable<PartialWithdrawalsOut>} An observable that emits the filtered list of partial withdrawals.\r\n */\r\n getPartialWithdrawals (params: QueryParams): Observable<PartialWithdrawalsOut> {\r\n return this.http.get<ApiSuccess<PartialWithdrawalsOut>>(`${this.url}/partial-withdrawals`, {\r\n params\r\n })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of invoices based on the provided query parameters.\r\n *\r\n * @param params - The query parameters used to filter the invoices.\r\n * @returns An observable that emits the list of invoices.\r\n */\r\n getInvoices (params: QueryParams): Observable<InvoicesOut> {\r\n return this.http.get<ApiSuccess<InvoicesOut>>(`${this.url}/invoices`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport {\r\n AuthLoginIn,\r\n AuthLoginOut,\r\n AuthMeOut,\r\n AuthUserLoginIn,\r\n ChangeLanguageIn,\r\n GetUserOut,\r\n GetUsersOut,\r\n ModulesOut,\r\n PutUsersIn,\r\n PutUsersOut,\r\n RoleIn,\r\n RoleOut,\r\n RolesOut,\r\n RoleTypesOut,\r\n SessionIn,\r\n SessionOut\r\n} from './models/api-security.types'\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { map, Observable, tap } from 'rxjs'\r\nimport { CookieService } from 'ngx-cookie-service'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiSecurityService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private cookie: CookieService,\r\n private http: HttpClient\r\n ) {}\r\n\r\n /**\r\n * Retrieves the API security URL from the environments configuration.\r\n *\r\n * @return {string} The API security URL.\r\n */\r\n get url (): string {\r\n return this.environments.apiSecurityUrl ?? ''\r\n }\r\n\r\n /**\r\n * Handles the login authentication request by sending the login data to the authentication endpoint.\r\n *\r\n * @param {AuthLoginIn} body The payload containing login credentials.\r\n * @return {Observable<AuthLoginOut>} An observable emitting the authentication response data.\r\n */\r\n postAuthLogin (body: AuthLoginIn): Observable<AuthLoginOut> {\r\n return this.http.post<ApiSuccess<AuthLoginOut>>(`${this.url}/auth/login`, body)\r\n .pipe(\r\n map(({ data }) => data),\r\n tap(({ access_token }) => this.cookie.set(this.environments.authCookie, access_token, { path: '/' }))\r\n )\r\n }\r\n\r\n /**\r\n * Handles the user login process by sending user credentials to the authentication endpoint.\r\n *\r\n * @param {AuthUserLoginIn} body - The request payload containing user login details such as username and password.\r\n * @return {Observable<AuthLoginOut>} An observable that emits the authenticated user's login data upon successful login.\r\n */\r\n postAuthUserLogin (body: AuthUserLoginIn): Observable<AuthLoginOut> {\r\n return this.http.post<ApiSuccess<AuthLoginOut>>(`${this.url}/auth/user-login`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Logs out the current user by making a POST request to the logout endpoint.\r\n *\r\n * This method deletes all cookies after a successful logout.\r\n *\r\n * @return {Observable<{}>} An observable that emits the server's response to the logout request.\r\n */\r\n postAuthLogout (): Observable<{}> {\r\n return this.http.post<ApiSuccess<{}>>(`${this.url}/auth/logout`, null)\r\n .pipe(\r\n map(({ data }) => data),\r\n tap(() => this.cookie.delete(this.environments.authCookie, '/'))\r\n )\r\n }\r\n\r\n /**\r\n * Creates a new session for a specified model.\r\n *\r\n * @param {Object} params - The parameters for creating the session.\r\n * @param {string} params.modelType - The type of the model.\r\n * @param {string} params.modelId - The ID of the model.\r\n * @param {string} [params.token] - Optional authorization token.\r\n *\r\n * @return {Observable<SessionOut>} An observable containing the created session details.\r\n */\r\n postSession ({\r\n modelType,\r\n modelId,\r\n token,\r\n }: SessionIn): Observable<SessionOut> {\r\n let headers = new HttpHeaders({})\r\n\r\n if (token) { headers = headers.set('Authorization', `Bearer ${token}`) }\r\n\r\n return this.http.post<ApiSuccess<SessionOut>>(\r\n `${this.url}/sessions`, {\r\n model_type: modelType,\r\n model_id: modelId,\r\n }, {\r\n headers\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the authenticated user's information.\r\n * Sends a GET request to the endpoint '/auth/me' to retrieve information\r\n * about the currently authenticated user.\r\n *\r\n * @return {Observable<AuthMeOut>} An observable that emits the authenticated user's data.\r\n */\r\n getAuthMe (): Observable<AuthMeOut> {\r\n return this.http.get<ApiSuccess<AuthMeOut>>(`${this.url}/auth/me`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the authenticated user's details from the server.\r\n *\r\n * @param token The JWT token used for authorization.\r\n * @return An Observable that emits the user's details encapsulated in a MeOut object.\r\n */\r\n getOtherMe (token: string): Observable<AuthMeOut> {\r\n return this.http.get<ApiSuccess<AuthMeOut>>(`${this.url}/auth/me`, {\r\n headers: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches a user by their unique ID.\r\n *\r\n * @param {number} id - The unique identifier of the user to be fetched.\r\n * @return {Observable<GetUserOut>} An observable containing the user information.\r\n */\r\n getUser (id: number): Observable<GetUserOut> {\r\n return this.http.get<ApiSuccess<GetUserOut>>(`${this.url}/users/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches a list of users from the server based on the specified query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the list of users.\r\n * @return {Observable<GetUsersOut>} An observable that emits the list of users retrieved from the server.\r\n */\r\n getUsers (params: QueryParams): Observable<GetUsersOut> {\r\n return this.http.get<ApiSuccess<GetUsersOut>>(`${this.url}/users`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the information of a specified user on the server.\r\n *\r\n * @param {Object} params - The parameter object.\r\n * @param {Object} params.user - The user object containing updated data.\r\n * @param {string} params.user.id - The unique identifier of the user to be updated.\r\n *\r\n * @return {void} This method does not return a value.\r\n */\r\n putUsers ({ user }: PutUsersIn) {\r\n return this.http.put<ApiSuccess<PutUsersOut>>(`${this.url}/users/${user.id}`, user)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Changes the language for the authenticated user.\r\n *\r\n * @param {Object} params - The input parameters for changing the language.\r\n * @param {string} params.languageId - The ID of the new language to be set.\r\n * @return {Observable<ApiSuccess<AuthMeOut>>} An observable that emits the result of the language change request.\r\n */\r\n putChangeLanguage ({\r\n languageId\r\n }: ChangeLanguageIn): Observable<AuthMeOut> {\r\n return this.http.put<ApiSuccess<AuthMeOut>>(`${this.url}/auth/me`, {\r\n language_id: languageId\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of roles with their permissions.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the roles.\r\n * @returns {Observable<RoleIn[]>} An observable that emits an array of role permissions.\r\n */\r\n getRoles (params: QueryParams): Observable<RolesOut> {\r\n return this.http.get<ApiSuccess<RolesOut>>(`${this.url}/roles`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves roles by the specified ID.\r\n *\r\n * @param id - The ID of the role to retrieve.\r\n * @returns An Observable that emits the role data.\r\n */\r\n getRole (id: number): Observable<RoleOut> {\r\n return this.http.get<ApiSuccess<RoleOut>>(`${this.url}/roles/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Creates a new role with the specified permissions.\r\n *\r\n * @param {RoleIn} body - The permissions and details for the new role.\r\n * @returns {Observable<RoleOut>} An observable containing the created role's permissions.\r\n */\r\n postRole (body: RoleIn): Observable<RoleOut> {\r\n return this.http.post<ApiSuccess<RoleOut>>(`${this.url}/roles`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates the permissions of a specific role.\r\n *\r\n * @param id - The unique identifier of the role to update.\r\n * @param body - The new permissions to assign to the role.\r\n * @returns An Observable that emits the updated module permissions.\r\n */\r\n putRole (id: number, body: RoleIn): Observable<RoleOut> {\r\n return this.http.put<ApiSuccess<RoleOut>>(`${this.url}/roles/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Deletes the permissions associated with a specific role.\r\n *\r\n * @param {number} id - The unique identifier of the role whose permissions are to be deleted.\r\n * @returns {Observable<{}>} An observable that emits the result of the delete operation.\r\n */\r\n deleteRole (id: number): Observable<{}> {\r\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/roles/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the role types from the API.\r\n *\r\n * @param {QueryParams} params - The query parameters to be sent with the request.\r\n * @returns {Observable<RoleTypesOut>} An observable containing the role types output.\r\n */\r\n getRoleTypes (params: QueryParams): Observable<RoleTypesOut> {\r\n return this.http.get<ApiSuccess<RoleTypesOut>>(`${this.url}/role-types`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of modules and permissions\r\n *\r\n * @param queryParams - The query parameters to filter the modules.\r\n * @returns Observable<ModulesOut[]> - An observable that emits an array of modules and permissions.\r\n */\r\n getModules (queryParams: QueryParams): Observable<ModulesOut> {\r\n return this.http.get<ApiSuccess<ModulesOut>>(`${this.url}/modules`, {\r\n params: queryParams\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves a list of modules and permissions\r\n *\r\n * @param params.token - Custom token for authorization.\r\n * @param params.queryParams - The query parameters to filter the modules.\r\n * @returns Observable<ModulesOut[]> - An observable that emits an array of modules and permissions.\r\n */\r\n getModulesByToken (params: {\r\n token: string,\r\n queryParams: QueryParams\r\n }): Observable<ModulesOut> {\r\n return this.http.get<ApiSuccess<ModulesOut>>(`${this.url}/modules`, {\r\n params: params.queryParams,\r\n headers: {\r\n Authorization: `Bearer ${params.token}`\r\n }\r\n }).pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { HttpClient } from '@angular/common/http'\r\nimport { ApiSuccess } from './models/api.models'\r\nimport { map, Observable } from 'rxjs'\r\nimport {\r\n ValidateFacilityIn,\r\n ValidateFacilityOut,\r\n ServiceAreasOut,\r\n EmailErrorIn,\r\n PromotionIn,\r\n PromotionOut,\r\n ValidateNIPOut,\r\n ValidateNIPIn,\r\n ValidateIdentificationBROut,\r\n ValidateIdentificationBRIn, ServiceAreaIn, PostalLocationsOut, GetPostalLocationsIn\r\n} from './models/api-services.types'\r\nimport { ModulesOut } from './models/api-security.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class ApiServicesService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) {}\r\n\r\n /**\r\n * Retrieves the URL for the services API from the environment settings.\r\n * If the URL is not defined, an empty string is returned.\r\n *\r\n * @return {string} The API Services URL or an empty string if not defined.\r\n */\r\n get url (): string {\r\n return this.environments.apiServicesUrl ?? ''\r\n }\r\n\r\n /**\r\n * Retrieves service areas based on the provided query parameters.\r\n *\r\n * @param {ServiceAreaIn} body - The query parameters used to filter and retrieve service areas.\r\n * @return {Observable<NotificationsOut>} An observable that emits the fetched service areas.\r\n */\r\n postServiceAreas (body: ServiceAreaIn): Observable<ServiceAreasOut> {\r\n return this.http.post<ApiSuccess<ServiceAreasOut>>(`${this.url}/service-areas`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Validate facility values based on the provided parameter.\r\n *\r\n * @param {ValidateFacilityIn} body - The facility data to be sent in the request body\r\n * @return {Observable<ValidateFacilityOut>} An observable emitting the response containing the facility validated output data.\r\n */\r\n postValidateFacility (body: ValidateFacilityIn): Observable<ValidateFacilityOut> {\r\n return this.http.post<ApiSuccess<ValidateFacilityOut>>(`${this.url}/facilities`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Create an email resource.\r\n *\r\n * @param {EmailErrorIn} body - The email data to be sent in the request body\r\n * @return {Observable<{}>} An observable emitting the response data.\r\n */\r\n postEmailError (body: EmailErrorIn): Observable<{}> {\r\n return this.http.post<ApiSuccess<{}>>(`${this.url}/emails/error`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a promotion request to the server using the provided body.\r\n *\r\n * @param {PromotionIn} body - The promotion data to be sent in the request body.\r\n * @return {Observable<PromotionOut>} An observable emitting the response containing the promotion output data.\r\n */\r\n postPromotion (body: PromotionIn): Observable<PromotionOut> {\r\n return this.http.post<ApiSuccess<PromotionOut>>(`${this.url}/promotions`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Validate NIP account value based on the provided parameter.\r\n *\r\n * @param {ValidateNIPIn} body - The NIP account data to be sent in the request body\r\n * @return {Observable<ValidateNIPOut>} An observable emitting the response containing the NIP account validated data.\r\n */\r\n postValidateNIP (body: ValidateNIPIn): Observable<ValidateNIPOut> {\r\n return this.http.post<ApiSuccess<ValidateNIPOut>>(`${this.url}/accounts/nip`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Validate BR Identification value based on the provided parameter.\r\n *\r\n * @param {ValidateIdentificationBRIn} body - The BR Identification data to be sent in the request body\r\n * @return {Observable<ValidateIdentificationBROut>} An observable emitting the response containing the BR Identification validated data.\r\n */\r\n postValidateIdentificationBR (body: ValidateIdentificationBRIn): Observable<ValidateIdentificationBROut> {\r\n return this.http.post<ApiSuccess<ValidateIdentificationBROut>>(`${this.url}/identifications/br-validation`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches postal location details based on the provided query parameters.\r\n * @param {GetPostalLocationsIn} queryParams - The query parameters to filter and fetch postal location data.\r\n * @return {Observable<PostalLocationsOut>} An observable that emits the postal location details.\r\n */\r\n getPostalLocations (queryParams: GetPostalLocationsIn): Observable<PostalLocationsOut> {\r\n return this.http.get<ApiSuccess<PostalLocationsOut>>(`${this.url}/postal-locations`, {\r\n params: queryParams\r\n }).pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http'\r\nimport { Inject, Injectable } from '@angular/core'\r\nimport { map, Observable } from 'rxjs'\r\nimport { Environment } from '../ngx-services.models'\r\nimport {\r\n ExportTypesOut,\r\n ManifestMultipleIn,\r\n ManifestMultipleOut,\r\n ShipmentCancellationIn,\r\n ShipmentCancellationOut,\r\n ShipmentEmployeeCustomer,\r\n ValidateAccountIn,\r\n ValidateAccountOut\r\n} from './models/api-shipments.types'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiShipmentsService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the shipments API from the environment configurations.\r\n *\r\n * @return {string} The URL of the shipments API.\r\n */\r\n get url (): string {\r\n return this.environments.apiShipmentUrl ?? ''\r\n }\r\n\r\n /**\r\n * Retrieves the parameter values based on the provided parameter names.\r\n *\r\n * @param {ValidateAccountIn} body - An object of parameter names for which the values need to be fetched.\r\n * @return {Observable<ValidateAccountIn>} An observable that emits the fetched parameter values\r\n * @param body\r\n */\r\n postValidateAccount (body: ValidateAccountIn): Observable<ValidateAccountOut> {\r\n return this.http.post<ApiSuccess<ValidateAccountOut>>(`${this.url}/accounts`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a POST request to the shipments manifest endpoint with the provided body.\r\n *\r\n * @param body - The request payload of type `ManifestMultipleIn`.\r\n * @returns An observable that emits the response data of type `ManifestMultipleOut`.\r\n */\r\n postManifestMultiple (body: ManifestMultipleIn) {\r\n return this.http.post<ApiSuccess<ManifestMultipleOut>>(`${this.url}/shipments/manifest`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Validates and obtains the number of shipments allowed by an employee customer\r\n *\r\n * @return {Observable<ShipmentEmployeeCustomer>} An observable containing the shipments allowed by an employee\r\n * @param id\r\n */\r\n getEmployeeCustomer (id: number): Observable<ShipmentEmployeeCustomer> {\r\n return this.http.get<ApiSuccess<ShipmentEmployeeCustomer>>(`${this.url}/shipments/employee-customer/${id}`).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Cancels a specific shipment by providing its ID and a reason for cancellation.\r\n * Sends a PATCH request to update the shipment's cancellation status with the specified reason.\r\n *\r\n * @param {Object} param0 - The input object containing shipment cancellation details.\r\n * @param {string} param0.shipmentId - The unique identifier of the shipment to be canceled.\r\n * @param {string} param0.reasonId - The unique identifier of the reason for cancellation.\r\n * @return {Observable<ShipmentCancellationOut>} An observable emitting the result of the cancellation operation.\r\n */\r\n patchShipmentsCancellation ({ shipmentId, reasonId }: ShipmentCancellationIn): Observable<ShipmentCancellationOut> {\r\n return this.http.patch<ApiSuccess<ShipmentCancellationOut>>(`${this.url}/shipments/${shipmentId}/cancellation`, {\r\n cancellationReasonId: reasonId\r\n }).pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches a list of export types based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the export types.\r\n * @return {Observable<ExportTypesOut>} An observable containing the list of export types.\r\n */\r\n getExportTypes (params: QueryParams): Observable<ExportTypesOut> {\r\n return this.http.get<ApiSuccess<ExportTypesOut>>(`${this.url}/export-types`, {\r\n params\r\n }).pipe(map(({ data }) => data))\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http'\r\nimport { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\nimport { map, Observable } from 'rxjs'\r\nimport { ApiSuccess, QueryParams } from './models/api.models'\r\nimport {\r\n SuppliesOut,\r\n SupplyIn,\r\n SupplyLocationIn,\r\n SupplyLocationOut, SupplyLocationsOut, SupplyLocationTransactionIn, SupplyLocationTransactionOut,\r\n SupplyOut, SupplyTransactionTypesOut,\r\n SupplyTypesOut\r\n} from './models/api-supplies.types'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ApiSuppliesService {\r\n constructor (\r\n @Inject('env') private environments: Environment,\r\n private http: HttpClient\r\n ) { }\r\n\r\n /**\r\n * Retrieves the URL for the API supplies endpoint.\r\n *\r\n * @return {string} The API supplies URL or an empty string if not defined.\r\n */\r\n get url (): string {\r\n return this.environments.apiSuppliesUrl ?? ''\r\n }\r\n\r\n /**\r\n * Fetches a list of supplies based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the supplies.\r\n * @return {Observable<SuppliesOut>} An observable containing the list of supplies.\r\n */\r\n getSupplies (params: QueryParams): Observable<SuppliesOut> {\r\n return this.http.get<ApiSuccess<SuppliesOut>>(`${this.url}/supplies`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Retrieves the supply details for a given supply ID.\r\n *\r\n * @param {number} id - The unique identifier of the supply to retrieve.\r\n * @return {Observable<SupplyOut>} An observable containing the supply details.\r\n */\r\n getSupply (id: number): Observable<SupplyOut> {\r\n return this.http.get<ApiSuccess<SupplyOut>>(`${this.url}/supplies/${id}`)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Sends a supply object to the server and returns the created or updated supply information.\r\n *\r\n * @param {SupplyIn} body - The supply information to be sent to the server.\r\n * @return {Observable<SupplyOut>} An observable containing the response with the supply data.\r\n */\r\n postSupply (body: SupplyIn): Observable<SupplyOut> {\r\n return this.http.post<ApiSuccess<SupplyOut>>(`${this.url}/supplies`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Updates an existing supply with the provided data.\r\n *\r\n * @param {number} id - The unique identifier of the supply to update.\r\n * @param {SupplyIn} body - The data to update the supply with.\r\n * @return {Observable<SupplyOut>} An observable containing the updated supply information.\r\n */\r\n putSupply (id: number, body: SupplyIn): Observable<SupplyOut> {\r\n return this.http.put<ApiSuccess<SupplyOut>>(`${this.url}/supplies/${id}`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the supply types based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the supply types.\r\n * @return {Observable<SupplyTypesOut>} An Observable that emits the supply types data.\r\n */\r\n getSupplyTypes (params: QueryParams): Observable<SupplyTypesOut> {\r\n return this.http.get<ApiSuccess<SupplyTypesOut>>(`${this.url}/supply-types`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Creates a new supply location.\r\n *\r\n * @param {SupplyLocationIn} body - The supply location data to create.\r\n * @return {Observable<SupplyLocationOut>} An Observable that emits the created supply location data.\r\n */\r\n postSupplyLocations (body: SupplyLocationIn): Observable<SupplyLocationOut> {\r\n return this.http.post<ApiSuccess<SupplyLocationOut>>(`${this.url}/supply-locations`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the supply locations based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the supply locations.\r\n * @return {Observable<SupplyLocationsOut>} An Observable that emits the supply locations data.\r\n */\r\n getSupplyLocations (params: QueryParams): Observable<SupplyLocationsOut> {\r\n return this.http.get<ApiSuccess<SupplyLocationsOut>>(`${this.url}/supply-locations`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Creates a new supply location transaction.\r\n *\r\n * @param {SupplyLocationTransactionIn} body - The transaction data to create.\r\n * @return {Observable<SupplyLocationTransactionOut>} An Observable that emits the created transaction data.\r\n */\r\n postSupplyLocationTransaction (body: SupplyLocationTransactionIn): Observable<SupplyLocationTransactionOut> {\r\n return this.http.post<ApiSuccess<SupplyLocationTransactionOut>>(`${this.url}/supply-location-transactions`, body)\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Fetches the supply transaction types based on the provided query parameters.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the transaction types.\r\n * @return {Observable<SupplyTransactionTypesOut>} An Observable that emits the supply transaction types data.\r\n */\r\n getSupplyTransactionTypes (params: QueryParams): Observable<SupplyTransactionTypesOut> {\r\n return this.http.get<ApiSuccess<SupplyTransactionTypesOut>>(`${this.url}/supply-transaction-types`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n\r\n /**\r\n * Exports the supply locations to an Excel file.\r\n *\r\n * @param {QueryParams} params - The query parameters to filter the data before export.\r\n * @return {Observable<{ mime_type: string; base64: string }>} An Observable that emits the exported file's MIME type and Base64 content.\r\n */\r\n getSupplyLocationsExportToExcel (params: QueryParams): Observable<{ mime_type: string; base64: string }> {\r\n return this.http.get<ApiSuccess<{ mime_type: string; base64: string }>>(`${this.url}/supply-locations/export/excel`, { params })\r\n .pipe(map(({ data }) => data))\r\n }\r\n}\r\n","export enum ViewSectionOption {\r\n SHIPMENT = 'shipment',\r\n PICKUP = 'pickup',\r\n EMPLOYEE_DHL = 'employee_dhl',\r\n BILLING = 'billing',\r\n CUSTOMER_RESTRICTION = 'customer_restriction'\r\n}\r\n","export enum OperationModuleStatus {\r\n CANCELED = 'canceled',\r\n COMPLETED = 'completed',\r\n IN_PROGESS = 'in_progress'\r\n}\r\n","export enum Event {\r\n damage = 'damage',\r\n lost = 'lost',\r\n rejected = 'rejected',\r\n return = 'return '\r\n}\r\n\r\nexport enum DefaultValueType {\r\n payment_type = 'payment_type',\r\n currency_code = 'currency_code',\r\n destination = 'destination',\r\n payment_amount = 'payment_amount'\r\n}\r\n\r\nexport enum AlphaNumeric {\r\n alpha_numeric = 'alpha_numeric',\r\n numeric = 'numeric',\r\n alphabetic = 'alphabetic',\r\n amount = 'amount'\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport Pusher, { Channel } from 'pusher-js'\r\nimport { Observable } from 'rxjs'\r\nimport { Environment } from '../ngx-services.models'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class WebSocketsService {\r\n private pusher: Pusher | null\r\n\r\n constructor (\r\n @Inject('env') private environments: Environment\r\n ) {\r\n this.pusher = null\r\n\r\n this.connect()\r\n .then((pusher) => {\r\n if (!pusher) return\r\n\r\n this.pusher = pusher\r\n })\r\n }\r\n\r\n /**\r\n * Publishes an event to the specified channel with the given data.\r\n *\r\n * @param {Channel} channel - The channel instance where the event will be published.\r\n * @param {string} eventName - The name of the event to be published.\r\n * @param {T} data - The payload data to be sent with the event.\r\n * @return {Promise<boolean>} A promise that resolves to a boolean indicating\r\n * whether the event was successfully triggered on the channel.\r\n */\r\n async pub<T> (channel: Channel, eventName: string, data: T) {\r\n return channel.trigger(`client-${eventName}`, data)\r\n }\r\n\r\n /**\r\n * Subscribes to a specified channel, retrying multiple times upon failure.\r\n *\r\n * @param {string} channelName - The name of the channel to be subscribed to.\r\n * @return {Promise<Channel>} A promise that resolves to the subscribed channel object if successful.\r\n * @throws {Error} If the subscription fails after the maximum number of retry attempts.\r\n */\r\n async channelSub (channelName: string): Promise<Channel> {\r\n const attempts = 3\r\n\r\n for (let attempt = 0; attempt <= attempts; attempt++) {\r\n const channel = this.pusher?.channel(channelName)\r\n\r\n if (channel?.subscribed) {\r\n return channel\r\n }\r\n\r\n this.pusher?.subscribe(channelName)\r\n\r\n if (attempt < attempts) {\r\n await this.wait()\r\n }\r\n }\r\n\r\n throw new Error(`Failed to subscribe to channel \"${channelName}\" after ${attempts} attempts.`)\r\n }\r\n\r\n /**\r\n * Binds an event listener to a specified event on a given channel using Pusher or a Channel object,\r\n * and returns an Observable that emits event data of type T.\r\n *\r\n * @param {Channel|string} channel - The channel to bind the event to. It can be a Channel object or a string representing the channel name.\r\n * @param {string} event - The name of the event to bind to the channel.\r\n * @return {Observable<T>} An Observable that emits data of type T when the specified event is triggered.\r\n */\r\n eventBind<T> (channel: Channel | string, event: string): Observable<T> {\r\n return new Observable((subscriber) => {\r\n if ((channel as Channel)?.name) {\r\n (channel as Channel).bind(event, (data: T) => subscriber.next(data))\r\n } else {\r\n this.pusher?.subscribe((channel as string))\r\n .bind(event, (data: T) => subscriber.next(data))\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Unbinds an event from the specified channel and returns an observable\r\n * that emits data when the event callback is triggered.\r\n *\r\n * @param {Channel} channel - The channel object from which the event should be unbound.\r\n * @param {string} event - The name of the event to unbind.\r\n * @return {Observable<T>} An observable that emits data from the unbound event callback.\r\n */\r\n eventUnbind<T> (channel: Channel, event: string) {\r\n return new Observable((subscriber) =>\r\n channel.unbind(event, (data: T) => subscriber.next(data)))\r\n }\r\n\r\n private connect () {\r\n return new Promise<Pusher | false>((resolve) => {\r\n const { sockets } = this.environments\r\n\r\n if (!sockets) return resolve(false)\r\n\r\n const pusher = new Pusher(sockets.app_key, {\r\n wsHost: sockets.url,\r\n wsPort: sockets.port,\r\n enabledTransports: ['wss', 'ws'],\r\n forceTLS: false,\r\n enableStats: false,\r\n })\r\n\r\n if (sockets.debug) {\r\n Pusher.logToConsole = true\r\n }\r\n\r\n return resolve(pusher)\r\n })\r\n }\r\n\r\n private async wait (): Promise<void> {\r\n const waitTime = 3 * 1000\r\n\r\n return new Promise((resolve) => setTimeout(resolve, waitTime))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Environment } from '../ngx-services.models'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CryptoService {\r\n constructor (\r\n @Inject('env') private environments: Environment\r\n ) {\r\n }\r\n\r\n public async encryptAES (plaintext: string): Promise<string> {\r\n const cryptoKey = await this.loadKey()\r\n\r\n // Convert the plaintext in Uint8Array\r\n const encoder = new TextEncoder()\r\n const encoded = encoder.encode(plaintext)\r\n\r\n // Generate a random Initialization Vector (IV)\r\n const iv = crypto.getRandomValues(new Uint8Array(12))\r\n\r\n // Encrypt the plaintext\r\n const ciphertext = await crypto.subtle.encrypt(\r\n {\r\n name: 'AES-GCM',\r\n iv,\r\n },\r\n cryptoKey,\r\n encoded\r\n )\r\n\r\n return `${this.uint8ArrayToBase64(iv)}:${this.arrayBufferToBase64(ciphertext)}`\r\n }\r\n\r\n public async decryptAES (payload: string): Promise<string> {\r\n // Extract the Initialization Vector (IV), and the cypher text\r\n const [base64IV, base64Ciphertext] = payload.split(':')\r\n\r\n if (!base64IV || !base64Ciphertext) { throw new Error('The payload must contain the IV and the cipher text.') }\r\n\r\n const cryptoKey = await this.loadKey()\r\n\r\n const iv = this.base64ToUint8Array(base64IV)\r\n const cipherText = this.base64ToArrayBuffer(base64Ciphertext)\r\n\r\n // Decrypt the cypher text\r\n const decrypted = await crypto.subtle.decrypt(\r\n {\r\n name: 'AES-GCM',\r\n iv,\r\n },\r\n cryptoKey,\r\n cipherText\r\n )\r\n\r\n // Decode the decrypted text\r\n const decoder = new TextDecoder()\r\n return decoder.decode(decrypted)\r\n }\r\n\r\n private async loadKey () {\r\n // Decode the base64 key to Uint8Array\r\n const rawKey = this.base64ToUint8Array(this.environments.secretKey)\r\n\r\n // Import the key to API Crypto\r\n return await crypto.subtle.importKey(\r\n 'raw',\r\n rawKey,\r\n { name: 'AES-GCM' },\r\n true,\r\n ['encrypt', 'decrypt']\r\n )\r\n }\r\n\r\n private uint8ArrayToBase64 (data: Uint8Array): string {\r\n let binary = ''\r\n const len = data.byteLength\r\n\r\n for (let i = 0; i < len; i++) {\r\n binary += String.fromCharCode(data[i])\r\n }\r\n\r\n return btoa(binary)\r\n }\r\n\r\n private base64ToUint8Array (base64: string): Uint8Array {\r\n const binaryString = atob(base64)\r\n const len = binaryString.length\r\n const bytes = new Uint8Array(len)\r\n for (let i = 0; i < len; i++) {\r\n bytes[i] = binaryString.charCodeAt(i)\r\n }\r\n return bytes\r\n }\r\n\r\n private arrayBufferToBase64 (buffer: ArrayBuffer): string {\r\n let binary = ''\r\n const bytes = new Uint8Array(buffer)\r\n const len = bytes.byteLength\r\n\r\n for (let i = 0; i < len; i++) {\r\n binary += String.fromCharCode(bytes[i])\r\n }\r\n\r\n return btoa(binary)\r\n }\r\n\r\n private base64ToArrayBuffer (base64: string): ArrayBuffer {\r\n const binaryString = atob(base64)\r\n const len = binaryString.length\r\n const bytes = new Uint8Array(len)\r\n\r\n for (let i = 0; i < len; i++) {\r\n bytes[i] = binaryString.charCodeAt(i)\r\n }\r\n\r\n return bytes.buffer\r\n }\r\n}\r\n","import { HttpEvent, HttpHandlerFn, HttpRequest } from '@angular/common/http'\r\nimport { Observable } from 'rxjs'\r\n\r\n/**\r\n * Intercepts an outgoing HTTP request and modifies its headers to include default values\r\n * for Cache-Control, Expires, Pragma, Content-Type, Accept, and Accept-Language if they\r\n * are not already present.\r\n *\r\n * @param {HttpRequest<unknown>} req - The outgoing HTTP request to be intercepted and modified.\r\n * @param {HttpHandlerFn} next - The next handler in the chain to pass the modified request to.\r\n * @return {Observable<HttpEvent<unknown>>} An observable of the HTTP event resulting from the processed request.\r\n */\r\nexport function apiHeadersInterceptor (req: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>> {\r\n let { headers } = req\r\n\r\n if (!headers.has('Content-Type') && !(req.body instanceof FormData)) {\r\n headers = headers.set('Content-Type', 'application/json')\r\n }\r\n\r\n if (!headers.has('Accept')) {\r\n headers = headers.set('Accept', 'application/json')\r\n }\r\n\r\n if (!headers.has('Accept-Language')) {\r\n headers = headers.set('Accept-Language', localStorage.getItem('lang') ?? 'en')\r\n }\r\n\r\n req = req.clone({ headers })\r\n\r\n return next(req)\r\n}\r\n","import { inject } from '@angular/core'\r\nimport { HttpEvent, HttpHandlerFn, HttpRequest } from '@angular/common/http'\r\nimport { Observable } from 'rxjs'\r\nimport { CookieService } from 'ngx-cookie-service'\r\nimport { ENVIRONMENT_TOKEN } from '../ngx-services.models'\r\n\r\n/**\r\n * An HTTP interceptor to append an Authorization header with a Bearer token\r\n * to outgoing HTTP requests if certain conditions are met.\r\n *\r\n * @param {HttpRequest<unknown>} req - The outgoing HTTP request object which may be modified.\r\n * @param {HttpHandlerFn} next - The next handler in the HTTP request pipeline.\r\n * @return {Observable<HttpEvent<unknown>>} An observable of the HTTP event stream resulting from the request.\r\n */\r\nexport function apiTokenInterceptor (req: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>> {\r\n const { authCookie } = inject(ENVIRONMENT_TOKEN)\r\n const cookie = inject(CookieService)\r\n\r\n if (req.headers.has('Authorization') || req.headers.has('AppKey')) {\r\n return next(req)\r\n }\r\n\r\n const token = cookie.get(authCookie)\r\n\r\n if (!token) return next(req)\r\n\r\n req = req.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`\r\n }\r\n })\r\n\r\n return next(req)\r\n}\r\n","import { inject } from '@angular/core'\r\nimport { HttpEvent, HttpHandlerFn, HttpRequest, HttpResponse } from '@angular/common/http'\r\n\r\nimport { Observable, of } from 'rxjs'\r\nimport { tap } from 'rxjs/operators'\r\nimport { ENVIRONMENT_TOKEN } from '../ngx-services.models'\r\n\r\nconst DEFAULT_TTL = 10000 // ttl in ms\r\nconst cache = new Map<string, { ttl: number, res: HttpResponse<any> }>()\r\n\r\n/**\r\n * Interceptor function to handle HTTP caching for GET requests. It retrieves cached responses\r\n * if available and valid; otherwise, it processes the request and caches the response for future use.\r\n *\r\n * @param {HttpRequest<any>} req - The HTTP request object being intercepted.\r\n * @param {HttpHandlerFn} next - The next HTTP handler function in the chain to process the request.\r\n * @return {Observable<HttpEvent<any>>} An observable that emits the HTTP event, either from cache\r\n * or by invoking the next handler.\r\n */\r\nexport function httpCachingInterceptor (req: HttpRequest<any>, next: HttpHandlerFn): Observable<HttpEvent<any>> {\r\n const { cacheTtl } = inject(ENVIRONMENT_TOKEN)\r\n\r\n if (req.method !== 'GET') return next(req)\r\n\r\n const cached = cache.get(req.urlWithParams)\r\n\r\n if (cached) {\r\n const isExpired = Date.now() > cached.ttl\r\n\r\n if (!isExpired) { return of(cached.res) }\r\n\r\n cache.delete(req.urlWithParams) // If expired, remove the entry from cache\r\n }\r\n\r\n return next(req).pipe(\r\n tap((res) => {\r\n if (!(res instanceof HttpResponse)) { return }\r\n\r\n const ttl = Date.now() + (cacheTtl ?? DEFAULT_TTL)\r\n\r\n cache.set(req.urlWithParams, { res, ttl })\r\n })\r\n )\r\n}\r\n","import { HttpHeaders, HttpParams } from '@angular/common/http'\r\nimport { QueryParams } from '../apis/models/api.models'\r\n\r\n/**\r\n * Convert an object of key-value pairs into a URL query string.\r\n *\r\n * @param {Object} params - The key-value pairs to converted into a query string.\r\n *\r\n * @return {string} - The generated query string.\r\n */\r\nexport const queryString = (params: QueryParams): string => {\r\n const queryElements: string[] = []\r\n\r\n Object.entries(params).forEach(([key, value]) => {\r\n if (Array.isArray(value)) {\r\n const arrayQuery = value\r\n .map((item) => `${encodeURIComponent(key)}=${encodeURIComponent(item as string | number | boolean)}`)\r\n .join('&')\r\n\r\n queryElements.push(arrayQuery)\r\n } else {\r\n const encodedQuery = `${encodeURIComponent(key)}=${encodeURIComponent(value as string | number | boolean)}`\r\n\r\n queryElements.push(encodedQuery)\r\n }\r\n })\r\n\r\n const queryString = queryElements.join('&')\r\n\r\n return queryString.length ? `?${queryString}` : ''\r\n}\r\n\r\n/**\r\n * Creates an instance of HttpParams using the provided params object.\r\n *\r\n * @param {Object} params - The object containing the params to the HttpParams constructor.\r\n *\r\n * @returns {HttpParams} - An instance of HttpParams created from the params object.\r\n */\r\nexport const httpParams = (\r\n params: QueryParams\r\n): HttpParams => new HttpParams({\r\n fromObject: params\r\n})\r\n\r\n/**\r\n * Returns the headers for generating PDF files.\r\n *\r\n * @param {string} format - The format of the headers, 'object' or 'http_header'.\r\n *\r\n * @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating PDF files.\r\n */\r\nexport const pdfHeaders = (format: 'object' | 'http_header' = 'object'): HttpHeaders | { [header: string]: string | string[] } => {\r\n const headers = {\r\n Accept: 'application/pdf'\r\n }\r\n\r\n return format === 'object'\r\n ? headers\r\n : new HttpHeaders(headers)\r\n}\r\n\r\n/**\r\n * Returns the headers for generating XML files.\r\n *\r\n * @param {string} format - The format of the headers, 'object' or 'http_header'.\r\n *\r\n * @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating XML files.\r\n */\r\nexport const xmlHeaders = (format: 'object' | 'http_header' = 'object'): HttpHeaders | { [header: string]: string | string[] } => {\r\n const headers = {\r\n Accept: 'application/xml',\r\n }\r\n\r\n return format === 'object'\r\n ? headers\r\n : new HttpHeaders(headers)\r\n}\r\n","export const base64PdfToUrl = (base64: string): string => {\r\n const data = new Uint8Array(\r\n atob(base64)\r\n .split('')\r\n .map(char => char.charCodeAt(0))\r\n )\r\n\r\n const blob = new Blob([data], { type: 'application/pdf' })\r\n\r\n return window.URL.createObjectURL(blob)\r\n}\r\n\r\nexport const downloadBase64Pdf = (base64: string) => window.open(base64PdfToUrl(base64))\r\n","/*\r\n * Public API Surface of ngx-services\r\n */\r\nexport * from './lib/ngx-services.models'\r\nexport * from './lib/ngx-services.module'\r\n\r\n// api services\r\nexport * from './lib/apis/api-billing-do.service'\r\nexport * from './lib/apis/api-billing-gt.service'\r\nexport * from './lib/apis/api-billing-mx.service'\r\nexport * from './lib/apis/api-billing-pa.service'\r\nexport * from './lib/apis/api-billing-sv.service'\r\nexport * from './lib/apis/api-cash-operations.service'\r\nexport * from './lib/apis/api-catalogs.service'\r\nexport * from './lib/apis/api-companies.service'\r\nexport * from './lib/apis/api-composition.service'\r\nexport * from './lib/apis/api-customs.service'\r\nexport * from './lib/apis/api-discounts.service'\r\nexport * from './lib/apis/api-events.service'\r\nexport * from './lib/apis/api-e-tools-auto-billing.service'\r\nexport * from './lib/apis/api-external-pickups.service'\r\nexport * from './lib/apis/api-inventories.service'\r\nexport * from './lib/apis/api-invoices.service'\r\nexport * from './lib/apis/api-notifications.service'\r\nexport * from './lib/apis/api-open-items.service'\r\nexport * from './lib/apis/api-reports.service'\r\nexport * from './lib/apis/api-security.service'\r\nexport * from './lib/apis/api-services.service'\r\nexport * from './lib/apis/api-shipments.service'\r\nexport * from './lib/apis/api-supplies.service'\r\n\r\n// api models\r\nexport * from './lib/apis/models/api-billing.models'\r\nexport * from './lib/apis/models/api-billing-do.interfaces'\r\nexport * from './lib/apis/models/api-billing-do.types'\r\nexport * from './lib/apis/models/api-billing-mx.interfaces'\r\nexport * from './lib/apis/models/api-billing-mx.types'\r\nexport * from './lib/apis/models/api-billing-pa.interfaces'\r\nexport * from './lib/apis/models/api-billing-pa.types'\r\nexport * from './lib/apis/models/api-billing-sv.interfaces'\r\nexport * from './lib/apis/models/api-billing-sv.types'\r\nexport * from './lib/apis/models/api-cash-operations.interfaces'\r\nexport * from './lib/apis/models/api-cash-operations.types'\r\nexport * from './lib/apis/models/api-catalog.enum'\r\nexport * from './lib/apis/models/api-catalog.interfaces'\r\nexport * from './lib/apis/models/api-catalog.types'\r\nexport * from './lib/apis/models/api-companies.interfaces'\r\nexport * from './lib/apis/models/api-companies.types'\r\nexport * from './lib/apis/models/api-composition.interfaces'\r\nexport * from './lib/apis/models/api-composition.types'\r\nexport * from './lib/apis/models/api-customs.interfaces'\r\nexport * from './lib/apis/models/api-customs.types'\r\nexport * from './lib/apis/models/api-discounts.interfaces'\r\nexport * from './lib/apis/models/api-discounts.types'\r\nexport * from './lib/apis/models/api-events.enum'\r\nexport * from './lib/apis/models/api-events.interfaces'\r\nexport * from './lib/apis/models/api-events.types'\r\nexport * from './lib/apis/models/api-e-tools-auto-billing.interfaces'\r\nexport * from './lib/apis/models/api-e-tools-auto-billing.types'\r\nexport * from './lib/apis/models/api-external-pickups.types'\r\nexport * from './lib/apis/models/api-inventories.enum'\r\nexport * from './lib/apis/models/api-inventories.interfaces'\r\nexport * from './lib/apis/models/api-inventories.types'\r\nexport * from './lib/apis/models/api-invoices.interfaces'\r\nexport * from './lib/apis/models/api-invoices.types'\r\nexport * from './lib/apis/models/api-notifications.interfaces'\r\nexport * from './lib/apis/models/api-notifications.types'\r\nexport * from './lib/apis/models/api-open-items.interfaces'\r\nexport * from './lib/apis/models/api-open-items.types'\r\nexport * from './lib/apis/models/api-reports.interfaces'\r\nexport * from './lib/apis/models/api-security.interfaces'\r\nexport * from './lib/apis/models/api-security.types'\r\nexport * from './lib/apis/models/api-services.interfaces'\r\nexport * from './lib/apis/models/api-services.types'\r\nexport * from './lib/apis/models/api-shipments.interfaces'\r\nexport * from './lib/apis/models/api-shipments.types'\r\nexport * from './lib/apis/models/api-supplies.interfaces'\r\nexport * from './lib/apis/models/api-supplies.types'\r\nexport * from './lib/apis/models/api.models'\r\n\r\n// websockets\r\nexport * from './lib/websockets/web-sockets.service'\r\n\r\n// cypher\r\nexport * from './lib/cypher/crypto.service'\r\n\r\n// interceptors\r\nexport * from './lib/interceptors/api-headers.interceptor'\r\nexport * from './lib/interceptors/api-token.interceptor'\r\nexport * from './lib/interceptors/http-caching.interceptor'\r\n\r\n// helpers\r\nexport * from './lib/helpers/http'\r\nexport * from './lib/helpers/files'\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","map","tap"],"mappings":"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"}
1
+ {"version":3,"file":"experteam-mx-ngx-services.mjs","sources":["../../../../projects/experteam-mx/ngx-services/src/lib/ngx-services.models.ts","../../../../projects/experteam-mx/ngx-services/src/lib/ngx-services.module.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-billing-do.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-billing-gt.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-billing-mx.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-billing-pa.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-billing-sv.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-cash-operations.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-catalogs.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-companies.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-composition.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-customs.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-discounts.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-e-tools-auto-billing.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-events.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-external-ops.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-inventories.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-invoices.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-notifications.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-open-items.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-reports.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-security.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-services.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-shipments.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/api-supplies.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/models/api-catalog.enum.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/models/api-events.enum.ts","../../../../projects/experteam-mx/ngx-services/src/lib/apis/models/api-inventories.enum.ts","../../../../projects/experteam-mx/ngx-services/src/lib/websockets/web-sockets.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/cypher/crypto.service.ts","../../../../projects/experteam-mx/ngx-services/src/lib/interceptors/api-headers.interceptor.ts","../../../../projects/experteam-mx/ngx-services/src/lib/interceptors/api-key.interceptor.ts","../../../../projects/experteam-mx/ngx-services/src/lib/interceptors/api-token.interceptor.ts","../../../../projects/experteam-mx/ngx-services/src/lib/interceptors/http-caching.interceptor.ts","../../../../projects/experteam-mx/ngx-services/src/lib/helpers/files.ts","../../../../projects/experteam-mx/ngx-services/src/lib/helpers/http.ts","../../../../projects/experteam-mx/ngx-services/src/public-api.ts","../../../../projects/experteam-mx/ngx-services/src/experteam-mx-ngx-services.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core'\n\n/**\n * Represents the configuration settings for the application's environment.\n * This type includes various API endpoint URLs, authentication details, caching options, and other relevant settings.\n *\n * Properties:\n * - apiCompaniesUrl: The URL for the companies API endpoint.\n * - apiEventsUrl: The URL for the events API endpoint.\n * - apiInvoicesUrl: The URL for the invoices API endpoint.\n * - apiReportsUrl: The URL for the reports API endpoint.\n * - apiSecurityUrl: The URL for the security-related API endpoint.\n * - apiShipmentUrl: The URL for the shipment API endpoint.\n * - authCookie: The name of the authentication cookie used for user sessions.\n * - cacheTtl: Optional. Specifies the time-to-live (TTL) for cached items.\n * - printUrl: Optional. The URL used for generating or downloading printable documents.\n * - secretKey: A secret key used for authentication or other secure operations.\n */\nexport type Environment = {\n apiBillingDO?: string\n apiBillingGT?: string\n apiBillingMX?: string\n apiBillingPA?: string\n apiBillingSV?: string\n apiCashOperationsUrl?: string\n apiCatalogsUrl?: string\n apiCompaniesUrl?: string\n apiCompositionUrl?: string\n apiCustomsUrl?: string\n apiDiscountsUrl?: string\n apiEventsUrl?: string\n apiEToolsAutoBilling?: string\n apiExternalOperationsKey?: string\n apiExternalOperationsUrl?: string\n apiInventoriesUrl?: string\n apiInvoicesUrl?: string\n apiNotificationsUrl?: string\n apiOpenItemsUrl?: string\n apiReportsUrl?: string\n apiSecurityUrl?: string\n apiServicesUrl?: string\n apiShipmentUrl?: string\n apiSuppliesUrl?: string\n authCookie: string\n cacheTtl?: number\n printUrl?: string\n secretKey: string\n sockets?: {\n app_key: string\n debug?: boolean\n port: number\n url: string\n }\n}\n\n/**\n * Injection token used to inject environment configurations.\n *\n * `ENVIRONMENT_TOKEN` is a dependency injection token that allows\n * for the provision and retrieval of environment-specific configurations\n * within the application. This token is typically associated with an\n * `Environment` type that defines the structure of the configuration.\n */\nexport const ENVIRONMENT_TOKEN = new InjectionToken<Environment>('Environments token')\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { Environment } from './ngx-services.models'\nimport { provideHttpClient } from '@angular/common/http'\n\n@NgModule({\n providers: [provideHttpClient()]\n})\nexport class NgxServicesModule {\n /**\n * Returns a module with providers for the NgxServicesModule.\n *\n * @param {Environment} environment - The environment configuration object.\n *\n * @return {ModuleWithProviders<NgxServicesModule>} The module with providers for the NgxServicesModule.\n */\n public static forRoot (environment: Environment): ModuleWithProviders<NgxServicesModule> {\n return {\n ngModule: NgxServicesModule,\n providers: [\n {\n provide: 'env',\n useValue: environment\n }\n ]\n }\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { HttpClient } from '@angular/common/http'\nimport { map, Observable } from 'rxjs'\nimport { ApiSuccess } from './models/api.models'\nimport { IncomeTypesOut } from './models/api-billing-do.types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiBillingDOService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the shipments API from the environment configurations.\n *\n * @return {string} The URL of the shipments API.\n */\n get url (): string {\n return this.environments.apiBillingDO ?? ''\n }\n\n /**\n * Retrieves a list of income types\n *\n * @return {Observable<ApiSuccess<IncomeTypesOut>>} An observable that emits the income types data.\n */\n getIncomeTypes (): Observable<IncomeTypesOut> {\n return this.http.get<ApiSuccess<IncomeTypesOut>>(`${this.url}/income-types`)\n .pipe(map(({ data }) => data))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { HttpClient } from '@angular/common/http'\nimport { map, Observable } from 'rxjs'\nimport { ApiSuccess } from './models/api.models'\nimport {\n ApiBillingConfigurable,\n BillingConfigIn,\n BillingConfigOut,\n BillingConfigsOut\n} from './models/api-billing.models'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiBillingGtService implements ApiBillingConfigurable {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the billing GT API from the environment configurations.\n *\n * @return {string} The URL of the shipments API.\n */\n get url (): string {\n return this.environments.apiBillingGT ?? ''\n }\n\n /**\n * RRetrieves the list of billing configurations to locations\n *\n * @return {Observable<BillingConfigsOut>} An observable that emits an array of billing configurations to locations\n */\n getConfigs (): Observable<BillingConfigsOut> {\n return this.http.get<ApiSuccess<BillingConfigsOut>>(`${this.url}/location/configs`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the details of a location in billing configurations\n *\n * @param {number} id - The id of the location to fetch.\n * @return {Observable<BillingConfigOut>} An observable that emits the location billing configuration data.\n */\n getConfig (id: number): Observable<BillingConfigOut> {\n return this.http.get<ApiSuccess<BillingConfigOut>>(`${this.url}/locations/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create a new billing configuration location.\n *\n * @param {BillingConfigIn} body - The billing configuration to location data to be sent in the request body.\n * @return {Observable<BillingConfigOut>} An observable emitting the created billing configuration to location data.\n */\n postConfigs (body: BillingConfigIn): Observable<BillingConfigOut> {\n return this.http.post<ApiSuccess<BillingConfigOut>>(`${this.url}/locations`, body)\n .pipe(map(({ data }) => data))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { HttpClient } from '@angular/common/http'\nimport { map, Observable } from 'rxjs'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport { FiscalRegimensAcceptedOut, FiscalRegimensOut, PostalCodesOut } from './models/api-billing-mx.types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiBillingMxService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the shipments API from the environment configurations.\n *\n * @return {string} The URL of the shipments API.\n */\n get url (): string {\n return this.environments.apiBillingMX ?? ''\n }\n\n /**\n * Fetches the tax regimen data from the server.\n *\n * @return {Observable<FiscalRegimensOut>} An observable that emits the fiscal regimen data.\n */\n getFiscalRegimens (): Observable<FiscalRegimensOut> {\n return this.http.get<ApiSuccess<FiscalRegimensOut>>(`${this.url}/fiscal-regimens`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches a paginated list of CFDIs (Comprobante Fiscal Digital por Internet) based on the provided fiscal regimen.\n *\n * @param {number} fiscalRegimen - The fiscal regimen identifier to filter the CFDIs.\n * @return {Observable<FiscalRegimensAcceptedOut>} An observable containing the paginated list of CFDIs.\n */\n getFiscalRegimensAccepted (fiscalRegimen: number): Observable<FiscalRegimensAcceptedOut> {\n const params = { 'fiscal-regimen': fiscalRegimen }\n\n return this.http.get<ApiSuccess<FiscalRegimensAcceptedOut>>(`${this.url}/cfdi-uses/fiscal-regimen-accepted/list`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches and validates postal code data from the server.\n *\n * @param {QueryParams} params - Query parameters used to filter the postal code data.\n * @return {Observable<PostalCodesOut>} - An observable emitting the validated postal code data.\n */\n getPostalCodes (params: QueryParams): Observable<PostalCodesOut> {\n return this.http.get<ApiSuccess<PostalCodesOut>>(`${this.url}/postal-codes`, { params })\n .pipe(map(({ data }) => data))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { HttpClient } from '@angular/common/http'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport { map, Observable } from 'rxjs'\nimport { BillingPaCustomerOut, DistrictsOut, ParishesOut, ProvincesOut } from './models/api-billing-pa.types'\nimport { ApiBillingConfigurable, BillingConfigIn, BillingConfigOut, BillingConfigsOut } from './models/api-billing.models'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiBillingPaService implements ApiBillingConfigurable {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the Billing Pa API from the environment configurations.\n *\n * @return {string} The URL of the Billing Pa API.\n */\n get url (): string {\n return this.environments.apiBillingPA ?? ''\n }\n\n /**\n * Retrieves a list of districts based on query parameters.\n *\n * @param {QueryParams} params - Query parameters for filtering the districts.\n * @returns {Observable<DistrictsOut>} The list of districts.\n */\n getDistricts (params: QueryParams): Observable<DistrictsOut> {\n return this.http.get<ApiSuccess<DistrictsOut>>(`${this.url}/districts`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of parishes based on query parameters.\n *\n * @param {QueryParams} params - Query parameters for filtering the parishes.\n * @returns {Observable<ParishesOut>} The list of parishes.\n */\n getParishes (params: QueryParams): Observable<ParishesOut> {\n return this.http.get<ApiSuccess<ParishesOut>>(`${this.url}/parishes`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of provinces based on query parameters.\n *\n * @param {QueryParams} params - Query parameters for filtering the provinces.\n * @returns {Observable<ProvincesOut>} The list of provinces.\n */\n getProvinces (params: QueryParams): Observable<ProvincesOut> {\n return this.http.get<ApiSuccess<ProvincesOut>>(`${this.url}/provinces`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the details of a customer based on query parameters.\n *\n * @param {QueryParams} params - Query parameters for get customer.\n * @return {Observable<BillingPaCustomerOut>} An observable that emits customer data.\n */\n getValidateCustomer (params: QueryParams): Observable<BillingPaCustomerOut> {\n return this.http.get<ApiSuccess<BillingPaCustomerOut>>(`${this.url}/validate-customer`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * RRetrieves the list of billing configurations to locations\n *\n * @return {Observable<BillingConfigsOut>} An observable that emits an array of billing configurations to locations\n */\n getConfigs (): Observable<BillingConfigsOut> {\n return this.http.get<ApiSuccess<BillingConfigsOut>>(`${this.url}/location/configs`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the details of a location in billing configurations\n *\n * @param {number} id - The id of the location to fetch.\n * @return {Observable<BillingConfigOut>} An observable that emits the location billing configuration data.\n */\n getConfig (id: number): Observable<BillingConfigOut> {\n return this.http.get<ApiSuccess<BillingConfigOut>>(`${this.url}/locations/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create a new billing configuration location.\n *\n * @param {BillingConfigIn} body - The billing configuration to location data to be sent in the request body.\n * @return {Observable<BillingConfigOut>} An observable emitting the created billing configuration to location data.\n */\n postConfigs (body: BillingConfigIn): Observable<BillingConfigOut> {\n return this.http.post<ApiSuccess<BillingConfigOut>>(`${this.url}/locations`, body)\n .pipe(map(({ data }) => data))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { HttpClient } from '@angular/common/http'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport { map, Observable } from 'rxjs'\nimport {\n DepartmentsOut,\n EconomicActivitiesOut,\n EstablishmentTypesOut,\n MunicipalitiesOut,\n PersonTypesOut\n} from './models/api-billing-sv.types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiBillingSvService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the billing API.\n * If the URL is not defined in the environments configuration, returns an empty string.\n *\n * @return {string} The billing API URL or an empty string if not set.\n */\n get url (): string {\n return this.environments.apiBillingSV ?? ''\n }\n\n /**\n * Fetches the list of economic activities based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter the economic activities.\n * @return {Observable<EconomicActivitiesOut>} An observable that emits the list of economic activities.\n */\n getEconomicActivities (params: QueryParams): Observable<EconomicActivitiesOut> {\n return this.http.get<ApiSuccess<EconomicActivitiesOut>>(`${this.url}/economic-activities`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the list of person types based on given query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter the person types.\n * @return {Observable<PersonTypesOut>} An observable that emits a list of person types.\n */\n getPersonTypes (params: QueryParams): Observable<PersonTypesOut> {\n return this.http.get<ApiSuccess<PersonTypesOut>>(`${this.url}/person-types`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the list of establishment types.\n *\n * @param {QueryParams} params The query parameters to be sent with the HTTP request.\n * @return {Observable<EstablishmentTypesOut>} An observable that emits the establishment types data.\n */\n getEstablishmentTypes (params: QueryParams): Observable<EstablishmentTypesOut> {\n return this.http.get<ApiSuccess<EstablishmentTypesOut>>(`${this.url}/establishment-types`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the list of departments based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter or modify the departments fetch request.\n * @return {Observable<DepartmentsOut>} An observable emitting the list of departments.\n */\n getDepartments (params: QueryParams): Observable<DepartmentsOut> {\n return this.http.get<ApiSuccess<DepartmentsOut>>(`${this.url}/departments`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of municipalities based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter the municipalities.\n * @return {Observable<MunicipalitiesOut>} An observable that emits the retrieved municipalities data.\n */\n getMunicipalities (params: QueryParams): Observable<MunicipalitiesOut> {\n return this.http.get<ApiSuccess<MunicipalitiesOut>>(`${this.url}/municipalities`, { params })\n .pipe(map(({ data }) => data))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { HttpClient } from '@angular/common/http'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport { map, Observable } from 'rxjs'\nimport {\n CashValueSummaryOut,\n InstallationCountryReferenceCurrenciesOut,\n InstallationCountryReferenceCurrencyIn,\n InstallationCountryReferenceCurrencyOut, OpeningTransferenceIn, OpeningTransferenceOut, ReceiptFileOut\n} from './models/api-cash-operations.types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiCashOperationsService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the cash operations API from the environment configurations.\n *\n * @return {string} The URL of the cash operations API.\n */\n get url (): string {\n return this.environments.apiCashOperationsUrl ?? ''\n }\n\n /**\n * Creates a new installation country reference currency.\n *\n * @param {InstallationCountryReferenceCurrencyIn} body - The data for the new reference currency.\n * @returns {Observable<InstallationCountryReferenceCurrencyOut>} The created reference currency.\n */\n postInstallationCountryReferenceCurrency (body: InstallationCountryReferenceCurrencyIn): Observable<InstallationCountryReferenceCurrencyOut> {\n return this.http.post<ApiSuccess<InstallationCountryReferenceCurrencyOut>>(`${this.url}/installation-country-reference-currencies`,\n body\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Updates an existing installation country reference currency.\n *\n * @param {number} id - The ID of the reference currency to update.\n * @param {InstallationCountryReferenceCurrencyIn} body - The updated data for the reference currency.\n * @returns {Observable<InstallationCountryReferenceCurrencyOut>} The updated reference currency.\n */\n putInstallationCountryReferenceCurrency (id:number, body: InstallationCountryReferenceCurrencyIn): Observable<InstallationCountryReferenceCurrencyOut> {\n return this.http.put<ApiSuccess<InstallationCountryReferenceCurrencyOut>>(`${this.url}/installation-country-reference-currencies/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of installation country reference currencies based on query parameters.\n *\n * @param {QueryParams} params - Query parameters for filtering the currencies.\n * @returns {Observable<InstallationCountryReferenceCurrenciesOut>} The list of reference currencies.\n */\n getInstallationCompanyCountryCurrencies (params: QueryParams): Observable<InstallationCountryReferenceCurrenciesOut> {\n return this.http.get<ApiSuccess<InstallationCountryReferenceCurrenciesOut>>(`${this.url}/installation-country-reference-currencies`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the cash value summary for a specific opening ID.\n *\n * @param {number} id - The ID of the opening for which to retrieve the cash value summary.\n * @returns {Observable<CashValueSummaryOut>} An observable that emits the cash value summary data.\n */\n getOpeningCashValueSummary (id: number): Observable<CashValueSummaryOut> {\n return this.http.get<ApiSuccess<CashValueSummaryOut>>(`${this.url}/openings/${id}/cash-value-summary`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Creates a new opening transference record.\n *\n * @param {OpeningTransferenceIn} body - The data to create the new opening transference.\n * @returns {Observable<OpeningTransferenceOut>} An observable that emits the newly created opening transference.\n */\n postOpeningTransferences (body: OpeningTransferenceIn): Observable<OpeningTransferenceOut> {\n return this.http.post<ApiSuccess<OpeningTransferenceOut>>(`${this.url}/opening-transferences`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the receipt file associated with the given opening transference ID.\n *\n * @param {number} id - The ID of the opening transference whose receipt is to be retrieved.\n * @returns {Observable<ReceiptFileOut>} An observable that emits the receipt file data.\n */\n getOpeningTransferenceReceipt (id: number): Observable<ReceiptFileOut> {\n return this.http.get<ApiSuccess<ReceiptFileOut>>(`${this.url}/opening-transferences/${id}/receipt`)\n .pipe(map(({ data }) => data))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { HttpClient } from '@angular/common/http'\nimport { map, Observable } from 'rxjs'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport {\n CancellationReasonIn,\n CancellationReasonOut,\n CancellationReasonsOut,\n CountriesOut,\n CountryIn,\n CountryOut,\n CurrenciesOut,\n ExtraChargeIn,\n ExtraChargeOut,\n ExtraChargesOut,\n GenericFolioIn,\n GenericFolioOut,\n GenericFoliosOut,\n HolidayIn,\n HolidayOut,\n HolidaysOut,\n IdentificationTypeIn,\n IdentificationTypeOut,\n IdentificationTypesOut,\n LanguagesOut,\n ManagementAreasOut,\n OperationTypesOut,\n ProductIn,\n ProductOut,\n QuestionIn,\n QuestionOut,\n QuestionsOut,\n RegionsOut,\n ShipmentContentTypesOut,\n ShipmentGroupsOut,\n ShipmentIncomeTypeIn,\n ShipmentIncomeTypeOut,\n ShipmentIncomeTypesOut,\n ShipmentScopesOut,\n ShipmentStatusesOut,\n UniqueFolioIn,\n UniqueFolioOut,\n UniqueFoliosOut,\n UnitsOut,\n ZonesOut\n} from './models/api-catalog.types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiCatalogsService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the reports API from the environment configurations.\n *\n * @return {string} The URL of the reports API.\n */\n get url (): string {\n return this.environments.apiCatalogsUrl ?? ''\n }\n\n /**\n * Retrieves the list of collection payments\n *\n * @param {QueryParams} params - The query parameters used to fetch the operation types.\n * @return {Observable<OperationTypesOut[]>} An observable that emits an array of operation type.\n */\n getOperationTypes (params: QueryParams): Observable<OperationTypesOut> {\n return this.http.get<ApiSuccess<OperationTypesOut>>(`${this.url}/operation-types`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the list of identificatios types\n *\n * @param {QueryParams} params - The query parameters used to fetch the identification types.\n * @return {Observable<IdentificationTypesOut[]>} An observable that emits an array of identification type.\n */\n getIdentificationTypes (params: QueryParams): Observable<IdentificationTypesOut> {\n return this.http.get<ApiSuccess<IdentificationTypesOut>>(`${this.url}/identification-types`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieve a single identification type by its id.\n *\n * Sends an HTTP GET request to the indentification type endpoint and returns an Observable that emits\n * the IdentificationTypeOut payload extracted from the API success envelope.\n *\n * @param id - The numeric identifier of the identification type to fetch.\n * @returns An Observable that emits the requested IdentificationTypeOut. The Observable will error\n * if the HTTP request fails (for example network issues or non-2xx responses).\n */\n getIdentificationType (id: number): Observable<IdentificationTypeOut> {\n return this.http.get<ApiSuccess<IdentificationTypeOut>>(`${this.url}/identification-types/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create a new identification type and returns the created resource.\n *\n * The request payload is sent as an object with a `body` property containing the provided\n * IdentificationTypeIn value (i.e. { body: IdentificationTypeIn }). On success the HTTP response is expected\n * to follow the ApiSuccess<T> shape; the operator maps that response to the inner `data`\n * object and emits it as a IdentificationTypeOut.\n *\n * @param body - The identification type payload to create (IdentificationTypeIn).\n * @returns Observable<IdentificationTypeOut> that emits the created identification type on success.\n */\n postIdentificationtType (body: IdentificationTypeIn): Observable<IdentificationTypeOut> {\n return this.http.post<ApiSuccess<IdentificationTypeOut>>(`${this.url}/identification-types`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Update a identification type by its ID.\n *\n * Sends an HTTP PUT to `${this.url}/identification-types/${id}` with the provided payload.\n * The request body is sent as an object with a `body` property containing the\n * `IdentificationTypeIn` data. The server response is expected to be an `ApiSuccess<IdentificationTypeOut>`\n * and this method returns an Observable that emits the unwrapped `IdentificationTypeOut`.\n *\n * @param id - The identifier of the identification type to update.\n * @param body - The update payload for the identification type.\n * @returns An Observable that emits the updated `IdentificationTypeOut` on success.\n */\n putIdentificationType (id: number, body: IdentificationTypeIn): Observable<IdentificationTypeOut> {\n return this.http.put<ApiSuccess<IdentificationTypeOut>>(`${this.url}/identification-types/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Delete a identification type by its ID.\n *\n * Sends an HTTP DELETE request to the backend endpoint `/identification-types/{id}` and\n * returns an Observable that emits the API response's `data` payload (typically an empty object).\n *\n * The implementation maps an ApiSuccess wrapper to its `data` property before emitting.\n *\n * @param id - The numeric identifier of the identification type to delete.\n * @returns An Observable that emits the deleted resource payload ({} expected) on success.\n * The Observable will emit an error if the HTTP request fails.\n */\n deleteIdentificationType (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/identification-types/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the extra charges based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the results.\n * @return {Observable<ExtraChargesOut>} An observable emitting the extra charges data.\n */\n getExtraCharges (params: QueryParams): Observable<ExtraChargesOut> {\n return this.http.get<ApiSuccess<ExtraChargesOut>>(`${this.url}/extracharges`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Submits an extra charge request to the server and returns the created extra charge details.\n *\n * @param {ExtraChargeIn} body - The data for the extra charge to be created.\n * @return {Observable<ExtraChargeOut>} An observable that emits the details of the created extra charge.\n */\n postExtraCharge (body: ExtraChargeIn): Observable<ExtraChargeOut> {\n return this.http.post<ApiSuccess<ExtraChargeOut>>(`${this.url}/extracharges`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an extra charge entity with new data and returns the updated entity.\n *\n * @param {number} id - The unique identifier of the extra charge to update.\n * @param {ExtraChargeIn} body - The new data for the extra charge.\n * @return {Observable<ExtraChargeOut>} An observable emitting the updated extra charge entity.\n */\n putExtraCharge (id: number, body: ExtraChargeIn): Observable<ExtraChargeOut> {\n return this.http.put<ApiSuccess<ExtraChargeOut>>(`${this.url}/extracharges/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches a list of countries from the API.\n *\n * @param {QueryParams} params - The query parameters to be passed to the API request.\n * @return {Observable<CountriesOut>} An observable containing the list of countries.\n */\n getCountries (params: QueryParams): Observable<CountriesOut> {\n return this.http.get<ApiSuccess<CountriesOut>>(`${this.url}/countries`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the details of a country based on its ID.\n *\n * @param {number} id - The identifier of the country to fetch.\n * @return {Observable<CountryOut>} An observable that emits the country data.\n */\n getCountry (id: number): Observable<CountryOut> {\n return this.http.get<ApiSuccess<CountryOut>>(`${this.url}/countries/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the details of a specific country by its ID.\n *\n * @param {number} id - The unique identifier of the country to be updated.\n * @param {CountryIn} body - The data to update the country with.\n * @return {Observable<CountryOut>} An observable that emits the updated country data.\n */\n putCountry (id: number, body: CountryIn): Observable<CountryOut> {\n return this.http.put<ApiSuccess<CountryOut>>(`${this.url}/countries/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches a list of regions based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter the regions.\n * @return {Observable<RegionsOut>} An observable that emits the list of regions.\n */\n getRegions (params: QueryParams): Observable<RegionsOut> {\n return this.http.get<ApiSuccess<RegionsOut>>(`${this.url}/regions`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the zones data based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter the zones data.\n * @return {Observable<ZonesOut>} An observable that emits the fetched zones data.\n */\n getZones (params: QueryParams): Observable<ZonesOut> {\n return this.http.get<ApiSuccess<ZonesOut>>(`${this.url}/zones`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the management areas based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the management areas.\n * @return {Observable<ManagementAreasOut>} An observable that emits the management areas data.\n */\n getManagementAreas (params: QueryParams): Observable<ManagementAreasOut> {\n return this.http.get<ApiSuccess<ManagementAreasOut>>(`${this.url}/management-areas`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves cancellation reasons from the server based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the cancellation reasons.\n * @return {Observable<CancellationReasonsOut>} An observable containing the retrieved cancellation reasons.\n */\n getCancellationReasons (params: QueryParams): Observable<CancellationReasonsOut> {\n return this.http.get<ApiSuccess<CancellationReasonsOut>>(`${this.url}/cancellation-reasons`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a cancellation reason to the server.\n *\n * @param {CancellationReasonIn} body - The cancellation reason object to be sent.\n * @return {Observable<CancellationReasonOut>} An observable containing the server's response with the processed cancellation reason.\n */\n postCancellationReason (body: CancellationReasonIn): Observable<CancellationReasonOut> {\n return this.http.post<ApiSuccess<CancellationReasonOut>>(`${this.url}/cancellation-reasons`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the cancellation reason for the specified ID with the provided data.\n *\n * @param {number} id - The unique identifier of the cancellation reason to update.\n * @param {CancellationReasonIn} body - The details of the cancellation reason to be updated.\n * @return {Observable<CancellationReasonOut>} An observable containing the updated cancellation reason.\n */\n putCancellationReason (id: number, body: CancellationReasonIn): Observable<CancellationReasonOut> {\n return this.http.put<ApiSuccess<CancellationReasonOut>>(`${this.url}/cancellation-reasons/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of currencies based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to customize the currency retrieval request.\n * @return {Observable<CurrenciesOut>} An observable that emits the retrieved currencies data.\n */\n getCurrencies (params: QueryParams): Observable<CurrenciesOut> {\n return this.http.get<ApiSuccess<CurrenciesOut>>(`${this.url}/currencies`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the list of available languages based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to pass with the HTTP request.\n * @return {Observable<LanguagesOut>} An observable that emits the available languages.\n */\n getLanguages (params: QueryParams): Observable<LanguagesOut> {\n return this.http.get<ApiSuccess<LanguagesOut>>(`${this.url}/languages`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the available units from the API based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the units being fetched.\n * @return {Observable<UnitsOut>} An observable that emits the retrieved units data.\n */\n getUnits (params: QueryParams): Observable<UnitsOut> {\n return this.http.get<ApiSuccess<UnitsOut>>(`${this.url}/units`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the shipment scopes based on the provided query parameters.\n *\n * @param {QueryParams} params The query parameters to filter or modify the request for shipment scopes.\n * @return {Observable<ShipmentScopesOut>} An observable that emits the shipment scopes data.\n */\n getShipmentScopes (params: QueryParams): Observable<ShipmentScopesOut> {\n return this.http.get<ApiSuccess<ShipmentScopesOut>>(`${this.url}/shipment-scopes`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the available shipment content types based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the shipment content types.\n * @return {Observable<ShipmentContentTypesOut>} An observable that emits the shipment content types data.\n */\n getShipmentContentTypes (params: QueryParams): Observable<ShipmentContentTypesOut> {\n return this.http.get<ApiSuccess<ShipmentContentTypesOut>>(`${this.url}/shipment-content-types`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches a list of generic folios based on the given query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter the generic folios.\n * @return {Observable<GenericFoliosOut>} An observable containing the fetched generic folios.\n */\n getGenericFolios (params: QueryParams): Observable<GenericFoliosOut> {\n return this.http.get<ApiSuccess<GenericFoliosOut>>(`${this.url}/generic-folios`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create or update a generic folio.\n *\n * @param {GenericFolioIn} body - The payload containing the details of the generic folio to be created or updated.\n * @return {Observable<GenericFolioOut>} An observable containing the response data of the created or updated generic folio.\n */\n postGenericFolio (body: GenericFolioIn): Observable<GenericFolioOut> {\n return this.http.post<ApiSuccess<GenericFolioOut>>(`${this.url}/generic-folios`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates a generic folio with the specified ID using the provided data.\n *\n * @param {number} id - The unique identifier of the generic folio to update.\n * @param {GenericFolioIn} body - The data to update the generic folio with.\n * @return {Observable<GenericFolioOut>} An observable containing the updated generic folio.\n */\n putGenericFolio (id: number, body: GenericFolioIn): Observable<GenericFolioOut> {\n return this.http.put<ApiSuccess<GenericFolioOut>>(`${this.url}/generic-folios/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a PUT request to update a Generic Folio resource with the specified ID and body data, and returns the updated resource.\n *\n * @param {number} id - The unique identifier of the Generic Folio to be updated.\n * @param {Partial<GenericFolioIn>} body - The partial data representing the changes to be applied to the Generic Folio.\n * @return {Observable<GenericFolioOut>} An observable containing the updated Generic Folio resource.\n */\n pathGenericFolio (id: number, body: Partial<GenericFolioIn>): Observable<GenericFolioOut> {\n return this.http.put<ApiSuccess<GenericFolioOut>>(`${this.url}/generic-folios/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create a new product.\n *\n * @param {ProductIn} body - The product data to be sent in the request body.\n * @return {Observable<ProductOut>} An observable emitting the created product data.\n */\n postProduct (body: ProductIn): Observable<ProductOut> {\n return this.http.post<ApiSuccess<ProductOut>>(`${this.url}/products`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing product with the given ID using the provided data.\n *\n * @param {number} id - The unique identifier of the product to update.\n * @param {ProductIn} body - The product data to update.\n * @return {Observable<ProductOut>} An observable containing the updated product data.\n */\n putProduct (id: number, body: ProductIn): Observable<ProductOut> {\n return this.http.put<ApiSuccess<ProductOut>>(`${this.url}/products/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of shipment income types based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the shipment income types.\n * @return {Observable<ShipmentIncomeTypesOut>} An observable containing the shipment income types data.\n */\n getShipmentIncomeTypes (params: QueryParams): Observable<ShipmentIncomeTypesOut> {\n return this.http.get<ApiSuccess<ShipmentIncomeTypesOut>>(`${this.url}/shipment-income-types`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create a new shipment income type.\n *\n * @param {ShipmentIncomeTypeIn} body The payload containing the details of the shipment income type to be created.\n * @return {Observable<ShipmentIncomeTypeOut>} An observable that emits the created shipment income type data.\n */\n postShipmentIncomeType (body: ShipmentIncomeTypeIn): Observable<ShipmentIncomeTypeOut> {\n return this.http.post<ApiSuccess<ShipmentIncomeTypeOut>>(`${this.url}/shipment-income-types`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the shipment income type with the specified ID.\n *\n * @param {number} id - The identifier of the shipment income type to update.\n * @param {ShipmentIncomeTypeIn} body - The data to update the shipment income type with.\n * @return {Observable<ShipmentIncomeTypeOut>} An observable emitting the updated shipment income type.\n */\n putShipmentIncomeType (id: number, body: ShipmentIncomeTypeIn): Observable<ShipmentIncomeTypeOut> {\n return this.http.put<ApiSuccess<ShipmentIncomeTypeOut>>(`${this.url}/shipment-income-types/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of unique folios based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter and fetch unique folios.\n * @return {Observable<UniqueFoliosOut>} An observable that emits the unique folios data.\n */\n getUniqueFolios (params: QueryParams): Observable<UniqueFoliosOut> {\n return this.http.get<ApiSuccess<UniqueFoliosOut>>(`${this.url}/unique-folios`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create a unique folio.\n *\n * @param {UniqueFolioIn} body - The data object containing details for the unique folio to be created.\n * @return {Observable<UniqueFolioOut>} An observable that emits the created unique folio details.\n */\n postUniqueFolio (body: UniqueFolioIn): Observable<UniqueFolioOut> {\n return this.http.post<ApiSuccess<UniqueFolioOut>>(`${this.url}/unique-folios`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates a unique folio with the given data using the provided ID.\n *\n * @param {number} id - The ID of the unique folio to be updated.\n * @param {UniqueFolioIn} body - The payload containing the details of the unique folio to update.\n * @return {Observable<UniqueFolioOut>} An observable that emits the updated unique folio.\n */\n putUniqueFolio (id: number, body: UniqueFolioIn): Observable<UniqueFolioOut> {\n return this.http.put<ApiSuccess<UniqueFolioOut>>(`${this.url}/unique-folios/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates a unique folio by its identifier with the provided data.\n *\n * @param {number} id - The identifier of the unique folio to update.\n * @param {Partial<UniqueFolioIn>} body - The partial data of the unique folio to update.\n * @return {Observable<UniqueFolioOut>} An observable emitting the updated unique folio data.\n */\n pathUniqueFolio (id: number, body: Partial<UniqueFolioIn>): Observable<UniqueFolioOut> {\n return this.http.put<ApiSuccess<UniqueFolioOut>>(`${this.url}/unique-folios/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves shipment groups based on the provided query parameters.\n *\n * @param params - The query parameters to filter the shipment groups.\n * @returns An Observable that emits the shipment groups data.\n */\n getShipmentGroups (params: QueryParams): Observable<ShipmentGroupsOut> {\n return this.http.get<ApiSuccess<ShipmentGroupsOut>>(`${this.url}/shipment-groups`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the shipment statuses from the API.\n *\n * @param params - The query parameters to filter or modify the request.\n * @returns An Observable that emits the shipment statuses output.\n */\n getShipmentStatuses (params: QueryParams): Observable<ShipmentStatusesOut> {\n return this.http.get<ApiSuccess<ShipmentStatusesOut>>(`${this.url}/shipment-statuses`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches questions from the catalogs API.\n *\n * Sends an HTTP GET request to `${this.url}/questions` using the supplied query parameters\n * and returns the unwrapped payload (`data`) from the API response.\n *\n * @param params - Query parameters to include in the request (e.g. paging, filters, sorting).\n * @returns An Observable that emits the QuestionsOut payload (the `data` field from ApiSuccess<QuestionsOut>).\n */\n getQuestions (params: QueryParams): Observable<QuestionsOut> {\n return this.http.get<ApiSuccess<QuestionsOut>>(`${this.url}/questions`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieve a single question by its id.\n *\n * Sends an HTTP GET request to the questions endpoint and returns an Observable that emits\n * the QuestionOut payload extracted from the API success envelope.\n *\n * @param id - The numeric identifier of the question to fetch.\n * @returns An Observable that emits the requested QuestionOut. The Observable will error\n * if the HTTP request fails (for example network issues or non-2xx responses).\n */\n getQuestion (id: number): Observable<QuestionOut> {\n return this.http.get<ApiSuccess<QuestionOut>>(`${this.url}/questions/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create a new question and returns the created resource.\n *\n * The request payload is sent as an object with a `body` property containing the provided\n * QuestionIn value (i.e. { body: QuestionIn }). On success the HTTP response is expected\n * to follow the ApiSuccess<T> shape; the operator maps that response to the inner `data`\n * object and emits it as a QuestionOut.\n *\n * @param body - The question payload to create (QuestionIn).\n * @returns Observable<QuestionOut> that emits the created question on success.\n */\n postQuestion (body: QuestionIn): Observable<QuestionOut> {\n return this.http.post<ApiSuccess<QuestionOut>>(`${this.url}/questions`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Update a question by its ID.\n *\n * Sends an HTTP PUT to `${this.url}/questions/${id}` with the provided payload.\n * The request body is sent as an object with a `body` property containing the\n * `QuestionIn` data. The server response is expected to be an `ApiSuccess<QuestionOut>`\n * and this method returns an Observable that emits the unwrapped `QuestionOut`.\n *\n * @param id - The identifier of the question to update.\n * @param body - The update payload for the question.\n * @returns An Observable that emits the updated `QuestionOut` on success.\n */\n putQuestion (id: number, body: QuestionIn): Observable<QuestionOut> {\n return this.http.put<ApiSuccess<QuestionOut>>(`${this.url}/questions/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes a question by its ID.\n *\n * Sends an HTTP DELETE request to the backend endpoint `/questions/{id}` and\n * returns an Observable that emits the API response's `data` payload (typically an empty object).\n *\n * The implementation maps an ApiSuccess wrapper to its `data` property before emitting.\n *\n * @param id - The numeric identifier of the question to delete.\n * @returns An Observable that emits the deleted resource payload ({} expected) on success.\n * The Observable will emit an error if the HTTP request fails.\n */\n deleteQuestion (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/questions/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches holidays from the catalogs API.\n *\n * Sends an HTTP GET request to `${this.url}/holidays` using the supplied query parameters\n * and returns the unwrapped payload (`data`) from the API response.\n *\n * @param params - Query parameters to include in the request (e.g. paging, filters, sorting).\n * @returns An Observable that emits the HolidaysOut payload (the `data` field from ApiSuccess<HolidaysOut>).\n */\n getHolidays (params: QueryParams): Observable<HolidaysOut> {\n return this.http.get<ApiSuccess<HolidaysOut>>(`${this.url}/holidays`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieve a single holiday by its id.\n *\n * Sends an HTTP GET request to the holidays endpoint and returns an Observable that emits\n * the HolidayOut payload extracted from the API success envelope.\n *\n * @param id - The numeric identifier of the holiday to fetch.\n * @returns An Observable that emits the requested HolidayOut. The Observable will error\n * if the HTTP request fails (for example network issues or non-2xx responses).\n */\n getHoliday (id: number): Observable<HolidayOut> {\n return this.http.get<ApiSuccess<HolidayOut>>(`${this.url}/holidays/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create a new holiday and returns the created resource.\n *\n * The request payload is sent as an object with a `body` property containing the provided\n * HolidayIn value (i.e. { body: HolidayIn }). On success the HTTP response is expected\n * to follow the ApiSuccess<T> shape; the operator maps that response to the inner `data`\n * object and emits it as a HolidayOut.\n *\n * @param body - The holiday payload to create (HolidayIn).\n * @returns Observable<HolidayOut> that emits the created holiday on success.\n */\n postHoliday (body: HolidayIn): Observable<HolidayOut> {\n return this.http.post<ApiSuccess<HolidayOut>>(`${this.url}/holidays`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Update a holiday by its ID.\n *\n * Sends an HTTP PUT to `${this.url}/holidays/${id}` with the provided payload.\n * The request body is sent as an object with a `body` property containing the\n * `HolidayIn` data. The server response is expected to be an `ApiSuccess<HolidayOut>`\n * and this method returns an Observable that emits the unwrapped `HolidayOut`.\n *\n * @param id - The identifier of the holiday to update.\n * @param body - The update payload for the holiday.\n * @returns An Observable that emits the updated `HolidayOut` on success.\n */\n putHoliday (id: number, body: HolidayIn): Observable<HolidayOut> {\n return this.http.put<ApiSuccess<HolidayOut>>(`${this.url}/holidays/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes a question by its ID.\n *\n * Sends an HTTP DELETE request to the backend endpoint `/questions/{id}` and\n * returns an Observable that emits the API response's `data` payload (typically an empty object).\n *\n * The implementation maps an ApiSuccess wrapper to its `data` property before emitting.\n *\n * @param id - The numeric identifier of the question to delete.\n * @returns An Observable that emits the deleted resource payload ({} expected) on success.\n * The Observable will emit an error if the HTTP request fails.\n */\n deleteHoliday (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/holidays/${id}`)\n .pipe(map(({ data }) => data))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { HttpClient } from '@angular/common/http'\nimport {\n AccountCategoriesOut,\n AccountEntitiesIn,\n AccountEntitiesOut,\n AccountIn,\n AccountOut,\n AccountsOut,\n AccountTypeIn,\n AccountTypeOut,\n AccountTypesOut,\n BoardingProcessIdIn,\n BoardingProcessIn,\n CompanyCountriesOut,\n CompanyCountryIn,\n CompanyCountryOut,\n CompanyCountryTaxesOut,\n CompanyIn,\n CompanyOut,\n CountryReferenceCurrenciesOut,\n CountryReferenceCurrencyIn,\n CountryReferenceCurrencyOut,\n CountryReferenceExtraChargeIn,\n CountryReferenceExtraChargeOut,\n CountryReferenceIn,\n CountryReferenceOut,\n CountryReferenceProductIn,\n CountryReferenceProductOut,\n CountryReferenceProductsOut,\n CountryReferencesOut,\n EmployeeCustomersIn,\n EmployeeCustomersOut,\n EmployeeIn,\n EmployeeOut,\n EmployeesCustomersOut,\n EmployeesOut,\n ExchangeIn,\n ExchangeOut,\n ExchangesOut,\n ExtraChargeEntitiesIn,\n ExtraChargeEntitiesOut,\n InstallationIn,\n InstallationOut,\n InstallationsOut,\n LocationEmployeeBatchIn,\n LocationEmployeeOut, LocationEmployeesIn,\n LocationEmployeesOut,\n LocationIn,\n LocationOut,\n LocationsOut,\n ParameterConfigIn,\n ParameterConfigOut,\n ParameterConfigsOut,\n ParametersByLevelIn,\n ParametersOut,\n ParametersValuesIn,\n ParametersValuesOut,\n ParameterValueIn,\n ParameterValueOut,\n ProductEntitiesIn,\n ProductEntitiesOut,\n SupplyEntitiesIn,\n SupplyEntitiesOut,\n SystemEntitiesIn,\n SystemEntitiesOut,\n SystemIn,\n SystemOut,\n SystemsOut,\n TDXAccountSettingsIn,\n TDXAccountSettingsOut,\n TDXAccountsSettingsOut,\n WorkflowConfigsBatchIn,\n WorkflowConfigsOut,\n WorkflowsOut\n} from './models/api-companies.types'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport { forkJoin, map, mergeMap, Observable } from 'rxjs'\nimport {\n CountryCurrencyRate,\n CountryReferenceExtraCharge,\n EmployeeCustomerDhl,\n} from './models/api-companies.interfaces'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiCompaniesService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the companies API from the environment configurations.\n *\n * @return {string} The URL of the companies API.\n */\n get url (): string {\n return this.environments.apiCompaniesUrl ?? ''\n }\n\n /**\n * Fetches the installations based on the provided query parameters.\n *\n * @param {QueryParams} params - The parameters used to filter the installations query.\n * @return {Observable<InstallationsOut>} An observable that emits the installation's data.\n */\n getInstallations (params: QueryParams): Observable<InstallationsOut> {\n return this.http.get<ApiSuccess<InstallationsOut>>(`${this.url}/installations`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the installation details based on the given installation ID.\n *\n * @param {number} id - The unique identifier of the installation to retrieve.\n * @returns {Observable<InstallationOut>} An observable of the installation details.\n */\n getInstallation (id: number): Observable<InstallationOut> {\n return this.http.get<ApiSuccess<InstallationOut>>(`${this.url}/installations/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a post-installation request to the server and retrieves the installation details.\n *\n * @param {InstallationIn} body - The installation details to be sent in the request body.\n * @return {Observable<InstallationOut>} An observable that emits the response containing installation output details.\n */\n postInstallation (body: InstallationIn): Observable<InstallationOut> {\n return this.http.post<ApiSuccess<InstallationOut>>(`${this.url}/installations`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing installation record by its ID.\n *\n * @param id The unique identifier of the installation to update.\n * @param body The data payload containing the updated installation information.\n * @return An observable that emits the updated installation data upon a successful update.\n */\n putInstallation (id: number, body: InstallationIn): Observable<InstallationOut> {\n return this.http.put<ApiSuccess<InstallationOut>>(`${this.url}/installations/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes an installation by its unique identifier.\n *\n * @param {number} id - The unique identifier of the installation to be deleted.\n * @return {Observable<{}>} An observable that emits the response after the installation is deleted.\n */\n deleteInstallation (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/installations/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of locations based on the provided query parameters.\n *\n * @param {QueryParams} params - The parameters to use for querying locations.\n * @return {Observable<LocationsOut>} An observable that emits the location's data.\n */\n getLocations (params: QueryParams): Observable<LocationsOut> {\n return this.http.get<ApiSuccess<LocationsOut>>(`${this.url}/locations`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the location details for a given location ID.\n *\n * @param {number} id - The unique identifier of the location.\n * @return {Observable<LocationOut>} An Observable containing the location details.\n */\n getLocation (id: number): Observable<LocationOut> {\n return this.http.get<ApiSuccess<LocationOut>>(`${this.url}/locations/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a location object to the server and returns the created location data.\n *\n * @param {LocationIn} body - The location input object to be sent in the request body.\n * @return {Observable<LocationOut>} An observable emitting the created location output object.\n */\n postLocation (body: LocationIn): Observable<LocationOut> {\n return this.http.post<ApiSuccess<LocationOut>>(`${this.url}/locations`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the location information for the specified ID.\n *\n * @param {number} id - The unique identifier of the location to be updated.\n * @param {LocationIn} body - The updated location data to be sent in the request body.\n * @return {Observable<LocationOut>} An observable containing the updated location information.\n */\n putLocation (id: number, body: LocationIn): Observable<LocationOut> {\n return this.http.put<ApiSuccess<LocationOut>>(`${this.url}/locations/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes a location by its unique identifier.\n *\n * @param {number} id - The unique identifier of the location to be deleted.\n * @return {Observable<{}>} An observable that emits an empty object upon successful deletion.\n */\n deleteLocation (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/locations/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of active supply entities.\n *\n * @param {QueryParams} params - The query parameters to filter supply entities.\n * @return {Observable<SupplyEntitiesOut>} Observable emitting supply entities data.\n */\n getSupplyEntitiesActives (params: QueryParams): Observable<SupplyEntitiesOut> {\n return this.http.get<ApiSuccess<SupplyEntitiesOut>>(`${this.url}/supply-entities/actives`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves supply entities based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter and fetch the supply entities.\n * @return {Observable<SupplyEntitiesOut>} An observable that emits the supply entities data.\n */\n getSupplyEntities (params: QueryParams): Observable<SupplyEntitiesOut> {\n return this.http.get<ApiSuccess<SupplyEntitiesOut>>(`${this.url}/supply-entities`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends supply entities information to the server and receives the processed supply entities data in response.\n *\n * @param {SupplyEntitiesIn} body - The supply entities data to be sent to the server.\n * @return {Observable<SupplyEntitiesOut>} An observable containing the processed supply entities data.\n */\n putSupplyEntities (body: SupplyEntitiesIn): Observable<SupplyEntitiesOut> {\n return this.http.put<ApiSuccess<SupplyEntitiesOut>>(`${this.url}/supply-entities`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches a list of employees based on the specified query parameters.\n *\n * @param {QueryParams} params - The parameters to filter and sort the employees.\n * @return {Observable<EmployeesOut>} An observable that emits the list of employees.\n */\n getEmployees (params: QueryParams): Observable<EmployeesOut> {\n return this.http.get<ApiSuccess<EmployeesOut>>(`${this.url}/employees`, {\n params,\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches an employee's details based on the provided employee ID.\n *\n * @param {number} id - The unique identifier of the employee.\n * @return {Observable<EmployeeOut>} An observable that emits the employee's details.\n */\n getEmployee (id: number): Observable<EmployeeOut> {\n return this.http.get<ApiSuccess<EmployeeOut>>(`${this.url}/employees/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create a new employee record.\n *\n * @param {EmployeeIn} body - The data of the employee to be created.\n * @return {Observable<EmployeeOut>} An observable containing the created employee data.\n */\n postEmployee (body: EmployeeIn): Observable<EmployeeOut> {\n return this.http.post<ApiSuccess<EmployeeOut>>(`${this.url}/employees`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing employee record with the specified data.\n *\n * @param {number} id - The unique identifier of the employee to be updated.\n * @param {EmployeeIn} body - The employee data to update the record with.\n * @return {Observable<EmployeeOut>} An observable containing the updated employee data.\n */\n putEmployee (id: number, body: EmployeeIn): Observable<EmployeeOut> {\n return this.http.put<ApiSuccess<EmployeeOut>>(`${this.url}/employees/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes an employee based on the provided ID.\n *\n * @param {number} id - The unique identifier of the employee to delete.\n * @return {Observable<{}>} An observable containing the response data after the employee is deleted.\n */\n deleteEmployee (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/employees/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the list of employees for a specified location based on provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter and retrieve the location employees.\n * @returns {Observable<LocationEmployeesOut>} An observable that emits the list of employees for the specified location.\n */\n getLocationEmployees (params: QueryParams): Observable<LocationEmployeesOut> {\n return this.http.get<ApiSuccess<LocationEmployeesOut>>(`${this.url}/location-employees`, {\n params,\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the location employee details for a given employee ID.\n *\n * @param {number} id - The unique identifier of the employee whose location details are to be retrieved.\n * @return {Observable<LocationEmployeeOut>} An observable containing the location employee details.\n */\n getLocationEmployee (id: number): Observable<LocationEmployeeOut> {\n return this.http.get<ApiSuccess<LocationEmployeeOut>>(`${this.url}/location-employees/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes a specific location employee by their unique identifier.\n *\n * @param {number} id - The unique identifier of the employee to be deleted.\n * @return {Observable<{}>} - An observable emitting the server's response after the deletion.\n */\n deleteLocationEmployee (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/location-employees/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a batch of location-employee associations to the server for processing.\n *\n * @param {LocationEmployeeBatchIn} body - The object containing a batch of location-employee data to be posted.\n * @return {Observable<EmployeeOut>} An observable emitting the processed employee data from the server's response.\n */\n postLocationEmployeeBatch (body: LocationEmployeeBatchIn): Observable<EmployeeOut> {\n return this.http.post<ApiSuccess<EmployeeOut>>(`${this.url}/location-employees/batch`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of countries where the company operates.\n *\n * @param {QueryParams} params - The query parameters for the API request.\n * @return {Observable<CompanyCountriesOut>} An observable containing the list of company countries.\n */\n getCompanyCountries (params: QueryParams): Observable<CompanyCountriesOut> {\n return this.http.get<ApiSuccess<CompanyCountriesOut>>(`${this.url}/company-countries`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the country information for a specified company by its ID.\n *\n * @param {number} id - The unique identifier of the company.\n * @return {Observable<CompanyCountryOut>} An observable containing the country information of the company.\n */\n getCompanyCountry (id: number): Observable<CompanyCountryOut> {\n return this.http.get<ApiSuccess<CompanyCountryOut>>(`${this.url}/company-countries/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a request to update or create a company country entry on the server.\n *\n * @param {CompanyCountryIn} body The data object representing the company country information to be sent to the server.\n * @return {Observable<CompanyCountryOut>} An observable containing the server response with the updated or created company country data.\n */\n postCompanyCountry (body: CompanyCountryIn): Observable<CompanyCountryOut> {\n return this.http.post<ApiSuccess<CompanyCountryOut>>(`${this.url}/company-countries`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the country information for a specific company.\n *\n * @param {number} id - The unique identifier of the company whose country information needs to be updated.\n * @param {CompanyCountryIn} body - The updated country information to be applied to the company.\n * @return {Observable<CompanyCountryOut>} An observable that emits the updated company country information.\n */\n putCompanyCountry (id: number, body: CompanyCountryIn): Observable<CompanyCountryOut> {\n return this.http.put<ApiSuccess<CompanyCountryOut>>(`${this.url}/company-countries/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes a company-country association by its unique identifier.\n *\n * @param {number} id - The unique identifier of the company-country record to be deleted.\n * @return {Observable<{}>} An observable emitting the result of the delete operation.\n */\n deleteCompanyCountry (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/company-countries/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the reference currencies for a given country.\n *\n * @param {QueryParams} params - The query parameters to include in the request.\n * @return {Observable<CountryReferenceCurrenciesOut>} The observable containing the country reference currencies data.\n */\n getCountryReferenceCurrencies (params: QueryParams): Observable<CountryReferenceCurrenciesOut> {\n return this.http.get<ApiSuccess<CountryReferenceCurrenciesOut>>(`${this.url}/country-reference-currencies`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the reference currency details for a specific country using its ID.\n *\n * @param {number} id - The unique identifier of the country.\n * @return {Observable<CountryReferenceCurrencyOut>} An observable emitting the country's reference currency details.\n */\n getCountryReferenceCurrency (id: number): Observable<CountryReferenceCurrencyOut> {\n return this.http.get<ApiSuccess<CountryReferenceCurrencyOut>>(`${this.url}/country-reference-currencies/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of currencies for different countries along with their current exchange rates.\n *\n * @param {QueryParams} params - The query parameters used to fetch the country reference currencies.\n * @return {Observable<CountryCurrencyRate[]>} An observable that emits an array of country currency rates.\n */\n getCountryCurrenciesWithRate (params: QueryParams): Observable<CountryCurrencyRate[]> {\n return this.getCountryReferenceCurrencies(params)\n .pipe(mergeMap((currenciesData) => {\n const $observables = currenciesData.country_reference_currencies\n .map((item) =>\n this.getCurrentExchanges({\n currency_id: item.currency.id,\n }).pipe(\n map((exchangesData) => ({\n ...item,\n rate: exchangesData.exchanges[0]?.value,\n }))\n )\n )\n\n return forkJoin($observables)\n }))\n }\n\n /**\n * Updates the reference currency for a specified country.\n *\n * @param {number} id - The unique identifier of the country.\n * @param {CountryReferenceCurrencyIn} body - The data for updating the country's reference currency.\n * @return {Observable<CountryReferenceCurrencyOut>} An Observable emitting the updated country reference currency data.\n */\n putCountryReferenceCurrency (id: number, body: CountryReferenceCurrencyIn): Observable<CountryReferenceCurrencyOut> {\n return this.http.put<ApiSuccess<CountryReferenceCurrencyOut>>(`${this.url}/country-reference-currencies/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create a country reference currency.\n *\n * @param {CountryReferenceCurrencyIn} body - The payload containing the country reference currency data.\n * @return {Observable<CountryReferenceCurrencyOut>} An observable emitting the created country reference currency.\n */\n postCountryReferenceCurrency (body: CountryReferenceCurrencyIn): Observable<CountryReferenceCurrencyOut> {\n return this.http.post<ApiSuccess<CountryReferenceCurrencyOut>>(`${this.url}/country-reference-currencies`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create or update a country reference extra charge.\n *\n * @param {CountryReferenceExtraChargeIn} body - The request payload containing details about the country reference extra charge.\n * @return {Observable<CountryReferenceExtraChargeOut>} An observable containing the response with the created or updated country reference extra charge.\n */\n postCountryReferenceExtraCharge (body: CountryReferenceExtraChargeIn): Observable<CountryReferenceExtraChargeOut> {\n return this.http.post<ApiSuccess<CountryReferenceExtraChargeOut>>(`${this.url}/country-reference-extra-charges`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates a country reference extra charge by its ID.\n *\n * @param {number} id - The unique identifier of the country reference extra charge to be updated.\n * @param {CountryReferenceExtraChargeIn} body - The data to update the country reference extra charge with.\n * @return {Observable<CountryReferenceExtraChargeOut>} An observable that emits the updated country reference extra charge.\n */\n putCountryReferenceExtraCharge (id: number, body: CountryReferenceExtraChargeIn): Observable<CountryReferenceExtraChargeOut> {\n return this.http.put<ApiSuccess<CountryReferenceExtraChargeOut>>(`${this.url}/country-reference-extra-charges/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Enables or disables a country reference extra charge based on the provided parameters.\n *\n * @param {CountryReferenceExtraCharge} extraCharge - The country reference extra charge object to be updated.\n * @param {boolean} [isActive] - Optional parameter to explicitly set the active status of the extra charge.\n * If not provided, the current active status will be toggled.\n * @return {Observable<EmployeeCustomersOut>} An Observable that emits the updated employee customers output.\n */\n patchCountryReferenceExtraCharge (extraCharge: CountryReferenceExtraCharge, isActive?: boolean): Observable<EmployeeCustomersOut> {\n return this.http.patch<ApiSuccess<EmployeeCustomersOut>>(`${this.url}/country-reference-extra-charges/${extraCharge.id}`, {\n is_active: isActive ?? !extraCharge.is_active\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches exchange data based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters for retrieving exchange data.\n * @return {Observable<ExchangesOut>} An observable containing the exchange data.\n */\n getExchanges (params: QueryParams): Observable<ExchangesOut> {\n return this.http.get<ApiSuccess<ExchangesOut>>(`${this.url}/exchanges`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create or update an exchange.\n *\n * @param {ExchangeIn} body - The request body containing the exchange data to be sent.\n * @return {Observable<ExchangeOut>} An observable that emits the response containing the created or updated exchange data.\n */\n postExchange (body: ExchangeIn): Observable<ExchangeOut> {\n return this.http.post<ApiSuccess<ExchangeOut>>(`${this.url}/exchanges`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing exchange with new data.\n *\n * @param {number} id - The unique identifier of the exchange to update.\n * @param {ExchangeIn} body - The data to update the exchange with.\n * @return {Observable<ExchangeOut>} An observable that emits the updated exchange data.\n */\n putExchange (id: number, body: ExchangeIn): Observable<ExchangeOut> {\n return this.http.put<ApiSuccess<ExchangeOut>>(`${this.url}/exchanges/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the current exchanges based on the given query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the exchanges.\n *\n * @returns {Observable<ExchangesOut>} - An observable that emits the API response data containing the current exchanges.\n */\n getCurrentExchanges (params: QueryParams): Observable<ExchangesOut> {\n return this.http.get<ApiSuccess<ExchangesOut>>(`${this.url}/exchanges/current`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the country-specific tax information for a company.\n *\n * @param {QueryParams} params - The parameters used to filter and query the taxes.\n * @return {Observable<CompanyCountryTaxesOut>} An observable that emits the tax information.\n */\n getCompanyCountryTaxes (params: QueryParams): Observable<CompanyCountryTaxesOut> {\n return this.http.get<ApiSuccess<CompanyCountryTaxesOut>>(`${this.url}/company-country-taxes`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches account information based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters for fetching account data.\n * @return {Observable<AccountsOut>} An observable emitting the account data.\n */\n getAccounts (params: QueryParams): Observable<AccountsOut> {\n return this.http.get<ApiSuccess<AccountsOut>>(`${this.url}/accounts`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the account information for the specified account ID.\n *\n * @param {number} id - The unique identifier of the account to retrieve.\n * @return {Observable<AccountOut>} An observable that emits the account details.\n */\n getAccount (id: number): Observable<AccountOut> {\n return this.http.get<ApiSuccess<AccountOut>>(`${this.url}/accounts/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Creates a new account by sending account details in the body.\n *\n * @param {AccountIn} body - The account information to be sent in the request body.\n * @return {Observable<AccountOut>} Observable that emits the created account details upon success.\n */\n postAccount (body: AccountIn): Observable<AccountOut> {\n return this.http.post<ApiSuccess<AccountOut>>(`${this.url}/accounts`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an account with the specified ID using the provided data.\n *\n * @param {number} id - The unique identifier of the account to be updated.\n * @param {AccountIn} body - The data to update the account with.\n * @return {Observable<AccountOut>} An observable emitting the updated account details.\n */\n putAccount (id: number, body: AccountIn): Observable<AccountOut> {\n return this.http.put<ApiSuccess<AccountOut>>(`${this.url}/accounts/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches account entity data from the server based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to be sent with the HTTP request.\n * @return {Observable<AccountEntitiesOut>} An observable that emits the account entities data.\n */\n getAccountEntities (params: QueryParams): Observable<AccountEntitiesOut> {\n return this.http.get<ApiSuccess<AccountEntitiesOut>>(`${this.url}/account-entities`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an account entity using the provided details.\n *\n * @param {AccountEntitiesIn} body The account entity data to be updated.\n * @return {Observable<AccountEntitiesOut>} An observable containing the updated account entity details.\n */\n putAccountEntity (body: AccountEntitiesIn): Observable<AccountEntitiesOut> {\n return this.http.put<ApiSuccess<AccountEntitiesOut>>(`${this.url}/account-entities`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the list of active account entities based on the provided query parameters.\n *\n * @param {QueryParams} params - The parameters to filter and query active account entities.\n * @return {Observable<AccountEntitiesOut>} An observable that emits the list of active account entities.\n */\n getAccountEntitiesActives (params: QueryParams): Observable<AccountEntitiesOut> {\n return this.http.get<ApiSuccess<AccountEntitiesOut>>(`${this.url}/account-entities/actives`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches a list of account categories based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter the account categories.\n * @return {Observable<AccountCategoriesOut>} An observable that emits the fetched account categories data.\n */\n getAccountCategories (params: QueryParams): Observable<AccountCategoriesOut> {\n return this.http.get<ApiSuccess<AccountCategoriesOut>>(`${this.url}/account-categories`, { params, })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of account types from the server.\n *\n * @param {QueryParams} params - The query parameters to filter or customize the request.\n * @return {Observable<AccountTypesOut>} An observable emitting the account types data.\n */\n getAccountTypes (params: QueryParams): Observable<AccountTypesOut> {\n return this.http.get<ApiSuccess<AccountTypesOut>>(`${this.url}/account-types`, { params, })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the account type for the given account ID.\n *\n * @param {number} id - The unique identifier of the account.\n * @return {Observable<AccountTypeOut>} An observable that emits the account type data.\n */\n getAccountType (id: number): Observable<AccountTypeOut> {\n return this.http.get<ApiSuccess<AccountTypeOut>>(`${this.url}/account-types/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create a new account type.\n *\n * @param {AccountTypeIn} body - The data for the account type to be created.\n * @return {Observable<AccountTypeOut>} An observable that emits the created account type object.\n */\n postAccountType (body: AccountTypeIn): Observable<AccountTypeOut> {\n return this.http.post<ApiSuccess<AccountTypeOut>>(`${this.url}/account-types`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an account type with the specified ID using the provided data.\n *\n * @param {number} id - The unique identifier of the account type to update.\n * @param {AccountTypeIn} body - The data to update the account type with.\n * @return {Observable<AccountTypeOut>} An observable containing the updated account type data.\n */\n putAccountType (id: number, body: AccountTypeIn): Observable<AccountTypeOut> {\n return this.http.put<ApiSuccess<AccountTypeOut>>(`${this.url}/account-types/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves parameters based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter or fetch the desired parameters.\n * @return {Observable<ParametersOut>} An observable that emits the fetched parameters.\n */\n getParameters (params: QueryParams): Observable<ParametersOut> {\n return this.http.get<ApiSuccess<ParametersOut>>(`${this.url}/parameters`, { params, })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the parameter values based on the provided parameter names.\n *\n * @param {Object} params - An object containing the required parameters.\n * @param {string[]} params.paramNames - An array of parameter names for which the values need to be fetched.\n * @return {Observable<ParametersValuesOut>} An observable that emits the fetched parameter values.\n */\n postParametersValues ({ paramNames }: ParametersValuesIn): Observable<ParametersValuesOut> {\n const parameters = paramNames.map((p) => ({ name: p }))\n\n return this.http.post<ApiSuccess<ParametersValuesOut>>(`${this.url}/parameters-values`, { parameters })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves parameter values based on the provided level configuration.\n *\n * @param {ParametersByLevelIn} parameters - The input object containing the criteria or level details to retrieve the parameters.\n * @return {Observable<ParametersValuesOut>} An observable that emits the parameter values fetched from the server.\n */\n postParameterValueByModel (parameters: ParametersByLevelIn): Observable<ParametersValuesOut> {\n return this.http.post<ApiSuccess<ParametersValuesOut>>(`${this.url}/parameters-values`, { parameters })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the value of a specified parameter.\n *\n * @param {Object} input - The input object containing the parameter details.\n * @param {string} input.paramName - The name of the parameter whose value is to be retrieved.\n * @return {Observable<ParameterValueOut>} An observable emitting the value of the specified parameter.\n */\n getParameterValue ({\n paramName,\n }: ParameterValueIn): Observable<ParameterValueOut> {\n return this.http.get<ApiSuccess<ParameterValueOut>>(`${this.url}/parameters-values/${paramName}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of country references based on the given query parameters.\n *\n * @param {QueryParams} params - The query parameters for retrieving country references.\n * @return {Observable<CountryReferencesOut>} An observable containing the country reference data.\n */\n getCountryReferences (params: QueryParams): Observable<CountryReferencesOut> {\n return this.http.get<ApiSuccess<CountryReferencesOut>>(`${this.url}/country-references`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the country reference data for a given country ID.\n *\n * @param {number} id - The unique identifier of the country for which the reference data is to be retrieved.\n * @return {Observable<CountryReferenceOut>} An observable containing the country reference data.\n */\n getCountryReference (id: number): Observable<CountryReferenceOut> {\n return this.http.get<ApiSuccess<CountryReferenceOut>>(`${this.url}/country-references/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates a country reference resource with the specified ID and data.\n *\n * @param {number} id - The unique identifier of the country reference to be updated.\n * @param {CountryReferenceIn} body - The data to update the country reference with.\n * @return {Observable<CountryReferenceOut>} An observable that emits the updated country reference object.\n */\n putCountryReference (id: number, body: CountryReferenceIn): Observable<CountryReferenceOut> {\n return this.http.put<ApiSuccess<CountryReferenceOut>>(`${this.url}/country-references/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the list of workflows based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter workflows.\n * @return {Observable<WorkflowsOut>} An observable containing the workflow data.\n */\n getWorkflows (params: QueryParams): Observable<WorkflowsOut> {\n return this.http.get<ApiSuccess<WorkflowsOut>>(`${this.url}/workflows`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the list of employee customer\n *\n * @param {QueryParams} params - The query parameters used to filter employee customers.\n * @return {Observable<EmployeeCustomersOut>} An observable containing the employee customer data.\n */\n getEmployeesCustomers (params: QueryParams): Observable<EmployeesCustomersOut> {\n return this.http.get<ApiSuccess<EmployeesCustomersOut>>(`${this.url}/employee-customers`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create or update employee customer records and processes the server response.\n *\n * @param {EmployeeCustomersIn} body - The request payload containing employee customer data to be sent to the server.\n * @return {Observable<EmployeeCustomersOut>} An observable that emits the updated employee customer data on successful response.\n */\n postEmployeeCustomers (body: EmployeeCustomersIn): Observable<EmployeeCustomersOut> {\n return this.http.post<ApiSuccess<EmployeeCustomersOut>>(`${this.url}/employee-customers`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the employee-customer association record identified by the given ID with the provided data.\n *\n * @param {number} id - The identifier of the employee-customer record to update.\n * @param {EmployeeCustomersIn} body - The data to update the employee-customer record with.\n * @return {Observable<EmployeeCustomersOut>} An observable that emits the updated employee-customer data.\n */\n putEmployeeCustomers (id: number, body: EmployeeCustomersIn): Observable<EmployeeCustomersOut> {\n return this.http.put<ApiSuccess<EmployeeCustomersOut>>(`${this.url}/employee-customers/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the employee-customer details based on the provided employee customer ID.\n *\n * @param {number} id - The identifier of the employee-customer record to update.\n * @return {Observable<EmployeeCustomersOut>} An observable that emits the updated employee-customer data.\n */\n getEmployeeCustomer (id: number): Observable<EmployeeCustomersOut> {\n return this.http.get<ApiSuccess<EmployeeCustomersOut>>(`${this.url}/employee-customers/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Enables or disables an employee customer's active state.\n *\n * @param {EmployeeCustomerDhl} employee - The employee customer object to be updated.\n * @param {boolean} [isActive] - Optional parameter to explicitly set the active state.\n * If null or undefined, the active state will be toggled.\n * @return {Observable<EmployeeCustomersOut>} An observable containing the updated employee customer output.\n */\n patchEmployeeCustomers (employee: EmployeeCustomerDhl, isActive?: boolean): Observable<EmployeeCustomersOut> {\n return this.http.patch<ApiSuccess<EmployeeCustomersOut>>(`${this.url}/employee-customers/${employee.id}`, {\n is_active: isActive ?? !employee.is_active\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Submits a file containing employee customer data for a specific country to the server.\n *\n * @param {number} countryId - The identifier of the country for which the data is being uploaded.\n * @param {File} file - The file contains employee customer data to be uploaded.\n * @return {Observable<BoardingProcessIdIn>} Observable that emits the processed boarding process ID on success.\n */\n postEmployeeCustomersLoad (countryId: number, file: File): Observable<BoardingProcessIdIn> {\n const body = new FormData()\n\n body.append('file', file)\n body.append('country_id', countryId.toString())\n\n return this.http.post<ApiSuccess<BoardingProcessIdIn>>(`${this.url}/employee-customers/load`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Downloads a file containing customer data for a specific employee based on the provided country ID.\n *\n * @param {number} id - The ID of the country used as a filter for fetching the employee's customers.\n * @return {Observable<Blob>} An observable that emits the file blob containing the customer data.\n */\n getEmployeeCustomersDownload (id:number):Observable<Blob> {\n return this.http.get(`${this.url}/employee-customers/download`, {\n params: { country_id: id },\n responseType: 'blob'\n })\n }\n\n /**\n * Retrieves the boarding process details for a given ID.\n *\n * @param {number} id - The unique identifier of the boarding process to retrieve.\n * @return {Observable<BoardingProcessIn>} An observable containing the boarding process details.\n */\n getBoardingProcess (id:number) {\n return this.http.get<ApiSuccess<BoardingProcessIn>>(`${this.url}/boarding-process/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches a list of systems based on the provided query parameters.\n *\n * @param {QueryParams} params - The parameters used to filter the systems.\n * @return {Observable<SystemsOut>} An observable that emits the retrieved systems data.\n */\n getSystems (params: QueryParams): Observable<SystemsOut> {\n return this.http.get<ApiSuccess<SystemsOut>>(`${this.url}/systems`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the system by the specified ID.\n *\n * @param {number} id - The unique identifier of the system to be retrieved.\n * @return {Observable<SystemOut>} An observable that emits the requested system information.\n */\n getSystem (id: number): Observable<SystemOut> {\n return this.http.get<ApiSuccess<SystemOut>>(`${this.url}/systems/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create or update a system.\n *\n * @param {SystemIn} body - The data representing the system to be created or updated.\n * @return {Observable<SystemOut>} An observable emitting the resulting system output after the API request succeeds.\n */\n postSystem (body: SystemIn): Observable<SystemOut> {\n return this.http.post<ApiSuccess<SystemOut>>(`${this.url}/systems`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the system identified by the given ID with the provided request body and returns the updated system details.\n *\n * @param {number} id - The unique identifier of the system to be updated.\n * @param {SystemIn} body - The payload containing the updated system details.\n * @return {Observable<SystemOut>} An observable emitting the updated system data.\n */\n putSystem (id: number, body: SystemIn): Observable<SystemOut> {\n return this.http.put<ApiSuccess<SystemOut>>(`${this.url}/systems/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of system entities based on the specified query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter or specify the system entities to retrieve.\n * @return {Observable<SystemEntitiesOut>} An Observable that emits the retrieved system entities.\n */\n getSystemEntities (params: QueryParams): Observable<SystemEntitiesOut> {\n return this.http.get<ApiSuccess<SystemEntitiesOut>>(`${this.url}/system-entities`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the system entities by sending the provided data to the server.\n *\n * @param {SystemEntitiesIn} body - The data object representing the system entities to be updated.\n * @return {Observable<SystemEntitiesOut>} An observable containing the updated system entities data.\n */\n putSystemEntities (body: SystemEntitiesIn): Observable<SystemEntitiesOut> {\n return this.http.put<ApiSuccess<SystemEntitiesOut>>(`${this.url}/system-entities`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves workflow configurations based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the workflow configurations.\n * @return {Observable<WorkflowConfigsOut>} An observable emitting the workflow configurations.\n */\n getWorkflowConfigs (params: QueryParams): Observable<WorkflowConfigsOut> {\n return this.http.get<ApiSuccess<WorkflowConfigsOut>>(`${this.url}/workflow-configs`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a batch of workflow configuration data to the server for processing.\n *\n * @param {WorkflowConfigsBatchIn} body - The input data containing a batch of workflow configurations to be sent.\n * @return {Observable<WorkflowConfigsOut>} An observable that emits the processed batch of workflow configuration data as a response.\n */\n postWorkflowConfigsBatch (body: WorkflowConfigsBatchIn): Observable<WorkflowConfigsOut> {\n return this.http.post<ApiSuccess<WorkflowConfigsOut>>(`${this.url}/workflow-configs/batch`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create a new company and returns the created company's details.\n *\n * @param {CompanyIn} body - The payload containing the details of the company to be created.\n * @return {Observable<CompanyOut>} An Observable emitting the response with the created company's details.\n */\n postCompany (body: CompanyIn): Observable<CompanyOut> {\n return this.http.post<ApiSuccess<CompanyOut>>(`${this.url}/companies`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the details of an existing company using its ID.\n *\n * @param {number} id - The unique identifier of the company to update.\n * @param {CompanyIn} body - The object containing the updated company data.\n * @return {Observable<CompanyOut>} An observable that emits the updated company details.\n */\n putCompany (id: number, body: CompanyIn): Observable<CompanyOut> {\n return this.http.put<ApiSuccess<CompanyOut>>(`${this.url}/companies/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes a company by its unique identifier.\n *\n * @param {number} id - The unique identifier of the company to be deleted.\n * @return {Observable<{}>} An observable that emits an empty object upon successful deletion or an error if the operation fails.\n */\n deleteCompany (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/companies/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches product entities from the server based on the provided query parameters.\n *\n * @param {QueryParams} params The query parameters used to modify the request for product entities.\n * @return {Observable<ProductEntitiesOut>} An observable that emits the product entities retrieved from the server.\n */\n getProductEntities (params: QueryParams): Observable<ProductEntitiesOut> {\n return this.http.get<ApiSuccess<ProductEntitiesOut>>(`${this.url}/product-entities`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a PUT request to update product entities and returns the updated entity.\n *\n * @param {ProductEntitiesIn} body - The payload containing the data to update the product entity.\n * @return {Observable<ProductEntitiesOut>} Observable that emits the updated product entity.\n */\n putProductEntities (body: ProductEntitiesIn): Observable<ProductEntitiesOut> {\n return this.http.put<ApiSuccess<ProductEntitiesOut>>(`${this.url}/product-entities`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the country reference products based on the given query parameters.\n *\n * @param {QueryParams} params The query parameters used to filter and retrieve the country reference products.\n * @return {Observable<CountryReferenceProductsOut>} An observable emitting the fetched country reference products data.\n */\n getCountryReferenceProducts (params: QueryParams): Observable<CountryReferenceProductsOut> {\n return this.http.get<ApiSuccess<CountryReferenceProductsOut>>(`${this.url}/country-reference-products`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a request to update or create country reference products.\n *\n * @param {CountryReferenceProductIn} body - The payload containing the details of the country reference products to post.\n * @return {Observable<CountryReferenceProductOut>} An observable that emits the updated or created country reference product data.\n */\n postCountryReferenceProducts (body: CountryReferenceProductIn): Observable<CountryReferenceProductOut> {\n return this.http.post<ApiSuccess<CountryReferenceProductOut>>(`${this.url}/country-reference-products`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates a country reference product with the specified ID using the provided data.\n *\n * @param {number} id - The unique identifier of the country reference product to update.\n * @param {CountryReferenceProductIn} body - The updated country reference product data to be sent in the request body.\n * @return {Observable<CountryReferenceProductOut>} An observable emitting the updated country reference product.\n */\n putCountryReferenceProducts (id: number, body: CountryReferenceProductIn): Observable<CountryReferenceProductOut> {\n return this.http.put<ApiSuccess<CountryReferenceProductOut>>(`${this.url}/country-reference-products/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the extra charge entities from the server based on the provided query parameters.\n *\n * @param {QueryParams} params - An object containing the query parameters to filter the extra charge entities.\n * @return {Observable<ExtraChargeEntitiesOut>} An observable that emits the extra charge entities retrieved from the server.\n */\n getExtraChargeEntities (params: QueryParams): Observable<ExtraChargeEntitiesOut> {\n return this.http.get<ApiSuccess<ExtraChargeEntitiesOut>>(`${this.url}/extracharge-entities`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates extra charge entities by sending the provided data to the server.\n *\n * @param {ExtraChargeEntitiesIn} body - The data to update the extra charge entities.\n * @return {Observable<ExtraChargeEntitiesOut>} An observable that emits the updated extra charge entities.\n */\n putExtraChargeEntities (body: ExtraChargeEntitiesIn): Observable<ExtraChargeEntitiesOut> {\n return this.http.put<ApiSuccess<ExtraChargeEntitiesOut>>(`${this.url}/extracharge-entities`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the parameter configurations based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the parameter configurations.\n * @return {Observable<ParameterConfigsOut>} An observable that emits the parameter configurations data.\n */\n getParameterConfigs (params: QueryParams): Observable<ParameterConfigsOut> {\n return this.http.get<ApiSuccess<ParameterConfigsOut>>(`${this.url}/parameter-configs`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create or update a parameter configuration.\n *\n * @param {ParameterConfigIn} body - The input data object containing the parameter configuration to be sent in the request body.\n * @return {Observable<ParameterConfigOut>} An observable that emits the server's response containing the updated or newly created parameter configuration.\n */\n postParameterConfig (body: ParameterConfigIn): Observable<ParameterConfigOut> {\n return this.http.post<ApiSuccess<ParameterConfigOut>>(`${this.url}/parameter-configs`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the configuration of a parameter with the provided ID and input data.\n *\n * @param {number} id - The unique identifier of the parameter configuration to be updated.\n * @param {ParameterConfigIn} body - The input data containing the updated configuration for the parameter.\n * @return {Observable<ParameterConfigOut>} An observable that emits the updated parameter configuration.\n */\n putParameterConfig (id: number, body: ParameterConfigIn): Observable<ParameterConfigOut> {\n return this.http.put<ApiSuccess<ParameterConfigOut>>(`${this.url}/parameter-configs/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes a parameter configuration specified by its ID.\n *\n * @param {number} id - The unique identifier of the parameter configuration to be deleted.\n * @return {Observable<ParameterConfigOut>} An observable containing the deleted parameter configuration data.\n */\n deleteParameterConfig (id: number): Observable<ParameterConfigOut> {\n return this.http.delete<ApiSuccess<ParameterConfigOut>>(`${this.url}/parameter-configs/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of TDX account settings based on the given query parameters.\n *\n * @param {QueryParams} params - Query parameters used to filter or paginate the results.\n * @returns {Observable<TDXAccountsSettingsOut>} An observable containing the list of TDX account settings.\n */\n getTDXAccountsSettings (params: QueryParams): Observable<TDXAccountsSettingsOut> {\n return this.http.get<ApiSuccess<TDXAccountsSettingsOut>>(`${this.url}/tdx-account-settings`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a single TDX account setting by its ID.\n *\n * @param {number} id - The unique identifier of the TDX account setting to be retrieved.\n * @returns {Observable<TDXAccountSettingsOut>} An observable containing the requested TDX account setting.\n */\n getTDXAccountSettings (id: number): Observable<TDXAccountSettingsOut> {\n return this.http.get<ApiSuccess<TDXAccountSettingsOut>>(`${this.url}/tdx-account-settings/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Creates a new TDX account setting with the provided data.\n *\n * @param {TDXAccountSettingsIn} body - The data used to create the new TDX account setting.\n * @returns {Observable<TDXAccountSettingsOut>} An observable containing the newly created TDX account setting.\n */\n postTDXAccountSettings (body:TDXAccountSettingsIn): Observable<TDXAccountSettingsOut> {\n return this.http.post<ApiSuccess<TDXAccountSettingsOut>>(`${this.url}/tdx-account-settings`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing TDX account setting identified by its ID.\n *\n * @param {number} id - The unique identifier of the TDX account setting to be updated.\n * @param {TDXAccountSettingsIn} body - The updated data for the TDX account setting.\n * @returns {Observable<TDXAccountSettingsOut>} An observable containing the updated TDX account setting.\n */\n putTDXAccountSettings (id: number, body:TDXAccountSettingsIn): Observable<TDXAccountSettingsOut> {\n return this.http.put<ApiSuccess<TDXAccountSettingsOut>>(`${this.url}/tdx-account-settings/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the employees of a specific location using a provided token.\n *\n * @param params - Input parameters for the request, defined by the `LocationEmployeesIn` interface.\n * @returns An `Observable<LocationEmployeesOut>` that emits the employees\n * associated with the given location.\n * @returns The response type is `ApiSuccess<LocationEmployeesOut>`, from which the `data` field is extracted.\n */\n getLocationEmployeesByToken (params: { token: string, queryParams: QueryParams }): Observable<LocationEmployeesOut> {\n return this.http.get<ApiSuccess<LocationEmployeesOut>>(`${this.url}/location-employees`, {\n params: params.queryParams,\n headers: {\n Authorization: `Bearer ${params.token}`\n }\n }).pipe(map(({ data }) => data))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport { HttpClient } from '@angular/common/http'\nimport { Environment } from '../ngx-services.models'\nimport { map, Observable } from 'rxjs'\nimport { CookieService } from 'ngx-cookie-service'\nimport { CompositionCountryReferencesOut, ShipmentOut } from './models/api-composition.types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiCompositionService {\n constructor (\n @Inject('env') private environments: Environment,\n private cookie: CookieService,\n private http: HttpClient\n ) {}\n\n /**\n * Retrieves the API security URL from the environment configuration.\n *\n * @return {string} The API security URL.\n */\n get url (): string {\n return this.environments.apiCompositionUrl ?? ''\n }\n\n /**\n * Retrieves shipment details based on the provided shipment ID.\n *\n * @param {number} id - The unique identifier of the shipment to retrieve.\n * @return {Observable<ShipmentOut>} An observable that emits the details of the shipment.\n */\n getShipment (id: number): Observable<ShipmentOut> {\n return this.http.get<ApiSuccess<ShipmentOut>>(`${this.url}/shipments/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the country references data based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters for the API request.\n * @return {Observable<CompositionCountryReferencesOut>} - An observable emitting the country references.\n */\n getCountryReferences (params: QueryParams): Observable<CompositionCountryReferencesOut> {\n return this.http.get<ApiSuccess<CompositionCountryReferencesOut>>(`${this.url}/country-references`, { params })\n .pipe(map(({ data }) => data))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { HttpClient } from '@angular/common/http'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport { map, Observable } from 'rxjs'\nimport {\n CatalogsOut, CountryGroupsOut,\n CriteriaIn,\n CriteriaOut,\n FieldsOut,\n OverridesOut, RuleCriteriaIn, RuleIn,\n RuleOut, RulesByCriteriaOut, RulesIn,\n RulesOut\n} from './models/api-customs.types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiCustomsService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the cash operations API from the environment configurations.\n *\n * @return {string} The URL of the cash operations API.\n */\n get url (): string {\n return this.environments.apiCustomsUrl ?? ''\n }\n\n /**\n * Fetches the available fields for a given level.\n *\n * @return {Observable<FieldsOut>} An Observable that emits the list of fields.\n * @param params\n */\n getFields (params: QueryParams): Observable<FieldsOut> {\n return this.http.get<ApiSuccess<FieldsOut>>(\n `${this.url}/fields`, {\n params\n }\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Retrieves override configurations for a given level.\n *\n * @return {Observable<OverridesOut>} An Observable that emits the overrides configuration.\n * @param params\n */\n getOverrides (params: QueryParams): Observable<OverridesOut> {\n return this.http.get<ApiSuccess<OverridesOut>>(\n `${this.url}/overrides`, {\n params\n }\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Fetches the catalogs used in customs operations.\n *\n * @return {Observable<CatalogsOut>} An Observable that emits the catalogs.\n */\n getCatalogs (params: QueryParams): Observable<CatalogsOut> {\n return this.http.get<ApiSuccess<CatalogsOut>>(\n `${this.url}/catalogs`, {\n params\n }\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Retrieves the list of rules based on the provided query parameters.\n *\n * @param {QueryParams} params - Query parameters to filter the rules.\n * @return {Observable<RulesOut>} An Observable that emits the list of rules.\n */\n getRules (params: QueryParams): Observable<RulesOut> {\n return this.http.get<ApiSuccess<RulesOut>>(\n `${this.url}/rules`,\n { params }\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Retrieves the details of a specific rule by its ID.\n *\n * @param {number} id - The ID of the rule.\n * @return {Observable<RuleOut>} An Observable that emits the rule details.\n */\n getRule (id: number): Observable<RuleOut> {\n return this.http.get<ApiSuccess<RuleOut>>(\n `${this.url}/rules/${id}`\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Creates a new criteria.\n *\n * @param {CriteriaIn} body - The criteria payload to create.\n * @return {Observable<CriteriaOut>} An Observable that emits the created criteria.\n */\n postCriteria (body: CriteriaIn): Observable<CriteriaOut> {\n return this.http.post<ApiSuccess<CriteriaOut>>(`${this.url}/criteria`,\n body\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Creates a new rule.\n *\n * @param {RuleIn} body - The rule payload to create.\n * @return {Observable<RuleOut>} An Observable that emits the created rule.\n */\n postRules (body: RuleIn): Observable<RuleOut> {\n return this.http.post<ApiSuccess<RuleOut>>(`${this.url}/rules`,\n body\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Retrieves rules that match the given criteria.\n *\n * @param {RuleCriteriaIn} params - Criteria used to search for matching rules.\n * @return {Observable<RulesByCriteriaOut>} An Observable that emits the list of matching rules.\n */\n postRulesByCriteria (params: RuleCriteriaIn): Observable<RulesByCriteriaOut> {\n return this.http.post<ApiSuccess<RulesByCriteriaOut>>(\n `${this.url}/rules/by-criteria`,\n params\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Enables a specific rule by its ID.\n *\n * @param {number} id - The ID of the rule to enable.\n * @return {Observable<{}>} An Observable that emits an empty array on success.\n */\n putRuleActivate (id:number): Observable<{}> {\n return this.http.put<ApiSuccess<{}>>(\n `${this.url}/rules/${id}/activate`, null\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Disables (deletes) a specific rule by its ID.\n *\n * @param {number} id - The ID of the rule to disable.\n * @return {Observable<[]>} An Observable that emits an empty array on success.\n */\n deleteRule (id:number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(\n `${this.url}/rules/${id}`\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Updates an existing criteria by its ID.\n *\n * @param {number} id - The ID of the criteria.\n * @param {CriteriaIn} body - The updated criteria payload.\n * @return {Observable<CriteriaOut>} An Observable that emits the updated criteria.\n */\n putCriteria (id:number, body: CriteriaIn): Observable<CriteriaOut> {\n return this.http.put<ApiSuccess<CriteriaOut>>(\n `${this.url}/criteria/${id}`,\n body\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Updates an existing rule by its ID.\n *\n * @param {number} id - The ID of the rule.\n * @param {RulesIn} body - The updated rule payload.\n * @return {Observable<RuleOut>} An Observable that emits the updated rule.\n */\n putRule (id:number, body: RulesIn): Observable<RuleOut> {\n return this.http.put<ApiSuccess<RuleOut>>(\n `${this.url}/rules/${id}`,\n body\n ).pipe(\n map(({ data }) => data)\n )\n }\n\n /**\n * Retrieves the list of country groups used in customs operations.\n *\n * @return {Observable<CountryGroupsOut>} An Observable that emits the list of country groups.\n */\n getCountryGroups (params: QueryParams): Observable<CountryGroupsOut> {\n return this.http.get<ApiSuccess<CountryGroupsOut>>(\n `${this.url}/country-groups`,\n {\n params\n }\n ).pipe(\n map(({ data }) => data)\n )\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { map, Observable } from 'rxjs'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport {\n CustomerRestrictionIn,\n CustomerRestrictionInV2,\n CustomerRestrictionOut,\n CustomerRestrictionsOut,\n DiscountIn,\n DiscountOut,\n DiscountsOut,\n LoyaltyPeriodIn,\n LoyaltyPeriodOut,\n LoyaltyPeriodsOut,\n LoyaltyRuleIn,\n LoyaltyRuleOut,\n LoyaltyRulesOut,\n OperationsLoadTopCustomerV2In,\n TopCustomersOut\n} from './models/api-discounts.types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiDiscountsService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Gets the API endpoint URL for discounts from the environments configuration.\n *\n * @return {string} The URL for the discounts API. Returns an empty string if not defined.\n */\n get url (): string {\n return this.environments.apiDiscountsUrl ?? ''\n }\n\n /**\n * Fetches available discounts based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter and retrieve discounts.\n * @return {Observable<DiscountsOut>} An Observable that emits the retrieved discounts data.\n */\n getDiscounts (params: QueryParams): Observable<DiscountsOut> {\n return this.http.get<ApiSuccess<DiscountsOut>>(`${this.url}/discounts`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a request to create or update discounts on the server.\n *\n * @param {DiscountIn} body - The discount information to be submitted.\n * @return {Observable<DiscountOut>} An Observable emitting the server's response containing the created or updated discount details.\n */\n postDiscounts (body: DiscountIn): Observable<DiscountOut> {\n return this.http.post<ApiSuccess<DiscountOut>>(`${this.url}/discounts`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the discount information for a specific item.\n *\n * @param {number} id - The unique identifier of the item whose discount is to be updated.\n * @param {DiscountIn} body - The payload containing the updated discount details.\n * @return {Observable<DiscountOut>} An observable emitting the updated discount details.\n */\n putDiscounts (id: number, body: DiscountIn): Observable<DiscountOut> {\n return this.http.put<ApiSuccess<DiscountOut>>(`${this.url}/discounts/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the top customers based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter and sort the top customers.\n * @return {Observable<TopCustomersOut>} An observable emitting the list of top customers.\n */\n getTopCustomers (params: QueryParams): Observable<TopCustomersOut> {\n return this.http.get<ApiSuccess<TopCustomersOut>>(`${this.url}/top-customers`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to load the top customer data in the system, using the provided input.\n * Transforms the API response to extract the data field containing the discount information.\n *\n * @param {OperationsLoadTopCustomerV2In} body - The input payload containing the company country ID and the file.\n * @param {number} body.company_country_id - The ID of the company's country.\n * @param {File} body.file - The file containing data to be processed.\n * @return {Observable<DiscountOut>} An observable containing the discount output information.\n */\n postOperationsLoadTopCustomerV2 (body: OperationsLoadTopCustomerV2In): Observable<{}> {\n const formData = new FormData()\n formData.append('company_country_id', String(body.company_country_id))\n formData.append('file', body.file)\n\n return this.http.post<ApiSuccess<{}>>(`${this.url}/operations/load-top-customer/V2`, formData)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the loyalty periods based on the provided query parameters.\n *\n * @param {QueryParams} params - An object containing query parameters to filter the periods.\n * @return {Observable<LoyaltyPeriodsOut>} An observable that emits the fetched loyalty periods.\n */\n getLoyaltyPeriods (params: QueryParams): Observable<LoyaltyPeriodsOut> {\n return this.http.get<ApiSuccess<LoyaltyPeriodsOut>>(`${this.url}/loyalty-periods`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the loyalty period details for the given ID.\n *\n * @param {number} id - The unique identifier of the loyalty period to retrieve.\n * @return {Observable<LoyaltyPeriodOut>} An observable emitting the loyalty period details.\n */\n getLoyaltyPeriod (id: number): Observable<LoyaltyPeriodOut> {\n return this.http.get<ApiSuccess<LoyaltyPeriodOut>>(`${this.url}/loyalty-periods/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a PUT request to update the loyalty period with the provided data.\n *\n * @param {LoyaltyPeriodIn} body - The data for the loyalty period to be updated.\n * @return {Observable<LoyaltyPeriodOut>} An observable that emits the updated loyalty period data.\n */\n postLoyaltyPeriod (body: LoyaltyPeriodIn): Observable<LoyaltyPeriodOut> {\n return this.http.put<ApiSuccess<LoyaltyPeriodOut>>(`${this.url}/loyalty-periods`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the loyalty period for a specified ID with the provided data.\n *\n * @param {number} id - The unique identifier of the loyalty period to update.\n * @param {LoyaltyPeriodIn} body - An object containing the updated details of the loyalty period.\n * @return {Observable<LoyaltyPeriodOut>} An observable that emits the updated loyalty period details.\n */\n putLoyaltyPeriod (id: number, body: LoyaltyPeriodIn): Observable<LoyaltyPeriodOut> {\n return this.http.put<ApiSuccess<LoyaltyPeriodOut>>(`${this.url}/loyalty-periods/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the loyalty rules based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the loyalty rules.\n * @return {Observable<LoyaltyRulesOut>} An observable containing the loyalty rules output.\n */\n getLoyaltyRules (params: QueryParams): Observable<LoyaltyRulesOut> {\n return this.http.get<ApiSuccess<LoyaltyRulesOut>>(`${this.url}/loyalty-rules`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a specific loyalty rule based on the provided ID.\n *\n * @param {number} id - The unique identifier of the loyalty rule to retrieve.\n * @return {Observable<LoyaltyRuleOut>} An observable that emits the details of the specified loyalty rule.\n */\n getLoyaltyRule (id: number): Observable<LoyaltyRuleOut> {\n return this.http.get<ApiSuccess<LoyaltyRuleOut>>(`${this.url}/loyalty-rules/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a request to add or update a loyalty rule.\n *\n * @param {LoyaltyRuleIn} body - The loyalty rule data to be sent to the server.\n * @return {Observable<LoyaltyRuleOut>} An observable that emits the updated loyalty rule details.\n */\n postLoyaltyRule (body: LoyaltyRuleIn): Observable<LoyaltyRuleOut> {\n return this.http.put<ApiSuccess<LoyaltyRuleOut>>(`${this.url}/loyalty-rules`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing loyalty rule with the provided data.\n *\n * @param {number} id - The unique identifier of the loyalty rule to update.\n * @param {LoyaltyRuleIn} body - The data to update the loyalty rule with.\n * @return {Observable<LoyaltyRuleOut>} An observable that emits the updated loyalty rule.\n */\n putLoyaltyRule (id: number, body: LoyaltyRuleIn): Observable<LoyaltyRuleOut> {\n return this.http.put<ApiSuccess<LoyaltyRuleOut>>(`${this.url}/loyalty-rules/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches customer restrictions based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter customer restrictions.\n * @return {Observable<CustomerRestrictionsOut>} An observable that emits the customer restrictions data.\n */\n getCustomerRestrictions (params: QueryParams): Observable<CustomerRestrictionsOut> {\n return this.http.get<ApiSuccess<CustomerRestrictionsOut>>(`${this.url}/customer-restrictions`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves customer restriction details for a given customer ID.\n *\n * @param {number} id - The unique identifier of the customer.\n * @return {Observable<CustomerRestrictionOut>} An observable containing the customer restriction details.\n */\n getCustomerRestriction (id: number): Observable<CustomerRestrictionOut> {\n return this.http.get<ApiSuccess<CustomerRestrictionOut>>(`${this.url}/customer-restrictions/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a request to apply a restriction to a customer.\n *\n * @param {CustomerRestrictionIn} body - The restriction details to be applied to the customer.\n * @return {Observable<CustomerRestrictionOut>} An observable containing the response with the applied customer restriction.\n */\n postCustomerRestriction (body: CustomerRestrictionIn): Observable<CustomerRestrictionOut> {\n return this.http.put<ApiSuccess<CustomerRestrictionOut>>(`${this.url}/customer-restrictions`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates customer restrictions using the provided ID and data.\n *\n * @param {number} id - The unique identifier of the customer restriction to be updated.\n * @param {LoyaltyRuleIn} body - The data object containing the customer restriction details to be updated.\n * @return {Observable<CustomerRestrictionOut>} An observable emitting the updated customer restriction details.\n */\n putCustomerRestriction (id: number, body: CustomerRestrictionIn): Observable<CustomerRestrictionOut> {\n return this.http.put<ApiSuccess<CustomerRestrictionOut>>(`${this.url}/customer-restrictions/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes a customer restriction by its ID.\n *\n * @param {number} id - The unique identifier of the customer restriction to delete.\n * @return {Observable<{}>} An Observable that emits the result of the deletion operation.\n */\n deleteCustomerRestriction (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/customer-restrictions/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a request to apply a restriction to a customer (Version 2).\n *\n * @param {CustomerRestrictionInV2} body - The restriction details to be applied to the customer.\n * @return {Observable<CustomerRestrictionOut>} An observable containing the response with the applied customer restriction.\n */\n postCustomerRestrictionV2 (body: CustomerRestrictionInV2): Observable<CustomerRestrictionOut> {\n return this.http.post<ApiSuccess<CustomerRestrictionOut>>(`${this.url}/customer-restrictions/V2`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates customer restrictions using the provided ID and data (Version 2).\n *\n * @param {number} id - The unique identifier of the customer restriction to be updated.\n * @param {CustomerRestrictionInV2} body - The data object containing the customer restriction details to be updated.\n * @return {Observable<CustomerRestrictionOut>} An observable emitting the updated customer restriction details.\n */\n putCustomerRestrictionV2 (id: number, body: CustomerRestrictionInV2): Observable<CustomerRestrictionOut> {\n return this.http.put<ApiSuccess<CustomerRestrictionOut>>(`${this.url}/customer-restrictions/V2/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { map, Observable } from 'rxjs'\nimport { Environment } from '../ngx-services.models'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport {\n ExternalShipmentAddressesIn,\n ExternalShipmentAddressesOut,\n ExternalShipmentFileOut,\n ExternalShipmentHistoriesOut,\n ExternalShipmentStatusOut\n} from './models/api-e-tools-auto-billing.types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiEToolsAutoBillingService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the shipments API from the environment configurations.\n *\n * @return {string} The URL of the shipments API.\n */\n get url (): string {\n return this.environments.apiEToolsAutoBilling ?? ''\n }\n\n /**\n * Updates external shipment address details for the given address ID.\n *\n * @param {Object} params - The parameters for the API request.\n * @param {string} params.id - The unique identifier of the address to update.\n * @param {Object} params.body - The payload containing updated address details.\n * @return {Observable<ExternalShipmentAddressesOut>} An observable containing the updated external shipment address information.\n */\n patchExternalShipmentAddresses ({\n id,\n ...body\n }: ExternalShipmentAddressesIn): Observable<ExternalShipmentAddressesOut> {\n return this.http.patch<ApiSuccess<ExternalShipmentAddressesOut>>(`${this.url}/external-shipment-addresses/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the external shipment file by its identifier.\n *\n * @param {number} fileId - The unique identifier of the external shipment file to be retrieved.\n * @return {Observable<ExternalShipmentFileOut>} An observable containing the external shipment file data.\n */\n getExternalShipmentFile (fileId: number): Observable<ExternalShipmentFileOut> {\n return this.http.get<ApiSuccess<ExternalShipmentFileOut>>(`${this.url}/external-shipment-files/${fileId}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the history entries for a specific external shipment.\n *\n * @param {number} id - The ID of the external shipment to retrieve history for.\n * @return {Observable<ExternalShipmentHistoriesOut>} An observable containing the external shipment history entries.\n */\n getExternalShipmentHistories (id: number): Observable<ExternalShipmentHistoriesOut> {\n return this.http.get<ApiSuccess<ExternalShipmentHistoriesOut>>(`${this.url}/external-shipments/${id}/external-shipment-histories`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the list of external shipment statuses\n *\n * @param {QueryParams} params - The query parameters used to fetch the external shipment statuses.\n * @return {Observable<ExternalShipmentStatusOut>} An observable that emits the external shipment statuses data.\n */\n getExternalShipmentStatuses (params: QueryParams): Observable<ExternalShipmentStatusOut> {\n return this.http.get<ApiSuccess<ExternalShipmentStatusOut>>(`${this.url}/external-shipment-statuses`, {\n params\n }).pipe(map(({ data }) => data))\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { map, Observable } from 'rxjs'\nimport { ApiSuccess } from './models/api.models'\nimport { OperationModuleEndIn, OperationModuleOut, OperationModuleStartIn } from './models/api-events.types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiEventsService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Gets the API endpoint URL for Events from the environments configuration.\n *\n * @return {string} The URL for the Events API. Returns an empty string if not defined.\n */\n get url (): string {\n return this.environments.apiEventsUrl ?? ''\n }\n\n /**\n * Sends a request to start an event\n *\n * @param {OperationModuleStartIn} body - The event information to be submitted.\n * @return {Observable<OperationModuleOut>} An Observable emitting the server's response containing the created event details.\n */\n postOperationModulesStart (body: OperationModuleStartIn): Observable<OperationModuleOut> {\n return this.http.post<ApiSuccess<OperationModuleOut>>(`${this.url}/operation-modules/start`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the discount information for a specific item.\n *\n * @param {number} id - The unique identifier of the item whose event is to be updated.\n * @param {OperationModuleEndIn} body - The payload containing the updated event details.\n * @return {Observable<OperationModuleOut>} An observable emitting the updated event details.\n */\n putOperationModulesEnd (id: number, body: OperationModuleEndIn): Observable<OperationModuleOut> {\n return this.http.put<ApiSuccess<OperationModuleOut>>(`${this.url}/operation-modules/${id}/end`, body)\n .pipe(map(({ data }) => data))\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { Observable } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { Environment } from '../ngx-services.models'\nimport {\n DeliveryConfirmationCompleteIn,\n DeliveryConfirmationGenerateIn,\n DeliveryConfirmationGenerateOut,\n DeliveryConfirmationIn,\n DeliveryConfirmationSearchOut\n} from './models/api-external-ops.types'\nimport { ApiSuccess } from './models/api.models'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiExternalOperationsService {\n private appKey: string\n\n constructor (\n private http: HttpClient,\n @Inject('env') private environment: Environment\n ) {\n this.appKey = environment.apiExternalOperationsKey ?? ''\n }\n\n /**\n * Getter method to retrieve the API's external operations URL.\n * Fetches the URL from the `apiExternalOperationsUrl` property of the environment object.\n * Defaults to an empty string if the property is undefined or null.\n *\n * @return {string} The external operations URL or an empty string if unavailable.\n */\n get url (): string {\n return this.environment.apiExternalOperationsUrl ?? ''\n }\n\n /**\n * Retrieves delivery confirmation details based on the provided OTP code.\n *\n * @param {string} otpCode - The OTP code used to search for delivery confirmation.\n * @return {Observable<DeliveryConfirmationData>} An observable containing the delivery confirmation data.\n */\n public getDeliveryConfirmation (otpCode: string): Observable<DeliveryConfirmationSearchOut> {\n return this.http.get<ApiSuccess<DeliveryConfirmationSearchOut>>(`${this.url}/delivery-confirmation/search/${otpCode}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Generates a delivery confirmation by sending the provided payload to the API.\n *\n * @param {DeliveryConfirmationGenerateIn} payload - The input payload required to generate the delivery confirmation.\n * @return {Observable<DeliveryConfirmationGenerateOut>} An observable that emits the generated delivery confirmation data.\n */\n public postDeliveryConfirmationGenerate (payload: DeliveryConfirmationGenerateIn): Observable<DeliveryConfirmationGenerateOut> {\n return this.http.post<ApiSuccess<DeliveryConfirmationGenerateOut>>(\n `${this.url}/delivery-confirmation/generate`,\n payload, {\n headers: this.getAppKeyHeader(),\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Confirms the completion of a delivery operation by making a PATCH request.\n *\n * @param {Object} input - The input parameters for the method.\n * @param {string} input.operationId - The unique identifier of the delivery operation to be confirmed.\n * @param {string} input.keyOTP - The one-time password (OTP) key associated with the delivery confirmation.\n * @return {Observable<Object>} - An observable containing the response data from the API.\n */\n public patchDeliveryConfirmationComplete ({\n keyOTP,\n operationId,\n }: DeliveryConfirmationCompleteIn): Observable<{}> {\n return this.http.patch<ApiSuccess<{}>>(\n `${this.url}/delivery-confirmation/completed/${keyOTP}`,\n null, {\n headers: this.getAppKeyHeader(),\n params: { operation_id: operationId }\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Cancels a delivery confirmation by sending an OTP and additional data to the server.\n *\n * @param {Object} param0 - The parameter object containing the required properties.\n * @param {string} param0.otp - The one-time password to authenticate the cancellation request.\n * @param {Object} param0.body - Additional body data required for cancellation.\n * @return {Observable<Object>} An observable that emits the server's response when the cancellation is processed.\n */\n public putDeliveryConfirmation ({\n otp,\n ...body\n }: DeliveryConfirmationIn): Observable<{}> {\n return this.http.put<ApiSuccess<{}>>(\n `${this.url}/delivery-confirmation/confirmation/${otp}`,\n body, {\n headers: this.getAppKeyHeader(),\n }).pipe(map(({ data }) => data))\n }\n\n private getAppKeyHeader () {\n return { ...(this.appKey && { AppKey: this.appKey }) }\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { HttpClient } from '@angular/common/http'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport { map, Observable } from 'rxjs'\nimport { CheckpointEventReasonsOut, CheckpointsOut, IncidentIn, IncidentOut, IncidentReasonComplementIn, IncidentReasonComplementOut, IncidentReasonComplementsOut, IncidentReasonIn, IncidentReasonOut, IncidentReasonsOut, IncidentsOut } from './models/api-inventories.types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiInventoriesService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the Inventories API from the environment configurations.\n *\n * @return {string} The URL of the Inventories API.\n */\n get url (): string {\n return this.environments.apiInventoriesUrl ?? ''\n }\n\n /**\n * Retrieves a list of checkpoints based on query parameters.\n *\n * @param {QueryParams} params - Query parameters for filtering the checkpoints.\n * @returns {Observable<CheckpointsOut>} The list of checkpoints.\n */\n getCheckpoints (params: QueryParams): Observable<CheckpointsOut> {\n return this.http.get<ApiSuccess<CheckpointsOut>>(`${this.url}/checkpoints`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of checkpoint event reasons based on query parameters.\n *\n * @param {QueryParams} params - Query parameters for filtering the checkpoint event reasons.\n * @returns {Observable<CheckpointEventReasonsOut>} The list of checkpoint event reasons.\n */\n getCheckpointEventReasons (params: QueryParams): Observable<CheckpointEventReasonsOut> {\n return this.http.get<ApiSuccess<CheckpointEventReasonsOut>>(`${this.url}/checkpoint-event-reasons`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of incidents based on query parameters.\n *\n * @param {QueryParams} params - Query parameters for filtering the incidents.\n * @returns {Observable<IncidentsOut>} An observable that emits the list of incidents.\n */\n getIncidents (params: QueryParams): Observable<IncidentsOut> {\n return this.http.get<ApiSuccess<IncidentsOut>>(`${this.url}/incidents`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the incident details based on the provided incident ID.\n *\n * @param {number} id - The identifier of the incident record to get detail.\n * @return {Observable<IncidentOut>} An observable that emits the detail incident data.\n */\n getIncident (id: Number): Observable<IncidentOut> {\n return this.http.get<ApiSuccess<IncidentOut>>(`${this.url}/incidents/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Creates a new incident.\n *\n * @param {IncidentIn} body - The data for the new incident.\n * @returns {Observable<IncidentOut>} An observable the created incident detail.\n */\n postIncident (body: IncidentIn): Observable<IncidentOut> {\n return this.http.post<ApiSuccess<IncidentOut>>(`${this.url}/incidents`,\n body\n ).pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing incident.\n *\n * @param {number} id - The identifier of the incident record to update.\n * @param {IncidentIn} body - The incident data to be updated.\n * @returns {Observable<IncidentOut>} An observable detail of the updated incident.\n */\n putIncident (id: Number, body: IncidentIn): Observable<IncidentOut> {\n return this.http.put<ApiSuccess<IncidentOut>>(`${this.url}/incidents/${id}`,\n body\n ).pipe(map(({ data }) => data))\n }\n\n /**\n * Delete an existing incident.\n *\n * @param {number} id - The unique identifier of the incident to be deleted.\n * @returns {Observable<IncidentOut>} An observable that emits the result of the delete incident.\n */\n deleteIncident (id: Number): Observable<IncidentOut> {\n return this.http.delete<ApiSuccess<IncidentOut>>(`${this.url}/incidents/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of incident reasons based on query parameters.\n *\n * @param {QueryParams} params - Query parameters for filtering the incident reasons.\n * @returns {Observable<IncidentReasonsOut>} An observable that emits the list of incident reasons.\n */\n getIncidentReasons (params: QueryParams): Observable<IncidentReasonsOut> {\n return this.http.get<ApiSuccess<IncidentReasonsOut>>(`${this.url}/incident-reasons`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the incident reason details based on the provided incident reason ID.\n *\n * @param {number} id - The identifier of the incident reason record to get detail.\n * @return {Observable<IncidentReasonOut>} An observable that emits the detail incident reason data.\n */\n getIncidentReason (id: Number): Observable<IncidentReasonOut> {\n return this.http.get<ApiSuccess<IncidentReasonOut>>(`${this.url}/incident-reasons/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Creates a new incident reason.\n *\n * @param {IncidentReasonIn} body - The data for the new incident reason.\n * @returns {Observable<IncidentReasonOut>} An observable the created incident reason detail.\n */\n postIncidentReason (body: IncidentReasonIn): Observable<IncidentReasonOut> {\n return this.http.post<ApiSuccess<IncidentReasonOut>>(`${this.url}/incident-reasons`,\n body\n ).pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing incident reason.\n *\n * @param {number} id - The identifier of the incident reason record to update.\n * @param {IncidentIn} body - The incident reason data to be updated.\n * @returns {Observable<IncidentReasonOut>} An observable detail of the updated incident reason.\n */\n putIncidentReason (id: Number, body: IncidentReasonIn): Observable<IncidentReasonOut> {\n return this.http.put<ApiSuccess<IncidentReasonOut>>(`${this.url}/incident-reasons/${id}`,\n body\n ).pipe(map(({ data }) => data))\n }\n\n /**\n * Delete an existing incident reason.\n *\n * @param {number} id - The unique identifier of the incident reason to be deleted.\n * @returns {Observable<IncidentReasonOut>} An observable that emits the result of the delete incident reason.\n */\n deleteIncidentReason (id: Number): Observable<IncidentReasonOut> {\n return this.http.delete<ApiSuccess<IncidentReasonOut>>(`${this.url}/incident-reasons/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of incident reason complements based on query parameters.\n *\n * @param {QueryParams} params - Query parameters for filtering the incident reason complements.\n * @returns {Observable<IncidentReasonComplementsOut>} An observable that emits the list of incident reason complements.\n */\n getIncidentReasonComplements (params: QueryParams): Observable<IncidentReasonComplementsOut> {\n return this.http.get<ApiSuccess<IncidentReasonComplementsOut>>(`${this.url}/incident-reason-complements`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Creates a new incident reason complement.\n *\n * @param {IncidentReasonIn} body - The data for the new incident reason complement.\n * @returns {Observable<IncidentReasonComplementOut>} An observable the created incident reason complement detail.\n */\n postIncidentReasonComplement (body: IncidentReasonComplementIn): Observable<IncidentReasonComplementOut> {\n return this.http.post<ApiSuccess<IncidentReasonComplementOut>>(`${this.url}/incident-reason-complements`,\n body\n ).pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing incident reason complement.\n *\n * @param {number} id - The identifier of the incident reason complement record to update.\n * @param {IncidentIn} body - The incident reason complement data to be updated.\n * @returns {Observable<IncidentReasonComplementOut>} An observable detail of the updated incident reason complement.\n */\n putIncidentReasonComplement (id: Number, body: IncidentReasonComplementIn): Observable<IncidentReasonComplementOut> {\n return this.http.put<ApiSuccess<IncidentReasonComplementOut>>(`${this.url}/incident-reason-complements/${id}`,\n body\n ).pipe(map(({ data }) => data))\n }\n\n /**\n * Delete an existing incident reason complement.\n *\n * @param {number} id - The unique identifier of the incident reason complement to be deleted.\n * @returns {Observable<IncidentReasonComplementOut>} An observable that emits the result of the delete incident reason complement.\n */\n deleteIncidentReasonComplement (id: Number): Observable<IncidentReasonComplementOut> {\n return this.http.delete<ApiSuccess<IncidentReasonComplementOut>>(`${this.url}/incident-reason-complements/${id}`)\n .pipe(map(({ data }) => data))\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { map, Observable } from 'rxjs'\nimport { Environment } from '../ngx-services.models'\nimport {\n CancelPaymentReceiptIn,\n CountryPaymentTypeFieldIn,\n CountryPaymentTypeFieldOut,\n CountryPaymentTypeFieldsOut,\n CountryPaymentTypeIn,\n CountryPaymentTypeOut,\n CountryPaymentTypesOut,\n CustomerDocumentTypesOut,\n CustomersOut,\n CustomerTypesOut,\n DocumentStatusesOut,\n GetDocumentsOut,\n OperationAccountPaymentIn,\n OperationAccountPaymentOut,\n OperationCancelBillingIn,\n OperationCancelBillingOut,\n OperationDocumentIn,\n OperationDocumentOut,\n OperationDocumentRequestsOut,\n OperationPrintDocumentOut,\n OperationPrintXmlOut,\n OperationShipmentExternalIn,\n OperationShipmentExternalOut,\n PaymentTypeFieldAccountIn,\n PaymentTypeFieldAccountOut,\n PaymentTypeFieldAccountsOut,\n PaymentTypeFieldCardTypeIn,\n PaymentTypeFieldCardTypeOut,\n PaymentTypeFieldCardTypesOut,\n PaymentTypesOut,\n PrintCollectionReceiptOut,\n ToleranceIn,\n ToleranceOut,\n TolerancesOut,\n} from './models/api-invoices.types'\nimport { ApiSuccess, QueryParams } from './models/api.models'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiInvoicesService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the API URL for invoices from the environments configuration.\n *\n * @return {string} The API URL for invoices.\n */\n get url (): string {\n return this.environments.apiInvoicesUrl ?? ''\n }\n\n /**\n * Sends an operation document to the server and processes the response.\n *\n * @param {OperationDocumentIn} body - The input data for the operation document.\n * @return {Observable<OperationDocumentOut>} An observable containing the processed operation document output.\n */\n postOperationDocument (body: OperationDocumentIn): Observable<OperationDocumentOut> {\n return this.http.post<ApiSuccess<OperationDocumentOut>>(`${this.url}/operation/document`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches and returns the collection receipt data for a given collection ID.\n *\n * @param {number} id - The unique identifier of the collection for which the receipt needs to be retrieved.\n * @return {Observable<PrintCollectionReceiptOut>} An observable containing the collection receipt data.\n */\n getPrintCollectionReceipt (id: number): Observable<PrintCollectionReceiptOut> {\n return this.http.get<ApiSuccess<PrintCollectionReceiptOut>>(`${this.url}/operation/print/collection-receipt/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Handles the account payment operation by sending a POST request to the specified endpoint.\n * Processes the response and returns the operation data.\n *\n * @param {OperationAccountPaymentIn} body The payload containing information for the account payment operation.\n * @return {Observable<OperationAccountPaymentOut>} An observable emitting the processed account payment operation data.\n */\n postOperationAccountPayment (body: OperationAccountPaymentIn): Observable<OperationAccountPaymentOut> {\n return this.http.post<ApiSuccess<OperationAccountPaymentOut>>(`${this.url}/operation/account-payment`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Cancels a payment receipt based on the provided input.\n * This method sends a POST request to cancel a document.\n *\n * @param body The data required to cancel the payment receipt, encapsulated in a CancelPaymentReceiptIn object.\n * @return An Observable representing the result of the cancellation. Emits an empty object on success.\n */\n postOperationCancelDocument (body: CancelPaymentReceiptIn): Observable<{}> {\n return this.http.post<ApiSuccess<{}>>(`${this.url}/operation/cancel-document`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to cancel billing for a specific operation.\n *\n * @param {Object} params - The parameters for the cancellation request.\n * @param {string} params.invoiceId - The ID of the invoice to be canceled.\n * @param {Object} params.body - Additional data to be sent in the request body.\n * @return {Observable<OperationCancelBillingOut>} An observable emitting the result of the cancellation operation.\n */\n postOperationCancelBilling ({ invoiceId, ...body }: OperationCancelBillingIn): Observable<OperationCancelBillingOut> {\n return this.http.post<ApiSuccess<OperationCancelBillingOut>>(`${this.url}/operation/cancel-billing/${invoiceId}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches a list of customer types from the server.\n *\n * @param {QueryParams} params - Query parameters to filter or customize the request.\n * @return {Observable<CustomerTypesOut>} An observable emitting the customer types fetched from the server.\n */\n getCustomerTypes (params: QueryParams): Observable<CustomerTypesOut> {\n return this.http.get<ApiSuccess<CustomerTypesOut>>(`${this.url}/customer-types`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves document types specific to a given country.\n *\n * @param {QueryParams} params - The query parameters containing country-specific information.\n * @return {Observable<CustomerDocumentTypesOut>} An observable emitting the document types available for the specified country.\n */\n getCustomerDocumentTypes (params: QueryParams): Observable<CustomerDocumentTypesOut> {\n return this.http.get<ApiSuccess<CustomerDocumentTypesOut>>(`${this.url}/customer-country-document-types`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches customer invoice details filtered by a custom invoice type.\n *\n * @param {InvoiceTypeCustomParamsIn} params - An object containing the filter parameters for the custom invoice type.\n * @return {Observable<CustomersOut>} An observable containing customer invoice details of the specified type.\n */\n getCustomers (params: QueryParams): Observable<CustomersOut> {\n return this.http.get<ApiSuccess<CustomersOut>>(`${this.url}/customers`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create or update an external shipment operation.\n *\n * @param {OperationShipmentExternalIn} params - The input parameters for the external shipment operation.\n * @return {Observable<OperationShipmentExternalOut>} An observable that emits the result of the external shipment operation.\n */\n postOperationShipmentExternal (params: OperationShipmentExternalIn): Observable<OperationShipmentExternalOut> {\n return this.http.post<ApiSuccess<OperationShipmentExternalOut>>(`${this.url}/operation/shipment/external`, params)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Processes an external payment operation for a shipment.\n *\n * @param {OperationShipmentExternalIn} params - The input parameters required for the external payment operation.\n * @return {Observable<OperationShipmentExternalOut>} An observable that emits the result of the external payment operation for a shipment.\n */\n postOperationShipmentExternalPayment (params: OperationShipmentExternalIn): Observable<OperationShipmentExternalOut> {\n return this.http.post<ApiSuccess<OperationShipmentExternalOut>>(`${this.url}/operation/shipment/external/payment`, params)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves and returns billing operation print details for a given document ID.\n *\n * @param {number} documentId - The ID of the document for which to fetch the print billing operation details.\n * @return {Observable<OperationPrintDocumentOut>} An observable emitting the print billing operation details for the specified document.\n */\n getOperationPrintDocument (documentId: number): Observable<OperationPrintDocumentOut> {\n return this.http.get<ApiSuccess<OperationPrintDocumentOut>>(`${this.url}/operation/print/document/${documentId}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches all country payment types.\n *\n * @param {QueryParams} params - Query parameters to filter or customize the request.\n * @return {Observable<CountryPaymentTypesOut>} An observable emitting the country payment types fetched from the server.\n */\n getCountryPaymentTypes (params: QueryParams): Observable<CountryPaymentTypesOut> {\n return this.http.get<ApiSuccess<CountryPaymentTypesOut>>(`${this.url}/country-payment-types`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing country payment type.\n *\n * @param {number} id - The ID of the country payment type to update.\n * @param {CountryPaymentTypeIn} body - The updated data for the country payment type.\n * @returns {Observable<CountryPaymentTypeOut>} An observable that emits the result of the update operation.\n */\n putCountryPaymentType (id: number, body: CountryPaymentTypeIn): Observable<CountryPaymentTypeOut> {\n return this.http.put<ApiSuccess<CountryPaymentTypeOut>>(`${this.url}/country-payment-types/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Delete an existing country payment type.\n *\n * @param {number} id - The unique identifier of the country payment type to be deleted.\n * @returns {Observable<CountryPaymentTypeOut>} An observable that emits the result of the delete operation.\n */\n deleteCountryPaymentType (id: number): Observable<CountryPaymentTypeOut> {\n return this.http.delete<ApiSuccess<CountryPaymentTypeOut>>(`${this.url}/country-payment-types/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Create a new country payment type resource.\n *\n * @param {CountryPaymentTypeIn} body - The input parameters required for create a new country payment type.\n * @return {Observable<CountryPaymentTypeOut>} An observable that emits the result of create operation.\n */\n postCountryPaymentType (body: CountryPaymentTypeIn): Observable<CountryPaymentTypeOut> {\n return this.http.post<ApiSuccess<CountryPaymentTypeOut>>(`${this.url}/country-payment-types`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves and returns a country payment type for a given ID.\n *\n * @param {number} id - The ID of the country payment type.\n * @return {Observable<CountryPaymentTypeOut>} An observable that emits the result of show operation.\n */\n getCountryPaymentType (id: number): Observable<CountryPaymentTypeOut> {\n return this.http.get<ApiSuccess<CountryPaymentTypeOut>>(`${this.url}/country-payment-types/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches all country payment type fields.\n *\n * @param {QueryParams} params - Query parameters to filter or customize the request.\n * @return {Observable<CountryPaymentTypeFieldsOut>} An observable emitting the country payment type fields fetched from the server.\n */\n getCountryPaymentTypeFields (params: QueryParams): Observable<CountryPaymentTypeFieldsOut> {\n return this.http.get<ApiSuccess<CountryPaymentTypeFieldsOut>>(`${this.url}/country-payment-type-fields`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Create a new country payment type field resource.\n *\n * @param {CountryPaymentTypeFieldIn} body - The input parameters required for create a new country payment type field.\n * @return {Observable<CountryPaymentTypeFieldOut>} An observable that emits the result of create operation.\n */\n postCountryPaymentTypeField (body: CountryPaymentTypeFieldIn): Observable<CountryPaymentTypeFieldOut> {\n return this.http.post<ApiSuccess<CountryPaymentTypeFieldOut>>(`${this.url}/country-payment-type-fields`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing country payment type field.\n *\n * @param {number} id - The ID of the country payment type field to update.\n * @param {CountryPaymentTypeFieldIn} body - The updated data for the country payment type field.\n * @returns {Observable<CountryPaymentTypeFieldOut>} An observable that emits the result of the update operation.\n */\n putCountryPaymentTypeField (id: number, body: CountryPaymentTypeFieldIn): Observable<CountryPaymentTypeFieldOut> {\n return this.http.put<ApiSuccess<CountryPaymentTypeFieldOut>>(`${this.url}/country-payment-type-fields/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches all payment types.\n *\n * @param {QueryParams} params - Query parameters to filter or customize the request.\n * @return {Observable<PaymentTypesOut>} An observable emitting the payment types fetched from the server.\n */\n getPaymentTypes (params: QueryParams): Observable<PaymentTypesOut> {\n return this.http.get<ApiSuccess<PaymentTypesOut>>(`${this.url}/payment-types`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches all payment type fields card.\n *\n * @param {QueryParams} params - Query parameters to filter or customize the request.\n * @return {Observable<PaymentTypeFieldCardTypesOut>} An observable emitting the payment type fields card fetched from the server.\n */\n getPaymentTypeFieldCardTypes (params: QueryParams): Observable<PaymentTypeFieldCardTypesOut> {\n return this.http.get<ApiSuccess<PaymentTypeFieldCardTypesOut>>(`${this.url}/payment-type-field-card-types`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Create a new payment type field card resource.\n *\n * @param {PaymentTypeFieldCardTypeIn} body - The input parameters required for create a new payment type field card.\n * @return {Observable<PaymentTypeFieldCardTypeOut>} An observable that emits the result of create operation.\n */\n postCountryPaymentTypeFieldCardType (body: PaymentTypeFieldCardTypeIn): Observable<PaymentTypeFieldCardTypeOut> {\n return this.http.post<ApiSuccess<PaymentTypeFieldCardTypeOut>>(`${this.url}/payment-type-field-card-types`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing payment type field card.\n *\n * @param {number} id - The ID of the payment type field card to update.\n * @param {PaymentTypeFieldCardTypeIn} body - The updated data for the payment type field card.\n * @returns {Observable<PaymentTypeFieldCardTypeOut>} An observable that emits the result of the update operation.\n */\n putCountryPaymentTypeFieldCardType (id: number, body: PaymentTypeFieldCardTypeIn): Observable<PaymentTypeFieldCardTypeOut> {\n return this.http.put<ApiSuccess<PaymentTypeFieldCardTypeOut>>(`${this.url}/payment-type-field-card-types/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches all payment type fields accounts.\n *\n * @param {QueryParams} params - Query parameters to filter or customize the request.\n * @return {Observable<PaymentTypeFieldAccountsOut>} An observable emitting the payment type fields accounts fetched from the server.\n */\n getPaymentTypeFieldAccounts (params: QueryParams): Observable<PaymentTypeFieldAccountsOut> {\n return this.http.get<ApiSuccess<PaymentTypeFieldAccountsOut>>(`${this.url}/payment-type-field-accounts`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Create a new payment type field account resource.\n *\n * @param {PaymentTypeFieldAccountIn} body - The input parameters required for create a new payment type field account.\n * @return {Observable<PaymentTypeFieldAccountOut>} An observable that emits the result of create operation.\n */\n postCountryPaymentTypeFieldAccount (body: PaymentTypeFieldAccountIn): Observable<PaymentTypeFieldAccountOut> {\n return this.http.post<ApiSuccess<PaymentTypeFieldAccountOut>>(`${this.url}/payment-type-field-accounts`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing payment type field account.\n *\n * @param {number} id - The ID of the payment type field account to update.\n * @param {PaymentTypeFieldAccountIn} body - The updated data for the payment type field account.\n * @returns {Observable<PaymentTypeFieldAccountOut>} An observable that emits the result of the update operation.\n */\n putCountryPaymentTypeFieldAccount (id: number, body: PaymentTypeFieldAccountIn): Observable<PaymentTypeFieldAccountOut> {\n return this.http.put<ApiSuccess<PaymentTypeFieldAccountOut>>(`${this.url}/payment-type-field-accounts/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches tolerance data from the server based on the provided query parameters.\n *\n * @param {QueryParams} params - The parameters to use for querying tolerances.\n * @return {Observable<TolerancesOut>} An observable emitting the tolerance data.\n */\n getTolerances (params: QueryParams): Observable<TolerancesOut> {\n return this.http.get<ApiSuccess<TolerancesOut>>(`${this.url}/tolerances`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the tolerance detail for a given identifier.\n *\n * @param {number} id - The unique identifier for the tolerance to retrieve.\n * @return {Observable<ToleranceOut>} An observable containing the tolerance data.\n */\n getTolerance (id: number): Observable<ToleranceOut> {\n return this.http.get<ApiSuccess<ToleranceOut>>(`${this.url}/tolerances/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a request to update or create a tolerance record using the provided data.\n *\n * @param {ToleranceIn} body - The tolerance input object containing the data to be sent in the request.\n * @return {Observable<ToleranceOut>} An observable that emits the updated or created tolerance output object.\n */\n postTolerance (body: ToleranceIn): Observable<ToleranceOut> {\n return this.http.post<ApiSuccess<ToleranceOut>>(`${this.url}/tolerances`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the tolerance with the specified ID using the provided data.\n *\n * @param {number} id - The unique identifier of the tolerance to update.\n * @param {ToleranceIn} body - The data to update the tolerance with.\n * @return {Observable<ToleranceOut>} An observable containing the updated tolerance information.\n */\n putTolerance (id: number, body: ToleranceIn): Observable<ToleranceOut> {\n return this.http.put<ApiSuccess<ToleranceOut>>(`${this.url}/tolerances/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes the tolerance entry corresponding to the given ID.\n *\n * @param {number} id - The unique identifier of the tolerance to be deleted.\n * @return {Observable<{}>} An Observable that emits the result of the delete operation.\n */\n deleteTolerance (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/tolerances/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the document requests associated with a document ID.\n *\n * @param id - The unique identifier for the document.\n * @returns An observable that emits the document requests data.\n */\n getOperationDocumentRequests (id: number): Observable<OperationDocumentRequestsOut> {\n return this.http.get<ApiSuccess<OperationDocumentRequestsOut>>(`${this.url}/operation/document/requests/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of documents based on the provided query parameters.\n *\n * @param params - The query parameters to filter and paginate the documents\n * @returns An Observable that emits the documents data when the HTTP request completes\n */\n getDocuments (params: QueryParams): Observable<GetDocumentsOut> {\n return this.http.get<ApiSuccess<GetDocumentsOut>>(`${this.url}/documents`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches document status values from the API.\n *\n * Sends an HTTP GET request to the service's `/document-status` endpoint using the supplied query parameters\n * and returns the decoded `data` payload from the API success envelope.\n *\n * @param params - Query parameters to apply to the request (e.g. filtering, pagination, search).\n * @returns An Observable that emits a DocumentStatusesOut object containing the document status data.\n */\n getDocumentStatuses (params: QueryParams): Observable<DocumentStatusesOut> {\n return this.http.get<ApiSuccess<DocumentStatusesOut>>(`${this.url}/document-status`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the XML print representation for a given operation (invoice).\n *\n * Sends an HTTP GET request to the backend endpoint `/operation/print/xml/{documentId}` and\n * unwraps the `data` field from the API success response before emitting it.\n *\n * @param documentId - The numeric identifier of the document to fetch.\n * @returns An Observable that emits the OperationPrintXmlOut payload on success and completes.\n * The Observable will error if the HTTP request fails or the response does not contain the expected data.\n */\n getOperationPrintXml (documentId: number): Observable<OperationPrintXmlOut> {\n return this.http.get<ApiSuccess<OperationPrintXmlOut>>(`${this.url}/operation/print/xml/${documentId}`)\n .pipe(map(({ data }) => data))\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport {\n NotificationConfigurationIn,\n NotificationConfigurationOut,\n NotificationIn,\n NotificationOut,\n NotificationsOut,\n NotificationsTypeOut\n} from './models/api-notifications.types'\nimport { map, Observable } from 'rxjs'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiNotificationsService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the notifications API from the environment settings.\n * If the URL is not defined, an empty string is returned.\n *\n * @return {string} The API Notifications URL or an empty string if not defined.\n */\n get url (): string {\n return this.environments.apiNotificationsUrl ?? ''\n }\n\n /**\n * Retrieves notifications based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter and retrieve notifications.\n * @return {Observable<NotificationsOut>} An observable that emits the fetched notifications.\n */\n getNotifications (params: QueryParams): Observable<NotificationsOut> {\n return this.http.get<ApiSuccess<NotificationsOut>>(`${this.url}/notifications`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a notification request to the server using the provided body.\n *\n * @param {NotificationIn} body - The notification data to be sent in the request body.\n * @return {Observable<NotificationOut>} An observable emitting the response containing the notification output data.\n */\n postNotification (body: NotificationIn): Observable<NotificationOut> {\n return this.http.post<ApiSuccess<NotificationOut>>(`${this.url}/notifications`, { body })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a PUT request to update a notification with the provided ID and body.\n *\n * @param {number} id - The unique identifier of the notification to be updated.\n * @param {NotificationIn} body - The data to update the notification with.\n * @return {Observable<NotificationOut>} An observable containing the updated notification data.\n */\n putNotification (id: number, body: NotificationIn): Observable<NotificationOut> {\n return this.http.put<ApiSuccess<NotificationOut>>(`${this.url}/notifications/${id}`, { body })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes a notification by its unique identifier.\n *\n * @param {number} id - The unique identifier of the notification to delete.\n * @return {Observable<{}>} An observable that emits the response after deleting the notification.\n */\n deleteNotification (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/notifications/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Marks the notification as finished for the specified notification ID.\n *\n * @param {number} id - The unique identifier of the notification to be marked as finished.\n * @return {Observable<NotificationOut>} An Observable emitting the updated notification object.\n */\n putNotificationFinish (id: number): Observable<NotificationOut> {\n return this.http.put<ApiSuccess<NotificationOut>>(`${this.url}/notifications/finish/${id}`, {})\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to create or update notification configurations.\n *\n * @param {NotificationConfigurationIn} body - The notification configuration payload to be sent in the request.\n * @return {Observable<NotificationConfigurationOut>} An observable emitting the response containing the created or updated notification configuration.\n */\n postNotificationConfigurations (body: NotificationConfigurationIn): Observable<NotificationConfigurationOut> {\n return this.http.post<ApiSuccess<NotificationConfigurationOut>>(`${this.url}/notification-configurations`, { body })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the notification types based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters for fetching the notification types.\n * @return {Observable<NotificationsTypeOut>} An observable that emits the fetched notification types.\n */\n getNotificationsType (params: QueryParams): Observable<NotificationsTypeOut> {\n return this.http.get<ApiSuccess<NotificationsTypeOut>>(`${this.url}/notifications-type`, { params })\n .pipe(map(({ data }) => data))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { HttpClient } from '@angular/common/http'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport { OpenItemsOut, OtherInvoiceOut, PaymentOut } from './models/api-open-items.types'\nimport { map, Observable } from 'rxjs'\nimport { OtherInvoiceIn, PaymentOpenItemIn } from './models/api-open-items.interfaces'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiOpenItemsService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) {}\n\n /**\n * Retrieves the API URL for open-items from the environments' configuration.\n *\n * @return {string} The API URL for open-items.\n */\n get url (): string {\n return this.environments.apiOpenItemsUrl ?? ''\n }\n\n /**\n * Retrieves a list of open-items based on the provided query parameters.\n *\n * @param {QueryParams} params - The parameters to use for querying open-items.\n * @return {Observable<OpenItemsOut>} An observable that emits the open-item's data.\n */\n getOpenItems (params: QueryParams): Observable<OpenItemsOut> {\n return this.http.get<ApiSuccess<OpenItemsOut>>(`${this.url}/open-items`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Processes a payment for an open item.\n *\n * @param {PaymentOpenItemIn} body - The payment details for the open item.\n * @return {Observable<PaymentOut>} An observable that emits the result of the payment processing.\n */\n postPayment (body: PaymentOpenItemIn): Observable<PaymentOut> {\n return this.http.post<ApiSuccess<PaymentOut>>(`${this.url}/payment`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Processes a payment for other invoice.\n *\n * @param {OtherInvoiceIn} body - The payment details for the other invoice.\n * @return {Observable<OtherInvoiceOut>} An observable that emits the result of the payment processing.\n */\n postOtherInvoice (body: OtherInvoiceIn): Observable<OtherInvoiceOut> {\n return this.http.post<ApiSuccess<OtherInvoiceOut>>(`${this.url}/other-invoices`, body)\n .pipe(map(({ data }) => data))\n }\n}\n","import { HttpClient, HttpResponse } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { map, Observable } from 'rxjs'\nimport { Environment } from '../ngx-services.models'\nimport {\n CollectionPaymentsOut, ExternalShipmentsOut,\n FileCheckOut, InvoicesOut, PartialWithdrawalsOut,\n PromotionCodeDiscountsOut,\n ShipmentsReportOut\n} from './models/api-reports.types'\nimport { ApiSuccess, QueryParams } from './models/api.models'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiReportsService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the reports API from the environment configurations.\n *\n * @return {string} The URL of the reports API.\n */\n get url (): string {\n return this.environments.apiReportsUrl ?? ''\n }\n\n /**\n * Retrieves the list of collection payments\n *\n * @param {QueryParams} params - The query parameters used to fetch the collection payments.\n * @return {Observable<CollectionPaymentsOut[]>} An observable that emits an array of collection payment.\n */\n getCollectionPayments (params: QueryParams): Observable<CollectionPaymentsOut> {\n return this.http.get<ApiSuccess<CollectionPaymentsOut>>(`${this.url}/collection-payment`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches shipment reports based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters used to filter or define the shipment reports.\n * @return {Observable<ShipmentsReportOut>} An observable emitting the shipment report data.\n */\n getShipmentsReport (params: QueryParams): Observable<ShipmentsReportOut> {\n return this.http.get<ApiSuccess<ShipmentsReportOut>>(`${this.url}/shipments-report`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a report of external shipments based on the provided query parameters.\n *\n * @param {QueryParams} params - An object representing the query parameters for filtering the external shipments report.\n * @return {Observable<ExternalShipmentsOut>} An observable that emits the external shipments report data.\n */\n getExternalShipmentsReport (params: QueryParams): Observable<ExternalShipmentsOut> {\n return this.http.get<ApiSuccess<ExternalShipmentsOut>>(`${this.url}/external-shipments-report`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a report of promotion code discounts based on the provided query parameters.\n *\n * @param {QueryParams} params - An object representing the query parameters for filtering the promotion code discounts report.\n * @return {Observable<PromotionCodeDiscountsOut>} An observable that emits the promotion code discounts report data.\n */\n getPromotionCodeDiscounts (params: QueryParams): Observable<PromotionCodeDiscountsOut> {\n return this.http.get<ApiSuccess<PromotionCodeDiscountsOut>>(`${this.url}/promotion-code-discounts`, {\n params\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the downloadable resource associated with the given transaction ID.\n *\n * @param {string} transactionId - The unique identifier of the transaction whose download is requested.\n * @return {Observable<HttpResponse<ArrayBuffer>>} An observable that emits the HTTP response containing the resource in the form of an ArrayBuffer.\n */\n getDownload (transactionId: string): Observable<HttpResponse<ArrayBuffer>> {\n return this.http.get(`${this.url}/download/${transactionId}`, {\n observe: 'response',\n responseType: 'arraybuffer'\n })\n }\n\n /**\n * Retrieves file check information for the specified transaction ID.\n *\n * @param {string} transactionId - The ID of the transaction for which the file check information is to be retrieved.\n * @return {Observable<FileCheckOut>} An observable that emits the file check information associated with the given transaction ID.\n */\n getFileCheck (transactionId: string): Observable<FileCheckOut> {\n return this.http.get<ApiSuccess<FileCheckOut>>(`${this.url}/file-check/${transactionId}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes the file check associated with the provided transaction ID.\n *\n * @param {string} transactionId - The unique identifier of the transaction whose file check is to be deleted.\n * @return {Observable<{}>} An observable emitting the response data after the deletion is processed.\n */\n deleteFileCheck (transactionId: string): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/file-check/${transactionId}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves partial withdrawals based on the provided query parameters.\n *\n * @param {QueryParams} params - The parameters used to filter the list of partial withdrawals.\n * @returns {Observable<PartialWithdrawalsOut>} An observable that emits the filtered list of partial withdrawals.\n */\n getPartialWithdrawals (params: QueryParams): Observable<PartialWithdrawalsOut> {\n return this.http.get<ApiSuccess<PartialWithdrawalsOut>>(`${this.url}/partial-withdrawals`, {\n params\n })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of invoices based on the provided query parameters.\n *\n * @param params - The query parameters used to filter the invoices.\n * @returns An observable that emits the list of invoices.\n */\n getInvoices (params: QueryParams): Observable<InvoicesOut> {\n return this.http.get<ApiSuccess<InvoicesOut>>(`${this.url}/invoices`, { params })\n .pipe(map(({ data }) => data))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport {\n AuthLoginIn,\n AuthLoginOut,\n AuthMeOut,\n AuthUserLoginIn,\n ChangeLanguageIn,\n GetUserOut,\n GetUsersOut,\n ModulesOut,\n PutUsersIn,\n PutUsersOut,\n RoleIn,\n RoleOut,\n RolesOut,\n RoleTypesOut,\n SessionIn,\n SessionOut\n} from './models/api-security.types'\nimport { HttpClient, HttpHeaders } from '@angular/common/http'\nimport { Environment } from '../ngx-services.models'\nimport { map, Observable, tap } from 'rxjs'\nimport { CookieService } from 'ngx-cookie-service'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiSecurityService {\n constructor (\n @Inject('env') private environments: Environment,\n private cookie: CookieService,\n private http: HttpClient\n ) {}\n\n /**\n * Retrieves the API security URL from the environments configuration.\n *\n * @return {string} The API security URL.\n */\n get url (): string {\n return this.environments.apiSecurityUrl ?? ''\n }\n\n /**\n * Handles the login authentication request by sending the login data to the authentication endpoint.\n *\n * @param {AuthLoginIn} body The payload containing login credentials.\n * @return {Observable<AuthLoginOut>} An observable emitting the authentication response data.\n */\n postAuthLogin (body: AuthLoginIn): Observable<AuthLoginOut> {\n return this.http.post<ApiSuccess<AuthLoginOut>>(`${this.url}/auth/login`, body)\n .pipe(\n map(({ data }) => data),\n tap(({ access_token }) => this.cookie.set(this.environments.authCookie, access_token, { path: '/' }))\n )\n }\n\n /**\n * Handles the user login process by sending user credentials to the authentication endpoint.\n *\n * @param {AuthUserLoginIn} body - The request payload containing user login details such as username and password.\n * @return {Observable<AuthLoginOut>} An observable that emits the authenticated user's login data upon successful login.\n */\n postAuthUserLogin (body: AuthUserLoginIn): Observable<AuthLoginOut> {\n return this.http.post<ApiSuccess<AuthLoginOut>>(`${this.url}/auth/user-login`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Logs out the current user by making a POST request to the logout endpoint.\n *\n * This method deletes all cookies after a successful logout.\n *\n * @return {Observable<{}>} An observable that emits the server's response to the logout request.\n */\n postAuthLogout (): Observable<{}> {\n return this.http.post<ApiSuccess<{}>>(`${this.url}/auth/logout`, null)\n .pipe(\n map(({ data }) => data),\n tap(() => this.cookie.delete(this.environments.authCookie, '/'))\n )\n }\n\n /**\n * Creates a new session for a specified model.\n *\n * @param {Object} params - The parameters for creating the session.\n * @param {string} params.modelType - The type of the model.\n * @param {string} params.modelId - The ID of the model.\n * @param {string} [params.token] - Optional authorization token.\n *\n * @return {Observable<SessionOut>} An observable containing the created session details.\n */\n postSession ({\n modelType,\n modelId,\n token,\n }: SessionIn): Observable<SessionOut> {\n let headers = new HttpHeaders({})\n\n if (token) { headers = headers.set('Authorization', `Bearer ${token}`) }\n\n return this.http.post<ApiSuccess<SessionOut>>(\n `${this.url}/sessions`, {\n model_type: modelType,\n model_id: modelId,\n }, {\n headers\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the authenticated user's information.\n * Sends a GET request to the endpoint '/auth/me' to retrieve information\n * about the currently authenticated user.\n *\n * @return {Observable<AuthMeOut>} An observable that emits the authenticated user's data.\n */\n getAuthMe (): Observable<AuthMeOut> {\n return this.http.get<ApiSuccess<AuthMeOut>>(`${this.url}/auth/me`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the authenticated user's details from the server.\n *\n * @param token The JWT token used for authorization.\n * @return An Observable that emits the user's details encapsulated in a MeOut object.\n */\n getOtherMe (token: string): Observable<AuthMeOut> {\n return this.http.get<ApiSuccess<AuthMeOut>>(`${this.url}/auth/me`, {\n headers: {\n Authorization: `Bearer ${token}`\n }\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches a user by their unique ID.\n *\n * @param {number} id - The unique identifier of the user to be fetched.\n * @return {Observable<GetUserOut>} An observable containing the user information.\n */\n getUser (id: number): Observable<GetUserOut> {\n return this.http.get<ApiSuccess<GetUserOut>>(`${this.url}/users/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches a list of users from the server based on the specified query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the list of users.\n * @return {Observable<GetUsersOut>} An observable that emits the list of users retrieved from the server.\n */\n getUsers (params: QueryParams): Observable<GetUsersOut> {\n return this.http.get<ApiSuccess<GetUsersOut>>(`${this.url}/users`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the information of a specified user on the server.\n *\n * @param {Object} params - The parameter object.\n * @param {Object} params.user - The user object containing updated data.\n * @param {string} params.user.id - The unique identifier of the user to be updated.\n *\n * @return {void} This method does not return a value.\n */\n putUsers ({ user }: PutUsersIn) {\n return this.http.put<ApiSuccess<PutUsersOut>>(`${this.url}/users/${user.id}`, user)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Changes the language for the authenticated user.\n *\n * @param {Object} params - The input parameters for changing the language.\n * @param {string} params.languageId - The ID of the new language to be set.\n * @return {Observable<ApiSuccess<AuthMeOut>>} An observable that emits the result of the language change request.\n */\n putChangeLanguage ({\n languageId\n }: ChangeLanguageIn): Observable<AuthMeOut> {\n return this.http.put<ApiSuccess<AuthMeOut>>(`${this.url}/auth/me`, {\n language_id: languageId\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of roles with their permissions.\n *\n * @param {QueryParams} params - The query parameters to filter the roles.\n * @returns {Observable<RoleIn[]>} An observable that emits an array of role permissions.\n */\n getRoles (params: QueryParams): Observable<RolesOut> {\n return this.http.get<ApiSuccess<RolesOut>>(`${this.url}/roles`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves roles by the specified ID.\n *\n * @param id - The ID of the role to retrieve.\n * @returns An Observable that emits the role data.\n */\n getRole (id: number): Observable<RoleOut> {\n return this.http.get<ApiSuccess<RoleOut>>(`${this.url}/roles/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Creates a new role with the specified permissions.\n *\n * @param {RoleIn} body - The permissions and details for the new role.\n * @returns {Observable<RoleOut>} An observable containing the created role's permissions.\n */\n postRole (body: RoleIn): Observable<RoleOut> {\n return this.http.post<ApiSuccess<RoleOut>>(`${this.url}/roles`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates the permissions of a specific role.\n *\n * @param id - The unique identifier of the role to update.\n * @param body - The new permissions to assign to the role.\n * @returns An Observable that emits the updated module permissions.\n */\n putRole (id: number, body: RoleIn): Observable<RoleOut> {\n return this.http.put<ApiSuccess<RoleOut>>(`${this.url}/roles/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Deletes the permissions associated with a specific role.\n *\n * @param {number} id - The unique identifier of the role whose permissions are to be deleted.\n * @returns {Observable<{}>} An observable that emits the result of the delete operation.\n */\n deleteRole (id: number): Observable<{}> {\n return this.http.delete<ApiSuccess<{}>>(`${this.url}/roles/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the role types from the API.\n *\n * @param {QueryParams} params - The query parameters to be sent with the request.\n * @returns {Observable<RoleTypesOut>} An observable containing the role types output.\n */\n getRoleTypes (params: QueryParams): Observable<RoleTypesOut> {\n return this.http.get<ApiSuccess<RoleTypesOut>>(`${this.url}/role-types`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of modules and permissions\n *\n * @param queryParams - The query parameters to filter the modules.\n * @returns Observable<ModulesOut[]> - An observable that emits an array of modules and permissions.\n */\n getModules (queryParams: QueryParams): Observable<ModulesOut> {\n return this.http.get<ApiSuccess<ModulesOut>>(`${this.url}/modules`, {\n params: queryParams\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves a list of modules and permissions\n *\n * @param params.token - Custom token for authorization.\n * @param params.queryParams - The query parameters to filter the modules.\n * @returns Observable<ModulesOut[]> - An observable that emits an array of modules and permissions.\n */\n getModulesByToken (params: {\n token: string,\n queryParams: QueryParams\n }): Observable<ModulesOut> {\n return this.http.get<ApiSuccess<ModulesOut>>(`${this.url}/modules`, {\n params: params.queryParams,\n headers: {\n Authorization: `Bearer ${params.token}`\n }\n }).pipe(map(({ data }) => data))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { HttpClient } from '@angular/common/http'\nimport { ApiSuccess } from './models/api.models'\nimport { map, Observable } from 'rxjs'\nimport {\n ValidateFacilityIn,\n ValidateFacilityOut,\n ServiceAreasOut,\n EmailErrorIn,\n PromotionIn,\n PromotionOut,\n ValidateNIPOut,\n ValidateNIPIn,\n ValidateIdentificationBROut,\n ValidateIdentificationBRIn, ServiceAreaIn, PostalLocationsOut, GetPostalLocationsIn\n} from './models/api-services.types'\nimport { ModulesOut } from './models/api-security.types'\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class ApiServicesService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) {}\n\n /**\n * Retrieves the URL for the services API from the environment settings.\n * If the URL is not defined, an empty string is returned.\n *\n * @return {string} The API Services URL or an empty string if not defined.\n */\n get url (): string {\n return this.environments.apiServicesUrl ?? ''\n }\n\n /**\n * Retrieves service areas based on the provided query parameters.\n *\n * @param {ServiceAreaIn} body - The query parameters used to filter and retrieve service areas.\n * @return {Observable<NotificationsOut>} An observable that emits the fetched service areas.\n */\n postServiceAreas (body: ServiceAreaIn): Observable<ServiceAreasOut> {\n return this.http.post<ApiSuccess<ServiceAreasOut>>(`${this.url}/service-areas`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Validate facility values based on the provided parameter.\n *\n * @param {ValidateFacilityIn} body - The facility data to be sent in the request body\n * @return {Observable<ValidateFacilityOut>} An observable emitting the response containing the facility validated output data.\n */\n postValidateFacility (body: ValidateFacilityIn): Observable<ValidateFacilityOut> {\n return this.http.post<ApiSuccess<ValidateFacilityOut>>(`${this.url}/facilities`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Create an email resource.\n *\n * @param {EmailErrorIn} body - The email data to be sent in the request body\n * @return {Observable<{}>} An observable emitting the response data.\n */\n postEmailError (body: EmailErrorIn): Observable<{}> {\n return this.http.post<ApiSuccess<{}>>(`${this.url}/emails/error`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a promotion request to the server using the provided body.\n *\n * @param {PromotionIn} body - The promotion data to be sent in the request body.\n * @return {Observable<PromotionOut>} An observable emitting the response containing the promotion output data.\n */\n postPromotion (body: PromotionIn): Observable<PromotionOut> {\n return this.http.post<ApiSuccess<PromotionOut>>(`${this.url}/promotions`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Validate NIP account value based on the provided parameter.\n *\n * @param {ValidateNIPIn} body - The NIP account data to be sent in the request body\n * @return {Observable<ValidateNIPOut>} An observable emitting the response containing the NIP account validated data.\n */\n postValidateNIP (body: ValidateNIPIn): Observable<ValidateNIPOut> {\n return this.http.post<ApiSuccess<ValidateNIPOut>>(`${this.url}/accounts/nip`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Validate BR Identification value based on the provided parameter.\n *\n * @param {ValidateIdentificationBRIn} body - The BR Identification data to be sent in the request body\n * @return {Observable<ValidateIdentificationBROut>} An observable emitting the response containing the BR Identification validated data.\n */\n postValidateIdentificationBR (body: ValidateIdentificationBRIn): Observable<ValidateIdentificationBROut> {\n return this.http.post<ApiSuccess<ValidateIdentificationBROut>>(`${this.url}/identifications/br-validation`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches postal location details based on the provided query parameters.\n * @param {GetPostalLocationsIn} queryParams - The query parameters to filter and fetch postal location data.\n * @return {Observable<PostalLocationsOut>} An observable that emits the postal location details.\n */\n getPostalLocations (queryParams: GetPostalLocationsIn): Observable<PostalLocationsOut> {\n return this.http.get<ApiSuccess<PostalLocationsOut>>(`${this.url}/postal-locations`, {\n params: queryParams\n }).pipe(map(({ data }) => data))\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { map, Observable } from 'rxjs'\nimport { Environment } from '../ngx-services.models'\nimport {\n ExportTypesOut,\n ManifestMultipleIn,\n ManifestMultipleOut,\n ShipmentCancellationIn,\n ShipmentCancellationOut,\n ShipmentEmployeeCustomer,\n ValidateAccountIn,\n ValidateAccountOut\n} from './models/api-shipments.types'\nimport { ApiSuccess, QueryParams } from './models/api.models'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiShipmentsService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the shipments API from the environment configurations.\n *\n * @return {string} The URL of the shipments API.\n */\n get url (): string {\n return this.environments.apiShipmentUrl ?? ''\n }\n\n /**\n * Retrieves the parameter values based on the provided parameter names.\n *\n * @param {ValidateAccountIn} body - An object of parameter names for which the values need to be fetched.\n * @return {Observable<ValidateAccountIn>} An observable that emits the fetched parameter values\n * @param body\n */\n postValidateAccount (body: ValidateAccountIn): Observable<ValidateAccountOut> {\n return this.http.post<ApiSuccess<ValidateAccountOut>>(`${this.url}/accounts`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a POST request to the shipments manifest endpoint with the provided body.\n *\n * @param body - The request payload of type `ManifestMultipleIn`.\n * @returns An observable that emits the response data of type `ManifestMultipleOut`.\n */\n postManifestMultiple (body: ManifestMultipleIn) {\n return this.http.post<ApiSuccess<ManifestMultipleOut>>(`${this.url}/shipments/manifest`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Validates and obtains the number of shipments allowed by an employee customer\n *\n * @return {Observable<ShipmentEmployeeCustomer>} An observable containing the shipments allowed by an employee\n * @param id\n */\n getEmployeeCustomer (id: number): Observable<ShipmentEmployeeCustomer> {\n return this.http.get<ApiSuccess<ShipmentEmployeeCustomer>>(`${this.url}/shipments/employee-customer/${id}`).pipe(map(({ data }) => data))\n }\n\n /**\n * Cancels a specific shipment by providing its ID and a reason for cancellation.\n * Sends a PATCH request to update the shipment's cancellation status with the specified reason.\n *\n * @param {Object} param0 - The input object containing shipment cancellation details.\n * @param {string} param0.shipmentId - The unique identifier of the shipment to be canceled.\n * @param {string} param0.reasonId - The unique identifier of the reason for cancellation.\n * @return {Observable<ShipmentCancellationOut>} An observable emitting the result of the cancellation operation.\n */\n patchShipmentsCancellation ({ shipmentId, reasonId }: ShipmentCancellationIn): Observable<ShipmentCancellationOut> {\n return this.http.patch<ApiSuccess<ShipmentCancellationOut>>(`${this.url}/shipments/${shipmentId}/cancellation`, {\n cancellationReasonId: reasonId\n }).pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches a list of export types based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the export types.\n * @return {Observable<ExportTypesOut>} An observable containing the list of export types.\n */\n getExportTypes (params: QueryParams): Observable<ExportTypesOut> {\n return this.http.get<ApiSuccess<ExportTypesOut>>(`${this.url}/export-types`, {\n params\n }).pipe(map(({ data }) => data))\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\nimport { map, Observable } from 'rxjs'\nimport { ApiSuccess, QueryParams } from './models/api.models'\nimport {\n SuppliesOut,\n SupplyIn,\n SupplyLocationIn,\n SupplyLocationOut, SupplyLocationsOut, SupplyLocationTransactionIn, SupplyLocationTransactionOut,\n SupplyOut, SupplyTransactionTypesOut,\n SupplyTypesOut\n} from './models/api-supplies.types'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiSuppliesService {\n constructor (\n @Inject('env') private environments: Environment,\n private http: HttpClient\n ) { }\n\n /**\n * Retrieves the URL for the API supplies endpoint.\n *\n * @return {string} The API supplies URL or an empty string if not defined.\n */\n get url (): string {\n return this.environments.apiSuppliesUrl ?? ''\n }\n\n /**\n * Fetches a list of supplies based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the supplies.\n * @return {Observable<SuppliesOut>} An observable containing the list of supplies.\n */\n getSupplies (params: QueryParams): Observable<SuppliesOut> {\n return this.http.get<ApiSuccess<SuppliesOut>>(`${this.url}/supplies`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Retrieves the supply details for a given supply ID.\n *\n * @param {number} id - The unique identifier of the supply to retrieve.\n * @return {Observable<SupplyOut>} An observable containing the supply details.\n */\n getSupply (id: number): Observable<SupplyOut> {\n return this.http.get<ApiSuccess<SupplyOut>>(`${this.url}/supplies/${id}`)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Sends a supply object to the server and returns the created or updated supply information.\n *\n * @param {SupplyIn} body - The supply information to be sent to the server.\n * @return {Observable<SupplyOut>} An observable containing the response with the supply data.\n */\n postSupply (body: SupplyIn): Observable<SupplyOut> {\n return this.http.post<ApiSuccess<SupplyOut>>(`${this.url}/supplies`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Updates an existing supply with the provided data.\n *\n * @param {number} id - The unique identifier of the supply to update.\n * @param {SupplyIn} body - The data to update the supply with.\n * @return {Observable<SupplyOut>} An observable containing the updated supply information.\n */\n putSupply (id: number, body: SupplyIn): Observable<SupplyOut> {\n return this.http.put<ApiSuccess<SupplyOut>>(`${this.url}/supplies/${id}`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the supply types based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the supply types.\n * @return {Observable<SupplyTypesOut>} An Observable that emits the supply types data.\n */\n getSupplyTypes (params: QueryParams): Observable<SupplyTypesOut> {\n return this.http.get<ApiSuccess<SupplyTypesOut>>(`${this.url}/supply-types`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Creates a new supply location.\n *\n * @param {SupplyLocationIn} body - The supply location data to create.\n * @return {Observable<SupplyLocationOut>} An Observable that emits the created supply location data.\n */\n postSupplyLocations (body: SupplyLocationIn): Observable<SupplyLocationOut> {\n return this.http.post<ApiSuccess<SupplyLocationOut>>(`${this.url}/supply-locations`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the supply locations based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the supply locations.\n * @return {Observable<SupplyLocationsOut>} An Observable that emits the supply locations data.\n */\n getSupplyLocations (params: QueryParams): Observable<SupplyLocationsOut> {\n return this.http.get<ApiSuccess<SupplyLocationsOut>>(`${this.url}/supply-locations`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Creates a new supply location transaction.\n *\n * @param {SupplyLocationTransactionIn} body - The transaction data to create.\n * @return {Observable<SupplyLocationTransactionOut>} An Observable that emits the created transaction data.\n */\n postSupplyLocationTransaction (body: SupplyLocationTransactionIn): Observable<SupplyLocationTransactionOut> {\n return this.http.post<ApiSuccess<SupplyLocationTransactionOut>>(`${this.url}/supply-location-transactions`, body)\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Fetches the supply transaction types based on the provided query parameters.\n *\n * @param {QueryParams} params - The query parameters to filter the transaction types.\n * @return {Observable<SupplyTransactionTypesOut>} An Observable that emits the supply transaction types data.\n */\n getSupplyTransactionTypes (params: QueryParams): Observable<SupplyTransactionTypesOut> {\n return this.http.get<ApiSuccess<SupplyTransactionTypesOut>>(`${this.url}/supply-transaction-types`, { params })\n .pipe(map(({ data }) => data))\n }\n\n /**\n * Exports the supply locations to an Excel file.\n *\n * @param {QueryParams} params - The query parameters to filter the data before export.\n * @return {Observable<{ mime_type: string; base64: string }>} An Observable that emits the exported file's MIME type and Base64 content.\n */\n getSupplyLocationsExportToExcel (params: QueryParams): Observable<{ mime_type: string; base64: string }> {\n return this.http.get<ApiSuccess<{ mime_type: string; base64: string }>>(`${this.url}/supply-locations/export/excel`, { params })\n .pipe(map(({ data }) => data))\n }\n}\n","export enum ViewSectionOption {\n SHIPMENT = 'shipment',\n PICKUP = 'pickup',\n EMPLOYEE_DHL = 'employee_dhl',\n BILLING = 'billing',\n CUSTOMER_RESTRICTION = 'customer_restriction'\n}\n","export enum OperationModuleStatus {\n CANCELED = 'canceled',\n COMPLETED = 'completed',\n IN_PROGESS = 'in_progress'\n}\n","export enum Event {\n damage = 'damage',\n lost = 'lost',\n rejected = 'rejected',\n return = 'return '\n}\n\nexport enum DefaultValueType {\n payment_type = 'payment_type',\n currency_code = 'currency_code',\n destination = 'destination',\n payment_amount = 'payment_amount'\n}\n\nexport enum AlphaNumeric {\n alpha_numeric = 'alpha_numeric',\n numeric = 'numeric',\n alphabetic = 'alphabetic',\n amount = 'amount'\n}\n","import { Inject, Injectable } from '@angular/core'\nimport Pusher, { Channel } from 'pusher-js'\nimport { Observable } from 'rxjs'\nimport { Environment } from '../ngx-services.models'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class WebSocketsService {\n private pusher: Pusher | null\n\n constructor (\n @Inject('env') private environments: Environment\n ) {\n this.pusher = null\n\n this.connect()\n .then((pusher) => {\n if (!pusher) return\n\n this.pusher = pusher\n })\n }\n\n /**\n * Publishes an event to the specified channel with the given data.\n *\n * @param {Channel} channel - The channel instance where the event will be published.\n * @param {string} eventName - The name of the event to be published.\n * @param {T} data - The payload data to be sent with the event.\n * @return {Promise<boolean>} A promise that resolves to a boolean indicating\n * whether the event was successfully triggered on the channel.\n */\n async pub<T> (channel: Channel, eventName: string, data: T) {\n return channel.trigger(`client-${eventName}`, data)\n }\n\n /**\n * Subscribes to a specified channel, retrying multiple times upon failure.\n *\n * @param {string} channelName - The name of the channel to be subscribed to.\n * @return {Promise<Channel>} A promise that resolves to the subscribed channel object if successful.\n * @throws {Error} If the subscription fails after the maximum number of retry attempts.\n */\n async channelSub (channelName: string): Promise<Channel> {\n const attempts = 3\n\n for (let attempt = 0; attempt <= attempts; attempt++) {\n const channel = this.pusher?.channel(channelName)\n\n if (channel?.subscribed) {\n return channel\n }\n\n this.pusher?.subscribe(channelName)\n\n if (attempt < attempts) {\n await this.wait()\n }\n }\n\n throw new Error(`Failed to subscribe to channel \"${channelName}\" after ${attempts} attempts.`)\n }\n\n /**\n * Binds an event listener to a specified event on a given channel using Pusher or a Channel object,\n * and returns an Observable that emits event data of type T.\n *\n * @param {Channel|string} channel - The channel to bind the event to. It can be a Channel object or a string representing the channel name.\n * @param {string} event - The name of the event to bind to the channel.\n * @return {Observable<T>} An Observable that emits data of type T when the specified event is triggered.\n */\n eventBind<T> (channel: Channel | string, event: string): Observable<T> {\n return new Observable((subscriber) => {\n if ((channel as Channel)?.name) {\n (channel as Channel).bind(event, (data: T) => subscriber.next(data))\n } else {\n this.pusher?.subscribe((channel as string))\n .bind(event, (data: T) => subscriber.next(data))\n }\n })\n }\n\n /**\n * Unbinds an event from the specified channel and returns an observable\n * that emits data when the event callback is triggered.\n *\n * @param {Channel} channel - The channel object from which the event should be unbound.\n * @param {string} event - The name of the event to unbind.\n * @return {Observable<T>} An observable that emits data from the unbound event callback.\n */\n eventUnbind<T> (channel: Channel, event: string) {\n return new Observable((subscriber) =>\n channel.unbind(event, (data: T) => subscriber.next(data)))\n }\n\n private connect () {\n return new Promise<Pusher | false>((resolve) => {\n const { sockets } = this.environments\n\n if (!sockets) return resolve(false)\n\n const pusher = new Pusher(sockets.app_key, {\n wsHost: sockets.url,\n wsPort: sockets.port,\n enabledTransports: ['wss', 'ws'],\n forceTLS: false,\n enableStats: false,\n })\n\n if (sockets.debug) {\n Pusher.logToConsole = true\n }\n\n return resolve(pusher)\n })\n }\n\n private async wait (): Promise<void> {\n const waitTime = 3 * 1000\n\n return new Promise((resolve) => setTimeout(resolve, waitTime))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Environment } from '../ngx-services.models'\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CryptoService {\n constructor (\n @Inject('env') private environments: Environment\n ) {\n }\n\n public async encryptAES (plaintext: string): Promise<string> {\n const cryptoKey = await this.loadKey()\n\n // Convert the plaintext in Uint8Array\n const encoder = new TextEncoder()\n const encoded = encoder.encode(plaintext)\n\n // Generate a random Initialization Vector (IV)\n const iv = crypto.getRandomValues(new Uint8Array(12))\n\n // Encrypt the plaintext\n const ciphertext = await crypto.subtle.encrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n cryptoKey,\n encoded\n )\n\n return `${this.uint8ArrayToBase64(iv)}:${this.arrayBufferToBase64(ciphertext)}`\n }\n\n public async decryptAES (payload: string): Promise<string> {\n // Extract the Initialization Vector (IV), and the cypher text\n const [base64IV, base64Ciphertext] = payload.split(':')\n\n if (!base64IV || !base64Ciphertext) { throw new Error('The payload must contain the IV and the cipher text.') }\n\n const cryptoKey = await this.loadKey()\n\n const iv = this.base64ToUint8Array(base64IV)\n const cipherText = this.base64ToArrayBuffer(base64Ciphertext)\n\n // Decrypt the cypher text\n const decrypted = await crypto.subtle.decrypt(\n {\n name: 'AES-GCM',\n iv,\n },\n cryptoKey,\n cipherText\n )\n\n // Decode the decrypted text\n const decoder = new TextDecoder()\n return decoder.decode(decrypted)\n }\n\n private async loadKey () {\n // Decode the base64 key to Uint8Array\n const rawKey = this.base64ToUint8Array(this.environments.secretKey)\n\n // Import the key to API Crypto\n return await crypto.subtle.importKey(\n 'raw',\n rawKey,\n { name: 'AES-GCM' },\n true,\n ['encrypt', 'decrypt']\n )\n }\n\n private uint8ArrayToBase64 (data: Uint8Array): string {\n let binary = ''\n const len = data.byteLength\n\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(data[i])\n }\n\n return btoa(binary)\n }\n\n private base64ToUint8Array (base64: string): Uint8Array {\n const binaryString = atob(base64)\n const len = binaryString.length\n const bytes = new Uint8Array(len)\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i)\n }\n return bytes\n }\n\n private arrayBufferToBase64 (buffer: ArrayBuffer): string {\n let binary = ''\n const bytes = new Uint8Array(buffer)\n const len = bytes.byteLength\n\n for (let i = 0; i < len; i++) {\n binary += String.fromCharCode(bytes[i])\n }\n\n return btoa(binary)\n }\n\n private base64ToArrayBuffer (base64: string): ArrayBuffer {\n const binaryString = atob(base64)\n const len = binaryString.length\n const bytes = new Uint8Array(len)\n\n for (let i = 0; i < len; i++) {\n bytes[i] = binaryString.charCodeAt(i)\n }\n\n return bytes.buffer\n }\n}\n","import { HttpEvent, HttpHandlerFn, HttpRequest } from '@angular/common/http'\nimport { Observable } from 'rxjs'\n\n/**\n * Intercepts an outgoing HTTP request and modifies its headers to include default values\n * for Cache-Control, Expires, Pragma, Content-Type, Accept, and Accept-Language if they\n * are not already present.\n *\n * @param {HttpRequest<unknown>} req - The outgoing HTTP request to be intercepted and modified.\n * @param {HttpHandlerFn} next - The next handler in the chain to pass the modified request to.\n * @return {Observable<HttpEvent<unknown>>} An observable of the HTTP event resulting from the processed request.\n */\nexport function apiHeadersInterceptor (req: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>> {\n let { headers } = req\n\n if (!headers.has('Content-Type') && !(req.body instanceof FormData)) {\n headers = headers.set('Content-Type', 'application/json')\n }\n\n if (!headers.has('Accept')) {\n headers = headers.set('Accept', 'application/json')\n }\n\n if (!headers.has('Accept-Language')) {\n headers = headers.set('Accept-Language', localStorage.getItem('lang') ?? 'en')\n }\n\n req = req.clone({ headers })\n\n return next(req)\n}\n","import { HttpEvent, HttpHandlerFn, HttpRequest } from '@angular/common/http'\nimport { inject } from '@angular/core'\nimport { Observable } from 'rxjs'\nimport { ENVIRONMENT_TOKEN } from '../ngx-services.models'\n\n/**\n * HTTP interceptor that injects the external operations API key into outbound requests.\n *\n * The interceptor:\n * 1. Reads `apiExternalOperationsKey` from the injected `ENVIRONMENT_TOKEN`.\n * 2. Skips modification if the key is absent.\n * 3. Leaves the request unchanged if it already contains an `AppKey` header (caller override).\n * 4. Otherwise clones the request adding `AppKey: apiExternalOperationsKey`.\n *\n * This enables centralized, transparent authentication for services targeting external\n * operations endpoints while allowing explicit per-request overrides.\n *\n * Example:\n * ```ts\n * provideHttpClient(\n * withInterceptors([apiKeyInterceptor])\n * );\n * ```\n *\n * @param request The original immutable `HttpRequest` instance.\n * @param next The next handler in the interceptor chain, used to forward the (possibly cloned) request.\n * @returns An `Observable` stream of the HTTP events for the (potentially augmented) request.\n *\n * @remarks\n * - If you need to intentionally send a different key for a specific request, set the `AppKey`\n * header manually before this interceptor runs.\n * - If `apiExternalOperationsKey` is undefined (e.g., missing configuration), the request is passed through unchanged.\n * - Order matters: place this interceptor before others that rely on the presence of the `AppKey` header.\n *\n * @see HttpRequest\n * @see HttpHandlerFn\n */\nexport function apiKeyInterceptor (request: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>> {\n const { apiExternalOperationsKey } = inject(ENVIRONMENT_TOKEN)\n\n if (!apiExternalOperationsKey) return next(request)\n\n if (request.headers.has('AppKey')) return next(request)\n\n request = request.clone({\n setHeaders: {\n AppKey: apiExternalOperationsKey\n }\n })\n\n return next(request)\n}\n","import { inject } from '@angular/core'\nimport { HttpEvent, HttpHandlerFn, HttpRequest } from '@angular/common/http'\nimport { Observable } from 'rxjs'\nimport { CookieService } from 'ngx-cookie-service'\nimport { ENVIRONMENT_TOKEN } from '../ngx-services.models'\n\n/**\n * An HTTP interceptor to append an Authorization header with a Bearer token\n * to outgoing HTTP requests if certain conditions are met.\n *\n * @param {HttpRequest<unknown>} req - The outgoing HTTP request object which may be modified.\n * @param {HttpHandlerFn} next - The next handler in the HTTP request pipeline.\n * @return {Observable<HttpEvent<unknown>>} An observable of the HTTP event stream resulting from the request.\n */\nexport function apiTokenInterceptor (req: HttpRequest<unknown>, next: HttpHandlerFn): Observable<HttpEvent<unknown>> {\n const { authCookie } = inject(ENVIRONMENT_TOKEN)\n const cookie = inject(CookieService)\n\n if (req.headers.has('Authorization') || req.headers.has('AppKey')) {\n return next(req)\n }\n\n const token = cookie.get(authCookie)\n\n if (!token) return next(req)\n\n req = req.clone({\n setHeaders: {\n Authorization: `Bearer ${token}`\n }\n })\n\n return next(req)\n}\n","import { inject } from '@angular/core'\nimport { HttpEvent, HttpHandlerFn, HttpRequest, HttpResponse } from '@angular/common/http'\n\nimport { Observable, of } from 'rxjs'\nimport { tap } from 'rxjs/operators'\nimport { ENVIRONMENT_TOKEN } from '../ngx-services.models'\n\nconst DEFAULT_TTL = 10000 // ttl in ms\nconst cache = new Map<string, { ttl: number, res: HttpResponse<any> }>()\n\n/**\n * Interceptor function to handle HTTP caching for GET requests. It retrieves cached responses\n * if available and valid; otherwise, it processes the request and caches the response for future use.\n *\n * @param {HttpRequest<any>} req - The HTTP request object being intercepted.\n * @param {HttpHandlerFn} next - The next HTTP handler function in the chain to process the request.\n * @return {Observable<HttpEvent<any>>} An observable that emits the HTTP event, either from cache\n * or by invoking the next handler.\n */\nexport function httpCachingInterceptor (req: HttpRequest<any>, next: HttpHandlerFn): Observable<HttpEvent<any>> {\n const { cacheTtl } = inject(ENVIRONMENT_TOKEN)\n\n if (req.method !== 'GET') return next(req)\n\n const cached = cache.get(req.urlWithParams)\n\n if (cached) {\n const isExpired = Date.now() > cached.ttl\n\n if (!isExpired) { return of(cached.res) }\n\n cache.delete(req.urlWithParams) // If expired, remove the entry from cache\n }\n\n return next(req).pipe(\n tap((res) => {\n if (!(res instanceof HttpResponse)) { return }\n\n const ttl = Date.now() + (cacheTtl ?? DEFAULT_TTL)\n\n cache.set(req.urlWithParams, { res, ttl })\n })\n )\n}\n","export const base64PdfToUrl = (base64: string): string => {\n const data = new Uint8Array(\n atob(base64)\n .split('')\n .map(char => char.charCodeAt(0))\n )\n\n const blob = new Blob([data], { type: 'application/pdf' })\n\n return window.URL.createObjectURL(blob)\n}\n\nexport const downloadBase64Pdf = (base64: string) => window.open(base64PdfToUrl(base64))\n","import { HttpHeaders, HttpParams } from '@angular/common/http'\nimport { QueryParams } from '../apis/models/api.models'\n\n/**\n * Convert an object of key-value pairs into a URL query string.\n *\n * @param {Object} params - The key-value pairs to converted into a query string.\n *\n * @return {string} - The generated query string.\n */\nexport const queryString = (params: QueryParams): string => {\n const queryElements: string[] = []\n\n Object.entries(params).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n const arrayQuery = value\n .map((item) => `${encodeURIComponent(key)}=${encodeURIComponent(item as string | number | boolean)}`)\n .join('&')\n\n queryElements.push(arrayQuery)\n } else {\n const encodedQuery = `${encodeURIComponent(key)}=${encodeURIComponent(value as string | number | boolean)}`\n\n queryElements.push(encodedQuery)\n }\n })\n\n const queryString = queryElements.join('&')\n\n return queryString.length ? `?${queryString}` : ''\n}\n\n/**\n * Creates an instance of HttpParams using the provided params object.\n *\n * @param {Object} params - The object containing the params to the HttpParams constructor.\n *\n * @returns {HttpParams} - An instance of HttpParams created from the params object.\n */\nexport const httpParams = (\n params: QueryParams\n): HttpParams => new HttpParams({\n fromObject: params\n})\n\n/**\n * Returns the headers for generating PDF files.\n *\n * @param {string} format - The format of the headers, 'object' or 'http_header'.\n *\n * @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating PDF files.\n */\nexport const pdfHeaders = (format: 'object' | 'http_header' = 'object'): HttpHeaders | { [header: string]: string | string[] } => {\n const headers = {\n Accept: 'application/pdf'\n }\n\n return format === 'object'\n ? headers\n : new HttpHeaders(headers)\n}\n\n/**\n * Returns the headers for generating XML files.\n *\n * @param {string} format - The format of the headers, 'object' or 'http_header'.\n *\n * @returns {HttpHeaders | { [header: string]: string | string[] }} - The headers for generating XML files.\n */\nexport const xmlHeaders = (format: 'object' | 'http_header' = 'object'): HttpHeaders | { [header: string]: string | string[] } => {\n const headers = {\n Accept: 'application/xml',\n }\n\n return format === 'object'\n ? headers\n : new HttpHeaders(headers)\n}\n","/*\n * Public API Surface of ngx-services\n */\nexport * from './lib/ngx-services.models'\nexport * from './lib/ngx-services.module'\n\n// api services\nexport * from './lib/apis/api-billing-do.service'\nexport * from './lib/apis/api-billing-gt.service'\nexport * from './lib/apis/api-billing-mx.service'\nexport * from './lib/apis/api-billing-pa.service'\nexport * from './lib/apis/api-billing-sv.service'\nexport * from './lib/apis/api-cash-operations.service'\nexport * from './lib/apis/api-catalogs.service'\nexport * from './lib/apis/api-companies.service'\nexport * from './lib/apis/api-composition.service'\nexport * from './lib/apis/api-customs.service'\nexport * from './lib/apis/api-discounts.service'\nexport * from './lib/apis/api-e-tools-auto-billing.service'\nexport * from './lib/apis/api-events.service'\nexport * from './lib/apis/api-external-ops.service'\nexport * from './lib/apis/api-inventories.service'\nexport * from './lib/apis/api-invoices.service'\nexport * from './lib/apis/api-notifications.service'\nexport * from './lib/apis/api-open-items.service'\nexport * from './lib/apis/api-reports.service'\nexport * from './lib/apis/api-security.service'\nexport * from './lib/apis/api-services.service'\nexport * from './lib/apis/api-shipments.service'\nexport * from './lib/apis/api-supplies.service'\n\n// api models\nexport * from './lib/apis/models/api-billing-do.interfaces'\nexport * from './lib/apis/models/api-billing-do.types'\nexport * from './lib/apis/models/api-billing-mx.interfaces'\nexport * from './lib/apis/models/api-billing-mx.types'\nexport * from './lib/apis/models/api-billing-pa.interfaces'\nexport * from './lib/apis/models/api-billing-pa.types'\nexport * from './lib/apis/models/api-billing-sv.interfaces'\nexport * from './lib/apis/models/api-billing-sv.types'\nexport * from './lib/apis/models/api-billing.models'\nexport * from './lib/apis/models/api-cash-operations.interfaces'\nexport * from './lib/apis/models/api-cash-operations.types'\nexport * from './lib/apis/models/api-catalog.enum'\nexport * from './lib/apis/models/api-catalog.interfaces'\nexport * from './lib/apis/models/api-catalog.types'\nexport * from './lib/apis/models/api-companies.interfaces'\nexport * from './lib/apis/models/api-companies.types'\nexport * from './lib/apis/models/api-composition.interfaces'\nexport * from './lib/apis/models/api-composition.types'\nexport * from './lib/apis/models/api-customs.interfaces'\nexport * from './lib/apis/models/api-customs.types'\nexport * from './lib/apis/models/api-discounts.interfaces'\nexport * from './lib/apis/models/api-discounts.types'\nexport * from './lib/apis/models/api-e-tools-auto-billing.interfaces'\nexport * from './lib/apis/models/api-e-tools-auto-billing.types'\nexport * from './lib/apis/models/api-events.enum'\nexport * from './lib/apis/models/api-events.interfaces'\nexport * from './lib/apis/models/api-events.types'\nexport * from './lib/apis/models/api-external-ops.types'\nexport * from './lib/apis/models/api-inventories.enum'\nexport * from './lib/apis/models/api-inventories.interfaces'\nexport * from './lib/apis/models/api-inventories.types'\nexport * from './lib/apis/models/api-invoices.interfaces'\nexport * from './lib/apis/models/api-invoices.types'\nexport * from './lib/apis/models/api-notifications.interfaces'\nexport * from './lib/apis/models/api-notifications.types'\nexport * from './lib/apis/models/api-open-items.interfaces'\nexport * from './lib/apis/models/api-open-items.types'\nexport * from './lib/apis/models/api-reports.interfaces'\nexport * from './lib/apis/models/api-security.interfaces'\nexport * from './lib/apis/models/api-security.types'\nexport * from './lib/apis/models/api-services.interfaces'\nexport * from './lib/apis/models/api-services.types'\nexport * from './lib/apis/models/api-shipments.interfaces'\nexport * from './lib/apis/models/api-shipments.types'\nexport * from './lib/apis/models/api-supplies.interfaces'\nexport * from './lib/apis/models/api-supplies.types'\nexport * from './lib/apis/models/api.models'\n\n// websockets\nexport * from './lib/websockets/web-sockets.service'\n\n// cypher\nexport * from './lib/cypher/crypto.service'\n\n// interceptors\nexport * from './lib/interceptors/api-headers.interceptor'\nexport * from './lib/interceptors/api-key.interceptor'\nexport * from './lib/interceptors/api-token.interceptor'\nexport * from './lib/interceptors/http-caching.interceptor'\n\n// helpers\nexport * from './lib/helpers/files'\nexport * from './lib/helpers/http'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","map","tap"],"mappings":";;;;;;;;;;AAuDA;;;;;;;AAOG;MACU,iBAAiB,GAAG,IAAI,cAAc,CAAc,oBAAoB;;MCxDxE,iBAAiB,CAAA;AAC5B;;;;;;AAMG;IACI,OAAO,OAAO,CAAE,WAAwB,EAAA;QAC7C,OAAO;AACL,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,KAAK;AACd,oBAAA,QAAQ,EAAE,WAAW;AACtB,iBAAA;AACF,aAAA;SACF,CAAA;KACF;wGAlBU,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAjB,iBAAiB,EAAA,CAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAFjB,SAAA,EAAA,CAAC,iBAAiB,EAAE,CAAC,EAAA,CAAA,CAAA;;4FAErB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE,CAAC,iBAAiB,EAAE,CAAC;AACjC,iBAAA,CAAA;;;MCIY,mBAAmB,CAAA;AAEL,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAA;KAC5C;AAED;;;;AAIG;IACH,cAAc,GAAA;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,aAAA,CAAe,CAAC;AACzE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAvBU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAEpB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCGJ,mBAAmB,CAAA;AAEL,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAA;KAC5C;AAED;;;;AAIG;IACH,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,iBAAA,CAAmB,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,SAAS,CAAE,EAAU,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AAC9E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,IAAqB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,IAAI,CAAC;AAC/E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AA7CU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAEpB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCPJ,mBAAmB,CAAA;AAEL,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAA;KAC5C;AAED;;;;AAIG;IACH,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,gBAAA,CAAkB,CAAC;AAC/E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,yBAAyB,CAAE,aAAqB,EAAA;AAC9C,QAAA,MAAM,MAAM,GAAG,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAA;AAElD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAyC,uCAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC1H,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAE,MAAmB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAe,aAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACrF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AA/CU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAEpB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCDJ,mBAAmB,CAAA;AAEL,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAA;KAC5C;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,UAAA,CAAY,EAAE;YACtE,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,MAAmB,EAAA;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,SAAA,CAAW,EAAE;YACpE,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,UAAA,CAAY,EAAE;YACtE,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAE,MAAmB,EAAA;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,kBAAA,CAAoB,EAAE;YACtF,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;AAIG;IACH,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,iBAAA,CAAmB,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,SAAS,CAAE,EAAU,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AAC9E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,IAAqB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA+B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,IAAI,CAAC;AAC/E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AA7FU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAEpB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCGJ,mBAAmB,CAAA;AAEL,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;;AAKG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAA;KAC5C;AAED;;;;;AAKG;AACH,IAAA,qBAAqB,CAAE,MAAmB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAsB,oBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACnG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAE,MAAmB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAe,aAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACrF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,qBAAqB,CAAE,MAAmB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAsB,oBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACnG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAE,MAAmB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAc,YAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACpF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,MAAmB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAiB,eAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC1F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AArEU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAEpB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCHJ,wBAAwB,CAAA;AAEV,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,oBAAoB,IAAI,EAAE,CAAA;KACpD;AAED;;;;;AAKG;AACH,IAAA,wCAAwC,CAAE,IAA4C,EAAA;AACpF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAsD,CAAG,EAAA,IAAI,CAAC,GAAG,CAA4C,0CAAA,CAAA,EAChI,IAAI,CACL,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;;;AAMG;IACH,uCAAuC,CAAE,EAAS,EAAE,IAA4C,EAAA;AAC9F,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsD,CAAA,EAAG,IAAI,CAAC,GAAG,CAA8C,2CAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC3I,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,uCAAuC,CAAE,MAAmB,EAAA;QAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwD,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,0CAAA,CAA4C,EAAE;YACnI,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,0BAA0B,CAAE,EAAU,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAa,UAAA,EAAA,EAAE,qBAAqB,CAAC;AACnG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,wBAAwB,CAAE,IAA2B,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAqC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAwB,sBAAA,CAAA,EAAE,IAAI,CAAC;AACjG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,6BAA6B,CAAE,EAAU,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,GAAG,CAA0B,uBAAA,EAAA,EAAE,UAAU,CAAC;AAChG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AApFU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,kBAEzB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,wBAAwB,cAFvB,MAAM,EAAA,CAAA,CAAA;;4FAEP,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCkCJ,kBAAkB,CAAA;AAEJ,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,IAAI,EAAE,CAAA;KAC9C;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,MAAmB,EAAA;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,gBAAA,CAAkB,EAAE;YACjF,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,MAAmB,EAAA;QACzC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,qBAAA,CAAuB,EAAE;YAC3F,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;AASG;AACH,IAAA,qBAAqB,CAAE,EAAU,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAyB,sBAAA,EAAA,EAAE,EAAE,CAAC;AAC9F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;;AAUG;AACH,IAAA,uBAAuB,CAAE,IAA0B,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAoC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAuB,qBAAA,CAAA,EAAE,IAAI,CAAC;AAC/F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;;;AAWG;IACH,qBAAqB,CAAE,EAAU,EAAE,IAA0B,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAyB,sBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACpG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;;;AAWG;AACH,IAAA,wBAAwB,CAAE,EAAU,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAyB,sBAAA,EAAA,EAAE,EAAE,CAAC;AAC9E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,MAAmB,EAAA;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,aAAA,CAAe,EAAE;YAC5E,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,IAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAe,aAAA,CAAA,EAAE,IAAI,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,cAAc,CAAE,EAAU,EAAE,IAAmB,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAiB,cAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACrF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAE,EAAU,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AACxE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,UAAU,CAAE,EAAU,EAAE,IAAe,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC9E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAE,MAAmB,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAU,QAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC5E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,QAAQ,CAAE,MAAmB,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAQ,MAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACxE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,MAAmB,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAmB,iBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC7F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,MAAmB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAuB,qBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACrG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,IAA0B,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAoC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAuB,qBAAA,CAAA,EAAE,IAAI,CAAC;AAC/F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,qBAAqB,CAAE,EAAU,EAAE,IAA0B,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAyB,sBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACpG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAE,MAAmB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAa,WAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAClF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,QAAQ,CAAE,MAAmB,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAQ,MAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACxE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,MAAmB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkB,gBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC3F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,uBAAuB,CAAE,MAAmB,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAyB,uBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACxG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,MAAmB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAiB,eAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACzF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,IAAoB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAiB,eAAA,CAAA,EAAE,IAAI,CAAC;AACnF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,eAAe,CAAE,EAAU,EAAE,IAAoB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAmB,gBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACxF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,gBAAgB,CAAE,EAAU,EAAE,IAA6B,EAAA;AACzD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAmB,gBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACxF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,IAAe,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAW,SAAA,CAAA,EAAE,IAAI,CAAC;AACxE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,UAAU,CAAE,EAAU,EAAE,IAAe,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAa,UAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC7E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,MAAmB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAwB,sBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACtG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,IAA0B,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAoC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAwB,sBAAA,CAAA,EAAE,IAAI,CAAC;AAChG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,qBAAqB,CAAE,EAAU,EAAE,IAA0B,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAA,EAAG,IAAI,CAAC,GAAG,CAA0B,uBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACrG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,MAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,IAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,IAAI,CAAC;AACjF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,cAAc,CAAE,EAAU,EAAE,IAAmB,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkB,eAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACtF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,eAAe,CAAE,EAAU,EAAE,IAA4B,EAAA;AACvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkB,eAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACtF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,MAAmB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkB,gBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC3F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAE,MAAmB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAoB,kBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC/F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;AAQG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;AASG;AACH,IAAA,WAAW,CAAE,EAAU,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AACzE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;;AAUG;AACH,IAAA,YAAY,CAAE,IAAgB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,IAAI,CAAC;AAC1E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;;;AAWG;IACH,WAAW,CAAE,EAAU,EAAE,IAAgB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC/E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;;;AAWG;AACH,IAAA,cAAc,CAAE,EAAU,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AACnE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;AAQG;AACH,IAAA,WAAW,CAAE,MAAmB,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAW,SAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC9E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;AASG;AACH,IAAA,UAAU,CAAE,EAAU,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAa,UAAA,EAAA,EAAE,EAAE,CAAC;AACvE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;;AAUG;AACH,IAAA,WAAW,CAAE,IAAe,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAW,SAAA,CAAA,EAAE,IAAI,CAAC;AACxE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;;;AAWG;IACH,UAAU,CAAE,EAAU,EAAE,IAAe,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAa,UAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC7E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;;;AAWG;AACH,IAAA,aAAa,CAAE,EAAU,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAa,UAAA,EAAA,EAAE,EAAE,CAAC;AAClE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AA9mBU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAEnB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,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;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCmCJ,mBAAmB,CAAA;AAEL,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,EAAE,CAAA;KAC/C;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,MAAmB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACxF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,EAAU,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAkB,eAAA,EAAA,EAAE,EAAE,CAAC;AACjF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,IAAoB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,IAAI,CAAC;AAClF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,eAAe,CAAE,EAAU,EAAE,IAAoB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkB,eAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,EAAU,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAkB,eAAA,EAAA,EAAE,EAAE,CAAC;AACvE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,EAAU,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AACzE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,IAAgB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,IAAI,CAAC;AAC1E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,WAAW,CAAE,EAAU,EAAE,IAAgB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC/E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAE,EAAU,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AACnE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,wBAAwB,CAAE,MAAmB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,GAAG,CAA0B,wBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACnG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,MAAmB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkB,gBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC3F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,IAAsB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAkB,gBAAA,CAAA,EAAE,IAAI,CAAC;AACrF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,UAAA,CAAY,EAAE;YACtE,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,EAAU,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AACzE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,IAAgB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,IAAI,CAAC;AAC1E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,WAAW,CAAE,EAAU,EAAE,IAAgB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC/E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAE,EAAU,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AACnE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,oBAAoB,CAAE,MAAmB,EAAA;QACvC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,mBAAA,CAAqB,EAAE;YACvF,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAE,EAAU,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAuB,oBAAA,EAAA,EAAE,EAAE,CAAC;AAC1F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,EAAU,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAuB,oBAAA,EAAA,EAAE,EAAE,CAAC;AAC5E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,yBAAyB,CAAE,IAA6B,EAAA;AACtD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAA2B,yBAAA,CAAA,EAAE,IAAI,CAAC;AACzF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAE,MAAmB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAoB,kBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC/F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,EAAU,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAsB,mBAAA,EAAA,EAAE,EAAE,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,IAAsB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAoB,kBAAA,CAAA,EAAE,IAAI,CAAC;AACxF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,iBAAiB,CAAE,EAAU,EAAE,IAAsB,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAsB,mBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC7F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,oBAAoB,CAAE,EAAU,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAsB,mBAAA,EAAA,EAAE,EAAE,CAAC;AAC3E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,6BAA6B,CAAE,MAAmB,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4C,CAAA,EAAG,IAAI,CAAC,GAAG,CAA+B,6BAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACpH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,2BAA2B,CAAE,EAAU,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0C,CAAG,EAAA,IAAI,CAAC,GAAG,CAAiC,8BAAA,EAAA,EAAE,EAAE,CAAC;AAC5G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,4BAA4B,CAAE,MAAmB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,6BAA6B,CAAC,MAAM,CAAC;AAC9C,aAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,cAAc,KAAI;AAChC,YAAA,MAAM,YAAY,GAAG,cAAc,CAAC,4BAA4B;iBAC7D,GAAG,CAAC,CAAC,IAAI,KACR,IAAI,CAAC,mBAAmB,CAAC;AACvB,gBAAA,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE;aAC9B,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,aAAa,MAAM;AACtB,gBAAA,GAAG,IAAI;gBACP,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,KAAK;aACxC,CAAC,CAAC,CACJ,CACF,CAAA;AAEH,YAAA,OAAO,QAAQ,CAAC,YAAY,CAAC,CAAA;SAC9B,CAAC,CAAC,CAAA;KACN;AAED;;;;;;AAMG;IACH,2BAA2B,CAAE,EAAU,EAAE,IAAgC,EAAA;AACvE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0C,CAAA,EAAG,IAAI,CAAC,GAAG,CAAiC,8BAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAClH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,4BAA4B,CAAE,IAAgC,EAAA;AAC5D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0C,CAAG,EAAA,IAAI,CAAC,GAAG,CAA+B,6BAAA,CAAA,EAAE,IAAI,CAAC;AAC7G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,+BAA+B,CAAE,IAAmC,EAAA;AAClE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6C,CAAG,EAAA,IAAI,CAAC,GAAG,CAAkC,gCAAA,CAAA,EAAE,IAAI,CAAC;AACnH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,8BAA8B,CAAE,EAAU,EAAE,IAAmC,EAAA;AAC7E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6C,CAAA,EAAG,IAAI,CAAC,GAAG,CAAoC,iCAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACxH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;AAOG;IACH,gCAAgC,CAAE,WAAwC,EAAE,QAAkB,EAAA;AAC5F,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAmC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAoC,iCAAA,EAAA,WAAW,CAAC,EAAE,EAAE,EAAE;AACxH,YAAA,SAAS,EAAE,QAAQ,IAAI,CAAC,WAAW,CAAC,SAAS;AAC9C,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,IAAgB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,IAAI,CAAC;AAC1E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,WAAW,CAAE,EAAU,EAAE,IAAgB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC/E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;AACH,IAAA,mBAAmB,CAAE,MAAmB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAoB,kBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACxF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,MAAmB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAwB,sBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACtG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,MAAmB,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAW,SAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC9E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAE,EAAU,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAa,UAAA,EAAA,EAAE,EAAE,CAAC;AACvE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,IAAe,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAW,SAAA,CAAA,EAAE,IAAI,CAAC;AACxE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,UAAU,CAAE,EAAU,EAAE,IAAe,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAa,UAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC7E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,MAAmB,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAmB,iBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC7F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,IAAuB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAmB,iBAAA,CAAA,EAAE,IAAI,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,yBAAyB,CAAE,MAAmB,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,GAAG,CAA2B,yBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACrG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,oBAAoB,CAAE,MAAmB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAqB,mBAAA,CAAA,EAAE,EAAE,MAAM,GAAG,CAAC;AAClG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,MAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,EAAE,MAAM,GAAG,CAAC;AACxF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAE,EAAU,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAkB,eAAA,EAAA,EAAE,EAAE,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,IAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,IAAI,CAAC;AACjF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,cAAc,CAAE,EAAU,EAAE,IAAmB,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkB,eAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACtF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAE,MAAmB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAa,WAAA,CAAA,EAAE,EAAE,MAAM,GAAG,CAAC;AACnF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,oBAAoB,CAAE,EAAE,UAAU,EAAsB,EAAA;AACtD,QAAA,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;AAEvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAoB,kBAAA,CAAA,EAAE,EAAE,UAAU,EAAE,CAAC;AACpG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,yBAAyB,CAAE,UAA+B,EAAA;AACxD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAoB,kBAAA,CAAA,EAAE,EAAE,UAAU,EAAE,CAAC;AACpG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,iBAAiB,CAAE,EACjB,SAAS,GACQ,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAsB,mBAAA,EAAA,SAAS,EAAE,CAAC;AAC9F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,oBAAoB,CAAE,MAAmB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAqB,mBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACjG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAE,EAAU,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAuB,oBAAA,EAAA,EAAE,EAAE,CAAC;AAC1F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,mBAAmB,CAAE,EAAU,EAAE,IAAwB,EAAA;AACvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAuB,oBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAChG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,qBAAqB,CAAE,MAAmB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAqB,mBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAClG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,qBAAqB,CAAE,IAAyB,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAqB,mBAAA,CAAA,EAAE,IAAI,CAAC;AAC5F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,oBAAoB,CAAE,EAAU,EAAE,IAAyB,EAAA;AACzD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAuB,oBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACjG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAE,EAAU,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAuB,oBAAA,EAAA,EAAE,EAAE,CAAC;AAC3F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;AAOG;IACH,sBAAsB,CAAE,QAA6B,EAAE,QAAkB,EAAA;AACvE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAmC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAuB,oBAAA,EAAA,QAAQ,CAAC,EAAE,EAAE,EAAE;AACxG,YAAA,SAAS,EAAE,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS;AAC3C,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,yBAAyB,CAAE,SAAiB,EAAE,IAAU,EAAA;AACtD,QAAA,MAAM,IAAI,GAAG,IAAI,QAAQ,EAAE,CAAA;AAE3B,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACzB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;AAE/C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkC,CAAG,EAAA,IAAI,CAAC,GAAG,CAA0B,wBAAA,CAAA,EAAE,IAAI,CAAC;AAChG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,4BAA4B,CAAE,EAAS,EAAA;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,4BAAA,CAA8B,EAAE;AAC9D,YAAA,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE;AAC1B,YAAA,YAAY,EAAE,MAAM;AACrB,SAAA,CAAC,CAAA;KACH;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,EAAS,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAqB,kBAAA,EAAA,EAAE,EAAE,CAAC;AACtF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAE,MAAmB,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAU,QAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC5E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,SAAS,CAAE,EAAU,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAY,SAAA,EAAA,EAAE,EAAE,CAAC;AACrE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAE,IAAc,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAU,QAAA,CAAA,EAAE,IAAI,CAAC;AACtE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,SAAS,CAAE,EAAU,EAAE,IAAc,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAY,SAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC3E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,MAAmB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkB,gBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC3F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,IAAsB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAkB,gBAAA,CAAA,EAAE,IAAI,CAAC;AACrF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,MAAmB,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAmB,iBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC7F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,wBAAwB,CAAE,IAA4B,EAAA;AACpD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAyB,uBAAA,CAAA,EAAE,IAAI,CAAC;AAC9F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,IAAe,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,IAAI,CAAC;AACzE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,UAAU,CAAE,EAAU,EAAE,IAAe,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC9E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAE,EAAU,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AACnE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,MAAmB,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAmB,iBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC7F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,IAAuB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAmB,iBAAA,CAAA,EAAE,IAAI,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,2BAA2B,CAAE,MAAmB,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0C,CAAA,EAAG,IAAI,CAAC,GAAG,CAA6B,2BAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAChH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,4BAA4B,CAAE,IAA+B,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyC,CAAG,EAAA,IAAI,CAAC,GAAG,CAA6B,2BAAA,CAAA,EAAE,IAAI,CAAC;AAC1G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,2BAA2B,CAAE,EAAU,EAAE,IAA+B,EAAA;AACtE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyC,CAAA,EAAG,IAAI,CAAC,GAAG,CAA+B,4BAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC/G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,MAAmB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAuB,qBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACrG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,IAA2B,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAuB,qBAAA,CAAA,EAAE,IAAI,CAAC;AAC/F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAE,MAAmB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAoB,kBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC/F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAE,IAAuB,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAoB,kBAAA,CAAA,EAAE,IAAI,CAAC;AACzF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,kBAAkB,CAAE,EAAU,EAAE,IAAuB,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAsB,mBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC9F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,qBAAqB,CAAE,EAAU,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAsB,mBAAA,EAAA,EAAE,EAAE,CAAC;AAC3F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,MAAmB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAuB,qBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACrG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,qBAAqB,CAAE,EAAU,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAyB,sBAAA,EAAA,EAAE,EAAE,CAAC;AAC9F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,IAAyB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAoC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAuB,qBAAA,CAAA,EAAE,IAAI,CAAC;AAC/F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,qBAAqB,CAAE,EAAU,EAAE,IAAyB,EAAA;AAC1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAyB,sBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACpG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;AAOG;AACH,IAAA,2BAA2B,CAAE,MAAmD,EAAA;QAC9E,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,mBAAA,CAAqB,EAAE;YACvF,MAAM,EAAE,MAAM,CAAC,WAAW;AAC1B,YAAA,OAAO,EAAE;AACP,gBAAA,aAAa,EAAE,CAAA,OAAA,EAAU,MAAM,CAAC,KAAK,CAAE,CAAA;AACxC,aAAA;AACF,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AA7lCU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAEpB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MC/EJ,qBAAqB,CAAA;AAEP,IAAA,YAAA,CAAA;AACf,IAAA,MAAA,CAAA;AACA,IAAA,IAAA,CAAA;AAHV,IAAA,WAAA,CACyB,YAAyB,EACxC,MAAqB,EACrB,IAAgB,EAAA;QAFD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACtB;AAEJ;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAiB,IAAI,EAAE,CAAA;KACjD;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,EAAU,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AACzE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,oBAAoB,CAAE,MAAmB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8C,CAAA,EAAG,IAAI,CAAC,GAAG,CAAqB,mBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC5G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AApCU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAEtB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,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;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCKJ,iBAAiB,CAAA;AAEH,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,EAAE,CAAA;KAC7C;AAED;;;;;AAKG;AACH,IAAA,SAAS,CAAE,MAAmB,EAAA;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,OAAA,CAAS,EAAE;YACpB,MAAM;AACP,SAAA,CACF,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,UAAA,CAAY,EAAE;YACvB,MAAM;AACP,SAAA,CACF,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,WAAW,CAAE,MAAmB,EAAA;QAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,SAAA,CAAW,EAAE;YACtB,MAAM;AACP,SAAA,CACF,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,QAAQ,CAAE,MAAmB,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAQ,MAAA,CAAA,EACnB,EAAE,MAAM,EAAE,CACX,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,OAAO,CAAE,EAAU,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAU,OAAA,EAAA,EAAE,CAAE,CAAA,CAC1B,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,IAAgB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAW,SAAA,CAAA,EACnE,IAAI,CACL,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,SAAS,CAAE,IAAY,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAsB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAQ,MAAA,CAAA,EAC5D,IAAI,CACL,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAE,MAAsB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAoB,kBAAA,CAAA,EAC/B,MAAM,CACP,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,EAAS,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAU,OAAA,EAAA,EAAE,WAAW,EAAE,IAAI,CACzC,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAE,EAAS,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CACrB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAU,OAAA,EAAA,EAAE,CAAE,CAAA,CAC1B,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;;;AAMG;IACH,WAAW,CAAE,EAAS,EAAE,IAAgB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAa,UAAA,EAAA,EAAE,EAAE,EAC5B,IAAI,CACL,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;;;AAMG;IACH,OAAO,CAAE,EAAS,EAAE,IAAa,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAU,OAAA,EAAA,EAAE,EAAE,EACzB,IAAI,CACL,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAED;;;;AAIG;AACH,IAAA,gBAAgB,CAAE,MAAmB,EAAA;QACnC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,eAAA,CAAiB,EAC5B;YACE,MAAM;AACP,SAAA,CACF,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CACxB,CAAA;KACF;AAhNU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAElB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCMJ,mBAAmB,CAAA;AAEL,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,EAAE,CAAA;KAC/C;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAE,IAAgB,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,IAAI,CAAC;AAC1E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,YAAY,CAAE,EAAU,EAAE,IAAgB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC/E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,MAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;AAQG;AACH,IAAA,+BAA+B,CAAE,IAAmC,EAAA;AAClE,QAAA,MAAM,QAAQ,GAAG,IAAI,QAAQ,EAAE,CAAA;AAC/B,QAAA,QAAQ,CAAC,MAAM,CAAC,oBAAoB,EAAE,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAA;QACtE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAA;AAElC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAkC,gCAAA,CAAA,EAAE,QAAQ,CAAC;AAC3F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,MAAmB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkB,gBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC3F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,EAAU,EAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAoB,iBAAA,EAAA,EAAE,EAAE,CAAC;AACpF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,IAAqB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAkB,gBAAA,CAAA,EAAE,IAAI,CAAC;AACpF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,gBAAgB,CAAE,EAAU,EAAE,IAAqB,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAoB,iBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC1F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,MAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAE,EAAU,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAkB,eAAA,EAAA,EAAE,EAAE,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,IAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,IAAI,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,cAAc,CAAE,EAAU,EAAE,IAAmB,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkB,eAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACtF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,uBAAuB,CAAE,MAAmB,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAwB,sBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACvG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,EAAU,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAG,EAAA,IAAI,CAAC,GAAG,CAA0B,uBAAA,EAAA,EAAE,EAAE,CAAC;AAChG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,uBAAuB,CAAE,IAA2B,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAwB,sBAAA,CAAA,EAAE,IAAI,CAAC;AAChG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,sBAAsB,CAAE,EAAU,EAAE,IAA2B,EAAA;AAC7D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,GAAG,CAA0B,uBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACtG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,yBAAyB,CAAE,EAAU,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAA0B,uBAAA,EAAA,EAAE,EAAE,CAAC;AAC/E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,yBAAyB,CAAE,IAA6B,EAAA;AACtD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAqC,CAAG,EAAA,IAAI,CAAC,GAAG,CAA2B,yBAAA,CAAA,EAAE,IAAI,CAAC;AACpG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,wBAAwB,CAAE,EAAU,EAAE,IAA6B,EAAA;AACjE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,GAAG,CAA6B,0BAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACzG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AArPU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAEpB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCZJ,2BAA2B,CAAA;AAEb,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,oBAAoB,IAAI,EAAE,CAAA;KACpD;AAED;;;;;;;AAOG;AACH,IAAA,8BAA8B,CAAE,EAC9B,EAAE,EACF,GAAG,IAAI,EACqB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAA2C,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgC,6BAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACpH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,uBAAuB,CAAE,MAAc,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsC,CAAG,EAAA,IAAI,CAAC,GAAG,CAA4B,yBAAA,EAAA,MAAM,EAAE,CAAC;AACvG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,4BAA4B,CAAE,EAAU,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2C,CAAG,EAAA,IAAI,CAAC,GAAG,CAAuB,oBAAA,EAAA,EAAE,8BAA8B,CAAC;AAC/H,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,2BAA2B,CAAE,MAAmB,EAAA;QAC9C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,2BAAA,CAA6B,EAAE;YACpG,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AA/DU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,kBAE5B,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,cAF1B,MAAM,EAAA,CAAA,CAAA;;4FAEP,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAHvC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCRJ,gBAAgB,CAAA;AAEF,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,IAAI,EAAE,CAAA;KAC5C;AAED;;;;;AAKG;AACH,IAAA,yBAAyB,CAAE,IAA4B,EAAA;AACrD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiC,CAAG,EAAA,IAAI,CAAC,GAAG,CAA0B,wBAAA,CAAA,EAAE,IAAI,CAAC;AAC/F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,sBAAsB,CAAE,EAAU,EAAE,IAA0B,EAAA;AAC5D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAsB,mBAAA,EAAA,EAAE,CAAM,IAAA,CAAA,EAAE,IAAI,CAAC;AAClG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AApCU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,kBAEjB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA;;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCKJ,4BAA4B,CAAA;AAI7B,IAAA,IAAA,CAAA;AACe,IAAA,WAAA,CAAA;AAJjB,IAAA,MAAM,CAAQ;IAEtB,WACU,CAAA,IAAgB,EACD,WAAwB,EAAA;QADvC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QACD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QAE/C,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,wBAAwB,IAAI,EAAE,CAAA;KACzD;AAED;;;;;;AAMG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,wBAAwB,IAAI,EAAE,CAAA;KACvD;AAED;;;;;AAKG;AACI,IAAA,uBAAuB,CAAE,OAAe,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4C,CAAG,EAAA,IAAI,CAAC,GAAG,CAAiC,8BAAA,EAAA,OAAO,EAAE,CAAC;AACnH,aAAA,IAAI,CAACC,KAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACI,IAAA,gCAAgC,CAAE,OAAuC,EAAA;AAC9E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAiC,+BAAA,CAAA,EAC5C,OAAO,EAAE;AACP,YAAA,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;AAChC,SAAA,CAAC,CAAC,IAAI,CAACA,KAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACnC;AAED;;;;;;;AAOG;AACI,IAAA,iCAAiC,CAAE,EACxC,MAAM,EACN,WAAW,GACoB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CACpB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAoC,iCAAA,EAAA,MAAM,CAAE,CAAA,EACvD,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;AAC/B,YAAA,MAAM,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE;AACtC,SAAA,CAAC,CAAC,IAAI,CAACA,KAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACnC;AAED;;;;;;;AAOG;AACI,IAAA,uBAAuB,CAAE,EAC9B,GAAG,EACH,GAAG,IAAI,EACgB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAuC,oCAAA,EAAA,GAAG,CAAE,CAAA,EACvD,IAAI,EAAE;AACJ,YAAA,OAAO,EAAE,IAAI,CAAC,eAAe,EAAE;AAChC,SAAA,CAAC,CAAC,IAAI,CAACA,KAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACnC;IAEO,eAAe,GAAA;AACrB,QAAA,OAAO,EAAE,IAAI,IAAI,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,CAAA;KACvD;AAvFU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,4CAK7B,KAAK,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AALJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,cAF3B,MAAM,EAAA,CAAA,CAAA;;4FAEP,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAHxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAMI,MAAM;2BAAC,KAAK,CAAA;;;MCZJ,qBAAqB,CAAA;AAEP,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,iBAAiB,IAAI,EAAE,CAAA;KACjD;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAE,MAAmB,EAAA;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,YAAA,CAAc,EAAE;YAC1E,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,yBAAyB,CAAE,MAAmB,EAAA;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,yBAAA,CAA2B,EAAE;YAClG,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;QAC/B,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,UAAA,CAAY,EAAE;YACtE,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,EAAU,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AACzE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,IAAgB,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EACpE,IAAI,CACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KAChC;AAED;;;;;;AAMG;IACH,WAAW,CAAE,EAAU,EAAE,IAAgB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,EACzE,IAAI,CACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KAChC;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAE,EAAU,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,EAAE,EAAE,CAAC;AAC5E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,MAAmB,EAAA;QACrC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,iBAAA,CAAmB,EAAE;YACnF,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,EAAU,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAqB,kBAAA,EAAA,EAAE,EAAE,CAAC;AACtF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,IAAsB,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAmB,iBAAA,CAAA,EACjF,IAAI,CACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KAChC;AAED;;;;;;AAMG;IACH,iBAAiB,CAAE,EAAU,EAAE,IAAsB,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAgC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAqB,kBAAA,EAAA,EAAE,EAAE,EACtF,IAAI,CACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KAChC;AAED;;;;;AAKG;AACH,IAAA,oBAAoB,CAAE,EAAU,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAgC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAqB,kBAAA,EAAA,EAAE,EAAE,CAAC;AACzF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,4BAA4B,CAAE,MAAmB,EAAA;QAC/C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2C,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,4BAAA,CAA8B,EAAE;YACxG,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,4BAA4B,CAAE,IAAgC,EAAA;AAC5D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0C,CAAG,EAAA,IAAI,CAAC,GAAG,CAA8B,4BAAA,CAAA,EACtG,IAAI,CACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KAChC;AAED;;;;;;AAMG;IACH,2BAA2B,CAAE,EAAU,EAAE,IAAgC,EAAA;AACvE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0C,CAAG,EAAA,IAAI,CAAC,GAAG,CAAgC,6BAAA,EAAA,EAAE,EAAE,EAC3G,IAAI,CACL,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KAChC;AAED;;;;;AAKG;AACH,IAAA,8BAA8B,CAAE,EAAU,EAAA;AACxC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAA0C,CAAG,EAAA,IAAI,CAAC,GAAG,CAAgC,6BAAA,EAAA,EAAE,EAAE,CAAC;AAC9G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AA3MU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,kBAEtB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,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;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCiCJ,kBAAkB,CAAA;AAEJ,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,IAAI,EAAE,CAAA;KAC9C;AAED;;;;;AAKG;AACH,IAAA,qBAAqB,CAAE,IAAyB,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAqB,mBAAA,CAAA,EAAE,IAAI,CAAC;AAC5F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,yBAAyB,CAAE,EAAU,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAuC,oCAAA,EAAA,EAAE,EAAE,CAAC;AAChH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;AACH,IAAA,2BAA2B,CAAE,IAA+B,EAAA;AAC1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyC,CAAG,EAAA,IAAI,CAAC,GAAG,CAA4B,0BAAA,CAAA,EAAE,IAAI,CAAC;AACzG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;AACH,IAAA,2BAA2B,CAAE,IAA4B,EAAA;AACvD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAA4B,0BAAA,CAAA,EAAE,IAAI,CAAC;AACjF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;AAOG;AACH,IAAA,0BAA0B,CAAE,EAAE,SAAS,EAAE,GAAG,IAAI,EAA4B,EAAA;AAC1E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwC,CAAA,EAAG,IAAI,CAAC,GAAG,CAA6B,0BAAA,EAAA,SAAS,CAAE,CAAA,EAAE,IAAI,CAAC;AACpH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,MAAmB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAiB,eAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACzF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,wBAAwB,CAAE,MAAmB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkC,gCAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAClH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,6BAA6B,CAAE,MAAmC,EAAA;AAChE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2C,CAAG,EAAA,IAAI,CAAC,GAAG,CAA8B,4BAAA,CAAA,EAAE,MAAM,CAAC;AAC/G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,oCAAoC,CAAE,MAAmC,EAAA;AACvE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2C,CAAG,EAAA,IAAI,CAAC,GAAG,CAAsC,oCAAA,CAAA,EAAE,MAAM,CAAC;AACvH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,yBAAyB,CAAE,UAAkB,EAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwC,CAAG,EAAA,IAAI,CAAC,GAAG,CAA6B,0BAAA,EAAA,UAAU,EAAE,CAAC;AAC9G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,MAAmB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAwB,sBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACtG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,qBAAqB,CAAE,EAAU,EAAE,IAA0B,EAAA;AAC3D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAA,EAAG,IAAI,CAAC,GAAG,CAA0B,uBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACrG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,wBAAwB,CAAE,EAAU,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAoC,CAAG,EAAA,IAAI,CAAC,GAAG,CAA0B,uBAAA,EAAA,EAAE,EAAE,CAAC;AAClG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,sBAAsB,CAAE,IAA0B,EAAA;AAChD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAoC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAwB,sBAAA,CAAA,EAAE,IAAI,CAAC;AAChG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,qBAAqB,CAAE,EAAU,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAG,EAAA,IAAI,CAAC,GAAG,CAA0B,uBAAA,EAAA,EAAE,EAAE,CAAC;AAC/F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,2BAA2B,CAAE,MAAmB,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0C,CAAA,EAAG,IAAI,CAAC,GAAG,CAA8B,4BAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACjH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,2BAA2B,CAAE,IAA+B,EAAA;AAC1D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyC,CAAG,EAAA,IAAI,CAAC,GAAG,CAA8B,4BAAA,CAAA,EAAE,IAAI,CAAC;AAC3G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,0BAA0B,CAAE,EAAU,EAAE,IAA+B,EAAA;AACrE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgC,6BAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAChH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,MAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,4BAA4B,CAAE,MAAmB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2C,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgC,8BAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACpH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,mCAAmC,CAAE,IAAgC,EAAA;AACnE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0C,CAAG,EAAA,IAAI,CAAC,GAAG,CAAgC,8BAAA,CAAA,EAAE,IAAI,CAAC;AAC9G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,kCAAkC,CAAE,EAAU,EAAE,IAAgC,EAAA;AAC9E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0C,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkC,+BAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACnH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,2BAA2B,CAAE,MAAmB,EAAA;AAC9C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0C,CAAA,EAAG,IAAI,CAAC,GAAG,CAA8B,4BAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACjH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kCAAkC,CAAE,IAA+B,EAAA;AACjE,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyC,CAAG,EAAA,IAAI,CAAC,GAAG,CAA8B,4BAAA,CAAA,EAAE,IAAI,CAAC;AAC3G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,iCAAiC,CAAE,EAAU,EAAE,IAA+B,EAAA;AAC5E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgC,6BAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAChH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAE,MAAmB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA4B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAa,WAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAClF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,EAAU,EAAA;AACtB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAe,YAAA,EAAA,EAAE,EAAE,CAAC;AAC3E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAE,IAAiB,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAa,WAAA,CAAA,EAAE,IAAI,CAAC;AAC5E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,YAAY,CAAE,EAAU,EAAE,IAAiB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAe,YAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACjF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,EAAU,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAe,YAAA,EAAA,EAAE,EAAE,CAAC;AACpE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,4BAA4B,CAAE,EAAU,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2C,CAAG,EAAA,IAAI,CAAC,GAAG,CAAgC,6BAAA,EAAA,EAAE,EAAE,CAAC;AAC5G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAY,UAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACnF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;AAQG;AACH,IAAA,mBAAmB,CAAE,MAAmB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAkC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAkB,gBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC7F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;;AASG;AACH,IAAA,oBAAoB,CAAE,UAAkB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAwB,qBAAA,EAAA,UAAU,EAAE,CAAC;AACpG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AA9ZU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAEnB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,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;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MC9BJ,uBAAuB,CAAA;AAET,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;;AAKG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,mBAAmB,IAAI,EAAE,CAAA;KACnD;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,MAAmB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA+B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACxF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,IAAoB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,EAAE,IAAI,EAAE,CAAC;AACtF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,eAAe,CAAE,EAAU,EAAE,IAAoB,EAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAG,EAAA,IAAI,CAAC,GAAG,kBAAkB,EAAE,CAAA,CAAE,EAAE,EAAE,IAAI,EAAE,CAAC;AAC3F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,EAAU,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAkB,eAAA,EAAA,EAAE,EAAE,CAAC;AACvE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,qBAAqB,CAAE,EAAU,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA8B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAyB,sBAAA,EAAA,EAAE,CAAE,CAAA,EAAE,EAAE,CAAC;AAC5F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,8BAA8B,CAAE,IAAiC,EAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2C,CAAA,EAAG,IAAI,CAAC,GAAG,CAA8B,4BAAA,CAAA,EAAE,EAAE,IAAI,EAAE,CAAC;AACjH,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,oBAAoB,CAAE,MAAmB,EAAA;AACvC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAqB,mBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACjG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AA5FU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,kBAExB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,uBAAuB,cAFtB,MAAM,EAAA,CAAA,CAAA;;4FAEP,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCRJ,mBAAmB,CAAA;AAEL,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACtB;AAEJ;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,eAAe,IAAI,EAAE,CAAA;KAC/C;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAa,WAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACjF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,IAAuB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAyB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAU,QAAA,CAAA,EAAE,IAAI,CAAC;AACvE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,IAAoB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAiB,eAAA,CAAA,EAAE,IAAI,CAAC;AACnF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AA9CU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAEpB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCEJ,iBAAiB,CAAA;AAEH,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,IAAI,EAAE,CAAA;KAC7C;AAED;;;;;AAKG;AACH,IAAA,qBAAqB,CAAE,MAAmB,EAAA;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,mBAAA,CAAqB,EAAE;YACxF,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,MAAmB,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAmB,iBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC7F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,0BAA0B,CAAE,MAAmB,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAmC,CAAA,EAAG,IAAI,CAAC,GAAG,CAA4B,0BAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACxG,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,yBAAyB,CAAE,MAAmB,EAAA;QAC5C,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,yBAAA,CAA2B,EAAE;YAClG,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,aAAqB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAa,UAAA,EAAA,aAAa,EAAE,EAAE;AAC5D,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,YAAY,EAAE,aAAa;AAC5B,SAAA,CAAC,CAAA;KACH;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,aAAqB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAe,YAAA,EAAA,aAAa,EAAE,CAAC;AACtF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,aAAqB,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAe,YAAA,EAAA,aAAa,EAAE,CAAC;AAC/E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,qBAAqB,CAAE,MAAmB,EAAA;QACxC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,oBAAA,CAAsB,EAAE;YACzF,MAAM;SACP,CAAC;AACC,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,MAAmB,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAW,SAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC9E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAtHU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAElB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCWJ,kBAAkB,CAAA;AAEJ,IAAA,YAAA,CAAA;AACf,IAAA,MAAA,CAAA;AACA,IAAA,IAAA,CAAA;AAHV,IAAA,WAAA,CACyB,YAAyB,EACxC,MAAqB,EACrB,IAAgB,EAAA;QAFD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACtB;AAEJ;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,IAAI,EAAE,CAAA;KAC9C;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAE,IAAiB,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAa,WAAA,CAAA,EAAE,IAAI,CAAC;aAC5E,IAAI,CACH,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,EACvB,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,YAAY,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,CAAC,CACtG,CAAA;KACJ;AAED;;;;;AAKG;AACH,IAAA,iBAAiB,CAAE,IAAqB,EAAA;AACtC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAkB,gBAAA,CAAA,EAAE,IAAI,CAAC;AACjF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,cAAc,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,YAAA,CAAA,EAAE,IAAI,CAAC;AACnE,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,EACvB,GAAG,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CACjE,CAAA;KACJ;AAED;;;;;;;;;AASG;AACH,IAAA,WAAW,CAAE,EACX,SAAS,EACT,OAAO,EACP,KAAK,GACK,EAAA;AACV,QAAA,IAAI,OAAO,GAAG,IAAI,WAAW,CAAC,EAAE,CAAC,CAAA;QAEjC,IAAI,KAAK,EAAE;YAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAU,OAAA,EAAA,KAAK,CAAE,CAAA,CAAC,CAAA;SAAE;QAExE,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,SAAA,CAAW,EAAE;AACtB,YAAA,UAAU,EAAE,SAAS;AACrB,YAAA,QAAQ,EAAE,OAAO;SAClB,EAAE;YACD,OAAO;AACR,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACnC;AAED;;;;;;AAMG;IACH,SAAS,GAAA;QACP,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,QAAA,CAAU,CAAC;AAC/D,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAE,KAAa,EAAA;QACvB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,QAAA,CAAU,EAAE;AACjE,YAAA,OAAO,EAAE;gBACP,aAAa,EAAE,CAAU,OAAA,EAAA,KAAK,CAAE,CAAA;AACjC,aAAA;AACF,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,OAAO,CAAE,EAAU,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAU,OAAA,EAAA,EAAE,EAAE,CAAC;AACpE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,QAAQ,CAAE,MAAmB,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAQ,MAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC3E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;;;AAQG;IACH,QAAQ,CAAE,EAAE,IAAI,EAAc,EAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAG,EAAA,IAAI,CAAC,GAAG,UAAU,IAAI,CAAC,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,iBAAiB,CAAE,EACjB,UAAU,EACO,EAAA;QACjB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,QAAA,CAAU,EAAE;AACjE,YAAA,WAAW,EAAE,UAAU;AACxB,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,QAAQ,CAAE,MAAmB,EAAA;AAC3B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAQ,MAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACxE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,OAAO,CAAE,EAAU,EAAA;AACjB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAU,OAAA,EAAA,EAAE,EAAE,CAAC;AACjE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,QAAQ,CAAE,IAAY,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAsB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAQ,MAAA,CAAA,EAAE,IAAI,CAAC;AAClE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,OAAO,CAAE,EAAU,EAAE,IAAY,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAsB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAU,OAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AACvE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAE,EAAU,EAAA;AACpB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAU,OAAA,EAAA,EAAE,EAAE,CAAC;AAC/D,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,YAAY,CAAE,MAAmB,EAAA;AAC/B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA2B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAa,WAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACjF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAE,WAAwB,EAAA;QAClC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,QAAA,CAAU,EAAE;AAClE,YAAA,MAAM,EAAE,WAAW;AACpB,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;AACH,IAAA,iBAAiB,CAAE,MAGlB,EAAA;QACC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAyB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,QAAA,CAAU,EAAE;YAClE,MAAM,EAAE,MAAM,CAAC,WAAW;AAC1B,YAAA,OAAO,EAAE;AACP,gBAAA,aAAa,EAAE,CAAA,OAAA,EAAU,MAAM,CAAC,KAAK,CAAE,CAAA;AACxC,aAAA;AACF,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAjQU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAEnB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,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;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCPJ,kBAAkB,CAAA;AAEJ,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACtB;AAEJ;;;;;AAKG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,IAAI,EAAE,CAAA;KAC9C;AAED;;;;;AAKG;AACH,IAAA,gBAAgB,CAAE,IAAmB,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA8B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAgB,cAAA,CAAA,EAAE,IAAI,CAAC;AAClF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,oBAAoB,CAAE,IAAwB,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAa,WAAA,CAAA,EAAE,IAAI,CAAC;AACnF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAE,IAAkB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAe,aAAA,CAAA,EAAE,IAAI,CAAC;AACpE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,aAAa,CAAE,IAAiB,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAa,WAAA,CAAA,EAAE,IAAI,CAAC;AAC5E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,eAAe,CAAE,IAAmB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA6B,CAAG,EAAA,IAAI,CAAC,GAAG,CAAe,aAAA,CAAA,EAAE,IAAI,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,4BAA4B,CAAE,IAAgC,EAAA;AAC5D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA0C,CAAG,EAAA,IAAI,CAAC,GAAG,CAAgC,8BAAA,CAAA,EAAE,IAAI,CAAC;AAC9G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;AAIG;AACH,IAAA,kBAAkB,CAAE,WAAiC,EAAA;QACnD,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,iBAAA,CAAmB,EAAE;AACnF,YAAA,MAAM,EAAE,WAAW;AACpB,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AA3FU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAEnB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAHjB,MAAM,EAAA,CAAA,CAAA;;4FAGP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAJ9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAII,MAAM;2BAAC,KAAK,CAAA;;;MCNJ,mBAAmB,CAAA;AAEL,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,IAAI,EAAE,CAAA;KAC9C;AAED;;;;;;AAMG;AACH,IAAA,mBAAmB,CAAE,IAAuB,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAiC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAW,SAAA,CAAA,EAAE,IAAI,CAAC;AAChF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,oBAAoB,CAAE,IAAwB,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAkC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAqB,mBAAA,CAAA,EAAE,IAAI,CAAC;AAC3F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAE,EAAU,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAuC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAgC,6BAAA,EAAA,EAAE,CAAE,CAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KAC1I;AAED;;;;;;;;AAQG;AACH,IAAA,0BAA0B,CAAE,EAAE,UAAU,EAAE,QAAQ,EAA0B,EAAA;AAC1E,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAsC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAc,WAAA,EAAA,UAAU,eAAe,EAAE;AAC9G,YAAA,oBAAoB,EAAE,QAAQ;AAC/B,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAE,MAAmB,EAAA;QACjC,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,aAAA,CAAe,EAAE;YAC3E,MAAM;AACP,SAAA,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAzEU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,kBAEpB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA,CAAA;;4FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;MCJJ,kBAAkB,CAAA;AAEJ,IAAA,YAAA,CAAA;AACf,IAAA,IAAA,CAAA;IAFV,WACyB,CAAA,YAAyB,EACxC,IAAgB,EAAA;QADD,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QACxC,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;KACrB;AAEL;;;;AAIG;AACH,IAAA,IAAI,GAAG,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,IAAI,EAAE,CAAA;KAC9C;AAED;;;;;AAKG;AACH,IAAA,WAAW,CAAE,MAAmB,EAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA0B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAW,SAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC9E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,SAAS,CAAE,EAAU,EAAA;AACnB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAa,UAAA,EAAA,EAAE,EAAE,CAAC;AACtE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,UAAU,CAAE,IAAc,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAwB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAW,SAAA,CAAA,EAAE,IAAI,CAAC;AACvE,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;;AAMG;IACH,SAAS,CAAE,EAAU,EAAE,IAAc,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwB,CAAA,EAAG,IAAI,CAAC,GAAG,CAAa,UAAA,EAAA,EAAE,CAAE,CAAA,EAAE,IAAI,CAAC;AAC5E,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,cAAc,CAAE,MAAmB,EAAA;AACjC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAA6B,CAAA,EAAG,IAAI,CAAC,GAAG,CAAe,aAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AACrF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,mBAAmB,CAAE,IAAsB,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAgC,CAAG,EAAA,IAAI,CAAC,GAAG,CAAmB,iBAAA,CAAA,EAAE,IAAI,CAAC;AACvF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,kBAAkB,CAAE,MAAmB,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAiC,CAAA,EAAG,IAAI,CAAC,GAAG,CAAmB,iBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC7F,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,6BAA6B,CAAE,IAAiC,EAAA;AAC9D,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAA2C,CAAG,EAAA,IAAI,CAAC,GAAG,CAA+B,6BAAA,CAAA,EAAE,IAAI,CAAC;AAC9G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,yBAAyB,CAAE,MAAmB,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAwC,CAAA,EAAG,IAAI,CAAC,GAAG,CAA2B,yBAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC5G,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AAED;;;;;AAKG;AACH,IAAA,+BAA+B,CAAE,MAAmB,EAAA;AAClD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAoD,CAAA,EAAG,IAAI,CAAC,GAAG,CAAgC,8BAAA,CAAA,EAAE,EAAE,MAAM,EAAE,CAAC;AAC7H,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC,CAAA;KACjC;AA5HU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,kBAEnB,KAAK,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,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;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;ICnBL,kBAMX;AAND,CAAA,UAAY,iBAAiB,EAAA;AAC3B,IAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,iBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,iBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,iBAAA,CAAA,sBAAA,CAAA,GAAA,sBAA6C,CAAA;AAC/C,CAAC,EANW,iBAAiB,KAAjB,iBAAiB,GAM5B,EAAA,CAAA,CAAA;;ICNW,sBAIX;AAJD,CAAA,UAAY,qBAAqB,EAAA;AAC/B,IAAA,qBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,qBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB,CAAA;AACvB,IAAA,qBAAA,CAAA,YAAA,CAAA,GAAA,aAA0B,CAAA;AAC5B,CAAC,EAJW,qBAAqB,KAArB,qBAAqB,GAIhC,EAAA,CAAA,CAAA;;ICJW,MAKX;AALD,CAAA,UAAY,KAAK,EAAA;AACf,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACjB,IAAA,KAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,KAAA,CAAA,UAAA,CAAA,GAAA,UAAqB,CAAA;AACrB,IAAA,KAAA,CAAA,QAAA,CAAA,GAAA,SAAkB,CAAA;AACpB,CAAC,EALW,KAAK,KAAL,KAAK,GAKhB,EAAA,CAAA,CAAA,CAAA;IAEW,iBAKX;AALD,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,gBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC,CAAA;AACnC,CAAC,EALW,gBAAgB,KAAhB,gBAAgB,GAK3B,EAAA,CAAA,CAAA,CAAA;IAEW,aAKX;AALD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,YAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,YAAA,CAAA,YAAA,CAAA,GAAA,YAAyB,CAAA;AACzB,IAAA,YAAA,CAAA,QAAA,CAAA,GAAA,QAAiB,CAAA;AACnB,CAAC,EALW,YAAY,KAAZ,YAAY,GAKvB,EAAA,CAAA,CAAA;;MCXY,iBAAiB,CAAA;AAIH,IAAA,YAAA,CAAA;AAHjB,IAAA,MAAM,CAAe;AAE7B,IAAA,WAAA,CACyB,YAAyB,EAAA;QAAzB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;AAEhD,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAElB,IAAI,CAAC,OAAO,EAAE;AACX,aAAA,IAAI,CAAC,CAAC,MAAM,KAAI;AACf,YAAA,IAAI,CAAC,MAAM;gBAAE,OAAM;AAEnB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;AACtB,SAAC,CAAC,CAAA;KACL;AAED;;;;;;;;AAQG;AACH,IAAA,MAAM,GAAG,CAAK,OAAgB,EAAE,SAAiB,EAAE,IAAO,EAAA;QACxD,OAAO,OAAO,CAAC,OAAO,CAAC,CAAA,OAAA,EAAU,SAAS,CAAE,CAAA,EAAE,IAAI,CAAC,CAAA;KACpD;AAED;;;;;;AAMG;IACH,MAAM,UAAU,CAAE,WAAmB,EAAA;QACnC,MAAM,QAAQ,GAAG,CAAC,CAAA;AAElB,QAAA,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,QAAQ,EAAE,OAAO,EAAE,EAAE;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;AAEjD,YAAA,IAAI,OAAO,EAAE,UAAU,EAAE;AACvB,gBAAA,OAAO,OAAO,CAAA;aACf;AAED,YAAA,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,WAAW,CAAC,CAAA;AAEnC,YAAA,IAAI,OAAO,GAAG,QAAQ,EAAE;AACtB,gBAAA,MAAM,IAAI,CAAC,IAAI,EAAE,CAAA;aAClB;SACF;QAED,MAAM,IAAI,KAAK,CAAC,CAAA,gCAAA,EAAmC,WAAW,CAAW,QAAA,EAAA,QAAQ,CAAY,UAAA,CAAA,CAAC,CAAA;KAC/F;AAED;;;;;;;AAOG;IACH,SAAS,CAAK,OAAyB,EAAE,KAAa,EAAA;AACpD,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,UAAU,KAAI;AACnC,YAAA,IAAK,OAAmB,EAAE,IAAI,EAAE;AAC7B,gBAAA,OAAmB,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAO,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;aACrE;iBAAM;AACL,gBAAA,IAAI,CAAC,MAAM,EAAE,SAAS,CAAE,OAAkB,CAAC;AACxC,qBAAA,IAAI,CAAC,KAAK,EAAE,CAAC,IAAO,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;aACnD;AACH,SAAC,CAAC,CAAA;KACH;AAED;;;;;;;AAOG;IACH,WAAW,CAAK,OAAgB,EAAE,KAAa,EAAA;QAC7C,OAAO,IAAI,UAAU,CAAC,CAAC,UAAU,KAC/B,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAO,KAAK,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KAC7D;IAEO,OAAO,GAAA;AACb,QAAA,OAAO,IAAI,OAAO,CAAiB,CAAC,OAAO,KAAI;AAC7C,YAAA,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,CAAA;AAErC,YAAA,IAAI,CAAC,OAAO;AAAE,gBAAA,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA;YAEnC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE;gBACzC,MAAM,EAAE,OAAO,CAAC,GAAG;gBACnB,MAAM,EAAE,OAAO,CAAC,IAAI;AACpB,gBAAA,iBAAiB,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC;AAChC,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,WAAW,EAAE,KAAK;AACnB,aAAA,CAAC,CAAA;AAEF,YAAA,IAAI,OAAO,CAAC,KAAK,EAAE;AACjB,gBAAA,MAAM,CAAC,YAAY,GAAG,IAAI,CAAA;aAC3B;AAED,YAAA,OAAO,OAAO,CAAC,MAAM,CAAC,CAAA;AACxB,SAAC,CAAC,CAAA;KACH;AAEO,IAAA,MAAM,IAAI,GAAA;AAChB,QAAA,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAA;AAEzB,QAAA,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;KAC/D;AAlHU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,kBAIlB,KAAK,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAJJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAKI,MAAM;2BAAC,KAAK,CAAA;;;MCNJ,aAAa,CAAA;AAEC,IAAA,YAAA,CAAA;AADzB,IAAA,WAAA,CACyB,YAAyB,EAAA;QAAzB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;KAEjD;IAEM,MAAM,UAAU,CAAE,SAAiB,EAAA;AACxC,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;;AAGtC,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;QACjC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;;AAGzC,QAAA,MAAM,EAAE,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC,CAAA;;QAGrD,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC5C;AACE,YAAA,IAAI,EAAE,SAAS;YACf,EAAE;AACH,SAAA,EACD,SAAS,EACT,OAAO,CACR,CAAA;AAED,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAI,CAAA,EAAA,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE,CAAA;KAChF;IAEM,MAAM,UAAU,CAAE,OAAe,EAAA;;AAEtC,QAAA,MAAM,CAAC,QAAQ,EAAE,gBAAgB,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAEvD,QAAA,IAAI,CAAC,QAAQ,IAAI,CAAC,gBAAgB,EAAE;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;SAAE;AAE/G,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;QAEtC,MAAM,EAAE,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAA;QAC5C,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAA;;QAG7D,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC3C;AACE,YAAA,IAAI,EAAE,SAAS;YACf,EAAE;AACH,SAAA,EACD,SAAS,EACT,UAAU,CACX,CAAA;;AAGD,QAAA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AACjC,QAAA,OAAO,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;KACjC;AAEO,IAAA,MAAM,OAAO,GAAA;;AAEnB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAA;;QAGnE,OAAO,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAClC,KAAK,EACL,MAAM,EACN,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,IAAI,EACJ,CAAC,SAAS,EAAE,SAAS,CAAC,CACvB,CAAA;KACF;AAEO,IAAA,kBAAkB,CAAE,IAAgB,EAAA;QAC1C,IAAI,MAAM,GAAG,EAAE,CAAA;AACf,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAA;AAE3B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;SACvC;AAED,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;KACpB;AAEO,IAAA,kBAAkB,CAAE,MAAc,EAAA;AACxC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;AACjC,QAAA,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAA;AAC/B,QAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AACjC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;SACtC;AACD,QAAA,OAAO,KAAK,CAAA;KACb;AAEO,IAAA,mBAAmB,CAAE,MAAmB,EAAA;QAC9C,IAAI,MAAM,GAAG,EAAE,CAAA;AACf,QAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;AACpC,QAAA,MAAM,GAAG,GAAG,KAAK,CAAC,UAAU,CAAA;AAE5B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;SACxC;AAED,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,CAAA;KACpB;AAEO,IAAA,mBAAmB,CAAE,MAAc,EAAA;AACzC,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAA;AACjC,QAAA,MAAM,GAAG,GAAG,YAAY,CAAC,MAAM,CAAA;AAC/B,QAAA,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAA;AAEjC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;SACtC;QAED,OAAO,KAAK,CAAC,MAAM,CAAA;KACpB;AAhHU,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAEd,KAAK,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAFJ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,KAAK,CAAA;;;ACLjB;;;;;;;;AAQG;AACa,SAAA,qBAAqB,CAAE,GAAyB,EAAE,IAAmB,EAAA;AACnF,IAAA,IAAI,EAAE,OAAO,EAAE,GAAG,GAAG,CAAA;AAErB,IAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,YAAY,QAAQ,CAAC,EAAE;QACnE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAA;KAC1D;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;QAC1B,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,kBAAkB,CAAC,CAAA;KACpD;IAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE;AACnC,QAAA,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,iBAAiB,EAAE,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAA;KAC/E;IAED,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;AAE5B,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;AAClB;;ACzBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;AACa,SAAA,iBAAiB,CAAE,OAA6B,EAAE,IAAmB,EAAA;IACnF,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAE9D,IAAA,IAAI,CAAC,wBAAwB;AAAE,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA;AAEnD,IAAA,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAAE,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA;AAEvD,IAAA,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;AACtB,QAAA,UAAU,EAAE;AACV,YAAA,MAAM,EAAE,wBAAwB;AACjC,SAAA;AACF,KAAA,CAAC,CAAA;AAEF,IAAA,OAAO,IAAI,CAAC,OAAO,CAAC,CAAA;AACtB;;AC7CA;;;;;;;AAOG;AACa,SAAA,mBAAmB,CAAE,GAAyB,EAAE,IAAmB,EAAA;IACjF,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAChD,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,CAAA;AAEpC,IAAA,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;AACjE,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;KACjB;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;AAEpC,IAAA,IAAI,CAAC,KAAK;AAAE,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;AAE5B,IAAA,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC;AACd,QAAA,UAAU,EAAE;YACV,aAAa,EAAE,CAAU,OAAA,EAAA,KAAK,CAAE,CAAA;AACjC,SAAA;AACF,KAAA,CAAC,CAAA;AAEF,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;AAClB;;AC1BA,MAAM,WAAW,GAAG,KAAK,CAAA;AACzB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAmD,CAAA;AAExE;;;;;;;;AAQG;AACa,SAAA,sBAAsB,CAAE,GAAqB,EAAE,IAAmB,EAAA;IAChF,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAA;AAE9C,IAAA,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK;AAAE,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;IAE1C,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAE3C,IAAI,MAAM,EAAE;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,GAAG,CAAA;QAEzC,IAAI,CAAC,SAAS,EAAE;AAAE,YAAA,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;SAAE;QAEzC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;KAChC;AAED,IAAA,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CACnBE,KAAG,CAAC,CAAC,GAAG,KAAI;AACV,QAAA,IAAI,EAAE,GAAG,YAAY,YAAY,CAAC,EAAE;YAAE,OAAM;SAAE;AAE9C,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,QAAQ,IAAI,WAAW,CAAC,CAAA;AAElD,QAAA,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAA;KAC3C,CAAC,CACH,CAAA;AACH;;AC3Ca,MAAA,cAAc,GAAG,CAAC,MAAc,KAAY;IACvD,MAAM,IAAI,GAAG,IAAI,UAAU,CACzB,IAAI,CAAC,MAAM,CAAC;SACT,KAAK,CAAC,EAAE,CAAC;AACT,SAAA,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CACnC,CAAA;AAED,IAAA,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC,CAAA;IAE1D,OAAO,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAA;AACzC,EAAC;AAEY,MAAA,iBAAiB,GAAG,CAAC,MAAc,KAAK,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;;ACTvF;;;;;;AAMG;AACU,MAAA,WAAW,GAAG,CAAC,MAAmB,KAAY;IACzD,MAAM,aAAa,GAAa,EAAE,CAAA;AAElC,IAAA,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAC9C,QAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACxB,MAAM,UAAU,GAAG,KAAK;AACrB,iBAAA,GAAG,CAAC,CAAC,IAAI,KAAK,CAAG,EAAA,kBAAkB,CAAC,GAAG,CAAC,CAAI,CAAA,EAAA,kBAAkB,CAAC,IAAiC,CAAC,EAAE,CAAC;iBACpG,IAAI,CAAC,GAAG,CAAC,CAAA;AAEZ,YAAA,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;SAC/B;aAAM;AACL,YAAA,MAAM,YAAY,GAAG,CAAG,EAAA,kBAAkB,CAAC,GAAG,CAAC,CAAA,CAAA,EAAI,kBAAkB,CAAC,KAAkC,CAAC,EAAE,CAAA;AAE3G,YAAA,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;SACjC;AACH,KAAC,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AAE3C,IAAA,OAAO,WAAW,CAAC,MAAM,GAAG,CAAI,CAAA,EAAA,WAAW,CAAE,CAAA,GAAG,EAAE,CAAA;AACpD,EAAC;AAED;;;;;;AAMG;AACU,MAAA,UAAU,GAAG,CACxB,MAAmB,KACJ,IAAI,UAAU,CAAC;AAC9B,IAAA,UAAU,EAAE,MAAM;AACnB,CAAA,EAAC;AAEF;;;;;;AAMG;MACU,UAAU,GAAG,CAAC,MAAmC,GAAA,QAAQ,KAA2D;AAC/H,IAAA,MAAM,OAAO,GAAG;AACd,QAAA,MAAM,EAAE,iBAAiB;KAC1B,CAAA;IAED,OAAO,MAAM,KAAK,QAAQ;AACxB,UAAE,OAAO;AACT,UAAE,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;AAC9B,EAAC;AAED;;;;;;AAMG;MACU,UAAU,GAAG,CAAC,MAAmC,GAAA,QAAQ,KAA2D;AAC/H,IAAA,MAAM,OAAO,GAAG;AACd,QAAA,MAAM,EAAE,iBAAiB;KAC1B,CAAA;IAED,OAAO,MAAM,KAAK,QAAQ;AACxB,UAAE,OAAO;AACT,UAAE,IAAI,WAAW,CAAC,OAAO,CAAC,CAAA;AAC9B;;AC7EA;;AAEG;;ACFH;;AAEG;;;;"}