@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.
Files changed (31) hide show
  1. package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +2 -2
  2. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +2 -2
  3. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  4. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -2
  5. package/fesm2022/fundamental-ngx-platform-form.mjs +11 -11
  6. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  7. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +7 -3
  8. package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
  9. package/fesm2022/fundamental-ngx-platform-link.mjs +2 -2
  10. package/fesm2022/fundamental-ngx-platform-link.mjs.map +1 -1
  11. package/fesm2022/fundamental-ngx-platform-list.mjs +10 -10
  12. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  13. package/fesm2022/fundamental-ngx-platform-menu.mjs +4 -4
  14. package/fesm2022/fundamental-ngx-platform-menu.mjs.map +1 -1
  15. package/fesm2022/fundamental-ngx-platform-message-popover.mjs +3 -3
  16. package/fesm2022/fundamental-ngx-platform-message-popover.mjs.map +1 -1
  17. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +2 -2
  18. package/fesm2022/fundamental-ngx-platform-panel.mjs +1 -1
  19. package/fesm2022/fundamental-ngx-platform-panel.mjs.map +1 -1
  20. package/fesm2022/fundamental-ngx-platform-search-field.mjs +2 -2
  21. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  22. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs +3 -3
  23. package/fesm2022/fundamental-ngx-platform-settings-generator.mjs.map +1 -1
  24. package/fesm2022/fundamental-ngx-platform-split-menu-button.mjs +2 -2
  25. package/fesm2022/fundamental-ngx-platform-table.mjs +10 -10
  26. package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
  27. package/fesm2022/fundamental-ngx-platform-variant-management.mjs +2 -2
  28. package/fesm2022/fundamental-ngx-platform-variant-management.mjs.map +1 -1
  29. package/icon-tab-bar/icon-tab-bar.component.d.ts +3 -1
  30. package/package.json +4 -4
  31. package/schematics/ng-add/index.js +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-platform-search-field.mjs","sources":["../../../../libs/platform/search-field/search-field-mobile/search-field-mobile.interface.ts","../../../../libs/platform/search-field/search-field-mobile/search-field/search-field-mobile.component.ts","../../../../libs/platform/search-field/search-field-mobile/search-field/search-field-mobile.component.html","../../../../libs/platform/search-field/search-field.component.ts","../../../../libs/platform/search-field/search-field.component.html","../../../../libs/platform/search-field/search-field.module.ts","../../../../libs/platform/search-field/fundamental-ngx-platform-search-field.ts"],"sourcesContent":["import { InjectionToken, TemplateRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const SEARCH_FIELD_COMPONENT = new InjectionToken<string[]>('SearchFieldMobileInterface');\n\nexport interface SearchFieldMobileInterface extends MobileMode {\n inputText: string;\n isOpenChange: Subject<boolean>;\n isOpen: boolean;\n\n dialogApprove(): void;\n dialogDismiss(): void;\n}\n\nexport interface SearchFieldChildContent {\n inputFieldTemplate: TemplateRef<any>;\n suggestionMenuTemplate: TemplateRef<any>;\n}\n","import { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TemplateDirective } from '@fundamental-ngx/cdk/utils';\nimport { BarElementDirective, BarMiddleDirective, ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport {\n DialogBodyComponent,\n DialogCloseButtonComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent\n} from '@fundamental-ngx/core/dialog';\nimport { MobileModeBase, MobileModeControl } from '@fundamental-ngx/core/mobile-mode';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport {\n SEARCH_FIELD_COMPONENT,\n SearchFieldChildContent,\n SearchFieldMobileInterface\n} from '../search-field-mobile.interface';\n\n@Component({\n selector: 'fdp-search-field-mobile',\n templateUrl: 'search-field-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n DialogComponent,\n DialogHeaderComponent,\n TemplateDirective,\n BarMiddleDirective,\n BarElementDirective,\n NgTemplateOutlet,\n DialogCloseButtonComponent,\n CdkScrollable,\n ScrollbarDirective,\n DialogBodyComponent,\n DialogFooterComponent,\n ButtonBarComponent\n ]\n})\nexport class SearchFieldMobileComponent extends MobileModeBase<SearchFieldMobileInterface> implements OnInit {\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n /** @hidden */\n childContent: SearchFieldChildContent | null = null;\n\n /** @hidden */\n constructor(@Inject(SEARCH_FIELD_COMPONENT) searchFieldComponent: SearchFieldMobileInterface) {\n super(searchFieldComponent, MobileModeControl.SEARCH_FIELD);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.listenChanges();\n }\n\n /** @hidden */\n listenChanges(): void {\n this._component.isOpenChange.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((isOpen) => {\n if (!isOpen) {\n this._handleDismiss();\n\n return;\n }\n\n if (!this._dialogService.hasOpenDialogs()) {\n this._open();\n }\n });\n }\n\n /** @hidden */\n _handleDismiss(): void {\n this.dialogRef.close();\n this._component.dialogDismiss();\n }\n\n /** @hidden */\n _handleApprove(): void {\n this.dialogRef.close();\n this._component.dialogApprove();\n }\n\n /** @hidden */\n private _open(): void {\n this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n mobile: true,\n disablePaddings: true,\n ...this.dialogConfig,\n backdropClickCloseable: false,\n escKeyCloseable: true,\n container: this._elementRef.nativeElement\n });\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n @if (childContent?.inputFieldTemplate) {\n <ng-template [ngTemplateOutlet]=\"childContent?.inputFieldTemplate!\"></ng-template>\n }\n </fd-bar-element>\n @if (mobileConfig.hasCloseButton) {\n <button\n fd-dialog-close-button\n fdkInitialFocus\n [mobile]=\"true\"\n (click)=\"_handleDismiss()\"\n ></button>\n }\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n @if (childContent?.suggestionMenuTemplate) {\n <ng-template [ngTemplateOutlet]=\"childContent?.suggestionMenuTemplate!\"></ng-template>\n }\n </fd-dialog-body>\n <fd-dialog-footer>\n @if (mobileConfig.approveButtonText) {\n <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"_handleApprove()\">\n </fd-button-bar>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n","import { FocusableOption, FocusKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { DOWN_ARROW, ESCAPE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { AsyncPipe, DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n Inject,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { isObservable, merge, Observable, of, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport {\n destroyObservable,\n DynamicComponentService,\n KeyUtil,\n RtlService,\n SearchHighlightPipe\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { PopoverComponent, PopoverModule } from '@fundamental-ngx/core/popover';\nimport { OptionComponent, SelectComponent } from '@fundamental-ngx/core/select';\nimport { SearchComponent } from '@fundamental-ngx/core/shared';\nimport { FD_SHELLBAR_SEARCH_COMPONENT } from '@fundamental-ngx/core/shellbar';\nimport { FdTranslatePipe, resolveTranslationSyncFn } from '@fundamental-ngx/i18n';\nimport { MenuComponent, MenuItemComponent, MenuTriggerDirective } from '@fundamental-ngx/platform/menu';\nimport { BaseComponent, SearchFieldDataSource } from '@fundamental-ngx/platform/shared';\nimport equal from 'fast-deep-equal';\nimport {\n SEARCH_FIELD_COMPONENT,\n SearchFieldMobileInterface\n} from './search-field-mobile/search-field-mobile.interface';\nimport { SearchFieldMobileComponent } from './search-field-mobile/search-field/search-field-mobile.component';\n\nexport interface SearchInput {\n text: string;\n category: string | null;\n}\n\nexport interface SuggestionItem {\n value: string;\n isHistorical?: string;\n data?: any;\n}\n\nexport interface ValueLabelItem {\n value: string;\n label: string;\n}\n\n@Directive({\n selector: '[fdpSearchFieldSuggestion]',\n host: {\n tabindex: '-1'\n },\n standalone: true\n})\nexport class SearchFieldSuggestionDirective implements FocusableOption {\n /** @hidden */\n constructor(private element: ElementRef) {}\n\n /** @hidden */\n focus(): void {\n this.element.nativeElement.focus();\n }\n}\n\nlet searchFieldIdCount = 0;\n\ntype Appearance = SearchComponent['appearance'] | undefined;\n\n@Component({\n selector: 'fdp-search-field',\n templateUrl: './search-field.component.html',\n styleUrl: './search-field.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n contentDensityObserverProviders(),\n {\n provide: FD_SHELLBAR_SEARCH_COMPONENT,\n useExisting: SearchFieldComponent\n }\n ],\n imports: [\n NgTemplateOutlet,\n MenuTriggerDirective,\n MenuComponent,\n MenuItemComponent,\n SelectComponent,\n OptionComponent,\n FormsModule,\n IconComponent,\n NgClass,\n SearchFieldSuggestionDirective,\n AsyncPipe,\n SearchHighlightPipe,\n FdTranslatePipe,\n PopoverModule,\n forwardRef(() => SuggestionMatchesPipe)\n ]\n})\nexport class SearchFieldComponent\n extends BaseComponent\n implements OnInit, OnChanges, OnDestroy, SearchFieldMobileInterface, SearchComponent, AfterViewInit\n{\n /** Type of component used to render the categories dropdown. */\n @Input()\n categoryMode: 'menu' | 'select' = 'menu';\n\n /** Additional appearance configuration. */\n @Input()\n set appearance(value: Appearance) {\n if (equal(value, this.appearance)) {\n return;\n }\n\n this._appearance = value;\n this.detectChanges();\n }\n\n get appearance(): Appearance {\n return this._appearance;\n }\n\n /** Placeholder text for search input field. */\n @Input()\n placeholder: string;\n\n /** Set Mobile Mode */\n @Input()\n mobile: boolean;\n\n /** Search Field Mobile configuration */\n @Input()\n mobileConfig: MobileModeConfig;\n\n /** Whether display Refresh button */\n @Input()\n disableRefresh = false;\n\n /** Whether display search button */\n @Input()\n disableSearch = false;\n\n /** List of string values to populate suggestion dropdown selection. */\n @Input()\n set suggestions(value: SuggestionItem[] | Observable<SuggestionItem[]>) {\n this._suggestions = value;\n if (Array.isArray(value)) {\n // convert suggestions to an array of string for \"dropdown values\"\n const dropdownValues = value.map((suggestion: SuggestionItem) => suggestion.value);\n this._dropdownValues$ = of(dropdownValues);\n } else if (isObservable(value)) {\n this._dropdownValues$ = value.pipe(\n map((suggestions: SuggestionItem[]) => suggestions.map((suggestion) => suggestion.value))\n );\n } else {\n this._dropdownValues$ = of([]);\n }\n }\n get suggestions(): SuggestionItem[] | Observable<SuggestionItem[]> {\n return this._suggestions;\n }\n\n /** Datasource for suggestion list */\n @Input()\n set dataSource(value: SearchFieldDataSource<any>) {\n if (value) {\n this._initializeDataSource(value);\n }\n }\n get dataSource(): SearchFieldDataSource<any> {\n return this._dataSource;\n }\n\n /** Initial input text. */\n @Input()\n inputText: string;\n\n /** List of categories. */\n @Input()\n set categories(value: ValueLabelItem[]) {\n this._categories = value;\n this._showCategoryDropdown = Array.isArray(value) && value.length > 0;\n }\n get categories(): ValueLabelItem[] {\n return this._categories;\n }\n\n /** Current category, value should be present in categories array */\n @Input()\n currentCategory: ValueLabelItem;\n\n /** Set label for category dropdown button. */\n @Input()\n categoryLabel = 'Category';\n\n /** Hide display of category label */\n @Input()\n hideCategoryLabel = false;\n\n /** Toggle \"loading\" mode. */\n @Input()\n isLoading = false;\n\n /** Whether to always show search button. */\n @Input()\n forceSearchButton = false;\n\n /** Whether to disable the \"suggestions found\" live announcer. */\n @Input()\n disableSuggestionsFoundAnnouncer = false;\n\n /** Input change event. */\n @Output()\n inputChange: EventEmitter<SearchInput> = new EventEmitter();\n\n /** Search submit event. */\n @Output()\n searchSubmit: EventEmitter<SearchInput> = new EventEmitter();\n\n /** Cancel search event. */\n @Output()\n cancelSearch: EventEmitter<SearchInput> = new EventEmitter();\n\n /** Open mobile mode event. */\n @Output()\n isOpenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild('categoryDropdown', { static: false })\n categoryDropdown: PopoverComponent;\n\n /** @hidden */\n @ViewChild('inputGroup', { static: false })\n inputGroup: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('inputField', { static: false })\n inputField: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('inputFieldTemplate')\n inputFieldTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild('suggestionMenuTemplate', { static: false })\n suggestionMenuTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ViewChildren(SearchFieldSuggestionDirective)\n suggestionItems: QueryList<SearchFieldSuggestionDirective>;\n\n /** @hidden */\n get searchFieldValue(): SearchInput {\n return {\n text: this.inputText,\n category: this._currentCategory?.value || null\n };\n }\n /** @hidden Focus state */\n _isFocused = false;\n\n /**\n * Observable list of string values taken from `suggestions` to populate dropdown menu.\n * @hidden\n */\n _dropdownValues$: Observable<string[]> = of([]);\n\n /**\n * Currently set category.\n * @hidden\n */\n _currentCategory?: ValueLabelItem;\n\n /**\n * Whether or not to show category dropdown. This is dependent on length of `categoryValues` property.\n * @hidden\n */\n _showCategoryDropdown = false;\n\n /** @hidden */\n _inputId = '';\n\n /** @hidden */\n _submitId = '';\n\n /** @hidden */\n _menuId = '';\n\n /** @hidden */\n _refreshId = '';\n\n /** @hidden */\n _clearId = '';\n\n /** @hidden */\n readonly _dir$ = computed<Direction>(() => (this._rtl?.rtlSignal() ? 'rtl' : 'ltr'));\n\n /** @hidden */\n isOpen = false;\n\n /** @hidden */\n _isRefresh = false;\n\n /** @hidden */\n _isSearchDone = false;\n\n /** @hidden */\n _isOpen$ = signal(false);\n\n /** @hidden */\n private _suggestions: SuggestionItem[] | Observable<SuggestionItem[]>;\n\n /** @hidden */\n private _dataSource: SearchFieldDataSource<any>;\n\n /** @hidden */\n private _categories: ValueLabelItem[];\n\n /** @hidden */\n private _currentSearchSuggestionAnnouncementMessage = '';\n\n /** @hidden */\n private _suggestionkeyManager: FocusKeyManager<SearchFieldSuggestionDirective>;\n\n /** @hidden */\n private resolveTranslation = resolveTranslationSyncFn();\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _dataSourceChanged$ = new Subject<void>();\n\n /** @hidden */\n private _appearance: Appearance;\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef<HTMLElement>,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _injector: Injector,\n @Optional() private readonly _rtl: RtlService,\n @Inject(DOCUMENT) private readonly _document: Document,\n private readonly _liveAnnouncer: LiveAnnouncer,\n readonly _dynamicComponentService: DynamicComponentService,\n readonly contentDensityObserver: ContentDensityObserver\n ) {\n super();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n handleKeydown(event: KeyboardEvent): void {\n if (this.mobile && this.isOpen && KeyUtil.isKeyCode(event, [ESCAPE])) {\n this.showDialog(false);\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n const baseId = 'fdp-search-field';\n this._inputId = `${baseId}-input-${searchFieldIdCount++}`;\n this._submitId = `${baseId}-submit-${searchFieldIdCount++}`;\n this._menuId = `${baseId}-menu-${searchFieldIdCount++}`;\n\n this._isRefresh = true;\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.mobile) {\n this._setUpMobileMode();\n }\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('categories' in changes || 'currentCategory' in changes) {\n this.setCurrentCategory(this.currentCategory);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._suggestionkeyManager?.destroy();\n }\n\n /**\n * Focuses the search input field.\n */\n focus(): void {\n this.inputField.nativeElement.focus();\n this.detectChanges();\n }\n\n /** Capturing onKeydown of input element */\n onKeydown(event: KeyboardEvent): void {\n if (!event) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW])) {\n if (this._suggestionkeyManager) {\n this._suggestionkeyManager.onKeydown(event);\n }\n } else if (KeyUtil.isKeyCode(event, [ESCAPE])) {\n this.closeSuggestionMenu(true);\n }\n }\n\n /**\n * Capturing value change in input text field of combobox.\n * @hidden\n */\n onValueChange(event: string): void {\n // when search result not changed but input text is changed.\n // again need to announce the result, so clear this message.\n setTimeout(() => (this._currentSearchSuggestionAnnouncementMessage = ''));\n this._isSearchDone = false;\n this._isRefresh = false;\n\n if (this.mobile && !this.isOpen) {\n this.openMobileMode();\n }\n\n this.inputChange.emit(this.searchFieldValue);\n const inputStr: string = event.trim();\n if (inputStr.length === 0) {\n this.closeSuggestionMenu();\n return;\n }\n\n if (!this.mobile) {\n this.openSuggestionMenu();\n }\n\n if (this.dataSource) {\n const match = new Map();\n match.set('keyword', inputStr);\n match.set('category', this._currentCategory?.value || null);\n\n this.dataSource.match(match);\n }\n\n this._updateSearchAnnouncementText();\n }\n\n /**\n * Capturing item selection from dropdown menu of combobox.\n * @hidden\n */\n onItemClick(event: string): void {\n this.inputText = event;\n this.inputChange.emit(this.searchFieldValue);\n this.searchSubmit.emit(this.searchFieldValue);\n this.closeSuggestionMenu();\n if (this.mobile) {\n this.showDialog(false);\n }\n this._isSearchDone = true;\n this.detectChanges();\n }\n\n /**\n * Callback function which gets executed on keyboard enter of input text field.\n * @hidden\n */\n onSearchSubmit(event?: Event): void {\n event?.preventDefault();\n\n if (this.isLoading) {\n this.cancelSearch.emit();\n return;\n }\n\n this.searchSubmit.emit(this.searchFieldValue);\n\n this._isRefresh = true;\n\n if (this.inputText) {\n this._isSearchDone = true;\n }\n\n this.closeSuggestionMenu(false);\n }\n\n /**\n * Sets current category.\n * @hidden\n */\n setCurrentCategory(currentCategory: ValueLabelItem): void {\n this._currentCategory =\n currentCategory &&\n this.categories?.find(\n (category) => category.label === currentCategory.label && category.value === currentCategory.value\n );\n\n this.inputChange.emit(this.searchFieldValue);\n }\n\n /**\n * Open suggestion menu\n */\n openSuggestionMenu(): void {\n this._isOpen$.set(true);\n this._suggestionkeyManager?.destroy();\n this._suggestionkeyManager = new FocusKeyManager(this.suggestionItems);\n if (this._isOpen$()) {\n return;\n }\n\n this._isOpen$.set(true);\n }\n\n /** @hidden */\n openMobileMode(): void {\n this.showDialog(true);\n }\n\n /** @hidden */\n dialogApprove(): void {\n this.onItemClick(this.inputText);\n }\n\n /** @hidden */\n dialogDismiss(): void {\n this.showDialog(false);\n }\n\n /** @hidden */\n showDialog(isOpen: boolean): void {\n if (this.isOpen !== isOpen) {\n this.isOpen = isOpen;\n\n this.isOpenChange.emit(isOpen);\n }\n }\n\n /** @hidden */\n closeSuggestionMenu(focus = true): void {\n if (focus) {\n this.focus();\n }\n this._isOpen$.set(false);\n }\n\n /** @hidden */\n clearTextInput(): void {\n this.inputText = '';\n this.detectChanges();\n this.inputChange.emit(this.searchFieldValue);\n this.cancelSearch.emit(this.searchFieldValue);\n\n this._isRefresh = true;\n this._isSearchDone = false;\n\n this.closeSuggestionMenu(false);\n this.focus();\n }\n\n /** @hidden */\n _initializeDataSource(dataSource: SearchFieldDataSource<any>): void {\n this._dataSourceChanged$.next();\n dataSource\n .open()\n .pipe(takeUntil(merge(destroyObservable(this._destroyRef), this._dataSourceChanged$)))\n .subscribe((data) => {\n this._dropdownValues$ = of(data);\n });\n this._dataSource = dataSource;\n }\n\n /**\n * @hidden return count for matching suggestion with input text\n * @returns number\n */\n private _getSuggestionsLength(): number {\n let count = 0;\n this._dropdownValues$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((suggestions) => {\n suggestions?.forEach((suggestion) => {\n if (this.inputText && suggestion?.toLowerCase().indexOf(this.inputText?.trim()?.toLowerCase()) > -1) {\n count++;\n }\n });\n });\n\n return count;\n }\n\n /** @hidden */\n private async _updateSearchAnnouncementText(): Promise<void> {\n // create search suggestion message with count.\n const suggestionCount = this._getSuggestionsLength();\n const searchSuggestionMessage = this.resolveTranslation('platformSearchField.searchSuggestionMessage', {\n count: suggestionCount\n });\n const searchSuggestionNavigateMessage = this.resolveTranslation(\n 'platformSearchField.searchSuggestionNavigateMessage'\n );\n this._currentSearchSuggestionAnnouncementMessage =\n searchSuggestionMessage + (suggestionCount > 0 ? searchSuggestionNavigateMessage : '');\n if (this.inputText?.length > 0) {\n await this._liveAnnouncer.announce(this._currentSearchSuggestionAnnouncementMessage);\n }\n }\n\n /** @hidden */\n private _setUpMobileMode(): void {\n const injector = Injector.create({\n providers: [{ provide: SEARCH_FIELD_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._dynamicComponentService.createDynamicComponent(\n { inputFieldTemplate: this.inputFieldTemplate, suggestionMenuTemplate: this.suggestionMenuTemplate },\n SearchFieldMobileComponent,\n {\n containerRef: this._viewContainerRef\n },\n {\n injector\n }\n );\n }\n}\n\n@Pipe({\n name: 'suggestionMatches',\n standalone: true\n})\nexport class SuggestionMatchesPipe implements PipeTransform {\n /** @hidden */\n transform(values: string[] | null, match: string): string[] {\n if (!values) {\n values = [];\n }\n if (!match) {\n return values;\n }\n const processedMatch = match.trim().toLowerCase();\n return values.filter((value) => value.toLowerCase().indexOf(processedMatch) > -1);\n }\n}\n","<ng-template [ngTemplateOutlet]=\"mobile ? mobileTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <fd-popover [isOpen]=\"_isOpen$()\" (isOpenChange)=\"_isOpen$.set($event)\" [triggers]=\"[]\">\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"inputFieldTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"suggestionMenuTemplate\"></ng-template>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #mobileTemplate>\n <ng-template [ngTemplateOutlet]=\"inputFieldTemplate\"></ng-template>\n</ng-template>\n<ng-template #searchCategoryMenu>\n <button\n class=\"fdp-search-field__category-button fd-input-group__button fd-button fd-button--transparent fd-button--menu {{\n appearance?.categoryButtonClass\n }}\"\n [fdpMenuTriggerFor]=\"categoryMenu\"\n >\n @if (!hideCategoryLabel) {\n <span class=\"fdp-search-field__category-label\">\n {{ _currentCategory?.label || categoryLabel }}\n </span>\n }\n </button>\n <fdp-menu #categoryMenu>\n @for (category of categories; track category) {\n <fdp-menu-item (itemSelect)=\"setCurrentCategory(category)\">{{ category.label }} </fdp-menu-item>\n }\n </fdp-menu>\n</ng-template>\n<ng-template #searchCategorySelect>\n <fd-select\n [placeholder]=\"categoryLabel\"\n [selectControlClass]=\"appearance?.categoryButtonClass\"\n [selectDropdownButtonClass]=\"appearance?.categoryDropdownButtonClass\"\n (valueChange)=\"setCurrentCategory($event)\"\n >\n @for (category of categories; track category) {\n <li fd-option [value]=\"category\">{{ category.label }}</li>\n }\n </fd-select>\n</ng-template>\n<ng-template #inputFieldTemplate>\n <div\n class=\"fdp-search-field\"\n [class.with-categories]=\"_showCategoryDropdown\"\n [class.is-loading]=\"isLoading\"\n [class.is-compact]=\"contentDensityObserver.isCompactSignal()\"\n [class.hide-category-label]=\"hideCategoryLabel\"\n >\n <div\n #inputGroup\n class=\"fdp-search-field__input-group fd-input-group {{ appearance?.searchClass }}\"\n [class.is-focus]=\"_isFocused\"\n >\n @if (_showCategoryDropdown) {\n <span class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.searchCategoryClass }}\">\n <ng-template\n [ngTemplateOutlet]=\"categoryMode === 'select' ? searchCategorySelect : searchCategoryMenu\"\n ></ng-template>\n </span>\n }\n <input\n #inputField\n type=\"search\"\n (focus)=\"_isFocused = true\"\n (blur)=\"_isFocused = false; (null)\"\n [attr.placeholder]=\"placeholder\"\n class=\"fdp-search-field__input fd-input fd-input-group__input {{ appearance?.searchFieldClass }}\"\n [attr.id]=\"_inputId\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.aria-label]=\"ariaLabel || ('platformSearchField.searchInputLabel' | fdTranslate)\"\n [attr.aria-labelledby]=\"ariaLabel ? null : ariaLabelledBy\"\n [attr.aria-controls]=\"_menuId\"\n [attr.aria-expanded]=\"(_dropdownValues$ | async)?.length !== 0 ? (_isOpen$() ? 'true' : 'false') : null\"\n [attr.aria-haspopup]=\"(_dropdownValues$ | async)?.length !== 0\"\n autocomplete=\"off\"\n (keydown)=\"onKeydown($event)\"\n (keydown.enter)=\"onSearchSubmit($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"onValueChange($event)\"\n (click)=\"mobile && openMobileMode()\"\n />\n @if (inputText && inputText.length > 0) {\n <span class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }}\">\n <button\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!mobile\"\n [attr.aria-label]=\"'platformSearchField.clearButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__clear fd-button fd-button--transparent {{ appearance?.buttonClass }}\"\n [class.fd-input-group__button]=\"!appearance?.removeGroupButtonClass\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.id]=\"_clearId\"\n (click)=\"clearTextInput()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n }\n @if (forceSearchButton || isLoading || (!isLoading && !_isSearchDone)) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n >\n @if (!disableSearch) {\n <button\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!mobile\"\n [attr.aria-label]=\"'platformSearchField.submitButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__submit fd-button fd-button--transparent {{\n appearance?.buttonClass\n }}\"\n [class.fd-input-group__button]=\"!appearance?.removeGroupButtonClass\"\n [attr.id]=\"_submitId\"\n [attr.disabled]=\"disabled ? '' : null\"\n (click)=\"onSearchSubmit()\"\n >\n <fd-icon glyph=\"search\"></fd-icon>\n </button>\n }\n </span>\n }\n @if (!disableRefresh && !isLoading && (_isRefresh || _isSearchDone)) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n >\n <button\n [attr.aria-label]=\"'platformSearchField.synchronizeButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__loading fd-input-group__button fd-button fd-button--transparent {{\n appearance?.buttonClass\n }}\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.id]=\"_refreshId\"\n (click)=\"onSearchSubmit()\"\n >\n <fd-icon glyph=\"synchronize\"></fd-icon>\n </button>\n </span>\n }\n @if (appearance?.helperClass) {\n <div [ngClass]=\"appearance?.helperClass\"></div>\n }\n </div>\n </div>\n</ng-template>\n<ng-template #suggestionMenuTemplate>\n @if (_dropdownValues$ | async | suggestionMatches: inputText; as suggestions) {\n @if (suggestions?.length) {\n <div class=\"fdp-search-field__suggestion-dropdown\" [attr.dir]=\"_dir$()\">\n <nav\n class=\"fd-menu\"\n tabindex=\"-1\"\n [class.is-compact]=\"contentDensityObserver.isCompactSignal()\"\n [class.fd-menu--mobile]=\"mobile\"\n [class.fd-menu--overflow]=\"!mobile\"\n [attr.id]=\"_menuId\"\n #menu\n (keydown)=\"onKeydown($event)\"\n >\n <ul class=\"fd-menu__list\" role=\"menu\">\n @for (value of suggestions; track value) {\n <li\n fdpSearchFieldSuggestion\n class=\"fdp-search-field__suggestion-item fd-menu__item fd-menu__link\"\n (keydown.enter)=\"onItemClick(value); $event.preventDefault()\"\n (keydown.tab)=\"onItemClick(value)\"\n (keyup.space)=\"onItemClick(value); $event.stopPropagation()\"\n (click)=\"onItemClick(value)\"\n [innerHTML]=\"value | highlight: inputText : true : true\"\n role=\"menuitem\"\n ></li>\n }\n </ul>\n </nav>\n </div>\n }\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\nimport { SearchFieldComponent, SearchFieldSuggestionDirective, SuggestionMatchesPipe } from './search-field.component';\n\nconst components = [SearchFieldComponent, SearchFieldSuggestionDirective, SuggestionMatchesPipe, ContentDensityModule];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class PlatformSearchFieldModule {}\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-search-field.mjs","sources":["../../../../libs/platform/search-field/search-field-mobile/search-field-mobile.interface.ts","../../../../libs/platform/search-field/search-field-mobile/search-field/search-field-mobile.component.ts","../../../../libs/platform/search-field/search-field-mobile/search-field/search-field-mobile.component.html","../../../../libs/platform/search-field/search-field.component.ts","../../../../libs/platform/search-field/search-field.component.html","../../../../libs/platform/search-field/search-field.module.ts","../../../../libs/platform/search-field/fundamental-ngx-platform-search-field.ts"],"sourcesContent":["import { InjectionToken, TemplateRef } from '@angular/core';\nimport { Subject } from 'rxjs';\n\nimport { MobileMode } from '@fundamental-ngx/core/mobile-mode';\n\nexport const SEARCH_FIELD_COMPONENT = new InjectionToken<string[]>('SearchFieldMobileInterface');\n\nexport interface SearchFieldMobileInterface extends MobileMode {\n inputText: string;\n isOpenChange: Subject<boolean>;\n isOpen: boolean;\n\n dialogApprove(): void;\n dialogDismiss(): void;\n}\n\nexport interface SearchFieldChildContent {\n inputFieldTemplate: TemplateRef<any>;\n suggestionMenuTemplate: TemplateRef<any>;\n}\n","import { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n Inject,\n OnInit,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { TemplateDirective } from '@fundamental-ngx/cdk/utils';\nimport { BarElementDirective, BarMiddleDirective, ButtonBarComponent } from '@fundamental-ngx/core/bar';\nimport {\n DialogBodyComponent,\n DialogCloseButtonComponent,\n DialogComponent,\n DialogFooterComponent,\n DialogHeaderComponent\n} from '@fundamental-ngx/core/dialog';\nimport { MobileModeBase, MobileModeControl } from '@fundamental-ngx/core/mobile-mode';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport {\n SEARCH_FIELD_COMPONENT,\n SearchFieldChildContent,\n SearchFieldMobileInterface\n} from '../search-field-mobile.interface';\n\n@Component({\n selector: 'fdp-search-field-mobile',\n templateUrl: 'search-field-mobile.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n imports: [\n DialogComponent,\n DialogHeaderComponent,\n TemplateDirective,\n BarMiddleDirective,\n BarElementDirective,\n NgTemplateOutlet,\n DialogCloseButtonComponent,\n CdkScrollable,\n ScrollbarDirective,\n DialogBodyComponent,\n DialogFooterComponent,\n ButtonBarComponent\n ]\n})\nexport class SearchFieldMobileComponent extends MobileModeBase<SearchFieldMobileInterface> implements OnInit {\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n /** @hidden */\n childContent: SearchFieldChildContent | null = null;\n\n /** @hidden */\n constructor(@Inject(SEARCH_FIELD_COMPONENT) searchFieldComponent: SearchFieldMobileInterface) {\n super(searchFieldComponent, MobileModeControl.SEARCH_FIELD);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.listenChanges();\n }\n\n /** @hidden */\n listenChanges(): void {\n this._component.isOpenChange.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((isOpen) => {\n if (!isOpen) {\n this._handleDismiss();\n\n return;\n }\n\n if (!this._dialogService.hasOpenDialogs()) {\n this._open();\n }\n });\n }\n\n /** @hidden */\n _handleDismiss(): void {\n this.dialogRef.close();\n this._component.dialogDismiss();\n }\n\n /** @hidden */\n _handleApprove(): void {\n this.dialogRef.close();\n this._component.dialogApprove();\n }\n\n /** @hidden */\n private _open(): void {\n this.dialogRef = this._dialogService.open(this.dialogTemplate, {\n mobile: true,\n disablePaddings: true,\n ...this.dialogConfig,\n backdropClickCloseable: false,\n escKeyCloseable: true,\n container: this._elementRef.nativeElement\n });\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #dialogTemplate>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-middle>\n <fd-bar-element [fullWidth]=\"true\">\n @if (childContent?.inputFieldTemplate) {\n <ng-template [ngTemplateOutlet]=\"childContent?.inputFieldTemplate!\"></ng-template>\n }\n </fd-bar-element>\n @if (mobileConfig.hasCloseButton) {\n <button\n fd-dialog-close-button\n fdkInitialFocus\n [mobile]=\"true\"\n (click)=\"_handleDismiss()\"\n ></button>\n }\n </div>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body>\n @if (childContent?.suggestionMenuTemplate) {\n <ng-template [ngTemplateOutlet]=\"childContent?.suggestionMenuTemplate!\"></ng-template>\n }\n </fd-dialog-body>\n <fd-dialog-footer>\n @if (mobileConfig.approveButtonText) {\n <fd-button-bar fdType=\"emphasized\" [label]=\"mobileConfig.approveButtonText!\" (click)=\"_handleApprove()\">\n </fd-button-bar>\n }\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n","import { FocusableOption, FocusKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { Direction } from '@angular/cdk/bidi';\nimport { DOWN_ARROW, ESCAPE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { AsyncPipe, DOCUMENT, NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n HostListener,\n inject,\n Inject,\n Injector,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n signal,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { isObservable, merge, Observable, of, Subject } from 'rxjs';\nimport { map, takeUntil } from 'rxjs/operators';\n\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport {\n destroyObservable,\n DynamicComponentService,\n KeyUtil,\n RtlService,\n SearchHighlightPipe\n} from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { IconComponent } from '@fundamental-ngx/core/icon';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { PopoverComponent, PopoverModule } from '@fundamental-ngx/core/popover';\nimport { OptionComponent, SelectComponent } from '@fundamental-ngx/core/select';\nimport { SearchComponent } from '@fundamental-ngx/core/shared';\nimport { FD_SHELLBAR_SEARCH_COMPONENT } from '@fundamental-ngx/core/shellbar';\nimport { FdTranslatePipe, resolveTranslationSyncFn } from '@fundamental-ngx/i18n';\nimport { MenuComponent, MenuItemComponent, MenuTriggerDirective } from '@fundamental-ngx/platform/menu';\nimport { BaseComponent, SearchFieldDataSource } from '@fundamental-ngx/platform/shared';\nimport equal from 'fast-deep-equal';\nimport {\n SEARCH_FIELD_COMPONENT,\n SearchFieldMobileInterface\n} from './search-field-mobile/search-field-mobile.interface';\nimport { SearchFieldMobileComponent } from './search-field-mobile/search-field/search-field-mobile.component';\n\nexport interface SearchInput {\n text: string;\n category: string | null;\n}\n\nexport interface SuggestionItem {\n value: string;\n isHistorical?: string;\n data?: any;\n}\n\nexport interface ValueLabelItem {\n value: string;\n label: string;\n}\n\n@Directive({\n selector: '[fdpSearchFieldSuggestion]',\n host: {\n tabindex: '-1'\n },\n standalone: true\n})\nexport class SearchFieldSuggestionDirective implements FocusableOption {\n /** @hidden */\n constructor(private element: ElementRef) {}\n\n /** @hidden */\n focus(): void {\n this.element.nativeElement.focus();\n }\n}\n\nlet searchFieldIdCount = 0;\n\ntype Appearance = SearchComponent['appearance'] | undefined;\n\n@Component({\n selector: 'fdp-search-field',\n templateUrl: './search-field.component.html',\n styleUrl: './search-field.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n contentDensityObserverProviders(),\n {\n provide: FD_SHELLBAR_SEARCH_COMPONENT,\n useExisting: SearchFieldComponent\n }\n ],\n imports: [\n NgTemplateOutlet,\n MenuTriggerDirective,\n MenuComponent,\n MenuItemComponent,\n SelectComponent,\n OptionComponent,\n FormsModule,\n IconComponent,\n NgClass,\n SearchFieldSuggestionDirective,\n AsyncPipe,\n SearchHighlightPipe,\n FdTranslatePipe,\n PopoverModule,\n forwardRef(() => SuggestionMatchesPipe)\n ]\n})\nexport class SearchFieldComponent\n extends BaseComponent\n implements OnInit, OnChanges, OnDestroy, SearchFieldMobileInterface, SearchComponent, AfterViewInit\n{\n /** Type of component used to render the categories dropdown. */\n @Input()\n categoryMode: 'menu' | 'select' = 'menu';\n\n /** Additional appearance configuration. */\n @Input()\n set appearance(value: Appearance) {\n if (equal(value, this.appearance)) {\n return;\n }\n\n this._appearance = value;\n this.detectChanges();\n }\n\n get appearance(): Appearance {\n return this._appearance;\n }\n\n /** Placeholder text for search input field. */\n @Input()\n placeholder: string;\n\n /** Set Mobile Mode */\n @Input()\n mobile: boolean;\n\n /** Search Field Mobile configuration */\n @Input()\n mobileConfig: MobileModeConfig;\n\n /** Whether display Refresh button */\n @Input()\n disableRefresh = false;\n\n /** Whether display search button */\n @Input()\n disableSearch = false;\n\n /** List of string values to populate suggestion dropdown selection. */\n @Input()\n set suggestions(value: SuggestionItem[] | Observable<SuggestionItem[]>) {\n this._suggestions = value;\n if (Array.isArray(value)) {\n // convert suggestions to an array of string for \"dropdown values\"\n const dropdownValues = value.map((suggestion: SuggestionItem) => suggestion.value);\n this._dropdownValues$ = of(dropdownValues);\n } else if (isObservable(value)) {\n this._dropdownValues$ = value.pipe(\n map((suggestions: SuggestionItem[]) => suggestions.map((suggestion) => suggestion.value))\n );\n } else {\n this._dropdownValues$ = of([]);\n }\n }\n get suggestions(): SuggestionItem[] | Observable<SuggestionItem[]> {\n return this._suggestions;\n }\n\n /** Datasource for suggestion list */\n @Input()\n set dataSource(value: SearchFieldDataSource<any>) {\n if (value) {\n this._initializeDataSource(value);\n }\n }\n get dataSource(): SearchFieldDataSource<any> {\n return this._dataSource;\n }\n\n /** Initial input text. */\n @Input()\n inputText: string;\n\n /** List of categories. */\n @Input()\n set categories(value: ValueLabelItem[]) {\n this._categories = value;\n this._showCategoryDropdown = Array.isArray(value) && value.length > 0;\n }\n get categories(): ValueLabelItem[] {\n return this._categories;\n }\n\n /** Current category, value should be present in categories array */\n @Input()\n currentCategory: ValueLabelItem;\n\n /** Set label for category dropdown button. */\n @Input()\n categoryLabel = 'Category';\n\n /** Hide display of category label */\n @Input()\n hideCategoryLabel = false;\n\n /** Toggle \"loading\" mode. */\n @Input()\n isLoading = false;\n\n /** Whether to always show search button. */\n @Input()\n forceSearchButton = false;\n\n /** Whether to disable the \"suggestions found\" live announcer. */\n @Input()\n disableSuggestionsFoundAnnouncer = false;\n\n /** Input change event. */\n @Output()\n inputChange: EventEmitter<SearchInput> = new EventEmitter();\n\n /** Search submit event. */\n @Output()\n searchSubmit: EventEmitter<SearchInput> = new EventEmitter();\n\n /** Cancel search event. */\n @Output()\n cancelSearch: EventEmitter<SearchInput> = new EventEmitter();\n\n /** Open mobile mode event. */\n @Output()\n isOpenChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n /** @hidden */\n @ViewChild('categoryDropdown', { static: false })\n categoryDropdown: PopoverComponent;\n\n /** @hidden */\n @ViewChild('inputGroup', { static: false })\n inputGroup: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('inputField', { static: false })\n inputField: ElementRef<HTMLElement>;\n\n /** @hidden */\n @ViewChild('inputFieldTemplate')\n inputFieldTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ViewChild('suggestionMenuTemplate', { static: false })\n suggestionMenuTemplate: TemplateRef<any>;\n\n /** @hidden */\n @ViewChildren(SearchFieldSuggestionDirective)\n suggestionItems: QueryList<SearchFieldSuggestionDirective>;\n\n /** @hidden */\n get searchFieldValue(): SearchInput {\n return {\n text: this.inputText,\n category: this._currentCategory?.value || null\n };\n }\n /** @hidden Focus state */\n _isFocused = false;\n\n /**\n * Observable list of string values taken from `suggestions` to populate dropdown menu.\n * @hidden\n */\n _dropdownValues$: Observable<string[]> = of([]);\n\n /**\n * Currently set category.\n * @hidden\n */\n _currentCategory?: ValueLabelItem;\n\n /**\n * Whether or not to show category dropdown. This is dependent on length of `categoryValues` property.\n * @hidden\n */\n _showCategoryDropdown = false;\n\n /** @hidden */\n _inputId = '';\n\n /** @hidden */\n _submitId = '';\n\n /** @hidden */\n _menuId = '';\n\n /** @hidden */\n _refreshId = '';\n\n /** @hidden */\n _clearId = '';\n\n /** @hidden */\n readonly _dir$ = computed<Direction>(() => (this._rtl?.rtlSignal() ? 'rtl' : 'ltr'));\n\n /** @hidden */\n isOpen = false;\n\n /** @hidden */\n _isRefresh = false;\n\n /** @hidden */\n _isSearchDone = false;\n\n /** @hidden */\n _isOpen$ = signal(false);\n\n /** @hidden */\n private _suggestions: SuggestionItem[] | Observable<SuggestionItem[]>;\n\n /** @hidden */\n private _dataSource: SearchFieldDataSource<any>;\n\n /** @hidden */\n private _categories: ValueLabelItem[];\n\n /** @hidden */\n private _currentSearchSuggestionAnnouncementMessage = '';\n\n /** @hidden */\n private _suggestionkeyManager: FocusKeyManager<SearchFieldSuggestionDirective>;\n\n /** @hidden */\n private resolveTranslation = resolveTranslationSyncFn();\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n private readonly _dataSourceChanged$ = new Subject<void>();\n\n /** @hidden */\n private _appearance: Appearance;\n\n /** @hidden */\n constructor(\n public elementRef: ElementRef<HTMLElement>,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _injector: Injector,\n @Optional() private readonly _rtl: RtlService,\n @Inject(DOCUMENT) private readonly _document: Document,\n private readonly _liveAnnouncer: LiveAnnouncer,\n readonly _dynamicComponentService: DynamicComponentService,\n readonly contentDensityObserver: ContentDensityObserver\n ) {\n super();\n }\n\n /** @hidden */\n @HostListener('keydown', ['$event'])\n handleKeydown(event: KeyboardEvent): void {\n if (this.mobile && this.isOpen && KeyUtil.isKeyCode(event, [ESCAPE])) {\n this.showDialog(false);\n }\n }\n\n /** @hidden */\n ngOnInit(): void {\n const baseId = 'fdp-search-field';\n this._inputId = `${baseId}-input-${searchFieldIdCount++}`;\n this._submitId = `${baseId}-submit-${searchFieldIdCount++}`;\n this._menuId = `${baseId}-menu-${searchFieldIdCount++}`;\n\n this._isRefresh = true;\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n if (this.mobile) {\n this._setUpMobileMode();\n }\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('categories' in changes || 'currentCategory' in changes) {\n this.setCurrentCategory(this.currentCategory);\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._suggestionkeyManager?.destroy();\n }\n\n /**\n * Focuses the search input field.\n */\n focus(): void {\n this.inputField.nativeElement.focus();\n this.detectChanges();\n }\n\n /** Capturing onKeydown of input element */\n onKeydown(event: KeyboardEvent): void {\n if (!event) {\n return;\n }\n\n if (KeyUtil.isKeyCode(event, [UP_ARROW, DOWN_ARROW])) {\n if (this._suggestionkeyManager) {\n this._suggestionkeyManager.onKeydown(event);\n }\n } else if (KeyUtil.isKeyCode(event, [ESCAPE])) {\n this.closeSuggestionMenu(true);\n }\n }\n\n /**\n * Capturing value change in input text field of combobox.\n * @hidden\n */\n onValueChange(event: string): void {\n // when search result not changed but input text is changed.\n // again need to announce the result, so clear this message.\n setTimeout(() => (this._currentSearchSuggestionAnnouncementMessage = ''));\n this._isSearchDone = false;\n this._isRefresh = false;\n\n if (this.mobile && !this.isOpen) {\n this.openMobileMode();\n }\n\n this.inputChange.emit(this.searchFieldValue);\n const inputStr: string = event.trim();\n if (inputStr.length === 0) {\n this.closeSuggestionMenu();\n return;\n }\n\n if (!this.mobile) {\n this.openSuggestionMenu();\n }\n\n if (this.dataSource) {\n const match = new Map();\n match.set('keyword', inputStr);\n match.set('category', this._currentCategory?.value || null);\n\n this.dataSource.match(match);\n }\n\n this._updateSearchAnnouncementText();\n }\n\n /**\n * Capturing item selection from dropdown menu of combobox.\n * @hidden\n */\n onItemClick(event: string): void {\n this.inputText = event;\n this.inputChange.emit(this.searchFieldValue);\n this.searchSubmit.emit(this.searchFieldValue);\n this.closeSuggestionMenu();\n if (this.mobile) {\n this.showDialog(false);\n }\n this._isSearchDone = true;\n this.detectChanges();\n }\n\n /**\n * Callback function which gets executed on keyboard enter of input text field.\n * @hidden\n */\n onSearchSubmit(event?: Event): void {\n event?.preventDefault();\n\n if (this.isLoading) {\n this.cancelSearch.emit();\n return;\n }\n\n this.searchSubmit.emit(this.searchFieldValue);\n\n this._isRefresh = true;\n\n if (this.inputText) {\n this._isSearchDone = true;\n }\n\n this.closeSuggestionMenu(false);\n }\n\n /**\n * Sets current category.\n * @hidden\n */\n setCurrentCategory(currentCategory: ValueLabelItem): void {\n this._currentCategory =\n currentCategory &&\n this.categories?.find(\n (category) => category.label === currentCategory.label && category.value === currentCategory.value\n );\n\n this.inputChange.emit(this.searchFieldValue);\n }\n\n /**\n * Open suggestion menu\n */\n openSuggestionMenu(): void {\n this._isOpen$.set(true);\n this._suggestionkeyManager?.destroy();\n this._suggestionkeyManager = new FocusKeyManager(this.suggestionItems);\n if (this._isOpen$()) {\n return;\n }\n\n this._isOpen$.set(true);\n }\n\n /** @hidden */\n openMobileMode(): void {\n this.showDialog(true);\n }\n\n /** @hidden */\n dialogApprove(): void {\n this.onItemClick(this.inputText);\n }\n\n /** @hidden */\n dialogDismiss(): void {\n this.showDialog(false);\n }\n\n /** @hidden */\n showDialog(isOpen: boolean): void {\n if (this.isOpen !== isOpen) {\n this.isOpen = isOpen;\n\n this.isOpenChange.emit(isOpen);\n }\n }\n\n /** @hidden */\n closeSuggestionMenu(focus = true): void {\n if (focus) {\n this.focus();\n }\n this._isOpen$.set(false);\n }\n\n /** @hidden */\n clearTextInput(): void {\n this.inputText = '';\n this.detectChanges();\n this.inputChange.emit(this.searchFieldValue);\n this.cancelSearch.emit(this.searchFieldValue);\n\n this._isRefresh = true;\n this._isSearchDone = false;\n\n this.closeSuggestionMenu(false);\n this.focus();\n }\n\n /** @hidden */\n _initializeDataSource(dataSource: SearchFieldDataSource<any>): void {\n this._dataSourceChanged$.next();\n dataSource\n .open()\n .pipe(takeUntil(merge(destroyObservable(this._destroyRef), this._dataSourceChanged$)))\n .subscribe((data) => {\n this._dropdownValues$ = of(data);\n });\n this._dataSource = dataSource;\n }\n\n /**\n * @hidden return count for matching suggestion with input text\n * @returns number\n */\n private _getSuggestionsLength(): number {\n let count = 0;\n this._dropdownValues$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((suggestions) => {\n suggestions?.forEach((suggestion) => {\n if (this.inputText && suggestion?.toLowerCase().indexOf(this.inputText?.trim()?.toLowerCase()) > -1) {\n count++;\n }\n });\n });\n\n return count;\n }\n\n /** @hidden */\n private async _updateSearchAnnouncementText(): Promise<void> {\n // create search suggestion message with count.\n const suggestionCount = this._getSuggestionsLength();\n const searchSuggestionMessage = this.resolveTranslation('platformSearchField.searchSuggestionMessage', {\n count: suggestionCount\n });\n const searchSuggestionNavigateMessage = this.resolveTranslation(\n 'platformSearchField.searchSuggestionNavigateMessage'\n );\n this._currentSearchSuggestionAnnouncementMessage =\n searchSuggestionMessage + (suggestionCount > 0 ? searchSuggestionNavigateMessage : '');\n if (this.inputText?.length > 0) {\n await this._liveAnnouncer.announce(this._currentSearchSuggestionAnnouncementMessage);\n }\n }\n\n /** @hidden */\n private _setUpMobileMode(): void {\n const injector = Injector.create({\n providers: [{ provide: SEARCH_FIELD_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._dynamicComponentService.createDynamicComponent(\n { inputFieldTemplate: this.inputFieldTemplate, suggestionMenuTemplate: this.suggestionMenuTemplate },\n SearchFieldMobileComponent,\n {\n containerRef: this._viewContainerRef\n },\n {\n injector\n }\n );\n }\n}\n\n@Pipe({\n name: 'suggestionMatches',\n standalone: true\n})\nexport class SuggestionMatchesPipe implements PipeTransform {\n /** @hidden */\n transform(values: string[] | null, match: string): string[] {\n if (!values) {\n values = [];\n }\n if (!match) {\n return values;\n }\n const processedMatch = match.trim().toLowerCase();\n return values.filter((value) => value.toLowerCase().indexOf(processedMatch) > -1);\n }\n}\n","<ng-template [ngTemplateOutlet]=\"mobile ? mobileTemplate : desktopTemplate\"></ng-template>\n<ng-template #desktopTemplate>\n <fd-popover [isOpen]=\"_isOpen$()\" (isOpenChange)=\"_isOpen$.set($event)\" [triggers]=\"[]\">\n <fd-popover-control>\n <ng-template [ngTemplateOutlet]=\"inputFieldTemplate\"></ng-template>\n </fd-popover-control>\n <fd-popover-body>\n <ng-template [ngTemplateOutlet]=\"suggestionMenuTemplate\"></ng-template>\n </fd-popover-body>\n </fd-popover>\n</ng-template>\n<ng-template #mobileTemplate>\n <ng-template [ngTemplateOutlet]=\"inputFieldTemplate\"></ng-template>\n</ng-template>\n<ng-template #searchCategoryMenu>\n <button\n class=\"fdp-search-field__category-button fd-input-group__button fd-button fd-button--transparent fd-button--menu {{\n appearance?.categoryButtonClass\n }}\"\n [fdpMenuTriggerFor]=\"categoryMenu\"\n >\n @if (!hideCategoryLabel) {\n <span class=\"fdp-search-field__category-label\">\n {{ _currentCategory?.label || categoryLabel }}\n </span>\n }\n </button>\n <fdp-menu #categoryMenu>\n @for (category of categories; track category) {\n <fdp-menu-item (itemSelect)=\"setCurrentCategory(category)\">{{ category.label }} </fdp-menu-item>\n }\n </fdp-menu>\n</ng-template>\n<ng-template #searchCategorySelect>\n <fd-select\n [placeholder]=\"categoryLabel\"\n [selectControlClass]=\"appearance?.categoryButtonClass\"\n [selectDropdownButtonClass]=\"appearance?.categoryDropdownButtonClass\"\n (valueChange)=\"setCurrentCategory($event)\"\n >\n @for (category of categories; track category) {\n <li fd-option [value]=\"category\">{{ category.label }}</li>\n }\n </fd-select>\n</ng-template>\n<ng-template #inputFieldTemplate>\n <div\n class=\"fdp-search-field\"\n [class.with-categories]=\"_showCategoryDropdown\"\n [class.is-loading]=\"isLoading\"\n [class.is-compact]=\"contentDensityObserver.isCompactSignal()\"\n [class.hide-category-label]=\"hideCategoryLabel\"\n >\n <div\n #inputGroup\n class=\"fdp-search-field__input-group fd-input-group {{ appearance?.searchClass }}\"\n [class.is-focus]=\"_isFocused\"\n >\n @if (_showCategoryDropdown) {\n <span class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.searchCategoryClass }}\">\n <ng-template\n [ngTemplateOutlet]=\"categoryMode === 'select' ? searchCategorySelect : searchCategoryMenu\"\n ></ng-template>\n </span>\n }\n <input\n #inputField\n type=\"search\"\n (focus)=\"_isFocused = true\"\n (blur)=\"_isFocused = false; (null)\"\n [attr.placeholder]=\"placeholder\"\n class=\"fdp-search-field__input fd-input fd-input-group__input {{ appearance?.searchFieldClass }}\"\n [attr.id]=\"_inputId\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.aria-label]=\"ariaLabel || ('platformSearchField.searchInputLabel' | fdTranslate)\"\n [attr.aria-labelledby]=\"ariaLabel ? null : ariaLabelledBy\"\n [attr.aria-controls]=\"_menuId\"\n [attr.aria-expanded]=\"(_dropdownValues$ | async)?.length !== 0 ? (_isOpen$() ? 'true' : 'false') : null\"\n [attr.aria-haspopup]=\"(_dropdownValues$ | async)?.length !== 0\"\n autocomplete=\"off\"\n (keydown)=\"onKeydown($event)\"\n (keydown.enter)=\"onSearchSubmit($event)\"\n [(ngModel)]=\"inputText\"\n (ngModelChange)=\"onValueChange($event)\"\n (click)=\"mobile && openMobileMode()\"\n />\n @if (inputText && inputText.length > 0) {\n <span class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }}\">\n <button\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!mobile\"\n [attr.aria-label]=\"'platformSearchField.clearButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__clear fd-button fd-button--transparent {{ appearance?.buttonClass }}\"\n [class.fd-input-group__button]=\"!appearance?.removeGroupButtonClass\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.id]=\"_clearId\"\n (click)=\"clearTextInput()\"\n >\n <fd-icon glyph=\"decline\"></fd-icon>\n </button>\n </span>\n }\n @if (forceSearchButton || isLoading || (!isLoading && !_isSearchDone)) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n >\n @if (!disableSearch) {\n <button\n tabindex=\"-1\"\n [attr.aria-hidden]=\"!mobile\"\n [attr.aria-label]=\"'platformSearchField.submitButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__submit fd-button fd-button--transparent {{\n appearance?.buttonClass\n }}\"\n [class.fd-input-group__button]=\"!appearance?.removeGroupButtonClass\"\n [attr.id]=\"_submitId\"\n [attr.disabled]=\"disabled ? '' : null\"\n (click)=\"onSearchSubmit()\"\n >\n <fd-icon glyph=\"search\"></fd-icon>\n </button>\n }\n </span>\n }\n @if (!disableRefresh && !isLoading && (_isRefresh || _isSearchDone)) {\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n >\n <button\n [attr.aria-label]=\"'platformSearchField.synchronizeButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__loading fd-input-group__button fd-button fd-button--transparent {{\n appearance?.buttonClass\n }}\"\n [attr.disabled]=\"disabled ? '' : null\"\n [attr.id]=\"_refreshId\"\n (click)=\"onSearchSubmit()\"\n >\n <fd-icon glyph=\"synchronize\"></fd-icon>\n </button>\n </span>\n }\n @if (appearance?.helperClass) {\n <div [ngClass]=\"appearance?.helperClass\"></div>\n }\n </div>\n </div>\n</ng-template>\n<ng-template #suggestionMenuTemplate>\n @if (_dropdownValues$ | async | suggestionMatches: inputText; as suggestions) {\n @if (suggestions?.length) {\n <div class=\"fdp-search-field__suggestion-dropdown\" [attr.dir]=\"_dir$()\">\n <nav\n class=\"fd-menu\"\n tabindex=\"-1\"\n [class.is-compact]=\"contentDensityObserver.isCompactSignal()\"\n [class.fd-menu--mobile]=\"mobile\"\n [class.fd-menu--overflow]=\"!mobile\"\n [attr.id]=\"_menuId\"\n #menu\n (keydown)=\"onKeydown($event)\"\n >\n <ul class=\"fd-menu__list\" role=\"menu\">\n @for (value of suggestions; track value) {\n <li\n fdpSearchFieldSuggestion\n class=\"fdp-search-field__suggestion-item fd-menu__item fd-menu__link\"\n (keydown.enter)=\"onItemClick(value); $event.preventDefault()\"\n (keydown.tab)=\"onItemClick(value)\"\n (keyup.space)=\"onItemClick(value); $event.stopPropagation()\"\n (click)=\"onItemClick(value)\"\n [innerHTML]=\"value | highlight: inputText : true : true\"\n role=\"menuitem\"\n ></li>\n }\n </ul>\n </nav>\n </div>\n }\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\nimport { SearchFieldComponent, SearchFieldSuggestionDirective, SuggestionMatchesPipe } from './search-field.component';\n\nconst components = [SearchFieldComponent, SearchFieldSuggestionDirective, SuggestionMatchesPipe, ContentDensityModule];\n\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class PlatformSearchFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -42,7 +42,7 @@ class ThemeSelectorListComponent extends BaseDynamicFormGeneratorControl {
42
42
  this._themingService?.setTheme(value);
43
43
  }
44
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: ThemeSelectorListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
45
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: ThemeSelectorListComponent, isStandalone: true, selector: "fdp-theme-selector-list", usesInheritance: true, ngImport: i0, template: "<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", styles: [".settings-selector-list__theme--sap_fiori_3{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-1{fill:#f7f7f7}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-2{fill:#ccc}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-3{fill:#fff}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-4{fill:#d9d9d9}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-5{fill:#0854a0}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-6{fill:#6a6d70}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-7{fill:#354a5f}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-8{fill:#7996b4}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-9{fill:#fff}.settings-selector-list__theme--sap_fiori_3_dark{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-1{fill:#1c2228}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-2{fill:#424f5e}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-3{fill:#29313a}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-4{fill:#3a4552}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-5{fill:#91c8f6}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-6{fill:#d3d7d9}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-7{fill:#354a5f}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-8{fill:#7996b4}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-9{fill:#fafafa}.settings-selector-list__theme--sap_fiori_3_hcb{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-1{fill:#000}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-2{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-3{fill:#000}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-4{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-5{fill:#0f5d94}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-6{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-7{fill:#000}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-8,.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-9{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcw{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-1{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-2{fill:#000}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-3{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-4{fill:#000}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-5{fill:#8fb5ff}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-6{fill:#000}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-7{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-8,.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-9{fill:#000}.settings-selector-list__theme--sap_horizon{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-1{fill:#f5f6f7}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-2{fill:#ccc}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-3{fill:#fff}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-4{fill:#d9d9d9}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-5{fill:#0070f2}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-6{fill:#556b82}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-7{fill:#fff}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-8{fill:#788fa6}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-9{fill:#223548}.settings-selector-list__theme--sap_horizon_dark{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-1{fill:#12171c}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-2{fill:#475566}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-3{fill:#1d232a}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-4{fill:#2e3742}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-5{fill:#4db1ff}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-6{fill:#8396a8}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-7{fill:#1d232a}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-8{fill:#a9b4be}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-9{fill:#eaecee}.settings-selector-list__theme--sap_horizon_hcb{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-1{fill:#000}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-2{fill:#fff}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-3{fill:#000}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-4{fill:#fff}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-5{fill:#0f5d94}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-6{fill:#fff}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-7{fill:#000}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-8,.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-9{fill:#fff}.settings-selector-list__theme--sap_horizon_hcw{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-1{fill:#fff}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-2{fill:#000}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-3{fill:#fff}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-4{fill:#000}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-5{fill:#8fb5ff}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-6{fill:#000}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-7{fill:#fff}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-8,.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-9{fill:#000}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => ListModule) }, { kind: "component", type: i0.forwardRef(() => i1.ListComponent), selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i0.forwardRef(() => i1.ListItemComponent), selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id", "preventClick"], outputs: ["keyDown"] }, { kind: "directive", type: i0.forwardRef(() => i1.ListTitleDirective), selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i0.forwardRef(() => i1.ListLinkDirective), selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i0.forwardRef(() => i1.ListBylineDirective), selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i0.forwardRef(() => i1.ListContentDirective), selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i0.forwardRef(() => i1.ListThumbnailDirective), selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "directive", type: i0.forwardRef(() => ClickedDirective), selector: "[fdkClicked]", outputs: ["fdkClicked"] }, { kind: "component", type: i0.forwardRef(() => ThemeSelectorListIconComponent), selector: "fdp-theme-selector-list-icon", inputs: ["size"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: ThemeSelectorListComponent, isStandalone: true, selector: "fdp-theme-selector-list", usesInheritance: true, ngImport: i0, template: "<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", styles: [".settings-selector-list__theme--sap_fiori_3{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-1{fill:#f7f7f7}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-2{fill:#ccc}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-3{fill:#fff}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-4{fill:#d9d9d9}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-5{fill:#0854a0}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-6{fill:#6a6d70}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-7{fill:#354a5f}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-8{fill:#7996b4}.settings-selector-list__theme--sap_fiori_3 .settings-selector-list-icon__cls-9{fill:#fff}.settings-selector-list__theme--sap_fiori_3_dark{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-1{fill:#1c2228}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-2{fill:#424f5e}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-3{fill:#29313a}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-4{fill:#3a4552}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-5{fill:#91c8f6}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-6{fill:#d3d7d9}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-7{fill:#354a5f}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-8{fill:#7996b4}.settings-selector-list__theme--sap_fiori_3_dark .settings-selector-list-icon__cls-9{fill:#fafafa}.settings-selector-list__theme--sap_fiori_3_hcb{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-1{fill:#000}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-2{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-3{fill:#000}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-4{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-5{fill:#0f5d94}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-6{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-7{fill:#000}.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-8,.settings-selector-list__theme--sap_fiori_3_hcb .settings-selector-list-icon__cls-9{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcw{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-1{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-2{fill:#000}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-3{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-4{fill:#000}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-5{fill:#8fb5ff}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-6{fill:#000}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-7{fill:#fff}.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-8,.settings-selector-list__theme--sap_fiori_3_hcw .settings-selector-list-icon__cls-9{fill:#000}.settings-selector-list__theme--sap_horizon{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-1{fill:#f5f6f7}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-2{fill:#ccc}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-3{fill:#fff}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-4{fill:#d9d9d9}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-5{fill:#0070f2}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-6{fill:#556b82}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-7{fill:#fff}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-8{fill:#788fa6}.settings-selector-list__theme--sap_horizon .settings-selector-list-icon__cls-9{fill:#223548}.settings-selector-list__theme--sap_horizon_dark{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-1{fill:#12171c}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-2{fill:#475566}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-3{fill:#1d232a}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-4{fill:#2e3742}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-5{fill:#4db1ff}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-6{fill:#8396a8}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-7{fill:#1d232a}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-8{fill:#a9b4be}.settings-selector-list__theme--sap_horizon_dark .settings-selector-list-icon__cls-9{fill:#eaecee}.settings-selector-list__theme--sap_horizon_hcb{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-1{fill:#000}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-2{fill:#fff}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-3{fill:#000}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-4{fill:#fff}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-5{fill:#0f5d94}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-6{fill:#fff}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-7{fill:#000}.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-8,.settings-selector-list__theme--sap_horizon_hcb .settings-selector-list-icon__cls-9{fill:#fff}.settings-selector-list__theme--sap_horizon_hcw{border-radius:50%;border:1px solid var(--sapContent_Illustrative_Color5)}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-1{fill:#fff}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-2{fill:#000}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-3{fill:#fff}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-4{fill:#000}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-5{fill:#8fb5ff}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-6{fill:#000}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-7{fill:#fff}.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-8,.settings-selector-list__theme--sap_horizon_hcw .settings-selector-list-icon__cls-9{fill:#000}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => ListModule) }, { kind: "component", type: i0.forwardRef(() => i1.ListComponent), selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "unreadIndicator", "role", "settingsList", "settingsListFooter"], outputs: ["focusEscapeList"] }, { kind: "component", type: i0.forwardRef(() => i1.ListItemComponent), selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl"], outputs: ["keyDown"] }, { kind: "directive", type: i0.forwardRef(() => i1.ListTitleDirective), selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i0.forwardRef(() => i1.ListLinkDirective), selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i0.forwardRef(() => i1.ListBylineDirective), selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i0.forwardRef(() => i1.ListContentDirective), selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i0.forwardRef(() => i1.ListThumbnailDirective), selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "directive", type: i0.forwardRef(() => ClickedDirective), selector: "[fdkClicked]", outputs: ["fdkClicked"] }, { kind: "component", type: i0.forwardRef(() => ThemeSelectorListIconComponent), selector: "fdp-theme-selector-list-icon", inputs: ["size"] }, { kind: "directive", type: i0.forwardRef(() => NgTemplateOutlet), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], viewProviders: [dynamicFormFieldProvider, dynamicFormGroupChildProvider], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
46
46
  }
47
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: ThemeSelectorListComponent, decorators: [{
48
48
  type: Component,
@@ -344,7 +344,7 @@ class SettingsGeneratorContentComponent {
344
344
  });
345
345
  }
346
346
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: SettingsGeneratorContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
347
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: SettingsGeneratorContentComponent, isStandalone: true, selector: "fdp-settings-generator-content", inputs: { settings: "settings", mobile: "mobile" }, outputs: { goBack: "goBack" }, host: { properties: { "class": "this._initialClass" } }, viewQueries: [{ propertyName: "_tabPanels", predicate: TabPanelComponent, descendants: true }], ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "component", type: SettingsGeneratorSectionComponent, selector: "fdp-settings-generator-section", inputs: ["groupName", "items"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AsyncOrSyncPipe, name: "fdkAsyncOrSync" }, { kind: "component", type: IconTabBarComponent, selector: "fdp-icon-tab-bar", inputs: ["stackContent", "tabHeadingLevel", "iconTabType", "tabsConfig", "densityMode", "iconTabFont", "enableTabReordering", "showTotalTab", "multiClick", "layoutMode", "iconTabBackground", "iconTabSize", "colorAssociations", "maxContentHeight"], outputs: ["tabsConfigChange", "densityModeChange", "iconTabSelected", "iconTabReordered", "closeTab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
347
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: SettingsGeneratorContentComponent, isStandalone: true, selector: "fdp-settings-generator-content", inputs: { settings: "settings", mobile: "mobile" }, outputs: { goBack: "goBack" }, host: { properties: { "class": "this._initialClass" } }, viewQueries: [{ propertyName: "_tabPanels", predicate: TabPanelComponent, descendants: true }], ngImport: i0, template: "<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", dependencies: [{ kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "component", type: ButtonComponent, selector: "button[fd-button], a[fd-button], span[fd-button]", inputs: ["class"], exportAs: ["fd-button"] }, { kind: "component", type: SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "component", type: SettingsGeneratorSectionComponent, selector: "fdp-settings-generator-section", inputs: ["groupName", "items"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: AsyncOrSyncPipe, name: "fdkAsyncOrSync" }, { kind: "component", type: IconTabBarComponent, selector: "fdp-icon-tab-bar", inputs: ["stackContent", "tabHeadingLevel", "iconTabType", "tabsConfig", "densityMode", "iconTabFont", "enableTabReordering", "showTotalTab", "multiClick", "layoutMode", "iconTabBackground", "iconTabSize", "colorAssociations", "settings", "maxContentHeight"], outputs: ["tabsConfigChange", "densityModeChange", "iconTabSelected", "iconTabReordered", "closeTab"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
348
348
  }
349
349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: SettingsGeneratorContentComponent, decorators: [{
350
350
  type: Component,
@@ -521,7 +521,7 @@ class SettingsGeneratorSidebarLayoutComponent extends BaseSettingsGeneratorLayou
521
521
  return !!section.id;
522
522
  }
523
523
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: SettingsGeneratorSidebarLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
524
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: SettingsGeneratorSidebarLayoutComponent, isStandalone: true, selector: "fdp-settings-generator-sidebar-layout", host: { properties: { "class.fdp-settings-generator__sidebar-layout--mobile": "this._isMobile", "class": "this._initialClass" } }, viewQueries: [{ propertyName: "_settingsGeneratorContent", first: true, predicate: ["settingsGeneratorContent"], descendants: true }, { propertyName: "_listElement", first: true, predicate: ["listElement"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: ListModule }, { kind: "component", type: i1.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "unreadIndicator", "role"], outputs: ["focusEscapeList"] }, { kind: "component", type: i1.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "unread", "byline", "ariaRole", "id", "preventClick"], outputs: ["keyDown"] }, { kind: "directive", type: i1.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i1.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i1.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i1.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i1.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: SettingsGeneratorSidebarIconComponent, selector: "fdp-settings-generator-sidebar-icon", inputs: ["thumbnail"] }, { kind: "component", type: SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "component", type: SettingsGeneratorContentComponent, selector: "fdp-settings-generator-content", inputs: ["settings", "mobile"], outputs: ["goBack"] }, { kind: "pipe", type: AsyncOrSyncPipe, name: "fdkAsyncOrSync" }, { kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
524
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.3", type: SettingsGeneratorSidebarLayoutComponent, isStandalone: true, selector: "fdp-settings-generator-sidebar-layout", host: { properties: { "class.fdp-settings-generator__sidebar-layout--mobile": "this._isMobile", "class": "this._initialClass" } }, viewQueries: [{ propertyName: "_settingsGeneratorContent", first: true, predicate: ["settingsGeneratorContent"], descendants: true }, { propertyName: "_listElement", first: true, predicate: ["listElement"], descendants: true, read: ElementRef }], usesInheritance: true, ngImport: i0, template: "<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", dependencies: [{ kind: "ngmodule", type: ListModule }, { kind: "component", type: i1.ListComponent, selector: "[fd-list], [fdList]", inputs: ["dropdownMode", "multiInputMode", "mobileMode", "hasMessage", "noBorder", "navigationIndicator", "selection", "keyboardSupport", "byline", "subline", "unreadIndicator", "role", "settingsList", "settingsListFooter"], outputs: ["focusEscapeList"] }, { kind: "component", type: i1.ListItemComponent, selector: "[fdListItem] ,[fd-list-item]", inputs: ["selected", "noData", "action", "interactive", "growing", "counter", "active", "unread", "byline", "ariaRole", "id", "preventClick", "settingsListTpl"], outputs: ["keyDown"] }, { kind: "directive", type: i1.ListTitleDirective, selector: "[fd-list-title], [fdListTitle]", inputs: ["wrap"] }, { kind: "directive", type: i1.ListLinkDirective, selector: "[fd-list-link], [fdListLink]", inputs: ["navigationIndicator", "navigated", "focusable"] }, { kind: "directive", type: i1.ListBylineDirective, selector: "[fdListByline], [fd-list-byline]", inputs: ["twoCol", "wrap"] }, { kind: "directive", type: i1.ListContentDirective, selector: "[fdListContent], [fd-list-content]", inputs: ["twoCol"] }, { kind: "directive", type: i1.ListThumbnailDirective, selector: "[fdListThumbnail], [fd-list-thumbnail]" }, { kind: "component", type: SettingsGeneratorSidebarIconComponent, selector: "fdp-settings-generator-sidebar-icon", inputs: ["thumbnail"] }, { kind: "component", type: SkeletonComponent, selector: "fd-skeleton", inputs: ["animated", "type", "textLines", "width", "height"] }, { kind: "component", type: SettingsGeneratorContentComponent, selector: "fdp-settings-generator-content", inputs: ["settings", "mobile"], outputs: ["goBack"] }, { kind: "pipe", type: AsyncOrSyncPipe, name: "fdkAsyncOrSync" }, { kind: "component", type: TitleComponent, selector: "[fd-title], [fdTitle]", inputs: ["headerSize", "wrap"], exportAs: ["fd-title"] }, { kind: "pipe", type: FdTranslatePipe, name: "fdTranslate" }, { kind: "ngmodule", type: FormsModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
525
525
  }
526
526
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.3", ngImport: i0, type: SettingsGeneratorSidebarLayoutComponent, decorators: [{
527
527
  type: Component,