@fundamental-ngx/platform 0.58.0-rc.67 → 0.58.0-rc.69
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/fundamental-ngx-platform-approval-flow.mjs +7 -8
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +4 -5
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +4 -5
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +1 -3
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +1 -2
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +1 -2
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +2 -3
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +1 -2
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +1 -3
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +1 -2
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +3 -4
- package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
- package/package.json +13 -13
- package/schematics/collection.json +0 -10
- package/schematics/ng-add/index.d.ts +0 -13
- package/schematics/ng-add/index.js +0 -55
- package/schematics/ng-add/index.js.map +0 -1
- package/schematics/ng-add/schema.d.ts +0 -3
- package/schematics/ng-add/schema.js +0 -3
- package/schematics/ng-add/schema.js.map +0 -1
- package/schematics/ng-add/schema.json +0 -15
- package/schematics/utils/package-utils.d.ts +0 -19
- package/schematics/utils/package-utils.js +0 -119
- package/schematics/utils/package-utils.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-platform-wizard-generator.mjs","sources":["../tmp-esm2022/wizard-generator/wizard-generator.service.js","../tmp-esm2022/wizard-generator/base-wizard-generator.js","../tmp-esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.js","../tmp-esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.js","../tmp-esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.js","../tmp-esm2022/wizard-generator/components/wizard-body/wizard-body.component.js","../tmp-esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.js","../tmp-esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.js","../tmp-esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.js","../tmp-esm2022/wizard-generator/directives/wizard-generator-review-button.directive.js","../tmp-esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.js","../tmp-esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.js","../tmp-esm2022/wizard-generator/wizard-dialog-generator.service.js","../tmp-esm2022/wizard-generator/wizard-generator.module.js","../tmp-esm2022/wizard-generator/fundamental-ngx-platform-wizard-generator.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { cloneDeep, concat, mergeWith, uniq } from 'lodash-es';\nimport { BehaviorSubject, Subject, of } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\nimport { isFunction, selectStrategy } from '@fundamental-ngx/cdk/utils';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/platform/form\";\nexport var WizardGeneratorRefreshStrategy;\n(function (WizardGeneratorRefreshStrategy) {\n WizardGeneratorRefreshStrategy[\"REFRESH_STEP_VISIBILITY\"] = \"refreshStepVisibility\";\n WizardGeneratorRefreshStrategy[\"REVALIDATE_STEP_FORMS\"] = \"revalidateStepForms\";\n WizardGeneratorRefreshStrategy[\"REFRESH_FORM_VISIBILITY\"] = \"refreshFormVisibility\";\n})(WizardGeneratorRefreshStrategy || (WizardGeneratorRefreshStrategy = {}));\n/**\n * @description Helper service to keep all transformations and data in one place.\n */\nexport class WizardGeneratorService {\n /** @hidden */\n constructor(_formGeneratorService) {\n this._formGeneratorService = _formGeneratorService;\n /**\n * @description Visible steps components\n */\n this.stepsComponents = new Map();\n /**\n * @description Object with steps that are dependencies for another steps.\n */\n this.dependencySteps = {};\n /**\n * @description Whether to append the step to the wizard. If false, each step will be displayed on a different page.\n * Default is true.\n */\n this.appendToWizard = true;\n /** @hidden */\n this._shouldRedirectToSummary = false;\n /**\n * @description Steps that are visible to the user.\n */\n this.visibleWizardSteps = [];\n /** @hidden */\n this._visibleWizardSteps$ = new Subject();\n /** @hidden */\n this._appendToWizard$ = new BehaviorSubject(this.appendToWizard);\n /** @hidden */\n this._stepsComponents$ = new Subject();\n /** @hidden */\n this._stepsOrderChanged$ = new Subject();\n /** @hidden */\n this._nextStepIndex$ = new BehaviorSubject(1);\n /** @hidden */\n this._submittedFormRawValues = {};\n /** @hidden */\n this._wizardStepIds = [];\n }\n /**\n * @description Returns current step ID in Wizard.\n * @returns {string | undefined} Current step ID.\n */\n getCurrentStepId() {\n const currentStepId = this.visibleWizardSteps?.find((i) => i.status === 'current');\n return currentStepId?.id;\n }\n /**\n * @description Returns current step index.\n * @returns {number} Index of the current step in array of Wizard steps.\n */\n getCurrentStepIndex() {\n const currentStepId = this.getCurrentStepId();\n return this.getStepIndex(currentStepId);\n }\n /**\n * Searches for the index of the step based on it's ID\n * @param stepId Step ID\n * @returns Index in the array of steps for defined step ID.\n */\n getStepIndex(stepId) {\n const stepIndex = this.visibleWizardSteps?.findIndex((i) => i.id === stepId);\n return stepIndex > -1 ? stepIndex : 0;\n }\n /**\n * @description Sends command to submit all forms inside the step.\n * @param stepId Step ID for which forms need's to be submitted.\n * @param skipIfUntouched Skip validation if form haven't been touched.\n * @returns {Observable<WizardStepSubmittedForms>} Observable, which will emit\n * when all visible forms in step are submitted.\n */\n submitStepForms(stepId, skipIfUntouched = false) {\n if (!stepId) {\n return of(null);\n }\n const step = this.stepsComponents.get(stepId);\n if (!step) {\n return of(null);\n }\n return step.submitForms(skipIfUntouched).pipe(take(1), map((result) => {\n if (result) {\n this._submittedFormRawValues[stepId] = result;\n }\n return result;\n }));\n }\n /**\n * @description Triggers validation for current step forms.\n * @returns {Observable<boolean>} Observable with validation result.\n */\n validateStepForms(skipIfUntouched = false) {\n const currentStepId = this.getCurrentStepId();\n if (!currentStepId) {\n return of(true);\n }\n return this.submitStepForms(currentStepId, skipIfUntouched).pipe(map((result) => result === null || Object.values(result).every((r) => r.success)));\n }\n /**\n * @description Sets new array of visible steps for Wizard.\n * @param steps steps that needs to be shown in Wizard.\n */\n setVisibleSteps(steps) {\n this.visibleWizardSteps = steps;\n this._visibleWizardSteps$.next(steps);\n this.setWizardStepIds(steps.map((s) => s.id));\n }\n /**\n * @returns {Observable<PreparedWizardGeneratorItem[]>} Observable, which will emit every time\n * when array of visible step items has been changed.\n */\n getVisibleSteps() {\n return this._visibleWizardSteps$.asObservable();\n }\n /**\n * @description Runs initial transformation for passed Wizard steps.\n * @param items All Wizard steps.\n * @returns {Promise<PreparedWizardGeneratorItem[]>} Array of transformed Wizard steps.\n */\n async prepareWizardItems(items) {\n let newItems = await Promise.all(items.map(async (i, index) => {\n const item = { ...i };\n item.status = item.status || 'upcoming';\n item.title = await this._getFormItemPropertyValue(item, index, 'title');\n item.name = await this._getFormItemPropertyValue(item, index, 'name');\n return item;\n }));\n // Summary step must be the last one in array\n const summaryStepIndex = newItems.findIndex((i) => i.summary === true);\n if (summaryStepIndex !== -1 && summaryStepIndex !== newItems.length - 1) {\n newItems.splice(newItems.length - 1, 0, newItems.splice(summaryStepIndex, 1)[0]);\n }\n // If no current step found, set first as current.\n if (newItems.findIndex((i) => i.status === 'current') === -1) {\n newItems[0].status = 'current';\n }\n newItems = this._setBranchingSteps(newItems);\n this._buildDependencyMap(newItems);\n this.items = newItems;\n await this.refreshStepVisibility();\n return newItems;\n }\n /**\n * @description Runs conditional function for each step to define if step should be shown.\n */\n async refreshStepVisibility() {\n const formValue = await this.getWizardFormValue();\n const visibleStepIds = {};\n for (const item of this.items) {\n if (!isFunction(item.when)) {\n visibleStepIds[item.id] = true;\n continue;\n }\n const obj = item.when(this._getCompletedStepIds(), formValue, this._formGeneratorService.forms);\n visibleStepIds[item.id] = await this._getFunctionValue(obj);\n }\n this.setVisibleSteps(this.items.filter((item) => visibleStepIds[item.id] === true));\n }\n /**\n * Checks whether current form group should be visible.\n * @param formGroup Form Group.\n */\n async refreshFormVisibility(formGroup) {\n const formValue = await this.getWizardFormValue();\n const obj = formGroup.when?.(this._getCompletedStepIds(), formValue, this._formGeneratorService.forms) ?? true;\n return await this._getFunctionValue(obj);\n }\n /**\n * @description Clears array of Wizard steps components.\n */\n clearWizardStepComponents() {\n this.stepsComponents.clear();\n this._stepsComponents$.next(this.stepsComponents);\n }\n /**\n * @returns {Observable<StepsComponents>} Observable, which will emit every time\n * when Set visible steps components has been changed.\n */\n trackStepsComponents() {\n return this._stepsComponents$.asObservable();\n }\n /**\n * @description Adds new component to the set of Wizard steps components.\n * @param component Wizard Step component to add.\n * @param key Wizard Step ID.\n */\n addWizardStepComponent(component, key) {\n this.stepsComponents.set(key, component);\n this._stepsComponents$.next(this.stepsComponents);\n }\n /**\n * @description Removes Component from the set of Wizard steps components.\n * @param key\n */\n removeWizardStepComponent(key) {\n this.stepsComponents.delete(key);\n this._stepsComponents$.next(this.stepsComponents);\n }\n /**\n * @param step Step ID which includes dependency fields.\n * @returns Object with forms and their fields that are dependencies for other steps.\n */\n getStepDependencyFields(step) {\n return this.dependencySteps[step];\n }\n /**\n * Notifies step components to revalidate inner forms.\n * @param stepIds Step ID's which needs to be revalidated.\n */\n notifyStepsToRevalidateForms(stepIds) {\n stepIds.forEach((stepId) => this.stepsComponents.get(stepId)?.updateFormsState());\n }\n /**\n * Notifies step components to refresh form groups visibility.\n * @param stepIds Step ID's which needs to be checked.\n */\n async refreshFormsVisibility(stepIds) {\n for (const stepId of stepIds) {\n await this.stepsComponents.get(stepId)?.refreshFormsVisibility();\n }\n }\n /**\n * @param formatted Flag defining whether form value should be formatted by form control\n * transformers, or return raw value\n * @returns {WizardGeneratorFormsValue} Wizard form value\n */\n async getWizardFormValue(formatted = false) {\n const wizardFormValue = {};\n if (!this.visibleWizardSteps) {\n return wizardFormValue;\n }\n for (const item of this.visibleWizardSteps.filter((s) => !s.summary)) {\n wizardFormValue[item.id] = {};\n const component = this.stepsComponents.get(item.id);\n if (!component) {\n continue;\n }\n const forms = component.getVisibleForms();\n for (const form of item?.formGroups ?? []) {\n if (!forms[form.id]) {\n continue;\n }\n wizardFormValue[item.id][form.id] = formatted\n ? await this._formGeneratorService.getFormValue(forms[form.id]?.form)\n : this._formGeneratorService._getFormValueWithoutUngrouped(cloneDeep(forms[form.id]?.form.value));\n }\n }\n return wizardFormValue;\n }\n /**\n *\n * @param stepId Step ID to check.\n * @returns {Boolean} indicator if step was previously validated and submitted.\n */\n stepSubmitted(stepId) {\n return this._submittedFormRawValues[stepId] !== undefined;\n }\n /**\n *\n * @returns {Boolean} if steps are untouched, will return true, if yes - false\n */\n isStepsUntouched() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return [...this.stepsComponents].every(([_, component]) => component.formGenerators.toArray().every((item) => !item.form.touched));\n }\n /**\n * Reverts wizard to defined step.\n * @param stepId Step ID to edit\n */\n editStep(stepId) {\n const stepIndex = this.visibleWizardSteps.findIndex((s) => s.id === stepId);\n this.visibleWizardSteps = this.visibleWizardSteps.map((step, index) => {\n step.status = index === stepIndex ? 'current' : index < stepIndex ? 'completed' : 'upcoming';\n return step;\n });\n const summaryStepIndex = this.visibleWizardSteps.findIndex((s) => s.summary);\n this._shouldRedirectToSummary = true;\n this._appendToWizard$.next(false);\n this.setVisibleSteps(this.visibleWizardSteps);\n this.setNextStepIndex(summaryStepIndex);\n }\n /**\n * Set's current set of step ID's\n * @param ids step ID's\n */\n setWizardStepIds(ids) {\n if (!this._wizardStepIds.every((stepId, index) => ids[index] === stepId)) {\n const firstChangedStepIndex = this._wizardStepIds.findIndex((stepId, index) => ids[index] !== stepId);\n this._nextStepIndex$.next(firstChangedStepIndex);\n this._stepsOrderChanged$.next(firstChangedStepIndex);\n }\n this._wizardStepIds = ids;\n }\n /**\n * Set next step index.\n * @param index Next step index.\n */\n setNextStepIndex(index) {\n this._nextStepIndex$.next(index);\n }\n /**\n * Returns observable of next step index which emits when index is changed.\n */\n trackNextStepIndex() {\n return this._nextStepIndex$.asObservable();\n }\n /**\n * Returns observable which emits when steps order has been changed.\n */\n trackStepsOrder() {\n return this._stepsOrderChanged$.asObservable();\n }\n /**\n * Stores original 'appendToWizard' input property.\n * @param value\n */\n setOriginalAppendToWizardState(value) {\n this.appendToWizard = value;\n this._appendToWizard$.next(this.appendToWizard);\n }\n /**\n * Resets modified 'appendToWizard' property to original one.\n */\n restoreAppendToWizardState() {\n this._appendToWizard$.next(this.appendToWizard);\n }\n /**\n * Returns observable which emits when 'appendToWizard' property has been changed.\n */\n trackAppendToWizardState() {\n return this._appendToWizard$.asObservable();\n }\n /**\n * @hidden\n * @param items\n * @param index\n * @param key\n * @returns\n */\n async _getFormItemPropertyValue(items, index, key) {\n let value = items[key];\n if (typeof value === 'function') {\n const obj = value(index);\n value = await this._getFunctionValue(obj);\n }\n return value;\n }\n /**\n * @hidden\n * @description Returns value from Promise-like, Observable-like, simple function or just some object.\n * @param obj\n * @returns\n */\n async _getFunctionValue(obj) {\n const strategy = selectStrategy(obj);\n let result;\n await strategy.createSubscription(obj, (value) => {\n result = value;\n });\n if (isFunction(result)) {\n await this._getFunctionValue(result);\n }\n return result;\n }\n /**\n * @hidden\n * @description Sets `branching` property for the steps that will create new branches.\n * @param items\n * @returns\n */\n _setBranchingSteps(items) {\n const branchingItems = items\n .filter((i) => i.dependencyFields)\n .reduce((stepIds, item) => {\n if (item.dependencyFields) {\n stepIds = [...stepIds, ...Object.keys(item.dependencyFields)];\n }\n return stepIds;\n }, []);\n if (branchingItems.length > 0) {\n items = items.map((item) => {\n item.branching = item.branching || branchingItems.includes(item.id);\n return item;\n });\n }\n return items;\n }\n /** @hidden */\n _normalizeDependencyStep(dependency, strategy, dependentStep) {\n const newDependency = {};\n Object.entries(dependency).forEach(([key, value]) => {\n newDependency[key] = {};\n value.forEach((v) => {\n newDependency[key][v] = {\n [strategy]: dependentStep ? [dependentStep] : []\n };\n });\n });\n return newDependency;\n }\n /** @hidden */\n _buildDependencyMap(items) {\n this.dependencySteps = {};\n const mergeArrays = (objValue, srcValue) => {\n if (Array.isArray(objValue) && !objValue.includes(srcValue)) {\n return uniq(objValue.concat(srcValue));\n }\n };\n const buildDependencySteps = (dependencyFields, strategy, stepId) => {\n for (const [id, forms] of Object.entries(dependencyFields)) {\n this.dependencySteps[id] = mergeWith(this.dependencySteps[id] || {}, this._normalizeDependencyStep(forms, strategy, stepId), mergeArrays);\n }\n };\n items\n .filter((s) => s.formGroups?.length)\n .forEach((step) => {\n if (step.dependencyFields) {\n buildDependencySteps(step.dependencyFields, WizardGeneratorRefreshStrategy.REFRESH_STEP_VISIBILITY);\n }\n const dependentForms = step.formGroups?.filter((form) => form.dependencyFields);\n dependentForms?.forEach((form) => {\n buildDependencySteps(form.dependencyFields, WizardGeneratorRefreshStrategy.REFRESH_FORM_VISIBILITY, step.id);\n });\n const stepFields = concat(...[...(step.formGroups ?? [])].map((item) => item.formItems.filter((f) => f.dependencyFields)));\n stepFields.forEach((formItem) => {\n buildDependencySteps(formItem.dependencyFields, WizardGeneratorRefreshStrategy.REVALIDATE_STEP_FORMS, step.id);\n });\n });\n }\n /** @hidden */\n _getCompletedStepIds() {\n return this.items.filter((i) => i.status === 'completed').map((i) => i.id);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorService, deps: [{ token: i1.FormGeneratorService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.FormGeneratorService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL3dpemFyZC1nZW5lcmF0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBYyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7O0FBYXRFLE1BQU0sQ0FBTixJQUFZLDhCQUlYO0FBSkQsV0FBWSw4QkFBOEI7SUFDdEMsbUZBQWlELENBQUE7SUFDakQsK0VBQTZDLENBQUE7SUFDN0MsbUZBQWlELENBQUE7QUFDckQsQ0FBQyxFQUpXLDhCQUE4QixLQUE5Qiw4QkFBOEIsUUFJekM7QUFpQkQ7O0dBRUc7QUFFSCxNQUFNLE9BQU8sc0JBQXNCO0lBaUQvQixjQUFjO0lBQ2QsWUFBb0IscUJBQTJDO1FBQTNDLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBc0I7UUE5Qy9EOztXQUVHO1FBQ0gsb0JBQWUsR0FBb0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUU3Qzs7V0FFRztRQUNILG9CQUFlLEdBQXlCLEVBQUUsQ0FBQztRQUUzQzs7O1dBR0c7UUFDSCxtQkFBYyxHQUFHLElBQUksQ0FBQztRQUV0QixjQUFjO1FBQ2QsNkJBQXdCLEdBQUcsS0FBSyxD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QixFQUNwRCxJQUFJLENBQUMsRUFBRSxDQUNWLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVELGNBQWM7SUFDTixvQkFBb0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUMvRSxDQUFDOzhHQTFqQlEsc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGNvbmNhdCwgbWVyZ2VXaXRoLCB1bmlxIH0gZnJvbSAnbG9kYXNoLWVzJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCwgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgaXNGdW5jdGlvbiwgc2VsZWN0U3RyYXRlZ3kgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vZm9ybSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JGb3JtR3JvdXAsIFdpemFyZEdlbmVyYXRvckZvcm1JdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3dpemFyZC1nZW5lcmF0b3ItZm9ybS1ncm91cC5pbnRlcmZhY2UnO1xuaW1wb3J0IHtcbiAgICBXaXphcmRHZW5lcmF0b3JEZXBlbmRlbmN5RmllbGRzLFxuICAgIFdpemFyZEdlbmVyYXRvckZvcm1zVmFsdWUsXG4gICAgV2l6YXJkU3RlcFN1Ym1pdHRlZEZvcm1zLFxuICAgIFdpemFyZFZpc2libGVTdGVwc1xufSBmcm9tICcuL2ludGVyZmFjZXMvd2l6YXJkLWdlbmVyYXRvci1mb3Jtcy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtLCBXaXphcmRHZW5lcmF0b3JJdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3dpemFyZC1nZW5lcmF0b3ItaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yU3RlcCB9IGZyb20gJy4vaW50ZXJmYWNlcy93aXphcmQtc3RlcC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBTdGVwc0NvbXBvbmVudHMgPSBNYXA8c3RyaW5nLCBXaXphcmRHZW5lcmF0b3JTdGVwPjtcblxuZXhwb3J0IGVudW0gV2l6YXJkR2VuZXJhdG9yUmVmcmVzaFN0cmF0ZWd5IHtcbiAgICBSRUZSRVNIX1NURVBfVklTSUJJTElUWSA9ICdyZWZyZXNoU3RlcFZpc2liaWxpdHknLFxuICAgIFJFVkFMSURBVEVfU1RFUF9GT1JNUyA9ICdyZXZhbGlkYXRlU3RlcEZvcm1zJyxcbiAgICBSRUZSRVNIX0ZPUk1fVklTSUJJTElUWSA9ICdyZWZyZXNoRm9ybVZpc2liaWxpdHknXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwZW5kZW5jeVN0ZXBzIHtcbiAgICAvKiogU3RlcCBJRCAqL1xuICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgICAgLyoqIEZvcm0gSUQgd2l0aCBhcnJheSBvZiBmb3JtIGNvbnRyb2wgaWQncyAqL1xuICAgICAgICBba2V5OiBzdHJpbmddOiB7XG4gICAgICAgICAgICBba2V5IGluIFdpemFyZEdlbmVyYXRvclJlZnJlc2hTdHJhdGVneV0/OiBzdHJpbmdbXTtcbiAgICAgICAgfTtcbiAgICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0ZXBEZXBlbmRlbmN5RmllbGRzIHtcbiAgICAvKiogRGVwZW5kZW50IHN0ZXAgKi9cbiAgICBba2V5OiBzdHJpbmddOiBEZXBlbmRlbmN5U3RlcHM7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEhlbHBlciBzZXJ2aWNlIHRvIGtlZXAgYWxsIHRyYW5zZm9ybWF0aW9ucyBhbmQgZGF0YSBpbiBvbmUgcGxhY2UuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGl0ZW1zOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBWaXNpYmxlIHN0ZXBzIGNvbXBvbmVudHNcbiAgICAgKi9cbiAgICBzdGVwc0NvbXBvbmVudHM6IFN0ZXBzQ29tcG9uZW50cyA9IG5ldyBNYXAoKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBPYmplY3Qgd2l0aCBzdGVwcyB0aGF0IGFyZSBkZXBlbmRlbmNpZXMgZm9yIGFub3RoZXIgc3RlcHMuXG4gICAgICovXG4gICAgZGVwZW5kZW5jeVN0ZXBzOiBTdGVwRGVwZW5kZW5jeUZpZWxkcyA9IHt9O1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgdG8gYXBwZW5kIHRoZSBzdGVwIHRvIHRoZSB3aXphcmQuIElmIGZhbHNlLCBlYWNoIHN0ZXAgd2lsbCBiZSBkaXNwbGF5ZWQgb24gYSBkaWZmZXJlbnQgcGFnZS5cbiAgICAgKiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICovXG4gICAgYXBwZW5kVG9XaXphcmQgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc2hvdWxkUmVkaXJlY3RUb1N1bW1hcnkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTdGVwcyB0aGF0IGFyZSB2aXNpYmxlIHRvIHRoZSB1c2VyLlxuICAgICAqL1xuICAgIHB1YmxpYyB2aXNpYmxlV2l6YXJkU3RlcHM6IFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbVtdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Zpc2libGVXaXphcmRTdGVwcyQgPSBuZXcgU3ViamVjdDxQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXT4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXBwZW5kVG9XaXphcmQkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPih0aGlzLmFwcGVuZFRvV2l6YXJkKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3RlcHNDb21wb25lbnRzJCA9IG5ldyBTdWJqZWN0PFN0ZXBzQ29tcG9uZW50cz4oKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3RlcHNPcmRlckNoYW5nZWQkID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9uZXh0U3RlcEluZGV4JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc3VibWl0dGVkRm9ybVJhd1ZhbHVlczogV2l6YXJkR2VuZXJhdG9yRm9ybXNWYWx1ZSA9IHt9O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF93aXphcmRTdGVwSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mb3JtR2VuZXJhdG9yU2VydmljZTogRm9ybUdlbmVyYXRvclNlcnZpY2UpIHt9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmV0dXJucyBjdXJyZW50IHN0ZXAgSUQgaW4gV2l6YXJkLlxuICAgICAqIEByZXR1cm5zIHtzdHJpbmcgfCB1bmRlZmluZWR9IEN1cnJlbnQgc3RlcCBJRC5cbiAgICAgKi9cbiAgICBnZXRDdXJyZW50U3RlcElkKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwSWQgPSB0aGlzLnZpc2libGVXaXphcmRTdGVwcz8uZmluZCgoaSkgPT4gaS5zdGF0dXMgPT09ICdjdXJyZW50Jyk7XG5cbiAgICAgICAgcmV0dXJuIGN1cnJlbnRTdGVwSWQ/LmlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXR1cm5zIGN1cnJlbnQgc3RlcCBpbmRleC5cbiAgICAgKiBAcmV0dXJucyB7bnVtYmVyfSBJbmRleCBvZiB0aGUgY3VycmVudCBzdGVwIGluIGFycmF5IG9mIFdpemFyZCBzdGVwcy5cbiAgICAgKi9cbiAgICBnZXRDdXJyZW50U3RlcEluZGV4KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwSWQgPSB0aGlzLmdldEN1cnJlbnRTdGVwSWQoKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0U3RlcEluZGV4KGN1cnJlbnRTdGVwSWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNlYXJjaGVzIGZvciB0aGUgaW5kZXggb2YgdGhlIHN0ZXAgYmFzZWQgb24gaXQncyBJRFxuICAgICAqIEBwYXJhbSBzdGVwSWQgU3RlcCBJRFxuICAgICAqIEByZXR1cm5zIEluZGV4IGluIHRoZSBhcnJheSBvZiBzdGVwcyBmb3IgZGVmaW5lZCBzdGVwIElELlxuICAgICAqL1xuICAgIGdldFN0ZXBJbmRleChzdGVwSWQ/OiBzdHJpbmcpOiBudW1iZXIge1xuICAgICAgICBjb25zdCBzdGVwSW5kZXggPSB0aGlzLnZpc2libGVXaXphcmRTdGVwcz8uZmluZEluZGV4KChpKSA9PiBpLmlkID09PSBzdGVwSWQpO1xuICAgICAgICByZXR1cm4gc3RlcEluZGV4ID4gLTEgPyBzdGVwSW5kZXggOiAwO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZW5kcyBjb21tYW5kIHRvIHN1Ym1pdCBhbGwgZm9ybXMgaW5zaWRlIHRoZSBzdGVwLlxuICAgICAqIEBwYXJhbSBzdGVwSWQgU3RlcCBJRCBmb3Igd2hpY2ggZm9ybXMgbmVlZCdzIHRvIGJlIHN1Ym1pdHRlZC5cbiAgICAgKiBAcGFyYW0gc2tpcElmVW50b3VjaGVkIFNraXAgdmFsaWRhdGlvbiBpZiBmb3JtIGhhdmVuJ3QgYmVlbiB0b3VjaGVkLlxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFdpemFyZFN0ZXBTdWJtaXR0ZWRGb3Jtcz59IE9ic2VydmFibGUsIHdoaWNoIHdpbGwgZW1pdFxuICAgICAqIHdoZW4gYWxsIHZpc2libGUgZm9ybXMgaW4gc3RlcCBhcmUgc3VibWl0dGVkLlxuICAgICAqL1xuICAgIHN1Ym1pdFN0ZXBGb3JtcyhzdGVwSWQ/OiBzdHJpbmcsIHNraXBJZlVudG91Y2hlZCA9IGZhbHNlKTogT2JzZXJ2YWJsZTxXaXphcmRTdGVwU3VibWl0dGVkRm9ybXMgfCBudWxsPiB7XG4gICAgICAgIGlmICghc3RlcElkKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzdGVwID0gdGhpcy5zdGVwc0NvbXBvbmVudHMuZ2V0KHN0ZXBJZCk7XG5cbiAgICAgICAgaWYgKCFzdGVwKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3RlcC5zdWJtaXRGb3Jtcyhza2lwSWZVbnRvdWNoZWQpLnBpcGUoXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgbWFwKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3N1Ym1pdHRlZEZvcm1SYXdWYWx1ZXNbc3RlcElkXSA9IHJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFRyaWdnZXJzIHZhbGlkYXRpb24gZm9yIGN1cnJlbnQgc3RlcCBmb3Jtcy5cbiAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxib29sZWFuPn0gT2JzZXJ2YWJsZSB3aXRoIHZhbGlkYXRpb24gcmVzdWx0LlxuICAgICAqL1xuICAgIHZhbGlkYXRlU3RlcEZvcm1zKHNraXBJZlVudG91Y2hlZCA9IGZhbHNlKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwSWQgPSB0aGlzLmdldEN1cnJlbnRTdGVwSWQoKTtcblxuICAgICAgICBpZiAoIWN1cnJlbnRTdGVwSWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLnN1Ym1pdFN0ZXBGb3JtcyhjdXJyZW50U3RlcElkLCBza2lwSWZVbnRvdWNoZWQpLnBpcGUoXG4gICAgICAgICAgICBtYXAoKHJlc3VsdCkgPT4gcmVzdWx0ID09PSBudWxsIHx8IE9iamVjdC52YWx1ZXMocmVzdWx0KS5ldmVyeSgocikgPT4gci5zdWNjZXNzKSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU2V0cyBuZXcgYXJyYXkgb2YgdmlzaWJsZSBzdGVwcyBmb3IgV2l6YXJkLlxuICAgICAqIEBwYXJhbSBzdGVwcyBzdGVwcyB0aGF0IG5lZWRzIHRvIGJlIHNob3duIGluIFdpemFyZC5cbiAgICAgKi9cbiAgICBzZXRWaXNpYmxlU3RlcHMoc3RlcHM6IFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbVtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlzaWJsZVdpemFyZFN0ZXBzID0gc3RlcHM7XG4gICAgICAgIHRoaXMuX3Zpc2libGVXaXphcmRTdGVwcyQubmV4dChzdGVwcyk7XG5cbiAgICAgICAgdGhpcy5zZXRXaXphcmRTdGVwSWRzKHN0ZXBzLm1hcCgocykgPT4gcy5pZCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbVtdPn0gT2JzZXJ2YWJsZSwgd2hpY2ggd2lsbCBlbWl0IGV2ZXJ5IHRpbWVcbiAgICAgKiB3aGVuIGFycmF5IG9mIHZpc2libGUgc3RlcCBpdGVtcyBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIGdldFZpc2libGVTdGVwcygpOiBPYnNlcnZhYmxlPFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlV2l6YXJkU3RlcHMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSdW5zIGluaXRpYWwgdHJhbnNmb3JtYXRpb24gZm9yIHBhc3NlZCBXaXphcmQgc3RlcHMuXG4gICAgICogQHBhcmFtIGl0ZW1zIEFsbCBXaXphcmQgc3RlcHMuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8UHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10+fSBBcnJheSBvZiB0cmFuc2Zvcm1lZCBXaXphcmQgc3RlcHMuXG4gICAgICovXG4gICAgYXN5bmMgcHJlcGFyZVdpemFyZEl0ZW1zKGl0ZW1zOiBXaXphcmRHZW5lcmF0b3JJdGVtW10pOiBQcm9taXNlPFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbVtdPiB7XG4gICAgICAgIGxldCBuZXdJdGVtczogUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10gPSBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgICAgIGl0ZW1zLm1hcChhc3luYyAoaSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBpdGVtID0geyAuLi5pIH07XG4gICAgICAgICAgICAgICAgaXRlbS5zdGF0dXMgPSBpdGVtLnN0YXR1cyB8fCAndXBjb21pbmcnO1xuICAgICAgICAgICAgICAgIGl0ZW0udGl0bGUgPSBhd2FpdCB0aGlzLl9nZXRGb3JtSXRlbVByb3BlcnR5VmFsdWUoaXRlbSwgaW5kZXgsICd0aXRsZScpO1xuICAgICAgICAgICAgICAgIGl0ZW0ubmFtZSA9IGF3YWl0IHRoaXMuX2dldEZvcm1JdGVtUHJvcGVydHlWYWx1ZShpdGVtLCBpbmRleCwgJ25hbWUnKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbSBhcyBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW07XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIC8vIFN1bW1hcnkgc3RlcCBtdXN0IGJlIHRoZSBsYXN0IG9uZSBpbiBhcnJheVxuICAgICAgICBjb25zdCBzdW1tYXJ5U3RlcEluZGV4ID0gbmV3SXRlbXMuZmluZEluZGV4KChpKSA9PiBpLnN1bW1hcnkgPT09IHRydWUpO1xuXG4gICAgICAgIGlmIChzdW1tYXJ5U3RlcEluZGV4ICE9PSAtMSAmJiBzdW1tYXJ5U3RlcEluZGV4ICE9PSBuZXdJdGVtcy5sZW5ndGggLSAxKSB7XG4gICAgICAgICAgICBuZXdJdGVtcy5zcGxpY2UobmV3SXRlbXMubGVuZ3RoIC0gMSwgMCwgbmV3SXRlbXMuc3BsaWNlKHN1bW1hcnlTdGVwSW5kZXgsIDEpWzBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIElmIG5vIGN1cnJlbnQgc3RlcCBmb3VuZCwgc2V0IGZpcnN0IGFzIGN1cnJlbnQuXG4gICAgICAgIGlmIChuZXdJdGVtcy5maW5kSW5kZXgoKGkpID0+IGkuc3RhdHVzID09PSAnY3VycmVudCcpID09PSAtMSkge1xuICAgICAgICAgICAgbmV3SXRlbXNbMF0uc3RhdHVzID0gJ2N1cnJlbnQnO1xuICAgICAgICB9XG5cbiAgICAgICAgbmV3SXRlbXMgPSB0aGlzLl9zZXRCcmFuY2hpbmdTdGVwcyhuZXdJdGVtcyk7XG5cbiAgICAgICAgdGhpcy5fYnVpbGREZXBlbmRlbmN5TWFwKG5ld0l0ZW1zKTtcblxuICAgICAgICB0aGlzLml0ZW1zID0gbmV3SXRlbXM7XG4gICAgICAgIGF3YWl0IHRoaXMucmVmcmVzaFN0ZXBWaXNpYmlsaXR5KCk7XG5cbiAgICAgICAgcmV0dXJuIG5ld0l0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSdW5zIGNvbmRpdGlvbmFsIGZ1bmN0aW9uIGZvciBlYWNoIHN0ZXAgdG8gZGVmaW5lIGlmIHN0ZXAgc2hvdWxkIGJlIHNob3duLlxuICAgICAqL1xuICAgIGFzeW5jIHJlZnJlc2hTdGVwVmlzaWJpbGl0eSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gYXdhaXQgdGhpcy5nZXRXaXphcmRGb3JtVmFsdWUoKTtcblxuICAgICAgICBjb25zdCB2aXNpYmxlU3RlcElkczogV2l6YXJkVmlzaWJsZVN0ZXBzID0ge307XG5cbiAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXMpIHtcbiAgICAgICAgICAgIGlmICghaXNGdW5jdGlvbihpdGVtLndoZW4pKSB7XG4gICAgICAgICAgICAgICAgdmlzaWJsZVN0ZXBJZHNbaXRlbS5pZF0gPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBvYmogPSBpdGVtLndoZW4hKHRoaXMuX2dldENvbXBsZXRlZFN0ZXBJZHMoKSwgZm9ybVZhbHVlLCB0aGlzLl9mb3JtR2VuZXJhdG9yU2VydmljZS5mb3Jtcyk7XG5cbiAgICAgICAgICAgIHZpc2libGVTdGVwSWRzW2l0ZW0uaWRdID0gYXdhaXQgdGhpcy5fZ2V0RnVuY3Rpb25WYWx1ZShvYmopO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZXRWaXNpYmxlU3RlcHModGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IHZpc2libGVTdGVwSWRzW2l0ZW0uaWRdID09PSB0cnVlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIHdoZXRoZXIgY3VycmVudCBmb3JtIGdyb3VwIHNob3VsZCBiZSB2aXNpYmxlLlxuICAgICAqIEBwYXJhbSBmb3JtR3JvdXAgRm9ybSBHcm91cC5cbiAgICAgKi9cbiAgICBhc3luYyByZWZyZXNoRm9ybVZpc2liaWxpdHkoZm9ybUdyb3VwOiBXaXphcmRHZW5lcmF0b3JGb3JtR3JvdXApOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgZm9ybVZhbHVlID0gYXdhaXQgdGhpcy5nZXRXaXphcmRGb3JtVmFsdWUoKTtcblxuICAgICAgICBjb25zdCBvYmogPSBmb3JtR3JvdXAud2hlbj8uKHRoaXMuX2dldENvbXBsZXRlZFN0ZXBJZHMoKSwgZm9ybVZhbHVlLCB0aGlzLl9mb3JtR2VuZXJhdG9yU2VydmljZS5mb3JtcykgPz8gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gYXdhaXQgdGhpcy5fZ2V0RnVuY3Rpb25WYWx1ZShvYmopO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDbGVhcnMgYXJyYXkgb2YgV2l6YXJkIHN0ZXBzIGNvbXBvbmVudHMuXG4gICAgICovXG4gICAgY2xlYXJXaXphcmRTdGVwQ29tcG9uZW50cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGVwc0NvbXBvbmVudHMuY2xlYXIoKTtcbiAgICAgICAgdGhpcy5fc3RlcHNDb21wb25lbnRzJC5uZXh0KHRoaXMuc3RlcHNDb21wb25lbnRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxTdGVwc0NvbXBvbmVudHM+fSBPYnNlcnZhYmxlLCB3aGljaCB3aWxsIGVtaXQgZXZlcnkgdGltZVxuICAgICAqIHdoZW4gU2V0IHZpc2libGUgc3RlcHMgY29tcG9uZW50cyBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHRyYWNrU3RlcHNDb21wb25lbnRzKCk6IE9ic2VydmFibGU8U3RlcHNDb21wb25lbnRzPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdGVwc0NvbXBvbmVudHMkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBZGRzIG5ldyBjb21wb25lbnQgdG8gdGhlIHNldCBvZiBXaXphcmQgc3RlcHMgY29tcG9uZW50cy5cbiAgICAgKiBAcGFyYW0gY29tcG9uZW50IFdpemFyZCBTdGVwIGNvbXBvbmVudCB0byBhZGQuXG4gICAgICogQHBhcmFtIGtleSBXaXphcmQgU3RlcCBJRC5cbiAgICAgKi9cbiAgICBhZGRXaXphcmRTdGVwQ29tcG9uZW50KGNvbXBvbmVudDogV2l6YXJkR2VuZXJhdG9yU3RlcCwga2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGVwc0NvbXBvbmVudHMuc2V0KGtleSwgY29tcG9uZW50KTtcbiAgICAgICAgdGhpcy5fc3RlcHNDb21wb25lbnRzJC5uZXh0KHRoaXMuc3RlcHNDb21wb25lbnRzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVtb3ZlcyBDb21wb25lbnQgZnJvbSB0aGUgc2V0IG9mIFdpemFyZCBzdGVwcyBjb21wb25lbnRzLlxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKi9cbiAgICByZW1vdmVXaXphcmRTdGVwQ29tcG9uZW50KGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RlcHNDb21wb25lbnRzLmRlbGV0ZShrZXkpO1xuICAgICAgICB0aGlzLl9zdGVwc0NvbXBvbmVudHMkLm5leHQodGhpcy5zdGVwc0NvbXBvbmVudHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBzdGVwIFN0ZXAgSUQgd2hpY2ggaW5jbHVkZXMgZGVwZW5kZW5jeSBmaWVsZHMuXG4gICAgICogQHJldHVybnMgT2JqZWN0IHdpdGggZm9ybXMgYW5kIHRoZWlyIGZpZWxkcyB0aGF0IGFyZSBkZXBlbmRlbmNpZXMgZm9yIG90aGVyIHN0ZXBzLlxuICAgICAqL1xuICAgIGdldFN0ZXBEZXBlbmRlbmN5RmllbGRzKHN0ZXA6IHN0cmluZyk6IERlcGVuZGVuY3lTdGVwcyB7XG4gICAgICAgIHJldHVybiB0aGlzLmRlcGVuZGVuY3lTdGVwc1tzdGVwXTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOb3RpZmllcyBzdGVwIGNvbXBvbmVudHMgdG8gcmV2YWxpZGF0ZSBpbm5lciBmb3Jtcy5cbiAgICAgKiBAcGFyYW0gc3RlcElkcyBTdGVwIElEJ3Mgd2hpY2ggbmVlZHMgdG8gYmUgcmV2YWxpZGF0ZWQuXG4gICAgICovXG4gICAgbm90aWZ5U3RlcHNUb1JldmFsaWRhdGVGb3JtcyhzdGVwSWRzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICBzdGVwSWRzLmZvckVhY2goKHN0ZXBJZCkgPT4gdGhpcy5zdGVwc0NvbXBvbmVudHMuZ2V0KHN0ZXBJZCk/LnVwZGF0ZUZvcm1zU3RhdGUoKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTm90aWZpZXMgc3RlcCBjb21wb25lbnRzIHRvIHJlZnJlc2ggZm9ybSBncm91cHMgdmlzaWJpbGl0eS5cbiAgICAgKiBAcGFyYW0gc3RlcElkcyBTdGVwIElEJ3Mgd2hpY2ggbmVlZHMgdG8gYmUgY2hlY2tlZC5cbiAgICAgKi9cbiAgICBhc3luYyByZWZyZXNoRm9ybXNWaXNpYmlsaXR5KHN0ZXBJZHM6IHN0cmluZ1tdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGZvciAoY29uc3Qgc3RlcElkIG9mIHN0ZXBJZHMpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc3RlcHNDb21wb25lbnRzLmdldChzdGVwSWQpPy5yZWZyZXNoRm9ybXNWaXNpYmlsaXR5KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcGFyYW0gZm9ybWF0dGVkIEZsYWcgZGVmaW5pbmcgd2hldGhlciBmb3JtIHZhbHVlIHNob3VsZCBiZSBmb3JtYXR0ZWQgYnkgZm9ybSBjb250cm9sXG4gICAgICogdHJhbnNmb3JtZXJzLCBvciByZXR1cm4gcmF3IHZhbHVlXG4gICAgICogQHJldHVybnMge1dpemFyZEdlbmVyYXRvckZvcm1zVmFsdWV9IFdpemFyZCBmb3JtIHZhbHVlXG4gICAgICovXG4gICAgYXN5bmMgZ2V0V2l6YXJkRm9ybVZhbHVlKGZvcm1hdHRlZCA9IGZhbHNlKTogUHJvbWlzZTxXaXphcmRHZW5lcmF0b3JGb3Jtc1ZhbHVlPiB7XG4gICAgICAgIGNvbnN0IHdpemFyZEZvcm1WYWx1ZTogV2l6YXJkR2VuZXJhdG9yRm9ybXNWYWx1ZSA9IHt9O1xuXG4gICAgICAgIGlmICghdGhpcy52aXNpYmxlV2l6YXJkU3RlcHMpIHtcbiAgICAgICAgICAgIHJldHVybiB3aXphcmRGb3JtVmFsdWU7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy52aXNpYmxlV2l6YXJkU3RlcHMuZmlsdGVyKChzKSA9PiAhcy5zdW1tYXJ5KSkge1xuICAgICAgICAgICAgd2l6YXJkRm9ybVZhbHVlW2l0ZW0uaWRdID0ge307XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IHRoaXMuc3RlcHNDb21wb25lbnRzLmdldChpdGVtLmlkKTtcblxuICAgICAgICAgICAgaWYgKCFjb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZm9ybXMgPSBjb21wb25lbnQuZ2V0VmlzaWJsZUZvcm1zKCk7XG5cbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybSBvZiBpdGVtPy5mb3JtR3JvdXBzID8/IFtdKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFmb3Jtc1tmb3JtLmlkXSkge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB3aXphcmRGb3JtVmFsdWVbaXRlbS5pZF1bZm9ybS5pZF0gPSBmb3JtYXR0ZWRcbiAgICAgICAgICAgICAgICAgICAgPyBhd2FpdCB0aGlzLl9mb3JtR2VuZXJhdG9yU2VydmljZS5nZXRGb3JtVmFsdWUoZm9ybXNbZm9ybS5pZF0/LmZvcm0pXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5fZm9ybUdlbmVyYXRvclNlcnZpY2UuX2dldEZvcm1WYWx1ZVdpdGhvdXRVbmdyb3VwZWQoY2xvbmVEZWVwKGZvcm1zW2Zvcm0uaWRdPy5mb3JtLnZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gd2l6YXJkRm9ybVZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0ZXBJZCBTdGVwIElEIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtCb29sZWFufSBpbmRpY2F0b3IgaWYgc3RlcCB3YXMgcHJldmlvdXNseSB2YWxpZGF0ZWQgYW5kIHN1Ym1pdHRlZC5cbiAgICAgKi9cbiAgICBzdGVwU3VibWl0dGVkKHN0ZXBJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJtaXR0ZWRGb3JtUmF3VmFsdWVzW3N0ZXBJZF0gIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHtCb29sZWFufSBpZiBzdGVwcyBhcmUgdW50b3VjaGVkLCB3aWxsIHJldHVybiB0cnVlLCBpZiB5ZXMgLSBmYWxzZVxuICAgICAqL1xuICAgIGlzU3RlcHNVbnRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLnN0ZXBzQ29tcG9uZW50c10uZXZlcnkoKFtfLCBjb21wb25lbnRdKSA9PlxuICAgICAgICAgICAgY29tcG9uZW50LmZvcm1HZW5lcmF0b3JzLnRvQXJyYXkoKS5ldmVyeSgoaXRlbSkgPT4gIWl0ZW0uZm9ybS50b3VjaGVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldmVydHMgd2l6YXJkIHRvIGRlZmluZWQgc3RlcC5cbiAgICAgKiBAcGFyYW0gc3RlcElkIFN0ZXAgSUQgdG8gZWRpdFxuICAgICAqL1xuICAgIGVkaXRTdGVwKHN0ZXBJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0ZXBJbmRleCA9IHRoaXMudmlzaWJsZVdpemFyZFN0ZXBzLmZpbmRJbmRleCgocykgPT4gcy5pZCA9PT0gc3RlcElkKTtcblxuICAgICAgICB0aGlzLnZpc2libGVXaXphcmRTdGVwcyA9IHRoaXMudmlzaWJsZVdpemFyZFN0ZXBzLm1hcCgoc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHN0ZXAuc3RhdHVzID0gaW5kZXggPT09IHN0ZXBJbmRleCA/ICdjdXJyZW50JyA6IGluZGV4IDwgc3RlcEluZGV4ID8gJ2NvbXBsZXRlZCcgOiAndXBjb21pbmcnO1xuXG4gICAgICAgICAgICByZXR1cm4gc3RlcDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc3VtbWFyeVN0ZXBJbmRleCA9IHRoaXMudmlzaWJsZVdpemFyZFN0ZXBzLmZpbmRJbmRleCgocykgPT4gcy5zdW1tYXJ5KTtcblxuICAgICAgICB0aGlzLl9zaG91bGRSZWRpcmVjdFRvU3VtbWFyeSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5fYXBwZW5kVG9XaXphcmQkLm5leHQoZmFsc2UpO1xuXG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0ZXBzKHRoaXMudmlzaWJsZVdpemFyZFN0ZXBzKTtcblxuICAgICAgICB0aGlzLnNldE5leHRTdGVwSW5kZXgoc3VtbWFyeVN0ZXBJbmRleCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0J3MgY3VycmVudCBzZXQgb2Ygc3RlcCBJRCdzXG4gICAgICogQHBhcmFtIGlkcyBzdGVwIElEJ3NcbiAgICAgKi9cbiAgICBzZXRXaXphcmRTdGVwSWRzKGlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl93aXphcmRTdGVwSWRzLmV2ZXJ5KChzdGVwSWQsIGluZGV4KSA9PiBpZHNbaW5kZXhdID09PSBzdGVwSWQpKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdENoYW5nZWRTdGVwSW5kZXggPSB0aGlzLl93aXphcmRTdGVwSWRzLmZpbmRJbmRleCgoc3RlcElkLCBpbmRleCkgPT4gaWRzW2luZGV4XSAhPT0gc3RlcElkKTtcblxuICAgICAgICAgICAgdGhpcy5fbmV4dFN0ZXBJbmRleCQubmV4dChmaXJzdENoYW5nZWRTdGVwSW5kZXgpO1xuXG4gICAgICAgICAgICB0aGlzLl9zdGVwc09yZGVyQ2hhbmdlZCQubmV4dChmaXJzdENoYW5nZWRTdGVwSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkU3RlcElkcyA9IGlkcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgbmV4dCBzdGVwIGluZGV4LlxuICAgICAqIEBwYXJhbSBpbmRleCBOZXh0IHN0ZXAgaW5kZXguXG4gICAgICovXG4gICAgc2V0TmV4dFN0ZXBJbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25leHRTdGVwSW5kZXgkLm5leHQoaW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgb2JzZXJ2YWJsZSBvZiBuZXh0IHN0ZXAgaW5kZXggd2hpY2ggZW1pdHMgd2hlbiBpbmRleCBpcyBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHRyYWNrTmV4dFN0ZXBJbmRleCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmV4dFN0ZXBJbmRleCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBvYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHdoZW4gc3RlcHMgb3JkZXIgaGFzIGJlZW4gY2hhbmdlZC5cbiAgICAgKi9cbiAgICB0cmFja1N0ZXBzT3JkZXIoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXBzT3JkZXJDaGFuZ2VkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZXMgb3JpZ2luYWwgJ2FwcGVuZFRvV2l6YXJkJyBpbnB1dCBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICBzZXRPcmlnaW5hbEFwcGVuZFRvV2l6YXJkU3RhdGUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcHBlbmRUb1dpemFyZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9hcHBlbmRUb1dpemFyZCQubmV4dCh0aGlzLmFwcGVuZFRvV2l6YXJkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNldHMgbW9kaWZpZWQgJ2FwcGVuZFRvV2l6YXJkJyBwcm9wZXJ0eSB0byBvcmlnaW5hbCBvbmUuXG4gICAgICovXG4gICAgcmVzdG9yZUFwcGVuZFRvV2l6YXJkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FwcGVuZFRvV2l6YXJkJC5uZXh0KHRoaXMuYXBwZW5kVG9XaXphcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuICdhcHBlbmRUb1dpemFyZCcgcHJvcGVydHkgaGFzIGJlZW4gY2hhbmdlZC5cbiAgICAgKi9cbiAgICB0cmFja0FwcGVuZFRvV2l6YXJkU3RhdGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBlbmRUb1dpemFyZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBpdGVtc1xuICAgICAqIEBwYXJhbSBpbmRleFxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2dldEZvcm1JdGVtUHJvcGVydHlWYWx1ZTxUID0gc3RyaW5nPihcbiAgICAgICAgaXRlbXM6IFdpemFyZEdlbmVyYXRvckl0ZW0sXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIGtleToga2V5b2YgV2l6YXJkR2VuZXJhdG9ySXRlbVxuICAgICk6IFByb21pc2U8VD4ge1xuICAgICAgICBsZXQgdmFsdWU6IGFueSA9IGl0ZW1zW2tleV07XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY29uc3Qgb2JqID0gdmFsdWUoaW5kZXgpO1xuXG4gICAgICAgICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMuX2dldEZ1bmN0aW9uVmFsdWUob2JqKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZSBhcyBUO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gUmV0dXJucyB2YWx1ZSBmcm9tIFByb21pc2UtbGlrZSwgT2JzZXJ2YWJsZS1saWtlLCBzaW1wbGUgZnVuY3Rpb24gb3IganVzdCBzb21lIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gb2JqXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIF9nZXRGdW5jdGlvblZhbHVlKG9iajogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3Qgc3RyYXRlZ3kgPSBzZWxlY3RTdHJhdGVneShvYmopO1xuXG4gICAgICAgIGxldCByZXN1bHQ6IGFueTtcblxuICAgICAgICBhd2FpdCBzdHJhdGVneS5jcmVhdGVTdWJzY3JpcHRpb24ob2JqLCAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0ID0gdmFsdWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHJlc3VsdCkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2dldEZ1bmN0aW9uVmFsdWUocmVzdWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBTZXRzIGBicmFuY2hpbmdgIHByb3BlcnR5IGZvciB0aGUgc3RlcHMgdGhhdCB3aWxsIGNyZWF0ZSBuZXcgYnJhbmNoZXMuXG4gICAgICogQHBhcmFtIGl0ZW1zXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zZXRCcmFuY2hpbmdTdGVwcyhpdGVtczogUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10pOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSB7XG4gICAgICAgIGNvbnN0IGJyYW5jaGluZ0l0ZW1zID0gaXRlbXNcbiAgICAgICAgICAgIC5maWx0ZXIoKGkpID0+IGkuZGVwZW5kZW5jeUZpZWxkcylcbiAgICAgICAgICAgIC5yZWR1Y2UoKHN0ZXBJZHMsIGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5kZXBlbmRlbmN5RmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0ZXBJZHMgPSBbLi4uc3RlcElkcywgLi4uT2JqZWN0LmtleXMoaXRlbS5kZXBlbmRlbmN5RmllbGRzKV07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0ZXBJZHM7XG4gICAgICAgICAgICB9LCBbXSBhcyBzdHJpbmdbXSk7XG5cbiAgICAgICAgaWYgKGJyYW5jaGluZ0l0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGl0ZW1zID0gaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5icmFuY2hpbmcgPSBpdGVtLmJyYW5jaGluZyB8fCBicmFuY2hpbmdJdGVtcy5pbmNsdWRlcyhpdGVtLmlkKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbm9ybWFsaXplRGVwZW5kZW5jeVN0ZXAoXG4gICAgICAgIGRlcGVuZGVuY3k6IHsgW3A6IHN0cmluZ106IHN0cmluZ1tdIH0sXG4gICAgICAgIHN0cmF0ZWd5OiBXaXphcmRHZW5lcmF0b3JSZWZyZXNoU3RyYXRlZ3ksXG4gICAgICAgIGRlcGVuZGVudFN0ZXA/OiBzdHJpbmdcbiAgICApOiBEZXBlbmRlbmN5U3RlcHMge1xuICAgICAgICBjb25zdCBuZXdEZXBlbmRlbmN5OiBEZXBlbmRlbmN5U3RlcHMgPSB7fTtcblxuICAgICAgICBPYmplY3QuZW50cmllcyhkZXBlbmRlbmN5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgIG5ld0RlcGVuZGVuY3lba2V5XSA9IHt9O1xuXG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICAgICAgICAgICAgbmV3RGVwZW5kZW5jeVtrZXldW3ZdID0ge1xuICAgICAgICAgICAgICAgICAgICBbc3RyYXRlZ3ldOiBkZXBlbmRlbnRTdGVwID8gW2RlcGVuZGVudFN0ZXBdIDogW11cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3RGVwZW5kZW5jeTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2J1aWxkRGVwZW5kZW5jeU1hcChpdGVtczogUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXBlbmRlbmN5U3RlcHMgPSB7fTtcblxuICAgICAgICBjb25zdCBtZXJnZUFycmF5cyA9IChvYmpWYWx1ZTogYW55LCBzcmNWYWx1ZTogYW55KTogYW55ID0+IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9ialZhbHVlKSAmJiAhb2JqVmFsdWUuaW5jbHVkZXMoc3JjVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuaXEob2JqVmFsdWUuY29uY2F0KHNyY1ZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgYnVpbGREZXBlbmRlbmN5U3RlcHMgPSAoXG4gICAgICAgICAgICBkZXBlbmRlbmN5RmllbGRzOiBXaXphcmRHZW5lcmF0b3JEZXBlbmRlbmN5RmllbGRzLFxuICAgICAgICAgICAgc3RyYXRlZ3k6IFdpemFyZEdlbmVyYXRvclJlZnJlc2hTdHJhdGVneSxcbiAgICAgICAgICAgIHN0ZXBJZD86IHN0cmluZ1xuICAgICAgICApOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2lkLCBmb3Jtc10gb2YgT2JqZWN0LmVudHJpZXMoZGVwZW5kZW5jeUZpZWxkcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlcGVuZGVuY3lTdGVwc1tpZF0gPSBtZXJnZVdpdGgoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVwZW5kZW5jeVN0ZXBzW2lkXSB8fCB7fSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm9ybWFsaXplRGVwZW5kZW5jeVN0ZXAoZm9ybXMsIHN0cmF0ZWd5LCBzdGVwSWQpLFxuICAgICAgICAgICAgICAgICAgICBtZXJnZUFycmF5c1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgaXRlbXNcbiAgICAgICAgICAgIC5maWx0ZXIoKHMpID0+IHMuZm9ybUdyb3Vwcz8ubGVuZ3RoKVxuICAgICAgICAgICAgLmZvckVhY2goKHN0ZXApID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc3RlcC5kZXBlbmRlbmN5RmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkRGVwZW5kZW5jeVN0ZXBzKHN0ZXAuZGVwZW5kZW5jeUZpZWxkcywgV2l6YXJkR2VuZXJhdG9yUmVmcmVzaFN0cmF0ZWd5LlJFRlJFU0hfU1RFUF9WSVNJQklMSVRZKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkZXBlbmRlbnRGb3JtcyA9IHN0ZXAuZm9ybUdyb3Vwcz8uZmlsdGVyKChmb3JtKSA9PiBmb3JtLmRlcGVuZGVuY3lGaWVsZHMpO1xuXG4gICAgICAgICAgICAgICAgZGVwZW5kZW50Rm9ybXM/LmZvckVhY2goKGZvcm0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYnVpbGREZXBlbmRlbmN5U3RlcHMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmRlcGVuZGVuY3lGaWVsZHMhLFxuICAgICAgICAgICAgICAgICAgICAgICAgV2l6YXJkR2VuZXJhdG9yUmVmcmVzaFN0cmF0ZWd5LlJFRlJFU0hfRk9STV9WSVNJQklMSVRZLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RlcC5pZFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RlcEZpZWxkczogV2l6YXJkR2VuZXJhdG9yRm9ybUl0ZW1bXSA9IGNvbmNhdChcbiAgICAgICAgICAgICAgICAgICAgLi4uWy4uLihzdGVwLmZvcm1Hcm91cHMgPz8gW10pXS5tYXAoKGl0ZW0pID0+IGl0ZW0uZm9ybUl0ZW1zLmZpbHRlcigoZikgPT4gZi5kZXBlbmRlbmN5RmllbGRzKSlcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgc3RlcEZpZWxkcy5mb3JFYWNoKChmb3JtSXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBidWlsZERlcGVuZGVuY3lTdGVwcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmRlcGVuZGVuY3lGaWVsZHMhLFxuICAgICAgICAgICAgICAgICAgICAgICAgV2l6YXJkR2VuZXJhdG9yUmVmcmVzaFN0cmF0ZWd5LlJFVkFMSURBVEVfU1RFUF9GT1JNUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXAuaWRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0Q29tcGxldGVkU3RlcElkcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbHRlcigoaSkgPT4gaS5zdGF0dXMgPT09ICdjb21wbGV0ZWQnKS5tYXAoKGkpID0+IGkuaWQpO1xuICAgIH1cbn1cbiJdfQ==","import { ChangeDetectorRef, DestroyRef, Directive, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { debounceTime, finalize } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ContentDensityMode } from '@fundamental-ngx/core/content-density';\nimport { WizardGeneratorService } from './wizard-generator.service';\nimport * as i0 from \"@angular/core\";\n/**\n * @description Default button labels.\n */\nexport const DEFAULT_WIZARD_NAVIGATION_BUTTONS = {\n goBack: {\n label: 'Previous Step',\n contentDensity: ContentDensityMode.COMPACT,\n type: 'ghost'\n },\n goNext: {\n label: 'Next Step',\n contentDensity: ContentDensityMode.COMPACT,\n type: 'emphasized'\n },\n cancel: {\n label: 'Cancel',\n contentDensity: ContentDensityMode.COMPACT,\n type: 'ghost'\n },\n finish: {\n label: 'Finish',\n contentDensity: ContentDensityMode.COMPACT,\n type: 'emphasized'\n },\n review: {\n label: 'Review',\n contentDensity: ContentDensityMode.COMPACT,\n type: 'emphasized'\n }\n};\n/**\n * @description Base Wizard Generator component with necessary inputs and methods.\n */\nexport class BaseWizardGenerator {\n /**\n * @description Button labels to be used in Wizard navigation\n */\n set navigationButtonLabels(value) {\n this._navigationButtonLabels = Object.assign({}, DEFAULT_WIZARD_NAVIGATION_BUTTONS, value);\n }\n get navigationButtonLabels() {\n return this._navigationButtonLabels;\n }\n /**\n * @description Array of Wizard Steps.\n */\n set items(items) {\n this.wizardCreated = false;\n this._wizardGeneratorService.clearWizardStepComponents();\n if (!items) {\n return;\n }\n this._wizardGeneratorService.prepareWizardItems(items).then((newItems) => {\n this._items = newItems;\n this._visibleItems = newItems;\n this.wizardCreated = true;\n this._cd.detectChanges();\n });\n }\n get items() {\n return this._items;\n }\n /**\n * Whether to append the step to the wizard. If false, each step will be displayed on a different page.\n * Default is true.\n */\n set appendToWizard(value) {\n this._wizardGeneratorService.setOriginalAppendToWizardState(value);\n }\n get appendToWizard() {\n return this._appendToWizard;\n }\n /**\n * @description Is current step is summary step.\n */\n get isSummaryStep() {\n const currentIndex = this._wizardGeneratorService.getCurrentStepIndex();\n return this.visibleItems[currentIndex]?.summary === true;\n }\n /**\n * @description Array of visible Wizard Steps.\n */\n set visibleItems(items) {\n this._visibleItems = items;\n }\n get visibleItems() {\n return this._visibleItems || this._items;\n }\n /**\n * @description Whether or not Wizard is currently on the first step\n */\n get isFirstStep() {\n return this.visibleItems[0]?.status === 'current';\n }\n /**\n * @description Whether or not Wizard is currently on the last step\n */\n get isLastStep() {\n const lastStep = this.visibleItems[this.visibleItems.length - 1];\n return lastStep?.status === 'current' && !lastStep.branching;\n }\n /**\n * Whether current step is a branching step.\n */\n get isBranchingStep() {\n const currentIndex = this._wizardGeneratorService.getCurrentStepIndex();\n return this._visibleItems[currentIndex]?.branching === true;\n }\n /**\n * Whether the next step is a Summary step.\n */\n get isNextStepSummary() {\n const nextStep = this.visibleItems[this._nextStepIndex];\n return nextStep?.summary === true;\n }\n /** Whether the current step is completed */\n get isCurrentStepCompleted() {\n const currentIndex = this._wizardGeneratorService.getCurrentStepIndex();\n return this._visibleItems[currentIndex]?.completed === true;\n }\n /** @hidden */\n constructor() {\n /**\n * @description Whether or not apply responsive paddings styling.\n */\n this.responsivePaddings = true;\n /** If navigation buttons should be visible. */\n this.navigationButtons = true;\n /**\n * @description Boolean flag indicating whether to display Summary step in Wizard progress bar.\n */\n this.displaySummaryStep = false;\n /** Whether all form items should have identical layout provided for form group. */\n this.unifiedLayout = true;\n /**\n * @description Emits wizard value when it's completed.\n */\n this.wizardFinished = new EventEmitter();\n /**\n * Flag indicating that wizard is ready to be shown\n */\n this.wizardCreated = false;\n /**\n * @hidden\n */\n this._visibleItems = [];\n /** @hidden */\n this._stepsOrderChanged = false;\n /**\n * @hidden\n */\n this._navigationButtonLabels = DEFAULT_WIZARD_NAVIGATION_BUTTONS;\n /**\n * @hidden\n */\n this._destroyRef = inject(DestroyRef);\n /** @hidden */\n this._wizardGeneratorService = inject(WizardGeneratorService);\n /** @hidden */\n this._cd = inject(ChangeDetectorRef);\n /**\n * @hidden\n */\n this._items = [];\n /** @hidden */\n this._appendToWizard = false;\n /**\n * @hidden\n */\n this._formPending = false;\n this._wizardGeneratorService\n .getVisibleSteps()\n .pipe(debounceTime(10), takeUntilDestroyed(this._destroyRef))\n .subscribe((visibleSteps) => {\n this.visibleItems = visibleSteps;\n this._cd.detectChanges();\n });\n this._wizardGeneratorService\n .trackStepsComponents()\n .pipe(debounceTime(10), takeUntilDestroyed(this._destroyRef))\n .subscribe(async (stepsComponents) => {\n if (stepsComponents.size === this.items?.length) {\n await this._setVisibleSteps();\n }\n });\n this._wizardGeneratorService\n .trackAppendToWizardState()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((value) => {\n this._appendToWizard = value;\n });\n this._wizardGeneratorService\n .trackStepsOrder()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((newNextStep) => {\n this._nextStepIndex = newNextStep;\n this._stepsOrderChanged = true;\n });\n this._wizardGeneratorService\n .trackNextStepIndex()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((index) => {\n this._nextStepIndex = index;\n });\n }\n /**\n * @description Reverts Wizard progress one step back.\n */\n goBack() {\n const currentStepIndex = this._wizardGeneratorService.getCurrentStepIndex();\n const previousStepIndex = currentStepIndex - 1;\n if (this.visibleItems[previousStepIndex] === undefined) {\n return;\n }\n this._stepsOrderChanged = false;\n this.visibleItems[currentStepIndex].status = 'upcoming';\n this.visibleItems[previousStepIndex].status = 'current';\n this._wizardGeneratorService.setVisibleSteps(this.visibleItems);\n this._wizardGeneratorService.setNextStepIndex(currentStepIndex);\n this._cd.detectChanges();\n }\n /**\n * @description Progresses the Wizard one step further.\n */\n async goNext() {\n if (this._formPending) {\n return;\n }\n const currentStepIndex = this._wizardGeneratorService.getCurrentStepIndex();\n const nextStepIndex = this._nextStepIndex;\n this._wizardGeneratorService\n .validateStepForms()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(async (result) => {\n if (!result) {\n return;\n }\n await this._setVisibleSteps();\n const steps = this.visibleItems;\n if (steps[nextStepIndex] === undefined) {\n return;\n }\n this._stepsOrderChanged = false;\n steps[currentStepIndex].status = 'completed';\n steps[currentStepIndex].completed = true;\n steps[nextStepIndex].status = 'current';\n this._wizardGeneratorService.setVisibleSteps(steps);\n this._wizardGeneratorService.setNextStepIndex(nextStepIndex + 1);\n this._cd.detectChanges();\n });\n }\n /**\n * @description Submits step forms.\n * @param currentStepIndex current step index.\n * @returns {Observable<WizardStepSubmittedForms | null>} Observable with form values.\n */\n submitStepForms(currentStepIndex) {\n this._formPending = true;\n return this._wizardGeneratorService.submitStepForms(currentStepIndex).pipe(finalize(() => {\n this._formPending = false;\n }));\n }\n /**\n * @description Completes the wizard and emits it's formatted value.\n */\n async finish() {\n if (this.isSummaryStep) {\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this.wizardFinished.emit(wizardResult);\n return;\n }\n this._wizardGeneratorService\n .validateStepForms()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(async (result) => {\n if (!result) {\n return;\n }\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this.wizardFinished.emit(wizardResult);\n });\n }\n /**\n * @description Callback function to update steps status.\n * @param stepId Step ID to be updated.\n * @param status New step status.\n */\n async stepStatusChanged(stepId, status) {\n const stepIndex = this._visibleItems.findIndex((s) => s.id === stepId);\n this._visibleItems[stepIndex].status = status;\n await this._wizardGeneratorService.refreshStepVisibility();\n }\n /**\n * @hidden\n */\n async _setVisibleSteps() {\n await this._wizardGeneratorService.refreshStepVisibility();\n this.wizardCreated = true;\n this._cd.detectChanges();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseWizardGenerator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: BaseWizardGenerator, isStandalone: true, inputs: { responsivePaddings: \"responsivePaddings\", navigationButtonLabels: \"navigationButtonLabels\", items: \"items\", appendToWizard: \"appendToWizard\", navigationButtons: \"navigationButtons\", contentHeight: \"contentHeight\", displaySummaryStep: \"displaySummaryStep\", unifiedLayout: \"unifiedLayout\" }, outputs: { wizardFinished: \"wizardFinished\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseWizardGenerator, decorators: [{\n type: Directive\n }], ctorParameters: () => [], propDecorators: { responsivePaddings: [{\n type: Input\n }], navigationButtonLabels: [{\n type: Input\n }], items: [{\n type: Input\n }], appendToWizard: [{\n type: Input\n }], navigationButtons: [{\n type: Input\n }], contentHeight: [{\n type: Input\n }], displaySummaryStep: [{\n type: Input\n }], unifiedLayout: [{\n type: Input\n }], wizardFinished: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS13aXphcmQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2Jhc2Utd2l6YXJkLWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUcsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUszRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFcEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBc0M7SUFDaEYsTUFBTSxFQUFFO1FBQ0osS0FBSyxFQUFFLGVBQWU7UUFDdEIsY0FBYyxFQUFFLGtCQUFrQixDQUFDLE9BQU87UUFDMUMsSUFBSSxFQUFFLE9BQU87S0FDaEI7SUFDRCxNQUFNLEVBQUU7UUFDSixLQUFLLEVBQUUsV0FBVztRQUNsQixjQUFjLEVBQUUsa0JBQWtCLENBQUMsT0FBTztRQUMxQyxJQUFJLEVBQUUsWUFBWTtLQUNyQjtJQUNELE1BQU0sRUFBRTtRQUNKLEtBQUssRUFBRSxRQUFRO1FBQ2YsY0FBYyxFQUFFLGtCQUFrQixDQUFDLE9BQU87UUFDMUMsSUFBSSxFQUFFLE9BQU87S0FDaEI7SUFDRCxNQUFNLEVBQUU7UUFDSixLQUFLLEVBQUUsUUFBUTtRQUNmLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO1FBQzFDLElBQUksRUFBRSxZQUFZO0tBQ3JCO0lBQ0QsTUFBTSxFQUFFO1FBQ0osS0FBSyxFQUFFLFFBQVE7UUFDZixjQUFjLEVBQUUsa0JBQWtCLENBQUMsT0FBTztRQUMxQyxJQUFJLEVBQUUsWUFBWTtLQUNyQjtDQUNKLENBQUM7QUFFRjs7R0FFRztBQUVILE1BQU0sT0FBTyxtQkFBbUI7SUFPNUI7O09BRUc7SUFDSCxJQUNJLHNCQUFzQixDQUFDLEtBQThCO1FBQ3JELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxpQ0FBaUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMvRixDQUFDO0lBQ0QsSUFBSSxzQkFBc0I7UUFDdEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUM7SUFDeEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFDSSxLQUFLLENBQUMsS0FBNEI7UUFDbEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLHlCQUF5QixFQUFFLENBQUM7UUFFekQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1QsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDckUsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7WUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxRQUFRLENBQUM7WUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ0ksY0FBYyxDQUFDLEtBQWM7UUFDN0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLDhCQUE4QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQWtDRDs7T0FFRztJQUNILElBQUksYUFBYTtRQUNiLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRXhFLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsRUFBRSxPQUFPLEtBQUssSUFBSSxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksWUFBWSxDQUFDLEtBQW9DO1FBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQy9CLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxLQUFLLFNBQVMsQ0FBQztJQUN0RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJLFVBQVU7UUFDVixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sUUFBUSxFQUFFLE1BQU0sS0FBSyxTQUFTLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDO0lBQ2pFLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksZUFBZTtRQUNmLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRXhFLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLEtBQUssSUFBSSxDQUFDO0lBQ2hFLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUksaUJBQWlCO1FBQ2pCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sUUFBUSxFQUFFLE9BQU8sS0FBSyxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQUVELDRDQUE0QztJQUM1QyxJQUFJLHNCQUFzQjtRQUN0QixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN4RSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLEVBQUUsU0FBUyxLQUFLLElBQUksQ0FBQztJQUNoRSxDQUFDO0lBMENELGNBQWM7SUFDZDtRQXZMQTs7V0FFRztRQUVILHVCQUFrQixHQUFHLElBQUksQ0FBQztRQWlEMUIsK0NBQStDO1FBRS9DLHNCQUFpQixHQUFHLElBQUksQ0FBQztRQVN6Qjs7V0FFRztRQUVILHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQUUzQixtRkFBbUY7UUFFbkYsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFFckI7O1dBRUc7UUFFSCxtQkFBYyxHQUE0QyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTdFOztXQUVHO1FBQ0gsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUEyRHRCOztXQUVHO1FBQ0gsa0JBQWEsR0FBa0MsRUFBRSxDQUFDO1FBS2xELGNBQWM7UUFDZCx1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFFM0I7O1dBRUc7UUFDSCw0QkFBdUIsR0FBc0MsaUNBQWlDLENBQUM7UUFFL0Y7O1dBRUc7UUFDZ0IsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFcEQsY0FBYztRQUNLLDRCQUF1QixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1FBRTVFLGNBQWM7UUFDSyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFbkQ7O1dBRUc7UUFDSyxXQUFNLEdBQWtDLEVBQUUsQ0FBQztRQUVuRCxjQUFjO1FBQ04sb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFFaEM7O1dBRUc7UUFDSyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUl6QixJQUFJLENBQUMsdUJBQXVCO2FBQ3ZCLGVBQWUsRUFBRTthQUNqQixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUM1RCxTQUFTLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztZQUNqQyxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO1FBRVAsSUFBSSxDQUFDLHVCQUF1QjthQUN2QixvQkFBb0IsRUFBRTthQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUM1RCxTQUFTLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRSxFQUFFO1lBQ2pDLElBQUksZUFBZSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUM5QyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2xDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyx1QkFBdUI7YUFDdkIsd0JBQXdCLEVBQUU7YUFDMUIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMxQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyx1QkFBdUI7YUFDdkIsZUFBZSxFQUFFO2FBQ2pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7YUFDMUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUM7WUFDbEMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyx1QkFBdUI7YUFDdkIsa0JBQWtCLEVBQUU7YUFDcEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMxQyxTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNqQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUNoQyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU07UUFDRixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzVFLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBRS9DLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3JELE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQztRQUVoQyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUN4RCxJQUFJLENBQUMsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUN4RCxJQUFJLENBQUMsdUJBQXVCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUVoRSxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUVoRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRDs7T0FFRztJQUNILEtBQUssQ0FBQyxNQUFNO1FBQ1IsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzVFLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFFMUMsSUFBSSxDQUFDLHVCQUF1QjthQUN2QixpQkFBaUIsRUFBRTthQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQzFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNWLE9BQU87WUFDWCxDQUFDO1lBRUQsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUU5QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1lBRWhDLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUNyQyxPQUFPO1lBQ1gsQ0FBQztZQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7WUFFaEMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUMsTUFBTSxHQUFHLFdBQVcsQ0FBQztZQUM3QyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3pDLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1lBRXhDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFcEQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUVqRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzdCLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxlQUFlLENBQUMsZ0JBQXlCO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1FBRXpCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLElBQUksQ0FDdEUsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNWLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsTUFBTTtRQUNSLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3ZDLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLHVCQUF1QjthQUN2QixpQkFBaUIsRUFBRTthQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQzFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNWLE9BQU87WUFDWCxDQUFDO1lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFakYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxNQUFjLEVBQUUsTUFBd0I7UUFDNUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7UUFFdkUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRTlDLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLGdCQUFnQjtRQUMxQixNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBRTFCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0E3VlEsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFNBQVM7d0RBTU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQU9GLHNCQUFzQjtzQkFEekIsS0FBSztnQkFZRixLQUFLO3NCQURSLEtBQUs7Z0JBeUJGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBV04saUJBQWlCO3NCQURoQixLQUFLO2dCQVFOLGFBQWE7c0JBRFosS0FBSztnQkFPTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQU9OLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5TW9kZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgV2l6YXJkU3RlcFN0YXR1cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS93aXphcmQnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yRm9ybXNWYWx1ZSwgV2l6YXJkU3RlcFN1Ym1pdHRlZEZvcm1zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3dpemFyZC1nZW5lcmF0b3ItZm9ybXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbSwgV2l6YXJkR2VuZXJhdG9ySXRlbSB9IGZyb20gJy4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZE5hdmlnYXRpb25CdXR0b25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3dpemFyZC1uYXZpZ2F0aW9uLWJ1dHRvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuL3dpemFyZC1nZW5lcmF0b3Iuc2VydmljZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlZmF1bHQgYnV0dG9uIGxhYmVscy5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfV0laQVJEX05BVklHQVRJT05fQlVUVE9OUzogUmVxdWlyZWQ8V2l6YXJkTmF2aWdhdGlvbkJ1dHRvbnM+ID0ge1xuICAgIGdvQmFjazoge1xuICAgICAgICBsYWJlbDogJ1ByZXZpb3VzIFN0ZXAnLFxuICAgICAgICBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHlNb2RlLkNPTVBBQ1QsXG4gICAgICAgIHR5cGU6ICdnaG9zdCdcbiAgICB9LFxuICAgIGdvTmV4dDoge1xuICAgICAgICBsYWJlbDogJ05leHQgU3RlcCcsXG4gICAgICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVCxcbiAgICAgICAgdHlwZTogJ2VtcGhhc2l6ZWQnXG4gICAgfSxcbiAgICBjYW5jZWw6IHtcbiAgICAgICAgbGFiZWw6ICdDYW5jZWwnLFxuICAgICAgICBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHlNb2RlLkNPTVBBQ1QsXG4gICAgICAgIHR5cGU6ICdnaG9zdCdcbiAgICB9LFxuICAgIGZpbmlzaDoge1xuICAgICAgICBsYWJlbDogJ0ZpbmlzaCcsXG4gICAgICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVCxcbiAgICAgICAgdHlwZTogJ2VtcGhhc2l6ZWQnXG4gICAgfSxcbiAgICByZXZpZXc6IHtcbiAgICAgICAgbGFiZWw6ICdSZXZpZXcnLFxuICAgICAgICBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHlNb2RlLkNPTVBBQ1QsXG4gICAgICAgIHR5cGU6ICdlbXBoYXNpemVkJ1xuICAgIH1cbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJhc2UgV2l6YXJkIEdlbmVyYXRvciBjb21wb25lbnQgd2l0aCBuZWNlc3NhcnkgaW5wdXRzIGFuZCBtZXRob2RzLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBCYXNlV2l6YXJkR2VuZXJhdG9yIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBvciBub3QgYXBwbHkgcmVzcG9uc2l2ZSBwYWRkaW5ncyBzdHlsaW5nLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVzcG9uc2l2ZVBhZGRpbmdzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCdXR0b24gbGFiZWxzIHRvIGJlIHVzZWQgaW4gV2l6YXJkIG5hdmlnYXRpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzKHZhbHVlOiBXaXphcmROYXZpZ2F0aW9uQnV0dG9ucykge1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9XSVpBUkRfTkFWSUdBVElPTl9CVVRUT05TLCB2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzKCk6IFdpemFyZE5hdmlnYXRpb25CdXR0b25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hdmlnYXRpb25CdXR0b25MYWJlbHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFycmF5IG9mIFdpemFyZCBTdGVwcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBpdGVtcyhpdGVtczogV2l6YXJkR2VuZXJhdG9ySXRlbVtdKSB7XG4gICAgICAgIHRoaXMud2l6YXJkQ3JlYXRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmNsZWFyV2l6YXJkU3RlcENvbXBvbmVudHMoKTtcblxuICAgICAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnByZXBhcmVXaXphcmRJdGVtcyhpdGVtcykudGhlbigobmV3SXRlbXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1zID0gbmV3SXRlbXM7XG4gICAgICAgICAgICB0aGlzLl92aXNpYmxlSXRlbXMgPSBuZXdJdGVtcztcbiAgICAgICAgICAgIHRoaXMud2l6YXJkQ3JlYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQgaXRlbXMoKTogV2l6YXJkR2VuZXJhdG9ySXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYXBwZW5kIHRoZSBzdGVwIHRvIHRoZSB3aXphcmQuIElmIGZhbHNlLCBlYWNoIHN0ZXAgd2lsbCBiZSBkaXNwbGF5ZWQgb24gYSBkaWZmZXJlbnQgcGFnZS5cbiAgICAgKiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgYXBwZW5kVG9XaXphcmQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zZXRPcmlnaW5hbEFwcGVuZFRvV2l6YXJkU3RhdGUodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBhcHBlbmRUb1dpemFyZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGVuZFRvV2l6YXJkO1xuICAgIH1cblxuICAgIC8qKiBJZiBuYXZpZ2F0aW9uIGJ1dHRvbnMgc2hvdWxkIGJlIHZpc2libGUuICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uQnV0dG9ucyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gaGVpZ2h0IHRvIHVzZSBmb3IgdGhlIHdpemFyZCdzIGNvbnRlbnQgcGFuZS4gQnkgZGVmYXVsdCwgdGhpcyB2YWx1ZSBpcyBjYWxjKDEwMHZoIC0gMTQ0cHgpLCB3aGVyZSAxNDRweFxuICAgICAqIGlzIHRoZSBjb21iaW5lZCBoZWlnaHQgb2YgdGhlIHNoZWxsYmFyLCB3aXphcmQgaGVhZGVyIGFuZCB3aXphcmQgZm9vdGVyLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29udGVudEhlaWdodDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIGRpc3BsYXkgU3VtbWFyeSBzdGVwIGluIFdpemFyZCBwcm9ncmVzcyBiYXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5U3VtbWFyeVN0ZXAgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGFsbCBmb3JtIGl0ZW1zIHNob3VsZCBoYXZlIGlkZW50aWNhbCBsYXlvdXQgcHJvdmlkZWQgZm9yIGZvcm0gZ3JvdXAuICovXG4gICAgQElucHV0KClcbiAgICB1bmlmaWVkTGF5b3V0ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aXphcmQgdmFsdWUgd2hlbiBpdCdzIGNvbXBsZXRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICB3aXphcmRGaW5pc2hlZDogRXZlbnRFbWl0dGVyPFdpemFyZEdlbmVyYXRvckZvcm1zVmFsdWU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogRmxhZyBpbmRpY2F0aW5nIHRoYXQgd2l6YXJkIGlzIHJlYWR5IHRvIGJlIHNob3duXG4gICAgICovXG4gICAgd2l6YXJkQ3JlYXRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIElzIGN1cnJlbnQgc3RlcCBpcyBzdW1tYXJ5IHN0ZXAuXG4gICAgICovXG4gICAgZ2V0IGlzU3VtbWFyeVN0ZXAoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0Q3VycmVudFN0ZXBJbmRleCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGVJdGVtc1tjdXJyZW50SW5kZXhdPy5zdW1tYXJ5ID09PSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBcnJheSBvZiB2aXNpYmxlIFdpemFyZCBTdGVwcy5cbiAgICAgKi9cbiAgICBzZXQgdmlzaWJsZUl0ZW1zKGl0ZW1zOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSkge1xuICAgICAgICB0aGlzLl92aXNpYmxlSXRlbXMgPSBpdGVtcztcbiAgICB9XG4gICAgZ2V0IHZpc2libGVJdGVtcygpOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlSXRlbXMgfHwgdGhpcy5faXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgb3Igbm90IFdpemFyZCBpcyBjdXJyZW50bHkgb24gdGhlIGZpcnN0IHN0ZXBcbiAgICAgKi9cbiAgICBnZXQgaXNGaXJzdFN0ZXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGVJdGVtc1swXT8uc3RhdHVzID09PSAnY3VycmVudCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgb3Igbm90IFdpemFyZCBpcyBjdXJyZW50bHkgb24gdGhlIGxhc3Qgc3RlcFxuICAgICAqL1xuICAgIGdldCBpc0xhc3RTdGVwKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBsYXN0U3RlcCA9IHRoaXMudmlzaWJsZUl0ZW1zW3RoaXMudmlzaWJsZUl0ZW1zLmxlbmd0aCAtIDFdO1xuICAgICAgICByZXR1cm4gbGFzdFN0ZXA/LnN0YXR1cyA9PT0gJ2N1cnJlbnQnICYmICFsYXN0U3RlcC5icmFuY2hpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBjdXJyZW50IHN0ZXAgaXMgYSBicmFuY2hpbmcgc3RlcC5cbiAgICAgKi9cbiAgICBnZXQgaXNCcmFuY2hpbmdTdGVwKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldEN1cnJlbnRTdGVwSW5kZXgoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZUl0ZW1zW2N1cnJlbnRJbmRleF0/LmJyYW5jaGluZyA9PT0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBuZXh0IHN0ZXAgaXMgYSBTdW1tYXJ5IHN0ZXAuXG4gICAgICovXG4gICAgZ2V0IGlzTmV4dFN0ZXBTdW1tYXJ5KCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBuZXh0U3RlcCA9IHRoaXMudmlzaWJsZUl0ZW1zW3RoaXMuX25leHRTdGVwSW5kZXhdO1xuICAgICAgICByZXR1cm4gbmV4dFN0ZXA/LnN1bW1hcnkgPT09IHRydWU7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgc3RlcCBpcyBjb21wbGV0ZWQgKi9cbiAgICBnZXQgaXNDdXJyZW50U3RlcENvbXBsZXRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRDdXJyZW50U3RlcEluZGV4KCk7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlSXRlbXNbY3VycmVudEluZGV4XT8uY29tcGxldGVkID09PSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfdmlzaWJsZUl0ZW1zOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfbmV4dFN0ZXBJbmRleDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc3RlcHNPcmRlckNoYW5nZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfbmF2aWdhdGlvbkJ1dHRvbkxhYmVsczogUmVxdWlyZWQ8V2l6YXJkTmF2aWdhdGlvbkJ1dHRvbnM+ID0gREVGQVVMVF9XSVpBUkRfTkFWSUdBVElPTl9CVVRUT05TO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF93aXphcmRHZW5lcmF0b3JTZXJ2aWNlID0gaW5qZWN0KFdpemFyZEdlbmVyYXRvclNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9pdGVtczogUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXBwZW5kVG9XaXphcmQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb3JtUGVuZGluZyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZVxuICAgICAgICAgICAgLmdldFZpc2libGVTdGVwcygpXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTApLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2aXNpYmxlU3RlcHMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVJdGVtcyA9IHZpc2libGVTdGVwcztcbiAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlXG4gICAgICAgICAgICAudHJhY2tTdGVwc0NvbXBvbmVudHMoKVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoc3RlcHNDb21wb25lbnRzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHN0ZXBzQ29tcG9uZW50cy5zaXplID09PSB0aGlzLml0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2V0VmlzaWJsZVN0ZXBzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZVxuICAgICAgICAgICAgLnRyYWNrQXBwZW5kVG9XaXphcmRTdGF0ZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FwcGVuZFRvV2l6YXJkID0gdmFsdWU7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlXG4gICAgICAgICAgICAudHJhY2tTdGVwc09yZGVyKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG5ld05leHRTdGVwKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbmV4dFN0ZXBJbmRleCA9IG5ld05leHRTdGVwO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0ZXBzT3JkZXJDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2VcbiAgICAgICAgICAgIC50cmFja05leHRTdGVwSW5kZXgoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9uZXh0U3RlcEluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmV2ZXJ0cyBXaXphcmQgcHJvZ3Jlc3Mgb25lIHN0ZXAgYmFjay5cbiAgICAgKi9cbiAgICBnb0JhY2soKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwSW5kZXggPSB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldEN1cnJlbnRTdGVwSW5kZXgoKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNTdGVwSW5kZXggPSBjdXJyZW50U3RlcEluZGV4IC0gMTtcblxuICAgICAgICBpZiAodGhpcy52aXNpYmxlSXRlbXNbcHJldmlvdXNTdGVwSW5kZXhdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3N0ZXBzT3JkZXJDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXNbY3VycmVudFN0ZXBJbmRleF0uc3RhdHVzID0gJ3VwY29taW5nJztcbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXNbcHJldmlvdXNTdGVwSW5kZXhdLnN0YXR1cyA9ICdjdXJyZW50JztcbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zZXRWaXNpYmxlU3RlcHModGhpcy52aXNpYmxlSXRlbXMpO1xuXG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2Uuc2V0TmV4dFN0ZXBJbmRleChjdXJyZW50U3RlcEluZGV4KTtcblxuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb2dyZXNzZXMgdGhlIFdpemFyZCBvbmUgc3RlcCBmdXJ0aGVyLlxuICAgICAqL1xuICAgIGFzeW5jIGdvTmV4dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX2Zvcm1QZW5kaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50U3RlcEluZGV4ID0gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRDdXJyZW50U3RlcEluZGV4KCk7XG4gICAgICAgIGNvbnN0IG5leHRTdGVwSW5kZXggPSB0aGlzLl9uZXh0U3RlcEluZGV4O1xuXG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2VcbiAgICAgICAgICAgIC52YWxpZGF0ZVN0ZXBGb3JtcygpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2V0VmlzaWJsZVN0ZXBzKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzdGVwcyA9IHRoaXMudmlzaWJsZUl0ZW1zO1xuXG4gICAgICAgICAgICAgICAgaWYgKHN0ZXBzW25leHRTdGVwSW5kZXhdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuX3N0ZXBzT3JkZXJDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBzdGVwc1tjdXJyZW50U3RlcEluZGV4XS5zdGF0dXMgPSAnY29tcGxldGVkJztcbiAgICAgICAgICAgICAgICBzdGVwc1tjdXJyZW50U3RlcEluZGV4XS5jb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHN0ZXBzW25leHRTdGVwSW5kZXhdLnN0YXR1cyA9ICdjdXJyZW50JztcblxuICAgICAgICAgICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2Uuc2V0VmlzaWJsZVN0ZXBzKHN0ZXBzKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2Uuc2V0TmV4dFN0ZXBJbmRleChuZXh0U3RlcEluZGV4ICsgMSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3VibWl0cyBzdGVwIGZvcm1zLlxuICAgICAqIEBwYXJhbSBjdXJyZW50U3RlcEluZGV4IGN1cnJlbnQgc3RlcCBpbmRleC5cbiAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxXaXphcmRTdGVwU3VibWl0dGVkRm9ybXMgfCBudWxsPn0gT2JzZXJ2YWJsZSB3aXRoIGZvcm0gdmFsdWVzLlxuICAgICAqL1xuICAgIHN1Ym1pdFN0ZXBGb3JtcyhjdXJyZW50U3RlcEluZGV4Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxXaXphcmRTdGVwU3VibWl0dGVkRm9ybXMgfCBudWxsPiB7XG4gICAgICAgIHRoaXMuX2Zvcm1QZW5kaW5nID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zdWJtaXRTdGVwRm9ybXMoY3VycmVudFN0ZXBJbmRleCkucGlwZShcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb3JtUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGVzIHRoZSB3aXphcmQgYW5kIGVtaXRzIGl0J3MgZm9ybWF0dGVkIHZhbHVlLlxuICAgICAqL1xuICAgIGFzeW5jIGZpbmlzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdW1tYXJ5U3RlcCkge1xuICAgICAgICAgICAgY29uc3Qgd2l6YXJkUmVzdWx0ID0gYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRXaXphcmRGb3JtVmFsdWUodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLndpemFyZEZpbmlzaGVkLmVtaXQod2l6YXJkUmVzdWx0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2VcbiAgICAgICAgICAgIC52YWxpZGF0ZVN0ZXBGb3JtcygpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgd2l6YXJkUmVzdWx0ID0gYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRXaXphcmRGb3JtVmFsdWUodHJ1ZSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLndpemFyZEZpbmlzaGVkLmVtaXQod2l6YXJkUmVzdWx0KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYWxsYmFjayBmdW5jdGlvbiB0byB1cGRhdGUgc3RlcHMgc3RhdHVzLlxuICAgICAqIEBwYXJhbSBzdGVwSWQgU3RlcCBJRCB0byBiZSB1cGRhdGVkLlxuICAgICAqIEBwYXJhbSBzdGF0dXMgTmV3IHN0ZXAgc3RhdHVzLlxuICAgICAqL1xuICAgIGFzeW5jIHN0ZXBTdGF0dXNDaGFuZ2VkKHN0ZXBJZDogc3RyaW5nLCBzdGF0dXM6IFdpemFyZFN0ZXBTdGF0dXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgc3RlcEluZGV4ID0gdGhpcy5fdmlzaWJsZUl0ZW1zLmZpbmRJbmRleCgocykgPT4gcy5pZCA9PT0gc3RlcElkKTtcblxuICAgICAgICB0aGlzLl92aXNpYmxlSXRlbXNbc3RlcEluZGV4XS5zdGF0dXMgPSBzdGF0dXM7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5yZWZyZXNoU3RlcFZpc2liaWxpdHkoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0VmlzaWJsZVN0ZXBzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnJlZnJlc2hTdGVwVmlzaWJpbGl0eSgpO1xuXG4gICAgICAgIHRoaXMud2l6YXJkQ3JlYXRlZCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, DestroyRef, EventEmitter, Input, Output, QueryList, ViewChildren, ViewEncapsulation, inject } from '@angular/core';\nimport { FormGeneratorComponent, FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { isFunction } from '@fundamental-ngx/platform/shared';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { WizardGeneratorRefreshStrategy, WizardGeneratorService } from '../../wizard-generator.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../wizard-generator.service\";\nimport * as i2 from \"@fundamental-ngx/platform/form\";\nexport class WizardGeneratorStepComponent {\n /** @hidden */\n constructor(_wizardGeneratorService, _formGeneratorService) {\n this._wizardGeneratorService = _wizardGeneratorService;\n this._formGeneratorService = _formGeneratorService;\n /** Whether all form items should have identical layout provided for form group. */\n this.unifiedLayout = true;\n /**\n * @description Emits when all forms in the step has been submited\n */\n this.formsSubmitted = new EventEmitter();\n /**\n * @description Emits when all forms in the step has been created\n */\n this.formsCreated = new EventEmitter();\n /**\n * @hidden\n */\n this._submittedForms = {};\n /**\n * @hidden\n */\n this._formSubmitted$ = new Subject();\n /**\n * @hidden\n */\n this._forms = {};\n /**\n * @hidden\n * @private\n */\n this._hiddenFormGroupValues = {};\n /**\n * @hidden\n * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)\n */\n this._destroyRef = inject(DestroyRef);\n }\n /**\n * @hidden\n */\n async ngOnInit() {\n await this.refreshFormsVisibility();\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this._wizardGeneratorService.removeWizardStepComponent(this.item.id);\n }\n /** @hidden */\n async ngOnChanges(changes) {\n if (changes.stepStatus && changes.stepStatus.currentValue === 'current' && this.formGenerators?.length > 0) {\n await this.updateFormsState();\n }\n }\n /**\n * @description Adds created form instance to the object of the forms.\n * @param form Form instance\n * @param key Form ID from @see item\n */\n async onFormCreated(form, key) {\n this._forms[key] = {\n title: this.item.formGroups?.find((g) => g.id === key)?.title ?? '',\n form\n };\n await this._wizardGeneratorService.refreshStepVisibility();\n if (Object.keys(this._forms).length === this.item.formGroups?.length) {\n await this.addComponentToParent();\n this.formsCreated.emit(this._forms);\n }\n if (this._hiddenFormGroupValues[key]) {\n form?.patchValue(this._hiddenFormGroupValues[key]);\n }\n this._trackDependencyFieldsChanges(form, key);\n }\n /**\n * @description Adds component to the service for further usage.\n */\n async addComponentToParent() {\n this._wizardGeneratorService.addWizardStepComponent(this, this.item.id);\n }\n /**\n * @description Callback function when form has been submitted.\n * @param result Form submission result.\n * @param index Form index in the step.\n */\n onFormSubmitted(result, index) {\n this._submittedForms[index] = result;\n if (Object.keys(this._submittedForms).length === this.formGenerators.length) {\n // Last form submission. Send data back to the parent component.\n this._formSubmitted$.next(this._submittedForms);\n }\n }\n /**\n * Returns visible forms in the step.\n */\n getVisibleForms() {\n return Object.keys(this._forms).reduce((acc, key) => {\n if (this._visibleFormGroupIds[key] || this._visibleFormGroupIds[key] === undefined) {\n acc[key] = this._forms[key];\n }\n return acc;\n }, {});\n }\n /**\n * @description Clears previously submitted form values and re-submit them again.\n * @returns Subject, which will return forms value.\n */\n submitForms(skipIfUntouched = false) {\n if (skipIfUntouched && !this._wizardGeneratorService.stepSubmitted(this.item.id)) {\n setTimeout(() => {\n this._formSubmitted$.next(null);\n });\n return this._formSubmitted$;\n }\n // Clear previously submitted form values and re-submit them again.\n this._submittedForms = {};\n setTimeout(() => {\n this.formGenerators.forEach((formComponent) => {\n formComponent.submit();\n });\n });\n return this._formSubmitted$;\n }\n /**\n * Triggers form value revalidation and checks if field in form should be visible.\n */\n async updateFormsState() {\n if (this.formGenerators) {\n for (const formGenerator of this.formGenerators.toArray()) {\n await formGenerator.refreshStepsVisibility();\n }\n }\n }\n /**\n * Refreshes step form group visibility.\n */\n async refreshFormsVisibility() {\n this._visibleFormGroupIds = {};\n if (!this.item.formGroups) {\n return;\n }\n for (const formGroup of this.item.formGroups.filter((fg) => isFunction(fg.when))) {\n const result = await this._wizardGeneratorService.refreshFormVisibility(formGroup);\n if (result === this._visibleFormGroupIds[formGroup.id]) {\n return;\n }\n const form = this._forms[formGroup.id]?.form;\n // Store form value so it could be restored later.\n if (!result) {\n this._hiddenFormGroupValues[formGroup.id] = form?.value;\n }\n this._visibleFormGroupIds[formGroup.id] = result;\n }\n }\n /**\n * @hidden\n * @description Keeps track on dependency fields for other steps and refreshes the view when they changed.\n * @param form\n * @param key\n */\n _trackDependencyFieldsChanges(form, key) {\n this._trackedFields = this._wizardGeneratorService.getStepDependencyFields(this.item.id);\n if (this._trackedFields && this._trackedFields[key]) {\n Object.entries(this._trackedFields[key]).forEach(([fieldId, strategies]) => {\n const control = this._formGeneratorService.getFormControl(form, fieldId);\n const refreshSteps = strategies[WizardGeneratorRefreshStrategy.REFRESH_STEP_VISIBILITY] !== undefined;\n const revalidateForms = strategies[WizardGeneratorRefreshStrategy.REVALIDATE_STEP_FORMS];\n const refreshFormVisibility = strategies[WizardGeneratorRefreshStrategy.REFRESH_FORM_VISIBILITY];\n control?.valueChanges\n .pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef))\n .subscribe(async () => {\n if (refreshSteps) {\n await this._wizardGeneratorService.refreshStepVisibility();\n }\n if (revalidateForms?.length) {\n this._wizardGeneratorService.notifyStepsToRevalidateForms(revalidateForms);\n }\n if (refreshFormVisibility?.length) {\n await this._wizardGeneratorService.refreshFormsVisibility(refreshFormVisibility);\n }\n });\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorStepComponent, deps: [{ token: i1.WizardGeneratorService }, { token: i2.FormGeneratorService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: WizardGeneratorStepComponent, isStandalone: true, selector: \"fdp-wizard-generator-step\", inputs: { item: \"item\", stepStatus: \"stepStatus\", unifiedLayout: \"unifiedLayout\" }, outputs: { formsSubmitted: \"formsSubmitted\", formsCreated: \"formsCreated\" }, viewQueries: [{ propertyName: \"formGenerators\", predicate: FormGeneratorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: \"@if (item.title) {\\n <h3 fd-title>{{ item.title }}</h3>\\n}\\n@for (form of item.formGroups; track form; let i = $index) {\\n @if (_visibleFormGroupIds[form.id] !== false) {\\n <fdp-form-generator\\n [mainTitle]=\\\"form.title\\\"\\n [columnLayout]=\\\"form.columnLayout\\\"\\n [noAdditionalContent]=\\\"true\\\"\\n [formName]=\\\"form.id\\\"\\n [formItems]=\\\"$any(form.formItems)\\\"\\n [hint]=\\\"form.guiOptions?.hint!\\\"\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n (formCreated)=\\\"onFormCreated($event, form.id)\\\"\\n (formSubmittedStatus)=\\\"onFormSubmitted($event, form.id)\\\"\\n ></fdp-form-generator>\\n }\\n}\\n\", dependencies: [{ kind: \"component\", type: TitleComponent, selector: \"[fd-title], [fdTitle]\", inputs: [\"headerSize\", \"wrap\"], exportAs: [\"fd-title\"] }, { kind: \"component\", type: FormGeneratorComponent, selector: \"fdp-form-generator\", inputs: [\"formName\", \"formItems\", \"mainTitle\", \"hideMainTItle\", \"hint\", \"columnLayout\", \"labelColumnLayout\", \"fieldColumnLayout\", \"gapColumnLayout\", \"unifiedLayout\", \"inlineColumnLayout\", \"noAdditionalContent\"], outputs: [\"formCreated\", \"formSubmitted\", \"formSubmittedStatus\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorStepComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-wizard-generator-step', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TitleComponent, FormGeneratorComponent], template: \"@if (item.title) {\\n <h3 fd-title>{{ item.title }}</h3>\\n}\\n@for (form of item.formGroups; track form; let i = $index) {\\n @if (_visibleFormGroupIds[form.id] !== false) {\\n <fdp-form-generator\\n [mainTitle]=\\\"form.title\\\"\\n [columnLayout]=\\\"form.columnLayout\\\"\\n [noAdditionalContent]=\\\"true\\\"\\n [formName]=\\\"form.id\\\"\\n [formItems]=\\\"$any(form.formItems)\\\"\\n [hint]=\\\"form.guiOptions?.hint!\\\"\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n (formCreated)=\\\"onFormCreated($event, form.id)\\\"\\n (formSubmittedStatus)=\\\"onFormSubmitted($event, form.id)\\\"\\n ></fdp-form-generator>\\n }\\n}\\n\" }]\n }], ctorParameters: () => [{ type: i1.WizardGeneratorService }, { type: i2.FormGeneratorService }], propDecorators: { formGenerators: [{\n type: ViewChildren,\n args: [FormGeneratorComponent]\n }], item: [{\n type: Input\n }], stepStatus: [{\n type: Input\n }], unifiedLayout: [{\n type: Input\n }], formsSubmitted: [{\n type: Output\n }], formsCreated: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci1zdGVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2l6YXJkLWdlbmVyYXRvci9jb21wb25lbnRzL3dpemFyZC1nZW5lcmF0b3Itc3RlcC93aXphcmQtZ2VuZXJhdG9yLXN0ZXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvd2l6YXJkLWdlbmVyYXRvci1zdGVwL3dpemFyZC1nZW5lcmF0b3Itc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxFQUVULFlBQVksRUFDWixpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFHSCxzQkFBc0IsRUFDdEIsb0JBQW9CLEVBRXZCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTlDLE9BQU8sRUFFSCw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3pCLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBUzdELE1BQU0sT0FBTyw0QkFBNEI7SUF5RXJDLGNBQWM7SUFDZCxZQUNZLHVCQUErQyxFQUMvQyxxQkFBMkM7UUFEM0MsNEJB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SSxFQUFFO29CQUNsQixJQUFJLFlBQVksRUFBRSxDQUFDO3dCQUNmLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQixFQUFFLENBQUM7b0JBQy9ELENBQUM7b0JBRUQsSUFBSSxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUM7d0JBQzFCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDL0UsQ0FBQztvQkFFRCxJQUFJLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxDQUFDO3dCQUNoQyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO29CQUNyRixDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQzs4R0EvUFEsNEJBQTRCO2tHQUE1Qiw0QkFBNEIseVJBSXZCLHNCQUFzQixxRUNuRHhDLDJyQkFrQkEsNENEMkJjLGNBQWMsMEhBQUUsc0JBQXNCOzsyRkFFdkMsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNJLDJCQUEyQixpQkFFdEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQzs4SEFNWCxjQUFjO3NCQUFuRCxZQUFZO3VCQUFDLHNCQUFzQjtnQkFNcEMsSUFBSTtzQkFESCxLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBT04sY0FBYztzQkFEYixNQUFNO2dCQU9QLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2l6YXJkU3RlcFN0YXR1cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS93aXphcmQnO1xuXG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtR3JvdXAsXG4gICAgRHluYW1pY0Zvcm1WYWx1ZSxcbiAgICBGb3JtR2VuZXJhdG9yQ29tcG9uZW50LFxuICAgIEZvcm1HZW5lcmF0b3JTZXJ2aWNlLFxuICAgIFN1Ym1pdEZvcm1FdmVudFJlc3VsdFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2Zvcm0nO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFdpemFyZFN0ZXBGb3JtcywgV2l6YXJkU3RlcFN1Ym1pdHRlZEZvcm1zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWZvcm1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclN0ZXAgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3dpemFyZC1zdGVwLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICAgIERlcGVuZGVuY3lTdGVwcyxcbiAgICBXaXphcmRHZW5lcmF0b3JSZWZyZXNoU3RyYXRlZ3ksXG4gICAgV2l6YXJkR2VuZXJhdG9yU2VydmljZVxufSBmcm9tICcuLi8uLi93aXphcmQtZ2VuZXJhdG9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXdpemFyZC1nZW5lcmF0b3Itc3RlcCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3dpemFyZC1nZW5lcmF0b3Itc3RlcC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbVGl0bGVDb21wb25lbnQsIEZvcm1HZW5lcmF0b3JDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFdpemFyZEdlbmVyYXRvclN0ZXBDb21wb25lbnQgaW1wbGVtZW50cyBXaXphcmRHZW5lcmF0b3JTdGVwLCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3RlcCBGb3JtIEdlbmVyYXRvciBjb21wb25lbnRzLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oRm9ybUdlbmVyYXRvckNvbXBvbmVudCkgZm9ybUdlbmVyYXRvcnM6IFF1ZXJ5TGlzdDxGb3JtR2VuZXJhdG9yQ29tcG9uZW50PjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDdXJyZW50IHN0ZXAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpdGVtOiBXaXphcmRHZW5lcmF0b3JJdGVtO1xuXG4gICAgLyoqXG4gICAgICogV2l6YXJkIHN0ZXAgc3RhdHVzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RlcFN0YXR1czogV2l6YXJkU3RlcFN0YXR1cztcblxuICAgIC8qKiBXaGV0aGVyIGFsbCBmb3JtIGl0ZW1zIHNob3VsZCBoYXZlIGlkZW50aWNhbCBsYXlvdXQgcHJvdmlkZWQgZm9yIGZvcm0gZ3JvdXAuICovXG4gICAgQElucHV0KClcbiAgICB1bmlmaWVkTGF5b3V0ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIGFsbCBmb3JtcyBpbiB0aGUgc3RlcCBoYXMgYmVlbiBzdWJtaXRlZFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1zU3VibWl0dGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybVZhbHVlW10+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBhbGwgZm9ybXMgaW4gdGhlIHN0ZXAgaGFzIGJlZW4gY3JlYXRlZFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1zQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8V2l6YXJkU3RlcEZvcm1zPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF92aXNpYmxlRm9ybUdyb3VwSWRzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zdWJtaXR0ZWRGb3JtczogV2l6YXJkU3RlcFN1Ym1pdHRlZEZvcm1zID0ge307XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZm9ybVN1Ym1pdHRlZCQgPSBuZXcgU3ViamVjdDxXaXphcmRTdGVwU3VibWl0dGVkRm9ybXMgfCBudWxsPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2Zvcm1zOiBXaXphcmRTdGVwRm9ybXMgPSB7fTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF90cmFja2VkRmllbGRzOiBEZXBlbmRlbmN5U3RlcHM7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9oaWRkZW5Gb3JtR3JvdXBWYWx1ZXM6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIH0gPSB7fTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3dpemFyZEdlbmVyYXRvclNlcnZpY2U6IFdpemFyZEdlbmVyYXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2Zvcm1HZW5lcmF0b3JTZXJ2aWNlOiBGb3JtR2VuZXJhdG9yU2VydmljZVxuICAgICkge31cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoRm9ybXNWaXNpYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnJlbW92ZVdpemFyZFN0ZXBDb21wb25lbnQodGhpcy5pdGVtLmlkKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKGNoYW5nZXMuc3RlcFN0YXR1cyAmJiBjaGFuZ2VzLnN0ZXBTdGF0dXMuY3VycmVudFZhbHVlID09PSAnY3VycmVudCcgJiYgdGhpcy5mb3JtR2VuZXJhdG9ycz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVGb3Jtc1N0YXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQWRkcyBjcmVhdGVkIGZvcm0gaW5zdGFuY2UgdG8gdGhlIG9iamVjdCBvZiB0aGUgZm9ybXMuXG4gICAgICogQHBhcmFtIGZvcm0gRm9ybSBpbnN0YW5jZVxuICAgICAqIEBwYXJhbSBrZXkgRm9ybSBJRCBmcm9tIEBzZWUgaXRlbVxuICAgICAqL1xuICAgIGFzeW5jIG9uRm9ybUNyZWF0ZWQoZm9ybTogRHluYW1pY0Zvcm1Hcm91cCwga2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fZm9ybXNba2V5XSA9IHtcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLml0ZW0uZm9ybUdyb3Vwcz8uZmluZCgoZykgPT4gZy5pZCA9PT0ga2V5KT8udGl0bGUgPz8gJycsXG4gICAgICAgICAgICBmb3JtXG4gICAgICAgIH07XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5yZWZyZXNoU3RlcFZpc2liaWxpdHkoKTtcblxuICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5fZm9ybXMpLmxlbmd0aCA9PT0gdGhpcy5pdGVtLmZvcm1Hcm91cHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5hZGRDb21wb25lbnRUb1BhcmVudCgpO1xuICAgICAgICAgICAgdGhpcy5mb3Jtc0NyZWF0ZWQuZW1pdCh0aGlzLl9mb3Jtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5faGlkZGVuRm9ybUdyb3VwVmFsdWVzW2tleV0pIHtcbiAgICAgICAgICAgIGZvcm0/LnBhdGNoVmFsdWUodGhpcy5faGlkZGVuRm9ybUdyb3VwVmFsdWVzW2tleV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdHJhY2tEZXBlbmRlbmN5RmllbGRzQ2hhbmdlcyhmb3JtLCBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBZGRzIGNvbXBvbmVudCB0byB0aGUgc2VydmljZSBmb3IgZnVydGhlciB1c2FnZS5cbiAgICAgKi9cbiAgICBhc3luYyBhZGRDb21wb25lbnRUb1BhcmVudCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5hZGRXaXphcmRTdGVwQ29tcG9uZW50KHRoaXMsIHRoaXMuaXRlbS5pZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gZm9ybSBoYXMgYmVlbiBzdWJtaXR0ZWQuXG4gICAgICogQHBhcmFtIHJlc3VsdCBGb3JtIHN1Ym1pc3Npb24gcmVzdWx0LlxuICAgICAqIEBwYXJhbSBpbmRleCBGb3JtIGluZGV4IGluIHRoZSBzdGVwLlxuICAgICAqL1xuICAgIG9uRm9ybVN1Ym1pdHRlZChyZXN1bHQ6IFN1Ym1pdEZvcm1FdmVudFJlc3VsdCwgaW5kZXg6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJtaXR0ZWRGb3Jtc1tpbmRleF0gPSByZXN1bHQ7XG5cbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuX3N1Ym1pdHRlZEZvcm1zKS5sZW5ndGggPT09IHRoaXMuZm9ybUdlbmVyYXRvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBMYXN0IGZvcm0gc3VibWlzc2lvbi4gU2VuZCBkYXRhIGJhY2sgdG8gdGhlIHBhcmVudCBjb21wb25lbnQuXG4gICAgICAgICAgICB0aGlzLl9mb3JtU3VibWl0dGVkJC5uZXh0KHRoaXMuX3N1Ym1pdHRlZEZvcm1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdmlzaWJsZSBmb3JtcyBpbiB0aGUgc3RlcC5cbiAgICAgKi9cbiAgICBnZXRWaXNpYmxlRm9ybXMoKTogV2l6YXJkU3RlcEZvcm1zIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2Zvcm1zKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmlzaWJsZUZvcm1Hcm91cElkc1trZXldIHx8IHRoaXMuX3Zpc2libGVGb3JtR3JvdXBJZHNba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgYWNjW2tleV0gPSB0aGlzLl9mb3Jtc1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDbGVhcnMgcHJldmlvdXNseSBzdWJtaXR0ZWQgZm9ybSB2YWx1ZXMgYW5kIHJlLXN1Ym1pdCB0aGVtIGFnYWluLlxuICAgICAqIEByZXR1cm5zIFN1YmplY3QsIHdoaWNoIHdpbGwgcmV0dXJuIGZvcm1zIHZhbHVlLlxuICAgICAqL1xuICAgIHN1Ym1pdEZvcm1zKHNraXBJZlVudG91Y2hlZCA9IGZhbHNlKTogU3ViamVjdDxXaXphcmRTdGVwU3VibWl0dGVkRm9ybXMgfCBudWxsPiB7XG4gICAgICAgIGlmIChza2lwSWZVbnRvdWNoZWQgJiYgIXRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2Uuc3RlcFN1Ym1pdHRlZCh0aGlzLml0ZW0uaWQpKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb3JtU3VibWl0dGVkJC5uZXh0KG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZm9ybVN1Ym1pdHRlZCQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDbGVhciBwcmV2aW91c2x5IHN1Ym1pdHRlZCBmb3JtIHZhbHVlcyBhbmQgcmUtc3VibWl0IHRoZW0gYWdhaW4uXG4gICAgICAgIHRoaXMuX3N1Ym1pdHRlZEZvcm1zID0ge307XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvcm1HZW5lcmF0b3JzLmZvckVhY2goKGZvcm1Db21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBmb3JtQ29tcG9uZW50LnN1Ym1pdCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtU3VibWl0dGVkJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmlnZ2VycyBmb3JtIHZhbHVlIHJldmFsaWRhdGlvbiBhbmQgY2hlY2tzIGlmIGZpZWxkIGluIGZvcm0gc2hvdWxkIGJlIHZpc2libGUuXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlRm9ybXNTdGF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdlbmVyYXRvcnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybUdlbmVyYXRvciBvZiB0aGlzLmZvcm1HZW5lcmF0b3JzLnRvQXJyYXkoKSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGZvcm1HZW5lcmF0b3IucmVmcmVzaFN0ZXBzVmlzaWJpbGl0eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVmcmVzaGVzIHN0ZXAgZm9ybSBncm91cCB2aXNpYmlsaXR5LlxuICAgICAqL1xuICAgIGFzeW5jIHJlZnJlc2hGb3Jtc1Zpc2liaWxpdHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX3Zpc2libGVGb3JtR3JvdXBJZHMgPSB7fTtcblxuICAgICAgICBpZiAoIXRoaXMuaXRlbS5mb3JtR3JvdXBzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGZvcm1Hcm91cCBvZiB0aGlzLml0ZW0uZm9ybUdyb3Vwcy5maWx0ZXIoKGZnKSA9PiBpc0Z1bmN0aW9uKGZnLndoZW4pKSkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5yZWZyZXNoRm9ybVZpc2liaWxpdHkoZm9ybUdyb3VwKTtcblxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdGhpcy5fdmlzaWJsZUZvcm1Hcm91cElkc1tmb3JtR3JvdXAuaWRdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5fZm9ybXNbZm9ybUdyb3VwLmlkXT8uZm9ybTtcblxuICAgICAgICAgICAgLy8gU3RvcmUgZm9ybSB2YWx1ZSBzbyBpdCBjb3VsZCBiZSByZXN0b3JlZCBsYXRlci5cbiAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faGlkZGVuRm9ybUdyb3VwVmFsdWVzW2Zvcm1Hcm91cC5pZF0gPSBmb3JtPy52YWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fdmlzaWJsZUZvcm1Hcm91cElkc1tmb3JtR3JvdXAuaWRdID0gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBLZWVwcyB0cmFjayBvbiBkZXBlbmRlbmN5IGZpZWxkcyBmb3Igb3RoZXIgc3RlcHMgYW5kIHJlZnJlc2hlcyB0aGUgdmlldyB3aGVuIHRoZXkgY2hhbmdlZC5cbiAgICAgKiBAcGFyYW0gZm9ybVxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKi9cbiAgICBwcml2YXRlIF90cmFja0RlcGVuZGVuY3lGaWVsZHNDaGFuZ2VzKGZvcm06IER5bmFtaWNGb3JtR3JvdXAsIGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RyYWNrZWRGaWVsZHMgPSB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldFN0ZXBEZXBlbmRlbmN5RmllbGRzKHRoaXMuaXRlbS5pZCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3RyYWNrZWRGaWVsZHMgJiYgdGhpcy5fdHJhY2tlZEZpZWxkc1trZXldKSB7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLl90cmFja2VkRmllbGRzW2tleV0pLmZvckVhY2goKFtmaWVsZElkLCBzdHJhdGVnaWVzXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9mb3JtR2VuZXJhdG9yU2VydmljZS5nZXRGb3JtQ29udHJvbChmb3JtLCBmaWVsZElkKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlZnJlc2hTdGVwcyA9IHN0cmF0ZWdpZXNbV2l6YXJkR2VuZXJhdG9yUmVmcmVzaFN0cmF0ZWd5LlJFRlJFU0hfU1RFUF9WSVNJQklMSVRZXSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJldmFsaWRhdGVGb3JtcyA9IHN0cmF0ZWdpZXNbV2l6YXJkR2VuZXJhdG9yUmVmcmVzaFN0cmF0ZWd5LlJFVkFMSURBVEVfU1RFUF9GT1JNU107XG4gICAgICAgICAgICAgICAgY29uc3QgcmVmcmVzaEZvcm1WaXNpYmlsaXR5ID0gc3RyYXRlZ2llc1tXaXphcmRHZW5lcmF0b3JSZWZyZXNoU3RyYXRlZ3kuUkVGUkVTSF9GT1JNX1ZJU0lCSUxJVFldO1xuXG4gICAgICAgICAgICAgICAgY29udHJvbD8udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVmcmVzaFN0ZXBzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5yZWZyZXNoU3RlcFZpc2liaWxpdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJldmFsaWRhdGVGb3Jtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5ub3RpZnlTdGVwc1RvUmV2YWxpZGF0ZUZvcm1zKHJldmFsaWRhdGVGb3Jtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWZyZXNoRm9ybVZpc2liaWxpdHk/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UucmVmcmVzaEZvcm1zVmlzaWJpbGl0eShyZWZyZXNoRm9ybVZpc2liaWxpdHkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmIChpdGVtLnRpdGxlKSB7XG4gICAgPGgzIGZkLXRpdGxlPnt7IGl0ZW0udGl0bGUgfX08L2gzPlxufVxuQGZvciAoZm9ybSBvZiBpdGVtLmZvcm1Hcm91cHM7IHRyYWNrIGZvcm07IGxldCBpID0gJGluZGV4KSB7XG4gICAgQGlmIChfdmlzaWJsZUZvcm1Hcm91cElkc1tmb3JtLmlkXSAhPT0gZmFsc2UpIHtcbiAgICAgICAgPGZkcC1mb3JtLWdlbmVyYXRvclxuICAgICAgICAgICAgW21haW5UaXRsZV09XCJmb3JtLnRpdGxlXCJcbiAgICAgICAgICAgIFtjb2x1bW5MYXlvdXRdPVwiZm9ybS5jb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgW25vQWRkaXRpb25hbENvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbZm9ybU5hbWVdPVwiZm9ybS5pZFwiXG4gICAgICAgICAgICBbZm9ybUl0ZW1zXT1cIiRhbnkoZm9ybS5mb3JtSXRlbXMpXCJcbiAgICAgICAgICAgIFtoaW50XT1cImZvcm0uZ3VpT3B0aW9ucz8uaGludCFcIlxuICAgICAgICAgICAgW3VuaWZpZWRMYXlvdXRdPVwidW5pZmllZExheW91dFwiXG4gICAgICAgICAgICAoZm9ybUNyZWF0ZWQpPVwib25Gb3JtQ3JlYXRlZCgkZXZlbnQsIGZvcm0uaWQpXCJcbiAgICAgICAgICAgIChmb3JtU3VibWl0dGVkU3RhdHVzKT1cIm9uRm9ybVN1Ym1pdHRlZCgkZXZlbnQsIGZvcm0uaWQpXCJcbiAgICAgICAgPjwvZmRwLWZvcm0tZ2VuZXJhdG9yPlxuICAgIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { FormLabelComponent } from '@fundamental-ngx/core/form';\nimport { LayoutGridModule } from '@fundamental-ngx/core/layout-grid';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { LinkComponent } from '@fundamental-ngx/platform/link';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/layout-grid\";\nexport class WizardSummarySectionComponent {\n constructor() {\n /**\n * Emits when step edit button clicked.\n */\n this.editStep = new EventEmitter();\n }\n /**\n * @hidden\n * @description Sets current step on wizard.\n * @param event Mouse click event to prevent.\n */\n _editStep(event) {\n event.preventDefault();\n this.editStep.emit(this.step.id);\n }\n /** @hidden */\n _trackFn(_, form) {\n return form.id;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardSummarySectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: WizardSummarySectionComponent, isStandalone: true, selector: \"fdp-wizard-summary-section\", inputs: { step: \"step\" }, outputs: { editStep: \"editStep\" }, ngImport: i0, template: \"@for (group of step.forms; track _trackFn($index, group)) {\\n <h4 fd-title [headerSize]=\\\"4\\\">{{ group.title }}</h4>\\n <fd-layout-grid [style.margin-bottom.rem]=\\\"2\\\">\\n @for (item of group.items; track item; let index = $index) {\\n <div fdLayoutGridRow>\\n <div [fdLayoutGridCol]=\\\"4\\\" [colMd]=\\\"2\\\" [colLg]=\\\"2\\\" [colXl]=\\\"2\\\">\\n <div>\\n <label fd-form-label [allowWrap]=\\\"true\\\" [alignLabelEnd]=\\\"true\\\"> {{ item.label }}: </label>\\n </div>\\n </div>\\n <div [fdLayoutGridCol]=\\\"4\\\" [colMd]=\\\"5\\\" [colLg]=\\\"5\\\" [colXl]=\\\"5\\\">\\n <div>\\n <label fd-form-label [allowWrap]=\\\"true\\\">\\n {{ item.value || '-' }}\\n </label>\\n </div>\\n </div>\\n @if (index === group.items.length - 1) {\\n <div [fdLayoutGridCol]=\\\"1\\\" [colMd]=\\\"5\\\" [colLg]=\\\"5\\\" [colXl]=\\\"5\\\">\\n <fdp-link href=\\\"#\\\" (click)=\\\"_editStep($event)\\\">\\n {{ 'platformWizardGenerator.summarySectionEditStep' | fdTranslate }}\\n </fdp-link>\\n </div>\\n }\\n </div>\\n }\\n </fd-layout-grid>\\n}\\n\", dependencies: [{ kind: \"component\", type: TitleComponent, selector: \"[fd-title], [fdTitle]\", inputs: [\"headerSize\", \"wrap\"], exportAs: [\"fd-title\"] }, { kind: \"ngmodule\", type: LayoutGridModule }, { kind: \"component\", type: i1.LayoutGridComponent, selector: \"fd-layout-grid, [fdLayoutGrid]\", inputs: [\"class\", \"noGap\", \"noHorizontalGap\", \"noVerticalGap\"] }, { kind: \"directive\", type: i1.LayoutGridColDirective, selector: \"[fd-layout-grid-col], [fdLayoutGridCol]\", inputs: [\"fdLayoutGridCol\", \"colGrow\", \"colMd\", \"colLg\", \"colXl\", \"colOffset\", \"colOffsetMd\", \"colOffsetLg\", \"colOffsetXl\", \"class\"] }, { kind: \"directive\", type: i1.LayoutGridRowDirective, selector: \"[fd-layout-grid-row], [fdLayoutGridRow]\" }, { kind: \"component\", type: FormLabelComponent, selector: \"[fd-form-label]\", inputs: [\"required\", \"colon\", \"alignLabelEnd\", \"inlineHelpContent\", \"inlineHelpGlyph\", \"inlineHelpTriggers\", \"inlineHelpBodyPlacement\", \"inlineHelpPlacement\", \"allowWrap\", \"inlineHelpLabel\", \"id\"] }, { kind: \"component\", type: LinkComponent, selector: \"fdp-link\", inputs: [\"href\", \"target\", \"linkType\", \"type\", \"inverted\", \"title\", \"hreflang\", \"download\", \"media\", \"rel\", \"truncate\"], outputs: [\"click\"] }, { kind: \"pipe\", type: FdTranslatePipe, name: \"fdTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardSummarySectionComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-wizard-summary-section', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [TitleComponent, LayoutGridModule, FormLabelComponent, LinkComponent, FdTranslatePipe], template: \"@for (group of step.forms; track _trackFn($index, group)) {\\n <h4 fd-title [headerSize]=\\\"4\\\">{{ group.title }}</h4>\\n <fd-layout-grid [style.margin-bottom.rem]=\\\"2\\\">\\n @for (item of group.items; track item; let index = $index) {\\n <div fdLayoutGridRow>\\n <div [fdLayoutGridCol]=\\\"4\\\" [colMd]=\\\"2\\\" [colLg]=\\\"2\\\" [colXl]=\\\"2\\\">\\n <div>\\n <label fd-form-label [allowWrap]=\\\"true\\\" [alignLabelEnd]=\\\"true\\\"> {{ item.label }}: </label>\\n </div>\\n </div>\\n <div [fdLayoutGridCol]=\\\"4\\\" [colMd]=\\\"5\\\" [colLg]=\\\"5\\\" [colXl]=\\\"5\\\">\\n <div>\\n <label fd-form-label [allowWrap]=\\\"true\\\">\\n {{ item.value || '-' }}\\n </label>\\n </div>\\n </div>\\n @if (index === group.items.length - 1) {\\n <div [fdLayoutGridCol]=\\\"1\\\" [colMd]=\\\"5\\\" [colLg]=\\\"5\\\" [colXl]=\\\"5\\\">\\n <fdp-link href=\\\"#\\\" (click)=\\\"_editStep($event)\\\">\\n {{ 'platformWizardGenerator.summarySectionEditStep' | fdTranslate }}\\n </fdp-link>\\n </div>\\n }\\n </div>\\n }\\n </fd-layout-grid>\\n}\\n\" }]\n }], propDecorators: { step: [{\n type: Input\n }], editStep: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLXN1bW1hcnktc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3IvY29tcG9uZW50cy93aXphcmQtc3VtbWFyeS1zdGVwL3dpemFyZC1zdW1tYXJ5LXNlY3Rpb24vd2l6YXJkLXN1bW1hcnktc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3IvY29tcG9uZW50cy93aXphcmQtc3VtbWFyeS1zdGVwL3dpemFyZC1zdW1tYXJ5LXNlY3Rpb24vd2l6YXJkLXN1bW1hcnktc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFhL0QsTUFBTSxPQUFPLDZCQUE2QjtJQVAxQztRQWNJOztXQUVHO1FBRUgsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FnQnpDO0lBZEc7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxLQUE4QztRQUNwRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYztJQUNkLFFBQVEsQ0FBQyxDQUFTLEVBQUUsSUFBdUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7OEdBMUJRLDZCQUE2QjtrR0FBN0IsNkJBQTZCLG1KQ25CMUMsZzFDQTRCQSw0Q0RYYyxjQUFjLHlIQUFFLGdCQUFnQixnaUJBQUUsa0JBQWtCLGtRQUFFLGFBQWEsNkxBQUUsZUFBZTs7MkZBRXJGLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDSSw0QkFBNEIsbUJBRXJCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQzs4QkFPL0YsSUFBSTtzQkFESCxLQUFLO2dCQU9OLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgTGF5b3V0R3JpZE1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9sYXlvdXQtZ3JpZCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgTGlua0NvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vbGluayc7XG5pbXBvcnQge1xuICAgIEZvcm1hdHRlZEZvcm1TdGVwLFxuICAgIFdpemFyZEdlbmVyYXRvclN1bW1hcnlJdGVtXG59IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvd2l6YXJkLWdlbmVyYXRvci1zdW1tYXJ5LWl0ZW0uaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtd2l6YXJkLXN1bW1hcnktc2VjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3dpemFyZC1zdW1tYXJ5LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaW1wb3J0czogW1RpdGxlQ29tcG9uZW50LCBMYXlvdXRHcmlkTW9kdWxlLCBGb3JtTGFiZWxDb21wb25lbnQsIExpbmtDb21wb25lbnQsIEZkVHJhbnNsYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkU3VtbWFyeVNlY3Rpb25Db21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDdXJyZW50IHN0ZXAgZm9yIHRoZSBzZWN0aW9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RlcDogV2l6YXJkR2VuZXJhdG9yU3VtbWFyeUl0ZW07XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuIHN0ZXAgZWRpdCBidXR0b24gY2xpY2tlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBlZGl0U3RlcCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBTZXRzIGN1cnJlbnQgc3RlcCBvbiB3aXphcmQuXG4gICAgICogQHBhcmFtIGV2ZW50IE1vdXNlIGNsaWNrIGV2ZW50IHRvIHByZXZlbnQuXG4gICAgICovXG4gICAgX2VkaXRTdGVwKGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5lZGl0U3RlcC5lbWl0KHRoaXMuc3RlcC5pZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdHJhY2tGbihfOiBudW1iZXIsIGZvcm06IEZvcm1hdHRlZEZvcm1TdGVwKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGZvcm0uaWQ7XG4gICAgfVxufVxuIiwiQGZvciAoZ3JvdXAgb2Ygc3RlcC5mb3JtczsgdHJhY2sgX3RyYWNrRm4oJGluZGV4LCBncm91cCkpIHtcbiAgICA8aDQgZmQtdGl0bGUgW2hlYWRlclNpemVdPVwiNFwiPnt7IGdyb3VwLnRpdGxlIH19PC9oND5cbiAgICA8ZmQtbGF5b3V0LWdyaWQgW3N0eWxlLm1hcmdpbi1ib3R0b20ucmVtXT1cIjJcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBncm91cC5pdGVtczsgdHJhY2sgaXRlbTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdz5cbiAgICAgICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiNFwiIFtjb2xNZF09XCIyXCIgW2NvbExnXT1cIjJcIiBbY29sWGxdPVwiMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgW2FsbG93V3JhcF09XCJ0cnVlXCIgW2FsaWduTGFiZWxFbmRdPVwidHJ1ZVwiPiB7eyBpdGVtLmxhYmVsIH19OiA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiNFwiIFtjb2xNZF09XCI1XCIgW2NvbExnXT1cIjVcIiBbY29sWGxdPVwiNVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgW2FsbG93V3JhcF09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS52YWx1ZSB8fCAnLScgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoaW5kZXggPT09IGdyb3VwLml0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cIjFcIiBbY29sTWRdPVwiNVwiIFtjb2xMZ109XCI1XCIgW2NvbFhsXT1cIjVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtbGluayBocmVmPVwiI1wiIChjbGljayk9XCJfZWRpdFN0ZXAoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVdpemFyZEdlbmVyYXRvci5zdW1tYXJ5U2VjdGlvbkVkaXRTdGVwJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkcC1saW5rPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZmQtbGF5b3V0LWdyaWQ+XG59XG4iXX0=","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { WizardGeneratorService } from '../../wizard-generator.service';\nimport { WizardSummarySectionComponent } from './wizard-summary-section/wizard-summary-section.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../wizard-generator.service\";\nimport * as i2 from \"@fundamental-ngx/platform/form\";\nexport class WizardSummaryStepComponent {\n /**\n * @description Summary step status.\n */\n set status(status) {\n if (status === 'current') {\n this._wizardGeneratorService.getWizardFormValue(true).then((forms) => {\n this._submittedForms = forms;\n this._wizardSteps = this._wizardGeneratorService.items.filter((i) => this._submittedForms[i.id] !== undefined);\n this._formatWizardValue().then(() => {\n this._shouldRender = true;\n this._cd.detectChanges();\n });\n });\n }\n else {\n this._shouldRender = false;\n }\n this._cd.detectChanges();\n }\n /** @hidden */\n constructor(_wizardGeneratorService, _formGeneratorService, _cd) {\n this._wizardGeneratorService = _wizardGeneratorService;\n this._formGeneratorService = _formGeneratorService;\n this._cd = _cd;\n /**\n * Formatted wizard value with steps and their forms.\n */\n this.formattedWizardValue = [];\n /**\n * @hidden\n */\n this._shouldRender = false;\n /** @hidden */\n this._editStepFn = (stepId) => this.editStep(stepId);\n }\n /**\n * Opens defined step for editing.\n * @param stepId Defined step ID.\n */\n editStep(stepId) {\n this._wizardGeneratorService.editStep(stepId);\n }\n /** @hidden */\n _trackFn(_, step) {\n return step.id;\n }\n /** @hidden */\n async _formatWizardValue() {\n this.formattedWizardValue = [];\n for (const step of this._wizardSteps) {\n const component = this._wizardGeneratorService.stepsComponents.get(step.id);\n const componentForms = component?.getVisibleForms();\n if (!componentForms) {\n continue;\n }\n const formattedStepValue = await this._formatStepValue(componentForms, step);\n this.formattedWizardValue.push({\n id: step.id,\n name: step.name,\n title: step.title,\n forms: formattedStepValue\n });\n }\n }\n /** @hidden */\n async _formatStepValue(componentForms, step) {\n const formattedStepValue = [];\n for (const formGroup of step.formGroups ?? []) {\n const formId = formGroup.id;\n const form = componentForms[formId];\n // Form might be skipped due to conditional rendering\n if (!form) {\n continue;\n }\n const formattedFormValue = await this._formGeneratorService.getFormValue(form.form, true);\n const formattedForm = {\n title: form.title,\n id: formId,\n items: Object.keys(this._submittedForms[step.id][formId]).map((key) => {\n const formItem = this._formGeneratorService.getFormControl(form.form, key).formItem;\n return {\n label: formItem.message,\n value: formattedFormValue[key]\n };\n })\n };\n formattedStepValue.push(formattedForm);\n }\n return formattedStepValue;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardSummaryStepComponent, deps: [{ token: i1.WizardGeneratorService }, { token: i2.FormGeneratorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: WizardSummaryStepComponent, isStandalone: true, selector: \"fdp-wizard-summary-step\", inputs: { status: \"status\", customSummaryStepTemplate: \"customSummaryStepTemplate\" }, ngImport: i0, template: \"@if (_shouldRender) {\\n <ng-template #defaultsummaryStepTemplate>\\n @for (step of formattedWizardValue; track _trackFn($index, step)) {\\n <fdp-wizard-summary-section [step]=\\\"step\\\" (editStep)=\\\"editStep($event)\\\"></fdp-wizard-summary-section>\\n }\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"customSummaryStepTemplate || defaultsummaryStepTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ steps: formattedWizardValue, editStep: _editStepFn }\\\"\\n ></ng-template>\\n}\\n\", dependencies: [{ kind: \"component\", type: WizardSummarySectionComponent, selector: \"fdp-wizard-summary-section\", inputs: [\"step\"], outputs: [\"editStep\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardSummaryStepComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-wizard-summary-step', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [WizardSummarySectionComponent, NgTemplateOutlet], template: \"@if (_shouldRender) {\\n <ng-template #defaultsummaryStepTemplate>\\n @for (step of formattedWizardValue; track _trackFn($index, step)) {\\n <fdp-wizard-summary-section [step]=\\\"step\\\" (editStep)=\\\"editStep($event)\\\"></fdp-wizard-summary-section>\\n }\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"customSummaryStepTemplate || defaultsummaryStepTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ steps: formattedWizardValue, editStep: _editStepFn }\\\"\\n ></ng-template>\\n}\\n\" }]\n }], ctorParameters: () => [{ type: i1.WizardGeneratorService }, { type: i2.FormGeneratorService }, { type: i0.ChangeDetectorRef }], propDecorators: { status: [{\n type: Input\n }], customSummaryStepTemplate: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLXN1bW1hcnktc3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3IvY29tcG9uZW50cy93aXphcmQtc3VtbWFyeS1zdGVwL3dpemFyZC1zdW1tYXJ5LXN0ZXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvd2l6YXJkLXN1bW1hcnktc3RlcC93aXphcmQtc3VtbWFyeS1zdGVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBRUwsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBT3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDOzs7O0FBUzFHLE1BQU0sT0FBTywwQkFBMEI7SUFDbkM7O09BRUc7SUFDSCxJQUNJLE1BQU0sQ0FBQyxNQUF3QjtRQUMvQixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUU3QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxD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cUJBQXFCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFMUYsTUFBTSxhQUFhLEdBQXNCO2dCQUNyQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLEVBQUUsRUFBRSxNQUFNO2dCQUNWLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2xFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7b0JBQ3BGLE9BQU87d0JBQ0gsS0FBSyxFQUFFLFFBQVEsQ0FBQyxPQUFpQjt3QkFDakMsS0FBSyxFQUFFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztxQkFDakMsQ0FBQztnQkFDTixDQUFDLENBQUM7YUFDTCxDQUFDO1lBRUYsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFFRCxPQUFPLGtCQUFrQixDQUFDO0lBQzlCLENBQUM7OEdBdElRLDBCQUEwQjtrR0FBMUIsMEJBQTBCLHlLQzdCdkMsMmdCQVdBLDRDRGdCYyw2QkFBNkIsZ0hBQUUsZ0JBQWdCOzsyRkFFaEQsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNJLHlCQUF5QixtQkFFbEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLDZCQUE2QixFQUFFLGdCQUFnQixDQUFDOzhKQU90RCxNQUFNO3NCQURULEtBQUs7Z0JBMkJOLHlCQUF5QjtzQkFEeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgV2l6YXJkU3RlcFN0YXR1cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS93aXphcmQnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2Zvcm0nO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yRm9ybXNWYWx1ZSwgV2l6YXJkU3RlcEZvcm1zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWZvcm1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gICAgRm9ybWF0dGVkRm9ybVN0ZXAsXG4gICAgV2l6YXJkR2VuZXJhdG9yU3VtbWFyeUl0ZW1cbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLXN1bW1hcnktaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3dpemFyZC1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBXaXphcmRTdW1tYXJ5U2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vd2l6YXJkLXN1bW1hcnktc2VjdGlvbi93aXphcmQtc3VtbWFyeS1zZWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXdpemFyZC1zdW1tYXJ5LXN0ZXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi93aXphcmQtc3VtbWFyeS1zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGltcG9ydHM6IFtXaXphcmRTdW1tYXJ5U2VjdGlvbkNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkU3VtbWFyeVN0ZXBDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTdW1tYXJ5IHN0ZXAgc3RhdHVzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXR1cyhzdGF0dXM6IFdpemFyZFN0ZXBTdGF0dXMpIHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ2N1cnJlbnQnKSB7XG4gICAgICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldFdpemFyZEZvcm1WYWx1ZSh0cnVlKS50aGVuKChmb3JtcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N1Ym1pdHRlZEZvcm1zID0gZm9ybXM7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl93aXphcmRTdGVwcyA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuaXRlbXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoaSkgPT4gdGhpcy5fc3VibWl0dGVkRm9ybXNbaS5pZF0gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9mb3JtYXRXaXphcmRWYWx1ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaG91bGRSZW5kZXIgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkUmVuZGVyID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBTdW1tYXJ5IHN0ZXAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjdXN0b21TdW1tYXJ5U3RlcFRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+O1xuXG4gICAgLyoqXG4gICAgICogRm9ybWF0dGVkIHdpemFyZCB2YWx1ZSB3aXRoIHN0ZXBzIGFuZCB0aGVpciBmb3Jtcy5cbiAgICAgKi9cbiAgICBmb3JtYXR0ZWRXaXphcmRWYWx1ZTogV2l6YXJkR2VuZXJhdG9yU3VtbWFyeUl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9zdWJtaXR0ZWRGb3JtczogV2l6YXJkR2VuZXJhdG9yRm9ybXNWYWx1ZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfc2hvdWxkUmVuZGVyID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3dpemFyZFN0ZXBzOiBXaXphcmRHZW5lcmF0b3JJdGVtW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF93aXphcmRHZW5lcmF0b3JTZXJ2aWNlOiBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9mb3JtR2VuZXJhdG9yU2VydmljZTogRm9ybUdlbmVyYXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIGRlZmluZWQgc3RlcCBmb3IgZWRpdGluZy5cbiAgICAgKiBAcGFyYW0gc3RlcElkIERlZmluZWQgc3RlcCBJRC5cbiAgICAgKi9cbiAgICBlZGl0U3RlcChzdGVwSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmVkaXRTdGVwKHN0ZXBJZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdHJhY2tGbihfOiBudW1iZXIsIHN0ZXA6IFdpemFyZEdlbmVyYXRvclN1bW1hcnlJdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHN0ZXAuaWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZWRpdFN0ZXBGbjogKHN0ZXBJZDogc3RyaW5nKSA9PiB2b2lkID0gKHN0ZXBJZDogc3RyaW5nKSA9PiB0aGlzLmVkaXRTdGVwKHN0ZXBJZCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2Zvcm1hdFdpemFyZFZhbHVlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmZvcm1hdHRlZFdpemFyZFZhbHVlID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBzdGVwIG9mIHRoaXMuX3dpemFyZFN0ZXBzKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnN0ZXBzQ29tcG9uZW50cy5nZXQoc3RlcC5pZCk7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRGb3JtcyA9IGNvbXBvbmVudD8uZ2V0VmlzaWJsZUZvcm1zKCk7XG5cbiAgICAgICAgICAgIGlmICghY29tcG9uZW50Rm9ybXMpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkU3RlcFZhbHVlID0gYXdhaXQgdGhpcy5fZm9ybWF0U3RlcFZhbHVlKGNvbXBvbmVudEZvcm1zLCBzdGVwKTtcblxuICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWRXaXphcmRWYWx1ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICBpZDogc3RlcC5pZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBzdGVwLm5hbWUgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBzdGVwLnRpdGxlIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgICBmb3JtczogZm9ybWF0dGVkU3RlcFZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZm9ybWF0U3RlcFZhbHVlKFxuICAgICAgICBjb21wb25lbnRGb3JtczogV2l6YXJkU3RlcEZvcm1zLFxuICAgICAgICBzdGVwOiBXaXphcmRHZW5lcmF0b3JJdGVtXG4gICAgKTogUHJvbWlzZTxGb3JtYXR0ZWRGb3JtU3RlcFtdPiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFN0ZXBWYWx1ZTogRm9ybWF0dGVkRm9ybVN0ZXBbXSA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgZm9ybUdyb3VwIG9mIHN0ZXAuZm9ybUdyb3VwcyA/PyBbXSkge1xuICAgICAgICAgICAgY29uc3QgZm9ybUlkID0gZm9ybUdyb3VwLmlkO1xuXG4gICAgICAgICAgICBjb25zdCBmb3JtID0gY29tcG9uZW50Rm9ybXNbZm9ybUlkXTtcblxuICAgICAgICAgICAgLy8gRm9ybSBtaWdodCBiZSBza2lwcGVkIGR1ZSB0byBjb25kaXRpb25hbCByZW5kZXJpbmdcbiAgICAgICAgICAgIGlmICghZm9ybSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRGb3JtVmFsdWUgPSBhd2FpdCB0aGlzLl9mb3JtR2VuZXJhdG9yU2VydmljZS5nZXRGb3JtVmFsdWUoZm9ybS5mb3JtLCB0cnVlKTtcblxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkRm9ybTogRm9ybWF0dGVkRm9ybVN0ZXAgPSB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGZvcm0udGl0bGUsXG4gICAgICAgICAgICAgICAgaWQ6IGZvcm1JZCxcbiAgICAgICAgICAgICAgICBpdGVtczogT2JqZWN0LmtleXModGhpcy5fc3VibWl0dGVkRm9ybXNbc3RlcC5pZF1bZm9ybUlkXSkubWFwKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybUl0ZW0gPSB0aGlzLl9mb3JtR2VuZXJhdG9yU2VydmljZS5nZXRGb3JtQ29udHJvbChmb3JtLmZvcm0sIGtleSkuZm9ybUl0ZW07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZm9ybUl0ZW0ubWVzc2FnZSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZm9ybWF0dGVkRm9ybVZhbHVlW2tleV1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9ybWF0dGVkU3RlcFZhbHVlLnB1c2goZm9ybWF0dGVkRm9ybSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0dGVkU3RlcFZhbHVlO1xuICAgIH1cbn1cbiIsIkBpZiAoX3Nob3VsZFJlbmRlcikge1xuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdHN1bW1hcnlTdGVwVGVtcGxhdGU+XG4gICAgICAgIEBmb3IgKHN0ZXAgb2YgZm9ybWF0dGVkV2l6YXJkVmFsdWU7IHRyYWNrIF90cmFja0ZuKCRpbmRleCwgc3RlcCkpIHtcbiAgICAgICAgICAgIDxmZHAtd2l6YXJkLXN1bW1hcnktc2VjdGlvbiBbc3RlcF09XCJzdGVwXCIgKGVkaXRTdGVwKT1cImVkaXRTdGVwKCRldmVudClcIj48L2ZkcC13aXphcmQtc3VtbWFyeS1zZWN0aW9uPlxuICAgICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tU3VtbWFyeVN0ZXBUZW1wbGF0ZSB8fCBkZWZhdWx0c3VtbWFyeVN0ZXBUZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHN0ZXBzOiBmb3JtYXR0ZWRXaXphcmRWYWx1ZSwgZWRpdFN0ZXA6IF9lZGl0U3RlcEZuIH1cIlxuICAgID48L25nLXRlbXBsYXRlPlxufVxuIl19","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, Input, Output, TemplateRef, ViewEncapsulation, inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { WizardModule } from '@fundamental-ngx/core/wizard';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { WizardGeneratorService } from '../../wizard-generator.service';\nimport { WizardGeneratorStepComponent } from '../wizard-generator-step/wizard-generator-step.component';\nimport { WizardSummaryStepComponent } from '../wizard-summary-step/wizard-summary-step.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../wizard-generator.service\";\nimport * as i2 from \"@fundamental-ngx/core/wizard\";\nexport class WizardBodyComponent {\n /**\n * @description Array of visible Wizard Steps.\n */\n set visibleItems(items) {\n this._visibleItems = items;\n }\n get visibleItems() {\n return this._visibleItems || this._wizardGeneratorService.items;\n }\n /** @hidden */\n constructor(_wizardGeneratorService, _cd) {\n this._wizardGeneratorService = _wizardGeneratorService;\n this._cd = _cd;\n /**\n * @description Whether or not apply responsive paddings styling.\n */\n this.responsivePaddings = true;\n /**\n * @description Whether or not to append the step to the wizard. If false, each step will be displayed on a different page.\n * Default is true.\n */\n this.appendToWizard = true;\n /**\n * @description Whether or not Wizard is currently on the first step\n */\n this.isFirstStep = false;\n /**\n * @description Whether Wizard is currently on the last step.\n */\n this.isLastStep = false;\n /**\n * Whether next step is a Summary step.\n */\n this.isNextStepSummary = false;\n /**\n * @description Boolean flag indicating whether to display Summary step in Wizard progress bar.\n */\n this.displaySummaryStep = false;\n /**\n * @description Is current step is summary step.\n */\n this.isSummaryStep = false;\n /** If navigation buttons should be visible. */\n this.navigationButtons = true;\n /** Whether or not all form items should have identical layout provided for form group. */\n this.unifiedLayout = true;\n /** Whether current step is a branching step. */\n this.isBranchingStep = false;\n /** Whether current step is completed */\n this.isCurrentStepCompleted = false;\n /** Whether order of steps was changed */\n this.stepsOrderChanged = false;\n /**\n * @description Emits when some step status has been changed.\n */\n this.statusChange = new EventEmitter();\n /**\n * @description Emits when \"Go next\" button has been clicked\n */\n this.goNext = new EventEmitter();\n /**\n * @description Emits when \"Finish\" button has been clicked\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n this.finish = new EventEmitter();\n /**\n * @hidden\n * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)\n */\n this._destroyRef = inject(DestroyRef);\n /**\n * @hidden\n */\n this._goNextFn = () => this.goNext.emit();\n /**\n * @hidden\n */\n this._finishFn = () => this.finish.emit();\n }\n /**\n * @description Custom step status change validator function.\n * @param index Current step index.\n * @returns {Promise<boolean>} If this step status can be changed.\n */\n stepClickValidatorFn(index) {\n return async () => {\n const currentStepIndex = this._wizardGeneratorService.getCurrentStepIndex();\n const isSummaryStep = this._visibleItems[currentStepIndex]?.summary === true;\n if (index === currentStepIndex || isSummaryStep) {\n return true;\n }\n if (this._visibleItems.slice(0, index).find((i) => !i.completed && !i.summary)) {\n return false;\n }\n return await firstValueFrom(this._wizardGeneratorService.validateStepForms(true));\n };\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this._wizardGeneratorService\n .getVisibleSteps()\n .pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef))\n .subscribe((visibleSteps) => {\n this._visibleItems = visibleSteps;\n this._cd.detectChanges();\n });\n }\n /**\n * @description Callback function for status change.\n * @param id step ID.\n * @param status new step status.\n */\n stepStatusChanged(id, status) {\n this.statusChange.emit({\n id,\n status\n });\n }\n /** @hidden */\n stepClicked(stepId) {\n const stepIndex = this._wizardGeneratorService.getStepIndex(stepId);\n this._wizardGeneratorService.setNextStepIndex(stepIndex + 1);\n }\n /**\n * @hidden\n * @param _index\n * @param item\n * @returns\n */\n _trackFn(_index, item) {\n return item.id;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardBodyComponent, deps: [{ token: i1.WizardGeneratorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: WizardBodyComponent, isStandalone: true, selector: \"fdp-wizard-body\", inputs: { responsivePaddings: \"responsivePaddings\", navigationButtonLabels: \"navigationButtonLabels\", appendToWizard: \"appendToWizard\", contentHeight: \"contentHeight\", isFirstStep: \"isFirstStep\", isLastStep: \"isLastStep\", isNextStepSummary: \"isNextStepSummary\", displaySummaryStep: \"displaySummaryStep\", goNextButtonTemplate: \"goNextButtonTemplate\", finishButtonTemplate: \"finishButtonTemplate\", customSummaryStepTemplate: \"customSummaryStepTemplate\", reviewButtonTemplate: \"reviewButtonTemplate\", isSummaryStep: \"isSummaryStep\", navigationButtons: \"navigationButtons\", unifiedLayout: \"unifiedLayout\", isBranchingStep: \"isBranchingStep\", isCurrentStepCompleted: \"isCurrentStepCompleted\", stepsOrderChanged: \"stepsOrderChanged\" }, outputs: { statusChange: \"statusChange\", goNext: \"goNext\", finish: \"finish\" }, ngImport: i0, template: \"@if (visibleItems) {\\n <fd-wizard\\n [displaySummaryStep]=\\\"displaySummaryStep\\\"\\n [responsivePaddings]=\\\"responsivePaddings\\\"\\n [appendToWizard]=\\\"appendToWizard\\\"\\n [contentHeight]=\\\"contentHeight\\\"\\n >\\n <fd-wizard-navigation>\\n <ul fd-wizard-progress-bar>\\n @for (step of visibleItems; track _trackFn(i, step); let i = $index) {\\n <li\\n fd-wizard-step\\n [label]=\\\"step.name\\\"\\n [status]=\\\"step.status\\\"\\n [optionalText]=\\\"step.optionalText\\\"\\n [branching]=\\\"!!step.branching\\\"\\n [stepClickValidator]=\\\"stepClickValidatorFn(i)\\\"\\n [isSummary]=\\\"!!step.summary\\\"\\n (statusChange)=\\\"stepStatusChanged(step.id, $event)\\\"\\n (stepClicked)=\\\"stepClicked(step.id)\\\"\\n >\\n <fd-wizard-step-indicator [glyph]=\\\"step.icon || null\\\">\\n @if (!step.icon) {\\n {{ i + 1 }}\\n }\\n </fd-wizard-step-indicator>\\n <fd-wizard-content>\\n @if (!step.summary) {\\n <fdp-wizard-generator-step\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n [item]=\\\"step\\\"\\n [stepStatus]=\\\"step.status\\\"\\n ></fdp-wizard-generator-step>\\n } @else {\\n <fdp-wizard-summary-step\\n [customSummaryStepTemplate]=\\\"customSummaryStepTemplate\\\"\\n [status]=\\\"step.status\\\"\\n ></fdp-wizard-summary-step>\\n }\\n @if (navigationButtons) {\\n <fd-wizard-next-step [canHide]=\\\"appendToWizard\\\">\\n @if (!isLastStep) {\\n <ng-template #defaultGoNextButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"navigationButtonLabels.goNext.contentDensity\\\"\\n [fdType]=\\\"navigationButtonLabels.goNext.type\\\"\\n [label]=\\\"navigationButtonLabels.goNext.label\\\"\\n (click)=\\\"goNext.emit()\\\"\\n ></button>\\n </ng-template>\\n <ng-template #defaultReviewButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"navigationButtonLabels.review.contentDensity\\\"\\n [fdType]=\\\"navigationButtonLabels.review.type\\\"\\n [label]=\\\"navigationButtonLabels.review.label\\\"\\n (click)=\\\"goNext.emit()\\\"\\n ></button>\\n </ng-template>\\n @if (\\n (isBranchingStep && (!isCurrentStepCompleted || stepsOrderChanged)) ||\\n !isNextStepSummary\\n ) {\\n <ng-template\\n [ngTemplateOutlet]=\\\"goNextButtonTemplate || defaultGoNextButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n } @else {\\n <ng-template\\n [ngTemplateOutlet]=\\\"reviewButtonTemplate || defaultReviewButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n }\\n } @else {\\n <ng-template #defaultFinishButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"navigationButtonLabels.finish.contentDensity\\\"\\n [fdType]=\\\"navigationButtonLabels.finish.type\\\"\\n [label]=\\\"navigationButtonLabels.finish.label\\\"\\n (click)=\\\"finish.emit()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"finishButtonTemplate || defaultFinishButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ finish: _finishFn }\\\"\\n ></ng-template>\\n }\\n </fd-wizard-next-step>\\n }\\n </fd-wizard-content>\\n </li>\\n }\\n </ul>\\n </fd-wizard-navigation>\\n </fd-wizard>\\n}\\n\", dependencies: [{ kind: \"ngmodule\", type: WizardModule }, { kind: \"component\", type: i2.WizardComponent, selector: \"fd-wizard\", inputs: [\"appendToWizard\", \"contentHeight\", \"responsivePaddings\", \"displaySummaryStep\", \"ariaLabel\"] }, { kind: \"component\", type: i2.WizardNavigationComponent, selector: \"fd-wizard-navigation\", inputs: [\"ariaLabel\"] }, { kind: \"directive\", type: i2.WizardProgressBarDirective, selector: \"[fd-wizard-progress-bar]\", inputs: [\"size\"] }, { kind: \"component\", type: i2.WizardStepComponent, selector: \"[fd-wizard-step]\", inputs: [\"ariaLabel\", \"ariaRoleDecription\", \"status\", \"branching\", \"label\", \"optionalText\", \"isSummary\", \"stepClickValidator\"], outputs: [\"statusChange\", \"stepClicked\", \"stepIndicatorItemClicked\"] }, { kind: \"component\", type: i2.WizardStepIndicatorComponent, selector: \"fd-wizard-step-indicator\", inputs: [\"glyph\", \"glyphFont\"], outputs: [\"stepIndicatorItemClicked\"] }, { kind: \"component\", type: i2.WizardContentComponent, selector: \"fd-wizard-content\", inputs: [\"contentBackground\", \"size\"] }, { kind: \"component\", type: i2.WizardNextStepComponent, selector: \"fd-wizard-next-step\", inputs: [\"floating\", \"canHide\"] }, { kind: \"component\", type: WizardGeneratorStepComponent, selector: \"fdp-wizard-generator-step\", inputs: [\"item\", \"stepStatus\", \"unifiedLayout\"], outputs: [\"formsSubmitted\", \"formsCreated\"] }, { kind: \"component\", type: WizardSummaryStepComponent, selector: \"fdp-wizard-summary-step\", inputs: [\"status\", \"customSummaryStepTemplate\"] }, { kind: \"component\", type: ButtonComponent, selector: \"button[fd-button], a[fd-button], span[fd-button]\", inputs: [\"class\", \"id\"], exportAs: [\"fd-button\"] }, { kind: \"directive\", type: ContentDensityDirective, selector: \"[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])\", inputs: [\"fdContentDensity\", \"fdCompact\", \"fdCondensed\", \"fdCozy\"], exportAs: [\"fdContentDensity\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardBodyComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-wizard-body', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n WizardModule,\n WizardGeneratorStepComponent,\n WizardSummaryStepComponent,\n ButtonComponent,\n ContentDensityDirective,\n NgTemplateOutlet\n ], template: \"@if (visibleItems) {\\n <fd-wizard\\n [displaySummaryStep]=\\\"displaySummaryStep\\\"\\n [responsivePaddings]=\\\"responsivePaddings\\\"\\n [appendToWizard]=\\\"appendToWizard\\\"\\n [contentHeight]=\\\"contentHeight\\\"\\n >\\n <fd-wizard-navigation>\\n <ul fd-wizard-progress-bar>\\n @for (step of visibleItems; track _trackFn(i, step); let i = $index) {\\n <li\\n fd-wizard-step\\n [label]=\\\"step.name\\\"\\n [status]=\\\"step.status\\\"\\n [optionalText]=\\\"step.optionalText\\\"\\n [branching]=\\\"!!step.branching\\\"\\n [stepClickValidator]=\\\"stepClickValidatorFn(i)\\\"\\n [isSummary]=\\\"!!step.summary\\\"\\n (statusChange)=\\\"stepStatusChanged(step.id, $event)\\\"\\n (stepClicked)=\\\"stepClicked(step.id)\\\"\\n >\\n <fd-wizard-step-indicator [glyph]=\\\"step.icon || null\\\">\\n @if (!step.icon) {\\n {{ i + 1 }}\\n }\\n </fd-wizard-step-indicator>\\n <fd-wizard-content>\\n @if (!step.summary) {\\n <fdp-wizard-generator-step\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n [item]=\\\"step\\\"\\n [stepStatus]=\\\"step.status\\\"\\n ></fdp-wizard-generator-step>\\n } @else {\\n <fdp-wizard-summary-step\\n [customSummaryStepTemplate]=\\\"customSummaryStepTemplate\\\"\\n [status]=\\\"step.status\\\"\\n ></fdp-wizard-summary-step>\\n }\\n @if (navigationButtons) {\\n <fd-wizard-next-step [canHide]=\\\"appendToWizard\\\">\\n @if (!isLastStep) {\\n <ng-template #defaultGoNextButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"navigationButtonLabels.goNext.contentDensity\\\"\\n [fdType]=\\\"navigationButtonLabels.goNext.type\\\"\\n [label]=\\\"navigationButtonLabels.goNext.label\\\"\\n (click)=\\\"goNext.emit()\\\"\\n ></button>\\n </ng-template>\\n <ng-template #defaultReviewButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"navigationButtonLabels.review.contentDensity\\\"\\n [fdType]=\\\"navigationButtonLabels.review.type\\\"\\n [label]=\\\"navigationButtonLabels.review.label\\\"\\n (click)=\\\"goNext.emit()\\\"\\n ></button>\\n </ng-template>\\n @if (\\n (isBranchingStep && (!isCurrentStepCompleted || stepsOrderChanged)) ||\\n !isNextStepSummary\\n ) {\\n <ng-template\\n [ngTemplateOutlet]=\\\"goNextButtonTemplate || defaultGoNextButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n } @else {\\n <ng-template\\n [ngTemplateOutlet]=\\\"reviewButtonTemplate || defaultReviewButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n }\\n } @else {\\n <ng-template #defaultFinishButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"navigationButtonLabels.finish.contentDensity\\\"\\n [fdType]=\\\"navigationButtonLabels.finish.type\\\"\\n [label]=\\\"navigationButtonLabels.finish.label\\\"\\n (click)=\\\"finish.emit()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"finishButtonTemplate || defaultFinishButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ finish: _finishFn }\\\"\\n ></ng-template>\\n }\\n </fd-wizard-next-step>\\n }\\n </fd-wizard-content>\\n </li>\\n }\\n </ul>\\n </fd-wizard-navigation>\\n </fd-wizard>\\n}\\n\" }]\n }], ctorParameters: () => [{ type: i1.WizardGeneratorService }, { type: i0.ChangeDetectorRef }], propDecorators: { responsivePaddings: [{\n type: Input\n }], navigationButtonLabels: [{\n type: Input\n }], appendToWizard: [{\n type: Input\n }], contentHeight: [{\n type: Input\n }], isFirstStep: [{\n type: Input\n }], isLastStep: [{\n type: Input\n }], isNextStepSummary: [{\n type: Input\n }], displaySummaryStep: [{\n type: Input\n }], goNextButtonTemplate: [{\n type: Input\n }], finishButtonTemplate: [{\n type: Input\n }], customSummaryStepTemplate: [{\n type: Input\n }], reviewButtonTemplate: [{\n type: Input\n }], isSummaryStep: [{\n type: Input\n }], navigationButtons: [{\n type: Input\n }], unifiedLayout: [{\n type: Input\n }], isBranchingStep: [{\n type: Input\n }], isCurrentStepCompleted: [{\n type: Input\n }], stepsOrderChanged: [{\n type: Input\n }], statusChange: [{\n type: Output\n }], goNext: [{\n type: Output\n }], finish: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWJvZHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvd2l6YXJkLWJvZHkvd2l6YXJkLWJvZHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvd2l6YXJkLWJvZHkvd2l6YXJkLWJvZHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5QyxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLDhCQUE4QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUdoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7OztBQXFCbEcsTUFBTSxP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QixLQUFLO2dCQU9OLHNCQUFzQjtzQkFEckIsS0FBSztnQkFRTixjQUFjO3NCQURiLEtBQUs7Z0JBUU4sYUFBYTtzQkFEWixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04saUJBQWlCO3NCQURoQixLQUFLO2dCQU9OLGtCQUFrQjtzQkFEakIsS0FBSztnQkFPTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBT04sb0JBQW9CO3NCQURuQixLQUFLO2dCQU9OLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFLTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBT04sYUFBYTtzQkFEWixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLHNCQUFzQjtzQkFEckIsS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBT04sWUFBWTtzQkFEWCxNQUFNO2dCQU9QLE1BQU07c0JBREwsTUFBTTtnQkFPRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgV2l6YXJkTW9kdWxlLCBXaXphcmRTdGVwU3RhdHVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3dpemFyZCc7XG5cbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtLCBXaXphcmRHZW5lcmF0b3JJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZE5hdmlnYXRpb25CdXR0b25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtbmF2aWdhdGlvbi1idXR0b25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd2l6YXJkLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclN0ZXBDb21wb25lbnQgfSBmcm9tICcuLi93aXphcmQtZ2VuZXJhdG9yLXN0ZXAvd2l6YXJkLWdlbmVyYXRvci1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaXphcmRTdW1tYXJ5U3RlcENvbXBvbmVudCB9IGZyb20gJy4uL3dpemFyZC1zdW1tYXJ5LXN0ZXAvd2l6YXJkLXN1bW1hcnktc3RlcC5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpemFyZFN0ZXBDaGFuZ2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgc3RhdHVzOiBXaXphcmRTdGVwU3RhdHVzO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC13aXphcmQtYm9keScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3dpemFyZC1ib2R5LmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgV2l6YXJkTW9kdWxlLFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JTdGVwQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRTdW1tYXJ5U3RlcENvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkQm9keUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgb3Igbm90IGFwcGx5IHJlc3BvbnNpdmUgcGFkZGluZ3Mgc3R5bGluZy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlc3BvbnNpdmVQYWRkaW5ncyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQnV0dG9uIGxhYmVscyB0byBiZSB1c2VkIGluIFdpemFyZCBuYXZpZ2F0aW9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzOiBSZXF1aXJlZDxXaXphcmROYXZpZ2F0aW9uQnV0dG9ucz47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBvciBub3QgdG8gYXBwZW5kIHRoZSBzdGVwIHRvIHRoZSB3aXphcmQuIElmIGZhbHNlLCBlYWNoIHN0ZXAgd2lsbCBiZSBkaXNwbGF5ZWQgb24gYSBkaWZmZXJlbnQgcGFnZS5cbiAgICAgKiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhcHBlbmRUb1dpemFyZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3VzdG9tIGhlaWdodCB0byB1c2UgZm9yIHRoZSB3aXphcmQncyBjb250ZW50IHBhbmUuIEJ5IGRlZmF1bHQsIHRoaXMgdmFsdWUgaXMgY2FsYygxMDB2aCAtIDE0NHB4KSwgd2hlcmUgMTQ0cHhcbiAgICAgKiBpcyB0aGUgY29tYmluZWQgaGVpZ2h0IG9mIHRoZSBTaGVsbGJhciwgd2l6YXJkIGhlYWRlciBhbmQgd2l6YXJkIGZvb3Rlci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRlbnRIZWlnaHQ6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBvciBub3QgV2l6YXJkIGlzIGN1cnJlbnRseSBvbiB0aGUgZmlyc3Qgc3RlcFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNGaXJzdFN0ZXAgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIFdpemFyZCBpcyBjdXJyZW50bHkgb24gdGhlIGxhc3Qgc3RlcC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzTGFzdFN0ZXAgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgbmV4dCBzdGVwIGlzIGEgU3VtbWFyeSBzdGVwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNOZXh0U3RlcFN1bW1hcnkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIGRpc3BsYXkgU3VtbWFyeSBzdGVwIGluIFdpemFyZCBwcm9ncmVzcyBiYXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5U3VtbWFyeVN0ZXAgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgXCJHbyBOZXh0XCIgYnV0dG9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ29OZXh0QnV0dG9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiRmluaXNoXCIgYnV0dG9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmluaXNoQnV0dG9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIHN1bW1hcnkgc3RlcC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGN1c3RvbVN1bW1hcnlTdGVwVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIlJldmlld1wiIGJ1dHRvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmV2aWV3QnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSXMgY3VycmVudCBzdGVwIGlzIHN1bW1hcnkgc3RlcC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzU3VtbWFyeVN0ZXAgPSBmYWxzZTtcblxuICAgIC8qKiBJZiBuYXZpZ2F0aW9uIGJ1dHRvbnMgc2hvdWxkIGJlIHZpc2libGUuICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uQnV0dG9ucyA9IHRydWU7XG5cbiAgICAvKiogV2hldGhlciBvciBub3QgYWxsIGZvcm0gaXRlbXMgc2hvdWxkIGhhdmUgaWRlbnRpY2FsIGxheW91dCBwcm92aWRlZCBmb3IgZm9ybSBncm91cC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHVuaWZpZWRMYXlvdXQgPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgY3VycmVudCBzdGVwIGlzIGEgYnJhbmNoaW5nIHN0ZXAuICovXG4gICAgQElucHV0KClcbiAgICBpc0JyYW5jaGluZ1N0ZXAgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGN1cnJlbnQgc3RlcCBpcyBjb21wbGV0ZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzQ3VycmVudFN0ZXBDb21wbGV0ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIG9yZGVyIG9mIHN0ZXBzIHdhcyBjaGFuZ2VkICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RlcHNPcmRlckNoYW5nZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIHNvbWUgc3RlcCBzdGF0dXMgaGFzIGJlZW4gY2hhbmdlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzdGF0dXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFdpemFyZFN0ZXBDaGFuZ2U+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBcIkdvIG5leHRcIiBidXR0b24gaGFzIGJlZW4gY2xpY2tlZFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGdvTmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIFwiRmluaXNoXCIgYnV0dG9uIGhhcyBiZWVuIGNsaWNrZWRcbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgICBAT3V0cHV0KCkgZmluaXNoID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZylcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX3Zpc2libGVJdGVtczogUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW107XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXJyYXkgb2YgdmlzaWJsZSBXaXphcmQgU3RlcHMuXG4gICAgICovXG5cbiAgICBzZXQgdmlzaWJsZUl0ZW1zKGl0ZW1zOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSkge1xuICAgICAgICB0aGlzLl92aXNpYmxlSXRlbXMgPSBpdGVtcztcbiAgICB9XG5cbiAgICBnZXQgdmlzaWJsZUl0ZW1zKCk6IFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVJdGVtcyB8fCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLml0ZW1zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfd2l6YXJkR2VuZXJhdG9yU2VydmljZTogV2l6YXJkR2VuZXJhdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9nb05leHRGbjogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMuZ29OZXh0LmVtaXQoKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfZmluaXNoRm46ICgpID0+IHZvaWQgPSAoKSA9PiB0aGlzLmZpbmlzaC5lbWl0KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3VzdG9tIHN0ZXAgc3RhdHVzIGNoYW5nZSB2YWxpZGF0b3IgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIGluZGV4IEN1cnJlbnQgc3RlcCBpbmRleC5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gSWYgdGhpcyBzdGVwIHN0YXR1cyBjYW4gYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICBzdGVwQ2xpY2tWYWxpZGF0b3JGbihpbmRleDogbnVtYmVyKTogKCkgPT4gUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U3RlcEluZGV4ID0gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRDdXJyZW50U3RlcEluZGV4KCk7XG4gICAgICAgICAgICBjb25zdCBpc1N1bW1hcnlTdGVwID0gdGhpcy5fdmlzaWJsZUl0ZW1zW2N1cnJlbnRTdGVwSW5kZXhdPy5zdW1tYXJ5ID09PSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IGN1cnJlbnRTdGVwSW5kZXggfHwgaXNTdW1tYXJ5U3RlcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fdmlzaWJsZUl0ZW1zLnNsaWNlKDAsIGluZGV4KS5maW5kKChpKSA9PiAhaS5jb21wbGV0ZWQgJiYgIWkuc3VtbWFyeSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnZhbGlkYXRlU3RlcEZvcm1zKHRydWUpKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRWaXNpYmxlU3RlcHMoKVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmlzaWJsZVN0ZXBzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlzaWJsZUl0ZW1zID0gdmlzaWJsZVN0ZXBzO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc3RhdHVzIGNoYW5nZS5cbiAgICAgKiBAcGFyYW0gaWQgc3RlcCBJRC5cbiAgICAgKiBAcGFyYW0gc3RhdHVzIG5ldyBzdGVwIHN0YXR1cy5cbiAgICAgKi9cbiAgICBzdGVwU3RhdHVzQ2hhbmdlZChpZDogc3RyaW5nLCBzdGF0dXM6IFdpemFyZFN0ZXBTdGF0dXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIHN0YXR1c1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHN0ZXBDbGlja2VkKHN0ZXBJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0ZXBJbmRleCA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0U3RlcEluZGV4KHN0ZXBJZCk7XG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2Uuc2V0TmV4dFN0ZXBJbmRleChzdGVwSW5kZXggKyAxKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIF9pbmRleFxuICAgICAqIEBwYXJhbSBpdGVtXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBfdHJhY2tGbihfaW5kZXg6IG51bWJlciwgaXRlbTogV2l6YXJkR2VuZXJhdG9ySXRlbSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH1cbn1cbiIsIkBpZiAodmlzaWJsZUl0ZW1zKSB7XG4gICAgPGZkLXdpemFyZFxuICAgICAgICBbZGlzcGxheVN1bW1hcnlTdGVwXT1cImRpc3BsYXlTdW1tYXJ5U3RlcFwiXG4gICAgICAgIFtyZXNwb25zaXZlUGFkZGluZ3NdPVwicmVzcG9uc2l2ZVBhZGRpbmdzXCJcbiAgICAgICAgW2FwcGVuZFRvV2l6YXJkXT1cImFwcGVuZFRvV2l6YXJkXCJcbiAgICAgICAgW2NvbnRlbnRIZWlnaHRdPVwiY29udGVudEhlaWdodFwiXG4gICAgPlxuICAgICAgICA8ZmQtd2l6YXJkLW5hdmlnYXRpb24+XG4gICAgICAgICAgICA8dWwgZmQtd2l6YXJkLXByb2dyZXNzLWJhcj5cbiAgICAgICAgICAgICAgICBAZm9yIChzdGVwIG9mIHZpc2libGVJdGVtczsgdHJhY2sgX3RyYWNrRm4oaSwgc3RlcCk7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtd2l6YXJkLXN0ZXBcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzdGVwLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJzdGVwLnN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uYWxUZXh0XT1cInN0ZXAub3B0aW9uYWxUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFticmFuY2hpbmddPVwiISFzdGVwLmJyYW5jaGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RlcENsaWNrVmFsaWRhdG9yXT1cInN0ZXBDbGlja1ZhbGlkYXRvckZuKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc1N1bW1hcnldPVwiISFzdGVwLnN1bW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXR1c0NoYW5nZSk9XCJzdGVwU3RhdHVzQ2hhbmdlZChzdGVwLmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzdGVwQ2xpY2tlZCk9XCJzdGVwQ2xpY2tlZChzdGVwLmlkKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC13aXphcmQtc3RlcC1pbmRpY2F0b3IgW2dseXBoXT1cInN0ZXAuaWNvbiB8fCBudWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghc3RlcC5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkgKyAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC13aXphcmQtc3RlcC1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtd2l6YXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghc3RlcC5zdW1tYXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtd2l6YXJkLWdlbmVyYXRvci1zdGVwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdW5pZmllZExheW91dF09XCJ1bmlmaWVkTGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtXT1cInN0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0ZXBTdGF0dXNdPVwic3RlcC5zdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtd2l6YXJkLWdlbmVyYXRvci1zdGVwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLXdpemFyZC1zdW1tYXJ5LXN0ZXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21TdW1tYXJ5U3RlcFRlbXBsYXRlXT1cImN1c3RvbVN1bW1hcnlTdGVwVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJzdGVwLnN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC13aXphcmQtc3VtbWFyeS1zdGVwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG5hdmlnYXRpb25CdXR0b25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC13aXphcmQtbmV4dC1zdGVwIFtjYW5IaWRlXT1cImFwcGVuZFRvV2l6YXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFpc0xhc3RTdGVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0R29OZXh0QnV0dG9uVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwibmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb05leHQuY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvTmV4dC50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvTmV4dC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29OZXh0LmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFJldmlld0J1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIm5hdmlnYXRpb25CdXR0b25MYWJlbHMucmV2aWV3LmNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwibmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5yZXZpZXcudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwibmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5yZXZpZXcubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dC5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNCcmFuY2hpbmdTdGVwICYmICghaXNDdXJyZW50U3RlcENvbXBsZXRlZCB8fCBzdGVwc09yZGVyQ2hhbmdlZCkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpc05leHRTdGVwU3VtbWFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdvTmV4dEJ1dHRvblRlbXBsYXRlIHx8IGRlZmF1bHRHb05leHRCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBnb05leHQ6IF9nb05leHRGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicmV2aWV3QnV0dG9uVGVtcGxhdGUgfHwgZGVmYXVsdFJldmlld0J1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGdvTmV4dDogX2dvTmV4dEZuIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRGaW5pc2hCdXR0b25UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmZpbmlzaC5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIm5hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIm5hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJmaW5pc2guZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbmlzaEJ1dHRvblRlbXBsYXRlIHx8IGRlZmF1bHRGaW5pc2hCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGZpbmlzaDogX2ZpbmlzaEZuIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXdpemFyZC1uZXh0LXN0ZXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC13aXphcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2ZkLXdpemFyZC1uYXZpZ2F0aW9uPlxuICAgIDwvZmQtd2l6YXJkPlxufVxuIl19","import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { filter } from 'rxjs/operators';\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { InitialFocusDirective } from '@fundamental-ngx/cdk/utils';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { DialogBodyComponent, DialogComponent, DialogHeaderComponent, DialogRef } from '@fundamental-ngx/core/dialog';\nimport { MessageBoxModule, MessageBoxService } from '@fundamental-ngx/core/message-box';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { BaseWizardGenerator } from '../../base-wizard-generator';\nimport { WizardGeneratorService } from '../../wizard-generator.service';\nimport { WizardBodyComponent } from '../wizard-body/wizard-body.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/dialog\";\nimport * as i2 from \"@fundamental-ngx/core/bar\";\nimport * as i3 from \"@fundamental-ngx/core/message-box\";\nimport * as i4 from \"@fundamental-ngx/cdk/utils\";\nexport class DialogWizardGeneratorComponent extends BaseWizardGenerator {\n /** @hidden */\n constructor(_dialogRef) {\n super();\n this._dialogRef = _dialogRef;\n /**\n * @description Confirmation message when wizard dialog close button has been clicked.\n */\n this.confirmationDialogText = 'Are you sure you want to discard your progress?';\n /**\n * @description Confirm button text for close confirmation dialog.\n */\n this.confirmationDialogCloseText = 'Confirm';\n /**\n * @description Cancel button text for close confirmation dialog.\n */\n this.confirmationDialogCancelText = 'Cancel';\n /** @hidden */\n this._messageBoxService = inject(MessageBoxService);\n /**\n * @hidden\n */\n this._goBackFn = () => this.goBack();\n /**\n * @hidden\n */\n this._goNextFn = () => this.goNext();\n /**\n * @hidden\n */\n this._finishFn = () => this.finish();\n /**\n * @hidden\n */\n this._cancelFn = () => this.cancel();\n this.items = this._dialogRef.data.items;\n this.title = this._dialogRef.data.title;\n this.appendToWizard = this._dialogRef.data.appendToWizard;\n this.navigationButtonLabels = this._dialogRef.data.navigationButtonLabels ?? {};\n this.contentHeight = this._dialogRef.data.contentHeight;\n this.responsivePaddings = this._dialogRef.data.responsivePaddings;\n this.goNextButtonTemplate = this._dialogRef.data.goNextButtonTemplate;\n this.goBackButtonTemplate = this._dialogRef.data.goBackButtonTemplate;\n this.finishButtonTemplate = this._dialogRef.data.finishButtonTemplate;\n this.cancelButtonTemplate = this._dialogRef.data.cancelButtonTemplate;\n this.confirmationDialogTemplate = this._dialogRef.data.confirmationDialogTemplate;\n this.displaySummaryStep = this._dialogRef.data.displaySummaryStep || false;\n this.summaryStepTemplate = this._dialogRef.data.summaryStepTemplate;\n this.reviewButtonTemplate = this._dialogRef.data.reviewButtonTemplate;\n if (this._dialogRef.data.unifiedLayout !== undefined) {\n this.unifiedLayout = this._dialogRef.data.unifiedLayout;\n }\n if (this._dialogRef.data.navigationButtons !== undefined) {\n this.navigationButtons = this._dialogRef.data.navigationButtons;\n }\n if (this._dialogRef.data.confirmationDialogText) {\n this.confirmationDialogText = this._dialogRef.data.confirmationDialogText;\n }\n if (this._dialogRef.data.confirmationDialogCancelText) {\n this.confirmationDialogCancelText = this._dialogRef.data.confirmationDialogCancelText;\n }\n if (this._dialogRef.data.confirmationDialogCloseText) {\n this.confirmationDialogCloseText = this._dialogRef.data.confirmationDialogCloseText;\n }\n }\n /**\n * @description Cancels Wizard progress and closes the dialog.\n */\n cancel() {\n if (this._wizardGeneratorService.isStepsUntouched()) {\n this._dialogRef.dismiss();\n return;\n }\n const template = this.confirmationDialogTemplate || this.defaultConfirmationDialogTemplate;\n const messageBoxRef = this._messageBoxService.open(template, { responsivePadding: true });\n messageBoxRef.afterClosed\n .pipe(filter((result) => result), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._dialogRef.dismiss();\n });\n }\n /**\n * @description Completes Wizard process, emits Wizard result and closes the dialog.\n */\n async finish() {\n if (this.isSummaryStep) {\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this._dialogRef.close(wizardResult);\n return;\n }\n const currentStepId = this._wizardGeneratorService.getCurrentStepId();\n this.submitStepForms(currentStepId)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(async (result) => {\n if (result && Object.values(result).some((r) => !r.success)) {\n return;\n }\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this._dialogRef.close(wizardResult);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DialogWizardGeneratorComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: DialogWizardGeneratorComponent, isStandalone: true, selector: \"fdp-dialog-wizard-generator\", providers: [WizardGeneratorService, FormGeneratorService], viewQueries: [{ propertyName: \"defaultConfirmationDialogTemplate\", first: true, predicate: [\"defaultConfirmationDialogTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"<fd-dialog>\\n <fd-dialog-header>\\n <h2 fd-title [headerSize]=\\\"title.size\\\">{{ title.text }}</h2>\\n </fd-dialog-header>\\n <fd-dialog-body>\\n <fdp-wizard-body\\n [navigationButtons]=\\\"false\\\"\\n [displaySummaryStep]=\\\"displaySummaryStep\\\"\\n [responsivePaddings]=\\\"responsivePaddings\\\"\\n [navigationButtonLabels]=\\\"_navigationButtonLabels\\\"\\n [customSummaryStepTemplate]=\\\"summaryStepTemplate\\\"\\n [reviewButtonTemplate]=\\\"reviewButtonTemplate\\\"\\n [hidden]=\\\"!wizardCreated\\\"\\n [appendToWizard]=\\\"appendToWizard\\\"\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n [contentHeight]=\\\"contentHeight\\\"\\n (statusChange)=\\\"stepStatusChanged($event.id, $event.status)\\\"\\n ></fdp-wizard-body>\\n @if (wizardCreated) {\\n <div fd-bar barDesign=\\\"floating-footer\\\" [class.fd-bar--responsive-paddings]=\\\"responsivePaddings\\\">\\n <div fd-bar-right>\\n @if (!isFirstStep) {\\n <ng-template #defaultGoBackButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.goBack.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.goBack.type\\\"\\n [label]=\\\"_navigationButtonLabels.goBack.label\\\"\\n (click)=\\\"goBack()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"goBackButtonTemplate || defaultGoBackButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goBack: _goBackFn }\\\"\\n ></ng-template>\\n }\\n @if (!isLastStep) {\\n <ng-template #defaultGoNextButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.goNext.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.goNext.type\\\"\\n [label]=\\\"_navigationButtonLabels.goNext.label\\\"\\n (click)=\\\"goNext()\\\"\\n ></button>\\n </ng-template>\\n <ng-template #defaultReviewButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.review.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.review.type\\\"\\n [label]=\\\"_navigationButtonLabels.review.label\\\"\\n (click)=\\\"goNext()\\\"\\n ></button>\\n </ng-template>\\n @if (\\n (isBranchingStep && (!isCurrentStepCompleted || _stepsOrderChanged)) || !isNextStepSummary\\n ) {\\n <ng-template\\n [ngTemplateOutlet]=\\\"goNextButtonTemplate || defaultGoNextButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n } @else {\\n <ng-template\\n [ngTemplateOutlet]=\\\"reviewButtonTemplate || defaultReviewButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n }\\n }\\n @if (isLastStep) {\\n <ng-template #defaultFinishButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.finish.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.finish.type\\\"\\n [label]=\\\"_navigationButtonLabels.finish.label\\\"\\n (click)=\\\"finish()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"finishButtonTemplate || defaultFinishButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ finish: _finishFn }\\\"\\n ></ng-template>\\n }\\n <ng-template #defaultCancelButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.cancel.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.cancel.type\\\"\\n [label]=\\\"_navigationButtonLabels.cancel.label\\\"\\n (click)=\\\"cancel()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"cancelButtonTemplate || defaultCancelButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ cancel: _cancelFn }\\\"\\n ></ng-template>\\n </div>\\n </div>\\n }\\n </fd-dialog-body>\\n</fd-dialog>\\n<ng-template\\n [fdMessageBoxTemplate]\\n let-messageBox\\n let-messageBoxConfig=\\\"messageBoxConfig\\\"\\n #defaultConfirmationDialogTemplate\\n>\\n <fd-message-box [messageBoxConfig]=\\\"messageBoxConfig\\\" [messageBoxRef]=\\\"messageBox\\\">\\n <fd-message-box-body>\\n {{ confirmationDialogText }}\\n </fd-message-box-body>\\n <fd-message-box-footer>\\n <fd-button-bar\\n fdType=\\\"emphasized\\\"\\n [label]=\\\"confirmationDialogCloseText\\\"\\n type=\\\"submit\\\"\\n (click)=\\\"messageBox.close(true)\\\"\\n >\\n </fd-button-bar>\\n <fd-button-bar fdkInitialFocus [label]=\\\"confirmationDialogCancelText\\\" (click)=\\\"messageBox.dismiss()\\\">\\n </fd-button-bar>\\n </fd-message-box-footer>\\n </fd-message-box>\\n</ng-template>\\n\", dependencies: [{ kind: \"component\", type: TitleComponent, selector: \"[fd-title], [fdTitle]\", inputs: [\"headerSize\", \"wrap\"], exportAs: [\"fd-title\"] }, { kind: \"component\", type: WizardBodyComponent, selector: \"fdp-wizard-body\", inputs: [\"responsivePaddings\", \"navigationButtonLabels\", \"appendToWizard\", \"contentHeight\", \"isFirstStep\", \"isLastStep\", \"isNextStepSummary\", \"displaySummaryStep\", \"goNextButtonTemplate\", \"finishButtonTemplate\", \"customSummaryStepTemplate\", \"reviewButtonTemplate\", \"isSummaryStep\", \"navigationButtons\", \"unifiedLayout\", \"isBranchingStep\", \"isCurrentStepCompleted\", \"stepsOrderChanged\"], outputs: [\"statusChange\", \"goNext\", \"finish\"] }, { kind: \"ngmodule\", type: BarModule }, { kind: \"component\", type: i2.BarComponent, selector: \"[fd-bar]\", inputs: [\"class\", \"barDesign\", \"inPage\", \"inHomePage\", \"clear\", \"size\", \"role\"] }, { kind: \"directive\", type: i2.BarRightDirective, selector: \"[fd-bar-right]\" }, { kind: \"component\", type: i2.ButtonBarComponent, selector: \"fd-button-bar\", inputs: [\"fullWidth\", \"fdType\", \"title\", \"ariaLabelledby\", \"id\"] }, { kind: \"component\", type: ButtonComponent, selector: \"button[fd-button], a[fd-button], span[fd-button]\", inputs: [\"class\", \"id\"], exportAs: [\"fd-button\"] }, { kind: \"directive\", type: ContentDensityDirective, selector: \"[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])\", inputs: [\"fdContentDensity\", \"fdCompact\", \"fdCondensed\", \"fdCozy\"], exportAs: [\"fdContentDensity\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: MessageBoxModule }, { kind: \"component\", type: i3.MessageBoxFooterComponent, selector: \"fd-message-box-footer\" }, { kind: \"component\", type: i3.MessageBoxBodyComponent, selector: \"fd-message-box-body\" }, { kind: \"component\", type: i3.MessageBoxComponent, selector: \"fd-message-box\", inputs: [\"class\", \"messageBoxRef\", \"messageBoxConfig\"] }, { kind: \"directive\", type: i3.MessageBoxTemplateDirective, selector: \"[fdMessageBoxTemplate]\", inputs: [\"fdMessageBoxTemplateConfig\"] }, { kind: \"directive\", type: i4.InitialFocusDirective, selector: \"[fdkInitialFocus]\", inputs: [\"fdkInitialFocus\", \"enabled\", \"focusLastElement\"] }, { kind: \"component\", type: DialogBodyComponent, selector: \"fd-dialog-body\", inputs: [\"disablePaddings\"] }, { kind: \"component\", type: DialogHeaderComponent, selector: \"fd-dialog-header\" }, { kind: \"component\", type: DialogComponent, selector: \"fd-dialog\", inputs: [\"class\", \"dialogRef\", \"dialogConfig\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DialogWizardGeneratorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-dialog-wizard-generator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [WizardGeneratorService, FormGeneratorService], imports: [\n TitleComponent,\n CdkScrollable,\n ScrollbarDirective,\n WizardBodyComponent,\n BarModule,\n ButtonComponent,\n ContentDensityDirective,\n NgTemplateOutlet,\n MessageBoxModule,\n InitialFocusDirective,\n DialogBodyComponent,\n DialogHeaderComponent,\n DialogComponent\n ], template: \"<fd-dialog>\\n <fd-dialog-header>\\n <h2 fd-title [headerSize]=\\\"title.size\\\">{{ title.text }}</h2>\\n </fd-dialog-header>\\n <fd-dialog-body>\\n <fdp-wizard-body\\n [navigationButtons]=\\\"false\\\"\\n [displaySummaryStep]=\\\"displaySummaryStep\\\"\\n [responsivePaddings]=\\\"responsivePaddings\\\"\\n [navigationButtonLabels]=\\\"_navigationButtonLabels\\\"\\n [customSummaryStepTemplate]=\\\"summaryStepTemplate\\\"\\n [reviewButtonTemplate]=\\\"reviewButtonTemplate\\\"\\n [hidden]=\\\"!wizardCreated\\\"\\n [appendToWizard]=\\\"appendToWizard\\\"\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n [contentHeight]=\\\"contentHeight\\\"\\n (statusChange)=\\\"stepStatusChanged($event.id, $event.status)\\\"\\n ></fdp-wizard-body>\\n @if (wizardCreated) {\\n <div fd-bar barDesign=\\\"floating-footer\\\" [class.fd-bar--responsive-paddings]=\\\"responsivePaddings\\\">\\n <div fd-bar-right>\\n @if (!isFirstStep) {\\n <ng-template #defaultGoBackButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.goBack.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.goBack.type\\\"\\n [label]=\\\"_navigationButtonLabels.goBack.label\\\"\\n (click)=\\\"goBack()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"goBackButtonTemplate || defaultGoBackButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goBack: _goBackFn }\\\"\\n ></ng-template>\\n }\\n @if (!isLastStep) {\\n <ng-template #defaultGoNextButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.goNext.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.goNext.type\\\"\\n [label]=\\\"_navigationButtonLabels.goNext.label\\\"\\n (click)=\\\"goNext()\\\"\\n ></button>\\n </ng-template>\\n <ng-template #defaultReviewButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.review.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.review.type\\\"\\n [label]=\\\"_navigationButtonLabels.review.label\\\"\\n (click)=\\\"goNext()\\\"\\n ></button>\\n </ng-template>\\n @if (\\n (isBranchingStep && (!isCurrentStepCompleted || _stepsOrderChanged)) || !isNextStepSummary\\n ) {\\n <ng-template\\n [ngTemplateOutlet]=\\\"goNextButtonTemplate || defaultGoNextButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n } @else {\\n <ng-template\\n [ngTemplateOutlet]=\\\"reviewButtonTemplate || defaultReviewButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n }\\n }\\n @if (isLastStep) {\\n <ng-template #defaultFinishButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.finish.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.finish.type\\\"\\n [label]=\\\"_navigationButtonLabels.finish.label\\\"\\n (click)=\\\"finish()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"finishButtonTemplate || defaultFinishButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ finish: _finishFn }\\\"\\n ></ng-template>\\n }\\n <ng-template #defaultCancelButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.cancel.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.cancel.type\\\"\\n [label]=\\\"_navigationButtonLabels.cancel.label\\\"\\n (click)=\\\"cancel()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"cancelButtonTemplate || defaultCancelButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ cancel: _cancelFn }\\\"\\n ></ng-template>\\n </div>\\n </div>\\n }\\n </fd-dialog-body>\\n</fd-dialog>\\n<ng-template\\n [fdMessageBoxTemplate]\\n let-messageBox\\n let-messageBoxConfig=\\\"messageBoxConfig\\\"\\n #defaultConfirmationDialogTemplate\\n>\\n <fd-message-box [messageBoxConfig]=\\\"messageBoxConfig\\\" [messageBoxRef]=\\\"messageBox\\\">\\n <fd-message-box-body>\\n {{ confirmationDialogText }}\\n </fd-message-box-body>\\n <fd-message-box-footer>\\n <fd-button-bar\\n fdType=\\\"emphasized\\\"\\n [label]=\\\"confirmationDialogCloseText\\\"\\n type=\\\"submit\\\"\\n (click)=\\\"messageBox.close(true)\\\"\\n >\\n </fd-button-bar>\\n <fd-button-bar fdkInitialFocus [label]=\\\"confirmationDialogCancelText\\\" (click)=\\\"messageBox.dismiss()\\\">\\n </fd-button-bar>\\n </fd-message-box-footer>\\n </fd-message-box>\\n</ng-template>\\n\" }]\n }], ctorParameters: () => [{ type: i1.DialogRef }], propDecorators: { defaultConfirmationDialogTemplate: [{\n type: ViewChild,\n args: ['defaultConfirmationDialogTemplate']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxxQkFBcUIs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QyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzFELE9BQU87WUFDWCxDQUFDO1lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOzhHQTlJUSw4QkFBOEI7a0dBQTlCLDhCQUE4QiwwRUFqQjVCLENBQUMsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUMseU1DMUI3RCw2eE1BNkhBLDRDRGpHUSxjQUFjLDBIQUdkLG1CQUFtQiw2ZUFDbkIsU0FBUyxvWkFDVCxlQUFlLCtJQUNmLHVCQUF1QixvZEFDdkIsZ0JBQWdCLG1KQUNoQixnQkFBZ0IsMm5CQUVoQixtQkFBbUIsd0ZBQ25CLHFCQUFxQiw2REFDckIsZUFBZTs7MkZBR1YsOEJBQThCO2tCQXRCMUMsU0FBUzsrQkFDSSw2QkFBNkIsaUJBRXhCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxzQkFBc0IsRUFBRSxvQkFBb0IsQ0FBQyxXQUNoRDt3QkFDTCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixlQUFlO3FCQUNsQjs4RUFJK0MsaUNBQWlDO3NCQUFoRixTQUFTO3VCQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSW5pdGlhbEZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQmFyTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Jhcic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBEaWFsb2dCb2R5Q29tcG9uZW50LCBEaWFsb2dDb21wb25lbnQsIERpYWxvZ0hlYWRlckNvbXBvbmVudCwgRGlhbG9nUmVmIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBNZXNzYWdlQm94TW9kdWxlLCBNZXNzYWdlQm94U2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tZXNzYWdlLWJveCc7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RpdGxlJztcbmltcG9ydCB7IEJhc2VXaXphcmRHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi9iYXNlLXdpemFyZC1nZW5lcmF0b3InO1xuaW1wb3J0IHsgV2l6YXJkRGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvd2l6YXJkLWRpYWxvZy1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRUaXRsZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvd2l6YXJkLXRpdGxlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd2l6YXJkLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFdpemFyZEJvZHlDb21wb25lbnQgfSBmcm9tICcuLi93aXphcmQtYm9keS93aXphcmQtYm9keS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1kaWFsb2ctd2l6YXJkLWdlbmVyYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy13aXphcmQtZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1dpemFyZEdlbmVyYXRvclNlcnZpY2UsIEZvcm1HZW5lcmF0b3JTZXJ2aWNlXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRpdGxlQ29tcG9uZW50LFxuICAgICAgICBDZGtTY3JvbGxhYmxlLFxuICAgICAgICBTY3JvbGxiYXJEaXJlY3RpdmUsXG4gICAgICAgIFdpemFyZEJvZHlDb21wb25lbnQsXG4gICAgICAgIEJhck1vZHVsZSxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTWVzc2FnZUJveE1vZHVsZSxcbiAgICAgICAgSW5pdGlhbEZvY3VzRGlyZWN0aXZlLFxuICAgICAgICBEaWFsb2dCb2R5Q29tcG9uZW50LFxuICAgICAgICBEaWFsb2dIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIERpYWxvZ0NvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nV2l6YXJkR2VuZXJhdG9yQ29tcG9uZW50IGV4dGVuZHMgQmFzZVdpemFyZEdlbmVyYXRvciB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdkZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGUnKSBkZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXaXphcmRzIGRpYWxvZyB0aXRsZSBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHRpdGxlOiBXaXphcmRUaXRsZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb25maXJtYXRpb24gbWVzc2FnZSB3aGVuIHdpemFyZCBkaWFsb2cgY2xvc2UgYnV0dG9uIGhhcyBiZWVuIGNsaWNrZWQuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nVGV4dCA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGlzY2FyZCB5b3VyIHByb2dyZXNzPyc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbmZpcm0gYnV0dG9uIHRleHQgZm9yIGNsb3NlIGNvbmZpcm1hdGlvbiBkaWFsb2cuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nQ2xvc2VUZXh0ID0gJ0NvbmZpcm0nO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYW5jZWwgYnV0dG9uIHRleHQgZm9yIGNsb3NlIGNvbmZpcm1hdGlvbiBkaWFsb2cuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nQ2FuY2VsVGV4dCA9ICdDYW5jZWwnO1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIkdvIE5leHRcIiBidXR0b24uXG4gICAgICovXG4gICAgZ29OZXh0QnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiR28gQmFja1wiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBnb0JhY2tCdXR0b25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgXCJGaW5pc2hcIiBidXR0b24uXG4gICAgICovXG4gICAgZmluaXNoQnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiQ2FuY2VsXCIgYnV0dG9uLlxuICAgICAqL1xuICAgIGNhbmNlbEJ1dHRvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBjYW5jZWxsYXRpb24gY29uZmlybWF0aW9uIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3Igc3VtbWFyeSBzdGVwLlxuICAgICAqL1xuICAgIHN1bW1hcnlTdGVwVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIlJldmlld1wiIGJ1dHRvbiAqL1xuICAgIHJldmlld0J1dHRvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tZXNzYWdlQm94U2VydmljZSA9IGluamVjdChNZXNzYWdlQm94U2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RpYWxvZ1JlZjogRGlhbG9nUmVmPFdpemFyZERpYWxvZ0RhdGE+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5pdGVtcztcbiAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLnRpdGxlO1xuICAgICAgICB0aGlzLmFwcGVuZFRvV2l6YXJkID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuYXBwZW5kVG9XaXphcmQ7XG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkJ1dHRvbkxhYmVscyA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLm5hdmlnYXRpb25CdXR0b25MYWJlbHMgPz8ge307XG4gICAgICAgIHRoaXMuY29udGVudEhlaWdodCA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbnRlbnRIZWlnaHQ7XG4gICAgICAgIHRoaXMucmVzcG9uc2l2ZVBhZGRpbmdzID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEucmVzcG9uc2l2ZVBhZGRpbmdzO1xuICAgICAgICB0aGlzLmdvTmV4dEJ1dHRvblRlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuZ29OZXh0QnV0dG9uVGVtcGxhdGU7XG4gICAgICAgIHRoaXMuZ29CYWNrQnV0dG9uVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5nb0JhY2tCdXR0b25UZW1wbGF0ZTtcbiAgICAgICAgdGhpcy5maW5pc2hCdXR0b25UZW1wbGF0ZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmZpbmlzaEJ1dHRvblRlbXBsYXRlO1xuICAgICAgICB0aGlzLmNhbmNlbEJ1dHRvblRlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuY2FuY2VsQnV0dG9uVGVtcGxhdGU7XG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZTtcbiAgICAgICAgdGhpcy5kaXNwbGF5U3VtbWFyeVN0ZXAgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5kaXNwbGF5U3VtbWFyeVN0ZXAgfHwgZmFsc2U7XG4gICAgICAgIHRoaXMuc3VtbWFyeVN0ZXBUZW1wbGF0ZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLnN1bW1hcnlTdGVwVGVtcGxhdGU7XG4gICAgICAgIHRoaXMucmV2aWV3QnV0dG9uVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5yZXZpZXdCdXR0b25UZW1wbGF0ZTtcblxuICAgICAgICBpZiAodGhpcy5fZGlhbG9nUmVmLmRhdGEudW5pZmllZExheW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnVuaWZpZWRMYXlvdXQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS51bmlmaWVkTGF5b3V0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZi5kYXRhLm5hdmlnYXRpb25CdXR0b25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5uYXZpZ2F0aW9uQnV0dG9ucztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ1RleHQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dUZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uRGlhbG9nQ2FuY2VsVGV4dCA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fZGlhbG9nUmVmLmRhdGEuY29uZmlybWF0aW9uRGlhbG9nQ2xvc2VUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dCA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYW5jZWxzIFdpemFyZCBwcm9ncmVzcyBhbmQgY2xvc2VzIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgY2FuY2VsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5pc1N0ZXBzVW50b3VjaGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5kaXNtaXNzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy5jb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZSB8fCB0aGlzLmRlZmF1bHRDb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZTtcblxuICAgICAgICBjb25zdCBtZXNzYWdlQm94UmVmID0gdGhpcy5fbWVzc2FnZUJveFNlcnZpY2Uub3Blbih0ZW1wbGF0ZSwgeyByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSB9KTtcblxuICAgICAgICBtZXNzYWdlQm94UmVmLmFmdGVyQ2xvc2VkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHJlc3VsdCkgPT4gcmVzdWx0KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGVzIFdpemFyZCBwcm9jZXNzLCBlbWl0cyBXaXphcmQgcmVzdWx0IGFuZCBjbG9zZXMgdGhlIGRpYWxvZy5cbiAgICAgKi9cbiAgICBhc3luYyBmaW5pc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmlzU3VtbWFyeVN0ZXApIHtcbiAgICAgICAgICAgIGNvbnN0IHdpemFyZFJlc3VsdCA9IGF3YWl0IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0V2l6YXJkRm9ybVZhbHVlKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHdpemFyZFJlc3VsdCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50U3RlcElkID0gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRDdXJyZW50U3RlcElkKCk7XG4gICAgICAgIHRoaXMuc3VibWl0U3RlcEZvcm1zKGN1cnJlbnRTdGVwSWQpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIE9iamVjdC52YWx1ZXMocmVzdWx0KS5zb21lKChyKSA9PiAhci5zdWNjZXNzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgd2l6YXJkUmVzdWx0ID0gYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRXaXphcmRGb3JtVmFsdWUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHdpemFyZFJlc3VsdCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2dvQmFja0ZuOiAoKSA9PiB2b2lkID0gKCkgPT4gdGhpcy5nb0JhY2soKTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2dvTmV4dEZuOiAoKSA9PiBQcm9taXNlPHZvaWQ+ID0gKCkgPT4gdGhpcy5nb05leHQoKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfZmluaXNoRm46ICgpID0+IFByb21pc2U8dm9pZD4gPSAoKSA9PiB0aGlzLmZpbmlzaCgpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9jYW5jZWxGbjogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMuY2FuY2VsKCk7XG59XG4iLCI8ZmQtZGlhbG9nPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8aDIgZmQtdGl0bGUgW2hlYWRlclNpemVdPVwidGl0bGUuc2l6ZVwiPnt7IHRpdGxlLnRleHQgfX08L2gyPlxuICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cbiAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDxmZHAtd2l6YXJkLWJvZHlcbiAgICAgICAgICAgIFtuYXZpZ2F0aW9uQnV0dG9uc109XCJmYWxzZVwiXG4gICAgICAgICAgICBbZGlzcGxheVN1bW1hcnlTdGVwXT1cImRpc3BsYXlTdW1tYXJ5U3RlcFwiXG4gICAgICAgICAgICBbcmVzcG9uc2l2ZVBhZGRpbmdzXT1cInJlc3BvbnNpdmVQYWRkaW5nc1wiXG4gICAgICAgICAgICBbbmF2aWdhdGlvbkJ1dHRvbkxhYmVsc109XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVsc1wiXG4gICAgICAgICAgICBbY3VzdG9tU3VtbWFyeVN0ZXBUZW1wbGF0ZV09XCJzdW1tYXJ5U3RlcFRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtyZXZpZXdCdXR0b25UZW1wbGF0ZV09XCJyZXZpZXdCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbaGlkZGVuXT1cIiF3aXphcmRDcmVhdGVkXCJcbiAgICAgICAgICAgIFthcHBlbmRUb1dpemFyZF09XCJhcHBlbmRUb1dpemFyZFwiXG4gICAgICAgICAgICBbdW5pZmllZExheW91dF09XCJ1bmlmaWVkTGF5b3V0XCJcbiAgICAgICAgICAgIFtjb250ZW50SGVpZ2h0XT1cImNvbnRlbnRIZWlnaHRcIlxuICAgICAgICAgICAgKHN0YXR1c0NoYW5nZSk9XCJzdGVwU3RhdHVzQ2hhbmdlZCgkZXZlbnQuaWQsICRldmVudC5zdGF0dXMpXCJcbiAgICAgICAgPjwvZmRwLXdpemFyZC1ib2R5PlxuICAgICAgICBAaWYgKHdpemFyZENyZWF0ZWQpIHtcbiAgICAgICAgICAgIDxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImZsb2F0aW5nLWZvb3RlclwiIFtjbGFzcy5mZC1iYXItLXJlc3BvbnNpdmUtcGFkZGluZ3NdPVwicmVzcG9uc2l2ZVBhZGRpbmdzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWlzRmlyc3RTdGVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRHb0JhY2tCdXR0b25UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb0JhY2suY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvQmFjay50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvQmFjay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdvQmFja0J1dHRvblRlbXBsYXRlIHx8IGRlZmF1bHRHb0JhY2tCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZ29CYWNrOiBfZ29CYWNrRm4gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFpc0xhc3RTdGVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRHb05leHRCdXR0b25UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb05leHQuY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvTmV4dC50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvTmV4dC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb05leHQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFJldmlld0J1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLnJldmlldy5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMucmV2aWV3LnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMucmV2aWV3LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNCcmFuY2hpbmdTdGVwICYmICghaXNDdXJyZW50U3RlcENvbXBsZXRlZCB8fCBfc3RlcHNPcmRlckNoYW5nZWQpKSB8fCAhaXNOZXh0U3RlcFN1bW1hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJnb05leHRCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0R29OZXh0QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBnb05leHQ6IF9nb05leHRGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyZXZpZXdCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0UmV2aWV3QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBnb05leHQ6IF9nb05leHRGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGlzTGFzdFN0ZXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEZpbmlzaEJ1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmZpbmlzaC5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbmlzaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmluaXNoQnV0dG9uVGVtcGxhdGUgfHwgZGVmYXVsdEZpbmlzaEJ1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBmaW5pc2g6IF9maW5pc2hGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENhbmNlbEJ1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmNhbmNlbC5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5jYW5jZWwudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmNhbmNlbC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjYW5jZWxCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0Q2FuY2VsQnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgY2FuY2VsOiBfY2FuY2VsRm4gfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuPC9mZC1kaWFsb2c+XG48bmctdGVtcGxhdGVcbiAgICBbZmRNZXNzYWdlQm94VGVtcGxhdGVdXG4gICAgbGV0LW1lc3NhZ2VCb3hcbiAgICBsZXQtbWVzc2FnZUJveENvbmZpZz1cIm1lc3NhZ2VCb3hDb25maWdcIlxuICAgICNkZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGVcbj5cbiAgICA8ZmQtbWVzc2FnZS1ib3ggW21lc3NhZ2VCb3hDb25maWddPVwibWVzc2FnZUJveENvbmZpZ1wiIFttZXNzYWdlQm94UmVmXT1cIm1lc3NhZ2VCb3hcIj5cbiAgICAgICAgPGZkLW1lc3NhZ2UtYm94LWJvZHk+XG4gICAgICAgICAgICB7eyBjb25maXJtYXRpb25EaWFsb2dUZXh0IH19XG4gICAgICAgIDwvZmQtbWVzc2FnZS1ib3gtYm9keT5cbiAgICAgICAgPGZkLW1lc3NhZ2UtYm94LWZvb3Rlcj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lc3NhZ2VCb3guY2xvc2UodHJ1ZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXIgZmRrSW5pdGlhbEZvY3VzIFtsYWJlbF09XCJjb25maXJtYXRpb25EaWFsb2dDYW5jZWxUZXh0XCIgKGNsaWNrKT1cIm1lc3NhZ2VCb3guZGlzbWlzcygpXCI+XG4gICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgIDwvZmQtbWVzc2FnZS1ib3gtZm9vdGVyPlxuICAgIDwvZmQtbWVzc2FnZS1ib3g+XG48L25nLXRlbXBsYXRlPlxuIl19","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class WizardGeneratorFinishButtonDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorFinishButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: WizardGeneratorFinishButtonDirective, isStandalone: true, selector: \"[fdpWizardGeneratorFinishButton], [fdp-wizard-generator-finish-button]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorFinishButtonDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdpWizardGeneratorFinishButton], [fdp-wizard-generator-finish-button]',\n standalone: true\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci1maW5pc2gtYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2l6YXJkLWdlbmVyYXRvci9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3ItZmluaXNoLWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNMUMsTUFBTSxPQUFPLG9DQUFvQzs4R0FBcEMsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBSmhELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdFQUF3RTtvQkFDbEYsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFdpemFyZEdlbmVyYXRvckZpbmlzaEJ1dHRvbl0sIFtmZHAtd2l6YXJkLWdlbmVyYXRvci1maW5pc2gtYnV0dG9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBXaXphcmRHZW5lcmF0b3JGaW5pc2hCdXR0b25EaXJlY3RpdmUge31cbiJdfQ==","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class WizardGeneratorGoNextButtonDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorGoNextButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: WizardGeneratorGoNextButtonDirective, isStandalone: true, selector: \"[fdpWizardGeneratorGoNextButton], [fdp-wizard-generator-go-next-button]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorGoNextButtonDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdpWizardGeneratorGoNextButton], [fdp-wizard-generator-go-next-button]',\n standalone: true\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci1nby1uZXh0LWJ1dHRvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3IvZGlyZWN0aXZlcy93aXphcmQtZ2VuZXJhdG9yLWdvLW5leHQtYnV0dG9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0xQyxNQUFNLE9BQU8sb0NBQW9DOzhHQUFwQyxvQ0FBb0M7a0dBQXBDLG9DQUFvQzs7MkZBQXBDLG9DQUFvQztrQkFKaEQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUVBQXlFO29CQUNuRixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRwV2l6YXJkR2VuZXJhdG9yR29OZXh0QnV0dG9uXSwgW2ZkcC13aXphcmQtZ2VuZXJhdG9yLWdvLW5leHQtYnV0dG9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBXaXphcmRHZW5lcmF0b3JHb05leHRCdXR0b25EaXJlY3RpdmUge31cbiJdfQ==","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class WizardGeneratorReviewButtonDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorReviewButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: WizardGeneratorReviewButtonDirective, isStandalone: true, selector: \"[fdpWizardGeneratorReviewButton], [fdp-wizard-generator-review-button]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorReviewButtonDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdpWizardGeneratorReviewButton], [fdp-wizard-generator-review-button]',\n standalone: true\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci1yZXZpZXctYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2l6YXJkLWdlbmVyYXRvci9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3ItcmV2aWV3LWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNMUMsTUFBTSxPQUFPLG9DQUFvQzs4R0FBcEMsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBSmhELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdFQUF3RTtvQkFDbEYsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFdpemFyZEdlbmVyYXRvclJldmlld0J1dHRvbl0sIFtmZHAtd2l6YXJkLWdlbmVyYXRvci1yZXZpZXctYnV0dG9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBXaXphcmRHZW5lcmF0b3JSZXZpZXdCdXR0b25EaXJlY3RpdmUge31cbiJdfQ==","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class WizardGeneratorSummaryStepDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorSummaryStepDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: WizardGeneratorSummaryStepDirective, isStandalone: true, selector: \"[fdpWizardGeneratorSummaryStep], [fdp-wizard-generator-summary-step]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorSummaryStepDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdpWizardGeneratorSummaryStep], [fdp-wizard-generator-summary-step]',\n standalone: true\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci1zdW1tYXJ5LXN0ZXAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2RpcmVjdGl2ZXMvd2l6YXJkLWdlbmVyYXRvci1zdW1tYXJ5LXN0ZXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTFDLE1BQU0sT0FBTyxtQ0FBbUM7OEdBQW5DLG1DQUFtQztrR0FBbkMsbUNBQW1DOzsyRkFBbkMsbUNBQW1DO2tCQUovQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzRUFBc0U7b0JBQ2hGLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZHBXaXphcmRHZW5lcmF0b3JTdW1tYXJ5U3RlcF0sIFtmZHAtd2l6YXJkLWdlbmVyYXRvci1zdW1tYXJ5LXN0ZXBdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFdpemFyZEdlbmVyYXRvclN1bW1hcnlTdGVwRGlyZWN0aXZlIHt9XG4iXX0=","import { ChangeDetectionStrategy, Component, ContentChild, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { RepeatDirective } from '@fundamental-ngx/cdk/utils';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { WizardModule } from '@fundamental-ngx/core/wizard';\nimport { BaseWizardGenerator } from '../../base-wizard-generator';\nimport { WizardGeneratorFinishButtonDirective } from '../../directives/wizard-generator-finish-button.directive';\nimport { WizardGeneratorGoNextButtonDirective } from '../../directives/wizard-generator-go-next-button.directive';\nimport { WizardGeneratorReviewButtonDirective } from '../../directives/wizard-generator-review-button.directive';\nimport { WizardGeneratorSummaryStepDirective } from '../../directives/wizard-generator-summary-step.directive';\nimport { WizardGeneratorService } from '../../wizard-generator.service';\nimport { WizardBodyComponent } from '../wizard-body/wizard-body.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/wizard\";\nexport class WizardGeneratorComponent extends BaseWizardGenerator {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: WizardGeneratorComponent, isStandalone: true, selector: \"fdp-wizard-generator\", providers: [WizardGeneratorService, FormGeneratorService], queries: [{ propertyName: \"finishButtonTemplate\", first: true, predicate: WizardGeneratorFinishButtonDirective, descendants: true, read: TemplateRef }, { propertyName: \"goNextButtonTemplate\", first: true, predicate: WizardGeneratorGoNextButtonDirective, descendants: true, read: TemplateRef }, { propertyName: \"customSummaryStepTemplate\", first: true, predicate: WizardGeneratorSummaryStepDirective, descendants: true, read: TemplateRef }, { propertyName: \"reviewButtonTemplate\", first: true, predicate: WizardGeneratorReviewButtonDirective, descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: \"@if (wizardCreated) {\\n <fdp-wizard-body\\n [navigationButtonLabels]=\\\"_navigationButtonLabels\\\"\\n [goNextButtonTemplate]=\\\"goNextButtonTemplate\\\"\\n [finishButtonTemplate]=\\\"finishButtonTemplate\\\"\\n [customSummaryStepTemplate]=\\\"customSummaryStepTemplate\\\"\\n [reviewButtonTemplate]=\\\"reviewButtonTemplate\\\"\\n [responsivePaddings]=\\\"responsivePaddings\\\"\\n [hidden]=\\\"!wizardCreated\\\"\\n [appendToWizard]=\\\"appendToWizard\\\"\\n [contentHeight]=\\\"contentHeight\\\"\\n [isFirstStep]=\\\"isFirstStep\\\"\\n [isLastStep]=\\\"isLastStep\\\"\\n [isNextStepSummary]=\\\"isNextStepSummary\\\"\\n [isSummaryStep]=\\\"isSummaryStep\\\"\\n [displaySummaryStep]=\\\"displaySummaryStep\\\"\\n [navigationButtons]=\\\"navigationButtons\\\"\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n [isBranchingStep]=\\\"isBranchingStep\\\"\\n [isCurrentStepCompleted]=\\\"isCurrentStepCompleted\\\"\\n [stepsOrderChanged]=\\\"_stepsOrderChanged\\\"\\n (statusChange)=\\\"stepStatusChanged($event.id, $event.status)\\\"\\n (goNext)=\\\"goNext()\\\"\\n (finish)=\\\"finish()\\\"\\n ></fdp-wizard-body>\\n} @else {\\n <fd-wizard>\\n <fd-wizard-navigation>\\n <ul fd-wizard-progress-bar size=\\\"lg\\\" role=\\\"list\\\" aria-label=\\\"Wizard Steps\\\">\\n <li *fdkRepeat=\\\"3; let i = index\\\" fd-wizard-step [status]=\\\"i === 0 ? 'current' : 'upcoming'\\\">\\n <fd-skeleton type=\\\"rectangle\\\" width=\\\"32px\\\" height=\\\"32px\\\"></fd-skeleton>\\n <fd-wizard-content size=\\\"lg\\\">\\n <fd-skeleton type=\\\"text\\\" width=\\\"60%\\\"></fd-skeleton>\\n </fd-wizard-content>\\n </li>\\n </ul>\\n </fd-wizard-navigation>\\n </fd-wizard>\\n}\\n<!-- The Wizard -->\\n\", dependencies: [{ kind: \"component\", type: WizardBodyComponent, selector: \"fdp-wizard-body\", inputs: [\"responsivePaddings\", \"navigationButtonLabels\", \"appendToWizard\", \"contentHeight\", \"isFirstStep\", \"isLastStep\", \"isNextStepSummary\", \"displaySummaryStep\", \"goNextButtonTemplate\", \"finishButtonTemplate\", \"customSummaryStepTemplate\", \"reviewButtonTemplate\", \"isSummaryStep\", \"navigationButtons\", \"unifiedLayout\", \"isBranchingStep\", \"isCurrentStepCompleted\", \"stepsOrderChanged\"], outputs: [\"statusChange\", \"goNext\", \"finish\"] }, { kind: \"ngmodule\", type: WizardModule }, { kind: \"component\", type: i1.WizardComponent, selector: \"fd-wizard\", inputs: [\"appendToWizard\", \"contentHeight\", \"responsivePaddings\", \"displaySummaryStep\", \"ariaLabel\"] }, { kind: \"component\", type: i1.WizardNavigationComponent, selector: \"fd-wizard-navigation\", inputs: [\"ariaLabel\"] }, { kind: \"directive\", type: i1.WizardProgressBarDirective, selector: \"[fd-wizard-progress-bar]\", inputs: [\"size\"] }, { kind: \"component\", type: i1.WizardStepComponent, selector: \"[fd-wizard-step]\", inputs: [\"ariaLabel\", \"ariaRoleDecription\", \"status\", \"branching\", \"label\", \"optionalText\", \"isSummary\", \"stepClickValidator\"], outputs: [\"statusChange\", \"stepClicked\", \"stepIndicatorItemClicked\"] }, { kind: \"component\", type: i1.WizardContentComponent, selector: \"fd-wizard-content\", inputs: [\"contentBackground\", \"size\"] }, { kind: \"directive\", type: RepeatDirective, selector: \"[fdkRepeat]\", inputs: [\"fdkRepeat\"] }, { kind: \"component\", type: SkeletonComponent, selector: \"fd-skeleton\", inputs: [\"animated\", \"type\", \"textLines\", \"width\", \"height\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-wizard-generator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [WizardGeneratorService, FormGeneratorService], imports: [WizardBodyComponent, WizardModule, RepeatDirective, SkeletonComponent], template: \"@if (wizardCreated) {\\n <fdp-wizard-body\\n [navigationButtonLabels]=\\\"_navigationButtonLabels\\\"\\n [goNextButtonTemplate]=\\\"goNextButtonTemplate\\\"\\n [finishButtonTemplate]=\\\"finishButtonTemplate\\\"\\n [customSummaryStepTemplate]=\\\"customSummaryStepTemplate\\\"\\n [reviewButtonTemplate]=\\\"reviewButtonTemplate\\\"\\n [responsivePaddings]=\\\"responsivePaddings\\\"\\n [hidden]=\\\"!wizardCreated\\\"\\n [appendToWizard]=\\\"appendToWizard\\\"\\n [contentHeight]=\\\"contentHeight\\\"\\n [isFirstStep]=\\\"isFirstStep\\\"\\n [isLastStep]=\\\"isLastStep\\\"\\n [isNextStepSummary]=\\\"isNextStepSummary\\\"\\n [isSummaryStep]=\\\"isSummaryStep\\\"\\n [displaySummaryStep]=\\\"displaySummaryStep\\\"\\n [navigationButtons]=\\\"navigationButtons\\\"\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n [isBranchingStep]=\\\"isBranchingStep\\\"\\n [isCurrentStepCompleted]=\\\"isCurrentStepCompleted\\\"\\n [stepsOrderChanged]=\\\"_stepsOrderChanged\\\"\\n (statusChange)=\\\"stepStatusChanged($event.id, $event.status)\\\"\\n (goNext)=\\\"goNext()\\\"\\n (finish)=\\\"finish()\\\"\\n ></fdp-wizard-body>\\n} @else {\\n <fd-wizard>\\n <fd-wizard-navigation>\\n <ul fd-wizard-progress-bar size=\\\"lg\\\" role=\\\"list\\\" aria-label=\\\"Wizard Steps\\\">\\n <li *fdkRepeat=\\\"3; let i = index\\\" fd-wizard-step [status]=\\\"i === 0 ? 'current' : 'upcoming'\\\">\\n <fd-skeleton type=\\\"rectangle\\\" width=\\\"32px\\\" height=\\\"32px\\\"></fd-skeleton>\\n <fd-wizard-content size=\\\"lg\\\">\\n <fd-skeleton type=\\\"text\\\" width=\\\"60%\\\"></fd-skeleton>\\n </fd-wizard-content>\\n </li>\\n </ul>\\n </fd-wizard-navigation>\\n </fd-wizard>\\n}\\n<!-- The Wizard -->\\n\" }]\n }], propDecorators: { finishButtonTemplate: [{\n type: ContentChild,\n args: [WizardGeneratorFinishButtonDirective, { read: TemplateRef }]\n }], goNextButtonTemplate: [{\n type: ContentChild,\n args: [WizardGeneratorGoNextButtonDirective, { read: TemplateRef }]\n }], customSummaryStepTemplate: [{\n type: ContentChild,\n args: [WizardGeneratorSummaryStepDirective, { read: TemplateRef }]\n }], reviewButtonTemplate: [{\n type: ContentChild,\n args: [WizardGeneratorReviewButtonDirective, { read: TemplateRef }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3IvY29tcG9uZW50cy93aXphcmQtZ2VuZXJhdG9yL3dpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvd2l6YXJkLWdlbmVyYXRvci93aXphcmQtZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pILE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2xILE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pILE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQy9HLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7QUFVM0UsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG1CQUFtQjs4R0FBcEQsd0JBQXdCO2tHQUF4Qix3QkFBd0IsbUVBSHRCLENBQUMsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUMsNEVBTzNDLG9DQUFvQywyQkFBVSxXQUFXLG9FQU16RCxvQ0FBb0MsMkJBQVUsV0FBVyx5RUFNekQsbUNBQW1DLDJCQUFVLFdBQVcsb0VBTXhELG9DQUFvQywyQkFBVSxXQUFXLG9EQzVDM0UsK3hEQXdDQSw0Q0RwQmMsbUJBQW1CLDZlQUFFLFlBQVksNDBCQUFFLGVBQWUsK0VBQUUsaUJBQWlCOzsyRkFFdEUsd0JBQXdCO2tCQVJwQyxTQUFTOytCQUNJLHNCQUFzQixpQkFFakIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHNCQUFzQixFQUFFLG9CQUFvQixDQUFDLFdBQ2hELENBQUMsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQzs4QkFPaEYsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLG9DQUFvQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFPekUsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLG9DQUFvQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFPekUseUJBQXlCO3NCQUR4QixZQUFZO3VCQUFDLG1DQUFtQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFPeEUsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLG9DQUFvQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vZm9ybSc7XG5cbmltcG9ydCB7IFJlcGVhdERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NrZWxldG9uJztcbmltcG9ydCB7IFdpemFyZE1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS93aXphcmQnO1xuaW1wb3J0IHsgQmFzZVdpemFyZEdlbmVyYXRvciB9IGZyb20gJy4uLy4uL2Jhc2Utd2l6YXJkLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JGaW5pc2hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3ItZmluaXNoLWJ1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yR29OZXh0QnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy93aXphcmQtZ2VuZXJhdG9yLWdvLW5leHQtYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JSZXZpZXdCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3ItcmV2aWV3LWJ1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yU3VtbWFyeVN0ZXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3Itc3VtbWFyeS1zdGVwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd2l6YXJkLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFdpemFyZEJvZHlDb21wb25lbnQgfSBmcm9tICcuLi93aXphcmQtYm9keS93aXphcmQtYm9keS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC13aXphcmQtZ2VuZXJhdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vd2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtXaXphcmRHZW5lcmF0b3JTZXJ2aWNlLCBGb3JtR2VuZXJhdG9yU2VydmljZV0sXG4gICAgaW1wb3J0czogW1dpemFyZEJvZHlDb21wb25lbnQsIFdpemFyZE1vZHVsZSwgUmVwZWF0RGlyZWN0aXZlLCBTa2VsZXRvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkR2VuZXJhdG9yQ29tcG9uZW50IGV4dGVuZHMgQmFzZVdpemFyZEdlbmVyYXRvciB7XG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIkZpbmlzaFwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKFdpemFyZEdlbmVyYXRvckZpbmlzaEJ1dHRvbkRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGZpbmlzaEJ1dHRvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiR28gTmV4dFwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKFdpemFyZEdlbmVyYXRvckdvTmV4dEJ1dHRvbkRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGdvTmV4dEJ1dHRvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFN1bW1hcnkgc3RlcC5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKFdpemFyZEdlbmVyYXRvclN1bW1hcnlTdGVwRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgY3VzdG9tU3VtbWFyeVN0ZXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIlJldmlld1wiIGJ1dHRvblxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoV2l6YXJkR2VuZXJhdG9yUmV2aWV3QnV0dG9uRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcmV2aWV3QnV0dG9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pjtcbn1cbiIsIkBpZiAod2l6YXJkQ3JlYXRlZCkge1xuICAgIDxmZHAtd2l6YXJkLWJvZHlcbiAgICAgICAgW25hdmlnYXRpb25CdXR0b25MYWJlbHNdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHNcIlxuICAgICAgICBbZ29OZXh0QnV0dG9uVGVtcGxhdGVdPVwiZ29OZXh0QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICBbZmluaXNoQnV0dG9uVGVtcGxhdGVdPVwiZmluaXNoQnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICBbY3VzdG9tU3VtbWFyeVN0ZXBUZW1wbGF0ZV09XCJjdXN0b21TdW1tYXJ5U3RlcFRlbXBsYXRlXCJcbiAgICAgICAgW3Jldmlld0J1dHRvblRlbXBsYXRlXT1cInJldmlld0J1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgW3Jlc3BvbnNpdmVQYWRkaW5nc109XCJyZXNwb25zaXZlUGFkZGluZ3NcIlxuICAgICAgICBbaGlkZGVuXT1cIiF3aXphcmRDcmVhdGVkXCJcbiAgICAgICAgW2FwcGVuZFRvV2l6YXJkXT1cImFwcGVuZFRvV2l6YXJkXCJcbiAgICAgICAgW2NvbnRlbnRIZWlnaHRdPVwiY29udGVudEhlaWdodFwiXG4gICAgICAgIFtpc0ZpcnN0U3RlcF09XCJpc0ZpcnN0U3RlcFwiXG4gICAgICAgIFtpc0xhc3RTdGVwXT1cImlzTGFzdFN0ZXBcIlxuICAgICAgICBbaXNOZXh0U3RlcFN1bW1hcnldPVwiaXNOZXh0U3RlcFN1bW1hcnlcIlxuICAgICAgICBbaXNTdW1tYXJ5U3RlcF09XCJpc1N1bW1hcnlTdGVwXCJcbiAgICAgICAgW2Rpc3BsYXlTdW1tYXJ5U3RlcF09XCJkaXNwbGF5U3VtbWFyeVN0ZXBcIlxuICAgICAgICBbbmF2aWdhdGlvbkJ1dHRvbnNdPVwibmF2aWdhdGlvbkJ1dHRvbnNcIlxuICAgICAgICBbdW5pZmllZExheW91dF09XCJ1bmlmaWVkTGF5b3V0XCJcbiAgICAgICAgW2lzQnJhbmNoaW5nU3RlcF09XCJpc0JyYW5jaGluZ1N0ZXBcIlxuICAgICAgICBbaXNDdXJyZW50U3RlcENvbXBsZXRlZF09XCJpc0N1cnJlbnRTdGVwQ29tcGxldGVkXCJcbiAgICAgICAgW3N0ZXBzT3JkZXJDaGFuZ2VkXT1cIl9zdGVwc09yZGVyQ2hhbmdlZFwiXG4gICAgICAgIChzdGF0dXNDaGFuZ2UpPVwic3RlcFN0YXR1c0NoYW5nZWQoJGV2ZW50LmlkLCAkZXZlbnQuc3RhdHVzKVwiXG4gICAgICAgIChnb05leHQpPVwiZ29OZXh0KClcIlxuICAgICAgICAoZmluaXNoKT1cImZpbmlzaCgpXCJcbiAgICA+PC9mZHAtd2l6YXJkLWJvZHk+XG59IEBlbHNlIHtcbiAgICA8ZmQtd2l6YXJkPlxuICAgICAgICA8ZmQtd2l6YXJkLW5hdmlnYXRpb24+XG4gICAgICAgICAgICA8dWwgZmQtd2l6YXJkLXByb2dyZXNzLWJhciBzaXplPVwibGdcIiByb2xlPVwibGlzdFwiIGFyaWEtbGFiZWw9XCJXaXphcmQgU3RlcHNcIj5cbiAgICAgICAgICAgICAgICA8bGkgKmZka1JlcGVhdD1cIjM7IGxldCBpID0gaW5kZXhcIiBmZC13aXphcmQtc3RlcCBbc3RhdHVzXT1cImkgPT09IDAgPyAnY3VycmVudCcgOiAndXBjb21pbmcnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1za2VsZXRvbiB0eXBlPVwicmVjdGFuZ2xlXCIgd2lkdGg9XCIzMnB4XCIgaGVpZ2h0PVwiMzJweFwiPjwvZmQtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgICAgIDxmZC13aXphcmQtY29udGVudCBzaXplPVwibGdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1za2VsZXRvbiB0eXBlPVwidGV4dFwiIHdpZHRoPVwiNjAlXCI+PC9mZC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC13aXphcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9mZC13aXphcmQtbmF2aWdhdGlvbj5cbiAgICA8L2ZkLXdpemFyZD5cbn1cbjwhLS0gVGhlIFdpemFyZCAtLT5cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { DialogService } from '@fundamental-ngx/core/dialog';\nimport { DialogWizardGeneratorComponent } from './components/dialog-wizard-generator/dialog-wizard-generator.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/dialog\";\n/**\n * @description Helper service to launch Wizard in dialog with minimal user input.\n */\nexport class WizardDialogGeneratorService {\n /** @hidden */\n constructor(_dialogService) {\n this._dialogService = _dialogService;\n }\n /**\n * @description Opens dialog with wizard component inside.\n * @param config Dialog options with wizard config.\n * @returns DialogRef instance.\n */\n open(config) {\n const dialogRef = this._dialogService.open(DialogWizardGeneratorComponent, config);\n return dialogRef;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardDialogGeneratorService, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardDialogGeneratorService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardDialogGeneratorService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.DialogService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWRpYWxvZy1nZW5lcmF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2l6YXJkLWdlbmVyYXRvci93aXphcmQtZGlhbG9nLWdlbmVyYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUEyQixhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQzs7O0FBSXhIOztHQUVHO0FBRUgsTUFBTSxPQUFPLDRCQUE0QjtJQUNyQyxjQUFjO0lBQ2QsWUFBb0IsY0FBNkI7UUFBN0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7SUFBRyxDQUFDO0lBRXJEOzs7O09BSUc7SUFDSCxJQUFJLENBQUMsTUFBc0M7UUFDdkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFbkYsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs4R0FiUSw0QkFBNEI7a0hBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGlhbG9nQ29uZmlnLCBEaWFsb2dSZWYsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IERpYWxvZ1dpemFyZEdlbmVyYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kaWFsb2ctd2l6YXJkLWdlbmVyYXRvci9kaWFsb2ctd2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkRGlhbG9nRGF0YSB9IGZyb20gJy4vaW50ZXJmYWNlcy93aXphcmQtZGlhbG9nLWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvckZvcm1zVmFsdWUgfSBmcm9tICcuL2ludGVyZmFjZXMvd2l6YXJkLWdlbmVyYXRvci1mb3Jtcy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBIZWxwZXIgc2VydmljZSB0byBsYXVuY2ggV2l6YXJkIGluIGRpYWxvZyB3aXRoIG1pbmltYWwgdXNlciBpbnB1dC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdpemFyZERpYWxvZ0dlbmVyYXRvclNlcnZpY2Uge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSkge31cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBPcGVucyBkaWFsb2cgd2l0aCB3aXphcmQgY29tcG9uZW50IGluc2lkZS5cbiAgICAgKiBAcGFyYW0gY29uZmlnIERpYWxvZyBvcHRpb25zIHdpdGggd2l6YXJkIGNvbmZpZy5cbiAgICAgKiBAcmV0dXJucyBEaWFsb2dSZWYgaW5zdGFuY2UuXG4gICAgICovXG4gICAgb3Blbihjb25maWc6IERpYWxvZ0NvbmZpZzxXaXphcmREaWFsb2dEYXRhPik6IERpYWxvZ1JlZjxXaXphcmREaWFsb2dEYXRhLCBXaXphcmRHZW5lcmF0b3JGb3Jtc1ZhbHVlPiB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihEaWFsb2dXaXphcmRHZW5lcmF0b3JDb21wb25lbnQsIGNvbmZpZyk7XG5cbiAgICAgICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgICB9XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { FORM_GENERATOR_CONFIG, FORM_GENERATOR_ITEM_CONFIG, PlatformFormGeneratorModule } from '@fundamental-ngx/platform/form';\nimport { DialogWizardGeneratorComponent } from './components/dialog-wizard-generator/dialog-wizard-generator.component';\nimport { WizardBodyComponent } from './components/wizard-body/wizard-body.component';\nimport { WizardGeneratorStepComponent } from './components/wizard-generator-step/wizard-generator-step.component';\nimport { WizardGeneratorComponent } from './components/wizard-generator/wizard-generator.component';\nimport { WizardSummarySectionComponent } from './components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component';\nimport { WizardSummaryStepComponent } from './components/wizard-summary-step/wizard-summary-step.component';\nimport { WizardGeneratorFinishButtonDirective } from './directives/wizard-generator-finish-button.directive';\nimport { WizardGeneratorGoNextButtonDirective } from './directives/wizard-generator-go-next-button.directive';\nimport { WizardGeneratorReviewButtonDirective } from './directives/wizard-generator-review-button.directive';\nimport { WizardGeneratorSummaryStepDirective } from './directives/wizard-generator-summary-step.directive';\nimport { WizardDialogGeneratorService } from './wizard-dialog-generator.service';\nimport * as i0 from \"@angular/core\";\n/**\n * Adds Wizard Generator functionality to your application.\n *\n * Can be imported in two ways:\n * * Plain PlatformWizardGeneratorModule with default configuration\n * * With `withConfig()` method which allows passing custom default configuration.\n */\nexport class PlatformWizardGeneratorModule {\n /**\n * Allows configuring module on a global level with custom configuration.\n * @param config User's custom configuration.\n */\n static withConfig(config) {\n return {\n ngModule: PlatformWizardGeneratorModule,\n providers: [\n {\n provide: FORM_GENERATOR_ITEM_CONFIG,\n useValue: config.itemConfig\n },\n {\n provide: FORM_GENERATOR_CONFIG,\n useValue: config.formConfig\n }\n ]\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformWizardGeneratorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformWizardGeneratorModule, imports: [PlatformFormGeneratorModule,\n WizardGeneratorComponent,\n WizardGeneratorStepComponent,\n WizardBodyComponent,\n DialogWizardGeneratorComponent,\n WizardSummaryStepComponent,\n WizardSummarySectionComponent,\n WizardGeneratorGoNextButtonDirective,\n WizardGeneratorFinishButtonDirective,\n WizardGeneratorSummaryStepDirective,\n WizardGeneratorReviewButtonDirective], exports: [WizardGeneratorComponent,\n WizardGeneratorStepComponent,\n WizardBodyComponent,\n DialogWizardGeneratorComponent,\n WizardSummaryStepComponent,\n WizardSummarySectionComponent,\n WizardGeneratorGoNextButtonDirective,\n WizardGeneratorFinishButtonDirective,\n WizardGeneratorSummaryStepDirective,\n WizardGeneratorReviewButtonDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformWizardGeneratorModule, providers: [WizardDialogGeneratorService], imports: [PlatformFormGeneratorModule,\n WizardGeneratorComponent,\n WizardGeneratorStepComponent,\n WizardBodyComponent,\n DialogWizardGeneratorComponent,\n WizardSummaryStepComponent,\n WizardSummarySectionComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformWizardGeneratorModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n PlatformFormGeneratorModule,\n WizardGeneratorComponent,\n WizardGeneratorStepComponent,\n WizardBodyComponent,\n DialogWizardGeneratorComponent,\n WizardSummaryStepComponent,\n WizardSummarySectionComponent,\n WizardGeneratorGoNextButtonDirective,\n WizardGeneratorFinishButtonDirective,\n WizardGeneratorSummaryStepDirective,\n WizardGeneratorReviewButtonDirective\n ],\n exports: [\n WizardGeneratorComponent,\n WizardGeneratorStepComponent,\n WizardBodyComponent,\n DialogWizardGeneratorComponent,\n WizardSummaryStepComponent,\n WizardSummarySectionComponent,\n WizardGeneratorGoNextButtonDirective,\n WizardGeneratorFinishButtonDirective,\n WizardGeneratorSummaryStepDirective,\n WizardGeneratorReviewButtonDirective\n ],\n providers: [WizardDialogGeneratorService]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3Ivd2l6YXJkLWdlbmVyYXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNILHFCQUFxQixFQUNyQiwwQkFBMEIsRUFFMUIsMkJBQTJCLEVBQzlCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDeEgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDbEgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEZBQTBGLENBQUM7QUFDekksT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDNUcsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDN0csT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDOUcsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDN0csT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDM0csT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRWpGOzs7Ozs7R0FNRztBQTZCSCxNQUFNLE9BQU8sNkJBQTZCO0lBQ3RDOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBMEM7UUFDeEQsT0FBTztZQUNILFFBQVEsRUFBRSw2QkFBNkI7WUFDdkMsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwwQkFBMEI7b0JBQ25DLFFBQVEsRUFBRSxNQUFNLENBQUMsVUFBVTtpQkFDOUI7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLHFCQUFxQjtvQkFDOUIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxVQUFVO2lCQUM5QjthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7OEdBbkJRLDZCQUE2QjsrR0FBN0IsNkJBQTZCLFlBMUJsQywyQkFBMkI7WUFDM0Isd0JBQXdCO1lBQ3hCLDRCQUE0QjtZQUM1QixtQkFBbUI7WUFDbkIsOEJBQThCO1lBQzlCLDBCQUEwQjtZQUMxQiw2QkFBNkI7WUFDN0Isb0NBQW9DO1lBQ3BDLG9DQUFvQztZQUNwQyxtQ0FBbUM7WUFDbkMsb0NBQW9DLGFBR3BDLHdCQUF3QjtZQUN4Qiw0QkFBNEI7WUFDNUIsbUJBQW1CO1lBQ25CLDhCQUE4QjtZQUM5QiwwQkFBMEI7WUFDMUIsNkJBQTZCO1lBQzdCLG9DQUFvQztZQUNwQyxvQ0FBb0M7WUFDcEMsbUNBQW1DO1lBQ25DLG9DQUFvQzsrR0FJL0IsNkJBQTZCLGFBRjNCLENBQUMsNEJBQTRCLENBQUMsWUF4QnJDLDJCQUEyQjtZQUMzQix3QkFBd0I7WUFDeEIsNEJBQTRCO1lBQzVCLG1CQUFtQjtZQUNuQiw4QkFBOEI7WUFDOUIsMEJBQTBCO1lBQzFCLDZCQUE2Qjs7MkZBb0J4Qiw2QkFBNkI7a0JBNUJ6QyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCwyQkFBMkI7d0JBQzNCLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QixtQkFBbUI7d0JBQ25CLDhCQUE4Qjt3QkFDOUIsMEJBQTBCO3dCQUMxQiw2QkFBNkI7d0JBQzdCLG9DQUFvQzt3QkFDcEMsb0NBQW9DO3dCQUNwQyxtQ0FBbUM7d0JBQ25DLG9DQUFvQztxQkFDdkM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QixtQkFBbUI7d0JBQ25CLDhCQUE4Qjt3QkFDOUIsMEJBQTBCO3dCQUMxQiw2QkFBNkI7d0JBQzdCLG9DQUFvQzt3QkFDcEMsb0NBQW9DO3dCQUNwQyxtQ0FBbUM7d0JBQ25DLG9DQUFvQztxQkFDdkM7b0JBQ0QsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRk9STV9HRU5FUkFUT1JfQ09ORklHLFxuICAgIEZPUk1fR0VORVJBVE9SX0lURU1fQ09ORklHLFxuICAgIEZvcm1HZW5lcmF0b3JNb2R1bGVDb25maWcsXG4gICAgUGxhdGZvcm1Gb3JtR2VuZXJhdG9yTW9kdWxlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vZm9ybSc7XG5pbXBvcnQgeyBEaWFsb2dXaXphcmRHZW5lcmF0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFdpemFyZEJvZHlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd2l6YXJkLWJvZHkvd2l6YXJkLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclN0ZXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd2l6YXJkLWdlbmVyYXRvci1zdGVwL3dpemFyZC1nZW5lcmF0b3Itc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3dpemFyZC1nZW5lcmF0b3Ivd2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkU3VtbWFyeVNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd2l6YXJkLXN1bW1hcnktc3RlcC93aXphcmQtc3VtbWFyeS1zZWN0aW9uL3dpemFyZC1zdW1tYXJ5LXNlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFdpemFyZFN1bW1hcnlTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3dpemFyZC1zdW1tYXJ5LXN0ZXAvd2l6YXJkLXN1bW1hcnktc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yRmluaXNoQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3ItZmluaXNoLWJ1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yR29OZXh0QnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3ItZ28tbmV4dC1idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclJldmlld0J1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy93aXphcmQtZ2VuZXJhdG9yLXJldmlldy1idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclN1bW1hcnlTdGVwRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3Itc3VtbWFyeS1zdGVwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXaXphcmREaWFsb2dHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi93aXphcmQtZGlhbG9nLWdlbmVyYXRvci5zZXJ2aWNlJztcblxuLyoqXG4gKiBBZGRzIFdpemFyZCBHZW5lcmF0b3IgZnVuY3Rpb25hbGl0eSB0byB5b3VyIGFwcGxpY2F0aW9uLlxuICpcbiAqIENhbiBiZSBpbXBvcnRlZCBpbiB0d28gd2F5czpcbiAqICogUGxhaW4gUGxhdGZvcm1XaXphcmRHZW5lcmF0b3JNb2R1bGUgd2l0aCBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAqICogV2l0aCBgd2l0aENvbmZpZygpYCBtZXRob2Qgd2hpY2ggYWxsb3dzIHBhc3NpbmcgY3VzdG9tIGRlZmF1bHQgY29uZmlndXJhdGlvbi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFBsYXRmb3JtRm9ybUdlbmVyYXRvck1vZHVsZSxcbiAgICAgICAgV2l6YXJkR2VuZXJhdG9yQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JTdGVwQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRCb2R5Q29tcG9uZW50LFxuICAgICAgICBEaWFsb2dXaXphcmRHZW5lcmF0b3JDb21wb25lbnQsXG4gICAgICAgIFdpemFyZFN1bW1hcnlTdGVwQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRTdW1tYXJ5U2VjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgV2l6YXJkR2VuZXJhdG9yR29OZXh0QnV0dG9uRGlyZWN0aXZlLFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JGaW5pc2hCdXR0b25EaXJlY3RpdmUsXG4gICAgICAgIFdpemFyZEdlbmVyYXRvclN1bW1hcnlTdGVwRGlyZWN0aXZlLFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JSZXZpZXdCdXR0b25EaXJlY3RpdmVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgV2l6YXJkR2VuZXJhdG9yQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JTdGVwQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRCb2R5Q29tcG9uZW50LFxuICAgICAgICBEaWFsb2dXaXphcmRHZW5lcmF0b3JDb21wb25lbnQsXG4gICAgICAgIFdpemFyZFN1bW1hcnlTdGVwQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRTdW1tYXJ5U2VjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgV2l6YXJkR2VuZXJhdG9yR29OZXh0QnV0dG9uRGlyZWN0aXZlLFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JGaW5pc2hCdXR0b25EaXJlY3RpdmUsXG4gICAgICAgIFdpemFyZEdlbmVyYXRvclN1bW1hcnlTdGVwRGlyZWN0aXZlLFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JSZXZpZXdCdXR0b25EaXJlY3RpdmVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1dpemFyZERpYWxvZ0dlbmVyYXRvclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtV2l6YXJkR2VuZXJhdG9yTW9kdWxlIHtcbiAgICAvKipcbiAgICAgKiBBbGxvd3MgY29uZmlndXJpbmcgbW9kdWxlIG9uIGEgZ2xvYmFsIGxldmVsIHdpdGggY3VzdG9tIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQHBhcmFtIGNvbmZpZyBVc2VyJ3MgY3VzdG9tIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc3RhdGljIHdpdGhDb25maWcoY29uZmlnOiBQYXJ0aWFsPEZvcm1HZW5lcmF0b3JNb2R1bGVDb25maWc+KTogTW9kdWxlV2l0aFByb3ZpZGVyczxQbGF0Zm9ybVdpemFyZEdlbmVyYXRvck1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IFBsYXRmb3JtV2l6YXJkR2VuZXJhdG9yTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBGT1JNX0dFTkVSQVRPUl9JVEVNX0NPTkZJRyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZy5pdGVtQ29uZmlnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEZPUk1fR0VORVJBVE9SX0NPTkZJRyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZy5mb3JtQ29uZmlnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LXBsYXRmb3JtLXdpemFyZC1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3IvZnVuZGFtZW50YWwtbmd4LXBsYXRmb3JtLXdpemFyZC1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["i1","isFunction","i1.WizardGeneratorService","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-platform-wizard-generator.mjs","sources":["../tmp-esm2022/wizard-generator/wizard-generator.service.js","../tmp-esm2022/wizard-generator/base-wizard-generator.js","../tmp-esm2022/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.js","../tmp-esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.js","../tmp-esm2022/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.js","../tmp-esm2022/wizard-generator/components/wizard-body/wizard-body.component.js","../tmp-esm2022/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.js","../tmp-esm2022/wizard-generator/directives/wizard-generator-finish-button.directive.js","../tmp-esm2022/wizard-generator/directives/wizard-generator-go-next-button.directive.js","../tmp-esm2022/wizard-generator/directives/wizard-generator-review-button.directive.js","../tmp-esm2022/wizard-generator/directives/wizard-generator-summary-step.directive.js","../tmp-esm2022/wizard-generator/components/wizard-generator/wizard-generator.component.js","../tmp-esm2022/wizard-generator/wizard-dialog-generator.service.js","../tmp-esm2022/wizard-generator/wizard-generator.module.js","../tmp-esm2022/wizard-generator/fundamental-ngx-platform-wizard-generator.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { concat, mergeWith, uniq } from '@fundamental-ngx/cdk/utils';\nimport { BehaviorSubject, Subject, of } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\nimport { isFunction, selectStrategy } from '@fundamental-ngx/cdk/utils';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/platform/form\";\nexport var WizardGeneratorRefreshStrategy;\n(function (WizardGeneratorRefreshStrategy) {\n WizardGeneratorRefreshStrategy[\"REFRESH_STEP_VISIBILITY\"] = \"refreshStepVisibility\";\n WizardGeneratorRefreshStrategy[\"REVALIDATE_STEP_FORMS\"] = \"revalidateStepForms\";\n WizardGeneratorRefreshStrategy[\"REFRESH_FORM_VISIBILITY\"] = \"refreshFormVisibility\";\n})(WizardGeneratorRefreshStrategy || (WizardGeneratorRefreshStrategy = {}));\n/**\n * @description Helper service to keep all transformations and data in one place.\n */\nexport class WizardGeneratorService {\n /** @hidden */\n constructor(_formGeneratorService) {\n this._formGeneratorService = _formGeneratorService;\n /**\n * @description Visible steps components\n */\n this.stepsComponents = new Map();\n /**\n * @description Object with steps that are dependencies for another steps.\n */\n this.dependencySteps = {};\n /**\n * @description Whether to append the step to the wizard. If false, each step will be displayed on a different page.\n * Default is true.\n */\n this.appendToWizard = true;\n /** @hidden */\n this._shouldRedirectToSummary = false;\n /**\n * @description Steps that are visible to the user.\n */\n this.visibleWizardSteps = [];\n /** @hidden */\n this._visibleWizardSteps$ = new Subject();\n /** @hidden */\n this._appendToWizard$ = new BehaviorSubject(this.appendToWizard);\n /** @hidden */\n this._stepsComponents$ = new Subject();\n /** @hidden */\n this._stepsOrderChanged$ = new Subject();\n /** @hidden */\n this._nextStepIndex$ = new BehaviorSubject(1);\n /** @hidden */\n this._submittedFormRawValues = {};\n /** @hidden */\n this._wizardStepIds = [];\n }\n /**\n * @description Returns current step ID in Wizard.\n * @returns {string | undefined} Current step ID.\n */\n getCurrentStepId() {\n const currentStepId = this.visibleWizardSteps?.find((i) => i.status === 'current');\n return currentStepId?.id;\n }\n /**\n * @description Returns current step index.\n * @returns {number} Index of the current step in array of Wizard steps.\n */\n getCurrentStepIndex() {\n const currentStepId = this.getCurrentStepId();\n return this.getStepIndex(currentStepId);\n }\n /**\n * Searches for the index of the step based on it's ID\n * @param stepId Step ID\n * @returns Index in the array of steps for defined step ID.\n */\n getStepIndex(stepId) {\n const stepIndex = this.visibleWizardSteps?.findIndex((i) => i.id === stepId);\n return stepIndex > -1 ? stepIndex : 0;\n }\n /**\n * @description Sends command to submit all forms inside the step.\n * @param stepId Step ID for which forms need's to be submitted.\n * @param skipIfUntouched Skip validation if form haven't been touched.\n * @returns {Observable<WizardStepSubmittedForms>} Observable, which will emit\n * when all visible forms in step are submitted.\n */\n submitStepForms(stepId, skipIfUntouched = false) {\n if (!stepId) {\n return of(null);\n }\n const step = this.stepsComponents.get(stepId);\n if (!step) {\n return of(null);\n }\n return step.submitForms(skipIfUntouched).pipe(take(1), map((result) => {\n if (result) {\n this._submittedFormRawValues[stepId] = result;\n }\n return result;\n }));\n }\n /**\n * @description Triggers validation for current step forms.\n * @returns {Observable<boolean>} Observable with validation result.\n */\n validateStepForms(skipIfUntouched = false) {\n const currentStepId = this.getCurrentStepId();\n if (!currentStepId) {\n return of(true);\n }\n return this.submitStepForms(currentStepId, skipIfUntouched).pipe(map((result) => result === null || Object.values(result).every((r) => r.success)));\n }\n /**\n * @description Sets new array of visible steps for Wizard.\n * @param steps steps that needs to be shown in Wizard.\n */\n setVisibleSteps(steps) {\n this.visibleWizardSteps = steps;\n this._visibleWizardSteps$.next(steps);\n this.setWizardStepIds(steps.map((s) => s.id));\n }\n /**\n * @returns {Observable<PreparedWizardGeneratorItem[]>} Observable, which will emit every time\n * when array of visible step items has been changed.\n */\n getVisibleSteps() {\n return this._visibleWizardSteps$.asObservable();\n }\n /**\n * @description Runs initial transformation for passed Wizard steps.\n * @param items All Wizard steps.\n * @returns {Promise<PreparedWizardGeneratorItem[]>} Array of transformed Wizard steps.\n */\n async prepareWizardItems(items) {\n let newItems = await Promise.all(items.map(async (i, index) => {\n const item = { ...i };\n item.status = item.status || 'upcoming';\n item.title = await this._getFormItemPropertyValue(item, index, 'title');\n item.name = await this._getFormItemPropertyValue(item, index, 'name');\n return item;\n }));\n // Summary step must be the last one in array\n const summaryStepIndex = newItems.findIndex((i) => i.summary === true);\n if (summaryStepIndex !== -1 && summaryStepIndex !== newItems.length - 1) {\n newItems.splice(newItems.length - 1, 0, newItems.splice(summaryStepIndex, 1)[0]);\n }\n // If no current step found, set first as current.\n if (newItems.findIndex((i) => i.status === 'current') === -1) {\n newItems[0].status = 'current';\n }\n newItems = this._setBranchingSteps(newItems);\n this._buildDependencyMap(newItems);\n this.items = newItems;\n await this.refreshStepVisibility();\n return newItems;\n }\n /**\n * @description Runs conditional function for each step to define if step should be shown.\n */\n async refreshStepVisibility() {\n const formValue = await this.getWizardFormValue();\n const visibleStepIds = {};\n for (const item of this.items) {\n if (!isFunction(item.when)) {\n visibleStepIds[item.id] = true;\n continue;\n }\n const obj = item.when(this._getCompletedStepIds(), formValue, this._formGeneratorService.forms);\n visibleStepIds[item.id] = await this._getFunctionValue(obj);\n }\n this.setVisibleSteps(this.items.filter((item) => visibleStepIds[item.id] === true));\n }\n /**\n * Checks whether current form group should be visible.\n * @param formGroup Form Group.\n */\n async refreshFormVisibility(formGroup) {\n const formValue = await this.getWizardFormValue();\n const obj = formGroup.when?.(this._getCompletedStepIds(), formValue, this._formGeneratorService.forms) ?? true;\n return await this._getFunctionValue(obj);\n }\n /**\n * @description Clears array of Wizard steps components.\n */\n clearWizardStepComponents() {\n this.stepsComponents.clear();\n this._stepsComponents$.next(this.stepsComponents);\n }\n /**\n * @returns {Observable<StepsComponents>} Observable, which will emit every time\n * when Set visible steps components has been changed.\n */\n trackStepsComponents() {\n return this._stepsComponents$.asObservable();\n }\n /**\n * @description Adds new component to the set of Wizard steps components.\n * @param component Wizard Step component to add.\n * @param key Wizard Step ID.\n */\n addWizardStepComponent(component, key) {\n this.stepsComponents.set(key, component);\n this._stepsComponents$.next(this.stepsComponents);\n }\n /**\n * @description Removes Component from the set of Wizard steps components.\n * @param key\n */\n removeWizardStepComponent(key) {\n this.stepsComponents.delete(key);\n this._stepsComponents$.next(this.stepsComponents);\n }\n /**\n * @param step Step ID which includes dependency fields.\n * @returns Object with forms and their fields that are dependencies for other steps.\n */\n getStepDependencyFields(step) {\n return this.dependencySteps[step];\n }\n /**\n * Notifies step components to revalidate inner forms.\n * @param stepIds Step ID's which needs to be revalidated.\n */\n notifyStepsToRevalidateForms(stepIds) {\n stepIds.forEach((stepId) => this.stepsComponents.get(stepId)?.updateFormsState());\n }\n /**\n * Notifies step components to refresh form groups visibility.\n * @param stepIds Step ID's which needs to be checked.\n */\n async refreshFormsVisibility(stepIds) {\n for (const stepId of stepIds) {\n await this.stepsComponents.get(stepId)?.refreshFormsVisibility();\n }\n }\n /**\n * @param formatted Flag defining whether form value should be formatted by form control\n * transformers, or return raw value\n * @returns {WizardGeneratorFormsValue} Wizard form value\n */\n async getWizardFormValue(formatted = false) {\n const wizardFormValue = {};\n if (!this.visibleWizardSteps) {\n return wizardFormValue;\n }\n for (const item of this.visibleWizardSteps.filter((s) => !s.summary)) {\n wizardFormValue[item.id] = {};\n const component = this.stepsComponents.get(item.id);\n if (!component) {\n continue;\n }\n const forms = component.getVisibleForms();\n for (const form of item?.formGroups ?? []) {\n if (!forms[form.id]) {\n continue;\n }\n wizardFormValue[item.id][form.id] = formatted\n ? await this._formGeneratorService.getFormValue(forms[form.id]?.form)\n : this._formGeneratorService._getFormValueWithoutUngrouped(structuredClone(forms[form.id]?.form.value));\n }\n }\n return wizardFormValue;\n }\n /**\n *\n * @param stepId Step ID to check.\n * @returns {Boolean} indicator if step was previously validated and submitted.\n */\n stepSubmitted(stepId) {\n return this._submittedFormRawValues[stepId] !== undefined;\n }\n /**\n *\n * @returns {Boolean} if steps are untouched, will return true, if yes - false\n */\n isStepsUntouched() {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return [...this.stepsComponents].every(([_, component]) => component.formGenerators.toArray().every((item) => !item.form.touched));\n }\n /**\n * Reverts wizard to defined step.\n * @param stepId Step ID to edit\n */\n editStep(stepId) {\n const stepIndex = this.visibleWizardSteps.findIndex((s) => s.id === stepId);\n this.visibleWizardSteps = this.visibleWizardSteps.map((step, index) => {\n step.status = index === stepIndex ? 'current' : index < stepIndex ? 'completed' : 'upcoming';\n return step;\n });\n const summaryStepIndex = this.visibleWizardSteps.findIndex((s) => s.summary);\n this._shouldRedirectToSummary = true;\n this._appendToWizard$.next(false);\n this.setVisibleSteps(this.visibleWizardSteps);\n this.setNextStepIndex(summaryStepIndex);\n }\n /**\n * Set's current set of step ID's\n * @param ids step ID's\n */\n setWizardStepIds(ids) {\n if (!this._wizardStepIds.every((stepId, index) => ids[index] === stepId)) {\n const firstChangedStepIndex = this._wizardStepIds.findIndex((stepId, index) => ids[index] !== stepId);\n this._nextStepIndex$.next(firstChangedStepIndex);\n this._stepsOrderChanged$.next(firstChangedStepIndex);\n }\n this._wizardStepIds = ids;\n }\n /**\n * Set next step index.\n * @param index Next step index.\n */\n setNextStepIndex(index) {\n this._nextStepIndex$.next(index);\n }\n /**\n * Returns observable of next step index which emits when index is changed.\n */\n trackNextStepIndex() {\n return this._nextStepIndex$.asObservable();\n }\n /**\n * Returns observable which emits when steps order has been changed.\n */\n trackStepsOrder() {\n return this._stepsOrderChanged$.asObservable();\n }\n /**\n * Stores original 'appendToWizard' input property.\n * @param value\n */\n setOriginalAppendToWizardState(value) {\n this.appendToWizard = value;\n this._appendToWizard$.next(this.appendToWizard);\n }\n /**\n * Resets modified 'appendToWizard' property to original one.\n */\n restoreAppendToWizardState() {\n this._appendToWizard$.next(this.appendToWizard);\n }\n /**\n * Returns observable which emits when 'appendToWizard' property has been changed.\n */\n trackAppendToWizardState() {\n return this._appendToWizard$.asObservable();\n }\n /**\n * @hidden\n * @param items\n * @param index\n * @param key\n * @returns\n */\n async _getFormItemPropertyValue(items, index, key) {\n let value = items[key];\n if (typeof value === 'function') {\n const obj = value(index);\n value = await this._getFunctionValue(obj);\n }\n return value;\n }\n /**\n * @hidden\n * @description Returns value from Promise-like, Observable-like, simple function or just some object.\n * @param obj\n * @returns\n */\n async _getFunctionValue(obj) {\n const strategy = selectStrategy(obj);\n let result;\n await strategy.createSubscription(obj, (value) => {\n result = value;\n });\n if (isFunction(result)) {\n await this._getFunctionValue(result);\n }\n return result;\n }\n /**\n * @hidden\n * @description Sets `branching` property for the steps that will create new branches.\n * @param items\n * @returns\n */\n _setBranchingSteps(items) {\n const branchingItems = items\n .filter((i) => i.dependencyFields)\n .reduce((stepIds, item) => {\n if (item.dependencyFields) {\n stepIds = [...stepIds, ...Object.keys(item.dependencyFields)];\n }\n return stepIds;\n }, []);\n if (branchingItems.length > 0) {\n items = items.map((item) => {\n item.branching = item.branching || branchingItems.includes(item.id);\n return item;\n });\n }\n return items;\n }\n /** @hidden */\n _normalizeDependencyStep(dependency, strategy, dependentStep) {\n const newDependency = {};\n Object.entries(dependency).forEach(([key, value]) => {\n newDependency[key] = {};\n value.forEach((v) => {\n newDependency[key][v] = {\n [strategy]: dependentStep ? [dependentStep] : []\n };\n });\n });\n return newDependency;\n }\n /** @hidden */\n _buildDependencyMap(items) {\n this.dependencySteps = {};\n const mergeArrays = (objValue, srcValue) => {\n if (Array.isArray(objValue) && !objValue.includes(srcValue)) {\n return uniq(objValue.concat(srcValue));\n }\n };\n const buildDependencySteps = (dependencyFields, strategy, stepId) => {\n for (const [id, forms] of Object.entries(dependencyFields)) {\n this.dependencySteps[id] = mergeWith(this.dependencySteps[id] || {}, this._normalizeDependencyStep(forms, strategy, stepId), mergeArrays);\n }\n };\n items\n .filter((s) => s.formGroups?.length)\n .forEach((step) => {\n if (step.dependencyFields) {\n buildDependencySteps(step.dependencyFields, WizardGeneratorRefreshStrategy.REFRESH_STEP_VISIBILITY);\n }\n const dependentForms = step.formGroups?.filter((form) => form.dependencyFields);\n dependentForms?.forEach((form) => {\n buildDependencySteps(form.dependencyFields, WizardGeneratorRefreshStrategy.REFRESH_FORM_VISIBILITY, step.id);\n });\n const stepFields = concat(...[...(step.formGroups ?? [])].map((item) => item.formItems.filter((f) => f.dependencyFields)));\n stepFields.forEach((formItem) => {\n buildDependencySteps(formItem.dependencyFields, WizardGeneratorRefreshStrategy.REVALIDATE_STEP_FORMS, step.id);\n });\n });\n }\n /** @hidden */\n _getCompletedStepIds() {\n return this.items.filter((i) => i.status === 'completed').map((i) => i.id);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorService, deps: [{ token: i1.FormGeneratorService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.FormGeneratorService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL3dpemFyZC1nZW5lcmF0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JFLE9BQU8sRUFBRSxlQUFlLEVBQWMsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7OztBQWF0RSxNQUFNLENBQU4sSUFBWSw4QkFJWDtBQUpELFdBQVksOEJBQThCO0lBQ3RDLG1GQUFpRCxDQUFBO0lBQ2pELCtFQUE2QyxDQUFBO0lBQzdDLG1GQUFpRCxDQUFBO0FBQ3JELENBQUMsRUFKVyw4QkFBOEIsS0FBOUIsOEJBQThCLFFBSXpDO0FBaUJEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHNCQUFzQjtJQWlEL0IsY0FBYztJQUNkLFlBQW9CLHFCQUEyQztRQUEzQywwQkFBcUIsR0FBckIscUJBQXFCLENBQXNCO1FBOUMvRDs7V0FFRztRQUNILG9CQUFlLEdBQW9CLElBQUksR0FBRyxFQUFFLENBQUM7UUFFN0M7O1dBRUc7UUFDSCxvQkFBZSxHQUF5QixFQUFFLENBQUM7UUFFM0M7OztXQUdHO1FBQ0gsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFFdEIsY0FBYztRQUNkLDZCQUF3QixHQUFHLEtBQUssQ0FBQztRQUVq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LElBQUksQ0FBQyxFQUFFLENBQ1YsQ0FBQztZQUNOLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsY0FBYztJQUNOLG9CQUFvQjtRQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLFdBQVcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7OEdBNWpCUSxzQkFBc0I7a0hBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFEbEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGNvbmNhdCwgbWVyZ2VXaXRoLCB1bmlxIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBzZWxlY3RTdHJhdGVneSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvckZvcm1Hcm91cCwgV2l6YXJkR2VuZXJhdG9yRm9ybUl0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMvd2l6YXJkLWdlbmVyYXRvci1mb3JtLWdyb3VwLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICAgIFdpemFyZEdlbmVyYXRvckRlcGVuZGVuY3lGaWVsZHMsXG4gICAgV2l6YXJkR2VuZXJhdG9yRm9ybXNWYWx1ZSxcbiAgICBXaXphcmRTdGVwU3VibWl0dGVkRm9ybXMsXG4gICAgV2l6YXJkVmlzaWJsZVN0ZXBzXG59IGZyb20gJy4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWZvcm1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW0sIFdpemFyZEdlbmVyYXRvckl0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMvd2l6YXJkLWdlbmVyYXRvci1pdGVtLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JTdGVwIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3dpemFyZC1zdGVwLmludGVyZmFjZSc7XG5cbmV4cG9ydCB0eXBlIFN0ZXBzQ29tcG9uZW50cyA9IE1hcDxzdHJpbmcsIFdpemFyZEdlbmVyYXRvclN0ZXA+O1xuXG5leHBvcnQgZW51bSBXaXphcmRHZW5lcmF0b3JSZWZyZXNoU3RyYXRlZ3kge1xuICAgIFJFRlJFU0hfU1RFUF9WSVNJQklMSVRZID0gJ3JlZnJlc2hTdGVwVmlzaWJpbGl0eScsXG4gICAgUkVWQUxJREFURV9TVEVQX0ZPUk1TID0gJ3JldmFsaWRhdGVTdGVwRm9ybXMnLFxuICAgIFJFRlJFU0hfRk9STV9WSVNJQklMSVRZID0gJ3JlZnJlc2hGb3JtVmlzaWJpbGl0eSdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXBlbmRlbmN5U3RlcHMge1xuICAgIC8qKiBTdGVwIElEICovXG4gICAgW2tleTogc3RyaW5nXToge1xuICAgICAgICAvKiogRm9ybSBJRCB3aXRoIGFycmF5IG9mIGZvcm0gY29udHJvbCBpZCdzICovXG4gICAgICAgIFtrZXk6IHN0cmluZ106IHtcbiAgICAgICAgICAgIFtrZXkgaW4gV2l6YXJkR2VuZXJhdG9yUmVmcmVzaFN0cmF0ZWd5XT86IHN0cmluZ1tdO1xuICAgICAgICB9O1xuICAgIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcERlcGVuZGVuY3lGaWVsZHMge1xuICAgIC8qKiBEZXBlbmRlbnQgc3RlcCAqL1xuICAgIFtrZXk6IHN0cmluZ106IERlcGVuZGVuY3lTdGVwcztcbn1cblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gSGVscGVyIHNlcnZpY2UgdG8ga2VlcCBhbGwgdHJhbnNmb3JtYXRpb25zIGFuZCBkYXRhIGluIG9uZSBwbGFjZS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdpemFyZEdlbmVyYXRvclNlcnZpY2Uge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgaXRlbXM6IFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbVtdO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFZpc2libGUgc3RlcHMgY29tcG9uZW50c1xuICAgICAqL1xuICAgIHN0ZXBzQ29tcG9uZW50czogU3RlcHNDb21wb25lbnRzID0gbmV3IE1hcCgpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIE9iamVjdCB3aXRoIHN0ZXBzIHRoYXQgYXJlIGRlcGVuZGVuY2llcyBmb3IgYW5vdGhlciBzdGVwcy5cbiAgICAgKi9cbiAgICBkZXBlbmRlbmN5U3RlcHM6IFN0ZXBEZXBlbmRlbmN5RmllbGRzID0ge307XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciB0byBhcHBlbmQgdGhlIHN0ZXAgdG8gdGhlIHdpemFyZC4gSWYgZmFsc2UsIGVhY2ggc3RlcCB3aWxsIGJlIGRpc3BsYXllZCBvbiBhIGRpZmZlcmVudCBwYWdlLlxuICAgICAqIERlZmF1bHQgaXMgdHJ1ZS5cbiAgICAgKi9cbiAgICBhcHBlbmRUb1dpemFyZCA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIF9zaG91bGRSZWRpcmVjdFRvU3VtbWFyeSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFN0ZXBzIHRoYXQgYXJlIHZpc2libGUgdG8gdGhlIHVzZXIuXG4gICAgICovXG4gICAgcHVibGljIHZpc2libGVXaXphcmRTdGVwczogUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmlzaWJsZVdpemFyZFN0ZXBzJCA9IG5ldyBTdWJqZWN0PFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbVtdPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9hcHBlbmRUb1dpemFyZCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHRoaXMuYXBwZW5kVG9XaXphcmQpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdGVwc0NvbXBvbmVudHMkID0gbmV3IFN1YmplY3Q8U3RlcHNDb21wb25lbnRzPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdGVwc09yZGVyQ2hhbmdlZCQgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX25leHRTdGVwSW5kZXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDEpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdWJtaXR0ZWRGb3JtUmF3VmFsdWVzOiBXaXphcmRHZW5lcmF0b3JGb3Jtc1ZhbHVlID0ge307XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3dpemFyZFN0ZXBJZHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Zvcm1HZW5lcmF0b3JTZXJ2aWNlOiBGb3JtR2VuZXJhdG9yU2VydmljZSkge31cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZXR1cm5zIGN1cnJlbnQgc3RlcCBJRCBpbiBXaXphcmQuXG4gICAgICogQHJldHVybnMge3N0cmluZyB8IHVuZGVmaW5lZH0gQ3VycmVudCBzdGVwIElELlxuICAgICAqL1xuICAgIGdldEN1cnJlbnRTdGVwSWQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXBJZCA9IHRoaXMudmlzaWJsZVdpemFyZFN0ZXBzPy5maW5kKChpKSA9PiBpLnN0YXR1cyA9PT0gJ2N1cnJlbnQnKTtcblxuICAgICAgICByZXR1cm4gY3VycmVudFN0ZXBJZD8uaWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJldHVybnMgY3VycmVudCBzdGVwIGluZGV4LlxuICAgICAqIEByZXR1cm5zIHtudW1iZXJ9IEluZGV4IG9mIHRoZSBjdXJyZW50IHN0ZXAgaW4gYXJyYXkgb2YgV2l6YXJkIHN0ZXBzLlxuICAgICAqL1xuICAgIGdldEN1cnJlbnRTdGVwSW5kZXgoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXBJZCA9IHRoaXMuZ2V0Q3VycmVudFN0ZXBJZCgpO1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRTdGVwSW5kZXgoY3VycmVudFN0ZXBJZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2VhcmNoZXMgZm9yIHRoZSBpbmRleCBvZiB0aGUgc3RlcCBiYXNlZCBvbiBpdCdzIElEXG4gICAgICogQHBhcmFtIHN0ZXBJZCBTdGVwIElEXG4gICAgICogQHJldHVybnMgSW5kZXggaW4gdGhlIGFycmF5IG9mIHN0ZXBzIGZvciBkZWZpbmVkIHN0ZXAgSUQuXG4gICAgICovXG4gICAgZ2V0U3RlcEluZGV4KHN0ZXBJZD86IHN0cmluZyk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHN0ZXBJbmRleCA9IHRoaXMudmlzaWJsZVdpemFyZFN0ZXBzPy5maW5kSW5kZXgoKGkpID0+IGkuaWQgPT09IHN0ZXBJZCk7XG4gICAgICAgIHJldHVybiBzdGVwSW5kZXggPiAtMSA/IHN0ZXBJbmRleCA6IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFNlbmRzIGNvbW1hbmQgdG8gc3VibWl0IGFsbCBmb3JtcyBpbnNpZGUgdGhlIHN0ZXAuXG4gICAgICogQHBhcmFtIHN0ZXBJZCBTdGVwIElEIGZvciB3aGljaCBmb3JtcyBuZWVkJ3MgdG8gYmUgc3VibWl0dGVkLlxuICAgICAqIEBwYXJhbSBza2lwSWZVbnRvdWNoZWQgU2tpcCB2YWxpZGF0aW9uIGlmIGZvcm0gaGF2ZW4ndCBiZWVuIHRvdWNoZWQuXG4gICAgICogQHJldHVybnMge09ic2VydmFibGU8V2l6YXJkU3RlcFN1Ym1pdHRlZEZvcm1zPn0gT2JzZXJ2YWJsZSwgd2hpY2ggd2lsbCBlbWl0XG4gICAgICogd2hlbiBhbGwgdmlzaWJsZSBmb3JtcyBpbiBzdGVwIGFyZSBzdWJtaXR0ZWQuXG4gICAgICovXG4gICAgc3VibWl0U3RlcEZvcm1zKHN0ZXBJZD86IHN0cmluZywgc2tpcElmVW50b3VjaGVkID0gZmFsc2UpOiBPYnNlcnZhYmxlPFdpemFyZFN0ZXBTdWJtaXR0ZWRGb3JtcyB8IG51bGw+IHtcbiAgICAgICAgaWYgKCFzdGVwSWQpIHtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0ZXAgPSB0aGlzLnN0ZXBzQ29tcG9uZW50cy5nZXQoc3RlcElkKTtcblxuICAgICAgICBpZiAoIXN0ZXApIHtcbiAgICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBzdGVwLnN1Ym1pdEZvcm1zKHNraXBJZlVudG91Y2hlZCkucGlwZShcbiAgICAgICAgICAgIHRha2UoMSksXG4gICAgICAgICAgICBtYXAoKHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fc3VibWl0dGVkRm9ybVJhd1ZhbHVlc1tzdGVwSWRdID0gcmVzdWx0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gVHJpZ2dlcnMgdmFsaWRhdGlvbiBmb3IgY3VycmVudCBzdGVwIGZvcm1zLlxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPGJvb2xlYW4+fSBPYnNlcnZhYmxlIHdpdGggdmFsaWRhdGlvbiByZXN1bHQuXG4gICAgICovXG4gICAgdmFsaWRhdGVTdGVwRm9ybXMoc2tpcElmVW50b3VjaGVkID0gZmFsc2UpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgY3VycmVudFN0ZXBJZCA9IHRoaXMuZ2V0Q3VycmVudFN0ZXBJZCgpO1xuXG4gICAgICAgIGlmICghY3VycmVudFN0ZXBJZCkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3VibWl0U3RlcEZvcm1zKGN1cnJlbnRTdGVwSWQsIHNraXBJZlVudG91Y2hlZCkucGlwZShcbiAgICAgICAgICAgIG1hcCgocmVzdWx0KSA9PiByZXN1bHQgPT09IG51bGwgfHwgT2JqZWN0LnZhbHVlcyhyZXN1bHQpLmV2ZXJ5KChyKSA9PiByLnN1Y2Nlc3MpKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTZXRzIG5ldyBhcnJheSBvZiB2aXNpYmxlIHN0ZXBzIGZvciBXaXphcmQuXG4gICAgICogQHBhcmFtIHN0ZXBzIHN0ZXBzIHRoYXQgbmVlZHMgdG8gYmUgc2hvd24gaW4gV2l6YXJkLlxuICAgICAqL1xuICAgIHNldFZpc2libGVTdGVwcyhzdGVwczogUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy52aXNpYmxlV2l6YXJkU3RlcHMgPSBzdGVwcztcbiAgICAgICAgdGhpcy5fdmlzaWJsZVdpemFyZFN0ZXBzJC5uZXh0KHN0ZXBzKTtcblxuICAgICAgICB0aGlzLnNldFdpemFyZFN0ZXBJZHMoc3RlcHMubWFwKChzKSA9PiBzLmlkKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMge09ic2VydmFibGU8UHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10+fSBPYnNlcnZhYmxlLCB3aGljaCB3aWxsIGVtaXQgZXZlcnkgdGltZVxuICAgICAqIHdoZW4gYXJyYXkgb2YgdmlzaWJsZSBzdGVwIGl0ZW1zIGhhcyBiZWVuIGNoYW5nZWQuXG4gICAgICovXG4gICAgZ2V0VmlzaWJsZVN0ZXBzKCk6IE9ic2VydmFibGU8UHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVXaXphcmRTdGVwcyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJ1bnMgaW5pdGlhbCB0cmFuc2Zvcm1hdGlvbiBmb3IgcGFzc2VkIFdpemFyZCBzdGVwcy5cbiAgICAgKiBAcGFyYW0gaXRlbXMgQWxsIFdpemFyZCBzdGVwcy5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXT59IEFycmF5IG9mIHRyYW5zZm9ybWVkIFdpemFyZCBzdGVwcy5cbiAgICAgKi9cbiAgICBhc3luYyBwcmVwYXJlV2l6YXJkSXRlbXMoaXRlbXM6IFdpemFyZEdlbmVyYXRvckl0ZW1bXSk6IFByb21pc2U8UHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10+IHtcbiAgICAgICAgbGV0IG5ld0l0ZW1zOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSA9IGF3YWl0IFByb21pc2UuYWxsKFxuICAgICAgICAgICAgaXRlbXMubWFwKGFzeW5jIChpLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB7IC4uLmkgfTtcbiAgICAgICAgICAgICAgICBpdGVtLnN0YXR1cyA9IGl0ZW0uc3RhdHVzIHx8ICd1cGNvbWluZyc7XG4gICAgICAgICAgICAgICAgaXRlbS50aXRsZSA9IGF3YWl0IHRoaXMuX2dldEZvcm1JdGVtUHJvcGVydHlWYWx1ZShpdGVtLCBpbmRleCwgJ3RpdGxlJyk7XG4gICAgICAgICAgICAgICAgaXRlbS5uYW1lID0gYXdhaXQgdGhpcy5fZ2V0Rm9ybUl0ZW1Qcm9wZXJ0eVZhbHVlKGl0ZW0sIGluZGV4LCAnbmFtZScpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpdGVtIGFzIFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgLy8gU3VtbWFyeSBzdGVwIG11c3QgYmUgdGhlIGxhc3Qgb25lIGluIGFycmF5XG4gICAgICAgIGNvbnN0IHN1bW1hcnlTdGVwSW5kZXggPSBuZXdJdGVtcy5maW5kSW5kZXgoKGkpID0+IGkuc3VtbWFyeSA9PT0gdHJ1ZSk7XG5cbiAgICAgICAgaWYgKHN1bW1hcnlTdGVwSW5kZXggIT09IC0xICYmIHN1bW1hcnlTdGVwSW5kZXggIT09IG5ld0l0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIG5ld0l0ZW1zLnNwbGljZShuZXdJdGVtcy5sZW5ndGggLSAxLCAwLCBuZXdJdGVtcy5zcGxpY2Uoc3VtbWFyeVN0ZXBJbmRleCwgMSlbMF0pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgbm8gY3VycmVudCBzdGVwIGZvdW5kLCBzZXQgZmlyc3QgYXMgY3VycmVudC5cbiAgICAgICAgaWYgKG5ld0l0ZW1zLmZpbmRJbmRleCgoaSkgPT4gaS5zdGF0dXMgPT09ICdjdXJyZW50JykgPT09IC0xKSB7XG4gICAgICAgICAgICBuZXdJdGVtc1swXS5zdGF0dXMgPSAnY3VycmVudCc7XG4gICAgICAgIH1cblxuICAgICAgICBuZXdJdGVtcyA9IHRoaXMuX3NldEJyYW5jaGluZ1N0ZXBzKG5ld0l0ZW1zKTtcblxuICAgICAgICB0aGlzLl9idWlsZERlcGVuZGVuY3lNYXAobmV3SXRlbXMpO1xuXG4gICAgICAgIHRoaXMuaXRlbXMgPSBuZXdJdGVtcztcbiAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoU3RlcFZpc2liaWxpdHkoKTtcblxuICAgICAgICByZXR1cm4gbmV3SXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJ1bnMgY29uZGl0aW9uYWwgZnVuY3Rpb24gZm9yIGVhY2ggc3RlcCB0byBkZWZpbmUgaWYgc3RlcCBzaG91bGQgYmUgc2hvd24uXG4gICAgICovXG4gICAgYXN5bmMgcmVmcmVzaFN0ZXBWaXNpYmlsaXR5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSBhd2FpdCB0aGlzLmdldFdpemFyZEZvcm1WYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IHZpc2libGVTdGVwSWRzOiBXaXphcmRWaXNpYmxlU3RlcHMgPSB7fTtcblxuICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgdGhpcy5pdGVtcykge1xuICAgICAgICAgICAgaWYgKCFpc0Z1bmN0aW9uKGl0ZW0ud2hlbikpIHtcbiAgICAgICAgICAgICAgICB2aXNpYmxlU3RlcElkc1tpdGVtLmlkXSA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG9iaiA9IGl0ZW0ud2hlbiEodGhpcy5fZ2V0Q29tcGxldGVkU3RlcElkcygpLCBmb3JtVmFsdWUsIHRoaXMuX2Zvcm1HZW5lcmF0b3JTZXJ2aWNlLmZvcm1zKTtcblxuICAgICAgICAgICAgdmlzaWJsZVN0ZXBJZHNbaXRlbS5pZF0gPSBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKG9iaik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNldFZpc2libGVTdGVwcyh0aGlzLml0ZW1zLmZpbHRlcigoaXRlbSkgPT4gdmlzaWJsZVN0ZXBJZHNbaXRlbS5pZF0gPT09IHRydWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3Mgd2hldGhlciBjdXJyZW50IGZvcm0gZ3JvdXAgc2hvdWxkIGJlIHZpc2libGUuXG4gICAgICogQHBhcmFtIGZvcm1Hcm91cCBGb3JtIEdyb3VwLlxuICAgICAqL1xuICAgIGFzeW5jIHJlZnJlc2hGb3JtVmlzaWJpbGl0eShmb3JtR3JvdXA6IFdpemFyZEdlbmVyYXRvckZvcm1Hcm91cCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgICAgICBjb25zdCBmb3JtVmFsdWUgPSBhd2FpdCB0aGlzLmdldFdpemFyZEZvcm1WYWx1ZSgpO1xuXG4gICAgICAgIGNvbnN0IG9iaiA9IGZvcm1Hcm91cC53aGVuPy4odGhpcy5fZ2V0Q29tcGxldGVkU3RlcElkcygpLCBmb3JtVmFsdWUsIHRoaXMuX2Zvcm1HZW5lcmF0b3JTZXJ2aWNlLmZvcm1zKSA/PyB0cnVlO1xuXG4gICAgICAgIHJldHVybiBhd2FpdCB0aGlzLl9nZXRGdW5jdGlvblZhbHVlKG9iaik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENsZWFycyBhcnJheSBvZiBXaXphcmQgc3RlcHMgY29tcG9uZW50cy5cbiAgICAgKi9cbiAgICBjbGVhcldpemFyZFN0ZXBDb21wb25lbnRzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0ZXBzQ29tcG9uZW50cy5jbGVhcigpO1xuICAgICAgICB0aGlzLl9zdGVwc0NvbXBvbmVudHMkLm5leHQodGhpcy5zdGVwc0NvbXBvbmVudHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFN0ZXBzQ29tcG9uZW50cz59IE9ic2VydmFibGUsIHdoaWNoIHdpbGwgZW1pdCBldmVyeSB0aW1lXG4gICAgICogd2hlbiBTZXQgdmlzaWJsZSBzdGVwcyBjb21wb25lbnRzIGhhcyBiZWVuIGNoYW5nZWQuXG4gICAgICovXG4gICAgdHJhY2tTdGVwc0NvbXBvbmVudHMoKTogT2JzZXJ2YWJsZTxTdGVwc0NvbXBvbmVudHM+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXBzQ29tcG9uZW50cyQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFkZHMgbmV3IGNvbXBvbmVudCB0byB0aGUgc2V0IG9mIFdpemFyZCBzdGVwcyBjb21wb25lbnRzLlxuICAgICAqIEBwYXJhbSBjb21wb25lbnQgV2l6YXJkIFN0ZXAgY29tcG9uZW50IHRvIGFkZC5cbiAgICAgKiBAcGFyYW0ga2V5IFdpemFyZCBTdGVwIElELlxuICAgICAqL1xuICAgIGFkZFdpemFyZFN0ZXBDb21wb25lbnQoY29tcG9uZW50OiBXaXphcmRHZW5lcmF0b3JTdGVwLCBrZXk6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0ZXBzQ29tcG9uZW50cy5zZXQoa2V5LCBjb21wb25lbnQpO1xuICAgICAgICB0aGlzLl9zdGVwc0NvbXBvbmVudHMkLm5leHQodGhpcy5zdGVwc0NvbXBvbmVudHMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBSZW1vdmVzIENvbXBvbmVudCBmcm9tIHRoZSBzZXQgb2YgV2l6YXJkIHN0ZXBzIGNvbXBvbmVudHMuXG4gICAgICogQHBhcmFtIGtleVxuICAgICAqL1xuICAgIHJlbW92ZVdpemFyZFN0ZXBDb21wb25lbnQoa2V5OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGVwc0NvbXBvbmVudHMuZGVsZXRlKGtleSk7XG4gICAgICAgIHRoaXMuX3N0ZXBzQ29tcG9uZW50cyQubmV4dCh0aGlzLnN0ZXBzQ29tcG9uZW50cyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIHN0ZXAgU3RlcCBJRCB3aGljaCBpbmNsdWRlcyBkZXBlbmRlbmN5IGZpZWxkcy5cbiAgICAgKiBAcmV0dXJucyBPYmplY3Qgd2l0aCBmb3JtcyBhbmQgdGhlaXIgZmllbGRzIHRoYXQgYXJlIGRlcGVuZGVuY2llcyBmb3Igb3RoZXIgc3RlcHMuXG4gICAgICovXG4gICAgZ2V0U3RlcERlcGVuZGVuY3lGaWVsZHMoc3RlcDogc3RyaW5nKTogRGVwZW5kZW5jeVN0ZXBzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVwZW5kZW5jeVN0ZXBzW3N0ZXBdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE5vdGlmaWVzIHN0ZXAgY29tcG9uZW50cyB0byByZXZhbGlkYXRlIGlubmVyIGZvcm1zLlxuICAgICAqIEBwYXJhbSBzdGVwSWRzIFN0ZXAgSUQncyB3aGljaCBuZWVkcyB0byBiZSByZXZhbGlkYXRlZC5cbiAgICAgKi9cbiAgICBub3RpZnlTdGVwc1RvUmV2YWxpZGF0ZUZvcm1zKHN0ZXBJZHM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHN0ZXBJZHMuZm9yRWFjaCgoc3RlcElkKSA9PiB0aGlzLnN0ZXBzQ29tcG9uZW50cy5nZXQoc3RlcElkKT8udXBkYXRlRm9ybXNTdGF0ZSgpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBOb3RpZmllcyBzdGVwIGNvbXBvbmVudHMgdG8gcmVmcmVzaCBmb3JtIGdyb3VwcyB2aXNpYmlsaXR5LlxuICAgICAqIEBwYXJhbSBzdGVwSWRzIFN0ZXAgSUQncyB3aGljaCBuZWVkcyB0byBiZSBjaGVja2VkLlxuICAgICAqL1xuICAgIGFzeW5jIHJlZnJlc2hGb3Jtc1Zpc2liaWxpdHkoc3RlcElkczogc3RyaW5nW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgZm9yIChjb25zdCBzdGVwSWQgb2Ygc3RlcElkcykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5zdGVwc0NvbXBvbmVudHMuZ2V0KHN0ZXBJZCk/LnJlZnJlc2hGb3Jtc1Zpc2liaWxpdHkoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBwYXJhbSBmb3JtYXR0ZWQgRmxhZyBkZWZpbmluZyB3aGV0aGVyIGZvcm0gdmFsdWUgc2hvdWxkIGJlIGZvcm1hdHRlZCBieSBmb3JtIGNvbnRyb2xcbiAgICAgKiB0cmFuc2Zvcm1lcnMsIG9yIHJldHVybiByYXcgdmFsdWVcbiAgICAgKiBAcmV0dXJucyB7V2l6YXJkR2VuZXJhdG9yRm9ybXNWYWx1ZX0gV2l6YXJkIGZvcm0gdmFsdWVcbiAgICAgKi9cbiAgICBhc3luYyBnZXRXaXphcmRGb3JtVmFsdWUoZm9ybWF0dGVkID0gZmFsc2UpOiBQcm9taXNlPFdpemFyZEdlbmVyYXRvckZvcm1zVmFsdWU+IHtcbiAgICAgICAgY29uc3Qgd2l6YXJkRm9ybVZhbHVlOiBXaXphcmRHZW5lcmF0b3JGb3Jtc1ZhbHVlID0ge307XG5cbiAgICAgICAgaWYgKCF0aGlzLnZpc2libGVXaXphcmRTdGVwcykge1xuICAgICAgICAgICAgcmV0dXJuIHdpemFyZEZvcm1WYWx1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLnZpc2libGVXaXphcmRTdGVwcy5maWx0ZXIoKHMpID0+ICFzLnN1bW1hcnkpKSB7XG4gICAgICAgICAgICB3aXphcmRGb3JtVmFsdWVbaXRlbS5pZF0gPSB7fTtcblxuICAgICAgICAgICAgY29uc3QgY29tcG9uZW50ID0gdGhpcy5zdGVwc0NvbXBvbmVudHMuZ2V0KGl0ZW0uaWQpO1xuXG4gICAgICAgICAgICBpZiAoIWNvbXBvbmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmb3JtcyA9IGNvbXBvbmVudC5nZXRWaXNpYmxlRm9ybXMoKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmb3JtIG9mIGl0ZW0/LmZvcm1Hcm91cHMgPz8gW10pIHtcbiAgICAgICAgICAgICAgICBpZiAoIWZvcm1zW2Zvcm0uaWRdKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHdpemFyZEZvcm1WYWx1ZVtpdGVtLmlkXVtmb3JtLmlkXSA9IGZvcm1hdHRlZFxuICAgICAgICAgICAgICAgICAgICA/IGF3YWl0IHRoaXMuX2Zvcm1HZW5lcmF0b3JTZXJ2aWNlLmdldEZvcm1WYWx1ZShmb3Jtc1tmb3JtLmlkXT8uZm9ybSlcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9mb3JtR2VuZXJhdG9yU2VydmljZS5fZ2V0Rm9ybVZhbHVlV2l0aG91dFVuZ3JvdXBlZChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0dXJlZENsb25lKGZvcm1zW2Zvcm0uaWRdPy5mb3JtLnZhbHVlKVxuICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gd2l6YXJkRm9ybVZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHN0ZXBJZCBTdGVwIElEIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIHtCb29sZWFufSBpbmRpY2F0b3IgaWYgc3RlcCB3YXMgcHJldmlvdXNseSB2YWxpZGF0ZWQgYW5kIHN1Ym1pdHRlZC5cbiAgICAgKi9cbiAgICBzdGVwU3VibWl0dGVkKHN0ZXBJZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zdWJtaXR0ZWRGb3JtUmF3VmFsdWVzW3N0ZXBJZF0gIT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHtCb29sZWFufSBpZiBzdGVwcyBhcmUgdW50b3VjaGVkLCB3aWxsIHJldHVybiB0cnVlLCBpZiB5ZXMgLSBmYWxzZVxuICAgICAqL1xuICAgIGlzU3RlcHNVbnRvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLnN0ZXBzQ29tcG9uZW50c10uZXZlcnkoKFtfLCBjb21wb25lbnRdKSA9PlxuICAgICAgICAgICAgY29tcG9uZW50LmZvcm1HZW5lcmF0b3JzLnRvQXJyYXkoKS5ldmVyeSgoaXRlbSkgPT4gIWl0ZW0uZm9ybS50b3VjaGVkKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldmVydHMgd2l6YXJkIHRvIGRlZmluZWQgc3RlcC5cbiAgICAgKiBAcGFyYW0gc3RlcElkIFN0ZXAgSUQgdG8gZWRpdFxuICAgICAqL1xuICAgIGVkaXRTdGVwKHN0ZXBJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0ZXBJbmRleCA9IHRoaXMudmlzaWJsZVdpemFyZFN0ZXBzLmZpbmRJbmRleCgocykgPT4gcy5pZCA9PT0gc3RlcElkKTtcblxuICAgICAgICB0aGlzLnZpc2libGVXaXphcmRTdGVwcyA9IHRoaXMudmlzaWJsZVdpemFyZFN0ZXBzLm1hcCgoc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIHN0ZXAuc3RhdHVzID0gaW5kZXggPT09IHN0ZXBJbmRleCA/ICdjdXJyZW50JyA6IGluZGV4IDwgc3RlcEluZGV4ID8gJ2NvbXBsZXRlZCcgOiAndXBjb21pbmcnO1xuXG4gICAgICAgICAgICByZXR1cm4gc3RlcDtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc3Qgc3VtbWFyeVN0ZXBJbmRleCA9IHRoaXMudmlzaWJsZVdpemFyZFN0ZXBzLmZpbmRJbmRleCgocykgPT4gcy5zdW1tYXJ5KTtcblxuICAgICAgICB0aGlzLl9zaG91bGRSZWRpcmVjdFRvU3VtbWFyeSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5fYXBwZW5kVG9XaXphcmQkLm5leHQoZmFsc2UpO1xuXG4gICAgICAgIHRoaXMuc2V0VmlzaWJsZVN0ZXBzKHRoaXMudmlzaWJsZVdpemFyZFN0ZXBzKTtcblxuICAgICAgICB0aGlzLnNldE5leHRTdGVwSW5kZXgoc3VtbWFyeVN0ZXBJbmRleCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0J3MgY3VycmVudCBzZXQgb2Ygc3RlcCBJRCdzXG4gICAgICogQHBhcmFtIGlkcyBzdGVwIElEJ3NcbiAgICAgKi9cbiAgICBzZXRXaXphcmRTdGVwSWRzKGlkczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl93aXphcmRTdGVwSWRzLmV2ZXJ5KChzdGVwSWQsIGluZGV4KSA9PiBpZHNbaW5kZXhdID09PSBzdGVwSWQpKSB7XG4gICAgICAgICAgICBjb25zdCBmaXJzdENoYW5nZWRTdGVwSW5kZXggPSB0aGlzLl93aXphcmRTdGVwSWRzLmZpbmRJbmRleCgoc3RlcElkLCBpbmRleCkgPT4gaWRzW2luZGV4XSAhPT0gc3RlcElkKTtcblxuICAgICAgICAgICAgdGhpcy5fbmV4dFN0ZXBJbmRleCQubmV4dChmaXJzdENoYW5nZWRTdGVwSW5kZXgpO1xuXG4gICAgICAgICAgICB0aGlzLl9zdGVwc09yZGVyQ2hhbmdlZCQubmV4dChmaXJzdENoYW5nZWRTdGVwSW5kZXgpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkU3RlcElkcyA9IGlkcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgbmV4dCBzdGVwIGluZGV4LlxuICAgICAqIEBwYXJhbSBpbmRleCBOZXh0IHN0ZXAgaW5kZXguXG4gICAgICovXG4gICAgc2V0TmV4dFN0ZXBJbmRleChpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25leHRTdGVwSW5kZXgkLm5leHQoaW5kZXgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgb2JzZXJ2YWJsZSBvZiBuZXh0IHN0ZXAgaW5kZXggd2hpY2ggZW1pdHMgd2hlbiBpbmRleCBpcyBjaGFuZ2VkLlxuICAgICAqL1xuICAgIHRyYWNrTmV4dFN0ZXBJbmRleCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fbmV4dFN0ZXBJbmRleCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmV0dXJucyBvYnNlcnZhYmxlIHdoaWNoIGVtaXRzIHdoZW4gc3RlcHMgb3JkZXIgaGFzIGJlZW4gY2hhbmdlZC5cbiAgICAgKi9cbiAgICB0cmFja1N0ZXBzT3JkZXIoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3N0ZXBzT3JkZXJDaGFuZ2VkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZXMgb3JpZ2luYWwgJ2FwcGVuZFRvV2l6YXJkJyBpbnB1dCBwcm9wZXJ0eS5cbiAgICAgKiBAcGFyYW0gdmFsdWVcbiAgICAgKi9cbiAgICBzZXRPcmlnaW5hbEFwcGVuZFRvV2l6YXJkU3RhdGUodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hcHBlbmRUb1dpemFyZCA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9hcHBlbmRUb1dpemFyZCQubmV4dCh0aGlzLmFwcGVuZFRvV2l6YXJkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXNldHMgbW9kaWZpZWQgJ2FwcGVuZFRvV2l6YXJkJyBwcm9wZXJ0eSB0byBvcmlnaW5hbCBvbmUuXG4gICAgICovXG4gICAgcmVzdG9yZUFwcGVuZFRvV2l6YXJkU3RhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2FwcGVuZFRvV2l6YXJkJC5uZXh0KHRoaXMuYXBwZW5kVG9XaXphcmQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgb2JzZXJ2YWJsZSB3aGljaCBlbWl0cyB3aGVuICdhcHBlbmRUb1dpemFyZCcgcHJvcGVydHkgaGFzIGJlZW4gY2hhbmdlZC5cbiAgICAgKi9cbiAgICB0cmFja0FwcGVuZFRvV2l6YXJkU3RhdGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9hcHBlbmRUb1dpemFyZCQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBwYXJhbSBpdGVtc1xuICAgICAqIEBwYXJhbSBpbmRleFxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2dldEZvcm1JdGVtUHJvcGVydHlWYWx1ZTxUID0gc3RyaW5nPihcbiAgICAgICAgaXRlbXM6IFdpemFyZEdlbmVyYXRvckl0ZW0sXG4gICAgICAgIGluZGV4OiBudW1iZXIsXG4gICAgICAgIGtleToga2V5b2YgV2l6YXJkR2VuZXJhdG9ySXRlbVxuICAgICk6IFByb21pc2U8VD4ge1xuICAgICAgICBsZXQgdmFsdWU6IGFueSA9IGl0ZW1zW2tleV07XG5cbiAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgY29uc3Qgb2JqID0gdmFsdWUoaW5kZXgpO1xuXG4gICAgICAgICAgICB2YWx1ZSA9IGF3YWl0IHRoaXMuX2dldEZ1bmN0aW9uVmFsdWUob2JqKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YWx1ZSBhcyBUO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBAZGVzY3JpcHRpb24gUmV0dXJucyB2YWx1ZSBmcm9tIFByb21pc2UtbGlrZSwgT2JzZXJ2YWJsZS1saWtlLCBzaW1wbGUgZnVuY3Rpb24gb3IganVzdCBzb21lIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gb2JqXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwcml2YXRlIGFzeW5jIF9nZXRGdW5jdGlvblZhbHVlKG9iajogYW55KTogUHJvbWlzZTxhbnk+IHtcbiAgICAgICAgY29uc3Qgc3RyYXRlZ3kgPSBzZWxlY3RTdHJhdGVneShvYmopO1xuXG4gICAgICAgIGxldCByZXN1bHQ6IGFueTtcblxuICAgICAgICBhd2FpdCBzdHJhdGVneS5jcmVhdGVTdWJzY3JpcHRpb24ob2JqLCAodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICAgICAgcmVzdWx0ID0gdmFsdWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKHJlc3VsdCkpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuX2dldEZ1bmN0aW9uVmFsdWUocmVzdWx0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBTZXRzIGBicmFuY2hpbmdgIHByb3BlcnR5IGZvciB0aGUgc3RlcHMgdGhhdCB3aWxsIGNyZWF0ZSBuZXcgYnJhbmNoZXMuXG4gICAgICogQHBhcmFtIGl0ZW1zXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBwcml2YXRlIF9zZXRCcmFuY2hpbmdTdGVwcyhpdGVtczogUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10pOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSB7XG4gICAgICAgIGNvbnN0IGJyYW5jaGluZ0l0ZW1zID0gaXRlbXNcbiAgICAgICAgICAgIC5maWx0ZXIoKGkpID0+IGkuZGVwZW5kZW5jeUZpZWxkcylcbiAgICAgICAgICAgIC5yZWR1Y2UoKHN0ZXBJZHMsIGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbS5kZXBlbmRlbmN5RmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHN0ZXBJZHMgPSBbLi4uc3RlcElkcywgLi4uT2JqZWN0LmtleXMoaXRlbS5kZXBlbmRlbmN5RmllbGRzKV07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHN0ZXBJZHM7XG4gICAgICAgICAgICB9LCBbXSBhcyBzdHJpbmdbXSk7XG5cbiAgICAgICAgaWYgKGJyYW5jaGluZ0l0ZW1zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGl0ZW1zID0gaXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbS5icmFuY2hpbmcgPSBpdGVtLmJyYW5jaGluZyB8fCBicmFuY2hpbmdJdGVtcy5pbmNsdWRlcyhpdGVtLmlkKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXRlbTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfbm9ybWFsaXplRGVwZW5kZW5jeVN0ZXAoXG4gICAgICAgIGRlcGVuZGVuY3k6IHsgW3A6IHN0cmluZ106IHN0cmluZ1tdIH0sXG4gICAgICAgIHN0cmF0ZWd5OiBXaXphcmRHZW5lcmF0b3JSZWZyZXNoU3RyYXRlZ3ksXG4gICAgICAgIGRlcGVuZGVudFN0ZXA/OiBzdHJpbmdcbiAgICApOiBEZXBlbmRlbmN5U3RlcHMge1xuICAgICAgICBjb25zdCBuZXdEZXBlbmRlbmN5OiBEZXBlbmRlbmN5U3RlcHMgPSB7fTtcblxuICAgICAgICBPYmplY3QuZW50cmllcyhkZXBlbmRlbmN5KS5mb3JFYWNoKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICAgIG5ld0RlcGVuZGVuY3lba2V5XSA9IHt9O1xuXG4gICAgICAgICAgICB2YWx1ZS5mb3JFYWNoKCh2KSA9PiB7XG4gICAgICAgICAgICAgICAgbmV3RGVwZW5kZW5jeVtrZXldW3ZdID0ge1xuICAgICAgICAgICAgICAgICAgICBbc3RyYXRlZ3ldOiBkZXBlbmRlbnRTdGVwID8gW2RlcGVuZGVudFN0ZXBdIDogW11cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gbmV3RGVwZW5kZW5jeTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2J1aWxkRGVwZW5kZW5jeU1hcChpdGVtczogUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kZXBlbmRlbmN5U3RlcHMgPSB7fTtcblxuICAgICAgICBjb25zdCBtZXJnZUFycmF5cyA9IChvYmpWYWx1ZTogYW55LCBzcmNWYWx1ZTogYW55KTogYW55ID0+IHtcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KG9ialZhbHVlKSAmJiAhb2JqVmFsdWUuaW5jbHVkZXMoc3JjVmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHVuaXEob2JqVmFsdWUuY29uY2F0KHNyY1ZhbHVlKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgYnVpbGREZXBlbmRlbmN5U3RlcHMgPSAoXG4gICAgICAgICAgICBkZXBlbmRlbmN5RmllbGRzOiBXaXphcmRHZW5lcmF0b3JEZXBlbmRlbmN5RmllbGRzLFxuICAgICAgICAgICAgc3RyYXRlZ3k6IFdpemFyZEdlbmVyYXRvclJlZnJlc2hTdHJhdGVneSxcbiAgICAgICAgICAgIHN0ZXBJZD86IHN0cmluZ1xuICAgICAgICApOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2lkLCBmb3Jtc10gb2YgT2JqZWN0LmVudHJpZXMoZGVwZW5kZW5jeUZpZWxkcykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRlcGVuZGVuY3lTdGVwc1tpZF0gPSBtZXJnZVdpdGgoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGVwZW5kZW5jeVN0ZXBzW2lkXSB8fCB7fSxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fbm9ybWFsaXplRGVwZW5kZW5jeVN0ZXAoZm9ybXMsIHN0cmF0ZWd5LCBzdGVwSWQpLFxuICAgICAgICAgICAgICAgICAgICBtZXJnZUFycmF5c1xuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgaXRlbXNcbiAgICAgICAgICAgIC5maWx0ZXIoKHMpID0+IHMuZm9ybUdyb3Vwcz8ubGVuZ3RoKVxuICAgICAgICAgICAgLmZvckVhY2goKHN0ZXApID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoc3RlcC5kZXBlbmRlbmN5RmllbGRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkRGVwZW5kZW5jeVN0ZXBzKHN0ZXAuZGVwZW5kZW5jeUZpZWxkcywgV2l6YXJkR2VuZXJhdG9yUmVmcmVzaFN0cmF0ZWd5LlJFRlJFU0hfU1RFUF9WSVNJQklMSVRZKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjb25zdCBkZXBlbmRlbnRGb3JtcyA9IHN0ZXAuZm9ybUdyb3Vwcz8uZmlsdGVyKChmb3JtKSA9PiBmb3JtLmRlcGVuZGVuY3lGaWVsZHMpO1xuXG4gICAgICAgICAgICAgICAgZGVwZW5kZW50Rm9ybXM/LmZvckVhY2goKGZvcm0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgYnVpbGREZXBlbmRlbmN5U3RlcHMoXG4gICAgICAgICAgICAgICAgICAgICAgICBmb3JtLmRlcGVuZGVuY3lGaWVsZHMhLFxuICAgICAgICAgICAgICAgICAgICAgICAgV2l6YXJkR2VuZXJhdG9yUmVmcmVzaFN0cmF0ZWd5LlJFRlJFU0hfRk9STV9WSVNJQklMSVRZLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RlcC5pZFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY29uc3Qgc3RlcEZpZWxkczogV2l6YXJkR2VuZXJhdG9yRm9ybUl0ZW1bXSA9IGNvbmNhdChcbiAgICAgICAgICAgICAgICAgICAgLi4uWy4uLihzdGVwLmZvcm1Hcm91cHMgPz8gW10pXS5tYXAoKGl0ZW0pID0+IGl0ZW0uZm9ybUl0ZW1zLmZpbHRlcigoZikgPT4gZi5kZXBlbmRlbmN5RmllbGRzKSlcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgc3RlcEZpZWxkcy5mb3JFYWNoKChmb3JtSXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBidWlsZERlcGVuZGVuY3lTdGVwcyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1JdGVtLmRlcGVuZGVuY3lGaWVsZHMhLFxuICAgICAgICAgICAgICAgICAgICAgICAgV2l6YXJkR2VuZXJhdG9yUmVmcmVzaFN0cmF0ZWd5LlJFVkFMSURBVEVfU1RFUF9GT1JNUyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXAuaWRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0Q29tcGxldGVkU3RlcElkcygpOiBzdHJpbmdbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLml0ZW1zLmZpbHRlcigoaSkgPT4gaS5zdGF0dXMgPT09ICdjb21wbGV0ZWQnKS5tYXAoKGkpID0+IGkuaWQpO1xuICAgIH1cbn1cbiJdfQ==","import { ChangeDetectorRef, DestroyRef, Directive, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { debounceTime, finalize } from 'rxjs/operators';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ContentDensityMode } from '@fundamental-ngx/core/content-density';\nimport { WizardGeneratorService } from './wizard-generator.service';\nimport * as i0 from \"@angular/core\";\n/**\n * @description Default button labels.\n */\nexport const DEFAULT_WIZARD_NAVIGATION_BUTTONS = {\n goBack: {\n label: 'Previous Step',\n contentDensity: ContentDensityMode.COMPACT,\n type: 'ghost'\n },\n goNext: {\n label: 'Next Step',\n contentDensity: ContentDensityMode.COMPACT,\n type: 'emphasized'\n },\n cancel: {\n label: 'Cancel',\n contentDensity: ContentDensityMode.COMPACT,\n type: 'ghost'\n },\n finish: {\n label: 'Finish',\n contentDensity: ContentDensityMode.COMPACT,\n type: 'emphasized'\n },\n review: {\n label: 'Review',\n contentDensity: ContentDensityMode.COMPACT,\n type: 'emphasized'\n }\n};\n/**\n * @description Base Wizard Generator component with necessary inputs and methods.\n */\nexport class BaseWizardGenerator {\n /**\n * @description Button labels to be used in Wizard navigation\n */\n set navigationButtonLabels(value) {\n this._navigationButtonLabels = Object.assign({}, DEFAULT_WIZARD_NAVIGATION_BUTTONS, value);\n }\n get navigationButtonLabels() {\n return this._navigationButtonLabels;\n }\n /**\n * @description Array of Wizard Steps.\n */\n set items(items) {\n this.wizardCreated = false;\n this._wizardGeneratorService.clearWizardStepComponents();\n if (!items) {\n return;\n }\n this._wizardGeneratorService.prepareWizardItems(items).then((newItems) => {\n this._items = newItems;\n this._visibleItems = newItems;\n this.wizardCreated = true;\n this._cd.detectChanges();\n });\n }\n get items() {\n return this._items;\n }\n /**\n * Whether to append the step to the wizard. If false, each step will be displayed on a different page.\n * Default is true.\n */\n set appendToWizard(value) {\n this._wizardGeneratorService.setOriginalAppendToWizardState(value);\n }\n get appendToWizard() {\n return this._appendToWizard;\n }\n /**\n * @description Is current step is summary step.\n */\n get isSummaryStep() {\n const currentIndex = this._wizardGeneratorService.getCurrentStepIndex();\n return this.visibleItems[currentIndex]?.summary === true;\n }\n /**\n * @description Array of visible Wizard Steps.\n */\n set visibleItems(items) {\n this._visibleItems = items;\n }\n get visibleItems() {\n return this._visibleItems || this._items;\n }\n /**\n * @description Whether or not Wizard is currently on the first step\n */\n get isFirstStep() {\n return this.visibleItems[0]?.status === 'current';\n }\n /**\n * @description Whether or not Wizard is currently on the last step\n */\n get isLastStep() {\n const lastStep = this.visibleItems[this.visibleItems.length - 1];\n return lastStep?.status === 'current' && !lastStep.branching;\n }\n /**\n * Whether current step is a branching step.\n */\n get isBranchingStep() {\n const currentIndex = this._wizardGeneratorService.getCurrentStepIndex();\n return this._visibleItems[currentIndex]?.branching === true;\n }\n /**\n * Whether the next step is a Summary step.\n */\n get isNextStepSummary() {\n const nextStep = this.visibleItems[this._nextStepIndex];\n return nextStep?.summary === true;\n }\n /** Whether the current step is completed */\n get isCurrentStepCompleted() {\n const currentIndex = this._wizardGeneratorService.getCurrentStepIndex();\n return this._visibleItems[currentIndex]?.completed === true;\n }\n /** @hidden */\n constructor() {\n /**\n * @description Whether or not apply responsive paddings styling.\n */\n this.responsivePaddings = true;\n /** If navigation buttons should be visible. */\n this.navigationButtons = true;\n /**\n * @description Boolean flag indicating whether to display Summary step in Wizard progress bar.\n */\n this.displaySummaryStep = false;\n /** Whether all form items should have identical layout provided for form group. */\n this.unifiedLayout = true;\n /**\n * @description Emits wizard value when it's completed.\n */\n this.wizardFinished = new EventEmitter();\n /**\n * Flag indicating that wizard is ready to be shown\n */\n this.wizardCreated = false;\n /**\n * @hidden\n */\n this._visibleItems = [];\n /** @hidden */\n this._stepsOrderChanged = false;\n /**\n * @hidden\n */\n this._navigationButtonLabels = DEFAULT_WIZARD_NAVIGATION_BUTTONS;\n /**\n * @hidden\n */\n this._destroyRef = inject(DestroyRef);\n /** @hidden */\n this._wizardGeneratorService = inject(WizardGeneratorService);\n /** @hidden */\n this._cd = inject(ChangeDetectorRef);\n /**\n * @hidden\n */\n this._items = [];\n /** @hidden */\n this._appendToWizard = false;\n /**\n * @hidden\n */\n this._formPending = false;\n this._wizardGeneratorService\n .getVisibleSteps()\n .pipe(debounceTime(10), takeUntilDestroyed(this._destroyRef))\n .subscribe((visibleSteps) => {\n this.visibleItems = visibleSteps;\n this._cd.detectChanges();\n });\n this._wizardGeneratorService\n .trackStepsComponents()\n .pipe(debounceTime(10), takeUntilDestroyed(this._destroyRef))\n .subscribe(async (stepsComponents) => {\n if (stepsComponents.size === this.items?.length) {\n await this._setVisibleSteps();\n }\n });\n this._wizardGeneratorService\n .trackAppendToWizardState()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((value) => {\n this._appendToWizard = value;\n });\n this._wizardGeneratorService\n .trackStepsOrder()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((newNextStep) => {\n this._nextStepIndex = newNextStep;\n this._stepsOrderChanged = true;\n });\n this._wizardGeneratorService\n .trackNextStepIndex()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((index) => {\n this._nextStepIndex = index;\n });\n }\n /**\n * @description Reverts Wizard progress one step back.\n */\n goBack() {\n const currentStepIndex = this._wizardGeneratorService.getCurrentStepIndex();\n const previousStepIndex = currentStepIndex - 1;\n if (this.visibleItems[previousStepIndex] === undefined) {\n return;\n }\n this._stepsOrderChanged = false;\n this.visibleItems[currentStepIndex].status = 'upcoming';\n this.visibleItems[previousStepIndex].status = 'current';\n this._wizardGeneratorService.setVisibleSteps(this.visibleItems);\n this._wizardGeneratorService.setNextStepIndex(currentStepIndex);\n this._cd.detectChanges();\n }\n /**\n * @description Progresses the Wizard one step further.\n */\n async goNext() {\n if (this._formPending) {\n return;\n }\n const currentStepIndex = this._wizardGeneratorService.getCurrentStepIndex();\n const nextStepIndex = this._nextStepIndex;\n this._wizardGeneratorService\n .validateStepForms()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(async (result) => {\n if (!result) {\n return;\n }\n await this._setVisibleSteps();\n const steps = this.visibleItems;\n if (steps[nextStepIndex] === undefined) {\n return;\n }\n this._stepsOrderChanged = false;\n steps[currentStepIndex].status = 'completed';\n steps[currentStepIndex].completed = true;\n steps[nextStepIndex].status = 'current';\n this._wizardGeneratorService.setVisibleSteps(steps);\n this._wizardGeneratorService.setNextStepIndex(nextStepIndex + 1);\n this._cd.detectChanges();\n });\n }\n /**\n * @description Submits step forms.\n * @param currentStepIndex current step index.\n * @returns {Observable<WizardStepSubmittedForms | null>} Observable with form values.\n */\n submitStepForms(currentStepIndex) {\n this._formPending = true;\n return this._wizardGeneratorService.submitStepForms(currentStepIndex).pipe(finalize(() => {\n this._formPending = false;\n }));\n }\n /**\n * @description Completes the wizard and emits it's formatted value.\n */\n async finish() {\n if (this.isSummaryStep) {\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this.wizardFinished.emit(wizardResult);\n return;\n }\n this._wizardGeneratorService\n .validateStepForms()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(async (result) => {\n if (!result) {\n return;\n }\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this.wizardFinished.emit(wizardResult);\n });\n }\n /**\n * @description Callback function to update steps status.\n * @param stepId Step ID to be updated.\n * @param status New step status.\n */\n async stepStatusChanged(stepId, status) {\n const stepIndex = this._visibleItems.findIndex((s) => s.id === stepId);\n this._visibleItems[stepIndex].status = status;\n await this._wizardGeneratorService.refreshStepVisibility();\n }\n /**\n * @hidden\n */\n async _setVisibleSteps() {\n await this._wizardGeneratorService.refreshStepVisibility();\n this.wizardCreated = true;\n this._cd.detectChanges();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseWizardGenerator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: BaseWizardGenerator, isStandalone: true, inputs: { responsivePaddings: \"responsivePaddings\", navigationButtonLabels: \"navigationButtonLabels\", items: \"items\", appendToWizard: \"appendToWizard\", navigationButtons: \"navigationButtons\", contentHeight: \"contentHeight\", displaySummaryStep: \"displaySummaryStep\", unifiedLayout: \"unifiedLayout\" }, outputs: { wizardFinished: \"wizardFinished\" }, ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: BaseWizardGenerator, decorators: [{\n type: Directive\n }], ctorParameters: () => [], propDecorators: { responsivePaddings: [{\n type: Input\n }], navigationButtonLabels: [{\n type: Input\n }], items: [{\n type: Input\n }], appendToWizard: [{\n type: Input\n }], navigationButtons: [{\n type: Input\n }], contentHeight: [{\n type: Input\n }], displaySummaryStep: [{\n type: Input\n }], unifiedLayout: [{\n type: Input\n }], wizardFinished: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS13aXphcmQtZ2VuZXJhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2Jhc2Utd2l6YXJkLWdlbmVyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUcsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUVoRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUszRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFFcEU7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FBc0M7SUFDaEYsTUFBTSxFQUFFO1FBQ0osS0FBSyxFQUFFLGVBQWU7UUFDdEIsY0FBYyxFQUFFLGtCQUFrQixDQUFDLE9BQU87UUFDMUMsSUFBSSxFQUFFLE9BQU87S0FDaEI7SUFDRCxNQUFNLEVBQUU7UUFDSixLQUFLLEVBQUUsV0FBVztRQUNsQixjQUFjLEVBQUUsa0JBQWtCLENBQUMsT0FBTztRQUMxQyxJQUFJLEVBQUUsWUFBWTtLQUNyQjtJQUNELE1BQU0sRUFBRTtRQUNKLEtBQUssRUFBRSxRQUFRO1FBQ2YsY0FBYyxFQUFFLGtCQUFrQixDQUFDLE9BQU87UUFDMUMsSUFBSSxFQUFFLE9BQU87S0FDaEI7SUFDRCxNQUFNLEVBQUU7UUFDSixLQUFLLEVBQUUsUUFBUTtRQUNmLGNBQWMsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO1FBQzFDLElBQUksRUFBRSxZQUFZO0tBQ3JCO0lBQ0QsTUFBTSxFQUFF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QyxTQUFTLENBQUMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBRTlDLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLGdCQUFnQjtRQUMxQixNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBRTNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBRTFCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs4R0E3VlEsbUJBQW1CO2tHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFNBQVM7d0RBTU4sa0JBQWtCO3NCQURqQixLQUFLO2dCQU9GLHNCQUFzQjtzQkFEekIsS0FBSztnQkFZRixLQUFLO3NCQURSLEtBQUs7Z0JBeUJGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBV04saUJBQWlCO3NCQURoQixLQUFLO2dCQVFOLGFBQWE7c0JBRFosS0FBSztnQkFPTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBS04sYUFBYTtzQkFEWixLQUFLO2dCQU9OLGNBQWM7c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbmFsaXplIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5TW9kZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgV2l6YXJkU3RlcFN0YXR1cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS93aXphcmQnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yRm9ybXNWYWx1ZSwgV2l6YXJkU3RlcFN1Ym1pdHRlZEZvcm1zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3dpemFyZC1nZW5lcmF0b3ItZm9ybXMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbSwgV2l6YXJkR2VuZXJhdG9ySXRlbSB9IGZyb20gJy4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZE5hdmlnYXRpb25CdXR0b25zIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3dpemFyZC1uYXZpZ2F0aW9uLWJ1dHRvbnMuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuL3dpemFyZC1nZW5lcmF0b3Iuc2VydmljZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIERlZmF1bHQgYnV0dG9uIGxhYmVscy5cbiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfV0laQVJEX05BVklHQVRJT05fQlVUVE9OUzogUmVxdWlyZWQ8V2l6YXJkTmF2aWdhdGlvbkJ1dHRvbnM+ID0ge1xuICAgIGdvQmFjazoge1xuICAgICAgICBsYWJlbDogJ1ByZXZpb3VzIFN0ZXAnLFxuICAgICAgICBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHlNb2RlLkNPTVBBQ1QsXG4gICAgICAgIHR5cGU6ICdnaG9zdCdcbiAgICB9LFxuICAgIGdvTmV4dDoge1xuICAgICAgICBsYWJlbDogJ05leHQgU3RlcCcsXG4gICAgICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVCxcbiAgICAgICAgdHlwZTogJ2VtcGhhc2l6ZWQnXG4gICAgfSxcbiAgICBjYW5jZWw6IHtcbiAgICAgICAgbGFiZWw6ICdDYW5jZWwnLFxuICAgICAgICBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHlNb2RlLkNPTVBBQ1QsXG4gICAgICAgIHR5cGU6ICdnaG9zdCdcbiAgICB9LFxuICAgIGZpbmlzaDoge1xuICAgICAgICBsYWJlbDogJ0ZpbmlzaCcsXG4gICAgICAgIGNvbnRlbnREZW5zaXR5OiBDb250ZW50RGVuc2l0eU1vZGUuQ09NUEFDVCxcbiAgICAgICAgdHlwZTogJ2VtcGhhc2l6ZWQnXG4gICAgfSxcbiAgICByZXZpZXc6IHtcbiAgICAgICAgbGFiZWw6ICdSZXZpZXcnLFxuICAgICAgICBjb250ZW50RGVuc2l0eTogQ29udGVudERlbnNpdHlNb2RlLkNPTVBBQ1QsXG4gICAgICAgIHR5cGU6ICdlbXBoYXNpemVkJ1xuICAgIH1cbn07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEJhc2UgV2l6YXJkIEdlbmVyYXRvciBjb21wb25lbnQgd2l0aCBuZWNlc3NhcnkgaW5wdXRzIGFuZCBtZXRob2RzLlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBCYXNlV2l6YXJkR2VuZXJhdG9yIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBvciBub3QgYXBwbHkgcmVzcG9uc2l2ZSBwYWRkaW5ncyBzdHlsaW5nLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmVzcG9uc2l2ZVBhZGRpbmdzID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCdXR0b24gbGFiZWxzIHRvIGJlIHVzZWQgaW4gV2l6YXJkIG5hdmlnYXRpb25cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzKHZhbHVlOiBXaXphcmROYXZpZ2F0aW9uQnV0dG9ucykge1xuICAgICAgICB0aGlzLl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzID0gT2JqZWN0LmFzc2lnbih7fSwgREVGQVVMVF9XSVpBUkRfTkFWSUdBVElPTl9CVVRUT05TLCB2YWx1ZSk7XG4gICAgfVxuICAgIGdldCBuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzKCk6IFdpemFyZE5hdmlnYXRpb25CdXR0b25zIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX25hdmlnYXRpb25CdXR0b25MYWJlbHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIEFycmF5IG9mIFdpemFyZCBTdGVwcy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBpdGVtcyhpdGVtczogV2l6YXJkR2VuZXJhdG9ySXRlbVtdKSB7XG4gICAgICAgIHRoaXMud2l6YXJkQ3JlYXRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmNsZWFyV2l6YXJkU3RlcENvbXBvbmVudHMoKTtcblxuICAgICAgICBpZiAoIWl0ZW1zKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnByZXBhcmVXaXphcmRJdGVtcyhpdGVtcykudGhlbigobmV3SXRlbXMpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1zID0gbmV3SXRlbXM7XG4gICAgICAgICAgICB0aGlzLl92aXNpYmxlSXRlbXMgPSBuZXdJdGVtcztcbiAgICAgICAgICAgIHRoaXMud2l6YXJkQ3JlYXRlZCA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBnZXQgaXRlbXMoKTogV2l6YXJkR2VuZXJhdG9ySXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gYXBwZW5kIHRoZSBzdGVwIHRvIHRoZSB3aXphcmQuIElmIGZhbHNlLCBlYWNoIHN0ZXAgd2lsbCBiZSBkaXNwbGF5ZWQgb24gYSBkaWZmZXJlbnQgcGFnZS5cbiAgICAgKiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgYXBwZW5kVG9XaXphcmQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zZXRPcmlnaW5hbEFwcGVuZFRvV2l6YXJkU3RhdGUodmFsdWUpO1xuICAgIH1cblxuICAgIGdldCBhcHBlbmRUb1dpemFyZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FwcGVuZFRvV2l6YXJkO1xuICAgIH1cblxuICAgIC8qKiBJZiBuYXZpZ2F0aW9uIGJ1dHRvbnMgc2hvdWxkIGJlIHZpc2libGUuICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uQnV0dG9ucyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBDdXN0b20gaGVpZ2h0IHRvIHVzZSBmb3IgdGhlIHdpemFyZCdzIGNvbnRlbnQgcGFuZS4gQnkgZGVmYXVsdCwgdGhpcyB2YWx1ZSBpcyBjYWxjKDEwMHZoIC0gMTQ0cHgpLCB3aGVyZSAxNDRweFxuICAgICAqIGlzIHRoZSBjb21iaW5lZCBoZWlnaHQgb2YgdGhlIHNoZWxsYmFyLCB3aXphcmQgaGVhZGVyIGFuZCB3aXphcmQgZm9vdGVyLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgY29udGVudEhlaWdodDogTnVsbGFibGU8c3RyaW5nPjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIGRpc3BsYXkgU3VtbWFyeSBzdGVwIGluIFdpemFyZCBwcm9ncmVzcyBiYXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5U3VtbWFyeVN0ZXAgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGFsbCBmb3JtIGl0ZW1zIHNob3VsZCBoYXZlIGlkZW50aWNhbCBsYXlvdXQgcHJvdmlkZWQgZm9yIGZvcm0gZ3JvdXAuICovXG4gICAgQElucHV0KClcbiAgICB1bmlmaWVkTGF5b3V0ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aXphcmQgdmFsdWUgd2hlbiBpdCdzIGNvbXBsZXRlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICB3aXphcmRGaW5pc2hlZDogRXZlbnRFbWl0dGVyPFdpemFyZEdlbmVyYXRvckZvcm1zVmFsdWU+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgLyoqXG4gICAgICogRmxhZyBpbmRpY2F0aW5nIHRoYXQgd2l6YXJkIGlzIHJlYWR5IHRvIGJlIHNob3duXG4gICAgICovXG4gICAgd2l6YXJkQ3JlYXRlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIElzIGN1cnJlbnQgc3RlcCBpcyBzdW1tYXJ5IHN0ZXAuXG4gICAgICovXG4gICAgZ2V0IGlzU3VtbWFyeVN0ZXAoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0Q3VycmVudFN0ZXBJbmRleCgpO1xuXG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGVJdGVtc1tjdXJyZW50SW5kZXhdPy5zdW1tYXJ5ID09PSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBcnJheSBvZiB2aXNpYmxlIFdpemFyZCBTdGVwcy5cbiAgICAgKi9cbiAgICBzZXQgdmlzaWJsZUl0ZW1zKGl0ZW1zOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSkge1xuICAgICAgICB0aGlzLl92aXNpYmxlSXRlbXMgPSBpdGVtcztcbiAgICB9XG4gICAgZ2V0IHZpc2libGVJdGVtcygpOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlSXRlbXMgfHwgdGhpcy5faXRlbXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgb3Igbm90IFdpemFyZCBpcyBjdXJyZW50bHkgb24gdGhlIGZpcnN0IHN0ZXBcbiAgICAgKi9cbiAgICBnZXQgaXNGaXJzdFN0ZXAoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnZpc2libGVJdGVtc1swXT8uc3RhdHVzID09PSAnY3VycmVudCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgb3Igbm90IFdpemFyZCBpcyBjdXJyZW50bHkgb24gdGhlIGxhc3Qgc3RlcFxuICAgICAqL1xuICAgIGdldCBpc0xhc3RTdGVwKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBsYXN0U3RlcCA9IHRoaXMudmlzaWJsZUl0ZW1zW3RoaXMudmlzaWJsZUl0ZW1zLmxlbmd0aCAtIDFdO1xuICAgICAgICByZXR1cm4gbGFzdFN0ZXA/LnN0YXR1cyA9PT0gJ2N1cnJlbnQnICYmICFsYXN0U3RlcC5icmFuY2hpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBjdXJyZW50IHN0ZXAgaXMgYSBicmFuY2hpbmcgc3RlcC5cbiAgICAgKi9cbiAgICBnZXQgaXNCcmFuY2hpbmdTdGVwKCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjdXJyZW50SW5kZXggPSB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldEN1cnJlbnRTdGVwSW5kZXgoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fdmlzaWJsZUl0ZW1zW2N1cnJlbnRJbmRleF0/LmJyYW5jaGluZyA9PT0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBuZXh0IHN0ZXAgaXMgYSBTdW1tYXJ5IHN0ZXAuXG4gICAgICovXG4gICAgZ2V0IGlzTmV4dFN0ZXBTdW1tYXJ5KCk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBuZXh0U3RlcCA9IHRoaXMudmlzaWJsZUl0ZW1zW3RoaXMuX25leHRTdGVwSW5kZXhdO1xuICAgICAgICByZXR1cm4gbmV4dFN0ZXA/LnN1bW1hcnkgPT09IHRydWU7XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlIGN1cnJlbnQgc3RlcCBpcyBjb21wbGV0ZWQgKi9cbiAgICBnZXQgaXNDdXJyZW50U3RlcENvbXBsZXRlZCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRDdXJyZW50U3RlcEluZGV4KCk7XG4gICAgICAgIHJldHVybiB0aGlzLl92aXNpYmxlSXRlbXNbY3VycmVudEluZGV4XT8uY29tcGxldGVkID09PSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfdmlzaWJsZUl0ZW1zOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfbmV4dFN0ZXBJbmRleDogbnVtYmVyO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfc3RlcHNPcmRlckNoYW5nZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfbmF2aWdhdGlvbkJ1dHRvbkxhYmVsczogUmVxdWlyZWQ8V2l6YXJkTmF2aWdhdGlvbkJ1dHRvbnM+ID0gREVGQVVMVF9XSVpBUkRfTkFWSUdBVElPTl9CVVRUT05TO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF93aXphcmRHZW5lcmF0b3JTZXJ2aWNlID0gaW5qZWN0KFdpemFyZEdlbmVyYXRvclNlcnZpY2UpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgX2NkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9pdGVtczogUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfYXBwZW5kVG9XaXphcmQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9mb3JtUGVuZGluZyA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZVxuICAgICAgICAgICAgLmdldFZpc2libGVTdGVwcygpXG4gICAgICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoMTApLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2aXNpYmxlU3RlcHMpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnZpc2libGVJdGVtcyA9IHZpc2libGVTdGVwcztcbiAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlXG4gICAgICAgICAgICAudHJhY2tTdGVwc0NvbXBvbmVudHMoKVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoc3RlcHNDb21wb25lbnRzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHN0ZXBzQ29tcG9uZW50cy5zaXplID09PSB0aGlzLml0ZW1zPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2V0VmlzaWJsZVN0ZXBzKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZVxuICAgICAgICAgICAgLnRyYWNrQXBwZW5kVG9XaXphcmRTdGF0ZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2FwcGVuZFRvV2l6YXJkID0gdmFsdWU7XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlXG4gICAgICAgICAgICAudHJhY2tTdGVwc09yZGVyKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKG5ld05leHRTdGVwKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbmV4dFN0ZXBJbmRleCA9IG5ld05leHRTdGVwO1xuICAgICAgICAgICAgICAgIHRoaXMuX3N0ZXBzT3JkZXJDaGFuZ2VkID0gdHJ1ZTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2VcbiAgICAgICAgICAgIC50cmFja05leHRTdGVwSW5kZXgoKVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9uZXh0U3RlcEluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmV2ZXJ0cyBXaXphcmQgcHJvZ3Jlc3Mgb25lIHN0ZXAgYmFjay5cbiAgICAgKi9cbiAgICBnb0JhY2soKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRTdGVwSW5kZXggPSB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldEN1cnJlbnRTdGVwSW5kZXgoKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNTdGVwSW5kZXggPSBjdXJyZW50U3RlcEluZGV4IC0gMTtcblxuICAgICAgICBpZiAodGhpcy52aXNpYmxlSXRlbXNbcHJldmlvdXNTdGVwSW5kZXhdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3N0ZXBzT3JkZXJDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXNbY3VycmVudFN0ZXBJbmRleF0uc3RhdHVzID0gJ3VwY29taW5nJztcbiAgICAgICAgdGhpcy52aXNpYmxlSXRlbXNbcHJldmlvdXNTdGVwSW5kZXhdLnN0YXR1cyA9ICdjdXJyZW50JztcbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zZXRWaXNpYmxlU3RlcHModGhpcy52aXNpYmxlSXRlbXMpO1xuXG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2Uuc2V0TmV4dFN0ZXBJbmRleChjdXJyZW50U3RlcEluZGV4KTtcblxuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFByb2dyZXNzZXMgdGhlIFdpemFyZCBvbmUgc3RlcCBmdXJ0aGVyLlxuICAgICAqL1xuICAgIGFzeW5jIGdvTmV4dCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX2Zvcm1QZW5kaW5nKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50U3RlcEluZGV4ID0gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRDdXJyZW50U3RlcEluZGV4KCk7XG4gICAgICAgIGNvbnN0IG5leHRTdGVwSW5kZXggPSB0aGlzLl9uZXh0U3RlcEluZGV4O1xuXG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2VcbiAgICAgICAgICAgIC52YWxpZGF0ZVN0ZXBGb3JtcygpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fc2V0VmlzaWJsZVN0ZXBzKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCBzdGVwcyA9IHRoaXMudmlzaWJsZUl0ZW1zO1xuXG4gICAgICAgICAgICAgICAgaWYgKHN0ZXBzW25leHRTdGVwSW5kZXhdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuX3N0ZXBzT3JkZXJDaGFuZ2VkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBzdGVwc1tjdXJyZW50U3RlcEluZGV4XS5zdGF0dXMgPSAnY29tcGxldGVkJztcbiAgICAgICAgICAgICAgICBzdGVwc1tjdXJyZW50U3RlcEluZGV4XS5jb21wbGV0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHN0ZXBzW25leHRTdGVwSW5kZXhdLnN0YXR1cyA9ICdjdXJyZW50JztcblxuICAgICAgICAgICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2Uuc2V0VmlzaWJsZVN0ZXBzKHN0ZXBzKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2Uuc2V0TmV4dFN0ZXBJbmRleChuZXh0U3RlcEluZGV4ICsgMSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3VibWl0cyBzdGVwIGZvcm1zLlxuICAgICAqIEBwYXJhbSBjdXJyZW50U3RlcEluZGV4IGN1cnJlbnQgc3RlcCBpbmRleC5cbiAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxXaXphcmRTdGVwU3VibWl0dGVkRm9ybXMgfCBudWxsPn0gT2JzZXJ2YWJsZSB3aXRoIGZvcm0gdmFsdWVzLlxuICAgICAqL1xuICAgIHN1Ym1pdFN0ZXBGb3JtcyhjdXJyZW50U3RlcEluZGV4Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxXaXphcmRTdGVwU3VibWl0dGVkRm9ybXMgfCBudWxsPiB7XG4gICAgICAgIHRoaXMuX2Zvcm1QZW5kaW5nID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5zdWJtaXRTdGVwRm9ybXMoY3VycmVudFN0ZXBJbmRleCkucGlwZShcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb3JtUGVuZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGVzIHRoZSB3aXphcmQgYW5kIGVtaXRzIGl0J3MgZm9ybWF0dGVkIHZhbHVlLlxuICAgICAqL1xuICAgIGFzeW5jIGZpbmlzaCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuaXNTdW1tYXJ5U3RlcCkge1xuICAgICAgICAgICAgY29uc3Qgd2l6YXJkUmVzdWx0ID0gYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRXaXphcmRGb3JtVmFsdWUodHJ1ZSk7XG4gICAgICAgICAgICB0aGlzLndpemFyZEZpbmlzaGVkLmVtaXQod2l6YXJkUmVzdWx0KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2VcbiAgICAgICAgICAgIC52YWxpZGF0ZVN0ZXBGb3JtcygpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgd2l6YXJkUmVzdWx0ID0gYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRXaXphcmRGb3JtVmFsdWUodHJ1ZSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLndpemFyZEZpbmlzaGVkLmVtaXQod2l6YXJkUmVzdWx0KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYWxsYmFjayBmdW5jdGlvbiB0byB1cGRhdGUgc3RlcHMgc3RhdHVzLlxuICAgICAqIEBwYXJhbSBzdGVwSWQgU3RlcCBJRCB0byBiZSB1cGRhdGVkLlxuICAgICAqIEBwYXJhbSBzdGF0dXMgTmV3IHN0ZXAgc3RhdHVzLlxuICAgICAqL1xuICAgIGFzeW5jIHN0ZXBTdGF0dXNDaGFuZ2VkKHN0ZXBJZDogc3RyaW5nLCBzdGF0dXM6IFdpemFyZFN0ZXBTdGF0dXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgc3RlcEluZGV4ID0gdGhpcy5fdmlzaWJsZUl0ZW1zLmZpbmRJbmRleCgocykgPT4gcy5pZCA9PT0gc3RlcElkKTtcblxuICAgICAgICB0aGlzLl92aXNpYmxlSXRlbXNbc3RlcEluZGV4XS5zdGF0dXMgPSBzdGF0dXM7XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5yZWZyZXNoU3RlcFZpc2liaWxpdHkoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBhc3luYyBfc2V0VmlzaWJsZVN0ZXBzKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnJlZnJlc2hTdGVwVmlzaWJpbGl0eSgpO1xuXG4gICAgICAgIHRoaXMud2l6YXJkQ3JlYXRlZCA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5fY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, DestroyRef, EventEmitter, Input, Output, QueryList, ViewChildren, ViewEncapsulation, inject } from '@angular/core';\nimport { FormGeneratorComponent, FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { isFunction } from '@fundamental-ngx/platform/shared';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { WizardGeneratorRefreshStrategy, WizardGeneratorService } from '../../wizard-generator.service';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../wizard-generator.service\";\nimport * as i2 from \"@fundamental-ngx/platform/form\";\nexport class WizardGeneratorStepComponent {\n /** @hidden */\n constructor(_wizardGeneratorService, _formGeneratorService) {\n this._wizardGeneratorService = _wizardGeneratorService;\n this._formGeneratorService = _formGeneratorService;\n /** Whether all form items should have identical layout provided for form group. */\n this.unifiedLayout = true;\n /**\n * @description Emits when all forms in the step has been submited\n */\n this.formsSubmitted = new EventEmitter();\n /**\n * @description Emits when all forms in the step has been created\n */\n this.formsCreated = new EventEmitter();\n /**\n * @hidden\n */\n this._submittedForms = {};\n /**\n * @hidden\n */\n this._formSubmitted$ = new Subject();\n /**\n * @hidden\n */\n this._forms = {};\n /**\n * @hidden\n * @private\n */\n this._hiddenFormGroupValues = {};\n /**\n * @hidden\n * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)\n */\n this._destroyRef = inject(DestroyRef);\n }\n /**\n * @hidden\n */\n async ngOnInit() {\n await this.refreshFormsVisibility();\n }\n /**\n * @hidden\n */\n ngOnDestroy() {\n this._wizardGeneratorService.removeWizardStepComponent(this.item.id);\n }\n /** @hidden */\n async ngOnChanges(changes) {\n if (changes.stepStatus && changes.stepStatus.currentValue === 'current' && this.formGenerators?.length > 0) {\n await this.updateFormsState();\n }\n }\n /**\n * @description Adds created form instance to the object of the forms.\n * @param form Form instance\n * @param key Form ID from @see item\n */\n async onFormCreated(form, key) {\n this._forms[key] = {\n title: this.item.formGroups?.find((g) => g.id === key)?.title ?? '',\n form\n };\n await this._wizardGeneratorService.refreshStepVisibility();\n if (Object.keys(this._forms).length === this.item.formGroups?.length) {\n await this.addComponentToParent();\n this.formsCreated.emit(this._forms);\n }\n if (this._hiddenFormGroupValues[key]) {\n form?.patchValue(this._hiddenFormGroupValues[key]);\n }\n this._trackDependencyFieldsChanges(form, key);\n }\n /**\n * @description Adds component to the service for further usage.\n */\n async addComponentToParent() {\n this._wizardGeneratorService.addWizardStepComponent(this, this.item.id);\n }\n /**\n * @description Callback function when form has been submitted.\n * @param result Form submission result.\n * @param index Form index in the step.\n */\n onFormSubmitted(result, index) {\n this._submittedForms[index] = result;\n if (Object.keys(this._submittedForms).length === this.formGenerators.length) {\n // Last form submission. Send data back to the parent component.\n this._formSubmitted$.next(this._submittedForms);\n }\n }\n /**\n * Returns visible forms in the step.\n */\n getVisibleForms() {\n return Object.keys(this._forms).reduce((acc, key) => {\n if (this._visibleFormGroupIds[key] || this._visibleFormGroupIds[key] === undefined) {\n acc[key] = this._forms[key];\n }\n return acc;\n }, {});\n }\n /**\n * @description Clears previously submitted form values and re-submit them again.\n * @returns Subject, which will return forms value.\n */\n submitForms(skipIfUntouched = false) {\n if (skipIfUntouched && !this._wizardGeneratorService.stepSubmitted(this.item.id)) {\n setTimeout(() => {\n this._formSubmitted$.next(null);\n });\n return this._formSubmitted$;\n }\n // Clear previously submitted form values and re-submit them again.\n this._submittedForms = {};\n setTimeout(() => {\n this.formGenerators.forEach((formComponent) => {\n formComponent.submit();\n });\n });\n return this._formSubmitted$;\n }\n /**\n * Triggers form value revalidation and checks if field in form should be visible.\n */\n async updateFormsState() {\n if (this.formGenerators) {\n for (const formGenerator of this.formGenerators.toArray()) {\n await formGenerator.refreshStepsVisibility();\n }\n }\n }\n /**\n * Refreshes step form group visibility.\n */\n async refreshFormsVisibility() {\n this._visibleFormGroupIds = {};\n if (!this.item.formGroups) {\n return;\n }\n for (const formGroup of this.item.formGroups.filter((fg) => isFunction(fg.when))) {\n const result = await this._wizardGeneratorService.refreshFormVisibility(formGroup);\n if (result === this._visibleFormGroupIds[formGroup.id]) {\n return;\n }\n const form = this._forms[formGroup.id]?.form;\n // Store form value so it could be restored later.\n if (!result) {\n this._hiddenFormGroupValues[formGroup.id] = form?.value;\n }\n this._visibleFormGroupIds[formGroup.id] = result;\n }\n }\n /**\n * @hidden\n * @description Keeps track on dependency fields for other steps and refreshes the view when they changed.\n * @param form\n * @param key\n */\n _trackDependencyFieldsChanges(form, key) {\n this._trackedFields = this._wizardGeneratorService.getStepDependencyFields(this.item.id);\n if (this._trackedFields && this._trackedFields[key]) {\n Object.entries(this._trackedFields[key]).forEach(([fieldId, strategies]) => {\n const control = this._formGeneratorService.getFormControl(form, fieldId);\n const refreshSteps = strategies[WizardGeneratorRefreshStrategy.REFRESH_STEP_VISIBILITY] !== undefined;\n const revalidateForms = strategies[WizardGeneratorRefreshStrategy.REVALIDATE_STEP_FORMS];\n const refreshFormVisibility = strategies[WizardGeneratorRefreshStrategy.REFRESH_FORM_VISIBILITY];\n control?.valueChanges\n .pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef))\n .subscribe(async () => {\n if (refreshSteps) {\n await this._wizardGeneratorService.refreshStepVisibility();\n }\n if (revalidateForms?.length) {\n this._wizardGeneratorService.notifyStepsToRevalidateForms(revalidateForms);\n }\n if (refreshFormVisibility?.length) {\n await this._wizardGeneratorService.refreshFormsVisibility(refreshFormVisibility);\n }\n });\n });\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorStepComponent, deps: [{ token: i1.WizardGeneratorService }, { token: i2.FormGeneratorService }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: WizardGeneratorStepComponent, isStandalone: true, selector: \"fdp-wizard-generator-step\", inputs: { item: \"item\", stepStatus: \"stepStatus\", unifiedLayout: \"unifiedLayout\" }, outputs: { formsSubmitted: \"formsSubmitted\", formsCreated: \"formsCreated\" }, viewQueries: [{ propertyName: \"formGenerators\", predicate: FormGeneratorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: \"@if (item.title) {\\n <h3 fd-title>{{ item.title }}</h3>\\n}\\n@for (form of item.formGroups; track form; let i = $index) {\\n @if (_visibleFormGroupIds[form.id] !== false) {\\n <fdp-form-generator\\n [mainTitle]=\\\"form.title\\\"\\n [columnLayout]=\\\"form.columnLayout\\\"\\n [noAdditionalContent]=\\\"true\\\"\\n [formName]=\\\"form.id\\\"\\n [formItems]=\\\"$any(form.formItems)\\\"\\n [hint]=\\\"form.guiOptions?.hint!\\\"\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n (formCreated)=\\\"onFormCreated($event, form.id)\\\"\\n (formSubmittedStatus)=\\\"onFormSubmitted($event, form.id)\\\"\\n ></fdp-form-generator>\\n }\\n}\\n\", dependencies: [{ kind: \"component\", type: TitleComponent, selector: \"[fd-title], [fdTitle]\", inputs: [\"headerSize\", \"wrap\"], exportAs: [\"fd-title\"] }, { kind: \"component\", type: FormGeneratorComponent, selector: \"fdp-form-generator\", inputs: [\"formName\", \"formItems\", \"mainTitle\", \"hideMainTItle\", \"hint\", \"columnLayout\", \"labelColumnLayout\", \"fieldColumnLayout\", \"gapColumnLayout\", \"unifiedLayout\", \"inlineColumnLayout\", \"noAdditionalContent\"], outputs: [\"formCreated\", \"formSubmitted\", \"formSubmittedStatus\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorStepComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-wizard-generator-step', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [TitleComponent, FormGeneratorComponent], template: \"@if (item.title) {\\n <h3 fd-title>{{ item.title }}</h3>\\n}\\n@for (form of item.formGroups; track form; let i = $index) {\\n @if (_visibleFormGroupIds[form.id] !== false) {\\n <fdp-form-generator\\n [mainTitle]=\\\"form.title\\\"\\n [columnLayout]=\\\"form.columnLayout\\\"\\n [noAdditionalContent]=\\\"true\\\"\\n [formName]=\\\"form.id\\\"\\n [formItems]=\\\"$any(form.formItems)\\\"\\n [hint]=\\\"form.guiOptions?.hint!\\\"\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n (formCreated)=\\\"onFormCreated($event, form.id)\\\"\\n (formSubmittedStatus)=\\\"onFormSubmitted($event, form.id)\\\"\\n ></fdp-form-generator>\\n }\\n}\\n\" }]\n }], ctorParameters: () => [{ type: i1.WizardGeneratorService }, { type: i2.FormGeneratorService }], propDecorators: { formGenerators: [{\n type: ViewChildren,\n args: [FormGeneratorComponent]\n }], item: [{\n type: Input\n }], stepStatus: [{\n type: Input\n }], unifiedLayout: [{\n type: Input\n }], formsSubmitted: [{\n type: Output\n }], formsCreated: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci1zdGVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2l6YXJkLWdlbmVyYXRvci9jb21wb25lbnRzL3dpemFyZC1nZW5lcmF0b3Itc3RlcC93aXphcmQtZ2VuZXJhdG9yLXN0ZXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvd2l6YXJkLWdlbmVyYXRvci1zdGVwL3dpemFyZC1nZW5lcmF0b3Itc3RlcC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxFQUVULFlBQVksRUFDWixpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFHSCxzQkFBc0IsRUFDdEIsb0JBQW9CLEVBRXZCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSTlDLE9BQU8sRUFFSCw4QkFBOEIsRUFDOUIsc0JBQXNCLEVBQ3pCLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBUzdELE1BQU0sT0FBTyw0QkFBNEI7SUF5RXJDLGNBQWM7SUFDZCxZQUNZLHVCQUErQyxFQUMvQyxxQkFBMkM7UUFEM0MsNEJB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SSxFQUFFO29CQUNsQixJQUFJLFlBQVksRUFBRSxDQUFDO3dCQUNmLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLHFCQUFxQixFQUFFLENBQUM7b0JBQy9ELENBQUM7b0JBRUQsSUFBSSxlQUFlLEVBQUUsTUFBTSxFQUFFLENBQUM7d0JBQzFCLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyw0QkFBNEIsQ0FBQyxlQUFlLENBQUMsQ0FBQztvQkFDL0UsQ0FBQztvQkFFRCxJQUFJLHFCQUFxQixFQUFFLE1BQU0sRUFBRSxDQUFDO3dCQUNoQyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxzQkFBc0IsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO29CQUNyRixDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ1gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQzs4R0EvUFEsNEJBQTRCO2tHQUE1Qiw0QkFBNEIseVJBSXZCLHNCQUFzQixxRUNuRHhDLDJyQkFrQkEsNENEMkJjLGNBQWMsMEhBQUUsc0JBQXNCOzsyRkFFdkMsNEJBQTRCO2tCQVB4QyxTQUFTOytCQUNJLDJCQUEyQixpQkFFdEIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxXQUN0QyxDQUFDLGNBQWMsRUFBRSxzQkFBc0IsQ0FBQzs4SEFNWCxjQUFjO3NCQUFuRCxZQUFZO3VCQUFDLHNCQUFzQjtnQkFNcEMsSUFBSTtzQkFESCxLQUFLO2dCQU9OLFVBQVU7c0JBRFQsS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBT04sY0FBYztzQkFEYixNQUFNO2dCQU9QLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRyZW4sXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgV2l6YXJkU3RlcFN0YXR1cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS93aXphcmQnO1xuXG5pbXBvcnQge1xuICAgIER5bmFtaWNGb3JtR3JvdXAsXG4gICAgRHluYW1pY0Zvcm1WYWx1ZSxcbiAgICBGb3JtR2VuZXJhdG9yQ29tcG9uZW50LFxuICAgIEZvcm1HZW5lcmF0b3JTZXJ2aWNlLFxuICAgIFN1Ym1pdEZvcm1FdmVudFJlc3VsdFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2Zvcm0nO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vc2hhcmVkJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFdpemFyZFN0ZXBGb3JtcywgV2l6YXJkU3RlcFN1Ym1pdHRlZEZvcm1zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWZvcm1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclN0ZXAgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3dpemFyZC1zdGVwLmludGVyZmFjZSc7XG5pbXBvcnQge1xuICAgIERlcGVuZGVuY3lTdGVwcyxcbiAgICBXaXphcmRHZW5lcmF0b3JSZWZyZXNoU3RyYXRlZ3ksXG4gICAgV2l6YXJkR2VuZXJhdG9yU2VydmljZVxufSBmcm9tICcuLi8uLi93aXphcmQtZ2VuZXJhdG9yLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXdpemFyZC1nZW5lcmF0b3Itc3RlcCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3dpemFyZC1nZW5lcmF0b3Itc3RlcC5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBpbXBvcnRzOiBbVGl0bGVDb21wb25lbnQsIEZvcm1HZW5lcmF0b3JDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIFdpemFyZEdlbmVyYXRvclN0ZXBDb21wb25lbnQgaW1wbGVtZW50cyBXaXphcmRHZW5lcmF0b3JTdGVwLCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzIHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gU3RlcCBGb3JtIEdlbmVyYXRvciBjb21wb25lbnRzLlxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGRyZW4oRm9ybUdlbmVyYXRvckNvbXBvbmVudCkgZm9ybUdlbmVyYXRvcnM6IFF1ZXJ5TGlzdDxGb3JtR2VuZXJhdG9yQ29tcG9uZW50PjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDdXJyZW50IHN0ZXAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpdGVtOiBXaXphcmRHZW5lcmF0b3JJdGVtO1xuXG4gICAgLyoqXG4gICAgICogV2l6YXJkIHN0ZXAgc3RhdHVzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RlcFN0YXR1czogV2l6YXJkU3RlcFN0YXR1cztcblxuICAgIC8qKiBXaGV0aGVyIGFsbCBmb3JtIGl0ZW1zIHNob3VsZCBoYXZlIGlkZW50aWNhbCBsYXlvdXQgcHJvdmlkZWQgZm9yIGZvcm0gZ3JvdXAuICovXG4gICAgQElucHV0KClcbiAgICB1bmlmaWVkTGF5b3V0ID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIGFsbCBmb3JtcyBpbiB0aGUgc3RlcCBoYXMgYmVlbiBzdWJtaXRlZFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1zU3VibWl0dGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEeW5hbWljRm9ybVZhbHVlW10+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBhbGwgZm9ybXMgaW4gdGhlIHN0ZXAgaGFzIGJlZW4gY3JlYXRlZFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1zQ3JlYXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8V2l6YXJkU3RlcEZvcm1zPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF92aXNpYmxlRm9ybUdyb3VwSWRzOiBSZWNvcmQ8c3RyaW5nLCBib29sZWFuPjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9zdWJtaXR0ZWRGb3JtczogV2l6YXJkU3RlcFN1Ym1pdHRlZEZvcm1zID0ge307XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZm9ybVN1Ym1pdHRlZCQgPSBuZXcgU3ViamVjdDxXaXphcmRTdGVwU3VibWl0dGVkRm9ybXMgfCBudWxsPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX2Zvcm1zOiBXaXphcmRTdGVwRm9ybXMgPSB7fTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcml2YXRlIF90cmFja2VkRmllbGRzOiBEZXBlbmRlbmN5U3RlcHM7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHByaXZhdGVcbiAgICAgKi9cbiAgICBwcml2YXRlIF9oaWRkZW5Gb3JtR3JvdXBWYWx1ZXM6IHtcbiAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgIH0gPSB7fTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBBbiBSeEpTIFN1YmplY3QgdGhhdCB3aWxsIGtpbGwgdGhlIGRhdGEgc3RyZWFtIHVwb24gY29tcG9uZW504oCZcyBkZXN0cnVjdGlvbiAoZm9yIHVuc3Vic2NyaWJpbmcpXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX3dpemFyZEdlbmVyYXRvclNlcnZpY2U6IFdpemFyZEdlbmVyYXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2Zvcm1HZW5lcmF0b3JTZXJ2aWNlOiBGb3JtR2VuZXJhdG9yU2VydmljZVxuICAgICkge31cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5yZWZyZXNoRm9ybXNWaXNpYmlsaXR5KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnJlbW92ZVdpemFyZFN0ZXBDb21wb25lbnQodGhpcy5pdGVtLmlkKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFzeW5jIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKGNoYW5nZXMuc3RlcFN0YXR1cyAmJiBjaGFuZ2VzLnN0ZXBTdGF0dXMuY3VycmVudFZhbHVlID09PSAnY3VycmVudCcgJiYgdGhpcy5mb3JtR2VuZXJhdG9ycz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy51cGRhdGVGb3Jtc1N0YXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQWRkcyBjcmVhdGVkIGZvcm0gaW5zdGFuY2UgdG8gdGhlIG9iamVjdCBvZiB0aGUgZm9ybXMuXG4gICAgICogQHBhcmFtIGZvcm0gRm9ybSBpbnN0YW5jZVxuICAgICAqIEBwYXJhbSBrZXkgRm9ybSBJRCBmcm9tIEBzZWUgaXRlbVxuICAgICAqL1xuICAgIGFzeW5jIG9uRm9ybUNyZWF0ZWQoZm9ybTogRHluYW1pY0Zvcm1Hcm91cCwga2V5OiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fZm9ybXNba2V5XSA9IHtcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLml0ZW0uZm9ybUdyb3Vwcz8uZmluZCgoZykgPT4gZy5pZCA9PT0ga2V5KT8udGl0bGUgPz8gJycsXG4gICAgICAgICAgICBmb3JtXG4gICAgICAgIH07XG5cbiAgICAgICAgYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5yZWZyZXNoU3RlcFZpc2liaWxpdHkoKTtcblxuICAgICAgICBpZiAoT2JqZWN0LmtleXModGhpcy5fZm9ybXMpLmxlbmd0aCA9PT0gdGhpcy5pdGVtLmZvcm1Hcm91cHM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5hZGRDb21wb25lbnRUb1BhcmVudCgpO1xuICAgICAgICAgICAgdGhpcy5mb3Jtc0NyZWF0ZWQuZW1pdCh0aGlzLl9mb3Jtcyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5faGlkZGVuRm9ybUdyb3VwVmFsdWVzW2tleV0pIHtcbiAgICAgICAgICAgIGZvcm0/LnBhdGNoVmFsdWUodGhpcy5faGlkZGVuRm9ybUdyb3VwVmFsdWVzW2tleV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdHJhY2tEZXBlbmRlbmN5RmllbGRzQ2hhbmdlcyhmb3JtLCBrZXkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBBZGRzIGNvbXBvbmVudCB0byB0aGUgc2VydmljZSBmb3IgZnVydGhlciB1c2FnZS5cbiAgICAgKi9cbiAgICBhc3luYyBhZGRDb21wb25lbnRUb1BhcmVudCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5hZGRXaXphcmRTdGVwQ29tcG9uZW50KHRoaXMsIHRoaXMuaXRlbS5pZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENhbGxiYWNrIGZ1bmN0aW9uIHdoZW4gZm9ybSBoYXMgYmVlbiBzdWJtaXR0ZWQuXG4gICAgICogQHBhcmFtIHJlc3VsdCBGb3JtIHN1Ym1pc3Npb24gcmVzdWx0LlxuICAgICAqIEBwYXJhbSBpbmRleCBGb3JtIGluZGV4IGluIHRoZSBzdGVwLlxuICAgICAqL1xuICAgIG9uRm9ybVN1Ym1pdHRlZChyZXN1bHQ6IFN1Ym1pdEZvcm1FdmVudFJlc3VsdCwgaW5kZXg6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJtaXR0ZWRGb3Jtc1tpbmRleF0gPSByZXN1bHQ7XG5cbiAgICAgICAgaWYgKE9iamVjdC5rZXlzKHRoaXMuX3N1Ym1pdHRlZEZvcm1zKS5sZW5ndGggPT09IHRoaXMuZm9ybUdlbmVyYXRvcnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAvLyBMYXN0IGZvcm0gc3VibWlzc2lvbi4gU2VuZCBkYXRhIGJhY2sgdG8gdGhlIHBhcmVudCBjb21wb25lbnQuXG4gICAgICAgICAgICB0aGlzLl9mb3JtU3VibWl0dGVkJC5uZXh0KHRoaXMuX3N1Ym1pdHRlZEZvcm1zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdmlzaWJsZSBmb3JtcyBpbiB0aGUgc3RlcC5cbiAgICAgKi9cbiAgICBnZXRWaXNpYmxlRm9ybXMoKTogV2l6YXJkU3RlcEZvcm1zIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuX2Zvcm1zKS5yZWR1Y2UoKGFjYywga2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5fdmlzaWJsZUZvcm1Hcm91cElkc1trZXldIHx8IHRoaXMuX3Zpc2libGVGb3JtR3JvdXBJZHNba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgYWNjW2tleV0gPSB0aGlzLl9mb3Jtc1trZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDbGVhcnMgcHJldmlvdXNseSBzdWJtaXR0ZWQgZm9ybSB2YWx1ZXMgYW5kIHJlLXN1Ym1pdCB0aGVtIGFnYWluLlxuICAgICAqIEByZXR1cm5zIFN1YmplY3QsIHdoaWNoIHdpbGwgcmV0dXJuIGZvcm1zIHZhbHVlLlxuICAgICAqL1xuICAgIHN1Ym1pdEZvcm1zKHNraXBJZlVudG91Y2hlZCA9IGZhbHNlKTogU3ViamVjdDxXaXphcmRTdGVwU3VibWl0dGVkRm9ybXMgfCBudWxsPiB7XG4gICAgICAgIGlmIChza2lwSWZVbnRvdWNoZWQgJiYgIXRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2Uuc3RlcFN1Ym1pdHRlZCh0aGlzLml0ZW0uaWQpKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9mb3JtU3VibWl0dGVkJC5uZXh0KG51bGwpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZm9ybVN1Ym1pdHRlZCQ7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBDbGVhciBwcmV2aW91c2x5IHN1Ym1pdHRlZCBmb3JtIHZhbHVlcyBhbmQgcmUtc3VibWl0IHRoZW0gYWdhaW4uXG4gICAgICAgIHRoaXMuX3N1Ym1pdHRlZEZvcm1zID0ge307XG5cbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmZvcm1HZW5lcmF0b3JzLmZvckVhY2goKGZvcm1Db21wb25lbnQpID0+IHtcbiAgICAgICAgICAgICAgICBmb3JtQ29tcG9uZW50LnN1Ym1pdCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtU3VibWl0dGVkJDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmlnZ2VycyBmb3JtIHZhbHVlIHJldmFsaWRhdGlvbiBhbmQgY2hlY2tzIGlmIGZpZWxkIGluIGZvcm0gc2hvdWxkIGJlIHZpc2libGUuXG4gICAgICovXG4gICAgYXN5bmMgdXBkYXRlRm9ybXNTdGF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybUdlbmVyYXRvcnMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZm9ybUdlbmVyYXRvciBvZiB0aGlzLmZvcm1HZW5lcmF0b3JzLnRvQXJyYXkoKSkge1xuICAgICAgICAgICAgICAgIGF3YWl0IGZvcm1HZW5lcmF0b3IucmVmcmVzaFN0ZXBzVmlzaWJpbGl0eSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVmcmVzaGVzIHN0ZXAgZm9ybSBncm91cCB2aXNpYmlsaXR5LlxuICAgICAqL1xuICAgIGFzeW5jIHJlZnJlc2hGb3Jtc1Zpc2liaWxpdHkoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMuX3Zpc2libGVGb3JtR3JvdXBJZHMgPSB7fTtcblxuICAgICAgICBpZiAoIXRoaXMuaXRlbS5mb3JtR3JvdXBzKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IGZvcm1Hcm91cCBvZiB0aGlzLml0ZW0uZm9ybUdyb3Vwcy5maWx0ZXIoKGZnKSA9PiBpc0Z1bmN0aW9uKGZnLndoZW4pKSkge1xuICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5yZWZyZXNoRm9ybVZpc2liaWxpdHkoZm9ybUdyb3VwKTtcblxuICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gdGhpcy5fdmlzaWJsZUZvcm1Hcm91cElkc1tmb3JtR3JvdXAuaWRdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmb3JtID0gdGhpcy5fZm9ybXNbZm9ybUdyb3VwLmlkXT8uZm9ybTtcblxuICAgICAgICAgICAgLy8gU3RvcmUgZm9ybSB2YWx1ZSBzbyBpdCBjb3VsZCBiZSByZXN0b3JlZCBsYXRlci5cbiAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5faGlkZGVuRm9ybUdyb3VwVmFsdWVzW2Zvcm1Hcm91cC5pZF0gPSBmb3JtPy52YWx1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fdmlzaWJsZUZvcm1Hcm91cElkc1tmb3JtR3JvdXAuaWRdID0gcmVzdWx0O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBLZWVwcyB0cmFjayBvbiBkZXBlbmRlbmN5IGZpZWxkcyBmb3Igb3RoZXIgc3RlcHMgYW5kIHJlZnJlc2hlcyB0aGUgdmlldyB3aGVuIHRoZXkgY2hhbmdlZC5cbiAgICAgKiBAcGFyYW0gZm9ybVxuICAgICAqIEBwYXJhbSBrZXlcbiAgICAgKi9cbiAgICBwcml2YXRlIF90cmFja0RlcGVuZGVuY3lGaWVsZHNDaGFuZ2VzKGZvcm06IER5bmFtaWNGb3JtR3JvdXAsIGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RyYWNrZWRGaWVsZHMgPSB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldFN0ZXBEZXBlbmRlbmN5RmllbGRzKHRoaXMuaXRlbS5pZCk7XG5cbiAgICAgICAgaWYgKHRoaXMuX3RyYWNrZWRGaWVsZHMgJiYgdGhpcy5fdHJhY2tlZEZpZWxkc1trZXldKSB7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyh0aGlzLl90cmFja2VkRmllbGRzW2tleV0pLmZvckVhY2goKFtmaWVsZElkLCBzdHJhdGVnaWVzXSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLl9mb3JtR2VuZXJhdG9yU2VydmljZS5nZXRGb3JtQ29udHJvbChmb3JtLCBmaWVsZElkKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHJlZnJlc2hTdGVwcyA9IHN0cmF0ZWdpZXNbV2l6YXJkR2VuZXJhdG9yUmVmcmVzaFN0cmF0ZWd5LlJFRlJFU0hfU1RFUF9WSVNJQklMSVRZXSAhPT0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJldmFsaWRhdGVGb3JtcyA9IHN0cmF0ZWdpZXNbV2l6YXJkR2VuZXJhdG9yUmVmcmVzaFN0cmF0ZWd5LlJFVkFMSURBVEVfU1RFUF9GT1JNU107XG4gICAgICAgICAgICAgICAgY29uc3QgcmVmcmVzaEZvcm1WaXNpYmlsaXR5ID0gc3RyYXRlZ2llc1tXaXphcmRHZW5lcmF0b3JSZWZyZXNoU3RyYXRlZ3kuUkVGUkVTSF9GT1JNX1ZJU0lCSUxJVFldO1xuXG4gICAgICAgICAgICAgICAgY29udHJvbD8udmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSg1MCksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLl9kZXN0cm95UmVmKSlcbiAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVmcmVzaFN0ZXBzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5yZWZyZXNoU3RlcFZpc2liaWxpdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJldmFsaWRhdGVGb3Jtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5ub3RpZnlTdGVwc1RvUmV2YWxpZGF0ZUZvcm1zKHJldmFsaWRhdGVGb3Jtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChyZWZyZXNoRm9ybVZpc2liaWxpdHk/Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UucmVmcmVzaEZvcm1zVmlzaWJpbGl0eShyZWZyZXNoRm9ybVZpc2liaWxpdHkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGlmIChpdGVtLnRpdGxlKSB7XG4gICAgPGgzIGZkLXRpdGxlPnt7IGl0ZW0udGl0bGUgfX08L2gzPlxufVxuQGZvciAoZm9ybSBvZiBpdGVtLmZvcm1Hcm91cHM7IHRyYWNrIGZvcm07IGxldCBpID0gJGluZGV4KSB7XG4gICAgQGlmIChfdmlzaWJsZUZvcm1Hcm91cElkc1tmb3JtLmlkXSAhPT0gZmFsc2UpIHtcbiAgICAgICAgPGZkcC1mb3JtLWdlbmVyYXRvclxuICAgICAgICAgICAgW21haW5UaXRsZV09XCJmb3JtLnRpdGxlXCJcbiAgICAgICAgICAgIFtjb2x1bW5MYXlvdXRdPVwiZm9ybS5jb2x1bW5MYXlvdXRcIlxuICAgICAgICAgICAgW25vQWRkaXRpb25hbENvbnRlbnRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbZm9ybU5hbWVdPVwiZm9ybS5pZFwiXG4gICAgICAgICAgICBbZm9ybUl0ZW1zXT1cIiRhbnkoZm9ybS5mb3JtSXRlbXMpXCJcbiAgICAgICAgICAgIFtoaW50XT1cImZvcm0uZ3VpT3B0aW9ucz8uaGludCFcIlxuICAgICAgICAgICAgW3VuaWZpZWRMYXlvdXRdPVwidW5pZmllZExheW91dFwiXG4gICAgICAgICAgICAoZm9ybUNyZWF0ZWQpPVwib25Gb3JtQ3JlYXRlZCgkZXZlbnQsIGZvcm0uaWQpXCJcbiAgICAgICAgICAgIChmb3JtU3VibWl0dGVkU3RhdHVzKT1cIm9uRm9ybVN1Ym1pdHRlZCgkZXZlbnQsIGZvcm0uaWQpXCJcbiAgICAgICAgPjwvZmRwLWZvcm0tZ2VuZXJhdG9yPlxuICAgIH1cbn1cbiJdfQ==","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { FormLabelComponent } from '@fundamental-ngx/core/form';\nimport { LayoutGridModule } from '@fundamental-ngx/core/layout-grid';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { LinkComponent } from '@fundamental-ngx/platform/link';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/layout-grid\";\nexport class WizardSummarySectionComponent {\n constructor() {\n /**\n * Emits when step edit button clicked.\n */\n this.editStep = new EventEmitter();\n }\n /**\n * @hidden\n * @description Sets current step on wizard.\n * @param event Mouse click event to prevent.\n */\n _editStep(event) {\n event.preventDefault();\n this.editStep.emit(this.step.id);\n }\n /** @hidden */\n _trackFn(_, form) {\n return form.id;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardSummarySectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: WizardSummarySectionComponent, isStandalone: true, selector: \"fdp-wizard-summary-section\", inputs: { step: \"step\" }, outputs: { editStep: \"editStep\" }, ngImport: i0, template: \"@for (group of step.forms; track _trackFn($index, group)) {\\n <h4 fd-title [headerSize]=\\\"4\\\">{{ group.title }}</h4>\\n <fd-layout-grid [style.margin-bottom.rem]=\\\"2\\\">\\n @for (item of group.items; track item; let index = $index) {\\n <div fdLayoutGridRow>\\n <div [fdLayoutGridCol]=\\\"4\\\" [colMd]=\\\"2\\\" [colLg]=\\\"2\\\" [colXl]=\\\"2\\\">\\n <div>\\n <label fd-form-label [allowWrap]=\\\"true\\\" [alignLabelEnd]=\\\"true\\\"> {{ item.label }}: </label>\\n </div>\\n </div>\\n <div [fdLayoutGridCol]=\\\"4\\\" [colMd]=\\\"5\\\" [colLg]=\\\"5\\\" [colXl]=\\\"5\\\">\\n <div>\\n <label fd-form-label [allowWrap]=\\\"true\\\">\\n {{ item.value || '-' }}\\n </label>\\n </div>\\n </div>\\n @if (index === group.items.length - 1) {\\n <div [fdLayoutGridCol]=\\\"1\\\" [colMd]=\\\"5\\\" [colLg]=\\\"5\\\" [colXl]=\\\"5\\\">\\n <fdp-link href=\\\"#\\\" (click)=\\\"_editStep($event)\\\">\\n {{ 'platformWizardGenerator.summarySectionEditStep' | fdTranslate }}\\n </fdp-link>\\n </div>\\n }\\n </div>\\n }\\n </fd-layout-grid>\\n}\\n\", dependencies: [{ kind: \"component\", type: TitleComponent, selector: \"[fd-title], [fdTitle]\", inputs: [\"headerSize\", \"wrap\"], exportAs: [\"fd-title\"] }, { kind: \"ngmodule\", type: LayoutGridModule }, { kind: \"component\", type: i1.LayoutGridComponent, selector: \"fd-layout-grid, [fdLayoutGrid]\", inputs: [\"class\", \"noGap\", \"noHorizontalGap\", \"noVerticalGap\"] }, { kind: \"directive\", type: i1.LayoutGridColDirective, selector: \"[fd-layout-grid-col], [fdLayoutGridCol]\", inputs: [\"fdLayoutGridCol\", \"colGrow\", \"colMd\", \"colLg\", \"colXl\", \"colOffset\", \"colOffsetMd\", \"colOffsetLg\", \"colOffsetXl\", \"class\"] }, { kind: \"directive\", type: i1.LayoutGridRowDirective, selector: \"[fd-layout-grid-row], [fdLayoutGridRow]\" }, { kind: \"component\", type: FormLabelComponent, selector: \"[fd-form-label]\", inputs: [\"required\", \"colon\", \"alignLabelEnd\", \"inlineHelpContent\", \"inlineHelpGlyph\", \"inlineHelpTriggers\", \"inlineHelpBodyPlacement\", \"inlineHelpPlacement\", \"allowWrap\", \"inlineHelpLabel\", \"id\"] }, { kind: \"component\", type: LinkComponent, selector: \"fdp-link\", inputs: [\"href\", \"target\", \"linkType\", \"type\", \"inverted\", \"title\", \"hreflang\", \"download\", \"media\", \"rel\", \"truncate\"], outputs: [\"click\"] }, { kind: \"pipe\", type: FdTranslatePipe, name: \"fdTranslate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardSummarySectionComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-wizard-summary-section', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [TitleComponent, LayoutGridModule, FormLabelComponent, LinkComponent, FdTranslatePipe], template: \"@for (group of step.forms; track _trackFn($index, group)) {\\n <h4 fd-title [headerSize]=\\\"4\\\">{{ group.title }}</h4>\\n <fd-layout-grid [style.margin-bottom.rem]=\\\"2\\\">\\n @for (item of group.items; track item; let index = $index) {\\n <div fdLayoutGridRow>\\n <div [fdLayoutGridCol]=\\\"4\\\" [colMd]=\\\"2\\\" [colLg]=\\\"2\\\" [colXl]=\\\"2\\\">\\n <div>\\n <label fd-form-label [allowWrap]=\\\"true\\\" [alignLabelEnd]=\\\"true\\\"> {{ item.label }}: </label>\\n </div>\\n </div>\\n <div [fdLayoutGridCol]=\\\"4\\\" [colMd]=\\\"5\\\" [colLg]=\\\"5\\\" [colXl]=\\\"5\\\">\\n <div>\\n <label fd-form-label [allowWrap]=\\\"true\\\">\\n {{ item.value || '-' }}\\n </label>\\n </div>\\n </div>\\n @if (index === group.items.length - 1) {\\n <div [fdLayoutGridCol]=\\\"1\\\" [colMd]=\\\"5\\\" [colLg]=\\\"5\\\" [colXl]=\\\"5\\\">\\n <fdp-link href=\\\"#\\\" (click)=\\\"_editStep($event)\\\">\\n {{ 'platformWizardGenerator.summarySectionEditStep' | fdTranslate }}\\n </fdp-link>\\n </div>\\n }\\n </div>\\n }\\n </fd-layout-grid>\\n}\\n\" }]\n }], propDecorators: { step: [{\n type: Input\n }], editStep: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLXN1bW1hcnktc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3IvY29tcG9uZW50cy93aXphcmQtc3VtbWFyeS1zdGVwL3dpemFyZC1zdW1tYXJ5LXNlY3Rpb24vd2l6YXJkLXN1bW1hcnktc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3IvY29tcG9uZW50cy93aXphcmQtc3VtbWFyeS1zdGVwL3dpemFyZC1zdW1tYXJ5LXNlY3Rpb24vd2l6YXJkLXN1bW1hcnktc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOzs7QUFhL0QsTUFBTSxPQUFPLDZCQUE2QjtJQVAxQztRQWNJOztXQUVHO1FBRUgsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7S0FnQnpDO0lBZEc7Ozs7T0FJRztJQUNILFNBQVMsQ0FBQyxLQUE4QztRQUNwRCxLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsY0FBYztJQUNkLFFBQVEsQ0FBQyxDQUFTLEVBQUUsSUFBdUI7UUFDdkMsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7OEdBMUJRLDZCQUE2QjtrR0FBN0IsNkJBQTZCLG1KQ25CMUMsZzFDQTRCQSw0Q0RYYyxjQUFjLHlIQUFFLGdCQUFnQixnaUJBQUUsa0JBQWtCLGtRQUFFLGFBQWEsNkxBQUUsZUFBZTs7MkZBRXJGLDZCQUE2QjtrQkFQekMsU0FBUzsrQkFDSSw0QkFBNEIsbUJBRXJCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksV0FDNUIsQ0FBQyxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLGVBQWUsQ0FBQzs4QkFPL0YsSUFBSTtzQkFESCxLQUFLO2dCQU9OLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRm9ybUxhYmVsQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Zvcm0nO1xuaW1wb3J0IHsgTGF5b3V0R3JpZE1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9sYXlvdXQtZ3JpZCc7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBGZFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2kxOG4nO1xuaW1wb3J0IHsgTGlua0NvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vbGluayc7XG5pbXBvcnQge1xuICAgIEZvcm1hdHRlZEZvcm1TdGVwLFxuICAgIFdpemFyZEdlbmVyYXRvclN1bW1hcnlJdGVtXG59IGZyb20gJy4uLy4uLy4uL2ludGVyZmFjZXMvd2l6YXJkLWdlbmVyYXRvci1zdW1tYXJ5LWl0ZW0uaW50ZXJmYWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtd2l6YXJkLXN1bW1hcnktc2VjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3dpemFyZC1zdW1tYXJ5LXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaW1wb3J0czogW1RpdGxlQ29tcG9uZW50LCBMYXlvdXRHcmlkTW9kdWxlLCBGb3JtTGFiZWxDb21wb25lbnQsIExpbmtDb21wb25lbnQsIEZkVHJhbnNsYXRlUGlwZV1cbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkU3VtbWFyeVNlY3Rpb25Db21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDdXJyZW50IHN0ZXAgZm9yIHRoZSBzZWN0aW9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RlcDogV2l6YXJkR2VuZXJhdG9yU3VtbWFyeUl0ZW07XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuIHN0ZXAgZWRpdCBidXR0b24gY2xpY2tlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBlZGl0U3RlcCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBkZXNjcmlwdGlvbiBTZXRzIGN1cnJlbnQgc3RlcCBvbiB3aXphcmQuXG4gICAgICogQHBhcmFtIGV2ZW50IE1vdXNlIGNsaWNrIGV2ZW50IHRvIHByZXZlbnQuXG4gICAgICovXG4gICAgX2VkaXRTdGVwKGV2ZW50OiBNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudCB8IFRvdWNoRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgdGhpcy5lZGl0U3RlcC5lbWl0KHRoaXMuc3RlcC5pZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdHJhY2tGbihfOiBudW1iZXIsIGZvcm06IEZvcm1hdHRlZEZvcm1TdGVwKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGZvcm0uaWQ7XG4gICAgfVxufVxuIiwiQGZvciAoZ3JvdXAgb2Ygc3RlcC5mb3JtczsgdHJhY2sgX3RyYWNrRm4oJGluZGV4LCBncm91cCkpIHtcbiAgICA8aDQgZmQtdGl0bGUgW2hlYWRlclNpemVdPVwiNFwiPnt7IGdyb3VwLnRpdGxlIH19PC9oND5cbiAgICA8ZmQtbGF5b3V0LWdyaWQgW3N0eWxlLm1hcmdpbi1ib3R0b20ucmVtXT1cIjJcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBncm91cC5pdGVtczsgdHJhY2sgaXRlbTsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IGZkTGF5b3V0R3JpZFJvdz5cbiAgICAgICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiNFwiIFtjb2xNZF09XCIyXCIgW2NvbExnXT1cIjJcIiBbY29sWGxdPVwiMlwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgW2FsbG93V3JhcF09XCJ0cnVlXCIgW2FsaWduTGFiZWxFbmRdPVwidHJ1ZVwiPiB7eyBpdGVtLmxhYmVsIH19OiA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IFtmZExheW91dEdyaWRDb2xdPVwiNFwiIFtjb2xNZF09XCI1XCIgW2NvbExnXT1cIjVcIiBbY29sWGxdPVwiNVwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZkLWZvcm0tbGFiZWwgW2FsbG93V3JhcF09XCJ0cnVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbS52YWx1ZSB8fCAnLScgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIEBpZiAoaW5kZXggPT09IGdyb3VwLml0ZW1zLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBbZmRMYXlvdXRHcmlkQ29sXT1cIjFcIiBbY29sTWRdPVwiNVwiIFtjb2xMZ109XCI1XCIgW2NvbFhsXT1cIjVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtbGluayBocmVmPVwiI1wiIChjbGljayk9XCJfZWRpdFN0ZXAoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ICdwbGF0Zm9ybVdpemFyZEdlbmVyYXRvci5zdW1tYXJ5U2VjdGlvbkVkaXRTdGVwJyB8IGZkVHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2ZkcC1saW5rPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZmQtbGF5b3V0LWdyaWQ+XG59XG4iXX0=","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, ViewEncapsulation } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { WizardGeneratorService } from '../../wizard-generator.service';\nimport { WizardSummarySectionComponent } from './wizard-summary-section/wizard-summary-section.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../wizard-generator.service\";\nimport * as i2 from \"@fundamental-ngx/platform/form\";\nexport class WizardSummaryStepComponent {\n /**\n * @description Summary step status.\n */\n set status(status) {\n if (status === 'current') {\n this._wizardGeneratorService.getWizardFormValue(true).then((forms) => {\n this._submittedForms = forms;\n this._wizardSteps = this._wizardGeneratorService.items.filter((i) => this._submittedForms[i.id] !== undefined);\n this._formatWizardValue().then(() => {\n this._shouldRender = true;\n this._cd.detectChanges();\n });\n });\n }\n else {\n this._shouldRender = false;\n }\n this._cd.detectChanges();\n }\n /** @hidden */\n constructor(_wizardGeneratorService, _formGeneratorService, _cd) {\n this._wizardGeneratorService = _wizardGeneratorService;\n this._formGeneratorService = _formGeneratorService;\n this._cd = _cd;\n /**\n * Formatted wizard value with steps and their forms.\n */\n this.formattedWizardValue = [];\n /**\n * @hidden\n */\n this._shouldRender = false;\n /** @hidden */\n this._editStepFn = (stepId) => this.editStep(stepId);\n }\n /**\n * Opens defined step for editing.\n * @param stepId Defined step ID.\n */\n editStep(stepId) {\n this._wizardGeneratorService.editStep(stepId);\n }\n /** @hidden */\n _trackFn(_, step) {\n return step.id;\n }\n /** @hidden */\n async _formatWizardValue() {\n this.formattedWizardValue = [];\n for (const step of this._wizardSteps) {\n const component = this._wizardGeneratorService.stepsComponents.get(step.id);\n const componentForms = component?.getVisibleForms();\n if (!componentForms) {\n continue;\n }\n const formattedStepValue = await this._formatStepValue(componentForms, step);\n this.formattedWizardValue.push({\n id: step.id,\n name: step.name,\n title: step.title,\n forms: formattedStepValue\n });\n }\n }\n /** @hidden */\n async _formatStepValue(componentForms, step) {\n const formattedStepValue = [];\n for (const formGroup of step.formGroups ?? []) {\n const formId = formGroup.id;\n const form = componentForms[formId];\n // Form might be skipped due to conditional rendering\n if (!form) {\n continue;\n }\n const formattedFormValue = await this._formGeneratorService.getFormValue(form.form, true);\n const formattedForm = {\n title: form.title,\n id: formId,\n items: Object.keys(this._submittedForms[step.id][formId]).map((key) => {\n const formItem = this._formGeneratorService.getFormControl(form.form, key).formItem;\n return {\n label: formItem.message,\n value: formattedFormValue[key]\n };\n })\n };\n formattedStepValue.push(formattedForm);\n }\n return formattedStepValue;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardSummaryStepComponent, deps: [{ token: i1.WizardGeneratorService }, { token: i2.FormGeneratorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: WizardSummaryStepComponent, isStandalone: true, selector: \"fdp-wizard-summary-step\", inputs: { status: \"status\", customSummaryStepTemplate: \"customSummaryStepTemplate\" }, ngImport: i0, template: \"@if (_shouldRender) {\\n <ng-template #defaultsummaryStepTemplate>\\n @for (step of formattedWizardValue; track _trackFn($index, step)) {\\n <fdp-wizard-summary-section [step]=\\\"step\\\" (editStep)=\\\"editStep($event)\\\"></fdp-wizard-summary-section>\\n }\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"customSummaryStepTemplate || defaultsummaryStepTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ steps: formattedWizardValue, editStep: _editStepFn }\\\"\\n ></ng-template>\\n}\\n\", dependencies: [{ kind: \"component\", type: WizardSummarySectionComponent, selector: \"fdp-wizard-summary-section\", inputs: [\"step\"], outputs: [\"editStep\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardSummaryStepComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-wizard-summary-step', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [WizardSummarySectionComponent, NgTemplateOutlet], template: \"@if (_shouldRender) {\\n <ng-template #defaultsummaryStepTemplate>\\n @for (step of formattedWizardValue; track _trackFn($index, step)) {\\n <fdp-wizard-summary-section [step]=\\\"step\\\" (editStep)=\\\"editStep($event)\\\"></fdp-wizard-summary-section>\\n }\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"customSummaryStepTemplate || defaultsummaryStepTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ steps: formattedWizardValue, editStep: _editStepFn }\\\"\\n ></ng-template>\\n}\\n\" }]\n }], ctorParameters: () => [{ type: i1.WizardGeneratorService }, { type: i2.FormGeneratorService }, { type: i0.ChangeDetectorRef }], propDecorators: { status: [{\n type: Input\n }], customSummaryStepTemplate: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLXN1bW1hcnktc3RlcC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3IvY29tcG9uZW50cy93aXphcmQtc3VtbWFyeS1zdGVwL3dpemFyZC1zdW1tYXJ5LXN0ZXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvd2l6YXJkLXN1bW1hcnktc3RlcC93aXphcmQtc3VtbWFyeS1zdGVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxLQUFLLEVBRUwsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBR25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBT3RFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJEQUEyRCxDQUFDOzs7O0FBUzFHLE1BQU0sT0FBTywwQkFBMEI7SUFDbkM7O09BRUc7SUFDSCxJQUNJLE1BQU0sQ0FBQyxNQUF3QjtRQUMvQixJQUFJLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxlQUFlLEdBQUcsS0FBSyxDQUFDO2dCQUU3QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxLQUFLLENBQUMsTUFBTSxD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cUJBQXFCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFMUYsTUFBTSxhQUFhLEdBQXNCO2dCQUNyQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLEVBQUUsRUFBRSxNQUFNO2dCQUNWLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2xFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUM7b0JBQ3BGLE9BQU87d0JBQ0gsS0FBSyxFQUFFLFFBQVEsQ0FBQyxPQUFpQjt3QkFDakMsS0FBSyxFQUFFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQztxQkFDakMsQ0FBQztnQkFDTixDQUFDLENBQUM7YUFDTCxDQUFDO1lBRUYsa0JBQWtCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFFRCxPQUFPLGtCQUFrQixDQUFDO0lBQzlCLENBQUM7OEdBdElRLDBCQUEwQjtrR0FBMUIsMEJBQTBCLHlLQzdCdkMsMmdCQVdBLDRDRGdCYyw2QkFBNkIsZ0hBQUUsZ0JBQWdCOzsyRkFFaEQsMEJBQTBCO2tCQVB0QyxTQUFTOytCQUNJLHlCQUF5QixtQkFFbEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxXQUM1QixDQUFDLDZCQUE2QixFQUFFLGdCQUFnQixDQUFDOzhKQU90RCxNQUFNO3NCQURULEtBQUs7Z0JBMkJOLHlCQUF5QjtzQkFEeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIElucHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgV2l6YXJkU3RlcFN0YXR1cyB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS93aXphcmQnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2Zvcm0nO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yRm9ybXNWYWx1ZSwgV2l6YXJkU3RlcEZvcm1zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWZvcm1zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7XG4gICAgRm9ybWF0dGVkRm9ybVN0ZXAsXG4gICAgV2l6YXJkR2VuZXJhdG9yU3VtbWFyeUl0ZW1cbn0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLXN1bW1hcnktaXRlbS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3dpemFyZC1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBXaXphcmRTdW1tYXJ5U2VjdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vd2l6YXJkLXN1bW1hcnktc2VjdGlvbi93aXphcmQtc3VtbWFyeS1zZWN0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZmRwLXdpemFyZC1zdW1tYXJ5LXN0ZXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi93aXphcmQtc3VtbWFyeS1zdGVwLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGltcG9ydHM6IFtXaXphcmRTdW1tYXJ5U2VjdGlvbkNvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldF1cbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkU3VtbWFyeVN0ZXBDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBTdW1tYXJ5IHN0ZXAgc3RhdHVzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHN0YXR1cyhzdGF0dXM6IFdpemFyZFN0ZXBTdGF0dXMpIHtcbiAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ2N1cnJlbnQnKSB7XG4gICAgICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmdldFdpemFyZEZvcm1WYWx1ZSh0cnVlKS50aGVuKChmb3JtcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N1Ym1pdHRlZEZvcm1zID0gZm9ybXM7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl93aXphcmRTdGVwcyA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuaXRlbXMuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoaSkgPT4gdGhpcy5fc3VibWl0dGVkRm9ybXNbaS5pZF0gIT09IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl9mb3JtYXRXaXphcmRWYWx1ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaG91bGRSZW5kZXIgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2hvdWxkUmVuZGVyID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBTdW1tYXJ5IHN0ZXAuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBjdXN0b21TdW1tYXJ5U3RlcFRlbXBsYXRlOiBOdWxsYWJsZTxUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4+O1xuXG4gICAgLyoqXG4gICAgICogRm9ybWF0dGVkIHdpemFyZCB2YWx1ZSB3aXRoIHN0ZXBzIGFuZCB0aGVpciBmb3Jtcy5cbiAgICAgKi9cbiAgICBmb3JtYXR0ZWRXaXphcmRWYWx1ZTogV2l6YXJkR2VuZXJhdG9yU3VtbWFyeUl0ZW1bXSA9IFtdO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9zdWJtaXR0ZWRGb3JtczogV2l6YXJkR2VuZXJhdG9yRm9ybXNWYWx1ZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfc2hvdWxkUmVuZGVyID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX3dpemFyZFN0ZXBzOiBXaXphcmRHZW5lcmF0b3JJdGVtW107XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF93aXphcmRHZW5lcmF0b3JTZXJ2aWNlOiBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9mb3JtR2VuZXJhdG9yU2VydmljZTogRm9ybUdlbmVyYXRvclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgX2NkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIC8qKlxuICAgICAqIE9wZW5zIGRlZmluZWQgc3RlcCBmb3IgZWRpdGluZy5cbiAgICAgKiBAcGFyYW0gc3RlcElkIERlZmluZWQgc3RlcCBJRC5cbiAgICAgKi9cbiAgICBlZGl0U3RlcChzdGVwSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLmVkaXRTdGVwKHN0ZXBJZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfdHJhY2tGbihfOiBudW1iZXIsIHN0ZXA6IFdpemFyZEdlbmVyYXRvclN1bW1hcnlJdGVtKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHN0ZXAuaWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBfZWRpdFN0ZXBGbjogKHN0ZXBJZDogc3RyaW5nKSA9PiB2b2lkID0gKHN0ZXBJZDogc3RyaW5nKSA9PiB0aGlzLmVkaXRTdGVwKHN0ZXBJZCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgYXN5bmMgX2Zvcm1hdFdpemFyZFZhbHVlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLmZvcm1hdHRlZFdpemFyZFZhbHVlID0gW107XG5cbiAgICAgICAgZm9yIChjb25zdCBzdGVwIG9mIHRoaXMuX3dpemFyZFN0ZXBzKSB7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnN0ZXBzQ29tcG9uZW50cy5nZXQoc3RlcC5pZCk7XG4gICAgICAgICAgICBjb25zdCBjb21wb25lbnRGb3JtcyA9IGNvbXBvbmVudD8uZ2V0VmlzaWJsZUZvcm1zKCk7XG5cbiAgICAgICAgICAgIGlmICghY29tcG9uZW50Rm9ybXMpIHtcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkU3RlcFZhbHVlID0gYXdhaXQgdGhpcy5fZm9ybWF0U3RlcFZhbHVlKGNvbXBvbmVudEZvcm1zLCBzdGVwKTtcblxuICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWRXaXphcmRWYWx1ZS5wdXNoKHtcbiAgICAgICAgICAgICAgICBpZDogc3RlcC5pZCxcbiAgICAgICAgICAgICAgICBuYW1lOiBzdGVwLm5hbWUgYXMgc3RyaW5nLFxuICAgICAgICAgICAgICAgIHRpdGxlOiBzdGVwLnRpdGxlIGFzIHN0cmluZyxcbiAgICAgICAgICAgICAgICBmb3JtczogZm9ybWF0dGVkU3RlcFZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBhc3luYyBfZm9ybWF0U3RlcFZhbHVlKFxuICAgICAgICBjb21wb25lbnRGb3JtczogV2l6YXJkU3RlcEZvcm1zLFxuICAgICAgICBzdGVwOiBXaXphcmRHZW5lcmF0b3JJdGVtXG4gICAgKTogUHJvbWlzZTxGb3JtYXR0ZWRGb3JtU3RlcFtdPiB7XG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZFN0ZXBWYWx1ZTogRm9ybWF0dGVkRm9ybVN0ZXBbXSA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgZm9ybUdyb3VwIG9mIHN0ZXAuZm9ybUdyb3VwcyA/PyBbXSkge1xuICAgICAgICAgICAgY29uc3QgZm9ybUlkID0gZm9ybUdyb3VwLmlkO1xuXG4gICAgICAgICAgICBjb25zdCBmb3JtID0gY29tcG9uZW50Rm9ybXNbZm9ybUlkXTtcblxuICAgICAgICAgICAgLy8gRm9ybSBtaWdodCBiZSBza2lwcGVkIGR1ZSB0byBjb25kaXRpb25hbCByZW5kZXJpbmdcbiAgICAgICAgICAgIGlmICghZm9ybSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRGb3JtVmFsdWUgPSBhd2FpdCB0aGlzLl9mb3JtR2VuZXJhdG9yU2VydmljZS5nZXRGb3JtVmFsdWUoZm9ybS5mb3JtLCB0cnVlKTtcblxuICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkRm9ybTogRm9ybWF0dGVkRm9ybVN0ZXAgPSB7XG4gICAgICAgICAgICAgICAgdGl0bGU6IGZvcm0udGl0bGUsXG4gICAgICAgICAgICAgICAgaWQ6IGZvcm1JZCxcbiAgICAgICAgICAgICAgICBpdGVtczogT2JqZWN0LmtleXModGhpcy5fc3VibWl0dGVkRm9ybXNbc3RlcC5pZF1bZm9ybUlkXSkubWFwKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybUl0ZW0gPSB0aGlzLl9mb3JtR2VuZXJhdG9yU2VydmljZS5nZXRGb3JtQ29udHJvbChmb3JtLmZvcm0sIGtleSkuZm9ybUl0ZW07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogZm9ybUl0ZW0ubWVzc2FnZSBhcyBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogZm9ybWF0dGVkRm9ybVZhbHVlW2tleV1cbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZm9ybWF0dGVkU3RlcFZhbHVlLnB1c2goZm9ybWF0dGVkRm9ybSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZm9ybWF0dGVkU3RlcFZhbHVlO1xuICAgIH1cbn1cbiIsIkBpZiAoX3Nob3VsZFJlbmRlcikge1xuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdHN1bW1hcnlTdGVwVGVtcGxhdGU+XG4gICAgICAgIEBmb3IgKHN0ZXAgb2YgZm9ybWF0dGVkV2l6YXJkVmFsdWU7IHRyYWNrIF90cmFja0ZuKCRpbmRleCwgc3RlcCkpIHtcbiAgICAgICAgICAgIDxmZHAtd2l6YXJkLXN1bW1hcnktc2VjdGlvbiBbc3RlcF09XCJzdGVwXCIgKGVkaXRTdGVwKT1cImVkaXRTdGVwKCRldmVudClcIj48L2ZkcC13aXphcmQtc3VtbWFyeS1zZWN0aW9uPlxuICAgICAgICB9XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tU3VtbWFyeVN0ZXBUZW1wbGF0ZSB8fCBkZWZhdWx0c3VtbWFyeVN0ZXBUZW1wbGF0ZVwiXG4gICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHN0ZXBzOiBmb3JtYXR0ZWRXaXphcmRWYWx1ZSwgZWRpdFN0ZXA6IF9lZGl0U3RlcEZuIH1cIlxuICAgID48L25nLXRlbXBsYXRlPlxufVxuIl19","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, EventEmitter, Input, Output, TemplateRef, ViewEncapsulation, inject } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { WizardModule } from '@fundamental-ngx/core/wizard';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { WizardGeneratorService } from '../../wizard-generator.service';\nimport { WizardGeneratorStepComponent } from '../wizard-generator-step/wizard-generator-step.component';\nimport { WizardSummaryStepComponent } from '../wizard-summary-step/wizard-summary-step.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../wizard-generator.service\";\nimport * as i2 from \"@fundamental-ngx/core/wizard\";\nexport class WizardBodyComponent {\n /**\n * @description Array of visible Wizard Steps.\n */\n set visibleItems(items) {\n this._visibleItems = items;\n }\n get visibleItems() {\n return this._visibleItems || this._wizardGeneratorService.items;\n }\n /** @hidden */\n constructor(_wizardGeneratorService, _cd) {\n this._wizardGeneratorService = _wizardGeneratorService;\n this._cd = _cd;\n /**\n * @description Whether or not apply responsive paddings styling.\n */\n this.responsivePaddings = true;\n /**\n * @description Whether or not to append the step to the wizard. If false, each step will be displayed on a different page.\n * Default is true.\n */\n this.appendToWizard = true;\n /**\n * @description Whether or not Wizard is currently on the first step\n */\n this.isFirstStep = false;\n /**\n * @description Whether Wizard is currently on the last step.\n */\n this.isLastStep = false;\n /**\n * Whether next step is a Summary step.\n */\n this.isNextStepSummary = false;\n /**\n * @description Boolean flag indicating whether to display Summary step in Wizard progress bar.\n */\n this.displaySummaryStep = false;\n /**\n * @description Is current step is summary step.\n */\n this.isSummaryStep = false;\n /** If navigation buttons should be visible. */\n this.navigationButtons = true;\n /** Whether or not all form items should have identical layout provided for form group. */\n this.unifiedLayout = true;\n /** Whether current step is a branching step. */\n this.isBranchingStep = false;\n /** Whether current step is completed */\n this.isCurrentStepCompleted = false;\n /** Whether order of steps was changed */\n this.stepsOrderChanged = false;\n /**\n * @description Emits when some step status has been changed.\n */\n this.statusChange = new EventEmitter();\n /**\n * @description Emits when \"Go next\" button has been clicked\n */\n this.goNext = new EventEmitter();\n /**\n * @description Emits when \"Finish\" button has been clicked\n */\n // eslint-disable-next-line @angular-eslint/no-output-native\n this.finish = new EventEmitter();\n /**\n * @hidden\n * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)\n */\n this._destroyRef = inject(DestroyRef);\n /**\n * @hidden\n */\n this._goNextFn = () => this.goNext.emit();\n /**\n * @hidden\n */\n this._finishFn = () => this.finish.emit();\n }\n /**\n * @description Custom step status change validator function.\n * @param index Current step index.\n * @returns {Promise<boolean>} If this step status can be changed.\n */\n stepClickValidatorFn(index) {\n return async () => {\n const currentStepIndex = this._wizardGeneratorService.getCurrentStepIndex();\n const isSummaryStep = this._visibleItems[currentStepIndex]?.summary === true;\n if (index === currentStepIndex || isSummaryStep) {\n return true;\n }\n if (this._visibleItems.slice(0, index).find((i) => !i.completed && !i.summary)) {\n return false;\n }\n return await firstValueFrom(this._wizardGeneratorService.validateStepForms(true));\n };\n }\n /**\n * @hidden\n */\n ngOnInit() {\n this._wizardGeneratorService\n .getVisibleSteps()\n .pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef))\n .subscribe((visibleSteps) => {\n this._visibleItems = visibleSteps;\n this._cd.detectChanges();\n });\n }\n /**\n * @description Callback function for status change.\n * @param id step ID.\n * @param status new step status.\n */\n stepStatusChanged(id, status) {\n this.statusChange.emit({\n id,\n status\n });\n }\n /** @hidden */\n stepClicked(stepId) {\n const stepIndex = this._wizardGeneratorService.getStepIndex(stepId);\n this._wizardGeneratorService.setNextStepIndex(stepIndex + 1);\n }\n /**\n * @hidden\n * @param _index\n * @param item\n * @returns\n */\n _trackFn(_index, item) {\n return item.id;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardBodyComponent, deps: [{ token: i1.WizardGeneratorService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: WizardBodyComponent, isStandalone: true, selector: \"fdp-wizard-body\", inputs: { responsivePaddings: \"responsivePaddings\", navigationButtonLabels: \"navigationButtonLabels\", appendToWizard: \"appendToWizard\", contentHeight: \"contentHeight\", isFirstStep: \"isFirstStep\", isLastStep: \"isLastStep\", isNextStepSummary: \"isNextStepSummary\", displaySummaryStep: \"displaySummaryStep\", goNextButtonTemplate: \"goNextButtonTemplate\", finishButtonTemplate: \"finishButtonTemplate\", customSummaryStepTemplate: \"customSummaryStepTemplate\", reviewButtonTemplate: \"reviewButtonTemplate\", isSummaryStep: \"isSummaryStep\", navigationButtons: \"navigationButtons\", unifiedLayout: \"unifiedLayout\", isBranchingStep: \"isBranchingStep\", isCurrentStepCompleted: \"isCurrentStepCompleted\", stepsOrderChanged: \"stepsOrderChanged\" }, outputs: { statusChange: \"statusChange\", goNext: \"goNext\", finish: \"finish\" }, ngImport: i0, template: \"@if (visibleItems) {\\n <fd-wizard\\n [displaySummaryStep]=\\\"displaySummaryStep\\\"\\n [responsivePaddings]=\\\"responsivePaddings\\\"\\n [appendToWizard]=\\\"appendToWizard\\\"\\n [contentHeight]=\\\"contentHeight\\\"\\n >\\n <fd-wizard-navigation>\\n <ul fd-wizard-progress-bar>\\n @for (step of visibleItems; track _trackFn(i, step); let i = $index) {\\n <li\\n fd-wizard-step\\n [label]=\\\"step.name\\\"\\n [status]=\\\"step.status\\\"\\n [optionalText]=\\\"step.optionalText\\\"\\n [branching]=\\\"!!step.branching\\\"\\n [stepClickValidator]=\\\"stepClickValidatorFn(i)\\\"\\n [isSummary]=\\\"!!step.summary\\\"\\n (statusChange)=\\\"stepStatusChanged(step.id, $event)\\\"\\n (stepClicked)=\\\"stepClicked(step.id)\\\"\\n >\\n <fd-wizard-step-indicator [glyph]=\\\"step.icon || null\\\">\\n @if (!step.icon) {\\n {{ i + 1 }}\\n }\\n </fd-wizard-step-indicator>\\n <fd-wizard-content>\\n @if (!step.summary) {\\n <fdp-wizard-generator-step\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n [item]=\\\"step\\\"\\n [stepStatus]=\\\"step.status\\\"\\n ></fdp-wizard-generator-step>\\n } @else {\\n <fdp-wizard-summary-step\\n [customSummaryStepTemplate]=\\\"customSummaryStepTemplate\\\"\\n [status]=\\\"step.status\\\"\\n ></fdp-wizard-summary-step>\\n }\\n @if (navigationButtons) {\\n <fd-wizard-next-step [canHide]=\\\"appendToWizard\\\">\\n @if (!isLastStep) {\\n <ng-template #defaultGoNextButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"navigationButtonLabels.goNext.contentDensity\\\"\\n [fdType]=\\\"navigationButtonLabels.goNext.type\\\"\\n [label]=\\\"navigationButtonLabels.goNext.label\\\"\\n (click)=\\\"goNext.emit()\\\"\\n ></button>\\n </ng-template>\\n <ng-template #defaultReviewButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"navigationButtonLabels.review.contentDensity\\\"\\n [fdType]=\\\"navigationButtonLabels.review.type\\\"\\n [label]=\\\"navigationButtonLabels.review.label\\\"\\n (click)=\\\"goNext.emit()\\\"\\n ></button>\\n </ng-template>\\n @if (\\n (isBranchingStep && (!isCurrentStepCompleted || stepsOrderChanged)) ||\\n !isNextStepSummary\\n ) {\\n <ng-template\\n [ngTemplateOutlet]=\\\"goNextButtonTemplate || defaultGoNextButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n } @else {\\n <ng-template\\n [ngTemplateOutlet]=\\\"reviewButtonTemplate || defaultReviewButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n }\\n } @else {\\n <ng-template #defaultFinishButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"navigationButtonLabels.finish.contentDensity\\\"\\n [fdType]=\\\"navigationButtonLabels.finish.type\\\"\\n [label]=\\\"navigationButtonLabels.finish.label\\\"\\n (click)=\\\"finish.emit()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"finishButtonTemplate || defaultFinishButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ finish: _finishFn }\\\"\\n ></ng-template>\\n }\\n </fd-wizard-next-step>\\n }\\n </fd-wizard-content>\\n </li>\\n }\\n </ul>\\n </fd-wizard-navigation>\\n </fd-wizard>\\n}\\n\", dependencies: [{ kind: \"ngmodule\", type: WizardModule }, { kind: \"component\", type: i2.WizardComponent, selector: \"fd-wizard\", inputs: [\"appendToWizard\", \"contentHeight\", \"responsivePaddings\", \"displaySummaryStep\", \"ariaLabel\"] }, { kind: \"component\", type: i2.WizardNavigationComponent, selector: \"fd-wizard-navigation\", inputs: [\"ariaLabel\"] }, { kind: \"directive\", type: i2.WizardProgressBarDirective, selector: \"[fd-wizard-progress-bar]\", inputs: [\"size\"] }, { kind: \"component\", type: i2.WizardStepComponent, selector: \"[fd-wizard-step]\", inputs: [\"ariaLabel\", \"ariaRoleDecription\", \"status\", \"branching\", \"label\", \"optionalText\", \"isSummary\", \"stepClickValidator\"], outputs: [\"statusChange\", \"stepClicked\", \"stepIndicatorItemClicked\"] }, { kind: \"component\", type: i2.WizardStepIndicatorComponent, selector: \"fd-wizard-step-indicator\", inputs: [\"glyph\", \"glyphFont\"], outputs: [\"stepIndicatorItemClicked\"] }, { kind: \"component\", type: i2.WizardContentComponent, selector: \"fd-wizard-content\", inputs: [\"contentBackground\", \"size\"] }, { kind: \"component\", type: i2.WizardNextStepComponent, selector: \"fd-wizard-next-step\", inputs: [\"floating\", \"canHide\"] }, { kind: \"component\", type: WizardGeneratorStepComponent, selector: \"fdp-wizard-generator-step\", inputs: [\"item\", \"stepStatus\", \"unifiedLayout\"], outputs: [\"formsSubmitted\", \"formsCreated\"] }, { kind: \"component\", type: WizardSummaryStepComponent, selector: \"fdp-wizard-summary-step\", inputs: [\"status\", \"customSummaryStepTemplate\"] }, { kind: \"component\", type: ButtonComponent, selector: \"button[fd-button], a[fd-button], span[fd-button]\", inputs: [\"class\", \"id\"], exportAs: [\"fd-button\"] }, { kind: \"directive\", type: ContentDensityDirective, selector: \"[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])\", inputs: [\"fdContentDensity\", \"fdCompact\", \"fdCondensed\", \"fdCozy\"], exportAs: [\"fdContentDensity\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardBodyComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-wizard-body', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [\n WizardModule,\n WizardGeneratorStepComponent,\n WizardSummaryStepComponent,\n ButtonComponent,\n ContentDensityDirective,\n NgTemplateOutlet\n ], template: \"@if (visibleItems) {\\n <fd-wizard\\n [displaySummaryStep]=\\\"displaySummaryStep\\\"\\n [responsivePaddings]=\\\"responsivePaddings\\\"\\n [appendToWizard]=\\\"appendToWizard\\\"\\n [contentHeight]=\\\"contentHeight\\\"\\n >\\n <fd-wizard-navigation>\\n <ul fd-wizard-progress-bar>\\n @for (step of visibleItems; track _trackFn(i, step); let i = $index) {\\n <li\\n fd-wizard-step\\n [label]=\\\"step.name\\\"\\n [status]=\\\"step.status\\\"\\n [optionalText]=\\\"step.optionalText\\\"\\n [branching]=\\\"!!step.branching\\\"\\n [stepClickValidator]=\\\"stepClickValidatorFn(i)\\\"\\n [isSummary]=\\\"!!step.summary\\\"\\n (statusChange)=\\\"stepStatusChanged(step.id, $event)\\\"\\n (stepClicked)=\\\"stepClicked(step.id)\\\"\\n >\\n <fd-wizard-step-indicator [glyph]=\\\"step.icon || null\\\">\\n @if (!step.icon) {\\n {{ i + 1 }}\\n }\\n </fd-wizard-step-indicator>\\n <fd-wizard-content>\\n @if (!step.summary) {\\n <fdp-wizard-generator-step\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n [item]=\\\"step\\\"\\n [stepStatus]=\\\"step.status\\\"\\n ></fdp-wizard-generator-step>\\n } @else {\\n <fdp-wizard-summary-step\\n [customSummaryStepTemplate]=\\\"customSummaryStepTemplate\\\"\\n [status]=\\\"step.status\\\"\\n ></fdp-wizard-summary-step>\\n }\\n @if (navigationButtons) {\\n <fd-wizard-next-step [canHide]=\\\"appendToWizard\\\">\\n @if (!isLastStep) {\\n <ng-template #defaultGoNextButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"navigationButtonLabels.goNext.contentDensity\\\"\\n [fdType]=\\\"navigationButtonLabels.goNext.type\\\"\\n [label]=\\\"navigationButtonLabels.goNext.label\\\"\\n (click)=\\\"goNext.emit()\\\"\\n ></button>\\n </ng-template>\\n <ng-template #defaultReviewButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"navigationButtonLabels.review.contentDensity\\\"\\n [fdType]=\\\"navigationButtonLabels.review.type\\\"\\n [label]=\\\"navigationButtonLabels.review.label\\\"\\n (click)=\\\"goNext.emit()\\\"\\n ></button>\\n </ng-template>\\n @if (\\n (isBranchingStep && (!isCurrentStepCompleted || stepsOrderChanged)) ||\\n !isNextStepSummary\\n ) {\\n <ng-template\\n [ngTemplateOutlet]=\\\"goNextButtonTemplate || defaultGoNextButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n } @else {\\n <ng-template\\n [ngTemplateOutlet]=\\\"reviewButtonTemplate || defaultReviewButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n }\\n } @else {\\n <ng-template #defaultFinishButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"navigationButtonLabels.finish.contentDensity\\\"\\n [fdType]=\\\"navigationButtonLabels.finish.type\\\"\\n [label]=\\\"navigationButtonLabels.finish.label\\\"\\n (click)=\\\"finish.emit()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"finishButtonTemplate || defaultFinishButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ finish: _finishFn }\\\"\\n ></ng-template>\\n }\\n </fd-wizard-next-step>\\n }\\n </fd-wizard-content>\\n </li>\\n }\\n </ul>\\n </fd-wizard-navigation>\\n </fd-wizard>\\n}\\n\" }]\n }], ctorParameters: () => [{ type: i1.WizardGeneratorService }, { type: i0.ChangeDetectorRef }], propDecorators: { responsivePaddings: [{\n type: Input\n }], navigationButtonLabels: [{\n type: Input\n }], appendToWizard: [{\n type: Input\n }], contentHeight: [{\n type: Input\n }], isFirstStep: [{\n type: Input\n }], isLastStep: [{\n type: Input\n }], isNextStepSummary: [{\n type: Input\n }], displaySummaryStep: [{\n type: Input\n }], goNextButtonTemplate: [{\n type: Input\n }], finishButtonTemplate: [{\n type: Input\n }], customSummaryStepTemplate: [{\n type: Input\n }], reviewButtonTemplate: [{\n type: Input\n }], isSummaryStep: [{\n type: Input\n }], navigationButtons: [{\n type: Input\n }], unifiedLayout: [{\n type: Input\n }], isBranchingStep: [{\n type: Input\n }], isCurrentStepCompleted: [{\n type: Input\n }], stepsOrderChanged: [{\n type: Input\n }], statusChange: [{\n type: Output\n }], goNext: [{\n type: Output\n }], finish: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWJvZHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvd2l6YXJkLWJvZHkvd2l6YXJkLWJvZHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvd2l6YXJkLWJvZHkvd2l6YXJkLWJvZHkuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixXQUFXLEVBQ1gsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUc5QyxPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLDhCQUE4QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUdoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN4RyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQzs7OztBQXFCbEcsTUFBTSxP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QixLQUFLO2dCQU9OLHNCQUFzQjtzQkFEckIsS0FBSztnQkFRTixjQUFjO3NCQURiLEtBQUs7Z0JBUU4sYUFBYTtzQkFEWixLQUFLO2dCQU9OLFdBQVc7c0JBRFYsS0FBSztnQkFPTixVQUFVO3NCQURULEtBQUs7Z0JBT04saUJBQWlCO3NCQURoQixLQUFLO2dCQU9OLGtCQUFrQjtzQkFEakIsS0FBSztnQkFPTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBT04sb0JBQW9CO3NCQURuQixLQUFLO2dCQU9OLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFLTixvQkFBb0I7c0JBRG5CLEtBQUs7Z0JBT04sYUFBYTtzQkFEWixLQUFLO2dCQUtOLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFLTixhQUFhO3NCQURaLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLHNCQUFzQjtzQkFEckIsS0FBSztnQkFLTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBT04sWUFBWTtzQkFEWCxNQUFNO2dCQU9QLE1BQU07c0JBREwsTUFBTTtnQkFPRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgV2l6YXJkTW9kdWxlLCBXaXphcmRTdGVwU3RhdHVzIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3dpemFyZCc7XG5cbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtLCBXaXphcmRHZW5lcmF0b3JJdGVtIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtZ2VuZXJhdG9yLWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZE5hdmlnYXRpb25CdXR0b25zIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy93aXphcmQtbmF2aWdhdGlvbi1idXR0b25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd2l6YXJkLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclN0ZXBDb21wb25lbnQgfSBmcm9tICcuLi93aXphcmQtZ2VuZXJhdG9yLXN0ZXAvd2l6YXJkLWdlbmVyYXRvci1zdGVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaXphcmRTdW1tYXJ5U3RlcENvbXBvbmVudCB9IGZyb20gJy4uL3dpemFyZC1zdW1tYXJ5LXN0ZXAvd2l6YXJkLXN1bW1hcnktc3RlcC5jb21wb25lbnQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdpemFyZFN0ZXBDaGFuZ2Uge1xuICAgIGlkOiBzdHJpbmc7XG4gICAgc3RhdHVzOiBXaXphcmRTdGVwU3RhdHVzO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC13aXphcmQtYm9keScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3dpemFyZC1ib2R5LmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgV2l6YXJkTW9kdWxlLFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JTdGVwQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRTdW1tYXJ5U3RlcENvbXBvbmVudCxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkQm9keUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFdoZXRoZXIgb3Igbm90IGFwcGx5IHJlc3BvbnNpdmUgcGFkZGluZ3Mgc3R5bGluZy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHJlc3BvbnNpdmVQYWRkaW5ncyA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQnV0dG9uIGxhYmVscyB0byBiZSB1c2VkIGluIFdpemFyZCBuYXZpZ2F0aW9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzOiBSZXF1aXJlZDxXaXphcmROYXZpZ2F0aW9uQnV0dG9ucz47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBvciBub3QgdG8gYXBwZW5kIHRoZSBzdGVwIHRvIHRoZSB3aXphcmQuIElmIGZhbHNlLCBlYWNoIHN0ZXAgd2lsbCBiZSBkaXNwbGF5ZWQgb24gYSBkaWZmZXJlbnQgcGFnZS5cbiAgICAgKiBEZWZhdWx0IGlzIHRydWUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBhcHBlbmRUb1dpemFyZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3VzdG9tIGhlaWdodCB0byB1c2UgZm9yIHRoZSB3aXphcmQncyBjb250ZW50IHBhbmUuIEJ5IGRlZmF1bHQsIHRoaXMgdmFsdWUgaXMgY2FsYygxMDB2aCAtIDE0NHB4KSwgd2hlcmUgMTQ0cHhcbiAgICAgKiBpcyB0aGUgY29tYmluZWQgaGVpZ2h0IG9mIHRoZSBTaGVsbGJhciwgd2l6YXJkIGhlYWRlciBhbmQgd2l6YXJkIGZvb3Rlci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGNvbnRlbnRIZWlnaHQ6IE51bGxhYmxlPHN0cmluZz47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gV2hldGhlciBvciBub3QgV2l6YXJkIGlzIGN1cnJlbnRseSBvbiB0aGUgZmlyc3Qgc3RlcFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNGaXJzdFN0ZXAgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXaGV0aGVyIFdpemFyZCBpcyBjdXJyZW50bHkgb24gdGhlIGxhc3Qgc3RlcC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzTGFzdFN0ZXAgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgbmV4dCBzdGVwIGlzIGEgU3VtbWFyeSBzdGVwLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNOZXh0U3RlcFN1bW1hcnkgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBCb29sZWFuIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIHRvIGRpc3BsYXkgU3VtbWFyeSBzdGVwIGluIFdpemFyZCBwcm9ncmVzcyBiYXIuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBkaXNwbGF5U3VtbWFyeVN0ZXAgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgXCJHbyBOZXh0XCIgYnV0dG9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ29OZXh0QnV0dG9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiRmluaXNoXCIgYnV0dG9uLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmluaXNoQnV0dG9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIHN1bW1hcnkgc3RlcC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGN1c3RvbVN1bW1hcnlTdGVwVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIlJldmlld1wiIGJ1dHRvbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgcmV2aWV3QnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gSXMgY3VycmVudCBzdGVwIGlzIHN1bW1hcnkgc3RlcC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzU3VtbWFyeVN0ZXAgPSBmYWxzZTtcblxuICAgIC8qKiBJZiBuYXZpZ2F0aW9uIGJ1dHRvbnMgc2hvdWxkIGJlIHZpc2libGUuICovXG4gICAgQElucHV0KClcbiAgICBuYXZpZ2F0aW9uQnV0dG9ucyA9IHRydWU7XG5cbiAgICAvKiogV2hldGhlciBvciBub3QgYWxsIGZvcm0gaXRlbXMgc2hvdWxkIGhhdmUgaWRlbnRpY2FsIGxheW91dCBwcm92aWRlZCBmb3IgZm9ybSBncm91cC4gKi9cbiAgICBASW5wdXQoKVxuICAgIHVuaWZpZWRMYXlvdXQgPSB0cnVlO1xuXG4gICAgLyoqIFdoZXRoZXIgY3VycmVudCBzdGVwIGlzIGEgYnJhbmNoaW5nIHN0ZXAuICovXG4gICAgQElucHV0KClcbiAgICBpc0JyYW5jaGluZ1N0ZXAgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIGN1cnJlbnQgc3RlcCBpcyBjb21wbGV0ZWQgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzQ3VycmVudFN0ZXBDb21wbGV0ZWQgPSBmYWxzZTtcblxuICAgIC8qKiBXaGV0aGVyIG9yZGVyIG9mIHN0ZXBzIHdhcyBjaGFuZ2VkICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc3RlcHNPcmRlckNoYW5nZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIHNvbWUgc3RlcCBzdGF0dXMgaGFzIGJlZW4gY2hhbmdlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBzdGF0dXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFdpemFyZFN0ZXBDaGFuZ2U+KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRW1pdHMgd2hlbiBcIkdvIG5leHRcIiBidXR0b24gaGFzIGJlZW4gY2xpY2tlZFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGdvTmV4dCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIFwiRmluaXNoXCIgYnV0dG9uIGhhcyBiZWVuIGNsaWNrZWRcbiAgICAgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1uYXRpdmVcbiAgICBAT3V0cHV0KCkgZmluaXNoID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBjb21wb25lbnTigJlzIGRlc3RydWN0aW9uIChmb3IgdW5zdWJzY3JpYmluZylcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByaXZhdGUgX3Zpc2libGVJdGVtczogUHJlcGFyZWRXaXphcmRHZW5lcmF0b3JJdGVtW107XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQXJyYXkgb2YgdmlzaWJsZSBXaXphcmQgU3RlcHMuXG4gICAgICovXG5cbiAgICBzZXQgdmlzaWJsZUl0ZW1zKGl0ZW1zOiBQcmVwYXJlZFdpemFyZEdlbmVyYXRvckl0ZW1bXSkge1xuICAgICAgICB0aGlzLl92aXNpYmxlSXRlbXMgPSBpdGVtcztcbiAgICB9XG5cbiAgICBnZXQgdmlzaWJsZUl0ZW1zKCk6IFByZXBhcmVkV2l6YXJkR2VuZXJhdG9ySXRlbVtdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGVJdGVtcyB8fCB0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLml0ZW1zO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfd2l6YXJkR2VuZXJhdG9yU2VydmljZTogV2l6YXJkR2VuZXJhdG9yU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9nb05leHRGbjogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMuZ29OZXh0LmVtaXQoKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfZmluaXNoRm46ICgpID0+IHZvaWQgPSAoKSA9PiB0aGlzLmZpbmlzaC5lbWl0KCk7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ3VzdG9tIHN0ZXAgc3RhdHVzIGNoYW5nZSB2YWxpZGF0b3IgZnVuY3Rpb24uXG4gICAgICogQHBhcmFtIGluZGV4IEN1cnJlbnQgc3RlcCBpbmRleC5cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gSWYgdGhpcyBzdGVwIHN0YXR1cyBjYW4gYmUgY2hhbmdlZC5cbiAgICAgKi9cbiAgICBzdGVwQ2xpY2tWYWxpZGF0b3JGbihpbmRleDogbnVtYmVyKTogKCkgPT4gUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U3RlcEluZGV4ID0gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRDdXJyZW50U3RlcEluZGV4KCk7XG4gICAgICAgICAgICBjb25zdCBpc1N1bW1hcnlTdGVwID0gdGhpcy5fdmlzaWJsZUl0ZW1zW2N1cnJlbnRTdGVwSW5kZXhdPy5zdW1tYXJ5ID09PSB0cnVlO1xuXG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IGN1cnJlbnRTdGVwSW5kZXggfHwgaXNTdW1tYXJ5U3RlcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fdmlzaWJsZUl0ZW1zLnNsaWNlKDAsIGluZGV4KS5maW5kKChpKSA9PiAhaS5jb21wbGV0ZWQgJiYgIWkuc3VtbWFyeSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLl93aXphcmRHZW5lcmF0b3JTZXJ2aWNlLnZhbGlkYXRlU3RlcEZvcm1zKHRydWUpKTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2VcbiAgICAgICAgICAgIC5nZXRWaXNpYmxlU3RlcHMoKVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDUwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmlzaWJsZVN0ZXBzKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdmlzaWJsZUl0ZW1zID0gdmlzaWJsZVN0ZXBzO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYWxsYmFjayBmdW5jdGlvbiBmb3Igc3RhdHVzIGNoYW5nZS5cbiAgICAgKiBAcGFyYW0gaWQgc3RlcCBJRC5cbiAgICAgKiBAcGFyYW0gc3RhdHVzIG5ldyBzdGVwIHN0YXR1cy5cbiAgICAgKi9cbiAgICBzdGVwU3RhdHVzQ2hhbmdlZChpZDogc3RyaW5nLCBzdGF0dXM6IFdpemFyZFN0ZXBTdGF0dXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdGF0dXNDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICBpZCxcbiAgICAgICAgICAgIHN0YXR1c1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHN0ZXBDbGlja2VkKHN0ZXBJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHN0ZXBJbmRleCA9IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0U3RlcEluZGV4KHN0ZXBJZCk7XG4gICAgICAgIHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2Uuc2V0TmV4dFN0ZXBJbmRleChzdGVwSW5kZXggKyAxKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIF9pbmRleFxuICAgICAqIEBwYXJhbSBpdGVtXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBfdHJhY2tGbihfaW5kZXg6IG51bWJlciwgaXRlbTogV2l6YXJkR2VuZXJhdG9ySXRlbSk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgIH1cbn1cbiIsIkBpZiAodmlzaWJsZUl0ZW1zKSB7XG4gICAgPGZkLXdpemFyZFxuICAgICAgICBbZGlzcGxheVN1bW1hcnlTdGVwXT1cImRpc3BsYXlTdW1tYXJ5U3RlcFwiXG4gICAgICAgIFtyZXNwb25zaXZlUGFkZGluZ3NdPVwicmVzcG9uc2l2ZVBhZGRpbmdzXCJcbiAgICAgICAgW2FwcGVuZFRvV2l6YXJkXT1cImFwcGVuZFRvV2l6YXJkXCJcbiAgICAgICAgW2NvbnRlbnRIZWlnaHRdPVwiY29udGVudEhlaWdodFwiXG4gICAgPlxuICAgICAgICA8ZmQtd2l6YXJkLW5hdmlnYXRpb24+XG4gICAgICAgICAgICA8dWwgZmQtd2l6YXJkLXByb2dyZXNzLWJhcj5cbiAgICAgICAgICAgICAgICBAZm9yIChzdGVwIG9mIHZpc2libGVJdGVtczsgdHJhY2sgX3RyYWNrRm4oaSwgc3RlcCk7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtd2l6YXJkLXN0ZXBcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzdGVwLm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJzdGVwLnN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3B0aW9uYWxUZXh0XT1cInN0ZXAub3B0aW9uYWxUZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFticmFuY2hpbmddPVwiISFzdGVwLmJyYW5jaGluZ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbc3RlcENsaWNrVmFsaWRhdG9yXT1cInN0ZXBDbGlja1ZhbGlkYXRvckZuKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpc1N1bW1hcnldPVwiISFzdGVwLnN1bW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHN0YXR1c0NoYW5nZSk9XCJzdGVwU3RhdHVzQ2hhbmdlZChzdGVwLmlkLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzdGVwQ2xpY2tlZCk9XCJzdGVwQ2xpY2tlZChzdGVwLmlkKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC13aXphcmQtc3RlcC1pbmRpY2F0b3IgW2dseXBoXT1cInN0ZXAuaWNvbiB8fCBudWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghc3RlcC5pY29uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGkgKyAxIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC13aXphcmQtc3RlcC1pbmRpY2F0b3I+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZmQtd2l6YXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICghc3RlcC5zdW1tYXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZHAtd2l6YXJkLWdlbmVyYXRvci1zdGVwXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdW5pZmllZExheW91dF09XCJ1bmlmaWVkTGF5b3V0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpdGVtXT1cInN0ZXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0ZXBTdGF0dXNdPVwic3RlcC5zdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9mZHAtd2l6YXJkLWdlbmVyYXRvci1zdGVwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZmRwLXdpemFyZC1zdW1tYXJ5LXN0ZXBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21TdW1tYXJ5U3RlcFRlbXBsYXRlXT1cImN1c3RvbVN1bW1hcnlTdGVwVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0YXR1c109XCJzdGVwLnN0YXR1c1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2ZkcC13aXphcmQtc3VtbWFyeS1zdGVwPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKG5hdmlnYXRpb25CdXR0b25zKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxmZC13aXphcmQtbmV4dC1zdGVwIFtjYW5IaWRlXT1cImFwcGVuZFRvV2l6YXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKCFpc0xhc3RTdGVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0R29OZXh0QnV0dG9uVGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkQ29udGVudERlbnNpdHldPVwibmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb05leHQuY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvTmV4dC50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvTmV4dC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ29OZXh0LmVtaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFJldmlld0J1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIm5hdmlnYXRpb25CdXR0b25MYWJlbHMucmV2aWV3LmNvbnRlbnREZW5zaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwibmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5yZXZpZXcudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwibmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5yZXZpZXcubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dC5lbWl0KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAaWYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNCcmFuY2hpbmdTdGVwICYmICghaXNDdXJyZW50U3RlcENvbXBsZXRlZCB8fCBzdGVwc09yZGVyQ2hhbmdlZCkpIHx8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFpc05leHRTdGVwU3VtbWFyeVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdvTmV4dEJ1dHRvblRlbXBsYXRlIHx8IGRlZmF1bHRHb05leHRCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBnb05leHQ6IF9nb05leHRGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicmV2aWV3QnV0dG9uVGVtcGxhdGUgfHwgZGVmYXVsdFJldmlld0J1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGdvTmV4dDogX2dvTmV4dEZuIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRGaW5pc2hCdXR0b25UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJuYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmZpbmlzaC5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIm5hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIm5hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJmaW5pc2guZW1pdCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImZpbmlzaEJ1dHRvblRlbXBsYXRlIHx8IGRlZmF1bHRGaW5pc2hCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGZpbmlzaDogX2ZpbmlzaEZuIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2ZkLXdpemFyZC1uZXh0LXN0ZXA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9mZC13aXphcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L3VsPlxuICAgICAgICA8L2ZkLXdpemFyZC1uYXZpZ2F0aW9uPlxuICAgIDwvZmQtd2l6YXJkPlxufVxuIl19","import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { filter } from 'rxjs/operators';\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { InitialFocusDirective } from '@fundamental-ngx/cdk/utils';\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { ContentDensityDirective } from '@fundamental-ngx/core/content-density';\nimport { DialogBodyComponent, DialogComponent, DialogHeaderComponent, DialogRef } from '@fundamental-ngx/core/dialog';\nimport { MessageBoxModule, MessageBoxService } from '@fundamental-ngx/core/message-box';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { BaseWizardGenerator } from '../../base-wizard-generator';\nimport { WizardGeneratorService } from '../../wizard-generator.service';\nimport { WizardBodyComponent } from '../wizard-body/wizard-body.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/dialog\";\nimport * as i2 from \"@fundamental-ngx/core/bar\";\nimport * as i3 from \"@fundamental-ngx/core/message-box\";\nimport * as i4 from \"@fundamental-ngx/cdk/utils\";\nexport class DialogWizardGeneratorComponent extends BaseWizardGenerator {\n /** @hidden */\n constructor(_dialogRef) {\n super();\n this._dialogRef = _dialogRef;\n /**\n * @description Confirmation message when wizard dialog close button has been clicked.\n */\n this.confirmationDialogText = 'Are you sure you want to discard your progress?';\n /**\n * @description Confirm button text for close confirmation dialog.\n */\n this.confirmationDialogCloseText = 'Confirm';\n /**\n * @description Cancel button text for close confirmation dialog.\n */\n this.confirmationDialogCancelText = 'Cancel';\n /** @hidden */\n this._messageBoxService = inject(MessageBoxService);\n /**\n * @hidden\n */\n this._goBackFn = () => this.goBack();\n /**\n * @hidden\n */\n this._goNextFn = () => this.goNext();\n /**\n * @hidden\n */\n this._finishFn = () => this.finish();\n /**\n * @hidden\n */\n this._cancelFn = () => this.cancel();\n this.items = this._dialogRef.data.items;\n this.title = this._dialogRef.data.title;\n this.appendToWizard = this._dialogRef.data.appendToWizard;\n this.navigationButtonLabels = this._dialogRef.data.navigationButtonLabels ?? {};\n this.contentHeight = this._dialogRef.data.contentHeight;\n this.responsivePaddings = this._dialogRef.data.responsivePaddings;\n this.goNextButtonTemplate = this._dialogRef.data.goNextButtonTemplate;\n this.goBackButtonTemplate = this._dialogRef.data.goBackButtonTemplate;\n this.finishButtonTemplate = this._dialogRef.data.finishButtonTemplate;\n this.cancelButtonTemplate = this._dialogRef.data.cancelButtonTemplate;\n this.confirmationDialogTemplate = this._dialogRef.data.confirmationDialogTemplate;\n this.displaySummaryStep = this._dialogRef.data.displaySummaryStep || false;\n this.summaryStepTemplate = this._dialogRef.data.summaryStepTemplate;\n this.reviewButtonTemplate = this._dialogRef.data.reviewButtonTemplate;\n if (this._dialogRef.data.unifiedLayout !== undefined) {\n this.unifiedLayout = this._dialogRef.data.unifiedLayout;\n }\n if (this._dialogRef.data.navigationButtons !== undefined) {\n this.navigationButtons = this._dialogRef.data.navigationButtons;\n }\n if (this._dialogRef.data.confirmationDialogText) {\n this.confirmationDialogText = this._dialogRef.data.confirmationDialogText;\n }\n if (this._dialogRef.data.confirmationDialogCancelText) {\n this.confirmationDialogCancelText = this._dialogRef.data.confirmationDialogCancelText;\n }\n if (this._dialogRef.data.confirmationDialogCloseText) {\n this.confirmationDialogCloseText = this._dialogRef.data.confirmationDialogCloseText;\n }\n }\n /**\n * @description Cancels Wizard progress and closes the dialog.\n */\n cancel() {\n if (this._wizardGeneratorService.isStepsUntouched()) {\n this._dialogRef.dismiss();\n return;\n }\n const template = this.confirmationDialogTemplate || this.defaultConfirmationDialogTemplate;\n const messageBoxRef = this._messageBoxService.open(template, { responsivePadding: true });\n messageBoxRef.afterClosed\n .pipe(filter((result) => result), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n this._dialogRef.dismiss();\n });\n }\n /**\n * @description Completes Wizard process, emits Wizard result and closes the dialog.\n */\n async finish() {\n if (this.isSummaryStep) {\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this._dialogRef.close(wizardResult);\n return;\n }\n const currentStepId = this._wizardGeneratorService.getCurrentStepId();\n this.submitStepForms(currentStepId)\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(async (result) => {\n if (result && Object.values(result).some((r) => !r.success)) {\n return;\n }\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this._dialogRef.close(wizardResult);\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DialogWizardGeneratorComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: DialogWizardGeneratorComponent, isStandalone: true, selector: \"fdp-dialog-wizard-generator\", providers: [WizardGeneratorService, FormGeneratorService], viewQueries: [{ propertyName: \"defaultConfirmationDialogTemplate\", first: true, predicate: [\"defaultConfirmationDialogTemplate\"], descendants: true }], usesInheritance: true, ngImport: i0, template: \"<fd-dialog>\\n <fd-dialog-header>\\n <h2 fd-title [headerSize]=\\\"title.size\\\">{{ title.text }}</h2>\\n </fd-dialog-header>\\n <fd-dialog-body>\\n <fdp-wizard-body\\n [navigationButtons]=\\\"false\\\"\\n [displaySummaryStep]=\\\"displaySummaryStep\\\"\\n [responsivePaddings]=\\\"responsivePaddings\\\"\\n [navigationButtonLabels]=\\\"_navigationButtonLabels\\\"\\n [customSummaryStepTemplate]=\\\"summaryStepTemplate\\\"\\n [reviewButtonTemplate]=\\\"reviewButtonTemplate\\\"\\n [hidden]=\\\"!wizardCreated\\\"\\n [appendToWizard]=\\\"appendToWizard\\\"\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n [contentHeight]=\\\"contentHeight\\\"\\n (statusChange)=\\\"stepStatusChanged($event.id, $event.status)\\\"\\n ></fdp-wizard-body>\\n @if (wizardCreated) {\\n <div fd-bar barDesign=\\\"floating-footer\\\" [class.fd-bar--responsive-paddings]=\\\"responsivePaddings\\\">\\n <div fd-bar-right>\\n @if (!isFirstStep) {\\n <ng-template #defaultGoBackButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.goBack.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.goBack.type\\\"\\n [label]=\\\"_navigationButtonLabels.goBack.label\\\"\\n (click)=\\\"goBack()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"goBackButtonTemplate || defaultGoBackButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goBack: _goBackFn }\\\"\\n ></ng-template>\\n }\\n @if (!isLastStep) {\\n <ng-template #defaultGoNextButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.goNext.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.goNext.type\\\"\\n [label]=\\\"_navigationButtonLabels.goNext.label\\\"\\n (click)=\\\"goNext()\\\"\\n ></button>\\n </ng-template>\\n <ng-template #defaultReviewButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.review.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.review.type\\\"\\n [label]=\\\"_navigationButtonLabels.review.label\\\"\\n (click)=\\\"goNext()\\\"\\n ></button>\\n </ng-template>\\n @if (\\n (isBranchingStep && (!isCurrentStepCompleted || _stepsOrderChanged)) || !isNextStepSummary\\n ) {\\n <ng-template\\n [ngTemplateOutlet]=\\\"goNextButtonTemplate || defaultGoNextButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n } @else {\\n <ng-template\\n [ngTemplateOutlet]=\\\"reviewButtonTemplate || defaultReviewButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n }\\n }\\n @if (isLastStep) {\\n <ng-template #defaultFinishButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.finish.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.finish.type\\\"\\n [label]=\\\"_navigationButtonLabels.finish.label\\\"\\n (click)=\\\"finish()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"finishButtonTemplate || defaultFinishButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ finish: _finishFn }\\\"\\n ></ng-template>\\n }\\n <ng-template #defaultCancelButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.cancel.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.cancel.type\\\"\\n [label]=\\\"_navigationButtonLabels.cancel.label\\\"\\n (click)=\\\"cancel()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"cancelButtonTemplate || defaultCancelButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ cancel: _cancelFn }\\\"\\n ></ng-template>\\n </div>\\n </div>\\n }\\n </fd-dialog-body>\\n</fd-dialog>\\n<ng-template\\n [fdMessageBoxTemplate]\\n let-messageBox\\n let-messageBoxConfig=\\\"messageBoxConfig\\\"\\n #defaultConfirmationDialogTemplate\\n>\\n <fd-message-box [messageBoxConfig]=\\\"messageBoxConfig\\\" [messageBoxRef]=\\\"messageBox\\\">\\n <fd-message-box-body>\\n {{ confirmationDialogText }}\\n </fd-message-box-body>\\n <fd-message-box-footer>\\n <fd-button-bar\\n fdType=\\\"emphasized\\\"\\n [label]=\\\"confirmationDialogCloseText\\\"\\n type=\\\"submit\\\"\\n (click)=\\\"messageBox.close(true)\\\"\\n >\\n </fd-button-bar>\\n <fd-button-bar fdkInitialFocus [label]=\\\"confirmationDialogCancelText\\\" (click)=\\\"messageBox.dismiss()\\\">\\n </fd-button-bar>\\n </fd-message-box-footer>\\n </fd-message-box>\\n</ng-template>\\n\", dependencies: [{ kind: \"component\", type: TitleComponent, selector: \"[fd-title], [fdTitle]\", inputs: [\"headerSize\", \"wrap\"], exportAs: [\"fd-title\"] }, { kind: \"component\", type: WizardBodyComponent, selector: \"fdp-wizard-body\", inputs: [\"responsivePaddings\", \"navigationButtonLabels\", \"appendToWizard\", \"contentHeight\", \"isFirstStep\", \"isLastStep\", \"isNextStepSummary\", \"displaySummaryStep\", \"goNextButtonTemplate\", \"finishButtonTemplate\", \"customSummaryStepTemplate\", \"reviewButtonTemplate\", \"isSummaryStep\", \"navigationButtons\", \"unifiedLayout\", \"isBranchingStep\", \"isCurrentStepCompleted\", \"stepsOrderChanged\"], outputs: [\"statusChange\", \"goNext\", \"finish\"] }, { kind: \"ngmodule\", type: BarModule }, { kind: \"component\", type: i2.BarComponent, selector: \"[fd-bar]\", inputs: [\"class\", \"barDesign\", \"inPage\", \"inHomePage\", \"clear\", \"size\", \"role\"] }, { kind: \"directive\", type: i2.BarRightDirective, selector: \"[fd-bar-right]\" }, { kind: \"component\", type: i2.ButtonBarComponent, selector: \"fd-button-bar\", inputs: [\"fullWidth\", \"fdType\", \"title\", \"ariaLabelledby\", \"id\"] }, { kind: \"component\", type: ButtonComponent, selector: \"button[fd-button], a[fd-button], span[fd-button]\", inputs: [\"class\", \"id\"], exportAs: [\"fd-button\"] }, { kind: \"directive\", type: ContentDensityDirective, selector: \"[fdContentDensity]:not([fdCompact]):not([fdCondensed]):not([fdCozy]), [fdCompact]:not([fdContentDensity]):not([fdCondensed]):not([fdCozy]), [fdCondensed]:not([fdContentDensity]):not([fdCompact]):not([fdCozy]), [fdCozy]:not([fdContentDensity]):not([fdCompact]):not([fdCondensed])\", inputs: [\"fdContentDensity\", \"fdCompact\", \"fdCondensed\", \"fdCozy\"], exportAs: [\"fdContentDensity\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: MessageBoxModule }, { kind: \"component\", type: i3.MessageBoxFooterComponent, selector: \"fd-message-box-footer\" }, { kind: \"component\", type: i3.MessageBoxBodyComponent, selector: \"fd-message-box-body\" }, { kind: \"component\", type: i3.MessageBoxComponent, selector: \"fd-message-box\", inputs: [\"class\", \"messageBoxRef\", \"messageBoxConfig\"] }, { kind: \"directive\", type: i3.MessageBoxTemplateDirective, selector: \"[fdMessageBoxTemplate]\", inputs: [\"fdMessageBoxTemplateConfig\"] }, { kind: \"directive\", type: i4.InitialFocusDirective, selector: \"[fdkInitialFocus]\", inputs: [\"fdkInitialFocus\", \"enabled\", \"focusLastElement\"] }, { kind: \"component\", type: DialogBodyComponent, selector: \"fd-dialog-body\", inputs: [\"disablePaddings\"] }, { kind: \"component\", type: DialogHeaderComponent, selector: \"fd-dialog-header\" }, { kind: \"component\", type: DialogComponent, selector: \"fd-dialog\", inputs: [\"class\", \"dialogRef\", \"dialogConfig\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: DialogWizardGeneratorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-dialog-wizard-generator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [WizardGeneratorService, FormGeneratorService], imports: [\n TitleComponent,\n CdkScrollable,\n ScrollbarDirective,\n WizardBodyComponent,\n BarModule,\n ButtonComponent,\n ContentDensityDirective,\n NgTemplateOutlet,\n MessageBoxModule,\n InitialFocusDirective,\n DialogBodyComponent,\n DialogHeaderComponent,\n DialogComponent\n ], template: \"<fd-dialog>\\n <fd-dialog-header>\\n <h2 fd-title [headerSize]=\\\"title.size\\\">{{ title.text }}</h2>\\n </fd-dialog-header>\\n <fd-dialog-body>\\n <fdp-wizard-body\\n [navigationButtons]=\\\"false\\\"\\n [displaySummaryStep]=\\\"displaySummaryStep\\\"\\n [responsivePaddings]=\\\"responsivePaddings\\\"\\n [navigationButtonLabels]=\\\"_navigationButtonLabels\\\"\\n [customSummaryStepTemplate]=\\\"summaryStepTemplate\\\"\\n [reviewButtonTemplate]=\\\"reviewButtonTemplate\\\"\\n [hidden]=\\\"!wizardCreated\\\"\\n [appendToWizard]=\\\"appendToWizard\\\"\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n [contentHeight]=\\\"contentHeight\\\"\\n (statusChange)=\\\"stepStatusChanged($event.id, $event.status)\\\"\\n ></fdp-wizard-body>\\n @if (wizardCreated) {\\n <div fd-bar barDesign=\\\"floating-footer\\\" [class.fd-bar--responsive-paddings]=\\\"responsivePaddings\\\">\\n <div fd-bar-right>\\n @if (!isFirstStep) {\\n <ng-template #defaultGoBackButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.goBack.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.goBack.type\\\"\\n [label]=\\\"_navigationButtonLabels.goBack.label\\\"\\n (click)=\\\"goBack()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"goBackButtonTemplate || defaultGoBackButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goBack: _goBackFn }\\\"\\n ></ng-template>\\n }\\n @if (!isLastStep) {\\n <ng-template #defaultGoNextButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.goNext.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.goNext.type\\\"\\n [label]=\\\"_navigationButtonLabels.goNext.label\\\"\\n (click)=\\\"goNext()\\\"\\n ></button>\\n </ng-template>\\n <ng-template #defaultReviewButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.review.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.review.type\\\"\\n [label]=\\\"_navigationButtonLabels.review.label\\\"\\n (click)=\\\"goNext()\\\"\\n ></button>\\n </ng-template>\\n @if (\\n (isBranchingStep && (!isCurrentStepCompleted || _stepsOrderChanged)) || !isNextStepSummary\\n ) {\\n <ng-template\\n [ngTemplateOutlet]=\\\"goNextButtonTemplate || defaultGoNextButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n } @else {\\n <ng-template\\n [ngTemplateOutlet]=\\\"reviewButtonTemplate || defaultReviewButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ goNext: _goNextFn }\\\"\\n ></ng-template>\\n }\\n }\\n @if (isLastStep) {\\n <ng-template #defaultFinishButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.finish.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.finish.type\\\"\\n [label]=\\\"_navigationButtonLabels.finish.label\\\"\\n (click)=\\\"finish()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"finishButtonTemplate || defaultFinishButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ finish: _finishFn }\\\"\\n ></ng-template>\\n }\\n <ng-template #defaultCancelButtonTemplate>\\n <button\\n fd-button\\n [fdContentDensity]=\\\"_navigationButtonLabels.cancel.contentDensity\\\"\\n [fdType]=\\\"_navigationButtonLabels.cancel.type\\\"\\n [label]=\\\"_navigationButtonLabels.cancel.label\\\"\\n (click)=\\\"cancel()\\\"\\n ></button>\\n </ng-template>\\n <ng-template\\n [ngTemplateOutlet]=\\\"cancelButtonTemplate || defaultCancelButtonTemplate\\\"\\n [ngTemplateOutletContext]=\\\"{ cancel: _cancelFn }\\\"\\n ></ng-template>\\n </div>\\n </div>\\n }\\n </fd-dialog-body>\\n</fd-dialog>\\n<ng-template\\n [fdMessageBoxTemplate]\\n let-messageBox\\n let-messageBoxConfig=\\\"messageBoxConfig\\\"\\n #defaultConfirmationDialogTemplate\\n>\\n <fd-message-box [messageBoxConfig]=\\\"messageBoxConfig\\\" [messageBoxRef]=\\\"messageBox\\\">\\n <fd-message-box-body>\\n {{ confirmationDialogText }}\\n </fd-message-box-body>\\n <fd-message-box-footer>\\n <fd-button-bar\\n fdType=\\\"emphasized\\\"\\n [label]=\\\"confirmationDialogCloseText\\\"\\n type=\\\"submit\\\"\\n (click)=\\\"messageBox.close(true)\\\"\\n >\\n </fd-button-bar>\\n <fd-button-bar fdkInitialFocus [label]=\\\"confirmationDialogCancelText\\\" (click)=\\\"messageBox.dismiss()\\\">\\n </fd-button-bar>\\n </fd-message-box-footer>\\n </fd-message-box>\\n</ng-template>\\n\" }]\n }], ctorParameters: () => [{ type: i1.DialogRef }], propDecorators: { defaultConfirmationDialogTemplate: [{\n type: ViewChild,\n args: ['defaultConfirmationDialogTemplate']\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxxQkFBcUIs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QyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzFELE9BQU87WUFDWCxDQUFDO1lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOzhHQTlJUSw4QkFBOEI7a0dBQTlCLDhCQUE4QiwwRUFqQjVCLENBQUMsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUMseU1DMUI3RCw2eE1BNkhBLDRDRGpHUSxjQUFjLDBIQUdkLG1CQUFtQiw2ZUFDbkIsU0FBUyxvWkFDVCxlQUFlLCtJQUNmLHVCQUF1QixvZEFDdkIsZ0JBQWdCLG1KQUNoQixnQkFBZ0IsMm5CQUVoQixtQkFBbUIsd0ZBQ25CLHFCQUFxQiw2REFDckIsZUFBZTs7MkZBR1YsOEJBQThCO2tCQXRCMUMsU0FBUzsrQkFDSSw2QkFBNkIsaUJBRXhCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxzQkFBc0IsRUFBRSxvQkFBb0IsQ0FBQyxXQUNoRDt3QkFDTCxjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjt3QkFDbkIscUJBQXFCO3dCQUNyQixlQUFlO3FCQUNsQjs4RUFJK0MsaUNBQWlDO3NCQUFoRixTQUFTO3VCQUFDLG1DQUFtQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1HZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9wbGF0Zm9ybS9mb3JtJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQ2RrU2Nyb2xsYWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgSW5pdGlhbEZvY3VzRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jZGsvdXRpbHMnO1xuaW1wb3J0IHsgQmFyTW9kdWxlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2Jhcic7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYnV0dG9uJztcbmltcG9ydCB7IENvbnRlbnREZW5zaXR5RGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2NvbnRlbnQtZGVuc2l0eSc7XG5pbXBvcnQgeyBEaWFsb2dCb2R5Q29tcG9uZW50LCBEaWFsb2dDb21wb25lbnQsIERpYWxvZ0hlYWRlckNvbXBvbmVudCwgRGlhbG9nUmVmIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBNZXNzYWdlQm94TW9kdWxlLCBNZXNzYWdlQm94U2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tZXNzYWdlLWJveCc7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RpdGxlJztcbmltcG9ydCB7IEJhc2VXaXphcmRHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi9iYXNlLXdpemFyZC1nZW5lcmF0b3InO1xuaW1wb3J0IHsgV2l6YXJkRGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvd2l6YXJkLWRpYWxvZy1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRUaXRsZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvd2l6YXJkLXRpdGxlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd2l6YXJkLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFdpemFyZEJvZHlDb21wb25lbnQgfSBmcm9tICcuLi93aXphcmQtYm9keS93aXphcmQtYm9keS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1kaWFsb2ctd2l6YXJkLWdlbmVyYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy13aXphcmQtZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1dpemFyZEdlbmVyYXRvclNlcnZpY2UsIEZvcm1HZW5lcmF0b3JTZXJ2aWNlXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRpdGxlQ29tcG9uZW50LFxuICAgICAgICBDZGtTY3JvbGxhYmxlLFxuICAgICAgICBTY3JvbGxiYXJEaXJlY3RpdmUsXG4gICAgICAgIFdpemFyZEJvZHlDb21wb25lbnQsXG4gICAgICAgIEJhck1vZHVsZSxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTWVzc2FnZUJveE1vZHVsZSxcbiAgICAgICAgSW5pdGlhbEZvY3VzRGlyZWN0aXZlLFxuICAgICAgICBEaWFsb2dCb2R5Q29tcG9uZW50LFxuICAgICAgICBEaWFsb2dIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIERpYWxvZ0NvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nV2l6YXJkR2VuZXJhdG9yQ29tcG9uZW50IGV4dGVuZHMgQmFzZVdpemFyZEdlbmVyYXRvciB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdkZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGUnKSBkZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXaXphcmRzIGRpYWxvZyB0aXRsZSBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHRpdGxlOiBXaXphcmRUaXRsZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb25maXJtYXRpb24gbWVzc2FnZSB3aGVuIHdpemFyZCBkaWFsb2cgY2xvc2UgYnV0dG9uIGhhcyBiZWVuIGNsaWNrZWQuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nVGV4dCA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGlzY2FyZCB5b3VyIHByb2dyZXNzPyc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbmZpcm0gYnV0dG9uIHRleHQgZm9yIGNsb3NlIGNvbmZpcm1hdGlvbiBkaWFsb2cuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nQ2xvc2VUZXh0ID0gJ0NvbmZpcm0nO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYW5jZWwgYnV0dG9uIHRleHQgZm9yIGNsb3NlIGNvbmZpcm1hdGlvbiBkaWFsb2cuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nQ2FuY2VsVGV4dCA9ICdDYW5jZWwnO1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIkdvIE5leHRcIiBidXR0b24uXG4gICAgICovXG4gICAgZ29OZXh0QnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiR28gQmFja1wiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBnb0JhY2tCdXR0b25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3IgXCJGaW5pc2hcIiBidXR0b24uXG4gICAgICovXG4gICAgZmluaXNoQnV0dG9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiQ2FuY2VsXCIgYnV0dG9uLlxuICAgICAqL1xuICAgIGNhbmNlbEJ1dHRvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBjYW5jZWxsYXRpb24gY29uZmlybWF0aW9uIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZT86IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIFVzZXItZGVmaW5lZCB0ZW1wbGF0ZSBmb3Igc3VtbWFyeSBzdGVwLlxuICAgICAqL1xuICAgIHN1bW1hcnlTdGVwVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKiogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIlJldmlld1wiIGJ1dHRvbiAqL1xuICAgIHJldmlld0J1dHRvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9tZXNzYWdlQm94U2VydmljZSA9IGluamVjdChNZXNzYWdlQm94U2VydmljZSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2RpYWxvZ1JlZjogRGlhbG9nUmVmPFdpemFyZERpYWxvZ0RhdGE+KSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgICAgIHRoaXMuaXRlbXMgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5pdGVtcztcbiAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLnRpdGxlO1xuICAgICAgICB0aGlzLmFwcGVuZFRvV2l6YXJkID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuYXBwZW5kVG9XaXphcmQ7XG4gICAgICAgIHRoaXMubmF2aWdhdGlvbkJ1dHRvbkxhYmVscyA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLm5hdmlnYXRpb25CdXR0b25MYWJlbHMgPz8ge307XG4gICAgICAgIHRoaXMuY29udGVudEhlaWdodCA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbnRlbnRIZWlnaHQ7XG4gICAgICAgIHRoaXMucmVzcG9uc2l2ZVBhZGRpbmdzID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEucmVzcG9uc2l2ZVBhZGRpbmdzO1xuICAgICAgICB0aGlzLmdvTmV4dEJ1dHRvblRlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuZ29OZXh0QnV0dG9uVGVtcGxhdGU7XG4gICAgICAgIHRoaXMuZ29CYWNrQnV0dG9uVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5nb0JhY2tCdXR0b25UZW1wbGF0ZTtcbiAgICAgICAgdGhpcy5maW5pc2hCdXR0b25UZW1wbGF0ZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmZpbmlzaEJ1dHRvblRlbXBsYXRlO1xuICAgICAgICB0aGlzLmNhbmNlbEJ1dHRvblRlbXBsYXRlID0gdGhpcy5fZGlhbG9nUmVmLmRhdGEuY2FuY2VsQnV0dG9uVGVtcGxhdGU7XG4gICAgICAgIHRoaXMuY29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZTtcbiAgICAgICAgdGhpcy5kaXNwbGF5U3VtbWFyeVN0ZXAgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5kaXNwbGF5U3VtbWFyeVN0ZXAgfHwgZmFsc2U7XG4gICAgICAgIHRoaXMuc3VtbWFyeVN0ZXBUZW1wbGF0ZSA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLnN1bW1hcnlTdGVwVGVtcGxhdGU7XG4gICAgICAgIHRoaXMucmV2aWV3QnV0dG9uVGVtcGxhdGUgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5yZXZpZXdCdXR0b25UZW1wbGF0ZTtcblxuICAgICAgICBpZiAodGhpcy5fZGlhbG9nUmVmLmRhdGEudW5pZmllZExheW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLnVuaWZpZWRMYXlvdXQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS51bmlmaWVkTGF5b3V0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZi5kYXRhLm5hdmlnYXRpb25CdXR0b25zICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMubmF2aWdhdGlvbkJ1dHRvbnMgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5uYXZpZ2F0aW9uQnV0dG9ucztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ1RleHQgPSB0aGlzLl9kaWFsb2dSZWYuZGF0YS5jb25maXJtYXRpb25EaWFsb2dUZXh0O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybWF0aW9uRGlhbG9nQ2FuY2VsVGV4dCA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbmZpcm1hdGlvbkRpYWxvZ0NhbmNlbFRleHQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5fZGlhbG9nUmVmLmRhdGEuY29uZmlybWF0aW9uRGlhbG9nQ2xvc2VUZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dCA9IHRoaXMuX2RpYWxvZ1JlZi5kYXRhLmNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYW5jZWxzIFdpemFyZCBwcm9ncmVzcyBhbmQgY2xvc2VzIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgY2FuY2VsKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5pc1N0ZXBzVW50b3VjaGVkKCkpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5kaXNtaXNzKCk7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRlbXBsYXRlID0gdGhpcy5jb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZSB8fCB0aGlzLmRlZmF1bHRDb25maXJtYXRpb25EaWFsb2dUZW1wbGF0ZTtcblxuICAgICAgICBjb25zdCBtZXNzYWdlQm94UmVmID0gdGhpcy5fbWVzc2FnZUJveFNlcnZpY2Uub3Blbih0ZW1wbGF0ZSwgeyByZXNwb25zaXZlUGFkZGluZzogdHJ1ZSB9KTtcblxuICAgICAgICBtZXNzYWdlQm94UmVmLmFmdGVyQ2xvc2VkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHJlc3VsdCkgPT4gcmVzdWx0KSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1JlZi5kaXNtaXNzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gQ29tcGxldGVzIFdpemFyZCBwcm9jZXNzLCBlbWl0cyBXaXphcmQgcmVzdWx0IGFuZCBjbG9zZXMgdGhlIGRpYWxvZy5cbiAgICAgKi9cbiAgICBhc3luYyBmaW5pc2goKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmlzU3VtbWFyeVN0ZXApIHtcbiAgICAgICAgICAgIGNvbnN0IHdpemFyZFJlc3VsdCA9IGF3YWl0IHRoaXMuX3dpemFyZEdlbmVyYXRvclNlcnZpY2UuZ2V0V2l6YXJkRm9ybVZhbHVlKHRydWUpO1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHdpemFyZFJlc3VsdCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBjdXJyZW50U3RlcElkID0gdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRDdXJyZW50U3RlcElkKCk7XG4gICAgICAgIHRoaXMuc3VibWl0U3RlcEZvcm1zKGN1cnJlbnRTdGVwSWQpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKGFzeW5jIChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAocmVzdWx0ICYmIE9iamVjdC52YWx1ZXMocmVzdWx0KS5zb21lKChyKSA9PiAhci5zdWNjZXNzKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY29uc3Qgd2l6YXJkUmVzdWx0ID0gYXdhaXQgdGhpcy5fd2l6YXJkR2VuZXJhdG9yU2VydmljZS5nZXRXaXphcmRGb3JtVmFsdWUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGlhbG9nUmVmLmNsb3NlKHdpemFyZFJlc3VsdCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2dvQmFja0ZuOiAoKSA9PiB2b2lkID0gKCkgPT4gdGhpcy5nb0JhY2soKTtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgX2dvTmV4dEZuOiAoKSA9PiBQcm9taXNlPHZvaWQ+ID0gKCkgPT4gdGhpcy5nb05leHQoKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBfZmluaXNoRm46ICgpID0+IFByb21pc2U8dm9pZD4gPSAoKSA9PiB0aGlzLmZpbmlzaCgpO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIF9jYW5jZWxGbjogKCkgPT4gdm9pZCA9ICgpID0+IHRoaXMuY2FuY2VsKCk7XG59XG4iLCI8ZmQtZGlhbG9nPlxuICAgIDxmZC1kaWFsb2ctaGVhZGVyPlxuICAgICAgICA8aDIgZmQtdGl0bGUgW2hlYWRlclNpemVdPVwidGl0bGUuc2l6ZVwiPnt7IHRpdGxlLnRleHQgfX08L2gyPlxuICAgIDwvZmQtZGlhbG9nLWhlYWRlcj5cbiAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDxmZHAtd2l6YXJkLWJvZHlcbiAgICAgICAgICAgIFtuYXZpZ2F0aW9uQnV0dG9uc109XCJmYWxzZVwiXG4gICAgICAgICAgICBbZGlzcGxheVN1bW1hcnlTdGVwXT1cImRpc3BsYXlTdW1tYXJ5U3RlcFwiXG4gICAgICAgICAgICBbcmVzcG9uc2l2ZVBhZGRpbmdzXT1cInJlc3BvbnNpdmVQYWRkaW5nc1wiXG4gICAgICAgICAgICBbbmF2aWdhdGlvbkJ1dHRvbkxhYmVsc109XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVsc1wiXG4gICAgICAgICAgICBbY3VzdG9tU3VtbWFyeVN0ZXBUZW1wbGF0ZV09XCJzdW1tYXJ5U3RlcFRlbXBsYXRlXCJcbiAgICAgICAgICAgIFtyZXZpZXdCdXR0b25UZW1wbGF0ZV09XCJyZXZpZXdCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICBbaGlkZGVuXT1cIiF3aXphcmRDcmVhdGVkXCJcbiAgICAgICAgICAgIFthcHBlbmRUb1dpemFyZF09XCJhcHBlbmRUb1dpemFyZFwiXG4gICAgICAgICAgICBbdW5pZmllZExheW91dF09XCJ1bmlmaWVkTGF5b3V0XCJcbiAgICAgICAgICAgIFtjb250ZW50SGVpZ2h0XT1cImNvbnRlbnRIZWlnaHRcIlxuICAgICAgICAgICAgKHN0YXR1c0NoYW5nZSk9XCJzdGVwU3RhdHVzQ2hhbmdlZCgkZXZlbnQuaWQsICRldmVudC5zdGF0dXMpXCJcbiAgICAgICAgPjwvZmRwLXdpemFyZC1ib2R5PlxuICAgICAgICBAaWYgKHdpemFyZENyZWF0ZWQpIHtcbiAgICAgICAgICAgIDxkaXYgZmQtYmFyIGJhckRlc2lnbj1cImZsb2F0aW5nLWZvb3RlclwiIFtjbGFzcy5mZC1iYXItLXJlc3BvbnNpdmUtcGFkZGluZ3NdPVwicmVzcG9uc2l2ZVBhZGRpbmdzXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoIWlzRmlyc3RTdGVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRHb0JhY2tCdXR0b25UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb0JhY2suY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvQmFjay50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvQmFjay5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb0JhY2soKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImdvQmFja0J1dHRvblRlbXBsYXRlIHx8IGRlZmF1bHRHb0JhY2tCdXR0b25UZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgZ29CYWNrOiBfZ29CYWNrRm4gfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKCFpc0xhc3RTdGVwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRHb05leHRCdXR0b25UZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRDb250ZW50RGVuc2l0eV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5nb05leHQuY29udGVudERlbnNpdHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmRUeXBlXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvTmV4dC50eXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmdvTmV4dC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJnb05leHQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFJldmlld0J1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLnJldmlldy5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMucmV2aWV3LnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMucmV2aWV3LmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImdvTmV4dCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaXNCcmFuY2hpbmdTdGVwICYmICghaXNDdXJyZW50U3RlcENvbXBsZXRlZCB8fCBfc3RlcHNPcmRlckNoYW5nZWQpKSB8fCAhaXNOZXh0U3RlcFN1bW1hcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJnb05leHRCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0R29OZXh0QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBnb05leHQ6IF9nb05leHRGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyZXZpZXdCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0UmV2aWV3QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBnb05leHQ6IF9nb05leHRGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGlzTGFzdFN0ZXApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEZpbmlzaEJ1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmZpbmlzaC5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLnR5cGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHMuZmluaXNoLmxhYmVsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbmlzaCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmluaXNoQnV0dG9uVGVtcGxhdGUgfHwgZGVmYXVsdEZpbmlzaEJ1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyBmaW5pc2g6IF9maW5pc2hGbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdENhbmNlbEJ1dHRvblRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmZENvbnRlbnREZW5zaXR5XT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmNhbmNlbC5jb250ZW50RGVuc2l0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJfbmF2aWdhdGlvbkJ1dHRvbkxhYmVscy5jYW5jZWwudHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIl9uYXZpZ2F0aW9uQnV0dG9uTGFiZWxzLmNhbmNlbC5sYWJlbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJjYW5jZWxCdXR0b25UZW1wbGF0ZSB8fCBkZWZhdWx0Q2FuY2VsQnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgY2FuY2VsOiBfY2FuY2VsRm4gfVwiXG4gICAgICAgICAgICAgICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuPC9mZC1kaWFsb2c+XG48bmctdGVtcGxhdGVcbiAgICBbZmRNZXNzYWdlQm94VGVtcGxhdGVdXG4gICAgbGV0LW1lc3NhZ2VCb3hcbiAgICBsZXQtbWVzc2FnZUJveENvbmZpZz1cIm1lc3NhZ2VCb3hDb25maWdcIlxuICAgICNkZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGVcbj5cbiAgICA8ZmQtbWVzc2FnZS1ib3ggW21lc3NhZ2VCb3hDb25maWddPVwibWVzc2FnZUJveENvbmZpZ1wiIFttZXNzYWdlQm94UmVmXT1cIm1lc3NhZ2VCb3hcIj5cbiAgICAgICAgPGZkLW1lc3NhZ2UtYm94LWJvZHk+XG4gICAgICAgICAgICB7eyBjb25maXJtYXRpb25EaWFsb2dUZXh0IH19XG4gICAgICAgIDwvZmQtbWVzc2FnZS1ib3gtYm9keT5cbiAgICAgICAgPGZkLW1lc3NhZ2UtYm94LWZvb3Rlcj5cbiAgICAgICAgICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgICAgICAgICAgZmRUeXBlPVwiZW1waGFzaXplZFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cImNvbmZpcm1hdGlvbkRpYWxvZ0Nsb3NlVGV4dFwiXG4gICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm1lc3NhZ2VCb3guY2xvc2UodHJ1ZSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9mZC1idXR0b24tYmFyPlxuICAgICAgICAgICAgPGZkLWJ1dHRvbi1iYXIgZmRrSW5pdGlhbEZvY3VzIFtsYWJlbF09XCJjb25maXJtYXRpb25EaWFsb2dDYW5jZWxUZXh0XCIgKGNsaWNrKT1cIm1lc3NhZ2VCb3guZGlzbWlzcygpXCI+XG4gICAgICAgICAgICA8L2ZkLWJ1dHRvbi1iYXI+XG4gICAgICAgIDwvZmQtbWVzc2FnZS1ib3gtZm9vdGVyPlxuICAgIDwvZmQtbWVzc2FnZS1ib3g+XG48L25nLXRlbXBsYXRlPlxuIl19","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class WizardGeneratorFinishButtonDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorFinishButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: WizardGeneratorFinishButtonDirective, isStandalone: true, selector: \"[fdpWizardGeneratorFinishButton], [fdp-wizard-generator-finish-button]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorFinishButtonDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdpWizardGeneratorFinishButton], [fdp-wizard-generator-finish-button]',\n standalone: true\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci1maW5pc2gtYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2l6YXJkLWdlbmVyYXRvci9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3ItZmluaXNoLWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNMUMsTUFBTSxPQUFPLG9DQUFvQzs4R0FBcEMsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBSmhELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdFQUF3RTtvQkFDbEYsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFdpemFyZEdlbmVyYXRvckZpbmlzaEJ1dHRvbl0sIFtmZHAtd2l6YXJkLWdlbmVyYXRvci1maW5pc2gtYnV0dG9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBXaXphcmRHZW5lcmF0b3JGaW5pc2hCdXR0b25EaXJlY3RpdmUge31cbiJdfQ==","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class WizardGeneratorGoNextButtonDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorGoNextButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: WizardGeneratorGoNextButtonDirective, isStandalone: true, selector: \"[fdpWizardGeneratorGoNextButton], [fdp-wizard-generator-go-next-button]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorGoNextButtonDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdpWizardGeneratorGoNextButton], [fdp-wizard-generator-go-next-button]',\n standalone: true\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci1nby1uZXh0LWJ1dHRvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3IvZGlyZWN0aXZlcy93aXphcmQtZ2VuZXJhdG9yLWdvLW5leHQtYnV0dG9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0xQyxNQUFNLE9BQU8sb0NBQW9DOzhHQUFwQyxvQ0FBb0M7a0dBQXBDLG9DQUFvQzs7MkZBQXBDLG9DQUFvQztrQkFKaEQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUVBQXlFO29CQUNuRixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRwV2l6YXJkR2VuZXJhdG9yR29OZXh0QnV0dG9uXSwgW2ZkcC13aXphcmQtZ2VuZXJhdG9yLWdvLW5leHQtYnV0dG9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBXaXphcmRHZW5lcmF0b3JHb05leHRCdXR0b25EaXJlY3RpdmUge31cbiJdfQ==","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class WizardGeneratorReviewButtonDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorReviewButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: WizardGeneratorReviewButtonDirective, isStandalone: true, selector: \"[fdpWizardGeneratorReviewButton], [fdp-wizard-generator-review-button]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorReviewButtonDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdpWizardGeneratorReviewButton], [fdp-wizard-generator-review-button]',\n standalone: true\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci1yZXZpZXctYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2l6YXJkLWdlbmVyYXRvci9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3ItcmV2aWV3LWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNMUMsTUFBTSxPQUFPLG9DQUFvQzs4R0FBcEMsb0NBQW9DO2tHQUFwQyxvQ0FBb0M7OzJGQUFwQyxvQ0FBb0M7a0JBSmhELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHdFQUF3RTtvQkFDbEYsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ZkcFdpemFyZEdlbmVyYXRvclJldmlld0J1dHRvbl0sIFtmZHAtd2l6YXJkLWdlbmVyYXRvci1yZXZpZXctYnV0dG9uXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBXaXphcmRHZW5lcmF0b3JSZXZpZXdCdXR0b25EaXJlY3RpdmUge31cbiJdfQ==","import { Directive } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class WizardGeneratorSummaryStepDirective {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorSummaryStepDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.1.4\", type: WizardGeneratorSummaryStepDirective, isStandalone: true, selector: \"[fdpWizardGeneratorSummaryStep], [fdp-wizard-generator-summary-step]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorSummaryStepDirective, decorators: [{\n type: Directive,\n args: [{\n selector: '[fdpWizardGeneratorSummaryStep], [fdp-wizard-generator-summary-step]',\n standalone: true\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci1zdW1tYXJ5LXN0ZXAuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2RpcmVjdGl2ZXMvd2l6YXJkLWdlbmVyYXRvci1zdW1tYXJ5LXN0ZXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTFDLE1BQU0sT0FBTyxtQ0FBbUM7OEdBQW5DLG1DQUFtQztrR0FBbkMsbUNBQW1DOzsyRkFBbkMsbUNBQW1DO2tCQUovQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzRUFBc0U7b0JBQ2hGLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZHBXaXphcmRHZW5lcmF0b3JTdW1tYXJ5U3RlcF0sIFtmZHAtd2l6YXJkLWdlbmVyYXRvci1zdW1tYXJ5LXN0ZXBdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFdpemFyZEdlbmVyYXRvclN1bW1hcnlTdGVwRGlyZWN0aXZlIHt9XG4iXX0=","import { ChangeDetectionStrategy, Component, ContentChild, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { RepeatDirective } from '@fundamental-ngx/cdk/utils';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { WizardModule } from '@fundamental-ngx/core/wizard';\nimport { BaseWizardGenerator } from '../../base-wizard-generator';\nimport { WizardGeneratorFinishButtonDirective } from '../../directives/wizard-generator-finish-button.directive';\nimport { WizardGeneratorGoNextButtonDirective } from '../../directives/wizard-generator-go-next-button.directive';\nimport { WizardGeneratorReviewButtonDirective } from '../../directives/wizard-generator-review-button.directive';\nimport { WizardGeneratorSummaryStepDirective } from '../../directives/wizard-generator-summary-step.directive';\nimport { WizardGeneratorService } from '../../wizard-generator.service';\nimport { WizardBodyComponent } from '../wizard-body/wizard-body.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/wizard\";\nexport class WizardGeneratorComponent extends BaseWizardGenerator {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.4\", type: WizardGeneratorComponent, isStandalone: true, selector: \"fdp-wizard-generator\", providers: [WizardGeneratorService, FormGeneratorService], queries: [{ propertyName: \"finishButtonTemplate\", first: true, predicate: WizardGeneratorFinishButtonDirective, descendants: true, read: TemplateRef }, { propertyName: \"goNextButtonTemplate\", first: true, predicate: WizardGeneratorGoNextButtonDirective, descendants: true, read: TemplateRef }, { propertyName: \"customSummaryStepTemplate\", first: true, predicate: WizardGeneratorSummaryStepDirective, descendants: true, read: TemplateRef }, { propertyName: \"reviewButtonTemplate\", first: true, predicate: WizardGeneratorReviewButtonDirective, descendants: true, read: TemplateRef }], usesInheritance: true, ngImport: i0, template: \"@if (wizardCreated) {\\n <fdp-wizard-body\\n [navigationButtonLabels]=\\\"_navigationButtonLabels\\\"\\n [goNextButtonTemplate]=\\\"goNextButtonTemplate\\\"\\n [finishButtonTemplate]=\\\"finishButtonTemplate\\\"\\n [customSummaryStepTemplate]=\\\"customSummaryStepTemplate\\\"\\n [reviewButtonTemplate]=\\\"reviewButtonTemplate\\\"\\n [responsivePaddings]=\\\"responsivePaddings\\\"\\n [hidden]=\\\"!wizardCreated\\\"\\n [appendToWizard]=\\\"appendToWizard\\\"\\n [contentHeight]=\\\"contentHeight\\\"\\n [isFirstStep]=\\\"isFirstStep\\\"\\n [isLastStep]=\\\"isLastStep\\\"\\n [isNextStepSummary]=\\\"isNextStepSummary\\\"\\n [isSummaryStep]=\\\"isSummaryStep\\\"\\n [displaySummaryStep]=\\\"displaySummaryStep\\\"\\n [navigationButtons]=\\\"navigationButtons\\\"\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n [isBranchingStep]=\\\"isBranchingStep\\\"\\n [isCurrentStepCompleted]=\\\"isCurrentStepCompleted\\\"\\n [stepsOrderChanged]=\\\"_stepsOrderChanged\\\"\\n (statusChange)=\\\"stepStatusChanged($event.id, $event.status)\\\"\\n (goNext)=\\\"goNext()\\\"\\n (finish)=\\\"finish()\\\"\\n ></fdp-wizard-body>\\n} @else {\\n <fd-wizard>\\n <fd-wizard-navigation>\\n <ul fd-wizard-progress-bar size=\\\"lg\\\" role=\\\"list\\\" aria-label=\\\"Wizard Steps\\\">\\n <li *fdkRepeat=\\\"3; let i = index\\\" fd-wizard-step [status]=\\\"i === 0 ? 'current' : 'upcoming'\\\">\\n <fd-skeleton type=\\\"rectangle\\\" width=\\\"32px\\\" height=\\\"32px\\\"></fd-skeleton>\\n <fd-wizard-content size=\\\"lg\\\">\\n <fd-skeleton type=\\\"text\\\" width=\\\"60%\\\"></fd-skeleton>\\n </fd-wizard-content>\\n </li>\\n </ul>\\n </fd-wizard-navigation>\\n </fd-wizard>\\n}\\n<!-- The Wizard -->\\n\", dependencies: [{ kind: \"component\", type: WizardBodyComponent, selector: \"fdp-wizard-body\", inputs: [\"responsivePaddings\", \"navigationButtonLabels\", \"appendToWizard\", \"contentHeight\", \"isFirstStep\", \"isLastStep\", \"isNextStepSummary\", \"displaySummaryStep\", \"goNextButtonTemplate\", \"finishButtonTemplate\", \"customSummaryStepTemplate\", \"reviewButtonTemplate\", \"isSummaryStep\", \"navigationButtons\", \"unifiedLayout\", \"isBranchingStep\", \"isCurrentStepCompleted\", \"stepsOrderChanged\"], outputs: [\"statusChange\", \"goNext\", \"finish\"] }, { kind: \"ngmodule\", type: WizardModule }, { kind: \"component\", type: i1.WizardComponent, selector: \"fd-wizard\", inputs: [\"appendToWizard\", \"contentHeight\", \"responsivePaddings\", \"displaySummaryStep\", \"ariaLabel\"] }, { kind: \"component\", type: i1.WizardNavigationComponent, selector: \"fd-wizard-navigation\", inputs: [\"ariaLabel\"] }, { kind: \"directive\", type: i1.WizardProgressBarDirective, selector: \"[fd-wizard-progress-bar]\", inputs: [\"size\"] }, { kind: \"component\", type: i1.WizardStepComponent, selector: \"[fd-wizard-step]\", inputs: [\"ariaLabel\", \"ariaRoleDecription\", \"status\", \"branching\", \"label\", \"optionalText\", \"isSummary\", \"stepClickValidator\"], outputs: [\"statusChange\", \"stepClicked\", \"stepIndicatorItemClicked\"] }, { kind: \"component\", type: i1.WizardContentComponent, selector: \"fd-wizard-content\", inputs: [\"contentBackground\", \"size\"] }, { kind: \"directive\", type: RepeatDirective, selector: \"[fdkRepeat]\", inputs: [\"fdkRepeat\"] }, { kind: \"component\", type: SkeletonComponent, selector: \"fd-skeleton\", inputs: [\"animated\", \"type\", \"textLines\", \"width\", \"height\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardGeneratorComponent, decorators: [{\n type: Component,\n args: [{ selector: 'fdp-wizard-generator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [WizardGeneratorService, FormGeneratorService], imports: [WizardBodyComponent, WizardModule, RepeatDirective, SkeletonComponent], template: \"@if (wizardCreated) {\\n <fdp-wizard-body\\n [navigationButtonLabels]=\\\"_navigationButtonLabels\\\"\\n [goNextButtonTemplate]=\\\"goNextButtonTemplate\\\"\\n [finishButtonTemplate]=\\\"finishButtonTemplate\\\"\\n [customSummaryStepTemplate]=\\\"customSummaryStepTemplate\\\"\\n [reviewButtonTemplate]=\\\"reviewButtonTemplate\\\"\\n [responsivePaddings]=\\\"responsivePaddings\\\"\\n [hidden]=\\\"!wizardCreated\\\"\\n [appendToWizard]=\\\"appendToWizard\\\"\\n [contentHeight]=\\\"contentHeight\\\"\\n [isFirstStep]=\\\"isFirstStep\\\"\\n [isLastStep]=\\\"isLastStep\\\"\\n [isNextStepSummary]=\\\"isNextStepSummary\\\"\\n [isSummaryStep]=\\\"isSummaryStep\\\"\\n [displaySummaryStep]=\\\"displaySummaryStep\\\"\\n [navigationButtons]=\\\"navigationButtons\\\"\\n [unifiedLayout]=\\\"unifiedLayout\\\"\\n [isBranchingStep]=\\\"isBranchingStep\\\"\\n [isCurrentStepCompleted]=\\\"isCurrentStepCompleted\\\"\\n [stepsOrderChanged]=\\\"_stepsOrderChanged\\\"\\n (statusChange)=\\\"stepStatusChanged($event.id, $event.status)\\\"\\n (goNext)=\\\"goNext()\\\"\\n (finish)=\\\"finish()\\\"\\n ></fdp-wizard-body>\\n} @else {\\n <fd-wizard>\\n <fd-wizard-navigation>\\n <ul fd-wizard-progress-bar size=\\\"lg\\\" role=\\\"list\\\" aria-label=\\\"Wizard Steps\\\">\\n <li *fdkRepeat=\\\"3; let i = index\\\" fd-wizard-step [status]=\\\"i === 0 ? 'current' : 'upcoming'\\\">\\n <fd-skeleton type=\\\"rectangle\\\" width=\\\"32px\\\" height=\\\"32px\\\"></fd-skeleton>\\n <fd-wizard-content size=\\\"lg\\\">\\n <fd-skeleton type=\\\"text\\\" width=\\\"60%\\\"></fd-skeleton>\\n </fd-wizard-content>\\n </li>\\n </ul>\\n </fd-wizard-navigation>\\n </fd-wizard>\\n}\\n<!-- The Wizard -->\\n\" }]\n }], propDecorators: { finishButtonTemplate: [{\n type: ContentChild,\n args: [WizardGeneratorFinishButtonDirective, { read: TemplateRef }]\n }], goNextButtonTemplate: [{\n type: ContentChild,\n args: [WizardGeneratorGoNextButtonDirective, { read: TemplateRef }]\n }], customSummaryStepTemplate: [{\n type: ContentChild,\n args: [WizardGeneratorSummaryStepDirective, { read: TemplateRef }]\n }], reviewButtonTemplate: [{\n type: ContentChild,\n args: [WizardGeneratorReviewButtonDirective, { read: TemplateRef }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3IvY29tcG9uZW50cy93aXphcmQtZ2VuZXJhdG9yL3dpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvd2l6YXJkLWdlbmVyYXRvci93aXphcmQtZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzVELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pILE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQ2xILE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDJEQUEyRCxDQUFDO0FBQ2pILE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQy9HLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7QUFVM0UsTUFBTSxPQUFPLHdCQUF5QixTQUFRLG1CQUFtQjs4R0FBcEQsd0JBQXdCO2tHQUF4Qix3QkFBd0IsbUVBSHRCLENBQUMsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUMsNEVBTzNDLG9DQUFvQywyQkFBVSxXQUFXLG9FQU16RCxvQ0FBb0MsMkJBQVUsV0FBVyx5RUFNekQsbUNBQW1DLDJCQUFVLFdBQVcsb0VBTXhELG9DQUFvQywyQkFBVSxXQUFXLG9EQzVDM0UsK3hEQXdDQSw0Q0RwQmMsbUJBQW1CLDZlQUFFLFlBQVksNDBCQUFFLGVBQWUsK0VBQUUsaUJBQWlCOzsyRkFFdEUsd0JBQXdCO2tCQVJwQyxTQUFTOytCQUNJLHNCQUFzQixpQkFFakIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLHNCQUFzQixFQUFFLG9CQUFvQixDQUFDLFdBQ2hELENBQUMsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxpQkFBaUIsQ0FBQzs4QkFPaEYsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLG9DQUFvQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFPekUsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLG9DQUFvQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFPekUseUJBQXlCO3NCQUR4QixZQUFZO3VCQUFDLG1DQUFtQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFPeEUsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLG9DQUFvQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vZm9ybSc7XG5cbmltcG9ydCB7IFJlcGVhdERpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IFNrZWxldG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3NrZWxldG9uJztcbmltcG9ydCB7IFdpemFyZE1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS93aXphcmQnO1xuaW1wb3J0IHsgQmFzZVdpemFyZEdlbmVyYXRvciB9IGZyb20gJy4uLy4uL2Jhc2Utd2l6YXJkLWdlbmVyYXRvcic7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JGaW5pc2hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3ItZmluaXNoLWJ1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yR29OZXh0QnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy93aXphcmQtZ2VuZXJhdG9yLWdvLW5leHQtYnV0dG9uLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JSZXZpZXdCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3ItcmV2aWV3LWJ1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yU3VtbWFyeVN0ZXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3Itc3VtbWFyeS1zdGVwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd2l6YXJkLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFdpemFyZEJvZHlDb21wb25lbnQgfSBmcm9tICcuLi93aXphcmQtYm9keS93aXphcmQtYm9keS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC13aXphcmQtZ2VuZXJhdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vd2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtXaXphcmRHZW5lcmF0b3JTZXJ2aWNlLCBGb3JtR2VuZXJhdG9yU2VydmljZV0sXG4gICAgaW1wb3J0czogW1dpemFyZEJvZHlDb21wb25lbnQsIFdpemFyZE1vZHVsZSwgUmVwZWF0RGlyZWN0aXZlLCBTa2VsZXRvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgV2l6YXJkR2VuZXJhdG9yQ29tcG9uZW50IGV4dGVuZHMgQmFzZVdpemFyZEdlbmVyYXRvciB7XG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIkZpbmlzaFwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKFdpemFyZEdlbmVyYXRvckZpbmlzaEJ1dHRvbkRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGZpbmlzaEJ1dHRvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFwiR28gTmV4dFwiIGJ1dHRvbi5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKFdpemFyZEdlbmVyYXRvckdvTmV4dEJ1dHRvbkRpcmVjdGl2ZSwgeyByZWFkOiBUZW1wbGF0ZVJlZiB9KVxuICAgIGdvTmV4dEJ1dHRvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD47XG5cbiAgICAvKipcbiAgICAgKiBVc2VyLWRlZmluZWQgdGVtcGxhdGUgZm9yIFN1bW1hcnkgc3RlcC5cbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkKFdpemFyZEdlbmVyYXRvclN1bW1hcnlTdGVwRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgY3VzdG9tU3VtbWFyeVN0ZXBUZW1wbGF0ZTogVGVtcGxhdGVSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIlJldmlld1wiIGJ1dHRvblxuICAgICAqL1xuICAgIEBDb250ZW50Q2hpbGQoV2l6YXJkR2VuZXJhdG9yUmV2aWV3QnV0dG9uRGlyZWN0aXZlLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gICAgcmV2aWV3QnV0dG9uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50Pjtcbn1cbiIsIkBpZiAod2l6YXJkQ3JlYXRlZCkge1xuICAgIDxmZHAtd2l6YXJkLWJvZHlcbiAgICAgICAgW25hdmlnYXRpb25CdXR0b25MYWJlbHNdPVwiX25hdmlnYXRpb25CdXR0b25MYWJlbHNcIlxuICAgICAgICBbZ29OZXh0QnV0dG9uVGVtcGxhdGVdPVwiZ29OZXh0QnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICBbZmluaXNoQnV0dG9uVGVtcGxhdGVdPVwiZmluaXNoQnV0dG9uVGVtcGxhdGVcIlxuICAgICAgICBbY3VzdG9tU3VtbWFyeVN0ZXBUZW1wbGF0ZV09XCJjdXN0b21TdW1tYXJ5U3RlcFRlbXBsYXRlXCJcbiAgICAgICAgW3Jldmlld0J1dHRvblRlbXBsYXRlXT1cInJldmlld0J1dHRvblRlbXBsYXRlXCJcbiAgICAgICAgW3Jlc3BvbnNpdmVQYWRkaW5nc109XCJyZXNwb25zaXZlUGFkZGluZ3NcIlxuICAgICAgICBbaGlkZGVuXT1cIiF3aXphcmRDcmVhdGVkXCJcbiAgICAgICAgW2FwcGVuZFRvV2l6YXJkXT1cImFwcGVuZFRvV2l6YXJkXCJcbiAgICAgICAgW2NvbnRlbnRIZWlnaHRdPVwiY29udGVudEhlaWdodFwiXG4gICAgICAgIFtpc0ZpcnN0U3RlcF09XCJpc0ZpcnN0U3RlcFwiXG4gICAgICAgIFtpc0xhc3RTdGVwXT1cImlzTGFzdFN0ZXBcIlxuICAgICAgICBbaXNOZXh0U3RlcFN1bW1hcnldPVwiaXNOZXh0U3RlcFN1bW1hcnlcIlxuICAgICAgICBbaXNTdW1tYXJ5U3RlcF09XCJpc1N1bW1hcnlTdGVwXCJcbiAgICAgICAgW2Rpc3BsYXlTdW1tYXJ5U3RlcF09XCJkaXNwbGF5U3VtbWFyeVN0ZXBcIlxuICAgICAgICBbbmF2aWdhdGlvbkJ1dHRvbnNdPVwibmF2aWdhdGlvbkJ1dHRvbnNcIlxuICAgICAgICBbdW5pZmllZExheW91dF09XCJ1bmlmaWVkTGF5b3V0XCJcbiAgICAgICAgW2lzQnJhbmNoaW5nU3RlcF09XCJpc0JyYW5jaGluZ1N0ZXBcIlxuICAgICAgICBbaXNDdXJyZW50U3RlcENvbXBsZXRlZF09XCJpc0N1cnJlbnRTdGVwQ29tcGxldGVkXCJcbiAgICAgICAgW3N0ZXBzT3JkZXJDaGFuZ2VkXT1cIl9zdGVwc09yZGVyQ2hhbmdlZFwiXG4gICAgICAgIChzdGF0dXNDaGFuZ2UpPVwic3RlcFN0YXR1c0NoYW5nZWQoJGV2ZW50LmlkLCAkZXZlbnQuc3RhdHVzKVwiXG4gICAgICAgIChnb05leHQpPVwiZ29OZXh0KClcIlxuICAgICAgICAoZmluaXNoKT1cImZpbmlzaCgpXCJcbiAgICA+PC9mZHAtd2l6YXJkLWJvZHk+XG59IEBlbHNlIHtcbiAgICA8ZmQtd2l6YXJkPlxuICAgICAgICA8ZmQtd2l6YXJkLW5hdmlnYXRpb24+XG4gICAgICAgICAgICA8dWwgZmQtd2l6YXJkLXByb2dyZXNzLWJhciBzaXplPVwibGdcIiByb2xlPVwibGlzdFwiIGFyaWEtbGFiZWw9XCJXaXphcmQgU3RlcHNcIj5cbiAgICAgICAgICAgICAgICA8bGkgKmZka1JlcGVhdD1cIjM7IGxldCBpID0gaW5kZXhcIiBmZC13aXphcmQtc3RlcCBbc3RhdHVzXT1cImkgPT09IDAgPyAnY3VycmVudCcgOiAndXBjb21pbmcnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmZC1za2VsZXRvbiB0eXBlPVwicmVjdGFuZ2xlXCIgd2lkdGg9XCIzMnB4XCIgaGVpZ2h0PVwiMzJweFwiPjwvZmQtc2tlbGV0b24+XG4gICAgICAgICAgICAgICAgICAgIDxmZC13aXphcmQtY29udGVudCBzaXplPVwibGdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmZC1za2VsZXRvbiB0eXBlPVwidGV4dFwiIHdpZHRoPVwiNjAlXCI+PC9mZC1za2VsZXRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9mZC13aXphcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgPC91bD5cbiAgICAgICAgPC9mZC13aXphcmQtbmF2aWdhdGlvbj5cbiAgICA8L2ZkLXdpemFyZD5cbn1cbjwhLS0gVGhlIFdpemFyZCAtLT5cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { DialogService } from '@fundamental-ngx/core/dialog';\nimport { DialogWizardGeneratorComponent } from './components/dialog-wizard-generator/dialog-wizard-generator.component';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@fundamental-ngx/core/dialog\";\n/**\n * @description Helper service to launch Wizard in dialog with minimal user input.\n */\nexport class WizardDialogGeneratorService {\n /** @hidden */\n constructor(_dialogService) {\n this._dialogService = _dialogService;\n }\n /**\n * @description Opens dialog with wizard component inside.\n * @param config Dialog options with wizard config.\n * @returns DialogRef instance.\n */\n open(config) {\n const dialogRef = this._dialogService.open(DialogWizardGeneratorComponent, config);\n return dialogRef;\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardDialogGeneratorService, deps: [{ token: i1.DialogService }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardDialogGeneratorService }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: WizardDialogGeneratorService, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.DialogService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWRpYWxvZy1nZW5lcmF0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vd2l6YXJkLWdlbmVyYXRvci93aXphcmQtZGlhbG9nLWdlbmVyYXRvci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUEyQixhQUFhLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx3RUFBd0UsQ0FBQzs7O0FBSXhIOztHQUVHO0FBRUgsTUFBTSxPQUFPLDRCQUE0QjtJQUNyQyxjQUFjO0lBQ2QsWUFBb0IsY0FBNkI7UUFBN0IsbUJBQWMsR0FBZCxjQUFjLENBQWU7SUFBRyxDQUFDO0lBRXJEOzs7O09BSUc7SUFDSCxJQUFJLENBQUMsTUFBc0M7UUFDdkMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsOEJBQThCLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFbkYsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs4R0FiUSw0QkFBNEI7a0hBQTVCLDRCQUE0Qjs7MkZBQTVCLDRCQUE0QjtrQkFEeEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRGlhbG9nQ29uZmlnLCBEaWFsb2dSZWYsIERpYWxvZ1NlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvZGlhbG9nJztcbmltcG9ydCB7IERpYWxvZ1dpemFyZEdlbmVyYXRvckNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9kaWFsb2ctd2l6YXJkLWdlbmVyYXRvci9kaWFsb2ctd2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkRGlhbG9nRGF0YSB9IGZyb20gJy4vaW50ZXJmYWNlcy93aXphcmQtZGlhbG9nLWRhdGEuaW50ZXJmYWNlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvckZvcm1zVmFsdWUgfSBmcm9tICcuL2ludGVyZmFjZXMvd2l6YXJkLWdlbmVyYXRvci1mb3Jtcy5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBIZWxwZXIgc2VydmljZSB0byBsYXVuY2ggV2l6YXJkIGluIGRpYWxvZyB3aXRoIG1pbmltYWwgdXNlciBpbnB1dC5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFdpemFyZERpYWxvZ0dlbmVyYXRvclNlcnZpY2Uge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSkge31cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBPcGVucyBkaWFsb2cgd2l0aCB3aXphcmQgY29tcG9uZW50IGluc2lkZS5cbiAgICAgKiBAcGFyYW0gY29uZmlnIERpYWxvZyBvcHRpb25zIHdpdGggd2l6YXJkIGNvbmZpZy5cbiAgICAgKiBAcmV0dXJucyBEaWFsb2dSZWYgaW5zdGFuY2UuXG4gICAgICovXG4gICAgb3Blbihjb25maWc6IERpYWxvZ0NvbmZpZzxXaXphcmREaWFsb2dEYXRhPik6IERpYWxvZ1JlZjxXaXphcmREaWFsb2dEYXRhLCBXaXphcmRHZW5lcmF0b3JGb3Jtc1ZhbHVlPiB7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihEaWFsb2dXaXphcmRHZW5lcmF0b3JDb21wb25lbnQsIGNvbmZpZyk7XG5cbiAgICAgICAgcmV0dXJuIGRpYWxvZ1JlZjtcbiAgICB9XG59XG4iXX0=","import { NgModule } from '@angular/core';\nimport { FORM_GENERATOR_CONFIG, FORM_GENERATOR_ITEM_CONFIG, PlatformFormGeneratorModule } from '@fundamental-ngx/platform/form';\nimport { DialogWizardGeneratorComponent } from './components/dialog-wizard-generator/dialog-wizard-generator.component';\nimport { WizardBodyComponent } from './components/wizard-body/wizard-body.component';\nimport { WizardGeneratorStepComponent } from './components/wizard-generator-step/wizard-generator-step.component';\nimport { WizardGeneratorComponent } from './components/wizard-generator/wizard-generator.component';\nimport { WizardSummarySectionComponent } from './components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component';\nimport { WizardSummaryStepComponent } from './components/wizard-summary-step/wizard-summary-step.component';\nimport { WizardGeneratorFinishButtonDirective } from './directives/wizard-generator-finish-button.directive';\nimport { WizardGeneratorGoNextButtonDirective } from './directives/wizard-generator-go-next-button.directive';\nimport { WizardGeneratorReviewButtonDirective } from './directives/wizard-generator-review-button.directive';\nimport { WizardGeneratorSummaryStepDirective } from './directives/wizard-generator-summary-step.directive';\nimport { WizardDialogGeneratorService } from './wizard-dialog-generator.service';\nimport * as i0 from \"@angular/core\";\n/**\n * Adds Wizard Generator functionality to your application.\n *\n * Can be imported in two ways:\n * * Plain PlatformWizardGeneratorModule with default configuration\n * * With `withConfig()` method which allows passing custom default configuration.\n */\nexport class PlatformWizardGeneratorModule {\n /**\n * Allows configuring module on a global level with custom configuration.\n * @param config User's custom configuration.\n */\n static withConfig(config) {\n return {\n ngModule: PlatformWizardGeneratorModule,\n providers: [\n {\n provide: FORM_GENERATOR_ITEM_CONFIG,\n useValue: config.itemConfig\n },\n {\n provide: FORM_GENERATOR_CONFIG,\n useValue: config.formConfig\n }\n ]\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformWizardGeneratorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformWizardGeneratorModule, imports: [PlatformFormGeneratorModule,\n WizardGeneratorComponent,\n WizardGeneratorStepComponent,\n WizardBodyComponent,\n DialogWizardGeneratorComponent,\n WizardSummaryStepComponent,\n WizardSummarySectionComponent,\n WizardGeneratorGoNextButtonDirective,\n WizardGeneratorFinishButtonDirective,\n WizardGeneratorSummaryStepDirective,\n WizardGeneratorReviewButtonDirective], exports: [WizardGeneratorComponent,\n WizardGeneratorStepComponent,\n WizardBodyComponent,\n DialogWizardGeneratorComponent,\n WizardSummaryStepComponent,\n WizardSummarySectionComponent,\n WizardGeneratorGoNextButtonDirective,\n WizardGeneratorFinishButtonDirective,\n WizardGeneratorSummaryStepDirective,\n WizardGeneratorReviewButtonDirective] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformWizardGeneratorModule, providers: [WizardDialogGeneratorService], imports: [PlatformFormGeneratorModule,\n WizardGeneratorComponent,\n WizardGeneratorStepComponent,\n WizardBodyComponent,\n DialogWizardGeneratorComponent,\n WizardSummaryStepComponent,\n WizardSummarySectionComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.4\", ngImport: i0, type: PlatformWizardGeneratorModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n PlatformFormGeneratorModule,\n WizardGeneratorComponent,\n WizardGeneratorStepComponent,\n WizardBodyComponent,\n DialogWizardGeneratorComponent,\n WizardSummaryStepComponent,\n WizardSummarySectionComponent,\n WizardGeneratorGoNextButtonDirective,\n WizardGeneratorFinishButtonDirective,\n WizardGeneratorSummaryStepDirective,\n WizardGeneratorReviewButtonDirective\n ],\n exports: [\n WizardGeneratorComponent,\n WizardGeneratorStepComponent,\n WizardBodyComponent,\n DialogWizardGeneratorComponent,\n WizardSummaryStepComponent,\n WizardSummarySectionComponent,\n WizardGeneratorGoNextButtonDirective,\n WizardGeneratorFinishButtonDirective,\n WizardGeneratorSummaryStepDirective,\n WizardGeneratorReviewButtonDirective\n ],\n providers: [WizardDialogGeneratorService]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLWdlbmVyYXRvci5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3Ivd2l6YXJkLWdlbmVyYXRvci5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNILHFCQUFxQixFQUNyQiwwQkFBMEIsRUFFMUIsMkJBQTJCLEVBQzlCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDeEgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDckYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0VBQW9FLENBQUM7QUFDbEgsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMEZBQTBGLENBQUM7QUFDekksT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDNUcsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDN0csT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sd0RBQXdELENBQUM7QUFDOUcsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDN0csT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFDM0csT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBRWpGOzs7Ozs7R0FNRztBQTZCSCxNQUFNLE9BQU8sNkJBQTZCO0lBQ3RDOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBMEM7UUFDeEQsT0FBTztZQUNILFFBQVEsRUFBRSw2QkFBNkI7WUFDdkMsU0FBUyxFQUFFO2dCQUNQO29CQUNJLE9BQU8sRUFBRSwwQkFBMEI7b0JBQ25DLFFBQVEsRUFBRSxNQUFNLENBQUMsVUFBVTtpQkFDOUI7Z0JBQ0Q7b0JBQ0ksT0FBTyxFQUFFLHFCQUFxQjtvQkFDOUIsUUFBUSxFQUFFLE1BQU0sQ0FBQyxVQUFVO2lCQUM5QjthQUNKO1NBQ0osQ0FBQztJQUNOLENBQUM7OEdBbkJRLDZCQUE2QjsrR0FBN0IsNkJBQTZCLFlBMUJsQywyQkFBMkI7WUFDM0Isd0JBQXdCO1lBQ3hCLDRCQUE0QjtZQUM1QixtQkFBbUI7WUFDbkIsOEJBQThCO1lBQzlCLDBCQUEwQjtZQUMxQiw2QkFBNkI7WUFDN0Isb0NBQW9DO1lBQ3BDLG9DQUFvQztZQUNwQyxtQ0FBbUM7WUFDbkMsb0NBQW9DLGFBR3BDLHdCQUF3QjtZQUN4Qiw0QkFBNEI7WUFDNUIsbUJBQW1CO1lBQ25CLDhCQUE4QjtZQUM5QiwwQkFBMEI7WUFDMUIsNkJBQTZCO1lBQzdCLG9DQUFvQztZQUNwQyxvQ0FBb0M7WUFDcEMsbUNBQW1DO1lBQ25DLG9DQUFvQzsrR0FJL0IsNkJBQTZCLGFBRjNCLENBQUMsNEJBQTRCLENBQUMsWUF4QnJDLDJCQUEyQjtZQUMzQix3QkFBd0I7WUFDeEIsNEJBQTRCO1lBQzVCLG1CQUFtQjtZQUNuQiw4QkFBOEI7WUFDOUIsMEJBQTBCO1lBQzFCLDZCQUE2Qjs7MkZBb0J4Qiw2QkFBNkI7a0JBNUJ6QyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRTt3QkFDTCwyQkFBMkI7d0JBQzNCLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QixtQkFBbUI7d0JBQ25CLDhCQUE4Qjt3QkFDOUIsMEJBQTBCO3dCQUMxQiw2QkFBNkI7d0JBQzdCLG9DQUFvQzt3QkFDcEMsb0NBQW9DO3dCQUNwQyxtQ0FBbUM7d0JBQ25DLG9DQUFvQztxQkFDdkM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLHdCQUF3Qjt3QkFDeEIsNEJBQTRCO3dCQUM1QixtQkFBbUI7d0JBQ25CLDhCQUE4Qjt3QkFDOUIsMEJBQTBCO3dCQUMxQiw2QkFBNkI7d0JBQzdCLG9DQUFvQzt3QkFDcEMsb0NBQW9DO3dCQUNwQyxtQ0FBbUM7d0JBQ25DLG9DQUFvQztxQkFDdkM7b0JBQ0QsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7aUJBQzVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgRk9STV9HRU5FUkFUT1JfQ09ORklHLFxuICAgIEZPUk1fR0VORVJBVE9SX0lURU1fQ09ORklHLFxuICAgIEZvcm1HZW5lcmF0b3JNb2R1bGVDb25maWcsXG4gICAgUGxhdGZvcm1Gb3JtR2VuZXJhdG9yTW9kdWxlXG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vZm9ybSc7XG5pbXBvcnQgeyBEaWFsb2dXaXphcmRHZW5lcmF0b3JDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFdpemFyZEJvZHlDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd2l6YXJkLWJvZHkvd2l6YXJkLWJvZHkuY29tcG9uZW50JztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclN0ZXBDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd2l6YXJkLWdlbmVyYXRvci1zdGVwL3dpemFyZC1nZW5lcmF0b3Itc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3dpemFyZC1nZW5lcmF0b3Ivd2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkU3VtbWFyeVNlY3Rpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd2l6YXJkLXN1bW1hcnktc3RlcC93aXphcmQtc3VtbWFyeS1zZWN0aW9uL3dpemFyZC1zdW1tYXJ5LXNlY3Rpb24uY29tcG9uZW50JztcbmltcG9ydCB7IFdpemFyZFN1bW1hcnlTdGVwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3dpemFyZC1zdW1tYXJ5LXN0ZXAvd2l6YXJkLXN1bW1hcnktc3RlcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yRmluaXNoQnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3ItZmluaXNoLWJ1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yR29OZXh0QnV0dG9uRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3ItZ28tbmV4dC1idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclJldmlld0J1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy93aXphcmQtZ2VuZXJhdG9yLXJldmlldy1idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFdpemFyZEdlbmVyYXRvclN1bW1hcnlTdGVwRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3dpemFyZC1nZW5lcmF0b3Itc3VtbWFyeS1zdGVwLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBXaXphcmREaWFsb2dHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi93aXphcmQtZGlhbG9nLWdlbmVyYXRvci5zZXJ2aWNlJztcblxuLyoqXG4gKiBBZGRzIFdpemFyZCBHZW5lcmF0b3IgZnVuY3Rpb25hbGl0eSB0byB5b3VyIGFwcGxpY2F0aW9uLlxuICpcbiAqIENhbiBiZSBpbXBvcnRlZCBpbiB0d28gd2F5czpcbiAqICogUGxhaW4gUGxhdGZvcm1XaXphcmRHZW5lcmF0b3JNb2R1bGUgd2l0aCBkZWZhdWx0IGNvbmZpZ3VyYXRpb25cbiAqICogV2l0aCBgd2l0aENvbmZpZygpYCBtZXRob2Qgd2hpY2ggYWxsb3dzIHBhc3NpbmcgY3VzdG9tIGRlZmF1bHQgY29uZmlndXJhdGlvbi5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFBsYXRmb3JtRm9ybUdlbmVyYXRvck1vZHVsZSxcbiAgICAgICAgV2l6YXJkR2VuZXJhdG9yQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JTdGVwQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRCb2R5Q29tcG9uZW50LFxuICAgICAgICBEaWFsb2dXaXphcmRHZW5lcmF0b3JDb21wb25lbnQsXG4gICAgICAgIFdpemFyZFN1bW1hcnlTdGVwQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRTdW1tYXJ5U2VjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgV2l6YXJkR2VuZXJhdG9yR29OZXh0QnV0dG9uRGlyZWN0aXZlLFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JGaW5pc2hCdXR0b25EaXJlY3RpdmUsXG4gICAgICAgIFdpemFyZEdlbmVyYXRvclN1bW1hcnlTdGVwRGlyZWN0aXZlLFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JSZXZpZXdCdXR0b25EaXJlY3RpdmVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgV2l6YXJkR2VuZXJhdG9yQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JTdGVwQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRCb2R5Q29tcG9uZW50LFxuICAgICAgICBEaWFsb2dXaXphcmRHZW5lcmF0b3JDb21wb25lbnQsXG4gICAgICAgIFdpemFyZFN1bW1hcnlTdGVwQ29tcG9uZW50LFxuICAgICAgICBXaXphcmRTdW1tYXJ5U2VjdGlvbkNvbXBvbmVudCxcbiAgICAgICAgV2l6YXJkR2VuZXJhdG9yR29OZXh0QnV0dG9uRGlyZWN0aXZlLFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JGaW5pc2hCdXR0b25EaXJlY3RpdmUsXG4gICAgICAgIFdpemFyZEdlbmVyYXRvclN1bW1hcnlTdGVwRGlyZWN0aXZlLFxuICAgICAgICBXaXphcmRHZW5lcmF0b3JSZXZpZXdCdXR0b25EaXJlY3RpdmVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1dpemFyZERpYWxvZ0dlbmVyYXRvclNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFBsYXRmb3JtV2l6YXJkR2VuZXJhdG9yTW9kdWxlIHtcbiAgICAvKipcbiAgICAgKiBBbGxvd3MgY29uZmlndXJpbmcgbW9kdWxlIG9uIGEgZ2xvYmFsIGxldmVsIHdpdGggY3VzdG9tIGNvbmZpZ3VyYXRpb24uXG4gICAgICogQHBhcmFtIGNvbmZpZyBVc2VyJ3MgY3VzdG9tIGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc3RhdGljIHdpdGhDb25maWcoY29uZmlnOiBQYXJ0aWFsPEZvcm1HZW5lcmF0b3JNb2R1bGVDb25maWc+KTogTW9kdWxlV2l0aFByb3ZpZGVyczxQbGF0Zm9ybVdpemFyZEdlbmVyYXRvck1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IFBsYXRmb3JtV2l6YXJkR2VuZXJhdG9yTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm92aWRlOiBGT1JNX0dFTkVSQVRPUl9JVEVNX0NPTkZJRyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZy5pdGVtQ29uZmlnXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IEZPUk1fR0VORVJBVE9SX0NPTkZJRyxcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGNvbmZpZy5mb3JtQ29uZmlnXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuZGFtZW50YWwtbmd4LXBsYXRmb3JtLXdpemFyZC1nZW5lcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL3dpemFyZC1nZW5lcmF0b3IvZnVuZGFtZW50YWwtbmd4LXBsYXRmb3JtLXdpemFyZC1nZW5lcmF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0="],"names":["i1","isFunction","i1.WizardGeneratorService","i2"],"mappings":"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"}
|