{"version":3,"file":"mappingfactory-sdk-angular.mjs","sources":["../../projects/mappingfactory-sdk-angular/src/lib/mapping-factory.service.ts","../../projects/mappingfactory-sdk-angular/src/lib/direction.service.ts","../../projects/mappingfactory-sdk-angular/src/lib/maplibre.service.ts","../../projects/mappingfactory-sdk-angular/src/lib/search.service.ts","../../projects/mappingfactory-sdk-angular/src/lib/roadsheet.service.ts","../../projects/mappingfactory-sdk-angular/src/lib/michelin-autocomplete/michelin-autocomplete.component.ts","../../projects/mappingfactory-sdk-angular/src/lib/michelin-map/michelin-map.component.ts","../../projects/mappingfactory-sdk-angular/src/lib/mapping-factory.module.ts","../../projects/mappingfactory-sdk-angular/src/public-api.ts","../../projects/mappingfactory-sdk-angular/src/mappingfactory-sdk-angular.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\n\nimport {\n  MichelinSDKClient,\n  type SDKConstructorOptions,\n} from \"@mappingfactory/sdk-js\";\n\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MFCoreService {\n  private sdkSubject: BehaviorSubject<MichelinSDKClient | null> =\n    new BehaviorSubject<MichelinSDKClient | null>(null);\n  sdk$: Observable<MichelinSDKClient | null> = this.sdkSubject.asObservable();\n\n  constructor() {}\n\n  init(options: SDKConstructorOptions): void {\n    const instance = new MichelinSDKClient({\n      uri: options.uri ?? MichelinSDKClient.Defaults.URI,\n      apiKey: options.apiKey,\n      locale: options.locale ?? MichelinSDKClient.Languages[\"en_US\"],\n    });\n    this.sdkSubject.next(instance);\n  }\n\n  getInstance(): MichelinSDKClient | null {\n    return this.sdkSubject.value;\n  }\n}\n","import { Injectable } from \"@angular/core\";\nimport {\n  DirectionWrapper,\n  type DirectionOptions,\n  type SDKConstructorOptions,\n} from \"@mappingfactory/sdk-js\";\n\nimport { BehaviorSubject, type Observable } from \"rxjs\";\nimport { MFCoreService } from \"./mapping-factory.service\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MFDirectionService {\n  private directionSubject: BehaviorSubject<DirectionWrapper | null> =\n    new BehaviorSubject<DirectionWrapper | null>(null);\n  direction$: Observable<DirectionWrapper | null> =\n    this.directionSubject.asObservable();\n\n  constructor(readonly mappingFactoryService: MFCoreService) {}\n\n  async init(options?: Partial<DirectionOptions>) {\n    const sdk = this.mappingFactoryService.getInstance();\n\n    if (!sdk) {\n      throw new Error(\"[MappingFactorySDK] - SDK is not initialized\");\n    }\n\n    const sdkOptions = sdk.getOptions() as SDKConstructorOptions;\n\n    const instance = new DirectionWrapper({\n      apiKey: sdkOptions.apiKey,\n      uri: sdkOptions.uri,\n    });\n\n    await instance.loadMappingDirections((options || {}) as DirectionOptions);\n\n    instance.setApiUrl(sdkOptions.uri!);\n    instance.setApiKey(sdkOptions.apiKey);\n\n    if (options) {\n      instance.setFormData(options);\n    }\n\n    this.directionSubject.next(instance);\n  }\n\n  getInstance(): DirectionWrapper | null {\n    return this.directionSubject.value;\n  }\n}\n","import { Injectable } from \"@angular/core\";\nimport { MapLibreWrapper } from \"@mappingfactory/sdk-js\";\n\nimport { BehaviorSubject, type Observable } from \"rxjs\";\nimport { MFCoreService } from \"./mapping-factory.service\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MFMapLibreService {\n  private mapLibreSubject: BehaviorSubject<MapLibreWrapper | null> =\n    new BehaviorSubject<MapLibreWrapper | null>(null);\n\n  mapLibre$: Observable<MapLibreWrapper | null> =\n    this.mapLibreSubject.asObservable();\n\n  constructor(readonly mappingFactoryService: MFCoreService) {}\n\n  async init() {\n    const sdk = this.mappingFactoryService.getInstance();\n\n    if (!sdk) {\n      throw new Error(\"[MappingFactorySDK] - SDK is not initialized\");\n    }\n\n    const instance = new MapLibreWrapper() as MapLibreWrapper & {\n      loadMapLibreLibrary: () => Promise<void>; // TODO : Add this function to the `@mappingfactory/sdk-js` package directly\n    };\n\n    await instance.loadMapLibreLibrary();\n\n    this.mapLibreSubject.next(instance);\n  }\n\n  getInstance(): MapLibreWrapper | null {\n    return this.mapLibreSubject.value;\n  }\n}\n","import { Injectable } from \"@angular/core\";\nimport {\n  Search,\n  type SDKConstructorOptions,\n  type SearchConstructorOptions,\n} from \"@mappingfactory/sdk-js\";\n\nimport { BehaviorSubject, type Observable } from \"rxjs\";\nimport { MFCoreService } from \"./mapping-factory.service\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MFSearchService {\n  private searchSubject: BehaviorSubject<Search | null> =\n    new BehaviorSubject<Search | null>(null);\n  search$: Observable<Search | null> = this.searchSubject.asObservable();\n\n  constructor(readonly mappingFactoryService: MFCoreService) {}\n\n  init(options?: Partial<SearchConstructorOptions>) {\n    const sdk = this.mappingFactoryService.getInstance();\n\n    if (!sdk) {\n      throw new Error(\"[MappingFactorySDK] - SDK is not initialized\");\n    }\n\n    const sdkOptions = sdk.getOptions() as SDKConstructorOptions;\n\n    const instance = new Search({\n      apiKey: sdkOptions.apiKey,\n      uri: options?.uri ?? sdkOptions.uri,\n      language: options?.language ?? sdkOptions.locale,\n      fetch: options?.fetch ?? undefined, // * To undefined since the JS SDK will handle the fetch\n    });\n\n    this.searchSubject.next(instance);\n  }\n\n  getInstance(): Search | null {\n    return this.searchSubject.value;\n  }\n}\n","import { Injectable } from \"@angular/core\";\nimport {\n  RoadSheetWrapper,\n  type RoadsheetOptions,\n} from \"@mappingfactory/sdk-js\";\nimport { BehaviorSubject, type Observable } from \"rxjs\";\nimport { MFCoreService } from \"./mapping-factory.service\";\n\n@Injectable({\n  providedIn: \"root\",\n})\nexport class MFRoadsheetService {\n  private roadsheetSubject: BehaviorSubject<RoadSheetWrapper | null> =\n    new BehaviorSubject<RoadSheetWrapper | null>(null);\n  roadsheet$: Observable<RoadSheetWrapper | null> =\n    this.roadsheetSubject.asObservable();\n\n  constructor(readonly mappingFactoryService: MFCoreService) {}\n\n  async init(options?: Partial<RoadsheetOptions>) {\n    const sdk = this.mappingFactoryService.getInstance();\n\n    if (!sdk) {\n      throw new Error(\"[MappingFactorySDK] - SDK is not initialized\");\n    }\n\n    const instance = new RoadSheetWrapper() as RoadSheetWrapper & {\n      loadRoadsheetLibrary: () => Promise<void>; // TODO : Add this function to the `@mappingfactory/sdk-js` package directly\n    };\n\n    await instance.loadRoadsheetLibrary();\n\n    // instance.client = Roadsheet.client(Roadsheet.michelinRoadsheetIcons);\n    // instance.utils = Roadsheet.utils;\n\n    if (options) {\n      instance.setFormData(options);\n    }\n\n    this.roadsheetSubject.next(instance);\n  }\n\n  getInstance(): RoadSheetWrapper | null {\n    return this.roadsheetSubject.value;\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  OnInit,\n  Output,\n  ViewChild,\n  ViewEncapsulation,\n  inject,\n} from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\nimport { SearchAutocompleteOptions } from \"@mappingfactory/sdk-js\";\nimport { MFSearchService } from \"../search.service\";\n\n@Component({\n  selector: \"michelin-autocomplete\",\n  standalone: true,\n  template: `<div #autocompleteContainer></div>`,\n  styles: [\n    `\n      michelin-autocomplete {\n        .michelin-search__autocomplete-dropdown {\n          top: 100%;\n          left: 0;\n          border-top: transparent;\n          border-top-left-radius: 0;\n          border-top-right-radius: 0;\n        }\n\n        .michelin-search__autocomplete-dropdown-item:first-child {\n          border-top: 1px solid var(--ms-gray-200);\n        }\n\n        .michelin-search__autocomplete-dropdown[data-visible=\"false\"] {\n          display: none;\n        }\n\n        .michelin-search__autocomplete-dropdown[data-visible=\"true\"] {\n          display: block;\n        }\n      }\n    `,\n  ],\n  encapsulation: ViewEncapsulation.None,\n})\nexport class MichelinAutocompleteComponent implements OnInit, OnDestroy {\n  searchService: MFSearchService = inject(MFSearchService);\n\n  @ViewChild(\"autocompleteContainer\", { static: true })\n  autocompleteContainer!: ElementRef;\n\n  @Input() id: string = \"msdk-default-id\";\n  @Input() options?: SearchAutocompleteOptions;\n\n  @Output() onSelect: EventEmitter<any> = new EventEmitter();\n  @Output() onDropdownOpen: EventEmitter<any> = new EventEmitter();\n  @Output() onDropDownClose: EventEmitter<any> = new EventEmitter();\n  @Output() onSearch: EventEmitter<any> = new EventEmitter();\n  @Output() onNoResults: EventEmitter<any> = new EventEmitter();\n  @Output() onError: EventEmitter<any> = new EventEmitter();\n  @Output() onSuccess: EventEmitter<any> = new EventEmitter();\n  @Output() onClear: EventEmitter<any> = new EventEmitter();\n\n  private destroy$ = new Subject<void>();\n\n  constructor() {}\n\n  ngOnInit(): void {\n    this.searchService.init();\n    this.initAutocomplete();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  private async initAutocomplete() {\n    const search = this.searchService.getInstance();\n\n    if (!search) {\n      throw new Error(\n        \"[MichelinAutocompleteComponent] - Search instance not available.\"\n      );\n    }\n\n    try {\n      const autocomplete = await search.autocomplete(\n        this.autocompleteContainer.nativeElement,\n        {\n          ...this.options,\n          dropdown: {\n            ...this.options?.dropdown,\n            id: `dropdown-${this.id}`,\n          },\n          input: {\n            ...this.options?.input,\n            id: `input-${this.id}`,\n          },\n        }\n      );\n\n      search._autocompleteInstances.push(autocomplete);\n\n      if (this.onSelect) {\n        autocomplete._on(\"selected\", (value: any) => this.onSelect.emit(value));\n      }\n\n      if (this.onDropdownOpen) {\n        autocomplete._on(\"opened\", (value: any) =>\n          this.onDropdownOpen.emit(value)\n        );\n      }\n\n      if (this.onDropDownClose) {\n        autocomplete._on(\"closed\", (value: any) =>\n          this.onDropDownClose.emit(value)\n        );\n      }\n\n      if (this.onSearch) {\n        autocomplete._on(\"search\", (value: any) => this.onSearch.emit(value));\n      }\n\n      if (this.onNoResults) {\n        autocomplete._on(\"noResults\", (value: any) =>\n          this.onNoResults.emit(value)\n        );\n      }\n\n      if (this.onError) {\n        autocomplete._on(\"error\", (value: any) => this.onError.emit(value));\n      }\n\n      if (this.onSuccess) {\n        autocomplete._on(\"success\", (value: any) => this.onSuccess.emit(value));\n      }\n\n      if (this.onClear) {\n        autocomplete._on(\"clear\", (value: any) => this.onClear.emit(value));\n      }\n    } catch (error) {\n      throw new Error(\n        `[MichelinAutocompleteComponent] - Error initializing autocomplete : ${error}`\n      );\n    }\n  }\n}\n","import {\n  Component,\n  ElementRef,\n  EventEmitter,\n  Input,\n  OnInit,\n  OnDestroy,\n  Output,\n  ViewChild,\n  ViewEncapsulation,\n  inject,\n} from \"@angular/core\";\n\nimport { MFMapLibreService } from \"../maplibre.service\";\nimport { Subject } from \"rxjs\";\nimport { takeUntil } from \"rxjs/operators\";\n\n@Component({\n  selector: \"michelin-map\",\n  standalone: true,\n  encapsulation: ViewEncapsulation.None,\n  template: \"<div #mapContainer></div>\",\n  styles: [\n    `\n      michelin-map {\n        .maplibregl-map {\n          min-width: 100%;\n          min-height: 100%;\n        }\n      }\n    `,\n  ],\n})\nexport class MichelinMapComponent implements OnInit, OnDestroy {\n  mapLibreService: MFMapLibreService = inject(MFMapLibreService);\n\n  @ViewChild(\"mapContainer\", { static: true }) mapContainer!: ElementRef;\n\n  @Input() options: any; // Assurez-vous d'ajuster correctement le type de votre objet d'options\n  @Output() onMapInit: EventEmitter<any> = new EventEmitter();\n\n  private destroy$ = new Subject<void>();\n\n  constructor() {}\n\n  ngOnInit(): void {\n    this.initializeMap();\n  }\n\n  ngOnDestroy(): void {\n    this.destroy$.next();\n    this.destroy$.complete();\n  }\n\n  private async initializeMap() {\n    await this.mapLibreService.init();\n\n    this.mapLibreService.mapLibre$\n      .pipe(takeUntil(this.destroy$))\n      .subscribe((mapLibreWrapper) => {\n        if (!mapLibreWrapper) {\n          throw new Error(\n            \"[MichelinMapComponent] - maplibre instance not available\"\n          );\n        }\n\n        try {\n          const map = new mapLibreWrapper._client.Map({\n            container: this.mapContainer.nativeElement,\n            style:\n              this.options?.style ||\n              \"https://tiles.stadiamaps.com/styles/alidade_smooth.json\",\n            ...this.options,\n          });\n\n          map.on(\"style.load\", () => {\n            if (this.onMapInit) {\n              this.onMapInit.emit(map);\n            }\n          });\n        } catch (error) {\n          throw new Error(\n            `[MichelinMapComponent] - Error initializing map : ${error}`\n          );\n        }\n      });\n  }\n}\n","import { NgModule } from \"@angular/core\";\nimport { MFDirectionService } from \"./direction.service\";\nimport { MFCoreService } from \"./mapping-factory.service\";\nimport { MFRoadsheetService } from \"./roadsheet.service\";\nimport { MFSearchService } from \"./search.service\";\nimport { MichelinAutocompleteComponent } from \"./michelin-autocomplete/michelin-autocomplete.component\";\nimport { MichelinMapComponent } from \"./michelin-map/michelin-map.component\";\n\n@NgModule({\n  imports: [MichelinAutocompleteComponent, MichelinMapComponent],\n  declarations: [],\n  exports: [MichelinAutocompleteComponent, MichelinMapComponent],\n  providers: [\n    MFCoreService,\n    MFDirectionService,\n    MFSearchService,\n    MFRoadsheetService,\n  ],\n})\nexport class MappingFactoryModule {}\n","/*\n * Public API Surface of mappingfactory\n */\n\nexport * from \"./lib/mapping-factory.service\";\nexport * from \"./lib/direction.service\";\nexport * from \"./lib/maplibre.service\";\nexport * from \"./lib/search.service\";\nexport * from \"./lib/roadsheet.service\";\nexport * from \"./lib/michelin-autocomplete/michelin-autocomplete.component\";\nexport * from \"./lib/michelin-map/michelin-map.component\";\n\nexport * from \"./lib/mapping-factory.module\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.MFCoreService"],"mappings":";;;;;;MAYa,aAAa,CAAA;AAKxB,IAAA,WAAA,GAAA;AAJQ,QAAA,IAAA,CAAA,UAAU,GAChB,IAAI,eAAe,CAA2B,IAAI,CAAC,CAAC;AACtD,QAAA,IAAA,CAAA,IAAI,GAAyC,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;KAE5D;AAEhB,IAAA,IAAI,CAAC,OAA8B,EAAA;AACjC,QAAA,MAAM,QAAQ,GAAG,IAAI,iBAAiB,CAAC;YACrC,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,iBAAiB,CAAC,QAAQ,CAAC,GAAG;YAClD,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,iBAAiB,CAAC,SAAS,CAAC,OAAO,CAAC;AAC/D,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KAChC;IAED,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;KAC9B;+GAlBU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCEY,kBAAkB,CAAA;AAM7B,IAAA,WAAA,CAAqB,qBAAoC,EAAA;QAApC,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAe;AALjD,QAAA,IAAA,CAAA,gBAAgB,GACtB,IAAI,eAAe,CAA0B,IAAI,CAAC,CAAC;AACrD,QAAA,IAAA,CAAA,UAAU,GACR,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAEsB;IAE7D,MAAM,IAAI,CAAC,OAAmC,EAAA;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;QAErD,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACjE,SAAA;AAED,QAAA,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,EAA2B,CAAC;AAE7D,QAAA,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC;YACpC,MAAM,EAAE,UAAU,CAAC,MAAM;YACzB,GAAG,EAAE,UAAU,CAAC,GAAG;AACpB,SAAA,CAAC,CAAC;QAEH,MAAM,QAAQ,CAAC,qBAAqB,EAAE,OAAO,IAAI,EAAE,EAAsB,CAAC;AAE1E,QAAA,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,GAAI,CAAC,CAAC;AACpC,QAAA,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAEtC,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC/B,SAAA;AAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtC;IAED,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;KACpC;+GApCU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCHY,iBAAiB,CAAA;AAO5B,IAAA,WAAA,CAAqB,qBAAoC,EAAA;QAApC,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAe;AANjD,QAAA,IAAA,CAAA,eAAe,GACrB,IAAI,eAAe,CAAyB,IAAI,CAAC,CAAC;AAEpD,QAAA,IAAA,CAAA,SAAS,GACP,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;KAEuB;AAE7D,IAAA,MAAM,IAAI,GAAA;QACR,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;QAErD,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACjE,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,eAAe,EAEnC,CAAC;AAEF,QAAA,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;AAErC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrC;IAED,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;KACnC;+GA3BU,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCKY,eAAe,CAAA;AAK1B,IAAA,WAAA,CAAqB,qBAAoC,EAAA;QAApC,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAe;AAJjD,QAAA,IAAA,CAAA,aAAa,GACnB,IAAI,eAAe,CAAgB,IAAI,CAAC,CAAC;AAC3C,QAAA,IAAA,CAAA,OAAO,GAA8B,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;KAEV;AAE7D,IAAA,IAAI,CAAC,OAA2C,EAAA;QAC9C,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;QAErD,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACjE,SAAA;AAED,QAAA,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,EAA2B,CAAC;AAE7D,QAAA,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC;YAC1B,MAAM,EAAE,UAAU,CAAC,MAAM;AACzB,YAAA,GAAG,EAAE,OAAO,EAAE,GAAG,IAAI,UAAU,CAAC,GAAG;AACnC,YAAA,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAI,UAAU,CAAC,MAAM;AAChD,YAAA,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,SAAS;AACnC,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACnC;IAED,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;KACjC;+GA5BU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,cAFd,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCDY,kBAAkB,CAAA;AAM7B,IAAA,WAAA,CAAqB,qBAAoC,EAAA;QAApC,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAe;AALjD,QAAA,IAAA,CAAA,gBAAgB,GACtB,IAAI,eAAe,CAA0B,IAAI,CAAC,CAAC;AACrD,QAAA,IAAA,CAAA,UAAU,GACR,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAEsB;IAE7D,MAAM,IAAI,CAAC,OAAmC,EAAA;QAC5C,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC,WAAW,EAAE,CAAC;QAErD,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AACjE,SAAA;AAED,QAAA,MAAM,QAAQ,GAAG,IAAI,gBAAgB,EAEpC,CAAC;AAEF,QAAA,MAAM,QAAQ,CAAC,oBAAoB,EAAE,CAAC;;;AAKtC,QAAA,IAAI,OAAO,EAAE;AACX,YAAA,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;AAC/B,SAAA;AAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACtC;IAED,WAAW,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC;KACpC;+GAjCU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCsCY,6BAA6B,CAAA;AAoBxC,IAAA,WAAA,GAAA;AAnBA,QAAA,IAAA,CAAA,aAAa,GAAoB,MAAM,CAAC,eAAe,CAAC,CAAC;QAKhD,IAAE,CAAA,EAAA,GAAW,iBAAiB,CAAC;AAG9B,QAAA,IAAA,CAAA,QAAQ,GAAsB,IAAI,YAAY,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAE,CAAC;AACvD,QAAA,IAAA,CAAA,eAAe,GAAsB,IAAI,YAAY,EAAE,CAAC;AACxD,QAAA,IAAA,CAAA,QAAQ,GAAsB,IAAI,YAAY,EAAE,CAAC;AACjD,QAAA,IAAA,CAAA,WAAW,GAAsB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAChD,QAAA,IAAA,CAAA,SAAS,GAAsB,IAAI,YAAY,EAAE,CAAC;AAClD,QAAA,IAAA,CAAA,OAAO,GAAsB,IAAI,YAAY,EAAE,CAAC;AAElD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAEvB;IAEhB,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;AAEO,IAAA,MAAM,gBAAgB,GAAA;QAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE,CAAC;QAEhD,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,MAAM,IAAI,KAAK,CACb,kEAAkE,CACnE,CAAC;AACH,SAAA;QAED,IAAI;AACF,YAAA,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAC5C,IAAI,CAAC,qBAAqB,CAAC,aAAa,EACxC;gBACE,GAAG,IAAI,CAAC,OAAO;AACf,gBAAA,QAAQ,EAAE;AACR,oBAAA,GAAG,IAAI,CAAC,OAAO,EAAE,QAAQ;AACzB,oBAAA,EAAE,EAAE,CAAA,SAAA,EAAY,IAAI,CAAC,EAAE,CAAE,CAAA;AAC1B,iBAAA;AACD,gBAAA,KAAK,EAAE;AACL,oBAAA,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK;AACtB,oBAAA,EAAE,EAAE,CAAA,MAAA,EAAS,IAAI,CAAC,EAAE,CAAE,CAAA;AACvB,iBAAA;AACF,aAAA,CACF,CAAC;AAEF,YAAA,MAAM,CAAC,sBAAsB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAEjD,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,YAAY,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,KAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACzE,aAAA;YAED,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,gBAAA,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAU,KACpC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAChC,CAAC;AACH,aAAA;YAED,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,gBAAA,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAU,KACpC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CACjC,CAAC;AACH,aAAA;YAED,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,gBAAA,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACvE,aAAA;YAED,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,gBAAA,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,KAAU,KACvC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAC7B,CAAC;AACH,aAAA;YAED,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAU,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,aAAA;YAED,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,gBAAA,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,KAAU,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACzE,aAAA;YAED,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,gBAAA,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC,KAAU,KAAK,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACrE,aAAA;AACF,SAAA;AAAC,QAAA,OAAO,KAAK,EAAE;AACd,YAAA,MAAM,IAAI,KAAK,CACb,uEAAuE,KAAK,CAAA,CAAE,CAC/E,CAAC;AACH,SAAA;KACF;+GArGU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,oeA5B9B,CAAoC,kCAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,idAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FA4BnC,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBA/BzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,cACrB,IAAI,EAAA,QAAA,EACN,oCAAoC,EA0B/B,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,idAAA,CAAA,EAAA,CAAA;0EAMrC,qBAAqB,EAAA,CAAA;sBADpB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,uBAAuB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAG3C,EAAE,EAAA,CAAA;sBAAV,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBACG,eAAe,EAAA,CAAA;sBAAxB,MAAM;gBACG,QAAQ,EAAA,CAAA;sBAAjB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;MC/BI,oBAAoB,CAAA;AAU/B,IAAA,WAAA,GAAA;AATA,QAAA,IAAA,CAAA,eAAe,GAAsB,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAKrD,QAAA,IAAA,CAAA,SAAS,GAAsB,IAAI,YAAY,EAAE,CAAC;AAEpD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;KAEvB;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;IAED,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KAC1B;AAEO,IAAA,MAAM,aAAa,GAAA;AACzB,QAAA,MAAM,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC;QAElC,IAAI,CAAC,eAAe,CAAC,SAAS;AAC3B,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC9B,aAAA,SAAS,CAAC,CAAC,eAAe,KAAI;YAC7B,IAAI,CAAC,eAAe,EAAE;AACpB,gBAAA,MAAM,IAAI,KAAK,CACb,0DAA0D,CAC3D,CAAC;AACH,aAAA;YAED,IAAI;gBACF,MAAM,GAAG,GAAG,IAAI,eAAe,CAAC,OAAO,CAAC,GAAG,CAAC;AAC1C,oBAAA,SAAS,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa;AAC1C,oBAAA,KAAK,EACH,IAAI,CAAC,OAAO,EAAE,KAAK;wBACnB,yDAAyD;oBAC3D,GAAG,IAAI,CAAC,OAAO;AAChB,iBAAA,CAAC,CAAC;AAEH,gBAAA,GAAG,CAAC,EAAE,CAAC,YAAY,EAAE,MAAK;oBACxB,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,wBAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC1B,qBAAA;AACH,iBAAC,CAAC,CAAC;AACJ,aAAA;AAAC,YAAA,OAAO,KAAK,EAAE;AACd,gBAAA,MAAM,IAAI,KAAK,CACb,qDAAqD,KAAK,CAAA,CAAE,CAC7D,CAAC;AACH,aAAA;AACH,SAAC,CAAC,CAAC;KACN;+GArDU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,yQAZrB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,gEAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;4FAY1B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAhBhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,cAAc,cACZ,IAAI,EAAA,aAAA,EACD,iBAAiB,CAAC,IAAI,YAC3B,2BAA2B,EAAA,MAAA,EAAA,CAAA,gEAAA,CAAA,EAAA,CAAA;0EAeQ,YAAY,EAAA,CAAA;sBAAxD,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAElC,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MCpBI,oBAAoB,CAAA;+GAApB,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,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,YAVrB,6BAA6B,EAAE,oBAAoB,CAEnD,EAAA,OAAA,EAAA,CAAA,6BAA6B,EAAE,oBAAoB,CAAA,EAAA,CAAA,CAAA,EAAA;AAQlD,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EAPpB,SAAA,EAAA;YACT,aAAa;YACb,kBAAkB;YAClB,eAAe;YACf,kBAAkB;AACnB,SAAA,EAAA,CAAA,CAAA,EAAA;;4FAEU,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAXhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,6BAA6B,EAAE,oBAAoB,CAAC;AAC9D,oBAAA,YAAY,EAAE,EAAE;AAChB,oBAAA,OAAO,EAAE,CAAC,6BAA6B,EAAE,oBAAoB,CAAC;AAC9D,oBAAA,SAAS,EAAE;wBACT,aAAa;wBACb,kBAAkB;wBAClB,eAAe;wBACf,kBAAkB;AACnB,qBAAA;AACF,iBAAA,CAAA;;;AClBD;;AAEG;;ACFH;;AAEG;;;;"}