@fundamental-ngx/platform 0.44.0-rc.6 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/esm2022/action-bar/action-bar.component.mjs +3 -3
  2. package/esm2022/button/button.component.mjs +4 -3
  3. package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +3 -2
  4. package/esm2022/feed-input/feed-input.component.mjs +3 -2
  5. package/esm2022/form/checkbox/checkbox.component.mjs +6 -5
  6. package/esm2022/form/checkbox-group/checkbox-group.component.mjs +3 -3
  7. package/esm2022/form/date-picker/date-picker.component.mjs +7 -6
  8. package/esm2022/form/datetime-picker/datetime-picker.component.mjs +6 -5
  9. package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +3 -2
  10. package/esm2022/form/form-group/form-field/form-field.component.mjs +4 -3
  11. package/esm2022/form/form-group/form-group.component.mjs +3 -3
  12. package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +3 -3
  13. package/esm2022/form/platform-file-uploader/platform-file-uploader.component.mjs +4 -3
  14. package/esm2022/form/radio-group/radio/radio.component.mjs +4 -3
  15. package/esm2022/form/select/commons/base-select.mjs +3 -3
  16. package/esm2022/form/select/select/select.component.mjs +4 -4
  17. package/esm2022/form/text-area/text-area.component.mjs +4 -4
  18. package/esm2022/form/time-picker/time-picker.component.mjs +3 -2
  19. package/esm2022/list/base-list-item.mjs +5 -5
  20. package/esm2022/page-footer/page-footer.component.mjs +3 -2
  21. package/esm2022/search-field/search-field.component.mjs +4 -4
  22. package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +7 -6
  23. package/esm2022/thumbnail/thumbnail-details/thumbnail-details.component.mjs +3 -2
  24. package/esm2022/thumbnail/thumbnail-image/thumbnail-image.component.mjs +3 -3
  25. package/esm2022/thumbnail/thumbnail.component.mjs +3 -3
  26. package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +5 -5
  27. package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +4 -3
  28. package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +3 -2
  29. package/esm2022/value-help-dialog/components/value-help-dialog-search/value-help-dialog-search.component.mjs +3 -2
  30. package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +5 -5
  31. package/fesm2022/fundamental-ngx-platform-action-bar.mjs +2 -2
  32. package/fesm2022/fundamental-ngx-platform-action-bar.mjs.map +1 -1
  33. package/fesm2022/fundamental-ngx-platform-button.mjs +3 -3
  34. package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
  35. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +2 -1
  36. package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
  37. package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -1
  38. package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
  39. package/fesm2022/fundamental-ngx-platform-form.mjs +31 -30
  40. package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
  41. package/fesm2022/fundamental-ngx-platform-list.mjs +4 -4
  42. package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
  43. package/fesm2022/fundamental-ngx-platform-page-footer.mjs +2 -1
  44. package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
  45. package/fesm2022/fundamental-ngx-platform-search-field.mjs +3 -3
  46. package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
  47. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +7 -7
  48. package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
  49. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs +4 -4
  50. package/fesm2022/fundamental-ngx-platform-thumbnail.mjs.map +1 -1
  51. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +11 -10
  52. package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
  53. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +9 -8
  54. package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
  55. package/fundamental-ngx-platform-v0.44.0.tgz +0 -0
  56. package/package.json +4 -4
  57. package/schematics/ng-add/index.js +1 -1
  58. package/fundamental-ngx-platform-v0.44.0-rc.6.tgz +0 -0
@@ -1,5 +1,6 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Component, ViewEncapsulation, Input, HostListener, NgModule } from '@angular/core';
3
+ import { warnOnce } from '@fundamental-ngx/core/utils';
3
4
  import * as i1 from '@angular/common';
4
5
  import { CommonModule } from '@angular/common';
5
6
 
@@ -14,7 +15,7 @@ class PlatformFooterComponent {
14
15
  this._cdRef = _cdRef;
15
16
  /** defines the padding and size of the footer based on screen */
16
17
  this.size = 'xl';
17
- console.warn('PlatformFooterComponent component is deprecated since version 0.40.0');
18
+ warnOnce('PlatformFooterComponent component is deprecated since version 0.40.0');
18
19
  }
19
20
  /** @hidden */
20
21
  onResize() {
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-platform-page-footer.mjs","sources":["../../../../libs/platform/src/lib/page-footer/page-footer.component.ts","../../../../libs/platform/src/lib/page-footer/page-footer.component.html","../../../../libs/platform/src/lib/page-footer/page-footer.module.ts","../../../../libs/platform/src/lib/page-footer/fundamental-ngx-platform-page-footer.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\n\nexport type footerSize = 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * @deprecated\n * PlatformFooter component is deprecated since version 0.40.0\n */\n@Component({\n selector: 'fdp-page-footer',\n templateUrl: './page-footer.component.html',\n styleUrls: ['./page-footer.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PlatformFooterComponent {\n /** logo template accpets the generic html */\n @Input()\n logo: TemplateRef<any>;\n /** content template accpets the generic html */\n @Input()\n content: TemplateRef<any>;\n\n /** defines the padding and size of the footer based on screen */\n size: footerSize = 'xl';\n\n /** @hidden */\n public screenWidth: any;\n /** @hidden */\n public screenHeight: any;\n\n /** @hidden */\n constructor(private _elRef: ElementRef, private readonly _cdRef: ChangeDetectorRef) {\n console.warn('PlatformFooterComponent component is deprecated since version 0.40.0');\n }\n\n /** @hidden */\n @HostListener('window:resize', ['$event'])\n onResize(): void {\n this.screenWidth = window.innerWidth;\n if (this.screenWidth > 0 && this.screenWidth <= 360) {\n this.size = 'sm';\n } else if (this.screenWidth > 361 && this.screenWidth <= 768) {\n this.size = 'md';\n } else if (this.screenWidth > 769 && this.screenWidth <= 1024) {\n this.size = 'lg';\n } else {\n this.size = 'xl';\n }\n }\n}\n","<div\n class=\"fd-page-footer\"\n [class.fd-page-footer--xl]=\"size === 'xl'\"\n [class.fd-page-footer--lg]=\"size === 'lg'\"\n [class.fd-page-footer--md]=\"size === 'md'\"\n [class.fd-page-footer--sm]=\"size === 'sm'\"\n>\n <div class=\"fd-page-footer__logo\">\n <ng-content *ngTemplateOutlet=\"logo\"></ng-content>\n </div>\n <div class=\"fd-page-footer__container\">\n <ng-content *ngTemplateOutlet=\"content\"></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PlatformFooterComponent } from './page-footer.component';\n\n@NgModule({\n declarations: [PlatformFooterComponent],\n imports: [CommonModule],\n exports: [PlatformFooterComponent]\n})\nexport class PlatformPageFooterModule {}\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-page-footer.mjs","sources":["../../../../libs/platform/src/lib/page-footer/page-footer.component.ts","../../../../libs/platform/src/lib/page-footer/page-footer.component.html","../../../../libs/platform/src/lib/page-footer/page-footer.module.ts","../../../../libs/platform/src/lib/page-footer/fundamental-ngx-platform-page-footer.ts"],"sourcesContent":["import {\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostListener,\n Input,\n TemplateRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { warnOnce } from '@fundamental-ngx/core/utils';\n\nexport type footerSize = 'sm' | 'md' | 'lg' | 'xl';\n\n/**\n * @deprecated\n * PlatformFooter component is deprecated since version 0.40.0\n */\n@Component({\n selector: 'fdp-page-footer',\n templateUrl: './page-footer.component.html',\n styleUrls: ['./page-footer.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class PlatformFooterComponent {\n /** logo template accpets the generic html */\n @Input()\n logo: TemplateRef<any>;\n /** content template accpets the generic html */\n @Input()\n content: TemplateRef<any>;\n\n /** defines the padding and size of the footer based on screen */\n size: footerSize = 'xl';\n\n /** @hidden */\n public screenWidth: any;\n /** @hidden */\n public screenHeight: any;\n\n /** @hidden */\n constructor(private _elRef: ElementRef, private readonly _cdRef: ChangeDetectorRef) {\n warnOnce('PlatformFooterComponent component is deprecated since version 0.40.0');\n }\n\n /** @hidden */\n @HostListener('window:resize', ['$event'])\n onResize(): void {\n this.screenWidth = window.innerWidth;\n if (this.screenWidth > 0 && this.screenWidth <= 360) {\n this.size = 'sm';\n } else if (this.screenWidth > 361 && this.screenWidth <= 768) {\n this.size = 'md';\n } else if (this.screenWidth > 769 && this.screenWidth <= 1024) {\n this.size = 'lg';\n } else {\n this.size = 'xl';\n }\n }\n}\n","<div\n class=\"fd-page-footer\"\n [class.fd-page-footer--xl]=\"size === 'xl'\"\n [class.fd-page-footer--lg]=\"size === 'lg'\"\n [class.fd-page-footer--md]=\"size === 'md'\"\n [class.fd-page-footer--sm]=\"size === 'sm'\"\n>\n <div class=\"fd-page-footer__logo\">\n <ng-content *ngTemplateOutlet=\"logo\"></ng-content>\n </div>\n <div class=\"fd-page-footer__container\">\n <ng-content *ngTemplateOutlet=\"content\"></ng-content>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PlatformFooterComponent } from './page-footer.component';\n\n@NgModule({\n declarations: [PlatformFooterComponent],\n imports: [CommonModule],\n exports: [PlatformFooterComponent]\n})\nexport class PlatformPageFooterModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ import * as i11 from 'rxjs';
12
12
  import { of, isObservable, Subject, fromEvent, merge, firstValueFrom } from 'rxjs';
13
13
  import { takeUntil, map, filter, take } from 'rxjs/operators';
14
14
  import * as i2 from '@fundamental-ngx/cdk/utils';
15
- import { KeyUtil, PipeModule, DynamicComponentService } from '@fundamental-ngx/cdk/utils';
15
+ import { warnOnce, KeyUtil, PipeModule, DynamicComponentService } from '@fundamental-ngx/cdk/utils';
16
16
  import '@fundamental-ngx/core/popover';
17
17
  import { BaseComponent, PlatformContentDensityDeprecationsModule } from '@fundamental-ngx/platform/shared';
18
18
  import { MobileModeBase, MobileModeControl, MOBILE_MODE_CONFIG } from '@fundamental-ngx/core/mobile-mode';
@@ -195,7 +195,7 @@ class SearchFieldComponent extends BaseComponent {
195
195
  * Message announced by screen reader, when search suggestions opens.
196
196
  */
197
197
  set searchSuggestionMessage(value) {
198
- console.warn('Property searchSuggestionMessage is deprecated. Use i18n capabilities instead.');
198
+ warnOnce('Property searchSuggestionMessage is deprecated. Use i18n capabilities instead.');
199
199
  this._searchSuggestionMessage = value;
200
200
  }
201
201
  get searchSuggestionMessage() {
@@ -207,7 +207,7 @@ class SearchFieldComponent extends BaseComponent {
207
207
  * direction for navigating the suggestion. This is not necessry in case of 0 suggestion.
208
208
  */
209
209
  set searchSuggestionNavigateMessage(value) {
210
- console.warn('Property searchSuggestionNavigateMessage is deprecated. Use i18n capabilities instead.');
210
+ warnOnce('Property searchSuggestionNavigateMessage is deprecated. Use i18n capabilities instead.');
211
211
  this._searchSuggestionNavigateMessage = value;
212
212
  }
213
213
  get searchSuggestionNavigateMessage() {
@@ -1 +1 @@
1
- {"version":3,"file":"fundamental-ngx-platform-search-field.mjs","sources":["../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field-mobile.interface.ts","../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field/search-field-mobile.component.ts","../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field/search-field-mobile.component.html","../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field-mobile.module.ts","../../../../libs/platform/src/lib/search-field/search-field.component.ts","../../../../libs/platform/src/lib/search-field/search-field.component.html","../../../../libs/platform/src/lib/search-field/search-field.module.ts","../../../../libs/platform/src/lib/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 {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n MOBILE_MODE_CONFIG,\n MobileModeBase,\n MobileModeConfigToken,\n MobileModeControl\n} from '@fundamental-ngx/core/mobile-mode';\nimport { DialogService } from '@fundamental-ngx/core/dialog';\nimport {\n SEARCH_FIELD_COMPONENT,\n SearchFieldChildContent,\n SearchFieldMobileInterface\n} from '../search-field-mobile.interface';\nimport { takeUntil } from 'rxjs/operators';\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})\nexport class SearchFieldMobileComponent\n extends MobileModeBase<SearchFieldMobileInterface>\n implements OnInit, OnDestroy\n{\n /** @hidden */\n childContent: SearchFieldChildContent | null = null;\n\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n /** @hidden */\n constructor(\n elementRef: ElementRef,\n dialogService: DialogService,\n @Inject(SEARCH_FIELD_COMPONENT) searchFieldComponent: SearchFieldMobileInterface,\n @Optional() @Inject(MOBILE_MODE_CONFIG) mobileModes: MobileModeConfigToken[]\n ) {\n super(elementRef, dialogService, searchFieldComponent, MobileModeControl.SEARCH_FIELD, mobileModes);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.listenChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.onDestroy();\n }\n\n /** @hidden */\n listenChanges(): void {\n this._component.isOpenChange.pipe(takeUntil(this._onDestroy$)).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 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 <ng-container\n *ngIf=\"childContent?.inputFieldTemplate\"\n [ngTemplateOutlet]=\"childContent?.inputFieldTemplate!\"\n ></ng-container>\n </fd-bar-element>\n <button\n fd-dialog-close-button\n fdkInitialFocus\n *ngIf=\"mobileConfig?.hasCloseButton\"\n [mobile]=\"true\"\n (click)=\"_handleDismiss()\"\n ></button>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container\n *ngIf=\"childContent?.suggestionMenuTemplate\"\n [ngTemplateOutlet]=\"childContent?.suggestionMenuTemplate!\"\n ></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"_handleApprove()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { SearchFieldMobileComponent } from './search-field/search-field-mobile.component';\n\n@NgModule({\n declarations: [SearchFieldMobileComponent],\n imports: [CommonModule, BarModule, DialogModule, ButtonModule],\n exports: [SearchFieldMobileComponent]\n})\nexport class PlatformSearchFieldMobileModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Injector,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { DOWN_ARROW, ESCAPE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { ConnectedPosition, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { FocusableOption, FocusKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Direction } from '@angular/cdk/bidi';\n\nimport { firstValueFrom, fromEvent, isObservable, merge, Observable, of, Subject } from 'rxjs';\nimport { filter, map, take, takeUntil } from 'rxjs/operators';\n\nimport { DynamicComponentService, KeyUtil, RtlService } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { BaseComponent, SearchFieldDataSource } from '@fundamental-ngx/platform/shared';\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';\nimport { PlatformSearchFieldMobileModule } from './search-field-mobile/search-field-mobile.module';\nimport { FdLanguage, FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { FD_SHELLBAR_SEARCH_COMPONENT } from '@fundamental-ngx/core/shellbar';\nimport { SearchComponent } from '@fundamental-ngx/core/shared';\nimport equal from 'fast-deep-equal';\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 role: 'list-item'\n }\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 styleUrls: ['./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})\nexport class SearchFieldComponent\n extends BaseComponent\n implements OnInit, OnChanges, OnDestroy, SearchFieldMobileInterface, SearchComponent\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._cd.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 /**\n * ARIA label to specify what the search field is\n * Not shown in the UI, only visible by the screen-readers.\n */\n @Input()\n ariaLabel: Nullable<string>;\n\n /**\n * Id of elements (separated by space) for setting aria-labelledby for search input\n * Not shown in the UI, only visible by the screen-readers.\n */\n @Input()\n ariaLabelledby: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Message announced by screen reader, when search suggestions opens.\n */\n @Input()\n set searchSuggestionMessage(value: string) {\n console.warn('Property searchSuggestionMessage is deprecated. Use i18n capabilities instead.');\n this._searchSuggestionMessage = value;\n }\n\n get searchSuggestionMessage(): string {\n return this._searchSuggestionMessage;\n }\n\n /**\n * @deprecated use i18n capabilities instead\n * Second part of message for search suggestion.\n * direction for navigating the suggestion. This is not necessry in case of 0 suggestion.\n */\n @Input()\n set searchSuggestionNavigateMessage(value: string) {\n console.warn('Property searchSuggestionNavigateMessage is deprecated. Use i18n capabilities instead.');\n this._searchSuggestionNavigateMessage = value;\n }\n\n get searchSuggestionNavigateMessage(): string {\n return this._searchSuggestionNavigateMessage;\n }\n\n /** Whether to always show search button. */\n @Input()\n forceSearchButton = 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 get isFocused(): boolean {\n return this._document?.activeElement === this.inputField?.nativeElement;\n }\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 typeahead dropdown.\n * @hidden\n */\n _showDropdown = false;\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 _dir: Direction = 'ltr';\n\n /** @hidden */\n isOpen = false;\n\n /** @hidden */\n _isRefresh = false;\n\n /** @hidden */\n _isSearchDone = false;\n\n /** @hidden */\n private _searchSuggestionMessage: string;\n\n /** @hidden */\n private _searchSuggestionNavigateMessage: string;\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 _currentSearchSuggestionAnnoucementMessage = '';\n\n /** @hidden */\n private _suggestionOverlayRef: OverlayRef | null;\n\n /** @hidden */\n private _suggestionPortal: TemplatePortal;\n\n /** @hidden */\n private _suggestionkeyManager: FocusKeyManager<SearchFieldSuggestionDirective>;\n\n /** @hidden */\n private _translationResolver = new TranslationResolver();\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\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 _overlay: Overlay,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _injector: Injector,\n protected readonly _cd: ChangeDetectorRef,\n @Optional() private readonly _rtl: RtlService,\n @Inject(DOCUMENT) private readonly _document: Document,\n @Inject(FD_LANGUAGE) private readonly _language$: Observable<FdLanguage>,\n private readonly _liveAnnouncer: LiveAnnouncer,\n readonly _dynamicComponentService: DynamicComponentService,\n readonly contentDensityObserver: ContentDensityObserver\n ) {\n super(_cd);\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 if (this._rtl) {\n this._rtl.rtl.pipe(takeUntil(this._onDestroy$)).subscribe((isRtl: boolean) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._cd.detectChanges();\n });\n }\n\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 if (this._suggestionOverlayRef) {\n this._suggestionOverlayRef.dispose();\n this._suggestionOverlayRef = null;\n }\n this._suggestionkeyManager?.destroy();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Focuses the search input field.\n */\n focus(): void {\n this.inputField.nativeElement.focus();\n this._cd.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._currentSearchSuggestionAnnoucementMessage = ''));\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._updateSearchAnnoucementText();\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._cd.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.closeSuggestionMenu();\n this._suggestionkeyManager?.destroy();\n this._suggestionkeyManager = new FocusKeyManager(this.suggestionItems);\n if (this._showDropdown) {\n return;\n }\n\n // create overlay\n const overlayConfig = this._createSuggetionOverlayConfig();\n this._suggestionOverlayRef = this._overlay.create(overlayConfig);\n\n // get portal to attach to overlay\n this._suggestionPortal = new TemplatePortal(this.suggestionMenuTemplate, this._viewContainerRef);\n this._suggestionOverlayRef.attach(this._suggestionPortal);\n\n // add subscription to capture outside clicks\n fromEvent<MouseEvent>(document, 'click')\n .pipe(\n filter((event) => {\n const target = event.target as HTMLElement;\n return (\n !!this._suggestionOverlayRef &&\n !this._suggestionOverlayRef.overlayElement.contains(target) &&\n this._showDropdown\n );\n }),\n take(1),\n takeUntil(this._onDestroy$)\n )\n .subscribe((event) => {\n const target = event.target as HTMLElement;\n const focus = !(target.tagName === 'INPUT' && this._inputId !== target.id);\n this.closeSuggestionMenu(focus);\n });\n\n this._showDropdown = 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 (!this._suggestionOverlayRef) {\n return;\n }\n this._suggestionOverlayRef.detach();\n if (focus) {\n this.focus();\n }\n this._showDropdown = false;\n }\n\n /** @hidden */\n clearTextInput(): void {\n this.inputText = '';\n this._cd.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 _createSuggetionOverlayConfig(): OverlayConfig {\n const positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n }\n ];\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this.inputGroup)\n .withLockedPosition()\n .withPositions(positions);\n const scrollStrategy = this._overlay.scrollStrategies.reposition();\n return new OverlayConfig({\n positionStrategy,\n scrollStrategy,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n width: this.inputGroup.nativeElement.offsetWidth\n });\n }\n\n /** @hidden */\n _initializeDataSource(dataSource: SearchFieldDataSource<any>): void {\n this._dataSourceChanged$.next();\n dataSource\n .open()\n .pipe(takeUntil(merge(this._onDestroy$, 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(takeUntil(this._onDestroy$)).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 _updateSearchAnnoucementText(): Promise<void> {\n // create search suggestion message with count.\n const suggestionCount = this._getSuggestionsLength();\n let { searchSuggestionMessage, searchSuggestionNavigateMessage } = this;\n if (searchSuggestionMessage) {\n searchSuggestionMessage = suggestionCount + ' ' + searchSuggestionMessage;\n }\n if (!searchSuggestionMessage || !searchSuggestionNavigateMessage) {\n const lang = await firstValueFrom(this._language$);\n if (!searchSuggestionMessage) {\n searchSuggestionMessage = this._translationResolver.resolve(\n lang,\n 'platformSearchField.searchSuggestionMessage',\n { count: suggestionCount }\n );\n }\n if (!searchSuggestionNavigateMessage) {\n searchSuggestionNavigateMessage = this._translationResolver.resolve(\n lang,\n 'platformSearchField.searchSuggestionNavigateMessage'\n );\n }\n }\n this._currentSearchSuggestionAnnoucementMessage =\n searchSuggestionMessage + (suggestionCount > 0 ? searchSuggestionNavigateMessage : '');\n if (this.inputText?.length > 0) {\n this._liveAnnouncer.announce(this._currentSearchSuggestionAnnoucementMessage);\n }\n }\n\n /** @hidden */\n private async _setUpMobileMode(): Promise<void> {\n const injector = Injector.create({\n providers: [{ provide: SEARCH_FIELD_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._dynamicComponentService.createDynamicModule(\n { inputFieldTemplate: this.inputFieldTemplate, suggestionMenuTemplate: this.suggestionMenuTemplate },\n PlatformSearchFieldMobileModule,\n SearchFieldMobileComponent,\n this._viewContainerRef,\n injector\n );\n }\n}\n\n@Pipe({\n name: 'suggestionMatches'\n})\nexport class SuggestionMatchesPipe implements PipeTransform {\n /** @hidden */\n transform(values: string[] | null, match: string, mobile = false): string[] {\n if (!values) {\n values = [];\n }\n if (mobile && !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-container *ngTemplateOutlet=\"mobile ? mobileTemplate : inputFieldTemplate\"></ng-container>\n\n<ng-template #mobileTemplate>\n <ng-container *ngTemplateOutlet=\"inputFieldTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #searchCategoryMenu>\n <button\n class=\"fdp-search-field__category-button fd-input-group__button fd-button fd-button--menu {{\n appearance?.categoryButtonClass\n }}\"\n [fdpMenuTriggerFor]=\"categoryMenu\"\n >\n <span class=\"fdp-search-field__category-label\" *ngIf=\"!hideCategoryLabel\">\n {{ _currentCategory?.label || categoryLabel }}\n </span>\n </button>\n <fdp-menu #categoryMenu>\n <fdp-menu-item *ngFor=\"let category of categories\" (itemSelect)=\"setCurrentCategory(category)\"\n >{{ category.label }}\n </fdp-menu-item>\n </fdp-menu>\n</ng-template>\n\n<ng-template #searchCategorySelect>\n <fd-select\n [placeholder]=\"categoryLabel\"\n [selectControlClass]=\"appearance?.categoryButtonClass\"\n [selectDropdownButtonClass]=\"appearance?.categoryDropdownButtonClass\"\n (valueChange)=\"setCurrentCategory($event)\"\n >\n <li fd-option *ngFor=\"let category of categories\" [value]=\"category\">{{ category.label }}</li>\n </fd-select>\n</ng-template>\n\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.isCompact$ | async\"\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 <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.searchCategoryClass }}\"\n *ngIf=\"_showCategoryDropdown\"\n >\n <ng-template\n *ngTemplateOutlet=\"categoryMode === 'select' ? searchCategorySelect : searchCategoryMenu\"\n ></ng-template>\n </span>\n <input\n #inputField\n type=\"search\"\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\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-controls]=\"_menuId\"\n [attr.aria-expanded]=\"_showDropdown ? 'true' : 'false'\"\n aria-haspopup=\"true\"\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 <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }}\"\n *ngIf=\"inputText && inputText.length > 0\"\n >\n <button\n [title]=\"'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 <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n *ngIf=\"forceSearchButton || isLoading || (!isLoading && !_isSearchDone)\"\n >\n <button\n *ngIf=\"!disableSearch\"\n [title]=\"'platformSearchField.submitButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__submit fd-button fd-button--transparent {{ appearance?.buttonClass }}\"\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 </span>\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n *ngIf=\"!disableRefresh && !isLoading && (_isRefresh || _isSearchDone)\"\n >\n <button\n [title]=\"'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 </div>\n </div>\n</ng-template>\n\n<ng-template #suggestionMenuTemplate>\n <div\n class=\"fdp-search-field__suggestion-dropdown\"\n [attr.dir]=\"_dir\"\n *ngIf=\"(_dropdownValues$ | async | suggestionMatches : inputText : mobile)?.length\"\n >\n <nav\n class=\"fd-menu\"\n tabindex=\"-1\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\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 <li\n fdpSearchFieldSuggestion\n class=\"fdp-search-field__suggestion-item fd-menu__item fd-menu__link\"\n *ngFor=\"let value of _dropdownValues$ | async | suggestionMatches : inputText : mobile\"\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 </ul>\n </nav>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { DynamicComponentService, PipeModule } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { PlatformMenuModule } from '@fundamental-ngx/platform/menu';\n\nimport { SearchFieldComponent, SearchFieldSuggestionDirective, SuggestionMatchesPipe } from './search-field.component';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { PlatformContentDensityDeprecationsModule } from '@fundamental-ngx/platform/shared';\nimport { SelectModule } from '@fundamental-ngx/core/select';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n IconModule,\n MenuModule,\n PipeModule,\n PlatformMenuModule,\n PlatformContentDensityDeprecationsModule,\n ContentDensityModule,\n I18nModule,\n SelectModule\n ],\n exports: [\n SearchFieldComponent,\n SearchFieldSuggestionDirective,\n SuggestionMatchesPipe,\n PlatformContentDensityDeprecationsModule,\n ContentDensityModule\n ],\n declarations: [SearchFieldComponent, SearchFieldSuggestionDirective, SuggestionMatchesPipe],\n providers: [DynamicComponentService]\n})\nexport class PlatformSearchFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i4","i1","i3"],"mappings":"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"}
1
+ {"version":3,"file":"fundamental-ngx-platform-search-field.mjs","sources":["../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field-mobile.interface.ts","../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field/search-field-mobile.component.ts","../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field/search-field-mobile.component.html","../../../../libs/platform/src/lib/search-field/search-field-mobile/search-field-mobile.module.ts","../../../../libs/platform/src/lib/search-field/search-field.component.ts","../../../../libs/platform/src/lib/search-field/search-field.component.html","../../../../libs/platform/src/lib/search-field/search-field.module.ts","../../../../libs/platform/src/lib/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 {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Inject,\n OnDestroy,\n OnInit,\n Optional,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {\n MOBILE_MODE_CONFIG,\n MobileModeBase,\n MobileModeConfigToken,\n MobileModeControl\n} from '@fundamental-ngx/core/mobile-mode';\nimport { DialogService } from '@fundamental-ngx/core/dialog';\nimport {\n SEARCH_FIELD_COMPONENT,\n SearchFieldChildContent,\n SearchFieldMobileInterface\n} from '../search-field-mobile.interface';\nimport { takeUntil } from 'rxjs/operators';\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})\nexport class SearchFieldMobileComponent\n extends MobileModeBase<SearchFieldMobileInterface>\n implements OnInit, OnDestroy\n{\n /** @hidden */\n childContent: SearchFieldChildContent | null = null;\n\n /** @hidden */\n @ViewChild('dialogTemplate') dialogTemplate: TemplateRef<any>;\n\n /** @hidden */\n constructor(\n elementRef: ElementRef,\n dialogService: DialogService,\n @Inject(SEARCH_FIELD_COMPONENT) searchFieldComponent: SearchFieldMobileInterface,\n @Optional() @Inject(MOBILE_MODE_CONFIG) mobileModes: MobileModeConfigToken[]\n ) {\n super(elementRef, dialogService, searchFieldComponent, MobileModeControl.SEARCH_FIELD, mobileModes);\n }\n\n /** @hidden */\n ngOnInit(): void {\n this.listenChanges();\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n super.onDestroy();\n }\n\n /** @hidden */\n listenChanges(): void {\n this._component.isOpenChange.pipe(takeUntil(this._onDestroy$)).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 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 <ng-container\n *ngIf=\"childContent?.inputFieldTemplate\"\n [ngTemplateOutlet]=\"childContent?.inputFieldTemplate!\"\n ></ng-container>\n </fd-bar-element>\n <button\n fd-dialog-close-button\n fdkInitialFocus\n *ngIf=\"mobileConfig?.hasCloseButton\"\n [mobile]=\"true\"\n (click)=\"_handleDismiss()\"\n ></button>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <ng-container\n *ngIf=\"childContent?.suggestionMenuTemplate\"\n [ngTemplateOutlet]=\"childContent?.suggestionMenuTemplate!\"\n ></ng-container>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-button-bar\n *ngIf=\"mobileConfig?.approveButtonText\"\n fdType=\"emphasized\"\n [label]=\"mobileConfig.approveButtonText!\"\n (click)=\"_handleApprove()\"\n >\n </fd-button-bar>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { BarModule } from '@fundamental-ngx/core/bar';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { SearchFieldMobileComponent } from './search-field/search-field-mobile.component';\n\n@NgModule({\n declarations: [SearchFieldMobileComponent],\n imports: [CommonModule, BarModule, DialogModule, ButtonModule],\n exports: [SearchFieldMobileComponent]\n})\nexport class PlatformSearchFieldMobileModule {}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n Injector,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n Pipe,\n PipeTransform,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewChildren,\n ViewContainerRef,\n ViewEncapsulation\n} from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { DOWN_ARROW, ESCAPE, UP_ARROW } from '@angular/cdk/keycodes';\nimport { ConnectedPosition, Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { FocusableOption, FocusKeyManager, LiveAnnouncer } from '@angular/cdk/a11y';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Direction } from '@angular/cdk/bidi';\n\nimport { firstValueFrom, fromEvent, isObservable, merge, Observable, of, Subject } from 'rxjs';\nimport { filter, map, take, takeUntil } from 'rxjs/operators';\n\nimport { DynamicComponentService, KeyUtil, RtlService, warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { PopoverComponent } from '@fundamental-ngx/core/popover';\nimport { MobileModeConfig } from '@fundamental-ngx/core/mobile-mode';\nimport { BaseComponent, SearchFieldDataSource } from '@fundamental-ngx/platform/shared';\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';\nimport { PlatformSearchFieldMobileModule } from './search-field-mobile/search-field-mobile.module';\nimport { FdLanguage, FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { ContentDensityObserver, contentDensityObserverProviders } from '@fundamental-ngx/core/content-density';\nimport { FD_SHELLBAR_SEARCH_COMPONENT } from '@fundamental-ngx/core/shellbar';\nimport { SearchComponent } from '@fundamental-ngx/core/shared';\nimport equal from 'fast-deep-equal';\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 role: 'list-item'\n }\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 styleUrls: ['./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})\nexport class SearchFieldComponent\n extends BaseComponent\n implements OnInit, OnChanges, OnDestroy, SearchFieldMobileInterface, SearchComponent\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._cd.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 /**\n * ARIA label to specify what the search field is\n * Not shown in the UI, only visible by the screen-readers.\n */\n @Input()\n ariaLabel: Nullable<string>;\n\n /**\n * Id of elements (separated by space) for setting aria-labelledby for search input\n * Not shown in the UI, only visible by the screen-readers.\n */\n @Input()\n ariaLabelledby: string;\n\n /**\n * @deprecated use i18n capabilities instead\n * Message announced by screen reader, when search suggestions opens.\n */\n @Input()\n set searchSuggestionMessage(value: string) {\n warnOnce('Property searchSuggestionMessage is deprecated. Use i18n capabilities instead.');\n this._searchSuggestionMessage = value;\n }\n\n get searchSuggestionMessage(): string {\n return this._searchSuggestionMessage;\n }\n\n /**\n * @deprecated use i18n capabilities instead\n * Second part of message for search suggestion.\n * direction for navigating the suggestion. This is not necessry in case of 0 suggestion.\n */\n @Input()\n set searchSuggestionNavigateMessage(value: string) {\n warnOnce('Property searchSuggestionNavigateMessage is deprecated. Use i18n capabilities instead.');\n this._searchSuggestionNavigateMessage = value;\n }\n\n get searchSuggestionNavigateMessage(): string {\n return this._searchSuggestionNavigateMessage;\n }\n\n /** Whether to always show search button. */\n @Input()\n forceSearchButton = 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 get isFocused(): boolean {\n return this._document?.activeElement === this.inputField?.nativeElement;\n }\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 typeahead dropdown.\n * @hidden\n */\n _showDropdown = false;\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 _dir: Direction = 'ltr';\n\n /** @hidden */\n isOpen = false;\n\n /** @hidden */\n _isRefresh = false;\n\n /** @hidden */\n _isSearchDone = false;\n\n /** @hidden */\n private _searchSuggestionMessage: string;\n\n /** @hidden */\n private _searchSuggestionNavigateMessage: string;\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 _currentSearchSuggestionAnnoucementMessage = '';\n\n /** @hidden */\n private _suggestionOverlayRef: OverlayRef | null;\n\n /** @hidden */\n private _suggestionPortal: TemplatePortal;\n\n /** @hidden */\n private _suggestionkeyManager: FocusKeyManager<SearchFieldSuggestionDirective>;\n\n /** @hidden */\n private _translationResolver = new TranslationResolver();\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\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 _overlay: Overlay,\n private readonly _viewContainerRef: ViewContainerRef,\n private readonly _injector: Injector,\n protected readonly _cd: ChangeDetectorRef,\n @Optional() private readonly _rtl: RtlService,\n @Inject(DOCUMENT) private readonly _document: Document,\n @Inject(FD_LANGUAGE) private readonly _language$: Observable<FdLanguage>,\n private readonly _liveAnnouncer: LiveAnnouncer,\n readonly _dynamicComponentService: DynamicComponentService,\n readonly contentDensityObserver: ContentDensityObserver\n ) {\n super(_cd);\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 if (this._rtl) {\n this._rtl.rtl.pipe(takeUntil(this._onDestroy$)).subscribe((isRtl: boolean) => {\n this._dir = isRtl ? 'rtl' : 'ltr';\n this._cd.detectChanges();\n });\n }\n\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 if (this._suggestionOverlayRef) {\n this._suggestionOverlayRef.dispose();\n this._suggestionOverlayRef = null;\n }\n this._suggestionkeyManager?.destroy();\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Focuses the search input field.\n */\n focus(): void {\n this.inputField.nativeElement.focus();\n this._cd.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._currentSearchSuggestionAnnoucementMessage = ''));\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._updateSearchAnnoucementText();\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._cd.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.closeSuggestionMenu();\n this._suggestionkeyManager?.destroy();\n this._suggestionkeyManager = new FocusKeyManager(this.suggestionItems);\n if (this._showDropdown) {\n return;\n }\n\n // create overlay\n const overlayConfig = this._createSuggetionOverlayConfig();\n this._suggestionOverlayRef = this._overlay.create(overlayConfig);\n\n // get portal to attach to overlay\n this._suggestionPortal = new TemplatePortal(this.suggestionMenuTemplate, this._viewContainerRef);\n this._suggestionOverlayRef.attach(this._suggestionPortal);\n\n // add subscription to capture outside clicks\n fromEvent<MouseEvent>(document, 'click')\n .pipe(\n filter((event) => {\n const target = event.target as HTMLElement;\n return (\n !!this._suggestionOverlayRef &&\n !this._suggestionOverlayRef.overlayElement.contains(target) &&\n this._showDropdown\n );\n }),\n take(1),\n takeUntil(this._onDestroy$)\n )\n .subscribe((event) => {\n const target = event.target as HTMLElement;\n const focus = !(target.tagName === 'INPUT' && this._inputId !== target.id);\n this.closeSuggestionMenu(focus);\n });\n\n this._showDropdown = 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 (!this._suggestionOverlayRef) {\n return;\n }\n this._suggestionOverlayRef.detach();\n if (focus) {\n this.focus();\n }\n this._showDropdown = false;\n }\n\n /** @hidden */\n clearTextInput(): void {\n this.inputText = '';\n this._cd.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 _createSuggetionOverlayConfig(): OverlayConfig {\n const positions: ConnectedPosition[] = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top'\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom'\n }\n ];\n const positionStrategy = this._overlay\n .position()\n .flexibleConnectedTo(this.inputGroup)\n .withLockedPosition()\n .withPositions(positions);\n const scrollStrategy = this._overlay.scrollStrategies.reposition();\n return new OverlayConfig({\n positionStrategy,\n scrollStrategy,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n width: this.inputGroup.nativeElement.offsetWidth\n });\n }\n\n /** @hidden */\n _initializeDataSource(dataSource: SearchFieldDataSource<any>): void {\n this._dataSourceChanged$.next();\n dataSource\n .open()\n .pipe(takeUntil(merge(this._onDestroy$, 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(takeUntil(this._onDestroy$)).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 _updateSearchAnnoucementText(): Promise<void> {\n // create search suggestion message with count.\n const suggestionCount = this._getSuggestionsLength();\n let { searchSuggestionMessage, searchSuggestionNavigateMessage } = this;\n if (searchSuggestionMessage) {\n searchSuggestionMessage = suggestionCount + ' ' + searchSuggestionMessage;\n }\n if (!searchSuggestionMessage || !searchSuggestionNavigateMessage) {\n const lang = await firstValueFrom(this._language$);\n if (!searchSuggestionMessage) {\n searchSuggestionMessage = this._translationResolver.resolve(\n lang,\n 'platformSearchField.searchSuggestionMessage',\n { count: suggestionCount }\n );\n }\n if (!searchSuggestionNavigateMessage) {\n searchSuggestionNavigateMessage = this._translationResolver.resolve(\n lang,\n 'platformSearchField.searchSuggestionNavigateMessage'\n );\n }\n }\n this._currentSearchSuggestionAnnoucementMessage =\n searchSuggestionMessage + (suggestionCount > 0 ? searchSuggestionNavigateMessage : '');\n if (this.inputText?.length > 0) {\n this._liveAnnouncer.announce(this._currentSearchSuggestionAnnoucementMessage);\n }\n }\n\n /** @hidden */\n private async _setUpMobileMode(): Promise<void> {\n const injector = Injector.create({\n providers: [{ provide: SEARCH_FIELD_COMPONENT, useValue: this }],\n parent: this._injector\n });\n\n this._dynamicComponentService.createDynamicModule(\n { inputFieldTemplate: this.inputFieldTemplate, suggestionMenuTemplate: this.suggestionMenuTemplate },\n PlatformSearchFieldMobileModule,\n SearchFieldMobileComponent,\n this._viewContainerRef,\n injector\n );\n }\n}\n\n@Pipe({\n name: 'suggestionMatches'\n})\nexport class SuggestionMatchesPipe implements PipeTransform {\n /** @hidden */\n transform(values: string[] | null, match: string, mobile = false): string[] {\n if (!values) {\n values = [];\n }\n if (mobile && !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-container *ngTemplateOutlet=\"mobile ? mobileTemplate : inputFieldTemplate\"></ng-container>\n\n<ng-template #mobileTemplate>\n <ng-container *ngTemplateOutlet=\"inputFieldTemplate\"></ng-container>\n</ng-template>\n\n<ng-template #searchCategoryMenu>\n <button\n class=\"fdp-search-field__category-button fd-input-group__button fd-button fd-button--menu {{\n appearance?.categoryButtonClass\n }}\"\n [fdpMenuTriggerFor]=\"categoryMenu\"\n >\n <span class=\"fdp-search-field__category-label\" *ngIf=\"!hideCategoryLabel\">\n {{ _currentCategory?.label || categoryLabel }}\n </span>\n </button>\n <fdp-menu #categoryMenu>\n <fdp-menu-item *ngFor=\"let category of categories\" (itemSelect)=\"setCurrentCategory(category)\"\n >{{ category.label }}\n </fdp-menu-item>\n </fdp-menu>\n</ng-template>\n\n<ng-template #searchCategorySelect>\n <fd-select\n [placeholder]=\"categoryLabel\"\n [selectControlClass]=\"appearance?.categoryButtonClass\"\n [selectDropdownButtonClass]=\"appearance?.categoryDropdownButtonClass\"\n (valueChange)=\"setCurrentCategory($event)\"\n >\n <li fd-option *ngFor=\"let category of categories\" [value]=\"category\">{{ category.label }}</li>\n </fd-select>\n</ng-template>\n\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.isCompact$ | async\"\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 <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.searchCategoryClass }}\"\n *ngIf=\"_showCategoryDropdown\"\n >\n <ng-template\n *ngTemplateOutlet=\"categoryMode === 'select' ? searchCategorySelect : searchCategoryMenu\"\n ></ng-template>\n </span>\n <input\n #inputField\n type=\"search\"\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\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.aria-controls]=\"_menuId\"\n [attr.aria-expanded]=\"_showDropdown ? 'true' : 'false'\"\n aria-haspopup=\"true\"\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 <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }}\"\n *ngIf=\"inputText && inputText.length > 0\"\n >\n <button\n [title]=\"'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 <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n *ngIf=\"forceSearchButton || isLoading || (!isLoading && !_isSearchDone)\"\n >\n <button\n *ngIf=\"!disableSearch\"\n [title]=\"'platformSearchField.submitButtonTitle' | fdTranslate\"\n class=\"fdp-search-field__submit fd-button fd-button--transparent {{ appearance?.buttonClass }}\"\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 </span>\n <span\n class=\"fd-input-group__addon fd-input-group__addon--button {{ appearance?.addonClass }} {{\n appearance?.searchSubmitClass\n }}\"\n *ngIf=\"!disableRefresh && !isLoading && (_isRefresh || _isSearchDone)\"\n >\n <button\n [title]=\"'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 </div>\n </div>\n</ng-template>\n\n<ng-template #suggestionMenuTemplate>\n <div\n class=\"fdp-search-field__suggestion-dropdown\"\n [attr.dir]=\"_dir\"\n *ngIf=\"(_dropdownValues$ | async | suggestionMatches : inputText : mobile)?.length\"\n >\n <nav\n class=\"fd-menu\"\n tabindex=\"-1\"\n [class.is-compact]=\"contentDensityObserver.isCompact$ | async\"\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 <li\n fdpSearchFieldSuggestion\n class=\"fdp-search-field__suggestion-item fd-menu__item fd-menu__link\"\n *ngFor=\"let value of _dropdownValues$ | async | suggestionMatches : inputText : mobile\"\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 </ul>\n </nav>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { MenuModule } from '@fundamental-ngx/core/menu';\nimport { DynamicComponentService, PipeModule } from '@fundamental-ngx/cdk/utils';\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\nimport { PlatformMenuModule } from '@fundamental-ngx/platform/menu';\n\nimport { SearchFieldComponent, SearchFieldSuggestionDirective, SuggestionMatchesPipe } from './search-field.component';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { PlatformContentDensityDeprecationsModule } from '@fundamental-ngx/platform/shared';\nimport { SelectModule } from '@fundamental-ngx/core/select';\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n OverlayModule,\n IconModule,\n MenuModule,\n PipeModule,\n PlatformMenuModule,\n PlatformContentDensityDeprecationsModule,\n ContentDensityModule,\n I18nModule,\n SelectModule\n ],\n exports: [\n SearchFieldComponent,\n SearchFieldSuggestionDirective,\n SuggestionMatchesPipe,\n PlatformContentDensityDeprecationsModule,\n ContentDensityModule\n ],\n declarations: [SearchFieldComponent, SearchFieldSuggestionDirective, SuggestionMatchesPipe],\n providers: [DynamicComponentService]\n})\nexport class PlatformSearchFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i4","i1","i3"],"mappings":"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"}
@@ -29,13 +29,13 @@ import { LayoutGridModule } from '@fundamental-ngx/core/layout-grid';
29
29
  import * as i13 from 'rxjs';
30
30
  import { Subject, BehaviorSubject, firstValueFrom, asyncScheduler, Subscription, filter, debounceTime } from 'rxjs';
31
31
  import { observeOn, takeUntil, take, map } from 'rxjs/operators';
32
+ import * as i8 from '@fundamental-ngx/cdk/utils';
33
+ import { selectStrategy, warnOnce } from '@fundamental-ngx/cdk/utils';
32
34
  import { isSelectItem, FDP_PRESET_MANAGED_COMPONENT } from '@fundamental-ngx/platform/shared';
33
35
  import * as i12 from '@fundamental-ngx/i18n';
34
36
  import { TranslationResolver, FD_LANGUAGE, I18nModule } from '@fundamental-ngx/i18n';
35
37
  import * as i6$1 from '@fundamental-ngx/core/bar';
36
38
  import * as i7 from '@fundamental-ngx/core/title';
37
- import * as i8 from '@fundamental-ngx/cdk/utils';
38
- import { selectStrategy } from '@fundamental-ngx/cdk/utils';
39
39
  import * as i10 from '@fundamental-ngx/platform/table-helpers';
40
40
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
41
41
  import { FdDate } from '@fundamental-ngx/core/datetime';
@@ -917,7 +917,7 @@ class SmartFilterBarComponent extends SmartFilterBar {
917
917
  * @deprecated use i18n capabilities instead
918
918
  */
919
919
  set showFiltersLabel(value) {
920
- console.warn('Property showFiltersLabel is deprecated. Use i18n capabilities instead.');
920
+ warnOnce('Property showFiltersLabel is deprecated. Use i18n capabilities instead.');
921
921
  this._showFiltersLabel = value;
922
922
  }
923
923
  get showFiltersLabel() {
@@ -928,7 +928,7 @@ class SmartFilterBarComponent extends SmartFilterBar {
928
928
  * @deprecated use i18n capabilities instead
929
929
  */
930
930
  set hideFiltersLabel(value) {
931
- console.warn('Property hideFiltersLabel is deprecated. Use i18n capabilities instead.');
931
+ warnOnce('Property hideFiltersLabel is deprecated. Use i18n capabilities instead.');
932
932
  this._hideFiltersLabel = value;
933
933
  }
934
934
  get hideFiltersLabel() {
@@ -939,7 +939,7 @@ class SmartFilterBarComponent extends SmartFilterBar {
939
939
  * @deprecated use i18n capabilities instead
940
940
  */
941
941
  set filtersLabel(value) {
942
- console.warn('Property filtersLabel is deprecated. Use i18n capabilities instead.');
942
+ warnOnce('Property filtersLabel is deprecated. Use i18n capabilities instead.');
943
943
  this._filtersLabel = value;
944
944
  }
945
945
  get filtersLabel() {
@@ -959,7 +959,7 @@ class SmartFilterBarComponent extends SmartFilterBar {
959
959
  * Condition strategy labels.
960
960
  */
961
961
  set defineStrategyLabels(value) {
962
- console.warn('Property defineStrategyLabels is deprecated. Use i18n capabilities instead.');
962
+ warnOnce('Property defineStrategyLabels is deprecated. Use i18n capabilities instead.');
963
963
  this._defineStrategyLabels = value;
964
964
  }
965
965
  get defineStrategyLabels() {
@@ -970,7 +970,7 @@ class SmartFilterBarComponent extends SmartFilterBar {
970
970
  * Filters visibility category labels.
971
971
  */
972
972
  set filtersVisibilityCategoryLabels(value) {
973
- console.warn('Property filtersVisibilityCategoryLabels is deprecated. Use i18n capabilities instead.');
973
+ warnOnce('Property filtersVisibilityCategoryLabels is deprecated. Use i18n capabilities instead.');
974
974
  this._filtersVisibilityCategoryLabels = value;
975
975
  }
976
976
  get filtersVisibilityCategoryLabels() {