{"version":3,"file":"p1n2o-ng-material-tour-ui.mjs","sources":["../../../projects/ngx-ui-tour-md-menu/src/lib/ngx-md-menu-tour.service.ts","../../../projects/ngx-ui-tour-md-menu/src/lib/tour-anchor-opener.component.ts","../../../projects/ngx-ui-tour-md-menu/src/lib/tour-step-template.service.ts","../../../projects/ngx-ui-tour-md-menu/src/lib/tour-anchor.directive.ts","../../../projects/ngx-ui-tour-md-menu/src/lib/tour-step-template/tour-step-template.component.ts","../../../projects/ngx-ui-tour-md-menu/src/lib/tour-step-template/tour-step-template.component.html","../../../projects/ngx-ui-tour-md-menu/src/lib/md-menu.module.ts","../../../projects/ngx-ui-tour-md-menu/src/public_api.ts","../../../projects/ngx-ui-tour-md-menu/src/p1n2o-ng-material-tour-ui.ts"],"sourcesContent":["import {Injectable} from '@angular/core';\nimport {TourService} from 'ngx-ui-tour-core';\nimport {IMdStepOption} from './step-option.interface';\n\n@Injectable()\nexport class NgxmTourService extends TourService<IMdStepOption> {}\n","import {Component, ViewChild, Input,} from '@angular/core';\nimport {MatMenuTrigger, MatMenu, MAT_MENU_SCROLL_STRATEGY} from '@angular/material/menu';\nimport {Overlay, ScrollStrategy} from '@angular/cdk/overlay';\nimport {NgxmTourService} from './ngx-md-menu-tour.service';\n\nexport function scrollFactory(overlay: Overlay, tourService: NgxmTourService): () => ScrollStrategy {\n  return () => {\n    const step = tourService.currentStep,\n        scrollStrategies = overlay.scrollStrategies,\n        disablePageScrolling = !!step.disablePageScrolling;\n\n    return disablePageScrolling ? scrollStrategies.block() : scrollStrategies.reposition();\n  };\n}\n\n@Component({\n  providers: [{\n    provide: MAT_MENU_SCROLL_STRATEGY,\n    useFactory: scrollFactory,\n    deps: [Overlay, NgxmTourService]\n  }],\n  selector: 'tour-anchor-opener',\n  styles: [\n    `\n            :host {\n                display: none;\n            }\n        `\n  ],\n  template: `\n        <span [matMenuTriggerFor]=\"menu\" #trigger=\"matMenuTrigger\"></span>\n    `\n})\nexport class TourAnchorOpenerComponent {\n  @Input() menu: MatMenu = new MatMenu(undefined, undefined, {\n    xPosition: 'after',\n    yPosition: 'below',\n    overlapTrigger: true,\n    backdropClass: ''\n  });\n\n  @ViewChild(MatMenuTrigger) public trigger: MatMenuTrigger;\n}\n","import {Injectable} from '@angular/core';\nimport {TourStepTemplateComponent} from './tour-step-template/tour-step-template.component';\n\n@Injectable()\nexport class TourStepTemplateService {\n    public templateComponent: TourStepTemplateComponent;\n}\n","import {\n  ComponentFactoryResolver,\n  Directive,\n  ElementRef,\n  HostBinding,\n  Injector,\n  Input,\n  ViewContainerRef\n} from '@angular/core';\nimport type {OnDestroy, OnInit} from '@angular/core';\nimport {\n  ScrollingUtil,\n  TourAnchorDirective,\n  TourBackdropService,\n  TourState\n} from 'ngx-ui-tour-core';\nimport { Subscription } from 'rxjs';\n\nimport { TourAnchorOpenerComponent } from './tour-anchor-opener.component';\nimport { TourStepTemplateService } from './tour-step-template.service';\nimport { first } from 'rxjs/operators';\nimport {NgxmTourService} from './ngx-md-menu-tour.service';\nimport {IMdStepOption} from './step-option.interface';\n\n@Directive({\n  selector: '[tourAnchor]'\n})\nexport class TourAnchorMatMenuDirective\n  implements OnInit, OnDestroy, TourAnchorDirective {\n  @Input() public tourAnchor: string;\n  public opener: TourAnchorOpenerComponent;\n  public menuCloseSubscription: Subscription;\n\n  @HostBinding('class.touranchor--is-active') public isActive: boolean;\n\n  constructor(\n    private componentFactoryResolver: ComponentFactoryResolver,\n    private injector: Injector,\n    private viewContainer: ViewContainerRef,\n    private element: ElementRef,\n    private tourService: NgxmTourService,\n    private tourStepTemplate: TourStepTemplateService,\n    private tourBackdrop: TourBackdropService\n  ) {\n    this.opener = this.viewContainer.createComponent(\n      this.componentFactoryResolver.resolveComponentFactory(\n        TourAnchorOpenerComponent\n      )\n    ).instance;\n  }\n\n  public ngOnInit(): void {\n    this.tourService.register(this.tourAnchor, this);\n  }\n\n  public ngOnDestroy(): void {\n    this.tourService.unregister(this.tourAnchor);\n  }\n\n  // noinspection JSUnusedGlobalSymbols\n  public showTourStep(step: IMdStepOption): void {\n    const htmlElement: HTMLElement = this.element.nativeElement;\n\n    this.isActive = true;\n    this.tourStepTemplate.templateComponent.step = step;\n    // Ignore step.placement\n    if (!step.disableScrollToAnchor) {\n      ScrollingUtil.ensureVisible(htmlElement);\n    }\n    const trigger = this.opener.trigger;\n    (<any>trigger)._element = this.element;\n\n    const menu = this.tourStepTemplate.templateComponent.tourStep;\n    trigger.menu = menu;\n    menu.xPosition = step.placement?.xPosition || 'after';\n    menu.yPosition = step.placement?.yPosition || 'below';\n    menu.hasBackdrop = !!step.closeOnOutsideClick;\n    trigger.ngAfterContentInit();\n    trigger.openMenu();\n\n    if (step.enableBackdrop) {\n      this.tourBackdrop.show(this.element, !step.disablePageScrolling);\n    } else {\n      this.tourBackdrop.close();\n    }\n\n    step.prevBtnTitle = step.prevBtnTitle || 'Prev';\n    step.nextBtnTitle = step.nextBtnTitle || 'Next';\n    step.endBtnTitle = step.endBtnTitle || 'End';\n\n    if (this.menuCloseSubscription) {\n      this.menuCloseSubscription.unsubscribe();\n    }\n    this.menuCloseSubscription = trigger.menuClosed\n      .pipe(first())\n      .subscribe(() => {\n        if (this.tourService.getStatus() !== TourState.OFF) {\n          this.tourService.end();\n        }\n        this.tourBackdrop.close();\n      });\n  }\n\n  public hideTourStep(): void {\n    this.isActive = false;\n    if (this.menuCloseSubscription) {\n      this.menuCloseSubscription.unsubscribe();\n    }\n    this.opener.trigger.closeMenu();\n    if (this.tourService.getStatus() === TourState.OFF) {\n      this.tourBackdrop.close();\n    }\n  }\n}\n","import {AfterViewInit, Component, ContentChild, Input, TemplateRef, ViewChild} from '@angular/core';\nimport {TourHotkeyListenerComponent} from 'ngx-ui-tour-core';\nimport {MatMenu} from '@angular/material/menu';\nimport {IMdStepOption} from '../step-option.interface';\nimport {TourStepTemplateService} from '../tour-step-template.service';\nimport {NgxmTourService} from '../ngx-md-menu-tour.service';\n\n@Component({\n    selector: 'tour-step-template',\n    templateUrl: './tour-step-template.component.html',\n    styleUrls: ['./tour-step-template.component.scss']\n})\nexport class TourStepTemplateComponent extends TourHotkeyListenerComponent implements AfterViewInit {\n\n    @ViewChild(MatMenu)\n    public tourStep: MatMenu;\n\n    @Input()\n    public stepTemplate: TemplateRef<{ step: IMdStepOption }>;\n\n    @ContentChild(TemplateRef)\n    public stepTemplateContent: TemplateRef<{ step: IMdStepOption }>;\n\n    public step: IMdStepOption = {};\n\n    constructor(\n        private tourStepTemplateService: TourStepTemplateService,\n        public tourService: NgxmTourService\n    ) {\n        super(tourService);\n    }\n\n    public ngAfterViewInit(): void {\n        this.tourStepTemplateService.templateComponent = this;\n    }\n\n}\n","<mat-menu [overlapTrigger]=\"false\" class=\"tour-step\">\n    <ng-container\n        *ngTemplateOutlet=\"\n                    stepTemplate || stepTemplateContent || defaultTemplate;\n                    context: { step: step }\n                \"\n    ></ng-container>\n</mat-menu>\n\n<ng-template #defaultTemplate let-step=\"step\">\n    <mat-card (click)=\"$event.stopPropagation()\">\n        <mat-card-title>\n            <div class=\"title-text\">{{step?.title}}</div>\n            <button\n                mat-button\n                mat-icon-button\n                (click)=\"tourService.end()\"\n                class=\"close\"\n            >\n                <mat-icon>close</mat-icon>\n            </button>\n        </mat-card-title>\n\n        <mat-card-content [innerHTML]=\"step?.content\"></mat-card-content>\n\n        <mat-card-actions align=\"end\">\n            <button\n                mat-button\n                class=\"prev\"\n                [disabled]=\"!tourService.hasPrev(step)\"\n                (click)=\"tourService.prev()\"\n            >\n                <mat-icon>chevron_left</mat-icon> {{step?.prevBtnTitle}}\n            </button>\n            <button\n                mat-button\n                class=\"next\"\n                *ngIf=\"tourService.hasNext(step)\"\n                (click)=\"tourService.next()\"\n            >\n                {{step?.nextBtnTitle}} <mat-icon>chevron_right</mat-icon>\n            </button>\n            <button\n                mat-button\n                (click)=\"tourService.end()\"\n                *ngIf=\"!tourService.hasNext(step)\"\n            >\n                {{step?.endBtnTitle}}\n            </button>\n        </mat-card-actions>\n    </mat-card>\n</ng-template>\n","import {TourAnchorOpenerComponent} from './tour-anchor-opener.component';\nimport {CommonModule} from '@angular/common';\nimport {ModuleWithProviders, NgModule} from '@angular/core';\nimport {MatButtonModule} from '@angular/material/button';\nimport {MatCardModule} from '@angular/material/card';\nimport {MatIconModule} from '@angular/material/icon';\nimport {MatMenuModule} from '@angular/material/menu';\n\nimport {TourBackdropService, TourModule, TourService} from 'ngx-ui-tour-core';\nimport {TourAnchorMatMenuDirective} from './tour-anchor.directive';\nimport {TourStepTemplateService} from './tour-step-template.service';\nimport {NgxmTourService} from './ngx-md-menu-tour.service';\nimport {TourStepTemplateComponent} from './tour-step-template/tour-step-template.component';\n\nexport {\n    TourAnchorMatMenuDirective,\n    TourStepTemplateComponent,\n    NgxmTourService\n};\n\n@NgModule({\n    declarations: [\n        TourAnchorMatMenuDirective,\n        TourStepTemplateComponent,\n        TourAnchorOpenerComponent\n    ],\n    exports: [\n        TourAnchorMatMenuDirective,\n        TourStepTemplateComponent,\n        TourModule\n    ],\n    imports: [\n        CommonModule,\n        TourModule,\n        MatMenuModule,\n        MatCardModule,\n        MatButtonModule,\n        MatIconModule\n    ]\n})\nexport class TourMatMenuModule {\n    public static forRoot(): ModuleWithProviders<TourMatMenuModule> {\n        return {\n            ngModule: TourMatMenuModule,\n            providers: [\n                TourStepTemplateService,\n                TourBackdropService,\n                TourService,\n                NgxmTourService\n            ]\n        };\n    }\n}\n","/*\n * Public API Surface of ngx-ui-tour-md-menu\n */\n\nexport {IMdStepOption as IStepOption, MdMenuPlacement} from './lib/step-option.interface';\nexport {NgxmTourService as TourService} from './lib/ngx-md-menu-tour.service';\nexport {\n    TourMatMenuModule,\n    TourAnchorMatMenuDirective,\n    TourStepTemplateComponent\n} from './lib/md-menu.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}