@fundamental-ngx/platform 0.61.2-rc.8 → 0.61.2

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.
Files changed (39) hide show
  1. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +16 -16
  2. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +3 -3
  4. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -2
  6. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-platform-form.mjs +25 -28
  8. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +9 -9
  10. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
  12. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-platform-list.mjs +23 -17
  14. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +4 -4
  16. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-platform-search-field.mjs +6 -6
  18. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +4 -4
  20. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +25 -22
  22. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  23. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +2 -3
  24. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  25. package/fesm2022/fundamental-ngx-platform-table.mjs +40 -42
  26. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +6 -6
  28. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  29. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +6 -6
  30. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  31. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +4 -4
  32. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  33. package/package.json +5 -5
  34. package/schematics/ng-add/index.js +1 -1
  35. package/types/fundamental-ngx-platform-form.d.ts +1 -3
  36. package/types/fundamental-ngx-platform-icon-tab-bar.d.ts +1 -3
  37. package/types/fundamental-ngx-platform-list.d.ts +6 -2
  38. package/types/fundamental-ngx-platform-smart-filter-bar.d.ts +3 -4
  39. package/types/fundamental-ngx-platform-table.d.ts +1 -3
@@ -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 { concat, mergeWith, uniq } from '@fundamental-ngx/cdk/utils';\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(\n structuredClone(forms[form.id]?.form.value)\n );\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 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 { LayoutGridColDirective, LayoutGridComponent, LayoutGridRowDirective } 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 imports: [\n TitleComponent,\n LayoutGridColDirective,\n LayoutGridComponent,\n LayoutGridRowDirective,\n FormLabelComponent,\n LinkComponent,\n FdTranslatePipe\n ]\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 @for (item of group.items; track item; let index = $index) {\n <div fdLayoutGridRow>\n <div [fdLayoutGridCol]=\"4\" [colMd]=\"2\" [colLg]=\"2\" [colXl]=\"2\">\n <div>\n <label fd-form-label [allowWrap]=\"true\" [alignLabelEnd]=\"true\"> {{ item.label }}: </label>\n </div>\n </div>\n <div [fdLayoutGridCol]=\"4\" [colMd]=\"5\" [colLg]=\"5\" [colXl]=\"5\">\n <div>\n <label fd-form-label [allowWrap]=\"true\">\n {{ item.value || '-' }}\n </label>\n </div>\n </div>\n @if (index === group.items.length - 1) {\n <div [fdLayoutGridCol]=\"1\" [colMd]=\"5\" [colLg]=\"5\" [colXl]=\"5\">\n <fdp-link href=\"#\" (click)=\"_editStep($event)\">\n {{ ('platformWizardGenerator.summarySectionEditStep' | fdTranslate)() }}\n </fdp-link>\n </div>\n }\n </div>\n }\n </fd-layout-grid>\n}\n","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 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 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 // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() 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\n set visibleItems(items: PreparedWizardGeneratorItem[]) {\n this._visibleItems = items;\n }\n\n get visibleItems(): PreparedWizardGeneratorItem[] {\n return this._visibleItems || this._wizardGeneratorService.items;\n }\n\n /** @hidden */\n\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 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 { range } from '@fundamental-ngx/cdk/utils';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { WizardModule } from '@fundamental-ngx/core/wizard';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\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 imports: [WizardBodyComponent, WizardModule, SkeletonComponent, FdTranslatePipe]\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 /** @hidden */\n readonly loadingRange = range(3);\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\n fd-wizard-progress-bar\n size=\"lg\"\n role=\"list\"\n [attr.aria-label]=\"('platformWizardGenerator.stepsLabel' | fdTranslate)()\"\n >\n @for (i of loadingRange; track i) {\n <li 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 }\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/**\n * @deprecated\n * Use direct imports of components and directives.\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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"}
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 { concat, mergeWith, uniq } from '@fundamental-ngx/cdk/utils';\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(\n structuredClone(forms[form.id]?.form.value)\n );\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 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 { LayoutGridColDirective, LayoutGridComponent, LayoutGridRowDirective } 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 imports: [\n TitleComponent,\n LayoutGridColDirective,\n LayoutGridComponent,\n LayoutGridRowDirective,\n FormLabelComponent,\n LinkComponent,\n FdTranslatePipe\n ]\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 @for (item of group.items; track item; let index = $index) {\n <div fdLayoutGridRow>\n <div [fdLayoutGridCol]=\"4\" [colMd]=\"2\" [colLg]=\"2\" [colXl]=\"2\">\n <div>\n <label fd-form-label [allowWrap]=\"true\" [alignLabelEnd]=\"true\"> {{ item.label }}: </label>\n </div>\n </div>\n <div [fdLayoutGridCol]=\"4\" [colMd]=\"5\" [colLg]=\"5\" [colXl]=\"5\">\n <div>\n <label fd-form-label [allowWrap]=\"true\">\n {{ item.value || '-' }}\n </label>\n </div>\n </div>\n @if (index === group.items.length - 1) {\n <div [fdLayoutGridCol]=\"1\" [colMd]=\"5\" [colLg]=\"5\" [colXl]=\"5\">\n <fdp-link href=\"#\" (click)=\"_editStep($event)\">\n {{ 'platformWizardGenerator.summarySectionEditStep' | fdTranslate }}\n </fdp-link>\n </div>\n }\n </div>\n }\n </fd-layout-grid>\n}\n","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 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 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 // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() 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\n set visibleItems(items: PreparedWizardGeneratorItem[]) {\n this._visibleItems = items;\n }\n\n get visibleItems(): PreparedWizardGeneratorItem[] {\n return this._visibleItems || this._wizardGeneratorService.items;\n }\n\n /** @hidden */\n\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 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 { range } 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 imports: [WizardBodyComponent, WizardModule, 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 /** @hidden */\n readonly loadingRange = range(3);\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 @for (i of loadingRange; track i) {\n <li 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 }\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/**\n * @deprecated\n * Use direct imports of components and directives.\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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"}