@infrab4a/connect-angular 5.0.0-beta.52 → 5.0.0-beta.54
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.
- package/esm2022/angular-connect.module.mjs +1 -1
- package/esm2022/angular-elastic-search.module.mjs +1 -1
- package/esm2022/angular-firebase-auth.module.mjs +1 -1
- package/esm2022/angular-firestore.module.mjs +1 -1
- package/esm2022/angular-hasura-graphql.module.mjs +1 -1
- package/esm2022/consts/category-structure.mjs +1 -1
- package/esm2022/consts/default-shop.const.mjs +1 -1
- package/esm2022/consts/es-config.const.mjs +1 -1
- package/esm2022/consts/firebase-const.mjs +1 -1
- package/esm2022/consts/hasura-options.const.mjs +1 -1
- package/esm2022/consts/index.mjs +1 -1
- package/esm2022/consts/persistence.const.mjs +1 -1
- package/esm2022/consts/storage-base-url.const.mjs +1 -1
- package/esm2022/helpers/index.mjs +1 -1
- package/esm2022/helpers/mobile-operation-system-checker.helper.mjs +1 -1
- package/esm2022/index.mjs +1 -1
- package/esm2022/persistence/cookie-data-persistence.mjs +1 -1
- package/esm2022/persistence/data-persistence.mjs +1 -1
- package/esm2022/persistence/index.mjs +1 -1
- package/esm2022/services/auth.service.mjs +1 -1
- package/esm2022/services/cart.service.mjs +1 -1
- package/esm2022/services/catalog/adapters/category-structure.adapter.mjs +1 -1
- package/esm2022/services/catalog/adapters/index.mjs +1 -1
- package/esm2022/services/catalog/adapters/new-category-structure.adapter.mjs +1 -1
- package/esm2022/services/catalog/adapters/old-category-structure.adapter.mjs +1 -1
- package/esm2022/services/catalog/catalog.service.mjs +1 -1
- package/esm2022/services/catalog/category.service.mjs +1 -1
- package/esm2022/services/catalog/enums/index.mjs +1 -1
- package/esm2022/services/catalog/enums/product-sorts.enum.mjs +1 -1
- package/esm2022/services/catalog/index.mjs +1 -1
- package/esm2022/services/catalog/models/category-with-tree.model.mjs +1 -1
- package/esm2022/services/catalog/models/index.mjs +1 -1
- package/esm2022/services/catalog/types/index.mjs +1 -1
- package/esm2022/services/catalog/types/product-sort.type.mjs +1 -1
- package/esm2022/services/catalog/wishlist.service.mjs +1 -1
- package/esm2022/services/checkout-subscription.service.mjs +1 -1
- package/esm2022/services/checkout.service.mjs +1 -1
- package/esm2022/services/coupon.service.mjs +1 -1
- package/esm2022/services/helpers/index.mjs +1 -1
- package/esm2022/services/helpers/util.helper.mjs +1 -1
- package/esm2022/services/home-shop.service.mjs +1 -1
- package/esm2022/services/index.mjs +1 -1
- package/esm2022/services/order.service.mjs +1 -1
- package/esm2022/services/shipping.service.mjs +1 -1
- package/esm2022/services/types/index.mjs +1 -1
- package/esm2022/services/types/required-checkout-data.type.mjs +1 -1
- package/esm2022/services/types/required-checkout-subscription-data.type.mjs +1 -1
- package/esm2022/services/types/shipping-methods.type.mjs +1 -1
- package/esm2022/types/firebase-app-config.type.mjs +1 -1
- package/esm2022/types/index.mjs +1 -1
- package/fesm2022/infrab4a-connect-angular.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"infrab4a-connect-angular.mjs","sources":["../../../projects/connect-angular/src/consts/es-config.const.ts","../../../projects/connect-angular/src/angular-elastic-search.module.ts","../../../projects/connect-angular/src/consts/backend-url.const.ts","../../../projects/connect-angular/src/consts/category-structure.ts","../../../projects/connect-angular/src/consts/default-shop.const.ts","../../../projects/connect-angular/src/consts/firebase-const.ts","../../../projects/connect-angular/src/consts/hasura-options.const.ts","../../../projects/connect-angular/src/consts/persistence.const.ts","../../../projects/connect-angular/src/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/helpers/mobile-operation-system-checker.helper.ts","../../../projects/connect-angular/src/angular-firestore.module.ts","../../../projects/connect-angular/src/angular-hasura-graphql.module.ts","../../../projects/connect-angular/src/consts/storage-base-url.const.ts","../../../projects/connect-angular/src/persistence/cookie-data-persistence.ts","../../../projects/connect-angular/src/services/auth.service.ts","../../../projects/connect-angular/src/services/coupon.service.ts","../../../projects/connect-angular/src/services/checkout.service.ts","../../../projects/connect-angular/src/services/cart.service.ts","../../../projects/connect-angular/src/services/catalog/adapters/new-category-structure.adapter.ts","../../../projects/connect-angular/src/services/catalog/adapters/old-category-structure.adapter.ts","../../../projects/connect-angular/src/services/catalog/catalog.service.ts","../../../projects/connect-angular/src/services/catalog/category.service.ts","../../../projects/connect-angular/src/services/catalog/enums/product-sorts.enum.ts","../../../projects/connect-angular/src/services/catalog/models/category-with-tree.model.ts","../../../projects/connect-angular/src/services/catalog/wishlist.service.ts","../../../projects/connect-angular/src/services/checkout-subscription.service.ts","../../../projects/connect-angular/src/services/helpers/util.helper.ts","../../../projects/connect-angular/src/services/home-shop.service.ts","../../../projects/connect-angular/src/services/order.service.ts","../../../projects/connect-angular/src/services/shipping.service.ts","../../../projects/connect-angular/src/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["export const ES_CONFIG = 'ES_CONFIG'\n","import { ModuleWithProviders, NgModule } from '@angular/core'\nimport { AxiosAdapter, AxiosElasticSearchConfig, ProductsIndex } from '@infrab4a/connect'\n\nimport { ES_CONFIG } from './consts/es-config.const'\n\n@NgModule({\n providers: [\n {\n provide: ProductsIndex,\n useFactory: (configuration: AxiosElasticSearchConfig): ProductsIndex =>\n new ProductsIndex(new AxiosAdapter(configuration)),\n deps: [ES_CONFIG],\n },\n ],\n})\nexport class AngularElasticSeachModule {\n static initializeApp(options: AxiosElasticSearchConfig): ModuleWithProviders<AngularElasticSeachModule> {\n return {\n ngModule: AngularElasticSeachModule,\n providers: [{ provide: ES_CONFIG, useValue: options }],\n }\n }\n}\n","export const BACKEND_URL = 'BACKEND_URL'","export const CATEGORY_STRUCTURE = 'CATEGORY_STRUCTURE'\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\n","import { InjectionToken } from '@angular/core'\n\nexport const FIREBASE_APP_NAME = new InjectionToken('firebaseAppName')\nexport const FIREBASE_OPTIONS = new InjectionToken('firebaseOptions')\n","export const HASURA_OPTIONS = 'HASURA_OPTIONS'\n","export const PERSISTENCE_PROVIDER = 'PERSISTENCE_PROVIDER'\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core'\nimport { FirebaseApp, FirebaseOptions } from '@angular/fire/app'\nimport { Auth, getAuth, provideAuth } from '@angular/fire/auth'\nimport {\n Authentication,\n AuthenticationFirebaseAuthService,\n AuthenticationService,\n RecoveryPassword,\n Register,\n RegisterFirebaseAuthService,\n RegisterService,\n SignOut,\n UserRepository,\n} from '@infrab4a/connect'\n\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\nimport { FirebaseAppConfig } from './types'\n\n@NgModule({\n imports: [provideAuth((injector: Injector) => getAuth(injector.get(FirebaseApp)))],\n providers: [\n {\n provide: 'Authentication',\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\n return new Authentication(authenticationService, userRepository)\n },\n deps: ['AuthenticationService', 'UserRepository'],\n },\n {\n provide: 'AuthenticationService',\n useFactory: (angularFireAuth: Auth): AuthenticationService => {\n return new AuthenticationFirebaseAuthService(angularFireAuth)\n },\n deps: [Auth],\n },\n {\n provide: 'Register',\n useFactory: (registerService: RegisterService, userRepository: UserRepository): Register => {\n return new Register(registerService, userRepository)\n },\n deps: ['RegisterService', 'UserRepository'],\n },\n {\n provide: 'RegisterService',\n useFactory: (angularFireAuth: Auth): RegisterService => {\n return new RegisterFirebaseAuthService(angularFireAuth)\n },\n deps: [Auth],\n },\n {\n provide: 'SignOut',\n useFactory: (authenticationService: AuthenticationService): SignOut => {\n return new SignOut(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n {\n provide: 'RecoveryPassword',\n useFactory: (authenticationService: AuthenticationService): RecoveryPassword => {\n return new RecoveryPassword(authenticationService)\n },\n deps: ['AuthenticationService'],\n },\n ],\n})\nexport class AngularFirebaseAuthModule {\n static initializeApp(\n options: FirebaseOptions,\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFirebaseAuthModule> {\n return {\n ngModule: AngularFirebaseAuthModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n ],\n }\n }\n}\n","export class MobileOperationSystemCheckerHelper {\n static isAppleDevice() {\n return (\n ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(\n navigator?.platform,\n ) ||\n (navigator?.userAgent?.includes?.('Mac') && 'ontouchend' in (document || {}))\n )\n }\n}\n","import { isPlatformBrowser, isPlatformServer } from '@angular/common'\nimport { Injector, ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\nimport { FirebaseApp, FirebaseOptions } from '@angular/fire/app'\nimport { Firestore, initializeFirestore, memoryLocalCache, provideFirestore } from '@angular/fire/firestore'\nimport {\n AxiosElasticSearchConfig,\n BeautyProfileRepository,\n Buy2WinFirestoreRepository,\n Buy2WinRepository,\n CampaignDashboardFirestoreRepository,\n CampaignDashboardRepository,\n CampaignHashtagFirestoreRepository,\n CampaignHashtagRepository,\n CategoryFirestoreRepository,\n CategoryRepository,\n CheckoutFirestoreRepository,\n CheckoutRepository,\n CheckoutSubscriptionFirestoreRepository,\n CheckoutSubscriptionRepository,\n ConnectFirestoreService,\n CouponFirestoreRepository,\n CouponRepository,\n EditionRepository,\n FirestoreConstructorParams,\n FirestoreIntertceptorRequestParams,\n HomeFirestoreRepository,\n HomeRepository,\n LeadFirestoreRepository,\n LeadRepository,\n LegacyOrderFirestoreRepository,\n LegacyOrderRepository,\n OrderBlockedFirestoreRepository,\n OrderBlockedRepository,\n OrderFirestoreRepository,\n OrderRepository,\n PaymentFirestoreRepository,\n PaymentRepository,\n ProductFirestoreRepository,\n ProductRepository,\n ProductVariantFirestoreRepository,\n ShopMenuFirestoreRepository,\n ShopMenuRepository,\n ShopSettingsFirestoreRepository,\n ShopSettingsRepository,\n SubscriptionEditionFirestoreRepository,\n SubscriptionFirestoreRepository,\n SubscriptionMaterializationFirestoreRepository,\n SubscriptionMaterializationRepository,\n SubscriptionPaymentFirestoreRepository,\n SubscriptionPaymentRepository,\n SubscriptionPlanFirestoreRepository,\n SubscriptionPlanRepository,\n SubscriptionProductFirestoreRepository,\n SubscriptionProductRepository,\n SubscriptionRepository,\n SubscriptionSummaryFirestoreRepository,\n SubscriptionSummaryRepository,\n UserAddressFirestoreRepository,\n UserAddressRepository,\n UserBeautyProfileFirestoreRepository,\n UserFirestoreRepository,\n UserPaymentMethodFirestoreRepository,\n UserPaymentMethodRepository,\n UserRepository,\n VariantRepository,\n} from '@infrab4a/connect'\n\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\nimport { ES_CONFIG, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\nimport { MobileOperationSystemCheckerHelper } from './helpers'\nimport { FirebaseAppConfig } from './types'\n\nexport type FirestoreOptions = Pick<FirestoreConstructorParams<any>, 'firestore' | 'interceptors'>\n\n@NgModule({\n imports: [\n AngularElasticSeachModule,\n provideFirestore((injector: Injector) => {\n const platformId = injector.get(PLATFORM_ID)\n\n if (isPlatformServer(platformId) || !MobileOperationSystemCheckerHelper.isAppleDevice())\n return initializeFirestore(injector.get(FirebaseApp), {\n ignoreUndefinedProperties: true,\n })\n\n const firestore = initializeFirestore(injector.get(FirebaseApp), {\n experimentalForceLongPolling: true,\n ignoreUndefinedProperties: true,\n localCache: memoryLocalCache(),\n })\n\n return firestore\n }),\n ],\n providers: [\n {\n provide: 'FirestoreOptions',\n useFactory: (firestore: Firestore, platformId: string): FirestoreOptions => ({\n firestore: new ConnectFirestoreService(firestore),\n interceptors: {\n request: (request: FirestoreIntertceptorRequestParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\n if (isPlatformBrowser(platformId)) return request\n\n const interval = setInterval(() => {}, 100)\n\n request.interval = interval\n\n return request\n },\n response: (\n response: any,\n request: FirestoreIntertceptorRequestParams<any> & { interval: ReturnType<typeof setTimeout> },\n ) => {\n if (isPlatformBrowser(platformId)) return response\n\n clearInterval(request.interval)\n\n return response\n },\n },\n }),\n deps: [Firestore, PLATFORM_ID],\n },\n {\n provide: 'BeautyProfileRepository',\n useFactory: (config: FirestoreOptions, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\n return new UserBeautyProfileFirestoreRepository(config, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'Buy2WinRepository',\n useFactory: (options: FirestoreOptions): Buy2WinRepository => {\n return new Buy2WinFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: CategoryFirestoreRepository,\n useFactory: (options: FirestoreOptions): CategoryRepository => {\n return new CategoryFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CheckoutRepository',\n useFactory: (options: FirestoreOptions): CheckoutRepository => {\n return new CheckoutFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CheckoutSubscriptionRepository',\n useFactory: (options: FirestoreOptions): CheckoutSubscriptionRepository => {\n return new CheckoutSubscriptionFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CouponRepository',\n useFactory: (options: FirestoreOptions): CouponRepository => {\n return new CouponFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CampaignHashtagRepository',\n useFactory: (options: FirestoreOptions): CampaignHashtagRepository => {\n return new CampaignHashtagFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'CampaignDashboardRepository',\n useFactory: (options: FirestoreOptions): CampaignDashboardRepository => {\n return new CampaignDashboardFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'EditionRepository',\n useFactory: (\n options: FirestoreOptions,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): EditionRepository => {\n return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository)\n },\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\n },\n {\n provide: 'HomeRepository',\n useFactory: (options: FirestoreOptions): HomeRepository => {\n return new HomeFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LeadRepository',\n useFactory: (options: FirestoreOptions): LeadRepository => {\n return new LeadFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'LegacyOrderRepository',\n useFactory: (options: FirestoreOptions): LegacyOrderRepository => {\n return new LegacyOrderFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'ShopMenuRepository',\n useFactory: (options: FirestoreOptions): ShopMenuRepository => {\n return new ShopMenuFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'OrderRepository',\n useFactory: (options: FirestoreOptions): OrderRepository => {\n return new OrderFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'PaymentRepository',\n useFactory: (options: FirestoreOptions): PaymentRepository => {\n return new PaymentFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: ProductFirestoreRepository,\n useFactory: (options: FirestoreOptions): ProductRepository => {\n return new ProductFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'ShopSettingsRepository',\n useFactory: (options: FirestoreOptions): ShopSettingsRepository => {\n return new ShopSettingsFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionPaymentRepository',\n useFactory: (\n options: FirestoreOptions,\n subscriptionRepository: SubscriptionFirestoreRepository,\n ): SubscriptionPaymentRepository => {\n return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository)\n },\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\n },\n {\n provide: 'SubscriptionPlanRepository',\n useFactory: (options: FirestoreOptions): SubscriptionPlanRepository => {\n return new SubscriptionPlanFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionProductRepository',\n useFactory: (options: FirestoreOptions): SubscriptionProductRepository => {\n return new SubscriptionProductFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionRepository',\n useFactory: (options: FirestoreOptions): SubscriptionRepository => {\n return new SubscriptionFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'UserRepository',\n useFactory: (options: FirestoreOptions): UserRepository => {\n return new UserFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'UserAddressRepository',\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserAddressRepository => {\n return new UserAddressFirestoreRepository(options, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'UserPaymentMethodRepository',\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserPaymentMethodRepository => {\n return new UserPaymentMethodFirestoreRepository(options, userRepository)\n },\n deps: ['FirestoreOptions', 'UserRepository'],\n },\n {\n provide: 'SubscriptionMaterializationRepository',\n useFactory: (options: FirestoreOptions): SubscriptionMaterializationRepository => {\n return new SubscriptionMaterializationFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: 'SubscriptionSummaryRepository',\n useFactory: (options: FirestoreOptions): SubscriptionSummaryRepository => {\n return new SubscriptionSummaryFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n {\n provide: ProductVariantFirestoreRepository,\n useFactory: (options: FirestoreOptions, productRepository: ProductFirestoreRepository): VariantRepository => {\n return new ProductVariantFirestoreRepository(options, productRepository)\n },\n deps: ['FirestoreOptions', ProductFirestoreRepository],\n },\n {\n provide: 'OrderBlockedRepository',\n useFactory: (options: FirestoreOptions): OrderBlockedRepository => {\n return new OrderBlockedFirestoreRepository(options)\n },\n deps: ['FirestoreOptions'],\n },\n ],\n})\nexport class AngularFirestoreModule {\n static initializeApp(\n options: {\n firebase: FirebaseOptions\n elasticSearch: AxiosElasticSearchConfig\n },\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularFirestoreModule> {\n return {\n ngModule: AngularFirestoreModule,\n providers: [\n { provide: FIREBASE_OPTIONS, useValue: options.firebase },\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\n { provide: ES_CONFIG, useValue: options.elasticSearch },\n ],\n }\n }\n}\n","import { isPlatformBrowser } from '@angular/common'\nimport { ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\nimport {\n CategoryCollectionChildrenHasuraGraphQLRepository,\n CategoryFilterHasuraGraphQLRepository,\n CategoryFilterRepository,\n CategoryHasuraGraphQLRepository,\n CategoryRepository,\n FilterHasuraGraphQLRepository,\n FilterOptionHasuraGraphQLRepository,\n FilterOptionRepository,\n FilterRepository,\n GraphQLParams,\n HasuraGraphQLAuthOptions,\n ProductHasuraGraphQLRepository,\n ProductRepository,\n ProductReviewsHasuraGraphQLRepository,\n ProductReviewsRepository,\n ProductStockNotificationHasuraGraphQLRepository,\n ProductStockNotificationRepository,\n VariantHasuraGraphQLRepository,\n VariantRepository,\n WishlistHasuraGraphQLRepository,\n} from '@infrab4a/connect'\nimport { HASURA_OPTIONS } from './consts'\n\nexport type HasuraGraphQLOptions = { endpoint: string; credentials: HasuraGraphQLAuthOptions }\n\n@NgModule({\n providers: [\n {\n provide: 'HasuraConfig',\n useFactory: (options: HasuraGraphQLOptions, platformId: string) => ({\n endpoint: options.endpoint,\n authOptions: options.credentials,\n interceptors: {\n request: (request: GraphQLParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\n if (isPlatformBrowser(platformId)) return request\n\n const interval = setInterval(() => {}, 100)\n\n request.interval = interval\n\n return request\n },\n response: (response: any, request: GraphQLParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\n if (isPlatformBrowser(platformId)) return response\n\n clearInterval(request.interval)\n\n return response\n },\n },\n }),\n deps: [HASURA_OPTIONS, PLATFORM_ID],\n },\n {\n provide: 'CategoryRepository',\n useExisting: CategoryHasuraGraphQLRepository,\n },\n {\n provide: CategoryHasuraGraphQLRepository,\n useFactory: (\n options: any,\n productRepository: ProductHasuraGraphQLRepository,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): CategoryRepository => {\n return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository)\n },\n deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\n },\n {\n provide: 'ProductRepository',\n useExisting: ProductHasuraGraphQLRepository,\n },\n {\n provide: ProductHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductRepository => {\n return new ProductHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'ProductReviewsRepository',\n useExisting: ProductReviewsHasuraGraphQLRepository,\n },\n {\n provide: ProductReviewsHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductReviewsRepository => {\n return new ProductReviewsHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'VariantRepository',\n useExisting: VariantHasuraGraphQLRepository,\n },\n {\n provide: VariantHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): VariantRepository => {\n return new VariantHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'ProductStockNotificationRepository',\n useExisting: ProductStockNotificationHasuraGraphQLRepository,\n },\n {\n provide: ProductStockNotificationHasuraGraphQLRepository,\n useFactory: (hasuraConfig: any): ProductStockNotificationRepository => {\n return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'CategoryFilterRepository',\n useExisting: CategoryFilterHasuraGraphQLRepository,\n },\n {\n provide: CategoryFilterHasuraGraphQLRepository,\n useFactory: (options: any): CategoryFilterRepository => {\n return new CategoryFilterHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n\n {\n provide: 'FilterOptionRepository',\n useExisting: FilterOptionHasuraGraphQLRepository,\n },\n {\n provide: FilterOptionHasuraGraphQLRepository,\n useFactory: (options: any): FilterOptionRepository => {\n return new FilterOptionHasuraGraphQLRepository(options)\n },\n deps: ['HasuraConfig'],\n },\n {\n provide: 'FilterRepository',\n useExisting: FilterHasuraGraphQLRepository,\n },\n {\n provide: FilterHasuraGraphQLRepository,\n useFactory: (\n options: any,\n filterOptionRepository: FilterOptionHasuraGraphQLRepository,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): FilterRepository => {\n return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository)\n },\n deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\n },\n {\n provide: CategoryCollectionChildrenHasuraGraphQLRepository,\n useFactory: (options: any): CategoryCollectionChildrenHasuraGraphQLRepository =>\n new CategoryCollectionChildrenHasuraGraphQLRepository(options),\n deps: ['HasuraConfig'],\n },\n {\n provide: 'CategoryCollectionChildrenRepository',\n useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,\n },\n {\n provide: WishlistHasuraGraphQLRepository,\n useFactory: (\n options: any,\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\n ): WishlistHasuraGraphQLRepository => {\n return new WishlistHasuraGraphQLRepository(options, categoryFilterRepository)\n },\n deps: ['HasuraConfig', CategoryFilterHasuraGraphQLRepository],\n },\n {\n provide: 'WishlistRepository',\n useExisting: WishlistHasuraGraphQLRepository,\n },\n ],\n})\nexport class AngularHasuraGraphQLModule {\n static initializeApp(options: {\n endpoint: string\n credentials: HasuraGraphQLAuthOptions\n }): ModuleWithProviders<AngularHasuraGraphQLModule> {\n return {\n ngModule: AngularHasuraGraphQLModule,\n providers: [{ provide: HASURA_OPTIONS, useValue: options }],\n }\n }\n}\n","export const STORAGE_BASE_URL = 'STORAGE_BASE_URL'\n","import { Injectable } from '@angular/core'\nimport cookie from 'js-cookie'\nimport { Observable, from, of } from 'rxjs'\nimport { map } from 'rxjs/operators'\nimport { DataPersistence } from './data-persistence'\n\n@Injectable()\nexport class CookieDataPersistence implements DataPersistence {\n get(key: string): Observable<string> {\n return of(cookie.get(key))\n }\n\n remove(key: string): Observable<void> {\n return of(cookie.remove(key))\n }\n\n set(key: string, value: string): Observable<void> {\n return from(cookie.set(key, value)).pipe(map(() => {}))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Auth, User as FirebaseUser, authState, getIdToken } from '@angular/fire/auth'\nimport { User, UserRepository } from '@infrab4a/connect'\nimport { Observable, combineLatest, from, of } from 'rxjs'\nimport { catchError, map, mergeMap } from 'rxjs/operators'\n\n@Injectable()\nexport class AuthService {\n constructor(\n private readonly angularFireAuth: Auth,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n ) {}\n\n getAuthstate(): Observable<{ user: User; isAnonymous: boolean }> {\n const observables: [Observable<FirebaseUser>, Observable<User>] = [this.getFireUser(), this.getUser()]\n\n return combineLatest(observables).pipe(\n map(([fireUser, user]) => ({\n user,\n isAnonymous: fireUser?.isAnonymous,\n })),\n )\n }\n\n getUser(): Observable<User> {\n return this.getFireUser().pipe(\n map((user) => user?.uid),\n mergeMap((id) => (id ? from(this.userRepository.get({ id })).pipe(catchError(() => of(null))) : of(null))),\n )\n }\n\n getTokenId(): Observable<string> {\n return from(getIdToken(this.angularFireAuth.currentUser))\n }\n\n getFireUser(): Observable<FirebaseUser> {\n return authState(this.angularFireAuth).pipe(catchError(() => of(null)))\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryRepository,\n Checkout,\n CheckoutSubscription,\n CheckoutTypes,\n Coupon,\n CouponRepository,\n CouponTypes,\n Exclusivities,\n LineItem,\n Order,\n OrderRepository,\n Shops,\n User,\n Where,\n} from '@infrab4a/connect'\nimport { from, Observable, of } from 'rxjs'\nimport { concatMap, map } from 'rxjs/operators'\nimport { DEFAULT_SHOP } from '../consts'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CouponService {\n constructor(\n @Inject('CouponRepository') private readonly couponRepository: CouponRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject('OrderRepository') private readonly orderRepository: OrderRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n ) {}\n\n checkCoupon(\n nickname: string,\n checkoutType: CheckoutTypes,\n checkout: Partial<Checkout>,\n plan: string,\n ): Observable<Coupon> {\n return from(\n this.couponRepository\n .find({\n filters: {\n nickname: { operator: Where.EQUALS, value: nickname },\n active: { operator: Where.EQUALS, value: true },\n },\n })\n .then((result) => result.data[0]),\n ).pipe(\n concatMap((coupon) => this.couponValidation(coupon, checkoutType)),\n concatMap((couponValid: Coupon) => this.couponRulesValidation(couponValid, checkoutType, checkout, plan)),\n map((couponValidated: Coupon) => couponValidated as Coupon),\n )\n }\n\n private async couponValidation(coupon: Coupon, checkoutType: CheckoutTypes) {\n if (!coupon) throw 'Cupom inválido.'\n\n if (coupon?.beginAt && coupon?.beginAt.getTime() > new Date().getTime()) throw 'Cupom inválido.'\n\n if (coupon?.expiresIn && coupon?.expiresIn.getTime() < new Date().getTime()) throw 'Cupom expirado.'\n\n const isInShop = coupon.shopAvailability === Shops.ALL || coupon.shopAvailability === this.defaultShop\n\n if (!isInShop) throw 'Cupom inválido para loja.'\n\n const isCheckoutType = coupon.checkoutType === CheckoutTypes.ALL || coupon.checkoutType === checkoutType\n\n if (!isCheckoutType) throw 'Cupom inválido. Erro de checkout.'\n\n return coupon\n }\n\n private async couponRulesValidation(\n coupon: Coupon,\n checkoutType: CheckoutTypes,\n checkout: Partial<Checkout>,\n plan: string,\n ) {\n if (checkoutType == CheckoutTypes.SUBSCRIPTION) {\n if (coupon.plan && coupon.plan.toUpperCase() !== plan.toUpperCase()) throw 'Cupom inválido para sua assinatura.'\n\n return coupon\n }\n\n const validUser = this.coupomUserValidation(coupon, checkout?.user)\n\n if (!validUser) throw 'Usuário não elegível.'\n\n const couponUseLimits = this.getCouponUseLimits(coupon, checkoutType, checkout.user)\n\n if (couponUseLimits.firstOrder) {\n const ordersUser = await this.getOrdersFromUser(checkout.user.email.toLocaleLowerCase())\n if (couponUseLimits.firstOrder && ordersUser.length >= 1) throw 'Limite de uso atingido'\n }\n\n if (!couponUseLimits.unlimited || couponUseLimits.limitedPerUser) {\n const orders = await this.getOrdersWithCoupon(coupon)\n\n if (!couponUseLimits.unlimited && couponUseLimits.total && orders.length >= couponUseLimits.total)\n throw 'Limite de uso atingido.'\n\n if (couponUseLimits.limitedPerUser) {\n const ordersWithUser = this.countOrdersWithUser(orders, checkout.user.email)\n\n if (ordersWithUser > 0) throw 'Limite de uso por usuário atingido.'\n }\n }\n\n const hasProductCategories = await this.hasProductCategories(coupon, checkout)\n\n if (!hasProductCategories) throw 'Seu carrinho não possui produtos elegíveis para desconto.'\n\n const hasMinSubTotal = await this.hasMinSubTotal(coupon, checkout)\n\n if (!hasMinSubTotal)\n throw `Valor mínimo de ${Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(\n coupon.minSubTotalValue,\n )} não atingido`\n\n return coupon\n }\n\n public calcDiscountSubscription(coupon: Coupon, checkout: Partial<CheckoutSubscription>): Observable<number> {\n let discount = 0\n\n if (coupon.discount.subscription.type == CouponTypes.ABSOLUTE) discount = coupon.discount.subscription.value\n else discount = checkout.subscriptionPlan.recurrencePrice * (coupon.discount.subscription.value / 100)\n\n return of(discount)\n }\n\n public async calcDiscountShopping(\n coupon: Coupon,\n checkout: Partial<Checkout>,\n ): Promise<{ discount: number; lineItems: LineItem[] }> {\n let discountInfo: { discount: number; lineItems: LineItem[] } = null\n\n if (checkout.user.isSubscriber && coupon.discount.subscriber.value) {\n discountInfo = await this.calcDiscountByType(\n coupon.discount.subscriber.type,\n coupon.discount.subscriber.value,\n coupon.productsCategories,\n checkout,\n )\n } else {\n discountInfo = await this.calcDiscountByType(\n coupon.discount.non_subscriber.type,\n coupon.discount.non_subscriber.value,\n coupon.productsCategories,\n checkout,\n )\n }\n\n return { discount: discountInfo.discount, lineItems: discountInfo.lineItems }\n }\n\n private async calcDiscountByType(\n type: CouponTypes,\n value: number,\n categories: string[],\n checkout: Partial<Checkout>,\n ): Promise<{ discount: number; lineItems: LineItem[] }> {\n let discount = 0\n\n let lineItensElegibleForDiscount = await this.getLineItensEligebleForDiscount(categories, checkout)\n\n const subTotal = this.calcCheckoutSubtotal(lineItensElegibleForDiscount, checkout.user)\n\n if (type == CouponTypes.ABSOLUTE) {\n discount = value > subTotal ? subTotal : value\n } else {\n discount = subTotal * (value / 100)\n }\n\n const lineItems = this.calcLineItenDiscount(type, lineItensElegibleForDiscount, value, subTotal)\n\n return { discount, lineItems }\n }\n\n private async hasMinSubTotal(coupon: Coupon, checkout: Partial<Checkout>): Promise<boolean> {\n if (!coupon.minSubTotalValue) return true\n\n let lineItensDiscount = await this.getLineItensEligebleForDiscount(coupon.productsCategories, checkout)\n\n const subTotal = this.calcCheckoutSubtotal(lineItensDiscount, checkout.user)\n\n if (coupon.minSubTotalValue <= subTotal) return true\n\n return false\n }\n\n private async hasProductCategories(coupon: Coupon, checkout: Partial<Checkout>): Promise<boolean> {\n if (!coupon.productsCategories || !coupon.productsCategories.length) {\n return true\n }\n\n const couponCategories = await this.getCouponCategoriesId(coupon.productsCategories)\n\n const hasCategories = checkout.lineItems?.filter((i) => {\n if (!i.categories || !i.categories?.length) return true\n return i.categories.some((c) => couponCategories.some((cat) => cat == c))\n })\n\n return hasCategories.length ? true : false\n }\n\n private coupomUserValidation(coupon: Coupon, user: User) {\n if (!user || coupon.exclusivityType.includes(Exclusivities.ALL_USERS)) return true\n\n let userTypes: Exclusivities[] = []\n\n if (\n coupon.exclusivityType.includes(Exclusivities.COLLABORATORS) &&\n this.emailIsFromCollaborator(user.email.toLocaleLowerCase())\n )\n userTypes.push(Exclusivities.COLLABORATORS)\n\n if (\n coupon.exclusivityType.includes(Exclusivities.SPECIFIC_USER) &&\n coupon.userExclusiveEmail.includes(user.email.toLocaleLowerCase())\n )\n userTypes.push(Exclusivities.SPECIFIC_USER)\n\n if (\n coupon.exclusivityType.includes(Exclusivities.ACTIVE_SUBSCRIBER) &&\n user.isSubscriber &&\n user.subscriptionPlan != ''\n )\n userTypes.push(Exclusivities.ACTIVE_SUBSCRIBER)\n\n if (\n user.isSubscriber &&\n user.subscriptionPlan == '' &&\n coupon.exclusivityType.includes(Exclusivities.INACTIVE_SUBSCRIBER)\n )\n userTypes.push(Exclusivities.INACTIVE_SUBSCRIBER)\n\n if (coupon.exclusivityType.includes(Exclusivities.NON_SUBSCRIBER) && !user.isSubscriber)\n userTypes.push(Exclusivities.NON_SUBSCRIBER)\n\n return coupon.exclusivityType.some((r) => userTypes.includes(r))\n }\n\n private async getCouponCategoriesId(productsCategories: string[]): Promise<Array<String>> {\n const couponCategories: Array<String> = []\n\n for (let index = 0; index < productsCategories.length; index++) {\n const category: Category & { firestoreId?: string } = await this.categoryRepository.get({\n id: productsCategories[index],\n })\n\n if (category) {\n const children = await this.categoryRepository.getChildren(parseInt(productsCategories[index]))\n\n couponCategories.push(category.id, ...children.map((c) => c.id.toString()))\n }\n }\n\n return [...new Set(couponCategories)]\n }\n\n private emailIsFromCollaborator = (userEmail: string): boolean => !!userEmail?.match(/@b4a.com.br/g)\n\n private async getLineItensEligebleForDiscount(\n productsCategories: string[],\n checkout: Partial<Checkout>,\n ): Promise<LineItem[]> {\n let lineItensDiscount = []\n const couponCategories = await this.getCouponCategoriesId(productsCategories)\n\n if (productsCategories && productsCategories.length) {\n lineItensDiscount = checkout.lineItems?.filter((i) => {\n if (i.categories?.length) {\n return i.categories.some((c) => couponCategories.some((cat) => cat == c))\n }\n return true\n })\n } else {\n lineItensDiscount = checkout.lineItems\n }\n\n return lineItensDiscount\n }\n\n private calcCheckoutSubtotal(lineItens: LineItem[], user: User): number {\n return (\n lineItens?.reduce(\n (acc, curr) =>\n user?.isSubscriber && curr.price.subscriberPrice\n ? acc + curr.price?.subscriberPrice * curr.quantity\n : acc + curr.pricePaid * curr.quantity,\n 0,\n ) || 0\n )\n }\n\n private async getOrdersWithCoupon(coupon: Coupon): Promise<Order[]> {\n return await this.orderRepository\n .find({\n filters: {\n coupon: { id: coupon.id },\n payment: { status: 'paid' },\n },\n })\n .then((result) => result.data)\n }\n\n private async getOrdersFromUser(email: string) {\n return await this.orderRepository\n .find({\n filters: {\n user: { email: { operator: Where.EQUALS, value: email } },\n payment: { status: 'paid' },\n },\n })\n .then((result) => result.data)\n }\n\n private countOrdersWithUser(orders: Order[], email: string): number {\n return orders.filter((o) => o.user.email == email).length\n }\n\n private getCouponUseLimits(coupon: Coupon, checkoutType: CheckoutTypes, user: User) {\n let couponUseLimits: { unlimited?: boolean; total?: number; limitedPerUser?: boolean; firstOrder?: boolean }\n if (checkoutType == CheckoutTypes.ECOMMERCE || checkoutType == CheckoutTypes.ALL) {\n couponUseLimits = user && user.isSubscriber ? coupon.useLimits.subscriber : coupon.useLimits.non_subscriber\n } else {\n couponUseLimits = coupon.useLimits.subscription\n }\n\n return couponUseLimits\n }\n\n private calcLineItenDiscount(\n type: CouponTypes,\n lineItems: LineItem[],\n couponDiscount: number,\n subTotal: number,\n ): LineItem[] {\n let lineItemsDiscount: LineItem[] = []\n if (type === CouponTypes.ABSOLUTE) {\n const couponDiscountMax = couponDiscount > subTotal ? subTotal : couponDiscount\n lineItemsDiscount = lineItems.map((item) => {\n const totalItemPercentage = item.pricePaid / subTotal\n const discountItem = couponDiscountMax * totalItemPercentage\n\n return {\n ...item,\n discount: Number(discountItem.toFixed(2)),\n } as LineItem\n })\n } else {\n lineItemsDiscount = lineItems.map((item) => {\n const discountItem = item.pricePaid * (couponDiscount / 100)\n\n return {\n ...item,\n discount: Number(discountItem.toFixed(2)),\n } as LineItem\n })\n }\n\n return lineItemsDiscount\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Checkout,\n CheckoutRepository,\n CheckoutTypes,\n Coupon,\n NotFoundError,\n Shops,\n User,\n UserRepository,\n isNil,\n pick,\n} from '@infrab4a/connect'\nimport { Observable, from, of, throwError } from 'rxjs'\nimport { concatMap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP, PERSISTENCE_PROVIDER } from '../consts'\n\nimport { DataPersistence } from '../persistence'\nimport { CouponService } from './coupon.service'\nimport { RequiredCheckoutData } from './types'\n\n@Injectable()\nexport class CheckoutService {\n constructor(\n private readonly couponService: CouponService,\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\n @Inject('UserRepository') private readonly userRepository: UserRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject(PERSISTENCE_PROVIDER) private readonly dataPersistence: DataPersistence,\n ) {}\n\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\n return this.dataPersistence\n .get('checkoutId')\n .pipe(concatMap((id) => (!isNil(id) ? this.checkoutRepository.get({ id }) : this.createCheckout(checkoutData))))\n }\n\n getUserByCheckout(checkoutId: string): Observable<User> {\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\n concatMap((checkout) =>\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\n ),\n concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\n )\n }\n\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\n }\n\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })))\n }\n\n clearCheckoutFromSession(): Observable<void> {\n return this.dataPersistence.remove('checkoutId')\n }\n\n calcDiscount(coupon: Coupon) {\n return this.getCheckout().pipe(\n concatMap(async (checkout) => await this.couponService.calcDiscountShopping(coupon, checkout)),\n )\n }\n\n checkCoupon(nickname: string, checkoutType: CheckoutTypes): Observable<Coupon> {\n return this.getCheckout().pipe(\n concatMap((checkout) => this.couponService.checkCoupon(nickname, CheckoutTypes.ECOMMERCE, checkout, null).pipe()),\n )\n }\n\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\n const checkout = await this.checkoutRepository.create({\n createdAt: new Date(),\n ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\n shop: checkoutData?.shop || this.defaultShop,\n })\n\n await this.dataPersistence.set('checkoutId', checkout.id).toPromise()\n\n return checkout\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Buy2Win,\n Buy2WinFirestoreRepository,\n CategoryRepository,\n Checkout,\n LineItem,\n NotFoundError,\n Product,\n ProductRepository,\n RoundProductPricesHelper,\n ShopPrice,\n Shops,\n User,\n Variant,\n VariantRepository,\n Where,\n isNil,\n} from '@infrab4a/connect'\nimport { Observable, Subject, from, iif, of } from 'rxjs'\nimport { catchError, concatMap, map, mergeMap, tap } from 'rxjs/operators'\nimport { DEFAULT_SHOP } from '../consts'\nimport { AuthService } from './auth.service'\nimport { CheckoutService } from './checkout.service'\nimport { RequiredCheckoutData } from './types'\n\nexport type Cart = {\n [id: string]: LineItem\n}\n\n@Injectable()\nexport class CartService {\n private cartSubject: Subject<Cart> = new Subject()\n\n constructor(\n private readonly authService: AuthService,\n private readonly checkoutService: CheckoutService,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject('VariantRepository') private readonly variantRepository: VariantRepository,\n @Inject('Buy2WinRepository') private readonly buy2WinRepository: Buy2WinFirestoreRepository,\n ) {}\n\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\n return from(this.checkoutService.getCheckout()).pipe(\n concatMap(async (checkout) => await this.buildLineItem({ checkout, item, quantity: quantity || 1 })),\n mergeMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout as Checkout)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n decreaseItem(item: LineItem): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n const checkoutItem = checkout.lineItems?.find((lineItem) => lineItem.id === item.id)\n\n if (!isNil(checkoutItem)) checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0\n\n return checkout\n }),\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\n\n return this.cartSubject\n }\n\n /**\n * @deprecated The method should not be used\n */\n getVariantPriceDiscount(item: LineItem): Observable<number> {\n return this.authService.getUser().pipe(\n concatMap((user) =>\n iif(\n () => user.isSubscriber && !!item.price.subscriberPrice,\n of(item.price.subscriberPrice),\n of(item.price.price),\n ),\n ),\n catchError(() => of(item.price.price)),\n )\n }\n\n removeItem(item: LineItem): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n const index = checkout.lineItems.findIndex((lineItem) => lineItem.id === item.id)\n\n if (index >= 0) checkout.lineItems.splice(index, 1)\n\n return checkout\n }),\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n updateUserCart(user: User): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n concatMap((checkout) =>\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\n ),\n concatMap(\n async (checkout) =>\n await this.checkoutService\n .updateCheckoutLineItems(\n Checkout.toInstance({\n ...checkout.toPlain(),\n lineItems: checkout.lineItems?.length\n ? await Promise.all(\n checkout.lineItems?.map(async (item) => (await this.buildLineItem({ checkout, item })).lineItem),\n )\n : [],\n }),\n )\n .toPromise(),\n ),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n clearCart(): Observable<Cart> {\n return this.checkoutService.getCheckout().pipe(\n map((checkout) => {\n this.checkoutService.clearCheckoutFromSession()\n return checkout\n }),\n concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\n return this.checkoutService.getCheckout(checkoutData).pipe(\n map((checkout) => checkout.lineItems),\n concatMap((lineItems) => of(this.generateCartObject(lineItems))),\n )\n }\n\n private updateLineItemInCart = (lineItem: LineItem, quantity: number, checkout?: Checkout): Observable<Cart> =>\n (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(\n concatMap((checkoutLoaded) => {\n const items: LineItem[] = []\n const index = checkoutLoaded.lineItems?.map((checkoutItem) => checkoutItem.id).indexOf(lineItem.id)\n\n if (index > -1) {\n checkoutLoaded.lineItems[index].quantity += quantity\n checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid\n } else\n checkoutLoaded.lineItems = items.concat(\n checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem],\n )\n\n return this.checkoutService\n .updateCheckoutLineItems(checkoutLoaded)\n .pipe(map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)))\n }),\n )\n\n private generateCartObject = (items: LineItem[]): Cart =>\n items?.reduce(\n (cart, item) => ({\n ...cart,\n [item.id]: LineItem.toInstance({\n ...(cart[item.id] || item),\n quantity: (cart[item.id]?.quantity || 0) + (item.quantity ? item.quantity : 1),\n }),\n }),\n {} as Record<string, LineItem>,\n ) || {}\n\n private buildLineItem = async ({\n checkout,\n item,\n quantity,\n }: {\n checkout: RequiredCheckoutData\n item: LineItem\n quantity?: number\n }): Promise<{ checkout: Partial<Checkout>; lineItem: LineItem }> => {\n const product = await this.getProductData(item.id)\n\n item.quantity = item?.quantity || checkout?.lineItems?.find((lineItem) => lineItem.id === item.id)?.quantity || 0\n\n if (this.checkMaxStock(product.stock.quantity, item.quantity || 0, quantity || 0))\n throw new Error('Desculpe! Temos apenas ' + product.stock?.quantity + ' em estoque.')\n\n const image = item.image || item.images?.shift()\n const { id, name, EAN, slug, stock, price, weight, sku, type } = item\n const isGift = item.isGift || null\n const pricePaid = this.getProductPrice({\n product: item,\n shop: checkout.shop || this.defaultShop,\n isSubscriber: checkout.user?.isSubscriber,\n })\n\n RoundProductPricesHelper.roundProductPrices(item)\n\n return {\n checkout,\n lineItem: LineItem.toInstance({\n id,\n name: name ?? product.name,\n EAN: EAN ?? product.EAN,\n brand: product.brand,\n slug: slug ?? product.slug,\n sku: sku ?? product.sku,\n stock,\n price: this.roundPrice(price),\n image,\n weight: weight ?? product.weight,\n quantity: (item.quantity || 0) + (quantity || 0),\n pricePaid,\n discount: 0,\n categories: product.categories ?? [],\n isGift: isGift ?? null,\n costPrice: product.costPrice ?? 0,\n type,\n }),\n }\n }\n\n private roundPrice(productPrice: ShopPrice): ShopPrice {\n const { price, fullPrice, subscriberPrice } = productPrice\n return {\n ...productPrice,\n price: Number(price.toFixed(2)),\n fullPrice: Number(fullPrice.toFixed(2)),\n ...(subscriberPrice && { subscriberPrice: Number(subscriberPrice.toFixed(2)) }),\n }\n }\n\n private async getProductData(productId: string): Promise<Partial<Product>> {\n let product: Product\n let variant: Variant\n\n try {\n product = await this.productRepository.get({ id: productId })\n } catch (error) {\n if (!(error instanceof NotFoundError)) throw error\n\n const { data: variants } = await this.variantRepository.find({ filters: { id: productId } })\n\n variant = variants.shift()\n\n if (!variant) throw error\n\n product = await this.productRepository.get({ id: variant.productId })\n }\n\n return {\n ...product.toPlain(),\n ...(variant && { ...variant.toPlain() }),\n }\n }\n\n private getProductPrice = ({\n product,\n isSubscriber,\n }: {\n product: LineItem\n shop: Shops\n isSubscriber: boolean\n }): number => {\n const info = product.price\n\n if (product.isGift) return 0\n\n return isSubscriber && info.subscriberPrice > 0\n ? Number(info.subscriberPrice.toFixed(2))\n : Number(info.price.toFixed(2))\n }\n\n private checkMaxStock = (currentStock: number, currentItemQtd: number, quantityToAdd: number) => {\n const maxStock = currentStock || 0\n const currentItemAmount = currentItemQtd || 0\n\n return currentItemAmount + quantityToAdd > maxStock\n }\n\n getGifts() {\n return this.checkoutService.getCheckout().pipe(\n mergeMap(async (checkout) => {\n const notGiftItems: LineItem[] = checkout.lineItems ? checkout.lineItems.filter((item) => !item.isGift) : []\n\n if (!notGiftItems.length) return { ...checkout, lineItems: [] } as Checkout\n\n const cartTotal = notGiftItems.reduce((a, b) => a + b.pricePaid * b.quantity, 0)\n\n const campaigns = await this.buy2WinRepository\n .find({\n filters: {\n active: { operator: Where.EQUALS, value: true },\n shop: { operator: Where.EQUALS, value: this.defaultShop },\n },\n })\n .then((data) => data.data)\n\n if (!campaigns.length) return { ...checkout, lineItems: notGiftItems } as Checkout\n\n const elegibleCampaigns: Buy2Win[] = []\n\n for (const campaign of campaigns) {\n const today = new Date().getTime()\n\n if (!(campaign.startDate.getTime() <= today) && !(campaign.endDate.getTime() >= today)) continue\n\n if (campaign.activeCategory) {\n const categoriesCampaing = campaign.categories.map((c) => c.id.toString())\n const categoriesCampaingFullTree = []\n\n for (const id of categoriesCampaing) {\n const children = await this.categoryRepository.getChildren(parseInt(id))\n\n categoriesCampaingFullTree.push(id, ...children.map((c) => c.id.toString()))\n }\n\n const categoriesCampaingTree = [...new Set(categoriesCampaingFullTree)]\n const filterProductsCategories = checkout.lineItems.filter((l) => {\n if (!l.categories || !l.categories?.length) return true\n\n return l.categories.some((c) => categoriesCampaingTree.some((cat) => cat == c))\n })\n\n if (filterProductsCategories.length) {\n const cartTotalCategories = filterProductsCategories.reduce((a, b) => a + b.pricePaid * b.quantity, 0)\n\n if (cartTotalCategories >= campaign.cartValueMin) elegibleCampaigns.push(campaign)\n }\n } else {\n if (campaign.cartValue && campaign.cartValue > 0) {\n if (campaign.cartValue <= cartTotal) elegibleCampaigns.push(campaign)\n }\n }\n }\n\n if (!elegibleCampaigns.length) return { ...checkout, lineItems: notGiftItems } as Checkout\n\n const campaingnProducts: Product[][] = []\n\n for (const campaign of elegibleCampaigns) {\n let elegibleProducts = []\n\n for (const product of campaign.products) {\n const { data: productData } = await this.productRepository.find({ filters: { sku: product } })\n\n if (!productData.length) continue\n\n const gift = productData.shift()\n\n if (gift.stock.quantity < 1) continue\n\n elegibleProducts.push(gift)\n }\n\n campaingnProducts.push(elegibleProducts)\n }\n\n if (!campaingnProducts.length) return { ...checkout, lineItems: notGiftItems } as Checkout\n\n const gifts = this.giftToLineItems([].concat(...campaingnProducts))\n\n return { ...checkout, lineItems: notGiftItems.concat(gifts) }\n }),\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\n map((checkout) => this.generateCartObject(checkout.lineItems)),\n tap((cart) => this.cartSubject.next(cart)),\n )\n }\n\n private giftToLineItems(items: Product[]): LineItem[] {\n return items.map((item) => {\n const { brand, categories, id, name, price, sku, slug, stock, weight, EAN } = item\n\n const image = item?.miniatures?.length ? item.miniatures[0] : item.images[0]\n\n return LineItem.toInstance({\n brand,\n categories,\n id: id.toString(),\n name,\n price,\n sku,\n slug,\n stock,\n weight,\n EAN,\n image,\n pricePaid: 0,\n quantity: 1,\n isGift: true,\n })\n })\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Category, CategoryRepository, isNil, Product, RepositoryFindFielters, Where } from '@infrab4a/connect'\nimport { CategoryStructureAdapter } from './category-structure.adapter'\n\n@Injectable()\nexport class NewCategoryStructureAdapter implements CategoryStructureAdapter {\n constructor(@Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository) {}\n\n async buildProductFilterByCategory(category: Category): Promise<RepositoryFindFielters<Product>> {\n const loadedCategory = await this.getCategory(category)\n\n if (loadedCategory.isCollection) return { id: { operator: Where.IN, value: loadedCategory.products } }\n\n const categoryIds = [...(await this.getAllCategoriesIdFromCategory(category)), category.id.toString()]\n\n return {\n category: {\n id: {\n operator: Where.IN,\n value: categoryIds,\n },\n },\n }\n }\n\n private async getAllCategoriesIdFromCategory(category: Category): Promise<string[]> {\n return this.categoryRepository\n .getChildren(+category.id)\n .then((categories) => categories.map((category) => category.id.toString()))\n }\n\n private async getCategory(category: Category): Promise<Category> {\n const collectionCategory =\n category.isCollection ||\n (isNil(category.isCollection) && !category.products?.length) ||\n category.isWishlist ||\n category.brandCategory\n\n return collectionCategory ? this.categoryRepository.get({ id: category.id }) : category\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport { Category, CategoryRepository, Product, RepositoryFindFielters, Where } from '@infrab4a/connect'\nimport { CategoryStructureAdapter } from './category-structure.adapter'\n\n@Injectable()\nexport class OldCategoryStructureAdapter implements CategoryStructureAdapter {\n constructor(@Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository) {}\n\n async buildProductFilterByCategory(category: Category): Promise<RepositoryFindFielters<Product>> {\n const productsIds = category.products?.length\n ? category.products\n : await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products)\n\n return { id: { operator: Where.IN, value: productsIds } }\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryRepository,\n FindRepositoryParams,\n InvalidArgumentError,\n Product,\n ProductGender,\n ProductRepository,\n ProductStockNotificationRepository,\n ProductsIndex,\n RepositoryFindFielters,\n RepositoryFindResult,\n RepositoryOrderBy,\n RoundProductPricesHelper,\n Shops,\n Where,\n set,\n} from '@infrab4a/connect'\nimport { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts'\nimport { CategoryStructureAdapter } from './adapters'\nimport { ProductSort } from './types/product-sort.type'\n\ntype FetchProductsFilters = {\n clubDiscount?: number[]\n brands?: string[]\n prices?: { min?: number; max?: number; subscriberPrice?: boolean }\n gender?: ProductGender[]\n rate?: number\n customOptions?: string[]\n tags?: string[]\n}\n\ntype FetchProductsOptions = {\n page?: number\n perPage?: number\n sort?: ProductSort\n mainGender?: ProductGender\n}\n\ntype FetchProductsMainParams<T extends Category> = {\n category?: T\n profile?: string[]\n term?: string\n}\n\ntype FetchProductsParams<T extends Category> = FetchProductsOptions &\n (\n | {\n category: FetchProductsMainParams<T>['category']\n filters?: FetchProductsFilters & { customOptions?: never }\n }\n | {\n profile: FetchProductsMainParams<T>['profile']\n filters?: FetchProductsFilters & { customOptions?: never; tags?: never }\n }\n | {\n term: FetchProductsMainParams<T>['term']\n filters?: FetchProductsFilters & { customOptions?: never }\n }\n )\n\ntype FetchProductsResponse = {\n products: { data: Product[]; total: number }\n pages: number\n prices: {\n price: { min: number; max: number }\n subscriberPrice: { min: number; max: number }\n }\n brands?: string[]\n}\n\n@Injectable()\nexport class CatalogService<T extends Category = Category> {\n private productsByTerm: Record<string, string[]> = {}\n\n constructor(\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject('ProductStockNotificationRepository')\n private readonly productStockNotificationRepository: ProductStockNotificationRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject(CATEGORY_STRUCTURE) private readonly categoryStructureAdapter: CategoryStructureAdapter,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n private readonly productIndex: ProductsIndex,\n ) {}\n\n async fetchProducts(options: FetchProductsParams<T>): Promise<FetchProductsResponse> {\n const limits = this.buildLimitQuery(options)\n\n if (this.hasProfile(options) && options.filters?.customOptions)\n throw new InvalidArgumentError(`It couldn't filled customOptions when profile is given`)\n if (this.hasProfile(options) && options.filters?.tags)\n throw new InvalidArgumentError(`It couldn't filled tags when profile is given`)\n if (this.hasTerm(options) && options.filters?.customOptions)\n throw new InvalidArgumentError(`It couldn't filled customOptions when term is given`)\n\n return await this.findCatalog(options, limits).then(({ data, count: total, maximum, minimal, distinct }) => ({\n products: { data: data.map((product) => RoundProductPricesHelper.roundProductPrices(product)), total },\n pages: Math.ceil(total / limits.limit),\n prices: {\n price: { min: +minimal?.price?.price?.toFixed(2), max: +maximum?.price?.price?.toFixed(2) },\n subscriberPrice: {\n min: +minimal?.price?.subscriberPrice?.toFixed(2),\n max: +maximum?.price?.subscriberPrice?.toFixed(2),\n },\n },\n brands: distinct?.brand,\n }))\n }\n\n async addCustomerToStockNotification(shop: Shops, productId: string, name: string, email: string): Promise<void> {\n return this.productStockNotificationRepository.addCustomerEmail(shop, productId, name, email)\n }\n\n private async findCatalog(\n options: FetchProductsParams<T>,\n limits: {\n limit?: number\n offset?: number\n },\n ): Promise<RepositoryFindResult<Product>> {\n if (this.hasTerm(options) && options.sort === 'most-relevant') {\n const productsIds = await this.findCatalogIdsByElasticSearch(options.term)\n\n return this.findCatalogAndSortByMostRevelantByTerm(productsIds, options, limits)\n }\n\n if (this.hasCategory(options) && options.sort === 'most-relevant') {\n const mostRelevant = options.category.isWishlist ? [] : options.category.getMostRelevantByShop(this.shop)\n const productsIds = await this.productRepository\n .findCatalog({\n fields: ['id'],\n filters: {\n ...(await this.buildMainFilter(options)),\n ...this.buildFilterQuery(options?.filters || {}),\n },\n })\n .then((products) => products.data.map((product) => product.id))\n\n return this.findCatalogAndSortByMostRevelant(mostRelevant, productsIds, options, limits)\n }\n\n const repoParams: FindRepositoryParams<Product> = {\n filters: {\n ...(await this.buildMainFilter(options)),\n ...this.buildFilterQuery(options?.filters || {}),\n },\n ...(options?.sort ? { orderBy: this.buildSortQuery(options?.sort) } : {}),\n limits,\n options: {\n minimal: ['price'],\n maximum: ['price'],\n ...(!this.hasCategory(options) ? { distinct: ['brand'] } : {}),\n },\n }\n\n if (['biggest-price', 'lowest-price', 'biggest-discount', 'best-rating'].includes(options.sort))\n return this.productRepository.findCatalog(repoParams)\n\n return this.productRepository.findCatalog(\n repoParams,\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\n )\n }\n\n private async buildMainFilter({\n category,\n profile,\n term,\n }: FetchProductsMainParams<T>): Promise<RepositoryFindFielters<Product>> {\n if (category) return this.categoryStructureAdapter.buildProductFilterByCategory(category)\n if (profile) return { tags: { operator: Where.LIKE, value: profile } }\n if (term)\n return this.productIndex\n .search(term, 999, this.shop)\n .then((data) => ({ id: { operator: Where.IN, value: data.hits.map(({ _source }) => _source.id) } }))\n }\n\n private async findCatalogAndSortByMostRevelant(\n mostRelevants: string[],\n productIds: string[],\n options: Omit<FetchProductsOptions, 'sort'> & {\n term?: FetchProductsMainParams<T>['term']\n filters?: FetchProductsFilters & { customOptions?: never }\n },\n limits: {\n limit?: number\n offset?: number\n },\n ): Promise<RepositoryFindResult<Product>> {\n const mostRelevantProductsIds = [...new Set(mostRelevants.concat(productIds))]\n const totalResult = await this.productRepository.findCatalog(\n {\n filters: {\n id: { operator: Where.IN, value: mostRelevantProductsIds },\n ...this.buildFilterQuery(options?.filters || {}),\n },\n orderBy: this.buildSortQuery('news'),\n options: {\n minimal: ['price'],\n maximum: ['price'],\n distinct: ['brand'],\n },\n },\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\n )\n const firstProducts = totalResult.data.filter((product) => mostRelevants.includes(product.id))\n const lastProducts = totalResult.data.filter((product) => !mostRelevants.includes(product.id))\n const categoryMostRelevants = firstProducts.concat(lastProducts)\n const resultFinal = categoryMostRelevants.slice(limits.offset, limits.offset + limits.limit)\n\n return {\n data: resultFinal,\n count: totalResult.count,\n maximum: totalResult.maximum,\n minimal: totalResult.minimal,\n distinct: totalResult.distinct,\n }\n }\n\n private async findCatalogAndSortByMostRevelantByTerm(\n productIds: string[],\n options: Omit<FetchProductsOptions, 'sort'> & {\n term?: FetchProductsMainParams<T>['term']\n filters?: FetchProductsFilters & { customOptions?: never }\n },\n limits: {\n limit?: number\n offset?: number\n },\n ): Promise<RepositoryFindResult<Product>> {\n const totalResult = await this.productRepository.findCatalog(\n {\n fields: ['id', 'stock'],\n filters: {\n id: { operator: Where.IN, value: productIds },\n ...this.buildFilterQuery(options?.filters || {}),\n },\n options: {\n minimal: ['price'],\n maximum: ['price'],\n distinct: ['brand'],\n },\n },\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\n )\n\n const stockData = totalResult.data.filter((product) => product.stock.quantity > 0)\n const stockOut = totalResult.data.filter((product) => product.stock.quantity <= 0)\n const productIdsStock = productIds.filter((product) => stockData.some((result) => result.id == product))\n const productIdsStockOut = productIds.filter((product) => stockOut.some((result) => result.id == product))\n\n const limitedProductId = productIdsStock\n .concat(productIdsStockOut)\n .slice(limits.offset, limits.offset + limits.limit)\n\n const orderedId = productIds.filter((product) => limitedProductId.includes(product))\n const productResult = await this.productRepository.findCatalog({\n filters: {\n id: { operator: Where.IN, value: orderedId },\n },\n })\n\n return {\n data: limitedProductId.map((id) => productResult.data.find((product) => product.id === id)).filter(Boolean),\n count: totalResult.count,\n maximum: totalResult.maximum,\n minimal: totalResult.minimal,\n distinct: totalResult.distinct,\n }\n }\n\n private async findCatalogIdsByElasticSearch(term: string): Promise<string[]> {\n if (this.productsByTerm[term]) return this.productsByTerm[term]\n\n return (this.productsByTerm[term] = await this.productIndex\n .search(term, 999, this.shop)\n .then(({ hits: products }) => {\n const withStock = products.filter(({ _source }) => _source.stock.quantity > 0)\n const withOutStock = products.filter(({ _source }) => _source.stock.quantity <= 0)\n const sorted = [...withStock, ...withOutStock]\n\n return [...new Set(sorted.map(({ _source }) => _source.id))]\n }))\n }\n\n private buildFilterQuery = ({\n clubDiscount,\n brands,\n prices,\n gender,\n tags,\n rate,\n customOptions,\n }: FetchProductsFilters): RepositoryFindFielters<Product> => {\n const filters = {} as RepositoryFindFielters<Product>\n\n if (clubDiscount?.length)\n set(filters, 'price.subscriberDiscountPercentage', { operator: Where.IN, value: clubDiscount })\n if (brands?.length) filters.brand = { operator: Where.IN, value: brands }\n if (gender?.length) filters.gender = { operator: Where.IN, value: gender }\n if (prices?.min || prices?.max)\n set(filters, prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price', [\n ...(prices.min ? [{ operator: Where.GTE, value: Math.round(prices.min) }] : []),\n ...(prices.max ? [{ operator: Where.LTE, value: Math.ceil(prices.max) }] : []),\n ])\n if (rate) filters.rate = { operator: Where.GTE, value: rate }\n if (tags?.length) filters.tags = { operator: Where.LIKE, value: tags }\n if (customOptions?.length) filters.filters = { operator: Where.LIKE, value: customOptions }\n\n return filters\n }\n\n private buildSortQuery = (sort: ProductSort): RepositoryOrderBy<Product> => {\n if (!sort || sort === 'most-relevant') return {}\n\n if (sort === 'best-sellers')\n return {\n shoppingCount: 'desc',\n rate: 'desc',\n stock: 'desc',\n name: 'asc',\n }\n if (sort === 'biggest-price') return { subscriberPrice: 'desc', rate: 'desc', shoppingCount: 'desc' } as any\n if (sort === 'lowest-price') return { subscriberPrice: 'asc', rate: 'desc', shoppingCount: 'desc' } as any\n if (sort === 'best-rating') return { rate: 'desc', shoppingCount: 'desc', stock: 'desc', name: 'asc' }\n if (sort === 'news') return { createdAt: 'desc' }\n if (sort === 'biggest-discount')\n return { subscriberDiscountPercentage: 'desc', rate: 'desc', shoppingCount: 'desc' } as any\n }\n\n private buildLimitQuery = (options: { page?: number; perPage?: number }): { limit?: number; offset?: number } => {\n const limit = options?.perPage || 20\n\n return {\n limit,\n offset: ((options?.page || 1) - 1) * limit,\n }\n }\n\n private hasProfile = (\n options: FetchProductsParams<T>,\n ): options is FetchProductsOptions & {\n profile: FetchProductsMainParams<T>['profile']\n filters?: FetchProductsFilters & { customOptions?: never; tags?: never }\n } => 'profile' in options\n\n private hasTerm = (\n options: FetchProductsParams<T>,\n ): options is FetchProductsOptions & {\n term: FetchProductsMainParams<T>['term']\n filters?: FetchProductsFilters & { customOptions?: never }\n } => 'term' in options\n\n private hasCategory = (\n options: FetchProductsParams<T>,\n ): options is FetchProductsOptions & {\n category: FetchProductsMainParams<T>['category']\n filters?: FetchProductsFilters & { customOptions?: never }\n } => 'category' in options\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Category,\n CategoryFilterRepository,\n CategoryRepository,\n Filter,\n ProductGender,\n ProductRepository,\n Shops,\n} from '@infrab4a/connect'\nimport { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts'\nimport { CategoryStructureAdapter } from './adapters'\n\ntype FetchBrandsOptions = {\n mainGender?: ProductGender\n shop?: Shops\n}\n\n@Injectable()\nexport class CategoryService {\n constructor(\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject('CategoryFilterRepository') private readonly categoryFilterRepository: CategoryFilterRepository,\n @Inject(CATEGORY_STRUCTURE) private readonly categoryStructureAdapter: CategoryStructureAdapter,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n ) {}\n\n async fetchBrands(category: Category, options?: FetchBrandsOptions): Promise<Category[]> {\n const brands = await this.productRepository\n .findCatalog(\n {\n filters: await this.categoryStructureAdapter.buildProductFilterByCategory(category),\n fields: ['brand'],\n },\n options?.mainGender ? options?.mainGender : this.shop === Shops.MENSMARKET ? 'male' : 'female',\n )\n .then(({ data }) =>\n Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})),\n )\n\n return this.categoryRepository\n .find({ filters: { brandCategory: true, shop: options?.shop || this.shop }, orderBy: { name: 'asc' } })\n .then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)))\n }\n\n async fetchFilterOptions(category: Category): Promise<Filter[]> {\n return await this.categoryFilterRepository\n .find({ filters: { categoryId: +category.id } })\n .then(({ data }) => data.map((categoryFilter) => categoryFilter.filter))\n }\n}\n","export enum ProductSorts {\n MOST_RELEVANT = 'most-relevant',\n BEST_SELLER = 'best-sellers',\n BIGGEST_PRICE = 'biggest-price',\n LOWEST_PRICE = 'lowest-price',\n BIGGEST_DISCOUNT = 'biggest-discount',\n BEST_RATING = 'best-rating',\n NEWS = 'news',\n}\n","import { Type } from 'class-transformer'\n\nimport { Category } from '@infrab4a/connect'\n\nexport class CategoryWithTree extends Category {\n @Type(() => CategoryWithTree)\n children?: CategoryWithTree[]\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n CategoryFilterRepository,\n CategoryRepository,\n PersonType,\n PersonTypes,\n ProductRepository,\n ProductsIndex,\n ProductStockNotificationRepository,\n Shops,\n Wishlist,\n WishlistRepository,\n} from '@infrab4a/connect'\nimport { DEFAULT_SHOP } from '../../consts'\nimport { NewCategoryStructureAdapter } from './adapters'\nimport { CatalogService } from './catalog.service'\nimport { CategoryService } from './category.service'\n\n@Injectable()\nexport class WishlistService {\n private catalogService: CatalogService\n private categoryService: CategoryService\n\n constructor(\n @Inject('WishlistRepository') private readonly wishlistRepository: WishlistRepository,\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\n @Inject('ProductRepository') productRepository: ProductRepository,\n @Inject('CategoryFilterRepository') categoryFilterRepository: CategoryFilterRepository,\n @Inject('CategoryRepository') categoryRepository: CategoryRepository,\n @Inject('ProductStockNotificationRepository')\n productStockNotificationRepository: ProductStockNotificationRepository,\n productIndex: ProductsIndex,\n ) {\n const categoryStructureAdapter = new NewCategoryStructureAdapter(wishlistRepository)\n\n this.catalogService = new CatalogService<Wishlist>(\n productRepository,\n productStockNotificationRepository,\n categoryRepository,\n categoryStructureAdapter,\n shop,\n productIndex,\n )\n this.categoryService = new CategoryService(\n productRepository,\n categoryRepository,\n categoryFilterRepository,\n categoryStructureAdapter,\n shop,\n )\n }\n\n getCatalogService() {\n return this.catalogService\n }\n\n getCategoryService() {\n return this.categoryService\n }\n\n async create({\n personId,\n title,\n description,\n published,\n userFullName,\n userPhoto,\n theme,\n bannerUrl,\n personType,\n personIsSubscriber,\n }: {\n personId: string\n title: string\n description: string\n published: boolean\n userFullName: string\n userPhoto?: string\n theme?: string\n bannerUrl?: string\n personType?: PersonType\n personIsSubscriber?: boolean\n }): Promise<Wishlist> {\n const data = {\n slug: '',\n name: title,\n description,\n metadatas: [\n {\n shop: this.shop,\n title: `${userFullName} - ${title}`,\n description: `${userFullName} - ${description}`,\n },\n ],\n shop: this.shop,\n shops: [this.shop],\n personId,\n personName: userFullName,\n personPhoto: userPhoto,\n brandCategory: false,\n published,\n theme,\n bannerUrl,\n personType: personType ?? PersonTypes.NONE,\n personIsSubscriber: personIsSubscriber ?? false,\n }\n\n const newWishlist = await this.wishlistRepository.create(data)\n\n await this.wishlistRepository.update({ id: newWishlist.id, slug: newWishlist.id })\n\n return Wishlist.toInstance({ ...newWishlist.toPlain(), slug: newWishlist.id })\n }\n\n update({\n id,\n title,\n description,\n published,\n userFullName,\n userPhoto,\n theme,\n bannerUrl,\n personType,\n personIsSubscriber,\n }: {\n id: string\n title: string\n description: string\n published: boolean\n userFullName: string\n userPhoto?: string\n theme?: string\n bannerUrl?: string\n personType?: PersonType\n personIsSubscriber?: boolean\n }): Promise<Wishlist> {\n const data = {\n id,\n name: title,\n description,\n published,\n metadatas: [\n {\n shop: this.shop,\n title: `${userFullName} - ${title}`,\n description: `${userFullName} - ${description}`,\n },\n ],\n personName: userFullName,\n personPhoto: userPhoto,\n theme,\n bannerUrl,\n personType: personType ?? PersonTypes.NONE,\n personIsSubscriber: personIsSubscriber ?? false,\n }\n\n return this.wishlistRepository.update(data)\n }\n\n delete(wishlistId: string): Promise<void> {\n return this.wishlistRepository.delete({ id: wishlistId })\n }\n\n getWishlistBySlug(slug: string): Promise<Wishlist> {\n const [id] = slug.split('-')\n\n if (+id) return this.wishlistRepository.get({ id })\n\n return this.wishlistRepository.getWishlistBySlug(slug)\n }\n\n getWishlistsByPerson(personId: string): Promise<Wishlist[]> {\n return this.wishlistRepository.getWishlistByPerson(personId)\n }\n\n async addProduct(wishlistId: string, productId: string): Promise<Wishlist> {\n const wishlist = await this.wishlistRepository.get({ id: wishlistId })\n const hasProduct = wishlist.products.some((p) => p == productId)\n\n if (!hasProduct) {\n wishlist.products = [...wishlist.products, productId]\n return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products })\n }\n\n return wishlist\n }\n\n async removeProduct(wishlistId: string, productId: string): Promise<Wishlist> {\n const wishlist = await this.wishlistRepository.get({ id: wishlistId })\n const productIndex = wishlist.products.findIndex((p) => p == productId)\n\n if (productIndex != -1) {\n wishlist.products.splice(productIndex, 1)\n\n if (!wishlist.products.length)\n return this.wishlistRepository.update({ id: wishlistId, products: { action: 'remove' } })\n\n return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products })\n }\n\n return wishlist\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n CheckoutSubscription,\n CheckoutSubscriptionRepository,\n CheckoutTypes,\n Coupon,\n isNil,\n pick,\n} from '@infrab4a/connect'\nimport { Observable } from 'rxjs'\nimport { concatMap } from 'rxjs/operators'\nimport { RequiredCheckoutSubscriptionData } from './types'\n\nimport { PERSISTENCE_PROVIDER } from '../consts'\nimport { DataPersistence } from '../persistence'\nimport { CouponService } from './coupon.service'\n\n@Injectable()\nexport class CheckoutSubscriptionService {\n constructor(\n @Inject('CheckoutSubscriptionRepository')\n private readonly checkoutSubscriptionRepository: CheckoutSubscriptionRepository,\n @Inject(PERSISTENCE_PROVIDER) private readonly dataPersistence: DataPersistence,\n private readonly couponService: CouponService,\n ) {}\n\n getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription> {\n return this.dataPersistence\n .get('checkoutSubscriptionId')\n .pipe(\n concatMap((id) =>\n !isNil(id) ? this.checkoutSubscriptionRepository.get({ id }) : this.createCheckoutSubscription(checkoutData),\n ),\n )\n }\n\n clearCheckoutSubscriptionFromSession(): Observable<void> {\n return this.dataPersistence.remove('checkoutSubscriptionId')\n }\n\n checkCoupon(nickname: string, userEmail: string): Observable<Coupon> {\n return this.getCheckoutSubscription().pipe(\n concatMap((checkout) =>\n this.couponService\n .checkCoupon(nickname, CheckoutTypes.SUBSCRIPTION, checkout, checkout.subscriptionPlan.name)\n .pipe(),\n ),\n )\n }\n\n calcDiscountSubscription(coupon: Coupon) {\n return this.getCheckoutSubscription().pipe(\n concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()),\n )\n }\n\n private async createCheckoutSubscription(\n checkoutData?: RequiredCheckoutSubscriptionData,\n ): Promise<CheckoutSubscription> {\n const checkout = await this.checkoutSubscriptionRepository.create({\n createdAt: new Date(),\n ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\n })\n\n await this.dataPersistence.set('checkoutSubscriptionId', checkout.id).toPromise()\n\n return checkout\n }\n}\n","export class UtilHelper {\n static createSlug(name: string): string {\n return name\n .toLowerCase()\n .replace(/\\s+/g, '-') // Replace spaces with -\n .replace(/[ãàáäâ]/g, 'a') // Replace spaces with -\n .replace(/[ẽèéëê]/g, 'e') // Replace spaces with -\n .replace(/[ìíïî]/g, 'i') // Replace spaces with -\n .replace(/[õòóöô]/g, 'o') // Replace spaces with -\n .replace(/[ùúüû]/g, 'u') // Replace spaces with -\n .replace(/[ñ]/g, 'n') // Replace spaces with -\n .replace(/[ç]/g, 'c') // Replace spaces with -\n .replace(/[&]/g, 'and') // Replace spaces with -\n .replace(/[^\\w\\-]+/g, '') // Remove all non-word chars\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\n }\n}\n","import { Inject, Injectable } from '@angular/core'\nimport {\n Banner,\n Category,\n CategoryRepository,\n Home,\n HomeCategoryGroup,\n HomeData,\n HomeRepository,\n Product,\n ProductRepository,\n RequiredArgumentError,\n Shops,\n Where,\n add,\n pick,\n} from '@infrab4a/connect'\nimport { Observable, forkJoin, from, of, throwError } from 'rxjs'\nimport { concatMap, map, tap } from 'rxjs/operators'\n\nimport { DEFAULT_SHOP } from '../consts'\n\ntype HomeConfigurationId = 'glamshop' | 'mens_market'\ntype BannerType = 'brand' | 'buyToWin' | 'block' | 'blog'\n\n@Injectable()\nexport class HomeShopService {\n private homeConfiguration: Home\n\n private get homeId(): HomeConfigurationId {\n if (this.defaultShop === Shops.GLAMSHOP) return 'glamshop'\n if (this.defaultShop === Shops.MENSMARKET) return 'mens_market'\n\n return null\n }\n\n constructor(\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\n @Inject('HomeRepository') private readonly homeRepository: HomeRepository,\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\n ) {}\n\n getHomeData(): Observable<Home> {\n return this.getHomeConfiguration().pipe(\n map((home) => (home?.data?.expiresAt > new Date() ? home : null)),\n concatMap((home) =>\n home\n ? of(home)\n : forkJoin([\n this.getDiscoverProducts(this.gender),\n this.getFeaturedProducts(this.gender),\n this.getVerticalProducts(this.gender),\n ]).pipe(\n map(([discoverProducts, featuredProducts, verticalProducts]) => ({\n discoverProducts,\n featuredProducts,\n verticalProducts,\n })),\n concatMap((data) => this.saveHomeData(data)),\n ),\n ),\n )\n }\n\n getBanners(type: BannerType): Observable<Banner[]> {\n return this.getHomeConfiguration().pipe(\n map((home) => {\n if (type === 'brand') return home.brandsCarousel\n if (type === 'buyToWin') return [home.buyToWinBanner]\n if (type === 'block') return home.blockBanners\n if (type === 'blog') return [home.blogBanner]\n\n return []\n }),\n )\n }\n\n getMinValueForFreeShipping(): Observable<number> {\n return this.getHomeConfiguration().pipe(map((home) => home.minValueForFreeShipping))\n }\n\n private getDiscoverProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n from(this.categoryRepository.getCategoriesForHome(home.discoverCategories, undefined, gender)).pipe(\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\n ),\n ),\n )\n }\n\n private getFeaturedProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n from(this.categoryRepository.getCategoriesForHome(home.featuredCategories, undefined, gender)).pipe(\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\n ),\n ),\n )\n }\n\n private getVerticalProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\n return this.getHomeConfiguration().pipe(\n concatMap((home) =>\n forkJoin(\n home.verticalCarousels.filter(Boolean).map((id) =>\n from(this.categoryRepository.get({ id })).pipe(\n concatMap((category) =>\n from(\n this.productRepository.find({\n filters: {\n categories: { operator: Where.IN, value: [category.id] },\n ...(gender ? { tags: { operator: Where.IN, value: [gender] } } : {}),\n },\n limits: { limit: 12 },\n }),\n ).pipe(map((products) => ({ category, products }))),\n ),\n map(({ category, products }) => ({ category, products: products.data })),\n map(this.buildCategoryGroupWithRequiredData),\n ),\n ),\n ),\n ),\n )\n }\n\n private getHomeConfiguration(): Observable<Home> {\n return of(this.homeConfiguration).pipe(\n concatMap((home) =>\n home\n ? of(home)\n : !this.homeId\n ? throwError(new RequiredArgumentError(['homeId']))\n : from(this.homeRepository.get({ id: this.homeId })).pipe(\n tap((homeLoaded) => (this.homeConfiguration = homeLoaded)),\n ),\n ),\n )\n }\n\n private saveHomeData(homeData: HomeData): Observable<Home> {\n const data = {\n createdAt: new Date(),\n expiresAt: add(new Date(), { hours: 1 }),\n data: homeData,\n }\n\n return from(\n this.homeRepository.update({\n id: this.homeId,\n data,\n }),\n ).pipe(\n tap(() => (this.homeConfiguration.data = data)),\n map(() => this.homeConfiguration),\n )\n }\n\n private buildCategoryGroupWithRequiredData = (group: HomeCategoryGroup): HomeCategoryGroup => ({\n category: Category.toInstance(pick(group?.category?.toPlain() || {}, ['id', 'name', 'slug', 'conditions'])),\n products:\n group?.products?.map((product) =>\n Product.toInstance(\n pick(product?.toPlain() || {}, [\n 'id',\n 'price',\n 'reviews',\n 'hasVariants',\n 'slug',\n 'sku',\n 'stock',\n 'costPrice',\n 'images',\n 'miniatures',\n 'name',\n 'weight',\n 'rate',\n 'type',\n 'brand',\n ]),\n ),\n ) || [],\n })\n\n private get gender() {\n return this.homeId === 'mens_market' ? 'masculino' : undefined\n }\n}\n","import { Injectable, Inject } from '@angular/core'\nimport { doc, Firestore, docSnapshots } from '@angular/fire/firestore'\nimport { Order, OrderFirestoreRepository } from '@infrab4a/connect'\nimport { Subject } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\n@Injectable()\nexport class OrderService {\n orderSubject = new Subject<Order>()\n\n constructor(\n private readonly angularFirestore: Firestore,\n @Inject('OrderRepository') private readonly orderRepository: OrderFirestoreRepository,\n ) {}\n\n getOrder(id: string): Subject<Order> {\n docSnapshots(doc(this.angularFirestore, `${this.orderRepository.collectionName}/${id}`))\n .pipe(map((doc) => Order.toInstance(doc.data())))\n .subscribe((doc) => this.orderSubject.next(doc))\n\n return this.orderSubject\n }\n}\n","import { HttpClient } from '@angular/common/http'\nimport { Inject, Injectable } from '@angular/core'\nimport { Home, Shops } from '@infrab4a/connect'\nimport { Observable, combineLatest } from 'rxjs'\nimport { map } from 'rxjs/operators'\n\nimport { BACKEND_URL } from '../consts'\nimport { HomeShopService } from './home-shop.service'\nimport { ShippingMethodResponse } from './types/shipping-methods.type'\n\n@Injectable()\nexport class ShippingService {\n constructor(\n private http: HttpClient,\n @Inject(BACKEND_URL) private apiUrl: string,\n private homeService: HomeShopService,\n ) {}\n\n public getShippingMethods(\n shop: string,\n zip: string,\n weightGrams: number,\n totalPrice: number,\n personId: string,\n subscriptionPlan?: string,\n ): Observable<Array<ShippingMethodResponse & { ShippingCompanyName?: string }>> {\n return combineLatest([\n this.homeService.getHomeData(),\n this.http.get(\n `${this.apiUrl}open/checkshippingcompany?personId=${personId}&postalCode=${zip}&weightGrams=${weightGrams}`,\n ),\n ]).pipe(\n map(([datas, shippingMethodsResponse]: [Home & Partial<{ sameDayNotAvaliable: any }>, any]) => {\n let shippingMethods = shippingMethodsResponse.result as (ShippingMethodResponse & {\n ShippingCompanyName?: string\n })[]\n\n if (!shippingMethods.length) return []\n\n shippingMethods = shippingMethods.map((shippingMethod) => {\n if (shippingMethod.ShippingCompanyName == 'Same Day EG') shippingMethod.ShippingCompanyName = 'Same Day'\n\n return shippingMethod\n })\n\n const datasSameDayNotAvaliable = datas.sameDayNotAvaliable\n\n if (this.isHolidays(datasSameDayNotAvaliable)) {\n shippingMethods = shippingMethods.filter((method) => method.serviceName !== 'Same Day')\n }\n\n if (totalPrice >= 200) {\n shippingMethods = shippingMethods.map((s) => {\n if (s.serviceName !== 'Same Day') return { ...s, totalPrice: 0 }\n else return s\n })\n }\n\n if (shop == Shops.GLAMSHOP) return shippingMethods\n\n if (this.isFreeShippingBySubscription(shop, subscriptionPlan)) {\n shippingMethods = shippingMethods.map((s) => {\n if (s.serviceName == 'Same Day') return { ...s, totalPrice: s.totalPrice / 2 }\n else return { ...s, totalPrice: 0 }\n })\n }\n\n if (this.isHalfShippingBySubscription(shop, subscriptionPlan)) {\n shippingMethods = shippingMethods.map((s) => {\n return { ...s, totalPrice: s.totalPrice / 2 }\n })\n }\n\n return shippingMethods\n }),\n )\n }\n\n private isFreeShippingBySubscription(shop: string, subscriptionPlan: string): boolean {\n if (!subscriptionPlan) return false\n\n if (shop == Shops.MENSMARKET && subscriptionPlan == 'SELECT') return true\n\n return false\n }\n\n private isHalfShippingBySubscription(shop: string, subscriptionPlan: string) {\n if (!subscriptionPlan) return false\n\n if (shop == Shops.MENSMARKET && subscriptionPlan == 'PRIME') {\n return true\n }\n\n return false\n }\n\n private isHolidays(datas: any): boolean {\n const today = new Date()\n\n for (const key in datas) {\n let start = new Date(`${today.getFullYear()}-${datas[key].beginDate}`)\n let end = new Date(`${today.getFullYear()}-${datas[key].endDate}`)\n\n if (start > end) end = new Date(`${today.getFullYear() + 1}-${datas[key].endDate}`)\n\n if (today >= start && today <= end) return true\n }\n\n return false\n }\n}\n","import { Injector, ModuleWithProviders, NgModule, Type } from '@angular/core'\nimport { FirebaseApp, FirebaseOptions, getApp, initializeApp, provideFirebaseApp } from '@angular/fire/app'\nimport { Storage, getStorage, provideStorage } from '@angular/fire/storage'\nimport {\n AxiosElasticSearchConfig,\n FileUploaderService,\n FirebaseFileUploaderService,\n Shops,\n UpdateUserImage,\n UserRepository,\n isNil,\n} from '@infrab4a/connect'\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\nimport { AngularFirebaseAuthModule } from './angular-firebase-auth.module'\nimport { AngularFirestoreModule } from './angular-firestore.module'\nimport { AngularHasuraGraphQLModule, HasuraGraphQLOptions } from './angular-hasura-graphql.module'\nimport {\n BACKEND_URL,\n CATEGORY_STRUCTURE,\n DEFAULT_SHOP,\n ES_CONFIG,\n FIREBASE_APP_NAME,\n FIREBASE_OPTIONS,\n HASURA_OPTIONS,\n PERSISTENCE_PROVIDER,\n} from './consts'\nimport { STORAGE_BASE_URL } from './consts/storage-base-url.const'\nimport { CookieDataPersistence, DataPersistence } from './persistence'\nimport {\n AuthService,\n CartService,\n CatalogService,\n CategoryService,\n CheckoutService,\n CheckoutSubscriptionService,\n CouponService,\n HomeShopService,\n OrderService,\n ShippingService,\n WishlistService,\n} from './services'\nimport { NewCategoryStructureAdapter, OldCategoryStructureAdapter } from './services/catalog/adapters'\nimport { FirebaseAppConfig } from './types'\n\n@NgModule({\n imports: [\n provideFirebaseApp((injector: Injector) => {\n const appName = injector.get<string>(FIREBASE_APP_NAME) || '[DEFAULT]'\n\n try {\n return getApp(appName)\n } catch (error) {\n return initializeApp(injector.get(FIREBASE_OPTIONS), appName)\n }\n }),\n provideStorage((injector: Injector) => getStorage(injector.get(FirebaseApp))),\n AngularElasticSeachModule,\n AngularFirebaseAuthModule,\n AngularFirestoreModule,\n AngularHasuraGraphQLModule,\n ],\n providers: [\n AuthService,\n CartService,\n CatalogService,\n CategoryService,\n CheckoutService,\n CheckoutSubscriptionService,\n CouponService,\n HomeShopService,\n OrderService,\n ShippingService,\n WishlistService,\n {\n provide: UpdateUserImage,\n useFactory: (userRepository: UserRepository, fileUploader: FileUploaderService) => {\n return new UpdateUserImage(userRepository, fileUploader)\n },\n deps: ['UserRepository', 'FileUploaderService'],\n },\n {\n provide: 'FileUploaderService',\n useFactory: (storage: Storage, baseUrl: string) => {\n return new FirebaseFileUploaderService(storage, baseUrl)\n },\n deps: [Storage, STORAGE_BASE_URL],\n },\n ],\n})\nexport class AngularConnectModule {\n static initializeApp(\n defaultShop: Shops,\n options: {\n firebase: FirebaseOptions\n elasticSearch: AxiosElasticSearchConfig\n hasura: HasuraGraphQLOptions\n backendUrl: string\n oldCategoryStructure?: boolean\n storageBaseUrl?: string\n persistenceProvider?: Type<DataPersistence>\n },\n nameOrConfig?: string | FirebaseAppConfig,\n ): ModuleWithProviders<AngularConnectModule> {\n return {\n ngModule: AngularConnectModule,\n providers: [\n {\n provide: CATEGORY_STRUCTURE,\n useClass:\n isNil(options?.oldCategoryStructure) || options?.oldCategoryStructure\n ? OldCategoryStructureAdapter\n : NewCategoryStructureAdapter,\n },\n { provide: PERSISTENCE_PROVIDER, useClass: options?.persistenceProvider || CookieDataPersistence },\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options?.firebase }]),\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),\n ...(isNil(options?.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),\n ...(isNil(options?.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),\n ...(isNil(options?.backendUrl) ? [] : [{ provide: BACKEND_URL, useValue: options.backendUrl }]),\n ...(isNil(options?.storageBaseUrl) ? [] : [{ provide: STORAGE_BASE_URL, useValue: options.storageBaseUrl }]),\n ],\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.AuthService","i2.CheckoutService","i1.CouponService","i2.HomeShopService"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAO,MAAM,SAAS,GAAG,WAAW;;MCevB,yBAAyB,CAAA;IACpC,OAAO,aAAa,CAAC,OAAiC,EAAA;QACpD,OAAO;AACL,YAAA,QAAQ,EAAE,yBAAyB;YACnC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SACvD,CAAA;KACF;8GANU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAzB,yBAAyB,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EATzB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACtB,gBAAA,UAAU,EAAE,CAAC,aAAuC,KAClD,IAAI,aAAa,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;gBACpD,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,aAAA;AACF,SAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAVrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACtB,4BAAA,UAAU,EAAE,CAAC,aAAuC,KAClD,IAAI,aAAa,CAAC,IAAI,YAAY,CAAC,aAAa,CAAC,CAAC;4BACpD,IAAI,EAAE,CAAC,SAAS,CAAC;AAClB,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACdM,MAAM,WAAW,GAAG,aAAa;;ACAjC,MAAM,kBAAkB,GAAG,oBAAoB;;ACA/C,MAAM,YAAY,GAAG,cAAc;;ACEnC,MAAM,iBAAiB,GAAG,IAAI,cAAc,CAAC,iBAAiB,CAAC,CAAA;AAC/D,MAAM,gBAAgB,GAAG,IAAI,cAAc,CAAC,iBAAiB,CAAC;;ACH9D,MAAM,cAAc,GAAG,gBAAgB;;ACAvC,MAAM,oBAAoB,GAAG,sBAAsB;;MCiE7C,yBAAyB,CAAA;AACpC,IAAA,OAAO,aAAa,CAClB,OAAwB,EACxB,YAAyC,EAAA;QAEzC,OAAO;AACL,YAAA,QAAQ,EAAE,yBAAyB;AACnC,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE;AAChD,gBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE;AACvD,aAAA;SACF,CAAA;KACF;8GAZU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAAzB,yBAAyB,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,CAAA,CAAA,EAAA;AAAzB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,EA7CzB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,UAAU,EAAE,CAAC,qBAA4C,EAAE,cAA8B,KAAoB;AAC3G,oBAAA,OAAO,IAAI,cAAc,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAA;iBACjE;AACD,gBAAA,IAAI,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;AAClD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,uBAAuB;AAChC,gBAAA,UAAU,EAAE,CAAC,eAAqB,KAA2B;AAC3D,oBAAA,OAAO,IAAI,iCAAiC,CAAC,eAAe,CAAC,CAAA;iBAC9D;gBACD,IAAI,EAAE,CAAC,IAAI,CAAC;AACb,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,UAAU,EAAE,CAAC,eAAgC,EAAE,cAA8B,KAAc;AACzF,oBAAA,OAAO,IAAI,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA;iBACrD;AACD,gBAAA,IAAI,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;AAC5C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,UAAU,EAAE,CAAC,eAAqB,KAAqB;AACrD,oBAAA,OAAO,IAAI,2BAA2B,CAAC,eAAe,CAAC,CAAA;iBACxD;gBACD,IAAI,EAAE,CAAC,IAAI,CAAC;AACb,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,SAAS;AAClB,gBAAA,UAAU,EAAE,CAAC,qBAA4C,KAAa;AACpE,oBAAA,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAA;iBAC1C;gBACD,IAAI,EAAE,CAAC,uBAAuB,CAAC;AAChC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,UAAU,EAAE,CAAC,qBAA4C,KAAsB;AAC7E,oBAAA,OAAO,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;iBACnD;gBACD,IAAI,EAAE,CAAC,uBAAuB,CAAC;AAChC,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CA5CS,WAAW,CAAC,CAAC,QAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAA,EAAA,CAAA,CAAA,EAAA;;2FA8CtE,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA/CrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,WAAW,CAAC,CAAC,QAAkB,KAAK,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AAClF,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,gBAAgB;AACzB,4BAAA,UAAU,EAAE,CAAC,qBAA4C,EAAE,cAA8B,KAAoB;AAC3G,gCAAA,OAAO,IAAI,cAAc,CAAC,qBAAqB,EAAE,cAAc,CAAC,CAAA;6BACjE;AACD,4BAAA,IAAI,EAAE,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;AAClD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,uBAAuB;AAChC,4BAAA,UAAU,EAAE,CAAC,eAAqB,KAA2B;AAC3D,gCAAA,OAAO,IAAI,iCAAiC,CAAC,eAAe,CAAC,CAAA;6BAC9D;4BACD,IAAI,EAAE,CAAC,IAAI,CAAC;AACb,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,UAAU;AACnB,4BAAA,UAAU,EAAE,CAAC,eAAgC,EAAE,cAA8B,KAAc;AACzF,gCAAA,OAAO,IAAI,QAAQ,CAAC,eAAe,EAAE,cAAc,CAAC,CAAA;6BACrD;AACD,4BAAA,IAAI,EAAE,CAAC,iBAAiB,EAAE,gBAAgB,CAAC;AAC5C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,UAAU,EAAE,CAAC,eAAqB,KAAqB;AACrD,gCAAA,OAAO,IAAI,2BAA2B,CAAC,eAAe,CAAC,CAAA;6BACxD;4BACD,IAAI,EAAE,CAAC,IAAI,CAAC;AACb,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,SAAS;AAClB,4BAAA,UAAU,EAAE,CAAC,qBAA4C,KAAa;AACpE,gCAAA,OAAO,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAA;6BAC1C;4BACD,IAAI,EAAE,CAAC,uBAAuB,CAAC;AAChC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,UAAU,EAAE,CAAC,qBAA4C,KAAsB;AAC7E,gCAAA,OAAO,IAAI,gBAAgB,CAAC,qBAAqB,CAAC,CAAA;6BACnD;4BACD,IAAI,EAAE,CAAC,uBAAuB,CAAC;AAChC,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;MChEY,kCAAkC,CAAA;AAC7C,IAAA,OAAO,aAAa,GAAA;QAClB,QACE,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CACzF,SAAS,EAAE,QAAQ,CACpB;AACD,aAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,GAAG,KAAK,CAAC,IAAI,YAAY,KAAK,QAAQ,IAAI,EAAE,CAAC,CAAC,EAC9E;KACF;AACF;;MC8TY,sBAAsB,CAAA;AACjC,IAAA,OAAO,aAAa,CAClB,OAGC,EACD,YAAyC,EAAA;QAEzC,OAAO;AACL,YAAA,QAAQ,EAAE,sBAAsB;AAChC,YAAA,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE;AACzD,gBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE;gBACtD,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE;AACxD,aAAA;SACF,CAAA;KACF;8GAhBU,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YA3P/B,yBAAyB,EAAAA,IAAA,CAAA,eAAA,CAAA,EAAA,CAAA,CAAA,EAAA;AA2PhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,EAzOtB,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;gBAC3B,UAAU,EAAE,CAAC,SAAoB,EAAE,UAAkB,MAAwB;AAC3E,oBAAA,SAAS,EAAE,IAAI,uBAAuB,CAAC,SAAS,CAAC;AACjD,oBAAA,YAAY,EAAE;AACZ,wBAAA,OAAO,EAAE,CAAC,OAA8F,KAAI;4BAC1G,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,gCAAA,OAAO,OAAO,CAAA;4BAEjD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK,GAAG,EAAE,GAAG,CAAC,CAAA;AAE3C,4BAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAE3B,4BAAA,OAAO,OAAO,CAAA;yBACf;AACD,wBAAA,QAAQ,EAAE,CACR,QAAa,EACb,OAA8F,KAC5F;4BACF,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,gCAAA,OAAO,QAAQ,CAAA;AAElD,4BAAA,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE/B,4BAAA,OAAO,QAAQ,CAAA;yBAChB;AACF,qBAAA;iBACF,CAAC;AACF,gBAAA,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;AAC/B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,yBAAyB;AAClC,gBAAA,UAAU,EAAE,CAAC,MAAwB,EAAE,cAAuC,KAA6B;AACzG,oBAAA,OAAO,IAAI,oCAAoC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;iBACxE;AACD,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAC7C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAuB;AAC3D,oBAAA,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;iBAC/C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,2BAA2B;AACpC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAwB;AAC5D,oBAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;iBAChD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAwB;AAC5D,oBAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;iBAChD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,gCAAgC;AACzC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAoC;AACxE,oBAAA,OAAO,IAAI,uCAAuC,CAAC,OAAO,CAAC,CAAA;iBAC5D;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAsB;AAC1D,oBAAA,OAAO,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAA;iBAC9C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,2BAA2B;AACpC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAA+B;AACnE,oBAAA,OAAO,IAAI,kCAAkC,CAAC,OAAO,CAAC,CAAA;iBACvD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,6BAA6B;AACtC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAiC;AACrE,oBAAA,OAAO,IAAI,oCAAoC,CAAC,OAAO,CAAC,CAAA;iBACzD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,UAAU,EAAE,CACV,OAAyB,EACzB,sBAAuD,KAClC;AACrB,oBAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;iBACnF;AACD,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;AACrD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAoB;AACxD,oBAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;iBAC5C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAoB;AACxD,oBAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;iBAC5C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,uBAAuB;AAChC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAA2B;AAC/D,oBAAA,OAAO,IAAI,8BAA8B,CAAC,OAAO,CAAC,CAAA;iBACnD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAwB;AAC5D,oBAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;iBAChD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAqB;AACzD,oBAAA,OAAO,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAA;iBAC7C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAuB;AAC3D,oBAAA,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;iBAC/C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,0BAA0B;AACnC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAuB;AAC3D,oBAAA,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;iBAC/C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAA4B;AAChE,oBAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;iBACpD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;AACxC,gBAAA,UAAU,EAAE,CACV,OAAyB,EACzB,sBAAuD,KACtB;AACjC,oBAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;iBACnF;AACD,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;AACrD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,4BAA4B;AACrC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAgC;AACpE,oBAAA,OAAO,IAAI,mCAAmC,CAAC,OAAO,CAAC,CAAA;iBACxD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;AACxC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAmC;AACvE,oBAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,CAAC,CAAA;iBAC3D;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAA4B;AAChE,oBAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;iBACpD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,gBAAgB;AACzB,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAoB;AACxD,oBAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;iBAC5C;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,uBAAuB;AAChC,gBAAA,UAAU,EAAE,CAAC,OAAyB,EAAE,cAAuC,KAA2B;AACxG,oBAAA,OAAO,IAAI,8BAA8B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;iBACnE;AACD,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAC7C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,6BAA6B;AACtC,gBAAA,UAAU,EAAE,CAAC,OAAyB,EAAE,cAAuC,KAAiC;AAC9G,oBAAA,OAAO,IAAI,oCAAoC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;iBACzE;AACD,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAC7C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,uCAAuC;AAChD,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAA2C;AAC/E,oBAAA,OAAO,IAAI,8CAA8C,CAAC,OAAO,CAAC,CAAA;iBACnE;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;AACxC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAAmC;AACvE,oBAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,CAAC,CAAA;iBAC3D;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iCAAiC;AAC1C,gBAAA,UAAU,EAAE,CAAC,OAAyB,EAAE,iBAA6C,KAAuB;AAC1G,oBAAA,OAAO,IAAI,iCAAiC,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;iBACzE;AACD,gBAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;AACvD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,UAAU,EAAE,CAAC,OAAyB,KAA4B;AAChE,oBAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;iBACpD;gBACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAzPC,yBAAyB;AACzB,YAAA,gBAAgB,CAAC,CAAC,QAAkB,KAAI;gBACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBAE5C,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,kCAAkC,CAAC,aAAa,EAAE;oBACrF,OAAO,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACpD,wBAAA,yBAAyB,EAAE,IAAI;AAChC,qBAAA,CAAC,CAAA;gBAEJ,MAAM,SAAS,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AAC/D,oBAAA,4BAA4B,EAAE,IAAI;AAClC,oBAAA,yBAAyB,EAAE,IAAI;oBAC/B,UAAU,EAAE,gBAAgB,EAAE;AAC/B,iBAAA,CAAC,CAAA;AAEF,gBAAA,OAAO,SAAS,CAAA;AAClB,aAAC,CAAC,CAAA,EAAA,CAAA,CAAA,EAAA;;2FA2OO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBA7PlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,yBAAyB;AACzB,wBAAA,gBAAgB,CAAC,CAAC,QAAkB,KAAI;4BACtC,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;4BAE5C,IAAI,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,kCAAkC,CAAC,aAAa,EAAE;gCACrF,OAAO,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AACpD,oCAAA,yBAAyB,EAAE,IAAI;AAChC,iCAAA,CAAC,CAAA;4BAEJ,MAAM,SAAS,GAAG,mBAAmB,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;AAC/D,gCAAA,4BAA4B,EAAE,IAAI;AAClC,gCAAA,yBAAyB,EAAE,IAAI;gCAC/B,UAAU,EAAE,gBAAgB,EAAE;AAC/B,6BAAA,CAAC,CAAA;AAEF,4BAAA,OAAO,SAAS,CAAA;AAClB,yBAAC,CAAC;AACH,qBAAA;AACD,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;4BAC3B,UAAU,EAAE,CAAC,SAAoB,EAAE,UAAkB,MAAwB;AAC3E,gCAAA,SAAS,EAAE,IAAI,uBAAuB,CAAC,SAAS,CAAC;AACjD,gCAAA,YAAY,EAAE;AACZ,oCAAA,OAAO,EAAE,CAAC,OAA8F,KAAI;wCAC1G,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,4CAAA,OAAO,OAAO,CAAA;wCAEjD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK,GAAG,EAAE,GAAG,CAAC,CAAA;AAE3C,wCAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAE3B,wCAAA,OAAO,OAAO,CAAA;qCACf;AACD,oCAAA,QAAQ,EAAE,CACR,QAAa,EACb,OAA8F,KAC5F;wCACF,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,4CAAA,OAAO,QAAQ,CAAA;AAElD,wCAAA,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE/B,wCAAA,OAAO,QAAQ,CAAA;qCAChB;AACF,iCAAA;6BACF,CAAC;AACF,4BAAA,IAAI,EAAE,CAAC,SAAS,EAAE,WAAW,CAAC;AAC/B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,yBAAyB;AAClC,4BAAA,UAAU,EAAE,CAAC,MAAwB,EAAE,cAAuC,KAA6B;AACzG,gCAAA,OAAO,IAAI,oCAAoC,CAAC,MAAM,EAAE,cAAc,CAAC,CAAA;6BACxE;AACD,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAC7C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAuB;AAC3D,gCAAA,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;6BAC/C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,2BAA2B;AACpC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAwB;AAC5D,gCAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;6BAChD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAwB;AAC5D,gCAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;6BAChD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,gCAAgC;AACzC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAoC;AACxE,gCAAA,OAAO,IAAI,uCAAuC,CAAC,OAAO,CAAC,CAAA;6BAC5D;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAsB;AAC1D,gCAAA,OAAO,IAAI,yBAAyB,CAAC,OAAO,CAAC,CAAA;6BAC9C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,2BAA2B;AACpC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAA+B;AACnE,gCAAA,OAAO,IAAI,kCAAkC,CAAC,OAAO,CAAC,CAAA;6BACvD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,6BAA6B;AACtC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAiC;AACrE,gCAAA,OAAO,IAAI,oCAAoC,CAAC,OAAO,CAAC,CAAA;6BACzD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,UAAU,EAAE,CACV,OAAyB,EACzB,sBAAuD,KAClC;AACrB,gCAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;6BACnF;AACD,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;AACrD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,gBAAgB;AACzB,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAoB;AACxD,gCAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;6BAC5C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,gBAAgB;AACzB,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAoB;AACxD,gCAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;6BAC5C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,uBAAuB;AAChC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAA2B;AAC/D,gCAAA,OAAO,IAAI,8BAA8B,CAAC,OAAO,CAAC,CAAA;6BACnD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAwB;AAC5D,gCAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,CAAA;6BAChD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAqB;AACzD,gCAAA,OAAO,IAAI,wBAAwB,CAAC,OAAO,CAAC,CAAA;6BAC7C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAuB;AAC3D,gCAAA,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;6BAC/C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,0BAA0B;AACnC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAuB;AAC3D,gCAAA,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAA;6BAC/C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAA4B;AAChE,gCAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;6BACpD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;AACxC,4BAAA,UAAU,EAAE,CACV,OAAyB,EACzB,sBAAuD,KACtB;AACjC,gCAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,EAAE,sBAAsB,CAAC,CAAA;6BACnF;AACD,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,wBAAwB,CAAC;AACrD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,4BAA4B;AACrC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAgC;AACpE,gCAAA,OAAO,IAAI,mCAAmC,CAAC,OAAO,CAAC,CAAA;6BACxD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;AACxC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAmC;AACvE,gCAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,CAAC,CAAA;6BAC3D;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAA4B;AAChE,gCAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;6BACpD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,gBAAgB;AACzB,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAoB;AACxD,gCAAA,OAAO,IAAI,uBAAuB,CAAC,OAAO,CAAC,CAAA;6BAC5C;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,uBAAuB;AAChC,4BAAA,UAAU,EAAE,CAAC,OAAyB,EAAE,cAAuC,KAA2B;AACxG,gCAAA,OAAO,IAAI,8BAA8B,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;6BACnE;AACD,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAC7C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,6BAA6B;AACtC,4BAAA,UAAU,EAAE,CAAC,OAAyB,EAAE,cAAuC,KAAiC;AAC9G,gCAAA,OAAO,IAAI,oCAAoC,CAAC,OAAO,EAAE,cAAc,CAAC,CAAA;6BACzE;AACD,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,CAAC;AAC7C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,uCAAuC;AAChD,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAA2C;AAC/E,gCAAA,OAAO,IAAI,8CAA8C,CAAC,OAAO,CAAC,CAAA;6BACnE;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;AACxC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAAmC;AACvE,gCAAA,OAAO,IAAI,sCAAsC,CAAC,OAAO,CAAC,CAAA;6BAC3D;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iCAAiC;AAC1C,4BAAA,UAAU,EAAE,CAAC,OAAyB,EAAE,iBAA6C,KAAuB;AAC1G,gCAAA,OAAO,IAAI,iCAAiC,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAA;6BACzE;AACD,4BAAA,IAAI,EAAE,CAAC,kBAAkB,EAAE,0BAA0B,CAAC;AACvD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,UAAU,EAAE,CAAC,OAAyB,KAA4B;AAChE,gCAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,CAAC,CAAA;6BACpD;4BACD,IAAI,EAAE,CAAC,kBAAkB,CAAC;AAC3B,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;MCnJY,0BAA0B,CAAA;IACrC,OAAO,aAAa,CAAC,OAGpB,EAAA;QACC,OAAO;AACL,YAAA,QAAQ,EAAE,0BAA0B;YACpC,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC;SAC5D,CAAA;KACF;8GATU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;+GAA1B,0BAA0B,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,EAtJ1B,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;gBACvB,UAAU,EAAE,CAAC,OAA6B,EAAE,UAAkB,MAAM;oBAClE,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;AAChC,oBAAA,YAAY,EAAE;AACZ,wBAAA,OAAO,EAAE,CAAC,OAAyE,KAAI;4BACrF,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,gCAAA,OAAO,OAAO,CAAA;4BAEjD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK,GAAG,EAAE,GAAG,CAAC,CAAA;AAE3C,4BAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAE3B,4BAAA,OAAO,OAAO,CAAA;yBACf;AACD,wBAAA,QAAQ,EAAE,CAAC,QAAa,EAAE,OAAyE,KAAI;4BACrG,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,gCAAA,OAAO,QAAQ,CAAA;AAElD,4BAAA,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE/B,4BAAA,OAAO,QAAQ,CAAA;yBAChB;AACF,qBAAA;iBACF,CAAC;AACF,gBAAA,IAAI,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC;AACpC,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,WAAW,EAAE,+BAA+B;AAC7C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;gBACxC,UAAU,EAAE,CACV,OAAY,EACZ,iBAAiD,EACjD,wBAA+D,KACzC;oBACtB,OAAO,IAAI,+BAA+B,CAAC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAA;iBACjG;AACD,gBAAA,IAAI,EAAE,CAAC,cAAc,EAAE,8BAA8B,EAAE,qCAAqC,CAAC;AAC9F,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,8BAA8B;AAC5C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,UAAU,EAAE,CAAC,YAAiB,KAAuB;AACnD,oBAAA,OAAO,IAAI,8BAA8B,CAAC,YAAY,CAAC,CAAA;iBACxD;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,0BAA0B;AACnC,gBAAA,WAAW,EAAE,qCAAqC;AACnD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,qCAAqC;AAC9C,gBAAA,UAAU,EAAE,CAAC,YAAiB,KAA8B;AAC1D,oBAAA,OAAO,IAAI,qCAAqC,CAAC,YAAY,CAAC,CAAA;iBAC/D;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mBAAmB;AAC5B,gBAAA,WAAW,EAAE,8BAA8B;AAC5C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,8BAA8B;AACvC,gBAAA,UAAU,EAAE,CAAC,YAAiB,KAAuB;AACnD,oBAAA,OAAO,IAAI,8BAA8B,CAAC,YAAY,CAAC,CAAA;iBACxD;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oCAAoC;AAC7C,gBAAA,WAAW,EAAE,+CAA+C;AAC7D,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+CAA+C;AACxD,gBAAA,UAAU,EAAE,CAAC,YAAiB,KAAwC;AACpE,oBAAA,OAAO,IAAI,+CAA+C,CAAC,YAAY,CAAC,CAAA;iBACzE;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,0BAA0B;AACnC,gBAAA,WAAW,EAAE,qCAAqC;AACnD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,qCAAqC;AAC9C,gBAAA,UAAU,EAAE,CAAC,OAAY,KAA8B;AACrD,oBAAA,OAAO,IAAI,qCAAqC,CAAC,OAAO,CAAC,CAAA;iBAC1D;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AAED,YAAA;AACE,gBAAA,OAAO,EAAE,wBAAwB;AACjC,gBAAA,WAAW,EAAE,mCAAmC;AACjD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,mCAAmC;AAC5C,gBAAA,UAAU,EAAE,CAAC,OAAY,KAA4B;AACnD,oBAAA,OAAO,IAAI,mCAAmC,CAAC,OAAO,CAAC,CAAA;iBACxD;gBACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,kBAAkB;AAC3B,gBAAA,WAAW,EAAE,6BAA6B;AAC3C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,6BAA6B;gBACtC,UAAU,EAAE,CACV,OAAY,EACZ,sBAA2D,EAC3D,wBAA+D,KAC3C;oBACpB,OAAO,IAAI,6BAA6B,CAAC,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,CAAC,CAAA;iBACpG;AACD,gBAAA,IAAI,EAAE,CAAC,cAAc,EAAE,mCAAmC,EAAE,qCAAqC,CAAC;AACnG,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,iDAAiD;gBAC1D,UAAU,EAAE,CAAC,OAAY,KACvB,IAAI,iDAAiD,CAAC,OAAO,CAAC;gBAChE,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,sCAAsC;AAC/C,gBAAA,WAAW,EAAE,iDAAiD;AAC/D,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,+BAA+B;AACxC,gBAAA,UAAU,EAAE,CACV,OAAY,EACZ,wBAA+D,KAC5B;AACnC,oBAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAA;iBAC9E;AACD,gBAAA,IAAI,EAAE,CAAC,cAAc,EAAE,qCAAqC,CAAC;AAC9D,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,oBAAoB;AAC7B,gBAAA,WAAW,EAAE,+BAA+B;AAC7C,aAAA;AACF,SAAA,EAAA,CAAA,CAAA,EAAA;;2FAEU,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAvJtC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,SAAS,EAAE;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;4BACvB,UAAU,EAAE,CAAC,OAA6B,EAAE,UAAkB,MAAM;gCAClE,QAAQ,EAAE,OAAO,CAAC,QAAQ;gCAC1B,WAAW,EAAE,OAAO,CAAC,WAAW;AAChC,gCAAA,YAAY,EAAE;AACZ,oCAAA,OAAO,EAAE,CAAC,OAAyE,KAAI;wCACrF,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,4CAAA,OAAO,OAAO,CAAA;wCAEjD,MAAM,QAAQ,GAAG,WAAW,CAAC,MAAK,GAAG,EAAE,GAAG,CAAC,CAAA;AAE3C,wCAAA,OAAO,CAAC,QAAQ,GAAG,QAAQ,CAAA;AAE3B,wCAAA,OAAO,OAAO,CAAA;qCACf;AACD,oCAAA,QAAQ,EAAE,CAAC,QAAa,EAAE,OAAyE,KAAI;wCACrG,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAAE,4CAAA,OAAO,QAAQ,CAAA;AAElD,wCAAA,aAAa,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAE/B,wCAAA,OAAO,QAAQ,CAAA;qCAChB;AACF,iCAAA;6BACF,CAAC;AACF,4BAAA,IAAI,EAAE,CAAC,cAAc,EAAE,WAAW,CAAC;AACpC,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,WAAW,EAAE,+BAA+B;AAC7C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;4BACxC,UAAU,EAAE,CACV,OAAY,EACZ,iBAAiD,EACjD,wBAA+D,KACzC;gCACtB,OAAO,IAAI,+BAA+B,CAAC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,CAAC,CAAA;6BACjG;AACD,4BAAA,IAAI,EAAE,CAAC,cAAc,EAAE,8BAA8B,EAAE,qCAAqC,CAAC;AAC9F,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAE,8BAA8B;AAC5C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,8BAA8B;AACvC,4BAAA,UAAU,EAAE,CAAC,YAAiB,KAAuB;AACnD,gCAAA,OAAO,IAAI,8BAA8B,CAAC,YAAY,CAAC,CAAA;6BACxD;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,0BAA0B;AACnC,4BAAA,WAAW,EAAE,qCAAqC;AACnD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,qCAAqC;AAC9C,4BAAA,UAAU,EAAE,CAAC,YAAiB,KAA8B;AAC1D,gCAAA,OAAO,IAAI,qCAAqC,CAAC,YAAY,CAAC,CAAA;6BAC/D;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mBAAmB;AAC5B,4BAAA,WAAW,EAAE,8BAA8B;AAC5C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,8BAA8B;AACvC,4BAAA,UAAU,EAAE,CAAC,YAAiB,KAAuB;AACnD,gCAAA,OAAO,IAAI,8BAA8B,CAAC,YAAY,CAAC,CAAA;6BACxD;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oCAAoC;AAC7C,4BAAA,WAAW,EAAE,+CAA+C;AAC7D,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+CAA+C;AACxD,4BAAA,UAAU,EAAE,CAAC,YAAiB,KAAwC;AACpE,gCAAA,OAAO,IAAI,+CAA+C,CAAC,YAAY,CAAC,CAAA;6BACzE;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,0BAA0B;AACnC,4BAAA,WAAW,EAAE,qCAAqC;AACnD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,qCAAqC;AAC9C,4BAAA,UAAU,EAAE,CAAC,OAAY,KAA8B;AACrD,gCAAA,OAAO,IAAI,qCAAqC,CAAC,OAAO,CAAC,CAAA;6BAC1D;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AAED,wBAAA;AACE,4BAAA,OAAO,EAAE,wBAAwB;AACjC,4BAAA,WAAW,EAAE,mCAAmC;AACjD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,mCAAmC;AAC5C,4BAAA,UAAU,EAAE,CAAC,OAAY,KAA4B;AACnD,gCAAA,OAAO,IAAI,mCAAmC,CAAC,OAAO,CAAC,CAAA;6BACxD;4BACD,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,kBAAkB;AAC3B,4BAAA,WAAW,EAAE,6BAA6B;AAC3C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,6BAA6B;4BACtC,UAAU,EAAE,CACV,OAAY,EACZ,sBAA2D,EAC3D,wBAA+D,KAC3C;gCACpB,OAAO,IAAI,6BAA6B,CAAC,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,CAAC,CAAA;6BACpG;AACD,4BAAA,IAAI,EAAE,CAAC,cAAc,EAAE,mCAAmC,EAAE,qCAAqC,CAAC;AACnG,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,iDAAiD;4BAC1D,UAAU,EAAE,CAAC,OAAY,KACvB,IAAI,iDAAiD,CAAC,OAAO,CAAC;4BAChE,IAAI,EAAE,CAAC,cAAc,CAAC;AACvB,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,sCAAsC;AAC/C,4BAAA,WAAW,EAAE,iDAAiD;AAC/D,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,+BAA+B;AACxC,4BAAA,UAAU,EAAE,CACV,OAAY,EACZ,wBAA+D,KAC5B;AACnC,gCAAA,OAAO,IAAI,+BAA+B,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAA;6BAC9E;AACD,4BAAA,IAAI,EAAE,CAAC,cAAc,EAAE,qCAAqC,CAAC;AAC9D,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,oBAAoB;AAC7B,4BAAA,WAAW,EAAE,+BAA+B;AAC7C,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;AClLM,MAAM,gBAAgB,GAAG,kBAAkB;;MCOrC,qBAAqB,CAAA;AAChC,IAAA,GAAG,CAAC,GAAW,EAAA;QACb,OAAO,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;KAC3B;AAED,IAAA,MAAM,CAAC,GAAW,EAAA;QAChB,OAAO,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;KAC9B;IAED,GAAG,CAAC,GAAW,EAAE,KAAa,EAAA;QAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,MAAO,GAAC,CAAC,CAAC,CAAA;KACxD;8GAXU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAArB,qBAAqB,EAAA,CAAA,CAAA,EAAA;;2FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC,UAAU;;;MCCE,WAAW,CAAA;IACtB,WACmB,CAAA,eAAqB,EACK,cAA8B,EAAA;QADxD,IAAe,CAAA,eAAA,GAAf,eAAe,CAAM;QACK,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KACvE;IAEJ,YAAY,GAAA;AACV,QAAA,MAAM,WAAW,GAAiD,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;AAEtG,QAAA,OAAO,aAAa,CAAC,WAAW,CAAC,CAAC,IAAI,CACpC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM;YACzB,IAAI;YACJ,WAAW,EAAE,QAAQ,EAAE,WAAW;SACnC,CAAC,CAAC,CACJ,CAAA;KACF;IAED,OAAO,GAAA;AACL,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5B,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,EAAE,GAAG,CAAC,EACxB,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAC3G,CAAA;KACF;IAED,UAAU,GAAA;QACR,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC,CAAA;KAC1D;IAED,WAAW,GAAA;QACT,OAAO,SAAS,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;KACxE;AA9BU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,sCAGZ,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAHf,WAAW,EAAA,CAAA,CAAA,EAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;0BAIN,MAAM;2BAAC,gBAAgB,CAAA;;;MCef,aAAa,CAAA;AACxB,IAAA,WAAA,CAC+C,gBAAkC,EACxC,WAAkB,EACb,eAAgC,EAC7B,kBAAsC,EAAA;QAHxC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QACxC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAO;QACb,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAC7B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;AAwO/E,QAAA,IAAA,CAAA,uBAAuB,GAAG,CAAC,SAAiB,KAAc,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,cAAc,CAAC,CAAA;KAvOhG;AAEJ,IAAA,WAAW,CACT,QAAgB,EAChB,YAA2B,EAC3B,QAA2B,EAC3B,IAAY,EAAA;AAEZ,QAAA,OAAO,IAAI,CACT,IAAI,CAAC,gBAAgB;AAClB,aAAA,IAAI,CAAC;AACJ,YAAA,OAAO,EAAE;gBACP,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE;gBACrD,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;AAChD,aAAA;SACF,CAAC;AACD,aAAA,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CACpC,CAAC,IAAI,CACJ,SAAS,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,EAClE,SAAS,CAAC,CAAC,WAAmB,KAAK,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,EACzG,GAAG,CAAC,CAAC,eAAuB,KAAK,eAAyB,CAAC,CAC5D,CAAA;KACF;AAEO,IAAA,MAAM,gBAAgB,CAAC,MAAc,EAAE,YAA2B,EAAA;AACxE,QAAA,IAAI,CAAC,MAAM;AAAE,YAAA,MAAM,iBAAiB,CAAA;AAEpC,QAAA,IAAI,MAAM,EAAE,OAAO,IAAI,MAAM,EAAE,OAAO,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AAAE,YAAA,MAAM,iBAAiB,CAAA;AAEhG,QAAA,IAAI,MAAM,EAAE,SAAS,IAAI,MAAM,EAAE,SAAS,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE;AAAE,YAAA,MAAM,iBAAiB,CAAA;AAEpG,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,gBAAgB,KAAK,KAAK,CAAC,GAAG,IAAI,MAAM,CAAC,gBAAgB,KAAK,IAAI,CAAC,WAAW,CAAA;AAEtG,QAAA,IAAI,CAAC,QAAQ;AAAE,YAAA,MAAM,2BAA2B,CAAA;AAEhD,QAAA,MAAM,cAAc,GAAG,MAAM,CAAC,YAAY,KAAK,aAAa,CAAC,GAAG,IAAI,MAAM,CAAC,YAAY,KAAK,YAAY,CAAA;AAExG,QAAA,IAAI,CAAC,cAAc;AAAE,YAAA,MAAM,mCAAmC,CAAA;AAE9D,QAAA,OAAO,MAAM,CAAA;KACd;IAEO,MAAM,qBAAqB,CACjC,MAAc,EACd,YAA2B,EAC3B,QAA2B,EAC3B,IAAY,EAAA;AAEZ,QAAA,IAAI,YAAY,IAAI,aAAa,CAAC,YAAY,EAAE;AAC9C,YAAA,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE;AAAE,gBAAA,MAAM,qCAAqC,CAAA;AAEhH,YAAA,OAAO,MAAM,CAAA;AACd,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAA;AAEnE,QAAA,IAAI,CAAC,SAAS;AAAE,YAAA,MAAM,uBAAuB,CAAA;AAE7C,QAAA,MAAM,eAAe,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEpF,IAAI,eAAe,CAAC,UAAU,EAAE;AAC9B,YAAA,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,CAAA;YACxF,IAAI,eAAe,CAAC,UAAU,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC;AAAE,gBAAA,MAAM,wBAAwB,CAAA;AACzF,SAAA;QAED,IAAI,CAAC,eAAe,CAAC,SAAS,IAAI,eAAe,CAAC,cAAc,EAAE;YAChE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;AAErD,YAAA,IAAI,CAAC,eAAe,CAAC,SAAS,IAAI,eAAe,CAAC,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC,KAAK;AAC/F,gBAAA,MAAM,yBAAyB,CAAA;YAEjC,IAAI,eAAe,CAAC,cAAc,EAAE;AAClC,gBAAA,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;gBAE5E,IAAI,cAAc,GAAG,CAAC;AAAE,oBAAA,MAAM,qCAAqC,CAAA;AACpE,aAAA;AACF,SAAA;QAED,MAAM,oBAAoB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAE9E,QAAA,IAAI,CAAC,oBAAoB;AAAE,YAAA,MAAM,2DAA2D,CAAA;QAE5F,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAElE,QAAA,IAAI,CAAC,cAAc;YACjB,MAAM,CAAA,gBAAA,EAAmB,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,CAChG,MAAM,CAAC,gBAAgB,CACxB,CAAA,aAAA,CAAe,CAAA;AAElB,QAAA,OAAO,MAAM,CAAA;KACd;IAEM,wBAAwB,CAAC,MAAc,EAAE,QAAuC,EAAA;QACrF,IAAI,QAAQ,GAAG,CAAC,CAAA;QAEhB,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,IAAI,WAAW,CAAC,QAAQ;YAAE,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAA;;AACvG,YAAA,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CAAC,eAAe,IAAI,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,KAAK,GAAG,GAAG,CAAC,CAAA;AAEtG,QAAA,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;KACpB;AAEM,IAAA,MAAM,oBAAoB,CAC/B,MAAc,EACd,QAA2B,EAAA;QAE3B,IAAI,YAAY,GAAgD,IAAI,CAAA;AAEpE,QAAA,IAAI,QAAQ,CAAC,IAAI,CAAC,YAAY,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;AAClE,YAAA,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC1C,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAC/B,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAChC,MAAM,CAAC,kBAAkB,EACzB,QAAQ,CACT,CAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,YAAY,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAC1C,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,EACnC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,EACpC,MAAM,CAAC,kBAAkB,EACzB,QAAQ,CACT,CAAA;AACF,SAAA;AAED,QAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,SAAS,EAAE,CAAA;KAC9E;IAEO,MAAM,kBAAkB,CAC9B,IAAiB,EACjB,KAAa,EACb,UAAoB,EACpB,QAA2B,EAAA;QAE3B,IAAI,QAAQ,GAAG,CAAC,CAAA;QAEhB,IAAI,4BAA4B,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAA;AAEnG,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,4BAA4B,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;AAEvF,QAAA,IAAI,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE;AAChC,YAAA,QAAQ,GAAG,KAAK,GAAG,QAAQ,GAAG,QAAQ,GAAG,KAAK,CAAA;AAC/C,SAAA;AAAM,aAAA;YACL,QAAQ,GAAG,QAAQ,IAAI,KAAK,GAAG,GAAG,CAAC,CAAA;AACpC,SAAA;AAED,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,4BAA4B,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;AAEhG,QAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAA;KAC/B;AAEO,IAAA,MAAM,cAAc,CAAC,MAAc,EAAE,QAA2B,EAAA;QACtE,IAAI,CAAC,MAAM,CAAC,gBAAgB;AAAE,YAAA,OAAO,IAAI,CAAA;AAEzC,QAAA,IAAI,iBAAiB,GAAG,MAAM,IAAI,CAAC,+BAA+B,CAAC,MAAM,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAA;AAEvG,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAA;AAE5E,QAAA,IAAI,MAAM,CAAC,gBAAgB,IAAI,QAAQ;AAAE,YAAA,OAAO,IAAI,CAAA;AAEpD,QAAA,OAAO,KAAK,CAAA;KACb;AAEO,IAAA,MAAM,oBAAoB,CAAC,MAAc,EAAE,QAA2B,EAAA;QAC5E,IAAI,CAAC,MAAM,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,MAAM,EAAE;AACnE,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;QAEpF,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,KAAI;YACrD,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM;AAAE,gBAAA,OAAO,IAAI,CAAA;YACvD,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AAC3E,SAAC,CAAC,CAAA;QAEF,OAAO,aAAa,CAAC,MAAM,GAAG,IAAI,GAAG,KAAK,CAAA;KAC3C;IAEO,oBAAoB,CAAC,MAAc,EAAE,IAAU,EAAA;AACrD,QAAA,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC;AAAE,YAAA,OAAO,IAAI,CAAA;QAElF,IAAI,SAAS,GAAoB,EAAE,CAAA;QAEnC,IACE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC;YAC5D,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAE5D,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;QAE7C,IACE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC;YAC5D,MAAM,CAAC,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC;AAElE,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;QAE7C,IACE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,iBAAiB,CAAC;AAChE,YAAA,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,gBAAgB,IAAI,EAAE;AAE3B,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAA;QAEjD,IACE,IAAI,CAAC,YAAY;YACjB,IAAI,CAAC,gBAAgB,IAAI,EAAE;YAC3B,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,mBAAmB,CAAC;AAElE,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAA;AAEnD,QAAA,IAAI,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY;AACrF,YAAA,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;AAE9C,QAAA,OAAO,MAAM,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAA;KACjE;IAEO,MAAM,qBAAqB,CAAC,kBAA4B,EAAA;QAC9D,MAAM,gBAAgB,GAAkB,EAAE,CAAA;AAE1C,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC9D,MAAM,QAAQ,GAAwC,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC;AACtF,gBAAA,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC;AAC9B,aAAA,CAAC,CAAA;AAEF,YAAA,IAAI,QAAQ,EAAE;AACZ,gBAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAE/F,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC5E,aAAA;AACF,SAAA;QAED,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAA;KACtC;AAIO,IAAA,MAAM,+BAA+B,CAC3C,kBAA4B,EAC5B,QAA2B,EAAA;QAE3B,IAAI,iBAAiB,GAAG,EAAE,CAAA;QAC1B,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,kBAAkB,CAAC,CAAA;AAE7E,QAAA,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,EAAE;YACnD,iBAAiB,GAAG,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,KAAI;AACnD,gBAAA,IAAI,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE;oBACxB,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AAC1E,iBAAA;AACD,gBAAA,OAAO,IAAI,CAAA;AACb,aAAC,CAAC,CAAA;AACH,SAAA;AAAM,aAAA;AACL,YAAA,iBAAiB,GAAG,QAAQ,CAAC,SAAS,CAAA;AACvC,SAAA;AAED,QAAA,OAAO,iBAAiB,CAAA;KACzB;IAEO,oBAAoB,CAAC,SAAqB,EAAE,IAAU,EAAA;QAC5D,QACE,SAAS,EAAE,MAAM,CACf,CAAC,GAAG,EAAE,IAAI,KACR,IAAI,EAAE,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,eAAe;cAC5C,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC,QAAQ;AACnD,cAAE,GAAG,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAC1C,CAAC,CACF,IAAI,CAAC,EACP;KACF;IAEO,MAAM,mBAAmB,CAAC,MAAc,EAAA;QAC9C,OAAO,MAAM,IAAI,CAAC,eAAe;AAC9B,aAAA,IAAI,CAAC;AACJ,YAAA,OAAO,EAAE;AACP,gBAAA,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE;AACzB,gBAAA,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;AAC5B,aAAA;SACF,CAAC;aACD,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAA;KACjC;IAEO,MAAM,iBAAiB,CAAC,KAAa,EAAA;QAC3C,OAAO,MAAM,IAAI,CAAC,eAAe;AAC9B,aAAA,IAAI,CAAC;AACJ,YAAA,OAAO,EAAE;AACP,gBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;AACzD,gBAAA,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE;AAC5B,aAAA;SACF,CAAC;aACD,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAA;KACjC;IAEO,mBAAmB,CAAC,MAAe,EAAE,KAAa,EAAA;AACxD,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,CAAC,MAAM,CAAA;KAC1D;AAEO,IAAA,kBAAkB,CAAC,MAAc,EAAE,YAA2B,EAAE,IAAU,EAAA;AAChF,QAAA,IAAI,eAAwG,CAAA;QAC5G,IAAI,YAAY,IAAI,aAAa,CAAC,SAAS,IAAI,YAAY,IAAI,aAAa,CAAC,GAAG,EAAE;YAChF,eAAe,GAAG,IAAI,IAAI,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAA;AAC5G,SAAA;AAAM,aAAA;AACL,YAAA,eAAe,GAAG,MAAM,CAAC,SAAS,CAAC,YAAY,CAAA;AAChD,SAAA;AAED,QAAA,OAAO,eAAe,CAAA;KACvB;AAEO,IAAA,oBAAoB,CAC1B,IAAiB,EACjB,SAAqB,EACrB,cAAsB,EACtB,QAAgB,EAAA;QAEhB,IAAI,iBAAiB,GAAe,EAAE,CAAA;AACtC,QAAA,IAAI,IAAI,KAAK,WAAW,CAAC,QAAQ,EAAE;AACjC,YAAA,MAAM,iBAAiB,GAAG,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,cAAc,CAAA;YAC/E,iBAAiB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACzC,gBAAA,MAAM,mBAAmB,GAAG,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;AACrD,gBAAA,MAAM,YAAY,GAAG,iBAAiB,GAAG,mBAAmB,CAAA;gBAE5D,OAAO;AACL,oBAAA,GAAG,IAAI;oBACP,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBAC9B,CAAA;AACf,aAAC,CAAC,CAAA;AACH,SAAA;AAAM,aAAA;YACL,iBAAiB,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;gBACzC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,IAAI,cAAc,GAAG,GAAG,CAAC,CAAA;gBAE5D,OAAO;AACL,oBAAA,GAAG,IAAI;oBACP,QAAQ,EAAE,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;iBAC9B,CAAA;AACf,aAAC,CAAC,CAAA;AACH,SAAA;AAED,QAAA,OAAO,iBAAiB,CAAA;KACzB;AAnVU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,kBAEd,kBAAkB,EAAA,EAAA,EAAA,KAAA,EAClB,YAAY,EACZ,EAAA,EAAA,KAAA,EAAA,iBAAiB,aACjB,oBAAoB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AALnB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAGI,MAAM;2BAAC,kBAAkB,CAAA;;0BACzB,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,iBAAiB,CAAA;;0BACxB,MAAM;2BAAC,oBAAoB,CAAA;;;MCPnB,eAAe,CAAA;IAC1B,WACmB,CAAA,aAA4B,EACE,kBAAsC,EAC1C,cAA8B,EAClC,WAAkB,EACV,eAAgC,EAAA;QAJ9D,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;QACE,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAC1C,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAClC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAO;QACV,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;KAC7E;AAEJ,IAAA,WAAW,CAAC,YAAmC,EAAA;QAC7C,OAAO,IAAI,CAAC,eAAe;aACxB,GAAG,CAAC,YAAY,CAAC;AACjB,aAAA,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;KACnH;AAED,IAAA,iBAAiB,CAAC,UAAkB,EAAA;AAClC,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,IAAI,CAC/D,SAAS,CAAC,CAAC,QAAQ,KACjB,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CACjG,EACD,SAAS,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,IAAI,aAAa,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAC1F,CAAA;KACF;AAED,IAAA,uBAAuB,CAAC,QAA2B,EAAA;AACjD,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;KACrH;AAED,IAAA,kBAAkB,CAAC,QAA2B,EAAA;AAC5C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;KAC3G;IAED,wBAAwB,GAAA;QACtB,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;KACjD;AAED,IAAA,YAAY,CAAC,MAAc,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5B,SAAS,CAAC,OAAO,QAAQ,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAC/F,CAAA;KACF;IAED,WAAW,CAAC,QAAgB,EAAE,YAA2B,EAAA;AACvD,QAAA,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5B,SAAS,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAClH,CAAA;KACF;IAEO,MAAM,cAAc,CAAC,YAAmC,EAAA;QAC9D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YACpD,SAAS,EAAE,IAAI,IAAI,EAAE;AACrB,YAAA,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACtE,YAAA,IAAI,EAAE,YAAY,EAAE,IAAI,IAAI,IAAI,CAAC,WAAW;AAC7C,SAAA,CAAC,CAAA;AAEF,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA;AAErE,QAAA,OAAO,QAAQ,CAAA;KAChB;AA1DU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,4CAGhB,oBAAoB,EAAA,EAAA,EAAA,KAAA,EACpB,gBAAgB,EAChB,EAAA,EAAA,KAAA,EAAA,YAAY,aACZ,oBAAoB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHANnB,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;0BAIN,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,gBAAgB,CAAA;;0BACvB,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,oBAAoB,CAAA;;;MCEnB,WAAW,CAAA;AAGtB,IAAA,WAAA,CACmB,WAAwB,EACxB,eAAgC,EACV,WAAkB,EACX,iBAAoC,EACnC,kBAAsC,EACvC,iBAAoC,EACpC,iBAA6C,EAAA;QAN1E,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QACV,IAAW,CAAA,WAAA,GAAX,WAAW,CAAO;QACX,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACnC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACvC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACpC,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAA4B;AATrF,QAAA,IAAA,CAAA,WAAW,GAAkB,IAAI,OAAO,EAAE,CAAA;AAmH1C,QAAA,IAAA,CAAA,oBAAoB,GAAG,CAAC,QAAkB,EAAE,QAAgB,EAAE,QAAmB,KACvF,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,IAAI,CACxE,SAAS,CAAC,CAAC,cAAc,KAAI;YAC3B,MAAM,KAAK,GAAe,EAAE,CAAA;YAC5B,MAAM,KAAK,GAAG,cAAc,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,YAAY,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;AAEnG,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAA;gBACpD,cAAc,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;AAC/D,aAAA;;AACC,gBAAA,cAAc,CAAC,SAAS,GAAG,KAAK,CAAC,MAAM,CACrC,cAAc,CAAC,SAAS,GAAG,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CACpF,CAAA;YAEH,OAAO,IAAI,CAAC,eAAe;iBACxB,uBAAuB,CAAC,cAAc,CAAC;AACvC,iBAAA,IAAI,CAAC,GAAG,CAAC,CAAC,eAAe,KAAK,IAAI,CAAC,kBAAkB,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;SACtF,CAAC,CACH,CAAA;AAEK,QAAA,IAAA,CAAA,kBAAkB,GAAG,CAAC,KAAiB,KAC7C,KAAK,EAAE,MAAM,CACX,CAAC,IAAI,EAAE,IAAI,MAAM;AACf,YAAA,GAAG,IAAI;YACP,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,CAAC,UAAU,CAAC;gBAC7B,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI;AACzB,gBAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;aAC/E,CAAC;AACH,SAAA,CAAC,EACF,EAA8B,CAC/B,IAAI,EAAE,CAAA;QAED,IAAa,CAAA,aAAA,GAAG,OAAO,EAC7B,QAAQ,EACR,IAAI,EACJ,QAAQ,GAKT,KAAkE;YACjE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAElD,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAA;AAEjH,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,QAAQ,IAAI,CAAC,CAAC;AAC/E,gBAAA,MAAM,IAAI,KAAK,CAAC,yBAAyB,GAAG,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,cAAc,CAAC,CAAA;AAEvF,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAA;YAChD,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;AACrE,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,IAAI,CAAA;AAClC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC;AACrC,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW;AACvC,gBAAA,YAAY,EAAE,QAAQ,CAAC,IAAI,EAAE,YAAY;AAC1C,aAAA,CAAC,CAAA;AAEF,YAAA,wBAAwB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;YAEjD,OAAO;gBACL,QAAQ;AACR,gBAAA,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC;oBAC5B,EAAE;AACF,oBAAA,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI;AAC1B,oBAAA,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG;oBACvB,KAAK,EAAE,OAAO,CAAC,KAAK;AACpB,oBAAA,IAAI,EAAE,IAAI,IAAI,OAAO,CAAC,IAAI;AAC1B,oBAAA,GAAG,EAAE,GAAG,IAAI,OAAO,CAAC,GAAG;oBACvB,KAAK;AACL,oBAAA,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;oBAC7B,KAAK;AACL,oBAAA,MAAM,EAAE,MAAM,IAAI,OAAO,CAAC,MAAM;AAChC,oBAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC;oBAChD,SAAS;AACT,oBAAA,QAAQ,EAAE,CAAC;AACX,oBAAA,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,EAAE;oBACpC,MAAM,EAAE,MAAM,IAAI,IAAI;AACtB,oBAAA,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,CAAC;oBACjC,IAAI;iBACL,CAAC;aACH,CAAA;AACH,SAAC,CAAA;QAoCO,IAAe,CAAA,eAAA,GAAG,CAAC,EACzB,OAAO,EACP,YAAY,GAKb,KAAY;AACX,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAA;YAE1B,IAAI,OAAO,CAAC,MAAM;AAAE,gBAAA,OAAO,CAAC,CAAA;AAE5B,YAAA,OAAO,YAAY,IAAI,IAAI,CAAC,eAAe,GAAG,CAAC;kBAC3C,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACzC,kBAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA;AACnC,SAAC,CAAA;QAEO,IAAa,CAAA,aAAA,GAAG,CAAC,YAAoB,EAAE,cAAsB,EAAE,aAAqB,KAAI;AAC9F,YAAA,MAAM,QAAQ,GAAG,YAAY,IAAI,CAAC,CAAA;AAClC,YAAA,MAAM,iBAAiB,GAAG,cAAc,IAAI,CAAC,CAAA;AAE7C,YAAA,OAAO,iBAAiB,GAAG,aAAa,GAAG,QAAQ,CAAA;AACrD,SAAC,CAAA;KApPG;AAEJ,IAAA,OAAO,CAAC,IAAc,EAAE,QAAA,GAAmB,CAAC,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,CAAC,IAAI,CAClD,SAAS,CAAC,OAAO,QAAQ,KAAK,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,IAAI,CAAC,EAAE,CAAC,CAAC,EACpG,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,IAAI,CAAC,EAAE,QAAoB,CAAC,CAAC,EAC9G,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;AAED,IAAA,YAAY,CAAC,IAAc,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,QAAQ,KAAI;YACf,MAAM,YAAY,GAAG,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;AAEpF,YAAA,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC;AAAE,gBAAA,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;AAEpF,YAAA,OAAO,QAAQ,CAAA;SAChB,CAAC,EACF,SAAS,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,EAC/E,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAC9D,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;AAED,IAAA,OAAO,CAAC,QAA+B,EAAA;QACrC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAErF,OAAO,IAAI,CAAC,WAAW,CAAA;KACxB;AAED;;AAEG;AACH,IAAA,uBAAuB,CAAC,IAAc,EAAA;AACpC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC,IAAI,CACpC,SAAS,CAAC,CAAC,IAAI,KACb,GAAG,CACD,MAAM,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,EACvD,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,EAC9B,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CACrB,CACF,EACD,UAAU,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CACvC,CAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAc,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,QAAQ,KAAI;YACf,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAA;YAEjF,IAAI,KAAK,IAAI,CAAC;gBAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;AAEnD,YAAA,OAAO,QAAQ,CAAA;SAChB,CAAC,EACF,SAAS,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,EAC/E,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAC9D,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;AAED,IAAA,cAAc,CAAC,IAAU,EAAA;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,eAAe,CAAC,kBAAkB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAC9F,EACD,SAAS,CACP,OAAO,QAAQ,KACb,MAAM,IAAI,CAAC,eAAe;AACvB,aAAA,uBAAuB,CACtB,QAAQ,CAAC,UAAU,CAAC;YAClB,GAAG,QAAQ,CAAC,OAAO,EAAE;AACrB,YAAA,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,MAAM;AACnC,kBAAE,MAAM,OAAO,CAAC,GAAG,CACf,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,CAAC,CACjG;AACH,kBAAE,EAAE;AACP,SAAA,CAAC,CACH;AACA,aAAA,SAAS,EAAE,CACjB,EACD,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAC9D,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;IAED,SAAS,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,GAAG,CAAC,CAAC,QAAQ,KAAI;AACf,YAAA,IAAI,CAAC,eAAe,CAAC,wBAAwB,EAAE,CAAA;AAC/C,YAAA,OAAO,QAAQ,CAAA;AACjB,SAAC,CAAC,EACF,SAAS,CAAC,CAAC,WAAW,KAAK,IAAI,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC,EACnE,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;AAEO,IAAA,qBAAqB,CAAC,YAAmC,EAAA;AAC/D,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CACxD,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,SAAS,CAAC,EACrC,SAAS,CAAC,CAAC,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CACjE,CAAA;KACF;AAqFO,IAAA,UAAU,CAAC,YAAuB,EAAA;QACxC,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,YAAY,CAAA;QAC1D,OAAO;AACL,YAAA,GAAG,YAAY;YACf,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACvC,YAAA,IAAI,eAAe,IAAI,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE;SAC/E,CAAA;KACF;IAEO,MAAM,cAAc,CAAC,SAAiB,EAAA;AAC5C,QAAA,IAAI,OAAgB,CAAA;AACpB,QAAA,IAAI,OAAgB,CAAA;QAEpB,IAAI;AACF,YAAA,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAA;AAC9D,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,IAAI,EAAE,KAAK,YAAY,aAAa,CAAC;AAAE,gBAAA,MAAM,KAAK,CAAA;YAElD,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,CAAC,CAAA;AAE5F,YAAA,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAA;AAE1B,YAAA,IAAI,CAAC,OAAO;AAAE,gBAAA,MAAM,KAAK,CAAA;AAEzB,YAAA,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;AACtE,SAAA;QAED,OAAO;YACL,GAAG,OAAO,CAAC,OAAO,EAAE;YACpB,IAAI,OAAO,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,EAAE;SACxC,CAAA;KACF;IA0BD,QAAQ,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,EAAE,CAAC,IAAI,CAC5C,QAAQ,CAAC,OAAO,QAAQ,KAAI;AAC1B,YAAA,MAAM,YAAY,GAAe,QAAQ,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAA;YAE5G,IAAI,CAAC,YAAY,CAAC,MAAM;gBAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAc,CAAA;YAE3E,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AAEhF,YAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,iBAAiB;AAC3C,iBAAA,IAAI,CAAC;AACJ,gBAAA,OAAO,EAAE;oBACP,MAAM,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE;AAC/C,oBAAA,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;AAC1D,iBAAA;aACF,CAAC;iBACD,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAA;YAE5B,IAAI,CAAC,SAAS,CAAC,MAAM;gBAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAc,CAAA;YAElF,MAAM,iBAAiB,GAAc,EAAE,CAAA;AAEvC,YAAA,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;gBAChC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAA;gBAElC,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,KAAK,CAAC;oBAAE,SAAQ;gBAEhG,IAAI,QAAQ,CAAC,cAAc,EAAE;oBAC3B,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;oBAC1E,MAAM,0BAA0B,GAAG,EAAE,CAAA;AAErC,oBAAA,KAAK,MAAM,EAAE,IAAI,kBAAkB,EAAE;AACnC,wBAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;wBAExE,0BAA0B,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AAC7E,qBAAA;oBAED,MAAM,sBAAsB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAA;oBACvE,MAAM,wBAAwB,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAI;wBAC/D,IAAI,CAAC,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC,UAAU,EAAE,MAAM;AAAE,4BAAA,OAAO,IAAI,CAAA;wBAEvD,OAAO,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,sBAAsB,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;AACjF,qBAAC,CAAC,CAAA;oBAEF,IAAI,wBAAwB,CAAC,MAAM,EAAE;wBACnC,MAAM,mBAAmB,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;AAEtG,wBAAA,IAAI,mBAAmB,IAAI,QAAQ,CAAC,YAAY;AAAE,4BAAA,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACnF,qBAAA;AACF,iBAAA;AAAM,qBAAA;oBACL,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,GAAG,CAAC,EAAE;AAChD,wBAAA,IAAI,QAAQ,CAAC,SAAS,IAAI,SAAS;AAAE,4BAAA,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACtE,qBAAA;AACF,iBAAA;AACF,aAAA;YAED,IAAI,CAAC,iBAAiB,CAAC,MAAM;gBAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAc,CAAA;YAE1F,MAAM,iBAAiB,GAAgB,EAAE,CAAA;AAEzC,YAAA,KAAK,MAAM,QAAQ,IAAI,iBAAiB,EAAE;gBACxC,IAAI,gBAAgB,GAAG,EAAE,CAAA;AAEzB,gBAAA,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,QAAQ,EAAE;oBACvC,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;oBAE9F,IAAI,CAAC,WAAW,CAAC,MAAM;wBAAE,SAAQ;AAEjC,oBAAA,MAAM,IAAI,GAAG,WAAW,CAAC,KAAK,EAAE,CAAA;AAEhC,oBAAA,IAAI,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC;wBAAE,SAAQ;AAErC,oBAAA,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5B,iBAAA;AAED,gBAAA,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;AACzC,aAAA;YAED,IAAI,CAAC,iBAAiB,CAAC,MAAM;gBAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,YAAY,EAAc,CAAA;AAE1F,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAA;AAEnE,YAAA,OAAO,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;SAC9D,CAAC,EACF,SAAS,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,EAC/E,GAAG,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,EAC9D,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3C,CAAA;KACF;AAEO,IAAA,eAAe,CAAC,KAAgB,EAAA;AACtC,QAAA,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YACxB,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;YAElF,MAAM,KAAK,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;YAE5E,OAAO,QAAQ,CAAC,UAAU,CAAC;gBACzB,KAAK;gBACL,UAAU;AACV,gBAAA,EAAE,EAAE,EAAE,CAAC,QAAQ,EAAE;gBACjB,IAAI;gBACJ,KAAK;gBACL,GAAG;gBACH,IAAI;gBACJ,KAAK;gBACL,MAAM;gBACN,GAAG;gBACH,KAAK;AACL,gBAAA,SAAS,EAAE,CAAC;AACZ,gBAAA,QAAQ,EAAE,CAAC;AACX,gBAAA,MAAM,EAAE,IAAI;AACb,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAA;KACH;8GAlXU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,EAAA,EAAA,KAAA,EAMZ,YAAY,EACZ,EAAA,EAAA,KAAA,EAAA,mBAAmB,aACnB,oBAAoB,EAAA,EAAA,EAAA,KAAA,EACpB,mBAAmB,EAAA,EAAA,EAAA,KAAA,EACnB,mBAAmB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAVlB,WAAW,EAAA,CAAA,CAAA,EAAA;;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;0BAON,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,mBAAmB,CAAA;;0BAC1B,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,mBAAmB,CAAA;;0BAC1B,MAAM;2BAAC,mBAAmB,CAAA;;;MCpClB,2BAA2B,CAAA;AACtC,IAAA,WAAA,CAA2D,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;KAAI;IAErG,MAAM,4BAA4B,CAAC,QAAkB,EAAA;QACnD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAA;QAEvD,IAAI,cAAc,CAAC,YAAY;AAAE,YAAA,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,cAAc,CAAC,QAAQ,EAAE,EAAE,CAAA;QAEtG,MAAM,WAAW,GAAG,CAAC,IAAI,MAAM,IAAI,CAAC,8BAA8B,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAA;QAEtG,OAAO;AACL,YAAA,QAAQ,EAAE;AACR,gBAAA,EAAE,EAAE;oBACF,QAAQ,EAAE,KAAK,CAAC,EAAE;AAClB,oBAAA,KAAK,EAAE,WAAW;AACnB,iBAAA;AACF,aAAA;SACF,CAAA;KACF;IAEO,MAAM,8BAA8B,CAAC,QAAkB,EAAA;QAC7D,OAAO,IAAI,CAAC,kBAAkB;AAC3B,aAAA,WAAW,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC;aACzB,IAAI,CAAC,CAAC,UAAU,KAAK,UAAU,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAA;KAC9E;IAEO,MAAM,WAAW,CAAC,QAAkB,EAAA;AAC1C,QAAA,MAAM,kBAAkB,GACtB,QAAQ,CAAC,YAAY;AACrB,aAAC,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;AAC5D,YAAA,QAAQ,CAAC,UAAU;YACnB,QAAQ,CAAC,aAAa,CAAA;QAExB,OAAO,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,QAAQ,CAAA;KACxF;AAlCU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,kBAClB,oBAAoB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAD7B,2BAA2B,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;;0BAEI,MAAM;2BAAC,oBAAoB,CAAA;;;MCD7B,2BAA2B,CAAA;AACtC,IAAA,WAAA,CAA2D,kBAAsC,EAAA;QAAtC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;KAAI;IAErG,MAAM,4BAA4B,CAAC,QAAkB,EAAA;AACnD,QAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,MAAM;cACzC,QAAQ,CAAC,QAAQ;AACnB,cAAE,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,KAAK,aAAa,CAAC,QAAQ,CAAC,CAAA;AAE1G,QAAA,OAAO,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,CAAA;KAC1D;AATU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,2BAA2B,kBAClB,oBAAoB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAD7B,2BAA2B,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;;0BAEI,MAAM;2BAAC,oBAAoB,CAAA;;;MCmE7B,cAAc,CAAA;IAGzB,WACgD,CAAA,iBAAoC,EAEjE,kCAAsE,EACxC,kBAAsC,EACxC,wBAAkD,EACxD,IAAW,EACjC,YAA2B,EAAA;QANE,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAEjE,IAAkC,CAAA,kCAAA,GAAlC,kCAAkC,CAAoC;QACxC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QACxC,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QACxD,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAO;QACjC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAe;QATtC,IAAc,CAAA,cAAA,GAA6B,EAAE,CAAA;AAoN7C,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,EAC1B,YAAY,EACZ,MAAM,EACN,MAAM,EACN,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,aAAa,GACQ,KAAqC;YAC1D,MAAM,OAAO,GAAG,EAAqC,CAAA;YAErD,IAAI,YAAY,EAAE,MAAM;AACtB,gBAAA,GAAG,CAAC,OAAO,EAAE,oCAAoC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,CAAA;YACjG,IAAI,MAAM,EAAE,MAAM;AAAE,gBAAA,OAAO,CAAC,KAAK,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;YACzE,IAAI,MAAM,EAAE,MAAM;AAAE,gBAAA,OAAO,CAAC,MAAM,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAA;AAC1E,YAAA,IAAI,MAAM,EAAE,GAAG,IAAI,MAAM,EAAE,GAAG;AAC5B,gBAAA,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,eAAe,GAAG,uBAAuB,GAAG,aAAa,EAAE;AAC7E,oBAAA,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE;AAC9E,oBAAA,IAAI,MAAM,CAAC,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE;AAC9E,iBAAA,CAAC,CAAA;AACJ,YAAA,IAAI,IAAI;AAAE,gBAAA,OAAO,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;YAC7D,IAAI,IAAI,EAAE,MAAM;AAAE,gBAAA,OAAO,CAAC,IAAI,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA;YACtE,IAAI,aAAa,EAAE,MAAM;AAAE,gBAAA,OAAO,CAAC,OAAO,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAA;AAE3F,YAAA,OAAO,OAAO,CAAA;AAChB,SAAC,CAAA;AAEO,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,IAAiB,KAAgC;AACzE,YAAA,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,eAAe;AAAE,gBAAA,OAAO,EAAE,CAAA;YAEhD,IAAI,IAAI,KAAK,cAAc;gBACzB,OAAO;AACL,oBAAA,aAAa,EAAE,MAAM;AACrB,oBAAA,IAAI,EAAE,MAAM;AACZ,oBAAA,KAAK,EAAE,MAAM;AACb,oBAAA,IAAI,EAAE,KAAK;iBACZ,CAAA;YACH,IAAI,IAAI,KAAK,eAAe;AAAE,gBAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAS,CAAA;YAC5G,IAAI,IAAI,KAAK,cAAc;AAAE,gBAAA,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAS,CAAA;YAC1G,IAAI,IAAI,KAAK,aAAa;AAAE,gBAAA,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAA;YACtG,IAAI,IAAI,KAAK,MAAM;AAAE,gBAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,CAAA;YACjD,IAAI,IAAI,KAAK,kBAAkB;AAC7B,gBAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAS,CAAA;AAC/F,SAAC,CAAA;AAEO,QAAA,IAAA,CAAA,eAAe,GAAG,CAAC,OAA4C,KAAyC;AAC9G,YAAA,MAAM,KAAK,GAAG,OAAO,EAAE,OAAO,IAAI,EAAE,CAAA;YAEpC,OAAO;gBACL,KAAK;AACL,gBAAA,MAAM,EAAE,CAAC,CAAC,OAAO,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK;aAC3C,CAAA;AACH,SAAC,CAAA;QAEO,IAAU,CAAA,UAAA,GAAG,CACnB,OAA+B,KAI5B,SAAS,IAAI,OAAO,CAAA;QAEjB,IAAO,CAAA,OAAA,GAAG,CAChB,OAA+B,KAI5B,MAAM,IAAI,OAAO,CAAA;QAEd,IAAW,CAAA,WAAA,GAAG,CACpB,OAA+B,KAI5B,UAAU,IAAI,OAAO,CAAA;KAnRtB;IAEJ,MAAM,aAAa,CAAC,OAA+B,EAAA;QACjD,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAA;QAE5C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,aAAa;AAC5D,YAAA,MAAM,IAAI,oBAAoB,CAAC,CAAA,sDAAA,CAAwD,CAAC,CAAA;QAC1F,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,IAAI;AACnD,YAAA,MAAM,IAAI,oBAAoB,CAAC,CAAA,6CAAA,CAA+C,CAAC,CAAA;QACjF,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,aAAa;AACzD,YAAA,MAAM,IAAI,oBAAoB,CAAC,CAAA,mDAAA,CAAqD,CAAC,CAAA;AAEvF,QAAA,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM;YAC3G,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,wBAAwB,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE;YACtG,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;AACtC,YAAA,MAAM,EAAE;AACN,gBAAA,KAAK,EAAE,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE;AAC3F,gBAAA,eAAe,EAAE;oBACf,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;oBACjD,GAAG,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC,CAAC;AAClD,iBAAA;AACF,aAAA;YACD,MAAM,EAAE,QAAQ,EAAE,KAAK;AACxB,SAAA,CAAC,CAAC,CAAA;KACJ;IAED,MAAM,8BAA8B,CAAC,IAAW,EAAE,SAAiB,EAAE,IAAY,EAAE,KAAa,EAAA;AAC9F,QAAA,OAAO,IAAI,CAAC,kCAAkC,CAAC,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;KAC9F;AAEO,IAAA,MAAM,WAAW,CACvB,OAA+B,EAC/B,MAGC,EAAA;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE;YAC7D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YAE1E,OAAO,IAAI,CAAC,sCAAsC,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AACjF,SAAA;AAED,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,IAAI,KAAK,eAAe,EAAE;YACjE,MAAM,YAAY,GAAG,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACzG,YAAA,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB;AAC7C,iBAAA,WAAW,CAAC;gBACX,MAAM,EAAE,CAAC,IAAI,CAAC;AACd,gBAAA,OAAO,EAAE;oBACP,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;oBACvC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AACjD,iBAAA;aACF,CAAC;iBACD,IAAI,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;AAEjE,YAAA,OAAO,IAAI,CAAC,gCAAgC,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,CAAA;AACzF,SAAA;AAED,QAAA,MAAM,UAAU,GAAkC;AAChD,YAAA,OAAO,EAAE;gBACP,IAAI,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;gBACvC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AACjD,aAAA;YACD,IAAI,OAAO,EAAE,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE;YACxE,MAAM;AACN,YAAA,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE;AAC9D,aAAA;SACF,CAAA;AAED,QAAA,IAAI,CAAC,eAAe,EAAE,cAAc,EAAE,kBAAkB,EAAE,aAAa,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC;YAC7F,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;AAEvD,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,WAAW,CACvC,UAAU,EACV,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,QAAQ,CAC1E,CAAA;KACF;IAEO,MAAM,eAAe,CAAC,EAC5B,QAAQ,EACR,OAAO,EACP,IAAI,GACuB,EAAA;AAC3B,QAAA,IAAI,QAAQ;YAAE,OAAO,IAAI,CAAC,wBAAwB,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAA;AACzF,QAAA,IAAI,OAAO;AAAE,YAAA,OAAO,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAA;AACtE,QAAA,IAAI,IAAI;YACN,OAAO,IAAI,CAAC,YAAY;iBACrB,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;AAC5B,iBAAA,IAAI,CAAC,CAAC,IAAI,MAAM,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAA;KACzG;IAEO,MAAM,gCAAgC,CAC5C,aAAuB,EACvB,UAAoB,EACpB,OAGC,EACD,MAGC,EAAA;AAED,QAAA,MAAM,uBAAuB,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QAC9E,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAC1D;AACE,YAAA,OAAO,EAAE;gBACP,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE;gBAC1D,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AACjD,aAAA;AACD,YAAA,OAAO,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;AACpC,YAAA,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,QAAQ,EAAE,CAAC,OAAO,CAAC;AACpB,aAAA;SACF,EACD,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,QAAQ,CAC1E,CAAA;QACD,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9F,MAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA;QAC9F,MAAM,qBAAqB,GAAG,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAA;AAChE,QAAA,MAAM,WAAW,GAAG,qBAAqB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAE5F,OAAO;AACL,YAAA,IAAI,EAAE,WAAW;YACjB,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;SAC/B,CAAA;KACF;AAEO,IAAA,MAAM,sCAAsC,CAClD,UAAoB,EACpB,OAGC,EACD,MAGC,EAAA;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAC1D;AACE,YAAA,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;AACvB,YAAA,OAAO,EAAE;gBACP,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE;gBAC7C,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,IAAI,EAAE,CAAC;AACjD,aAAA;AACD,YAAA,OAAO,EAAE;gBACP,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,OAAO,EAAE,CAAC,OAAO,CAAC;gBAClB,QAAQ,EAAE,CAAC,OAAO,CAAC;AACpB,aAAA;SACF,EACD,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,QAAQ,CAC1E,CAAA;QAED,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;QAClF,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAA;QAClF,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,CAAA;QACxG,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAAE,IAAI,OAAO,CAAC,CAAC,CAAA;QAE1G,MAAM,gBAAgB,GAAG,eAAe;aACrC,MAAM,CAAC,kBAAkB,CAAC;AAC1B,aAAA,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;AAErD,QAAA,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,KAAK,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;QACpF,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;AAC7D,YAAA,OAAO,EAAE;gBACP,EAAE,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE;AAC7C,aAAA;AACF,SAAA,CAAC,CAAA;QAEF,OAAO;AACL,YAAA,IAAI,EAAE,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;YAC3G,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,QAAQ,EAAE,WAAW,CAAC,QAAQ;SAC/B,CAAA;KACF;IAEO,MAAM,6BAA6B,CAAC,IAAY,EAAA;AACtD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAE/D,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC,YAAY;aACxD,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;aAC5B,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAI;YAC3B,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAA;YAC9E,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAA;YAClF,MAAM,MAAM,GAAG,CAAC,GAAG,SAAS,EAAE,GAAG,YAAY,CAAC,CAAA;YAE9C,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;SAC7D,CAAC,EAAC;KACN;8GAnNU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAIf,mBAAmB,EACnB,EAAA,EAAA,KAAA,EAAA,oCAAoC,aAEpC,oBAAoB,EAAA,EAAA,EAAA,KAAA,EACpB,kBAAkB,EAAA,EAAA,EAAA,KAAA,EAClB,YAAY,EAAA,EAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHATX,cAAc,EAAA,CAAA,CAAA,EAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;;0BAKN,MAAM;2BAAC,mBAAmB,CAAA;;0BAC1B,MAAM;2BAAC,oCAAoC,CAAA;;0BAE3C,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,kBAAkB,CAAA;;0BACzB,MAAM;2BAAC,YAAY,CAAA;;;MC/DX,eAAe,CAAA;IAC1B,WACgD,CAAA,iBAAoC,EACnC,kBAAsC,EAChC,wBAAkD,EAC1D,wBAAkD,EACxD,IAAW,EAAA;QAJJ,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QACnC,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAChC,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QAC1D,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QACxD,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAO;KAChD;AAEJ,IAAA,MAAM,WAAW,CAAC,QAAkB,EAAE,OAA4B,EAAA;AAChE,QAAA,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB;AACxC,aAAA,WAAW,CACV;YACE,OAAO,EAAE,MAAM,IAAI,CAAC,wBAAwB,CAAC,4BAA4B,CAAC,QAAQ,CAAC;YACnF,MAAM,EAAE,CAAC,OAAO,CAAC;SAClB,EACD,OAAO,EAAE,UAAU,GAAG,OAAO,EAAE,UAAU,GAAG,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,UAAU,GAAG,MAAM,GAAG,QAAQ,CAC/F;aACA,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KACb,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAChH,CAAA;QAEH,OAAO,IAAI,CAAC,kBAAkB;AAC3B,aAAA,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;AACtG,aAAA,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;KAC7F;IAED,MAAM,kBAAkB,CAAC,QAAkB,EAAA;QACzC,OAAO,MAAM,IAAI,CAAC,wBAAwB;AACvC,aAAA,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;aAC/C,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,cAAc,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC,CAAA;KAC3E;8GA/BU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAEhB,mBAAmB,EACnB,EAAA,EAAA,KAAA,EAAA,oBAAoB,aACpB,0BAA0B,EAAA,EAAA,EAAA,KAAA,EAC1B,kBAAkB,EAAA,EAAA,EAAA,KAAA,EAClB,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHANX,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;0BAGN,MAAM;2BAAC,mBAAmB,CAAA;;0BAC1B,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,0BAA0B,CAAA;;0BACjC,MAAM;2BAAC,kBAAkB,CAAA;;0BACzB,MAAM;2BAAC,YAAY,CAAA;;;ICzBZ,aAQX;AARD,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,cAA4B,CAAA;AAC5B,IAAA,YAAA,CAAA,eAAA,CAAA,GAAA,eAA+B,CAAA;AAC/B,IAAA,YAAA,CAAA,cAAA,CAAA,GAAA,cAA6B,CAAA;AAC7B,IAAA,YAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC,CAAA;AACrC,IAAA,YAAA,CAAA,aAAA,CAAA,GAAA,aAA2B,CAAA;AAC3B,IAAA,YAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACf,CAAC,EARW,YAAY,KAAZ,YAAY,GAQvB,EAAA,CAAA,CAAA;;ACJK,MAAO,gBAAiB,SAAQ,QAAQ,CAAA;AAG7C,CAAA;AADC,UAAA,CAAA;AADC,IAAA,IAAI,CAAC,MAAM,gBAAgB,CAAC;;AACA,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;;MCalB,eAAe,CAAA;AAI1B,IAAA,WAAA,CACiD,kBAAsC,EAC9C,IAAW,EACrB,iBAAoC,EAC7B,wBAAkD,EACxD,kBAAsC,EAEpE,kCAAsE,EACtE,YAA2B,EAAA;QAPoB,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAC9C,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAO;AAQlD,QAAA,MAAM,wBAAwB,GAAG,IAAI,2BAA2B,CAAC,kBAAkB,CAAC,CAAA;AAEpF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CACtC,iBAAiB,EACjB,kCAAkC,EAClC,kBAAkB,EAClB,wBAAwB,EACxB,IAAI,EACJ,YAAY,CACb,CAAA;AACD,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CACxC,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,wBAAwB,EACxB,IAAI,CACL,CAAA;KACF;IAED,iBAAiB,GAAA;QACf,OAAO,IAAI,CAAC,cAAc,CAAA;KAC3B;IAED,kBAAkB,GAAA;QAChB,OAAO,IAAI,CAAC,eAAe,CAAA;KAC5B;IAED,MAAM,MAAM,CAAC,EACX,QAAQ,EACR,KAAK,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,KAAK,EACL,SAAS,EACT,UAAU,EACV,kBAAkB,GAYnB,EAAA;AACC,QAAA,MAAM,IAAI,GAAG;AACX,YAAA,IAAI,EAAE,EAAE;AACR,YAAA,IAAI,EAAE,KAAK;YACX,WAAW;AACX,YAAA,SAAS,EAAE;AACT,gBAAA;oBACE,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,oBAAA,KAAK,EAAE,CAAA,EAAG,YAAY,CAAA,GAAA,EAAM,KAAK,CAAE,CAAA;AACnC,oBAAA,WAAW,EAAE,CAAA,EAAG,YAAY,CAAA,GAAA,EAAM,WAAW,CAAE,CAAA;AAChD,iBAAA;AACF,aAAA;YACD,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC;YAClB,QAAQ;AACR,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,aAAa,EAAE,KAAK;YACpB,SAAS;YACT,KAAK;YACL,SAAS;AACT,YAAA,UAAU,EAAE,UAAU,IAAI,WAAW,CAAC,IAAI;YAC1C,kBAAkB,EAAE,kBAAkB,IAAI,KAAK;SAChD,CAAA;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAE9D,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAA;AAElF,QAAA,OAAO,QAAQ,CAAC,UAAU,CAAC,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,CAAC,CAAA;KAC/E;IAED,MAAM,CAAC,EACL,EAAE,EACF,KAAK,EACL,WAAW,EACX,SAAS,EACT,YAAY,EACZ,SAAS,EACT,KAAK,EACL,SAAS,EACT,UAAU,EACV,kBAAkB,GAYnB,EAAA;AACC,QAAA,MAAM,IAAI,GAAG;YACX,EAAE;AACF,YAAA,IAAI,EAAE,KAAK;YACX,WAAW;YACX,SAAS;AACT,YAAA,SAAS,EAAE;AACT,gBAAA;oBACE,IAAI,EAAE,IAAI,CAAC,IAAI;AACf,oBAAA,KAAK,EAAE,CAAA,EAAG,YAAY,CAAA,GAAA,EAAM,KAAK,CAAE,CAAA;AACnC,oBAAA,WAAW,EAAE,CAAA,EAAG,YAAY,CAAA,GAAA,EAAM,WAAW,CAAE,CAAA;AAChD,iBAAA;AACF,aAAA;AACD,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,WAAW,EAAE,SAAS;YACtB,KAAK;YACL,SAAS;AACT,YAAA,UAAU,EAAE,UAAU,IAAI,WAAW,CAAC,IAAI;YAC1C,kBAAkB,EAAE,kBAAkB,IAAI,KAAK;SAChD,CAAA;QAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;KAC5C;AAED,IAAA,MAAM,CAAC,UAAkB,EAAA;AACvB,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;KAC1D;AAED,IAAA,iBAAiB,CAAC,IAAY,EAAA;QAC5B,MAAM,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;AAE5B,QAAA,IAAI,CAAC,EAAE;YAAE,OAAO,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAA;QAEnD,OAAO,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;KACvD;AAED,IAAA,oBAAoB,CAAC,QAAgB,EAAA;QACnC,OAAO,IAAI,CAAC,kBAAkB,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAA;KAC7D;AAED,IAAA,MAAM,UAAU,CAAC,UAAkB,EAAE,SAAiB,EAAA;AACpD,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;AACtE,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAA;QAEhE,IAAI,CAAC,UAAU,EAAE;YACf,QAAQ,CAAC,QAAQ,GAAG,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAA;AACrD,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;AACvF,SAAA;AAED,QAAA,OAAO,QAAQ,CAAA;KAChB;AAED,IAAA,MAAM,aAAa,CAAC,UAAkB,EAAE,SAAiB,EAAA;AACvD,QAAA,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;AACtE,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,CAAA;AAEvE,QAAA,IAAI,YAAY,IAAI,CAAC,CAAC,EAAE;YACtB,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC,CAAA;AAEzC,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM;gBAC3B,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAA;AAE3F,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;AACvF,SAAA;AAED,QAAA,OAAO,QAAQ,CAAA;KAChB;8GAvLU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAKhB,oBAAoB,EAAA,EAAA,EAAA,KAAA,EACpB,YAAY,EAAA,EAAA,EAAA,KAAA,EACZ,mBAAmB,EAAA,EAAA,EAAA,KAAA,EACnB,0BAA0B,EAAA,EAAA,EAAA,KAAA,EAC1B,oBAAoB,EAAA,EAAA,EAAA,KAAA,EACpB,oCAAoC,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAVnC,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;0BAMN,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,YAAY,CAAA;;0BACnB,MAAM;2BAAC,mBAAmB,CAAA;;0BAC1B,MAAM;2BAAC,0BAA0B,CAAA;;0BACjC,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,oCAAoC,CAAA;;;MCXnC,2BAA2B,CAAA;AACtC,IAAA,WAAA,CAEmB,8BAA8D,EAChC,eAAgC,EAC9D,aAA4B,EAAA;QAF5B,IAA8B,CAAA,8BAAA,GAA9B,8BAA8B,CAAgC;QAChC,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAC9D,IAAa,CAAA,aAAA,GAAb,aAAa,CAAe;KAC3C;AAEJ,IAAA,uBAAuB,CAAC,YAA+C,EAAA;QACrE,OAAO,IAAI,CAAC,eAAe;aACxB,GAAG,CAAC,wBAAwB,CAAC;AAC7B,aAAA,IAAI,CACH,SAAS,CAAC,CAAC,EAAE,KACX,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,0BAA0B,CAAC,YAAY,CAAC,CAC7G,CACF,CAAA;KACJ;IAED,oCAAoC,GAAA;QAClC,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAA;KAC7D;IAED,WAAW,CAAC,QAAgB,EAAE,SAAiB,EAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,CACxC,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CAAC,aAAa;AACf,aAAA,WAAW,CAAC,QAAQ,EAAE,aAAa,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,CAAC,gBAAgB,CAAC,IAAI,CAAC;aAC3F,IAAI,EAAE,CACV,CACF,CAAA;KACF;AAED,IAAA,wBAAwB,CAAC,MAAc,EAAA;AACrC,QAAA,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC,IAAI,CACxC,SAAS,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC,CAC9F,CAAA;KACF;IAEO,MAAM,0BAA0B,CACtC,YAA+C,EAAA;QAE/C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,8BAA8B,CAAC,MAAM,CAAC;YAChE,SAAS,EAAE,IAAI,IAAI,EAAE;AACrB,YAAA,GAAG,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AACnF,SAAA,CAAC,CAAA;AAEF,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,wBAAwB,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,EAAE,CAAA;AAEjF,QAAA,OAAO,QAAQ,CAAA;KAChB;8GAjDU,2BAA2B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAE5B,gCAAgC,EAAA,EAAA,EAAA,KAAA,EAEhC,oBAAoB,EAAA,EAAA,EAAA,KAAA,EAAAG,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAJnB,2BAA2B,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADvC,UAAU;;0BAGN,MAAM;2BAAC,gCAAgC,CAAA;;0BAEvC,MAAM;2BAAC,oBAAoB,CAAA;;;MCtBnB,UAAU,CAAA;IACrB,OAAO,UAAU,CAAC,IAAY,EAAA;AAC5B,QAAA,OAAO,IAAI;AACR,aAAA,WAAW,EAAE;AACb,aAAA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AACpB,aAAA,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;AACxB,aAAA,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;AACxB,aAAA,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;AACvB,aAAA,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC;AACxB,aAAA,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;AACvB,aAAA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AACpB,aAAA,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;AACpB,aAAA,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC;AACtB,aAAA,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC;AACxB,aAAA,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAA;KAC1B;AACF;;MCUY,eAAe,CAAA;AAG1B,IAAA,IAAY,MAAM,GAAA;AAChB,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,QAAQ;AAAE,YAAA,OAAO,UAAU,CAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,CAAC,UAAU;AAAE,YAAA,OAAO,aAAa,CAAA;AAE/D,QAAA,OAAO,IAAI,CAAA;KACZ;AAED,IAAA,WAAA,CACiD,kBAAsC,EAC1C,cAA8B,EAC3B,iBAAoC,EAC3C,WAAkB,EAAA;QAHV,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB,CAAoB;QAC1C,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC3B,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAmB;QAC3C,IAAW,CAAA,WAAA,GAAX,WAAW,CAAO;AAwHnD,QAAA,IAAA,CAAA,kCAAkC,GAAG,CAAC,KAAwB,MAAyB;YAC7F,QAAQ,EAAE,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;YAC3G,QAAQ,EACN,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,OAAO,KAC3B,OAAO,CAAC,UAAU,CAChB,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAC7B,IAAI;gBACJ,OAAO;gBACP,SAAS;gBACT,aAAa;gBACb,MAAM;gBACN,KAAK;gBACL,OAAO;gBACP,WAAW;gBACX,QAAQ;gBACR,YAAY;gBACZ,MAAM;gBACN,QAAQ;gBACR,MAAM;gBACN,MAAM;gBACN,OAAO;aACR,CAAC,CACH,CACF,IAAI,EAAE;AACV,SAAA,CAAC,CAAA;KA/IE;IAEJ,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACrC,GAAG,CAAC,CAAC,IAAI,MAAM,IAAI,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,EACjE,SAAS,CAAC,CAAC,IAAI,KACb,IAAI;AACF,cAAE,EAAE,CAAC,IAAI,CAAC;cACR,QAAQ,CAAC;AACP,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;AACrC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;AACrC,gBAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC;AACtC,aAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,CAAC,MAAM;gBAC/D,gBAAgB;gBAChB,gBAAgB;gBAChB,gBAAgB;AACjB,aAAA,CAAC,CAAC,EACH,SAAS,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAC7C,CACN,CACF,CAAA;KACF;AAED,IAAA,UAAU,CAAC,IAAgB,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACrC,GAAG,CAAC,CAAC,IAAI,KAAI;YACX,IAAI,IAAI,KAAK,OAAO;gBAAE,OAAO,IAAI,CAAC,cAAc,CAAA;YAChD,IAAI,IAAI,KAAK,UAAU;AAAE,gBAAA,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAA;YACrD,IAAI,IAAI,KAAK,OAAO;gBAAE,OAAO,IAAI,CAAC,YAAY,CAAA;YAC9C,IAAI,IAAI,KAAK,MAAM;AAAE,gBAAA,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;AAE7C,YAAA,OAAO,EAAE,CAAA;SACV,CAAC,CACH,CAAA;KACF;IAED,0BAA0B,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAA;KACrF;AAEO,IAAA,mBAAmB,CAAC,MAAe,EAAA;QACzC,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACrC,SAAS,CAAC,CAAC,IAAI,KACb,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CACjG,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CACrE,CACF,CACF,CAAA;KACF;AAEO,IAAA,mBAAmB,CAAC,MAAe,EAAA;QACzC,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACrC,SAAS,CAAC,CAAC,IAAI,KACb,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,kBAAkB,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CACjG,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC,CACrE,CACF,CACF,CAAA;KACF;AAEO,IAAA,mBAAmB,CAAC,MAAe,EAAA;AACzC,QAAA,OAAO,IAAI,CAAC,oBAAoB,EAAE,CAAC,IAAI,CACrC,SAAS,CAAC,CAAC,IAAI,KACb,QAAQ,CACN,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAC5C,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAC5C,SAAS,CAAC,CAAC,QAAQ,KACjB,IAAI,CACF,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC;AAC1B,YAAA,OAAO,EAAE;AACP,gBAAA,UAAU,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE;gBACxD,IAAI,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,GAAG,EAAE;AACpE,aAAA;AACD,YAAA,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;SACtB,CAAC,CACH,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CACpD,EACD,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,EACxE,GAAG,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAC7C,CACF,CACF,CACF,CACF,CAAA;KACF;IAEO,oBAAoB,GAAA;AAC1B,QAAA,OAAO,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,CACpC,SAAS,CAAC,CAAC,IAAI,KACb,IAAI;AACF,cAAE,EAAE,CAAC,IAAI,CAAC;AACV,cAAE,CAAC,IAAI,CAAC,MAAM;kBACZ,UAAU,CAAC,IAAI,qBAAqB,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnD,kBAAE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CACrD,GAAG,CAAC,CAAC,UAAU,MAAM,IAAI,CAAC,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAC3D,CACN,CACF,CAAA;KACF;AAEO,IAAA,YAAY,CAAC,QAAkB,EAAA;AACrC,QAAA,MAAM,IAAI,GAAG;YACX,SAAS,EAAE,IAAI,IAAI,EAAE;AACrB,YAAA,SAAS,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;AACxC,YAAA,IAAI,EAAE,QAAQ;SACf,CAAA;AAED,QAAA,OAAO,IAAI,CACT,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;YACzB,EAAE,EAAE,IAAI,CAAC,MAAM;YACf,IAAI;AACL,SAAA,CAAC,CACH,CAAC,IAAI,CACJ,GAAG,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,EAC/C,GAAG,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAClC,CAAA;KACF;AA4BD,IAAA,IAAY,MAAM,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,MAAM,KAAK,aAAa,GAAG,WAAW,GAAG,SAAS,CAAA;KAC/D;AAlKU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAWhB,oBAAoB,EAAA,EAAA,EAAA,KAAA,EACpB,gBAAgB,EAChB,EAAA,EAAA,KAAA,EAAA,mBAAmB,aACnB,YAAY,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAdX,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;0BAYN,MAAM;2BAAC,oBAAoB,CAAA;;0BAC3B,MAAM;2BAAC,gBAAgB,CAAA;;0BACvB,MAAM;2BAAC,mBAAmB,CAAA;;0BAC1B,MAAM;2BAAC,YAAY,CAAA;;;MCjCX,YAAY,CAAA;IAGvB,WACmB,CAAA,gBAA2B,EACA,eAAyC,EAAA;QADpE,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAW;QACA,IAAe,CAAA,eAAA,GAAf,eAAe,CAA0B;AAJvF,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAS,CAAA;KAK/B;AAEJ,IAAA,QAAQ,CAAC,EAAU,EAAA;AACjB,QAAA,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAA,EAAG,IAAI,CAAC,eAAe,CAAC,cAAc,IAAI,EAAE,CAAA,CAAE,CAAC,CAAC;AACrF,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;AAChD,aAAA,SAAS,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;QAElD,OAAO,IAAI,CAAC,YAAY,CAAA;KACzB;AAdU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,6CAKb,iBAAiB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHALhB,YAAY,EAAA,CAAA,CAAA,EAAA;;2FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB,UAAU;;0BAMN,MAAM;2BAAC,iBAAiB,CAAA;;;MCDhB,eAAe,CAAA;AAC1B,IAAA,WAAA,CACU,IAAgB,EACK,MAAc,EACnC,WAA4B,EAAA;QAF5B,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QACK,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACnC,IAAW,CAAA,WAAA,GAAX,WAAW,CAAiB;KAClC;IAEG,kBAAkB,CACvB,IAAY,EACZ,GAAW,EACX,WAAmB,EACnB,UAAkB,EAClB,QAAgB,EAChB,gBAAyB,EAAA;AAEzB,QAAA,OAAO,aAAa,CAAC;AACnB,YAAA,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE;AAC9B,YAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CACX,GAAG,IAAI,CAAC,MAAM,CAAA,mCAAA,EAAsC,QAAQ,CAAe,YAAA,EAAA,GAAG,CAAgB,aAAA,EAAA,WAAW,EAAE,CAC5G;AACF,SAAA,CAAC,CAAC,IAAI,CACL,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,uBAAuB,CAAsD,KAAI;AAC5F,YAAA,IAAI,eAAe,GAAG,uBAAuB,CAAC,MAE1C,CAAA;YAEJ,IAAI,CAAC,eAAe,CAAC,MAAM;AAAE,gBAAA,OAAO,EAAE,CAAA;YAEtC,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,cAAc,KAAI;AACvD,gBAAA,IAAI,cAAc,CAAC,mBAAmB,IAAI,aAAa;AAAE,oBAAA,cAAc,CAAC,mBAAmB,GAAG,UAAU,CAAA;AAExG,gBAAA,OAAO,cAAc,CAAA;AACvB,aAAC,CAAC,CAAA;AAEF,YAAA,MAAM,wBAAwB,GAAG,KAAK,CAAC,mBAAmB,CAAA;AAE1D,YAAA,IAAI,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE;AAC7C,gBAAA,eAAe,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,KAAK,UAAU,CAAC,CAAA;AACxF,aAAA;YAED,IAAI,UAAU,IAAI,GAAG,EAAE;gBACrB,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AAC1C,oBAAA,IAAI,CAAC,CAAC,WAAW,KAAK,UAAU;wBAAE,OAAO,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;;AAC3D,wBAAA,OAAO,CAAC,CAAA;AACf,iBAAC,CAAC,CAAA;AACH,aAAA;AAED,YAAA,IAAI,IAAI,IAAI,KAAK,CAAC,QAAQ;AAAE,gBAAA,OAAO,eAAe,CAAA;YAElD,IAAI,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE;gBAC7D,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AAC1C,oBAAA,IAAI,CAAC,CAAC,WAAW,IAAI,UAAU;AAAE,wBAAA,OAAO,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,CAAA;;wBACzE,OAAO,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAA;AACrC,iBAAC,CAAC,CAAA;AACH,aAAA;YAED,IAAI,IAAI,CAAC,4BAA4B,CAAC,IAAI,EAAE,gBAAgB,CAAC,EAAE;gBAC7D,eAAe,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,KAAI;AAC1C,oBAAA,OAAO,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,UAAU,GAAG,CAAC,EAAE,CAAA;AAC/C,iBAAC,CAAC,CAAA;AACH,aAAA;AAED,YAAA,OAAO,eAAe,CAAA;SACvB,CAAC,CACH,CAAA;KACF;IAEO,4BAA4B,CAAC,IAAY,EAAE,gBAAwB,EAAA;AACzE,QAAA,IAAI,CAAC,gBAAgB;AAAE,YAAA,OAAO,KAAK,CAAA;QAEnC,IAAI,IAAI,IAAI,KAAK,CAAC,UAAU,IAAI,gBAAgB,IAAI,QAAQ;AAAE,YAAA,OAAO,IAAI,CAAA;AAEzE,QAAA,OAAO,KAAK,CAAA;KACb;IAEO,4BAA4B,CAAC,IAAY,EAAE,gBAAwB,EAAA;AACzE,QAAA,IAAI,CAAC,gBAAgB;AAAE,YAAA,OAAO,KAAK,CAAA;QAEnC,IAAI,IAAI,IAAI,KAAK,CAAC,UAAU,IAAI,gBAAgB,IAAI,OAAO,EAAE;AAC3D,YAAA,OAAO,IAAI,CAAA;AACZ,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACb;AAEO,IAAA,UAAU,CAAC,KAAU,EAAA;AAC3B,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAA;AAExB,QAAA,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE;AACvB,YAAA,IAAI,KAAK,GAAG,IAAI,IAAI,CAAC,CAAA,EAAG,KAAK,CAAC,WAAW,EAAE,CAAI,CAAA,EAAA,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAA,CAAE,CAAC,CAAA;AACtE,YAAA,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC,CAAA,EAAG,KAAK,CAAC,WAAW,EAAE,CAAI,CAAA,EAAA,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAA,CAAE,CAAC,CAAA;YAElE,IAAI,KAAK,GAAG,GAAG;gBAAE,GAAG,GAAG,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC,CAAI,CAAA,EAAA,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAA,CAAE,CAAC,CAAA;AAEnF,YAAA,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAI,GAAG;AAAE,gBAAA,OAAO,IAAI,CAAA;AAChD,SAAA;AAED,QAAA,OAAO,KAAK,CAAA;KACb;AAlGU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,8CAGhB,WAAW,EAAA,EAAA,EAAA,KAAA,EAAAC,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAHV,eAAe,EAAA,CAAA,CAAA,EAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAD3B,UAAU;;0BAIN,MAAM;2BAAC,WAAW,CAAA;;;MC2EV,oBAAoB,CAAA;AAC/B,IAAA,OAAO,aAAa,CAClB,WAAkB,EAClB,OAQC,EACD,YAAyC,EAAA;QAEzC,OAAO;AACL,YAAA,QAAQ,EAAE,oBAAoB;AAC9B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,kBAAkB;oBAC3B,QAAQ,EACN,KAAK,CAAC,OAAO,EAAE,oBAAoB,CAAC,IAAI,OAAO,EAAE,oBAAoB;AACnE,0BAAE,2BAA2B;AAC7B,0BAAE,2BAA2B;AAClC,iBAAA;gBACD,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,OAAO,EAAE,mBAAmB,IAAI,qBAAqB,EAAE;gBAClG,IAAI,KAAK,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;gBAChF,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;gBAChG,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC;gBAC5F,IAAI,KAAK,CAAC,OAAO,EAAE,aAAa,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,aAAa,EAAE,CAAC;gBAClG,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC;gBACzF,IAAI,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC;gBAC9F,IAAI,KAAK,CAAC,OAAO,EAAE,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC;AAC5G,aAAA;SACF,CAAA;KACF;8GAlCU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,sDAjC7B,yBAAyB;YACzB,yBAAyB;YACzB,sBAAsB;YACtB,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;AA8BjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EA5BpB,SAAA,EAAA;YACT,WAAW;YACX,WAAW;YACX,cAAc;YACd,eAAe;YACf,eAAe;YACf,2BAA2B;YAC3B,aAAa;YACb,eAAe;YACf,YAAY;YACZ,eAAe;YACf,eAAe;AACf,YAAA;AACE,gBAAA,OAAO,EAAE,eAAe;AACxB,gBAAA,UAAU,EAAE,CAAC,cAA8B,EAAE,YAAiC,KAAI;AAChF,oBAAA,OAAO,IAAI,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;iBACzD;AACD,gBAAA,IAAI,EAAE,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;AAChD,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,qBAAqB;AAC9B,gBAAA,UAAU,EAAE,CAAC,OAAgB,EAAE,OAAe,KAAI;AAChD,oBAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;iBACzD;AACD,gBAAA,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAClC,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAzCC,kBAAkB,CAAC,CAAC,QAAkB,KAAI;gBACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAS,iBAAiB,CAAC,IAAI,WAAW,CAAA;gBAEtE,IAAI;AACF,oBAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;AACvB,iBAAA;AAAC,gBAAA,OAAO,KAAK,EAAE;oBACd,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAA;AAC9D,iBAAA;AACH,aAAC,CAAC;AACF,YAAA,cAAc,CAAC,CAAC,QAAkB,KAAK,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;YAC7E,yBAAyB;YACzB,yBAAyB;YACzB,sBAAsB;YACtB,0BAA0B,CAAA,EAAA,CAAA,CAAA,EAAA;;2FA8BjB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBA7ChC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;AACP,wBAAA,kBAAkB,CAAC,CAAC,QAAkB,KAAI;4BACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAS,iBAAiB,CAAC,IAAI,WAAW,CAAA;4BAEtE,IAAI;AACF,gCAAA,OAAO,MAAM,CAAC,OAAO,CAAC,CAAA;AACvB,6BAAA;AAAC,4BAAA,OAAO,KAAK,EAAE;gCACd,OAAO,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC,CAAA;AAC9D,6BAAA;AACH,yBAAC,CAAC;AACF,wBAAA,cAAc,CAAC,CAAC,QAAkB,KAAK,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;wBAC7E,yBAAyB;wBACzB,yBAAyB;wBACzB,sBAAsB;wBACtB,0BAA0B;AAC3B,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACT,WAAW;wBACX,WAAW;wBACX,cAAc;wBACd,eAAe;wBACf,eAAe;wBACf,2BAA2B;wBAC3B,aAAa;wBACb,eAAe;wBACf,YAAY;wBACZ,eAAe;wBACf,eAAe;AACf,wBAAA;AACE,4BAAA,OAAO,EAAE,eAAe;AACxB,4BAAA,UAAU,EAAE,CAAC,cAA8B,EAAE,YAAiC,KAAI;AAChF,gCAAA,OAAO,IAAI,eAAe,CAAC,cAAc,EAAE,YAAY,CAAC,CAAA;6BACzD;AACD,4BAAA,IAAI,EAAE,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;AAChD,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,qBAAqB;AAC9B,4BAAA,UAAU,EAAE,CAAC,OAAgB,EAAE,OAAe,KAAI;AAChD,gCAAA,OAAO,IAAI,2BAA2B,CAAC,OAAO,EAAE,OAAO,CAAC,CAAA;6BACzD;AACD,4BAAA,IAAI,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC;AAClC,yBAAA;AACF,qBAAA;AACF,iBAAA,CAAA;;;ACxFD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"infrab4a-connect-angular.mjs","sources":["../../../projects/connect-angular/src/consts/es-config.const.ts","../../../projects/connect-angular/src/angular-elastic-search.module.ts","../../../projects/connect-angular/src/consts/backend-url.const.ts","../../../projects/connect-angular/src/consts/category-structure.ts","../../../projects/connect-angular/src/consts/default-shop.const.ts","../../../projects/connect-angular/src/consts/firebase-const.ts","../../../projects/connect-angular/src/consts/hasura-options.const.ts","../../../projects/connect-angular/src/consts/persistence.const.ts","../../../projects/connect-angular/src/angular-firebase-auth.module.ts","../../../projects/connect-angular/src/helpers/mobile-operation-system-checker.helper.ts","../../../projects/connect-angular/src/angular-firestore.module.ts","../../../projects/connect-angular/src/angular-hasura-graphql.module.ts","../../../projects/connect-angular/src/consts/storage-base-url.const.ts","../../../projects/connect-angular/src/persistence/cookie-data-persistence.ts","../../../projects/connect-angular/src/services/auth.service.ts","../../../projects/connect-angular/src/services/coupon.service.ts","../../../projects/connect-angular/src/services/checkout.service.ts","../../../projects/connect-angular/src/services/cart.service.ts","../../../projects/connect-angular/src/services/catalog/adapters/new-category-structure.adapter.ts","../../../projects/connect-angular/src/services/catalog/adapters/old-category-structure.adapter.ts","../../../projects/connect-angular/src/services/catalog/catalog.service.ts","../../../projects/connect-angular/src/services/catalog/category.service.ts","../../../projects/connect-angular/src/services/catalog/enums/product-sorts.enum.ts","../../../projects/connect-angular/src/services/catalog/models/category-with-tree.model.ts","../../../projects/connect-angular/src/services/catalog/wishlist.service.ts","../../../projects/connect-angular/src/services/checkout-subscription.service.ts","../../../projects/connect-angular/src/services/helpers/util.helper.ts","../../../projects/connect-angular/src/services/home-shop.service.ts","../../../projects/connect-angular/src/services/order.service.ts","../../../projects/connect-angular/src/services/shipping.service.ts","../../../projects/connect-angular/src/angular-connect.module.ts","../../../projects/connect-angular/src/infrab4a-connect-angular.ts"],"sourcesContent":["export const ES_CONFIG = 'ES_CONFIG'\r\n","import { ModuleWithProviders, NgModule } from '@angular/core'\r\nimport { AxiosAdapter, AxiosElasticSearchConfig, ProductsIndex } from '@infrab4a/connect'\r\n\r\nimport { ES_CONFIG } from './consts/es-config.const'\r\n\r\n@NgModule({\r\n providers: [\r\n {\r\n provide: ProductsIndex,\r\n useFactory: (configuration: AxiosElasticSearchConfig): ProductsIndex =>\r\n new ProductsIndex(new AxiosAdapter(configuration)),\r\n deps: [ES_CONFIG],\r\n },\r\n ],\r\n})\r\nexport class AngularElasticSeachModule {\r\n static initializeApp(options: AxiosElasticSearchConfig): ModuleWithProviders<AngularElasticSeachModule> {\r\n return {\r\n ngModule: AngularElasticSeachModule,\r\n providers: [{ provide: ES_CONFIG, useValue: options }],\r\n }\r\n }\r\n}\r\n","export const BACKEND_URL = 'BACKEND_URL'","export const CATEGORY_STRUCTURE = 'CATEGORY_STRUCTURE'\r\n","export const DEFAULT_SHOP = 'DEFAULT_SHOP'\r\n","import { InjectionToken } from '@angular/core'\r\n\r\nexport const FIREBASE_APP_NAME = new InjectionToken('firebaseAppName')\r\nexport const FIREBASE_OPTIONS = new InjectionToken('firebaseOptions')\r\n","export const HASURA_OPTIONS = 'HASURA_OPTIONS'\r\n","export const PERSISTENCE_PROVIDER = 'PERSISTENCE_PROVIDER'\r\n","import { Injector, ModuleWithProviders, NgModule } from '@angular/core'\r\nimport { FirebaseApp, FirebaseOptions } from '@angular/fire/app'\r\nimport { Auth, getAuth, provideAuth } from '@angular/fire/auth'\r\nimport {\r\n Authentication,\r\n AuthenticationFirebaseAuthService,\r\n AuthenticationService,\r\n RecoveryPassword,\r\n Register,\r\n RegisterFirebaseAuthService,\r\n RegisterService,\r\n SignOut,\r\n UserRepository,\r\n} from '@infrab4a/connect'\r\n\r\nimport { FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\r\nimport { FirebaseAppConfig } from './types'\r\n\r\n@NgModule({\r\n imports: [provideAuth((injector: Injector) => getAuth(injector.get(FirebaseApp)))],\r\n providers: [\r\n {\r\n provide: 'Authentication',\r\n useFactory: (authenticationService: AuthenticationService, userRepository: UserRepository): Authentication => {\r\n return new Authentication(authenticationService, userRepository)\r\n },\r\n deps: ['AuthenticationService', 'UserRepository'],\r\n },\r\n {\r\n provide: 'AuthenticationService',\r\n useFactory: (angularFireAuth: Auth): AuthenticationService => {\r\n return new AuthenticationFirebaseAuthService(angularFireAuth)\r\n },\r\n deps: [Auth],\r\n },\r\n {\r\n provide: 'Register',\r\n useFactory: (registerService: RegisterService, userRepository: UserRepository): Register => {\r\n return new Register(registerService, userRepository)\r\n },\r\n deps: ['RegisterService', 'UserRepository'],\r\n },\r\n {\r\n provide: 'RegisterService',\r\n useFactory: (angularFireAuth: Auth): RegisterService => {\r\n return new RegisterFirebaseAuthService(angularFireAuth)\r\n },\r\n deps: [Auth],\r\n },\r\n {\r\n provide: 'SignOut',\r\n useFactory: (authenticationService: AuthenticationService): SignOut => {\r\n return new SignOut(authenticationService)\r\n },\r\n deps: ['AuthenticationService'],\r\n },\r\n {\r\n provide: 'RecoveryPassword',\r\n useFactory: (authenticationService: AuthenticationService): RecoveryPassword => {\r\n return new RecoveryPassword(authenticationService)\r\n },\r\n deps: ['AuthenticationService'],\r\n },\r\n ],\r\n})\r\nexport class AngularFirebaseAuthModule {\r\n static initializeApp(\r\n options: FirebaseOptions,\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFirebaseAuthModule> {\r\n return {\r\n ngModule: AngularFirebaseAuthModule,\r\n providers: [\r\n { provide: FIREBASE_OPTIONS, useValue: options },\r\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\r\n ],\r\n }\r\n }\r\n}\r\n","export class MobileOperationSystemCheckerHelper {\r\n static isAppleDevice() {\r\n return (\r\n ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(\r\n navigator?.platform,\r\n ) ||\r\n (navigator?.userAgent?.includes?.('Mac') && 'ontouchend' in (document || {}))\r\n )\r\n }\r\n}\r\n","import { isPlatformBrowser, isPlatformServer } from '@angular/common'\r\nimport { Injector, ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\r\nimport { FirebaseApp, FirebaseOptions } from '@angular/fire/app'\r\nimport { Firestore, initializeFirestore, memoryLocalCache, provideFirestore } from '@angular/fire/firestore'\r\nimport {\r\n AxiosElasticSearchConfig,\r\n BeautyProfileRepository,\r\n Buy2WinFirestoreRepository,\r\n Buy2WinRepository,\r\n CampaignDashboardFirestoreRepository,\r\n CampaignDashboardRepository,\r\n CampaignHashtagFirestoreRepository,\r\n CampaignHashtagRepository,\r\n CategoryFirestoreRepository,\r\n CategoryRepository,\r\n CheckoutFirestoreRepository,\r\n CheckoutRepository,\r\n CheckoutSubscriptionFirestoreRepository,\r\n CheckoutSubscriptionRepository,\r\n ConnectFirestoreService,\r\n CouponFirestoreRepository,\r\n CouponRepository,\r\n EditionRepository,\r\n FirestoreConstructorParams,\r\n FirestoreIntertceptorRequestParams,\r\n HomeFirestoreRepository,\r\n HomeRepository,\r\n LeadFirestoreRepository,\r\n LeadRepository,\r\n LegacyOrderFirestoreRepository,\r\n LegacyOrderRepository,\r\n OrderBlockedFirestoreRepository,\r\n OrderBlockedRepository,\r\n OrderFirestoreRepository,\r\n OrderRepository,\r\n PaymentFirestoreRepository,\r\n PaymentRepository,\r\n ProductFirestoreRepository,\r\n ProductRepository,\r\n ProductVariantFirestoreRepository,\r\n ShopMenuFirestoreRepository,\r\n ShopMenuRepository,\r\n ShopSettingsFirestoreRepository,\r\n ShopSettingsRepository,\r\n SubscriptionEditionFirestoreRepository,\r\n SubscriptionFirestoreRepository,\r\n SubscriptionMaterializationFirestoreRepository,\r\n SubscriptionMaterializationRepository,\r\n SubscriptionPaymentFirestoreRepository,\r\n SubscriptionPaymentRepository,\r\n SubscriptionPlanFirestoreRepository,\r\n SubscriptionPlanRepository,\r\n SubscriptionProductFirestoreRepository,\r\n SubscriptionProductRepository,\r\n SubscriptionRepository,\r\n SubscriptionSummaryFirestoreRepository,\r\n SubscriptionSummaryRepository,\r\n UserAddressFirestoreRepository,\r\n UserAddressRepository,\r\n UserBeautyProfileFirestoreRepository,\r\n UserFirestoreRepository,\r\n UserPaymentMethodFirestoreRepository,\r\n UserPaymentMethodRepository,\r\n UserRepository,\r\n VariantRepository,\r\n} from '@infrab4a/connect'\r\n\r\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\r\nimport { ES_CONFIG, FIREBASE_APP_NAME, FIREBASE_OPTIONS } from './consts'\r\nimport { MobileOperationSystemCheckerHelper } from './helpers'\r\nimport { FirebaseAppConfig } from './types'\r\n\r\nexport type FirestoreOptions = Pick<FirestoreConstructorParams<any>, 'firestore' | 'interceptors'>\r\n\r\n@NgModule({\r\n imports: [\r\n AngularElasticSeachModule,\r\n provideFirestore((injector: Injector) => {\r\n const platformId = injector.get(PLATFORM_ID)\r\n\r\n if (isPlatformServer(platformId) || !MobileOperationSystemCheckerHelper.isAppleDevice())\r\n return initializeFirestore(injector.get(FirebaseApp), {\r\n ignoreUndefinedProperties: true,\r\n })\r\n\r\n const firestore = initializeFirestore(injector.get(FirebaseApp), {\r\n experimentalForceLongPolling: true,\r\n ignoreUndefinedProperties: true,\r\n localCache: memoryLocalCache(),\r\n })\r\n\r\n return firestore\r\n }),\r\n ],\r\n providers: [\r\n {\r\n provide: 'FirestoreOptions',\r\n useFactory: (firestore: Firestore, platformId: string): FirestoreOptions => ({\r\n firestore: new ConnectFirestoreService(firestore),\r\n interceptors: {\r\n request: (request: FirestoreIntertceptorRequestParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\r\n if (isPlatformBrowser(platformId)) return request\r\n\r\n const interval = setInterval(() => {}, 100)\r\n\r\n request.interval = interval\r\n\r\n return request\r\n },\r\n response: (\r\n response: any,\r\n request: FirestoreIntertceptorRequestParams<any> & { interval: ReturnType<typeof setTimeout> },\r\n ) => {\r\n if (isPlatformBrowser(platformId)) return response\r\n\r\n clearInterval(request.interval)\r\n\r\n return response\r\n },\r\n },\r\n }),\r\n deps: [Firestore, PLATFORM_ID],\r\n },\r\n {\r\n provide: 'BeautyProfileRepository',\r\n useFactory: (config: FirestoreOptions, userRepository: UserFirestoreRepository): BeautyProfileRepository => {\r\n return new UserBeautyProfileFirestoreRepository(config, userRepository)\r\n },\r\n deps: ['FirestoreOptions', 'UserRepository'],\r\n },\r\n {\r\n provide: 'Buy2WinRepository',\r\n useFactory: (options: FirestoreOptions): Buy2WinRepository => {\r\n return new Buy2WinFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: CategoryFirestoreRepository,\r\n useFactory: (options: FirestoreOptions): CategoryRepository => {\r\n return new CategoryFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'CheckoutRepository',\r\n useFactory: (options: FirestoreOptions): CheckoutRepository => {\r\n return new CheckoutFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'CheckoutSubscriptionRepository',\r\n useFactory: (options: FirestoreOptions): CheckoutSubscriptionRepository => {\r\n return new CheckoutSubscriptionFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'CouponRepository',\r\n useFactory: (options: FirestoreOptions): CouponRepository => {\r\n return new CouponFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'CampaignHashtagRepository',\r\n useFactory: (options: FirestoreOptions): CampaignHashtagRepository => {\r\n return new CampaignHashtagFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'CampaignDashboardRepository',\r\n useFactory: (options: FirestoreOptions): CampaignDashboardRepository => {\r\n return new CampaignDashboardFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'EditionRepository',\r\n useFactory: (\r\n options: FirestoreOptions,\r\n subscriptionRepository: SubscriptionFirestoreRepository,\r\n ): EditionRepository => {\r\n return new SubscriptionEditionFirestoreRepository(options, subscriptionRepository)\r\n },\r\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\r\n },\r\n {\r\n provide: 'HomeRepository',\r\n useFactory: (options: FirestoreOptions): HomeRepository => {\r\n return new HomeFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'LeadRepository',\r\n useFactory: (options: FirestoreOptions): LeadRepository => {\r\n return new LeadFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'LegacyOrderRepository',\r\n useFactory: (options: FirestoreOptions): LegacyOrderRepository => {\r\n return new LegacyOrderFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'ShopMenuRepository',\r\n useFactory: (options: FirestoreOptions): ShopMenuRepository => {\r\n return new ShopMenuFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'OrderRepository',\r\n useFactory: (options: FirestoreOptions): OrderRepository => {\r\n return new OrderFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'PaymentRepository',\r\n useFactory: (options: FirestoreOptions): PaymentRepository => {\r\n return new PaymentFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: ProductFirestoreRepository,\r\n useFactory: (options: FirestoreOptions): ProductRepository => {\r\n return new ProductFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'ShopSettingsRepository',\r\n useFactory: (options: FirestoreOptions): ShopSettingsRepository => {\r\n return new ShopSettingsFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'SubscriptionPaymentRepository',\r\n useFactory: (\r\n options: FirestoreOptions,\r\n subscriptionRepository: SubscriptionFirestoreRepository,\r\n ): SubscriptionPaymentRepository => {\r\n return new SubscriptionPaymentFirestoreRepository(options, subscriptionRepository)\r\n },\r\n deps: ['FirestoreOptions', 'SubscriptionRepository'],\r\n },\r\n {\r\n provide: 'SubscriptionPlanRepository',\r\n useFactory: (options: FirestoreOptions): SubscriptionPlanRepository => {\r\n return new SubscriptionPlanFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'SubscriptionProductRepository',\r\n useFactory: (options: FirestoreOptions): SubscriptionProductRepository => {\r\n return new SubscriptionProductFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'SubscriptionRepository',\r\n useFactory: (options: FirestoreOptions): SubscriptionRepository => {\r\n return new SubscriptionFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'UserRepository',\r\n useFactory: (options: FirestoreOptions): UserRepository => {\r\n return new UserFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'UserAddressRepository',\r\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserAddressRepository => {\r\n return new UserAddressFirestoreRepository(options, userRepository)\r\n },\r\n deps: ['FirestoreOptions', 'UserRepository'],\r\n },\r\n {\r\n provide: 'UserPaymentMethodRepository',\r\n useFactory: (options: FirestoreOptions, userRepository: UserFirestoreRepository): UserPaymentMethodRepository => {\r\n return new UserPaymentMethodFirestoreRepository(options, userRepository)\r\n },\r\n deps: ['FirestoreOptions', 'UserRepository'],\r\n },\r\n {\r\n provide: 'SubscriptionMaterializationRepository',\r\n useFactory: (options: FirestoreOptions): SubscriptionMaterializationRepository => {\r\n return new SubscriptionMaterializationFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: 'SubscriptionSummaryRepository',\r\n useFactory: (options: FirestoreOptions): SubscriptionSummaryRepository => {\r\n return new SubscriptionSummaryFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n {\r\n provide: ProductVariantFirestoreRepository,\r\n useFactory: (options: FirestoreOptions, productRepository: ProductFirestoreRepository): VariantRepository => {\r\n return new ProductVariantFirestoreRepository(options, productRepository)\r\n },\r\n deps: ['FirestoreOptions', ProductFirestoreRepository],\r\n },\r\n {\r\n provide: 'OrderBlockedRepository',\r\n useFactory: (options: FirestoreOptions): OrderBlockedRepository => {\r\n return new OrderBlockedFirestoreRepository(options)\r\n },\r\n deps: ['FirestoreOptions'],\r\n },\r\n ],\r\n})\r\nexport class AngularFirestoreModule {\r\n static initializeApp(\r\n options: {\r\n firebase: FirebaseOptions\r\n elasticSearch: AxiosElasticSearchConfig\r\n },\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularFirestoreModule> {\r\n return {\r\n ngModule: AngularFirestoreModule,\r\n providers: [\r\n { provide: FIREBASE_OPTIONS, useValue: options.firebase },\r\n { provide: FIREBASE_APP_NAME, useValue: nameOrConfig },\r\n { provide: ES_CONFIG, useValue: options.elasticSearch },\r\n ],\r\n }\r\n }\r\n}\r\n","import { isPlatformBrowser } from '@angular/common'\r\nimport { ModuleWithProviders, NgModule, PLATFORM_ID } from '@angular/core'\r\nimport {\r\n CategoryCollectionChildrenHasuraGraphQLRepository,\r\n CategoryFilterHasuraGraphQLRepository,\r\n CategoryFilterRepository,\r\n CategoryHasuraGraphQLRepository,\r\n CategoryRepository,\r\n FilterHasuraGraphQLRepository,\r\n FilterOptionHasuraGraphQLRepository,\r\n FilterOptionRepository,\r\n FilterRepository,\r\n GraphQLParams,\r\n HasuraGraphQLAuthOptions,\r\n ProductHasuraGraphQLRepository,\r\n ProductRepository,\r\n ProductReviewsHasuraGraphQLRepository,\r\n ProductReviewsRepository,\r\n ProductStockNotificationHasuraGraphQLRepository,\r\n ProductStockNotificationRepository,\r\n VariantHasuraGraphQLRepository,\r\n VariantRepository,\r\n WishlistHasuraGraphQLRepository,\r\n} from '@infrab4a/connect'\r\nimport { HASURA_OPTIONS } from './consts'\r\n\r\nexport type HasuraGraphQLOptions = { endpoint: string; credentials: HasuraGraphQLAuthOptions }\r\n\r\n@NgModule({\r\n providers: [\r\n {\r\n provide: 'HasuraConfig',\r\n useFactory: (options: HasuraGraphQLOptions, platformId: string) => ({\r\n endpoint: options.endpoint,\r\n authOptions: options.credentials,\r\n interceptors: {\r\n request: (request: GraphQLParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\r\n if (isPlatformBrowser(platformId)) return request\r\n\r\n const interval = setInterval(() => {}, 100)\r\n\r\n request.interval = interval\r\n\r\n return request\r\n },\r\n response: (response: any, request: GraphQLParams<any> & { interval: ReturnType<typeof setTimeout> }) => {\r\n if (isPlatformBrowser(platformId)) return response\r\n\r\n clearInterval(request.interval)\r\n\r\n return response\r\n },\r\n },\r\n }),\r\n deps: [HASURA_OPTIONS, PLATFORM_ID],\r\n },\r\n {\r\n provide: 'CategoryRepository',\r\n useExisting: CategoryHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: CategoryHasuraGraphQLRepository,\r\n useFactory: (\r\n options: any,\r\n productRepository: ProductHasuraGraphQLRepository,\r\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\r\n ): CategoryRepository => {\r\n return new CategoryHasuraGraphQLRepository(options, productRepository, categoryFilterRepository)\r\n },\r\n deps: ['HasuraConfig', ProductHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\r\n },\r\n {\r\n provide: 'ProductRepository',\r\n useExisting: ProductHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: ProductHasuraGraphQLRepository,\r\n useFactory: (hasuraConfig: any): ProductRepository => {\r\n return new ProductHasuraGraphQLRepository(hasuraConfig)\r\n },\r\n deps: ['HasuraConfig'],\r\n },\r\n {\r\n provide: 'ProductReviewsRepository',\r\n useExisting: ProductReviewsHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: ProductReviewsHasuraGraphQLRepository,\r\n useFactory: (hasuraConfig: any): ProductReviewsRepository => {\r\n return new ProductReviewsHasuraGraphQLRepository(hasuraConfig)\r\n },\r\n deps: ['HasuraConfig'],\r\n },\r\n {\r\n provide: 'VariantRepository',\r\n useExisting: VariantHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: VariantHasuraGraphQLRepository,\r\n useFactory: (hasuraConfig: any): VariantRepository => {\r\n return new VariantHasuraGraphQLRepository(hasuraConfig)\r\n },\r\n deps: ['HasuraConfig'],\r\n },\r\n {\r\n provide: 'ProductStockNotificationRepository',\r\n useExisting: ProductStockNotificationHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: ProductStockNotificationHasuraGraphQLRepository,\r\n useFactory: (hasuraConfig: any): ProductStockNotificationRepository => {\r\n return new ProductStockNotificationHasuraGraphQLRepository(hasuraConfig)\r\n },\r\n deps: ['HasuraConfig'],\r\n },\r\n {\r\n provide: 'CategoryFilterRepository',\r\n useExisting: CategoryFilterHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: CategoryFilterHasuraGraphQLRepository,\r\n useFactory: (options: any): CategoryFilterRepository => {\r\n return new CategoryFilterHasuraGraphQLRepository(options)\r\n },\r\n deps: ['HasuraConfig'],\r\n },\r\n\r\n {\r\n provide: 'FilterOptionRepository',\r\n useExisting: FilterOptionHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: FilterOptionHasuraGraphQLRepository,\r\n useFactory: (options: any): FilterOptionRepository => {\r\n return new FilterOptionHasuraGraphQLRepository(options)\r\n },\r\n deps: ['HasuraConfig'],\r\n },\r\n {\r\n provide: 'FilterRepository',\r\n useExisting: FilterHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: FilterHasuraGraphQLRepository,\r\n useFactory: (\r\n options: any,\r\n filterOptionRepository: FilterOptionHasuraGraphQLRepository,\r\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\r\n ): FilterRepository => {\r\n return new FilterHasuraGraphQLRepository(options, filterOptionRepository, categoryFilterRepository)\r\n },\r\n deps: ['HasuraConfig', FilterOptionHasuraGraphQLRepository, CategoryFilterHasuraGraphQLRepository],\r\n },\r\n {\r\n provide: CategoryCollectionChildrenHasuraGraphQLRepository,\r\n useFactory: (options: any): CategoryCollectionChildrenHasuraGraphQLRepository =>\r\n new CategoryCollectionChildrenHasuraGraphQLRepository(options),\r\n deps: ['HasuraConfig'],\r\n },\r\n {\r\n provide: 'CategoryCollectionChildrenRepository',\r\n useExisting: CategoryCollectionChildrenHasuraGraphQLRepository,\r\n },\r\n {\r\n provide: WishlistHasuraGraphQLRepository,\r\n useFactory: (\r\n options: any,\r\n categoryFilterRepository: CategoryFilterHasuraGraphQLRepository,\r\n ): WishlistHasuraGraphQLRepository => {\r\n return new WishlistHasuraGraphQLRepository(options, categoryFilterRepository)\r\n },\r\n deps: ['HasuraConfig', CategoryFilterHasuraGraphQLRepository],\r\n },\r\n {\r\n provide: 'WishlistRepository',\r\n useExisting: WishlistHasuraGraphQLRepository,\r\n },\r\n ],\r\n})\r\nexport class AngularHasuraGraphQLModule {\r\n static initializeApp(options: {\r\n endpoint: string\r\n credentials: HasuraGraphQLAuthOptions\r\n }): ModuleWithProviders<AngularHasuraGraphQLModule> {\r\n return {\r\n ngModule: AngularHasuraGraphQLModule,\r\n providers: [{ provide: HASURA_OPTIONS, useValue: options }],\r\n }\r\n }\r\n}\r\n","export const STORAGE_BASE_URL = 'STORAGE_BASE_URL'\r\n","import { Injectable } from '@angular/core'\r\nimport cookie from 'js-cookie'\r\nimport { Observable, from, of } from 'rxjs'\r\nimport { map } from 'rxjs/operators'\r\nimport { DataPersistence } from './data-persistence'\r\n\r\n@Injectable()\r\nexport class CookieDataPersistence implements DataPersistence {\r\n get(key: string): Observable<string> {\r\n return of(cookie.get(key))\r\n }\r\n\r\n remove(key: string): Observable<void> {\r\n return of(cookie.remove(key))\r\n }\r\n\r\n set(key: string, value: string): Observable<void> {\r\n return from(cookie.set(key, value)).pipe(map(() => {}))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Auth, User as FirebaseUser, authState, getIdToken } from '@angular/fire/auth'\r\nimport { User, UserRepository } from '@infrab4a/connect'\r\nimport { Observable, combineLatest, from, of } from 'rxjs'\r\nimport { catchError, map, mergeMap } from 'rxjs/operators'\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n constructor(\r\n private readonly angularFireAuth: Auth,\r\n @Inject('UserRepository') private readonly userRepository: UserRepository,\r\n ) {}\r\n\r\n getAuthstate(): Observable<{ user: User; isAnonymous: boolean }> {\r\n const observables: [Observable<FirebaseUser>, Observable<User>] = [this.getFireUser(), this.getUser()]\r\n\r\n return combineLatest(observables).pipe(\r\n map(([fireUser, user]) => ({\r\n user,\r\n isAnonymous: fireUser?.isAnonymous,\r\n })),\r\n )\r\n }\r\n\r\n getUser(): Observable<User> {\r\n return this.getFireUser().pipe(\r\n map((user) => user?.uid),\r\n mergeMap((id) => (id ? from(this.userRepository.get({ id })).pipe(catchError(() => of(null))) : of(null))),\r\n )\r\n }\r\n\r\n getTokenId(): Observable<string> {\r\n return from(getIdToken(this.angularFireAuth.currentUser))\r\n }\r\n\r\n getFireUser(): Observable<FirebaseUser> {\r\n return authState(this.angularFireAuth).pipe(catchError(() => of(null)))\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Category,\r\n CategoryRepository,\r\n Checkout,\r\n CheckoutSubscription,\r\n CheckoutTypes,\r\n Coupon,\r\n CouponRepository,\r\n CouponTypes,\r\n Exclusivities,\r\n LineItem,\r\n Order,\r\n OrderRepository,\r\n Shops,\r\n User,\r\n Where,\r\n} from '@infrab4a/connect'\r\nimport { from, Observable, of } from 'rxjs'\r\nimport { concatMap, map } from 'rxjs/operators'\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CouponService {\r\n constructor(\r\n @Inject('CouponRepository') private readonly couponRepository: CouponRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n @Inject('OrderRepository') private readonly orderRepository: OrderRepository,\r\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\r\n ) {}\r\n\r\n checkCoupon(\r\n nickname: string,\r\n checkoutType: CheckoutTypes,\r\n checkout: Partial<Checkout>,\r\n plan: string,\r\n ): Observable<Coupon> {\r\n return from(\r\n this.couponRepository\r\n .find({\r\n filters: {\r\n nickname: { operator: Where.EQUALS, value: nickname },\r\n active: { operator: Where.EQUALS, value: true },\r\n },\r\n })\r\n .then((result) => result.data[0]),\r\n ).pipe(\r\n concatMap((coupon) => this.couponValidation(coupon, checkoutType)),\r\n concatMap((couponValid: Coupon) => this.couponRulesValidation(couponValid, checkoutType, checkout, plan)),\r\n map((couponValidated: Coupon) => couponValidated as Coupon),\r\n )\r\n }\r\n\r\n private async couponValidation(coupon: Coupon, checkoutType: CheckoutTypes) {\r\n if (!coupon) throw 'Cupom inválido.'\r\n\r\n if (coupon?.beginAt && coupon?.beginAt.getTime() > new Date().getTime()) throw 'Cupom inválido.'\r\n\r\n if (coupon?.expiresIn && coupon?.expiresIn.getTime() < new Date().getTime()) throw 'Cupom expirado.'\r\n\r\n const isInShop = coupon.shopAvailability === Shops.ALL || coupon.shopAvailability === this.defaultShop\r\n\r\n if (!isInShop) throw 'Cupom inválido para loja.'\r\n\r\n const isCheckoutType = coupon.checkoutType === CheckoutTypes.ALL || coupon.checkoutType === checkoutType\r\n\r\n if (!isCheckoutType) throw 'Cupom inválido. Erro de checkout.'\r\n\r\n return coupon\r\n }\r\n\r\n private async couponRulesValidation(\r\n coupon: Coupon,\r\n checkoutType: CheckoutTypes,\r\n checkout: Partial<Checkout>,\r\n plan: string,\r\n ) {\r\n if (checkoutType == CheckoutTypes.SUBSCRIPTION) {\r\n if (coupon.plan && coupon.plan.toUpperCase() !== plan.toUpperCase()) throw 'Cupom inválido para sua assinatura.'\r\n\r\n return coupon\r\n }\r\n\r\n const validUser = this.coupomUserValidation(coupon, checkout?.user)\r\n\r\n if (!validUser) throw 'Usuário não elegível.'\r\n\r\n const couponUseLimits = this.getCouponUseLimits(coupon, checkoutType, checkout.user)\r\n\r\n if (couponUseLimits.firstOrder) {\r\n const ordersUser = await this.getOrdersFromUser(checkout.user.email.toLocaleLowerCase())\r\n if (couponUseLimits.firstOrder && ordersUser.length >= 1) throw 'Limite de uso atingido'\r\n }\r\n\r\n if (!couponUseLimits.unlimited || couponUseLimits.limitedPerUser) {\r\n const orders = await this.getOrdersWithCoupon(coupon)\r\n\r\n if (!couponUseLimits.unlimited && couponUseLimits.total && orders.length >= couponUseLimits.total)\r\n throw 'Limite de uso atingido.'\r\n\r\n if (couponUseLimits.limitedPerUser) {\r\n const ordersWithUser = this.countOrdersWithUser(orders, checkout.user.email)\r\n\r\n if (ordersWithUser > 0) throw 'Limite de uso por usuário atingido.'\r\n }\r\n }\r\n\r\n const hasProductCategories = await this.hasProductCategories(coupon, checkout)\r\n\r\n if (!hasProductCategories) throw 'Seu carrinho não possui produtos elegíveis para desconto.'\r\n\r\n const hasMinSubTotal = await this.hasMinSubTotal(coupon, checkout)\r\n\r\n if (!hasMinSubTotal)\r\n throw `Valor mínimo de ${Intl.NumberFormat('pt-BR', { style: 'currency', currency: 'BRL' }).format(\r\n coupon.minSubTotalValue,\r\n )} não atingido`\r\n\r\n return coupon\r\n }\r\n\r\n public calcDiscountSubscription(coupon: Coupon, checkout: Partial<CheckoutSubscription>): Observable<number> {\r\n let discount = 0\r\n\r\n if (coupon.discount.subscription.type == CouponTypes.ABSOLUTE) discount = coupon.discount.subscription.value\r\n else discount = checkout.subscriptionPlan.recurrencePrice * (coupon.discount.subscription.value / 100)\r\n\r\n return of(discount)\r\n }\r\n\r\n public async calcDiscountShopping(\r\n coupon: Coupon,\r\n checkout: Partial<Checkout>,\r\n ): Promise<{ discount: number; lineItems: LineItem[] }> {\r\n let discountInfo: { discount: number; lineItems: LineItem[] } = null\r\n\r\n if (checkout.user.isSubscriber && coupon.discount.subscriber.value) {\r\n discountInfo = await this.calcDiscountByType(\r\n coupon.discount.subscriber.type,\r\n coupon.discount.subscriber.value,\r\n coupon.productsCategories,\r\n checkout,\r\n )\r\n } else {\r\n discountInfo = await this.calcDiscountByType(\r\n coupon.discount.non_subscriber.type,\r\n coupon.discount.non_subscriber.value,\r\n coupon.productsCategories,\r\n checkout,\r\n )\r\n }\r\n\r\n return { discount: discountInfo.discount, lineItems: discountInfo.lineItems }\r\n }\r\n\r\n private async calcDiscountByType(\r\n type: CouponTypes,\r\n value: number,\r\n categories: string[],\r\n checkout: Partial<Checkout>,\r\n ): Promise<{ discount: number; lineItems: LineItem[] }> {\r\n let discount = 0\r\n\r\n let lineItensElegibleForDiscount = await this.getLineItensEligebleForDiscount(categories, checkout)\r\n\r\n const subTotal = this.calcCheckoutSubtotal(lineItensElegibleForDiscount, checkout.user)\r\n\r\n if (type == CouponTypes.ABSOLUTE) {\r\n discount = value > subTotal ? subTotal : value\r\n } else {\r\n discount = subTotal * (value / 100)\r\n }\r\n\r\n const lineItems = this.calcLineItenDiscount(type, lineItensElegibleForDiscount, value, subTotal)\r\n\r\n return { discount, lineItems }\r\n }\r\n\r\n private async hasMinSubTotal(coupon: Coupon, checkout: Partial<Checkout>): Promise<boolean> {\r\n if (!coupon.minSubTotalValue) return true\r\n\r\n let lineItensDiscount = await this.getLineItensEligebleForDiscount(coupon.productsCategories, checkout)\r\n\r\n const subTotal = this.calcCheckoutSubtotal(lineItensDiscount, checkout.user)\r\n\r\n if (coupon.minSubTotalValue <= subTotal) return true\r\n\r\n return false\r\n }\r\n\r\n private async hasProductCategories(coupon: Coupon, checkout: Partial<Checkout>): Promise<boolean> {\r\n if (!coupon.productsCategories || !coupon.productsCategories.length) {\r\n return true\r\n }\r\n\r\n const couponCategories = await this.getCouponCategoriesId(coupon.productsCategories)\r\n\r\n const hasCategories = checkout.lineItems?.filter((i) => {\r\n if (!i.categories || !i.categories?.length) return true\r\n return i.categories.some((c) => couponCategories.some((cat) => cat == c))\r\n })\r\n\r\n return hasCategories.length ? true : false\r\n }\r\n\r\n private coupomUserValidation(coupon: Coupon, user: User) {\r\n if (!user || coupon.exclusivityType.includes(Exclusivities.ALL_USERS)) return true\r\n\r\n let userTypes: Exclusivities[] = []\r\n\r\n if (\r\n coupon.exclusivityType.includes(Exclusivities.COLLABORATORS) &&\r\n this.emailIsFromCollaborator(user.email.toLocaleLowerCase())\r\n )\r\n userTypes.push(Exclusivities.COLLABORATORS)\r\n\r\n if (\r\n coupon.exclusivityType.includes(Exclusivities.SPECIFIC_USER) &&\r\n coupon.userExclusiveEmail.includes(user.email.toLocaleLowerCase())\r\n )\r\n userTypes.push(Exclusivities.SPECIFIC_USER)\r\n\r\n if (\r\n coupon.exclusivityType.includes(Exclusivities.ACTIVE_SUBSCRIBER) &&\r\n user.isSubscriber &&\r\n user.subscriptionPlan != ''\r\n )\r\n userTypes.push(Exclusivities.ACTIVE_SUBSCRIBER)\r\n\r\n if (\r\n user.isSubscriber &&\r\n user.subscriptionPlan == '' &&\r\n coupon.exclusivityType.includes(Exclusivities.INACTIVE_SUBSCRIBER)\r\n )\r\n userTypes.push(Exclusivities.INACTIVE_SUBSCRIBER)\r\n\r\n if (coupon.exclusivityType.includes(Exclusivities.NON_SUBSCRIBER) && !user.isSubscriber)\r\n userTypes.push(Exclusivities.NON_SUBSCRIBER)\r\n\r\n return coupon.exclusivityType.some((r) => userTypes.includes(r))\r\n }\r\n\r\n private async getCouponCategoriesId(productsCategories: string[]): Promise<Array<String>> {\r\n const couponCategories: Array<String> = []\r\n\r\n for (let index = 0; index < productsCategories.length; index++) {\r\n const category: Category & { firestoreId?: string } = await this.categoryRepository.get({\r\n id: productsCategories[index],\r\n })\r\n\r\n if (category) {\r\n const children = await this.categoryRepository.getChildren(parseInt(productsCategories[index]))\r\n\r\n couponCategories.push(category.id, ...children.map((c) => c.id.toString()))\r\n }\r\n }\r\n\r\n return [...new Set(couponCategories)]\r\n }\r\n\r\n private emailIsFromCollaborator = (userEmail: string): boolean => !!userEmail?.match(/@b4a.com.br/g)\r\n\r\n private async getLineItensEligebleForDiscount(\r\n productsCategories: string[],\r\n checkout: Partial<Checkout>,\r\n ): Promise<LineItem[]> {\r\n let lineItensDiscount = []\r\n const couponCategories = await this.getCouponCategoriesId(productsCategories)\r\n\r\n if (productsCategories && productsCategories.length) {\r\n lineItensDiscount = checkout.lineItems?.filter((i) => {\r\n if (i.categories?.length) {\r\n return i.categories.some((c) => couponCategories.some((cat) => cat == c))\r\n }\r\n return true\r\n })\r\n } else {\r\n lineItensDiscount = checkout.lineItems\r\n }\r\n\r\n return lineItensDiscount\r\n }\r\n\r\n private calcCheckoutSubtotal(lineItens: LineItem[], user: User): number {\r\n return (\r\n lineItens?.reduce(\r\n (acc, curr) =>\r\n user?.isSubscriber && curr.price.subscriberPrice\r\n ? acc + curr.price?.subscriberPrice * curr.quantity\r\n : acc + curr.pricePaid * curr.quantity,\r\n 0,\r\n ) || 0\r\n )\r\n }\r\n\r\n private async getOrdersWithCoupon(coupon: Coupon): Promise<Order[]> {\r\n return await this.orderRepository\r\n .find({\r\n filters: {\r\n coupon: { id: coupon.id },\r\n payment: { status: 'paid' },\r\n },\r\n })\r\n .then((result) => result.data)\r\n }\r\n\r\n private async getOrdersFromUser(email: string) {\r\n return await this.orderRepository\r\n .find({\r\n filters: {\r\n user: { email: { operator: Where.EQUALS, value: email } },\r\n payment: { status: 'paid' },\r\n },\r\n })\r\n .then((result) => result.data)\r\n }\r\n\r\n private countOrdersWithUser(orders: Order[], email: string): number {\r\n return orders.filter((o) => o.user.email == email).length\r\n }\r\n\r\n private getCouponUseLimits(coupon: Coupon, checkoutType: CheckoutTypes, user: User) {\r\n let couponUseLimits: { unlimited?: boolean; total?: number; limitedPerUser?: boolean; firstOrder?: boolean }\r\n if (checkoutType == CheckoutTypes.ECOMMERCE || checkoutType == CheckoutTypes.ALL) {\r\n couponUseLimits = user && user.isSubscriber ? coupon.useLimits.subscriber : coupon.useLimits.non_subscriber\r\n } else {\r\n couponUseLimits = coupon.useLimits.subscription\r\n }\r\n\r\n return couponUseLimits\r\n }\r\n\r\n private calcLineItenDiscount(\r\n type: CouponTypes,\r\n lineItems: LineItem[],\r\n couponDiscount: number,\r\n subTotal: number,\r\n ): LineItem[] {\r\n let lineItemsDiscount: LineItem[] = []\r\n if (type === CouponTypes.ABSOLUTE) {\r\n const couponDiscountMax = couponDiscount > subTotal ? subTotal : couponDiscount\r\n lineItemsDiscount = lineItems.map((item) => {\r\n const totalItemPercentage = item.pricePaid / subTotal\r\n const discountItem = couponDiscountMax * totalItemPercentage\r\n\r\n return {\r\n ...item,\r\n discount: Number(discountItem.toFixed(2)),\r\n } as LineItem\r\n })\r\n } else {\r\n lineItemsDiscount = lineItems.map((item) => {\r\n const discountItem = item.pricePaid * (couponDiscount / 100)\r\n\r\n return {\r\n ...item,\r\n discount: Number(discountItem.toFixed(2)),\r\n } as LineItem\r\n })\r\n }\r\n\r\n return lineItemsDiscount\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Checkout,\r\n CheckoutRepository,\r\n CheckoutTypes,\r\n Coupon,\r\n NotFoundError,\r\n Shops,\r\n User,\r\n UserRepository,\r\n isNil,\r\n pick,\r\n} from '@infrab4a/connect'\r\nimport { Observable, from, of, throwError } from 'rxjs'\r\nimport { concatMap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP, PERSISTENCE_PROVIDER } from '../consts'\r\n\r\nimport { DataPersistence } from '../persistence'\r\nimport { CouponService } from './coupon.service'\r\nimport { RequiredCheckoutData } from './types'\r\n\r\n@Injectable()\r\nexport class CheckoutService {\r\n constructor(\r\n private readonly couponService: CouponService,\r\n @Inject('CheckoutRepository') private readonly checkoutRepository: CheckoutRepository,\r\n @Inject('UserRepository') private readonly userRepository: UserRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n @Inject(PERSISTENCE_PROVIDER) private readonly dataPersistence: DataPersistence,\r\n ) {}\r\n\r\n getCheckout(checkoutData?: RequiredCheckoutData): Observable<Checkout> {\r\n return this.dataPersistence\r\n .get('checkoutId')\r\n .pipe(concatMap((id) => (!isNil(id) ? this.checkoutRepository.get({ id }) : this.createCheckout(checkoutData))))\r\n }\r\n\r\n getUserByCheckout(checkoutId: string): Observable<User> {\r\n return from(this.checkoutRepository.get({ id: checkoutId })).pipe(\r\n concatMap((checkout) =>\r\n checkout?.user?.id ? of(checkout.user) : from(this.userRepository.get({ id: checkout.user.id })),\r\n ),\r\n concatMap((user) => of(user) || throwError(() => new NotFoundError('User is not found'))),\r\n )\r\n }\r\n\r\n updateCheckoutLineItems(checkout: Partial<Checkout>): Observable<Checkout> {\r\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, lineItems: checkout.lineItems })))\r\n }\r\n\r\n updateCheckoutUser(checkout: Partial<Checkout>): Observable<Checkout> {\r\n return from(this.checkoutRepository.update(Checkout.toInstance({ id: checkout.id, user: checkout.user })))\r\n }\r\n\r\n clearCheckoutFromSession(): Observable<void> {\r\n return this.dataPersistence.remove('checkoutId')\r\n }\r\n\r\n calcDiscount(coupon: Coupon) {\r\n return this.getCheckout().pipe(\r\n concatMap(async (checkout) => await this.couponService.calcDiscountShopping(coupon, checkout)),\r\n )\r\n }\r\n\r\n checkCoupon(nickname: string, checkoutType: CheckoutTypes): Observable<Coupon> {\r\n return this.getCheckout().pipe(\r\n concatMap((checkout) => this.couponService.checkCoupon(nickname, CheckoutTypes.ECOMMERCE, checkout, null).pipe()),\r\n )\r\n }\r\n\r\n private async createCheckout(checkoutData?: RequiredCheckoutData): Promise<Checkout> {\r\n const checkout = await this.checkoutRepository.create({\r\n createdAt: new Date(),\r\n ...Checkout.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\r\n shop: checkoutData?.shop || this.defaultShop,\r\n })\r\n\r\n await this.dataPersistence.set('checkoutId', checkout.id).toPromise()\r\n\r\n return checkout\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Buy2Win,\r\n Buy2WinFirestoreRepository,\r\n CategoryRepository,\r\n Checkout,\r\n LineItem,\r\n NotFoundError,\r\n Product,\r\n ProductRepository,\r\n RoundProductPricesHelper,\r\n ShopPrice,\r\n Shops,\r\n User,\r\n Variant,\r\n VariantRepository,\r\n Where,\r\n isNil,\r\n} from '@infrab4a/connect'\r\nimport { Observable, Subject, from, iif, of } from 'rxjs'\r\nimport { catchError, concatMap, map, mergeMap, tap } from 'rxjs/operators'\r\nimport { DEFAULT_SHOP } from '../consts'\r\nimport { AuthService } from './auth.service'\r\nimport { CheckoutService } from './checkout.service'\r\nimport { RequiredCheckoutData } from './types'\r\n\r\nexport type Cart = {\r\n [id: string]: LineItem\r\n}\r\n\r\n@Injectable()\r\nexport class CartService {\r\n private cartSubject: Subject<Cart> = new Subject()\r\n\r\n constructor(\r\n private readonly authService: AuthService,\r\n private readonly checkoutService: CheckoutService,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\r\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\r\n @Inject('VariantRepository') private readonly variantRepository: VariantRepository,\r\n @Inject('Buy2WinRepository') private readonly buy2WinRepository: Buy2WinFirestoreRepository,\r\n ) {}\r\n\r\n addItem(item: LineItem, quantity: number = 1): Observable<Cart> {\r\n return from(this.checkoutService.getCheckout()).pipe(\r\n concatMap(async (checkout) => await this.buildLineItem({ checkout, item, quantity: quantity || 1 })),\r\n mergeMap(({ checkout, lineItem }) => this.updateLineItemInCart(lineItem, quantity || 1, checkout as Checkout)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n decreaseItem(item: LineItem): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n const checkoutItem = checkout.lineItems?.find((lineItem) => lineItem.id === item.id)\r\n\r\n if (!isNil(checkoutItem)) checkoutItem.quantity -= checkoutItem.quantity > 1 ? 1 : 0\r\n\r\n return checkout\r\n }),\r\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n getCart(checkout?: RequiredCheckoutData): Observable<Cart> {\r\n this.buildCartFromCheckout(checkout).subscribe((cart) => this.cartSubject.next(cart))\r\n\r\n return this.cartSubject\r\n }\r\n\r\n /**\r\n * @deprecated The method should not be used\r\n */\r\n getVariantPriceDiscount(item: LineItem): Observable<number> {\r\n return this.authService.getUser().pipe(\r\n concatMap((user) =>\r\n iif(\r\n () => user.isSubscriber && !!item.price.subscriberPrice,\r\n of(item.price.subscriberPrice),\r\n of(item.price.price),\r\n ),\r\n ),\r\n catchError(() => of(item.price.price)),\r\n )\r\n }\r\n\r\n removeItem(item: LineItem): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n const index = checkout.lineItems.findIndex((lineItem) => lineItem.id === item.id)\r\n\r\n if (index >= 0) checkout.lineItems.splice(index, 1)\r\n\r\n return checkout\r\n }),\r\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n updateUserCart(user: User): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n concatMap((checkout) =>\r\n this.checkoutService.updateCheckoutUser(Checkout.toInstance({ ...checkout.toPlain(), user })),\r\n ),\r\n concatMap(\r\n async (checkout) =>\r\n await this.checkoutService\r\n .updateCheckoutLineItems(\r\n Checkout.toInstance({\r\n ...checkout.toPlain(),\r\n lineItems: checkout.lineItems?.length\r\n ? await Promise.all(\r\n checkout.lineItems?.map(async (item) => (await this.buildLineItem({ checkout, item })).lineItem),\r\n )\r\n : [],\r\n }),\r\n )\r\n .toPromise(),\r\n ),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n clearCart(): Observable<Cart> {\r\n return this.checkoutService.getCheckout().pipe(\r\n map((checkout) => {\r\n this.checkoutService.clearCheckoutFromSession()\r\n return checkout\r\n }),\r\n concatMap((oldCheckout) => this.buildCartFromCheckout(oldCheckout)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n private buildCartFromCheckout(checkoutData?: RequiredCheckoutData): Observable<Cart> {\r\n return this.checkoutService.getCheckout(checkoutData).pipe(\r\n map((checkout) => checkout.lineItems),\r\n concatMap((lineItems) => of(this.generateCartObject(lineItems))),\r\n )\r\n }\r\n\r\n private updateLineItemInCart = (lineItem: LineItem, quantity: number, checkout?: Checkout): Observable<Cart> =>\r\n (isNil(checkout) ? this.checkoutService.getCheckout() : of(checkout)).pipe(\r\n concatMap((checkoutLoaded) => {\r\n const items: LineItem[] = []\r\n const index = checkoutLoaded.lineItems?.map((checkoutItem) => checkoutItem.id).indexOf(lineItem.id)\r\n\r\n if (index > -1) {\r\n checkoutLoaded.lineItems[index].quantity += quantity\r\n checkoutLoaded.lineItems[index].pricePaid = lineItem.pricePaid\r\n } else\r\n checkoutLoaded.lineItems = items.concat(\r\n checkoutLoaded.lineItems ? checkoutLoaded.lineItems.concat([lineItem]) : [lineItem],\r\n )\r\n\r\n return this.checkoutService\r\n .updateCheckoutLineItems(checkoutLoaded)\r\n .pipe(map((updatedCheckout) => this.generateCartObject(updatedCheckout.lineItems)))\r\n }),\r\n )\r\n\r\n private generateCartObject = (items: LineItem[]): Cart =>\r\n items?.reduce(\r\n (cart, item) => ({\r\n ...cart,\r\n [item.id]: LineItem.toInstance({\r\n ...(cart[item.id] || item),\r\n quantity: (cart[item.id]?.quantity || 0) + (item.quantity ? item.quantity : 1),\r\n }),\r\n }),\r\n {} as Record<string, LineItem>,\r\n ) || {}\r\n\r\n private buildLineItem = async ({\r\n checkout,\r\n item,\r\n quantity,\r\n }: {\r\n checkout: RequiredCheckoutData\r\n item: LineItem\r\n quantity?: number\r\n }): Promise<{ checkout: Partial<Checkout>; lineItem: LineItem }> => {\r\n const product = await this.getProductData(item.id)\r\n\r\n item.quantity = item?.quantity || checkout?.lineItems?.find((lineItem) => lineItem.id === item.id)?.quantity || 0\r\n\r\n if (this.checkMaxStock(product.stock.quantity, item.quantity || 0, quantity || 0))\r\n throw new Error('Desculpe! Temos apenas ' + product.stock?.quantity + ' em estoque.')\r\n\r\n const image = item.image || item.images?.shift()\r\n const { id, name, EAN, slug, stock, price, weight, sku, type } = item\r\n const isGift = item.isGift || null\r\n const pricePaid = this.getProductPrice({\r\n product: item,\r\n shop: checkout.shop || this.defaultShop,\r\n isSubscriber: checkout.user?.isSubscriber,\r\n })\r\n\r\n RoundProductPricesHelper.roundProductPrices(item)\r\n\r\n return {\r\n checkout,\r\n lineItem: LineItem.toInstance({\r\n id,\r\n name: name ?? product.name,\r\n EAN: EAN ?? product.EAN,\r\n brand: product.brand,\r\n slug: slug ?? product.slug,\r\n sku: sku ?? product.sku,\r\n stock,\r\n price: this.roundPrice(price),\r\n image,\r\n weight: weight ?? product.weight,\r\n quantity: (item.quantity || 0) + (quantity || 0),\r\n pricePaid,\r\n discount: 0,\r\n categories: product.categories ?? [],\r\n isGift: isGift ?? null,\r\n costPrice: product.costPrice ?? 0,\r\n type,\r\n }),\r\n }\r\n }\r\n\r\n private roundPrice(productPrice: ShopPrice): ShopPrice {\r\n const { price, fullPrice, subscriberPrice } = productPrice\r\n return {\r\n ...productPrice,\r\n price: Number(price.toFixed(2)),\r\n fullPrice: Number(fullPrice.toFixed(2)),\r\n ...(subscriberPrice && { subscriberPrice: Number(subscriberPrice.toFixed(2)) }),\r\n }\r\n }\r\n\r\n private async getProductData(productId: string): Promise<Partial<Product>> {\r\n let product: Product\r\n let variant: Variant\r\n\r\n try {\r\n product = await this.productRepository.get({ id: productId })\r\n } catch (error) {\r\n if (!(error instanceof NotFoundError)) throw error\r\n\r\n const { data: variants } = await this.variantRepository.find({ filters: { id: productId } })\r\n\r\n variant = variants.shift()\r\n\r\n if (!variant) throw error\r\n\r\n product = await this.productRepository.get({ id: variant.productId })\r\n }\r\n\r\n return {\r\n ...product.toPlain(),\r\n ...(variant && { ...variant.toPlain() }),\r\n }\r\n }\r\n\r\n private getProductPrice = ({\r\n product,\r\n isSubscriber,\r\n }: {\r\n product: LineItem\r\n shop: Shops\r\n isSubscriber: boolean\r\n }): number => {\r\n const info = product.price\r\n\r\n if (product.isGift) return 0\r\n\r\n return isSubscriber && info.subscriberPrice > 0\r\n ? Number(info.subscriberPrice.toFixed(2))\r\n : Number(info.price.toFixed(2))\r\n }\r\n\r\n private checkMaxStock = (currentStock: number, currentItemQtd: number, quantityToAdd: number) => {\r\n const maxStock = currentStock || 0\r\n const currentItemAmount = currentItemQtd || 0\r\n\r\n return currentItemAmount + quantityToAdd > maxStock\r\n }\r\n\r\n getGifts() {\r\n return this.checkoutService.getCheckout().pipe(\r\n mergeMap(async (checkout) => {\r\n const notGiftItems: LineItem[] = checkout.lineItems ? checkout.lineItems.filter((item) => !item.isGift) : []\r\n\r\n if (!notGiftItems.length) return { ...checkout, lineItems: [] } as Checkout\r\n\r\n const cartTotal = notGiftItems.reduce((a, b) => a + b.pricePaid * b.quantity, 0)\r\n\r\n const campaigns = await this.buy2WinRepository\r\n .find({\r\n filters: {\r\n active: { operator: Where.EQUALS, value: true },\r\n shop: { operator: Where.EQUALS, value: this.defaultShop },\r\n },\r\n })\r\n .then((data) => data.data)\r\n\r\n if (!campaigns.length) return { ...checkout, lineItems: notGiftItems } as Checkout\r\n\r\n const elegibleCampaigns: Buy2Win[] = []\r\n\r\n for (const campaign of campaigns) {\r\n const today = new Date().getTime()\r\n\r\n if (!(campaign.startDate.getTime() <= today) && !(campaign.endDate.getTime() >= today)) continue\r\n\r\n if (campaign.activeCategory) {\r\n const categoriesCampaing = campaign.categories.map((c) => c.id.toString())\r\n const categoriesCampaingFullTree = []\r\n\r\n for (const id of categoriesCampaing) {\r\n const children = await this.categoryRepository.getChildren(parseInt(id))\r\n\r\n categoriesCampaingFullTree.push(id, ...children.map((c) => c.id.toString()))\r\n }\r\n\r\n const categoriesCampaingTree = [...new Set(categoriesCampaingFullTree)]\r\n const filterProductsCategories = checkout.lineItems.filter((l) => {\r\n if (!l.categories || !l.categories?.length) return true\r\n\r\n return l.categories.some((c) => categoriesCampaingTree.some((cat) => cat == c))\r\n })\r\n\r\n if (filterProductsCategories.length) {\r\n const cartTotalCategories = filterProductsCategories.reduce((a, b) => a + b.pricePaid * b.quantity, 0)\r\n\r\n if (cartTotalCategories >= campaign.cartValueMin) elegibleCampaigns.push(campaign)\r\n }\r\n } else {\r\n if (campaign.cartValue && campaign.cartValue > 0) {\r\n if (campaign.cartValue <= cartTotal) elegibleCampaigns.push(campaign)\r\n }\r\n }\r\n }\r\n\r\n if (!elegibleCampaigns.length) return { ...checkout, lineItems: notGiftItems } as Checkout\r\n\r\n const campaingnProducts: Product[][] = []\r\n\r\n for (const campaign of elegibleCampaigns) {\r\n let elegibleProducts = []\r\n\r\n for (const product of campaign.products) {\r\n const { data: productData } = await this.productRepository.find({ filters: { sku: product } })\r\n\r\n if (!productData.length) continue\r\n\r\n const gift = productData.shift()\r\n\r\n if (gift.stock.quantity < 1) continue\r\n\r\n elegibleProducts.push(gift)\r\n }\r\n\r\n campaingnProducts.push(elegibleProducts)\r\n }\r\n\r\n if (!campaingnProducts.length) return { ...checkout, lineItems: notGiftItems } as Checkout\r\n\r\n const gifts = this.giftToLineItems([].concat(...campaingnProducts))\r\n\r\n return { ...checkout, lineItems: notGiftItems.concat(gifts) }\r\n }),\r\n concatMap((checkout) => this.checkoutService.updateCheckoutLineItems(checkout)),\r\n map((checkout) => this.generateCartObject(checkout.lineItems)),\r\n tap((cart) => this.cartSubject.next(cart)),\r\n )\r\n }\r\n\r\n private giftToLineItems(items: Product[]): LineItem[] {\r\n return items.map((item) => {\r\n const { brand, categories, id, name, price, sku, slug, stock, weight, EAN } = item\r\n\r\n const image = item?.miniatures?.length ? item.miniatures[0] : item.images[0]\r\n\r\n return LineItem.toInstance({\r\n brand,\r\n categories,\r\n id: id.toString(),\r\n name,\r\n price,\r\n sku,\r\n slug,\r\n stock,\r\n weight,\r\n EAN,\r\n image,\r\n pricePaid: 0,\r\n quantity: 1,\r\n isGift: true,\r\n })\r\n })\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Category, CategoryRepository, isNil, Product, RepositoryFindFielters, Where } from '@infrab4a/connect'\r\nimport { CategoryStructureAdapter } from './category-structure.adapter'\r\n\r\n@Injectable()\r\nexport class NewCategoryStructureAdapter implements CategoryStructureAdapter {\r\n constructor(@Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository) {}\r\n\r\n async buildProductFilterByCategory(category: Category): Promise<RepositoryFindFielters<Product>> {\r\n const loadedCategory = await this.getCategory(category)\r\n\r\n if (loadedCategory.isCollection) return { id: { operator: Where.IN, value: loadedCategory.products } }\r\n\r\n const categoryIds = [...(await this.getAllCategoriesIdFromCategory(category)), category.id.toString()]\r\n\r\n return {\r\n category: {\r\n id: {\r\n operator: Where.IN,\r\n value: categoryIds,\r\n },\r\n },\r\n }\r\n }\r\n\r\n private async getAllCategoriesIdFromCategory(category: Category): Promise<string[]> {\r\n return this.categoryRepository\r\n .getChildren(+category.id)\r\n .then((categories) => categories.map((category) => category.id.toString()))\r\n }\r\n\r\n private async getCategory(category: Category): Promise<Category> {\r\n const collectionCategory =\r\n category.isCollection ||\r\n (isNil(category.isCollection) && !category.products?.length) ||\r\n category.isWishlist ||\r\n category.brandCategory\r\n\r\n return collectionCategory ? this.categoryRepository.get({ id: category.id }) : category\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport { Category, CategoryRepository, Product, RepositoryFindFielters, Where } from '@infrab4a/connect'\r\nimport { CategoryStructureAdapter } from './category-structure.adapter'\r\n\r\n@Injectable()\r\nexport class OldCategoryStructureAdapter implements CategoryStructureAdapter {\r\n constructor(@Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository) {}\r\n\r\n async buildProductFilterByCategory(category: Category): Promise<RepositoryFindFielters<Product>> {\r\n const productsIds = category.products?.length\r\n ? category.products\r\n : await this.categoryRepository.get({ id: category.id }).then((categoryFound) => categoryFound.products)\r\n\r\n return { id: { operator: Where.IN, value: productsIds } }\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Category,\r\n CategoryRepository,\r\n FindRepositoryParams,\r\n InvalidArgumentError,\r\n Product,\r\n ProductGender,\r\n ProductRepository,\r\n ProductStockNotificationRepository,\r\n ProductsIndex,\r\n RepositoryFindFielters,\r\n RepositoryFindResult,\r\n RepositoryOrderBy,\r\n RoundProductPricesHelper,\r\n Shops,\r\n Where,\r\n set,\r\n} from '@infrab4a/connect'\r\nimport { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts'\r\nimport { CategoryStructureAdapter } from './adapters'\r\nimport { ProductSort } from './types/product-sort.type'\r\n\r\ntype FetchProductsFilters = {\r\n clubDiscount?: number[]\r\n brands?: string[]\r\n prices?: { min?: number; max?: number; subscriberPrice?: boolean }\r\n gender?: ProductGender[]\r\n rate?: number\r\n customOptions?: string[]\r\n tags?: string[]\r\n}\r\n\r\ntype FetchProductsOptions = {\r\n page?: number\r\n perPage?: number\r\n sort?: ProductSort\r\n mainGender?: ProductGender\r\n}\r\n\r\ntype FetchProductsMainParams<T extends Category> = {\r\n category?: T\r\n profile?: string[]\r\n term?: string\r\n}\r\n\r\ntype FetchProductsParams<T extends Category> = FetchProductsOptions &\r\n (\r\n | {\r\n category: FetchProductsMainParams<T>['category']\r\n filters?: FetchProductsFilters & { customOptions?: never }\r\n }\r\n | {\r\n profile: FetchProductsMainParams<T>['profile']\r\n filters?: FetchProductsFilters & { customOptions?: never; tags?: never }\r\n }\r\n | {\r\n term: FetchProductsMainParams<T>['term']\r\n filters?: FetchProductsFilters & { customOptions?: never }\r\n }\r\n )\r\n\r\ntype FetchProductsResponse = {\r\n products: { data: Product[]; total: number }\r\n pages: number\r\n prices: {\r\n price: { min: number; max: number }\r\n subscriberPrice: { min: number; max: number }\r\n }\r\n brands?: string[]\r\n}\r\n\r\n@Injectable()\r\nexport class CatalogService<T extends Category = Category> {\r\n private productsByTerm: Record<string, string[]> = {}\r\n\r\n constructor(\r\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\r\n @Inject('ProductStockNotificationRepository')\r\n private readonly productStockNotificationRepository: ProductStockNotificationRepository,\r\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\r\n @Inject(CATEGORY_STRUCTURE) private readonly categoryStructureAdapter: CategoryStructureAdapter,\r\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\r\n private readonly productIndex: ProductsIndex,\r\n ) {}\r\n\r\n async fetchProducts(options: FetchProductsParams<T>): Promise<FetchProductsResponse> {\r\n const limits = this.buildLimitQuery(options)\r\n\r\n if (this.hasProfile(options) && options.filters?.customOptions)\r\n throw new InvalidArgumentError(`It couldn't filled customOptions when profile is given`)\r\n if (this.hasProfile(options) && options.filters?.tags)\r\n throw new InvalidArgumentError(`It couldn't filled tags when profile is given`)\r\n if (this.hasTerm(options) && options.filters?.customOptions)\r\n throw new InvalidArgumentError(`It couldn't filled customOptions when term is given`)\r\n\r\n return await this.findCatalog(options, limits).then(({ data, count: total, maximum, minimal, distinct }) => ({\r\n products: { data: data.map((product) => RoundProductPricesHelper.roundProductPrices(product)), total },\r\n pages: Math.ceil(total / limits.limit),\r\n prices: {\r\n price: { min: +minimal?.price?.price?.toFixed(2), max: +maximum?.price?.price?.toFixed(2) },\r\n subscriberPrice: {\r\n min: +minimal?.price?.subscriberPrice?.toFixed(2),\r\n max: +maximum?.price?.subscriberPrice?.toFixed(2),\r\n },\r\n },\r\n brands: distinct?.brand,\r\n }))\r\n }\r\n\r\n async addCustomerToStockNotification(shop: Shops, productId: string, name: string, email: string): Promise<void> {\r\n return this.productStockNotificationRepository.addCustomerEmail(shop, productId, name, email)\r\n }\r\n\r\n private async findCatalog(\r\n options: FetchProductsParams<T>,\r\n limits: {\r\n limit?: number\r\n offset?: number\r\n },\r\n ): Promise<RepositoryFindResult<Product>> {\r\n if (this.hasTerm(options) && options.sort === 'most-relevant') {\r\n const productsIds = await this.findCatalogIdsByElasticSearch(options.term)\r\n\r\n return this.findCatalogAndSortByMostRevelantByTerm(productsIds, options, limits)\r\n }\r\n\r\n if (this.hasCategory(options) && options.sort === 'most-relevant') {\r\n const mostRelevant = options.category.isWishlist ? [] : options.category.getMostRelevantByShop(this.shop)\r\n const productsIds = await this.productRepository\r\n .findCatalog({\r\n fields: ['id'],\r\n filters: {\r\n ...(await this.buildMainFilter(options)),\r\n ...this.buildFilterQuery(options?.filters || {}),\r\n },\r\n })\r\n .then((products) => products.data.map((product) => product.id))\r\n\r\n return this.findCatalogAndSortByMostRevelant(mostRelevant, productsIds, options, limits)\r\n }\r\n\r\n const repoParams: FindRepositoryParams<Product> = {\r\n filters: {\r\n ...(await this.buildMainFilter(options)),\r\n ...this.buildFilterQuery(options?.filters || {}),\r\n },\r\n ...(options?.sort ? { orderBy: this.buildSortQuery(options?.sort) } : {}),\r\n limits,\r\n options: {\r\n minimal: ['price'],\r\n maximum: ['price'],\r\n ...(!this.hasCategory(options) ? { distinct: ['brand'] } : {}),\r\n },\r\n }\r\n\r\n if (['biggest-price', 'lowest-price', 'biggest-discount', 'best-rating'].includes(options.sort))\r\n return this.productRepository.findCatalog(repoParams)\r\n\r\n return this.productRepository.findCatalog(\r\n repoParams,\r\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\r\n )\r\n }\r\n\r\n private async buildMainFilter({\r\n category,\r\n profile,\r\n term,\r\n }: FetchProductsMainParams<T>): Promise<RepositoryFindFielters<Product>> {\r\n if (category) return this.categoryStructureAdapter.buildProductFilterByCategory(category)\r\n if (profile) return { tags: { operator: Where.LIKE, value: profile } }\r\n if (term)\r\n return this.productIndex\r\n .search(term, 999, this.shop)\r\n .then((data) => ({ id: { operator: Where.IN, value: data.hits.map(({ _source }) => _source.id) } }))\r\n }\r\n\r\n private async findCatalogAndSortByMostRevelant(\r\n mostRelevants: string[],\r\n productIds: string[],\r\n options: Omit<FetchProductsOptions, 'sort'> & {\r\n term?: FetchProductsMainParams<T>['term']\r\n filters?: FetchProductsFilters & { customOptions?: never }\r\n },\r\n limits: {\r\n limit?: number\r\n offset?: number\r\n },\r\n ): Promise<RepositoryFindResult<Product>> {\r\n const mostRelevantProductsIds = [...new Set(mostRelevants.concat(productIds))]\r\n const totalResult = await this.productRepository.findCatalog(\r\n {\r\n filters: {\r\n id: { operator: Where.IN, value: mostRelevantProductsIds },\r\n ...this.buildFilterQuery(options?.filters || {}),\r\n },\r\n orderBy: this.buildSortQuery('news'),\r\n options: {\r\n minimal: ['price'],\r\n maximum: ['price'],\r\n distinct: ['brand'],\r\n },\r\n },\r\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\r\n )\r\n const firstProducts = totalResult.data.filter((product) => mostRelevants.includes(product.id))\r\n const lastProducts = totalResult.data.filter((product) => !mostRelevants.includes(product.id))\r\n const categoryMostRelevants = firstProducts.concat(lastProducts)\r\n const resultFinal = categoryMostRelevants.slice(limits.offset, limits.offset + limits.limit)\r\n\r\n return {\r\n data: resultFinal,\r\n count: totalResult.count,\r\n maximum: totalResult.maximum,\r\n minimal: totalResult.minimal,\r\n distinct: totalResult.distinct,\r\n }\r\n }\r\n\r\n private async findCatalogAndSortByMostRevelantByTerm(\r\n productIds: string[],\r\n options: Omit<FetchProductsOptions, 'sort'> & {\r\n term?: FetchProductsMainParams<T>['term']\r\n filters?: FetchProductsFilters & { customOptions?: never }\r\n },\r\n limits: {\r\n limit?: number\r\n offset?: number\r\n },\r\n ): Promise<RepositoryFindResult<Product>> {\r\n const totalResult = await this.productRepository.findCatalog(\r\n {\r\n fields: ['id', 'stock'],\r\n filters: {\r\n id: { operator: Where.IN, value: productIds },\r\n ...this.buildFilterQuery(options?.filters || {}),\r\n },\r\n options: {\r\n minimal: ['price'],\r\n maximum: ['price'],\r\n distinct: ['brand'],\r\n },\r\n },\r\n options?.mainGender || this.shop === Shops.MENSMARKET ? 'male' : 'female',\r\n )\r\n\r\n const stockData = totalResult.data.filter((product) => product.stock.quantity > 0)\r\n const stockOut = totalResult.data.filter((product) => product.stock.quantity <= 0)\r\n const productIdsStock = productIds.filter((product) => stockData.some((result) => result.id == product))\r\n const productIdsStockOut = productIds.filter((product) => stockOut.some((result) => result.id == product))\r\n\r\n const limitedProductId = productIdsStock\r\n .concat(productIdsStockOut)\r\n .slice(limits.offset, limits.offset + limits.limit)\r\n\r\n const orderedId = productIds.filter((product) => limitedProductId.includes(product))\r\n const productResult = await this.productRepository.findCatalog({\r\n filters: {\r\n id: { operator: Where.IN, value: orderedId },\r\n },\r\n })\r\n\r\n return {\r\n data: limitedProductId.map((id) => productResult.data.find((product) => product.id === id)).filter(Boolean),\r\n count: totalResult.count,\r\n maximum: totalResult.maximum,\r\n minimal: totalResult.minimal,\r\n distinct: totalResult.distinct,\r\n }\r\n }\r\n\r\n private async findCatalogIdsByElasticSearch(term: string): Promise<string[]> {\r\n if (this.productsByTerm[term]) return this.productsByTerm[term]\r\n\r\n return (this.productsByTerm[term] = await this.productIndex\r\n .search(term, 999, this.shop)\r\n .then(({ hits: products }) => {\r\n const withStock = products.filter(({ _source }) => _source.stock.quantity > 0)\r\n const withOutStock = products.filter(({ _source }) => _source.stock.quantity <= 0)\r\n const sorted = [...withStock, ...withOutStock]\r\n\r\n return [...new Set(sorted.map(({ _source }) => _source.id))]\r\n }))\r\n }\r\n\r\n private buildFilterQuery = ({\r\n clubDiscount,\r\n brands,\r\n prices,\r\n gender,\r\n tags,\r\n rate,\r\n customOptions,\r\n }: FetchProductsFilters): RepositoryFindFielters<Product> => {\r\n const filters = {} as RepositoryFindFielters<Product>\r\n\r\n if (clubDiscount?.length)\r\n set(filters, 'price.subscriberDiscountPercentage', { operator: Where.IN, value: clubDiscount })\r\n if (brands?.length) filters.brand = { operator: Where.IN, value: brands }\r\n if (gender?.length) filters.gender = { operator: Where.IN, value: gender }\r\n if (prices?.min || prices?.max)\r\n set(filters, prices.subscriberPrice ? 'price.subscriberPrice' : 'price.price', [\r\n ...(prices.min ? [{ operator: Where.GTE, value: Math.round(prices.min) }] : []),\r\n ...(prices.max ? [{ operator: Where.LTE, value: Math.ceil(prices.max) }] : []),\r\n ])\r\n if (rate) filters.rate = { operator: Where.GTE, value: rate }\r\n if (tags?.length) filters.tags = { operator: Where.LIKE, value: tags }\r\n if (customOptions?.length) filters.filters = { operator: Where.LIKE, value: customOptions }\r\n\r\n return filters\r\n }\r\n\r\n private buildSortQuery = (sort: ProductSort): RepositoryOrderBy<Product> => {\r\n if (!sort || sort === 'most-relevant') return {}\r\n\r\n if (sort === 'best-sellers')\r\n return {\r\n shoppingCount: 'desc',\r\n rate: 'desc',\r\n stock: 'desc',\r\n name: 'asc',\r\n }\r\n if (sort === 'biggest-price') return { subscriberPrice: 'desc', rate: 'desc', shoppingCount: 'desc' } as any\r\n if (sort === 'lowest-price') return { subscriberPrice: 'asc', rate: 'desc', shoppingCount: 'desc' } as any\r\n if (sort === 'best-rating') return { rate: 'desc', shoppingCount: 'desc', stock: 'desc', name: 'asc' }\r\n if (sort === 'news') return { createdAt: 'desc' }\r\n if (sort === 'biggest-discount')\r\n return { subscriberDiscountPercentage: 'desc', rate: 'desc', shoppingCount: 'desc' } as any\r\n }\r\n\r\n private buildLimitQuery = (options: { page?: number; perPage?: number }): { limit?: number; offset?: number } => {\r\n const limit = options?.perPage || 20\r\n\r\n return {\r\n limit,\r\n offset: ((options?.page || 1) - 1) * limit,\r\n }\r\n }\r\n\r\n private hasProfile = (\r\n options: FetchProductsParams<T>,\r\n ): options is FetchProductsOptions & {\r\n profile: FetchProductsMainParams<T>['profile']\r\n filters?: FetchProductsFilters & { customOptions?: never; tags?: never }\r\n } => 'profile' in options\r\n\r\n private hasTerm = (\r\n options: FetchProductsParams<T>,\r\n ): options is FetchProductsOptions & {\r\n term: FetchProductsMainParams<T>['term']\r\n filters?: FetchProductsFilters & { customOptions?: never }\r\n } => 'term' in options\r\n\r\n private hasCategory = (\r\n options: FetchProductsParams<T>,\r\n ): options is FetchProductsOptions & {\r\n category: FetchProductsMainParams<T>['category']\r\n filters?: FetchProductsFilters & { customOptions?: never }\r\n } => 'category' in options\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Category,\r\n CategoryFilterRepository,\r\n CategoryRepository,\r\n Filter,\r\n ProductGender,\r\n ProductRepository,\r\n Shops,\r\n} from '@infrab4a/connect'\r\nimport { CATEGORY_STRUCTURE, DEFAULT_SHOP } from '../../consts'\r\nimport { CategoryStructureAdapter } from './adapters'\r\n\r\ntype FetchBrandsOptions = {\r\n mainGender?: ProductGender\r\n shop?: Shops\r\n}\r\n\r\n@Injectable()\r\nexport class CategoryService {\r\n constructor(\r\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\r\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\r\n @Inject('CategoryFilterRepository') private readonly categoryFilterRepository: CategoryFilterRepository,\r\n @Inject(CATEGORY_STRUCTURE) private readonly categoryStructureAdapter: CategoryStructureAdapter,\r\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\r\n ) {}\r\n\r\n async fetchBrands(category: Category, options?: FetchBrandsOptions): Promise<Category[]> {\r\n const brands = await this.productRepository\r\n .findCatalog(\r\n {\r\n filters: await this.categoryStructureAdapter.buildProductFilterByCategory(category),\r\n fields: ['brand'],\r\n },\r\n options?.mainGender ? options?.mainGender : this.shop === Shops.MENSMARKET ? 'male' : 'female',\r\n )\r\n .then(({ data }) =>\r\n Object.keys(data.map((product) => product.brand).reduce((brands, brand) => ({ ...brands, [brand]: true }), {})),\r\n )\r\n\r\n return this.categoryRepository\r\n .find({ filters: { brandCategory: true, shop: options?.shop || this.shop }, orderBy: { name: 'asc' } })\r\n .then(({ data }) => data.filter((category) => brands.includes(category.conditions.brand)))\r\n }\r\n\r\n async fetchFilterOptions(category: Category): Promise<Filter[]> {\r\n return await this.categoryFilterRepository\r\n .find({ filters: { categoryId: +category.id } })\r\n .then(({ data }) => data.map((categoryFilter) => categoryFilter.filter))\r\n }\r\n}\r\n","export enum ProductSorts {\r\n MOST_RELEVANT = 'most-relevant',\r\n BEST_SELLER = 'best-sellers',\r\n BIGGEST_PRICE = 'biggest-price',\r\n LOWEST_PRICE = 'lowest-price',\r\n BIGGEST_DISCOUNT = 'biggest-discount',\r\n BEST_RATING = 'best-rating',\r\n NEWS = 'news',\r\n}\r\n","import { Type } from 'class-transformer'\r\n\r\nimport { Category } from '@infrab4a/connect'\r\n\r\nexport class CategoryWithTree extends Category {\r\n @Type(() => CategoryWithTree)\r\n children?: CategoryWithTree[]\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n CategoryFilterRepository,\r\n CategoryRepository,\r\n PersonType,\r\n PersonTypes,\r\n ProductRepository,\r\n ProductsIndex,\r\n ProductStockNotificationRepository,\r\n Shops,\r\n Wishlist,\r\n WishlistRepository,\r\n} from '@infrab4a/connect'\r\nimport { DEFAULT_SHOP } from '../../consts'\r\nimport { NewCategoryStructureAdapter } from './adapters'\r\nimport { CatalogService } from './catalog.service'\r\nimport { CategoryService } from './category.service'\r\n\r\n@Injectable()\r\nexport class WishlistService {\r\n private catalogService: CatalogService\r\n private categoryService: CategoryService\r\n\r\n constructor(\r\n @Inject('WishlistRepository') private readonly wishlistRepository: WishlistRepository,\r\n @Inject(DEFAULT_SHOP) private readonly shop: Shops,\r\n @Inject('ProductRepository') productRepository: ProductRepository,\r\n @Inject('CategoryFilterRepository') categoryFilterRepository: CategoryFilterRepository,\r\n @Inject('CategoryRepository') categoryRepository: CategoryRepository,\r\n @Inject('ProductStockNotificationRepository')\r\n productStockNotificationRepository: ProductStockNotificationRepository,\r\n productIndex: ProductsIndex,\r\n ) {\r\n const categoryStructureAdapter = new NewCategoryStructureAdapter(wishlistRepository)\r\n\r\n this.catalogService = new CatalogService<Wishlist>(\r\n productRepository,\r\n productStockNotificationRepository,\r\n categoryRepository,\r\n categoryStructureAdapter,\r\n shop,\r\n productIndex,\r\n )\r\n this.categoryService = new CategoryService(\r\n productRepository,\r\n categoryRepository,\r\n categoryFilterRepository,\r\n categoryStructureAdapter,\r\n shop,\r\n )\r\n }\r\n\r\n getCatalogService() {\r\n return this.catalogService\r\n }\r\n\r\n getCategoryService() {\r\n return this.categoryService\r\n }\r\n\r\n async create({\r\n personId,\r\n title,\r\n description,\r\n published,\r\n userFullName,\r\n userPhoto,\r\n theme,\r\n bannerUrl,\r\n personType,\r\n personIsSubscriber,\r\n }: {\r\n personId: string\r\n title: string\r\n description: string\r\n published: boolean\r\n userFullName: string\r\n userPhoto?: string\r\n theme?: string\r\n bannerUrl?: string\r\n personType?: PersonType\r\n personIsSubscriber?: boolean\r\n }): Promise<Wishlist> {\r\n const data = {\r\n slug: '',\r\n name: title,\r\n description,\r\n metadatas: [\r\n {\r\n shop: this.shop,\r\n title: `${userFullName} - ${title}`,\r\n description: `${userFullName} - ${description}`,\r\n },\r\n ],\r\n shop: this.shop,\r\n shops: [this.shop],\r\n personId,\r\n personName: userFullName,\r\n personPhoto: userPhoto,\r\n brandCategory: false,\r\n published,\r\n theme,\r\n bannerUrl,\r\n personType: personType ?? PersonTypes.NONE,\r\n personIsSubscriber: personIsSubscriber ?? false,\r\n }\r\n\r\n const newWishlist = await this.wishlistRepository.create(data)\r\n\r\n await this.wishlistRepository.update({ id: newWishlist.id, slug: newWishlist.id })\r\n\r\n return Wishlist.toInstance({ ...newWishlist.toPlain(), slug: newWishlist.id })\r\n }\r\n\r\n update({\r\n id,\r\n title,\r\n description,\r\n published,\r\n userFullName,\r\n userPhoto,\r\n theme,\r\n bannerUrl,\r\n personType,\r\n personIsSubscriber,\r\n }: {\r\n id: string\r\n title: string\r\n description: string\r\n published: boolean\r\n userFullName: string\r\n userPhoto?: string\r\n theme?: string\r\n bannerUrl?: string\r\n personType?: PersonType\r\n personIsSubscriber?: boolean\r\n }): Promise<Wishlist> {\r\n const data = {\r\n id,\r\n name: title,\r\n description,\r\n published,\r\n metadatas: [\r\n {\r\n shop: this.shop,\r\n title: `${userFullName} - ${title}`,\r\n description: `${userFullName} - ${description}`,\r\n },\r\n ],\r\n personName: userFullName,\r\n personPhoto: userPhoto,\r\n theme,\r\n bannerUrl,\r\n personType: personType ?? PersonTypes.NONE,\r\n personIsSubscriber: personIsSubscriber ?? false,\r\n }\r\n\r\n return this.wishlistRepository.update(data)\r\n }\r\n\r\n delete(wishlistId: string): Promise<void> {\r\n return this.wishlistRepository.delete({ id: wishlistId })\r\n }\r\n\r\n getWishlistBySlug(slug: string): Promise<Wishlist> {\r\n const [id] = slug.split('-')\r\n\r\n if (+id) return this.wishlistRepository.get({ id })\r\n\r\n return this.wishlistRepository.getWishlistBySlug(slug)\r\n }\r\n\r\n getWishlistsByPerson(personId: string): Promise<Wishlist[]> {\r\n return this.wishlistRepository.getWishlistByPerson(personId)\r\n }\r\n\r\n async addProduct(wishlistId: string, productId: string): Promise<Wishlist> {\r\n const wishlist = await this.wishlistRepository.get({ id: wishlistId })\r\n const hasProduct = wishlist.products.some((p) => p == productId)\r\n\r\n if (!hasProduct) {\r\n wishlist.products = [...wishlist.products, productId]\r\n return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products })\r\n }\r\n\r\n return wishlist\r\n }\r\n\r\n async removeProduct(wishlistId: string, productId: string): Promise<Wishlist> {\r\n const wishlist = await this.wishlistRepository.get({ id: wishlistId })\r\n const productIndex = wishlist.products.findIndex((p) => p == productId)\r\n\r\n if (productIndex != -1) {\r\n wishlist.products.splice(productIndex, 1)\r\n\r\n if (!wishlist.products.length)\r\n return this.wishlistRepository.update({ id: wishlistId, products: { action: 'remove' } })\r\n\r\n return this.wishlistRepository.update({ id: wishlistId, products: wishlist.products })\r\n }\r\n\r\n return wishlist\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n CheckoutSubscription,\r\n CheckoutSubscriptionRepository,\r\n CheckoutTypes,\r\n Coupon,\r\n isNil,\r\n pick,\r\n} from '@infrab4a/connect'\r\nimport { Observable } from 'rxjs'\r\nimport { concatMap } from 'rxjs/operators'\r\nimport { RequiredCheckoutSubscriptionData } from './types'\r\n\r\nimport { PERSISTENCE_PROVIDER } from '../consts'\r\nimport { DataPersistence } from '../persistence'\r\nimport { CouponService } from './coupon.service'\r\n\r\n@Injectable()\r\nexport class CheckoutSubscriptionService {\r\n constructor(\r\n @Inject('CheckoutSubscriptionRepository')\r\n private readonly checkoutSubscriptionRepository: CheckoutSubscriptionRepository,\r\n @Inject(PERSISTENCE_PROVIDER) private readonly dataPersistence: DataPersistence,\r\n private readonly couponService: CouponService,\r\n ) {}\r\n\r\n getCheckoutSubscription(checkoutData?: RequiredCheckoutSubscriptionData): Observable<CheckoutSubscription> {\r\n return this.dataPersistence\r\n .get('checkoutSubscriptionId')\r\n .pipe(\r\n concatMap((id) =>\r\n !isNil(id) ? this.checkoutSubscriptionRepository.get({ id }) : this.createCheckoutSubscription(checkoutData),\r\n ),\r\n )\r\n }\r\n\r\n clearCheckoutSubscriptionFromSession(): Observable<void> {\r\n return this.dataPersistence.remove('checkoutSubscriptionId')\r\n }\r\n\r\n checkCoupon(nickname: string, userEmail: string): Observable<Coupon> {\r\n return this.getCheckoutSubscription().pipe(\r\n concatMap((checkout) =>\r\n this.couponService\r\n .checkCoupon(nickname, CheckoutTypes.SUBSCRIPTION, checkout, checkout.subscriptionPlan.name)\r\n .pipe(),\r\n ),\r\n )\r\n }\r\n\r\n calcDiscountSubscription(coupon: Coupon) {\r\n return this.getCheckoutSubscription().pipe(\r\n concatMap((checkout) => this.couponService.calcDiscountSubscription(coupon, checkout).pipe()),\r\n )\r\n }\r\n\r\n private async createCheckoutSubscription(\r\n checkoutData?: RequiredCheckoutSubscriptionData,\r\n ): Promise<CheckoutSubscription> {\r\n const checkout = await this.checkoutSubscriptionRepository.create({\r\n createdAt: new Date(),\r\n ...CheckoutSubscription.toInstance(pick(checkoutData, ['user', 'shop'])).toPlain(),\r\n })\r\n\r\n await this.dataPersistence.set('checkoutSubscriptionId', checkout.id).toPromise()\r\n\r\n return checkout\r\n }\r\n}\r\n","export class UtilHelper {\r\n static createSlug(name: string): string {\r\n return name\r\n .toLowerCase()\r\n .replace(/\\s+/g, '-') // Replace spaces with -\r\n .replace(/[ãàáäâ]/g, 'a') // Replace spaces with -\r\n .replace(/[ẽèéëê]/g, 'e') // Replace spaces with -\r\n .replace(/[ìíïî]/g, 'i') // Replace spaces with -\r\n .replace(/[õòóöô]/g, 'o') // Replace spaces with -\r\n .replace(/[ùúüû]/g, 'u') // Replace spaces with -\r\n .replace(/[ñ]/g, 'n') // Replace spaces with -\r\n .replace(/[ç]/g, 'c') // Replace spaces with -\r\n .replace(/[&]/g, 'and') // Replace spaces with -\r\n .replace(/[^\\w\\-]+/g, '') // Remove all non-word chars\r\n .replace(/\\-\\-+/g, '-') // Replace multiple - with single -\r\n }\r\n}\r\n","import { Inject, Injectable } from '@angular/core'\r\nimport {\r\n Banner,\r\n Category,\r\n CategoryRepository,\r\n Home,\r\n HomeCategoryGroup,\r\n HomeData,\r\n HomeRepository,\r\n Product,\r\n ProductRepository,\r\n RequiredArgumentError,\r\n Shops,\r\n Where,\r\n add,\r\n pick,\r\n} from '@infrab4a/connect'\r\nimport { Observable, forkJoin, from, of, throwError } from 'rxjs'\r\nimport { concatMap, map, tap } from 'rxjs/operators'\r\n\r\nimport { DEFAULT_SHOP } from '../consts'\r\n\r\ntype HomeConfigurationId = 'glamshop' | 'mens_market'\r\ntype BannerType = 'brand' | 'buyToWin' | 'block' | 'blog'\r\n\r\n@Injectable()\r\nexport class HomeShopService {\r\n private homeConfiguration: Home\r\n\r\n private get homeId(): HomeConfigurationId {\r\n if (this.defaultShop === Shops.GLAMSHOP) return 'glamshop'\r\n if (this.defaultShop === Shops.MENSMARKET) return 'mens_market'\r\n\r\n return null\r\n }\r\n\r\n constructor(\r\n @Inject('CategoryRepository') private readonly categoryRepository: CategoryRepository,\r\n @Inject('HomeRepository') private readonly homeRepository: HomeRepository,\r\n @Inject('ProductRepository') private readonly productRepository: ProductRepository,\r\n @Inject(DEFAULT_SHOP) private readonly defaultShop: Shops,\r\n ) {}\r\n\r\n getHomeData(): Observable<Home> {\r\n return this.getHomeConfiguration().pipe(\r\n map((home) => (home?.data?.expiresAt > new Date() ? home : null)),\r\n concatMap((home) =>\r\n home\r\n ? of(home)\r\n : forkJoin([\r\n this.getDiscoverProducts(this.gender),\r\n this.getFeaturedProducts(this.gender),\r\n this.getVerticalProducts(this.gender),\r\n ]).pipe(\r\n map(([discoverProducts, featuredProducts, verticalProducts]) => ({\r\n discoverProducts,\r\n featuredProducts,\r\n verticalProducts,\r\n })),\r\n concatMap((data) => this.saveHomeData(data)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n getBanners(type: BannerType): Observable<Banner[]> {\r\n return this.getHomeConfiguration().pipe(\r\n map((home) => {\r\n if (type === 'brand') return home.brandsCarousel\r\n if (type === 'buyToWin') return [home.buyToWinBanner]\r\n if (type === 'block') return home.blockBanners\r\n if (type === 'blog') return [home.blogBanner]\r\n\r\n return []\r\n }),\r\n )\r\n }\r\n\r\n getMinValueForFreeShipping(): Observable<number> {\r\n return this.getHomeConfiguration().pipe(map((home) => home.minValueForFreeShipping))\r\n }\r\n\r\n private getDiscoverProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n from(this.categoryRepository.getCategoriesForHome(home.discoverCategories, undefined, gender)).pipe(\r\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getFeaturedProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n from(this.categoryRepository.getCategoriesForHome(home.featuredCategories, undefined, gender)).pipe(\r\n map((groups) => groups.map(this.buildCategoryGroupWithRequiredData)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getVerticalProducts(gender?: string): Observable<{ category: Category; products: Product[] }[]> {\r\n return this.getHomeConfiguration().pipe(\r\n concatMap((home) =>\r\n forkJoin(\r\n home.verticalCarousels.filter(Boolean).map((id) =>\r\n from(this.categoryRepository.get({ id })).pipe(\r\n concatMap((category) =>\r\n from(\r\n this.productRepository.find({\r\n filters: {\r\n categories: { operator: Where.IN, value: [category.id] },\r\n ...(gender ? { tags: { operator: Where.IN, value: [gender] } } : {}),\r\n },\r\n limits: { limit: 12 },\r\n }),\r\n ).pipe(map((products) => ({ category, products }))),\r\n ),\r\n map(({ category, products }) => ({ category, products: products.data })),\r\n map(this.buildCategoryGroupWithRequiredData),\r\n ),\r\n ),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private getHomeConfiguration(): Observable<Home> {\r\n return of(this.homeConfiguration).pipe(\r\n concatMap((home) =>\r\n home\r\n ? of(home)\r\n : !this.homeId\r\n ? throwError(new RequiredArgumentError(['homeId']))\r\n : from(this.homeRepository.get({ id: this.homeId })).pipe(\r\n tap((homeLoaded) => (this.homeConfiguration = homeLoaded)),\r\n ),\r\n ),\r\n )\r\n }\r\n\r\n private saveHomeData(homeData: HomeData): Observable<Home> {\r\n const data = {\r\n createdAt: new Date(),\r\n expiresAt: add(new Date(), { hours: 1 }),\r\n data: homeData,\r\n }\r\n\r\n return from(\r\n this.homeRepository.update({\r\n id: this.homeId,\r\n data,\r\n }),\r\n ).pipe(\r\n tap(() => (this.homeConfiguration.data = data)),\r\n map(() => this.homeConfiguration),\r\n )\r\n }\r\n\r\n private buildCategoryGroupWithRequiredData = (group: HomeCategoryGroup): HomeCategoryGroup => ({\r\n category: Category.toInstance(pick(group?.category?.toPlain() || {}, ['id', 'name', 'slug', 'conditions'])),\r\n products:\r\n group?.products?.map((product) =>\r\n Product.toInstance(\r\n pick(product?.toPlain() || {}, [\r\n 'id',\r\n 'price',\r\n 'reviews',\r\n 'hasVariants',\r\n 'slug',\r\n 'sku',\r\n 'stock',\r\n 'costPrice',\r\n 'images',\r\n 'miniatures',\r\n 'name',\r\n 'weight',\r\n 'rate',\r\n 'type',\r\n 'brand',\r\n ]),\r\n ),\r\n ) || [],\r\n })\r\n\r\n private get gender() {\r\n return this.homeId === 'mens_market' ? 'masculino' : undefined\r\n }\r\n}\r\n","import { Injectable, Inject } from '@angular/core'\r\nimport { doc, Firestore, docSnapshots } from '@angular/fire/firestore'\r\nimport { Order, OrderFirestoreRepository } from '@infrab4a/connect'\r\nimport { Subject } from 'rxjs'\r\nimport { map } from 'rxjs/operators'\r\n\r\n@Injectable()\r\nexport class OrderService {\r\n orderSubject = new Subject<Order>()\r\n\r\n constructor(\r\n private readonly angularFirestore: Firestore,\r\n @Inject('OrderRepository') private readonly orderRepository: OrderFirestoreRepository,\r\n ) {}\r\n\r\n getOrder(id: string): Subject<Order> {\r\n docSnapshots(doc(this.angularFirestore, `${this.orderRepository.collectionName}/${id}`))\r\n .pipe(map((doc) => Order.toInstance(doc.data())))\r\n .subscribe((doc) => this.orderSubject.next(doc))\r\n\r\n return this.orderSubject\r\n }\r\n}\r\n","import { HttpClient } from '@angular/common/http'\r\nimport { Inject, Injectable } from '@angular/core'\r\nimport { Home, Shops } from '@infrab4a/connect'\r\nimport { Observable, combineLatest } from 'rxjs'\r\nimport { map } from 'rxjs/operators'\r\n\r\nimport { BACKEND_URL } from '../consts'\r\nimport { HomeShopService } from './home-shop.service'\r\nimport { ShippingMethodResponse } from './types/shipping-methods.type'\r\n\r\n@Injectable()\r\nexport class ShippingService {\r\n constructor(\r\n private http: HttpClient,\r\n @Inject(BACKEND_URL) private apiUrl: string,\r\n private homeService: HomeShopService,\r\n ) {}\r\n\r\n public getShippingMethods(\r\n shop: string,\r\n zip: string,\r\n weightGrams: number,\r\n totalPrice: number,\r\n personId: string,\r\n subscriptionPlan?: string,\r\n ): Observable<Array<ShippingMethodResponse & { ShippingCompanyName?: string }>> {\r\n return combineLatest([\r\n this.homeService.getHomeData(),\r\n this.http.get(\r\n `${this.apiUrl}open/checkshippingcompany?personId=${personId}&postalCode=${zip}&weightGrams=${weightGrams}`,\r\n ),\r\n ]).pipe(\r\n map(([datas, shippingMethodsResponse]: [Home & Partial<{ sameDayNotAvaliable: any }>, any]) => {\r\n let shippingMethods = shippingMethodsResponse.result as (ShippingMethodResponse & {\r\n ShippingCompanyName?: string\r\n })[]\r\n\r\n if (!shippingMethods.length) return []\r\n\r\n shippingMethods = shippingMethods.map((shippingMethod) => {\r\n if (shippingMethod.ShippingCompanyName == 'Same Day EG') shippingMethod.ShippingCompanyName = 'Same Day'\r\n\r\n return shippingMethod\r\n })\r\n\r\n const datasSameDayNotAvaliable = datas.sameDayNotAvaliable\r\n\r\n if (this.isHolidays(datasSameDayNotAvaliable)) {\r\n shippingMethods = shippingMethods.filter((method) => method.serviceName !== 'Same Day')\r\n }\r\n\r\n if (totalPrice >= 200) {\r\n shippingMethods = shippingMethods.map((s) => {\r\n if (s.serviceName !== 'Same Day') return { ...s, totalPrice: 0 }\r\n else return s\r\n })\r\n }\r\n\r\n if (shop == Shops.GLAMSHOP) return shippingMethods\r\n\r\n if (this.isFreeShippingBySubscription(shop, subscriptionPlan)) {\r\n shippingMethods = shippingMethods.map((s) => {\r\n if (s.serviceName == 'Same Day') return { ...s, totalPrice: s.totalPrice / 2 }\r\n else return { ...s, totalPrice: 0 }\r\n })\r\n }\r\n\r\n if (this.isHalfShippingBySubscription(shop, subscriptionPlan)) {\r\n shippingMethods = shippingMethods.map((s) => {\r\n return { ...s, totalPrice: s.totalPrice / 2 }\r\n })\r\n }\r\n\r\n return shippingMethods\r\n }),\r\n )\r\n }\r\n\r\n private isFreeShippingBySubscription(shop: string, subscriptionPlan: string): boolean {\r\n if (!subscriptionPlan) return false\r\n\r\n if (shop == Shops.MENSMARKET && subscriptionPlan == 'SELECT') return true\r\n\r\n return false\r\n }\r\n\r\n private isHalfShippingBySubscription(shop: string, subscriptionPlan: string) {\r\n if (!subscriptionPlan) return false\r\n\r\n if (shop == Shops.MENSMARKET && subscriptionPlan == 'PRIME') {\r\n return true\r\n }\r\n\r\n return false\r\n }\r\n\r\n private isHolidays(datas: any): boolean {\r\n const today = new Date()\r\n\r\n for (const key in datas) {\r\n let start = new Date(`${today.getFullYear()}-${datas[key].beginDate}`)\r\n let end = new Date(`${today.getFullYear()}-${datas[key].endDate}`)\r\n\r\n if (start > end) end = new Date(`${today.getFullYear() + 1}-${datas[key].endDate}`)\r\n\r\n if (today >= start && today <= end) return true\r\n }\r\n\r\n return false\r\n }\r\n}\r\n","import { Injector, ModuleWithProviders, NgModule, Type } from '@angular/core'\r\nimport { FirebaseApp, FirebaseOptions, getApp, initializeApp, provideFirebaseApp } from '@angular/fire/app'\r\nimport { Storage, getStorage, provideStorage } from '@angular/fire/storage'\r\nimport {\r\n AxiosElasticSearchConfig,\r\n FileUploaderService,\r\n FirebaseFileUploaderService,\r\n Shops,\r\n UpdateUserImage,\r\n UserRepository,\r\n isNil,\r\n} from '@infrab4a/connect'\r\nimport { AngularElasticSeachModule } from './angular-elastic-search.module'\r\nimport { AngularFirebaseAuthModule } from './angular-firebase-auth.module'\r\nimport { AngularFirestoreModule } from './angular-firestore.module'\r\nimport { AngularHasuraGraphQLModule, HasuraGraphQLOptions } from './angular-hasura-graphql.module'\r\nimport {\r\n BACKEND_URL,\r\n CATEGORY_STRUCTURE,\r\n DEFAULT_SHOP,\r\n ES_CONFIG,\r\n FIREBASE_APP_NAME,\r\n FIREBASE_OPTIONS,\r\n HASURA_OPTIONS,\r\n PERSISTENCE_PROVIDER,\r\n} from './consts'\r\nimport { STORAGE_BASE_URL } from './consts/storage-base-url.const'\r\nimport { CookieDataPersistence, DataPersistence } from './persistence'\r\nimport {\r\n AuthService,\r\n CartService,\r\n CatalogService,\r\n CategoryService,\r\n CheckoutService,\r\n CheckoutSubscriptionService,\r\n CouponService,\r\n HomeShopService,\r\n OrderService,\r\n ShippingService,\r\n WishlistService,\r\n} from './services'\r\nimport { NewCategoryStructureAdapter, OldCategoryStructureAdapter } from './services/catalog/adapters'\r\nimport { FirebaseAppConfig } from './types'\r\n\r\n@NgModule({\r\n imports: [\r\n provideFirebaseApp((injector: Injector) => {\r\n const appName = injector.get<string>(FIREBASE_APP_NAME) || '[DEFAULT]'\r\n\r\n try {\r\n return getApp(appName)\r\n } catch (error) {\r\n return initializeApp(injector.get(FIREBASE_OPTIONS), appName)\r\n }\r\n }),\r\n provideStorage((injector: Injector) => getStorage(injector.get(FirebaseApp))),\r\n AngularElasticSeachModule,\r\n AngularFirebaseAuthModule,\r\n AngularFirestoreModule,\r\n AngularHasuraGraphQLModule,\r\n ],\r\n providers: [\r\n AuthService,\r\n CartService,\r\n CatalogService,\r\n CategoryService,\r\n CheckoutService,\r\n CheckoutSubscriptionService,\r\n CouponService,\r\n HomeShopService,\r\n OrderService,\r\n ShippingService,\r\n WishlistService,\r\n {\r\n provide: UpdateUserImage,\r\n useFactory: (userRepository: UserRepository, fileUploader: FileUploaderService) => {\r\n return new UpdateUserImage(userRepository, fileUploader)\r\n },\r\n deps: ['UserRepository', 'FileUploaderService'],\r\n },\r\n {\r\n provide: 'FileUploaderService',\r\n useFactory: (storage: Storage, baseUrl: string) => {\r\n return new FirebaseFileUploaderService(storage, baseUrl)\r\n },\r\n deps: [Storage, STORAGE_BASE_URL],\r\n },\r\n ],\r\n})\r\nexport class AngularConnectModule {\r\n static initializeApp(\r\n defaultShop: Shops,\r\n options: {\r\n firebase: FirebaseOptions\r\n elasticSearch: AxiosElasticSearchConfig\r\n hasura: HasuraGraphQLOptions\r\n backendUrl: string\r\n oldCategoryStructure?: boolean\r\n storageBaseUrl?: string\r\n persistenceProvider?: Type<DataPersistence>\r\n },\r\n nameOrConfig?: string | FirebaseAppConfig,\r\n ): ModuleWithProviders<AngularConnectModule> {\r\n return {\r\n ngModule: AngularConnectModule,\r\n providers: [\r\n {\r\n provide: CATEGORY_STRUCTURE,\r\n useClass:\r\n isNil(options?.oldCategoryStructure) || options?.oldCategoryStructure\r\n ? OldCategoryStructureAdapter\r\n : NewCategoryStructureAdapter,\r\n },\r\n { provide: PERSISTENCE_PROVIDER, useClass: options?.persistenceProvider || CookieDataPersistence },\r\n ...(isNil(defaultShop) ? [] : [{ provide: DEFAULT_SHOP, useValue: defaultShop }]),\r\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_OPTIONS, useValue: options?.firebase }]),\r\n ...(isNil(options?.firebase) ? [] : [{ provide: FIREBASE_APP_NAME, useValue: nameOrConfig }]),\r\n ...(isNil(options?.elasticSearch) ? [] : [{ provide: ES_CONFIG, useValue: options.elasticSearch }]),\r\n ...(isNil(options?.hasura) ? [] : [{ provide: HASURA_OPTIONS, useValue: options.hasura }]),\r\n ...(isNil(options?.backendUrl) ? [] : [{ provide: BACKEND_URL, useValue: options.backendUrl }]),\r\n ...(isNil(options?.storageBaseUrl) ? [] : [{ provide: STORAGE_BASE_URL, useValue: options.storageBaseUrl }]),\r\n ],\r\n }\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.AuthService","i2.CheckoutService","i1.CouponService","i2.HomeShopService"],"mappings":"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"}
|