ngx-ui-tour-ionic
Version:
UI tour library for Angular 15+
1 lines • 21.5 kB
Source Map (JSON)
{"version":3,"file":"ngx-ui-tour-ionic.mjs","sources":["../../../libs/ngx-ui-tour-ionic/src/lib/tour-step-template.service.ts","../../../libs/ngx-ui-tour-ionic/src/lib/ion-tour.service.ts","../../../libs/ngx-ui-tour-ionic/src/lib/tour-step-template/tour-default-step-template/tour-default-step-template.component.ts","../../../libs/ngx-ui-tour-ionic/src/lib/tour-step-template/tour-default-step-template/tour-default-step-template.component.html","../../../libs/ngx-ui-tour-ionic/src/lib/tour-step-template/tour-step-template.component.ts","../../../libs/ngx-ui-tour-ionic/src/lib/tour-step-template/tour-step-template.component.html","../../../libs/ngx-ui-tour-ionic/src/lib/tour-anchor.directive.ts","../../../libs/ngx-ui-tour-ionic/src/lib/tour-proxy-anchor.component.ts","../../../libs/ngx-ui-tour-ionic/src/lib/tour-ion-popover.module.ts","../../../libs/ngx-ui-tour-ionic/src/ngx-ui-tour-ionic.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\r\nimport type {TourStepTemplateComponent} from './tour-step-template/tour-step-template.component';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TourStepTemplateService {\r\n public templateComponent: TourStepTemplateComponent;\r\n}\r\n","import type {IonStepOption} from './step-option.interface';\r\nimport {TourService} from 'ngx-ui-tour-core';\r\nimport {inject, Injectable} from '@angular/core';\r\nimport {Config} from '@ionic/angular/standalone';\r\nimport {DOCUMENT} from '@angular/common';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class IonTourService<T extends IonStepOption = IonStepOption> extends TourService<T> {\r\n\r\n private readonly config = inject(Config);\r\n private readonly document = inject(DOCUMENT);\r\n\r\n public override initialize(steps: T[], stepDefaults?: T) {\r\n const userDefaults = this.getDefaults(),\r\n isIOS = this.config.get('mode') === 'ios';\r\n\r\n stepDefaults ??= {} as T;\r\n stepDefaults.backdropConfig ??= userDefaults?.backdropConfig ?? {};\r\n stepDefaults.backdropConfig.parentContainer ??= userDefaults?.backdropConfig?.parentContainer ?? 'ion-app';\r\n stepDefaults.delayAfterNavigation ??= userDefaults?.delayAfterNavigation ?? (isIOS ? 700: 500);\r\n stepDefaults.trapFocus ??= userDefaults?.trapFocus ?? false;\r\n\r\n super.initialize(steps, stepDefaults);\r\n }\r\n\r\n // noinspection JSUnusedGlobalSymbols\r\n protected override showStep(step: T): Promise<void> {\r\n // In case \"scrollContainer\" is already set to HTMLElement, we DO want to set it again since the current\r\n // html element reference might be already removed from DOM\r\n if (step.smoothScroll && (!step.scrollContainer || typeof step.scrollContainer !== 'string')) {\r\n const docEl = this.document.documentElement,\r\n tabsRouter = docEl.querySelector('ion-router-outlet[tabs=true]') as HTMLElement,\r\n generalRouter = docEl.querySelector('ion-router-outlet') as HTMLElement,\r\n router = tabsRouter ?? generalRouter,\r\n ionContent = router ? router.querySelector(':scope > .ion-page:not(.ion-page-hidden) ion-content') :\r\n docEl.querySelector('ion-content');\r\n\r\n step.scrollContainer = ionContent?.shadowRoot.querySelector('[part=scroll]') as HTMLElement;\r\n }\r\n\r\n return super.showStep(step);\r\n }\r\n\r\n}\r\n","import {ChangeDetectionStrategy, Component, inject, input} from '@angular/core';\r\nimport type {IonStepOption} from '../../step-option.interface';\r\nimport {IonTourService} from '../../ion-tour.service';\r\nimport {IonButton, IonCard, IonCardContent, IonCardHeader, IonCardTitle, IonIcon} from '@ionic/angular/standalone';\r\nimport {addIcons} from 'ionicons';\r\nimport {chevronBackOutline, chevronForwardOutline, closeOutline} from 'ionicons/icons';\r\n\r\n@Component({\r\n selector: 'tour-default-step-template',\r\n imports: [\r\n IonButton,\r\n IonCard,\r\n IonCardContent,\r\n IonCardHeader,\r\n IonCardTitle,\r\n IonIcon\r\n ],\r\n templateUrl: './tour-default-step-template.component.html',\r\n styleUrl: './tour-default-step-template.component.scss',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TourDefaultStepTemplateComponent {\r\n\r\n readonly step = input.required<IonStepOption>();\r\n protected readonly tourService = inject(IonTourService);\r\n\r\n constructor() {\r\n this.addIonicIcons();\r\n }\r\n\r\n private addIonicIcons() {\r\n addIcons({\r\n closeOutline,\r\n chevronBackOutline,\r\n chevronForwardOutline\r\n });\r\n }\r\n\r\n}\r\n","@let step = this.step();\r\n\r\n<ion-card>\r\n <ion-card-header>\r\n <ion-card-title>{{step.title}}</ion-card-title>\r\n <ion-button\r\n class=\"close\"\r\n fill=\"clear\"\r\n shape=\"round\"\r\n (click)=\"tourService.end()\"\r\n >\r\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\r\n </ion-button>\r\n </ion-card-header>\r\n\r\n <ion-card-content\r\n [innerHTML]=\"step.content\"\r\n ></ion-card-content>\r\n\r\n <div\r\n class=\"footer\"\r\n [class.no-progress]=\"!step.showProgress\"\r\n >\r\n <ion-button\r\n fill=\"clear\"\r\n [disabled]=\"!tourService.hasPrev(step)\"\r\n (click)=\"tourService.prev()\"\r\n >\r\n <ion-icon slot=\"start\" name=\"chevron-back-outline\"></ion-icon>\r\n {{ step.prevBtnTitle }}\r\n </ion-button>\r\n @if (step.showProgress) {\r\n <div class=\"progress\">{{ tourService.steps.indexOf(step) + 1 }} / {{ tourService.steps.length }}</div>\r\n }\r\n @if (tourService.hasNext(step) && !step.nextOnAnchorClick) {\r\n <ion-button\r\n fill=\"clear\"\r\n (click)=\"tourService.next()\"\r\n >\r\n {{ step.nextBtnTitle }}\r\n <ion-icon slot=\"end\" name=\"chevron-forward-outline\"></ion-icon>\r\n </ion-button>\r\n }\r\n @if (!tourService.hasNext(step)) {\r\n <ion-button\r\n fill=\"clear\"\r\n (click)=\"tourService.end()\"\r\n >\r\n {{ step.endBtnTitle }}\r\n </ion-button>\r\n }\r\n </div>\r\n</ion-card>\r\n","import {\r\n type AfterViewInit,\r\n ChangeDetectionStrategy,\r\n Component,\r\n ContentChild,\r\n inject,\r\n Input,\r\n signal,\r\n TemplateRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport {TourHotkeyListenerComponent} from 'ngx-ui-tour-core';\r\nimport {createAnimation, IonPopover} from '@ionic/angular/standalone';\r\nimport {NgTemplateOutlet} from '@angular/common';\r\nimport type {IonStepOption} from '../step-option.interface';\r\nimport {TourStepTemplateService} from '../tour-step-template.service';\r\nimport {IonTourService} from '../ion-tour.service';\r\nimport {TourDefaultStepTemplateComponent} from './tour-default-step-template/tour-default-step-template.component';\r\n\r\n@Component({\r\n selector: 'tour-step-template',\r\n templateUrl: './tour-step-template.component.html',\r\n styleUrls: ['./tour-step-template.component.scss'],\r\n imports: [\r\n NgTemplateOutlet,\r\n IonPopover,\r\n TourDefaultStepTemplateComponent\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TourStepTemplateComponent extends TourHotkeyListenerComponent implements AfterViewInit {\r\n\r\n @ViewChild(IonPopover, {static: true})\r\n public ionPopover: IonPopover;\r\n\r\n @Input()\r\n public stepTemplate: TemplateRef<{ step: IonStepOption }>;\r\n\r\n @ContentChild(TemplateRef)\r\n public stepTemplateContent: TemplateRef<{ step: IonStepOption }>;\r\n\r\n public step = signal<IonStepOption>({});\r\n noopLeaveAnimation = () => createAnimation();\r\n\r\n protected override readonly tourService = inject(IonTourService);\r\n private readonly tourStepTemplateService = inject(TourStepTemplateService);\r\n\r\n public ngAfterViewInit() {\r\n this.tourStepTemplateService.templateComponent = this;\r\n }\r\n\r\n}\r\n","@let step = this.step();\r\n\r\n<ion-popover\r\n [leaveAnimation]=\"noopLeaveAnimation\"\r\n [backdropDismiss]=\"false\"\r\n [keyboardClose]=\"false\"\r\n [showBackdrop]=\"false\"\r\n [dismissOnSelect]=\"false\"\r\n [style.--min-width]=\"step?.stepDimensions?.minWidth\"\r\n [style.--max-width]=\"step?.stepDimensions?.maxWidth\"\r\n [style.--width]=\"step?.stepDimensions?.width\"\r\n [arrow]=\"step?.showArrow ?? true\"\r\n [focusTrap]=\"step?.trapFocus ?? false\"\r\n>\r\n <ng-template>\r\n <ng-container\r\n *ngTemplateOutlet=\"\r\n stepTemplate || stepTemplateContent || defaultTemplate;\r\n context: {step: step}\r\n \"\r\n ></ng-container>\r\n </ng-template>\r\n</ion-popover>\r\n\r\n<ng-template #defaultTemplate let-step=\"step\">\r\n <tour-default-step-template\r\n [step]=\"step\"\r\n />\r\n</ng-template>\r\n","import {Directive, ElementRef, inject, Input, type OnDestroy, type OnInit, signal} from '@angular/core';\r\nimport type {TourAnchorDirective} from 'ngx-ui-tour-core';\r\nimport {IonTourService} from './ion-tour.service';\r\nimport {TourStepTemplateService} from './tour-step-template.service';\r\nimport type {IonStepOption} from './step-option.interface';\r\nimport {firstValueFrom} from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[tourAnchor]',\r\n host: {\r\n '[class.touranchor--is-active]': 'isActive()'\r\n }\r\n})\r\nexport class TourAnchorIonPopoverDirective implements OnInit, OnDestroy, TourAnchorDirective {\r\n\r\n @Input()\r\n public tourAnchor: string;\r\n\r\n public isActive = signal(false);\r\n\r\n public readonly element = inject(ElementRef);\r\n private readonly tourService = inject(IonTourService);\r\n private readonly stepTemplateService = inject(TourStepTemplateService);\r\n\r\n ngOnInit() {\r\n this.tourService.register(this.tourAnchor, this);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.tourService.unregister(this.tourAnchor);\r\n }\r\n\r\n async showTourStep(step: IonStepOption) {\r\n const templateComponent = this.stepTemplateService.templateComponent,\r\n popover = templateComponent.ionPopover;\r\n\r\n if (popover.isCmpOpen) {\r\n await firstValueFrom(popover.didDismiss);\r\n }\r\n\r\n this.isActive.set(true);\r\n templateComponent.step.set(step);\r\n popover.alignment = step.placement?.alignment;\r\n popover.side = step.placement?.side ?? 'bottom';\r\n popover.cssClass = step.popoverClass;\r\n\r\n const event = {\r\n target: this.element.nativeElement\r\n } as MouseEvent;\r\n\r\n await popover.present(event);\r\n }\r\n\r\n hideTourStep() {\r\n this.isActive.set(false);\r\n const popover = this.stepTemplateService.templateComponent.ionPopover;\r\n\r\n popover.dismiss();\r\n }\r\n\r\n}\r\n","import {BaseTourProxyAnchor} from 'ngx-ui-tour-core';\r\nimport {ChangeDetectionStrategy, Component, inject, Input} from '@angular/core';\r\nimport {TourAnchorIonPopoverDirective} from './tour-anchor.directive';\r\n\r\n@Component({\r\n selector: 'tour-proxy-anchor',\r\n template: ``,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n hostDirectives: [{\r\n directive: TourAnchorIonPopoverDirective,\r\n inputs: ['tourAnchor: anchorId']\r\n }]\r\n})\r\nexport class TourProxyAnchorComponent extends BaseTourProxyAnchor {\r\n\r\n // noinspection JSUnusedGlobalSymbols\r\n protected override readonly anchorDirective = inject(TourAnchorIonPopoverDirective, {\r\n host: true\r\n });\r\n\r\n @Input({required: true})\r\n public override anchorEl: string | HTMLElement;\r\n\r\n}\r\n","import {NgModule} from '@angular/core';\r\nimport {TourStepTemplateComponent} from './tour-step-template/tour-step-template.component';\r\nimport {TourAnchorIonPopoverDirective} from './tour-anchor.directive';\r\nimport {TourProxyAnchorComponent} from './tour-proxy-anchor.component';\r\n\r\n\r\nconst COMPONENTS = [TourStepTemplateComponent, TourAnchorIonPopoverDirective, TourProxyAnchorComponent];\r\n\r\n@NgModule({\r\n imports: COMPONENTS,\r\n exports: COMPONENTS\r\n})\r\nexport class TourIonPopoverModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":";;;;;;;;;MAMa,uBAAuB,CAAA;8GAAvB,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAvB,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,uBAAuB,cAFpB,MAAM,EAAA,CAAA,CAAA;;2FAET,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAHnC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;ACIK,MAAO,cAAwD,SAAQ,WAAc,CAAA;AAH3F,IAAA,WAAA,GAAA;;AAKqB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAiC/C;IA/BmB,UAAU,CAAC,KAAU,EAAE,YAAgB,EAAA;AACnD,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,EACnC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,KAAK;QAE7C,YAAY,KAAK,EAAO;QACxB,YAAY,CAAC,cAAc,KAAK,YAAY,EAAE,cAAc,IAAI,EAAE;AAClE,QAAA,YAAY,CAAC,cAAc,CAAC,eAAe,KAAK,YAAY,EAAE,cAAc,EAAE,eAAe,IAAI,SAAS;AAC1G,QAAA,YAAY,CAAC,oBAAoB,KAAK,YAAY,EAAE,oBAAoB,KAAK,KAAK,GAAG,GAAG,GAAE,GAAG,CAAC;QAC9F,YAAY,CAAC,SAAS,KAAK,YAAY,EAAE,SAAS,IAAI,KAAK;AAE3D,QAAA,KAAK,CAAC,UAAU,CAAC,KAAK,EAAE,YAAY,CAAC;;;AAItB,IAAA,QAAQ,CAAC,IAAO,EAAA;;;AAG/B,QAAA,IAAI,IAAI,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,eAAe,IAAI,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,CAAC,EAAE;YAC1F,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,EACvC,UAAU,GAAG,KAAK,CAAC,aAAa,CAAC,8BAA8B,CAAgB,EAC/E,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC,mBAAmB,CAAgB,EACvE,MAAM,GAAG,UAAU,IAAI,aAAa,EACpC,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC,sDAAsD,CAAC;AAC9F,gBAAA,KAAK,CAAC,aAAa,CAAC,aAAa,CAAC;YAE1C,IAAI,CAAC,eAAe,GAAG,UAAU,EAAE,UAAU,CAAC,aAAa,CAAC,eAAe,CAAgB;;AAG/F,QAAA,OAAO,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;;8GAjCtB,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,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,cAAc,cAFX,MAAM,EAAA,CAAA,CAAA;;2FAET,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCaY,gCAAgC,CAAA;AAKzC,IAAA,WAAA,GAAA;AAHS,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK,CAAC,QAAQ,EAAiB;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC;QAGnD,IAAI,CAAC,aAAa,EAAE;;IAGhB,aAAa,GAAA;AACjB,QAAA,QAAQ,CAAC;YACL,YAAY;YACZ,kBAAkB;YAClB;AACH,SAAA,CAAC;;8GAdG,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,ECrB7C,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,svDAqDA,ED3CQ,MAAA,EAAA,CAAA,4sBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,SAAS,EACT,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,OAAO,EACP,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,cAAc,EACd,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,EACb,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,YAAY,sFACZ,OAAO,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAMF,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAd5C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAC7B,OAAA,EAAA;wBACL,SAAS;wBACT,OAAO;wBACP,cAAc;wBACd,aAAa;wBACb,YAAY;wBACZ;qBACH,EAGgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,svDAAA,EAAA,MAAA,EAAA,CAAA,4sBAAA,CAAA,EAAA;;;AEW7C,MAAO,yBAA0B,SAAQ,2BAA2B,CAAA;AAX1E,IAAA,WAAA,GAAA;;AAsBW,QAAA,IAAA,CAAA,IAAI,GAAG,MAAM,CAAgB,EAAE,CAAC;AACvC,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,eAAe,EAAE;AAEhB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC;AAC/C,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAM7E;IAJU,eAAe,GAAA;AAClB,QAAA,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,GAAG,IAAI;;8GAlBhD,yBAAyB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,qBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAQpB,WAAW,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EANd,UAAU,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChCzB,y6BA6BA,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDLQ,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAChB,UAAU,EAAA,QAAA,EAAA,aAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACV,gCAAgC,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAI3B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAXrC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAGrB,OAAA,EAAA;wBACL,gBAAgB;wBAChB,UAAU;wBACV;qBACH,EACgB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EAAA,QAAA,EAAA,y6BAAA,EAAA,MAAA,EAAA,CAAA,oCAAA,CAAA,EAAA;8BAKxC,UAAU,EAAA,CAAA;sBADhB,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC;gBAI9B,YAAY,EAAA,CAAA;sBADlB;gBAIM,mBAAmB,EAAA,CAAA;sBADzB,YAAY;uBAAC,WAAW;;;MEzBhB,6BAA6B,CAAA;AAN1C,IAAA,WAAA,GAAA;AAWW,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;AAEf,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3B,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,cAAc,CAAC;AACpC,QAAA,IAAA,CAAA,mBAAmB,GAAG,MAAM,CAAC,uBAAuB,CAAC;AAsCzE;IApCG,QAAQ,GAAA;QACJ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC;;IAGpD,WAAW,GAAA;QACP,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;;IAGhD,MAAM,YAAY,CAAC,IAAmB,EAAA;AAClC,QAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAChE,OAAO,GAAG,iBAAiB,CAAC,UAAU;AAE1C,QAAA,IAAI,OAAO,CAAC,SAAS,EAAE;AACnB,YAAA,MAAM,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC;;AAG5C,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;AACvB,QAAA,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAChC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,SAAS;QAC7C,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,IAAI,IAAI,QAAQ;AAC/C,QAAA,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,YAAY;AAEpC,QAAA,MAAM,KAAK,GAAG;AACV,YAAA,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC;SACV;AAEf,QAAA,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC;;IAGhC,YAAY,GAAA;AACR,QAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC;QACxB,MAAM,OAAO,GAAG,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,CAAC,UAAU;QAErE,OAAO,CAAC,OAAO,EAAE;;8GA5CZ,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,6BAAA,EAAA,YAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBANzC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,IAAI,EAAE;AACF,wBAAA,+BAA+B,EAAE;AACpC;AACJ,iBAAA;8BAIU,UAAU,EAAA,CAAA;sBADhB;;;ACFC,MAAO,wBAAyB,SAAQ,mBAAmB,CAAA;AATjE,IAAA,WAAA,GAAA;;;AAYgC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,6BAA6B,EAAE;AAChF,YAAA,IAAI,EAAE;AACT,SAAA,CAAC;AAKL;8GAVY,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,0OAPvB,CAAE,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAOH,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAE,CAAA;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAC/C,oBAAA,cAAc,EAAE,CAAC;AACb,4BAAA,SAAS,EAAE,6BAA6B;4BACxC,MAAM,EAAE,CAAC,sBAAsB;yBAClC;AACJ,iBAAA;8BASmB,QAAQ,EAAA,CAAA;sBADvB,KAAK;uBAAC,EAAC,QAAQ,EAAE,IAAI,EAAC;;;ACd3B,MAAM,UAAU,GAAG,CAAC,yBAAyB,EAAE,6BAA6B,EAAE,wBAAwB,CAAC;MAM1F,oBAAoB,CAAA;8GAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+GAApB,oBAAoB,EAAA,OAAA,EAAA,CANb,yBAAyB,EAAE,6BAA6B,EAAE,wBAAwB,CAAA,EAAA,OAAA,EAAA,CAAlF,yBAAyB,EAAE,6BAA6B,EAAE,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAMzF,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,YANb,yBAAyB,CAAA,EAAA,CAAA,CAAA;;2FAMhC,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE,UAAU;AACnB,oBAAA,OAAO,EAAE;AACZ,iBAAA;;;ACXD;;AAEG;;;;"}