@fundamental-ngx/platform 0.51.0 → 0.51.1-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,7 +8,7 @@ import { InitialFocusDirective } from '@fundamental-ngx/cdk/utils';
8
8
  import { BarModule } from '@fundamental-ngx/core/bar';
9
9
  import { ButtonComponent } from '@fundamental-ngx/core/button';
10
10
  import { ContentDensityDirective } from '@fundamental-ngx/core/content-density';
11
- import { DialogModule, DialogRef } from '@fundamental-ngx/core/dialog';
11
+ import { DialogBodyComponent, DialogComponent, DialogHeaderComponent, DialogRef } from '@fundamental-ngx/core/dialog';
12
12
  import { MessageBoxModule, MessageBoxService } from '@fundamental-ngx/core/message-box';
13
13
  import { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';
14
14
  import { TitleComponent } from '@fundamental-ngx/core/title';
@@ -18,9 +18,8 @@ import { WizardBodyComponent } from '../wizard-body/wizard-body.component';
18
18
  import * as i0 from "@angular/core";
19
19
  import * as i1 from "@fundamental-ngx/core/dialog";
20
20
  import * as i2 from "@fundamental-ngx/core/bar";
21
- import * as i3 from "@fundamental-ngx/core/title";
22
- import * as i4 from "@fundamental-ngx/core/message-box";
23
- import * as i5 from "@fundamental-ngx/cdk/utils";
21
+ import * as i3 from "@fundamental-ngx/core/message-box";
22
+ import * as i4 from "@fundamental-ngx/cdk/utils";
24
23
  export class DialogWizardGeneratorComponent extends BaseWizardGenerator {
25
24
  /** @hidden */
26
25
  constructor(_dialogRef) {
@@ -123,12 +122,11 @@ export class DialogWizardGeneratorComponent extends BaseWizardGenerator {
123
122
  });
124
123
  }
125
124
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DialogWizardGeneratorComponent, deps: [{ token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
126
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", 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: "ngmodule", type: DialogModule }, { kind: "component", type: i1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { 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: i3.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: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], 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: i4.MessageBoxFooterComponent, selector: "fd-message-box-footer" }, { kind: "component", type: i4.MessageBoxBodyComponent, selector: "fd-message-box-body" }, { kind: "component", type: i4.MessageBoxComponent, selector: "fd-message-box", inputs: ["class", "messageBoxRef", "messageBoxConfig"] }, { kind: "directive", type: i4.MessageBoxTemplateDirective, selector: "[fdMessageBoxTemplate]", inputs: ["fdMessageBoxTemplateConfig"] }, { kind: "directive", type: i5.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
125
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", 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", "size"] }, { 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"], 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 }); }
127
126
  }
128
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DialogWizardGeneratorComponent, decorators: [{
129
128
  type: Component,
130
129
  args: [{ selector: 'fdp-dialog-wizard-generator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [WizardGeneratorService, FormGeneratorService], standalone: true, imports: [
131
- DialogModule,
132
130
  TitleComponent,
133
131
  CdkScrollable,
134
132
  ScrollbarDirective,
@@ -138,10 +136,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
138
136
  ContentDensityDirective,
139
137
  NgTemplateOutlet,
140
138
  MessageBoxModule,
141
- InitialFocusDirective
139
+ InitialFocusDirective,
140
+ DialogBodyComponent,
141
+ DialogHeaderComponent,
142
+ DialogComponent
142
143
  ], 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" }]
143
144
  }], ctorParameters: () => [{ type: i1.DialogRef }], propDecorators: { defaultConfirmationDialogTemplate: [{
144
145
  type: ViewChild,
145
146
  args: ['defaultConfirmationDialogTemplate']
146
147
  }] } });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFB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QUFDO2dCQUMxRCxPQUFPO1lBQ1gsQ0FBQztZQUVELE1BQU0sWUFBWSxHQUFHLE1BQU0sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs4R0E5SVEsOEJBQThCO2tHQUE5Qiw4QkFBOEIsMEVBaEI1QixDQUFDLHNCQUFzQixFQUFFLG9CQUFvQixDQUFDLHlNQzFCN0QsNnhNQTZIQSwyQ0RoR1EsWUFBWSx5MEJBSVosbUJBQW1CLDZlQUNuQixTQUFTLCtCQUNULGVBQWUseUlBQ2YsdUJBQXVCLG9kQUN2QixnQkFBZ0IsbUpBQ2hCLGdCQUFnQjs7MkZBSVgsOEJBQThCO2tCQXJCMUMsU0FBUzsrQkFDSSw2QkFBNkIsaUJBRXhCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxzQkFBc0IsRUFBRSxvQkFBb0IsQ0FBQyxjQUM3QyxJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLFNBQVM7d0JBQ1QsZUFBZTt3QkFDZix1QkFBdUI7d0JBQ3ZCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixxQkFBcUI7cUJBQ3hCOzhFQUkrQyxpQ0FBaUM7c0JBQWhGLFNBQVM7dUJBQUMsbUNBQW1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L3BsYXRmb3JtL2Zvcm0nO1xuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBDZGtTY3JvbGxhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBJbml0aWFsRm9jdXNEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2Nkay91dGlscyc7XG5pbXBvcnQgeyBCYXJNb2R1bGUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvYmFyJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9idXR0b24nO1xuaW1wb3J0IHsgQ29udGVudERlbnNpdHlEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvY29udGVudC1kZW5zaXR5JztcbmltcG9ydCB7IERpYWxvZ01vZHVsZSwgRGlhbG9nUmVmIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2RpYWxvZyc7XG5pbXBvcnQgeyBNZXNzYWdlQm94TW9kdWxlLCBNZXNzYWdlQm94U2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9tZXNzYWdlLWJveCc7XG5pbXBvcnQgeyBTY3JvbGxiYXJEaXJlY3RpdmUgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvc2Nyb2xsYmFyJztcbmltcG9ydCB7IFRpdGxlQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3RpdGxlJztcbmltcG9ydCB7IEJhc2VXaXphcmRHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi9iYXNlLXdpemFyZC1nZW5lcmF0b3InO1xuaW1wb3J0IHsgV2l6YXJkRGlhbG9nRGF0YSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvd2l6YXJkLWRpYWxvZy1kYXRhLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRUaXRsZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvd2l6YXJkLXRpdGxlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBXaXphcmRHZW5lcmF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vd2l6YXJkLWdlbmVyYXRvci5zZXJ2aWNlJztcbmltcG9ydCB7IFdpemFyZEJvZHlDb21wb25lbnQgfSBmcm9tICcuLi93aXphcmQtYm9keS93aXphcmQtYm9keS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ZkcC1kaWFsb2ctd2l6YXJkLWdlbmVyYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RpYWxvZy13aXphcmQtZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByb3ZpZGVyczogW1dpemFyZEdlbmVyYXRvclNlcnZpY2UsIEZvcm1HZW5lcmF0b3JTZXJ2aWNlXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgRGlhbG9nTW9kdWxlLFxuICAgICAgICBUaXRsZUNvbXBvbmVudCxcbiAgICAgICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICAgICAgU2Nyb2xsYmFyRGlyZWN0aXZlLFxuICAgICAgICBXaXphcmRCb2R5Q29tcG9uZW50LFxuICAgICAgICBCYXJNb2R1bGUsXG4gICAgICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICAgICAgQ29udGVudERlbnNpdHlEaXJlY3RpdmUsXG4gICAgICAgIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgICAgIE1lc3NhZ2VCb3hNb2R1bGUsXG4gICAgICAgIEluaXRpYWxGb2N1c0RpcmVjdGl2ZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nV2l6YXJkR2VuZXJhdG9yQ29tcG9uZW50IGV4dGVuZHMgQmFzZVdpemFyZEdlbmVyYXRvciB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdkZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGUnKSBkZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXaXphcmRzIGRpYWxvZyB0aXRsZSBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHRpdGxlOiBXaXphcmRUaXRsZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb25maXJtYXRpb24gbWVzc2FnZSB3aGVuIHdpemFyZCBkaWFsb2cgY2xvc2UgYnV0dG9uIGhhcyBiZWVuIGNsaWNrZWQuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nVGV4dCA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGlzY2FyZCB5b3VyIHByb2dyZXNzPyc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbmZpcm0gYnV0dG9uIHRleHQgZm9yIGNsb3NlIGNvbmZpcm1hdGlvbiBkaWFsb2cuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nQ2xvc2VUZXh0ID0gJ0NvbmZpcm0nO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYW5jZWwgYnV0dG9uIHRleHQgZm9yIGNsb3NlIGNvbmZpcm1hdGlvbiBkaWFsb2cuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nQ2FuY2VsVGV4dCA9ICdDYW5jZWwnO1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIkdvIE5leHRcIiBidXR0b24uXG4gICAgICovXG4gICAgZ29OZXh0QnV0dG9uVGVtcGxhdGU/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
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS93aXphcmQtZ2VuZXJhdG9yL2NvbXBvbmVudHMvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IvZGlhbG9nLXdpemFyZC1nZW5lcmF0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDaEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxxQkFBcUIs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QyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzFELE9BQU87WUFDWCxDQUFDO1lBRUQsTUFBTSxZQUFZLEdBQUcsTUFBTSxJQUFJLENBQUMsdUJBQXVCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOzhHQTlJUSw4QkFBOEI7a0dBQTlCLDhCQUE4QiwwRUFsQjVCLENBQUMsc0JBQXNCLEVBQUUsb0JBQW9CLENBQUMseU1DMUI3RCw2eE1BNkhBLDRDRGhHUSxjQUFjLDBIQUdkLG1CQUFtQiw2ZUFDbkIsU0FBUyxtWUFDVCxlQUFlLHlJQUNmLHVCQUF1QixvZEFDdkIsZ0JBQWdCLG1KQUNoQixnQkFBZ0IsMm5CQUVoQixtQkFBbUIsd0ZBQ25CLHFCQUFxQiw2REFDckIsZUFBZTs7MkZBR1YsOEJBQThCO2tCQXZCMUMsU0FBUzsrQkFDSSw2QkFBNkIsaUJBRXhCLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sYUFDcEMsQ0FBQyxzQkFBc0IsRUFBRSxvQkFBb0IsQ0FBQyxjQUM3QyxJQUFJLFdBQ1A7d0JBQ0wsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixTQUFTO3dCQUNULGVBQWU7d0JBQ2YsdUJBQXVCO3dCQUN2QixnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIscUJBQXFCO3dCQUNyQixtQkFBbUI7d0JBQ25CLHFCQUFxQjt3QkFDckIsZUFBZTtxQkFDbEI7OEVBSStDLGlDQUFpQztzQkFBaEYsU0FBUzt1QkFBQyxtQ0FBbUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvcGxhdGZvcm0vZm9ybSc7XG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IENka1Njcm9sbGFibGUgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEluaXRpYWxGb2N1c0RpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY2RrL3V0aWxzJztcbmltcG9ydCB7IEJhck1vZHVsZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9iYXInO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL2J1dHRvbic7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9jb250ZW50LWRlbnNpdHknO1xuaW1wb3J0IHsgRGlhbG9nQm9keUNvbXBvbmVudCwgRGlhbG9nQ29tcG9uZW50LCBEaWFsb2dIZWFkZXJDb21wb25lbnQsIERpYWxvZ1JlZiB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS9kaWFsb2cnO1xuaW1wb3J0IHsgTWVzc2FnZUJveE1vZHVsZSwgTWVzc2FnZUJveFNlcnZpY2UgfSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUvbWVzc2FnZS1ib3gnO1xuaW1wb3J0IHsgU2Nyb2xsYmFyRGlyZWN0aXZlIH0gZnJvbSAnQGZ1bmRhbWVudGFsLW5neC9jb3JlL3Njcm9sbGJhcic7XG5pbXBvcnQgeyBUaXRsZUNvbXBvbmVudCB9IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZS90aXRsZSc7XG5pbXBvcnQgeyBCYXNlV2l6YXJkR2VuZXJhdG9yIH0gZnJvbSAnLi4vLi4vYmFzZS13aXphcmQtZ2VuZXJhdG9yJztcbmltcG9ydCB7IFdpemFyZERpYWxvZ0RhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3dpemFyZC1kaWFsb2ctZGF0YS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2l6YXJkVGl0bGUgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3dpemFyZC10aXRsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgV2l6YXJkR2VuZXJhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uL3dpemFyZC1nZW5lcmF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyBXaXphcmRCb2R5Q29tcG9uZW50IH0gZnJvbSAnLi4vd2l6YXJkLWJvZHkvd2l6YXJkLWJvZHkuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmZHAtZGlhbG9nLXdpemFyZC1nZW5lcmF0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kaWFsb2ctd2l6YXJkLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtXaXphcmRHZW5lcmF0b3JTZXJ2aWNlLCBGb3JtR2VuZXJhdG9yU2VydmljZV0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRpdGxlQ29tcG9uZW50LFxuICAgICAgICBDZGtTY3JvbGxhYmxlLFxuICAgICAgICBTY3JvbGxiYXJEaXJlY3RpdmUsXG4gICAgICAgIFdpemFyZEJvZHlDb21wb25lbnQsXG4gICAgICAgIEJhck1vZHVsZSxcbiAgICAgICAgQnV0dG9uQ29tcG9uZW50LFxuICAgICAgICBDb250ZW50RGVuc2l0eURpcmVjdGl2ZSxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgTWVzc2FnZUJveE1vZHVsZSxcbiAgICAgICAgSW5pdGlhbEZvY3VzRGlyZWN0aXZlLFxuICAgICAgICBEaWFsb2dCb2R5Q29tcG9uZW50LFxuICAgICAgICBEaWFsb2dIZWFkZXJDb21wb25lbnQsXG4gICAgICAgIERpYWxvZ0NvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGlhbG9nV2l6YXJkR2VuZXJhdG9yQ29tcG9uZW50IGV4dGVuZHMgQmFzZVdpemFyZEdlbmVyYXRvciB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBAVmlld0NoaWxkKCdkZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGUnKSBkZWZhdWx0Q29uZmlybWF0aW9uRGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PjtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBXaXphcmRzIGRpYWxvZyB0aXRsZSBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHRpdGxlOiBXaXphcmRUaXRsZTtcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDb25maXJtYXRpb24gbWVzc2FnZSB3aGVuIHdpemFyZCBkaWFsb2cgY2xvc2UgYnV0dG9uIGhhcyBiZWVuIGNsaWNrZWQuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nVGV4dCA9ICdBcmUgeW91IHN1cmUgeW91IHdhbnQgdG8gZGlzY2FyZCB5b3VyIHByb2dyZXNzPyc7XG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIENvbmZpcm0gYnV0dG9uIHRleHQgZm9yIGNsb3NlIGNvbmZpcm1hdGlvbiBkaWFsb2cuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nQ2xvc2VUZXh0ID0gJ0NvbmZpcm0nO1xuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBDYW5jZWwgYnV0dG9uIHRleHQgZm9yIGNsb3NlIGNvbmZpcm1hdGlvbiBkaWFsb2cuXG4gICAgICovXG4gICAgY29uZmlybWF0aW9uRGlhbG9nQ2FuY2VsVGV4dCA9ICdDYW5jZWwnO1xuXG4gICAgLyoqXG4gICAgICogVXNlci1kZWZpbmVkIHRlbXBsYXRlIGZvciBcIkdvIE5leHRcIiBidXR0b24uXG4gICAgICovXG4gICAgZ29OZXh0QnV0dG9uVGVtcGxhdGU/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
@@ -5,7 +5,7 @@ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
5
  import { ContentDensityMode, ContentDensityDirective } from '@fundamental-ngx/core/content-density';
6
6
  import { cloneDeep, uniq, mergeWith, concat } from 'lodash-es';
7
7
  import { Subject, BehaviorSubject, of, firstValueFrom } from 'rxjs';
8
- import * as i5 from '@fundamental-ngx/cdk/utils';
8
+ import * as i4 from '@fundamental-ngx/cdk/utils';
9
9
  import { isFunction, selectStrategy, InitialFocusDirective, RepeatDirective } from '@fundamental-ngx/cdk/utils';
10
10
  import * as i2 from '@fundamental-ngx/platform/form';
11
11
  import { FormGeneratorComponent, FormGeneratorService, FORM_GENERATOR_ITEM_CONFIG, FORM_GENERATOR_CONFIG, PlatformFormGeneratorModule } from '@fundamental-ngx/platform/form';
@@ -15,11 +15,10 @@ import * as i2$2 from '@fundamental-ngx/core/bar';
15
15
  import { BarModule } from '@fundamental-ngx/core/bar';
16
16
  import { ButtonComponent } from '@fundamental-ngx/core/button';
17
17
  import * as i1$1 from '@fundamental-ngx/core/dialog';
18
- import { DialogModule } from '@fundamental-ngx/core/dialog';
19
- import * as i4 from '@fundamental-ngx/core/message-box';
18
+ import { DialogBodyComponent, DialogHeaderComponent, DialogComponent } from '@fundamental-ngx/core/dialog';
19
+ import * as i3 from '@fundamental-ngx/core/message-box';
20
20
  import { MessageBoxService, MessageBoxModule } from '@fundamental-ngx/core/message-box';
21
21
  import { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';
22
- import * as i3 from '@fundamental-ngx/core/title';
23
22
  import { TitleComponent } from '@fundamental-ngx/core/title';
24
23
  import * as i2$1 from '@fundamental-ngx/core/wizard';
25
24
  import { WizardModule } from '@fundamental-ngx/core/wizard';
@@ -1441,12 +1440,11 @@ class DialogWizardGeneratorComponent extends BaseWizardGenerator {
1441
1440
  });
1442
1441
  }
1443
1442
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DialogWizardGeneratorComponent, deps: [{ token: i1$1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
1444
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", 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: "ngmodule", type: DialogModule }, { kind: "component", type: i1$1.DialogComponent, selector: "fd-dialog", inputs: ["class", "dialogRef", "dialogConfig"] }, { kind: "component", type: i1$1.DialogBodyComponent, selector: "fd-dialog-body", inputs: ["disablePaddings"] }, { kind: "component", type: i1$1.DialogHeaderComponent, selector: "fd-dialog-header" }, { kind: "component", type: i2$2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i2$2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i2$2.ButtonBarComponent, selector: "fd-button-bar", inputs: ["fullWidth", "fdType", "title", "ariaLabelledby", "id"] }, { kind: "component", type: i3.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: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], 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: i4.MessageBoxFooterComponent, selector: "fd-message-box-footer" }, { kind: "component", type: i4.MessageBoxBodyComponent, selector: "fd-message-box-body" }, { kind: "component", type: i4.MessageBoxComponent, selector: "fd-message-box", inputs: ["class", "messageBoxRef", "messageBoxConfig"] }, { kind: "directive", type: i4.MessageBoxTemplateDirective, selector: "[fdMessageBoxTemplate]", inputs: ["fdMessageBoxTemplateConfig"] }, { kind: "directive", type: i5.InitialFocusDirective, selector: "[fdkInitialFocus]", inputs: ["fdkInitialFocus", "enabled", "focusLastElement"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
1443
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.3", 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$2.BarComponent, selector: "[fd-bar]", inputs: ["class", "barDesign", "inPage", "inHomePage", "size"] }, { kind: "directive", type: i2$2.BarRightDirective, selector: "[fd-bar-right]" }, { kind: "component", type: i2$2.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"], 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 }); }
1445
1444
  }
1446
1445
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DialogWizardGeneratorComponent, decorators: [{
1447
1446
  type: Component,
1448
1447
  args: [{ selector: 'fdp-dialog-wizard-generator', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [WizardGeneratorService, FormGeneratorService], standalone: true, imports: [
1449
- DialogModule,
1450
1448
  TitleComponent,
1451
1449
  CdkScrollable,
1452
1450
  ScrollbarDirective,
@@ -1456,7 +1454,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImpor
1456
1454
  ContentDensityDirective,
1457
1455
  NgTemplateOutlet,
1458
1456
  MessageBoxModule,
1459
- InitialFocusDirective
1457
+ InitialFocusDirective,
1458
+ DialogBodyComponent,
1459
+ DialogHeaderComponent,
1460
+ DialogComponent
1460
1461
  ], 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" }]
1461
1462
  }], ctorParameters: () => [{ type: i1$1.DialogRef }], propDecorators: { defaultConfirmationDialogTemplate: [{
1462
1463
  type: ViewChild,
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-platform-wizard-generator.mjs","sources":["../../../../libs/platform/wizard-generator/wizard-generator.service.ts","../../../../libs/platform/wizard-generator/base-wizard-generator.ts","../../../../libs/platform/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.ts","../../../../libs/platform/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.html","../../../../libs/platform/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.ts","../../../../libs/platform/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.html","../../../../libs/platform/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.ts","../../../../libs/platform/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.html","../../../../libs/platform/wizard-generator/components/wizard-body/wizard-body.component.ts","../../../../libs/platform/wizard-generator/components/wizard-body/wizard-body.component.html","../../../../libs/platform/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.ts","../../../../libs/platform/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.html","../../../../libs/platform/wizard-generator/directives/wizard-generator-finish-button.directive.ts","../../../../libs/platform/wizard-generator/directives/wizard-generator-go-next-button.directive.ts","../../../../libs/platform/wizard-generator/directives/wizard-generator-review-button.directive.ts","../../../../libs/platform/wizard-generator/directives/wizard-generator-summary-step.directive.ts","../../../../libs/platform/wizard-generator/components/wizard-generator/wizard-generator.component.ts","../../../../libs/platform/wizard-generator/components/wizard-generator/wizard-generator.component.html","../../../../libs/platform/wizard-generator/wizard-dialog-generator.service.ts","../../../../libs/platform/wizard-generator/wizard-generator.module.ts","../../../../libs/platform/wizard-generator/fundamental-ngx-platform-wizard-generator.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { cloneDeep, concat, mergeWith, uniq } from 'lodash-es';\nimport { BehaviorSubject, Observable, Subject, of } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\nimport { isFunction, selectStrategy } from '@fundamental-ngx/cdk/utils';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { WizardGeneratorFormGroup, WizardGeneratorFormItem } from './interfaces/wizard-generator-form-group.interface';\nimport {\n WizardGeneratorDependencyFields,\n WizardGeneratorFormsValue,\n WizardStepSubmittedForms,\n WizardVisibleSteps\n} from './interfaces/wizard-generator-forms.interface';\nimport { PreparedWizardGeneratorItem, WizardGeneratorItem } from './interfaces/wizard-generator-item.interface';\nimport { WizardGeneratorStep } from './interfaces/wizard-step.interface';\n\nexport type StepsComponents = Map<string, WizardGeneratorStep>;\n\nexport enum WizardGeneratorRefreshStrategy {\n REFRESH_STEP_VISIBILITY = 'refreshStepVisibility',\n REVALIDATE_STEP_FORMS = 'revalidateStepForms',\n REFRESH_FORM_VISIBILITY = 'refreshFormVisibility'\n}\n\nexport interface DependencySteps {\n /** Step ID */\n [key: string]: {\n /** Form ID with array of form control id's */\n [key: string]: {\n [key in WizardGeneratorRefreshStrategy]?: string[];\n };\n };\n}\n\nexport interface StepDependencyFields {\n /** Dependent step */\n [key: string]: DependencySteps;\n}\n\n/**\n * @description Helper service to keep all transformations and data in one place.\n */\n@Injectable()\nexport class WizardGeneratorService {\n /** @hidden */\n items: PreparedWizardGeneratorItem[];\n\n /**\n * @description Visible steps components\n */\n stepsComponents: StepsComponents = new Map();\n\n /**\n * @description Object with steps that are dependencies for another steps.\n */\n dependencySteps: StepDependencyFields = {};\n\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 appendToWizard = true;\n\n /** @hidden */\n _shouldRedirectToSummary = false;\n\n /**\n * @description Steps that are visible to the user.\n */\n public visibleWizardSteps: PreparedWizardGeneratorItem[] = [];\n\n /** @hidden */\n private _visibleWizardSteps$ = new Subject<PreparedWizardGeneratorItem[]>();\n\n /** @hidden */\n private _appendToWizard$ = new BehaviorSubject<boolean>(this.appendToWizard);\n\n /** @hidden */\n private _stepsComponents$ = new Subject<StepsComponents>();\n\n /** @hidden */\n private _stepsOrderChanged$ = new Subject<number>();\n\n /** @hidden */\n private _nextStepIndex$ = new BehaviorSubject<number>(1);\n\n /** @hidden */\n private _submittedFormRawValues: WizardGeneratorFormsValue = {};\n\n /** @hidden */\n private _wizardStepIds: string[] = [];\n\n /** @hidden */\n constructor(private _formGeneratorService: FormGeneratorService) {}\n\n /**\n * @description Returns current step ID in Wizard.\n * @returns {string | undefined} Current step ID.\n */\n getCurrentStepId(): string | undefined {\n const currentStepId = this.visibleWizardSteps?.find((i) => i.status === 'current');\n\n return currentStepId?.id;\n }\n\n /**\n * @description Returns current step index.\n * @returns {number} Index of the current step in array of Wizard steps.\n */\n getCurrentStepIndex(): number {\n const currentStepId = this.getCurrentStepId();\n return this.getStepIndex(currentStepId);\n }\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?: string): number {\n const stepIndex = this.visibleWizardSteps?.findIndex((i) => i.id === stepId);\n return stepIndex > -1 ? stepIndex : 0;\n }\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?: string, skipIfUntouched = false): Observable<WizardStepSubmittedForms | null> {\n if (!stepId) {\n return of(null);\n }\n\n const step = this.stepsComponents.get(stepId);\n\n if (!step) {\n return of(null);\n }\n\n return step.submitForms(skipIfUntouched).pipe(\n take(1),\n map((result) => {\n if (result) {\n this._submittedFormRawValues[stepId] = result;\n }\n return result;\n })\n );\n }\n\n /**\n * @description Triggers validation for current step forms.\n * @returns {Observable<boolean>} Observable with validation result.\n */\n validateStepForms(skipIfUntouched = false): Observable<boolean> {\n const currentStepId = this.getCurrentStepId();\n\n if (!currentStepId) {\n return of(true);\n }\n\n return this.submitStepForms(currentStepId, skipIfUntouched).pipe(\n map((result) => result === null || Object.values(result).every((r) => r.success))\n );\n }\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: PreparedWizardGeneratorItem[]): void {\n this.visibleWizardSteps = steps;\n this._visibleWizardSteps$.next(steps);\n\n this.setWizardStepIds(steps.map((s) => s.id));\n }\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(): Observable<PreparedWizardGeneratorItem[]> {\n return this._visibleWizardSteps$.asObservable();\n }\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: WizardGeneratorItem[]): Promise<PreparedWizardGeneratorItem[]> {\n let newItems: PreparedWizardGeneratorItem[] = await Promise.all(\n 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 as PreparedWizardGeneratorItem;\n })\n );\n\n // Summary step must be the last one in array\n const summaryStepIndex = newItems.findIndex((i) => i.summary === true);\n\n if (summaryStepIndex !== -1 && summaryStepIndex !== newItems.length - 1) {\n newItems.splice(newItems.length - 1, 0, newItems.splice(summaryStepIndex, 1)[0]);\n }\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\n newItems = this._setBranchingSteps(newItems);\n\n this._buildDependencyMap(newItems);\n\n this.items = newItems;\n await this.refreshStepVisibility();\n\n return newItems;\n }\n\n /**\n * @description Runs conditional function for each step to define if step should be shown.\n */\n async refreshStepVisibility(): Promise<void> {\n const formValue = await this.getWizardFormValue();\n\n const visibleStepIds: WizardVisibleSteps = {};\n\n for (const item of this.items) {\n if (!isFunction(item.when)) {\n visibleStepIds[item.id] = true;\n continue;\n }\n\n const obj = item.when!(this._getCompletedStepIds(), formValue, this._formGeneratorService.forms);\n\n visibleStepIds[item.id] = await this._getFunctionValue(obj);\n }\n\n this.setVisibleSteps(this.items.filter((item) => visibleStepIds[item.id] === true));\n }\n\n /**\n * Checks whether current form group should be visible.\n * @param formGroup Form Group.\n */\n async refreshFormVisibility(formGroup: WizardGeneratorFormGroup): Promise<boolean> {\n const formValue = await this.getWizardFormValue();\n\n const obj = formGroup.when?.(this._getCompletedStepIds(), formValue, this._formGeneratorService.forms) ?? true;\n\n return await this._getFunctionValue(obj);\n }\n\n /**\n * @description Clears array of Wizard steps components.\n */\n clearWizardStepComponents(): void {\n this.stepsComponents.clear();\n this._stepsComponents$.next(this.stepsComponents);\n }\n\n /**\n * @returns {Observable<StepsComponents>} Observable, which will emit every time\n * when Set visible steps components has been changed.\n */\n trackStepsComponents(): Observable<StepsComponents> {\n return this._stepsComponents$.asObservable();\n }\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: WizardGeneratorStep, key: string): void {\n this.stepsComponents.set(key, component);\n this._stepsComponents$.next(this.stepsComponents);\n }\n\n /**\n * @description Removes Component from the set of Wizard steps components.\n * @param key\n */\n removeWizardStepComponent(key: string): void {\n this.stepsComponents.delete(key);\n this._stepsComponents$.next(this.stepsComponents);\n }\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: string): DependencySteps {\n return this.dependencySteps[step];\n }\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: string[]): void {\n stepIds.forEach((stepId) => this.stepsComponents.get(stepId)?.updateFormsState());\n }\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: string[]): Promise<void> {\n for (const stepId of stepIds) {\n await this.stepsComponents.get(stepId)?.refreshFormsVisibility();\n }\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): Promise<WizardGeneratorFormsValue> {\n const wizardFormValue: WizardGeneratorFormsValue = {};\n\n if (!this.visibleWizardSteps) {\n return wizardFormValue;\n }\n\n for (const item of this.visibleWizardSteps.filter((s) => !s.summary)) {\n wizardFormValue[item.id] = {};\n\n const component = this.stepsComponents.get(item.id);\n\n if (!component) {\n continue;\n }\n\n const forms = component.getVisibleForms();\n\n for (const form of item?.formGroups ?? []) {\n if (!forms[form.id]) {\n continue;\n }\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\n return wizardFormValue;\n }\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: string): boolean {\n return this._submittedFormRawValues[stepId] !== undefined;\n }\n\n /**\n *\n * @returns {Boolean} if steps are untouched, will return true, if yes - false\n */\n isStepsUntouched(): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return [...this.stepsComponents].every(([_, component]) =>\n component.formGenerators.toArray().every((item) => !item.form.touched)\n );\n }\n\n /**\n * Reverts wizard to defined step.\n * @param stepId Step ID to edit\n */\n editStep(stepId: string): void {\n const stepIndex = this.visibleWizardSteps.findIndex((s) => s.id === stepId);\n\n this.visibleWizardSteps = this.visibleWizardSteps.map((step, index) => {\n step.status = index === stepIndex ? 'current' : index < stepIndex ? 'completed' : 'upcoming';\n\n return step;\n });\n\n const summaryStepIndex = this.visibleWizardSteps.findIndex((s) => s.summary);\n\n this._shouldRedirectToSummary = true;\n\n this._appendToWizard$.next(false);\n\n this.setVisibleSteps(this.visibleWizardSteps);\n\n this.setNextStepIndex(summaryStepIndex);\n }\n\n /**\n * Set's current set of step ID's\n * @param ids step ID's\n */\n setWizardStepIds(ids: string[]): void {\n if (!this._wizardStepIds.every((stepId, index) => ids[index] === stepId)) {\n const firstChangedStepIndex = this._wizardStepIds.findIndex((stepId, index) => ids[index] !== stepId);\n\n this._nextStepIndex$.next(firstChangedStepIndex);\n\n this._stepsOrderChanged$.next(firstChangedStepIndex);\n }\n\n this._wizardStepIds = ids;\n }\n\n /**\n * Set next step index.\n * @param index Next step index.\n */\n setNextStepIndex(index: number): void {\n this._nextStepIndex$.next(index);\n }\n\n /**\n * Returns observable of next step index which emits when index is changed.\n */\n trackNextStepIndex(): Observable<number> {\n return this._nextStepIndex$.asObservable();\n }\n\n /**\n * Returns observable which emits when steps order has been changed.\n */\n trackStepsOrder(): Observable<number> {\n return this._stepsOrderChanged$.asObservable();\n }\n\n /**\n * Stores original 'appendToWizard' input property.\n * @param value\n */\n setOriginalAppendToWizardState(value: boolean): void {\n this.appendToWizard = value;\n this._appendToWizard$.next(this.appendToWizard);\n }\n\n /**\n * Resets modified 'appendToWizard' property to original one.\n */\n restoreAppendToWizardState(): void {\n this._appendToWizard$.next(this.appendToWizard);\n }\n\n /**\n * Returns observable which emits when 'appendToWizard' property has been changed.\n */\n trackAppendToWizardState(): Observable<boolean> {\n return this._appendToWizard$.asObservable();\n }\n\n /**\n * @hidden\n * @param items\n * @param index\n * @param key\n * @returns\n */\n private async _getFormItemPropertyValue<T = string>(\n items: WizardGeneratorItem,\n index: number,\n key: keyof WizardGeneratorItem\n ): Promise<T> {\n let value: any = items[key];\n\n if (typeof value === 'function') {\n const obj = value(index);\n\n value = await this._getFunctionValue(obj);\n }\n\n return value as T;\n }\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 private async _getFunctionValue(obj: any): Promise<any> {\n const strategy = selectStrategy(obj);\n\n let result: any;\n\n await strategy.createSubscription(obj, (value: any) => {\n result = value;\n });\n\n if (isFunction(result)) {\n await this._getFunctionValue(result);\n }\n\n return result;\n }\n\n /**\n * @hidden\n * @description Sets `branching` property for the steps that will create new branches.\n * @param items\n * @returns\n */\n private _setBranchingSteps(items: PreparedWizardGeneratorItem[]): PreparedWizardGeneratorItem[] {\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\n return stepIds;\n }, [] as string[]);\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\n return items;\n }\n\n /** @hidden */\n private _normalizeDependencyStep(\n dependency: { [p: string]: string[] },\n strategy: WizardGeneratorRefreshStrategy,\n dependentStep?: string\n ): DependencySteps {\n const newDependency: DependencySteps = {};\n\n Object.entries(dependency).forEach(([key, value]) => {\n newDependency[key] = {};\n\n value.forEach((v) => {\n newDependency[key][v] = {\n [strategy]: dependentStep ? [dependentStep] : []\n };\n });\n });\n return newDependency;\n }\n\n /** @hidden */\n private _buildDependencyMap(items: PreparedWizardGeneratorItem[]): void {\n this.dependencySteps = {};\n\n const mergeArrays = (objValue: any, srcValue: any): any => {\n if (Array.isArray(objValue) && !objValue.includes(srcValue)) {\n return uniq(objValue.concat(srcValue));\n }\n };\n\n const buildDependencySteps = (\n dependencyFields: WizardGeneratorDependencyFields,\n strategy: WizardGeneratorRefreshStrategy,\n stepId?: string\n ): void => {\n for (const [id, forms] of Object.entries(dependencyFields)) {\n this.dependencySteps[id] = mergeWith(\n this.dependencySteps[id] || {},\n this._normalizeDependencyStep(forms, strategy, stepId),\n mergeArrays\n );\n }\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\n const dependentForms = step.formGroups?.filter((form) => form.dependencyFields);\n\n dependentForms?.forEach((form) => {\n buildDependencySteps(\n form.dependencyFields!,\n WizardGeneratorRefreshStrategy.REFRESH_FORM_VISIBILITY,\n step.id\n );\n });\n\n const stepFields: WizardGeneratorFormItem[] = concat(\n ...[...(step.formGroups ?? [])].map((item) => item.formItems.filter((f) => f.dependencyFields))\n );\n\n stepFields.forEach((formItem) => {\n buildDependencySteps(\n formItem.dependencyFields!,\n WizardGeneratorRefreshStrategy.REVALIDATE_STEP_FORMS,\n step.id\n );\n });\n });\n }\n\n /** @hidden */\n private _getCompletedStepIds(): string[] {\n return this.items.filter((i) => i.status === 'completed').map((i) => i.id);\n }\n}\n","import { ChangeDetectorRef, DestroyRef, Directive, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { debounceTime, finalize } from 'rxjs/operators';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityMode } from '@fundamental-ngx/core/content-density';\nimport { WizardStepStatus } from '@fundamental-ngx/core/wizard';\nimport { WizardGeneratorFormsValue, WizardStepSubmittedForms } from './interfaces/wizard-generator-forms.interface';\nimport { PreparedWizardGeneratorItem, WizardGeneratorItem } from './interfaces/wizard-generator-item.interface';\nimport { WizardNavigationButtons } from './interfaces/wizard-navigation-buttons.interface';\nimport { WizardGeneratorService } from './wizard-generator.service';\n\n/**\n * @description Default button labels.\n */\nexport const DEFAULT_WIZARD_NAVIGATION_BUTTONS: Required<WizardNavigationButtons> = {\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/**\n * @description Base Wizard Generator component with necessary inputs and methods.\n */\n@Directive()\nexport class BaseWizardGenerator {\n /**\n * @description Whether or not apply responsive paddings styling.\n */\n @Input()\n responsivePaddings = true;\n\n /**\n * @description Button labels to be used in Wizard navigation\n */\n @Input()\n set navigationButtonLabels(value: WizardNavigationButtons) {\n this._navigationButtonLabels = Object.assign({}, DEFAULT_WIZARD_NAVIGATION_BUTTONS, value);\n }\n get navigationButtonLabels(): WizardNavigationButtons {\n return this._navigationButtonLabels;\n }\n\n /**\n * @description Array of Wizard Steps.\n */\n @Input()\n set items(items: WizardGeneratorItem[]) {\n this.wizardCreated = false;\n this._wizardGeneratorService.clearWizardStepComponents();\n\n if (!items) {\n return;\n }\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(): WizardGeneratorItem[] {\n return this._items;\n }\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 @Input()\n set appendToWizard(value: boolean) {\n this._wizardGeneratorService.setOriginalAppendToWizardState(value);\n }\n\n get appendToWizard(): boolean {\n return this._appendToWizard;\n }\n\n /** If navigation buttons should be visible. */\n @Input()\n navigationButtons = true;\n\n /**\n * Custom height to use for the wizard's content pane. By default, this value is calc(100vh - 144px), where 144px\n * is the combined height of the shellbar, wizard header and wizard footer.\n */\n @Input()\n contentHeight: Nullable<string>;\n\n /**\n * @description Boolean flag indicating whether to display Summary step in Wizard progress bar.\n */\n @Input()\n displaySummaryStep = false;\n\n /** Whether all form items should have identical layout provided for form group. */\n @Input()\n unifiedLayout = true;\n\n /**\n * @description Emits wizard value when it's completed.\n */\n @Output()\n wizardFinished: EventEmitter<WizardGeneratorFormsValue> = new EventEmitter();\n\n /**\n * Flag indicating that wizard is ready to be shown\n */\n wizardCreated = false;\n\n /**\n * @description Is current step is summary step.\n */\n get isSummaryStep(): boolean {\n const currentIndex = this._wizardGeneratorService.getCurrentStepIndex();\n\n return this.visibleItems[currentIndex]?.summary === true;\n }\n\n /**\n * @description Array of visible Wizard Steps.\n */\n set visibleItems(items: PreparedWizardGeneratorItem[]) {\n this._visibleItems = items;\n }\n get visibleItems(): PreparedWizardGeneratorItem[] {\n return this._visibleItems || this._items;\n }\n\n /**\n * @description Whether or not Wizard is currently on the first step\n */\n get isFirstStep(): boolean {\n return this.visibleItems[0]?.status === 'current';\n }\n\n /**\n * @description Whether or not Wizard is currently on the last step\n */\n get isLastStep(): boolean {\n const lastStep = this.visibleItems[this.visibleItems.length - 1];\n return lastStep?.status === 'current' && !lastStep.branching;\n }\n\n /**\n * Whether current step is a branching step.\n */\n get isBranchingStep(): boolean {\n const currentIndex = this._wizardGeneratorService.getCurrentStepIndex();\n\n return this._visibleItems[currentIndex]?.branching === true;\n }\n\n /**\n * Whether the next step is a Summary step.\n */\n get isNextStepSummary(): boolean {\n const nextStep = this.visibleItems[this._nextStepIndex];\n return nextStep?.summary === true;\n }\n\n /** Whether the current step is completed */\n get isCurrentStepCompleted(): boolean {\n const currentIndex = this._wizardGeneratorService.getCurrentStepIndex();\n return this._visibleItems[currentIndex]?.completed === true;\n }\n\n /**\n * @hidden\n */\n _visibleItems: PreparedWizardGeneratorItem[] = [];\n\n /** @hidden */\n _nextStepIndex: number;\n\n /** @hidden */\n _stepsOrderChanged = false;\n\n /**\n * @hidden\n */\n _navigationButtonLabels: Required<WizardNavigationButtons> = DEFAULT_WIZARD_NAVIGATION_BUTTONS;\n\n /**\n * @hidden\n */\n protected readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n protected readonly _wizardGeneratorService = inject(WizardGeneratorService);\n\n /** @hidden */\n protected readonly _cd = inject(ChangeDetectorRef);\n\n /**\n * @hidden\n */\n private _items: PreparedWizardGeneratorItem[] = [];\n\n /** @hidden */\n private _appendToWizard = false;\n\n /**\n * @hidden\n */\n private _formPending = false;\n\n /** @hidden */\n constructor() {\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\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\n this._wizardGeneratorService\n .trackAppendToWizardState()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((value) => {\n this._appendToWizard = value;\n });\n\n this._wizardGeneratorService\n .trackStepsOrder()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((newNextStep) => {\n this._nextStepIndex = newNextStep;\n this._stepsOrderChanged = true;\n });\n\n this._wizardGeneratorService\n .trackNextStepIndex()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((index) => {\n this._nextStepIndex = index;\n });\n }\n\n /**\n * @description Reverts Wizard progress one step back.\n */\n goBack(): void {\n const currentStepIndex = this._wizardGeneratorService.getCurrentStepIndex();\n const previousStepIndex = currentStepIndex - 1;\n\n if (this.visibleItems[previousStepIndex] === undefined) {\n return;\n }\n\n this._stepsOrderChanged = false;\n\n this.visibleItems[currentStepIndex].status = 'upcoming';\n this.visibleItems[previousStepIndex].status = 'current';\n this._wizardGeneratorService.setVisibleSteps(this.visibleItems);\n\n this._wizardGeneratorService.setNextStepIndex(currentStepIndex);\n\n this._cd.detectChanges();\n }\n\n /**\n * @description Progresses the Wizard one step further.\n */\n async goNext(): Promise<void> {\n if (this._formPending) {\n return;\n }\n\n const currentStepIndex = this._wizardGeneratorService.getCurrentStepIndex();\n const nextStepIndex = this._nextStepIndex;\n\n this._wizardGeneratorService\n .validateStepForms()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(async (result) => {\n if (!result) {\n return;\n }\n\n await this._setVisibleSteps();\n\n const steps = this.visibleItems;\n\n if (steps[nextStepIndex] === undefined) {\n return;\n }\n\n this._stepsOrderChanged = false;\n\n steps[currentStepIndex].status = 'completed';\n steps[currentStepIndex].completed = true;\n steps[nextStepIndex].status = 'current';\n\n this._wizardGeneratorService.setVisibleSteps(steps);\n\n this._wizardGeneratorService.setNextStepIndex(nextStepIndex + 1);\n\n this._cd.detectChanges();\n });\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?: string): Observable<WizardStepSubmittedForms | null> {\n this._formPending = true;\n\n return this._wizardGeneratorService.submitStepForms(currentStepIndex).pipe(\n finalize(() => {\n this._formPending = false;\n })\n );\n }\n\n /**\n * @description Completes the wizard and emits it's formatted value.\n */\n async finish(): Promise<void> {\n if (this.isSummaryStep) {\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this.wizardFinished.emit(wizardResult);\n return;\n }\n\n this._wizardGeneratorService\n .validateStepForms()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(async (result) => {\n if (!result) {\n return;\n }\n\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n\n this.wizardFinished.emit(wizardResult);\n });\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: string, status: WizardStepStatus): Promise<void> {\n const stepIndex = this._visibleItems.findIndex((s) => s.id === stepId);\n\n this._visibleItems[stepIndex].status = status;\n\n await this._wizardGeneratorService.refreshStepVisibility();\n }\n\n /**\n * @hidden\n */\n private async _setVisibleSteps(): Promise<void> {\n await this._wizardGeneratorService.refreshStepVisibility();\n\n this.wizardCreated = true;\n\n this._cd.detectChanges();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { WizardStepStatus } from '@fundamental-ngx/core/wizard';\n\nimport {\n DynamicFormGroup,\n DynamicFormValue,\n FormGeneratorComponent,\n FormGeneratorService,\n SubmitFormEventResult\n} from '@fundamental-ngx/platform/form';\nimport { isFunction } from '@fundamental-ngx/platform/shared';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { WizardStepForms, WizardStepSubmittedForms } from '../../interfaces/wizard-generator-forms.interface';\nimport { WizardGeneratorItem } from '../../interfaces/wizard-generator-item.interface';\nimport { WizardGeneratorStep } from '../../interfaces/wizard-step.interface';\nimport {\n DependencySteps,\n WizardGeneratorRefreshStrategy,\n WizardGeneratorService\n} from '../../wizard-generator.service';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\n\n@Component({\n selector: 'fdp-wizard-generator-step',\n templateUrl: './wizard-generator-step.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [TitleComponent, FormGeneratorComponent]\n})\nexport class WizardGeneratorStepComponent implements WizardGeneratorStep, OnInit, OnDestroy, OnChanges {\n /**\n * @description Step Form Generator components.\n */\n @ViewChildren(FormGeneratorComponent) formGenerators: QueryList<FormGeneratorComponent>;\n\n /**\n * @description Current step.\n */\n @Input()\n item: WizardGeneratorItem;\n\n /**\n * Wizard step status.\n */\n @Input()\n stepStatus: WizardStepStatus;\n\n /** Whether all form items should have identical layout provided for form group. */\n @Input()\n unifiedLayout = true;\n\n /**\n * @description Emits when all forms in the step has been submited\n */\n @Output()\n formsSubmitted = new EventEmitter<DynamicFormValue[]>();\n\n /**\n * @description Emits when all forms in the step has been created\n */\n @Output()\n formsCreated = new EventEmitter<WizardStepForms>();\n\n /**\n * @hidden\n */\n _visibleFormGroupIds: Record<string, boolean>;\n\n /**\n * @hidden\n */\n private _submittedForms: WizardStepSubmittedForms = {};\n\n /**\n * @hidden\n */\n private _formSubmitted$ = new Subject<WizardStepSubmittedForms | null>();\n\n /**\n * @hidden\n */\n private _forms: WizardStepForms = {};\n\n /**\n * @hidden\n */\n private _trackedFields: DependencySteps;\n\n /**\n * @hidden\n * @private\n */\n private _hiddenFormGroupValues: {\n [key: string]: any;\n } = {};\n\n /**\n * @hidden\n * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)\n */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n private _wizardGeneratorService: WizardGeneratorService,\n private _formGeneratorService: FormGeneratorService\n ) {}\n\n /**\n * @hidden\n */\n async ngOnInit(): Promise<void> {\n await this.refreshFormsVisibility();\n }\n\n /**\n * @hidden\n */\n ngOnDestroy(): void {\n this._wizardGeneratorService.removeWizardStepComponent(this.item.id);\n }\n\n /** @hidden */\n async ngOnChanges(changes: SimpleChanges): Promise<void> {\n if (changes.stepStatus && changes.stepStatus.currentValue === 'current' && this.formGenerators?.length > 0) {\n await this.updateFormsState();\n }\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: DynamicFormGroup, key: string): Promise<void> {\n this._forms[key] = {\n title: this.item.formGroups?.find((g) => g.id === key)?.title ?? '',\n form\n };\n\n await this._wizardGeneratorService.refreshStepVisibility();\n\n if (Object.keys(this._forms).length === this.item.formGroups?.length) {\n await this.addComponentToParent();\n this.formsCreated.emit(this._forms);\n }\n\n if (this._hiddenFormGroupValues[key]) {\n form?.patchValue(this._hiddenFormGroupValues[key]);\n }\n\n this._trackDependencyFieldsChanges(form, key);\n }\n\n /**\n * @description Adds component to the service for further usage.\n */\n async addComponentToParent(): Promise<void> {\n this._wizardGeneratorService.addWizardStepComponent(this, this.item.id);\n }\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: SubmitFormEventResult, index: string): void {\n this._submittedForms[index] = result;\n\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 /**\n * Returns visible forms in the step.\n */\n getVisibleForms(): WizardStepForms {\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 /**\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): Subject<WizardStepSubmittedForms | null> {\n if (skipIfUntouched && !this._wizardGeneratorService.stepSubmitted(this.item.id)) {\n setTimeout(() => {\n this._formSubmitted$.next(null);\n });\n return this._formSubmitted$;\n }\n\n // Clear previously submitted form values and re-submit them again.\n this._submittedForms = {};\n\n setTimeout(() => {\n this.formGenerators.forEach((formComponent) => {\n formComponent.submit();\n });\n });\n\n return this._formSubmitted$;\n }\n\n /**\n * Triggers form value revalidation and checks if field in form should be visible.\n */\n async updateFormsState(): Promise<void> {\n if (this.formGenerators) {\n for (const formGenerator of this.formGenerators.toArray()) {\n await formGenerator.refreshStepsVisibility();\n }\n }\n }\n\n /**\n * Refreshes step form group visibility.\n */\n async refreshFormsVisibility(): Promise<void> {\n this._visibleFormGroupIds = {};\n\n if (!this.item.formGroups) {\n return;\n }\n\n for (const formGroup of this.item.formGroups.filter((fg) => isFunction(fg.when))) {\n const result = await this._wizardGeneratorService.refreshFormVisibility(formGroup);\n\n if (result === this._visibleFormGroupIds[formGroup.id]) {\n return;\n }\n\n const form = this._forms[formGroup.id]?.form;\n\n // Store form value so it could be restored later.\n if (!result) {\n this._hiddenFormGroupValues[formGroup.id] = form?.value;\n }\n\n this._visibleFormGroupIds[formGroup.id] = result;\n }\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 private _trackDependencyFieldsChanges(form: DynamicFormGroup, key: string): void {\n this._trackedFields = this._wizardGeneratorService.getStepDependencyFields(this.item.id);\n\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\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\n control?.valueChanges\n .pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef))\n .subscribe(async () => {\n if (refreshSteps) {\n await this._wizardGeneratorService.refreshStepVisibility();\n }\n\n if (revalidateForms?.length) {\n this._wizardGeneratorService.notifyStepsToRevalidateForms(revalidateForms);\n }\n\n if (refreshFormVisibility?.length) {\n await this._wizardGeneratorService.refreshFormsVisibility(refreshFormVisibility);\n }\n });\n });\n }\n }\n}\n","@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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\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 {\n FormattedFormStep,\n WizardGeneratorSummaryItem\n} from '../../../interfaces/wizard-generator-summary-item.interface';\n\n@Component({\n selector: 'fdp-wizard-summary-section',\n templateUrl: './wizard-summary-section.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [TitleComponent, LayoutGridModule, FormLabelComponent, LinkComponent, FdTranslatePipe]\n})\nexport class WizardSummarySectionComponent {\n /**\n * @description Current step for the section.\n */\n @Input()\n step: WizardGeneratorSummaryItem;\n\n /**\n * Emits when step edit button clicked.\n */\n @Output()\n editStep = new EventEmitter<string>();\n\n /**\n * @hidden\n * @description Sets current step on wizard.\n * @param event Mouse click event to prevent.\n */\n _editStep(event: MouseEvent | KeyboardEvent | TouchEvent): void {\n event.preventDefault();\n this.editStep.emit(this.step.id);\n }\n\n /** @hidden */\n _trackFn(_: number, form: FormattedFormStep): string {\n return form.id;\n }\n}\n","@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 <div fdLayoutGridRow>\n <div [fdLayoutGridCol]=\"4\" [colMd]=\"2\" [colLg]=\"2\" [colXl]=\"2\">\n @for (item of group.items; track item) {\n <div>\n <label fd-form-label> {{ item.label }}: </label>\n </div>\n }\n </div>\n <div [fdLayoutGridCol]=\"4\" [colMd]=\"5\" [colLg]=\"5\" [colXl]=\"5\">\n @for (item of group.items; track item) {\n <div>\n <label fd-form-label>\n {{ item.value || '-' }}\n </label>\n </div>\n }\n </div>\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 </div>\n </fd-layout-grid>\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { WizardStepStatus } from '@fundamental-ngx/core/wizard';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { WizardGeneratorFormsValue, WizardStepForms } from '../../interfaces/wizard-generator-forms.interface';\nimport { WizardGeneratorItem } from '../../interfaces/wizard-generator-item.interface';\nimport {\n FormattedFormStep,\n WizardGeneratorSummaryItem\n} from '../../interfaces/wizard-generator-summary-item.interface';\nimport { WizardGeneratorService } from '../../wizard-generator.service';\nimport { WizardSummarySectionComponent } from './wizard-summary-section/wizard-summary-section.component';\n\n@Component({\n selector: 'fdp-wizard-summary-step',\n templateUrl: './wizard-summary-step.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [WizardSummarySectionComponent, NgTemplateOutlet]\n})\nexport class WizardSummaryStepComponent {\n /**\n * @description Summary step status.\n */\n @Input()\n set status(status: WizardStepStatus) {\n if (status === 'current') {\n this._wizardGeneratorService.getWizardFormValue(true).then((forms) => {\n this._submittedForms = forms;\n\n this._wizardSteps = this._wizardGeneratorService.items.filter(\n (i) => this._submittedForms[i.id] !== undefined\n );\n\n this._formatWizardValue().then(() => {\n this._shouldRender = true;\n\n this._cd.detectChanges();\n });\n });\n } else {\n this._shouldRender = false;\n }\n\n this._cd.detectChanges();\n }\n\n /**\n * User-defined template for Summary step.\n */\n @Input()\n customSummaryStepTemplate: Nullable<TemplateRef<HTMLElement>>;\n\n /**\n * Formatted wizard value with steps and their forms.\n */\n formattedWizardValue: WizardGeneratorSummaryItem[] = [];\n\n /**\n * @hidden\n */\n _submittedForms: WizardGeneratorFormsValue;\n\n /**\n * @hidden\n */\n _shouldRender = false;\n\n /**\n * @hidden\n */\n _wizardSteps: WizardGeneratorItem[];\n\n /** @hidden */\n constructor(\n private _wizardGeneratorService: WizardGeneratorService,\n private _formGeneratorService: FormGeneratorService,\n private _cd: ChangeDetectorRef\n ) {}\n\n /**\n * Opens defined step for editing.\n * @param stepId Defined step ID.\n */\n editStep(stepId: string): void {\n this._wizardGeneratorService.editStep(stepId);\n }\n\n /** @hidden */\n _trackFn(_: number, step: WizardGeneratorSummaryItem): string {\n return step.id;\n }\n\n /** @hidden */\n _editStepFn: (stepId: string) => void = (stepId: string) => this.editStep(stepId);\n\n /** @hidden */\n private async _formatWizardValue(): Promise<void> {\n this.formattedWizardValue = [];\n\n for (const step of this._wizardSteps) {\n const component = this._wizardGeneratorService.stepsComponents.get(step.id);\n const componentForms = component?.getVisibleForms();\n\n if (!componentForms) {\n continue;\n }\n\n const formattedStepValue = await this._formatStepValue(componentForms, step);\n\n this.formattedWizardValue.push({\n id: step.id,\n name: step.name as string,\n title: step.title as string,\n forms: formattedStepValue\n });\n }\n }\n\n /** @hidden */\n private async _formatStepValue(\n componentForms: WizardStepForms,\n step: WizardGeneratorItem\n ): Promise<FormattedFormStep[]> {\n const formattedStepValue: FormattedFormStep[] = [];\n\n for (const formGroup of step.formGroups ?? []) {\n const formId = formGroup.id;\n\n const form = componentForms[formId];\n\n // Form might be skipped due to conditional rendering\n if (!form) {\n continue;\n }\n\n const formattedFormValue = await this._formGeneratorService.getFormValue(form.form, true);\n\n const formattedForm: FormattedFormStep = {\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 as string,\n value: formattedFormValue[key]\n };\n })\n };\n\n formattedStepValue.push(formattedForm);\n }\n\n return formattedStepValue;\n }\n}\n","@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","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { WizardModule, WizardStepStatus } from '@fundamental-ngx/core/wizard';\n\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 { PreparedWizardGeneratorItem, WizardGeneratorItem } from '../../interfaces/wizard-generator-item.interface';\nimport { WizardNavigationButtons } from '../../interfaces/wizard-navigation-buttons.interface';\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';\n\nexport interface WizardStepChange {\n id: string;\n status: WizardStepStatus;\n}\n\n@Component({\n selector: 'fdp-wizard-body',\n templateUrl: './wizard-body.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n WizardModule,\n WizardGeneratorStepComponent,\n WizardSummaryStepComponent,\n ButtonComponent,\n ContentDensityDirective,\n NgTemplateOutlet\n ]\n})\nexport class WizardBodyComponent implements OnInit {\n /**\n * @description Whether or not apply responsive paddings styling.\n */\n @Input()\n responsivePaddings = true;\n\n /**\n * @description Button labels to be used in Wizard navigation\n */\n @Input()\n navigationButtonLabels: Required<WizardNavigationButtons>;\n\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 @Input()\n appendToWizard = true;\n\n /**\n * @description Custom height to use for the wizard's content pane. By default, this value is calc(100vh - 144px), where 144px\n * is the combined height of the Shellbar, wizard header and wizard footer.\n */\n @Input()\n contentHeight: Nullable<string>;\n\n /**\n * @description Whether or not Wizard is currently on the first step\n */\n @Input()\n isFirstStep = false;\n\n /**\n * @description Whether Wizard is currently on the last step.\n */\n @Input()\n isLastStep = false;\n\n /**\n * Whether next step is a Summary step.\n */\n @Input()\n isNextStepSummary = false;\n\n /**\n * @description Boolean flag indicating whether to display Summary step in Wizard progress bar.\n */\n @Input()\n displaySummaryStep = false;\n\n /**\n * User-defined template for \"Go Next\" button.\n */\n @Input()\n goNextButtonTemplate: TemplateRef<any>;\n\n /**\n * User-defined template for \"Finish\" button.\n */\n @Input()\n finishButtonTemplate: TemplateRef<any>;\n\n /**\n * User-defined template for summary step.\n */\n @Input()\n customSummaryStepTemplate?: TemplateRef<HTMLElement>;\n\n /** User-defined template for \"Review\" button */\n @Input()\n reviewButtonTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * @description Is current step is summary step.\n */\n @Input()\n isSummaryStep = false;\n\n /** If navigation buttons should be visible. */\n @Input()\n navigationButtons = true;\n\n /** Whether or not all form items should have identical layout provided for form group. */\n @Input()\n unifiedLayout = true;\n\n /** Whether current step is a branching step. */\n @Input()\n isBranchingStep = false;\n\n /** Whether current step is completed */\n @Input()\n isCurrentStepCompleted = false;\n\n /** Whether order of steps was changed */\n @Input()\n stepsOrderChanged = false;\n\n /**\n * @description Emits when some step status has been changed.\n */\n @Output()\n statusChange = new EventEmitter<WizardStepChange>();\n\n /**\n * @description Emits when \"Go next\" button has been clicked\n */\n @Output()\n goNext = new EventEmitter<void>();\n\n /**\n * @description Emits when \"Finish\" button has been clicked\n */\n @Output()\n finish = new EventEmitter<void>();\n\n /**\n * @hidden\n * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)\n */\n private readonly _destroyRef = inject(DestroyRef);\n\n /**\n * @hidden\n */\n private _visibleItems: PreparedWizardGeneratorItem[];\n\n /**\n * @description Array of visible Wizard Steps.\n */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n set visibleItems(items: PreparedWizardGeneratorItem[]) {\n this._visibleItems = items;\n }\n // eslint-disable-next-line @typescript-eslint/member-ordering\n get visibleItems(): PreparedWizardGeneratorItem[] {\n return this._visibleItems || this._wizardGeneratorService.items;\n }\n\n /** @hidden */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n constructor(\n private _wizardGeneratorService: WizardGeneratorService,\n private _cd: ChangeDetectorRef\n ) {}\n\n /**\n * @hidden\n */\n _goNextFn: () => void = () => this.goNext.emit();\n\n /**\n * @hidden\n */\n _finishFn: () => void = () => 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: number): () => Promise<boolean> {\n return async () => {\n const currentStepIndex = this._wizardGeneratorService.getCurrentStepIndex();\n const isSummaryStep = this._visibleItems[currentStepIndex]?.summary === true;\n\n if (index === currentStepIndex || isSummaryStep) {\n return true;\n }\n\n if (this._visibleItems.slice(0, index).find((i) => !i.completed && !i.summary)) {\n return false;\n }\n\n return await firstValueFrom(this._wizardGeneratorService.validateStepForms(true));\n };\n }\n\n /**\n * @hidden\n */\n ngOnInit(): void {\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 /**\n * @description Callback function for status change.\n * @param id step ID.\n * @param status new step status.\n */\n stepStatusChanged(id: string, status: WizardStepStatus): void {\n this.statusChange.emit({\n id,\n status\n });\n }\n\n /** @hidden */\n stepClicked(stepId: string): void {\n const stepIndex = this._wizardGeneratorService.getStepIndex(stepId);\n this._wizardGeneratorService.setNextStepIndex(stepIndex + 1);\n }\n\n /**\n * @hidden\n * @param _index\n * @param item\n * @returns\n */\n _trackFn(_index: number, item: WizardGeneratorItem): string {\n return item.id;\n }\n}\n","@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","import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { filter } from 'rxjs/operators';\n\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 { DialogModule, 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 { WizardDialogData } from '../../interfaces/wizard-dialog-data.interface';\nimport { WizardTitle } from '../../interfaces/wizard-title.interface';\nimport { WizardGeneratorService } from '../../wizard-generator.service';\nimport { WizardBodyComponent } from '../wizard-body/wizard-body.component';\n\n@Component({\n selector: 'fdp-dialog-wizard-generator',\n templateUrl: './dialog-wizard-generator.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [WizardGeneratorService, FormGeneratorService],\n standalone: true,\n imports: [\n DialogModule,\n TitleComponent,\n CdkScrollable,\n ScrollbarDirective,\n WizardBodyComponent,\n BarModule,\n ButtonComponent,\n ContentDensityDirective,\n NgTemplateOutlet,\n MessageBoxModule,\n InitialFocusDirective\n ]\n})\nexport class DialogWizardGeneratorComponent extends BaseWizardGenerator {\n /** @hidden */\n @ViewChild('defaultConfirmationDialogTemplate') defaultConfirmationDialogTemplate: TemplateRef<HTMLElement>;\n\n /**\n * @description Wizards dialog title configuration.\n */\n title: WizardTitle;\n\n /**\n * @description Confirmation message when wizard dialog close button has been clicked.\n */\n confirmationDialogText = 'Are you sure you want to discard your progress?';\n /**\n * @description Confirm button text for close confirmation dialog.\n */\n confirmationDialogCloseText = 'Confirm';\n /**\n * @description Cancel button text for close confirmation dialog.\n */\n confirmationDialogCancelText = 'Cancel';\n\n /**\n * User-defined template for \"Go Next\" button.\n */\n goNextButtonTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for \"Go Back\" button.\n */\n goBackButtonTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for \"Finish\" button.\n */\n finishButtonTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for \"Cancel\" button.\n */\n cancelButtonTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for cancellation confirmation dialog.\n */\n confirmationDialogTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for summary step.\n */\n summaryStepTemplate?: TemplateRef<HTMLElement>;\n\n /** User-defined template for \"Review\" button */\n reviewButtonTemplate?: TemplateRef<HTMLElement>;\n\n /** @hidden */\n private readonly _messageBoxService = inject(MessageBoxService);\n\n /** @hidden */\n constructor(private _dialogRef: DialogRef<WizardDialogData>) {\n super();\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\n if (this._dialogRef.data.unifiedLayout !== undefined) {\n this.unifiedLayout = this._dialogRef.data.unifiedLayout;\n }\n\n if (this._dialogRef.data.navigationButtons !== undefined) {\n this.navigationButtons = this._dialogRef.data.navigationButtons;\n }\n\n if (this._dialogRef.data.confirmationDialogText) {\n this.confirmationDialogText = this._dialogRef.data.confirmationDialogText;\n }\n\n if (this._dialogRef.data.confirmationDialogCancelText) {\n this.confirmationDialogCancelText = this._dialogRef.data.confirmationDialogCancelText;\n }\n\n if (this._dialogRef.data.confirmationDialogCloseText) {\n this.confirmationDialogCloseText = this._dialogRef.data.confirmationDialogCloseText;\n }\n }\n\n /**\n * @description Cancels Wizard progress and closes the dialog.\n */\n cancel(): void {\n if (this._wizardGeneratorService.isStepsUntouched()) {\n this._dialogRef.dismiss();\n\n return;\n }\n\n const template = this.confirmationDialogTemplate || this.defaultConfirmationDialogTemplate;\n\n const messageBoxRef = this._messageBoxService.open(template, { responsivePadding: true });\n\n messageBoxRef.afterClosed\n .pipe(\n filter((result) => result),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this._dialogRef.dismiss();\n });\n }\n\n /**\n * @description Completes Wizard process, emits Wizard result and closes the dialog.\n */\n async finish(): Promise<void> {\n if (this.isSummaryStep) {\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this._dialogRef.close(wizardResult);\n return;\n }\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\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this._dialogRef.close(wizardResult);\n });\n }\n\n /**\n * @hidden\n */\n _goBackFn: () => void = () => this.goBack();\n /**\n * @hidden\n */\n _goNextFn: () => Promise<void> = () => this.goNext();\n\n /**\n * @hidden\n */\n _finishFn: () => Promise<void> = () => this.finish();\n\n /**\n * @hidden\n */\n _cancelFn: () => void = () => this.cancel();\n}\n","<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","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdpWizardGeneratorFinishButton], [fdp-wizard-generator-finish-button]',\n standalone: true\n})\nexport class WizardGeneratorFinishButtonDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdpWizardGeneratorGoNextButton], [fdp-wizard-generator-go-next-button]',\n standalone: true\n})\nexport class WizardGeneratorGoNextButtonDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdpWizardGeneratorReviewButton], [fdp-wizard-generator-review-button]',\n standalone: true\n})\nexport class WizardGeneratorReviewButtonDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdpWizardGeneratorSummaryStep], [fdp-wizard-generator-summary-step]',\n standalone: true\n})\nexport class WizardGeneratorSummaryStepDirective {}\n","import { ChangeDetectionStrategy, Component, ContentChild, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\n\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';\n\n@Component({\n selector: 'fdp-wizard-generator',\n templateUrl: './wizard-generator.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [WizardGeneratorService, FormGeneratorService],\n standalone: true,\n imports: [WizardBodyComponent, WizardModule, RepeatDirective, SkeletonComponent]\n})\nexport class WizardGeneratorComponent extends BaseWizardGenerator {\n /**\n * User-defined template for \"Finish\" button.\n */\n @ContentChild(WizardGeneratorFinishButtonDirective, { read: TemplateRef })\n finishButtonTemplate: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for \"Go Next\" button.\n */\n @ContentChild(WizardGeneratorGoNextButtonDirective, { read: TemplateRef })\n goNextButtonTemplate: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for Summary step.\n */\n @ContentChild(WizardGeneratorSummaryStepDirective, { read: TemplateRef })\n customSummaryStepTemplate: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for \"Review\" button\n */\n @ContentChild(WizardGeneratorReviewButtonDirective, { read: TemplateRef })\n reviewButtonTemplate: TemplateRef<HTMLElement>;\n}\n","@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","import { Injectable } from '@angular/core';\n\nimport { DialogConfig, DialogRef, DialogService } from '@fundamental-ngx/core/dialog';\nimport { DialogWizardGeneratorComponent } from './components/dialog-wizard-generator/dialog-wizard-generator.component';\nimport { WizardDialogData } from './interfaces/wizard-dialog-data.interface';\nimport { WizardGeneratorFormsValue } from './interfaces/wizard-generator-forms.interface';\n\n/**\n * @description Helper service to launch Wizard in dialog with minimal user input.\n */\n@Injectable()\nexport class WizardDialogGeneratorService {\n /** @hidden */\n constructor(private _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: DialogConfig<WizardDialogData>): DialogRef<WizardDialogData, WizardGeneratorFormsValue> {\n const dialogRef = this._dialogService.open(DialogWizardGeneratorComponent, config);\n\n return dialogRef;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport {\n FORM_GENERATOR_CONFIG,\n FORM_GENERATOR_ITEM_CONFIG,\n FormGeneratorModuleConfig,\n PlatformFormGeneratorModule\n} 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';\n\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 */\n@NgModule({\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})\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: Partial<FormGeneratorModuleConfig>): ModuleWithProviders<PlatformWizardGeneratorModule> {\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}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","isFunction","i1.WizardGeneratorService","i2"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAmBY,+BAIX;AAJD,CAAA,UAAY,8BAA8B,EAAA;AACtC,IAAA,8BAAA,CAAA,yBAAA,CAAA,GAAA,uBAAiD,CAAA;AACjD,IAAA,8BAAA,CAAA,uBAAA,CAAA,GAAA,qBAA6C,CAAA;AAC7C,IAAA,8BAAA,CAAA,yBAAA,CAAA,GAAA,uBAAiD,CAAA;AACrD,CAAC,EAJW,8BAA8B,KAA9B,8BAA8B,GAIzC,EAAA,CAAA,CAAA,CAAA;AAiBD;;AAEG;MAEU,sBAAsB,CAAA;;AAkD/B,IAAA,WAAA,CAAoB,qBAA2C,EAAA;QAA3C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAsB;AA9C/D;;AAEG;AACH,QAAA,IAAA,CAAA,eAAe,GAAoB,IAAI,GAAG,EAAE,CAAC;AAE7C;;AAEG;QACH,IAAe,CAAA,eAAA,GAAyB,EAAE,CAAC;AAE3C;;;AAGG;QACH,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;;QAGtB,IAAwB,CAAA,wBAAA,GAAG,KAAK,CAAC;AAEjC;;AAEG;QACI,IAAkB,CAAA,kBAAA,GAAkC,EAAE,CAAC;;AAGtD,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,OAAO,EAAiC,CAAC;;QAGpE,IAAgB,CAAA,gBAAA,GAAG,IAAI,eAAe,CAAU,IAAI,CAAC,cAAc,CAAC,CAAC;;AAGrE,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,OAAO,EAAmB,CAAC;;AAGnD,QAAA,IAAA,CAAA,mBAAmB,GAAG,IAAI,OAAO,EAAU,CAAC;;AAG5C,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,eAAe,CAAS,CAAC,CAAC,CAAC;;QAGjD,IAAuB,CAAA,uBAAA,GAA8B,EAAE,CAAC;;QAGxD,IAAc,CAAA,cAAA,GAAa,EAAE,CAAC;KAG6B;AAEnE;;;AAGG;IACH,gBAAgB,GAAA;AACZ,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC;QAEnF,OAAO,aAAa,EAAE,EAAE,CAAC;KAC5B;AAED;;;AAGG;IACH,mBAAmB,GAAA;AACf,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAC9C,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;KAC3C;AAED;;;;AAIG;AACH,IAAA,YAAY,CAAC,MAAe,EAAA;AACxB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;AAC7E,QAAA,OAAO,SAAS,GAAG,CAAC,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;KACzC;AAED;;;;;;AAMG;AACH,IAAA,eAAe,CAAC,MAAe,EAAE,eAAe,GAAG,KAAK,EAAA;QACpD,IAAI,CAAC,MAAM,EAAE;AACT,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACnB;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI,EAAE;AACP,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACnB;AAED,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,IAAI,CACzC,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,CAAC,MAAM,KAAI;YACX,IAAI,MAAM,EAAE;AACR,gBAAA,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;aACjD;AACD,YAAA,OAAO,MAAM,CAAC;SACjB,CAAC,CACL,CAAC;KACL;AAED;;;AAGG;IACH,iBAAiB,CAAC,eAAe,GAAG,KAAK,EAAA;AACrC,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9C,IAAI,CAAC,aAAa,EAAE;AAChB,YAAA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC;SACnB;AAED,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC,IAAI,CAC5D,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,KAAK,IAAI,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CACpF,CAAC;KACL;AAED;;;AAGG;AACH,IAAA,eAAe,CAAC,KAAoC,EAAA;AAChD,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEtC,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;KACjD;AAED;;;AAGG;IACH,eAAe,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;KACnD;AAED;;;;AAIG;IACH,MAAM,kBAAkB,CAAC,KAA4B,EAAA;AACjD,QAAA,IAAI,QAAQ,GAAkC,MAAM,OAAO,CAAC,GAAG,CAC3D,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,KAAK,KAAI;AACzB,YAAA,MAAM,IAAI,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,UAAU,CAAC;AACxC,YAAA,IAAI,CAAC,KAAK,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACxE,YAAA,IAAI,CAAC,IAAI,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AACtE,YAAA,OAAO,IAAmC,CAAC;SAC9C,CAAC,CACL,CAAC;;AAGF,QAAA,MAAM,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC;AAEvE,QAAA,IAAI,gBAAgB,KAAK,CAAC,CAAC,IAAI,gBAAgB,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;YACrE,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACpF;;AAGD,QAAA,IAAI,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE;AAC1D,YAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;SAClC;AAED,QAAA,QAAQ,GAAG,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAE7C,QAAA,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;AAEnC,QAAA,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;AACtB,QAAA,MAAM,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAEnC,QAAA,OAAO,QAAQ,CAAC;KACnB;AAED;;AAEG;AACH,IAAA,MAAM,qBAAqB,GAAA;AACvB,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAElD,MAAM,cAAc,GAAuB,EAAE,CAAC;AAE9C,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;YAC3B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AACxB,gBAAA,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;gBAC/B,SAAS;aACZ;AAED,YAAA,MAAM,GAAG,GAAG,IAAI,CAAC,IAAK,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;AAEjG,YAAA,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;SAC/D;QAED,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;KACvF;AAED;;;AAGG;IACH,MAAM,qBAAqB,CAAC,SAAmC,EAAA;AAC3D,QAAA,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAElD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,GAAG,IAAI,CAAC,oBAAoB,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC;AAE/G,QAAA,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;KAC5C;AAED;;AAEG;IACH,yBAAyB,GAAA;AACrB,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACrD;AAED;;;AAGG;IACH,oBAAoB,GAAA;AAChB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KAChD;AAED;;;;AAIG;IACH,sBAAsB,CAAC,SAA8B,EAAE,GAAW,EAAA;QAC9D,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;QACzC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACrD;AAED;;;AAGG;AACH,IAAA,yBAAyB,CAAC,GAAW,EAAA;AACjC,QAAA,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACjC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KACrD;AAED;;;AAGG;AACH,IAAA,uBAAuB,CAAC,IAAY,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;KACrC;AAED;;;AAGG;AACH,IAAA,4BAA4B,CAAC,OAAiB,EAAA;QAC1C,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,gBAAgB,EAAE,CAAC,CAAC;KACrF;AAED;;;AAGG;IACH,MAAM,sBAAsB,CAAC,OAAiB,EAAA;AAC1C,QAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;YAC1B,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,sBAAsB,EAAE,CAAC;SACpE;KACJ;AAED;;;;AAIG;AACH,IAAA,MAAM,kBAAkB,CAAC,SAAS,GAAG,KAAK,EAAA;QACtC,MAAM,eAAe,GAA8B,EAAE,CAAC;AAEtD,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;AAC1B,YAAA,OAAO,eAAe,CAAC;SAC1B;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AAClE,YAAA,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;AAE9B,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YAEpD,IAAI,CAAC,SAAS,EAAE;gBACZ,SAAS;aACZ;AAED,YAAA,MAAM,KAAK,GAAG,SAAS,CAAC,eAAe,EAAE,CAAC;YAE1C,KAAK,MAAM,IAAI,IAAI,IAAI,EAAE,UAAU,IAAI,EAAE,EAAE;gBACvC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;oBACjB,SAAS;iBACZ;gBAED,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,SAAS;AACzC,sBAAE,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;sBACnE,IAAI,CAAC,qBAAqB,CAAC,6BAA6B,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;aACzG;SACJ;AAED,QAAA,OAAO,eAAe,CAAC;KAC1B;AAED;;;;AAIG;AACH,IAAA,aAAa,CAAC,MAAc,EAAA;QACxB,OAAO,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,KAAK,SAAS,CAAC;KAC7D;AAED;;;AAGG;IACH,gBAAgB,GAAA;;AAEZ,QAAA,OAAO,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,KAClD,SAAS,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CACzE,CAAC;KACL;AAED;;;AAGG;AACH,IAAA,QAAQ,CAAC,MAAc,EAAA;AACnB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;AAE5E,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,KAAI;YAClE,IAAI,CAAC,MAAM,GAAG,KAAK,KAAK,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,SAAS,GAAG,WAAW,GAAG,UAAU,CAAC;AAE7F,YAAA,OAAO,IAAI,CAAC;AAChB,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,gBAAgB,GAAG,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC;AAE7E,QAAA,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC;AAErC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAElC,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAE9C,QAAA,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;KAC3C;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,GAAa,EAAA;QAC1B,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,EAAE;YACtE,MAAM,qBAAqB,GAAG,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,KAAK,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,CAAC;AAEtG,YAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAEjD,YAAA,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;SACxD;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC;KAC7B;AAED;;;AAGG;AACH,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpC;AAED;;AAEG;IACH,kBAAkB,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;KAC9C;AAED;;AAEG;IACH,eAAe,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;KAClD;AAED;;;AAGG;AACH,IAAA,8BAA8B,CAAC,KAAc,EAAA;AACzC,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KACnD;AAED;;AAEG;IACH,0BAA0B,GAAA;QACtB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;KACnD;AAED;;AAEG;IACH,wBAAwB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;KAC/C;AAED;;;;;;AAMG;AACK,IAAA,MAAM,yBAAyB,CACnC,KAA0B,EAC1B,KAAa,EACb,GAA8B,EAAA;AAE9B,QAAA,IAAI,KAAK,GAAQ,KAAK,CAAC,GAAG,CAAC,CAAC;AAE5B,QAAA,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE;AAC7B,YAAA,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;YAEzB,KAAK,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;SAC7C;AAED,QAAA,OAAO,KAAU,CAAC;KACrB;AAED;;;;;AAKG;IACK,MAAM,iBAAiB,CAAC,GAAQ,EAAA;AACpC,QAAA,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC;AAErC,QAAA,IAAI,MAAW,CAAC;QAEhB,MAAM,QAAQ,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,KAAU,KAAI;YAClD,MAAM,GAAG,KAAK,CAAC;AACnB,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE;AACpB,YAAA,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;SACxC;AAED,QAAA,OAAO,MAAM,CAAC;KACjB;AAED;;;;;AAKG;AACK,IAAA,kBAAkB,CAAC,KAAoC,EAAA;QAC3D,MAAM,cAAc,GAAG,KAAK;aACvB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC;AACjC,aAAA,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,KAAI;AACtB,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;AACvB,gBAAA,OAAO,GAAG,CAAC,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;aACjE;AAED,YAAA,OAAO,OAAO,CAAC;SAClB,EAAE,EAAc,CAAC,CAAC;AAEvB,QAAA,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC3B,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;AACvB,gBAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACpE,gBAAA,OAAO,IAAI,CAAC;AAChB,aAAC,CAAC,CAAC;SACN;AAED,QAAA,OAAO,KAAK,CAAC;KAChB;;AAGO,IAAA,wBAAwB,CAC5B,UAAqC,EACrC,QAAwC,EACxC,aAAsB,EAAA;QAEtB,MAAM,aAAa,GAAoB,EAAE,CAAC;AAE1C,QAAA,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;AAChD,YAAA,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC;AAExB,YAAA,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAChB,gBAAA,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG;AACpB,oBAAA,CAAC,QAAQ,GAAG,aAAa,GAAG,CAAC,aAAa,CAAC,GAAG,EAAE;iBACnD,CAAC;AACN,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;AACH,QAAA,OAAO,aAAa,CAAC;KACxB;;AAGO,IAAA,mBAAmB,CAAC,KAAoC,EAAA;AAC5D,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;AAE1B,QAAA,MAAM,WAAW,GAAG,CAAC,QAAa,EAAE,QAAa,KAAS;AACtD,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;gBACzD,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;aAC1C;AACL,SAAC,CAAC;QAEF,MAAM,oBAAoB,GAAG,CACzB,gBAAiD,EACjD,QAAwC,EACxC,MAAe,KACT;AACN,YAAA,KAAK,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE;AACxD,gBAAA,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,GAAG,SAAS,CAChC,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,EAC9B,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,EACtD,WAAW,CACd,CAAC;aACL;AACL,SAAC,CAAC;QAEF,KAAK;aACA,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC;AACnC,aAAA,OAAO,CAAC,CAAC,IAAI,KAAI;AACd,YAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;gBACvB,oBAAoB,CAAC,IAAI,CAAC,gBAAgB,EAAE,8BAA8B,CAAC,uBAAuB,CAAC,CAAC;aACvG;AAED,YAAA,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAEhF,YAAA,cAAc,EAAE,OAAO,CAAC,CAAC,IAAI,KAAI;AAC7B,gBAAA,oBAAoB,CAChB,IAAI,CAAC,gBAAiB,EACtB,8BAA8B,CAAC,uBAAuB,EACtD,IAAI,CAAC,EAAE,CACV,CAAC;AACN,aAAC,CAAC,CAAC;AAEH,YAAA,MAAM,UAAU,GAA8B,MAAM,CAChD,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAClG,CAAC;AAEF,YAAA,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAI;AAC5B,gBAAA,oBAAoB,CAChB,QAAQ,CAAC,gBAAiB,EAC1B,8BAA8B,CAAC,qBAAqB,EACpD,IAAI,CAAC,EAAE,CACV,CAAC;AACN,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;KACV;;IAGO,oBAAoB,GAAA;AACxB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;KAC9E;8GA1jBQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAAtB,sBAAsB,EAAA,CAAA,CAAA,EAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBADlC,UAAU;;;AC9BX;;AAEG;AACU,MAAA,iCAAiC,GAAsC;AAChF,IAAA,MAAM,EAAE;AACJ,QAAA,KAAK,EAAE,eAAe;QACtB,cAAc,EAAE,kBAAkB,CAAC,OAAO;AAC1C,QAAA,IAAI,EAAE,OAAO;AAChB,KAAA;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,KAAK,EAAE,WAAW;QAClB,cAAc,EAAE,kBAAkB,CAAC,OAAO;AAC1C,QAAA,IAAI,EAAE,YAAY;AACrB,KAAA;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,KAAK,EAAE,QAAQ;QACf,cAAc,EAAE,kBAAkB,CAAC,OAAO;AAC1C,QAAA,IAAI,EAAE,OAAO;AAChB,KAAA;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,KAAK,EAAE,QAAQ;QACf,cAAc,EAAE,kBAAkB,CAAC,OAAO;AAC1C,QAAA,IAAI,EAAE,YAAY;AACrB,KAAA;AACD,IAAA,MAAM,EAAE;AACJ,QAAA,KAAK,EAAE,QAAQ;QACf,cAAc,EAAE,kBAAkB,CAAC,OAAO;AAC1C,QAAA,IAAI,EAAE,YAAY;AACrB,KAAA;EACH;AAEF;;AAEG;MAEU,mBAAmB,CAAA;AAO5B;;AAEG;IACH,IACI,sBAAsB,CAAC,KAA8B,EAAA;AACrD,QAAA,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iCAAiC,EAAE,KAAK,CAAC,CAAC;KAC9F;AACD,IAAA,IAAI,sBAAsB,GAAA;QACtB,OAAO,IAAI,CAAC,uBAAuB,CAAC;KACvC;AAED;;AAEG;IACH,IACI,KAAK,CAAC,KAA4B,EAAA;AAClC,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,EAAE,CAAC;QAEzD,IAAI,CAAC,KAAK,EAAE;YACR,OAAO;SACV;AAED,QAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,KAAI;AACrE,YAAA,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;AACvB,YAAA,IAAI,CAAC,aAAa,GAAG,QAAQ,CAAC;AAC9B,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACN;AACD,IAAA,IAAI,KAAK,GAAA;QACL,OAAO,IAAI,CAAC,MAAM,CAAC;KACtB;AAED;;;AAGG;IACH,IACI,cAAc,CAAC,KAAc,EAAA;AAC7B,QAAA,IAAI,CAAC,uBAAuB,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;KACtE;AAED,IAAA,IAAI,cAAc,GAAA;QACd,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;AAkCD;;AAEG;AACH,IAAA,IAAI,aAAa,GAAA;QACb,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,CAAC;QAExE,OAAO,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;KAC5D;AAED;;AAEG;IACH,IAAI,YAAY,CAAC,KAAoC,EAAA;AACjD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC9B;AACD,IAAA,IAAI,YAAY,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,MAAM,CAAC;KAC5C;AAED;;AAEG;AACH,IAAA,IAAI,WAAW,GAAA;QACX,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC;KACrD;AAED;;AAEG;AACH,IAAA,IAAI,UAAU,GAAA;AACV,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACjE,OAAO,QAAQ,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;KAChE;AAED;;AAEG;AACH,IAAA,IAAI,eAAe,GAAA;QACf,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,CAAC;QAExE,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;KAC/D;AAED;;AAEG;AACH,IAAA,IAAI,iBAAiB,GAAA;QACjB,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACxD,QAAA,OAAO,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;KACrC;;AAGD,IAAA,IAAI,sBAAsB,GAAA;QACtB,MAAM,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,EAAE,SAAS,KAAK,IAAI,CAAC;KAC/D;;AA2CD,IAAA,WAAA,GAAA;AAvLA;;AAEG;QAEH,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;;QAmD1B,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;AASzB;;AAEG;QAEH,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;;QAI3B,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AAErB;;AAEG;AAEH,QAAA,IAAA,CAAA,cAAc,GAA4C,IAAI,YAAY,EAAE,CAAC;AAE7E;;AAEG;QACH,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AA2DtB;;AAEG;QACH,IAAa,CAAA,aAAA,GAAkC,EAAE,CAAC;;QAMlD,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;AAE3B;;AAEG;QACH,IAAuB,CAAA,uBAAA,GAAsC,iCAAiC,CAAC;AAE/F;;AAEG;AACgB,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;;AAGjC,QAAA,IAAA,CAAA,uBAAuB,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;;AAGzD,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEnD;;AAEG;QACK,IAAM,CAAA,MAAA,GAAkC,EAAE,CAAC;;QAG3C,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAEhC;;AAEG;QACK,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAIzB,QAAA,IAAI,CAAC,uBAAuB;AACvB,aAAA,eAAe,EAAE;AACjB,aAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,aAAA,SAAS,CAAC,CAAC,YAAY,KAAI;AACxB,YAAA,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACjC,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;AAEP,QAAA,IAAI,CAAC,uBAAuB;AACvB,aAAA,oBAAoB,EAAE;AACtB,aAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,aAAA,SAAS,CAAC,OAAO,eAAe,KAAI;YACjC,IAAI,eAAe,CAAC,IAAI,KAAK,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE;AAC7C,gBAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;aACjC;AACL,SAAC,CAAC,CAAC;AAEP,QAAA,IAAI,CAAC,uBAAuB;AACvB,aAAA,wBAAwB,EAAE;AAC1B,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACjB,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;AACjC,SAAC,CAAC,CAAC;AAEP,QAAA,IAAI,CAAC,uBAAuB;AACvB,aAAA,eAAe,EAAE;AACjB,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,aAAA,SAAS,CAAC,CAAC,WAAW,KAAI;AACvB,YAAA,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;AAClC,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;AACnC,SAAC,CAAC,CAAC;AAEP,QAAA,IAAI,CAAC,uBAAuB;AACvB,aAAA,kBAAkB,EAAE;AACpB,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;AACjB,YAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAChC,SAAC,CAAC,CAAC;KACV;AAED;;AAEG;IACH,MAAM,GAAA;QACF,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,CAAC;AAC5E,QAAA,MAAM,iBAAiB,GAAG,gBAAgB,GAAG,CAAC,CAAC;QAE/C,IAAI,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,KAAK,SAAS,EAAE;YACpD,OAAO;SACV;AAED,QAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAEhC,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,UAAU,CAAC;QACxD,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;QACxD,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEhE,QAAA,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;AAEhE,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;AAED;;AAEG;AACH,IAAA,MAAM,MAAM,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACnB,OAAO;SACV;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,CAAC;AAC5E,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC;AAE1C,QAAA,IAAI,CAAC,uBAAuB;AACvB,aAAA,iBAAiB,EAAE;AACnB,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,aAAA,SAAS,CAAC,OAAO,MAAM,KAAI;YACxB,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO;aACV;AAED,YAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;AAE9B,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;AAEhC,YAAA,IAAI,KAAK,CAAC,aAAa,CAAC,KAAK,SAAS,EAAE;gBACpC,OAAO;aACV;AAED,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAEhC,YAAA,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,WAAW,CAAC;AAC7C,YAAA,KAAK,CAAC,gBAAgB,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC;AACzC,YAAA,KAAK,CAAC,aAAa,CAAC,CAAC,MAAM,GAAG,SAAS,CAAC;AAExC,YAAA,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAEpD,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;AAEjE,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACV;AAED;;;;AAIG;AACH,IAAA,eAAe,CAAC,gBAAyB,EAAA;AACrC,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AAEzB,QAAA,OAAO,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,gBAAgB,CAAC,CAAC,IAAI,CACtE,QAAQ,CAAC,MAAK;AACV,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC7B,CAAC,CACL,CAAC;KACL;AAED;;AAEG;AACH,IAAA,MAAM,MAAM,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACvC,OAAO;SACV;AAED,QAAA,IAAI,CAAC,uBAAuB;AACvB,aAAA,iBAAiB,EAAE;AACnB,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,aAAA,SAAS,CAAC,OAAO,MAAM,KAAI;YACxB,IAAI,CAAC,MAAM,EAAE;gBACT,OAAO;aACV;YAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AAEjF,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC3C,SAAC,CAAC,CAAC;KACV;AAED;;;;AAIG;AACH,IAAA,MAAM,iBAAiB,CAAC,MAAc,EAAE,MAAwB,EAAA;AAC5D,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC,CAAC;QAEvE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC;AAE9C,QAAA,MAAM,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;KAC9D;AAED;;AAEG;AACK,IAAA,MAAM,gBAAgB,GAAA;AAC1B,QAAA,MAAM,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;AAE3D,QAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAE1B,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;8GA7VQ,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAnB,mBAAmB,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,KAAA,EAAA,OAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B,SAAS;wDAMN,kBAAkB,EAAA,CAAA;sBADjB,KAAK;gBAOF,sBAAsB,EAAA,CAAA;sBADzB,KAAK;gBAYF,KAAK,EAAA,CAAA;sBADR,KAAK;gBAyBF,cAAc,EAAA,CAAA;sBADjB,KAAK;gBAWN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAQN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAON,kBAAkB,EAAA,CAAA;sBADjB,KAAK;gBAKN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAON,cAAc,EAAA,CAAA;sBADb,MAAM;;;MC9EE,4BAA4B,CAAA;;IA0ErC,WACY,CAAA,uBAA+C,EAC/C,qBAA2C,EAAA;QAD3C,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;QAC/C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAsB;;QAxDvD,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;AAErB;;AAEG;AAEH,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAsB,CAAC;AAExD;;AAEG;AAEH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAmB,CAAC;AAOnD;;AAEG;QACK,IAAe,CAAA,eAAA,GAA6B,EAAE,CAAC;AAEvD;;AAEG;AACK,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,OAAO,EAAmC,CAAC;AAEzE;;AAEG;QACK,IAAM,CAAA,MAAA,GAAoB,EAAE,CAAC;AAOrC;;;AAGG;QACK,IAAsB,CAAA,sBAAA,GAE1B,EAAE,CAAC;AAEP;;;AAGG;AACc,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;KAM9C;AAEJ;;AAEG;AACH,IAAA,MAAM,QAAQ,GAAA;AACV,QAAA,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC;KACvC;AAED;;AAEG;IACH,WAAW,GAAA;QACP,IAAI,CAAC,uBAAuB,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACxE;;IAGD,MAAM,WAAW,CAAC,OAAsB,EAAA;QACpC,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,CAAC,EAAE;AACxG,YAAA,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;SACjC;KACJ;AAED;;;;AAIG;AACH,IAAA,MAAM,aAAa,CAAC,IAAsB,EAAE,GAAW,EAAA;AACnD,QAAA,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG;YACf,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,IAAI,EAAE;YACnE,IAAI;SACP,CAAC;AAEF,QAAA,MAAM,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;AAE3D,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE;AAClE,YAAA,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAClC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACvC;AAED,QAAA,IAAI,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE;YAClC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC;SACtD;AAED,QAAA,IAAI,CAAC,6BAA6B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACjD;AAED;;AAEG;AACH,IAAA,MAAM,oBAAoB,GAAA;AACtB,QAAA,IAAI,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KAC3E;AAED;;;;AAIG;IACH,eAAe,CAAC,MAA6B,EAAE,KAAa,EAAA;AACxD,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;AAErC,QAAA,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE;;YAEzE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SACnD;KACJ;AAED;;AAEG;IACH,eAAe,GAAA;AACX,QAAA,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAI;AAChD,YAAA,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE;gBAChF,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aAC/B;AACD,YAAA,OAAO,GAAG,CAAC;SACd,EAAE,EAAE,CAAC,CAAC;KACV;AAED;;;AAGG;IACH,WAAW,CAAC,eAAe,GAAG,KAAK,EAAA;AAC/B,QAAA,IAAI,eAAe,IAAI,CAAC,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE;YAC9E,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACpC,aAAC,CAAC,CAAC;YACH,OAAO,IAAI,CAAC,eAAe,CAAC;SAC/B;;AAGD,QAAA,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAE1B,UAAU,CAAC,MAAK;YACZ,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC,aAAa,KAAI;gBAC1C,aAAa,CAAC,MAAM,EAAE,CAAC;AAC3B,aAAC,CAAC,CAAC;AACP,SAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,eAAe,CAAC;KAC/B;AAED;;AAEG;AACH,IAAA,MAAM,gBAAgB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;YACrB,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,EAAE;AACvD,gBAAA,MAAM,aAAa,CAAC,sBAAsB,EAAE,CAAC;aAChD;SACJ;KACJ;AAED;;AAEG;AACH,IAAA,MAAM,sBAAsB,GAAA;AACxB,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAE/B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE;YACvB,OAAO;SACV;QAED,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,KAAKC,YAAU,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE;YAC9E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC;YAEnF,IAAI,MAAM,KAAK,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;gBACpD,OAAO;aACV;AAED,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC;;YAG7C,IAAI,CAAC,MAAM,EAAE;gBACT,IAAI,CAAC,sBAAsB,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC;aAC3D;YAED,IAAI,CAAC,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC;SACpD;KACJ;AAED;;;;;AAKG;IACK,6BAA6B,CAAC,IAAsB,EAAE,GAAW,EAAA;AACrE,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,uBAAuB,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEzF,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;YACjD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,KAAI;AACvE,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAEzE,MAAM,YAAY,GAAG,UAAU,CAAC,8BAA8B,CAAC,uBAAuB,CAAC,KAAK,SAAS,CAAC;gBACtG,MAAM,eAAe,GAAG,UAAU,CAAC,8BAA8B,CAAC,qBAAqB,CAAC,CAAC;gBACzF,MAAM,qBAAqB,GAAG,UAAU,CAAC,8BAA8B,CAAC,uBAAuB,CAAC,CAAC;AAEjG,gBAAA,OAAO,EAAE,YAAY;AAChB,qBAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;qBAC5D,SAAS,CAAC,YAAW;oBAClB,IAAI,YAAY,EAAE;AACd,wBAAA,MAAM,IAAI,CAAC,uBAAuB,CAAC,qBAAqB,EAAE,CAAC;qBAC9D;AAED,oBAAA,IAAI,eAAe,EAAE,MAAM,EAAE;AACzB,wBAAA,IAAI,CAAC,uBAAuB,CAAC,4BAA4B,CAAC,eAAe,CAAC,CAAC;qBAC9E;AAED,oBAAA,IAAI,qBAAqB,EAAE,MAAM,EAAE;wBAC/B,MAAM,IAAI,CAAC,uBAAuB,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC;qBACpF;AACL,iBAAC,CAAC,CAAC;AACX,aAAC,CAAC,CAAC;SACN;KACJ;8GA/PQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,yRAIvB,sBAAsB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpDxC,2rBAkBA,ED4Bc,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,cAAc,0HAAE,sBAAsB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,eAAA,EAAA,MAAA,EAAA,cAAA,EAAA,mBAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,qBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEvC,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBARxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,2BAA2B,EAEtB,aAAA,EAAA,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,IAAI,EACP,OAAA,EAAA,CAAC,cAAc,EAAE,sBAAsB,CAAC,EAAA,QAAA,EAAA,2rBAAA,EAAA,CAAA;2HAMX,cAAc,EAAA,CAAA;sBAAnD,YAAY;uBAAC,sBAAsB,CAAA;gBAMpC,IAAI,EAAA,CAAA;sBADH,KAAK;gBAON,UAAU,EAAA,CAAA;sBADT,KAAK;gBAKN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAON,cAAc,EAAA,CAAA;sBADb,MAAM;gBAOP,YAAY,EAAA,CAAA;sBADX,MAAM;;;ME3DE,6BAA6B,CAAA;AAR1C,IAAA,WAAA,GAAA;AAeI;;AAEG;AAEH,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAU,CAAC;AAgBzC,KAAA;AAdG;;;;AAIG;AACH,IAAA,SAAS,CAAC,KAA8C,EAAA;QACpD,KAAK,CAAC,cAAc,EAAE,CAAC;QACvB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACpC;;IAGD,QAAQ,CAAC,CAAS,EAAE,IAAuB,EAAA;QACvC,OAAO,IAAI,CAAC,EAAE,CAAC;KAClB;8GA1BQ,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA7B,6BAA6B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB1C,ysCA4BA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDVc,cAAc,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,iBAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,SAAA,EAAA,OAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,yCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,OAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,yBAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,IAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,OAAA,EAAA,KAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAE,eAAe,EAAA,IAAA,EAAA,aAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAErF,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBARzC,SAAS;+BACI,4BAA4B,EAAA,eAAA,EAErB,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EACzB,UAAA,EAAA,IAAI,WACP,CAAC,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,aAAa,EAAE,eAAe,CAAC,EAAA,QAAA,EAAA,ysCAAA,EAAA,CAAA;8BAO/F,IAAI,EAAA,CAAA;sBADH,KAAK;gBAON,QAAQ,EAAA,CAAA;sBADP,MAAM;;;MEAE,0BAA0B,CAAA;AACnC;;AAEG;IACH,IACI,MAAM,CAAC,MAAwB,EAAA;AAC/B,QAAA,IAAI,MAAM,KAAK,SAAS,EAAE;AACtB,YAAA,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAI;AACjE,gBAAA,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAE7B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CACzD,CAAC,CAAC,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,SAAS,CAClD,CAAC;AAEF,gBAAA,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,MAAK;AAChC,oBAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAE1B,oBAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC7B,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;SACN;aAAM;AACH,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;SAC9B;AAED,QAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;KAC5B;;AA6BD,IAAA,WAAA,CACY,uBAA+C,EAC/C,qBAA2C,EAC3C,GAAsB,EAAA;QAFtB,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;QAC/C,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAsB;QAC3C,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAxBlC;;AAEG;QACH,IAAoB,CAAA,oBAAA,GAAiC,EAAE,CAAC;AAOxD;;AAEG;QACH,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;;AA4BtB,QAAA,IAAA,CAAA,WAAW,GAA6B,CAAC,MAAc,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KAhB9E;AAEJ;;;AAGG;AACH,IAAA,QAAQ,CAAC,MAAc,EAAA;AACnB,QAAA,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;KACjD;;IAGD,QAAQ,CAAC,CAAS,EAAE,IAAgC,EAAA;QAChD,OAAO,IAAI,CAAC,EAAE,CAAC;KAClB;;AAMO,IAAA,MAAM,kBAAkB,GAAA;AAC5B,QAAA,IAAI,CAAC,oBAAoB,GAAG,EAAE,CAAC;AAE/B,QAAA,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE;AAClC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC5E,YAAA,MAAM,cAAc,GAAG,SAAS,EAAE,eAAe,EAAE,CAAC;YAEpD,IAAI,CAAC,cAAc,EAAE;gBACjB,SAAS;aACZ;YAED,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAE7E,YAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;gBAC3B,EAAE,EAAE,IAAI,CAAC,EAAE;gBACX,IAAI,EAAE,IAAI,CAAC,IAAc;gBACzB,KAAK,EAAE,IAAI,CAAC,KAAe;AAC3B,gBAAA,KAAK,EAAE,kBAAkB;AAC5B,aAAA,CAAC,CAAC;SACN;KACJ;;AAGO,IAAA,MAAM,gBAAgB,CAC1B,cAA+B,EAC/B,IAAyB,EAAA;QAEzB,MAAM,kBAAkB,GAAwB,EAAE,CAAC;QAEnD,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,UAAU,IAAI,EAAE,EAAE;AAC3C,YAAA,MAAM,MAAM,GAAG,SAAS,CAAC,EAAE,CAAC;AAE5B,YAAA,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;;YAGpC,IAAI,CAAC,IAAI,EAAE;gBACP,SAAS;aACZ;AAED,YAAA,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;AAE1F,YAAA,MAAM,aAAa,GAAsB;gBACrC,KAAK,EAAE,IAAI,CAAC,KAAK;AACjB,gBAAA,EAAE,EAAE,MAAM;gBACV,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAI;AAClE,oBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC;oBACpF,OAAO;wBACH,KAAK,EAAE,QAAQ,CAAC,OAAiB;AACjC,wBAAA,KAAK,EAAE,kBAAkB,CAAC,GAAG,CAAC;qBACjC,CAAC;AACN,iBAAC,CAAC;aACL,CAAC;AAEF,YAAA,kBAAkB,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;SAC1C;AAED,QAAA,OAAO,kBAAkB,CAAC;KAC7B;8GAtIQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,EC9BvC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,2gBAWA,EDiBc,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,6BAA6B,gHAAE,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEhD,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBARtC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,yBAAyB,EAElB,eAAA,EAAA,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAAA,UAAA,EACzB,IAAI,EACP,OAAA,EAAA,CAAC,6BAA6B,EAAE,gBAAgB,CAAC,EAAA,QAAA,EAAA,2gBAAA,EAAA,CAAA;2JAOtD,MAAM,EAAA,CAAA;sBADT,KAAK;gBA2BN,yBAAyB,EAAA,CAAA;sBADxB,KAAK;;;MEXG,mBAAmB,CAAA;AAgI5B;;AAEG;;IAEH,IAAI,YAAY,CAAC,KAAoC,EAAA;AACjD,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;KAC9B;;AAED,IAAA,IAAI,YAAY,GAAA;QACZ,OAAO,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;KACnE;;;IAID,WACY,CAAA,uBAA+C,EAC/C,GAAsB,EAAA;QADtB,IAAuB,CAAA,uBAAA,GAAvB,uBAAuB,CAAwB;QAC/C,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AA/IlC;;AAEG;QAEH,IAAkB,CAAA,kBAAA,GAAG,IAAI,CAAC;AAQ1B;;;AAGG;QAEH,IAAc,CAAA,cAAA,GAAG,IAAI,CAAC;AAStB;;AAEG;QAEH,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAEpB;;AAEG;QAEH,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAEnB;;AAEG;QAEH,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAE1B;;AAEG;QAEH,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;AAwB3B;;AAEG;QAEH,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;;QAItB,IAAiB,CAAA,iBAAA,GAAG,IAAI,CAAC;;QAIzB,IAAa,CAAA,aAAA,GAAG,IAAI,CAAC;;QAIrB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;;QAIxB,IAAsB,CAAA,sBAAA,GAAG,KAAK,CAAC;;QAI/B,IAAiB,CAAA,iBAAA,GAAG,KAAK,CAAC;AAE1B;;AAEG;AAEH,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAoB,CAAC;AAEpD;;AAEG;AAEH,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;AAElC;;AAEG;AAEH,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;AAElC;;;AAGG;AACc,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AA0BlD;;AAEG;QACH,IAAS,CAAA,SAAA,GAAe,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAEjD;;AAEG;QACH,IAAS,CAAA,SAAA,GAAe,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;KAV7C;AAYJ;;;;AAIG;AACH,IAAA,oBAAoB,CAAC,KAAa,EAAA;QAC9B,OAAO,YAAW;YACd,MAAM,gBAAgB,GAAG,IAAI,CAAC,uBAAuB,CAAC,mBAAmB,EAAE,CAAC;AAC5E,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAE7E,YAAA,IAAI,KAAK,KAAK,gBAAgB,IAAI,aAAa,EAAE;AAC7C,gBAAA,OAAO,IAAI,CAAC;aACf;AAED,YAAA,IAAI,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;AAC5E,gBAAA,OAAO,KAAK,CAAC;aAChB;AAED,YAAA,OAAO,MAAM,cAAc,CAAC,IAAI,CAAC,uBAAuB,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC;AACtF,SAAC,CAAC;KACL;AAED;;AAEG;IACH,QAAQ,GAAA;AACJ,QAAA,IAAI,CAAC,uBAAuB;AACvB,aAAA,eAAe,EAAE;AACjB,aAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,EAAE,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC5D,aAAA,SAAS,CAAC,CAAC,YAAY,KAAI;AACxB,YAAA,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;AAClC,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;AAC7B,SAAC,CAAC,CAAC;KACV;AAED;;;;AAIG;IACH,iBAAiB,CAAC,EAAU,EAAE,MAAwB,EAAA;AAClD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACnB,EAAE;YACF,MAAM;AACT,SAAA,CAAC,CAAC;KACN;;AAGD,IAAA,WAAW,CAAC,MAAc,EAAA;QACtB,MAAM,SAAS,GAAG,IAAI,CAAC,uBAAuB,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;KAChE;AAED;;;;;AAKG;IACH,QAAQ,CAAC,MAAc,EAAE,IAAyB,EAAA;QAC9C,OAAO,IAAI,CAAC,EAAE,CAAC;KAClB;8GA1NQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,ECjDhC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,WAAA,EAAA,aAAA,EAAA,UAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,yBAAA,EAAA,2BAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,w2LAkGA,EDzDQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EACZ,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,cAAA,EAAA,WAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,aAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,4BAA4B,EAC5B,QAAA,EAAA,2BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,YAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,gBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,0BAA0B,EAC1B,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,2BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,EACf,QAAA,EAAA,kDAAA,EAAA,MAAA,EAAA,CAAA,OAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,odACvB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAGX,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAf/B,SAAS;+BACI,iBAAiB,EAAA,aAAA,EAEZ,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACnC,UAAA,EAAA,IAAI,EACP,OAAA,EAAA;wBACL,YAAY;wBACZ,4BAA4B;wBAC5B,0BAA0B;wBAC1B,eAAe;wBACf,uBAAuB;wBACvB,gBAAgB;AACnB,qBAAA,EAAA,QAAA,EAAA,w2LAAA,EAAA,CAAA;wHAOD,kBAAkB,EAAA,CAAA;sBADjB,KAAK;gBAON,sBAAsB,EAAA,CAAA;sBADrB,KAAK;gBAQN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAQN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAON,WAAW,EAAA,CAAA;sBADV,KAAK;gBAON,UAAU,EAAA,CAAA;sBADT,KAAK;gBAON,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAON,kBAAkB,EAAA,CAAA;sBADjB,KAAK;gBAON,oBAAoB,EAAA,CAAA;sBADnB,KAAK;gBAON,oBAAoB,EAAA,CAAA;sBADnB,KAAK;gBAON,yBAAyB,EAAA,CAAA;sBADxB,KAAK;gBAKN,oBAAoB,EAAA,CAAA;sBADnB,KAAK;gBAON,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAKN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAKN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAKN,eAAe,EAAA,CAAA;sBADd,KAAK;gBAKN,sBAAsB,EAAA,CAAA;sBADrB,KAAK;gBAKN,iBAAiB,EAAA,CAAA;sBADhB,KAAK;gBAON,YAAY,EAAA,CAAA;sBADX,MAAM;gBAOP,MAAM,EAAA,CAAA;sBADL,MAAM;gBAOP,MAAM,EAAA,CAAA;sBADL,MAAM;;;AEzHL,MAAO,8BAA+B,SAAQ,mBAAmB,CAAA;;AA2DnE,IAAA,WAAA,CAAoB,UAAuC,EAAA;AACvD,QAAA,KAAK,EAAE,CAAC;QADQ,IAAU,CAAA,UAAA,GAAV,UAAU,CAA6B;AAlD3D;;AAEG;QACH,IAAsB,CAAA,sBAAA,GAAG,iDAAiD,CAAC;AAC3E;;AAEG;QACH,IAA2B,CAAA,2BAAA,GAAG,SAAS,CAAC;AACxC;;AAEG;QACH,IAA4B,CAAA,4BAAA,GAAG,QAAQ,CAAC;;AAoCvB,QAAA,IAAA,CAAA,kBAAkB,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAwFhE;;AAEG;QACH,IAAS,CAAA,SAAA,GAAe,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AAC5C;;AAEG;QACH,IAAS,CAAA,SAAA,GAAwB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AAErD;;AAEG;QACH,IAAS,CAAA,SAAA,GAAwB,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;AAErD;;AAEG;QACH,IAAS,CAAA,SAAA,GAAe,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QApGxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;QACxC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC;AAC1D,QAAA,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,IAAI,EAAE,CAAC;QAChF,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;QACxD,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,CAAC;QAClE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACtE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACtE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACtE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC;QACtE,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,0BAA0B,CAAC;AAClF,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,kBAAkB,IAAI,KAAK,CAAC;QAC3E,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC;QACpE,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAEtE,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE;YAClD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC;SAC3D;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,KAAK,SAAS,EAAE;YACtD,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,iBAAiB,CAAC;SACnE;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,EAAE;YAC7C,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,sBAAsB,CAAC;SAC7E;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,EAAE;YACnD,IAAI,CAAC,4BAA4B,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,4BAA4B,CAAC;SACzF;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,2BAA2B,EAAE;YAClD,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,2BAA2B,CAAC;SACvF;KACJ;AAED;;AAEG;IACH,MAAM,GAAA;AACF,QAAA,IAAI,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,EAAE;AACjD,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAE1B,OAAO;SACV;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,0BAA0B,IAAI,IAAI,CAAC,iCAAiC,CAAC;AAE3F,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;AAE1F,QAAA,aAAa,CAAC,WAAW;AACpB,aAAA,IAAI,CACD,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,EAC1B,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CACvC;aACA,SAAS,CAAC,MAAK;AACZ,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;AAC9B,SAAC,CAAC,CAAC;KACV;AAED;;AAEG;AACH,IAAA,MAAM,MAAM,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;YACpB,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YACpC,OAAO;SACV;QAED,MAAM,aAAa,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,EAAE,CAAC;AACtE,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC;AAC9B,aAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC1C,aAAA,SAAS,CAAC,OAAO,MAAM,KAAI;YACxB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE;gBACzD,OAAO;aACV;YAED,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;AACjF,YAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;KACV;8GA9IQ,8BAA8B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAH,IAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA9B,8BAA8B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,SAAA,EAhB5B,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,mCAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,mCAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1B7D,6xMA6HA,EDhGQ,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,q1BAIZ,mBAAmB,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,SAAS,EACT,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,yIACf,uBAAuB,EAAA,QAAA,EAAA,qUAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACvB,gBAAgB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAChB,gBAAgB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,eAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,SAAA,EAAA,kBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAIX,8BAA8B,EAAA,UAAA,EAAA,CAAA;kBArB1C,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,iBAExB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,EAAA,UAAA,EAC7C,IAAI,EACP,OAAA,EAAA;wBACL,YAAY;wBACZ,cAAc;wBACd,aAAa;wBACb,kBAAkB;wBAClB,mBAAmB;wBACnB,SAAS;wBACT,eAAe;wBACf,uBAAuB;wBACvB,gBAAgB;wBAChB,gBAAgB;wBAChB,qBAAqB;AACxB,qBAAA,EAAA,QAAA,EAAA,6xMAAA,EAAA,CAAA;gFAI+C,iCAAiC,EAAA,CAAA;sBAAhF,SAAS;uBAAC,mCAAmC,CAAA;;;MEtCrC,oCAAoC,CAAA;8GAApC,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApC,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wEAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAJhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wEAAwE;AAClF,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCCY,oCAAoC,CAAA;8GAApC,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApC,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,yEAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAJhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,yEAAyE;AACnF,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCCY,oCAAoC,CAAA;8GAApC,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAApC,oCAAoC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,wEAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAApC,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAJhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,wEAAwE;AAClF,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;MCCY,mCAAmC,CAAA;8GAAnC,mCAAmC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAnC,mCAAmC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAnC,mCAAmC,EAAA,UAAA,EAAA,CAAA;kBAJ/C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,sEAAsE;AAChF,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;;;ACkBK,MAAO,wBAAyB,SAAQ,mBAAmB,CAAA;8GAApD,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,wBAAwB,EAJtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,SAAA,EAAA,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,EAQ3C,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oCAAoC,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,EAMzD,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,oCAAoC,2BAAU,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,2BAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAMzD,mCAAmC,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAMxD,oCAAoC,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,WAAW,EC7C3E,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,+xDAwCA,EDnBc,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,mBAAmB,EAAE,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,wBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,aAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,sBAAA,EAAA,2BAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,mBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,oBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,OAAA,EAAA,cAAA,EAAA,WAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,aAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,+EAAE,iBAAiB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,WAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAEtE,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBATpC,SAAS;+BACI,sBAAsB,EAAA,aAAA,EAEjB,iBAAiB,CAAC,IAAI,EAAA,eAAA,EACpB,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,EAAA,UAAA,EAC7C,IAAI,EAAA,OAAA,EACP,CAAC,mBAAmB,EAAE,YAAY,EAAE,eAAe,EAAE,iBAAiB,CAAC,EAAA,QAAA,EAAA,+xDAAA,EAAA,CAAA;8BAOhF,oBAAoB,EAAA,CAAA;sBADnB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,oCAAoC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAOzE,oBAAoB,EAAA,CAAA;sBADnB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,oCAAoC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAOzE,yBAAyB,EAAA,CAAA;sBADxB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,mCAAmC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAOxE,oBAAoB,EAAA,CAAA;sBADnB,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,oCAAoC,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;;;AEtC7E;;AAEG;MAEU,4BAA4B,CAAA;;AAErC,IAAA,WAAA,CAAoB,cAA6B,EAAA;QAA7B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAe;KAAI;AAErD;;;;AAIG;AACH,IAAA,IAAI,CAAC,MAAsC,EAAA;AACvC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,8BAA8B,EAAE,MAAM,CAAC,CAAC;AAEnF,QAAA,OAAO,SAAS,CAAC;KACpB;8GAbQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAA5B,4BAA4B,EAAA,CAAA,CAAA,EAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBADxC,UAAU;;;ACSX;;;;;;AAMG;MA6BU,6BAA6B,CAAA;AACtC;;;AAGG;IACH,OAAO,UAAU,CAAC,MAA0C,EAAA;QACxD,OAAO;AACH,YAAA,QAAQ,EAAE,6BAA6B;AACvC,YAAA,SAAS,EAAE;AACP,gBAAA;AACI,oBAAA,OAAO,EAAE,0BAA0B;oBACnC,QAAQ,EAAE,MAAM,CAAC,UAAU;AAC9B,iBAAA;AACD,gBAAA;AACI,oBAAA,OAAO,EAAE,qBAAqB;oBAC9B,QAAQ,EAAE,MAAM,CAAC,UAAU;AAC9B,iBAAA;AACJ,aAAA;SACJ,CAAC;KACL;8GAnBQ,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,YA1BlC,2BAA2B;YAC3B,wBAAwB;YACxB,4BAA4B;YAC5B,mBAAmB;YACnB,8BAA8B;YAC9B,0BAA0B;YAC1B,6BAA6B;YAC7B,oCAAoC;YACpC,oCAAoC;YACpC,mCAAmC;AACnC,YAAA,oCAAoC,aAGpC,wBAAwB;YACxB,4BAA4B;YAC5B,mBAAmB;YACnB,8BAA8B;YAC9B,0BAA0B;YAC1B,6BAA6B;YAC7B,oCAAoC;YACpC,oCAAoC;YACpC,mCAAmC;YACnC,oCAAoC,CAAA,EAAA,CAAA,CAAA,EAAA;AAI/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,EAF3B,SAAA,EAAA,CAAC,4BAA4B,CAAC,YAxBrC,2BAA2B;YAC3B,wBAAwB;YACxB,4BAA4B;YAC5B,mBAAmB;YACnB,8BAA8B;YAC9B,0BAA0B;YAC1B,6BAA6B,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAoBxB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBA5BzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,OAAO,EAAE;wBACL,2BAA2B;wBAC3B,wBAAwB;wBACxB,4BAA4B;wBAC5B,mBAAmB;wBACnB,8BAA8B;wBAC9B,0BAA0B;wBAC1B,6BAA6B;wBAC7B,oCAAoC;wBACpC,oCAAoC;wBACpC,mCAAmC;wBACnC,oCAAoC;AACvC,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,wBAAwB;wBACxB,4BAA4B;wBAC5B,mBAAmB;wBACnB,8BAA8B;wBAC9B,0BAA0B;wBAC1B,6BAA6B;wBAC7B,oCAAoC;wBACpC,oCAAoC;wBACpC,mCAAmC;wBACnC,oCAAoC;AACvC,qBAAA;oBACD,SAAS,EAAE,CAAC,4BAA4B,CAAC;AAC5C,iBAAA,CAAA;;;ACrDD;;AAEG;;;;"}
1
+ {"version":3,"file":"fundamental-ngx-platform-wizard-generator.mjs","sources":["../../../../libs/platform/wizard-generator/wizard-generator.service.ts","../../../../libs/platform/wizard-generator/base-wizard-generator.ts","../../../../libs/platform/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.ts","../../../../libs/platform/wizard-generator/components/wizard-generator-step/wizard-generator-step.component.html","../../../../libs/platform/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.ts","../../../../libs/platform/wizard-generator/components/wizard-summary-step/wizard-summary-section/wizard-summary-section.component.html","../../../../libs/platform/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.ts","../../../../libs/platform/wizard-generator/components/wizard-summary-step/wizard-summary-step.component.html","../../../../libs/platform/wizard-generator/components/wizard-body/wizard-body.component.ts","../../../../libs/platform/wizard-generator/components/wizard-body/wizard-body.component.html","../../../../libs/platform/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.ts","../../../../libs/platform/wizard-generator/components/dialog-wizard-generator/dialog-wizard-generator.component.html","../../../../libs/platform/wizard-generator/directives/wizard-generator-finish-button.directive.ts","../../../../libs/platform/wizard-generator/directives/wizard-generator-go-next-button.directive.ts","../../../../libs/platform/wizard-generator/directives/wizard-generator-review-button.directive.ts","../../../../libs/platform/wizard-generator/directives/wizard-generator-summary-step.directive.ts","../../../../libs/platform/wizard-generator/components/wizard-generator/wizard-generator.component.ts","../../../../libs/platform/wizard-generator/components/wizard-generator/wizard-generator.component.html","../../../../libs/platform/wizard-generator/wizard-dialog-generator.service.ts","../../../../libs/platform/wizard-generator/wizard-generator.module.ts","../../../../libs/platform/wizard-generator/fundamental-ngx-platform-wizard-generator.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { cloneDeep, concat, mergeWith, uniq } from 'lodash-es';\nimport { BehaviorSubject, Observable, Subject, of } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\nimport { isFunction, selectStrategy } from '@fundamental-ngx/cdk/utils';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { WizardGeneratorFormGroup, WizardGeneratorFormItem } from './interfaces/wizard-generator-form-group.interface';\nimport {\n WizardGeneratorDependencyFields,\n WizardGeneratorFormsValue,\n WizardStepSubmittedForms,\n WizardVisibleSteps\n} from './interfaces/wizard-generator-forms.interface';\nimport { PreparedWizardGeneratorItem, WizardGeneratorItem } from './interfaces/wizard-generator-item.interface';\nimport { WizardGeneratorStep } from './interfaces/wizard-step.interface';\n\nexport type StepsComponents = Map<string, WizardGeneratorStep>;\n\nexport enum WizardGeneratorRefreshStrategy {\n REFRESH_STEP_VISIBILITY = 'refreshStepVisibility',\n REVALIDATE_STEP_FORMS = 'revalidateStepForms',\n REFRESH_FORM_VISIBILITY = 'refreshFormVisibility'\n}\n\nexport interface DependencySteps {\n /** Step ID */\n [key: string]: {\n /** Form ID with array of form control id's */\n [key: string]: {\n [key in WizardGeneratorRefreshStrategy]?: string[];\n };\n };\n}\n\nexport interface StepDependencyFields {\n /** Dependent step */\n [key: string]: DependencySteps;\n}\n\n/**\n * @description Helper service to keep all transformations and data in one place.\n */\n@Injectable()\nexport class WizardGeneratorService {\n /** @hidden */\n items: PreparedWizardGeneratorItem[];\n\n /**\n * @description Visible steps components\n */\n stepsComponents: StepsComponents = new Map();\n\n /**\n * @description Object with steps that are dependencies for another steps.\n */\n dependencySteps: StepDependencyFields = {};\n\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 appendToWizard = true;\n\n /** @hidden */\n _shouldRedirectToSummary = false;\n\n /**\n * @description Steps that are visible to the user.\n */\n public visibleWizardSteps: PreparedWizardGeneratorItem[] = [];\n\n /** @hidden */\n private _visibleWizardSteps$ = new Subject<PreparedWizardGeneratorItem[]>();\n\n /** @hidden */\n private _appendToWizard$ = new BehaviorSubject<boolean>(this.appendToWizard);\n\n /** @hidden */\n private _stepsComponents$ = new Subject<StepsComponents>();\n\n /** @hidden */\n private _stepsOrderChanged$ = new Subject<number>();\n\n /** @hidden */\n private _nextStepIndex$ = new BehaviorSubject<number>(1);\n\n /** @hidden */\n private _submittedFormRawValues: WizardGeneratorFormsValue = {};\n\n /** @hidden */\n private _wizardStepIds: string[] = [];\n\n /** @hidden */\n constructor(private _formGeneratorService: FormGeneratorService) {}\n\n /**\n * @description Returns current step ID in Wizard.\n * @returns {string | undefined} Current step ID.\n */\n getCurrentStepId(): string | undefined {\n const currentStepId = this.visibleWizardSteps?.find((i) => i.status === 'current');\n\n return currentStepId?.id;\n }\n\n /**\n * @description Returns current step index.\n * @returns {number} Index of the current step in array of Wizard steps.\n */\n getCurrentStepIndex(): number {\n const currentStepId = this.getCurrentStepId();\n return this.getStepIndex(currentStepId);\n }\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?: string): number {\n const stepIndex = this.visibleWizardSteps?.findIndex((i) => i.id === stepId);\n return stepIndex > -1 ? stepIndex : 0;\n }\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?: string, skipIfUntouched = false): Observable<WizardStepSubmittedForms | null> {\n if (!stepId) {\n return of(null);\n }\n\n const step = this.stepsComponents.get(stepId);\n\n if (!step) {\n return of(null);\n }\n\n return step.submitForms(skipIfUntouched).pipe(\n take(1),\n map((result) => {\n if (result) {\n this._submittedFormRawValues[stepId] = result;\n }\n return result;\n })\n );\n }\n\n /**\n * @description Triggers validation for current step forms.\n * @returns {Observable<boolean>} Observable with validation result.\n */\n validateStepForms(skipIfUntouched = false): Observable<boolean> {\n const currentStepId = this.getCurrentStepId();\n\n if (!currentStepId) {\n return of(true);\n }\n\n return this.submitStepForms(currentStepId, skipIfUntouched).pipe(\n map((result) => result === null || Object.values(result).every((r) => r.success))\n );\n }\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: PreparedWizardGeneratorItem[]): void {\n this.visibleWizardSteps = steps;\n this._visibleWizardSteps$.next(steps);\n\n this.setWizardStepIds(steps.map((s) => s.id));\n }\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(): Observable<PreparedWizardGeneratorItem[]> {\n return this._visibleWizardSteps$.asObservable();\n }\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: WizardGeneratorItem[]): Promise<PreparedWizardGeneratorItem[]> {\n let newItems: PreparedWizardGeneratorItem[] = await Promise.all(\n 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 as PreparedWizardGeneratorItem;\n })\n );\n\n // Summary step must be the last one in array\n const summaryStepIndex = newItems.findIndex((i) => i.summary === true);\n\n if (summaryStepIndex !== -1 && summaryStepIndex !== newItems.length - 1) {\n newItems.splice(newItems.length - 1, 0, newItems.splice(summaryStepIndex, 1)[0]);\n }\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\n newItems = this._setBranchingSteps(newItems);\n\n this._buildDependencyMap(newItems);\n\n this.items = newItems;\n await this.refreshStepVisibility();\n\n return newItems;\n }\n\n /**\n * @description Runs conditional function for each step to define if step should be shown.\n */\n async refreshStepVisibility(): Promise<void> {\n const formValue = await this.getWizardFormValue();\n\n const visibleStepIds: WizardVisibleSteps = {};\n\n for (const item of this.items) {\n if (!isFunction(item.when)) {\n visibleStepIds[item.id] = true;\n continue;\n }\n\n const obj = item.when!(this._getCompletedStepIds(), formValue, this._formGeneratorService.forms);\n\n visibleStepIds[item.id] = await this._getFunctionValue(obj);\n }\n\n this.setVisibleSteps(this.items.filter((item) => visibleStepIds[item.id] === true));\n }\n\n /**\n * Checks whether current form group should be visible.\n * @param formGroup Form Group.\n */\n async refreshFormVisibility(formGroup: WizardGeneratorFormGroup): Promise<boolean> {\n const formValue = await this.getWizardFormValue();\n\n const obj = formGroup.when?.(this._getCompletedStepIds(), formValue, this._formGeneratorService.forms) ?? true;\n\n return await this._getFunctionValue(obj);\n }\n\n /**\n * @description Clears array of Wizard steps components.\n */\n clearWizardStepComponents(): void {\n this.stepsComponents.clear();\n this._stepsComponents$.next(this.stepsComponents);\n }\n\n /**\n * @returns {Observable<StepsComponents>} Observable, which will emit every time\n * when Set visible steps components has been changed.\n */\n trackStepsComponents(): Observable<StepsComponents> {\n return this._stepsComponents$.asObservable();\n }\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: WizardGeneratorStep, key: string): void {\n this.stepsComponents.set(key, component);\n this._stepsComponents$.next(this.stepsComponents);\n }\n\n /**\n * @description Removes Component from the set of Wizard steps components.\n * @param key\n */\n removeWizardStepComponent(key: string): void {\n this.stepsComponents.delete(key);\n this._stepsComponents$.next(this.stepsComponents);\n }\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: string): DependencySteps {\n return this.dependencySteps[step];\n }\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: string[]): void {\n stepIds.forEach((stepId) => this.stepsComponents.get(stepId)?.updateFormsState());\n }\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: string[]): Promise<void> {\n for (const stepId of stepIds) {\n await this.stepsComponents.get(stepId)?.refreshFormsVisibility();\n }\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): Promise<WizardGeneratorFormsValue> {\n const wizardFormValue: WizardGeneratorFormsValue = {};\n\n if (!this.visibleWizardSteps) {\n return wizardFormValue;\n }\n\n for (const item of this.visibleWizardSteps.filter((s) => !s.summary)) {\n wizardFormValue[item.id] = {};\n\n const component = this.stepsComponents.get(item.id);\n\n if (!component) {\n continue;\n }\n\n const forms = component.getVisibleForms();\n\n for (const form of item?.formGroups ?? []) {\n if (!forms[form.id]) {\n continue;\n }\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\n return wizardFormValue;\n }\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: string): boolean {\n return this._submittedFormRawValues[stepId] !== undefined;\n }\n\n /**\n *\n * @returns {Boolean} if steps are untouched, will return true, if yes - false\n */\n isStepsUntouched(): boolean {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return [...this.stepsComponents].every(([_, component]) =>\n component.formGenerators.toArray().every((item) => !item.form.touched)\n );\n }\n\n /**\n * Reverts wizard to defined step.\n * @param stepId Step ID to edit\n */\n editStep(stepId: string): void {\n const stepIndex = this.visibleWizardSteps.findIndex((s) => s.id === stepId);\n\n this.visibleWizardSteps = this.visibleWizardSteps.map((step, index) => {\n step.status = index === stepIndex ? 'current' : index < stepIndex ? 'completed' : 'upcoming';\n\n return step;\n });\n\n const summaryStepIndex = this.visibleWizardSteps.findIndex((s) => s.summary);\n\n this._shouldRedirectToSummary = true;\n\n this._appendToWizard$.next(false);\n\n this.setVisibleSteps(this.visibleWizardSteps);\n\n this.setNextStepIndex(summaryStepIndex);\n }\n\n /**\n * Set's current set of step ID's\n * @param ids step ID's\n */\n setWizardStepIds(ids: string[]): void {\n if (!this._wizardStepIds.every((stepId, index) => ids[index] === stepId)) {\n const firstChangedStepIndex = this._wizardStepIds.findIndex((stepId, index) => ids[index] !== stepId);\n\n this._nextStepIndex$.next(firstChangedStepIndex);\n\n this._stepsOrderChanged$.next(firstChangedStepIndex);\n }\n\n this._wizardStepIds = ids;\n }\n\n /**\n * Set next step index.\n * @param index Next step index.\n */\n setNextStepIndex(index: number): void {\n this._nextStepIndex$.next(index);\n }\n\n /**\n * Returns observable of next step index which emits when index is changed.\n */\n trackNextStepIndex(): Observable<number> {\n return this._nextStepIndex$.asObservable();\n }\n\n /**\n * Returns observable which emits when steps order has been changed.\n */\n trackStepsOrder(): Observable<number> {\n return this._stepsOrderChanged$.asObservable();\n }\n\n /**\n * Stores original 'appendToWizard' input property.\n * @param value\n */\n setOriginalAppendToWizardState(value: boolean): void {\n this.appendToWizard = value;\n this._appendToWizard$.next(this.appendToWizard);\n }\n\n /**\n * Resets modified 'appendToWizard' property to original one.\n */\n restoreAppendToWizardState(): void {\n this._appendToWizard$.next(this.appendToWizard);\n }\n\n /**\n * Returns observable which emits when 'appendToWizard' property has been changed.\n */\n trackAppendToWizardState(): Observable<boolean> {\n return this._appendToWizard$.asObservable();\n }\n\n /**\n * @hidden\n * @param items\n * @param index\n * @param key\n * @returns\n */\n private async _getFormItemPropertyValue<T = string>(\n items: WizardGeneratorItem,\n index: number,\n key: keyof WizardGeneratorItem\n ): Promise<T> {\n let value: any = items[key];\n\n if (typeof value === 'function') {\n const obj = value(index);\n\n value = await this._getFunctionValue(obj);\n }\n\n return value as T;\n }\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 private async _getFunctionValue(obj: any): Promise<any> {\n const strategy = selectStrategy(obj);\n\n let result: any;\n\n await strategy.createSubscription(obj, (value: any) => {\n result = value;\n });\n\n if (isFunction(result)) {\n await this._getFunctionValue(result);\n }\n\n return result;\n }\n\n /**\n * @hidden\n * @description Sets `branching` property for the steps that will create new branches.\n * @param items\n * @returns\n */\n private _setBranchingSteps(items: PreparedWizardGeneratorItem[]): PreparedWizardGeneratorItem[] {\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\n return stepIds;\n }, [] as string[]);\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\n return items;\n }\n\n /** @hidden */\n private _normalizeDependencyStep(\n dependency: { [p: string]: string[] },\n strategy: WizardGeneratorRefreshStrategy,\n dependentStep?: string\n ): DependencySteps {\n const newDependency: DependencySteps = {};\n\n Object.entries(dependency).forEach(([key, value]) => {\n newDependency[key] = {};\n\n value.forEach((v) => {\n newDependency[key][v] = {\n [strategy]: dependentStep ? [dependentStep] : []\n };\n });\n });\n return newDependency;\n }\n\n /** @hidden */\n private _buildDependencyMap(items: PreparedWizardGeneratorItem[]): void {\n this.dependencySteps = {};\n\n const mergeArrays = (objValue: any, srcValue: any): any => {\n if (Array.isArray(objValue) && !objValue.includes(srcValue)) {\n return uniq(objValue.concat(srcValue));\n }\n };\n\n const buildDependencySteps = (\n dependencyFields: WizardGeneratorDependencyFields,\n strategy: WizardGeneratorRefreshStrategy,\n stepId?: string\n ): void => {\n for (const [id, forms] of Object.entries(dependencyFields)) {\n this.dependencySteps[id] = mergeWith(\n this.dependencySteps[id] || {},\n this._normalizeDependencyStep(forms, strategy, stepId),\n mergeArrays\n );\n }\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\n const dependentForms = step.formGroups?.filter((form) => form.dependencyFields);\n\n dependentForms?.forEach((form) => {\n buildDependencySteps(\n form.dependencyFields!,\n WizardGeneratorRefreshStrategy.REFRESH_FORM_VISIBILITY,\n step.id\n );\n });\n\n const stepFields: WizardGeneratorFormItem[] = concat(\n ...[...(step.formGroups ?? [])].map((item) => item.formItems.filter((f) => f.dependencyFields))\n );\n\n stepFields.forEach((formItem) => {\n buildDependencySteps(\n formItem.dependencyFields!,\n WizardGeneratorRefreshStrategy.REVALIDATE_STEP_FORMS,\n step.id\n );\n });\n });\n }\n\n /** @hidden */\n private _getCompletedStepIds(): string[] {\n return this.items.filter((i) => i.status === 'completed').map((i) => i.id);\n }\n}\n","import { ChangeDetectorRef, DestroyRef, Directive, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { debounceTime, finalize } from 'rxjs/operators';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityMode } from '@fundamental-ngx/core/content-density';\nimport { WizardStepStatus } from '@fundamental-ngx/core/wizard';\nimport { WizardGeneratorFormsValue, WizardStepSubmittedForms } from './interfaces/wizard-generator-forms.interface';\nimport { PreparedWizardGeneratorItem, WizardGeneratorItem } from './interfaces/wizard-generator-item.interface';\nimport { WizardNavigationButtons } from './interfaces/wizard-navigation-buttons.interface';\nimport { WizardGeneratorService } from './wizard-generator.service';\n\n/**\n * @description Default button labels.\n */\nexport const DEFAULT_WIZARD_NAVIGATION_BUTTONS: Required<WizardNavigationButtons> = {\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/**\n * @description Base Wizard Generator component with necessary inputs and methods.\n */\n@Directive()\nexport class BaseWizardGenerator {\n /**\n * @description Whether or not apply responsive paddings styling.\n */\n @Input()\n responsivePaddings = true;\n\n /**\n * @description Button labels to be used in Wizard navigation\n */\n @Input()\n set navigationButtonLabels(value: WizardNavigationButtons) {\n this._navigationButtonLabels = Object.assign({}, DEFAULT_WIZARD_NAVIGATION_BUTTONS, value);\n }\n get navigationButtonLabels(): WizardNavigationButtons {\n return this._navigationButtonLabels;\n }\n\n /**\n * @description Array of Wizard Steps.\n */\n @Input()\n set items(items: WizardGeneratorItem[]) {\n this.wizardCreated = false;\n this._wizardGeneratorService.clearWizardStepComponents();\n\n if (!items) {\n return;\n }\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(): WizardGeneratorItem[] {\n return this._items;\n }\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 @Input()\n set appendToWizard(value: boolean) {\n this._wizardGeneratorService.setOriginalAppendToWizardState(value);\n }\n\n get appendToWizard(): boolean {\n return this._appendToWizard;\n }\n\n /** If navigation buttons should be visible. */\n @Input()\n navigationButtons = true;\n\n /**\n * Custom height to use for the wizard's content pane. By default, this value is calc(100vh - 144px), where 144px\n * is the combined height of the shellbar, wizard header and wizard footer.\n */\n @Input()\n contentHeight: Nullable<string>;\n\n /**\n * @description Boolean flag indicating whether to display Summary step in Wizard progress bar.\n */\n @Input()\n displaySummaryStep = false;\n\n /** Whether all form items should have identical layout provided for form group. */\n @Input()\n unifiedLayout = true;\n\n /**\n * @description Emits wizard value when it's completed.\n */\n @Output()\n wizardFinished: EventEmitter<WizardGeneratorFormsValue> = new EventEmitter();\n\n /**\n * Flag indicating that wizard is ready to be shown\n */\n wizardCreated = false;\n\n /**\n * @description Is current step is summary step.\n */\n get isSummaryStep(): boolean {\n const currentIndex = this._wizardGeneratorService.getCurrentStepIndex();\n\n return this.visibleItems[currentIndex]?.summary === true;\n }\n\n /**\n * @description Array of visible Wizard Steps.\n */\n set visibleItems(items: PreparedWizardGeneratorItem[]) {\n this._visibleItems = items;\n }\n get visibleItems(): PreparedWizardGeneratorItem[] {\n return this._visibleItems || this._items;\n }\n\n /**\n * @description Whether or not Wizard is currently on the first step\n */\n get isFirstStep(): boolean {\n return this.visibleItems[0]?.status === 'current';\n }\n\n /**\n * @description Whether or not Wizard is currently on the last step\n */\n get isLastStep(): boolean {\n const lastStep = this.visibleItems[this.visibleItems.length - 1];\n return lastStep?.status === 'current' && !lastStep.branching;\n }\n\n /**\n * Whether current step is a branching step.\n */\n get isBranchingStep(): boolean {\n const currentIndex = this._wizardGeneratorService.getCurrentStepIndex();\n\n return this._visibleItems[currentIndex]?.branching === true;\n }\n\n /**\n * Whether the next step is a Summary step.\n */\n get isNextStepSummary(): boolean {\n const nextStep = this.visibleItems[this._nextStepIndex];\n return nextStep?.summary === true;\n }\n\n /** Whether the current step is completed */\n get isCurrentStepCompleted(): boolean {\n const currentIndex = this._wizardGeneratorService.getCurrentStepIndex();\n return this._visibleItems[currentIndex]?.completed === true;\n }\n\n /**\n * @hidden\n */\n _visibleItems: PreparedWizardGeneratorItem[] = [];\n\n /** @hidden */\n _nextStepIndex: number;\n\n /** @hidden */\n _stepsOrderChanged = false;\n\n /**\n * @hidden\n */\n _navigationButtonLabels: Required<WizardNavigationButtons> = DEFAULT_WIZARD_NAVIGATION_BUTTONS;\n\n /**\n * @hidden\n */\n protected readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n protected readonly _wizardGeneratorService = inject(WizardGeneratorService);\n\n /** @hidden */\n protected readonly _cd = inject(ChangeDetectorRef);\n\n /**\n * @hidden\n */\n private _items: PreparedWizardGeneratorItem[] = [];\n\n /** @hidden */\n private _appendToWizard = false;\n\n /**\n * @hidden\n */\n private _formPending = false;\n\n /** @hidden */\n constructor() {\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\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\n this._wizardGeneratorService\n .trackAppendToWizardState()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((value) => {\n this._appendToWizard = value;\n });\n\n this._wizardGeneratorService\n .trackStepsOrder()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((newNextStep) => {\n this._nextStepIndex = newNextStep;\n this._stepsOrderChanged = true;\n });\n\n this._wizardGeneratorService\n .trackNextStepIndex()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe((index) => {\n this._nextStepIndex = index;\n });\n }\n\n /**\n * @description Reverts Wizard progress one step back.\n */\n goBack(): void {\n const currentStepIndex = this._wizardGeneratorService.getCurrentStepIndex();\n const previousStepIndex = currentStepIndex - 1;\n\n if (this.visibleItems[previousStepIndex] === undefined) {\n return;\n }\n\n this._stepsOrderChanged = false;\n\n this.visibleItems[currentStepIndex].status = 'upcoming';\n this.visibleItems[previousStepIndex].status = 'current';\n this._wizardGeneratorService.setVisibleSteps(this.visibleItems);\n\n this._wizardGeneratorService.setNextStepIndex(currentStepIndex);\n\n this._cd.detectChanges();\n }\n\n /**\n * @description Progresses the Wizard one step further.\n */\n async goNext(): Promise<void> {\n if (this._formPending) {\n return;\n }\n\n const currentStepIndex = this._wizardGeneratorService.getCurrentStepIndex();\n const nextStepIndex = this._nextStepIndex;\n\n this._wizardGeneratorService\n .validateStepForms()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(async (result) => {\n if (!result) {\n return;\n }\n\n await this._setVisibleSteps();\n\n const steps = this.visibleItems;\n\n if (steps[nextStepIndex] === undefined) {\n return;\n }\n\n this._stepsOrderChanged = false;\n\n steps[currentStepIndex].status = 'completed';\n steps[currentStepIndex].completed = true;\n steps[nextStepIndex].status = 'current';\n\n this._wizardGeneratorService.setVisibleSteps(steps);\n\n this._wizardGeneratorService.setNextStepIndex(nextStepIndex + 1);\n\n this._cd.detectChanges();\n });\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?: string): Observable<WizardStepSubmittedForms | null> {\n this._formPending = true;\n\n return this._wizardGeneratorService.submitStepForms(currentStepIndex).pipe(\n finalize(() => {\n this._formPending = false;\n })\n );\n }\n\n /**\n * @description Completes the wizard and emits it's formatted value.\n */\n async finish(): Promise<void> {\n if (this.isSummaryStep) {\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this.wizardFinished.emit(wizardResult);\n return;\n }\n\n this._wizardGeneratorService\n .validateStepForms()\n .pipe(takeUntilDestroyed(this._destroyRef))\n .subscribe(async (result) => {\n if (!result) {\n return;\n }\n\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n\n this.wizardFinished.emit(wizardResult);\n });\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: string, status: WizardStepStatus): Promise<void> {\n const stepIndex = this._visibleItems.findIndex((s) => s.id === stepId);\n\n this._visibleItems[stepIndex].status = status;\n\n await this._wizardGeneratorService.refreshStepVisibility();\n }\n\n /**\n * @hidden\n */\n private async _setVisibleSteps(): Promise<void> {\n await this._wizardGeneratorService.refreshStepVisibility();\n\n this.wizardCreated = true;\n\n this._cd.detectChanges();\n }\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n ViewChildren,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { WizardStepStatus } from '@fundamental-ngx/core/wizard';\n\nimport {\n DynamicFormGroup,\n DynamicFormValue,\n FormGeneratorComponent,\n FormGeneratorService,\n SubmitFormEventResult\n} from '@fundamental-ngx/platform/form';\nimport { isFunction } from '@fundamental-ngx/platform/shared';\nimport { Subject } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\nimport { WizardStepForms, WizardStepSubmittedForms } from '../../interfaces/wizard-generator-forms.interface';\nimport { WizardGeneratorItem } from '../../interfaces/wizard-generator-item.interface';\nimport { WizardGeneratorStep } from '../../interfaces/wizard-step.interface';\nimport {\n DependencySteps,\n WizardGeneratorRefreshStrategy,\n WizardGeneratorService\n} from '../../wizard-generator.service';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\n\n@Component({\n selector: 'fdp-wizard-generator-step',\n templateUrl: './wizard-generator-step.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [TitleComponent, FormGeneratorComponent]\n})\nexport class WizardGeneratorStepComponent implements WizardGeneratorStep, OnInit, OnDestroy, OnChanges {\n /**\n * @description Step Form Generator components.\n */\n @ViewChildren(FormGeneratorComponent) formGenerators: QueryList<FormGeneratorComponent>;\n\n /**\n * @description Current step.\n */\n @Input()\n item: WizardGeneratorItem;\n\n /**\n * Wizard step status.\n */\n @Input()\n stepStatus: WizardStepStatus;\n\n /** Whether all form items should have identical layout provided for form group. */\n @Input()\n unifiedLayout = true;\n\n /**\n * @description Emits when all forms in the step has been submited\n */\n @Output()\n formsSubmitted = new EventEmitter<DynamicFormValue[]>();\n\n /**\n * @description Emits when all forms in the step has been created\n */\n @Output()\n formsCreated = new EventEmitter<WizardStepForms>();\n\n /**\n * @hidden\n */\n _visibleFormGroupIds: Record<string, boolean>;\n\n /**\n * @hidden\n */\n private _submittedForms: WizardStepSubmittedForms = {};\n\n /**\n * @hidden\n */\n private _formSubmitted$ = new Subject<WizardStepSubmittedForms | null>();\n\n /**\n * @hidden\n */\n private _forms: WizardStepForms = {};\n\n /**\n * @hidden\n */\n private _trackedFields: DependencySteps;\n\n /**\n * @hidden\n * @private\n */\n private _hiddenFormGroupValues: {\n [key: string]: any;\n } = {};\n\n /**\n * @hidden\n * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)\n */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor(\n private _wizardGeneratorService: WizardGeneratorService,\n private _formGeneratorService: FormGeneratorService\n ) {}\n\n /**\n * @hidden\n */\n async ngOnInit(): Promise<void> {\n await this.refreshFormsVisibility();\n }\n\n /**\n * @hidden\n */\n ngOnDestroy(): void {\n this._wizardGeneratorService.removeWizardStepComponent(this.item.id);\n }\n\n /** @hidden */\n async ngOnChanges(changes: SimpleChanges): Promise<void> {\n if (changes.stepStatus && changes.stepStatus.currentValue === 'current' && this.formGenerators?.length > 0) {\n await this.updateFormsState();\n }\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: DynamicFormGroup, key: string): Promise<void> {\n this._forms[key] = {\n title: this.item.formGroups?.find((g) => g.id === key)?.title ?? '',\n form\n };\n\n await this._wizardGeneratorService.refreshStepVisibility();\n\n if (Object.keys(this._forms).length === this.item.formGroups?.length) {\n await this.addComponentToParent();\n this.formsCreated.emit(this._forms);\n }\n\n if (this._hiddenFormGroupValues[key]) {\n form?.patchValue(this._hiddenFormGroupValues[key]);\n }\n\n this._trackDependencyFieldsChanges(form, key);\n }\n\n /**\n * @description Adds component to the service for further usage.\n */\n async addComponentToParent(): Promise<void> {\n this._wizardGeneratorService.addWizardStepComponent(this, this.item.id);\n }\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: SubmitFormEventResult, index: string): void {\n this._submittedForms[index] = result;\n\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 /**\n * Returns visible forms in the step.\n */\n getVisibleForms(): WizardStepForms {\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 /**\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): Subject<WizardStepSubmittedForms | null> {\n if (skipIfUntouched && !this._wizardGeneratorService.stepSubmitted(this.item.id)) {\n setTimeout(() => {\n this._formSubmitted$.next(null);\n });\n return this._formSubmitted$;\n }\n\n // Clear previously submitted form values and re-submit them again.\n this._submittedForms = {};\n\n setTimeout(() => {\n this.formGenerators.forEach((formComponent) => {\n formComponent.submit();\n });\n });\n\n return this._formSubmitted$;\n }\n\n /**\n * Triggers form value revalidation and checks if field in form should be visible.\n */\n async updateFormsState(): Promise<void> {\n if (this.formGenerators) {\n for (const formGenerator of this.formGenerators.toArray()) {\n await formGenerator.refreshStepsVisibility();\n }\n }\n }\n\n /**\n * Refreshes step form group visibility.\n */\n async refreshFormsVisibility(): Promise<void> {\n this._visibleFormGroupIds = {};\n\n if (!this.item.formGroups) {\n return;\n }\n\n for (const formGroup of this.item.formGroups.filter((fg) => isFunction(fg.when))) {\n const result = await this._wizardGeneratorService.refreshFormVisibility(formGroup);\n\n if (result === this._visibleFormGroupIds[formGroup.id]) {\n return;\n }\n\n const form = this._forms[formGroup.id]?.form;\n\n // Store form value so it could be restored later.\n if (!result) {\n this._hiddenFormGroupValues[formGroup.id] = form?.value;\n }\n\n this._visibleFormGroupIds[formGroup.id] = result;\n }\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 private _trackDependencyFieldsChanges(form: DynamicFormGroup, key: string): void {\n this._trackedFields = this._wizardGeneratorService.getStepDependencyFields(this.item.id);\n\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\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\n control?.valueChanges\n .pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef))\n .subscribe(async () => {\n if (refreshSteps) {\n await this._wizardGeneratorService.refreshStepVisibility();\n }\n\n if (revalidateForms?.length) {\n this._wizardGeneratorService.notifyStepsToRevalidateForms(revalidateForms);\n }\n\n if (refreshFormVisibility?.length) {\n await this._wizardGeneratorService.refreshFormsVisibility(refreshFormVisibility);\n }\n });\n });\n }\n }\n}\n","@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","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\n\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 {\n FormattedFormStep,\n WizardGeneratorSummaryItem\n} from '../../../interfaces/wizard-generator-summary-item.interface';\n\n@Component({\n selector: 'fdp-wizard-summary-section',\n templateUrl: './wizard-summary-section.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [TitleComponent, LayoutGridModule, FormLabelComponent, LinkComponent, FdTranslatePipe]\n})\nexport class WizardSummarySectionComponent {\n /**\n * @description Current step for the section.\n */\n @Input()\n step: WizardGeneratorSummaryItem;\n\n /**\n * Emits when step edit button clicked.\n */\n @Output()\n editStep = new EventEmitter<string>();\n\n /**\n * @hidden\n * @description Sets current step on wizard.\n * @param event Mouse click event to prevent.\n */\n _editStep(event: MouseEvent | KeyboardEvent | TouchEvent): void {\n event.preventDefault();\n this.editStep.emit(this.step.id);\n }\n\n /** @hidden */\n _trackFn(_: number, form: FormattedFormStep): string {\n return form.id;\n }\n}\n","@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 <div fdLayoutGridRow>\n <div [fdLayoutGridCol]=\"4\" [colMd]=\"2\" [colLg]=\"2\" [colXl]=\"2\">\n @for (item of group.items; track item) {\n <div>\n <label fd-form-label> {{ item.label }}: </label>\n </div>\n }\n </div>\n <div [fdLayoutGridCol]=\"4\" [colMd]=\"5\" [colLg]=\"5\" [colXl]=\"5\">\n @for (item of group.items; track item) {\n <div>\n <label fd-form-label>\n {{ item.value || '-' }}\n </label>\n </div>\n }\n </div>\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 </div>\n </fd-layout-grid>\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Input,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { WizardStepStatus } from '@fundamental-ngx/core/wizard';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { WizardGeneratorFormsValue, WizardStepForms } from '../../interfaces/wizard-generator-forms.interface';\nimport { WizardGeneratorItem } from '../../interfaces/wizard-generator-item.interface';\nimport {\n FormattedFormStep,\n WizardGeneratorSummaryItem\n} from '../../interfaces/wizard-generator-summary-item.interface';\nimport { WizardGeneratorService } from '../../wizard-generator.service';\nimport { WizardSummarySectionComponent } from './wizard-summary-section/wizard-summary-section.component';\n\n@Component({\n selector: 'fdp-wizard-summary-step',\n templateUrl: './wizard-summary-step.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [WizardSummarySectionComponent, NgTemplateOutlet]\n})\nexport class WizardSummaryStepComponent {\n /**\n * @description Summary step status.\n */\n @Input()\n set status(status: WizardStepStatus) {\n if (status === 'current') {\n this._wizardGeneratorService.getWizardFormValue(true).then((forms) => {\n this._submittedForms = forms;\n\n this._wizardSteps = this._wizardGeneratorService.items.filter(\n (i) => this._submittedForms[i.id] !== undefined\n );\n\n this._formatWizardValue().then(() => {\n this._shouldRender = true;\n\n this._cd.detectChanges();\n });\n });\n } else {\n this._shouldRender = false;\n }\n\n this._cd.detectChanges();\n }\n\n /**\n * User-defined template for Summary step.\n */\n @Input()\n customSummaryStepTemplate: Nullable<TemplateRef<HTMLElement>>;\n\n /**\n * Formatted wizard value with steps and their forms.\n */\n formattedWizardValue: WizardGeneratorSummaryItem[] = [];\n\n /**\n * @hidden\n */\n _submittedForms: WizardGeneratorFormsValue;\n\n /**\n * @hidden\n */\n _shouldRender = false;\n\n /**\n * @hidden\n */\n _wizardSteps: WizardGeneratorItem[];\n\n /** @hidden */\n constructor(\n private _wizardGeneratorService: WizardGeneratorService,\n private _formGeneratorService: FormGeneratorService,\n private _cd: ChangeDetectorRef\n ) {}\n\n /**\n * Opens defined step for editing.\n * @param stepId Defined step ID.\n */\n editStep(stepId: string): void {\n this._wizardGeneratorService.editStep(stepId);\n }\n\n /** @hidden */\n _trackFn(_: number, step: WizardGeneratorSummaryItem): string {\n return step.id;\n }\n\n /** @hidden */\n _editStepFn: (stepId: string) => void = (stepId: string) => this.editStep(stepId);\n\n /** @hidden */\n private async _formatWizardValue(): Promise<void> {\n this.formattedWizardValue = [];\n\n for (const step of this._wizardSteps) {\n const component = this._wizardGeneratorService.stepsComponents.get(step.id);\n const componentForms = component?.getVisibleForms();\n\n if (!componentForms) {\n continue;\n }\n\n const formattedStepValue = await this._formatStepValue(componentForms, step);\n\n this.formattedWizardValue.push({\n id: step.id,\n name: step.name as string,\n title: step.title as string,\n forms: formattedStepValue\n });\n }\n }\n\n /** @hidden */\n private async _formatStepValue(\n componentForms: WizardStepForms,\n step: WizardGeneratorItem\n ): Promise<FormattedFormStep[]> {\n const formattedStepValue: FormattedFormStep[] = [];\n\n for (const formGroup of step.formGroups ?? []) {\n const formId = formGroup.id;\n\n const form = componentForms[formId];\n\n // Form might be skipped due to conditional rendering\n if (!form) {\n continue;\n }\n\n const formattedFormValue = await this._formGeneratorService.getFormValue(form.form, true);\n\n const formattedForm: FormattedFormStep = {\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 as string,\n value: formattedFormValue[key]\n };\n })\n };\n\n formattedStepValue.push(formattedForm);\n }\n\n return formattedStepValue;\n }\n}\n","@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","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { debounceTime } from 'rxjs/operators';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { WizardModule, WizardStepStatus } from '@fundamental-ngx/core/wizard';\n\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 { PreparedWizardGeneratorItem, WizardGeneratorItem } from '../../interfaces/wizard-generator-item.interface';\nimport { WizardNavigationButtons } from '../../interfaces/wizard-navigation-buttons.interface';\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';\n\nexport interface WizardStepChange {\n id: string;\n status: WizardStepStatus;\n}\n\n@Component({\n selector: 'fdp-wizard-body',\n templateUrl: './wizard-body.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [\n WizardModule,\n WizardGeneratorStepComponent,\n WizardSummaryStepComponent,\n ButtonComponent,\n ContentDensityDirective,\n NgTemplateOutlet\n ]\n})\nexport class WizardBodyComponent implements OnInit {\n /**\n * @description Whether or not apply responsive paddings styling.\n */\n @Input()\n responsivePaddings = true;\n\n /**\n * @description Button labels to be used in Wizard navigation\n */\n @Input()\n navigationButtonLabels: Required<WizardNavigationButtons>;\n\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 @Input()\n appendToWizard = true;\n\n /**\n * @description Custom height to use for the wizard's content pane. By default, this value is calc(100vh - 144px), where 144px\n * is the combined height of the Shellbar, wizard header and wizard footer.\n */\n @Input()\n contentHeight: Nullable<string>;\n\n /**\n * @description Whether or not Wizard is currently on the first step\n */\n @Input()\n isFirstStep = false;\n\n /**\n * @description Whether Wizard is currently on the last step.\n */\n @Input()\n isLastStep = false;\n\n /**\n * Whether next step is a Summary step.\n */\n @Input()\n isNextStepSummary = false;\n\n /**\n * @description Boolean flag indicating whether to display Summary step in Wizard progress bar.\n */\n @Input()\n displaySummaryStep = false;\n\n /**\n * User-defined template for \"Go Next\" button.\n */\n @Input()\n goNextButtonTemplate: TemplateRef<any>;\n\n /**\n * User-defined template for \"Finish\" button.\n */\n @Input()\n finishButtonTemplate: TemplateRef<any>;\n\n /**\n * User-defined template for summary step.\n */\n @Input()\n customSummaryStepTemplate?: TemplateRef<HTMLElement>;\n\n /** User-defined template for \"Review\" button */\n @Input()\n reviewButtonTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * @description Is current step is summary step.\n */\n @Input()\n isSummaryStep = false;\n\n /** If navigation buttons should be visible. */\n @Input()\n navigationButtons = true;\n\n /** Whether or not all form items should have identical layout provided for form group. */\n @Input()\n unifiedLayout = true;\n\n /** Whether current step is a branching step. */\n @Input()\n isBranchingStep = false;\n\n /** Whether current step is completed */\n @Input()\n isCurrentStepCompleted = false;\n\n /** Whether order of steps was changed */\n @Input()\n stepsOrderChanged = false;\n\n /**\n * @description Emits when some step status has been changed.\n */\n @Output()\n statusChange = new EventEmitter<WizardStepChange>();\n\n /**\n * @description Emits when \"Go next\" button has been clicked\n */\n @Output()\n goNext = new EventEmitter<void>();\n\n /**\n * @description Emits when \"Finish\" button has been clicked\n */\n @Output()\n finish = new EventEmitter<void>();\n\n /**\n * @hidden\n * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)\n */\n private readonly _destroyRef = inject(DestroyRef);\n\n /**\n * @hidden\n */\n private _visibleItems: PreparedWizardGeneratorItem[];\n\n /**\n * @description Array of visible Wizard Steps.\n */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n set visibleItems(items: PreparedWizardGeneratorItem[]) {\n this._visibleItems = items;\n }\n // eslint-disable-next-line @typescript-eslint/member-ordering\n get visibleItems(): PreparedWizardGeneratorItem[] {\n return this._visibleItems || this._wizardGeneratorService.items;\n }\n\n /** @hidden */\n // eslint-disable-next-line @typescript-eslint/member-ordering\n constructor(\n private _wizardGeneratorService: WizardGeneratorService,\n private _cd: ChangeDetectorRef\n ) {}\n\n /**\n * @hidden\n */\n _goNextFn: () => void = () => this.goNext.emit();\n\n /**\n * @hidden\n */\n _finishFn: () => void = () => 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: number): () => Promise<boolean> {\n return async () => {\n const currentStepIndex = this._wizardGeneratorService.getCurrentStepIndex();\n const isSummaryStep = this._visibleItems[currentStepIndex]?.summary === true;\n\n if (index === currentStepIndex || isSummaryStep) {\n return true;\n }\n\n if (this._visibleItems.slice(0, index).find((i) => !i.completed && !i.summary)) {\n return false;\n }\n\n return await firstValueFrom(this._wizardGeneratorService.validateStepForms(true));\n };\n }\n\n /**\n * @hidden\n */\n ngOnInit(): void {\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 /**\n * @description Callback function for status change.\n * @param id step ID.\n * @param status new step status.\n */\n stepStatusChanged(id: string, status: WizardStepStatus): void {\n this.statusChange.emit({\n id,\n status\n });\n }\n\n /** @hidden */\n stepClicked(stepId: string): void {\n const stepIndex = this._wizardGeneratorService.getStepIndex(stepId);\n this._wizardGeneratorService.setNextStepIndex(stepIndex + 1);\n }\n\n /**\n * @hidden\n * @param _index\n * @param item\n * @returns\n */\n _trackFn(_index: number, item: WizardGeneratorItem): string {\n return item.id;\n }\n}\n","@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","import { ChangeDetectionStrategy, Component, TemplateRef, ViewChild, ViewEncapsulation, inject } from '@angular/core';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { filter } from 'rxjs/operators';\n\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 { WizardDialogData } from '../../interfaces/wizard-dialog-data.interface';\nimport { WizardTitle } from '../../interfaces/wizard-title.interface';\nimport { WizardGeneratorService } from '../../wizard-generator.service';\nimport { WizardBodyComponent } from '../wizard-body/wizard-body.component';\n\n@Component({\n selector: 'fdp-dialog-wizard-generator',\n templateUrl: './dialog-wizard-generator.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [WizardGeneratorService, FormGeneratorService],\n standalone: true,\n 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 ]\n})\nexport class DialogWizardGeneratorComponent extends BaseWizardGenerator {\n /** @hidden */\n @ViewChild('defaultConfirmationDialogTemplate') defaultConfirmationDialogTemplate: TemplateRef<HTMLElement>;\n\n /**\n * @description Wizards dialog title configuration.\n */\n title: WizardTitle;\n\n /**\n * @description Confirmation message when wizard dialog close button has been clicked.\n */\n confirmationDialogText = 'Are you sure you want to discard your progress?';\n /**\n * @description Confirm button text for close confirmation dialog.\n */\n confirmationDialogCloseText = 'Confirm';\n /**\n * @description Cancel button text for close confirmation dialog.\n */\n confirmationDialogCancelText = 'Cancel';\n\n /**\n * User-defined template for \"Go Next\" button.\n */\n goNextButtonTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for \"Go Back\" button.\n */\n goBackButtonTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for \"Finish\" button.\n */\n finishButtonTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for \"Cancel\" button.\n */\n cancelButtonTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for cancellation confirmation dialog.\n */\n confirmationDialogTemplate?: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for summary step.\n */\n summaryStepTemplate?: TemplateRef<HTMLElement>;\n\n /** User-defined template for \"Review\" button */\n reviewButtonTemplate?: TemplateRef<HTMLElement>;\n\n /** @hidden */\n private readonly _messageBoxService = inject(MessageBoxService);\n\n /** @hidden */\n constructor(private _dialogRef: DialogRef<WizardDialogData>) {\n super();\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\n if (this._dialogRef.data.unifiedLayout !== undefined) {\n this.unifiedLayout = this._dialogRef.data.unifiedLayout;\n }\n\n if (this._dialogRef.data.navigationButtons !== undefined) {\n this.navigationButtons = this._dialogRef.data.navigationButtons;\n }\n\n if (this._dialogRef.data.confirmationDialogText) {\n this.confirmationDialogText = this._dialogRef.data.confirmationDialogText;\n }\n\n if (this._dialogRef.data.confirmationDialogCancelText) {\n this.confirmationDialogCancelText = this._dialogRef.data.confirmationDialogCancelText;\n }\n\n if (this._dialogRef.data.confirmationDialogCloseText) {\n this.confirmationDialogCloseText = this._dialogRef.data.confirmationDialogCloseText;\n }\n }\n\n /**\n * @description Cancels Wizard progress and closes the dialog.\n */\n cancel(): void {\n if (this._wizardGeneratorService.isStepsUntouched()) {\n this._dialogRef.dismiss();\n\n return;\n }\n\n const template = this.confirmationDialogTemplate || this.defaultConfirmationDialogTemplate;\n\n const messageBoxRef = this._messageBoxService.open(template, { responsivePadding: true });\n\n messageBoxRef.afterClosed\n .pipe(\n filter((result) => result),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this._dialogRef.dismiss();\n });\n }\n\n /**\n * @description Completes Wizard process, emits Wizard result and closes the dialog.\n */\n async finish(): Promise<void> {\n if (this.isSummaryStep) {\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this._dialogRef.close(wizardResult);\n return;\n }\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\n const wizardResult = await this._wizardGeneratorService.getWizardFormValue(true);\n this._dialogRef.close(wizardResult);\n });\n }\n\n /**\n * @hidden\n */\n _goBackFn: () => void = () => this.goBack();\n /**\n * @hidden\n */\n _goNextFn: () => Promise<void> = () => this.goNext();\n\n /**\n * @hidden\n */\n _finishFn: () => Promise<void> = () => this.finish();\n\n /**\n * @hidden\n */\n _cancelFn: () => void = () => this.cancel();\n}\n","<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","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdpWizardGeneratorFinishButton], [fdp-wizard-generator-finish-button]',\n standalone: true\n})\nexport class WizardGeneratorFinishButtonDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdpWizardGeneratorGoNextButton], [fdp-wizard-generator-go-next-button]',\n standalone: true\n})\nexport class WizardGeneratorGoNextButtonDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdpWizardGeneratorReviewButton], [fdp-wizard-generator-review-button]',\n standalone: true\n})\nexport class WizardGeneratorReviewButtonDirective {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[fdpWizardGeneratorSummaryStep], [fdp-wizard-generator-summary-step]',\n standalone: true\n})\nexport class WizardGeneratorSummaryStepDirective {}\n","import { ChangeDetectionStrategy, Component, ContentChild, TemplateRef, ViewEncapsulation } from '@angular/core';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\n\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';\n\n@Component({\n selector: 'fdp-wizard-generator',\n templateUrl: './wizard-generator.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [WizardGeneratorService, FormGeneratorService],\n standalone: true,\n imports: [WizardBodyComponent, WizardModule, RepeatDirective, SkeletonComponent]\n})\nexport class WizardGeneratorComponent extends BaseWizardGenerator {\n /**\n * User-defined template for \"Finish\" button.\n */\n @ContentChild(WizardGeneratorFinishButtonDirective, { read: TemplateRef })\n finishButtonTemplate: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for \"Go Next\" button.\n */\n @ContentChild(WizardGeneratorGoNextButtonDirective, { read: TemplateRef })\n goNextButtonTemplate: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for Summary step.\n */\n @ContentChild(WizardGeneratorSummaryStepDirective, { read: TemplateRef })\n customSummaryStepTemplate: TemplateRef<HTMLElement>;\n\n /**\n * User-defined template for \"Review\" button\n */\n @ContentChild(WizardGeneratorReviewButtonDirective, { read: TemplateRef })\n reviewButtonTemplate: TemplateRef<HTMLElement>;\n}\n","@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","import { Injectable } from '@angular/core';\n\nimport { DialogConfig, DialogRef, DialogService } from '@fundamental-ngx/core/dialog';\nimport { DialogWizardGeneratorComponent } from './components/dialog-wizard-generator/dialog-wizard-generator.component';\nimport { WizardDialogData } from './interfaces/wizard-dialog-data.interface';\nimport { WizardGeneratorFormsValue } from './interfaces/wizard-generator-forms.interface';\n\n/**\n * @description Helper service to launch Wizard in dialog with minimal user input.\n */\n@Injectable()\nexport class WizardDialogGeneratorService {\n /** @hidden */\n constructor(private _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: DialogConfig<WizardDialogData>): DialogRef<WizardDialogData, WizardGeneratorFormsValue> {\n const dialogRef = this._dialogService.open(DialogWizardGeneratorComponent, config);\n\n return dialogRef;\n }\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport {\n FORM_GENERATOR_CONFIG,\n FORM_GENERATOR_ITEM_CONFIG,\n FormGeneratorModuleConfig,\n PlatformFormGeneratorModule\n} 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';\n\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 */\n@NgModule({\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})\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: Partial<FormGeneratorModuleConfig>): ModuleWithProviders<PlatformWizardGeneratorModule> {\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}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","isFunction","i1.WizardGeneratorService","i2"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fundamental-ngx/platform",
3
- "version": "0.51.0",
3
+ "version": "0.51.1-rc.0",
4
4
  "schematics": "./schematics/collection.json",
5
5
  "description": "Fundamental Library for Angular - platform",
6
6
  "license": "Apache-2.0",
@@ -13,9 +13,9 @@
13
13
  "node": ">= 10"
14
14
  },
15
15
  "peerDependencies": {
16
- "@fundamental-ngx/cdk": "0.51.0",
17
- "@fundamental-ngx/core": "0.51.0",
18
- "@fundamental-ngx/i18n": "0.51.0"
16
+ "@fundamental-ngx/cdk": "0.51.1-rc.0",
17
+ "@fundamental-ngx/core": "0.51.1-rc.0",
18
+ "@fundamental-ngx/i18n": "0.51.1-rc.0"
19
19
  },
20
20
  "dependencies": {
21
21
  "fast-deep-equal": "3.1.3",
@@ -32,7 +32,7 @@ function callCoreSchematic(options) {
32
32
  (0, dependencies_1.addPackageJsonDependency)(tree, {
33
33
  type: dependencies_1.NodeDependencyType.Default,
34
34
  // Will be replaced with the real version during sync-version script run
35
- version: `0.51.0`,
35
+ version: `0.51.1-rc.0`,
36
36
  name: '@fundamental-ngx/core'
37
37
  });
38
38
  const installTaskId = context.addTask(new tasks_1.NodePackageInstallTask({