{"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.ts","../../../libs/ngx-ui-tour-ionic/src/lib/provide-ui-tour.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\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 {DOCUMENT, inject, Injectable} from '@angular/core';\r\n\r\n\r\n@Injectable()\r\nexport class IonTourService<T extends IonStepOption = IonStepOption> extends TourService<T> {\r\n\r\n    private readonly document = inject(DOCUMENT);\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\"/>\r\n        </ion-button>\r\n    </ion-card-header>\r\n\r\n    <ion-card-content\r\n        [innerHTML]=\"step.content\"\r\n    />\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\"/>\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\"/>\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    public readonly ionPopover = viewChild(IonPopover);\r\n    public readonly stepTemplate = input<TemplateRef<{ step: IonStepOption }>>();\r\n    public readonly stepTemplateContent = contentChild(TemplateRef);\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        />\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, type OnDestroy, type OnInit, signal, input} 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    public readonly tourAnchor = input<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    public override readonly anchorEl = input.required<string | HTMLElement>();\r\n\r\n}\r\n","import {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\nexport const TourIonPopover = [\r\n    TourStepTemplateComponent, TourAnchorIonPopoverDirective, TourProxyAnchorComponent\r\n] as const;\r\n","import {type EnvironmentProviders, inject, makeEnvironmentProviders} from '@angular/core';\r\nimport type {IonStepOption} from './step-option.interface';\r\nimport {UI_TOUR_OPTIONS} from 'ngx-ui-tour-core';\r\nimport {IonTourService} from './ion-tour.service';\r\nimport {Config} from '@ionic/angular/standalone';\r\nimport {TourStepTemplateService} from './tour-step-template.service';\r\n\r\nexport function provideUiTour(\r\n    config: IonStepOption = {}\r\n): EnvironmentProviders {\r\n    return makeEnvironmentProviders([\r\n        {\r\n            provide: UI_TOUR_OPTIONS,\r\n            useFactory: () => {\r\n                const ionicConfig = inject(Config),\r\n                    isIOS = ionicConfig.get('mode') === 'ios';\r\n\r\n                return {\r\n                    trapFocus: false,\r\n                    showArrow: isIOS,\r\n                    delayAfterNavigation: isIOS ? 700: 500,\r\n                    backdropConfig: {\r\n                        parentContainer: 'ion-app',\r\n                        ...config.backdropConfig\r\n                    },\r\n                    ...config\r\n                } as IonStepOption;\r\n            }\r\n        },\r\n        IonTourService,\r\n        TourStepTemplateService\r\n    ]);\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}