@fundamental-ngx/platform 0.63.2-rc.5 → 0.63.2-rc.6

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 (52) hide show
  1. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +47 -44
  2. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
  3. package/fesm2022/fundamental-ngx-platform-button.mjs +51 -32
  4. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  5. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +52 -49
  6. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +9 -8
  8. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-platform-form.mjs +339 -333
  10. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +159 -117
  12. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-platform-link.mjs +7 -7
  14. package/fesm2022/fundamental-ngx-platform-list.mjs +59 -59
  15. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  16. package/fesm2022/fundamental-ngx-platform-menu-button.mjs +7 -7
  17. package/fesm2022/fundamental-ngx-platform-menu.mjs +16 -15
  18. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  19. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +36 -26
  20. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  21. package/fesm2022/fundamental-ngx-platform-object-marker.mjs +7 -7
  22. package/fesm2022/fundamental-ngx-platform-object-status.mjs +11 -11
  23. package/fesm2022/fundamental-ngx-platform-object-status.mjs.map +1 -1
  24. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +7 -7
  25. package/fesm2022/fundamental-ngx-platform-panel.mjs +18 -18
  26. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-platform-search-field.mjs +107 -66
  28. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  29. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +58 -47
  30. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  31. package/fesm2022/fundamental-ngx-platform-shared.mjs +28 -28
  32. package/fesm2022/fundamental-ngx-platform-slider.mjs +7 -7
  33. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +44 -39
  34. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  35. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +9 -8
  36. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs.map +1 -1
  37. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +110 -96
  38. package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
  39. package/fesm2022/fundamental-ngx-platform-table.mjs +280 -207
  40. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  41. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +35 -32
  42. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +19 -19
  44. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs +44 -44
  45. package/fesm2022/fundamental-ngx-platform-wizard-generator.mjs.map +1 -1
  46. package/fesm2022/fundamental-ngx-platform.mjs +4 -4
  47. package/package.json +6 -5
  48. package/schematics/ng-add/index.js +1 -1
  49. package/schematics/package.json +7 -0
  50. package/schematics/tsconfig.json +12 -1
  51. package/schematics/utils/package-utils.js +34 -1
  52. package/schematics/utils/package-utils.js.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-platform-settings-generator.mjs","sources":["../../../../libs/platform/settings-generator/controls/theme-selector-list/theme-selector-list.component.ts","../../../../libs/platform/settings-generator/controls/theme-selector-list/theme-selector-list.component.html","../../../../libs/platform/settings-generator/controls/theme-selector-list/icon.html","../../../../libs/platform/settings-generator/default-config.ts","../../../../libs/platform/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.ts","../../../../libs/platform/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.html","../../../../libs/platform/settings-generator/settings-generator.service.ts","../../../../libs/platform/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.ts","../../../../libs/platform/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.html","../../../../libs/platform/settings-generator/settings-generator-content/settings-generator-content.component.ts","../../../../libs/platform/settings-generator/settings-generator-content/settings-generator-content.component.html","../../../../libs/platform/settings-generator/tokens.ts","../../../../libs/platform/settings-generator/layouts/base-settings-generator-layout.ts","../../../../libs/platform/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.ts","../../../../libs/platform/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.html","../../../../libs/platform/settings-generator/settings-generator-layout-accessor.service.ts","../../../../libs/platform/settings-generator/settings-generator.component.ts","../../../../libs/platform/settings-generator/settings-generator.component.html","../../../../libs/platform/settings-generator/settings-generator.module.ts","../../../../libs/platform/settings-generator/fundamental-ngx-platform-settings-generator.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n ViewEncapsulation,\n forwardRef,\n inject\n} from '@angular/core';\nimport { ClickedDirective } from '@fundamental-ngx/cdk/utils';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { ThemingService } from '@fundamental-ngx/core/theming';\nimport {\n BaseDynamicFormGeneratorControl,\n dynamicFormFieldProvider,\n dynamicFormGroupChildProvider\n} from '@fundamental-ngx/platform/form';\n\n@Component({\n selector: 'fdp-theme-selector-list',\n templateUrl: './theme-selector-list.component.html',\n styleUrl: './theme-selector-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider],\n imports: [ListModule, ClickedDirective, forwardRef(() => ThemeSelectorListIconComponent), NgTemplateOutlet]\n})\nexport class ThemeSelectorListComponent extends BaseDynamicFormGeneratorControl implements OnInit {\n /** @hidden */\n currentTheme: string;\n\n /** @hidden */\n private readonly _themingService = inject(ThemingService, {\n optional: true\n });\n\n /** @hidden */\n ngOnInit(): void {\n this.currentTheme = this.formItem.default;\n }\n\n /** @hidden */\n setTheme(value: string): void {\n const control = this.form.get([this.formGroupName, this.name]);\n this.currentTheme = value;\n control?.setValue(value);\n this._themingService?.setTheme(value);\n }\n}\n\n@Component({\n selector: 'fdp-theme-selector-list-icon',\n templateUrl: './icon.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThemeSelectorListIconComponent {\n /** @hidden */\n @Input()\n size = 40;\n}\n","<ul fd-list [byline]=\"true\">\n @for (item of formItem.choices; track item) {\n <li fd-list-item [selected]=\"currentTheme === item.value\">\n <a fd-list-link (fdkClicked)=\"setTheme(item.value)\">\n @if (!item.template) {\n <div fd-list-thumbnail class=\"settings-selector-list__theme--{{ item.value }}\">\n <fdp-theme-selector-list-icon></fdp-theme-selector-list-icon>\n </div>\n <div fd-list-content>\n <div fd-list-title>{{ item.label }}</div>\n <div fd-list-byline>{{ item.description }}</div>\n </div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"item.template!\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n }\n </a>\n </li>\n }\n</ul>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\" [style.width.px]=\"size\" [style.height.px]=\"size\">\n <defs>\n <style>\n .settings-selector-list-icon__cls-1 {\n fill: #1c2228;\n }\n\n .settings-selector-list-icon__cls-2 {\n fill: #424f5e;\n }\n\n .settings-selector-list-icon__cls-3 {\n fill: #29313a;\n }\n\n .settings-selector-list-icon__cls-4 {\n fill: #3a4552;\n }\n\n .settings-selector-list-icon__cls-5 {\n fill: #91c8f6;\n }\n\n .settings-selector-list-icon__cls-6 {\n fill: #d3d7d9;\n }\n\n .settings-selector-list-icon__cls-7 {\n fill: #354a5f;\n }\n\n .settings-selector-list-icon__cls-8 {\n fill: #7996b4;\n }\n\n .settings-selector-list-icon__cls-9 {\n fill: #fff;\n }\n </style>\n </defs>\n <rect class=\"settings-selector-list-icon__cls-1\" y=\"88\" width=\"200\" height=\"112\" />\n <path class=\"settings-selector-list-icon__cls-2\" d=\"M200,105v95H59V110a5,5,0,0,1,5-5Z\" />\n <path class=\"settings-selector-list-icon__cls-3\" d=\"M64,106H200v94H60V110A4,4,0,0,1,64,106Z\" />\n <rect class=\"settings-selector-list-icon__cls-3\" y=\"44\" width=\"200\" height=\"44\" />\n <rect class=\"settings-selector-list-icon__cls-4\" y=\"87\" width=\"200\" height=\"1\" />\n <path\n class=\"settings-selector-list-icon__cls-5\"\n d=\"M64,63h46a5,5,0,0,1,5,5h0a5,5,0,0,1-5,5H64a5,5,0,0,1-5-5h0A5,5,0,0,1,64,63Z\"\n />\n <path class=\"settings-selector-list-icon__cls-6\" d=\"M153,63h47V73H153a5,5,0,0,1-5-5h0A5,5,0,0,1,153,63Z\" />\n <path class=\"settings-selector-list-icon__cls-5\" d=\"M62,85h50a3,3,0,0,1,3,3H59A3,3,0,0,1,62,85Z\" />\n <rect class=\"settings-selector-list-icon__cls-7\" width=\"200\" height=\"44\" />\n <path\n class=\"settings-selector-list-icon__cls-8\"\n d=\"M68.459,13a1,1,0,0,1,.714,1.707l-16.155,16A1.01,1.01,0,0,1,52.3,31H33.539a1,1,0,0,1-1.01-.99V14a1,1,0,0,1,1-1h34.93m0-3H33.539A4.024,4.024,0,0,0,29.5,14V30a4.024,4.024,0,0,0,4.039,4H52.3a4.033,4.033,0,0,0,2.857-1.172l16.154-16a3.961,3.961,0,0,0,.876-4.359A4.027,4.027,0,0,0,68.459,10Z\"\n />\n <rect class=\"settings-selector-list-icon__cls-9\" x=\"82.121\" y=\"16.949\" width=\"75.758\" height=\"10.101\" rx=\"5\" />\n <path class=\"settings-selector-list-icon__cls-9\" d=\"M170,18h30v8H170a4,4,0,0,1-4-4h0A4,4,0,0,1,170,18Z\" />\n</svg>\n","import { SidebarSettingsGeneratorConfig } from './models/settings-config.model';\n\nexport const FDP_SETTINGS_GENERATOR_DEFAULT_CONFIG: SidebarSettingsGeneratorConfig = {\n defaultLayout: 'sidebar',\n sidebar: {\n mobileBreakpoint: 700,\n width: '20rem'\n }\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { isSubscribable, merge } from '@fundamental-ngx/cdk/utils';\nimport { AvatarComponent } from '@fundamental-ngx/core/avatar';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { ListAvatarConfig, ListIconConfig } from '@fundamental-ngx/platform/list';\nimport { Observable } from 'rxjs';\nimport { ThumbnailSettingsItem } from '../../../models/settings.model';\n\n@Component({\n selector: 'fdp-settings-generator-sidebar-icon',\n templateUrl: './settings-generator-sidebar-icon.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkeletonComponent, IconComponent, AvatarComponent]\n})\nexport class SettingsGeneratorSidebarIconComponent {\n /** Thumbnail configuration. */\n @Input()\n set thumbnail(value: ThumbnailSettingsItem) {\n this._thumbnail = value;\n if (this.thumbnail.avatar) {\n this._transformAvatarConfig(this.thumbnail.avatar);\n }\n\n if (this.thumbnail.icon) {\n this._transformIconConfig(this.thumbnail.icon);\n }\n }\n\n get thumbnail(): ThumbnailSettingsItem {\n return this._thumbnail;\n }\n\n /** @hidden */\n _avatarConfig: ListAvatarConfig | undefined;\n\n /** @hidden */\n _iconConfig: ListIconConfig | undefined;\n\n /** @hidden */\n private _thumbnail: ThumbnailSettingsItem;\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private _transformAvatarConfig(\n config$: Partial<ListAvatarConfig> | string | Observable<Partial<ListAvatarConfig> | string>\n ): void {\n this._getConfigFromObservable(config$, (parsedConfig) => {\n const avatarConfig = typeof parsedConfig === 'string' ? { image: parsedConfig } : parsedConfig;\n this._avatarConfig = merge(new ListAvatarConfig(), avatarConfig);\n this._cdr.detectChanges();\n });\n }\n\n /** @Hidden */\n private _transformIconConfig(\n config$: Partial<ListIconConfig> | string | Observable<Partial<ListIconConfig> | string>\n ): void {\n this._getConfigFromObservable(config$, (parsedConfig) => {\n const iconConfig = typeof parsedConfig === 'string' ? { glyph: parsedConfig } : parsedConfig;\n this._iconConfig = merge(new ListIconConfig(), iconConfig);\n this._cdr.detectChanges();\n });\n }\n\n /** @hidden */\n private _getConfigFromObservable<T>(config: T | Observable<T>, callback: (config: T) => void): void {\n if (isSubscribable(config)) {\n config.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((_config) => {\n callback(_config);\n });\n\n return;\n }\n\n callback(config);\n }\n}\n","@if (!_iconConfig && !_avatarConfig) {\n <fd-skeleton type=\"rectangle\" width=\"48px\" height=\"48px\"></fd-skeleton>\n} @else {\n @if (_iconConfig && _iconConfig.glyph) {\n <fd-icon [glyph]=\"_iconConfig.glyph\" [ariaLabel]=\"_iconConfig.ariaLabel\" [font]=\"_iconConfig.font\"></fd-icon>\n }\n @if (\n _avatarConfig && (_avatarConfig.image || _avatarConfig.glyph || _avatarConfig.zoomGlyph || _avatarConfig.label)\n ) {\n <fd-avatar\n [size]=\"_avatarConfig.size\"\n [glyph]=\"_avatarConfig.glyph\"\n [zoomGlyph]=\"_avatarConfig.zoomGlyph\"\n [label]=\"_avatarConfig.label\"\n [circle]=\"_avatarConfig.circle\"\n [placeholder]=\"_avatarConfig.placeholder\"\n [tile]=\"_avatarConfig.tile\"\n [colorAccent]=\"_avatarConfig.colorAccent\"\n [image]=\"_avatarConfig.image\"\n [transparent]=\"_avatarConfig.transparent\"\n [random]=\"_avatarConfig.random\"\n [class]=\"'fd-list__icon ' + _avatarConfig.class\"\n [ariaLabel]=\"_avatarConfig.ariaLabel\"\n [ariaLabelledby]=\"_avatarConfig.ariaLabelledby\"\n [contain]=\"_avatarConfig.contain\"\n [border]=\"_avatarConfig.border\"\n [alterIcon]=\"_avatarConfig.alterIcon\"\n [backupImage]=\"_avatarConfig.backupImage\"\n [clickable]=\"_avatarConfig.clickable\"\n [attr.alt]=\"_avatarConfig.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n}\n","import { DestroyRef, ElementRef, Injectable, OnDestroy, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable, set } from '@fundamental-ngx/cdk/utils';\nimport { DynamicFormValue, FormGeneratorComponent } from '@fundamental-ngx/platform/form';\nimport { MessagePopoverFormWrapperComponent } from '@fundamental-ngx/platform/message-popover';\nimport { BehaviorSubject, Observable, Subject, combineLatest, delay, filter, map, switchMap, take, tap } from 'rxjs';\nimport { SettingsModel } from './models/settings.model';\n\nexport type SettingsGeneratorReturnValue = Record<string, unknown>;\n\n@Injectable()\nexport class SettingsGeneratorService implements OnDestroy {\n /**\n * Settings configuration subject.\n */\n readonly settings = new BehaviorSubject<Nullable<SettingsModel>>(null);\n\n /**\n * Stream emitted when user clicked on message popover error entry.\n */\n readonly onItemFocus = new Subject<{ path: string; element: ElementRef<HTMLElement> }>();\n\n /**\n * Stream emitted when mobile state has been changed.\n */\n readonly mobileState$ = new BehaviorSubject<boolean>(false);\n\n /**\n * @hidden\n * Form generators collected from all items and groups.\n */\n private readonly _formGenerators = new Map<string, FormGeneratorComponent>();\n\n /** @hidden */\n private readonly _messagePopover = inject(MessagePopoverFormWrapperComponent, {\n optional: true\n });\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor() {\n this._listenToMessagePopoverItemClick();\n }\n\n /** @hidden */\n _addFormGenerator(path: string[], formGenerator: FormGeneratorComponent): void {\n const joinedPath = path.join('.');\n this._formGenerators.set(joinedPath, formGenerator);\n formGenerator.loading$\n .pipe(\n filter((loading) => !loading),\n take(1),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this._messagePopover?.addForms(formGenerator.formGroup);\n this._messagePopover?.addFormFields(formGenerator.formFields);\n });\n }\n\n /** @hidden */\n _removeFormGenerator(path: string[]): void {\n const joinedPath = path.join('.');\n this._formGenerators.delete(joinedPath);\n }\n\n /**\n * Submits registered forms and emits result if submission status was successful (no errors).\n */\n submit(): Observable<SettingsGeneratorReturnValue> {\n const joinedEvents: Record<string, Observable<DynamicFormValue>> = {};\n this._formGenerators.forEach((formGenerator, key) => {\n joinedEvents[key] = formGenerator.loading$.pipe(\n filter((result) => !result),\n delay(50),\n tap(() => formGenerator.submit()),\n switchMap(() => formGenerator.formSubmittedStatus$),\n filter((status) => status.success),\n take(1),\n map((result) => result.value as DynamicFormValue),\n takeUntilDestroyed(this._destroyRef)\n );\n });\n\n return combineLatest(joinedEvents).pipe(\n map((result) => Object.entries(result).reduce((a, b) => set(a, b[0], b[1]), {})),\n take(1),\n takeUntilDestroyed(this._destroyRef)\n );\n }\n\n /**\n * Sets mobile state.\n * @param isMobile Whether mobile state should be applied.\n */\n setMobileState(isMobile: boolean): void {\n this.mobileState$.next(isMobile);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._formGenerators.clear();\n }\n\n /**\n * @hidden\n * Subscribes to click events from message popover and tries to open the section where invalid input is located.\n */\n private _listenToMessagePopoverItemClick(): void {\n this._messagePopover?.messagePopover$\n ?.pipe(\n switchMap((messagePopover) => messagePopover.focusItem),\n filter((entry) => !!entry.formField),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((entry) => {\n this._formGenerators.forEach((formGenerator, path) => {\n const formFields = formGenerator.formFields;\n // We already filtered entries with present form field.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n if (formFields.includes(entry.formField!)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.onItemFocus.next({ path, element: entry.formField!.elementRef });\n return false;\n }\n });\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { AsyncOrSyncPipe, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { DynamicFormItem, FormGeneratorComponent } from '@fundamental-ngx/platform/form';\nimport {\n FormSettingsItem,\n SettingsFormTab,\n SettingsItem,\n SettingsTemplateTab,\n TemplateSettingsItem\n} from '../../models/settings.model';\nimport { SettingsGeneratorService } from '../../settings-generator.service';\n\nexport type SettingsSectionItemsModel = SettingsTemplateTab | SettingsFormTab | SettingsItem;\n\n@Component({\n selector: 'fdp-settings-generator-section',\n templateUrl: './settings-generator-section.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormGeneratorComponent, NgTemplateOutlet, AsyncOrSyncPipe]\n})\nexport class SettingsGeneratorSectionComponent {\n /**\n * Group name. Used to define full path of the inner form.\n */\n @Input()\n groupName: Nullable<string>;\n\n /**\n * Section items.\n * @param value {Nullable<SettingsSectionItemsModel>} Can be either a template Ref, or Form generator items.\n */\n @Input()\n set items(value: Nullable<SettingsSectionItemsModel>) {\n this._items = value;\n\n if (this._isTemplateLayout(value)) {\n this._renderer = 'template';\n this._templateRef = value.template;\n } else {\n this._renderer = 'form';\n this._formItems = value?.items || [];\n }\n }\n\n get items(): Nullable<SettingsSectionItemsModel> {\n return this._items;\n }\n\n /** @hidden */\n _renderer: 'form' | 'template' = 'form';\n\n /** @hidden */\n _templateRef: TemplateRef<any> | null = null;\n\n /** @hidden */\n _formItems: DynamicFormItem[] = [];\n\n /** @hidden */\n private readonly _settingsGeneratorService = inject(SettingsGeneratorService);\n\n /** @hidden */\n private _items: Nullable<SettingsSectionItemsModel>;\n\n /** @hidden */\n @ViewChild(FormGeneratorComponent)\n private set _formGeneratorCmp(component: FormGeneratorComponent | undefined) {\n if (!this.items) {\n return;\n }\n\n const config = this.items as SettingsFormTab | FormSettingsItem;\n\n const path = [this.groupName, config.id].filter((v) => !!v) as string[];\n\n if (component) {\n this._settingsGeneratorService._addFormGenerator(path, component);\n } else {\n this._settingsGeneratorService._removeFormGenerator(path);\n }\n }\n\n /** @hidden */\n _isTemplateLayout(settings: any): settings is TemplateSettingsItem {\n return !!settings?.template;\n }\n}\n","@if (_renderer === 'form') {\n <fdp-form-generator\n [noAdditionalContent]=\"true\"\n [mainTitle]=\"items?.title | fdkAsyncOrSync\"\n [hideMainTItle]=\"true\"\n [formItems]=\"_formItems\"\n [unifiedLayout]=\"false\"\n ></fdp-form-generator>\n}\n@if (_renderer === 'template' && items?.template) {\n <ng-template [ngTemplateOutlet]=\"_templateRef\"></ng-template>\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n QueryList,\n Signal,\n ViewChildren,\n ViewEncapsulation,\n computed,\n input,\n signal\n} from '@angular/core';\nimport { AsyncOrSyncPipe, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { TabPanelComponent } from '@fundamental-ngx/core/tabs';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { IconTabBarComponent, IconTabBarItem, TabConfig } from '@fundamental-ngx/platform/icon-tab-bar';\nimport {\n GroupedFormSettingsItem,\n GroupedTemplateSettingsItem,\n SettingsFormTab,\n SettingsItem,\n SettingsTemplateTab,\n TemplateSettingsItem\n} from '../models/settings.model';\nimport { SettingsGeneratorSectionComponent } from './settings-generator-section/settings-generator-section.component';\n\n@Component({\n selector: 'fdp-settings-generator-content',\n templateUrl: './settings-generator-content.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TitleComponent,\n ButtonComponent,\n SkeletonComponent,\n SettingsGeneratorSectionComponent,\n NgTemplateOutlet,\n AsyncOrSyncPipe,\n IconTabBarComponent,\n FdTranslatePipe\n ]\n})\nexport class SettingsGeneratorContentComponent {\n /** @hidden */\n @Input()\n set settings(value: Nullable<SettingsItem>) {\n this._settings$.set(value);\n }\n\n get settings(): Nullable<SettingsItem> {\n return this._settings$();\n }\n\n /** Whether to render content component in mobile view. */\n @Input()\n mobile = false;\n\n /** Event emits when user needs to be moved back to navigation screen. */\n @Output()\n goBack = new EventEmitter<void>();\n\n /** @hidden */\n @HostBinding('class')\n protected readonly _initialClass = 'fdp-settings-generator__content-section';\n\n /** @hidden */\n @ViewChildren(TabPanelComponent)\n private readonly _tabPanels: QueryList<TabPanelComponent>;\n\n /** Optional alternative text for the settings generator dialog back button. */\n backButtonLabel = input<string>();\n\n /** @hidden */\n _id: Nullable<string>;\n\n /** @hidden */\n _renderer$ = computed<'form' | 'template'>(() => (this.isTemplateLayout(this._settings$()) ? 'template' : 'form'));\n\n /** @hidden */\n _contentLayout$ = computed<'form' | 'tabs'>(() => (this.isGroupedSettings(this._settings$()) ? 'tabs' : 'form'));\n\n /** @hidden */\n _groups$: Signal<(SettingsTemplateTab | SettingsFormTab)[]> = computed(() => {\n const settings = this._settings$();\n return this.isGroupedSettings(settings) ? settings.groups : [];\n });\n\n /** @hidden */\n _tabs$: Signal<TabConfig[]> = computed(() =>\n this._groups$().map<TabConfig>((group, index) => ({\n label: group.title,\n active: index === this._activeTab$()\n }))\n );\n\n /** @hidden */\n _index: number;\n\n /** @hidden */\n readonly _activeTab$ = signal(0);\n\n /** @hidden */\n readonly _settings$ = signal<Nullable<SettingsItem>>(null);\n\n /** @hidden */\n private _settings: Nullable<SettingsItem>;\n\n /** @hidden */\n isTemplateLayout(settings: Nullable<SettingsItem>): settings is TemplateSettingsItem {\n return !!settings?.template;\n }\n\n /** @hidden */\n isGroupedSettings(settings: any): settings is GroupedFormSettingsItem | GroupedTemplateSettingsItem {\n return settings?.groups?.length > 0;\n }\n\n /** @hidden */\n changeTab(item: IconTabBarItem): void {\n this._activeTab$.set(item.index);\n }\n\n /**\n * Activates tab by group ID.\n * @param id ID of the group.\n */\n setActiveTab(id: string): void {\n if (!this.isGroupedSettings(this._settings)) {\n return;\n }\n this._tabPanels?.forEach((tab, index) => {\n const group = this._groups$()[index];\n\n if (group.id === id) {\n tab.open(true);\n return false;\n }\n });\n }\n}\n","<div\n fd-title\n [wrap]=\"!!settings?.wrapSectionTitle\"\n role=\"heading\"\n class=\"fd-title--h5 fdp-settings-generator__title\"\n [attr.aria-level]=\"settings?.sectionTitleHeadingLevel || 5\"\n>\n @if (mobile) {\n <button\n [attr.title]=\"backButtonLabel() || ('platformSettingsGenerator.backButtonLabel' | fdTranslate)()\"\n [attr.aria-label]=\"backButtonLabel() || ('platformSettingsGenerator.backButtonLabel' | fdTranslate)()\"\n fd-button\n glyph=\"navigation-left-arrow\"\n fdType=\"transparent\"\n (click)=\"goBack.emit()\"\n ></button>\n }\n @if (settings?.title | fdkAsyncOrSync; as settingsTitle) {\n {{ settingsTitle }}\n } @else {\n <fd-skeleton height=\"40px\" type=\"rectangle\" width=\"40%\" textLines=\"1\" [style.margin]=\"'auto 0'\"></fd-skeleton>\n }\n</div>\n<ng-template #tabbedLayout>\n <fdp-icon-tab-bar\n class=\"fdp-settings-generator__tabs-container\"\n [tabsConfig]=\"_tabs$()\"\n (iconTabSelected)=\"changeTab($event)\"\n ></fdp-icon-tab-bar>\n @for (group of _groups$(); track group) {\n <div [attr.hidden]=\"$index === _activeTab$() ? null : true\" class=\"fdp-settings-generator__content-container\">\n <fdp-settings-generator-section\n [groupName]=\"$any(settings).id\"\n [items]=\"group\"\n ></fdp-settings-generator-section>\n </div>\n }\n</ng-template>\n<ng-template #formLayout>\n <fdp-settings-generator-section [items]=\"settings!\"></fdp-settings-generator-section>\n</ng-template>\n<ng-template [ngTemplateOutlet]=\"_contentLayout$() === 'tabs' ? tabbedLayout : formLayout\"></ng-template>\n","import { InjectionToken } from '@angular/core';\nimport { SettingsConfig } from './models/settings-config.model';\nimport { SettingsGenerator } from './models/settings-generator.model';\n\nexport const FDP_SETTINGS_GENERATOR_CONFIG = new InjectionToken<SettingsConfig>('FdpSettingsGeneratorConfig');\nexport const FDP_SETTINGS_GENERATOR = new InjectionToken<SettingsGenerator>('FdpSettingsGenerator');\n","import { ChangeDetectorRef, DestroyRef, Directive, ElementRef, inject, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { SettingsModel } from '../models/settings.model';\nimport { SettingsGeneratorService } from '../settings-generator.service';\nimport { FDP_SETTINGS_GENERATOR } from '../tokens';\n\n@Directive()\nexport abstract class BaseSettingsGeneratorLayout implements OnInit {\n /**\n * Subject to notify subscriptions to unsubscribe when component destroys.\n */\n protected abstract _destroyRef: DestroyRef;\n\n /**\n * Method for focusing inner form control.\n * It is responsible for activating the section and placing focus on the element.\n * @param path path of the control joined by dot(.). Usually represents section ID and inner group ID.\n * @param element ElementRef of native element to focus.\n */\n abstract focusElementByPath(path: string, element: ElementRef<HTMLElement>): void;\n\n /**\n * Settings schema.\n */\n settings: Nullable<SettingsModel>;\n\n /**\n * Settings generator service.\n */\n protected readonly _settingsGeneratorService = inject(SettingsGeneratorService);\n\n /**\n * Change detector ref.\n */\n protected readonly _cdr = inject(ChangeDetectorRef);\n\n /**\n * Settings generator component ref.\n */\n protected _settingsGenerator = inject(FDP_SETTINGS_GENERATOR);\n\n /** @hidden */\n ngOnInit(): void {\n this._settingsGeneratorService.settings.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((settings) => {\n this.settings = settings;\n this._cdr.detectChanges();\n });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n HostBinding,\n inject,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { AsyncOrSyncPipe, Nullable, resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { debounceTime, distinctUntilChanged, startWith } from 'rxjs';\nimport { SidebarSettingsGeneratorConfig } from '../../models/settings-config.model';\nimport {\n FormSettingsItem,\n GroupedFormSettingsItem,\n SettingsItem,\n SidebarSettingsModel,\n SidebarWidthConfiguration\n} from '../../models/settings.model';\nimport { SettingsGeneratorContentComponent } from '../../settings-generator-content/settings-generator-content.component';\nimport { FDP_SETTINGS_GENERATOR_CONFIG } from '../../tokens';\nimport { BaseSettingsGeneratorLayout } from '../base-settings-generator-layout';\nimport { SettingsGeneratorSidebarIconComponent } from './settings-generator-sidebar-icon/settings-generator-sidebar-icon.component';\n\n@Component({\n selector: 'fdp-settings-generator-sidebar-layout',\n templateUrl: './settings-generator-sidebar-layout.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n ListModule,\n SettingsGeneratorSidebarIconComponent,\n SkeletonComponent,\n SettingsGeneratorContentComponent,\n AsyncOrSyncPipe,\n TitleComponent,\n FdTranslatePipe,\n FormsModule\n ]\n})\nexport class SettingsGeneratorSidebarLayoutComponent\n extends BaseSettingsGeneratorLayout\n implements OnInit, AfterViewInit\n{\n /** @hidden */\n @HostBinding('class.fdp-settings-generator__sidebar-layout--mobile')\n _isMobile: boolean;\n\n /** @hidden */\n @HostBinding('class')\n protected readonly _initialClass = 'fdp-settings-generator__sidebar-layout';\n\n /** @hidden */\n @ViewChild('settingsGeneratorContent')\n private readonly _settingsGeneratorContent: SettingsGeneratorContentComponent;\n\n /** @hidden */\n @ViewChild('listElement', { read: ElementRef })\n private _listElement: ElementRef;\n\n /** @hidden */\n searchTerm: string;\n\n /**\n * Selected settings section.\n */\n _selectedIndex = -1;\n /** @hidden */\n _sidebarWidth: SidebarWidthConfiguration;\n\n /** @hidden */\n protected readonly sidebarTitle = computed(() => {\n const settings = this.settings;\n if (this._isSidebarSettings(settings) && settings.sidebarTitle) {\n return settings.sidebarTitle;\n }\n return null;\n });\n\n /** @hidden */\n protected readonly headingLevel = computed(() => {\n const settings = this.settings;\n if (this._isSidebarSettings(settings) && settings.sidebarTitleHeadingLevel) {\n return settings.sidebarTitleHeadingLevel;\n }\n return 5; // Default to h5\n });\n\n /** @hidden */\n protected _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _config = inject<SidebarSettingsGeneratorConfig>(FDP_SETTINGS_GENERATOR_CONFIG);\n\n /** @hidden */\n private _sidebarVisible = true;\n\n /** @hidden */\n private _initialSelectedItemSet = false;\n\n /** @hidden */\n get _mobileSidebarVisible(): boolean {\n return this._isMobile && this._sidebarVisible;\n }\n\n /** @hidden */\n constructor() {\n super();\n this._sidebarWidth = this._getNormalizedSidebarWidth(this._config.sidebar?.width);\n }\n\n /** @hidden */\n ngOnInit(): void {\n super.ngOnInit();\n this._settingsGeneratorService.settings.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((settings) => {\n if (this._isSidebarSettings(settings) && settings.sidebarWidth) {\n this._sidebarWidth = this._getNormalizedSidebarWidth(settings.sidebarWidth);\n this._cdr.detectChanges();\n }\n });\n }\n\n /** @hidden */\n focusElementByPath(path: string, element: ElementRef<HTMLElement>): void {\n const pathArray = path.split('.');\n // We are interested only in sections with ID.\n const sectionIndex =\n this.settings?.items.findIndex((section) => {\n if (!this._isFormGeneratorSection(section)) {\n return;\n }\n return section.id === pathArray[0];\n }) ?? -1;\n\n // Focus on section.\n if (sectionIndex > -1) {\n this._setSelectedIndex(sectionIndex);\n }\n\n // Currently we support only 2 level nesting of form groups.\n if (pathArray.length > 0) {\n this._settingsGeneratorContent.setActiveTab(pathArray[1]);\n }\n\n setTimeout(() => {\n element.nativeElement.focus();\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this._settingsGenerator.elementRef.nativeElement && this._config.sidebar?.mobileBreakpoint) {\n resizeObservable(this._settingsGenerator.elementRef.nativeElement)\n .pipe(startWith(null), debounceTime(30), distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n const { width } = this._settingsGenerator.elementRef.nativeElement.getBoundingClientRect();\n\n const isMobile = width <= this._config.sidebar.mobileBreakpoint;\n\n if (this._isMobile === isMobile) {\n return;\n }\n\n this._settingsGeneratorService.setMobileState(isMobile);\n this._isMobile = isMobile;\n\n // User opened section previously, so focus on that section\n if (this._isMobile && this._selectedIndex >= 0) {\n this._sidebarVisible = false;\n }\n\n // In mobile view, we don't need to set initial index, since the section won't be visible to the end user.\n if (!this._initialSelectedItemSet && !this._isMobile) {\n this._setSelectedIndex(this._selectedIndex > -1 ? this._selectedIndex : 0);\n this._initialSelectedItemSet = true;\n }\n\n if (!this._isMobile && this._selectedIndex === -1) {\n this._setSelectedIndex(0);\n }\n\n this._cdr.detectChanges();\n });\n }\n }\n\n /** @hidden */\n _displaySettingsSearchInput(): boolean {\n const listEl = this._listElement;\n if (!listEl) {\n return false;\n } else {\n return !!this.searchTerm || listEl.nativeElement.scrollHeight > listEl.nativeElement.clientHeight;\n }\n }\n\n /** @hidden */\n _setSelectedIndex(index: number): void {\n this._selectedIndex = index;\n this._sidebarVisible = index === -1;\n this._cdr.detectChanges();\n }\n\n /** @Hidden */\n _goBack(): void {\n this._setSelectedIndex(-1);\n }\n\n /** @hidden */\n private _getNormalizedSidebarWidth(width: string | SidebarWidthConfiguration): SidebarWidthConfiguration {\n return typeof width === 'string' ? { minWidth: width, maxWidth: width, width } : width;\n }\n\n /** @hidden */\n private _isSidebarSettings(settings: Nullable<any>): settings is SidebarSettingsModel<any> {\n return settings?.appearance === 'sidebar';\n }\n\n /** @hidden */\n private _isFormGeneratorSection(section: SettingsItem): section is FormSettingsItem | GroupedFormSettingsItem {\n return !!(section as any).id;\n }\n}\n","<div\n class=\"fdp-settings-generator__sidebar\"\n [class.fdp-settings-generator__sidebar--hidden]=\"!_mobileSidebarVisible\"\n [style.width]=\"_mobileSidebarVisible ? null : _sidebarWidth.width\"\n [style.min-width]=\"_mobileSidebarVisible ? null : _sidebarWidth.minWidth\"\n [style.max-width]=\"_mobileSidebarVisible ? null : _sidebarWidth.maxWidth\"\n>\n <div class=\"fdp-settings-generator__search-header\">\n <div\n fd-title\n role=\"heading\"\n [attr.aria-level]=\"headingLevel()\"\n class=\"fdp-settings-generator__title fd-title--h5\"\n >\n {{ sidebarTitle() ?? ('platformSettingsGenerator.settingsLabel' | fdTranslate)() }}\n </div>\n\n <!-- TODO: implement search input\n @if (_displaySettingsSearchInput()) {\n <fd-input-group\n type=\"search\"\n glyph=\"search\"\n [glyphAriaLabel]=\"('platformSettingsGenerator.searchLabel' | fdTranslate)()\"\n [attr.placeholder]=\"('platformSettingsGenerator.searchLabel' | fdTranslate)()\"\n [button]=\"true\"\n [disabled]=\"false\"\n [(ngModel)]=\"searchTerm\"\n class=\"fdp-settings-generator__search-input\"\n >\n </fd-input-group>\n }\n -->\n </div>\n <div class=\"fdp-settings-generator__list-container\" #listElement>\n <ul fd-list [byline]=\"true\" [navigationIndicator]=\"true\">\n @for (item of settings?.items; track item; let i = $index) {\n <li (click)=\"_setSelectedIndex(i)\" fd-list-item [selected]=\"i === _selectedIndex\" [id]=\"item.id\">\n <a fd-list-link [navigated]=\"i === _selectedIndex\" [navigationIndicator]=\"_isMobile\">\n @if (item.thumbnail) {\n <span fd-list-thumbnail>\n <fdp-settings-generator-sidebar-icon\n [thumbnail]=\"item.thumbnail\"\n ></fdp-settings-generator-sidebar-icon>\n </span>\n }\n <div fd-list-content>\n @if (item.title | fdkAsyncOrSync; as titleValue) {\n <div fd-list-title [wrap]=\"!!_sidebarWidth.wrapSidebarTitle\">{{ titleValue }}</div>\n } @else {\n <div fd-list-title>\n <fd-skeleton\n height=\"16px\"\n type=\"rectangle\"\n width=\"40%\"\n textLines=\"1\"\n [style.margin]=\"'auto 0'\"\n ></fd-skeleton>\n </div>\n }\n @if (item.description) {\n <div fd-list-byline [wrap]=\"!!_sidebarWidth.wrapSidebarDescription\">\n @if (item.description | fdkAsyncOrSync; as descriptionValue) {\n {{ descriptionValue }}\n } @else {\n <fd-skeleton\n type=\"text\"\n width=\"60%\"\n textLines=\"1\"\n [style.margin]=\"'auto 0'\"\n ></fd-skeleton>\n }\n </div>\n }\n </div>\n </a>\n </li>\n }\n </ul>\n </div>\n</div>\n<div\n class=\"fdp-settings-generator__content\"\n [class.fdp-settings-generator__content--hidden]=\"_mobileSidebarVisible\"\n [style.width]=\"_mobileSidebarVisible ? null : 'calc(100% - ' + _sidebarWidth.width + ')'\"\n [style.min-width]=\"_mobileSidebarVisible ? null : 'calc(100% - ' + _sidebarWidth.minWidth + ')'\"\n [style.max-width]=\"_mobileSidebarVisible ? null : 'calc(100% - ' + _sidebarWidth.maxWidth + ')'\"\n>\n @for (item of settings?.items; track item; let i = $index) {\n <fdp-settings-generator-content\n [attr.hidden]=\"i !== _selectedIndex ? true : null\"\n [settings]=\"item\"\n [mobile]=\"_isMobile\"\n (goBack)=\"_goBack()\"\n #settingsGeneratorContent\n ></fdp-settings-generator-content>\n }\n</div>\n","import { Injectable, Type } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BaseSettingsGeneratorLayout } from './layouts/base-settings-generator-layout';\n\n/**\n * Service, used as a registry of the available layouts for Settings Generator Component.\n */\n@Injectable()\nexport class SettingsGeneratorLayoutAccessorService {\n /** @hidden */\n private readonly _layouts = new Map<string, Type<BaseSettingsGeneratorLayout>>();\n\n /**\n * Adds custom layout component to layouts registry for later usage with Settings Generator component.\n * @param layoutName Name of the Layout\n * @param layoutComponent Component type to be used for defined layout.\n */\n addLayout(layoutName: string, layoutComponent: Type<BaseSettingsGeneratorLayout>): void {\n this._layouts.set(layoutName, layoutComponent);\n }\n\n /**\n * Gets Component type for defined layout.\n * @param layoutName\n */\n getLayout(layoutName: string): Nullable<Type<BaseSettingsGeneratorLayout>> {\n return this._layouts.get(layoutName);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n DestroyRef,\n ElementRef,\n HostBinding,\n Inject,\n inject,\n Injector,\n input,\n Input,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HasElementRef, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { BehaviorSubject, filter, Observable, Subscription } from 'rxjs';\nimport { ThemeSelectorListComponent } from './controls/theme-selector-list/theme-selector-list.component';\nimport { BaseSettingsGeneratorLayout } from './layouts/base-settings-generator-layout';\nimport { SettingsGeneratorSidebarLayoutComponent } from './layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component';\nimport { SettingsConfig } from './models/settings-config.model';\nimport { SettingsGenerator } from './models/settings-generator.model';\nimport { SettingsModel } from './models/settings.model';\nimport { SettingsGeneratorLayoutAccessorService } from './settings-generator-layout-accessor.service';\nimport { SettingsGeneratorReturnValue, SettingsGeneratorService } from './settings-generator.service';\nimport { FDP_SETTINGS_GENERATOR, FDP_SETTINGS_GENERATOR_CONFIG } from './tokens';\n\n@Component({\n selector: 'fdp-settings-generator',\n templateUrl: './settings-generator.component.html',\n styleUrl: './settings-generator.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SettingsGeneratorService,\n {\n provide: FDP_SETTINGS_GENERATOR,\n useExisting: SettingsGeneratorComponent\n }\n ],\n standalone: true,\n host: {\n '[style.width]': 'width()',\n '[style.height]': 'height()'\n }\n})\nexport class SettingsGeneratorComponent implements SettingsGenerator, AfterViewInit, OnDestroy, HasElementRef {\n /** @hidden */\n @HostBinding('class')\n protected readonly _initialClass = 'fdp-settings-generator';\n /** @hidden */\n @ViewChild('renderer', { read: ViewContainerRef })\n private readonly _viewRef: ViewContainerRef;\n\n /**\n * Settings Generator Element Ref.\n */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Settings configuration.\n */\n @Input()\n set settings(value: Nullable<SettingsModel>) {\n if (value) {\n value.appearance = value.appearance || (this._config.defaultLayout as string);\n }\n this._settings = value;\n this._settingsGeneratorService.settings.next(value);\n this._setLayout();\n }\n\n get settings(): Nullable<SettingsModel> {\n return this._settings;\n }\n\n /**\n * Container height.\n */\n height = input<string>();\n\n /**\n * Container width.\n */\n width = input<string>();\n\n /** @hidden */\n private _settings: Nullable<SettingsModel>;\n\n /** @hidden */\n private readonly _settingsGeneratorService = inject(SettingsGeneratorService);\n\n /** @hidden */\n private _currentLayout: string;\n\n /** @hidden */\n private readonly _viewReady = new BehaviorSubject<boolean>(false);\n\n /** @hidden */\n private _viewReadySub: Subscription;\n\n /** @hidden */\n private _layoutComponentRef: ComponentRef<BaseSettingsGeneratorLayout>;\n\n /** @hidden */\n constructor(\n private readonly _fgService: FormGeneratorService,\n private readonly _settingsLayoutService: SettingsGeneratorLayoutAccessorService,\n private readonly _injector: Injector,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _destroyRef: DestroyRef,\n @Inject(FDP_SETTINGS_GENERATOR_CONFIG) private readonly _config: SettingsConfig\n ) {\n this._settingsLayoutService.addLayout('sidebar', SettingsGeneratorSidebarLayoutComponent);\n this._fgService.addComponent(ThemeSelectorListComponent, ['theme-list']);\n this._settingsGeneratorService.onItemFocus.subscribe((entry) => {\n this._layoutComponentRef.instance.focusElementByPath(entry.path, entry.element);\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._viewReady.next(true);\n\n // We need to notify children components to update their classes.\n this._settingsGeneratorService.mobileState$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._cdr.markForCheck();\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._viewReady.complete();\n this._viewReadySub?.unsubscribe();\n this._layoutComponentRef?.destroy();\n this._viewRef?.clear();\n }\n\n /**\n * Programmatically submit inner forms of the settings generator.\n * @returns Observable with settings value grouped by main sections and inner sections.\n */\n submit(): Observable<SettingsGeneratorReturnValue> {\n return this._settingsGeneratorService.submit();\n }\n\n /** @hidden */\n private _setLayout(): void {\n this._viewReadySub?.unsubscribe();\n\n this._viewReadySub = this._viewReady.pipe(filter((ready) => ready)).subscribe(() => {\n if (!this.settings?.appearance || this._currentLayout === this.settings.appearance) {\n return;\n }\n\n const layoutComponent = this._settingsLayoutService.getLayout(this.settings.appearance);\n\n if (!layoutComponent) {\n return;\n }\n\n const injector = Injector.create({\n providers: [],\n parent: this._injector\n });\n\n this._layoutComponentRef?.destroy();\n this._viewRef.clear();\n this._layoutComponentRef = this._viewRef.createComponent(layoutComponent, { injector });\n\n this._currentLayout = this.settings.appearance;\n\n this._cdr.detectChanges();\n });\n }\n}\n","<ng-container #renderer></ng-container>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { PlatformFormGeneratorModule } from '@fundamental-ngx/platform/form';\n\nimport {\n ThemeSelectorListComponent,\n ThemeSelectorListIconComponent\n} from './controls/theme-selector-list/theme-selector-list.component';\nimport { FDP_SETTINGS_GENERATOR_DEFAULT_CONFIG } from './default-config';\nimport { SettingsGeneratorSidebarIconComponent } from './layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component';\nimport { SettingsGeneratorSidebarLayoutComponent } from './layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component';\nimport { SettingsConfig } from './models/settings-config.model';\nimport { SettingsGeneratorContentComponent } from './settings-generator-content/settings-generator-content.component';\nimport { SettingsGeneratorSectionComponent } from './settings-generator-content/settings-generator-section/settings-generator-section.component';\nimport { SettingsGeneratorLayoutAccessorService } from './settings-generator-layout-accessor.service';\nimport { SettingsGeneratorComponent } from './settings-generator.component';\nimport { FDP_SETTINGS_GENERATOR_CONFIG } from './tokens';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n PlatformFormGeneratorModule,\n SettingsGeneratorComponent,\n SettingsGeneratorSidebarLayoutComponent,\n SettingsGeneratorContentComponent,\n SettingsGeneratorSectionComponent,\n ThemeSelectorListComponent,\n ThemeSelectorListIconComponent,\n SettingsGeneratorSidebarIconComponent\n ],\n exports: [\n SettingsGeneratorComponent,\n SettingsGeneratorSidebarLayoutComponent,\n SettingsGeneratorContentComponent,\n SettingsGeneratorSectionComponent,\n ThemeSelectorListIconComponent\n ],\n providers: [\n SettingsGeneratorLayoutAccessorService,\n {\n provide: FDP_SETTINGS_GENERATOR_CONFIG,\n useValue: FDP_SETTINGS_GENERATOR_DEFAULT_CONFIG\n }\n ]\n})\nexport class SettingsGeneratorModule {\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<SettingsConfig>): ModuleWithProviders<SettingsGeneratorModule> {\n return {\n ngModule: SettingsGeneratorModule,\n providers: [\n {\n provide: FDP_SETTINGS_GENERATOR_CONFIG,\n useValue: { ...FDP_SETTINGS_GENERATOR_DEFAULT_CONFIG, ...config }\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-platform-settings-generator.mjs","sources":["../../../../libs/platform/settings-generator/controls/theme-selector-list/theme-selector-list.component.ts","../../../../libs/platform/settings-generator/controls/theme-selector-list/theme-selector-list.component.html","../../../../libs/platform/settings-generator/controls/theme-selector-list/icon.html","../../../../libs/platform/settings-generator/default-config.ts","../../../../libs/platform/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.ts","../../../../libs/platform/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component.html","../../../../libs/platform/settings-generator/settings-generator.service.ts","../../../../libs/platform/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.ts","../../../../libs/platform/settings-generator/settings-generator-content/settings-generator-section/settings-generator-section.component.html","../../../../libs/platform/settings-generator/settings-generator-content/settings-generator-content.component.ts","../../../../libs/platform/settings-generator/settings-generator-content/settings-generator-content.component.html","../../../../libs/platform/settings-generator/tokens.ts","../../../../libs/platform/settings-generator/layouts/base-settings-generator-layout.ts","../../../../libs/platform/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.ts","../../../../libs/platform/settings-generator/layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component.html","../../../../libs/platform/settings-generator/settings-generator-layout-accessor.service.ts","../../../../libs/platform/settings-generator/settings-generator.component.ts","../../../../libs/platform/settings-generator/settings-generator.component.html","../../../../libs/platform/settings-generator/settings-generator.module.ts","../../../../libs/platform/settings-generator/fundamental-ngx-platform-settings-generator.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n OnInit,\n ViewEncapsulation,\n forwardRef,\n inject\n} from '@angular/core';\nimport { ClickedDirective } from '@fundamental-ngx/cdk/utils';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { ThemingService } from '@fundamental-ngx/core/theming';\nimport {\n BaseDynamicFormGeneratorControl,\n dynamicFormFieldProvider,\n dynamicFormGroupChildProvider\n} from '@fundamental-ngx/platform/form';\n\n@Component({\n selector: 'fdp-theme-selector-list',\n templateUrl: './theme-selector-list.component.html',\n styleUrl: './theme-selector-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider],\n imports: [ListModule, ClickedDirective, forwardRef(() => ThemeSelectorListIconComponent), NgTemplateOutlet]\n})\nexport class ThemeSelectorListComponent extends BaseDynamicFormGeneratorControl implements OnInit {\n /** @hidden */\n currentTheme: string;\n\n /** @hidden */\n private readonly _themingService = inject(ThemingService, {\n optional: true\n });\n\n /** @hidden */\n ngOnInit(): void {\n this.currentTheme = this.formItem.default;\n }\n\n /** @hidden */\n setTheme(value: string): void {\n const control = this.form.get([this.formGroupName, this.name]);\n this.currentTheme = value;\n control?.setValue(value);\n this._themingService?.setTheme(value);\n }\n}\n\n@Component({\n selector: 'fdp-theme-selector-list-icon',\n templateUrl: './icon.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class ThemeSelectorListIconComponent {\n /** @hidden */\n @Input()\n size = 40;\n}\n","<ul fd-list [byline]=\"true\">\n @for (item of formItem.choices; track item) {\n <li fd-list-item [selected]=\"currentTheme === item.value\">\n <a fd-list-link (fdkClicked)=\"setTheme(item.value)\">\n @if (!item.template) {\n <div fd-list-thumbnail class=\"settings-selector-list__theme--{{ item.value }}\">\n <fdp-theme-selector-list-icon></fdp-theme-selector-list-icon>\n </div>\n <div fd-list-content>\n <div fd-list-title>{{ item.label }}</div>\n <div fd-list-byline>{{ item.description }}</div>\n </div>\n } @else {\n <ng-template\n [ngTemplateOutlet]=\"item.template!\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n ></ng-template>\n }\n </a>\n </li>\n }\n</ul>\n","<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 200 200\" [style.width.px]=\"size\" [style.height.px]=\"size\">\n <defs>\n <style>\n .settings-selector-list-icon__cls-1 {\n fill: #1c2228;\n }\n\n .settings-selector-list-icon__cls-2 {\n fill: #424f5e;\n }\n\n .settings-selector-list-icon__cls-3 {\n fill: #29313a;\n }\n\n .settings-selector-list-icon__cls-4 {\n fill: #3a4552;\n }\n\n .settings-selector-list-icon__cls-5 {\n fill: #91c8f6;\n }\n\n .settings-selector-list-icon__cls-6 {\n fill: #d3d7d9;\n }\n\n .settings-selector-list-icon__cls-7 {\n fill: #354a5f;\n }\n\n .settings-selector-list-icon__cls-8 {\n fill: #7996b4;\n }\n\n .settings-selector-list-icon__cls-9 {\n fill: #fff;\n }\n </style>\n </defs>\n <rect class=\"settings-selector-list-icon__cls-1\" y=\"88\" width=\"200\" height=\"112\" />\n <path class=\"settings-selector-list-icon__cls-2\" d=\"M200,105v95H59V110a5,5,0,0,1,5-5Z\" />\n <path class=\"settings-selector-list-icon__cls-3\" d=\"M64,106H200v94H60V110A4,4,0,0,1,64,106Z\" />\n <rect class=\"settings-selector-list-icon__cls-3\" y=\"44\" width=\"200\" height=\"44\" />\n <rect class=\"settings-selector-list-icon__cls-4\" y=\"87\" width=\"200\" height=\"1\" />\n <path\n class=\"settings-selector-list-icon__cls-5\"\n d=\"M64,63h46a5,5,0,0,1,5,5h0a5,5,0,0,1-5,5H64a5,5,0,0,1-5-5h0A5,5,0,0,1,64,63Z\"\n />\n <path class=\"settings-selector-list-icon__cls-6\" d=\"M153,63h47V73H153a5,5,0,0,1-5-5h0A5,5,0,0,1,153,63Z\" />\n <path class=\"settings-selector-list-icon__cls-5\" d=\"M62,85h50a3,3,0,0,1,3,3H59A3,3,0,0,1,62,85Z\" />\n <rect class=\"settings-selector-list-icon__cls-7\" width=\"200\" height=\"44\" />\n <path\n class=\"settings-selector-list-icon__cls-8\"\n d=\"M68.459,13a1,1,0,0,1,.714,1.707l-16.155,16A1.01,1.01,0,0,1,52.3,31H33.539a1,1,0,0,1-1.01-.99V14a1,1,0,0,1,1-1h34.93m0-3H33.539A4.024,4.024,0,0,0,29.5,14V30a4.024,4.024,0,0,0,4.039,4H52.3a4.033,4.033,0,0,0,2.857-1.172l16.154-16a3.961,3.961,0,0,0,.876-4.359A4.027,4.027,0,0,0,68.459,10Z\"\n />\n <rect class=\"settings-selector-list-icon__cls-9\" x=\"82.121\" y=\"16.949\" width=\"75.758\" height=\"10.101\" rx=\"5\" />\n <path class=\"settings-selector-list-icon__cls-9\" d=\"M170,18h30v8H170a4,4,0,0,1-4-4h0A4,4,0,0,1,170,18Z\" />\n</svg>\n","import { SidebarSettingsGeneratorConfig } from './models/settings-config.model';\n\nexport const FDP_SETTINGS_GENERATOR_DEFAULT_CONFIG: SidebarSettingsGeneratorConfig = {\n defaultLayout: 'sidebar',\n sidebar: {\n mobileBreakpoint: 700,\n width: '20rem'\n }\n};\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { isSubscribable, merge } from '@fundamental-ngx/cdk/utils';\nimport { AvatarComponent } from '@fundamental-ngx/core/avatar';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { ListAvatarConfig, ListIconConfig } from '@fundamental-ngx/platform/list';\nimport { Observable } from 'rxjs';\nimport { ThumbnailSettingsItem } from '../../../models/settings.model';\n\n@Component({\n selector: 'fdp-settings-generator-sidebar-icon',\n templateUrl: './settings-generator-sidebar-icon.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [SkeletonComponent, IconComponent, AvatarComponent]\n})\nexport class SettingsGeneratorSidebarIconComponent {\n /** Thumbnail configuration. */\n @Input()\n set thumbnail(value: ThumbnailSettingsItem) {\n this._thumbnail = value;\n if (this.thumbnail.avatar) {\n this._transformAvatarConfig(this.thumbnail.avatar);\n }\n\n if (this.thumbnail.icon) {\n this._transformIconConfig(this.thumbnail.icon);\n }\n }\n\n get thumbnail(): ThumbnailSettingsItem {\n return this._thumbnail;\n }\n\n /** @hidden */\n _avatarConfig: ListAvatarConfig | undefined;\n\n /** @hidden */\n _iconConfig: ListIconConfig | undefined;\n\n /** @hidden */\n private _thumbnail: ThumbnailSettingsItem;\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _cdr = inject(ChangeDetectorRef);\n\n /** @hidden */\n private _transformAvatarConfig(\n config$: Partial<ListAvatarConfig> | string | Observable<Partial<ListAvatarConfig> | string>\n ): void {\n this._getConfigFromObservable(config$, (parsedConfig) => {\n const avatarConfig = typeof parsedConfig === 'string' ? { image: parsedConfig } : parsedConfig;\n this._avatarConfig = merge(new ListAvatarConfig(), avatarConfig);\n this._cdr.detectChanges();\n });\n }\n\n /** @Hidden */\n private _transformIconConfig(\n config$: Partial<ListIconConfig> | string | Observable<Partial<ListIconConfig> | string>\n ): void {\n this._getConfigFromObservable(config$, (parsedConfig) => {\n const iconConfig = typeof parsedConfig === 'string' ? { glyph: parsedConfig } : parsedConfig;\n this._iconConfig = merge(new ListIconConfig(), iconConfig);\n this._cdr.detectChanges();\n });\n }\n\n /** @hidden */\n private _getConfigFromObservable<T>(config: T | Observable<T>, callback: (config: T) => void): void {\n if (isSubscribable(config)) {\n config.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((_config) => {\n callback(_config);\n });\n\n return;\n }\n\n callback(config);\n }\n}\n","@if (!_iconConfig && !_avatarConfig) {\n <fd-skeleton type=\"rectangle\" width=\"48px\" height=\"48px\"></fd-skeleton>\n} @else {\n @if (_iconConfig && _iconConfig.glyph) {\n <fd-icon [glyph]=\"_iconConfig.glyph\" [ariaLabel]=\"_iconConfig.ariaLabel\" [font]=\"_iconConfig.font\"></fd-icon>\n }\n @if (\n _avatarConfig && (_avatarConfig.image || _avatarConfig.glyph || _avatarConfig.zoomGlyph || _avatarConfig.label)\n ) {\n <fd-avatar\n [size]=\"_avatarConfig.size\"\n [glyph]=\"_avatarConfig.glyph\"\n [zoomGlyph]=\"_avatarConfig.zoomGlyph\"\n [label]=\"_avatarConfig.label\"\n [circle]=\"_avatarConfig.circle\"\n [placeholder]=\"_avatarConfig.placeholder\"\n [tile]=\"_avatarConfig.tile\"\n [colorAccent]=\"_avatarConfig.colorAccent\"\n [image]=\"_avatarConfig.image\"\n [transparent]=\"_avatarConfig.transparent\"\n [random]=\"_avatarConfig.random\"\n [class]=\"'fd-list__icon ' + _avatarConfig.class\"\n [ariaLabel]=\"_avatarConfig.ariaLabel\"\n [ariaLabelledby]=\"_avatarConfig.ariaLabelledby\"\n [contain]=\"_avatarConfig.contain\"\n [border]=\"_avatarConfig.border\"\n [alterIcon]=\"_avatarConfig.alterIcon\"\n [backupImage]=\"_avatarConfig.backupImage\"\n [clickable]=\"_avatarConfig.clickable\"\n [attr.alt]=\"_avatarConfig.ariaLabel\"\n role=\"img\"\n ></fd-avatar>\n }\n}\n","import { DestroyRef, ElementRef, Injectable, OnDestroy, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable, set } from '@fundamental-ngx/cdk/utils';\nimport { DynamicFormValue, FormGeneratorComponent } from '@fundamental-ngx/platform/form';\nimport { MessagePopoverFormWrapperComponent } from '@fundamental-ngx/platform/message-popover';\nimport { BehaviorSubject, Observable, Subject, combineLatest, delay, filter, map, switchMap, take, tap } from 'rxjs';\nimport { SettingsModel } from './models/settings.model';\n\nexport type SettingsGeneratorReturnValue = Record<string, unknown>;\n\n@Injectable()\nexport class SettingsGeneratorService implements OnDestroy {\n /**\n * Settings configuration subject.\n */\n readonly settings = new BehaviorSubject<Nullable<SettingsModel>>(null);\n\n /**\n * Stream emitted when user clicked on message popover error entry.\n */\n readonly onItemFocus = new Subject<{ path: string; element: ElementRef<HTMLElement> }>();\n\n /**\n * Stream emitted when mobile state has been changed.\n */\n readonly mobileState$ = new BehaviorSubject<boolean>(false);\n\n /**\n * @hidden\n * Form generators collected from all items and groups.\n */\n private readonly _formGenerators = new Map<string, FormGeneratorComponent>();\n\n /** @hidden */\n private readonly _messagePopover = inject(MessagePopoverFormWrapperComponent, {\n optional: true\n });\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n constructor() {\n this._listenToMessagePopoverItemClick();\n }\n\n /** @hidden */\n _addFormGenerator(path: string[], formGenerator: FormGeneratorComponent): void {\n const joinedPath = path.join('.');\n this._formGenerators.set(joinedPath, formGenerator);\n formGenerator.loading$\n .pipe(\n filter((loading) => !loading),\n take(1),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe(() => {\n this._messagePopover?.addForms(formGenerator.formGroup);\n this._messagePopover?.addFormFields(formGenerator.formFields);\n });\n }\n\n /** @hidden */\n _removeFormGenerator(path: string[]): void {\n const joinedPath = path.join('.');\n this._formGenerators.delete(joinedPath);\n }\n\n /**\n * Submits registered forms and emits result if submission status was successful (no errors).\n */\n submit(): Observable<SettingsGeneratorReturnValue> {\n const joinedEvents: Record<string, Observable<DynamicFormValue>> = {};\n this._formGenerators.forEach((formGenerator, key) => {\n joinedEvents[key] = formGenerator.loading$.pipe(\n filter((result) => !result),\n delay(50),\n tap(() => formGenerator.submit()),\n switchMap(() => formGenerator.formSubmittedStatus$),\n filter((status) => status.success),\n take(1),\n map((result) => result.value as DynamicFormValue),\n takeUntilDestroyed(this._destroyRef)\n );\n });\n\n return combineLatest(joinedEvents).pipe(\n map((result) => Object.entries(result).reduce((a, b) => set(a, b[0], b[1]), {})),\n take(1),\n takeUntilDestroyed(this._destroyRef)\n );\n }\n\n /**\n * Sets mobile state.\n * @param isMobile Whether mobile state should be applied.\n */\n setMobileState(isMobile: boolean): void {\n this.mobileState$.next(isMobile);\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._formGenerators.clear();\n }\n\n /**\n * @hidden\n * Subscribes to click events from message popover and tries to open the section where invalid input is located.\n */\n private _listenToMessagePopoverItemClick(): void {\n this._messagePopover?.messagePopover$\n ?.pipe(\n switchMap((messagePopover) => messagePopover.focusItem),\n filter((entry) => !!entry.formField),\n takeUntilDestroyed(this._destroyRef)\n )\n .subscribe((entry) => {\n this._formGenerators.forEach((formGenerator, path) => {\n const formFields = formGenerator.formFields;\n // We already filtered entries with present form field.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n if (formFields.includes(entry.formField!)) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.onItemFocus.next({ path, element: entry.formField!.elementRef });\n return false;\n }\n });\n });\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\nimport { AsyncOrSyncPipe, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { DynamicFormItem, FormGeneratorComponent } from '@fundamental-ngx/platform/form';\nimport {\n FormSettingsItem,\n SettingsFormTab,\n SettingsItem,\n SettingsTemplateTab,\n TemplateSettingsItem\n} from '../../models/settings.model';\nimport { SettingsGeneratorService } from '../../settings-generator.service';\n\nexport type SettingsSectionItemsModel = SettingsTemplateTab | SettingsFormTab | SettingsItem;\n\n@Component({\n selector: 'fdp-settings-generator-section',\n templateUrl: './settings-generator-section.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [FormGeneratorComponent, NgTemplateOutlet, AsyncOrSyncPipe]\n})\nexport class SettingsGeneratorSectionComponent {\n /**\n * Group name. Used to define full path of the inner form.\n */\n @Input()\n groupName: Nullable<string>;\n\n /**\n * Section items.\n * @param value {Nullable<SettingsSectionItemsModel>} Can be either a template Ref, or Form generator items.\n */\n @Input()\n set items(value: Nullable<SettingsSectionItemsModel>) {\n this._items = value;\n\n if (this._isTemplateLayout(value)) {\n this._renderer = 'template';\n this._templateRef = value.template;\n } else {\n this._renderer = 'form';\n this._formItems = value?.items || [];\n }\n }\n\n get items(): Nullable<SettingsSectionItemsModel> {\n return this._items;\n }\n\n /** @hidden */\n _renderer: 'form' | 'template' = 'form';\n\n /** @hidden */\n _templateRef: TemplateRef<any> | null = null;\n\n /** @hidden */\n _formItems: DynamicFormItem[] = [];\n\n /** @hidden */\n private readonly _settingsGeneratorService = inject(SettingsGeneratorService);\n\n /** @hidden */\n private _items: Nullable<SettingsSectionItemsModel>;\n\n /** @hidden */\n @ViewChild(FormGeneratorComponent)\n private set _formGeneratorCmp(component: FormGeneratorComponent | undefined) {\n if (!this.items) {\n return;\n }\n\n const config = this.items as SettingsFormTab | FormSettingsItem;\n\n const path = [this.groupName, config.id].filter((v) => !!v) as string[];\n\n if (component) {\n this._settingsGeneratorService._addFormGenerator(path, component);\n } else {\n this._settingsGeneratorService._removeFormGenerator(path);\n }\n }\n\n /** @hidden */\n _isTemplateLayout(settings: any): settings is TemplateSettingsItem {\n return !!settings?.template;\n }\n}\n","@if (_renderer === 'form') {\n <fdp-form-generator\n [noAdditionalContent]=\"true\"\n [mainTitle]=\"$safeNavigationMigration(items?.title) | fdkAsyncOrSync\"\n [hideMainTItle]=\"true\"\n [formItems]=\"_formItems\"\n [unifiedLayout]=\"false\"\n ></fdp-form-generator>\n}\n@if (_renderer === 'template' && items?.template) {\n <ng-template [ngTemplateOutlet]=\"_templateRef\"></ng-template>\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n Input,\n Output,\n QueryList,\n Signal,\n ViewChildren,\n ViewEncapsulation,\n computed,\n input,\n signal\n} from '@angular/core';\nimport { AsyncOrSyncPipe, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { TabPanelComponent } from '@fundamental-ngx/core/tabs';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { IconTabBarComponent, IconTabBarItem, TabConfig } from '@fundamental-ngx/platform/icon-tab-bar';\nimport {\n GroupedFormSettingsItem,\n GroupedTemplateSettingsItem,\n SettingsFormTab,\n SettingsItem,\n SettingsTemplateTab,\n TemplateSettingsItem\n} from '../models/settings.model';\nimport { SettingsGeneratorSectionComponent } from './settings-generator-section/settings-generator-section.component';\n\n@Component({\n selector: 'fdp-settings-generator-content',\n templateUrl: './settings-generator-content.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TitleComponent,\n ButtonComponent,\n SkeletonComponent,\n SettingsGeneratorSectionComponent,\n NgTemplateOutlet,\n AsyncOrSyncPipe,\n IconTabBarComponent,\n FdTranslatePipe\n ]\n})\nexport class SettingsGeneratorContentComponent {\n /** @hidden */\n @Input()\n set settings(value: Nullable<SettingsItem>) {\n this._settings$.set(value);\n }\n\n get settings(): Nullable<SettingsItem> {\n return this._settings$();\n }\n\n /** Whether to render content component in mobile view. */\n @Input()\n mobile = false;\n\n /** Event emits when user needs to be moved back to navigation screen. */\n @Output()\n goBack = new EventEmitter<void>();\n\n /** @hidden */\n @HostBinding('class')\n protected readonly _initialClass = 'fdp-settings-generator__content-section';\n\n /** @hidden */\n @ViewChildren(TabPanelComponent)\n private readonly _tabPanels: QueryList<TabPanelComponent>;\n\n /** Optional alternative text for the settings generator dialog back button. */\n backButtonLabel = input<string>();\n\n /** @hidden */\n _id: Nullable<string>;\n\n /** @hidden */\n _renderer$ = computed<'form' | 'template'>(() => (this.isTemplateLayout(this._settings$()) ? 'template' : 'form'));\n\n /** @hidden */\n _contentLayout$ = computed<'form' | 'tabs'>(() => (this.isGroupedSettings(this._settings$()) ? 'tabs' : 'form'));\n\n /** @hidden */\n _groups$: Signal<(SettingsTemplateTab | SettingsFormTab)[]> = computed(() => {\n const settings = this._settings$();\n return this.isGroupedSettings(settings) ? settings.groups : [];\n });\n\n /** @hidden */\n _tabs$: Signal<TabConfig[]> = computed(() =>\n this._groups$().map<TabConfig>((group, index) => ({\n label: group.title,\n active: index === this._activeTab$()\n }))\n );\n\n /** @hidden */\n _index: number;\n\n /** @hidden */\n readonly _activeTab$ = signal(0);\n\n /** @hidden */\n readonly _settings$ = signal<Nullable<SettingsItem>>(null);\n\n /** @hidden */\n private _settings: Nullable<SettingsItem>;\n\n /** @hidden */\n isTemplateLayout(settings: Nullable<SettingsItem>): settings is TemplateSettingsItem {\n return !!settings?.template;\n }\n\n /** @hidden */\n isGroupedSettings(settings: any): settings is GroupedFormSettingsItem | GroupedTemplateSettingsItem {\n return settings?.groups?.length > 0;\n }\n\n /** @hidden */\n changeTab(item: IconTabBarItem): void {\n this._activeTab$.set(item.index);\n }\n\n /**\n * Activates tab by group ID.\n * @param id ID of the group.\n */\n setActiveTab(id: string): void {\n if (!this.isGroupedSettings(this._settings)) {\n return;\n }\n this._tabPanels?.forEach((tab, index) => {\n const group = this._groups$()[index];\n\n if (group.id === id) {\n tab.open(true);\n return false;\n }\n });\n }\n}\n","<ng-template #backButton>\n @if (mobile) {\n <button\n [attr.title]=\"backButtonLabel() || ('platformSettingsGenerator.backButtonLabel' | fdTranslate)()\"\n [attr.aria-label]=\"backButtonLabel() || ('platformSettingsGenerator.backButtonLabel' | fdTranslate)()\"\n fd-button\n glyph=\"navigation-left-arrow\"\n fdType=\"transparent\"\n (click)=\"goBack.emit()\"\n ></button>\n }\n</ng-template>\n@if ($safeNavigationMigration(settings?.title) | fdkAsyncOrSync; as settingsTitle) {\n <div\n fd-title\n [wrap]=\"!!settings?.wrapSectionTitle\"\n role=\"heading\"\n class=\"fd-title--h5 fdp-settings-generator__title\"\n [attr.aria-level]=\"settings?.sectionTitleHeadingLevel || 5\"\n >\n <ng-template [ngTemplateOutlet]=\"backButton\"></ng-template>\n {{ settingsTitle }}\n </div>\n} @else {\n <div\n fd-title\n [wrap]=\"!!settings?.wrapSectionTitle\"\n class=\"fd-title--h5 fdp-settings-generator__title\"\n [attr.aria-label]=\"('platformSettingsGenerator.settingsLabel' | fdTranslate)()\"\n >\n <ng-template [ngTemplateOutlet]=\"backButton\"></ng-template>\n <fd-skeleton height=\"40px\" type=\"rectangle\" width=\"40%\" textLines=\"1\" [style.margin]=\"'auto 0'\"></fd-skeleton>\n </div>\n}\n<ng-template #tabbedLayout>\n <fdp-icon-tab-bar\n class=\"fdp-settings-generator__tabs-container\"\n [tabsConfig]=\"_tabs$()\"\n (iconTabSelected)=\"changeTab($event)\"\n ></fdp-icon-tab-bar>\n @for (group of _groups$(); track group) {\n <div [attr.hidden]=\"$index === _activeTab$() ? null : true\" class=\"fdp-settings-generator__content-container\">\n <fdp-settings-generator-section\n [groupName]=\"$any(settings).id\"\n [items]=\"group\"\n ></fdp-settings-generator-section>\n </div>\n }\n</ng-template>\n<ng-template #formLayout>\n <fdp-settings-generator-section [items]=\"settings!\"></fdp-settings-generator-section>\n</ng-template>\n<ng-template [ngTemplateOutlet]=\"_contentLayout$() === 'tabs' ? tabbedLayout : formLayout\"></ng-template>\n","import { InjectionToken } from '@angular/core';\nimport { SettingsConfig } from './models/settings-config.model';\nimport { SettingsGenerator } from './models/settings-generator.model';\n\nexport const FDP_SETTINGS_GENERATOR_CONFIG = new InjectionToken<SettingsConfig>('FdpSettingsGeneratorConfig');\nexport const FDP_SETTINGS_GENERATOR = new InjectionToken<SettingsGenerator>('FdpSettingsGenerator');\n","import { ChangeDetectorRef, DestroyRef, Directive, ElementRef, inject, OnInit } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { SettingsModel } from '../models/settings.model';\nimport { SettingsGeneratorService } from '../settings-generator.service';\nimport { FDP_SETTINGS_GENERATOR } from '../tokens';\n\n@Directive()\nexport abstract class BaseSettingsGeneratorLayout implements OnInit {\n /**\n * Subject to notify subscriptions to unsubscribe when component destroys.\n */\n protected abstract _destroyRef: DestroyRef;\n\n /**\n * Method for focusing inner form control.\n * It is responsible for activating the section and placing focus on the element.\n * @param path path of the control joined by dot(.). Usually represents section ID and inner group ID.\n * @param element ElementRef of native element to focus.\n */\n abstract focusElementByPath(path: string, element: ElementRef<HTMLElement>): void;\n\n /**\n * Settings schema.\n */\n settings: Nullable<SettingsModel>;\n\n /**\n * Settings generator service.\n */\n protected readonly _settingsGeneratorService = inject(SettingsGeneratorService);\n\n /**\n * Change detector ref.\n */\n protected readonly _cdr = inject(ChangeDetectorRef);\n\n /**\n * Settings generator component ref.\n */\n protected _settingsGenerator = inject(FDP_SETTINGS_GENERATOR);\n\n /** @hidden */\n ngOnInit(): void {\n this._settingsGeneratorService.settings.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((settings) => {\n this.settings = settings;\n this._cdr.detectChanges();\n });\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n ElementRef,\n HostBinding,\n inject,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { AsyncOrSyncPipe, Nullable, resizeObservable } from '@fundamental-ngx/cdk/utils';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { debounceTime, distinctUntilChanged, startWith } from 'rxjs';\nimport { SidebarSettingsGeneratorConfig } from '../../models/settings-config.model';\nimport {\n FormSettingsItem,\n GroupedFormSettingsItem,\n SettingsItem,\n SidebarSettingsModel,\n SidebarWidthConfiguration\n} from '../../models/settings.model';\nimport { SettingsGeneratorContentComponent } from '../../settings-generator-content/settings-generator-content.component';\nimport { FDP_SETTINGS_GENERATOR_CONFIG } from '../../tokens';\nimport { BaseSettingsGeneratorLayout } from '../base-settings-generator-layout';\nimport { SettingsGeneratorSidebarIconComponent } from './settings-generator-sidebar-icon/settings-generator-sidebar-icon.component';\n\n@Component({\n selector: 'fdp-settings-generator-sidebar-layout',\n templateUrl: './settings-generator-sidebar-layout.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n ListModule,\n SettingsGeneratorSidebarIconComponent,\n SkeletonComponent,\n SettingsGeneratorContentComponent,\n AsyncOrSyncPipe,\n TitleComponent,\n FdTranslatePipe,\n FormsModule\n ]\n})\nexport class SettingsGeneratorSidebarLayoutComponent\n extends BaseSettingsGeneratorLayout\n implements OnInit, AfterViewInit\n{\n /** @hidden */\n @HostBinding('class.fdp-settings-generator__sidebar-layout--mobile')\n _isMobile: boolean;\n\n /** @hidden */\n @HostBinding('class')\n protected readonly _initialClass = 'fdp-settings-generator__sidebar-layout';\n\n /** @hidden */\n @ViewChild('settingsGeneratorContent')\n private readonly _settingsGeneratorContent: SettingsGeneratorContentComponent;\n\n /** @hidden */\n @ViewChild('listElement', { read: ElementRef })\n private _listElement: ElementRef;\n\n /** @hidden */\n searchTerm: string;\n\n /**\n * Selected settings section.\n */\n _selectedIndex = -1;\n /** @hidden */\n _sidebarWidth: SidebarWidthConfiguration;\n\n /** @hidden */\n protected readonly sidebarTitle = computed(() => {\n const settings = this.settings;\n if (this._isSidebarSettings(settings) && settings.sidebarTitle) {\n return settings.sidebarTitle;\n }\n return null;\n });\n\n /** @hidden */\n protected readonly headingLevel = computed(() => {\n const settings = this.settings;\n if (this._isSidebarSettings(settings) && settings.sidebarTitleHeadingLevel) {\n return settings.sidebarTitleHeadingLevel;\n }\n return 5; // Default to h5\n });\n\n /** @hidden */\n protected _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _config = inject<SidebarSettingsGeneratorConfig>(FDP_SETTINGS_GENERATOR_CONFIG);\n\n /** @hidden */\n private _sidebarVisible = true;\n\n /** @hidden */\n private _initialSelectedItemSet = false;\n\n /** @hidden */\n get _mobileSidebarVisible(): boolean {\n return this._isMobile && this._sidebarVisible;\n }\n\n /** @hidden */\n constructor() {\n super();\n this._sidebarWidth = this._getNormalizedSidebarWidth(this._config.sidebar?.width);\n }\n\n /** @hidden */\n ngOnInit(): void {\n super.ngOnInit();\n this._settingsGeneratorService.settings.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((settings) => {\n if (this._isSidebarSettings(settings) && settings.sidebarWidth) {\n this._sidebarWidth = this._getNormalizedSidebarWidth(settings.sidebarWidth);\n this._cdr.detectChanges();\n }\n });\n }\n\n /** @hidden */\n focusElementByPath(path: string, element: ElementRef<HTMLElement>): void {\n const pathArray = path.split('.');\n // We are interested only in sections with ID.\n const sectionIndex =\n this.settings?.items.findIndex((section) => {\n if (!this._isFormGeneratorSection(section)) {\n return;\n }\n return section.id === pathArray[0];\n }) ?? -1;\n\n // Focus on section.\n if (sectionIndex > -1) {\n this._setSelectedIndex(sectionIndex);\n }\n\n // Currently we support only 2 level nesting of form groups.\n if (pathArray.length > 0) {\n this._settingsGeneratorContent.setActiveTab(pathArray[1]);\n }\n\n setTimeout(() => {\n element.nativeElement.focus();\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this._settingsGenerator.elementRef.nativeElement && this._config.sidebar?.mobileBreakpoint) {\n resizeObservable(this._settingsGenerator.elementRef.nativeElement)\n .pipe(startWith(null), debounceTime(30), distinctUntilChanged(), takeUntilDestroyed(this._destroyRef))\n .subscribe(() => {\n const { width } = this._settingsGenerator.elementRef.nativeElement.getBoundingClientRect();\n\n const isMobile = width <= this._config.sidebar.mobileBreakpoint;\n\n if (this._isMobile === isMobile) {\n return;\n }\n\n this._settingsGeneratorService.setMobileState(isMobile);\n this._isMobile = isMobile;\n\n // User opened section previously, so focus on that section\n if (this._isMobile && this._selectedIndex >= 0) {\n this._sidebarVisible = false;\n }\n\n // In mobile view, we don't need to set initial index, since the section won't be visible to the end user.\n if (!this._initialSelectedItemSet && !this._isMobile) {\n this._setSelectedIndex(this._selectedIndex > -1 ? this._selectedIndex : 0);\n this._initialSelectedItemSet = true;\n }\n\n if (!this._isMobile && this._selectedIndex === -1) {\n this._setSelectedIndex(0);\n }\n\n this._cdr.detectChanges();\n });\n }\n }\n\n /** @hidden */\n _displaySettingsSearchInput(): boolean {\n const listEl = this._listElement;\n if (!listEl) {\n return false;\n } else {\n return !!this.searchTerm || listEl.nativeElement.scrollHeight > listEl.nativeElement.clientHeight;\n }\n }\n\n /** @hidden */\n _setSelectedIndex(index: number): void {\n this._selectedIndex = index;\n this._sidebarVisible = index === -1;\n this._cdr.detectChanges();\n }\n\n /** @Hidden */\n _goBack(): void {\n this._setSelectedIndex(-1);\n }\n\n /** @hidden */\n private _getNormalizedSidebarWidth(width: string | SidebarWidthConfiguration): SidebarWidthConfiguration {\n return typeof width === 'string' ? { minWidth: width, maxWidth: width, width } : width;\n }\n\n /** @hidden */\n private _isSidebarSettings(settings: Nullable<any>): settings is SidebarSettingsModel<any> {\n return settings?.appearance === 'sidebar';\n }\n\n /** @hidden */\n private _isFormGeneratorSection(section: SettingsItem): section is FormSettingsItem | GroupedFormSettingsItem {\n return !!(section as any).id;\n }\n}\n","<div\n class=\"fdp-settings-generator__sidebar\"\n [class.fdp-settings-generator__sidebar--hidden]=\"!_mobileSidebarVisible\"\n [style.width]=\"_mobileSidebarVisible ? null : _sidebarWidth.width\"\n [style.min-width]=\"_mobileSidebarVisible ? null : _sidebarWidth.minWidth\"\n [style.max-width]=\"_mobileSidebarVisible ? null : _sidebarWidth.maxWidth\"\n>\n <div class=\"fdp-settings-generator__search-header\">\n <div\n fd-title\n role=\"heading\"\n [attr.aria-level]=\"headingLevel()\"\n class=\"fdp-settings-generator__title fd-title--h5\"\n >\n {{ sidebarTitle() ?? ('platformSettingsGenerator.settingsLabel' | fdTranslate)() }}\n </div>\n\n <!-- TODO: implement search input\n @if (_displaySettingsSearchInput()) {\n <fd-input-group\n type=\"search\"\n glyph=\"search\"\n [glyphAriaLabel]=\"('platformSettingsGenerator.searchLabel' | fdTranslate)()\"\n [attr.placeholder]=\"('platformSettingsGenerator.searchLabel' | fdTranslate)()\"\n [button]=\"true\"\n [disabled]=\"false\"\n [(ngModel)]=\"searchTerm\"\n class=\"fdp-settings-generator__search-input\"\n >\n </fd-input-group>\n }\n -->\n </div>\n <div class=\"fdp-settings-generator__list-container\" #listElement>\n <ul fd-list [byline]=\"true\" [navigationIndicator]=\"true\">\n @for (item of settings?.items; track item; let i = $index) {\n <li (click)=\"_setSelectedIndex(i)\" fd-list-item [selected]=\"i === _selectedIndex\" [id]=\"item.id\">\n <a fd-list-link [navigated]=\"i === _selectedIndex\" [navigationIndicator]=\"_isMobile\">\n @if (item.thumbnail) {\n <span fd-list-thumbnail>\n <fdp-settings-generator-sidebar-icon\n [thumbnail]=\"item.thumbnail\"\n ></fdp-settings-generator-sidebar-icon>\n </span>\n }\n <div fd-list-content>\n @if (item.title | fdkAsyncOrSync; as titleValue) {\n <div fd-list-title [wrap]=\"!!_sidebarWidth.wrapSidebarTitle\">{{ titleValue }}</div>\n } @else {\n <div fd-list-title>\n <fd-skeleton\n height=\"16px\"\n type=\"rectangle\"\n width=\"40%\"\n textLines=\"1\"\n [style.margin]=\"'auto 0'\"\n ></fd-skeleton>\n </div>\n }\n @if (item.description) {\n <div fd-list-byline [wrap]=\"!!_sidebarWidth.wrapSidebarDescription\">\n @if (item.description | fdkAsyncOrSync; as descriptionValue) {\n {{ descriptionValue }}\n } @else {\n <fd-skeleton\n type=\"text\"\n width=\"60%\"\n textLines=\"1\"\n [style.margin]=\"'auto 0'\"\n ></fd-skeleton>\n }\n </div>\n }\n </div>\n </a>\n </li>\n }\n </ul>\n </div>\n</div>\n<div\n class=\"fdp-settings-generator__content\"\n [class.fdp-settings-generator__content--hidden]=\"_mobileSidebarVisible\"\n [style.width]=\"_mobileSidebarVisible ? null : 'calc(100% - ' + _sidebarWidth.width + ')'\"\n [style.min-width]=\"_mobileSidebarVisible ? null : 'calc(100% - ' + _sidebarWidth.minWidth + ')'\"\n [style.max-width]=\"_mobileSidebarVisible ? null : 'calc(100% - ' + _sidebarWidth.maxWidth + ')'\"\n>\n @for (item of settings?.items; track item; let i = $index) {\n <fdp-settings-generator-content\n [attr.hidden]=\"i !== _selectedIndex ? true : null\"\n [settings]=\"item\"\n [mobile]=\"_isMobile\"\n (goBack)=\"_goBack()\"\n #settingsGeneratorContent\n ></fdp-settings-generator-content>\n }\n</div>\n","import { Injectable, Type } from '@angular/core';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { BaseSettingsGeneratorLayout } from './layouts/base-settings-generator-layout';\n\n/**\n * Service, used as a registry of the available layouts for Settings Generator Component.\n */\n@Injectable()\nexport class SettingsGeneratorLayoutAccessorService {\n /** @hidden */\n private readonly _layouts = new Map<string, Type<BaseSettingsGeneratorLayout>>();\n\n /**\n * Adds custom layout component to layouts registry for later usage with Settings Generator component.\n * @param layoutName Name of the Layout\n * @param layoutComponent Component type to be used for defined layout.\n */\n addLayout(layoutName: string, layoutComponent: Type<BaseSettingsGeneratorLayout>): void {\n this._layouts.set(layoutName, layoutComponent);\n }\n\n /**\n * Gets Component type for defined layout.\n * @param layoutName\n */\n getLayout(layoutName: string): Nullable<Type<BaseSettingsGeneratorLayout>> {\n return this._layouts.get(layoutName);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ComponentRef,\n DestroyRef,\n ElementRef,\n HostBinding,\n Inject,\n inject,\n Injector,\n input,\n Input,\n OnDestroy,\n ViewChild,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { HasElementRef, Nullable } from '@fundamental-ngx/cdk/utils';\nimport { FormGeneratorService } from '@fundamental-ngx/platform/form';\nimport { BehaviorSubject, filter, Observable, Subscription } from 'rxjs';\nimport { ThemeSelectorListComponent } from './controls/theme-selector-list/theme-selector-list.component';\nimport { BaseSettingsGeneratorLayout } from './layouts/base-settings-generator-layout';\nimport { SettingsGeneratorSidebarLayoutComponent } from './layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component';\nimport { SettingsConfig } from './models/settings-config.model';\nimport { SettingsGenerator } from './models/settings-generator.model';\nimport { SettingsModel } from './models/settings.model';\nimport { SettingsGeneratorLayoutAccessorService } from './settings-generator-layout-accessor.service';\nimport { SettingsGeneratorReturnValue, SettingsGeneratorService } from './settings-generator.service';\nimport { FDP_SETTINGS_GENERATOR, FDP_SETTINGS_GENERATOR_CONFIG } from './tokens';\n\n@Component({\n selector: 'fdp-settings-generator',\n templateUrl: './settings-generator.component.html',\n styleUrl: './settings-generator.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n SettingsGeneratorService,\n {\n provide: FDP_SETTINGS_GENERATOR,\n useExisting: SettingsGeneratorComponent\n }\n ],\n standalone: true,\n host: {\n '[style.width]': 'width()',\n '[style.height]': 'height()'\n }\n})\nexport class SettingsGeneratorComponent implements SettingsGenerator, AfterViewInit, OnDestroy, HasElementRef {\n /** @hidden */\n @HostBinding('class')\n protected readonly _initialClass = 'fdp-settings-generator';\n /** @hidden */\n @ViewChild('renderer', { read: ViewContainerRef })\n private readonly _viewRef: ViewContainerRef;\n\n /**\n * Settings Generator Element Ref.\n */\n readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n /**\n * Settings configuration.\n */\n @Input()\n set settings(value: Nullable<SettingsModel>) {\n if (value) {\n value.appearance = value.appearance || (this._config.defaultLayout as string);\n }\n this._settings = value;\n this._settingsGeneratorService.settings.next(value);\n this._setLayout();\n }\n\n get settings(): Nullable<SettingsModel> {\n return this._settings;\n }\n\n /**\n * Container height.\n */\n height = input<string>();\n\n /**\n * Container width.\n */\n width = input<string>();\n\n /** @hidden */\n private _settings: Nullable<SettingsModel>;\n\n /** @hidden */\n private readonly _settingsGeneratorService = inject(SettingsGeneratorService);\n\n /** @hidden */\n private _currentLayout: string;\n\n /** @hidden */\n private readonly _viewReady = new BehaviorSubject<boolean>(false);\n\n /** @hidden */\n private _viewReadySub: Subscription;\n\n /** @hidden */\n private _layoutComponentRef: ComponentRef<BaseSettingsGeneratorLayout>;\n\n /** @hidden */\n constructor(\n private readonly _fgService: FormGeneratorService,\n private readonly _settingsLayoutService: SettingsGeneratorLayoutAccessorService,\n private readonly _injector: Injector,\n private readonly _cdr: ChangeDetectorRef,\n private readonly _destroyRef: DestroyRef,\n @Inject(FDP_SETTINGS_GENERATOR_CONFIG) private readonly _config: SettingsConfig\n ) {\n this._settingsLayoutService.addLayout('sidebar', SettingsGeneratorSidebarLayoutComponent);\n this._fgService.addComponent(ThemeSelectorListComponent, ['theme-list']);\n this._settingsGeneratorService.onItemFocus.subscribe((entry) => {\n this._layoutComponentRef.instance.focusElementByPath(entry.path, entry.element);\n });\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._viewReady.next(true);\n\n // We need to notify children components to update their classes.\n this._settingsGeneratorService.mobileState$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._cdr.markForCheck();\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._viewReady.complete();\n this._viewReadySub?.unsubscribe();\n this._layoutComponentRef?.destroy();\n this._viewRef?.clear();\n }\n\n /**\n * Programmatically submit inner forms of the settings generator.\n * @returns Observable with settings value grouped by main sections and inner sections.\n */\n submit(): Observable<SettingsGeneratorReturnValue> {\n return this._settingsGeneratorService.submit();\n }\n\n /** @hidden */\n private _setLayout(): void {\n this._viewReadySub?.unsubscribe();\n\n this._viewReadySub = this._viewReady.pipe(filter((ready) => ready)).subscribe(() => {\n if (!this.settings?.appearance || this._currentLayout === this.settings.appearance) {\n return;\n }\n\n const layoutComponent = this._settingsLayoutService.getLayout(this.settings.appearance);\n\n if (!layoutComponent) {\n return;\n }\n\n const injector = Injector.create({\n providers: [],\n parent: this._injector\n });\n\n this._layoutComponentRef?.destroy();\n this._viewRef.clear();\n this._layoutComponentRef = this._viewRef.createComponent(layoutComponent, { injector });\n\n this._currentLayout = this.settings.appearance;\n\n this._cdr.detectChanges();\n });\n }\n}\n","<ng-container #renderer></ng-container>\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { PlatformFormGeneratorModule } from '@fundamental-ngx/platform/form';\n\nimport {\n ThemeSelectorListComponent,\n ThemeSelectorListIconComponent\n} from './controls/theme-selector-list/theme-selector-list.component';\nimport { FDP_SETTINGS_GENERATOR_DEFAULT_CONFIG } from './default-config';\nimport { SettingsGeneratorSidebarIconComponent } from './layouts/settings-generator-sidebar-layout/settings-generator-sidebar-icon/settings-generator-sidebar-icon.component';\nimport { SettingsGeneratorSidebarLayoutComponent } from './layouts/settings-generator-sidebar-layout/settings-generator-sidebar-layout.component';\nimport { SettingsConfig } from './models/settings-config.model';\nimport { SettingsGeneratorContentComponent } from './settings-generator-content/settings-generator-content.component';\nimport { SettingsGeneratorSectionComponent } from './settings-generator-content/settings-generator-section/settings-generator-section.component';\nimport { SettingsGeneratorLayoutAccessorService } from './settings-generator-layout-accessor.service';\nimport { SettingsGeneratorComponent } from './settings-generator.component';\nimport { FDP_SETTINGS_GENERATOR_CONFIG } from './tokens';\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [\n PlatformFormGeneratorModule,\n SettingsGeneratorComponent,\n SettingsGeneratorSidebarLayoutComponent,\n SettingsGeneratorContentComponent,\n SettingsGeneratorSectionComponent,\n ThemeSelectorListComponent,\n ThemeSelectorListIconComponent,\n SettingsGeneratorSidebarIconComponent\n ],\n exports: [\n SettingsGeneratorComponent,\n SettingsGeneratorSidebarLayoutComponent,\n SettingsGeneratorContentComponent,\n SettingsGeneratorSectionComponent,\n ThemeSelectorListIconComponent\n ],\n providers: [\n SettingsGeneratorLayoutAccessorService,\n {\n provide: FDP_SETTINGS_GENERATOR_CONFIG,\n useValue: FDP_SETTINGS_GENERATOR_DEFAULT_CONFIG\n }\n ]\n})\nexport class SettingsGeneratorModule {\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<SettingsConfig>): ModuleWithProviders<SettingsGeneratorModule> {\n return {\n ngModule: SettingsGeneratorModule,\n providers: [\n {\n provide: FDP_SETTINGS_GENERATOR_CONFIG,\n useValue: { ...FDP_SETTINGS_GENERATOR_DEFAULT_CONFIG, ...config }\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -68,10 +68,10 @@ class BaseComponent {
68
68
  detectChanges() {
69
69
  this._cdr.detectChanges();
70
70
  }
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
72
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: BaseComponent, isStandalone: true, inputs: { ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaLabelledby: "ariaLabelledby", ariaDescribedBy: "ariaDescribedBy", id: "id", name: "name", width: "width", disabled: "disabled" }, ngImport: i0 }); }
71
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
72
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: BaseComponent, isStandalone: true, inputs: { ariaLabel: "ariaLabel", ariaLabelledBy: "ariaLabelledBy", ariaLabelledby: "ariaLabelledby", ariaDescribedBy: "ariaDescribedBy", id: "id", name: "name", width: "width", disabled: "disabled" }, ngImport: i0 }); }
73
73
  }
74
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BaseComponent, decorators: [{
74
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: BaseComponent, decorators: [{
75
75
  type: Directive
76
76
  }], propDecorators: { ariaLabel: [{
77
77
  type: Input
@@ -105,10 +105,10 @@ class PlatformConfig {
105
105
  static getInjector() {
106
106
  return PlatformConfig.injector;
107
107
  }
108
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PlatformConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
109
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PlatformConfig, providedIn: 'root' }); }
108
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PlatformConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
109
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PlatformConfig, providedIn: 'root' }); }
110
110
  }
111
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PlatformConfig, decorators: [{
111
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PlatformConfig, decorators: [{
112
112
  type: Injectable,
113
113
  args: [{ providedIn: 'root' }]
114
114
  }] });
@@ -923,10 +923,10 @@ class BaseInput extends BaseComponent {
923
923
  getValue() {
924
924
  return this._value;
925
925
  }
926
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BaseInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
927
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "21.1.0", type: BaseInput, isStandalone: true, inputs: { placeholder: "placeholder", triggers: "triggers", state: "state", stateMessage: "stateMessage", stateMessageConfig: "stateMessageConfig", disabled: "disabled", readonly: "readonly", editable: ["editable", "editable", booleanAttribute], validationStrategy: "validationStrategy" }, viewQueries: [{ propertyName: "_elementRef", first: true, predicate: ["inputElementRef"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0 }); }
926
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: BaseInput, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
927
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "22.0.5", type: BaseInput, isStandalone: true, inputs: { placeholder: "placeholder", triggers: "triggers", state: "state", stateMessage: "stateMessage", stateMessageConfig: "stateMessageConfig", disabled: "disabled", readonly: "readonly", editable: ["editable", "editable", booleanAttribute], validationStrategy: "validationStrategy" }, viewQueries: [{ propertyName: "_elementRef", first: true, predicate: ["inputElementRef"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0 }); }
928
928
  }
929
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: BaseInput, decorators: [{
929
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: BaseInput, decorators: [{
930
930
  type: Directive
931
931
  }], ctorParameters: () => [], propDecorators: { placeholder: [{
932
932
  type: Input
@@ -1010,10 +1010,10 @@ class CollectionBaseInput extends BaseInput {
1010
1010
  return this.objectGet(obj[is[0]], is.slice(1));
1011
1011
  }
1012
1012
  }
1013
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CollectionBaseInput, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1014
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: CollectionBaseInput, isStandalone: true, inputs: { list: "list", lookupKey: "lookupKey", displayKey: "displayKey" }, usesInheritance: true, ngImport: i0 }); }
1013
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CollectionBaseInput, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1014
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: CollectionBaseInput, isStandalone: true, inputs: { list: "list", lookupKey: "lookupKey", displayKey: "displayKey" }, usesInheritance: true, ngImport: i0 }); }
1015
1015
  }
1016
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: CollectionBaseInput, decorators: [{
1016
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CollectionBaseInput, decorators: [{
1017
1017
  type: Directive
1018
1018
  }], propDecorators: { list: [{
1019
1019
  type: Input
@@ -1068,10 +1068,10 @@ class ResponsiveBreakPointConfig {
1068
1068
  /** Small screen */
1069
1069
  this.S = RESPONSIVE_BREAKPOINTS['S'];
1070
1070
  }
1071
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ResponsiveBreakPointConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1072
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ResponsiveBreakPointConfig }); }
1071
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ResponsiveBreakPointConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1072
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ResponsiveBreakPointConfig }); }
1073
1073
  }
1074
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ResponsiveBreakPointConfig, decorators: [{
1074
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ResponsiveBreakPointConfig, decorators: [{
1075
1075
  type: Injectable
1076
1076
  }] });
1077
1077
  class ResponsiveBreakpointsService {
@@ -1141,10 +1141,10 @@ class ResponsiveBreakpointsService {
1141
1141
  _getBreakpointName(breakpointValue) {
1142
1142
  return this.breakpoints[breakpointValue];
1143
1143
  }
1144
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ResponsiveBreakpointsService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
1145
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ResponsiveBreakpointsService, providedIn: 'root' }); }
1144
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ResponsiveBreakpointsService, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Injectable }); }
1145
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ResponsiveBreakpointsService, providedIn: 'root' }); }
1146
1146
  }
1147
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ResponsiveBreakpointsService, decorators: [{
1147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ResponsiveBreakpointsService, decorators: [{
1148
1148
  type: Injectable,
1149
1149
  args: [{
1150
1150
  providedIn: 'root'
@@ -1223,10 +1223,10 @@ class InLineLayoutCollectionBaseInput extends CollectionBaseInput {
1223
1223
  }
1224
1224
  }
1225
1225
  }
1226
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InLineLayoutCollectionBaseInput, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1227
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.1.0", type: InLineLayoutCollectionBaseInput, isStandalone: true, inputs: { inlineLayout: "inlineLayout" }, usesInheritance: true, ngImport: i0 }); }
1226
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: InLineLayoutCollectionBaseInput, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
1227
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: InLineLayoutCollectionBaseInput, isStandalone: true, inputs: { inlineLayout: "inlineLayout" }, usesInheritance: true, ngImport: i0 }); }
1228
1228
  }
1229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: InLineLayoutCollectionBaseInput, decorators: [{
1229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: InLineLayoutCollectionBaseInput, decorators: [{
1230
1230
  type: Directive
1231
1231
  }], propDecorators: { inlineLayout: [{
1232
1232
  type: Input
@@ -1255,10 +1255,10 @@ class ConvertBytesPipe {
1255
1255
  const i = Math.floor(Math.log(bytes) / Math.log(k));
1256
1256
  return parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + this._sizes[i];
1257
1257
  }
1258
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ConvertBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1259
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: ConvertBytesPipe, isStandalone: true, name: "convertBytes" }); }
1258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ConvertBytesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
1259
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.5", ngImport: i0, type: ConvertBytesPipe, isStandalone: true, name: "convertBytes" }); }
1260
1260
  }
1261
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: ConvertBytesPipe, decorators: [{
1261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ConvertBytesPipe, decorators: [{
1262
1262
  type: Pipe,
1263
1263
  args: [{
1264
1264
  name: 'convertBytes',
@@ -1271,11 +1271,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
1271
1271
  * Use direct imports of components and directives.
1272
1272
  */
1273
1273
  class PlatformPipeModule {
1274
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PlatformPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1275
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: PlatformPipeModule, imports: [ConvertBytesPipe], exports: [ConvertBytesPipe] }); }
1276
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PlatformPipeModule }); }
1274
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PlatformPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1275
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.5", ngImport: i0, type: PlatformPipeModule, imports: [ConvertBytesPipe], exports: [ConvertBytesPipe] }); }
1276
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PlatformPipeModule }); }
1277
1277
  }
1278
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PlatformPipeModule, decorators: [{
1278
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PlatformPipeModule, decorators: [{
1279
1279
  type: NgModule,
1280
1280
  args: [{
1281
1281
  imports: [ConvertBytesPipe],
@@ -69,10 +69,10 @@ class SliderComponent extends BaseInput {
69
69
  this.value = modelValue;
70
70
  this.sliderChange.emit(event);
71
71
  }
72
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SliderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.1.0", type: SliderComponent, isStandalone: true, selector: "fdp-slider", inputs: { class: "class", min: "min", max: "max", step: "step", jump: "jump", tickmarksBetweenLabels: "tickmarksBetweenLabels", mode: "mode", showTicks: "showTicks", showTicksLabels: "showTicksLabels", customValues: "customValues", tooltipMode: "tooltipMode", hideProgressBar: "hideProgressBar", vertical: "vertical", value: "value" }, outputs: { sliderChange: "sliderChange" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SliderComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<fd-slider\n [id]=\"id\"\n [class]=\"class\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [jump]=\"jump\"\n [mode]=\"mode\"\n [disabled]=\"disabled\"\n [showTicks]=\"showTicks\"\n [showTicksLabels]=\"showTicksLabels\"\n [tickmarksBetweenLabels]=\"tickmarksBetweenLabels\"\n [customValues]=\"customValues\"\n [tooltipMode]=\"tooltipMode\"\n [hideProgressBar]=\"hideProgressBar\"\n [ngModel]=\"value\"\n [vertical]=\"vertical\"\n (ngModelChange)=\"_onModelChange($event)\"\n></fd-slider>\n", dependencies: [{ kind: "component", type: SliderComponent$1, selector: "fd-slider", inputs: ["id", "class", "ariaLabelledBy", "ariaLabel", "min", "max", "step", "jump", "tickmarksBetweenLabels", "mode", "showTicks", "showTicksLabels", "customValues", "tooltipMode", "hideProgressBar", "disabled", "vertical", "value"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
72
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SliderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: SliderComponent, isStandalone: true, selector: "fdp-slider", inputs: { class: "class", min: "min", max: "max", step: "step", jump: "jump", tickmarksBetweenLabels: "tickmarksBetweenLabels", mode: "mode", showTicks: "showTicks", showTicksLabels: "showTicksLabels", customValues: "customValues", tooltipMode: "tooltipMode", hideProgressBar: "hideProgressBar", vertical: "vertical", value: "value" }, outputs: { sliderChange: "sliderChange" }, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SliderComponent, multi: true }], usesInheritance: true, ngImport: i0, template: "<fd-slider\n [id]=\"id\"\n [class]=\"class\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [jump]=\"jump\"\n [mode]=\"mode\"\n [disabled]=\"disabled\"\n [showTicks]=\"showTicks\"\n [showTicksLabels]=\"showTicksLabels\"\n [tickmarksBetweenLabels]=\"tickmarksBetweenLabels\"\n [customValues]=\"customValues\"\n [tooltipMode]=\"tooltipMode\"\n [hideProgressBar]=\"hideProgressBar\"\n [ngModel]=\"value\"\n [vertical]=\"vertical\"\n (ngModelChange)=\"_onModelChange($event)\"\n></fd-slider>\n", dependencies: [{ kind: "component", type: SliderComponent$1, selector: "fd-slider", inputs: ["id", "class", "ariaLabelledBy", "ariaLabel", "min", "max", "step", "jump", "tickmarksBetweenLabels", "mode", "showTicks", "showTicksLabels", "customValues", "tooltipMode", "hideProgressBar", "disabled", "vertical", "value"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
74
74
  }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: SliderComponent, decorators: [{
75
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SliderComponent, decorators: [{
76
76
  type: Component,
77
77
  args: [{ selector: 'fdp-slider', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: FD_FORM_FIELD_CONTROL, useExisting: SliderComponent, multi: true }], imports: [SliderComponent$1, FormsModule], template: "<fd-slider\n [id]=\"id\"\n [class]=\"class\"\n [ariaLabel]=\"ariaLabel\"\n [ariaLabelledBy]=\"ariaLabelledBy\"\n [min]=\"min\"\n [max]=\"max\"\n [step]=\"step\"\n [jump]=\"jump\"\n [mode]=\"mode\"\n [disabled]=\"disabled\"\n [showTicks]=\"showTicks\"\n [showTicksLabels]=\"showTicksLabels\"\n [tickmarksBetweenLabels]=\"tickmarksBetweenLabels\"\n [customValues]=\"customValues\"\n [tooltipMode]=\"tooltipMode\"\n [hideProgressBar]=\"hideProgressBar\"\n [ngModel]=\"value\"\n [vertical]=\"vertical\"\n (ngModelChange)=\"_onModelChange($event)\"\n></fd-slider>\n" }]
78
78
  }], propDecorators: { class: [{
@@ -112,11 +112,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImpor
112
112
  * Use direct imports of components and directives.
113
113
  */
114
114
  class PlatformSliderModule {
115
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PlatformSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
116
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.1.0", ngImport: i0, type: PlatformSliderModule, imports: [ContentDensityModule, SliderComponent], exports: [SliderComponent] }); }
117
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PlatformSliderModule, imports: [ContentDensityModule, SliderComponent] }); }
115
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PlatformSliderModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
116
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.5", ngImport: i0, type: PlatformSliderModule, imports: [ContentDensityModule, SliderComponent], exports: [SliderComponent] }); }
117
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PlatformSliderModule, imports: [ContentDensityModule, SliderComponent] }); }
118
118
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.0", ngImport: i0, type: PlatformSliderModule, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PlatformSliderModule, decorators: [{
120
120
  type: NgModule,
121
121
  args: [{
122
122
  imports: [ContentDensityModule, SliderComponent],