@fundamental-ngx/platform 0.55.4 → 0.55.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-form.mjs +11 -11
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +7 -3
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +10 -10
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-menu.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-panel.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-table.mjs +10 -10
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/icon-tab-bar/icon-tab-bar.component.d.ts +3 -1
- package/package.json +4 -4
- package/schematics/ng-add/index.js +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 } 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 { merge } from 'lodash-es';\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 } from '@fundamental-ngx/cdk/utils';\nimport { DynamicFormValue, FormGeneratorComponent } from '@fundamental-ngx/platform/form';\nimport { MessagePopoverFormWrapperComponent } from '@fundamental-ngx/platform/message-popover';\nimport { set } from 'lodash-es';\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 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 { 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 ]\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 private readonly _initialClass = 'fdp-settings-generator__content-section';\n\n /** @hidden */\n @ViewChildren(TabPanelComponent)\n private readonly _tabPanels: QueryList<TabPanelComponent>;\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","<h5 fd-title [wrap]=\"!!settings?.wrapSectionTitle\" class=\"fdp-settings-generator__title\">\n @if (mobile) {\n <button fd-button glyph=\"navigation-left-arrow\" fdType=\"transparent\" (click)=\"goBack.emit()\"></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</h5>\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 DestroyRef,\n ElementRef,\n HostBinding,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n inject\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 private 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 _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 <h5 fd-title class=\"fdp-settings-generator__title\">\n {{ 'platformSettingsGenerator.settingsLabel' | fdTranslate }}\n </h5>\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\">\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 private 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@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 } 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 { merge } from 'lodash-es';\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 } from '@fundamental-ngx/cdk/utils';\nimport { DynamicFormValue, FormGeneratorComponent } from '@fundamental-ngx/platform/form';\nimport { MessagePopoverFormWrapperComponent } from '@fundamental-ngx/platform/message-popover';\nimport { set } from 'lodash-es';\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 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 { 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 ]\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 private readonly _initialClass = 'fdp-settings-generator__content-section';\n\n /** @hidden */\n @ViewChildren(TabPanelComponent)\n private readonly _tabPanels: QueryList<TabPanelComponent>;\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","<h5 fd-title [wrap]=\"!!settings?.wrapSectionTitle\" class=\"fdp-settings-generator__title\">\n @if (mobile) {\n <button fd-button glyph=\"navigation-left-arrow\" fdType=\"transparent\" (click)=\"goBack.emit()\"></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</h5>\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 DestroyRef,\n ElementRef,\n HostBinding,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n inject\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 private 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 _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 <h5 fd-title class=\"fdp-settings-generator__title\">\n {{ 'platformSettingsGenerator.settingsLabel' | fdTranslate }}\n </h5>\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\">\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 private 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@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,11 +68,11 @@ class SplitMenuButtonComponent extends BaseComponent {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: SplitMenuButtonComponent, deps: [{ token: i1.RtlService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
71
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: SplitMenuButtonComponent, isStandalone: true, selector: "fdp-split-menu-button", inputs: { fixedWidth: "fixedWidth", title: "title", menuTitle: "menuTitle", buttonLabel: "buttonLabel", menu: "menu", icon: "icon", iconFont: "iconFont", type: "type" }, outputs: { primaryButtonClick: "primaryButtonClick" }, viewQueries: [{ propertyName: "primaryBtn", first: true, predicate: ["primaryBtn"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"fd-button-split\"\n [class]=\"typeClass\"\n role=\"group\"\n aria-label=\"split-button\"\n [attr.dir]=\"dir$()\"\n [style.max-width]=\"splitButtonMaxWidth\"\n>\n <button\n fd-button\n #primaryBtn\n [label]=\"buttonLabel\"\n [style.width]=\"primaryButtonWidth\"\n [style.overflow]=\"'hidden'\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n [fdType]=\"type\"\n [glyph]=\"icon\"\n [glyphFont]=\"iconFont\"\n [attr.tabindex]=\"tabindex\"\n (click)=\"primaryButtonClicked($event)\"\n ></button>\n <button\n fd-button\n [attr.id]=\"secondaryId\"\n [attr.name]=\"name\"\n [attr.title]=\"menuTitle\"\n [attr.aria-label]=\"menuTitle\"\n glyph=\"slim-arrow-down\"\n [disabled]=\"disabled\"\n [fdType]=\"type\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-haspopup]=\"true\"\n [fdpMenuTriggerFor]=\"menu\"\n ></button>\n</div>\n", styles: [".fd-button-split{--fdButtonSplit_Separator_Offset:2.125rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;vertical-align:middle}.fd-button-split:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Default_Shadow_Color)}.fd-button-split:after,.fd-button-split:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button-split:before{background:var(--sapButton_Background);border-radius:var(--sapButton_BorderCornerRadius);-webkit-box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split:after{background:var(--sapButton_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split.is-hover:after,.fd-button-split:hover:after{display:none}.fd-button-split[dir=rtl]:after,[dir=rtl] .fd-button-split:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split>button{margin-block:0;margin-inline:0;--fdButtonPrioritizedBorderColor:var(--fdButton_Split_Border_Color);--fdButtonPrioritizedBackgroundColor:var(--fdButton_Split_Background_Color)}.fd-button-split>button:first-of-type{-webkit-margin-end:var(--fdButton_Menu_Offset);display:-webkit-box;display:-ms-flexbox;display:flex;margin-inline-end:var(--fdButton_Menu_Offset);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;border-radius:var(--fdButton_Border_Radius_Left);justify-content:flex-start}.fd-button-split>button:first-of-type.is-focus,.fd-button-split>button:first-of-type:focus{z-index:5}.fd-button-split>button:first-of-type.is-focus:after,.fd-button-split>button:first-of-type:focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Left)}.fd-button-split>button:first-of-type[dir=rtl],[dir=rtl] .fd-button-split>button:first-of-type{border-radius:var(--fdButton_Border_Radius_Left_RTL)}.fd-button-split>button:first-of-type[dir=rtl].is-focus,.fd-button-split>button:first-of-type[dir=rtl]:focus,[dir=rtl] .fd-button-split>button:first-of-type.is-focus,[dir=rtl] .fd-button-split>button:first-of-type:focus{z-index:5}.fd-button-split>button:first-of-type[dir=rtl].is-focus:after,.fd-button-split>button:first-of-type[dir=rtl]:focus:after,[dir=rtl] .fd-button-split>button:first-of-type.is-focus:after,[dir=rtl] .fd-button-split>button:first-of-type:focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Left_RTL)}.fd-button-split>button:nth-of-type(2){border-radius:var(--fdButton_Border_Radius_Right)}.fd-button-split>button:nth-of-type(2).is-focus,.fd-button-split>button:nth-of-type(2):focus{z-index:5}.fd-button-split>button:nth-of-type(2).is-focus:after,.fd-button-split>button:nth-of-type(2):focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Right)}.fd-button-split>button:nth-of-type(2)[dir=rtl],[dir=rtl] .fd-button-split>button:nth-of-type(2){border-radius:var(--fdButton_Border_Radius_Right_RTL)}.fd-button-split>button:nth-of-type(2)[dir=rtl].is-focus,.fd-button-split>button:nth-of-type(2)[dir=rtl]:focus,[dir=rtl] .fd-button-split>button:nth-of-type(2).is-focus,[dir=rtl] .fd-button-split>button:nth-of-type(2):focus{z-index:5}.fd-button-split>button:nth-of-type(2)[dir=rtl].is-focus:after,.fd-button-split>button:nth-of-type(2)[dir=rtl]:focus:after,[dir=rtl] .fd-button-split>button:nth-of-type(2).is-focus:after,[dir=rtl] .fd-button-split>button:nth-of-type(2):focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Right_RTL)}.fd-button-split>button.is-hover,.fd-button-split>button:hover{-webkit-box-shadow:none;box-shadow:none;z-index:1}.fd-button-split--emphasized{position:relative}.fd-button-split--emphasized:before{background:var(--sapButton_Emphasized_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--emphasized:after{background:var(--sapButton_Emphasized_TextColor);content:\"\";display:var(--fdButton_Menu_Emphasized_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--emphasized.is-hover:after,.fd-button-split--emphasized:hover:after{display:var(--fdButton_Menu_Emphasized_Hover_Separator_Display)}.fd-button-split--emphasized[dir=rtl]:after,[dir=rtl] .fd-button-split--emphasized:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--emphasized:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Emphasized_Shadow_Color)}.fd-button-split--transparent{position:relative}.fd-button-split--transparent:before{background:var(--sapButton_Lite_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--transparent:after{background:var(--sapButton_Lite_TextColor);content:\"\";display:var(--fdButton_Menu_Transparent_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--transparent[dir=rtl]:after,[dir=rtl] .fd-button-split--transparent:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--transparent:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Transparent_Border_Color)}.fd-button-split--ghost{position:relative}.fd-button-split--ghost:before{background:var(--fdButton_Ghost_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--ghost:after{background:var(--sapButton_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--ghost[dir=rtl]:after,[dir=rtl] .fd-button-split--ghost:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--ghost:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Transparent_Border_Color)}.fd-button-split--positive{position:relative}.fd-button-split--positive:before{background:var(--sapButton_Accept_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--positive:after{background:var(--sapButton_Accept_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--positive[dir=rtl]:after,[dir=rtl] .fd-button-split--positive:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--positive:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Positive_Shadow_Color)}.fd-button-split--negative{position:relative}.fd-button-split--negative:before{background:var(--sapButton_Reject_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--negative:after{background:var(--sapButton_Reject_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--negative[dir=rtl]:after,[dir=rtl] .fd-button-split--negative:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--negative:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Negative_Shadow_Color)}.fd-button-split--attention{position:relative}.fd-button-split--attention:before{background:var(--sapButton_Attention_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--attention:after{background:var(--sapButton_Attention_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--attention[dir=rtl]:after,[dir=rtl] .fd-button-split--attention:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--attention:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Attention_Shadow_Color)}.fd-button-split .fd-button-split__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:inherit;display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;max-width:var(--fdButtonSplit_Text_Max_Width,8.5rem);overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-button-split .fd-button-split__text:after,.fd-button-split .fd-button-split__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button-split--emphasized>button:first-of-type{-webkit-margin-end:var(--fdButton_Menu_Emphasized_Margin);margin-inline-end:var(--fdButton_Menu_Emphasized_Margin)}.fd-button-split--emphasized .fd-button-split__text{font-weight:var(--sapButton_Emphasized_FontWeight)}.fd-button-split[class*=-compact],.fd-button-split[class*=-condensed],[class*=-compact] .fd-button-split:not([class*=-cozy]),[class*=-condensed] .fd-button-split:not([class*=-cozy]){--fdButtonSplit_Text_Max_Width:9rem;--fdButtonSplit_Separator_Offset:1.875rem}:host{display:inline-block}\n/*! Bundled license information:\n\nfundamental-styles/dist/button-split.css:\n (*!\n * Fundamental Library Styles v0.38.0\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: MenuTriggerDirective, selector: "[fdpMenuTriggerFor]", inputs: ["fdpMenuTriggerFor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
71
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.3", type: SplitMenuButtonComponent, isStandalone: true, selector: "fdp-split-menu-button", inputs: { fixedWidth: "fixedWidth", title: "title", menuTitle: "menuTitle", buttonLabel: "buttonLabel", menu: "menu", icon: "icon", iconFont: "iconFont", type: "type" }, outputs: { primaryButtonClick: "primaryButtonClick" }, viewQueries: [{ propertyName: "primaryBtn", first: true, predicate: ["primaryBtn"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<div\n class=\"fd-button-split\"\n [class]=\"typeClass\"\n role=\"group\"\n aria-label=\"split-button\"\n [attr.dir]=\"dir$()\"\n [style.max-width]=\"splitButtonMaxWidth\"\n>\n <button\n fd-button\n #primaryBtn\n [label]=\"buttonLabel\"\n [style.width]=\"primaryButtonWidth\"\n [style.overflow]=\"'hidden'\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n [fdType]=\"type\"\n [glyph]=\"icon\"\n [glyphFont]=\"iconFont\"\n [attr.tabindex]=\"tabindex\"\n (click)=\"primaryButtonClicked($event)\"\n ></button>\n <button\n fd-button\n [attr.id]=\"secondaryId\"\n [attr.name]=\"name\"\n [attr.title]=\"menuTitle\"\n [attr.aria-label]=\"menuTitle\"\n glyph=\"slim-arrow-down\"\n [disabled]=\"disabled\"\n [fdType]=\"type\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-haspopup]=\"true\"\n [fdpMenuTriggerFor]=\"menu\"\n ></button>\n</div>\n", styles: [".fd-button-split{--fdButtonSplit_Separator_Offset:2.125rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;vertical-align:middle}.fd-button-split:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Default_Shadow_Color)}.fd-button-split:after,.fd-button-split:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button-split:before{background:var(--sapButton_Background);border-radius:var(--sapButton_BorderCornerRadius);-webkit-box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split:after{background:var(--sapButton_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split.is-hover:after,.fd-button-split:hover:after{display:none}.fd-button-split[dir=rtl]:after,[dir=rtl] .fd-button-split:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split>button{margin-block:0;margin-inline:0;--fdButtonPrioritizedBorderColor:var(--fdButton_Split_Border_Color);--fdButtonPrioritizedBackgroundColor:var(--fdButton_Split_Background_Color)}.fd-button-split>button:first-of-type{-webkit-margin-end:var(--fdButton_Menu_Offset);display:-webkit-box;display:-ms-flexbox;display:flex;margin-inline-end:var(--fdButton_Menu_Offset);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;border-radius:var(--fdButton_Border_Radius_Left);justify-content:flex-start}.fd-button-split>button:first-of-type.is-focus,.fd-button-split>button:first-of-type:focus{z-index:5}.fd-button-split>button:first-of-type.is-focus:after,.fd-button-split>button:first-of-type:focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Left)}.fd-button-split>button:first-of-type[dir=rtl],[dir=rtl] .fd-button-split>button:first-of-type{border-radius:var(--fdButton_Border_Radius_Left_RTL)}.fd-button-split>button:first-of-type[dir=rtl].is-focus,.fd-button-split>button:first-of-type[dir=rtl]:focus,[dir=rtl] .fd-button-split>button:first-of-type.is-focus,[dir=rtl] .fd-button-split>button:first-of-type:focus{z-index:5}.fd-button-split>button:first-of-type[dir=rtl].is-focus:after,.fd-button-split>button:first-of-type[dir=rtl]:focus:after,[dir=rtl] .fd-button-split>button:first-of-type.is-focus:after,[dir=rtl] .fd-button-split>button:first-of-type:focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Left_RTL)}.fd-button-split>button:nth-of-type(2){border-radius:var(--fdButton_Border_Radius_Right)}.fd-button-split>button:nth-of-type(2).is-focus,.fd-button-split>button:nth-of-type(2):focus{z-index:5}.fd-button-split>button:nth-of-type(2).is-focus:after,.fd-button-split>button:nth-of-type(2):focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Right)}.fd-button-split>button:nth-of-type(2)[dir=rtl],[dir=rtl] .fd-button-split>button:nth-of-type(2){border-radius:var(--fdButton_Border_Radius_Right_RTL)}.fd-button-split>button:nth-of-type(2)[dir=rtl].is-focus,.fd-button-split>button:nth-of-type(2)[dir=rtl]:focus,[dir=rtl] .fd-button-split>button:nth-of-type(2).is-focus,[dir=rtl] .fd-button-split>button:nth-of-type(2):focus{z-index:5}.fd-button-split>button:nth-of-type(2)[dir=rtl].is-focus:after,.fd-button-split>button:nth-of-type(2)[dir=rtl]:focus:after,[dir=rtl] .fd-button-split>button:nth-of-type(2).is-focus:after,[dir=rtl] .fd-button-split>button:nth-of-type(2):focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Right_RTL)}.fd-button-split>button.is-hover,.fd-button-split>button:hover{-webkit-box-shadow:none;box-shadow:none;z-index:1}.fd-button-split--emphasized{position:relative}.fd-button-split--emphasized:before{background:var(--sapButton_Emphasized_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--emphasized:after{background:var(--sapButton_Emphasized_TextColor);content:\"\";display:var(--fdButton_Menu_Emphasized_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--emphasized.is-hover:after,.fd-button-split--emphasized:hover:after{display:var(--fdButton_Menu_Emphasized_Hover_Separator_Display)}.fd-button-split--emphasized[dir=rtl]:after,[dir=rtl] .fd-button-split--emphasized:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--emphasized:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Emphasized_Shadow_Color)}.fd-button-split--transparent{position:relative}.fd-button-split--transparent:before{background:var(--sapButton_Lite_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--transparent:after{background:var(--sapButton_Lite_TextColor);content:\"\";display:var(--fdButton_Menu_Transparent_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--transparent[dir=rtl]:after,[dir=rtl] .fd-button-split--transparent:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--transparent:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Transparent_Border_Color)}.fd-button-split--ghost{position:relative}.fd-button-split--ghost:before{background:var(--fdButton_Ghost_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--ghost:after{background:var(--sapButton_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--ghost[dir=rtl]:after,[dir=rtl] .fd-button-split--ghost:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--ghost:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Transparent_Border_Color)}.fd-button-split--positive{position:relative}.fd-button-split--positive:before{background:var(--sapButton_Accept_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--positive:after{background:var(--sapButton_Accept_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--positive[dir=rtl]:after,[dir=rtl] .fd-button-split--positive:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--positive:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Positive_Shadow_Color)}.fd-button-split--negative{position:relative}.fd-button-split--negative:before{background:var(--sapButton_Reject_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--negative:after{background:var(--sapButton_Reject_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--negative[dir=rtl]:after,[dir=rtl] .fd-button-split--negative:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--negative:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Negative_Shadow_Color)}.fd-button-split--attention{position:relative}.fd-button-split--attention:before{background:var(--sapButton_Attention_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--attention:after{background:var(--sapButton_Attention_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--attention[dir=rtl]:after,[dir=rtl] .fd-button-split--attention:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--attention:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Attention_Shadow_Color)}.fd-button-split .fd-button-split__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:inherit;display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;max-width:var(--fdButtonSplit_Text_Max_Width,8.5rem);overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-button-split .fd-button-split__text:after,.fd-button-split .fd-button-split__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button-split--emphasized>button:first-of-type{-webkit-margin-end:var(--fdButton_Menu_Emphasized_Margin);margin-inline-end:var(--fdButton_Menu_Emphasized_Margin)}.fd-button-split--emphasized .fd-button-split__text{font-weight:var(--sapButton_Emphasized_FontWeight)}.fd-button-split[class*=-compact],.fd-button-split[class*=-condensed],[class*=-compact] .fd-button-split:not([class*=-cozy]),[class*=-condensed] .fd-button-split:not([class*=-cozy]){--fdButtonSplit_Text_Max_Width:9rem;--fdButtonSplit_Separator_Offset:1.875rem}:host{display:inline-block}\n/*! Bundled license information:\n\nfundamental-styles/dist/button-split.css:\n (*!\n * Fundamental Library Styles v0.39.2\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "directive", type: MenuTriggerDirective, selector: "[fdpMenuTriggerFor]", inputs: ["fdpMenuTriggerFor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
72
72
|
}
|
|
73
73
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: SplitMenuButtonComponent, decorators: [{
|
|
74
74
|
type: Component,
|
|
75
|
-
args: [{ selector: 'fdp-split-menu-button', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ButtonComponent, MenuTriggerDirective], template: "<div\n class=\"fd-button-split\"\n [class]=\"typeClass\"\n role=\"group\"\n aria-label=\"split-button\"\n [attr.dir]=\"dir$()\"\n [style.max-width]=\"splitButtonMaxWidth\"\n>\n <button\n fd-button\n #primaryBtn\n [label]=\"buttonLabel\"\n [style.width]=\"primaryButtonWidth\"\n [style.overflow]=\"'hidden'\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n [fdType]=\"type\"\n [glyph]=\"icon\"\n [glyphFont]=\"iconFont\"\n [attr.tabindex]=\"tabindex\"\n (click)=\"primaryButtonClicked($event)\"\n ></button>\n <button\n fd-button\n [attr.id]=\"secondaryId\"\n [attr.name]=\"name\"\n [attr.title]=\"menuTitle\"\n [attr.aria-label]=\"menuTitle\"\n glyph=\"slim-arrow-down\"\n [disabled]=\"disabled\"\n [fdType]=\"type\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-haspopup]=\"true\"\n [fdpMenuTriggerFor]=\"menu\"\n ></button>\n</div>\n", styles: [".fd-button-split{--fdButtonSplit_Separator_Offset:2.125rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;vertical-align:middle}.fd-button-split:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Default_Shadow_Color)}.fd-button-split:after,.fd-button-split:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button-split:before{background:var(--sapButton_Background);border-radius:var(--sapButton_BorderCornerRadius);-webkit-box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split:after{background:var(--sapButton_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split.is-hover:after,.fd-button-split:hover:after{display:none}.fd-button-split[dir=rtl]:after,[dir=rtl] .fd-button-split:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split>button{margin-block:0;margin-inline:0;--fdButtonPrioritizedBorderColor:var(--fdButton_Split_Border_Color);--fdButtonPrioritizedBackgroundColor:var(--fdButton_Split_Background_Color)}.fd-button-split>button:first-of-type{-webkit-margin-end:var(--fdButton_Menu_Offset);display:-webkit-box;display:-ms-flexbox;display:flex;margin-inline-end:var(--fdButton_Menu_Offset);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;border-radius:var(--fdButton_Border_Radius_Left);justify-content:flex-start}.fd-button-split>button:first-of-type.is-focus,.fd-button-split>button:first-of-type:focus{z-index:5}.fd-button-split>button:first-of-type.is-focus:after,.fd-button-split>button:first-of-type:focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Left)}.fd-button-split>button:first-of-type[dir=rtl],[dir=rtl] .fd-button-split>button:first-of-type{border-radius:var(--fdButton_Border_Radius_Left_RTL)}.fd-button-split>button:first-of-type[dir=rtl].is-focus,.fd-button-split>button:first-of-type[dir=rtl]:focus,[dir=rtl] .fd-button-split>button:first-of-type.is-focus,[dir=rtl] .fd-button-split>button:first-of-type:focus{z-index:5}.fd-button-split>button:first-of-type[dir=rtl].is-focus:after,.fd-button-split>button:first-of-type[dir=rtl]:focus:after,[dir=rtl] .fd-button-split>button:first-of-type.is-focus:after,[dir=rtl] .fd-button-split>button:first-of-type:focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Left_RTL)}.fd-button-split>button:nth-of-type(2){border-radius:var(--fdButton_Border_Radius_Right)}.fd-button-split>button:nth-of-type(2).is-focus,.fd-button-split>button:nth-of-type(2):focus{z-index:5}.fd-button-split>button:nth-of-type(2).is-focus:after,.fd-button-split>button:nth-of-type(2):focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Right)}.fd-button-split>button:nth-of-type(2)[dir=rtl],[dir=rtl] .fd-button-split>button:nth-of-type(2){border-radius:var(--fdButton_Border_Radius_Right_RTL)}.fd-button-split>button:nth-of-type(2)[dir=rtl].is-focus,.fd-button-split>button:nth-of-type(2)[dir=rtl]:focus,[dir=rtl] .fd-button-split>button:nth-of-type(2).is-focus,[dir=rtl] .fd-button-split>button:nth-of-type(2):focus{z-index:5}.fd-button-split>button:nth-of-type(2)[dir=rtl].is-focus:after,.fd-button-split>button:nth-of-type(2)[dir=rtl]:focus:after,[dir=rtl] .fd-button-split>button:nth-of-type(2).is-focus:after,[dir=rtl] .fd-button-split>button:nth-of-type(2):focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Right_RTL)}.fd-button-split>button.is-hover,.fd-button-split>button:hover{-webkit-box-shadow:none;box-shadow:none;z-index:1}.fd-button-split--emphasized{position:relative}.fd-button-split--emphasized:before{background:var(--sapButton_Emphasized_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--emphasized:after{background:var(--sapButton_Emphasized_TextColor);content:\"\";display:var(--fdButton_Menu_Emphasized_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--emphasized.is-hover:after,.fd-button-split--emphasized:hover:after{display:var(--fdButton_Menu_Emphasized_Hover_Separator_Display)}.fd-button-split--emphasized[dir=rtl]:after,[dir=rtl] .fd-button-split--emphasized:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--emphasized:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Emphasized_Shadow_Color)}.fd-button-split--transparent{position:relative}.fd-button-split--transparent:before{background:var(--sapButton_Lite_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--transparent:after{background:var(--sapButton_Lite_TextColor);content:\"\";display:var(--fdButton_Menu_Transparent_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--transparent[dir=rtl]:after,[dir=rtl] .fd-button-split--transparent:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--transparent:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Transparent_Border_Color)}.fd-button-split--ghost{position:relative}.fd-button-split--ghost:before{background:var(--fdButton_Ghost_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--ghost:after{background:var(--sapButton_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--ghost[dir=rtl]:after,[dir=rtl] .fd-button-split--ghost:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--ghost:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Transparent_Border_Color)}.fd-button-split--positive{position:relative}.fd-button-split--positive:before{background:var(--sapButton_Accept_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--positive:after{background:var(--sapButton_Accept_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--positive[dir=rtl]:after,[dir=rtl] .fd-button-split--positive:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--positive:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Positive_Shadow_Color)}.fd-button-split--negative{position:relative}.fd-button-split--negative:before{background:var(--sapButton_Reject_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--negative:after{background:var(--sapButton_Reject_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--negative[dir=rtl]:after,[dir=rtl] .fd-button-split--negative:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--negative:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Negative_Shadow_Color)}.fd-button-split--attention{position:relative}.fd-button-split--attention:before{background:var(--sapButton_Attention_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--attention:after{background:var(--sapButton_Attention_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--attention[dir=rtl]:after,[dir=rtl] .fd-button-split--attention:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--attention:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Attention_Shadow_Color)}.fd-button-split .fd-button-split__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:inherit;display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;max-width:var(--fdButtonSplit_Text_Max_Width,8.5rem);overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-button-split .fd-button-split__text:after,.fd-button-split .fd-button-split__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button-split--emphasized>button:first-of-type{-webkit-margin-end:var(--fdButton_Menu_Emphasized_Margin);margin-inline-end:var(--fdButton_Menu_Emphasized_Margin)}.fd-button-split--emphasized .fd-button-split__text{font-weight:var(--sapButton_Emphasized_FontWeight)}.fd-button-split[class*=-compact],.fd-button-split[class*=-condensed],[class*=-compact] .fd-button-split:not([class*=-cozy]),[class*=-condensed] .fd-button-split:not([class*=-cozy]){--fdButtonSplit_Text_Max_Width:9rem;--fdButtonSplit_Separator_Offset:1.875rem}:host{display:inline-block}\n/*! Bundled license information:\n\nfundamental-styles/dist/button-split.css:\n (*!\n * Fundamental Library Styles v0.38.0\n * Copyright (c) 2024 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
|
|
75
|
+
args: [{ selector: 'fdp-split-menu-button', changeDetection: ChangeDetectionStrategy.OnPush, imports: [ButtonComponent, MenuTriggerDirective], template: "<div\n class=\"fd-button-split\"\n [class]=\"typeClass\"\n role=\"group\"\n aria-label=\"split-button\"\n [attr.dir]=\"dir$()\"\n [style.max-width]=\"splitButtonMaxWidth\"\n>\n <button\n fd-button\n #primaryBtn\n [label]=\"buttonLabel\"\n [style.width]=\"primaryButtonWidth\"\n [style.overflow]=\"'hidden'\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.title]=\"title\"\n [attr.aria-label]=\"buttonLabel\"\n [disabled]=\"disabled\"\n [fdType]=\"type\"\n [glyph]=\"icon\"\n [glyphFont]=\"iconFont\"\n [attr.tabindex]=\"tabindex\"\n (click)=\"primaryButtonClicked($event)\"\n ></button>\n <button\n fd-button\n [attr.id]=\"secondaryId\"\n [attr.name]=\"name\"\n [attr.title]=\"menuTitle\"\n [attr.aria-label]=\"menuTitle\"\n glyph=\"slim-arrow-down\"\n [disabled]=\"disabled\"\n [fdType]=\"type\"\n [attr.tabindex]=\"tabindex\"\n [attr.aria-haspopup]=\"true\"\n [fdpMenuTriggerFor]=\"menu\"\n ></button>\n</div>\n", styles: [".fd-button-split{--fdButtonSplit_Separator_Offset:2.125rem;border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;padding-block:0;padding-inline:0;position:relative;vertical-align:middle}.fd-button-split:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Default_Shadow_Color)}.fd-button-split:after,.fd-button-split:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button-split:before{background:var(--sapButton_Background);border-radius:var(--sapButton_BorderCornerRadius);-webkit-box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));box-shadow:inset 0 0 0 var(--sapButton_BorderWidth) var(--fdButtonPrioritizedBorderColor,var(--sapButton_BorderColor));content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split:after{background:var(--sapButton_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split.is-hover:after,.fd-button-split:hover:after{display:none}.fd-button-split[dir=rtl]:after,[dir=rtl] .fd-button-split:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split>button{margin-block:0;margin-inline:0;--fdButtonPrioritizedBorderColor:var(--fdButton_Split_Border_Color);--fdButtonPrioritizedBackgroundColor:var(--fdButton_Split_Background_Color)}.fd-button-split>button:first-of-type{-webkit-margin-end:var(--fdButton_Menu_Offset);display:-webkit-box;display:-ms-flexbox;display:flex;margin-inline-end:var(--fdButton_Menu_Offset);-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:start;-ms-flex-pack:start;border-radius:var(--fdButton_Border_Radius_Left);justify-content:flex-start}.fd-button-split>button:first-of-type.is-focus,.fd-button-split>button:first-of-type:focus{z-index:5}.fd-button-split>button:first-of-type.is-focus:after,.fd-button-split>button:first-of-type:focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Left)}.fd-button-split>button:first-of-type[dir=rtl],[dir=rtl] .fd-button-split>button:first-of-type{border-radius:var(--fdButton_Border_Radius_Left_RTL)}.fd-button-split>button:first-of-type[dir=rtl].is-focus,.fd-button-split>button:first-of-type[dir=rtl]:focus,[dir=rtl] .fd-button-split>button:first-of-type.is-focus,[dir=rtl] .fd-button-split>button:first-of-type:focus{z-index:5}.fd-button-split>button:first-of-type[dir=rtl].is-focus:after,.fd-button-split>button:first-of-type[dir=rtl]:focus:after,[dir=rtl] .fd-button-split>button:first-of-type.is-focus:after,[dir=rtl] .fd-button-split>button:first-of-type:focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Left_RTL)}.fd-button-split>button:nth-of-type(2){border-radius:var(--fdButton_Border_Radius_Right)}.fd-button-split>button:nth-of-type(2).is-focus,.fd-button-split>button:nth-of-type(2):focus{z-index:5}.fd-button-split>button:nth-of-type(2).is-focus:after,.fd-button-split>button:nth-of-type(2):focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Right)}.fd-button-split>button:nth-of-type(2)[dir=rtl],[dir=rtl] .fd-button-split>button:nth-of-type(2){border-radius:var(--fdButton_Border_Radius_Right_RTL)}.fd-button-split>button:nth-of-type(2)[dir=rtl].is-focus,.fd-button-split>button:nth-of-type(2)[dir=rtl]:focus,[dir=rtl] .fd-button-split>button:nth-of-type(2).is-focus,[dir=rtl] .fd-button-split>button:nth-of-type(2):focus{z-index:5}.fd-button-split>button:nth-of-type(2)[dir=rtl].is-focus:after,.fd-button-split>button:nth-of-type(2)[dir=rtl]:focus:after,[dir=rtl] .fd-button-split>button:nth-of-type(2).is-focus:after,[dir=rtl] .fd-button-split>button:nth-of-type(2):focus:after{border-radius:var(--fdButton_Border_Radius_Outline_Right_RTL)}.fd-button-split>button.is-hover,.fd-button-split>button:hover{-webkit-box-shadow:none;box-shadow:none;z-index:1}.fd-button-split--emphasized{position:relative}.fd-button-split--emphasized:before{background:var(--sapButton_Emphasized_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--emphasized:after{background:var(--sapButton_Emphasized_TextColor);content:\"\";display:var(--fdButton_Menu_Emphasized_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--emphasized.is-hover:after,.fd-button-split--emphasized:hover:after{display:var(--fdButton_Menu_Emphasized_Hover_Separator_Display)}.fd-button-split--emphasized[dir=rtl]:after,[dir=rtl] .fd-button-split--emphasized:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--emphasized:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Emphasized_Shadow_Color)}.fd-button-split--transparent{position:relative}.fd-button-split--transparent:before{background:var(--sapButton_Lite_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--transparent:after{background:var(--sapButton_Lite_TextColor);content:\"\";display:var(--fdButton_Menu_Transparent_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--transparent[dir=rtl]:after,[dir=rtl] .fd-button-split--transparent:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--transparent:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Transparent_Border_Color)}.fd-button-split--ghost{position:relative}.fd-button-split--ghost:before{background:var(--fdButton_Ghost_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--ghost:after{background:var(--sapButton_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--ghost[dir=rtl]:after,[dir=rtl] .fd-button-split--ghost:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--ghost:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Transparent_Border_Color)}.fd-button-split--positive{position:relative}.fd-button-split--positive:before{background:var(--sapButton_Accept_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--positive:after{background:var(--sapButton_Accept_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--positive[dir=rtl]:after,[dir=rtl] .fd-button-split--positive:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--positive:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Positive_Shadow_Color)}.fd-button-split--negative{position:relative}.fd-button-split--negative:before{background:var(--sapButton_Reject_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--negative:after{background:var(--sapButton_Reject_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--negative[dir=rtl]:after,[dir=rtl] .fd-button-split--negative:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--negative:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Negative_Shadow_Color)}.fd-button-split--attention{position:relative}.fd-button-split--attention:before{background:var(--sapButton_Attention_Background);border-radius:var(--sapButton_BorderCornerRadius);content:\"\";height:100%;left:0;position:absolute;top:0;width:100%}.fd-button-split--attention:after{background:var(--sapButton_Attention_TextColor);content:\"\";display:var(--fdButton_Menu_Separator_Display);height:var(--fdButton_Menu_Transparent_Separator_Height);margin-block:0;margin-inline:.125rem;position:absolute;right:var(--fdButtonSplit_Separator_Offset);top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);width:var(--sapButton_BorderWidth);z-index:10}.fd-button-split--attention[dir=rtl]:after,[dir=rtl] .fd-button-split--attention:after{left:var(--fdButtonSplit_Separator_Offset);right:auto}.fd-button-split--attention:before{--fdButtonPrioritizedBorderColor:var(--fdButton_Menu_Attention_Shadow_Color)}.fd-button-split .fd-button-split__text{border:0;-webkit-box-sizing:border-box;box-sizing:border-box;color:var(--sapTextColor);color:inherit;display:block;font-family:var(--sapFontFamily);font-size:var(--sapFontSize);font-weight:400;forced-color-adjust:none;line-height:normal;margin-block:0;margin-inline:0;max-width:var(--fdButtonSplit_Text_Max_Width,8.5rem);overflow:hidden;padding-block:0;padding-inline:0;text-overflow:ellipsis;white-space:nowrap}.fd-button-split .fd-button-split__text:after,.fd-button-split .fd-button-split__text:before{-webkit-box-sizing:inherit;box-sizing:inherit;font-size:inherit}.fd-button-split--emphasized>button:first-of-type{-webkit-margin-end:var(--fdButton_Menu_Emphasized_Margin);margin-inline-end:var(--fdButton_Menu_Emphasized_Margin)}.fd-button-split--emphasized .fd-button-split__text{font-weight:var(--sapButton_Emphasized_FontWeight)}.fd-button-split[class*=-compact],.fd-button-split[class*=-condensed],[class*=-compact] .fd-button-split:not([class*=-cozy]),[class*=-condensed] .fd-button-split:not([class*=-cozy]){--fdButtonSplit_Text_Max_Width:9rem;--fdButtonSplit_Separator_Offset:1.875rem}:host{display:inline-block}\n/*! Bundled license information:\n\nfundamental-styles/dist/button-split.css:\n (*!\n * Fundamental Library Styles v0.39.2\n * Copyright (c) 2025 SAP SE or an SAP affiliate company.\n * Licensed under Apache License 2.0 (https://github.com/SAP/fundamental-styles/blob/main/LICENSE)\n *)\n*/\n"] }]
|
|
76
76
|
}], ctorParameters: () => [{ type: i1.RtlService, decorators: [{
|
|
77
77
|
type: Optional
|
|
78
78
|
}] }], propDecorators: { fixedWidth: [{
|