UNPKG

ngy-tutorial

Version:
132 lines 10.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Injectable, EventEmitter } from '@angular/core'; import { StepPromptPlacement } from './api/i-options'; import { Observable, BehaviorSubject } from 'rxjs'; import * as i0 from "@angular/core"; export class NgyTutorialService { constructor() { this.toShow = new EventEmitter(); this.tutorialInProgress = new Observable(); this.currentStep = new Observable(); this._tutorialInProgress = new BehaviorSubject(false); this._currentStep = new BehaviorSubject(0); this.tutorialInProgress = this._tutorialInProgress.asObservable(); this.currentStep = this._currentStep.asObservable(); this.steps = []; } /** * @return {?} */ showTutorial() { this._currentStep.next(0); this.toShow.emit(this.steps.slice()); this._tutorialInProgress.next(true); } /** * @return {?} */ hideTutorial() { this.toShow.emit([]); this._tutorialInProgress.next(false); } /** * @param {?} title * @param {?} prompt * @param {?=} option * @return {?} */ addStep(title, prompt, option) { if (option && option.disableNext && option.disableInteraction) { console.warn(`ngy-tutorial error, step ${title} - ${prompt} has disableNext and disableInteraction set to true. This step will cause tutorial to be unable to progress forward as such is not added to the tutorial`); return; } this.steps.push(new TutorialStep(title, prompt, option)); } /** * @param {?} stepNumber * @return {?} */ removeStep(stepNumber) { if (stepNumber > this.steps.length - 1 || stepNumber < 0) { return; } else { this.steps.splice(stepNumber, 1); } } /** * @return {?} */ nextStep() { this._currentStep.next(this._currentStep.value + 1); } /** * @return {?} */ previousStep() { this._currentStep.next(this._currentStep.value - 1); } } NgyTutorialService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] }, ]; NgyTutorialService.ctorParameters = () => []; /** @nocollapse */ NgyTutorialService.ngInjectableDef = i0.defineInjectable({ factory: function NgyTutorialService_Factory() { return new NgyTutorialService(); }, token: NgyTutorialService, providedIn: "root" }); if (false) { /** @type {?} */ NgyTutorialService.prototype.toShow; /** @type {?} */ NgyTutorialService.prototype.tutorialInProgress; /** @type {?} */ NgyTutorialService.prototype.currentStep; /** * @type {?} * @private */ NgyTutorialService.prototype.steps; /** * @type {?} * @private */ NgyTutorialService.prototype._tutorialInProgress; /** * @type {?} * @private */ NgyTutorialService.prototype._currentStep; } class TutorialStep { /** * @param {?} title * @param {?} prompt * @param {?} option */ constructor(title, prompt, option) { this.options = Object.assign({}, TutorialStep.DEFAULT_OPTIONS, option); this.title = title; this.prompt = prompt; } } TutorialStep.DEFAULT_OPTIONS = { placement: StepPromptPlacement.Below }; if (false) { /** * @type {?} * @private */ TutorialStep.DEFAULT_OPTIONS; /** @type {?} */ TutorialStep.prototype.options; /** @type {?} */ TutorialStep.prototype.prompt; /** @type {?} */ TutorialStep.prototype.title; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd5LXR1dG9yaWFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3ktdHV0b3JpYWwvIiwic291cmNlcyI6WyJsaWIvbmd5LXR1dG9yaWFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBZSxtQkFBbUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5FLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUtuRCxNQUFNO0lBT0o7UUFOZ0IsV0FBTSxHQUFrQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUM1RSx1QkFBa0IsR0FBd0IsSUFBSSxVQUFVLEVBQVcsQ0FBQztRQUNwRSxnQkFBVyxHQUF1QixJQUFJLFVBQVUsRUFBVSxDQUFDO1FBRW5FLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQzFELGlCQUFZLEdBQUcsSUFBSSxlQUFlLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUNaLENBQUM7SUFDSixDQUFDOzs7O0lBQ00sWUFBWTtRQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0QyxDQUFDOzs7O0lBQ00sWUFBWTtRQUNqQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Ozs7Ozs7SUFDTSxPQUFPLENBQUMsS0FBYSxFQUFFLE1BQWMsRUFBRSxNQUFvQjtRQUNoRSxJQUFJLE1BQU0sSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxrQkFBa0IsRUFBRTtZQUM3RCxPQUFPLENBQUMsSUFBSSxDQUFDLDRCQUE0QixLQUFLLE1BQU0sTUFBTTswR0FDMEMsQ0FBQyxDQUFDO1lBQ3RHLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksWUFBWSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDOzs7OztJQUNNLFVBQVUsQ0FBQyxVQUFrQjtRQUNsQyxJQUFJLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksVUFBVSxHQUFHLENBQUMsRUFBRTtZQUN4RCxPQUFPO1NBQ1I7YUFBTTtZQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7Ozs7SUFDTSxRQUFRO1FBQ2IsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7OztJQUNNLFlBQVk7UUFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQzs7O1lBN0NGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQjs7Ozs7O0lBRUMsb0NBQTRGOztJQUM1RixnREFBb0Y7O0lBQ3BGLHlDQUEyRTs7Ozs7SUFDM0UsbUNBQThCOzs7OztJQUM5QixpREFBa0U7Ozs7O0lBQ2xFLDBDQUFzRDs7QUF1Q3hEOzs7Ozs7SUFRRSxZQUFtQixLQUFhLEVBQUUsTUFBYyxFQUFFLE1BQW1CO1FBQ25FLElBQUksQ0FBQyxPQUFPLHFCQUNQLFlBQVksQ0FBQyxlQUFlLEVBQzVCLE1BQU0sQ0FDVixDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQzs7QUFkYyw0QkFBZSxHQUFnQjtJQUM1QyxTQUFTLEVBQUUsbUJBQW1CLENBQUMsS0FBSztDQUNyQyxDQUFDOzs7Ozs7SUFGRiw2QkFFRTs7SUFDRiwrQkFBcUI7O0lBQ3JCLDhCQUFlOztJQUNmLDZCQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJU3RlcE9wdGlvbiwgU3RlcFByb21wdFBsYWNlbWVudCB9IGZyb20gJy4vYXBpL2ktb3B0aW9ucyc7XG5pbXBvcnQgeyBJVHV0b3JpYWxTdGVwIH0gZnJvbSAnLi9hcGkvaS10dXRvcmlhbC1zdGVwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBOZ3lUdXRvcmlhbFNlcnZpY2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgdG9TaG93OiBFdmVudEVtaXR0ZXI8SVR1dG9yaWFsU3RlcFtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8SVR1dG9yaWFsU3RlcFtdPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgdHV0b3JpYWxJblByb2dyZXNzOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gbmV3IE9ic2VydmFibGU8Ym9vbGVhbj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGN1cnJlbnRTdGVwOiBPYnNlcnZhYmxlPG51bWJlcj4gPSBuZXcgT2JzZXJ2YWJsZTxudW1iZXI+KCk7XG4gIHByaXZhdGUgc3RlcHM6IFR1dG9yaWFsU3RlcFtdO1xuICBwcml2YXRlIF90dXRvcmlhbEluUHJvZ3Jlc3MgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHJpdmF0ZSBfY3VycmVudFN0ZXAgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMudHV0b3JpYWxJblByb2dyZXNzID0gdGhpcy5fdHV0b3JpYWxJblByb2dyZXNzLmFzT2JzZXJ2YWJsZSgpO1xuICAgIHRoaXMuY3VycmVudFN0ZXAgPSB0aGlzLl9jdXJyZW50U3RlcC5hc09ic2VydmFibGUoKTtcbiAgICB0aGlzLnN0ZXBzID0gW1xuICAgIF07XG4gIH1cbiAgcHVibGljIHNob3dUdXRvcmlhbCgpIHtcbiAgICB0aGlzLl9jdXJyZW50U3RlcC5uZXh0KDApO1xuICAgIHRoaXMudG9TaG93LmVtaXQodGhpcy5zdGVwcy5zbGljZSgpKTtcbiAgICB0aGlzLl90dXRvcmlhbEluUHJvZ3Jlc3MubmV4dCh0cnVlKTtcbiAgfVxuICBwdWJsaWMgaGlkZVR1dG9yaWFsKCkge1xuICAgIHRoaXMudG9TaG93LmVtaXQoW10pO1xuICAgIHRoaXMuX3R1dG9yaWFsSW5Qcm9ncmVzcy5uZXh0KGZhbHNlKTtcbiAgfVxuICBwdWJsaWMgYWRkU3RlcCh0aXRsZTogc3RyaW5nLCBwcm9tcHQ6IHN0cmluZywgb3B0aW9uPzogSVN0ZXBPcHRpb24pIHtcbiAgICBpZiAob3B0aW9uICYmIG9wdGlvbi5kaXNhYmxlTmV4dCAmJiBvcHRpb24uZGlzYWJsZUludGVyYWN0aW9uKSB7XG4gICAgICBjb25zb2xlLndhcm4oYG5neS10dXRvcmlhbCBlcnJvciwgc3RlcCAke3RpdGxlfSAtICR7cHJvbXB0fSBoYXMgZGlzYWJsZU5leHQgYW5kIGRpc2FibGVJbnRlcmFjdGlvbiBzZXQgdG8gdHJ1ZS5cbiAgICAgIFRoaXMgc3RlcCB3aWxsIGNhdXNlIHR1dG9yaWFsIHRvIGJlIHVuYWJsZSB0byBwcm9ncmVzcyBmb3J3YXJkIGFzIHN1Y2ggaXMgbm90IGFkZGVkIHRvIHRoZSB0dXRvcmlhbGApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnN0ZXBzLnB1c2gobmV3IFR1dG9yaWFsU3RlcCh0aXRsZSwgcHJvbXB0LCBvcHRpb24pKTtcbiAgfVxuICBwdWJsaWMgcmVtb3ZlU3RlcChzdGVwTnVtYmVyOiBudW1iZXIpIHtcbiAgICBpZiAoc3RlcE51bWJlciA+IHRoaXMuc3RlcHMubGVuZ3RoIC0gMSB8fCBzdGVwTnVtYmVyIDwgMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN0ZXBzLnNwbGljZShzdGVwTnVtYmVyLCAxKTtcbiAgICB9XG4gIH1cbiAgcHVibGljIG5leHRTdGVwKCkge1xuICAgIHRoaXMuX2N1cnJlbnRTdGVwLm5leHQodGhpcy5fY3VycmVudFN0ZXAudmFsdWUgKyAxKTtcbiAgfVxuICBwdWJsaWMgcHJldmlvdXNTdGVwKCkge1xuICAgIHRoaXMuX2N1cnJlbnRTdGVwLm5leHQodGhpcy5fY3VycmVudFN0ZXAudmFsdWUgLSAxKTtcbiAgfVxufVxuXG5jbGFzcyBUdXRvcmlhbFN0ZXAgaW1wbGVtZW50cyBJVHV0b3JpYWxTdGVwIHtcbiAgcHJpdmF0ZSBzdGF0aWMgREVGQVVMVF9PUFRJT05TOiBJU3RlcE9wdGlvbiA9IHtcbiAgICBwbGFjZW1lbnQ6IFN0ZXBQcm9tcHRQbGFjZW1lbnQuQmVsb3dcbiAgfTtcbiAgb3B0aW9uczogSVN0ZXBPcHRpb247XG4gIHByb21wdDogc3RyaW5nO1xuICB0aXRsZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih0aXRsZTogc3RyaW5nLCBwcm9tcHQ6IHN0cmluZywgb3B0aW9uOiBJU3RlcE9wdGlvbikge1xuICAgIHRoaXMub3B0aW9ucyA9IHtcbiAgICAgIC4uLlR1dG9yaWFsU3RlcC5ERUZBVUxUX09QVElPTlMsXG4gICAgICAuLi5vcHRpb25cbiAgICB9O1xuICAgIHRoaXMudGl0bGUgPSB0aXRsZTtcbiAgICB0aGlzLnByb21wdCA9IHByb21wdDtcbiAgfVxufVxuIl19