@rfprodz/client-guided-tour 1.1.6 → 1.2.6

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.
package/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2024 rfprod.
3
+ Copyright (c) 2026 rfprod.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
package/README.md CHANGED
@@ -104,17 +104,11 @@ export class GuidedComponent implements AfterViewInit {
104
104
  }
105
105
  ```
106
106
 
107
- #### Full example
107
+ #### Examples
108
108
 
109
109
  - [module](https://github.com/rfprod/nx-ng-starter/blob/main/libs/client-guided-tour/src/lib/guided-tour-example.module.ts)
110
110
  - [component](https://github.com/rfprod/nx-ng-starter/tree/main/libs/client-guided-tour/src/lib/components/guided-tour-example)
111
111
 
112
- ## Developer commands reference
113
-
114
- ```bash
115
- npx nx run tools:help --search client-guided-tour:
116
- ```
117
-
118
112
  ## References
119
113
 
120
114
  - [Nx](https://nx.dev)
@@ -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. */
@@ -37,7 +36,7 @@ class AppGuidedTourService {
37
36
  set configuration(steps) {
38
37
  this.steps = steps.sort((x, y) => (x.appGuidedTour?.index ?? 0) - (y.appGuidedTour?.index ?? 0));
39
38
  }
40
- /** Activate next step. */
39
+ /** Activates next step. */
41
40
  next() {
42
41
  this.active?.dispose();
43
42
  const stepIndex = (this.active?.appGuidedTour?.index ?? -1) + 1;
@@ -48,7 +47,7 @@ class AppGuidedTourService {
48
47
  }
49
48
  }
50
49
  }
51
- /** Activate previous step. */
50
+ /** Activates previous step. */
52
51
  previous() {
53
52
  this.active?.dispose();
54
53
  const stepIndex = (this.active?.appGuidedTour?.index ?? -1) - 1;
@@ -59,18 +58,18 @@ class AppGuidedTourService {
59
58
  }
60
59
  }
61
60
  }
62
- /** End tour. */
61
+ /** Ends tour. */
63
62
  end() {
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: "19.1.5", ngImport: i0, type: AppGuidedTourService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
68
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourService, providedIn: 'any' }); }
66
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
67
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourService, providedIn: 'root' }); }
69
68
  }
70
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourService, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourService, decorators: [{
71
70
  type: Injectable,
72
71
  args: [{
73
- providedIn: 'any',
72
+ providedIn: 'root',
74
73
  }]
75
74
  }] });
76
75
 
@@ -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: "19.1.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: "19.1.5", 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: 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.1.2", ngImport: i0, type: AppGuidedTourComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
98
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.2", 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: "19.1.5", ngImport: i0, type: AppGuidedTourComponent, decorators: [{
100
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourComponent, decorators: [{
106
101
  type: Component,
107
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"] }]
108
- }], ctorParameters: () => [{ type: AppGuidedTourService }, { type: undefined, decorators: [{
109
- type: Inject,
110
- args: [GUIDED_TOUR_DATA]
111
- }] }] });
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,19 +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: "19.1.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: "19.1.5", type: AppGuidedTourDirective, isStandalone: false, 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.1.2", ngImport: i0, type: AppGuidedTourDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
311
+ /** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.2", 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: "19.1.5", ngImport: i0, type: AppGuidedTourDirective, decorators: [{
313
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourDirective, decorators: [{
329
314
  type: Directive,
330
315
  args: [{
331
316
  selector: '[appGuidedTour]',
332
317
  standalone: false,
333
318
  }]
334
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i1.OverlayConfig }, { type: i0.ViewContainerRef }, { type: Document, decorators: [{
335
- type: Inject,
336
- args: [DOCUMENT]
337
- }] }, { type: AppGuidedTourService }], propDecorators: { appGuidedTour: [{
319
+ }], propDecorators: { appGuidedTour: [{
338
320
  type: Input
339
321
  }], highlightElement: [{
340
322
  type: Input
@@ -345,11 +327,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
345
327
  }] } });
346
328
 
347
329
  class AppGuidedTourModule {
348
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
349
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourModule, declarations: [AppGuidedTourComponent, AppGuidedTourDirective], imports: [CommonModule, OverlayModule, MatButtonModule, MatIconModule, MatCardModule], exports: [AppGuidedTourDirective] }); }
350
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.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.1.2", ngImport: i0, type: AppGuidedTourModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
331
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.2", 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.1.2", ngImport: i0, type: AppGuidedTourModule, providers: [overlayProvider], imports: [CommonModule, OverlayModule, MatButtonModule, MatIconModule, MatCardModule] }); }
351
333
  }
352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourModule, decorators: [{
334
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourModule, decorators: [{
353
335
  type: NgModule,
354
336
  args: [{
355
337
  imports: [CommonModule, OverlayModule, MatButtonModule, MatIconModule, MatCardModule],
@@ -361,11 +343,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
361
343
 
362
344
  /** An example of a guided tour. */
363
345
  class AppGuidedTourExampleComponent {
364
- /**
365
- * @param tour Guided tour service.
366
- */
367
- constructor(tour) {
368
- this.tour = tour;
346
+ constructor() {
347
+ this.tour = inject(AppGuidedTourService);
369
348
  /** Example tour configuration. */
370
349
  this.tourConig$ = signal([
371
350
  {
@@ -408,18 +387,18 @@ class AppGuidedTourExampleComponent {
408
387
  first: false,
409
388
  last: true,
410
389
  },
411
- ]);
390
+ ], ...(ngDevMode ? [{ debugName: "tourConig$" }] : []));
412
391
  }
413
392
  ngAfterViewInit() {
414
393
  this.tour.configuration = [...this.steps];
415
394
  }
416
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourExampleComponent, deps: [{ token: AppGuidedTourService }], target: i0.ɵɵFactoryTarget.Component }); }
417
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", 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: 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.1.2", ngImport: i0, type: AppGuidedTourExampleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
396
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.2", 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 }); }
418
397
  }
419
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourExampleComponent, decorators: [{
398
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourExampleComponent, decorators: [{
420
399
  type: Component,
421
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"] }]
422
- }], ctorParameters: () => [{ type: AppGuidedTourService }], propDecorators: { steps: [{
401
+ }], propDecorators: { steps: [{
423
402
  type: ViewChildren,
424
403
  args: [AppGuidedTourDirective]
425
404
  }] } });
@@ -431,11 +410,11 @@ const routes = [
431
410
  },
432
411
  ];
433
412
  class AppGuidedTourExampleRoutingModule {
434
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourExampleRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
435
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourExampleRoutingModule, imports: [i1$1.RouterModule], exports: [RouterModule] }); }
436
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourExampleRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
413
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourExampleRoutingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
414
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourExampleRoutingModule, imports: [i1$2.RouterModule], exports: [RouterModule] }); }
415
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourExampleRoutingModule, imports: [RouterModule.forChild(routes), RouterModule] }); }
437
416
  }
438
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourExampleRoutingModule, decorators: [{
417
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourExampleRoutingModule, decorators: [{
439
418
  type: NgModule,
440
419
  args: [{
441
420
  imports: [RouterModule.forChild(routes)],
@@ -444,11 +423,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
444
423
  }] });
445
424
 
446
425
  class AppGuidedTourExampleModule {
447
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourExampleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
448
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourExampleModule, declarations: [AppGuidedTourExampleComponent], imports: [CommonModule, MatButtonModule, MatIconModule, AppGuidedTourModule, AppGuidedTourExampleRoutingModule] }); }
449
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourExampleModule, imports: [CommonModule, MatButtonModule, MatIconModule, AppGuidedTourModule, AppGuidedTourExampleRoutingModule] }); }
426
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourExampleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
427
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.2", 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.1.2", ngImport: i0, type: AppGuidedTourExampleModule, imports: [CommonModule, MatButtonModule, MatIconModule, AppGuidedTourModule, AppGuidedTourExampleRoutingModule] }); }
450
429
  }
451
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: AppGuidedTourExampleModule, decorators: [{
430
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.2", ngImport: i0, type: AppGuidedTourExampleModule, decorators: [{
452
431
  type: NgModule,
453
432
  args: [{
454
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, 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 { 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, 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","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 standalone: false,\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 standalone: false,\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 standalone: false,\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: 'root',\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 /** Activates 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 /** Activates 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 /** Ends 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.6",
3
+ "version": "1.2.6",
4
4
  "description": "Guided tour feature for Angular clients.",
5
5
  "keywords": [
6
6
  "angular-module",
@@ -14,7 +14,7 @@
14
14
  },
15
15
  "repository": {
16
16
  "type": "git",
17
- "url": "https://github.com/rfprod/nx-ng-starter"
17
+ "url": "git+https://github.com/rfprod/nx-ng-starter.git"
18
18
  },
19
19
  "license": "MIT",
20
20
  "author": "rfprod <zoidenmacht@zoho.com>",
@@ -22,20 +22,20 @@
22
22
  "tslib": "2.8.1"
23
23
  },
24
24
  "peerDependencies": {
25
- "@angular/cdk": "19.1.3",
26
- "@angular/common": "19.1.5",
27
- "@angular/core": "19.1.5",
28
- "@angular/material": "19.1.3",
29
- "@angular/router": "19.1.5"
25
+ "@angular/cdk": "21.1.2",
26
+ "@angular/common": "21.1.2",
27
+ "@angular/core": "21.1.2",
28
+ "@angular/material": "21.1.2",
29
+ "@angular/router": "21.1.2"
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",
38
+ "types": "./types/rfprodz-client-guided-tour.d.ts",
39
39
  "default": "./fesm2022/rfprodz-client-guided-tour.mjs"
40
40
  }
41
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
+ /** Activates next step. */
88
+ next(): void;
89
+ /** Activates previous step. */
90
+ previous(): void;
91
+ /** Ends 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 };
package/index.d.ts DELETED
@@ -1,4 +0,0 @@
1
- export * from './lib/components';
2
- export * from './lib/guided-tour.module';
3
- export * from './lib/guided-tour-example.module';
4
- export * from './lib/services';
@@ -1,15 +0,0 @@
1
- import { AppGuidedTourService } from '../../services/guided-tour/guided-tour.service';
2
- import { IGuidedTourData } from './guided-tour.interface';
3
- import * as i0 from "@angular/core";
4
- /** Guided tour component. */
5
- export declare class AppGuidedTourComponent {
6
- readonly tour: AppGuidedTourService;
7
- readonly data: IGuidedTourData;
8
- /**
9
- * @param tour Guided tour service.
10
- * @param data Guided tour step data.
11
- */
12
- constructor(tour: AppGuidedTourService, data: IGuidedTourData);
13
- static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourComponent, never>;
14
- static ɵcmp: i0.ɵɵComponentDeclaration<AppGuidedTourComponent, "app-guided-tour", never, {}, {}, never, never, false, never>;
15
- }
@@ -1,51 +0,0 @@
1
- import { ConnectedPosition, Overlay, OverlayConfig } from '@angular/cdk/overlay';
2
- import { AfterContentInit, ElementRef, OnDestroy, ViewContainerRef } from '@angular/core';
3
- import { AppGuidedTourService } from '../../services/guided-tour/guided-tour.service';
4
- import { IGuidedTourData } from './guided-tour.interface';
5
- import * as i0 from "@angular/core";
6
- /** Guided tour directive. */
7
- export declare class AppGuidedTourDirective implements AfterContentInit, OnDestroy {
8
- private readonly el;
9
- private readonly overlay;
10
- private readonly overlayConfig;
11
- private readonly viewContainerRef;
12
- private readonly doc;
13
- private readonly tour;
14
- /** Guided tour step configuration. */
15
- appGuidedTour: IGuidedTourData | undefined;
16
- highlightElement: boolean;
17
- /** Connected positions configuration. */
18
- flexibleConnectedPositions: ConnectedPosition[];
19
- /** Scroll strategy. */
20
- scrollStrategy: 'block' | 'close' | 'noop' | 'reposition';
21
- /** Native element ref. */
22
- private nativeElement?;
23
- /** Original position of the native element. */
24
- private nativeElementOriginalPosition?;
25
- /** Native element frame. */
26
- private readonly nativeElementFrame;
27
- /** Overlay reference. */
28
- private overlayRef;
29
- /**
30
- * @param el A wrapper around a native element inside of a View.
31
- * @param overlay Service to create Overlays.
32
- * @param overlayConfig Initial configuration used when creating an overlay.
33
- * @param viewContainerRef Represents a container where one or more views can be attached to a component.
34
- * @param tour Guided tour service.
35
- */
36
- constructor(el: ElementRef, overlay: Overlay, overlayConfig: OverlayConfig, viewContainerRef: ViewContainerRef, doc: Document, tour: AppGuidedTourService);
37
- /** Overlay configurator. */
38
- private configureOverlay;
39
- /** Overlay creator. */
40
- private createOverlay;
41
- /** Disposes an overlay. */
42
- dispose(): void;
43
- /** Displays an overlay. */
44
- display(): void;
45
- /** Adds elevation to the DOM element and scrolls the element into view. */
46
- private decorateNativeEl;
47
- ngAfterContentInit(): void;
48
- ngOnDestroy(): void;
49
- static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourDirective, never>;
50
- 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>;
51
- }
@@ -1,14 +0,0 @@
1
- import { InjectionToken, type Provider } from '@angular/core';
2
- /** Guided tour step data. */
3
- export interface IGuidedTourData {
4
- index: number;
5
- title: string;
6
- subtitle: string;
7
- description: string;
8
- first: boolean;
9
- last: boolean;
10
- }
11
- /** Guided tour step data injection token. */
12
- export declare const GUIDED_TOUR_DATA: InjectionToken<IGuidedTourData>;
13
- /** Guided tour step data provider. */
14
- export declare const guidedTourDataProvider: Provider;
@@ -1,20 +0,0 @@
1
- import { AfterViewInit, QueryList } from '@angular/core';
2
- import { AppGuidedTourService } from '../../services/guided-tour/guided-tour.service';
3
- import { AppGuidedTourDirective } from '../guided-tour/guided-tour.directive';
4
- import { IGuidedTourData } from '../guided-tour/guided-tour.interface';
5
- import * as i0 from "@angular/core";
6
- /** An example of a guided tour. */
7
- export declare class AppGuidedTourExampleComponent implements AfterViewInit {
8
- readonly tour: AppGuidedTourService;
9
- /** Tour steps. */
10
- steps: QueryList<AppGuidedTourDirective>;
11
- /** Example tour configuration. */
12
- tourConig$: import("@angular/core").WritableSignal<IGuidedTourData[]>;
13
- /**
14
- * @param tour Guided tour service.
15
- */
16
- constructor(tour: AppGuidedTourService);
17
- ngAfterViewInit(): void;
18
- static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourExampleComponent, never>;
19
- static ɵcmp: i0.ɵɵComponentDeclaration<AppGuidedTourExampleComponent, "app-guided-tour-example", never, {}, {}, never, never, false, never>;
20
- }
@@ -1,2 +0,0 @@
1
- export * from './guided-tour/guided-tour.directive';
2
- export * from './guided-tour/guided-tour.interface';
@@ -1,7 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "@angular/router";
3
- export declare class AppGuidedTourExampleRoutingModule {
4
- static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourExampleRoutingModule, never>;
5
- static ɵmod: i0.ɵɵNgModuleDeclaration<AppGuidedTourExampleRoutingModule, never, [typeof i1.RouterModule], [typeof i1.RouterModule]>;
6
- static ɵinj: i0.ɵɵInjectorDeclaration<AppGuidedTourExampleRoutingModule>;
7
- }
@@ -1,12 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./components/guided-tour-example/guided-tour-example.component";
3
- import * as i2 from "@angular/common";
4
- import * as i3 from "@angular/material/button";
5
- import * as i4 from "@angular/material/icon";
6
- import * as i5 from "./guided-tour.module";
7
- import * as i6 from "./guided-tour-example-routing.module";
8
- export declare class AppGuidedTourExampleModule {
9
- static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourExampleModule, never>;
10
- static ɵmod: i0.ɵɵNgModuleDeclaration<AppGuidedTourExampleModule, [typeof i1.AppGuidedTourExampleComponent], [typeof i2.CommonModule, typeof i3.MatButtonModule, typeof i4.MatIconModule, typeof i5.AppGuidedTourModule, typeof i6.AppGuidedTourExampleRoutingModule], never>;
11
- static ɵinj: i0.ɵɵInjectorDeclaration<AppGuidedTourExampleModule>;
12
- }
@@ -1,13 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- import * as i1 from "./components/guided-tour/guided-tour.component";
3
- import * as i2 from "./components/guided-tour/guided-tour.directive";
4
- import * as i3 from "@angular/common";
5
- import * as i4 from "@angular/cdk/overlay";
6
- import * as i5 from "@angular/material/button";
7
- import * as i6 from "@angular/material/icon";
8
- import * as i7 from "@angular/material/card";
9
- export declare class AppGuidedTourModule {
10
- static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<AppGuidedTourModule, [typeof i1.AppGuidedTourComponent, typeof i2.AppGuidedTourDirective], [typeof i3.CommonModule, typeof i4.OverlayModule, typeof i5.MatButtonModule, typeof i6.MatIconModule, typeof i7.MatCardModule], [typeof i2.AppGuidedTourDirective]>;
12
- static ɵinj: i0.ɵɵInjectorDeclaration<AppGuidedTourModule>;
13
- }
@@ -1,6 +0,0 @@
1
- import { type OverlayRef } from '@angular/cdk/overlay';
2
- import { InjectionToken, type Provider } from '@angular/core';
3
- /** The overlay reference injection token. */
4
- export declare const OVERLAY_REFERENCE: InjectionToken<OverlayRef>;
5
- /** Overlay config provider. */
6
- export declare const overlayProvider: Provider;
@@ -1,22 +0,0 @@
1
- import { AppGuidedTourDirective } from '../../components/guided-tour/guided-tour.directive';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * @title Guided tour service.
5
- * @description This service should be injected once for each tour. Use component `providers` array to declare.
6
- */
7
- export declare class AppGuidedTourService {
8
- /** Guider tour steps. */
9
- private steps;
10
- /** Guided tour step configuration. */
11
- set configuration(steps: AppGuidedTourDirective[]);
12
- /** Active step. */
13
- active?: AppGuidedTourDirective;
14
- /** Activate next step. */
15
- next(): void;
16
- /** Activate previous step. */
17
- previous(): void;
18
- /** End tour. */
19
- end(): void;
20
- static ɵfac: i0.ɵɵFactoryDeclaration<AppGuidedTourService, never>;
21
- static ɵprov: i0.ɵɵInjectableDeclaration<AppGuidedTourService>;
22
- }
@@ -1 +0,0 @@
1
- export * from './guided-tour/guided-tour.service';