@covalent/guided-tour 10.4.0-beta.2 → 11.0.0-beta.1
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/fesm2022/covalent-guided-tour.mjs.map +1 -1
- package/index.d.ts +120 -3
- package/package.json +4 -4
- package/lib/guided-tour.module.d.ts +0 -7
- package/lib/guided-tour.service.d.ts +0 -51
- package/lib/guided.tour.d.ts +0 -62
- package/public_api.d.ts +0 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"covalent-guided-tour.mjs","sources":["../../../../libs/angular-guided-tour/src/lib/guided.tour.ts","../../../../libs/angular-guided-tour/src/lib/guided-tour.service.ts","../../../../libs/angular-guided-tour/src/lib/guided-tour.module.ts","../../../../libs/angular-guided-tour/src/covalent-guided-tour.ts"],"sourcesContent":["import Shepherd from 'shepherd.js';\nimport {\n timer,\n Subject,\n BehaviorSubject,\n merge,\n Subscription,\n fromEvent,\n forkJoin,\n} from 'rxjs';\nimport { takeUntil, skipWhile, filter, skip, first } from 'rxjs/operators';\n\nexport type TourStep = Shepherd.Step.StepOptions;\nexport type TourStepButton = Shepherd.Step.StepOptionsButton;\n\nexport enum ITourEvent {\n 'click' = 'click',\n 'pointerover' = 'pointerover',\n 'keyup' = 'keyup',\n 'added' = 'added', // added to DOM\n 'removed' = 'removed', // removed from DOM\n}\n\nexport interface ITourEventOn {\n selector?: string; // css selector\n event?: keyof typeof ITourEvent; // click, pointerover, keyup, added, removed\n}\n\nexport interface ITourEventOnOptions {\n timeBeforeShow?: number; // delay before step is displayed\n interval?: number; // time between searches for element, defaults to 500ms\n}\n\nexport interface ITourOptions extends Shepherd.Tour.TourOptions {\n abortOn?: ITourEventOn[]; // events to abort on\n}\n\nexport interface ITourStepAttachToOptions extends ITourEventOnOptions {\n highlight?: boolean;\n retries?: number; // # num of attempts to find element\n skipIfNotFound?: boolean; // if element is not found after n retries, move on to next step\n else?: string; // if element is not found, go to step with this id\n goBackTo?: string; // back button goes back to step with this id\n skipFromStepCount?: boolean; // show/hide progress on step\n}\n\nexport interface ITourStepAdvanceOnOptions extends ITourEventOnOptions {\n jumpTo?: string; // next button will jump to step with this id\n allowGoBack?: boolean; // allow back within this step\n}\n\nexport interface ITourStep extends TourStep {\n attachToOptions?: ITourStepAttachToOptions;\n advanceOnOptions?: ITourStepAdvanceOnOptions;\n advanceOn?: ITourEventOn[] | ITourEventOn | any;\n abortOn?: ITourEventOn[];\n count?: number;\n}\n\nabstract class TourButtonsActions {\n abstract next(): void;\n\n abstract back(): void;\n\n abstract cancel(): void;\n\n abstract finish(): void;\n}\n\nconst SHEPHERD_DEFAULT_FIND_TIME_BEFORE_SHOW = 100;\nconst SHEPHERD_DEFAULT_FIND_INTERVAL = 500;\nconst SHEPHERD_DEFAULT_FIND_ATTEMPTS = 20;\n\nconst overriddenEvents: string[] = [\n ITourEvent.click,\n ITourEvent.pointerover,\n ITourEvent.removed,\n ITourEvent.added,\n ITourEvent.keyup,\n];\n\nconst keyEvents: Map<number, string> = new Map<number, string>([\n [13, 'enter'],\n [27, 'esc'],\n]);\n\nconst defaultStepOptions: TourStep = {\n scrollTo: { behavior: 'smooth', block: 'center' },\n cancelIcon: {\n enabled: true,\n },\n};\n\nconst MAT_ICON_BUTTON =\n 'mdc-icon-button material-icons mat-mdc-icon-button mat-mdc-button-base';\nconst MAT_BUTTON = 'mdc-button mat-mdc-button mat-mdc-button-base';\nconst MAT_BUTTON_INVISIBLE = 'shepherd-void-button';\n\nexport class CovalentGuidedTour extends TourButtonsActions {\n private _destroyedEvent$!: Subject<void>;\n\n shepherdTour!: Shepherd.Tour;\n stepOptions: ITourStep;\n\n constructor(stepOptions: ITourStep = defaultStepOptions) {\n super();\n\n this.stepOptions = stepOptions;\n this.newTour();\n }\n\n newTour(opts?: ITourOptions): void {\n this.shepherdTour = new Shepherd.Tour(\n Object.assign(\n {\n defaultStepOptions: this.stepOptions,\n },\n opts\n )\n );\n\n this._destroyedEvent$ = new Subject<void>();\n // listen to cancel and complete to clean up abortOn events\n merge(\n fromEvent(this.shepherdTour, 'cancel'),\n fromEvent(this.shepherdTour, 'complete')\n )\n .pipe(first())\n .subscribe(() => {\n this._destroyedEvent$.next();\n this._destroyedEvent$.complete();\n });\n\n // if abortOn was passed, we bind the event and execute complete\n if (opts && opts.abortOn) {\n const abortArr$: Subject<void>[] = [];\n opts.abortOn.forEach((abortOn: ITourEventOn) => {\n const abortEvent$: Subject<void> = new Subject<void>();\n abortArr$.push(abortEvent$);\n this._bindEvent(abortOn, undefined, abortEvent$, this._destroyedEvent$);\n });\n\n const abortSubs: Subscription = merge(...abortArr$)\n .pipe(takeUntil(this._destroyedEvent$))\n .subscribe(() => {\n this.shepherdTour.complete();\n abortSubs.unsubscribe();\n });\n }\n }\n\n back(): void {\n this.shepherdTour.back();\n }\n\n cancel(): void {\n this.shepherdTour.cancel();\n }\n\n next(): void {\n this.shepherdTour.next();\n }\n\n finish(): void {\n this.shepherdTour.complete();\n }\n\n addSteps(steps: ITourStep[]): void {\n this.shepherdTour.addSteps(this._prepareTour(steps));\n }\n\n start(): void {\n this.shepherdTour.start();\n }\n\n protected _prepareTour(\n originalSteps: ITourStep[],\n finishLabel = 'finish'\n ): ITourStep[] {\n // create Subjects for back and forward events\n const backEvent$: Subject<void> = new Subject<void>();\n const forwardEvent$: Subject<void> = new Subject<void>();\n let _backFlow = false;\n // create Subject for your end\n const destroyedEvent$: Subject<void> = new Subject<void>();\n /**\n * This function adds the step progress in the footer of the shepherd tooltip\n */\n const appendProgressFunc = function (this: any): void {\n // get all the footers that are available in the DOM\n const footers: Element[] = Array.from<Element>(\n document.querySelectorAll('.shepherd-footer')\n );\n // get the last footer since Shepherd always puts the active one at the end\n const footer: Element = footers[footers.length - 1];\n // generate steps html element\n const progress: HTMLSpanElement = document.createElement('span');\n progress.className = 'shepherd-progress';\n progress.innerText = `${this.shepherdTour.currentStep.options.count}/${stepTotal}`;\n // insert into the footer before the first button\n footer.insertBefore(progress, footer.querySelector('.shepherd-button'));\n };\n\n let stepTotal = 0;\n const steps: ITourStep[] = originalSteps.map((step: ITourStep) => {\n let showProgress: () => void = () => {\n //\n };\n if (step.attachToOptions?.skipFromStepCount === true) {\n showProgress = function (): void {\n return;\n };\n } else if (\n step.attachToOptions?.skipFromStepCount === undefined ||\n step.attachToOptions?.skipFromStepCount === false\n ) {\n step.count = ++stepTotal;\n showProgress = appendProgressFunc.bind(this);\n }\n return Object.assign({}, step, {\n when: {\n show: showProgress,\n },\n });\n });\n\n const finishButton: TourStepButton = {\n text: finishLabel,\n action: this['finish'].bind(this),\n classes: MAT_BUTTON,\n };\n\n const voidButton: TourStepButton = {\n text: '',\n action(): void {\n return;\n },\n classes: MAT_BUTTON_INVISIBLE,\n };\n\n // listen to the destroyed event to clean up all the streams\n this._destroyedEvent$.pipe(first()).subscribe(() => {\n backEvent$.complete();\n forwardEvent$.complete();\n destroyedEvent$.next();\n destroyedEvent$.complete();\n });\n\n const totalSteps: number = steps.length;\n steps.forEach((step: ITourStep, index: number) => {\n // create buttons specific for the step\n // this is done to create more control on events\n const nextButton: TourStepButton = {\n text: 'chevron_right',\n action: () => {\n // intercept the next action and trigger event\n forwardEvent$.next();\n this.shepherdTour.next();\n },\n classes: MAT_ICON_BUTTON,\n };\n const backButton: TourStepButton = {\n text: 'chevron_left',\n action: () => {\n // intercept the back action and trigger event\n backEvent$.next();\n _backFlow = true;\n // check if 'goBackTo' is set to jump to a particular step, else just go back\n if (step.attachToOptions && step.attachToOptions.goBackTo) {\n this.shepherdTour.show(step.attachToOptions.goBackTo, false);\n } else {\n this.shepherdTour.back();\n }\n },\n classes:\n step.advanceOnOptions?.allowGoBack === false\n ? MAT_BUTTON_INVISIBLE\n : MAT_ICON_BUTTON,\n };\n\n // check if highlight was provided for the step, else fallback into shepherds usage\n step.highlightClass =\n step.attachToOptions && step.attachToOptions.highlight\n ? 'shepherd-highlight'\n : step.highlightClass;\n\n // Adding buttons in the steps if no buttons are defined\n if (!step.buttons || step.buttons.length === 0) {\n if (index === 0) {\n // first step\n step.buttons = [nextButton];\n } else if (index === totalSteps - 1) {\n // last step\n step.buttons = [backButton, finishButton];\n } else {\n step.buttons = [backButton, nextButton];\n }\n }\n\n // checks \"advanceOn\" to override listeners\n let advanceOn: ITourEventOn[] | ITourEventOn = step.advanceOn;\n // remove the shepherd \"advanceOn\" infavor of ours if the event is part of our list\n if (\n (typeof advanceOn === 'object' &&\n !Array.isArray(advanceOn) &&\n advanceOn.event &&\n overriddenEvents.indexOf(advanceOn.event.split('.')[0]) > -1) ||\n advanceOn instanceof Array\n ) {\n step.advanceOn = undefined;\n step.buttons =\n step.advanceOnOptions && step.advanceOnOptions.allowGoBack\n ? [backButton, voidButton]\n : [voidButton];\n }\n // adds a default beforeShowPromise function\n step.beforeShowPromise = () => {\n return new Promise((resolve: (value?: any) => void) => {\n const additionalCapabilitiesSetup: () => void = () => {\n if (advanceOn && !step.advanceOn) {\n if (!Array.isArray(advanceOn)) {\n advanceOn = [advanceOn];\n }\n\n const advanceArr$: Subject<void>[] = [];\n advanceOn.forEach((_: any) => {\n const advanceEvent$: Subject<void> = new Subject<void>();\n advanceArr$.push(advanceEvent$);\n\n // we start a timer of attempts to find an element in the dom\n this._bindEvent(\n _,\n step.advanceOnOptions,\n advanceEvent$,\n destroyedEvent$\n );\n });\n const advanceSubs: Subscription = forkJoin(...advanceArr$)\n .pipe(takeUntil(merge(destroyedEvent$, backEvent$)))\n .subscribe(() => {\n // check if we need to advance to a specific step, else advance to next step\n if (step.advanceOnOptions && step.advanceOnOptions.jumpTo) {\n this.shepherdTour.show(step.advanceOnOptions.jumpTo);\n } else {\n this.shepherdTour.next();\n }\n forwardEvent$.next();\n advanceSubs.unsubscribe();\n });\n }\n\n // if abortOn was passed on the step, we bind the event and execute complete\n if (step.abortOn) {\n const abortArr$: Subject<void>[] = [];\n step.abortOn.forEach((abortOn: ITourEventOn) => {\n const abortEvent$: Subject<void> = new Subject<void>();\n abortArr$.push(abortEvent$);\n this._bindEvent(\n abortOn,\n undefined,\n abortEvent$,\n destroyedEvent$\n );\n });\n\n const abortSubs: Subscription = merge(...abortArr$)\n .pipe(\n takeUntil(merge(destroyedEvent$, backEvent$, forwardEvent$))\n )\n .subscribe(() => {\n this.shepherdTour.complete();\n abortSubs.unsubscribe();\n });\n }\n };\n\n const _stopTimer$: Subject<void> = new Subject<void>();\n const _retriesReached$: Subject<number> = new Subject<number>();\n const _retryAttempts$: BehaviorSubject<number> =\n new BehaviorSubject<number>(-1);\n\n let id: string | undefined;\n // checks if \"attachTo\" is a string or an object to get the id of an element\n if (typeof step.attachTo === 'string') {\n id = step.attachTo;\n } else if (\n typeof step.attachTo === 'object' &&\n typeof step.attachTo.element === 'string'\n ) {\n id = step.attachTo.element;\n }\n // if we have an id as a string in either case, we use it (we ignore it if its HTMLElement)\n if (id) {\n // if current step is the first step of the tour, we set the buttons to be only \"next\"\n // we had to use `any` since the tour doesnt expose the steps in any fashion nor a way to check if we have modified them at all\n if (\n this.shepherdTour.getCurrentStep() ===\n (<any>this.shepherdTour).steps[0]\n ) {\n this.shepherdTour.getCurrentStep()?.updateStepOptions({\n buttons: originalSteps[index].advanceOn\n ? [voidButton]\n : [nextButton],\n });\n }\n // register to the attempts observable to notify deeveloper when number has been reached\n _retryAttempts$\n .pipe(\n skip(1),\n skipWhile((val: number) => {\n if (\n step.attachToOptions &&\n step.attachToOptions.retries !== undefined\n ) {\n return val < step.attachToOptions.retries;\n }\n return val < SHEPHERD_DEFAULT_FIND_ATTEMPTS;\n }),\n takeUntil(merge(_stopTimer$.asObservable(), destroyedEvent$))\n )\n .subscribe((attempts: number) => {\n _retriesReached$.next(1);\n _retriesReached$.complete();\n // if attempts have been reached, we check \"skipIfNotFound\" to move on to the next step\n if (\n step.attachToOptions &&\n step.attachToOptions.skipIfNotFound\n ) {\n // if we get to this step coming back from a step and it wasnt found\n // then we either check if its the first step and try going forward\n // or we keep going back until we find a step that actually exists\n if (_backFlow) {\n if (\n (<any>this.shepherdTour).steps.indexOf(\n this.shepherdTour.getCurrentStep()\n ) === 0\n ) {\n this.shepherdTour.next();\n } else {\n this.shepherdTour.back();\n }\n _backFlow = false;\n } else {\n // destroys current step if we need to skip it to remove it from the tour\n const currentStep = this.shepherdTour.getCurrentStep();\n currentStep?.destroy();\n this.shepherdTour.next();\n this.shepherdTour.removeStep(currentStep?.id ?? '');\n }\n } else if (step.attachToOptions && step.attachToOptions.else) {\n // if \"skipIfNotFound\" is not true, then we check if \"else\" has been set to jump to a specific step\n this.shepherdTour.show(step.attachToOptions.else);\n } else {\n // tslint:disable-next-line:no-console\n console.warn(\n `Retries reached trying to find ${id}. Retried ${attempts} times.`\n );\n // else we show the step regardless\n resolve();\n }\n });\n\n // we start a timer of attempts to find an element in the dom\n timer(\n (step.attachToOptions && step.attachToOptions.timeBeforeShow) ||\n SHEPHERD_DEFAULT_FIND_TIME_BEFORE_SHOW,\n (step.attachToOptions && step.attachToOptions.interval) ||\n SHEPHERD_DEFAULT_FIND_INTERVAL\n )\n .pipe(\n // the timer will continue either until we find the element or the number of attempts has been reached\n takeUntil(merge(_stopTimer$, _retriesReached$, destroyedEvent$))\n )\n .subscribe(() => {\n const element = document.querySelector(id ?? '');\n // if the element has been found, we stop the timer and resolve the promise\n if (element) {\n _stopTimer$.next();\n _stopTimer$.complete();\n additionalCapabilitiesSetup();\n resolve();\n } else {\n _retryAttempts$.next(_retryAttempts$.value + 1);\n }\n });\n\n // stop find interval if user stops the tour\n destroyedEvent$.subscribe(() => {\n _stopTimer$.next();\n _stopTimer$.complete();\n _retriesReached$.next(1);\n _retriesReached$.complete();\n });\n } else {\n // resolve observable until the timeBeforeShow has passsed or use default\n timer(\n (step.attachToOptions && step.attachToOptions.timeBeforeShow) ||\n SHEPHERD_DEFAULT_FIND_TIME_BEFORE_SHOW\n )\n .pipe(takeUntil(merge(destroyedEvent$)))\n .subscribe(() => {\n resolve();\n });\n }\n });\n };\n });\n return steps;\n }\n\n private _bindEvent(\n eventOn: ITourEventOn,\n eventOnOptions: ITourEventOnOptions | undefined,\n event$: Subject<void>,\n destroyedEvent$: Subject<void>\n ): void {\n const selector = eventOn.selector ?? '';\n const event = eventOn.event;\n // we start a timer of attempts to find an element in the dom\n const timerSubs: Subscription = timer(\n (eventOnOptions && eventOnOptions.timeBeforeShow) ||\n SHEPHERD_DEFAULT_FIND_TIME_BEFORE_SHOW,\n (eventOnOptions && eventOnOptions.interval) ||\n SHEPHERD_DEFAULT_FIND_INTERVAL\n )\n .pipe(takeUntil(destroyedEvent$))\n .subscribe(() => {\n const element = document.querySelector(selector);\n // if the element has been found, we stop the timer and resolve the promise\n if (element) {\n timerSubs.unsubscribe();\n\n if (event === ITourEvent.added) {\n // if event is \"Added\" trigger a soon as this is attached.\n event$.next();\n event$.complete();\n } else if (\n event === ITourEvent.click ||\n event === ITourEvent.pointerover ||\n (event && event.indexOf(ITourEvent.keyup) > -1)\n ) {\n // we use normal listeners for mouseevents\n const mainEvent = event?.split('.')[0];\n const subEvent = event?.split('.')[1];\n fromEvent(element, mainEvent)\n .pipe(\n filter(($event: Event) => {\n // only trigger if the event is a keyboard event and part of out list\n if ($event instanceof KeyboardEvent) {\n if (keyEvents.get($event.keyCode) === subEvent) {\n return true;\n }\n return false;\n } else {\n return true;\n }\n }),\n takeUntil(merge(event$.asObservable(), destroyedEvent$))\n )\n .subscribe(() => {\n event$.next();\n event$.complete();\n });\n } else if (event === ITourEvent.removed) {\n // and we will use MutationObserver for DOM events\n const observer: MutationObserver = new MutationObserver(() => {\n if (!document.body.contains(element)) {\n event$.next();\n event$.complete();\n observer.disconnect();\n }\n });\n\n // stop listenining if tour is closed\n destroyedEvent$.subscribe(() => {\n observer.disconnect();\n });\n // observe for any DOM interaction in the element\n observer.observe(element, {\n childList: true,\n subtree: true,\n attributes: true,\n });\n }\n }\n });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport {\n Router,\n ActivatedRoute,\n ParamMap,\n NavigationExtras,\n NavigationStart,\n Event as NavigationEvent,\n} from '@angular/router';\nimport Shepherd from 'shepherd.js';\nimport { tap, map, filter } from 'rxjs/operators';\nimport { Observable, fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport {\n CovalentGuidedTour,\n ITourStep,\n ITourOptions,\n TourStepButton,\n} from './guided.tour';\n\nexport interface IGuidedTour extends ITourOptions {\n steps: IGuidedTourStep[];\n finishButtonText?: string;\n}\n\nexport interface IGuidedTourStep extends ITourStep {\n routing?: {\n route: string;\n extras?: NavigationExtras;\n };\n}\n\n/**\n * Router enabled Shepherd tour\n */\nexport enum TourEvents {\n complete = 'complete',\n cancel = 'cancel',\n hide = 'hide',\n show = 'show',\n start = 'start',\n active = 'active',\n inactive = 'inactive',\n}\n\nexport interface IGuidedTourEvent {\n step: any;\n previous: any;\n tour: any;\n}\n\n@Injectable()\nexport class CovalentGuidedTourService extends CovalentGuidedTour {\n private _toursMap: Map<string, IGuidedTour> = new Map<string, IGuidedTour>();\n private _tourStepURLs: Map<string, string> = new Map<string, string>();\n constructor(\n private _router: Router,\n private _route: ActivatedRoute,\n private _httpClient: HttpClient\n ) {\n super();\n _router.events\n .pipe(\n filter(\n (event: NavigationEvent) =>\n event instanceof NavigationStart &&\n event.navigationTrigger === 'popstate'\n )\n )\n .subscribe(() => {\n if (this.shepherdTour.isActive()) {\n this.shepherdTour.cancel();\n }\n });\n }\n\n tourEvent$(str: TourEvents): Observable<IGuidedTourEvent> {\n return fromEvent(this.shepherdTour, str);\n }\n\n async registerTour(\n tourName: string,\n tour: IGuidedTour | string\n ): Promise<void> {\n const guidedTour: IGuidedTour =\n typeof tour === 'string' ? await this._loadTour(tour) : tour;\n this._toursMap.set(tourName, guidedTour);\n }\n\n startTour(tourName: string): Shepherd.Tour | undefined {\n const guidedTour = this._getTour(tourName);\n this.finish();\n if (guidedTour && guidedTour.steps && guidedTour.steps.length) {\n // remove steps from tour since we need to preprocess them first\n this.newTour(Object.assign({}, guidedTour, { steps: undefined }));\n const tourInstance: Shepherd.Tour = this.shepherdTour.addSteps(\n this._configureRoutesForSteps(\n this._prepareTour(guidedTour.steps, guidedTour.finishButtonText)\n )\n );\n // init route transition if step URL is different then the current location.\n this.tourEvent$(TourEvents.show).subscribe(\n (tourEvent: IGuidedTourEvent) => {\n const currentURL: string = this._router.url.split(/[?#]/)[0];\n const {\n step: { id, options },\n } = tourEvent;\n if (this._tourStepURLs.has(id)) {\n const stepRoute = this._tourStepURLs.get(id);\n if (stepRoute !== currentURL) {\n this._router.navigate([stepRoute]);\n }\n } else {\n if (options && options.routing) {\n this._tourStepURLs.set(id, options.routing.route);\n } else {\n this._tourStepURLs.set(id, currentURL);\n }\n }\n }\n );\n this.start();\n return tourInstance;\n } else {\n // tslint:disable-next-line:no-console\n console.warn(`Tour ${tourName} does not exist. Please try another tour.`);\n return undefined;\n }\n }\n\n // Finds the right registered tour by using queryParams\n // finishes any other tour and starts the new one.\n initializeOnQueryParams(queryParam = 'tour'): Observable<ParamMap> {\n return this._route.queryParamMap.pipe(\n debounceTime(100),\n tap((params: ParamMap) => {\n const tourParam = params.get(queryParam);\n if (tourParam) {\n this.startTour(tourParam);\n // get current search parameters\n const searchParams: URLSearchParams = new URLSearchParams(\n window.location.search\n );\n // delete tour queryParam\n searchParams.delete(queryParam);\n // build new URL string without it\n let url: string =\n window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname;\n if (searchParams.toString()) {\n url += '?' + searchParams.toString();\n }\n // replace state in history without triggering a navigation\n window.history.replaceState({ path: url }, '', url);\n }\n })\n );\n }\n\n setNextBtnDisability(stepId: string, isDisabled: boolean): void {\n if (this.shepherdTour.getById(stepId)) {\n const stepOptions: ITourStep = (this.shepherdTour.getById(stepId) as any)\n .options;\n stepOptions.buttons?.forEach((button: TourStepButton) => {\n if (button.text === 'chevron_right') {\n button.disabled = isDisabled;\n }\n });\n this.shepherdTour.getById(stepId)?.updateStepOptions(stepOptions);\n }\n }\n\n private async _loadTour(tourUrl: string): Promise<any> {\n const request: Observable<object> = this._httpClient.get(tourUrl);\n try {\n return await request\n .pipe(\n map((resultSet: any) => {\n return JSON.parse(JSON.stringify(resultSet));\n })\n )\n .toPromise();\n } catch {\n return undefined;\n }\n }\n\n private _getTour(key: string): IGuidedTour | undefined {\n return this._toursMap.get(key);\n }\n\n private _configureRoutesForSteps(\n routedSteps: IGuidedTourStep[]\n ): IGuidedTourStep[] {\n routedSteps.forEach((step: IGuidedTourStep) => {\n if (step.routing) {\n const route: string = step.routing.route;\n // if there is a beforeShowPromise, then we save it and call it after the navigation\n if (step.beforeShowPromise) {\n const beforeShowPromise: () => Promise<void> = step.beforeShowPromise;\n step.beforeShowPromise = () => {\n return this._router\n .navigate([route], step.routing?.extras)\n .then(() => {\n return beforeShowPromise();\n });\n };\n } else {\n step.beforeShowPromise = () => this._router.navigate([route]);\n }\n }\n });\n\n return routedSteps;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CovalentGuidedTourService } from './guided-tour.service';\n\n@NgModule({\n imports: [CommonModule],\n providers: [CovalentGuidedTourService],\n declarations: [],\n exports: [],\n})\nexport class CovalentGuidedTourModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"covalent-guided-tour.mjs","sources":["../tmp-esm2022/lib/guided.tour.js","../tmp-esm2022/lib/guided-tour.service.js","../tmp-esm2022/lib/guided-tour.module.js","../tmp-esm2022/covalent-guided-tour.js"],"sourcesContent":["import Shepherd from 'shepherd.js';\nimport { timer, Subject, BehaviorSubject, merge, fromEvent, forkJoin, } from 'rxjs';\nimport { takeUntil, skipWhile, filter, skip, first } from 'rxjs/operators';\nexport var ITourEvent;\n(function (ITourEvent) {\n ITourEvent[\"click\"] = \"click\";\n ITourEvent[\"pointerover\"] = \"pointerover\";\n ITourEvent[\"keyup\"] = \"keyup\";\n ITourEvent[\"added\"] = \"added\";\n ITourEvent[\"removed\"] = \"removed\";\n})(ITourEvent || (ITourEvent = {}));\nclass TourButtonsActions {\n}\nconst SHEPHERD_DEFAULT_FIND_TIME_BEFORE_SHOW = 100;\nconst SHEPHERD_DEFAULT_FIND_INTERVAL = 500;\nconst SHEPHERD_DEFAULT_FIND_ATTEMPTS = 20;\nconst overriddenEvents = [\n ITourEvent.click,\n ITourEvent.pointerover,\n ITourEvent.removed,\n ITourEvent.added,\n ITourEvent.keyup,\n];\nconst keyEvents = new Map([\n [13, 'enter'],\n [27, 'esc'],\n]);\nconst defaultStepOptions = {\n scrollTo: { behavior: 'smooth', block: 'center' },\n cancelIcon: {\n enabled: true,\n },\n};\nconst MAT_ICON_BUTTON = 'mdc-icon-button material-icons mat-mdc-icon-button mat-mdc-button-base';\nconst MAT_BUTTON = 'mdc-button mat-mdc-button mat-mdc-button-base';\nconst MAT_BUTTON_INVISIBLE = 'shepherd-void-button';\nexport class CovalentGuidedTour extends TourButtonsActions {\n _destroyedEvent$;\n shepherdTour;\n stepOptions;\n constructor(stepOptions = defaultStepOptions) {\n super();\n this.stepOptions = stepOptions;\n this.newTour();\n }\n newTour(opts) {\n this.shepherdTour = new Shepherd.Tour(Object.assign({\n defaultStepOptions: this.stepOptions,\n }, opts));\n this._destroyedEvent$ = new Subject();\n // listen to cancel and complete to clean up abortOn events\n merge(fromEvent(this.shepherdTour, 'cancel'), fromEvent(this.shepherdTour, 'complete'))\n .pipe(first())\n .subscribe(() => {\n this._destroyedEvent$.next();\n this._destroyedEvent$.complete();\n });\n // if abortOn was passed, we bind the event and execute complete\n if (opts && opts.abortOn) {\n const abortArr$ = [];\n opts.abortOn.forEach((abortOn) => {\n const abortEvent$ = new Subject();\n abortArr$.push(abortEvent$);\n this._bindEvent(abortOn, undefined, abortEvent$, this._destroyedEvent$);\n });\n const abortSubs = merge(...abortArr$)\n .pipe(takeUntil(this._destroyedEvent$))\n .subscribe(() => {\n this.shepherdTour.complete();\n abortSubs.unsubscribe();\n });\n }\n }\n back() {\n this.shepherdTour.back();\n }\n cancel() {\n this.shepherdTour.cancel();\n }\n next() {\n this.shepherdTour.next();\n }\n finish() {\n this.shepherdTour.complete();\n }\n addSteps(steps) {\n this.shepherdTour.addSteps(this._prepareTour(steps));\n }\n start() {\n this.shepherdTour.start();\n }\n _prepareTour(originalSteps, finishLabel = 'finish') {\n // create Subjects for back and forward events\n const backEvent$ = new Subject();\n const forwardEvent$ = new Subject();\n let _backFlow = false;\n // create Subject for your end\n const destroyedEvent$ = new Subject();\n /**\n * This function adds the step progress in the footer of the shepherd tooltip\n */\n const appendProgressFunc = function () {\n // get all the footers that are available in the DOM\n const footers = Array.from(document.querySelectorAll('.shepherd-footer'));\n // get the last footer since Shepherd always puts the active one at the end\n const footer = footers[footers.length - 1];\n // generate steps html element\n const progress = document.createElement('span');\n progress.className = 'shepherd-progress';\n progress.innerText = `${this.shepherdTour.currentStep.options.count}/${stepTotal}`;\n // insert into the footer before the first button\n footer.insertBefore(progress, footer.querySelector('.shepherd-button'));\n };\n let stepTotal = 0;\n const steps = originalSteps.map((step) => {\n let showProgress = () => {\n //\n };\n if (step.attachToOptions?.skipFromStepCount === true) {\n showProgress = function () {\n return;\n };\n }\n else if (step.attachToOptions?.skipFromStepCount === undefined ||\n step.attachToOptions?.skipFromStepCount === false) {\n step.count = ++stepTotal;\n showProgress = appendProgressFunc.bind(this);\n }\n return Object.assign({}, step, {\n when: {\n show: showProgress,\n },\n });\n });\n const finishButton = {\n text: finishLabel,\n action: this['finish'].bind(this),\n classes: MAT_BUTTON,\n };\n const voidButton = {\n text: '',\n action() {\n return;\n },\n classes: MAT_BUTTON_INVISIBLE,\n };\n // listen to the destroyed event to clean up all the streams\n this._destroyedEvent$.pipe(first()).subscribe(() => {\n backEvent$.complete();\n forwardEvent$.complete();\n destroyedEvent$.next();\n destroyedEvent$.complete();\n });\n const totalSteps = steps.length;\n steps.forEach((step, index) => {\n // create buttons specific for the step\n // this is done to create more control on events\n const nextButton = {\n text: 'chevron_right',\n action: () => {\n // intercept the next action and trigger event\n forwardEvent$.next();\n this.shepherdTour.next();\n },\n classes: MAT_ICON_BUTTON,\n };\n const backButton = {\n text: 'chevron_left',\n action: () => {\n // intercept the back action and trigger event\n backEvent$.next();\n _backFlow = true;\n // check if 'goBackTo' is set to jump to a particular step, else just go back\n if (step.attachToOptions && step.attachToOptions.goBackTo) {\n this.shepherdTour.show(step.attachToOptions.goBackTo, false);\n }\n else {\n this.shepherdTour.back();\n }\n },\n classes: step.advanceOnOptions?.allowGoBack === false\n ? MAT_BUTTON_INVISIBLE\n : MAT_ICON_BUTTON,\n };\n // check if highlight was provided for the step, else fallback into shepherds usage\n step.highlightClass =\n step.attachToOptions && step.attachToOptions.highlight\n ? 'shepherd-highlight'\n : step.highlightClass;\n // Adding buttons in the steps if no buttons are defined\n if (!step.buttons || step.buttons.length === 0) {\n if (index === 0) {\n // first step\n step.buttons = [nextButton];\n }\n else if (index === totalSteps - 1) {\n // last step\n step.buttons = [backButton, finishButton];\n }\n else {\n step.buttons = [backButton, nextButton];\n }\n }\n // checks \"advanceOn\" to override listeners\n let advanceOn = step.advanceOn;\n // remove the shepherd \"advanceOn\" infavor of ours if the event is part of our list\n if ((typeof advanceOn === 'object' &&\n !Array.isArray(advanceOn) &&\n advanceOn.event &&\n overriddenEvents.indexOf(advanceOn.event.split('.')[0]) > -1) ||\n advanceOn instanceof Array) {\n step.advanceOn = undefined;\n step.buttons =\n step.advanceOnOptions && step.advanceOnOptions.allowGoBack\n ? [backButton, voidButton]\n : [voidButton];\n }\n // adds a default beforeShowPromise function\n step.beforeShowPromise = () => {\n return new Promise((resolve) => {\n const additionalCapabilitiesSetup = () => {\n if (advanceOn && !step.advanceOn) {\n if (!Array.isArray(advanceOn)) {\n advanceOn = [advanceOn];\n }\n const advanceArr$ = [];\n advanceOn.forEach((_) => {\n const advanceEvent$ = new Subject();\n advanceArr$.push(advanceEvent$);\n // we start a timer of attempts to find an element in the dom\n this._bindEvent(_, step.advanceOnOptions, advanceEvent$, destroyedEvent$);\n });\n const advanceSubs = forkJoin(...advanceArr$)\n .pipe(takeUntil(merge(destroyedEvent$, backEvent$)))\n .subscribe(() => {\n // check if we need to advance to a specific step, else advance to next step\n if (step.advanceOnOptions && step.advanceOnOptions.jumpTo) {\n this.shepherdTour.show(step.advanceOnOptions.jumpTo);\n }\n else {\n this.shepherdTour.next();\n }\n forwardEvent$.next();\n advanceSubs.unsubscribe();\n });\n }\n // if abortOn was passed on the step, we bind the event and execute complete\n if (step.abortOn) {\n const abortArr$ = [];\n step.abortOn.forEach((abortOn) => {\n const abortEvent$ = new Subject();\n abortArr$.push(abortEvent$);\n this._bindEvent(abortOn, undefined, abortEvent$, destroyedEvent$);\n });\n const abortSubs = merge(...abortArr$)\n .pipe(takeUntil(merge(destroyedEvent$, backEvent$, forwardEvent$)))\n .subscribe(() => {\n this.shepherdTour.complete();\n abortSubs.unsubscribe();\n });\n }\n };\n const _stopTimer$ = new Subject();\n const _retriesReached$ = new Subject();\n const _retryAttempts$ = new BehaviorSubject(-1);\n let id;\n // checks if \"attachTo\" is a string or an object to get the id of an element\n if (typeof step.attachTo === 'string') {\n id = step.attachTo;\n }\n else if (typeof step.attachTo === 'object' &&\n typeof step.attachTo.element === 'string') {\n id = step.attachTo.element;\n }\n // if we have an id as a string in either case, we use it (we ignore it if its HTMLElement)\n if (id) {\n // if current step is the first step of the tour, we set the buttons to be only \"next\"\n // we had to use `any` since the tour doesnt expose the steps in any fashion nor a way to check if we have modified them at all\n if (this.shepherdTour.getCurrentStep() ===\n this.shepherdTour.steps[0]) {\n this.shepherdTour.getCurrentStep()?.updateStepOptions({\n buttons: originalSteps[index].advanceOn\n ? [voidButton]\n : [nextButton],\n });\n }\n // register to the attempts observable to notify deeveloper when number has been reached\n _retryAttempts$\n .pipe(skip(1), skipWhile((val) => {\n if (step.attachToOptions &&\n step.attachToOptions.retries !== undefined) {\n return val < step.attachToOptions.retries;\n }\n return val < SHEPHERD_DEFAULT_FIND_ATTEMPTS;\n }), takeUntil(merge(_stopTimer$.asObservable(), destroyedEvent$)))\n .subscribe((attempts) => {\n _retriesReached$.next(1);\n _retriesReached$.complete();\n // if attempts have been reached, we check \"skipIfNotFound\" to move on to the next step\n if (step.attachToOptions &&\n step.attachToOptions.skipIfNotFound) {\n // if we get to this step coming back from a step and it wasnt found\n // then we either check if its the first step and try going forward\n // or we keep going back until we find a step that actually exists\n if (_backFlow) {\n if (this.shepherdTour.steps.indexOf(this.shepherdTour.getCurrentStep()) === 0) {\n this.shepherdTour.next();\n }\n else {\n this.shepherdTour.back();\n }\n _backFlow = false;\n }\n else {\n // destroys current step if we need to skip it to remove it from the tour\n const currentStep = this.shepherdTour.getCurrentStep();\n currentStep?.destroy();\n this.shepherdTour.next();\n this.shepherdTour.removeStep(currentStep?.id ?? '');\n }\n }\n else if (step.attachToOptions && step.attachToOptions.else) {\n // if \"skipIfNotFound\" is not true, then we check if \"else\" has been set to jump to a specific step\n this.shepherdTour.show(step.attachToOptions.else);\n }\n else {\n // tslint:disable-next-line:no-console\n console.warn(`Retries reached trying to find ${id}. Retried ${attempts} times.`);\n // else we show the step regardless\n resolve();\n }\n });\n // we start a timer of attempts to find an element in the dom\n timer((step.attachToOptions && step.attachToOptions.timeBeforeShow) ||\n SHEPHERD_DEFAULT_FIND_TIME_BEFORE_SHOW, (step.attachToOptions && step.attachToOptions.interval) ||\n SHEPHERD_DEFAULT_FIND_INTERVAL)\n .pipe(\n // the timer will continue either until we find the element or the number of attempts has been reached\n takeUntil(merge(_stopTimer$, _retriesReached$, destroyedEvent$)))\n .subscribe(() => {\n const element = document.querySelector(id ?? '');\n // if the element has been found, we stop the timer and resolve the promise\n if (element) {\n _stopTimer$.next();\n _stopTimer$.complete();\n additionalCapabilitiesSetup();\n resolve();\n }\n else {\n _retryAttempts$.next(_retryAttempts$.value + 1);\n }\n });\n // stop find interval if user stops the tour\n destroyedEvent$.subscribe(() => {\n _stopTimer$.next();\n _stopTimer$.complete();\n _retriesReached$.next(1);\n _retriesReached$.complete();\n });\n }\n else {\n // resolve observable until the timeBeforeShow has passsed or use default\n timer((step.attachToOptions && step.attachToOptions.timeBeforeShow) ||\n SHEPHERD_DEFAULT_FIND_TIME_BEFORE_SHOW)\n .pipe(takeUntil(merge(destroyedEvent$)))\n .subscribe(() => {\n resolve();\n });\n }\n });\n };\n });\n return steps;\n }\n _bindEvent(eventOn, eventOnOptions, event$, destroyedEvent$) {\n const selector = eventOn.selector ?? '';\n const event = eventOn.event;\n // we start a timer of attempts to find an element in the dom\n const timerSubs = timer((eventOnOptions && eventOnOptions.timeBeforeShow) ||\n SHEPHERD_DEFAULT_FIND_TIME_BEFORE_SHOW, (eventOnOptions && eventOnOptions.interval) ||\n SHEPHERD_DEFAULT_FIND_INTERVAL)\n .pipe(takeUntil(destroyedEvent$))\n .subscribe(() => {\n const element = document.querySelector(selector);\n // if the element has been found, we stop the timer and resolve the promise\n if (element) {\n timerSubs.unsubscribe();\n if (event === ITourEvent.added) {\n // if event is \"Added\" trigger a soon as this is attached.\n event$.next();\n event$.complete();\n }\n else if (event === ITourEvent.click ||\n event === ITourEvent.pointerover ||\n (event && event.indexOf(ITourEvent.keyup) > -1)) {\n // we use normal listeners for mouseevents\n const mainEvent = event?.split('.')[0];\n const subEvent = event?.split('.')[1];\n fromEvent(element, mainEvent)\n .pipe(filter(($event) => {\n // only trigger if the event is a keyboard event and part of out list\n if ($event instanceof KeyboardEvent) {\n if (keyEvents.get($event.keyCode) === subEvent) {\n return true;\n }\n return false;\n }\n else {\n return true;\n }\n }), takeUntil(merge(event$.asObservable(), destroyedEvent$)))\n .subscribe(() => {\n event$.next();\n event$.complete();\n });\n }\n else if (event === ITourEvent.removed) {\n // and we will use MutationObserver for DOM events\n const observer = new MutationObserver(() => {\n if (!document.body.contains(element)) {\n event$.next();\n event$.complete();\n observer.disconnect();\n }\n });\n // stop listenining if tour is closed\n destroyedEvent$.subscribe(() => {\n observer.disconnect();\n });\n // observe for any DOM interaction in the element\n observer.observe(element, {\n childList: true,\n subtree: true,\n attributes: true,\n });\n }\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZGVkLnRvdXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItZ3VpZGVkLXRvdXIvc3JjL2xpYi9ndWlkZWQudG91ci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLFFBQVEsTUFBTSxhQUFhLENBQUM7QUFDbkMsT0FBTyxFQUNMLEtBQUssRUFDTCxPQUFPLEVBQ1AsZUFBZSxFQUNmLEtBQUssRUFFTCxTQUFTLEVBQ1QsUUFBUSxHQUNULE1BQU0sTUFBTSxDQUFDO0FBQ2QsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUszRSxNQUFNLENBQU4sSUFBWSxVQU1YO0FBTkQsV0FBWSxVQUFVO0lBQ3BCLDZCQUFpQixDQUFBO0lBQ2pCLHlDQUE2QixDQUFBO0lBQzdCLDZCQUFpQixDQUFBO0lBQ2pCLDZCQUFpQixDQUFBO0lBQ2pCLGlDQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFOVyxVQUFVLEtBQVYsVUFBVSxRQU1yQjtBQXNDRCxNQUFlLGtCQUFrQjtDQVFoQztBQUVELE1BQU0sc0NBQXNDLEdBQUcsR0FBRyxDQUFDO0FBQ25ELE1BQU0sOEJBQThCLEdBQUcsR0FBRyxDQUFDO0FBQzNDLE1BQU0sOEJBQThCLEdBQUcsRUFBRSxDQUFDO0FBRTFDLE1BQU0sZ0JBQWdCLEdBQWE7SUFDakMsVUFBVSxDQUFDLEtBQUs7SUFDaEIsVUFBVSxDQUFDLFdBQVc7SUFDdEIsVUFBVSxDQUFDLE9BQU87SUFDbEIsVUFBVSxDQUFDLEtBQUs7SUFDaEIsVUFBVSxDQUFDLEtBQUs7Q0FDakIsQ0FBQztBQUVGLE1BQU0sU0FBUyxHQUF3QixJQUFJLEdBQUcsQ0FBaUI7SUFDN0QsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDO0lBQ2IsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDO0NBQ1osQ0FBQyxDQUFDO0FB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Q0FBQyxDQUFDLENBQUM7b0JBQ0gsaURBQWlEO29CQUNqRCxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTt3QkFDeEIsU0FBUyxFQUFFLElBQUk7d0JBQ2YsT0FBTyxFQUFFLElBQUk7d0JBQ2IsVUFBVSxFQUFFLElBQUk7cUJBQ2pCLENBQUMsQ0FBQztnQkFDTCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFNoZXBoZXJkIGZyb20gJ3NoZXBoZXJkLmpzJztcbmltcG9ydCB7XG4gIHRpbWVyLFxuICBTdWJqZWN0LFxuICBCZWhhdmlvclN1YmplY3QsXG4gIG1lcmdlLFxuICBTdWJzY3JpcHRpb24sXG4gIGZyb21FdmVudCxcbiAgZm9ya0pvaW4sXG59IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsLCBza2lwV2hpbGUsIGZpbHRlciwgc2tpcCwgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCB0eXBlIFRvdXJTdGVwID0gU2hlcGhlcmQuU3RlcC5TdGVwT3B0aW9ucztcbmV4cG9ydCB0eXBlIFRvdXJTdGVwQnV0dG9uID0gU2hlcGhlcmQuU3RlcC5TdGVwT3B0aW9uc0J1dHRvbjtcblxuZXhwb3J0IGVudW0gSVRvdXJFdmVudCB7XG4gICdjbGljaycgPSAnY2xpY2snLFxuICAncG9pbnRlcm92ZXInID0gJ3BvaW50ZXJvdmVyJyxcbiAgJ2tleXVwJyA9ICdrZXl1cCcsXG4gICdhZGRlZCcgPSAnYWRkZWQnLCAvLyBhZGRlZCB0byBET01cbiAgJ3JlbW92ZWQnID0gJ3JlbW92ZWQnLCAvLyByZW1vdmVkIGZyb20gRE9NXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRvdXJFdmVudE9uIHtcbiAgc2VsZWN0b3I/OiBzdHJpbmc7IC8vIGNzcyBzZWxlY3RvclxuICBldmVudD86IGtleW9mIHR5cGVvZiBJVG91ckV2ZW50OyAvLyBjbGljaywgcG9pbnRlcm92ZXIsIGtleXVwLCBhZGRlZCwgcmVtb3ZlZFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUb3VyRXZlbnRPbk9wdGlvbnMge1xuICB0aW1lQmVmb3JlU2hvdz86IG51bWJlcjsgLy8gZGVsYXkgYmVmb3JlIHN0ZXAgaXMgZGlzcGxheWVkXG4gIGludGVydmFsPzogbnVtYmVyOyAvLyB0aW1lIGJldHdlZW4gc2VhcmNoZXMgZm9yIGVsZW1lbnQsIGRlZmF1bHRzIHRvIDUwMG1zXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRvdXJPcHRpb25zIGV4dGVuZHMgU2hlcGhlcmQuVG91ci5Ub3VyT3B0aW9ucyB7XG4gIGFib3J0T24/OiBJVG91ckV2ZW50T25bXTsgLy8gZXZlbnRzIHRvIGFib3J0IG9uXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRvdXJTdGVwQXR0YWNoVG9PcHRpb25zIGV4dGVuZHMgSVRvdXJFdmVudE9uT3B0aW9ucyB7XG4gIGhpZ2hsaWdodD86IGJvb2xlYW47XG4gIHJldHJpZXM/OiBudW1iZXI7IC8vICMgbnVtIG9mIGF0dGVtcHRzIHRvIGZpbmQgZWxlbWVudFxuICBza2lwSWZOb3RGb3VuZD86IGJvb2xlYW47IC8vIGlmIGVsZW1lbnQgaXMgbm90IGZvdW5kIGFmdGVyIG4gcmV0cmllcywgbW92ZSBvbiB0byBuZXh0IHN0ZXBcbiAgZWxzZT86IHN0cmluZzsgLy8gaWYgZWxlbWVudCBpcyBub3QgZm91bmQsIGdvIHRvIHN0ZXAgd2l0aCB0aGlzIGlkXG4gIGdvQmFja1RvPzogc3RyaW5nOyAvLyBiYWNrIGJ1dHRvbiBnb2VzIGJhY2sgdG8gc3RlcCB3aXRoIHRoaXMgaWRcbiAgc2tpcEZyb21TdGVwQ291bnQ/OiBib29sZWFuOyAvLyBzaG93L2hpZGUgcHJvZ3Jlc3Mgb24gc3RlcFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUb3VyU3RlcEFkdmFuY2VPbk9wdGlvbnMgZXh0ZW5kcyBJVG91ckV2ZW50T25PcHRpb25zIHtcbiAganVtcFRvPzogc3RyaW5nOyAvLyBuZXh0IGJ1dHRvbiB3aWxsIGp1bXAgdG8gc3RlcCB3aXRoIHRoaXMgaWRcbiAgYWxsb3dHb0JhY2s/OiBib29sZWFuOyAvLyBhbGxvdyBiYWNrIHdpdGhpbiB0aGlzIHN0ZXBcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJVG91clN0ZXAgZXh0ZW5kcyBUb3VyU3RlcCB7XG4gIGF0dGFjaFRvT3B0aW9ucz86IElUb3VyU3RlcEF0dGFjaFRvT3B0aW9ucztcbiAgYWR2YW5jZU9uT3B0aW9ucz86IElUb3VyU3RlcEFkdmFuY2VPbk9wdGlvbnM7XG4gIGFkdmFuY2VPbj86IElUb3VyRXZlbnRPbltdIHwgSVRvdXJFdmVudE9uIHwgYW55O1xuICBhYm9ydE9uPzogSVRvdXJFdmVudE9uW107XG4gIGNvdW50PzogbnVtYmVyO1xufVxuXG5hYnN0cmFjdCBjbGFzcyBUb3VyQnV0dG9uc0FjdGlvbnMge1xuICBhYnN0cmFjdCBuZXh0KCk6IHZvaWQ7XG5cbiAgYWJzdHJhY3QgYmFjaygpOiB2b2lkO1xuXG4gIGFic3RyYWN0IGNhbmNlbCgpOiB2b2lkO1xuXG4gIGFic3RyYWN0IGZpbmlzaCgpOiB2b2lkO1xufVxuXG5jb25zdCBTSEVQSEVSRF9ERUZBVUxUX0ZJTkRfVElNRV9CRUZPUkVfU0hPVyA9IDEwMDtcbmNvbnN0IFNIRVBIRVJEX0RFRkFVTFRfRklORF9JTlRFUlZBTCA9IDUwMDtcbmNvbnN0IFNIRVBIRVJEX0RFRkFVTFRfRklORF9BVFRFTVBUUyA9IDIwO1xuXG5jb25zdCBvdmVycmlkZGVuRXZlbnRzOiBzdHJpbmdbXSA9IFtcbiAgSVRvdXJFdmVudC5jbGljayxcbiAgSVRvdXJFdmVudC5wb2ludGVyb3ZlcixcbiAgSVRvdXJFdmVudC5yZW1vdmVkLFxuICBJVG91ckV2ZW50LmFkZGVkLFxuICBJVG91ckV2ZW50LmtleXVwLFxuXTtcblxuY29uc3Qga2V5RXZlbnRzOiBNYXA8bnVtYmVyLCBzdHJpbmc+ID0gbmV3IE1hcDxudW1iZXIsIHN0cmluZz4oW1xuICBbMTMsICdlbnRlciddLFxuICBbMjcsICdlc2MnXSxcbl0pO1xuXG5jb25zdCBkZWZhdWx0U3RlcE9wdGlvbnM6IFRvdXJTdGVwID0ge1xuICBzY3JvbGxUbzogeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnY2VudGVyJyB9LFxuICBjYW5jZWxJY29uOiB7XG4gICAgZW5hYmxlZDogdHJ1ZSxcbiAgfSxcbn07XG5cbmNvbnN0IE1BVF9JQ09OX0JVVFRPTiA9XG4gICdtZGMtaWNvbi1idXR0b24gbWF0ZXJpYWwtaWNvbnMgbWF0LW1kYy1pY29uLWJ1dHRvbiBtYXQtbWRjLWJ1dHRvbi1iYXNlJztcbmNvbnN0IE1BVF9CVVRUT04gPSAnbWRjLWJ1dHRvbiBtYXQtbWRjLWJ1dHRvbiBtYXQtbWRjLWJ1dHRvbi1iYXNlJztcbmNvbnN0IE1BVF9CVVRUT05fSU5WSVNJQkxFID0gJ3NoZXBoZXJkLXZvaWQtYnV0dG9uJztcblxuZXhwb3J0IGNsYXNzIENvdmFsZW50R3VpZGVkVG91ciBleHRlbmRzIFRvdXJCdXR0b25zQWN0aW9ucyB7XG4gIHByaXZhdGUgX2Rlc3Ryb3llZEV2ZW50JCE6IFN1YmplY3Q8dm9pZD47XG5cbiAgc2hlcGhlcmRUb3VyITogU2hlcGhlcmQuVG91cjtcbiAgc3RlcE9wdGlvbnM6IElUb3VyU3RlcDtcblxuICBjb25zdHJ1Y3RvcihzdGVwT3B0aW9uczogSVRvdXJTdGVwID0gZGVmYXVsdFN0ZXBPcHRpb25zKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuc3RlcE9wdGlvbnMgPSBzdGVwT3B0aW9ucztcbiAgICB0aGlzLm5ld1RvdXIoKTtcbiAgfVxuXG4gIG5ld1RvdXIob3B0cz86IElUb3VyT3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMuc2hlcGhlcmRUb3VyID0gbmV3IFNoZXBoZXJkLlRvdXIoXG4gICAgICBPYmplY3QuYXNzaWduKFxuICAgICAgICB7XG4gICAgICAgICAgZGVmYXVsdFN0ZXBPcHRpb25zOiB0aGlzLnN0ZXBPcHRpb25zLFxuICAgICAgICB9LFxuICAgICAgICBvcHRzXG4gICAgICApXG4gICAgKTtcblxuICAgIHRoaXMuX2Rlc3Ryb3llZEV2ZW50JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLy8gbGlzdGVuIHRvIGNhbmNlbCBhbmQgY29tcGxldGUgdG8gY2xlYW4gdXAgYWJvcnRPbiBldmVudHNcbiAgICBtZXJnZShcbiAgICAgIGZyb21FdmVudCh0aGlzLnNoZXBoZXJkVG91ciwgJ2NhbmNlbCcpLFxuICAgICAgZnJvbUV2ZW50KHRoaXMuc2hlcGhlcmRUb3VyLCAnY29tcGxldGUnKVxuICAgIClcbiAgICAgIC5waXBlKGZpcnN0KCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkRXZlbnQkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkRXZlbnQkLmNvbXBsZXRlKCk7XG4gICAgICB9KTtcblxuICAgIC8vIGlmIGFib3J0T24gd2FzIHBhc3NlZCwgd2UgYmluZCB0aGUgZXZlbnQgYW5kIGV4ZWN1dGUgY29tcGxldGVcbiAgICBpZiAob3B0cyAmJiBvcHRzLmFib3J0T24pIHtcbiAgICAgIGNvbnN0IGFib3J0QXJyJDogU3ViamVjdDx2b2lkPltdID0gW107XG4gICAgICBvcHRzLmFib3J0T24uZm9yRWFjaCgoYWJvcnRPbjogSVRvdXJFdmVudE9uKSA9PiB7XG4gICAgICAgIGNvbnN0IGFib3J0RXZlbnQkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAgICAgYWJvcnRBcnIkLnB1c2goYWJvcnRFdmVudCQpO1xuICAgICAgICB0aGlzLl9iaW5kRXZlbnQoYWJvcnRPbiwgdW5kZWZpbmVkLCBhYm9ydEV2ZW50JCwgdGhpcy5fZGVzdHJveWVkRXZlbnQkKTtcbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBhYm9ydFN1YnM6IFN1YnNjcmlwdGlvbiA9IG1lcmdlKC4uLmFib3J0QXJyJClcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3llZEV2ZW50JCkpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuc2hlcGhlcmRUb3VyLmNvbXBsZXRlKCk7XG4gICAgICAgICAgYWJvcnRTdWJzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5zaGVwaGVyZFRvdXIuYmFjaygpO1xuICB9XG5cbiAgY2FuY2VsKCk6IHZvaWQge1xuICAgIHRoaXMuc2hlcGhlcmRUb3VyLmNhbmNlbCgpO1xuICB9XG5cbiAgbmV4dCgpOiB2b2lkIHtcbiAgICB0aGlzLnNoZXBoZXJkVG91ci5uZXh0KCk7XG4gIH1cblxuICBmaW5pc2goKTogdm9pZCB7XG4gICAgdGhpcy5zaGVwaGVyZFRvdXIuY29tcGxldGUoKTtcbiAgfVxuXG4gIGFkZFN0ZXBzKHN0ZXBzOiBJVG91clN0ZXBbXSk6IHZvaWQge1xuICAgIHRoaXMuc2hlcGhlcmRUb3VyLmFkZFN0ZXBzKHRoaXMuX3ByZXBhcmVUb3VyKHN0ZXBzKSk7XG4gIH1cblxuICBzdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLnNoZXBoZXJkVG91ci5zdGFydCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9wcmVwYXJlVG91cihcbiAgICBvcmlnaW5hbFN0ZXBzOiBJVG91clN0ZXBbXSxcbiAgICBmaW5pc2hMYWJlbCA9ICdmaW5pc2gnXG4gICk6IElUb3VyU3RlcFtdIHtcbiAgICAvLyBjcmVhdGUgU3ViamVjdHMgZm9yIGJhY2sgYW5kIGZvcndhcmQgZXZlbnRzXG4gICAgY29uc3QgYmFja0V2ZW50JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgY29uc3QgZm9yd2FyZEV2ZW50JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgbGV0IF9iYWNrRmxvdyA9IGZhbHNlO1xuICAgIC8vIGNyZWF0ZSBTdWJqZWN0IGZvciB5b3VyIGVuZFxuICAgIGNvbnN0IGRlc3Ryb3llZEV2ZW50JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqXG4gICAgICogVGhpcyBmdW5jdGlvbiBhZGRzIHRoZSBzdGVwIHByb2dyZXNzIGluIHRoZSBmb290ZXIgb2YgdGhlIHNoZXBoZXJkIHRvb2x0aXBcbiAgICAgKi9cbiAgICBjb25zdCBhcHBlbmRQcm9ncmVzc0Z1bmMgPSBmdW5jdGlvbiAodGhpczogYW55KTogdm9pZCB7XG4gICAgICAvLyBnZXQgYWxsIHRoZSBmb290ZXJzIHRoYXQgYXJlIGF2YWlsYWJsZSBpbiB0aGUgRE9NXG4gICAgICBjb25zdCBmb290ZXJzOiBFbGVtZW50W10gPSBBcnJheS5mcm9tPEVsZW1lbnQ+KFxuICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCcuc2hlcGhlcmQtZm9vdGVyJylcbiAgICAgICk7XG4gICAgICAvLyBnZXQgdGhlIGxhc3QgZm9vdGVyIHNpbmNlIFNoZXBoZXJkIGFsd2F5cyBwdXRzIHRoZSBhY3RpdmUgb25lIGF0IHRoZSBlbmRcbiAgICAgIGNvbnN0IGZvb3RlcjogRWxlbWVudCA9IGZvb3RlcnNbZm9vdGVycy5sZW5ndGggLSAxXTtcbiAgICAgIC8vIGdlbmVyYXRlIHN0ZXBzIGh0bWwgZWxlbWVudFxuICAgICAgY29uc3QgcHJvZ3Jlc3M6IEhUTUxTcGFuRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTtcbiAgICAgIHByb2dyZXNzLmNsYXNzTmFtZSA9ICdzaGVwaGVyZC1wcm9ncmVzcyc7XG4gICAgICBwcm9ncmVzcy5pbm5lclRleHQgPSBgJHt0aGlzLnNoZXBoZXJkVG91ci5jdXJyZW50U3RlcC5vcHRpb25zLmNvdW50fS8ke3N0ZXBUb3RhbH1gO1xuICAgICAgLy8gaW5zZXJ0IGludG8gdGhlIGZvb3RlciBiZWZvcmUgdGhlIGZpcnN0IGJ1dHRvblxuICAgICAgZm9vdGVyLmluc2VydEJlZm9yZShwcm9ncmVzcywgZm9vdGVyLnF1ZXJ5U2VsZWN0b3IoJy5zaGVwaGVyZC1idXR0b24nKSk7XG4gICAgfTtcblxuICAgIGxldCBzdGVwVG90YWwgPSAwO1xuICAgIGNvbnN0IHN0ZXBzOiBJVG91clN0ZXBbXSA9IG9yaWdpbmFsU3RlcHMubWFwKChzdGVwOiBJVG91clN0ZXApID0+IHtcbiAgICAgIGxldCBzaG93UHJvZ3Jlc3M6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgICAgIC8vXG4gICAgICB9O1xuICAgICAgaWYgKHN0ZXAuYXR0YWNoVG9PcHRpb25zPy5za2lwRnJvbVN0ZXBDb3VudCA9PT0gdHJ1ZSkge1xuICAgICAgICBzaG93UHJvZ3Jlc3MgPSBmdW5jdGlvbiAoKTogdm9pZCB7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9O1xuICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgc3RlcC5hdHRhY2hUb09wdGlvbnM/LnNraXBGcm9tU3RlcENvdW50ID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgc3RlcC5hdHRhY2hUb09wdGlvbnM/LnNraXBGcm9tU3RlcENvdW50ID09PSBmYWxzZVxuICAgICAgKSB7XG4gICAgICAgIHN0ZXAuY291bnQgPSArK3N0ZXBUb3RhbDtcbiAgICAgICAgc2hvd1Byb2dyZXNzID0gYXBwZW5kUHJvZ3Jlc3NGdW5jLmJpbmQodGhpcyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgc3RlcCwge1xuICAgICAgICB3aGVuOiB7XG4gICAgICAgICAgc2hvdzogc2hvd1Byb2dyZXNzLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBmaW5pc2hCdXR0b246IFRvdXJTdGVwQnV0dG9uID0ge1xuICAgICAgdGV4dDogZmluaXNoTGFiZWwsXG4gICAgICBhY3Rpb246IHRoaXNbJ2ZpbmlzaCddLmJpbmQodGhpcyksXG4gICAgICBjbGFzc2VzOiBNQVRfQlVUVE9OLFxuICAgIH07XG5cbiAgICBjb25zdCB2b2lkQnV0dG9uOiBUb3VyU3RlcEJ1dHRvbiA9IHtcbiAgICAgIHRleHQ6ICcnLFxuICAgICAgYWN0aW9uKCk6IHZvaWQge1xuICAgICAgICByZXR1cm47XG4gICAgICB9LFxuICAgICAgY2xhc3NlczogTUFUX0JVVFRPTl9JTlZJU0lCTEUsXG4gICAgfTtcblxuICAgIC8vIGxpc3RlbiB0byB0aGUgZGVzdHJveWVkIGV2ZW50IHRvIGNsZWFuIHVwIGFsbCB0aGUgc3RyZWFtc1xuICAgIHRoaXMuX2Rlc3Ryb3llZEV2ZW50JC5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBiYWNrRXZlbnQkLmNvbXBsZXRlKCk7XG4gICAgICBmb3J3YXJkRXZlbnQkLmNvbXBsZXRlKCk7XG4gICAgICBkZXN0cm95ZWRFdmVudCQubmV4dCgpO1xuICAgICAgZGVzdHJveWVkRXZlbnQkLmNvbXBsZXRlKCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCB0b3RhbFN0ZXBzOiBudW1iZXIgPSBzdGVwcy5sZW5ndGg7XG4gICAgc3RlcHMuZm9yRWFjaCgoc3RlcDogSVRvdXJTdGVwLCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICAvLyBjcmVhdGUgYnV0dG9ucyBzcGVjaWZpYyBmb3IgdGhlIHN0ZXBcbiAgICAgIC8vIHRoaXMgaXMgZG9uZSB0byBjcmVhdGUgbW9yZSBjb250cm9sIG9uIGV2ZW50c1xuICAgICAgY29uc3QgbmV4dEJ1dHRvbjogVG91clN0ZXBCdXR0b24gPSB7XG4gICAgICAgIHRleHQ6ICdjaGV2cm9uX3JpZ2h0JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgLy8gaW50ZXJjZXB0IHRoZSBuZXh0IGFjdGlvbiBhbmQgdHJpZ2dlciBldmVudFxuICAgICAgICAgIGZvcndhcmRFdmVudCQubmV4dCgpO1xuICAgICAgICAgIHRoaXMuc2hlcGhlcmRUb3VyLm5leHQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NlczogTUFUX0lDT05fQlVUVE9OLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGJhY2tCdXR0b246IFRvdXJTdGVwQnV0dG9uID0ge1xuICAgICAgICB0ZXh0OiAnY2hldnJvbl9sZWZ0JyxcbiAgICAgICAgYWN0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgLy8gaW50ZXJjZXB0IHRoZSBiYWNrIGFjdGlvbiBhbmQgdHJpZ2dlciBldmVudFxuICAgICAgICAgIGJhY2tFdmVudCQubmV4dCgpO1xuICAgICAgICAgIF9iYWNrRmxvdyA9IHRydWU7XG4gICAgICAgICAgLy8gY2hlY2sgaWYgJ2dvQmFja1RvJyBpcyBzZXQgdG8ganVtcCB0byBhIHBhcnRpY3VsYXIgc3RlcCwgZWxzZSBqdXN0IGdvIGJhY2tcbiAgICAgICAgICBpZiAoc3RlcC5hdHRhY2hUb09wdGlvbnMgJiYgc3RlcC5hdHRhY2hUb09wdGlvbnMuZ29CYWNrVG8pIHtcbiAgICAgICAgICAgIHRoaXMuc2hlcGhlcmRUb3VyLnNob3coc3RlcC5hdHRhY2hUb09wdGlvbnMuZ29CYWNrVG8sIGZhbHNlKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zaGVwaGVyZFRvdXIuYmFjaygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgY2xhc3NlczpcbiAgICAgICAgICBzdGVwLmFkdmFuY2VPbk9wdGlvbnM/LmFsbG93R29CYWNrID09PSBmYWxzZVxuICAgICAgICAgICAgPyBNQVRfQlVUVE9OX0lOVklTSUJMRVxuICAgICAgICAgICAgOiBNQVRfSUNPTl9CVVRUT04sXG4gICAgICB9O1xuXG4gICAgICAvLyBjaGVjayBpZiBoaWdobGlnaHQgd2FzIHByb3ZpZGVkIGZvciB0aGUgc3RlcCwgZWxzZSBmYWxsYmFjayBpbnRvIHNoZXBoZXJkcyB1c2FnZVxuICAgICAgc3RlcC5oaWdobGlnaHRDbGFzcyA9XG4gICAgICAgIHN0ZXAuYXR0YWNoVG9PcHRpb25zICYmIHN0ZXAuYXR0YWNoVG9PcHRpb25zLmhpZ2hsaWdodFxuICAgICAgICAgID8gJ3NoZXBoZXJkLWhpZ2hsaWdodCdcbiAgICAgICAgICA6IHN0ZXAuaGlnaGxpZ2h0Q2xhc3M7XG5cbiAgICAgIC8vIEFkZGluZyBidXR0b25zIGluIHRoZSBzdGVwcyBpZiBubyBidXR0b25zIGFyZSBkZWZpbmVkXG4gICAgICBpZiAoIXN0ZXAuYnV0dG9ucyB8fCBzdGVwLmJ1dHRvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIGlmIChpbmRleCA9PT0gMCkge1xuICAgICAgICAgIC8vIGZpcnN0IHN0ZXBcbiAgICAgICAgICBzdGVwLmJ1dHRvbnMgPSBbbmV4dEJ1dHRvbl07XG4gICAgICAgIH0gZWxzZSBpZiAoaW5kZXggPT09IHRvdGFsU3RlcHMgLSAxKSB7XG4gICAgICAgICAgLy8gbGFzdCBzdGVwXG4gICAgICAgICAgc3RlcC5idXR0b25zID0gW2JhY2tCdXR0b24sIGZpbmlzaEJ1dHRvbl07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RlcC5idXR0b25zID0gW2JhY2tCdXR0b24sIG5leHRCdXR0b25dO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIGNoZWNrcyBcImFkdmFuY2VPblwiIHRvIG92ZXJyaWRlIGxpc3RlbmVyc1xuICAgICAgbGV0IGFkdmFuY2VPbjogSVRvdXJFdmVudE9uW10gfCBJVG91ckV2ZW50T24gPSBzdGVwLmFkdmFuY2VPbjtcbiAgICAgIC8vIHJlbW92ZSB0aGUgc2hlcGhlcmQgXCJhZHZhbmNlT25cIiBpbmZhdm9yIG9mIG91cnMgaWYgdGhlIGV2ZW50IGlzIHBhcnQgb2Ygb3VyIGxpc3RcbiAgICAgIGlmIChcbiAgICAgICAgKHR5cGVvZiBhZHZhbmNlT24gPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgIUFycmF5LmlzQXJyYXkoYWR2YW5jZU9uKSAmJlxuICAgICAgICAgIGFkdmFuY2VPbi5ldmVudCAmJlxuICAgICAgICAgIG92ZXJyaWRkZW5FdmVudHMuaW5kZXhPZihhZHZhbmNlT24uZXZlbnQuc3BsaXQoJy4nKVswXSkgPiAtMSkgfHxcbiAgICAgICAgYWR2YW5jZU9uIGluc3RhbmNlb2YgQXJyYXlcbiAgICAgICkge1xuICAgICAgICBzdGVwLmFkdmFuY2VPbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgc3RlcC5idXR0b25zID1cbiAgICAgICAgICBzdGVwLmFkdmFuY2VPbk9wdGlvbnMgJiYgc3RlcC5hZHZhbmNlT25PcHRpb25zLmFsbG93R29CYWNrXG4gICAgICAgICAgICA/IFtiYWNrQnV0dG9uLCB2b2lkQnV0dG9uXVxuICAgICAgICAgICAgOiBbdm9pZEJ1dHRvbl07XG4gICAgICB9XG4gICAgICAvLyBhZGRzIGEgZGVmYXVsdCBiZWZvcmVTaG93UHJvbWlzZSBmdW5jdGlvblxuICAgICAgc3RlcC5iZWZvcmVTaG93UHJvbWlzZSA9ICgpID0+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlOiAodmFsdWU/OiBhbnkpID0+IHZvaWQpID0+IHtcbiAgICAgICAgICBjb25zdCBhZGRpdGlvbmFsQ2FwYWJpbGl0aWVzU2V0dXA6ICgpID0+IHZvaWQgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYWR2YW5jZU9uICYmICFzdGVwLmFkdmFuY2VPbikge1xuICAgICAgICAgICAgICBpZiAoIUFycmF5LmlzQXJyYXkoYWR2YW5jZU9uKSkge1xuICAgICAgICAgICAgICAgIGFkdmFuY2VPbiA9IFthZHZhbmNlT25dO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgY29uc3QgYWR2YW5jZUFyciQ6IFN1YmplY3Q8dm9pZD5bXSA9IFtdO1xuICAgICAgICAgICAgICBhZHZhbmNlT24uZm9yRWFjaCgoXzogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYWR2YW5jZUV2ZW50JDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgICAgICAgICAgICAgYWR2YW5jZUFyciQucHVzaChhZHZhbmNlRXZlbnQkKTtcblxuICAgICAgICAgICAgICAgIC8vIHdlIHN0YXJ0IGEgdGltZXIgb2YgYXR0ZW1wdHMgdG8gZmluZCBhbiBlbGVtZW50IGluIHRoZSBkb21cbiAgICAgICAgICAgICAgICB0aGlzLl9iaW5kRXZlbnQoXG4gICAgICAgICAgICAgICAgICBfLFxuICAgICAgICAgICAgICAgICAgc3RlcC5hZHZhbmNlT25PcHRpb25zLFxuICAgICAgICAgICAgICAgICAgYWR2YW5jZUV2ZW50JCxcbiAgICAgICAgICAgICAgICAgIGRlc3Ryb3llZEV2ZW50JFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICBjb25zdCBhZHZhbmNlU3ViczogU3Vic2NyaXB0aW9uID0gZm9ya0pvaW4oLi4uYWR2YW5jZUFyciQpXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKG1lcmdlKGRlc3Ryb3llZEV2ZW50JCwgYmFja0V2ZW50JCkpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gY2hlY2sgaWYgd2UgbmVlZCB0byBhZHZhbmNlIHRvIGEgc3BlY2lmaWMgc3RlcCwgZWxzZSBhZHZhbmNlIHRvIG5leHQgc3RlcFxuICAgICAgICAgICAgICAgICAgaWYgKHN0ZXAuYWR2YW5jZU9uT3B0aW9ucyAmJiBzdGVwLmFkdmFuY2VPbk9wdGlvbnMuanVtcFRvKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2hlcGhlcmRUb3VyLnNob3coc3RlcC5hZHZhbmNlT25PcHRpb25zLmp1bXBUbyk7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNoZXBoZXJkVG91ci5uZXh0KCk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICBmb3J3YXJkRXZlbnQkLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgIGFkdmFuY2VTdWJzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGlmIGFib3J0T24gd2FzIHBhc3NlZCBvbiB0aGUgc3RlcCwgd2UgYmluZCB0aGUgZXZlbnQgYW5kIGV4ZWN1dGUgY29tcGxldGVcbiAgICAgICAgICAgIGlmIChzdGVwLmFib3J0T24pIHtcbiAgICAgICAgICAgICAgY29uc3QgYWJvcnRBcnIkOiBTdWJqZWN0PHZvaWQ+W10gPSBbXTtcbiAgICAgICAgICAgICAgc3RlcC5hYm9ydE9uLmZvckVhY2goKGFib3J0T246IElUb3VyRXZlbnRPbikgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFib3J0RXZlbnQkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAgICAgICAgICAgICBhYm9ydEFyciQucHVzaChhYm9ydEV2ZW50JCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fYmluZEV2ZW50KFxuICAgICAgICAgICAgICAgICAgYWJvcnRPbixcbiAgICAgICAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgIGFib3J0RXZlbnQkLFxuICAgICAgICAgICAgICAgICAgZGVzdHJveWVkRXZlbnQkXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgY29uc3QgYWJvcnRTdWJzOiBTdWJzY3JpcHRpb24gPSBtZXJnZSguLi5hYm9ydEFyciQpXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICB0YWtlVW50aWwobWVyZ2UoZGVzdHJveWVkRXZlbnQkLCBiYWNrRXZlbnQkLCBmb3J3YXJkRXZlbnQkKSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLnNoZXBoZXJkVG91ci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgYWJvcnRTdWJzLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfTtcblxuICAgICAgICAgIGNvbnN0IF9zdG9wVGltZXIkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAgICAgICBjb25zdCBfcmV0cmllc1JlYWNoZWQkOiBTdWJqZWN0PG51bWJlcj4gPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gICAgICAgICAgY29uc3QgX3JldHJ5QXR0ZW1wdHMkOiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPiA9XG4gICAgICAgICAgICBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oLTEpO1xuXG4gICAgICAgICAgbGV0IGlkOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgLy8gY2hlY2tzIGlmIFwiYXR0YWNoVG9cIiBpcyBhIHN0cmluZyBvciBhbiBvYmplY3QgdG8gZ2V0IHRoZSBpZCBvZiBhbiBlbGVtZW50XG4gICAgICAgICAgaWYgKHR5cGVvZiBzdGVwLmF0dGFjaFRvID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgaWQgPSBzdGVwLmF0dGFjaFRvO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICB0eXBlb2Ygc3RlcC5hdHRhY2hUbyA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgIHR5cGVvZiBzdGVwLmF0dGFjaFRvLmVsZW1lbnQgPT09ICdzdHJpbmcnXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBpZCA9IHN0ZXAuYXR0YWNoVG8uZWxlbWVudDtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gaWYgd2UgaGF2ZSBhbiBpZCBhcyBhIHN0cmluZyBpbiBlaXRoZXIgY2FzZSwgd2UgdXNlIGl0ICh3ZSBpZ25vcmUgaXQgaWYgaXRzIEhUTUxFbGVtZW50KVxuICAgICAgICAgIGlmIChpZCkge1xuICAgICAgICAgICAgLy8gaWYgY3VycmVudCBzdGVwIGlzIHRoZSBmaXJzdCBzdGVwIG9mIHRoZSB0b3VyLCB3ZSBzZXQgdGhlIGJ1dHRvbnMgdG8gYmUgb25seSBcIm5leHRcIlxuICAgICAgICAgICAgLy8gd2UgaGFkIHRvIHVzZSBgYW55YCBzaW5jZSB0aGUgdG91ciBkb2VzbnQgZXhwb3NlIHRoZSBzdGVwcyBpbiBhbnkgZmFzaGlvbiBub3IgYSB3YXkgdG8gY2hlY2sgaWYgd2UgaGF2ZSBtb2RpZmllZCB0aGVtIGF0IGFsbFxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICB0aGlzLnNoZXBoZXJkVG91ci5nZXRDdXJyZW50U3RlcCgpID09PVxuICAgICAgICAgICAgICAoPGFueT50aGlzLnNoZXBoZXJkVG91cikuc3RlcHNbMF1cbiAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICB0aGlzLnNoZXBoZXJkVG91ci5nZXRDdXJyZW50U3RlcCgpPy51cGRhdGVTdGVwT3B0aW9ucyh7XG4gICAgICAgICAgICAgICAgYnV0dG9uczogb3JpZ2luYWxTdGVwc1tpbmRleF0uYWR2YW5jZU9uXG4gICAgICAgICAgICAgICAgICA/IFt2b2lkQnV0dG9uXVxuICAgICAgICAgICAgICAgICAgOiBbbmV4dEJ1dHRvbl0sXG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gcmVnaXN0ZXIgdG8gdGhlIGF0dGVtcHRzIG9ic2VydmFibGUgdG8gbm90aWZ5IGRlZXZlbG9wZXIgd2hlbiBudW1iZXIgaGFzIGJlZW4gcmVhY2hlZFxuICAgICAgICAgICAgX3JldHJ5QXR0ZW1wdHMkXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHNraXAoMSksXG4gICAgICAgICAgICAgICAgc2tpcFdoaWxlKCh2YWw6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBzdGVwLmF0dGFjaFRvT3B0aW9ucyAmJlxuICAgICAgICAgICAgICAgICAgICBzdGVwLmF0dGFjaFRvT3B0aW9ucy5yZXRyaWVzICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsIDwgc3RlcC5hdHRhY2hUb09wdGlvbnMucmV0cmllcztcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIHJldHVybiB2YWwgPCBTSEVQSEVSRF9ERUZBVUxUX0ZJTkRfQVRURU1QVFM7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKG1lcmdlKF9zdG9wVGltZXIkLmFzT2JzZXJ2YWJsZSgpLCBkZXN0cm95ZWRFdmVudCQpKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGF0dGVtcHRzOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgICAgICBfcmV0cmllc1JlYWNoZWQkLm5leHQoMSk7XG4gICAgICAgICAgICAgICAgX3JldHJpZXNSZWFjaGVkJC5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIC8vIGlmIGF0dGVtcHRzIGhhdmUgYmVlbiByZWFjaGVkLCB3ZSBjaGVjayBcInNraXBJZk5vdEZvdW5kXCIgdG8gbW92ZSBvbiB0byB0aGUgbmV4dCBzdGVwXG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgc3RlcC5hdHRhY2hUb09wdGlvbnMgJiZcbiAgICAgICAgICAgICAgICAgIHN0ZXAuYXR0YWNoVG9PcHRpb25zLnNraXBJZk5vdEZvdW5kXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAvLyBpZiB3ZSBnZXQgdG8gdGhpcyBzdGVwIGNvbWluZyBiYWNrIGZyb20gYSBzdGVwIGFuZCBpdCB3YXNudCBmb3VuZFxuICAgICAgICAgICAgICAgICAgLy8gdGhlbiB3ZSBlaXRoZXIgY2hlY2sgaWYgaXRzIHRoZSBmaXJzdCBzdGVwIGFuZCB0cnkgZ29pbmcgZm9yd2FyZFxuICAgICAgICAgICAgICAgICAgLy8gb3Igd2Uga2VlcCBnb2luZyBiYWNrIHVudGlsIHdlIGZpbmQgYSBzdGVwIHRoYXQgYWN0dWFsbHkgZXhpc3RzXG4gICAgICAgICAgICAgICAgICBpZiAoX2JhY2tGbG93KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAoPGFueT50aGlzLnNoZXBoZXJkVG91cikuc3RlcHMuaW5kZXhPZihcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hlcGhlcmRUb3VyLmdldEN1cnJlbnRTdGVwKClcbiAgICAgICAgICAgICAgICAgICAgICApID09PSAwXG4gICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2hlcGhlcmRUb3VyLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNoZXBoZXJkVG91ci5iYWNrKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgX2JhY2tGbG93ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBkZXN0cm95cyBjdXJyZW50IHN0ZXAgaWYgd2UgbmVlZCB0byBza2lwIGl0IHRvIHJlbW92ZSBpdCBmcm9tIHRoZSB0b3VyXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwID0gdGhpcy5zaGVwaGVyZFRvdXIuZ2V0Q3VycmVudFN0ZXAoKTtcbiAgICAgICAgICAgICAgICAgICAgY3VycmVudFN0ZXA/LmRlc3Ryb3koKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaGVwaGVyZFRvdXIubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNoZXBoZXJkVG91ci5yZW1vdmVTdGVwKGN1cnJlbnRTdGVwPy5pZCA/PyAnJyk7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzdGVwLmF0dGFjaFRvT3B0aW9ucyAmJiBzdGVwLmF0dGFjaFRvT3B0aW9ucy5lbHNlKSB7XG4gICAgICAgICAgICAgICAgICAvLyBpZiBcInNraXBJZk5vdEZvdW5kXCIgaXMgbm90IHRydWUsIHRoZW4gd2UgY2hlY2sgaWYgXCJlbHNlXCIgaGFzIGJlZW4gc2V0IHRvIGp1bXAgdG8gYSBzcGVjaWZpYyBzdGVwXG4gICAgICAgICAgICAgICAgICB0aGlzLnNoZXBoZXJkVG91ci5zaG93KHN0ZXAuYXR0YWNoVG9PcHRpb25zLmVsc2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6bm8tY29uc29sZVxuICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICBgUmV0cmllcyByZWFjaGVkIHRyeWluZyB0byBmaW5kICR7aWR9LiBSZXRyaWVkICAke2F0dGVtcHRzfSB0aW1lcy5gXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgLy8gZWxzZSB3ZSBzaG93IHRoZSBzdGVwIHJlZ2FyZGxlc3NcbiAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyB3ZSBzdGFydCBhIHRpbWVyIG9mIGF0dGVtcHRzIHRvIGZpbmQgYW4gZWxlbWVudCBpbiB0aGUgZG9tXG4gICAgICAgICAgICB0aW1lcihcbiAgICAgICAgICAgICAgKHN0ZXAuYXR0YWNoVG9PcHRpb25zICYmIHN0ZXAuYXR0YWNoVG9PcHRpb25zLnRpbWVCZWZvcmVTaG93KSB8fFxuICAgICAgICAgICAgICAgIFNIRVBIRVJEX0RFRkFVTFRfRklORF9USU1FX0JFRk9SRV9TSE9XLFxuICAgICAgICAgICAgICAoc3RlcC5hdHRhY2hUb09wdGlvbnMgJiYgc3RlcC5hdHRhY2hUb09wdGlvbnMuaW50ZXJ2YWwpIHx8XG4gICAgICAgICAgICAgICAgU0hFUEhFUkRfREVGQVVMVF9GSU5EX0lOVEVSVkFMXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIC8vIHRoZSB0aW1lciB3aWxsIGNvbnRpbnVlIGVpdGhlciB1bnRpbCB3ZSBmaW5kIHRoZSBlbGVtZW50IG9yIHRoZSBudW1iZXIgb2YgYXR0ZW1wdHMgaGFzIGJlZW4gcmVhY2hlZFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbChtZXJnZShfc3RvcFRpbWVyJCwgX3JldHJpZXNSZWFjaGVkJCwgZGVzdHJveWVkRXZlbnQkKSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihpZCA/PyAnJyk7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIGVsZW1lbnQgaGFzIGJlZW4gZm91bmQsIHdlIHN0b3AgdGhlIHRpbWVyIGFuZCByZXNvbHZlIHRoZSBwcm9taXNlXG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICAgIF9zdG9wVGltZXIkLm5leHQoKTtcbiAgICAgICAgICAgICAgICAgIF9zdG9wVGltZXIkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICBhZGRpdGlvbmFsQ2FwYWJpbGl0aWVzU2V0dXAoKTtcbiAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgX3JldHJ5QXR0ZW1wdHMkLm5leHQoX3JldHJ5QXR0ZW1wdHMkLnZhbHVlICsgMSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgLy8gc3RvcCBmaW5kIGludGVydmFsIGlmIHVzZXIgc3RvcHMgdGhlIHRvdXJcbiAgICAgICAgICAgIGRlc3Ryb3llZEV2ZW50JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICBfc3RvcFRpbWVyJC5uZXh0KCk7XG4gICAgICAgICAgICAgIF9zdG9wVGltZXIkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgIF9yZXRyaWVzUmVhY2hlZCQubmV4dCgxKTtcbiAgICAgICAgICAgICAgX3JldHJpZXNSZWFjaGVkJC5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHJlc29sdmUgb2JzZXJ2YWJsZSB1bnRpbCB0aGUgdGltZUJlZm9yZVNob3cgaGFzIHBhc3NzZWQgb3IgdXNlIGRlZmF1bHRcbiAgICAgICAgICAgIHRpbWVyKFxuICAgICAgICAgICAgICAoc3RlcC5hdHRhY2hUb09wdGlvbnMgJiYgc3RlcC5hdHRhY2hUb09wdGlvbnMudGltZUJlZm9yZVNob3cpIHx8XG4gICAgICAgICAgICAgICAgU0hFUEhFUkRfREVGQVVMVF9GSU5EX1RJTUVfQkVGT1JFX1NIT1dcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKG1lcmdlKGRlc3Ryb3llZEV2ZW50JCkpKVxuICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9O1xuICAgIH0pO1xuICAgIHJldHVybiBzdGVwcztcbiAgfVxuXG4gIHByaXZhdGUgX2JpbmRFdmVudChcbiAgICBldmVudE9uOiBJVG91ckV2ZW50T24sXG4gICAgZXZlbnRPbk9wdGlvbnM6IElUb3VyRXZlbnRPbk9wdGlvbnMgfCB1bmRlZmluZWQsXG4gICAgZXZlbnQkOiBTdWJqZWN0PHZvaWQ+LFxuICAgIGRlc3Ryb3llZEV2ZW50JDogU3ViamVjdDx2b2lkPlxuICApOiB2b2lkIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IGV2ZW50T24uc2VsZWN0b3IgPz8gJyc7XG4gICAgY29uc3QgZXZlbnQgPSBldmVudE9uLmV2ZW50O1xuICAgIC8vIHdlIHN0YXJ0IGEgdGltZXIgb2YgYXR0ZW1wdHMgdG8gZmluZCBhbiBlbGVtZW50IGluIHRoZSBkb21cbiAgICBjb25zdCB0aW1lclN1YnM6IFN1YnNjcmlwdGlvbiA9IHRpbWVyKFxuICAgICAgKGV2ZW50T25PcHRpb25zICYmIGV2ZW50T25PcHRpb25zLnRpbWVCZWZvcmVTaG93KSB8fFxuICAgICAgICBTSEVQSEVSRF9ERUZBVUxUX0ZJTkRfVElNRV9CRUZPUkVfU0hPVyxcbiAgICAgIChldmVudE9uT3B0aW9ucyAmJiBldmVudE9uT3B0aW9ucy5pbnRlcnZhbCkgfHxcbiAgICAgICAgU0hFUEhFUkRfREVGQVVMVF9GSU5EX0lOVEVSVkFMXG4gICAgKVxuICAgICAgLnBpcGUodGFrZVVudGlsKGRlc3Ryb3llZEV2ZW50JCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuICAgICAgICAvLyBpZiB0aGUgZWxlbWVudCBoYXMgYmVlbiBmb3VuZCwgd2Ugc3RvcCB0aGUgdGltZXIgYW5kIHJlc29sdmUgdGhlIHByb21pc2VcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICB0aW1lclN1YnMudW5zdWJzY3JpYmUoKTtcblxuICAgICAgICAgIGlmIChldmVudCA9PT0gSVRvdXJFdmVudC5hZGRlZCkge1xuICAgICAgICAgICAgLy8gaWYgZXZlbnQgaXMgXCJBZGRlZFwiIHRyaWdnZXIgYSBzb29uIGFzIHRoaXMgaXMgYXR0YWNoZWQuXG4gICAgICAgICAgICBldmVudCQubmV4dCgpO1xuICAgICAgICAgICAgZXZlbnQkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGV2ZW50ID09PSBJVG91ckV2ZW50LmNsaWNrIHx8XG4gICAgICAgICAgICBldmVudCA9PT0gSVRvdXJFdmVudC5wb2ludGVyb3ZlciB8fFxuICAgICAgICAgICAgKGV2ZW50ICYmIGV2ZW50LmluZGV4T2YoSVRvdXJFdmVudC5rZXl1cCkgPiAtMSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIHdlIHVzZSBub3JtYWwgbGlzdGVuZXJzIGZvciBtb3VzZWV2ZW50c1xuICAgICAgICAgICAgY29uc3QgbWFpbkV2ZW50ID0gZXZlbnQ/LnNwbGl0KCcuJylbMF07XG4gICAgICAgICAgICBjb25zdCBzdWJFdmVudCA9IGV2ZW50Py5zcGxpdCgnLicpWzFdO1xuICAgICAgICAgICAgZnJvbUV2ZW50KGVsZW1lbnQsIG1haW5FdmVudClcbiAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgkZXZlbnQ6IEV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAvLyBvbmx5IHRyaWdnZXIgaWYgdGhlIGV2ZW50IGlzIGEga2V5Ym9hcmQgZXZlbnQgYW5kIHBhcnQgb2Ygb3V0IGxpc3RcbiAgICAgICAgICAgICAgICAgIGlmICgkZXZlbnQgaW5zdGFuY2VvZiBLZXlib2FyZEV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChrZXlFdmVudHMuZ2V0KCRldmVudC5rZXlDb2RlKSA9PT0gc3ViRXZlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwobWVyZ2UoZXZlbnQkLmFzT2JzZXJ2YWJsZSgpLCBkZXN0cm95ZWRFdmVudCQpKVxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGV2ZW50JC5uZXh0KCk7XG4gICAgICAgICAgICAgICAgZXZlbnQkLmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQgPT09IElUb3VyRXZlbnQucmVtb3ZlZCkge1xuICAgICAgICAgICAgLy8gYW5kIHdlIHdpbGwgdXNlIE11dGF0aW9uT2JzZXJ2ZXIgZm9yIERPTSBldmVudHNcbiAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAoIWRvY3VtZW50LmJvZHkuY29udGFpbnMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICBldmVudCQubmV4dCgpO1xuICAgICAgICAgICAgICAgIGV2ZW50JC5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgIG9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIC8vIHN0b3AgbGlzdGVuaW5pbmcgaWYgdG91ciBpcyBjbG9zZWRcbiAgICAgICAgICAgIGRlc3Ryb3llZEV2ZW50JC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIC8vIG9ic2VydmUgZm9yIGFueSBET00gaW50ZXJhY3Rpb24gaW4gdGhlIGVsZW1lbnRcbiAgICAgICAgICAgIG9ic2VydmVyLm9ic2VydmUoZWxlbWVudCwge1xuICAgICAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { Router, ActivatedRoute, NavigationStart, } from '@angular/router';\nimport { tap, map, filter } from 'rxjs/operators';\nimport { fromEvent } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { CovalentGuidedTour, } from './guided.tour';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"@angular/common/http\";\n/**\n * Router enabled Shepherd tour\n */\nexport var TourEvents;\n(function (TourEvents) {\n TourEvents[\"complete\"] = \"complete\";\n TourEvents[\"cancel\"] = \"cancel\";\n TourEvents[\"hide\"] = \"hide\";\n TourEvents[\"show\"] = \"show\";\n TourEvents[\"start\"] = \"start\";\n TourEvents[\"active\"] = \"active\";\n TourEvents[\"inactive\"] = \"inactive\";\n})(TourEvents || (TourEvents = {}));\nexport class CovalentGuidedTourService extends CovalentGuidedTour {\n _router;\n _route;\n _httpClient;\n _toursMap = new Map();\n _tourStepURLs = new Map();\n constructor(_router, _route, _httpClient) {\n super();\n this._router = _router;\n this._route = _route;\n this._httpClient = _httpClient;\n _router.events\n .pipe(filter((event) => event instanceof NavigationStart &&\n event.navigationTrigger === 'popstate'))\n .subscribe(() => {\n if (this.shepherdTour.isActive()) {\n this.shepherdTour.cancel();\n }\n });\n }\n tourEvent$(str) {\n return fromEvent(this.shepherdTour, str);\n }\n async registerTour(tourName, tour) {\n const guidedTour = typeof tour === 'string' ? await this._loadTour(tour) : tour;\n this._toursMap.set(tourName, guidedTour);\n }\n startTour(tourName) {\n const guidedTour = this._getTour(tourName);\n this.finish();\n if (guidedTour && guidedTour.steps && guidedTour.steps.length) {\n // remove steps from tour since we need to preprocess them first\n this.newTour(Object.assign({}, guidedTour, { steps: undefined }));\n const tourInstance = this.shepherdTour.addSteps(this._configureRoutesForSteps(this._prepareTour(guidedTour.steps, guidedTour.finishButtonText)));\n // init route transition if step URL is different then the current location.\n this.tourEvent$(TourEvents.show).subscribe((tourEvent) => {\n const currentURL = this._router.url.split(/[?#]/)[0];\n const { step: { id, options }, } = tourEvent;\n if (this._tourStepURLs.has(id)) {\n const stepRoute = this._tourStepURLs.get(id);\n if (stepRoute !== currentURL) {\n this._router.navigate([stepRoute]);\n }\n }\n else {\n if (options && options.routing) {\n this._tourStepURLs.set(id, options.routing.route);\n }\n else {\n this._tourStepURLs.set(id, currentURL);\n }\n }\n });\n this.start();\n return tourInstance;\n }\n else {\n // tslint:disable-next-line:no-console\n console.warn(`Tour ${tourName} does not exist. Please try another tour.`);\n return undefined;\n }\n }\n // Finds the right registered tour by using queryParams\n // finishes any other tour and starts the new one.\n initializeOnQueryParams(queryParam = 'tour') {\n return this._route.queryParamMap.pipe(debounceTime(100), tap((params) => {\n const tourParam = params.get(queryParam);\n if (tourParam) {\n this.startTour(tourParam);\n // get current search parameters\n const searchParams = new URLSearchParams(window.location.search);\n // delete tour queryParam\n searchParams.delete(queryParam);\n // build new URL string without it\n let url = window.location.protocol +\n '//' +\n window.location.host +\n window.location.pathname;\n if (searchParams.toString()) {\n url += '?' + searchParams.toString();\n }\n // replace state in history without triggering a navigation\n window.history.replaceState({ path: url }, '', url);\n }\n }));\n }\n setNextBtnDisability(stepId, isDisabled) {\n if (this.shepherdTour.getById(stepId)) {\n const stepOptions = this.shepherdTour.getById(stepId)\n .options;\n stepOptions.buttons?.forEach((button) => {\n if (button.text === 'chevron_right') {\n button.disabled = isDisabled;\n }\n });\n this.shepherdTour.getById(stepId)?.updateStepOptions(stepOptions);\n }\n }\n async _loadTour(tourUrl) {\n const request = this._httpClient.get(tourUrl);\n try {\n return await request\n .pipe(map((resultSet) => {\n return JSON.parse(JSON.stringify(resultSet));\n }))\n .toPromise();\n }\n catch {\n return undefined;\n }\n }\n _getTour(key) {\n return this._toursMap.get(key);\n }\n _configureRoutesForSteps(routedSteps) {\n routedSteps.forEach((step) => {\n if (step.routing) {\n const route = step.routing.route;\n // if there is a beforeShowPromise, then we save it and call it after the navigation\n if (step.beforeShowPromise) {\n const beforeShowPromise = step.beforeShowPromise;\n step.beforeShowPromise = () => {\n return this._router\n .navigate([route], step.routing?.extras)\n .then(() => {\n return beforeShowPromise();\n });\n };\n }\n else {\n step.beforeShowPromise = () => this._router.navigate([route]);\n }\n }\n });\n return routedSteps;\n }\n static ɵfac = function CovalentGuidedTourService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CovalentGuidedTourService)(i0.ɵɵinject(i1.Router), i0.ɵɵinject(i1.ActivatedRoute), i0.ɵɵinject(i2.HttpClient)); };\n static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CovalentGuidedTourService, factory: CovalentGuidedTourService.ɵfac });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CovalentGuidedTourService, [{\n type: Injectable\n }], () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.HttpClient }], null); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZGVkLXRvdXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci1ndWlkZWQtdG91ci9zcmMvbGliL2d1aWRlZC10b3VyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUNMLE1BQU0sRUFDTixjQUFjLEVBR2QsZUFBZSxHQUVoQixNQUFNLGlCQUFpQixDQUFDO0FBRXpCLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xELE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sRUFDTCxrQkFBa0IsR0FJbkIsTUFBTSxlQUFlLENBQUM7Ozs7QUFjdkI7O0dBRUc7QUFDSCxNQUFNLENBQU4sSUFBWSxVQVFYO0FBUkQsV0FBWSxVQUFVO0lBQ3BCLG1DQUFxQixDQUFBO0lBQ3JCLCtCQUFpQixDQUFBO0lBQ2pCLDJCQUFhLENBQUE7SUFDYiwyQkFBYSxDQUFBO0lBQ2IsNkJBQWUsQ0FBQTtJQUNmLCtCQUFpQixDQUFBO0lBQ2pCLG1DQUFxQixDQUFBO0FBQ3ZCLENBQUMsRUFSVyxVQUFVLEtBQVYsVUFBVSxRQVFyQjtBQVNELE1BQU0sT0FBTyx5QkFBMEIsU0FBUSxrQkFBa0I7SUFJckQ7SUFDQTtJQUNBO0lBTEYsU0FBUyxHQUE2QixJQUFJLEdBQUcsRUFBdUIsQ0FBQztJQUNyRSxhQUFhLEdBQXdCLElBQUksR0FBRyxFQUFrQixDQUFDO0lBQ3ZFLFlBQ1UsT0FBZSxFQUNmLE1BQXNCLEVBQ3RCLFdBQXVCO1FBRS9CLEtBQUssRUFBRSxD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O21IQXBLVSx5QkFBeUI7Z0VBQXpCLHlCQUF5QixXQUF6Qix5QkFBeUI7O2lGQUF6Qix5QkFBeUI7Y0FEckMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQge1xuICBSb3V0ZXIsXG4gIEFjdGl2YXRlZFJvdXRlLFxuICBQYXJhbU1hcCxcbiAgTmF2aWdhdGlvbkV4dHJhcyxcbiAgTmF2aWdhdGlvblN0YXJ0LFxuICBFdmVudCBhcyBOYXZpZ2F0aW9uRXZlbnQsXG59IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgU2hlcGhlcmQgZnJvbSAnc2hlcGhlcmQuanMnO1xuaW1wb3J0IHsgdGFwLCBtYXAsIGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZyb21FdmVudCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgQ292YWxlbnRHdWlkZWRUb3VyLFxuICBJVG91clN0ZXAsXG4gIElUb3VyT3B0aW9ucyxcbiAgVG91clN0ZXBCdXR0b24sXG59IGZyb20gJy4vZ3VpZGVkLnRvdXInO1xuXG5leHBvcnQgaW50ZXJmYWNlIElHdWlkZWRUb3VyIGV4dGVuZHMgSVRvdXJPcHRpb25zIHtcbiAgc3RlcHM6IElHdWlkZWRUb3VyU3RlcFtdO1xuICBmaW5pc2hCdXR0b25UZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElHdWlkZWRUb3VyU3RlcCBleHRlbmRzIElUb3VyU3RlcCB7XG4gIHJvdXRpbmc/OiB7XG4gICAgcm91dGU6IHN0cmluZztcbiAgICBleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzO1xuICB9O1xufVxuXG4vKipcbiAqICBSb3V0ZXIgZW5hYmxlZCBTaGVwaGVyZCB0b3VyXG4gKi9cbmV4cG9ydCBlbnVtIFRvdXJFdmVudHMge1xuICBjb21wbGV0ZSA9ICdjb21wbGV0ZScsXG4gIGNhbmNlbCA9ICdjYW5jZWwnLFxuICBoaWRlID0gJ2hpZGUnLFxuICBzaG93ID0gJ3Nob3cnLFxuICBzdGFydCA9ICdzdGFydCcsXG4gIGFjdGl2ZSA9ICdhY3RpdmUnLFxuICBpbmFjdGl2ZSA9ICdpbmFjdGl2ZScsXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUd1aWRlZFRvdXJFdmVudCB7XG4gIHN0ZXA6IGFueTtcbiAgcHJldmlvdXM6IGFueTtcbiAgdG91cjogYW55O1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ292YWxlbnRHdWlkZWRUb3VyU2VydmljZSBleHRlbmRzIENvdmFsZW50R3VpZGVkVG91ciB7XG4gIHByaXZhdGUgX3RvdXJzTWFwOiBNYXA8c3RyaW5nLCBJR3VpZGVkVG91cj4gPSBuZXcgTWFwPHN0cmluZywgSUd1aWRlZFRvdXI+KCk7XG4gIHByaXZhdGUgX3RvdXJTdGVwVVJMczogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX3JvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgX3JvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIF9odHRwQ2xpZW50OiBIdHRwQ2xpZW50XG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgX3JvdXRlci5ldmVudHNcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoXG4gICAgICAgICAgKGV2ZW50OiBOYXZpZ2F0aW9uRXZlbnQpID0+XG4gICAgICAgICAgICBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCAmJlxuICAgICAgICAgICAgZXZlbnQubmF2aWdhdGlvblRyaWdnZXIgPT09ICdwb3BzdGF0ZSdcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnNoZXBoZXJkVG91ci5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgdGhpcy5zaGVwaGVyZFRvdXIuY2FuY2VsKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgdG91ckV2ZW50JChzdHI6IFRvdXJFdmVudHMpOiBPYnNlcnZhYmxlPElHdWlkZWRUb3VyRXZlbnQ+IHtcbiAgICByZXR1cm4gZnJvbUV2ZW50KHRoaXMuc2hlcGhlcmRUb3VyLCBzdHIpO1xuICB9XG5cbiAgYXN5bmMgcmVnaXN0ZXJUb3VyKFxuICAgIHRvdXJOYW1lOiBzdHJpbmcsXG4gICAgdG91cjogSUd1aWRlZFRvdXIgfCBzdHJpbmdcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZ3VpZGVkVG91cjogSUd1aWRlZFRvdXIgPVxuICAgICAgdHlwZW9mIHRvdXIgPT09ICdzdHJpbmcnID8gYXdhaXQgdGhpcy5fbG9hZFRvdXIodG91cikgOiB0b3VyO1xuICAgIHRoaXMuX3RvdXJzTWFwLnNldCh0b3VyTmFtZSwgZ3VpZGVkVG91cik7XG4gIH1cblxuICBzdGFydFRvdXIodG91ck5hbWU6IHN0cmluZyk6IFNoZXBoZXJkLlRvdXIgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGd1aWRlZFRvdXIgPSB0aGlzLl9nZXRUb3VyKHRvdXJOYW1lKTtcbiAgICB0aGlzLmZpbmlzaCgpO1xuICAgIGlmIChndWlkZWRUb3VyICYmIGd1aWRlZFRvdXIuc3RlcHMgJiYgZ3VpZGVkVG91ci5zdGVwcy5sZW5ndGgpIHtcbiAgICAgIC8vIHJlbW92ZSBzdGVwcyBmcm9tIHRvdXIgc2luY2Ugd2UgbmVlZCB0byBwcmVwcm9jZXNzIHRoZW0gZmlyc3RcbiAgICAgIHRoaXMubmV3VG91cihPYmplY3QuYXNzaWduKHt9LCBndWlkZWRUb3VyLCB7IHN0ZXBzOiB1bmRlZmluZWQgfSkpO1xuICAgICAgY29uc3QgdG91ckluc3RhbmNlOiBTaGVwaGVyZC5Ub3VyID0gdGhpcy5zaGVwaGVyZFRvdXIuYWRkU3RlcHMoXG4gICAgICAgIHRoaXMuX2NvbmZpZ3VyZVJvdXRlc0ZvclN0ZXBzKFxuICAgICAgICAgIHRoaXMuX3ByZXBhcmVUb3VyKGd1aWRlZFRvdXIuc3RlcHMsIGd1aWRlZFRvdXIuZmluaXNoQnV0dG9uVGV4dClcbiAgICAgICAgKVxuICAgICAgKTtcbiAgICAgIC8vIGluaXQgcm91dGUgdHJhbnNpdGlvbiBpZiBzdGVwIFVSTCBpcyBkaWZmZXJlbnQgdGhlbiB0aGUgY3VycmVudCBsb2NhdGlvbi5cbiAgICAgIHRoaXMudG91ckV2ZW50JChUb3VyRXZlbnRzLnNob3cpLnN1YnNjcmliZShcbiAgICAgICAgKHRvdXJFdmVudDogSUd1aWRlZFRvdXJFdmVudCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRVUkw6IHN0cmluZyA9IHRoaXMuX3JvdXRlci51cmwuc3BsaXQoL1s/I10vKVswXTtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBzdGVwOiB7IGlkLCBvcHRpb25zIH0sXG4gICAgICAgICAgfSA9IHRvdXJFdmVudDtcbiAgICAgICAgICBpZiAodGhpcy5fdG91clN0ZXBVUkxzLmhhcyhpZCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0ZXBSb3V0ZSA9IHRoaXMuX3RvdXJTdGVwVVJMcy5nZXQoaWQpO1xuICAgICAgICAgICAgaWYgKHN0ZXBSb3V0ZSAhPT0gY3VycmVudFVSTCkge1xuICAgICAgICAgICAgICB0aGlzLl9yb3V0ZXIubmF2aWdhdGUoW3N0ZXBSb3V0ZV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAob3B0aW9ucyAmJiBvcHRpb25zLnJvdXRpbmcpIHtcbiAgICAgICAgICAgICAgdGhpcy5fdG91clN0ZXBVUkxzLnNldChpZCwgb3B0aW9ucy5yb3V0aW5nLnJvdXRlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuX3RvdXJTdGVwVVJMcy5zZXQoaWQsIGN1cnJlbnRVUkwpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKTtcbiAgICAgIHRoaXMuc3RhcnQoKTtcbiAgICAgIHJldHVybiB0b3VySW5zdGFuY2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1jb25zb2xlXG4gICAgICBjb25zb2xlLndhcm4oYFRvdXIgJHt0b3VyTmFtZX0gZG9lcyBub3QgZXhpc3QuIFBsZWFzZSB0cnkgYW5vdGhlciB0b3VyLmApO1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICAvLyBGaW5kcyB0aGUgcmlnaHQgcmVnaXN0ZXJlZCB0b3VyIGJ5IHVzaW5nIHF1ZXJ5UGFyYW1zXG4gIC8vIGZpbmlzaGVzIGFueSBvdGhlciB0b3VyIGFuZCBzdGFydHMgdGhlIG5ldyBvbmUuXG4gIGluaXRpYWxpemVPblF1ZXJ5UGFyYW1zKHF1ZXJ5UGFyYW0gPSAndG91cicpOiBPYnNlcnZhYmxlPFBhcmFtTWFwPiB7XG4gICAgcmV0dXJuIHRoaXMuX3JvdXRlLnF1ZXJ5UGFyYW1NYXAucGlwZShcbiAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgdGFwKChwYXJhbXM6IFBhcmFtTWFwKSA9PiB7XG4gICAgICAgIGNvbnN0IHRvdXJQYXJhbSA9IHBhcmFtcy5nZXQocXVlcnlQYXJhbSk7XG4gICAgICAgIGlmICh0b3VyUGFyYW0pIHtcbiAgICAgICAgICB0aGlzLnN0YXJ0VG91cih0b3VyUGFyYW0pO1xuICAgICAgICAgIC8vIGdldCBjdXJyZW50IHNlYXJjaCBwYXJhbWV0ZXJzXG4gICAgICAgICAgY29uc3Qgc2VhcmNoUGFyYW1zOiBVUkxTZWFyY2hQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKFxuICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnNlYXJjaFxuICAgICAgICAgICk7XG4gICAgICAgICAgLy8gZGVsZXRlIHRvdXIgcXVlcnlQYXJhbVxuICAgICAgICAgIHNlYXJjaFBhcmFtcy5kZWxldGUocXVlcnlQYXJhbSk7XG4gICAgICAgICAgLy8gYnVpbGQgbmV3IFVSTCBzdHJpbmcgd2l0aG91dCBpdFxuICAgICAgICAgIGxldCB1cmw6IHN0cmluZyA9XG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgK1xuICAgICAgICAgICAgJy8vJyArXG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaG9zdCArXG4gICAgICAgICAgICB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWU7XG4gICAgICAgICAgaWYgKHNlYXJjaFBhcmFtcy50b1N0cmluZygpKSB7XG4gICAgICAgICAgICB1cmwgKz0gJz8nICsgc2VhcmNoUGFyYW1zLnRvU3RyaW5nKCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIHJlcGxhY2Ugc3RhdGUgaW4gaGlzdG9yeSB3aXRob3V0IHRyaWdnZXJpbmcgYSBuYXZpZ2F0aW9uXG4gICAgICAgICAgd2luZG93Lmhpc3RvcnkucmVwbGFjZVN0YXRlKHsgcGF0aDogdXJsIH0sICcnLCB1cmwpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBzZXROZXh0QnRuRGlzYWJpbGl0eShzdGVwSWQ6IHN0cmluZywgaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICh0aGlzLnNoZXBoZXJkVG91ci5nZXRCeUlkKHN0ZXBJZCkpIHtcbiAgICAgIGNvbnN0IHN0ZXBPcHRpb25zOiBJVG91clN0ZXAgPSAodGhpcy5zaGVwaGVyZFRvdXIuZ2V0QnlJZChzdGVwSWQpIGFzIGFueSlcbiAgICAgICAgLm9wdGlvbnM7XG4gICAgICBzdGVwT3B0aW9ucy5idXR0b25zPy5mb3JFYWNoKChidXR0b246IFRvdXJTdGVwQnV0dG9uKSA9PiB7XG4gICAgICAgIGlmIChidXR0b24udGV4dCA9PT0gJ2NoZXZyb25fcmlnaHQnKSB7XG4gICAgICAgICAgYnV0dG9uLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgICB0aGlzLnNoZXBoZXJkVG91ci5nZXRCeUlkKHN0ZXBJZCk/LnVwZGF0ZVN0ZXBPcHRpb25zKHN0ZXBPcHRpb25zKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9sb2FkVG91cih0b3VyVXJsOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHJlcXVlc3Q6IE9ic2VydmFibGU8b2JqZWN0PiA9IHRoaXMuX2h0dHBDbGllbnQuZ2V0KHRvdXJVcmwpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXdhaXQgcmVxdWVzdFxuICAgICAgICAucGlwZShcbiAgICAgICAgICBtYXAoKHJlc3VsdFNldDogYW55KSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyZXN1bHRTZXQpKTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICAgIC50b1Byb21pc2UoKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0VG91cihrZXk6IHN0cmluZyk6IElHdWlkZWRUb3VyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5fdG91cnNNYXAuZ2V0KGtleSk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmVSb3V0ZXNGb3JTdGVwcyhcbiAgICByb3V0ZWRTdGVwczogSUd1aWRlZFRvdXJTdGVwW11cbiAgKTogSUd1aWRlZFRvdXJTdGVwW10ge1xuICAgIHJvdXRlZFN0ZXBzLmZvckVhY2goKHN0ZXA6IElHdWlkZWRUb3VyU3RlcCkgPT4ge1xuICAgICAgaWYgKHN0ZXAucm91dGluZykge1xuICAgICAgICBjb25zdCByb3V0ZTogc3RyaW5nID0gc3RlcC5yb3V0aW5nLnJvdXRlO1xuICAgICAgICAvLyBpZiB0aGVyZSBpcyBhIGJlZm9yZVNob3dQcm9taXNlLCB0aGVuIHdlIHNhdmUgaXQgYW5kIGNhbGwgaXQgYWZ0ZXIgdGhlIG5hdmlnYXRpb25cbiAgICAgICAgaWYgKHN0ZXAuYmVmb3JlU2hvd1Byb21pc2UpIHtcbiAgICAgICAgICBjb25zdCBiZWZvcmVTaG93UHJvbWlzZTogKCkgPT4gUHJvbWlzZTx2b2lkPiA9IHN0ZXAuYmVmb3JlU2hvd1Byb21pc2U7XG4gICAgICAgICAgc3RlcC5iZWZvcmVTaG93UHJvbWlzZSA9ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9yb3V0ZXJcbiAgICAgICAgICAgICAgLm5hdmlnYXRlKFtyb3V0ZV0sIHN0ZXAucm91dGluZz8uZXh0cmFzKVxuICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGJlZm9yZVNob3dQcm9taXNlKCk7XG4gICAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgc3RlcC5iZWZvcmVTaG93UHJvbWlzZSA9ICgpID0+IHRoaXMuX3JvdXRlci5uYXZpZ2F0ZShbcm91dGVdKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcmV0dXJuIHJvdXRlZFN0ZXBzO1xuICB9XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { CovalentGuidedTourService } from './guided-tour.service';\nimport * as i0 from \"@angular/core\";\nexport class CovalentGuidedTourModule {\n static ɵfac = function CovalentGuidedTourModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || CovalentGuidedTourModule)(); };\n static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: CovalentGuidedTourModule });\n static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [CovalentGuidedTourService], imports: [CommonModule] });\n}\n(() => { (typeof ngDevMode === \"undefined\" || ngDevMode) && i0.ɵsetClassMetadata(CovalentGuidedTourModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n providers: [CovalentGuidedTourService],\n declarations: [],\n exports: [],\n }]\n }], null, null); })();\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && i0.ɵɵsetNgModuleScope(CovalentGuidedTourModule, { imports: [CommonModule] }); })();\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3VpZGVkLXRvdXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyLWd1aWRlZC10b3VyL3NyYy9saWIvZ3VpZGVkLXRvdXIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDOztBQVFsRSxNQUFNLE9BQU8sd0JBQXdCO2tIQUF4Qix3QkFBd0I7NERBQXhCLHdCQUF3QjtpRUFKeEIsQ0FBQyx5QkFBeUIsQ0FBQyxZQUQ1QixZQUFZOztpRkFLWCx3QkFBd0I7Y0FOcEMsUUFBUTtlQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDdkIsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7Z0JBQ3RDLFlBQVksRUFBRSxFQUFFO2dCQUNoQixPQUFPLEVBQUUsRUFBRTthQUNaOzt3RkFDWSx3QkFBd0IsY0FMekIsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ292YWxlbnRHdWlkZWRUb3VyU2VydmljZSB9IGZyb20gJy4vZ3VpZGVkLXRvdXIuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtDb3ZhbGVudEd1aWRlZFRvdXJTZXJ2aWNlXSxcbiAgZGVjbGFyYXRpb25zOiBbXSxcbiAgZXhwb3J0czogW10sXG59KVxuZXhwb3J0IGNsYXNzIENvdmFsZW50R3VpZGVkVG91ck1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './public_api';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY292YWxlbnQtZ3VpZGVkLXRvdXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXItZ3VpZGVkLXRvdXIvc3JjL2NvdmFsZW50LWd1aWRlZC10b3VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxjQUFjLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vcHVibGljX2FwaSc7XG4iXX0="],"names":[],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -1,5 +1,122 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import * as i1 from '@angular/common';
|
|
3
|
+
import { HttpClient } from '@angular/common/http';
|
|
4
|
+
import { NavigationExtras, Router, ActivatedRoute, ParamMap } from '@angular/router';
|
|
5
|
+
import Shepherd from 'shepherd.js';
|
|
6
|
+
import { Observable } from 'rxjs';
|
|
7
|
+
|
|
8
|
+
declare class CovalentGuidedTourModule {
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CovalentGuidedTourModule, never>;
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<CovalentGuidedTourModule, never, [typeof i1.CommonModule], never>;
|
|
11
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<CovalentGuidedTourModule>;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
type TourStep = Shepherd.Step.StepOptions;
|
|
15
|
+
type TourStepButton = Shepherd.Step.StepOptionsButton;
|
|
16
|
+
declare enum ITourEvent {
|
|
17
|
+
'click' = "click",
|
|
18
|
+
'pointerover' = "pointerover",
|
|
19
|
+
'keyup' = "keyup",
|
|
20
|
+
'added' = "added",// added to DOM
|
|
21
|
+
'removed' = "removed"
|
|
22
|
+
}
|
|
23
|
+
interface ITourEventOn {
|
|
24
|
+
selector?: string;
|
|
25
|
+
event?: keyof typeof ITourEvent;
|
|
26
|
+
}
|
|
27
|
+
interface ITourEventOnOptions {
|
|
28
|
+
timeBeforeShow?: number;
|
|
29
|
+
interval?: number;
|
|
30
|
+
}
|
|
31
|
+
interface ITourOptions extends Shepherd.Tour.TourOptions {
|
|
32
|
+
abortOn?: ITourEventOn[];
|
|
33
|
+
}
|
|
34
|
+
interface ITourStepAttachToOptions extends ITourEventOnOptions {
|
|
35
|
+
highlight?: boolean;
|
|
36
|
+
retries?: number;
|
|
37
|
+
skipIfNotFound?: boolean;
|
|
38
|
+
else?: string;
|
|
39
|
+
goBackTo?: string;
|
|
40
|
+
skipFromStepCount?: boolean;
|
|
41
|
+
}
|
|
42
|
+
interface ITourStepAdvanceOnOptions extends ITourEventOnOptions {
|
|
43
|
+
jumpTo?: string;
|
|
44
|
+
allowGoBack?: boolean;
|
|
45
|
+
}
|
|
46
|
+
interface ITourStep extends TourStep {
|
|
47
|
+
attachToOptions?: ITourStepAttachToOptions;
|
|
48
|
+
advanceOnOptions?: ITourStepAdvanceOnOptions;
|
|
49
|
+
advanceOn?: ITourEventOn[] | ITourEventOn | any;
|
|
50
|
+
abortOn?: ITourEventOn[];
|
|
51
|
+
count?: number;
|
|
52
|
+
}
|
|
53
|
+
declare abstract class TourButtonsActions {
|
|
54
|
+
abstract next(): void;
|
|
55
|
+
abstract back(): void;
|
|
56
|
+
abstract cancel(): void;
|
|
57
|
+
abstract finish(): void;
|
|
58
|
+
}
|
|
59
|
+
declare class CovalentGuidedTour extends TourButtonsActions {
|
|
60
|
+
private _destroyedEvent$;
|
|
61
|
+
shepherdTour: Shepherd.Tour;
|
|
62
|
+
stepOptions: ITourStep;
|
|
63
|
+
constructor(stepOptions?: ITourStep);
|
|
64
|
+
newTour(opts?: ITourOptions): void;
|
|
65
|
+
back(): void;
|
|
66
|
+
cancel(): void;
|
|
67
|
+
next(): void;
|
|
68
|
+
finish(): void;
|
|
69
|
+
addSteps(steps: ITourStep[]): void;
|
|
70
|
+
start(): void;
|
|
71
|
+
protected _prepareTour(originalSteps: ITourStep[], finishLabel?: string): ITourStep[];
|
|
72
|
+
private _bindEvent;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
interface IGuidedTour extends ITourOptions {
|
|
76
|
+
steps: IGuidedTourStep[];
|
|
77
|
+
finishButtonText?: string;
|
|
78
|
+
}
|
|
79
|
+
interface IGuidedTourStep extends ITourStep {
|
|
80
|
+
routing?: {
|
|
81
|
+
route: string;
|
|
82
|
+
extras?: NavigationExtras;
|
|
83
|
+
};
|
|
84
|
+
}
|
|
1
85
|
/**
|
|
2
|
-
*
|
|
86
|
+
* Router enabled Shepherd tour
|
|
3
87
|
*/
|
|
4
|
-
|
|
5
|
-
|
|
88
|
+
declare enum TourEvents {
|
|
89
|
+
complete = "complete",
|
|
90
|
+
cancel = "cancel",
|
|
91
|
+
hide = "hide",
|
|
92
|
+
show = "show",
|
|
93
|
+
start = "start",
|
|
94
|
+
active = "active",
|
|
95
|
+
inactive = "inactive"
|
|
96
|
+
}
|
|
97
|
+
interface IGuidedTourEvent {
|
|
98
|
+
step: any;
|
|
99
|
+
previous: any;
|
|
100
|
+
tour: any;
|
|
101
|
+
}
|
|
102
|
+
declare class CovalentGuidedTourService extends CovalentGuidedTour {
|
|
103
|
+
private _router;
|
|
104
|
+
private _route;
|
|
105
|
+
private _httpClient;
|
|
106
|
+
private _toursMap;
|
|
107
|
+
private _tourStepURLs;
|
|
108
|
+
constructor(_router: Router, _route: ActivatedRoute, _httpClient: HttpClient);
|
|
109
|
+
tourEvent$(str: TourEvents): Observable<IGuidedTourEvent>;
|
|
110
|
+
registerTour(tourName: string, tour: IGuidedTour | string): Promise<void>;
|
|
111
|
+
startTour(tourName: string): Shepherd.Tour | undefined;
|
|
112
|
+
initializeOnQueryParams(queryParam?: string): Observable<ParamMap>;
|
|
113
|
+
setNextBtnDisability(stepId: string, isDisabled: boolean): void;
|
|
114
|
+
private _loadTour;
|
|
115
|
+
private _getTour;
|
|
116
|
+
private _configureRoutesForSteps;
|
|
117
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CovalentGuidedTourService, never>;
|
|
118
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CovalentGuidedTourService>;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
export { CovalentGuidedTour, CovalentGuidedTourModule, CovalentGuidedTourService, ITourEvent, TourEvents };
|
|
122
|
+
export type { IGuidedTour, IGuidedTourEvent, IGuidedTourStep, ITourEventOn, ITourEventOnOptions, ITourOptions, ITourStep, ITourStepAdvanceOnOptions, ITourStepAttachToOptions, TourStep, TourStepButton };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@covalent/guided-tour",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.0.0-beta.1",
|
|
4
4
|
"description": "Covalent Guided Tour Module",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
},
|
|
20
20
|
"license": "MIT",
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"@angular/common": "
|
|
23
|
-
"@angular/core": "
|
|
22
|
+
"@angular/common": "20.x.x",
|
|
23
|
+
"@angular/core": "20.x.x",
|
|
24
24
|
"shepherd.js": "^9.0.0"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
@@ -39,6 +39,6 @@
|
|
|
39
39
|
},
|
|
40
40
|
"sideEffects": false,
|
|
41
41
|
"scripts": {
|
|
42
|
-
"prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled
|
|
42
|
+
"prepublishOnly": "node --eval \"console.error('ERROR: Trying to publish a package that has been compiled in full compilation mode. This is not allowed.\\nPlease delete and rebuild the package with partial compilation mode, before attempting to publish.\\n')\" && exit 1"
|
|
43
43
|
}
|
|
44
44
|
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "@angular/common";
|
|
3
|
-
export declare class CovalentGuidedTourModule {
|
|
4
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CovalentGuidedTourModule, never>;
|
|
5
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<CovalentGuidedTourModule, never, [typeof i1.CommonModule], never>;
|
|
6
|
-
static ɵinj: i0.ɵɵInjectorDeclaration<CovalentGuidedTourModule>;
|
|
7
|
-
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { HttpClient } from '@angular/common/http';
|
|
2
|
-
import { Router, ActivatedRoute, ParamMap, NavigationExtras } from '@angular/router';
|
|
3
|
-
import Shepherd from 'shepherd.js';
|
|
4
|
-
import { Observable } from 'rxjs';
|
|
5
|
-
import { CovalentGuidedTour, ITourStep, ITourOptions } from './guided.tour';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export interface IGuidedTour extends ITourOptions {
|
|
8
|
-
steps: IGuidedTourStep[];
|
|
9
|
-
finishButtonText?: string;
|
|
10
|
-
}
|
|
11
|
-
export interface IGuidedTourStep extends ITourStep {
|
|
12
|
-
routing?: {
|
|
13
|
-
route: string;
|
|
14
|
-
extras?: NavigationExtras;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Router enabled Shepherd tour
|
|
19
|
-
*/
|
|
20
|
-
export declare enum TourEvents {
|
|
21
|
-
complete = "complete",
|
|
22
|
-
cancel = "cancel",
|
|
23
|
-
hide = "hide",
|
|
24
|
-
show = "show",
|
|
25
|
-
start = "start",
|
|
26
|
-
active = "active",
|
|
27
|
-
inactive = "inactive"
|
|
28
|
-
}
|
|
29
|
-
export interface IGuidedTourEvent {
|
|
30
|
-
step: any;
|
|
31
|
-
previous: any;
|
|
32
|
-
tour: any;
|
|
33
|
-
}
|
|
34
|
-
export declare class CovalentGuidedTourService extends CovalentGuidedTour {
|
|
35
|
-
private _router;
|
|
36
|
-
private _route;
|
|
37
|
-
private _httpClient;
|
|
38
|
-
private _toursMap;
|
|
39
|
-
private _tourStepURLs;
|
|
40
|
-
constructor(_router: Router, _route: ActivatedRoute, _httpClient: HttpClient);
|
|
41
|
-
tourEvent$(str: TourEvents): Observable<IGuidedTourEvent>;
|
|
42
|
-
registerTour(tourName: string, tour: IGuidedTour | string): Promise<void>;
|
|
43
|
-
startTour(tourName: string): Shepherd.Tour | undefined;
|
|
44
|
-
initializeOnQueryParams(queryParam?: string): Observable<ParamMap>;
|
|
45
|
-
setNextBtnDisability(stepId: string, isDisabled: boolean): void;
|
|
46
|
-
private _loadTour;
|
|
47
|
-
private _getTour;
|
|
48
|
-
private _configureRoutesForSteps;
|
|
49
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CovalentGuidedTourService, never>;
|
|
50
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<CovalentGuidedTourService>;
|
|
51
|
-
}
|
package/lib/guided.tour.d.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import Shepherd from 'shepherd.js';
|
|
2
|
-
export type TourStep = Shepherd.Step.StepOptions;
|
|
3
|
-
export type TourStepButton = Shepherd.Step.StepOptionsButton;
|
|
4
|
-
export declare enum ITourEvent {
|
|
5
|
-
'click' = "click",
|
|
6
|
-
'pointerover' = "pointerover",
|
|
7
|
-
'keyup' = "keyup",
|
|
8
|
-
'added' = "added",// added to DOM
|
|
9
|
-
'removed' = "removed"
|
|
10
|
-
}
|
|
11
|
-
export interface ITourEventOn {
|
|
12
|
-
selector?: string;
|
|
13
|
-
event?: keyof typeof ITourEvent;
|
|
14
|
-
}
|
|
15
|
-
export interface ITourEventOnOptions {
|
|
16
|
-
timeBeforeShow?: number;
|
|
17
|
-
interval?: number;
|
|
18
|
-
}
|
|
19
|
-
export interface ITourOptions extends Shepherd.Tour.TourOptions {
|
|
20
|
-
abortOn?: ITourEventOn[];
|
|
21
|
-
}
|
|
22
|
-
export interface ITourStepAttachToOptions extends ITourEventOnOptions {
|
|
23
|
-
highlight?: boolean;
|
|
24
|
-
retries?: number;
|
|
25
|
-
skipIfNotFound?: boolean;
|
|
26
|
-
else?: string;
|
|
27
|
-
goBackTo?: string;
|
|
28
|
-
skipFromStepCount?: boolean;
|
|
29
|
-
}
|
|
30
|
-
export interface ITourStepAdvanceOnOptions extends ITourEventOnOptions {
|
|
31
|
-
jumpTo?: string;
|
|
32
|
-
allowGoBack?: boolean;
|
|
33
|
-
}
|
|
34
|
-
export interface ITourStep extends TourStep {
|
|
35
|
-
attachToOptions?: ITourStepAttachToOptions;
|
|
36
|
-
advanceOnOptions?: ITourStepAdvanceOnOptions;
|
|
37
|
-
advanceOn?: ITourEventOn[] | ITourEventOn | any;
|
|
38
|
-
abortOn?: ITourEventOn[];
|
|
39
|
-
count?: number;
|
|
40
|
-
}
|
|
41
|
-
declare abstract class TourButtonsActions {
|
|
42
|
-
abstract next(): void;
|
|
43
|
-
abstract back(): void;
|
|
44
|
-
abstract cancel(): void;
|
|
45
|
-
abstract finish(): void;
|
|
46
|
-
}
|
|
47
|
-
export declare class CovalentGuidedTour extends TourButtonsActions {
|
|
48
|
-
private _destroyedEvent$;
|
|
49
|
-
shepherdTour: Shepherd.Tour;
|
|
50
|
-
stepOptions: ITourStep;
|
|
51
|
-
constructor(stepOptions?: ITourStep);
|
|
52
|
-
newTour(opts?: ITourOptions): void;
|
|
53
|
-
back(): void;
|
|
54
|
-
cancel(): void;
|
|
55
|
-
next(): void;
|
|
56
|
-
finish(): void;
|
|
57
|
-
addSteps(steps: ITourStep[]): void;
|
|
58
|
-
start(): void;
|
|
59
|
-
protected _prepareTour(originalSteps: ITourStep[], finishLabel?: string): ITourStep[];
|
|
60
|
-
private _bindEvent;
|
|
61
|
-
}
|
|
62
|
-
export {};
|
package/public_api.d.ts
DELETED