@rfprodz/client-guided-tour 1.1.5 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (29) hide show
  1. package/fesm2022/rfprodz-client-guided-tour.mjs +51 -71
  2. package/fesm2022/rfprodz-client-guided-tour.mjs.map +1 -1
  3. package/package.json +9 -11
  4. package/types/rfprodz-client-guided-tour.d.ts +136 -0
  5. package/esm2022/index.mjs +0 -5
  6. package/esm2022/lib/components/guided-tour/guided-tour.component.mjs +0 -29
  7. package/esm2022/lib/components/guided-tour/guided-tour.directive.mjs +0 -244
  8. package/esm2022/lib/components/guided-tour/guided-tour.interface.mjs +0 -16
  9. package/esm2022/lib/components/guided-tour-example/guided-tour-example.component.mjs +0 -73
  10. package/esm2022/lib/components/index.mjs +0 -3
  11. package/esm2022/lib/guided-tour-example-routing.module.mjs +0 -24
  12. package/esm2022/lib/guided-tour-example.module.mjs +0 -21
  13. package/esm2022/lib/guided-tour.module.mjs +0 -25
  14. package/esm2022/lib/providers/overlay.provider.mjs +0 -12
  15. package/esm2022/lib/services/guided-tour/guided-tour.service.mjs +0 -52
  16. package/esm2022/lib/services/index.mjs +0 -2
  17. package/esm2022/rfprodz-client-guided-tour.mjs +0 -5
  18. package/index.d.ts +0 -4
  19. package/lib/components/guided-tour/guided-tour.component.d.ts +0 -15
  20. package/lib/components/guided-tour/guided-tour.directive.d.ts +0 -51
  21. package/lib/components/guided-tour/guided-tour.interface.d.ts +0 -14
  22. package/lib/components/guided-tour-example/guided-tour-example.component.d.ts +0 -20
  23. package/lib/components/index.d.ts +0 -2
  24. package/lib/guided-tour-example-routing.module.d.ts +0 -7
  25. package/lib/guided-tour-example.module.d.ts +0 -12
  26. package/lib/guided-tour.module.d.ts +0 -13
  27. package/lib/providers/overlay.provider.d.ts +0 -6
  28. package/lib/services/guided-tour/guided-tour.service.d.ts +0 -22
  29. package/lib/services/index.d.ts +0 -1
@@ -1,17 +1,16 @@
1
- import * as i1 from '@angular/cdk/overlay';
2
- import { OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
1
+ import { OverlayConfig, Overlay, OverlayModule } from '@angular/cdk/overlay';
3
2
  import { ComponentPortal } from '@angular/cdk/portal';
4
- import * as i2$1 from '@angular/common';
5
- import { DOCUMENT, CommonModule } from '@angular/common';
6
3
  import * as i0 from '@angular/core';
7
- import { InjectionToken, Injectable, Component, ChangeDetectionStrategy, Inject, Injector, Directive, Input, NgModule, signal, ViewChildren } from '@angular/core';
8
- import * as i2 from '@angular/material/button';
4
+ import { InjectionToken, Injectable, inject, ChangeDetectionStrategy, Component, ElementRef, ViewContainerRef, DOCUMENT, Injector, Input, Directive, NgModule, signal, ViewChildren } from '@angular/core';
5
+ import * as i1 from '@angular/material/button';
9
6
  import { MatButtonModule } from '@angular/material/button';
10
- import * as i3 from '@angular/material/icon';
7
+ import * as i2 from '@angular/material/icon';
11
8
  import { MatIconModule } from '@angular/material/icon';
12
- import * as i4 from '@angular/material/card';
9
+ import * as i3 from '@angular/material/card';
13
10
  import { MatCardModule } from '@angular/material/card';
14
- import * as i1$1 from '@angular/router';
11
+ import * as i1$1 from '@angular/common';
12
+ import { CommonModule } from '@angular/common';
13
+ import * as i1$2 from '@angular/router';
15
14
  import { RouterModule } from '@angular/router';
16
15
 
17
16
  /** The overlay reference injection token. */
@@ -64,10 +63,10 @@ class AppGuidedTourService {
64
63
  this.active?.dispose();
65
64
  this.active = void 0;
66
65
  }
67
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
68
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourService, providedIn: 'any' }); }
66
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
67
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourService, providedIn: 'any' }); }
69
68
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourService, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourService, decorators: [{
71
70
  type: Injectable,
72
71
  args: [{
73
72
  providedIn: 'any',
@@ -91,41 +90,27 @@ const guidedTourDataProvider = {
91
90
 
92
91
  /** Guided tour component. */
93
92
  class AppGuidedTourComponent {
94
- /**
95
- * @param tour Guided tour service.
96
- * @param data Guided tour step data.
97
- */
98
- constructor(tour, data) {
99
- this.tour = tour;
100
- this.data = data;
93
+ constructor() {
94
+ this.tour = inject(AppGuidedTourService);
95
+ this.data = inject(GUIDED_TOUR_DATA);
101
96
  }
102
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourComponent, deps: [{ token: AppGuidedTourService }, { token: GUIDED_TOUR_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
103
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: AppGuidedTourComponent, selector: "app-guided-tour", ngImport: i0, template: "<mat-card>\n <mat-card-header>\n <mat-card-title>{{ data.title }}</mat-card-title>\n <mat-card-subtitle>{{ data.subtitle }}</mat-card-subtitle>\n </mat-card-header>\n\n <mat-card-content>\n <p>{{ data.description }}</p>\n </mat-card-content>\n\n <mat-card-actions class=\"actions\">\n <button mat-button [disabled]=\"data.first\" (click)=\"tour.previous()\" color=\"primary\">\n <mat-icon>chevron_left</mat-icon>\n Previous\n </button>\n\n <button mat-button (click)=\"tour.end()\" color=\"warn\">\n <mat-icon>close</mat-icon>\n End\n </button>\n\n <button mat-button [disabled]=\"data.last\" (click)=\"tour.next()\" color=\"primary\">\n Next\n <mat-icon>chevron_right</mat-icon>\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: [":host{display:block}.actions>*:not(:first-child):not(:last-child){margin:0 6px}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i4.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i4.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i4.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i4.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
97
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
98
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.3", type: AppGuidedTourComponent, isStandalone: false, selector: "app-guided-tour", ngImport: i0, template: "<mat-card>\n <mat-card-header>\n <mat-card-title>{{ data.title }}</mat-card-title>\n <mat-card-subtitle>{{ data.subtitle }}</mat-card-subtitle>\n </mat-card-header>\n\n <mat-card-content>\n <p>{{ data.description }}</p>\n </mat-card-content>\n\n <mat-card-actions class=\"actions\">\n <button mat-button [disabled]=\"data.first\" (click)=\"tour.previous()\" color=\"primary\">\n <mat-icon>chevron_left</mat-icon>\n Previous\n </button>\n\n <button mat-button (click)=\"tour.end()\" color=\"warn\">\n <mat-icon>close</mat-icon>\n End\n </button>\n\n <button mat-button [disabled]=\"data.last\" (click)=\"tour.next()\" color=\"primary\">\n Next\n <mat-icon>chevron_right</mat-icon>\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: [":host{display:block}.actions>*:not(:first-child):not(:last-child){margin:0 6px}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { kind: "directive", type: i3.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i3.MatCardHeader, selector: "mat-card-header" }, { kind: "directive", type: i3.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
99
  }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourComponent, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourComponent, decorators: [{
106
101
  type: Component,
107
- args: [{ selector: 'app-guided-tour', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mat-card>\n <mat-card-header>\n <mat-card-title>{{ data.title }}</mat-card-title>\n <mat-card-subtitle>{{ data.subtitle }}</mat-card-subtitle>\n </mat-card-header>\n\n <mat-card-content>\n <p>{{ data.description }}</p>\n </mat-card-content>\n\n <mat-card-actions class=\"actions\">\n <button mat-button [disabled]=\"data.first\" (click)=\"tour.previous()\" color=\"primary\">\n <mat-icon>chevron_left</mat-icon>\n Previous\n </button>\n\n <button mat-button (click)=\"tour.end()\" color=\"warn\">\n <mat-icon>close</mat-icon>\n End\n </button>\n\n <button mat-button [disabled]=\"data.last\" (click)=\"tour.next()\" color=\"primary\">\n Next\n <mat-icon>chevron_right</mat-icon>\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: [":host{display:block}.actions>*:not(:first-child):not(:last-child){margin:0 6px}\n"] }]
108
- }], ctorParameters: () => [{ type: AppGuidedTourService }, { type: undefined, decorators: [{
109
- type: Inject,
110
- args: [GUIDED_TOUR_DATA]
111
- }] }] });
102
+ args: [{ selector: 'app-guided-tour', changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "<mat-card>\n <mat-card-header>\n <mat-card-title>{{ data.title }}</mat-card-title>\n <mat-card-subtitle>{{ data.subtitle }}</mat-card-subtitle>\n </mat-card-header>\n\n <mat-card-content>\n <p>{{ data.description }}</p>\n </mat-card-content>\n\n <mat-card-actions class=\"actions\">\n <button mat-button [disabled]=\"data.first\" (click)=\"tour.previous()\" color=\"primary\">\n <mat-icon>chevron_left</mat-icon>\n Previous\n </button>\n\n <button mat-button (click)=\"tour.end()\" color=\"warn\">\n <mat-icon>close</mat-icon>\n End\n </button>\n\n <button mat-button [disabled]=\"data.last\" (click)=\"tour.next()\" color=\"primary\">\n Next\n <mat-icon>chevron_right</mat-icon>\n </button>\n </mat-card-actions>\n</mat-card>\n", styles: [":host{display:block}.actions>*:not(:first-child):not(:last-child){margin:0 6px}\n"] }]
103
+ }] });
112
104
 
113
105
  /** Guided tour directive. */
114
106
  class AppGuidedTourDirective {
115
- /**
116
- * @param el A wrapper around a native element inside of a View.
117
- * @param overlay Service to create Overlays.
118
- * @param overlayConfig Initial configuration used when creating an overlay.
119
- * @param viewContainerRef Represents a container where one or more views can be attached to a component.
120
- * @param tour Guided tour service.
121
- */
122
- constructor(el, overlay, overlayConfig, viewContainerRef, doc, tour) {
123
- this.el = el;
124
- this.overlay = overlay;
125
- this.overlayConfig = overlayConfig;
126
- this.viewContainerRef = viewContainerRef;
127
- this.doc = doc;
128
- this.tour = tour;
107
+ constructor() {
108
+ this.el = inject(ElementRef);
109
+ this.overlay = inject(Overlay);
110
+ this.overlayConfig = inject(OverlayConfig);
111
+ this.viewContainerRef = inject(ViewContainerRef);
112
+ this.doc = inject(DOCUMENT);
113
+ this.tour = inject(AppGuidedTourService);
129
114
  /** Guided tour step configuration. */
130
115
  this.appGuidedTour = void 0;
131
116
  this.highlightElement = false;
@@ -322,18 +307,16 @@ class AppGuidedTourDirective {
322
307
  ngOnDestroy() {
323
308
  this.dispose();
324
309
  }
325
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourDirective, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i1.OverlayConfig }, { token: i0.ViewContainerRef }, { token: DOCUMENT }, { token: AppGuidedTourService }], target: i0.ɵɵFactoryTarget.Directive }); }
326
- /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: AppGuidedTourDirective, selector: "[appGuidedTour]", inputs: { appGuidedTour: "appGuidedTour", highlightElement: "highlightElement", flexibleConnectedPositions: "flexibleConnectedPositions", scrollStrategy: "scrollStrategy" }, ngImport: i0 }); }
310
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
311
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.3", type: AppGuidedTourDirective, isStandalone: false, selector: "[appGuidedTour]", inputs: { appGuidedTour: "appGuidedTour", highlightElement: "highlightElement", flexibleConnectedPositions: "flexibleConnectedPositions", scrollStrategy: "scrollStrategy" }, ngImport: i0 }); }
327
312
  }
328
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourDirective, decorators: [{
313
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourDirective, decorators: [{
329
314
  type: Directive,
330
315
  args: [{
331
316
  selector: '[appGuidedTour]',
317
+ standalone: false,
332
318
  }]
333
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i1.OverlayConfig }, { type: i0.ViewContainerRef }, { type: Document, decorators: [{
334
- type: Inject,
335
- args: [DOCUMENT]
336
- }] }, { type: AppGuidedTourService }], propDecorators: { appGuidedTour: [{
319
+ }], propDecorators: { appGuidedTour: [{
337
320
  type: Input
338
321
  }], highlightElement: [{
339
322
  type: Input
@@ -344,11 +327,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
344
327
  }] } });
345
328
 
346
329
  class AppGuidedTourModule {
347
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
348
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourModule, declarations: [AppGuidedTourComponent, AppGuidedTourDirective], imports: [CommonModule, OverlayModule, MatButtonModule, MatIconModule, MatCardModule], exports: [AppGuidedTourDirective] }); }
349
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourModule, providers: [overlayProvider], imports: [CommonModule, OverlayModule, MatButtonModule, MatIconModule, MatCardModule] }); }
330
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
331
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourModule, declarations: [AppGuidedTourComponent, AppGuidedTourDirective], imports: [CommonModule, OverlayModule, MatButtonModule, MatIconModule, MatCardModule], exports: [AppGuidedTourDirective] }); }
332
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourModule, providers: [overlayProvider], imports: [CommonModule, OverlayModule, MatButtonModule, MatIconModule, MatCardModule] }); }
350
333
  }
351
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourModule, decorators: [{
334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourModule, decorators: [{
352
335
  type: NgModule,
353
336
  args: [{
354
337
  imports: [CommonModule, OverlayModule, MatButtonModule, MatIconModule, MatCardModule],
@@ -360,11 +343,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
360
343
 
361
344
  /** An example of a guided tour. */
362
345
  class AppGuidedTourExampleComponent {
363
- /**
364
- * @param tour Guided tour service.
365
- */
366
- constructor(tour) {
367
- this.tour = tour;
346
+ constructor() {
347
+ this.tour = inject(AppGuidedTourService);
368
348
  /** Example tour configuration. */
369
349
  this.tourConig$ = signal([
370
350
  {
@@ -407,18 +387,18 @@ class AppGuidedTourExampleComponent {
407
387
  first: false,
408
388
  last: true,
409
389
  },
410
- ]);
390
+ ], ...(ngDevMode ? [{ debugName: "tourConig$" }] : []));
411
391
  }
412
392
  ngAfterViewInit() {
413
393
  this.tour.configuration = [...this.steps];
414
394
  }
415
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourExampleComponent, deps: [{ token: AppGuidedTourService }], target: i0.ɵɵFactoryTarget.Component }); }
416
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: AppGuidedTourExampleComponent, selector: "app-guided-tour-example", providers: [AppGuidedTourService], viewQueries: [{ propertyName: "steps", predicate: AppGuidedTourDirective, descendants: true }], ngImport: i0, template: "@if (!tour.active) {\n <button mat-raised-button color=\"accent\" (click)=\"tour.next()\">Start tour</button>\n} @else {\n <button mat-raised-button color=\"warn\" (click)=\"tour.end()\">End tour</button>\n}\n\n@if (tourConig$(); as config) {\n <div [ngStyle]=\"{ width: '100%' }\">\n <span [ngStyle]=\"{ display: 'inline-block', width: '80%' }\">... Some content ...</span>\n <span [appGuidedTour]=\"config.at(4)\" [highlightElement]=\"true\">fifth item to explain</span>\n </div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(1)\" [highlightElement]=\"true\">second item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(2)\" [highlightElement]=\"true\">third item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(0)\">first item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [ngStyle]=\"{ width: '100%' }\">\n <span [ngStyle]=\"{ display: 'inline-block', width: '80%' }\">... Some content ...</span>\n <span [appGuidedTour]=\"config.at(3)\" [highlightElement]=\"true\">fourth item to explain</span>\n </div>\n}\n", styles: [":host{display:block;padding:16px}\n"], dependencies: [{ kind: "directive", type: i2$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: AppGuidedTourDirective, selector: "[appGuidedTour]", inputs: ["appGuidedTour", "highlightElement", "flexibleConnectedPositions", "scrollStrategy"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
395
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourExampleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
396
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: AppGuidedTourExampleComponent, isStandalone: false, selector: "app-guided-tour-example", providers: [AppGuidedTourService], viewQueries: [{ propertyName: "steps", predicate: AppGuidedTourDirective, descendants: true }], ngImport: i0, template: "@if (!tour.active) {\n <button mat-raised-button color=\"accent\" (click)=\"tour.next()\">Start tour</button>\n} @else {\n <button mat-raised-button color=\"warn\" (click)=\"tour.end()\">End tour</button>\n}\n\n@if (tourConig$(); as config) {\n <div [ngStyle]=\"{ width: '100%' }\">\n <span [ngStyle]=\"{ display: 'inline-block', width: '80%' }\">... Some content ...</span>\n <span [appGuidedTour]=\"config.at(4)\" [highlightElement]=\"true\">fifth item to explain</span>\n </div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(1)\" [highlightElement]=\"true\">second item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(2)\" [highlightElement]=\"true\">third item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(0)\">first item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [ngStyle]=\"{ width: '100%' }\">\n <span [ngStyle]=\"{ display: 'inline-block', width: '80%' }\">... Some content ...</span>\n <span [appGuidedTour]=\"config.at(3)\" [highlightElement]=\"true\">fourth item to explain</span>\n </div>\n}\n", styles: [":host{display:block;padding:16px}\n"], dependencies: [{ kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i1.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: AppGuidedTourDirective, selector: "[appGuidedTour]", inputs: ["appGuidedTour", "highlightElement", "flexibleConnectedPositions", "scrollStrategy"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
417
397
  }
418
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourExampleComponent, decorators: [{
398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourExampleComponent, decorators: [{
419
399
  type: Component,
420
- args: [{ selector: 'app-guided-tour-example', providers: [AppGuidedTourService], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (!tour.active) {\n <button mat-raised-button color=\"accent\" (click)=\"tour.next()\">Start tour</button>\n} @else {\n <button mat-raised-button color=\"warn\" (click)=\"tour.end()\">End tour</button>\n}\n\n@if (tourConig$(); as config) {\n <div [ngStyle]=\"{ width: '100%' }\">\n <span [ngStyle]=\"{ display: 'inline-block', width: '80%' }\">... Some content ...</span>\n <span [appGuidedTour]=\"config.at(4)\" [highlightElement]=\"true\">fifth item to explain</span>\n </div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(1)\" [highlightElement]=\"true\">second item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(2)\" [highlightElement]=\"true\">third item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(0)\">first item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [ngStyle]=\"{ width: '100%' }\">\n <span [ngStyle]=\"{ display: 'inline-block', width: '80%' }\">... Some content ...</span>\n <span [appGuidedTour]=\"config.at(3)\" [highlightElement]=\"true\">fourth item to explain</span>\n </div>\n}\n", styles: [":host{display:block;padding:16px}\n"] }]
421
- }], ctorParameters: () => [{ type: AppGuidedTourService }], propDecorators: { steps: [{
400
+ args: [{ selector: 'app-guided-tour-example', providers: [AppGuidedTourService], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, template: "@if (!tour.active) {\n <button mat-raised-button color=\"accent\" (click)=\"tour.next()\">Start tour</button>\n} @else {\n <button mat-raised-button color=\"warn\" (click)=\"tour.end()\">End tour</button>\n}\n\n@if (tourConig$(); as config) {\n <div [ngStyle]=\"{ width: '100%' }\">\n <span [ngStyle]=\"{ display: 'inline-block', width: '80%' }\">... Some content ...</span>\n <span [appGuidedTour]=\"config.at(4)\" [highlightElement]=\"true\">fifth item to explain</span>\n </div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(1)\" [highlightElement]=\"true\">second item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(2)\" [highlightElement]=\"true\">third item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(0)\">first item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [ngStyle]=\"{ width: '100%' }\">\n <span [ngStyle]=\"{ display: 'inline-block', width: '80%' }\">... Some content ...</span>\n <span [appGuidedTour]=\"config.at(3)\" [highlightElement]=\"true\">fourth item to explain</span>\n </div>\n}\n", styles: [":host{display:block;padding:16px}\n"] }]
401
+ }], propDecorators: { steps: [{
422
402
  type: ViewChildren,
423
403
  args: [AppGuidedTourDirective]
424
404
  }] } });
@@ -430,11 +410,11 @@ const routes = [
430
410
  },
431
411
  ];
432
412
  class AppGuidedTourExampleRoutingModule {
433
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourExampleRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
434
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourExampleRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
435
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourExampleRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
413
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourExampleRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
414
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourExampleRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
415
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourExampleRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
436
416
  }
437
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourExampleRoutingModule, decorators: [{
417
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourExampleRoutingModule, decorators: [{
438
418
  type: NgModule,
439
419
  args: [{
440
420
  imports: [RouterModule.forChild(routes)],
@@ -443,11 +423,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
443
423
  }] });
444
424
 
445
425
  class AppGuidedTourExampleModule {
446
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourExampleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
447
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourExampleModule, declarations: [AppGuidedTourExampleComponent], imports: [CommonModule, MatButtonModule, MatIconModule, AppGuidedTourModule, AppGuidedTourExampleRoutingModule] }); }
448
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourExampleModule, imports: [CommonModule, MatButtonModule, MatIconModule, AppGuidedTourModule, AppGuidedTourExampleRoutingModule] }); }
426
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourExampleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
427
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourExampleModule, declarations: [AppGuidedTourExampleComponent], imports: [CommonModule, MatButtonModule, MatIconModule, AppGuidedTourModule, AppGuidedTourExampleRoutingModule] }); }
428
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourExampleModule, imports: [CommonModule, MatButtonModule, MatIconModule, AppGuidedTourModule, AppGuidedTourExampleRoutingModule] }); }
449
429
  }
450
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AppGuidedTourExampleModule, decorators: [{
430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImport: i0, type: AppGuidedTourExampleModule, decorators: [{
451
431
  type: NgModule,
452
432
  args: [{
453
433
  imports: [CommonModule, MatButtonModule, MatIconModule, AppGuidedTourModule, AppGuidedTourExampleRoutingModule],
@@ -1 +1 @@
1
- {"version":3,"file":"rfprodz-client-guided-tour.mjs","sources":["../../../../libs/client-guided-tour/src/lib/providers/overlay.provider.ts","../../../../libs/client-guided-tour/src/lib/services/guided-tour/guided-tour.service.ts","../../../../libs/client-guided-tour/src/lib/components/guided-tour/guided-tour.interface.ts","../../../../libs/client-guided-tour/src/lib/components/guided-tour/guided-tour.component.ts","../../../../libs/client-guided-tour/src/lib/components/guided-tour/guided-tour.component.html","../../../../libs/client-guided-tour/src/lib/components/guided-tour/guided-tour.directive.ts","../../../../libs/client-guided-tour/src/lib/guided-tour.module.ts","../../../../libs/client-guided-tour/src/lib/components/guided-tour-example/guided-tour-example.component.ts","../../../../libs/client-guided-tour/src/lib/components/guided-tour-example/guided-tour-example.component.html","../../../../libs/client-guided-tour/src/lib/guided-tour-example-routing.module.ts","../../../../libs/client-guided-tour/src/lib/guided-tour-example.module.ts","../../../../libs/client-guided-tour/src/rfprodz-client-guided-tour.ts"],"sourcesContent":["import { OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { InjectionToken, Provider } from '@angular/core';\n\n/** The overlay reference injection token. */\nexport const OVERLAY_REFERENCE = new InjectionToken<OverlayRef>('OverlayReference');\n\n/** Overlay config provider. */\nexport const overlayProvider: Provider = {\n provide: OverlayConfig,\n useFactory: () =>\n new OverlayConfig({\n direction: 'ltr',\n }),\n};\n","import { Injectable } from '@angular/core';\n\nimport { AppGuidedTourDirective } from '../../components/guided-tour/guided-tour.directive';\n\n/**\n * @title Guided tour service.\n * @description This service should be injected once for each tour. Use component `providers` array to declare.\n */\n@Injectable({\n providedIn: 'any',\n})\nexport class AppGuidedTourService {\n /** Guider tour steps. */\n private steps: AppGuidedTourDirective[] = [];\n\n /** Guided tour step configuration. */\n public set configuration(steps: AppGuidedTourDirective[]) {\n this.steps = steps.sort((x, y) => (x.appGuidedTour?.index ?? 0) - (y.appGuidedTour?.index ?? 0));\n }\n\n /** Active step. */\n public active?: AppGuidedTourDirective;\n\n /** Activate next step. */\n public next() {\n this.active?.dispose();\n const stepIndex = (this.active?.appGuidedTour?.index ?? -1) + 1;\n if (stepIndex <= this.steps.length - 1) {\n this.active = this.steps.at(stepIndex);\n if (typeof this.active !== 'undefined') {\n this.active.display();\n }\n }\n }\n\n /** Activate previous step. */\n public previous() {\n this.active?.dispose();\n const stepIndex = (this.active?.appGuidedTour?.index ?? -1) - 1;\n if (stepIndex >= 0) {\n this.active = this.steps.at(stepIndex);\n if (typeof this.active !== 'undefined') {\n this.active.display();\n }\n }\n }\n\n /** End tour. */\n public end() {\n this.active?.dispose();\n this.active = void 0;\n }\n}\n","import { InjectionToken, Provider } from '@angular/core';\n\n/** Guided tour step data. */\nexport interface IGuidedTourData {\n index: number;\n title: string;\n subtitle: string;\n description: string;\n first: boolean;\n last: boolean;\n}\n\n/** Guided tour step data injection token. */\nexport const GUIDED_TOUR_DATA = new InjectionToken<IGuidedTourData>('GUIDED_TOUR_DATA');\n\n/** Guided tour step data provider. */\nexport const guidedTourDataProvider: Provider = {\n provide: GUIDED_TOUR_DATA,\n useValue: <IGuidedTourData>{\n index: 0,\n title: '',\n subtitle: '',\n description: '',\n first: true,\n last: true,\n },\n};\n","import { ChangeDetectionStrategy, Component, Inject } from '@angular/core';\n\nimport { AppGuidedTourService } from '../../services/guided-tour/guided-tour.service';\nimport { GUIDED_TOUR_DATA, IGuidedTourData } from './guided-tour.interface';\n\n/** Guided tour component. */\n@Component({\n selector: 'app-guided-tour',\n templateUrl: './guided-tour.component.html',\n styleUrls: ['./guided-tour.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AppGuidedTourComponent {\n /**\n * @param tour Guided tour service.\n * @param data Guided tour step data.\n */\n constructor(\n public readonly tour: AppGuidedTourService,\n @Inject(GUIDED_TOUR_DATA) public readonly data: IGuidedTourData,\n ) {}\n}\n","<mat-card>\n <mat-card-header>\n <mat-card-title>{{ data.title }}</mat-card-title>\n <mat-card-subtitle>{{ data.subtitle }}</mat-card-subtitle>\n </mat-card-header>\n\n <mat-card-content>\n <p>{{ data.description }}</p>\n </mat-card-content>\n\n <mat-card-actions class=\"actions\">\n <button mat-button [disabled]=\"data.first\" (click)=\"tour.previous()\" color=\"primary\">\n <mat-icon>chevron_left</mat-icon>\n Previous\n </button>\n\n <button mat-button (click)=\"tour.end()\" color=\"warn\">\n <mat-icon>close</mat-icon>\n End\n </button>\n\n <button mat-button [disabled]=\"data.last\" (click)=\"tour.next()\" color=\"primary\">\n Next\n <mat-icon>chevron_right</mat-icon>\n </button>\n </mat-card-actions>\n</mat-card>\n","import { ConnectedPosition, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport { AfterContentInit, Directive, ElementRef, Inject, Injector, Input, OnDestroy, ViewContainerRef } from '@angular/core';\n\nimport { OVERLAY_REFERENCE } from '../../providers/overlay.provider';\nimport { AppGuidedTourService } from '../../services/guided-tour/guided-tour.service';\nimport { AppGuidedTourComponent } from './guided-tour.component';\nimport { GUIDED_TOUR_DATA, IGuidedTourData } from './guided-tour.interface';\n\n/** Guided tour directive. */\n@Directive({\n selector: '[appGuidedTour]',\n})\nexport class AppGuidedTourDirective implements AfterContentInit, OnDestroy {\n /** Guided tour step configuration. */\n @Input() public appGuidedTour: IGuidedTourData | undefined = void 0;\n\n @Input() public highlightElement = false;\n\n /** Connected positions configuration. */\n @Input() public flexibleConnectedPositions: ConnectedPosition[] = [\n // below the origin\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n // above the origin\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n // to the left of the origin\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n // to the right of the origin\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ];\n\n /** Scroll strategy. */\n @Input() public scrollStrategy: 'block' | 'close' | 'noop' | 'reposition' = 'reposition';\n\n /** Native element ref. */\n private nativeElement?: HTMLElement;\n\n /** Original position of the native element. */\n private nativeElementOriginalPosition?: string;\n\n /** Native element frame. */\n private readonly nativeElementFrame: HTMLElement = this.doc.createElement('div');\n\n /** Overlay reference. */\n private overlayRef: OverlayRef | null = null;\n\n /**\n * @param el A wrapper around a native element inside of a View.\n * @param overlay Service to create Overlays.\n * @param overlayConfig Initial configuration used when creating an overlay.\n * @param viewContainerRef Represents a container where one or more views can be attached to a component.\n * @param tour Guided tour service.\n */\n constructor(\n private readonly el: ElementRef,\n private readonly overlay: Overlay,\n private readonly overlayConfig: OverlayConfig,\n private readonly viewContainerRef: ViewContainerRef,\n @Inject(DOCUMENT) private readonly doc: Document,\n private readonly tour: AppGuidedTourService,\n ) {}\n\n /** Overlay configurator. */\n private configureOverlay(): void {\n const positionHost = this.nativeElement;\n if (typeof positionHost !== 'undefined') {\n this.overlayConfig.hasBackdrop = false;\n this.overlayConfig.panelClass = '';\n this.overlayConfig.minHeight = void 0;\n this.overlayConfig.minWidth = void 0;\n this.overlayConfig.maxHeight = void 0;\n this.overlayConfig.maxWidth = void 0;\n this.overlayConfig.height = void 0;\n this.overlayConfig.width = void 0;\n switch (this.scrollStrategy) {\n case 'block':\n this.overlayConfig.scrollStrategy = this.overlay.scrollStrategies.block();\n break;\n case 'close':\n this.overlayConfig.scrollStrategy = this.overlay.scrollStrategies.close();\n break;\n case 'noop':\n this.overlayConfig.scrollStrategy = this.overlay.scrollStrategies.noop();\n break;\n case 'reposition':\n default:\n this.overlayConfig.scrollStrategy = this.overlay.scrollStrategies.reposition();\n break;\n }\n this.overlayConfig.positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(positionHost)\n .setOrigin(positionHost)\n .withPositions(this.flexibleConnectedPositions);\n }\n }\n\n /** Overlay creator. */\n private createOverlay(): OverlayRef | null {\n if (this.overlayRef === null) {\n this.configureOverlay();\n this.overlayRef = this.overlay.create(this.overlayConfig);\n }\n return this.overlayRef;\n }\n\n /** Disposes an overlay. */\n public dispose(): void {\n if (this.overlayRef !== null) {\n void this.overlayRef?.detach();\n void this.overlayRef?.dispose();\n this.overlayRef = null;\n this.decorateNativeEl(true);\n }\n }\n\n /** Displays an overlay. */\n public display(): void {\n if (typeof this.appGuidedTour !== 'undefined' && !this.overlayRef?.hasAttached) {\n const overlayRef = this.createOverlay();\n const context = Injector.create({\n providers: [\n {\n provide: OVERLAY_REFERENCE,\n useValue: overlayRef,\n },\n {\n provide: GUIDED_TOUR_DATA,\n useValue: { ...this.appGuidedTour },\n },\n {\n provide: AppGuidedTourService,\n useValue: this.tour,\n },\n ],\n });\n const portal = new ComponentPortal(AppGuidedTourComponent, this.viewContainerRef, context);\n const ref = this.overlayRef?.attach(portal);\n ref?.changeDetectorRef.detectChanges();\n this.decorateNativeEl();\n }\n }\n\n /** Adds elevation to the DOM element and scrolls the element into view. */\n private decorateNativeEl(reset?: boolean) {\n if (typeof this.nativeElement !== 'undefined' && this.highlightElement) {\n const rect = this.nativeElement.getBoundingClientRect();\n this.nativeElementOriginalPosition = this.nativeElement.style.position;\n this.nativeElement.style.position = 'relative';\n this.nativeElementFrame.style.position = 'absolute';\n this.nativeElementFrame.style.width = `${rect.width}px`;\n this.nativeElementFrame.style.height = `${rect.height}px`;\n this.nativeElementFrame.style.top = '0px';\n this.nativeElementFrame.style.left = '0px';\n this.nativeElementFrame.style.zIndex = '999';\n this.nativeElementFrame.style.boxShadow = '0 0 0 1000px rgba(0,0,0,0.3)';\n this.nativeElementFrame.style.boxShadow = '0 0 0 1000vmax rgba(0,0,0,0.3)';\n this.nativeElementFrame.style.pointerEvents = 'none';\n if (reset === true) {\n this.nativeElement.removeChild(this.nativeElementFrame);\n this.nativeElement.style.position = this.nativeElementOriginalPosition;\n return;\n }\n this.nativeElement.scrollIntoView({ behavior: 'smooth' });\n this.nativeElement.appendChild(this.nativeElementFrame);\n }\n }\n\n public ngAfterContentInit(): void {\n this.nativeElement = this.el.nativeElement;\n }\n\n public ngOnDestroy(): void {\n this.dispose();\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { AppGuidedTourComponent } from './components/guided-tour/guided-tour.component';\nimport { AppGuidedTourDirective } from './components/guided-tour/guided-tour.directive';\nimport { overlayProvider } from './providers/overlay.provider';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, MatButtonModule, MatIconModule, MatCardModule],\n declarations: [AppGuidedTourComponent, AppGuidedTourDirective],\n providers: [overlayProvider],\n exports: [AppGuidedTourDirective],\n})\nexport class AppGuidedTourModule {}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, QueryList, signal, ViewChildren } from '@angular/core';\n\nimport { AppGuidedTourService } from '../../services/guided-tour/guided-tour.service';\nimport { AppGuidedTourDirective } from '../guided-tour/guided-tour.directive';\nimport { IGuidedTourData } from '../guided-tour/guided-tour.interface';\n\n/** An example of a guided tour. */\n@Component({\n selector: 'app-guided-tour-example',\n templateUrl: './guided-tour-example.component.html',\n styleUrls: ['./guided-tour-example.component.scss'],\n providers: [AppGuidedTourService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AppGuidedTourExampleComponent implements AfterViewInit {\n /** Tour steps. */\n @ViewChildren(AppGuidedTourDirective) public steps!: QueryList<AppGuidedTourDirective>;\n\n /** Example tour configuration. */\n public tourConig$ = signal<IGuidedTourData[]>([\n {\n index: 0,\n title: 'first',\n subtitle: 'First step',\n description: 'The first step. Highlighting disabled.',\n first: true,\n last: false,\n },\n {\n index: 1,\n title: 'second',\n subtitle: 'Second step',\n description: 'The second step. Highlighting enabled.',\n first: false,\n last: false,\n },\n {\n index: 2,\n title: 'third',\n subtitle: 'Third step',\n description: 'The third step. Highlighting enabled.',\n first: false,\n last: false,\n },\n {\n index: 3,\n title: 'fourth',\n subtitle: 'Fourth step',\n description: 'The fourth step. Highlighting enabled.',\n first: false,\n last: false,\n },\n {\n index: 4,\n title: 'fifth',\n subtitle: 'Fifth step',\n description: 'The fifth and the final step. Highlighting enabled.',\n first: false,\n last: true,\n },\n ]);\n\n /**\n * @param tour Guided tour service.\n */\n constructor(public readonly tour: AppGuidedTourService) {}\n\n public ngAfterViewInit(): void {\n this.tour.configuration = [...this.steps];\n }\n}\n","@if (!tour.active) {\n <button mat-raised-button color=\"accent\" (click)=\"tour.next()\">Start tour</button>\n} @else {\n <button mat-raised-button color=\"warn\" (click)=\"tour.end()\">End tour</button>\n}\n\n@if (tourConig$(); as config) {\n <div [ngStyle]=\"{ width: '100%' }\">\n <span [ngStyle]=\"{ display: 'inline-block', width: '80%' }\">... Some content ...</span>\n <span [appGuidedTour]=\"config.at(4)\" [highlightElement]=\"true\">fifth item to explain</span>\n </div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(1)\" [highlightElement]=\"true\">second item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(2)\" [highlightElement]=\"true\">third item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(0)\">first item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [ngStyle]=\"{ width: '100%' }\">\n <span [ngStyle]=\"{ display: 'inline-block', width: '80%' }\">... Some content ...</span>\n <span [appGuidedTour]=\"config.at(3)\" [highlightElement]=\"true\">fourth item to explain</span>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { Route, RouterModule } from '@angular/router';\n\nimport { AppGuidedTourExampleComponent } from './components/guided-tour-example/guided-tour-example.component';\n\nconst routes: Route[] = [\n {\n path: '',\n component: AppGuidedTourExampleComponent,\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AppGuidedTourExampleRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { AppGuidedTourExampleComponent } from './components/guided-tour-example/guided-tour-example.component';\nimport { AppGuidedTourModule } from './guided-tour.module';\nimport { AppGuidedTourExampleRoutingModule } from './guided-tour-example-routing.module';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatIconModule, AppGuidedTourModule, AppGuidedTourExampleRoutingModule],\n declarations: [AppGuidedTourExampleComponent],\n})\nexport class AppGuidedTourExampleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.AppGuidedTourService","i1.AppGuidedTourService","i2","i3","i4.AppGuidedTourDirective"],"mappings":"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"}
1
+ {"version":3,"file":"rfprodz-client-guided-tour.mjs","sources":["../../../../libs/client-guided-tour/src/lib/providers/overlay.provider.ts","../../../../libs/client-guided-tour/src/lib/services/guided-tour/guided-tour.service.ts","../../../../libs/client-guided-tour/src/lib/components/guided-tour/guided-tour.interface.ts","../../../../libs/client-guided-tour/src/lib/components/guided-tour/guided-tour.component.ts","../../../../libs/client-guided-tour/src/lib/components/guided-tour/guided-tour.component.html","../../../../libs/client-guided-tour/src/lib/components/guided-tour/guided-tour.directive.ts","../../../../libs/client-guided-tour/src/lib/guided-tour.module.ts","../../../../libs/client-guided-tour/src/lib/components/guided-tour-example/guided-tour-example.component.ts","../../../../libs/client-guided-tour/src/lib/components/guided-tour-example/guided-tour-example.component.html","../../../../libs/client-guided-tour/src/lib/guided-tour-example-routing.module.ts","../../../../libs/client-guided-tour/src/lib/guided-tour-example.module.ts","../../../../libs/client-guided-tour/src/rfprodz-client-guided-tour.ts"],"sourcesContent":["import { OverlayConfig, type OverlayRef } from '@angular/cdk/overlay';\nimport { InjectionToken, type Provider } from '@angular/core';\n\n/** The overlay reference injection token. */\nexport const OVERLAY_REFERENCE = new InjectionToken<OverlayRef>('OverlayReference');\n\n/** Overlay config provider. */\nexport const overlayProvider: Provider = {\n provide: OverlayConfig,\n useFactory: () =>\n new OverlayConfig({\n direction: 'ltr',\n }),\n};\n","import { Injectable } from '@angular/core';\n\nimport { IGuidedTourDirective } from '../../components/guided-tour/guided-tour.interface';\n\n/**\n * @title Guided tour service.\n * @description This service should be injected once for each tour. Use component `providers` array to declare.\n */\n@Injectable({\n providedIn: 'any',\n})\nexport class AppGuidedTourService {\n /** Guider tour steps. */\n private steps: IGuidedTourDirective[] = [];\n\n /** Guided tour step configuration. */\n public set configuration(steps: IGuidedTourDirective[]) {\n this.steps = steps.sort((x, y) => (x.appGuidedTour?.index ?? 0) - (y.appGuidedTour?.index ?? 0));\n }\n\n /** Active step. */\n public active?: IGuidedTourDirective;\n\n /** Activate next step. */\n public next() {\n this.active?.dispose();\n const stepIndex = (this.active?.appGuidedTour?.index ?? -1) + 1;\n if (stepIndex <= this.steps.length - 1) {\n this.active = this.steps.at(stepIndex);\n if (typeof this.active !== 'undefined') {\n this.active.display();\n }\n }\n }\n\n /** Activate previous step. */\n public previous() {\n this.active?.dispose();\n const stepIndex = (this.active?.appGuidedTour?.index ?? -1) - 1;\n if (stepIndex >= 0) {\n this.active = this.steps.at(stepIndex);\n if (typeof this.active !== 'undefined') {\n this.active.display();\n }\n }\n }\n\n /** End tour. */\n public end() {\n this.active?.dispose();\n this.active = void 0;\n }\n}\n","import type { ConnectedPosition } from '@angular/cdk/overlay';\nimport { InjectionToken, type Provider } from '@angular/core';\n\n/** Guided tour step data. */\nexport interface IGuidedTourData {\n index: number;\n title: string;\n subtitle: string;\n description: string;\n first: boolean;\n last: boolean;\n}\n\n/** Guided tour step data injection token. */\nexport const GUIDED_TOUR_DATA = new InjectionToken<IGuidedTourData>('GUIDED_TOUR_DATA');\n\n/** Guided tour step data provider. */\nexport const guidedTourDataProvider: Provider = {\n provide: GUIDED_TOUR_DATA,\n useValue: {\n index: 0,\n title: '',\n subtitle: '',\n description: '',\n first: true,\n last: true,\n } as IGuidedTourData,\n};\n\n/**\n * Guided tour directive interface.\n */\nexport interface IGuidedTourDirective {\n appGuidedTour?: IGuidedTourData;\n highlightElement: boolean;\n flexibleConnectedPositions: ConnectedPosition[];\n scrollStrategy: 'block' | 'close' | 'noop' | 'reposition';\n dispose(): void;\n display(): void;\n}\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { AppGuidedTourService } from '../../services/guided-tour/guided-tour.service';\nimport { GUIDED_TOUR_DATA } from './guided-tour.interface';\n\n/** Guided tour component. */\n@Component({\n selector: 'app-guided-tour',\n templateUrl: './guided-tour.component.html',\n styleUrls: ['./guided-tour.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AppGuidedTourComponent {\n public readonly tour = inject(AppGuidedTourService);\n\n public readonly data = inject(GUIDED_TOUR_DATA);\n}\n","<mat-card>\n <mat-card-header>\n <mat-card-title>{{ data.title }}</mat-card-title>\n <mat-card-subtitle>{{ data.subtitle }}</mat-card-subtitle>\n </mat-card-header>\n\n <mat-card-content>\n <p>{{ data.description }}</p>\n </mat-card-content>\n\n <mat-card-actions class=\"actions\">\n <button mat-button [disabled]=\"data.first\" (click)=\"tour.previous()\" color=\"primary\">\n <mat-icon>chevron_left</mat-icon>\n Previous\n </button>\n\n <button mat-button (click)=\"tour.end()\" color=\"warn\">\n <mat-icon>close</mat-icon>\n End\n </button>\n\n <button mat-button [disabled]=\"data.last\" (click)=\"tour.next()\" color=\"primary\">\n Next\n <mat-icon>chevron_right</mat-icon>\n </button>\n </mat-card-actions>\n</mat-card>\n","import { ConnectedPosition, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { AfterContentInit, Directive, DOCUMENT, ElementRef, inject, Injector, Input, OnDestroy, ViewContainerRef } from '@angular/core';\n\nimport { OVERLAY_REFERENCE } from '../../providers/overlay.provider';\nimport { AppGuidedTourService } from '../../services/guided-tour/guided-tour.service';\nimport { AppGuidedTourComponent } from './guided-tour.component';\nimport { GUIDED_TOUR_DATA, IGuidedTourData, IGuidedTourDirective } from './guided-tour.interface';\n\n/** Guided tour directive. */\n@Directive({\n selector: '[appGuidedTour]',\n standalone: false,\n})\nexport class AppGuidedTourDirective implements IGuidedTourDirective, AfterContentInit, OnDestroy {\n private readonly el = inject(ElementRef);\n\n private readonly overlay = inject(Overlay);\n\n private readonly overlayConfig = inject(OverlayConfig);\n\n private readonly viewContainerRef = inject(ViewContainerRef);\n\n private readonly doc = inject(DOCUMENT);\n\n private readonly tour = inject(AppGuidedTourService);\n\n /** Guided tour step configuration. */\n @Input() public appGuidedTour: IGuidedTourData | undefined = void 0;\n\n @Input() public highlightElement = false;\n\n /** Connected positions configuration. */\n @Input() public flexibleConnectedPositions: ConnectedPosition[] = [\n // below the origin\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n // above the origin\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n // to the left of the origin\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'end',\n overlayY: 'top',\n },\n {\n originX: 'start',\n originY: 'center',\n overlayX: 'end',\n overlayY: 'center',\n },\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'bottom',\n },\n // to the right of the origin\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'center',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n ];\n\n /** Scroll strategy. */\n @Input() public scrollStrategy: 'block' | 'close' | 'noop' | 'reposition' = 'reposition';\n\n /** Native element ref. */\n private nativeElement?: HTMLElement;\n\n /** Original position of the native element. */\n private nativeElementOriginalPosition?: string;\n\n /** Native element frame. */\n private readonly nativeElementFrame: HTMLElement = this.doc.createElement('div');\n\n /** Overlay reference. */\n private overlayRef: OverlayRef | null = null;\n\n /** Overlay configurator. */\n private configureOverlay(): void {\n const positionHost = this.nativeElement;\n if (typeof positionHost !== 'undefined') {\n this.overlayConfig.hasBackdrop = false;\n this.overlayConfig.panelClass = '';\n this.overlayConfig.minHeight = void 0;\n this.overlayConfig.minWidth = void 0;\n this.overlayConfig.maxHeight = void 0;\n this.overlayConfig.maxWidth = void 0;\n this.overlayConfig.height = void 0;\n this.overlayConfig.width = void 0;\n switch (this.scrollStrategy) {\n case 'block':\n this.overlayConfig.scrollStrategy = this.overlay.scrollStrategies.block();\n break;\n case 'close':\n this.overlayConfig.scrollStrategy = this.overlay.scrollStrategies.close();\n break;\n case 'noop':\n this.overlayConfig.scrollStrategy = this.overlay.scrollStrategies.noop();\n break;\n case 'reposition':\n default:\n this.overlayConfig.scrollStrategy = this.overlay.scrollStrategies.reposition();\n break;\n }\n this.overlayConfig.positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(positionHost)\n .setOrigin(positionHost)\n .withPositions(this.flexibleConnectedPositions);\n }\n }\n\n /** Overlay creator. */\n private createOverlay(): OverlayRef | null {\n if (this.overlayRef === null) {\n this.configureOverlay();\n this.overlayRef = this.overlay.create(this.overlayConfig);\n }\n return this.overlayRef;\n }\n\n /** Disposes an overlay. */\n public dispose(): void {\n if (this.overlayRef !== null) {\n void this.overlayRef?.detach();\n void this.overlayRef?.dispose();\n this.overlayRef = null;\n this.decorateNativeEl(true);\n }\n }\n\n /** Displays an overlay. */\n public display(): void {\n if (typeof this.appGuidedTour !== 'undefined' && !this.overlayRef?.hasAttached) {\n const overlayRef = this.createOverlay();\n const context = Injector.create({\n providers: [\n {\n provide: OVERLAY_REFERENCE,\n useValue: overlayRef,\n },\n {\n provide: GUIDED_TOUR_DATA,\n useValue: { ...this.appGuidedTour },\n },\n {\n provide: AppGuidedTourService,\n useValue: this.tour,\n },\n ],\n });\n const portal = new ComponentPortal(AppGuidedTourComponent, this.viewContainerRef, context);\n const ref = this.overlayRef?.attach(portal);\n ref?.changeDetectorRef.detectChanges();\n this.decorateNativeEl();\n }\n }\n\n /** Adds elevation to the DOM element and scrolls the element into view. */\n private decorateNativeEl(reset?: boolean) {\n if (typeof this.nativeElement !== 'undefined' && this.highlightElement) {\n const rect = this.nativeElement.getBoundingClientRect();\n this.nativeElementOriginalPosition = this.nativeElement.style.position;\n this.nativeElement.style.position = 'relative';\n this.nativeElementFrame.style.position = 'absolute';\n this.nativeElementFrame.style.width = `${rect.width}px`;\n this.nativeElementFrame.style.height = `${rect.height}px`;\n this.nativeElementFrame.style.top = '0px';\n this.nativeElementFrame.style.left = '0px';\n this.nativeElementFrame.style.zIndex = '999';\n this.nativeElementFrame.style.boxShadow = '0 0 0 1000px rgba(0,0,0,0.3)';\n this.nativeElementFrame.style.boxShadow = '0 0 0 1000vmax rgba(0,0,0,0.3)';\n this.nativeElementFrame.style.pointerEvents = 'none';\n if (reset === true) {\n this.nativeElement.removeChild(this.nativeElementFrame);\n this.nativeElement.style.position = this.nativeElementOriginalPosition;\n return;\n }\n this.nativeElement.scrollIntoView({ behavior: 'smooth' });\n this.nativeElement.appendChild(this.nativeElementFrame);\n }\n }\n\n public ngAfterContentInit(): void {\n this.nativeElement = this.el.nativeElement;\n }\n\n public ngOnDestroy(): void {\n this.dispose();\n }\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { AppGuidedTourComponent } from './components/guided-tour/guided-tour.component';\nimport { AppGuidedTourDirective } from './components/guided-tour/guided-tour.directive';\nimport { overlayProvider } from './providers/overlay.provider';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, MatButtonModule, MatIconModule, MatCardModule],\n declarations: [AppGuidedTourComponent, AppGuidedTourDirective],\n providers: [overlayProvider],\n exports: [AppGuidedTourDirective],\n})\nexport class AppGuidedTourModule {}\n","import { AfterViewInit, ChangeDetectionStrategy, Component, inject, QueryList, signal, ViewChildren } from '@angular/core';\n\nimport { AppGuidedTourService } from '../../services/guided-tour/guided-tour.service';\nimport { AppGuidedTourDirective } from '../guided-tour/guided-tour.directive';\nimport { IGuidedTourData } from '../guided-tour/guided-tour.interface';\n\n/** An example of a guided tour. */\n@Component({\n selector: 'app-guided-tour-example',\n templateUrl: './guided-tour-example.component.html',\n styleUrls: ['./guided-tour-example.component.scss'],\n providers: [AppGuidedTourService],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class AppGuidedTourExampleComponent implements AfterViewInit {\n public readonly tour = inject(AppGuidedTourService);\n\n /** Tour steps. */\n @ViewChildren(AppGuidedTourDirective) public steps!: QueryList<AppGuidedTourDirective>;\n\n /** Example tour configuration. */\n public tourConig$ = signal<IGuidedTourData[]>([\n {\n index: 0,\n title: 'first',\n subtitle: 'First step',\n description: 'The first step. Highlighting disabled.',\n first: true,\n last: false,\n },\n {\n index: 1,\n title: 'second',\n subtitle: 'Second step',\n description: 'The second step. Highlighting enabled.',\n first: false,\n last: false,\n },\n {\n index: 2,\n title: 'third',\n subtitle: 'Third step',\n description: 'The third step. Highlighting enabled.',\n first: false,\n last: false,\n },\n {\n index: 3,\n title: 'fourth',\n subtitle: 'Fourth step',\n description: 'The fourth step. Highlighting enabled.',\n first: false,\n last: false,\n },\n {\n index: 4,\n title: 'fifth',\n subtitle: 'Fifth step',\n description: 'The fifth and the final step. Highlighting enabled.',\n first: false,\n last: true,\n },\n ]);\n\n public ngAfterViewInit(): void {\n this.tour.configuration = [...this.steps];\n }\n}\n","@if (!tour.active) {\n <button mat-raised-button color=\"accent\" (click)=\"tour.next()\">Start tour</button>\n} @else {\n <button mat-raised-button color=\"warn\" (click)=\"tour.end()\">End tour</button>\n}\n\n@if (tourConig$(); as config) {\n <div [ngStyle]=\"{ width: '100%' }\">\n <span [ngStyle]=\"{ display: 'inline-block', width: '80%' }\">... Some content ...</span>\n <span [appGuidedTour]=\"config.at(4)\" [highlightElement]=\"true\">fifth item to explain</span>\n </div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(1)\" [highlightElement]=\"true\">second item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(2)\" [highlightElement]=\"true\">third item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [appGuidedTour]=\"config.at(0)\">first item to explain</div>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <p>... Some content ...</p>\n <div [ngStyle]=\"{ width: '100%' }\">\n <span [ngStyle]=\"{ display: 'inline-block', width: '80%' }\">... Some content ...</span>\n <span [appGuidedTour]=\"config.at(3)\" [highlightElement]=\"true\">fourth item to explain</span>\n </div>\n}\n","import { NgModule } from '@angular/core';\nimport { Route, RouterModule } from '@angular/router';\n\nimport { AppGuidedTourExampleComponent } from './components/guided-tour-example/guided-tour-example.component';\n\nconst routes: Route[] = [\n {\n path: '',\n component: AppGuidedTourExampleComponent,\n },\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule],\n})\nexport class AppGuidedTourExampleRoutingModule {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { AppGuidedTourExampleComponent } from './components/guided-tour-example/guided-tour-example.component';\nimport { AppGuidedTourModule } from './guided-tour.module';\nimport { AppGuidedTourExampleRoutingModule } from './guided-tour-example-routing.module';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatIconModule, AppGuidedTourModule, AppGuidedTourExampleRoutingModule],\n declarations: [AppGuidedTourExampleComponent],\n})\nexport class AppGuidedTourExampleModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3.AppGuidedTourDirective"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rfprodz/client-guided-tour",
3
- "version": "1.1.5",
3
+ "version": "1.2.0",
4
4
  "description": "Guided tour feature for Angular clients.",
5
5
  "keywords": [
6
6
  "angular-module",
@@ -19,25 +19,23 @@
19
19
  "license": "MIT",
20
20
  "author": "rfprod <zoidenmacht@zoho.com>",
21
21
  "dependencies": {
22
- "tslib": "2.7.0"
22
+ "tslib": "2.8.1"
23
23
  },
24
24
  "peerDependencies": {
25
- "@angular/cdk": "18.2.5",
26
- "@angular/common": "18.2.5",
27
- "@angular/core": "18.2.5",
28
- "@angular/material": "18.2.5",
29
- "@angular/router": "18.2.5"
25
+ "@angular/cdk": "21.0.2",
26
+ "@angular/common": "21.0.3",
27
+ "@angular/core": "21.0.3",
28
+ "@angular/material": "21.0.2",
29
+ "@angular/router": "21.0.3"
30
30
  },
31
31
  "module": "fesm2022/rfprodz-client-guided-tour.mjs",
32
- "typings": "index.d.ts",
32
+ "typings": "types/rfprodz-client-guided-tour.d.ts",
33
33
  "exports": {
34
34
  "./package.json": {
35
35
  "default": "./package.json"
36
36
  },
37
37
  ".": {
38
- "types": "./index.d.ts",
39
- "esm2022": "./esm2022/rfprodz-client-guided-tour.mjs",
40
- "esm": "./esm2022/rfprodz-client-guided-tour.mjs",
38
+ "types": "./types/rfprodz-client-guided-tour.d.ts",
41
39
  "default": "./fesm2022/rfprodz-client-guided-tour.mjs"
42
40
  }
43
41
  },
@@ -0,0 +1,136 @@
1
+ import * as i4 from '@angular/cdk/overlay';
2
+ import { ConnectedPosition } from '@angular/cdk/overlay';
3
+ import * as i0 from '@angular/core';
4
+ import { InjectionToken, Provider, AfterContentInit, OnDestroy, AfterViewInit, QueryList } from '@angular/core';
5
+ import * as _rfprodz_client_guided_tour from '@rfprodz/client-guided-tour';
6
+ import * as i3 from '@angular/common';
7
+ import * as i5 from '@angular/material/button';
8
+ import * as i6 from '@angular/material/icon';
9
+ import * as i7 from '@angular/material/card';
10
+ import * as i1 from '@angular/router';
11
+
12
+ /** Guided tour step data. */
13
+ interface IGuidedTourData {
14
+ index: number;
15
+ title: string;
16
+ subtitle: string;
17
+ description: string;
18
+ first: boolean;
19
+ last: boolean;
20
+ }
21
+ /** Guided tour step data injection token. */
22
+ declare const GUIDED_TOUR_DATA: InjectionToken<IGuidedTourData>;
23
+ /** Guided tour step data provider. */
24
+ declare const guidedTourDataProvider: Provider;
25
+ /**
26
+ * Guided tour directive interface.
27
+ */
28
+ interface IGuidedTourDirective {
29
+ appGuidedTour?: IGuidedTourData;
30
+ highlightElement: boolean;
31
+ flexibleConnectedPositions: ConnectedPosition[];
32
+ scrollStrategy: 'block' | 'close' | 'noop' | 'reposition';
33
+ dispose(): void;
34
+ display(): void;
35
+ }
36
+
37
+ /** Guided tour directive. */
38
+ declare class AppGuidedTourDirective implements IGuidedTourDirective, AfterContentInit, OnDestroy {
39
+ private readonly el;
40
+ private readonly overlay;
41
+ private readonly overlayConfig;
42
+ private readonly viewContainerRef;
43
+ private readonly doc;
44
+ private readonly tour;
45
+ /** Guided tour step configuration. */
46
+ appGuidedTour: IGuidedTourData | undefined;
47
+ highlightElement: boolean;
48
+ /** Connected positions configuration. */
49
+ flexibleConnectedPositions: ConnectedPosition[];
50
+ /** Scroll strategy. */
51
+ scrollStrategy: 'block' | 'close' | 'noop' | 'reposition';
52
+ /** Native element ref. */
53
+ private nativeElement?;
54
+ /** Original position of the native element. */
55
+ private nativeElementOriginalPosition?;
56
+ /** Native element frame. */
57
+ private readonly nativeElementFrame;
58
+ /** Overlay reference. */
59
+ private overlayRef;
60
+ /** Overlay configurator. */
61
+ private configureOverlay;
62
+ /** Overlay creator. */
63
+ private createOverlay;
64
+ /** Disposes an overlay. */
65
+ dispose(): void;
66
+ /** Displays an overlay. */
67
+ display(): void;
68
+ /** Adds elevation to the DOM element and scrolls the element into view. */
69
+ private decorateNativeEl;
70
+ ngAfterContentInit(): void;
71
+ ngOnDestroy(): void;
72
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourDirective, never>;
73
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AppGuidedTourDirective, "[appGuidedTour]", never, { "appGuidedTour": { "alias": "appGuidedTour"; "required": false; }; "highlightElement": { "alias": "highlightElement"; "required": false; }; "flexibleConnectedPositions": { "alias": "flexibleConnectedPositions"; "required": false; }; "scrollStrategy": { "alias": "scrollStrategy"; "required": false; }; }, {}, never, never, false, never>;
74
+ }
75
+
76
+ /**
77
+ * @title Guided tour service.
78
+ * @description This service should be injected once for each tour. Use component `providers` array to declare.
79
+ */
80
+ declare class AppGuidedTourService {
81
+ /** Guider tour steps. */
82
+ private steps;
83
+ /** Guided tour step configuration. */
84
+ set configuration(steps: IGuidedTourDirective[]);
85
+ /** Active step. */
86
+ active?: IGuidedTourDirective;
87
+ /** Activate next step. */
88
+ next(): void;
89
+ /** Activate previous step. */
90
+ previous(): void;
91
+ /** End tour. */
92
+ end(): void;
93
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourService, never>;
94
+ static ɵprov: i0.ɵɵInjectableDeclaration<AppGuidedTourService>;
95
+ }
96
+
97
+ /** Guided tour component. */
98
+ declare class AppGuidedTourComponent {
99
+ readonly tour: AppGuidedTourService;
100
+ readonly data: _rfprodz_client_guided_tour.IGuidedTourData;
101
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourComponent, never>;
102
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppGuidedTourComponent, "app-guided-tour", never, {}, {}, never, never, false, never>;
103
+ }
104
+
105
+ declare class AppGuidedTourModule {
106
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourModule, never>;
107
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AppGuidedTourModule, [typeof AppGuidedTourComponent, typeof AppGuidedTourDirective], [typeof i3.CommonModule, typeof i4.OverlayModule, typeof i5.MatButtonModule, typeof i6.MatIconModule, typeof i7.MatCardModule], [typeof AppGuidedTourDirective]>;
108
+ static ɵinj: i0.ɵɵInjectorDeclaration<AppGuidedTourModule>;
109
+ }
110
+
111
+ /** An example of a guided tour. */
112
+ declare class AppGuidedTourExampleComponent implements AfterViewInit {
113
+ readonly tour: AppGuidedTourService;
114
+ /** Tour steps. */
115
+ steps: QueryList<AppGuidedTourDirective>;
116
+ /** Example tour configuration. */
117
+ tourConig$: i0.WritableSignal<IGuidedTourData[]>;
118
+ ngAfterViewInit(): void;
119
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourExampleComponent, never>;
120
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppGuidedTourExampleComponent, "app-guided-tour-example", never, {}, {}, never, never, false, never>;
121
+ }
122
+
123
+ declare class AppGuidedTourExampleRoutingModule {
124
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourExampleRoutingModule, never>;
125
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AppGuidedTourExampleRoutingModule, never, [typeof i1.RouterModule], [typeof i1.RouterModule]>;
126
+ static ɵinj: i0.ɵɵInjectorDeclaration<AppGuidedTourExampleRoutingModule>;
127
+ }
128
+
129
+ declare class AppGuidedTourExampleModule {
130
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourExampleModule, never>;
131
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AppGuidedTourExampleModule, [typeof AppGuidedTourExampleComponent], [typeof i3.CommonModule, typeof i5.MatButtonModule, typeof i6.MatIconModule, typeof AppGuidedTourModule, typeof AppGuidedTourExampleRoutingModule], never>;
132
+ static ɵinj: i0.ɵɵInjectorDeclaration<AppGuidedTourExampleModule>;
133
+ }
134
+
135
+ export { AppGuidedTourDirective, AppGuidedTourExampleModule, AppGuidedTourModule, AppGuidedTourService, GUIDED_TOUR_DATA, guidedTourDataProvider };
136
+ export type { IGuidedTourData, IGuidedTourDirective };