ngx-ui-tour-ionic
Version:
UI tour library for Angular 15+
1 lines • 20.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.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 {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})\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 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})\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, 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\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 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 async hideTourStep() {\r\n this.isActive.set(false);\r\n const popover = this.stepTemplateService.templateComponent.ionPopover();\r\n\r\n await popover.dismiss();\r\n }\r\n\r\n}\r\n","import {BaseTourProxyAnchor} from 'ngx-ui-tour-core';\r\nimport {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 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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"}