@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.
- package/esm2022/action-bar/action-bar.component.mjs +3 -3
- package/esm2022/button/button.component.mjs +4 -3
- package/esm2022/dynamic-page/dynamic-page-header/header/dynamic-page-header.component.mjs +3 -2
- package/esm2022/feed-input/feed-input.component.mjs +3 -2
- package/esm2022/form/checkbox/checkbox.component.mjs +6 -5
- package/esm2022/form/checkbox-group/checkbox-group.component.mjs +3 -3
- package/esm2022/form/date-picker/date-picker.component.mjs +7 -6
- package/esm2022/form/datetime-picker/datetime-picker.component.mjs +6 -5
- package/esm2022/form/form-generator/form-generator/form-generator.component.mjs +3 -2
- package/esm2022/form/form-group/form-field/form-field.component.mjs +4 -3
- package/esm2022/form/form-group/form-group.component.mjs +3 -3
- package/esm2022/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +3 -3
- package/esm2022/form/platform-file-uploader/platform-file-uploader.component.mjs +4 -3
- package/esm2022/form/radio-group/radio/radio.component.mjs +4 -3
- package/esm2022/form/select/commons/base-select.mjs +3 -3
- package/esm2022/form/select/select/select.component.mjs +4 -4
- package/esm2022/form/text-area/text-area.component.mjs +4 -4
- package/esm2022/form/time-picker/time-picker.component.mjs +3 -2
- package/esm2022/list/base-list-item.mjs +5 -5
- package/esm2022/page-footer/page-footer.component.mjs +3 -2
- package/esm2022/search-field/search-field.component.mjs +4 -4
- package/esm2022/smart-filter-bar/smart-filter-bar.component.mjs +7 -6
- package/esm2022/thumbnail/thumbnail-details/thumbnail-details.component.mjs +3 -2
- package/esm2022/thumbnail/thumbnail-image/thumbnail-image.component.mjs +3 -3
- package/esm2022/thumbnail/thumbnail.component.mjs +3 -3
- package/esm2022/upload-collection/upload-collection/upload-collection.component.mjs +5 -5
- package/esm2022/value-help-dialog/components/define-tab/define-tab.component.mjs +4 -3
- package/esm2022/value-help-dialog/components/select-tab/select-tab.component.mjs +3 -2
- package/esm2022/value-help-dialog/components/value-help-dialog-search/value-help-dialog-search.component.mjs +3 -2
- package/esm2022/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +5 -5
- package/fesm2022/fundamental-ngx-platform-action-bar.mjs +2 -2
- package/fesm2022/fundamental-ngx-platform-action-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-button.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-button.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs +2 -1
- package/fesm2022/fundamental-ngx-platform-dynamic-page.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs +2 -1
- package/fesm2022/fundamental-ngx-platform-feed-input.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +31 -30
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs +2 -1
- package/fesm2022/fundamental-ngx-platform-page-footer.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-search-field.mjs +3 -3
- package/fesm2022/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +7 -7
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-thumbnail.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-thumbnail.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-upload-collection.mjs +11 -10
- package/fesm2022/fundamental-ngx-platform-upload-collection.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +9 -8
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fundamental-ngx-platform-v0.44.0.tgz +0 -0
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/fundamental-ngx-platform-v0.44.0-rc.6.tgz +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-platform-smart-filter-bar.mjs","sources":["../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-settings-dialog/data-provider.ts","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.ts","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.html","../../../../libs/platform/src/lib/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.ts","../../../../libs/platform/src/lib/smart-filter-bar/directives/smart-filter-bar-subject.directive.ts","../../../../libs/platform/src/lib/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.ts","../../../../libs/platform/src/lib/smart-filter-bar/smart-filter-bar.service.ts","../../../../libs/platform/src/lib/smart-filter-bar/constants.ts","../../../../libs/platform/src/lib/smart-filter-bar/smart-filter-bar.class.ts","../../../../libs/platform/src/lib/smart-filter-bar/helpers.ts","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.ts","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.html","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.ts","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.ts","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.html","../../../../libs/platform/src/lib/smart-filter-bar/smart-filter-bar.component.ts","../../../../libs/platform/src/lib/smart-filter-bar/smart-filter-bar.component.html","../../../../libs/platform/src/lib/smart-filter-bar/smart-filter-bar.module.ts","../../../../libs/platform/src/lib/smart-filter-bar/providers/smart-filter-bar.provider.ts","../../../../libs/platform/src/lib/smart-filter-bar/fundamental-ngx-platform-smart-filter-bar.ts"],"sourcesContent":["import { ArrayTableDataProvider } from '@fundamental-ngx/platform/table';\nimport { FieldFilterItem } from '../../interfaces/smart-filter-bar-field-filter-item';\nimport { SmartFilterBarVisibilityCategory } from '../../interfaces/smart-filter-bar-visibility-category';\n\nexport class SmartFilterBarOptionsDataProvider extends ArrayTableDataProvider<FieldFilterItem> {\n /** @hidden */\n constructor(items: FieldFilterItem[]) {\n super(items);\n }\n\n /**\n * Filters rows depending on applied filter.\n * @param option filter visibility category.\n */\n filter(option: SmartFilterBarVisibilityCategory): void {\n let items: FieldFilterItem[];\n\n switch (option) {\n case 'visible':\n items = this._getVisibleItems();\n break;\n case 'active':\n items = this._getActiveItems();\n break;\n case 'visibleAndActive':\n items = this._getVisibleAndActiveItems();\n break;\n case 'mandatory':\n items = this._getMandatoryItems();\n break;\n case 'all':\n default:\n items = this._getAllItems();\n break;\n }\n\n this.items$.next(items);\n }\n\n /** @hidden */\n private _getAllItems(): FieldFilterItem[] {\n return this.items;\n }\n\n /** @hidden */\n private _getVisibleItems(): FieldFilterItem[] {\n return this.items.filter((i) => i.visible);\n }\n\n /** @hidden */\n private _getActiveItems(): FieldFilterItem[] {\n return this.items.filter((i) => i.active);\n }\n\n /** @hidden */\n private _getVisibleAndActiveItems(): FieldFilterItem[] {\n return this.items.filter((i) => i.visible || i.active);\n }\n\n /** @hidden */\n private _getMandatoryItems(): FieldFilterItem[] {\n return this.items.filter((i) => i.mandatory);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { asyncScheduler, BehaviorSubject, firstValueFrom, Observable, Subject, Subscription } from 'rxjs';\nimport { observeOn, takeUntil } from 'rxjs/operators';\n\nimport { DialogRef } from '@fundamental-ngx/core/dialog';\nimport { FdpSelectionChangeEvent } from '@fundamental-ngx/platform/form';\nimport { SelectItem } from '@fundamental-ngx/platform/shared';\nimport {\n Resettable,\n RESETTABLE_TOKEN,\n Table,\n TableDataSource,\n TableRowSelectionChangeEvent\n} from '@fundamental-ngx/platform/table';\n\nimport { SmartFilterBarFieldDefinition } from '../../interfaces/smart-filter-bar-field-definition';\nimport { SmartFilterSettingsDialogConfig } from '../../interfaces/smart-filter-bar-settings-dialog-config';\nimport { FieldFilterItem } from '../../interfaces/smart-filter-bar-field-filter-item';\nimport { SmartFilterBarOptionsDataProvider } from './data-provider';\nimport { FdLanguage, FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { SmartFilterBarVisibilityCategoryLabels } from '../../interfaces/smart-filter-bar-visibility-category';\n\n@Component({\n selector: 'fdp-smart-filter-bar-settings-dialog',\n templateUrl: './smart-filter-bar-settings-dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: RESETTABLE_TOKEN, useExisting: SmartFilterBarSettingsDialogComponent }]\n})\nexport class SmartFilterBarSettingsDialogComponent implements Resettable, AfterViewInit, OnDestroy {\n /**\n * Table instance\n */\n @ViewChild('table') table!: Table;\n\n /**\n * Table data source.\n */\n source!: TableDataSource<FieldFilterItem>;\n\n /** @hidden */\n _availableFields!: FieldFilterItem[];\n\n /** @hidden */\n _filterVisibilityOptions: SelectItem[] = [];\n\n /** @hidden */\n loaded = false;\n\n /** @hidden */\n private readonly _categoryLabelKeys: SmartFilterBarVisibilityCategoryLabels = {\n all: 'settingsCategoryAll',\n visible: 'settingsCategoryVisible',\n active: 'settingsCategoryActive',\n visibleAndActive: 'settingsCategoryVisibleAndActive',\n mandatory: 'settingsCategoryMandatory'\n };\n\n /** @hidden */\n private _sourceSubscription!: Subscription;\n\n /** @hidden */\n private _selectedFilters: string[] = [];\n\n /**\n * @hidden\n * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)\n */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _isResetAvailableSubject$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n /** Indicates when reset command is available */\n readonly isResetAvailable$: Observable<boolean> = this._isResetAvailableSubject$.asObservable();\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n /** @hidden */\n constructor(\n private _dialogRef: DialogRef<SmartFilterSettingsDialogConfig, string[]>,\n @Inject(FD_LANGUAGE) private readonly _language$: Observable<FdLanguage>,\n private readonly _cdr: ChangeDetectorRef\n ) {\n this.setInitialTableState();\n this._init();\n }\n\n /** @hidden */\n private async _init(): Promise<void> {\n await this._transformVisibilityLabels();\n this.loaded = true;\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.setSelectedFilters();\n }\n\n /**\n * Transforms visibility options into appropriate select item object.\n */\n private async _transformVisibilityLabels(): Promise<void> {\n let labels = this._dialogRef.data.visibilityCategories;\n if (!labels) {\n const lang = await firstValueFrom(this._language$);\n labels = { ...this._categoryLabelKeys };\n for (const strategyItem in labels) {\n if (Object.prototype.hasOwnProperty.call(labels, strategyItem)) {\n const translationKey = labels[strategyItem];\n labels[strategyItem] = this._translationResolver.resolve(\n lang,\n 'platformSmartFilterBar.' + translationKey\n );\n }\n }\n }\n for (const [selectValue, selectLabel] of Object.entries(labels)) {\n this._filterVisibilityOptions.push({\n label: selectLabel,\n value: selectValue\n });\n }\n }\n\n /**\n * Checks the checkbox in the table row if the field is selected.\n */\n setSelectedFilters(): void {\n this._sourceSubscription?.unsubscribe();\n this._sourceSubscription = this.source\n .open()\n .pipe(observeOn(asyncScheduler), takeUntil(this._onDestroy$))\n .subscribe((items) => {\n items.forEach((field, index) => {\n if (field.visible) {\n this.table.toggleSelectableRow(index);\n }\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Resets filters selection.\n */\n reset(): void {\n this.setInitialTableState();\n this.setSelectedFilters();\n }\n\n /**\n * Sets initial state of the table.\n */\n setInitialTableState(): void {\n this._availableFields = this._dialogRef.data.fields\n .filter((c: SmartFilterBarFieldDefinition) => c.filterable)\n .map((c: SmartFilterBarFieldDefinition) => ({\n label: c.label,\n active: !!this._dialogRef.data.filterBy.find((f) => f.field === c.name),\n mandatory: c.required,\n visible: this._dialogRef.data.selectedFilters.includes(c.name),\n key: c.key,\n name: c.name\n }));\n\n this.source = new TableDataSource(new SmartFilterBarOptionsDataProvider(this._availableFields));\n }\n\n /** @hidden */\n _cancel(): void {\n this._dialogRef.dismiss();\n }\n\n /** @hidden */\n _confirm(): void {\n this._dialogRef.close(this._selectedFilters);\n }\n\n /** @hidden */\n _onRowSelectionChange(event: TableRowSelectionChangeEvent<FieldFilterItem>): void {\n this._selectedFilters = event.selection.map((c) => c.name);\n this._isResetAvailableSubject$.next(true);\n }\n\n /** @hidden */\n _onFilterVisibilityChange(event: FdpSelectionChangeEvent): void {\n if (!this.table) {\n return;\n }\n (this.source.dataProvider as SmartFilterBarOptionsDataProvider).filter(event.payload);\n this.source.fetch(this.table.getTableState());\n }\n}\n","<fd-dialog class=\"fdp-table-p13-filtering-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 [headerSize]=\"4\" fd-title>\n {{ 'platformSmartFilterBar.selectFiltersHeader' | fdTranslate }}\n </h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <fdp-table\n *ngIf=\"loaded; else loadingTpl\"\n #table\n (rowSelectionChange)=\"_onRowSelectionChange($event)\"\n [dataSource]=\"source\"\n selectionMode=\"multiple\"\n >\n <fdp-table-toolbar\n [hideItemCount]=\"false\"\n [title]=\"'platformSmartFilterBar.selectFiltersAvailableFiltersText' | fdTranslate\"\n >\n <fdp-table-toolbar-actions>\n <fdp-select\n (selectionChange)=\"_onFilterVisibilityChange($event)\"\n [list]=\"_filterVisibilityOptions\"\n [value]=\"_filterVisibilityOptions[0].value\"\n >\n </fdp-select>\n </fdp-table-toolbar-actions>\n </fdp-table-toolbar>\n <fdp-column\n align=\"start\"\n key=\"label\"\n [label]=\"'platformSmartFilterBar.selectFiltersFilterColumnLabel' | fdTranslate\"\n name=\"label\"\n ></fdp-column>\n <fdp-column\n align=\"center\"\n key=\"active\"\n [label]=\"'platformSmartFilterBar.selectFiltersActiveColumnLabel' | fdTranslate\"\n name=\"active\"\n width=\"150px\"\n >\n <fdp-table-cell *fdpCellDef=\"let item\">\n <fd-icon *ngIf=\"item.active\" glyph=\"accept\"></fd-icon>\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <fdp-button\n (click)=\"_confirm()\"\n buttonType=\"emphasized\"\n [label]=\"'platformSmartFilterBar.selectFiltersSubmitButtonLabel' | fdTranslate\"\n ></fdp-button>\n </fd-dialog-footer-button>\n\n <fd-dialog-footer-button>\n <fdp-button\n (click)=\"_cancel()\"\n buttonType=\"transparent\"\n [label]=\"'platformSmartFilterBar.selectFiltersCancelButton' | fdTranslate\"\n ></fdp-button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n\n<ng-template #loadingTpl>\n <div style=\"text-align: center; margin: 1rem\">\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\n </div>\n</ng-template>\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, Input } from '@angular/core';\nimport { CollectionFilterGroupStrategy, FilterableColumnDataType, FilterType } from '@fundamental-ngx/platform/table';\n\n@Directive({\n selector: '[fdpSmartFilterBarFieldDefinition], [fdp-smart-filter-bar-field-definition]'\n})\nexport class SmartFilterBarFieldDefinitionDirective {\n /** Field data accessor key. */\n @Input()\n key!: string;\n\n /** Unique field identifier. */\n @Input()\n name!: string;\n\n /** Field label. */\n @Input()\n label!: string;\n /** Field filter type */\n @Input()\n filterType!: FilterType;\n /** Field data type */\n @Input()\n dataType!: FilterableColumnDataType;\n /** Field custom filter type */\n @Input()\n customFilterType!: string;\n\n /** Condition strategy */\n @Input()\n conditionStrategy: CollectionFilterGroupStrategy = 'or';\n\n /** @hidden */\n private _smartFilterBarFilterable = true;\n\n /** Whether this field can be filtered. Default value is true. */\n @Input()\n set smartFilterBarFilterable(value: BooleanInput) {\n this._smartFilterBarFilterable = coerceBooleanProperty(value);\n }\n get smartFilterBarFilterable(): boolean {\n return this._smartFilterBarFilterable;\n }\n\n /** @hidden */\n private _required = false;\n\n /** Whether this field filter is mandatory. */\n @Input()\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n get required(): boolean {\n return this._required;\n }\n\n /** @hidden */\n private _defaultSelected = false;\n\n /** Whether this field filter is selected by default. */\n @Input()\n set defaultSelected(value: BooleanInput) {\n this._defaultSelected = coerceBooleanProperty(value);\n }\n get defaultSelected(): boolean {\n return this._defaultSelected;\n }\n\n /** Whether this field has autocomplete options */\n @Input()\n set hasOptions(value: BooleanInput) {\n this._hasOptions = coerceBooleanProperty(value);\n }\n get hasOptions(): boolean {\n return this._hasOptions;\n }\n\n /** @hidden */\n private _hasOptions = false;\n}\n","import { AfterViewInit, ContentChildren, Directive, QueryList } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { SelectItem } from '@fundamental-ngx/platform/shared';\nimport { Table, TableDataSource, TableState } from '@fundamental-ngx/platform/table';\nimport { SmartFilterBarFieldDefinition } from '../interfaces/smart-filter-bar-field-definition';\nimport { SmartFilterBarFieldDefinitionDirective } from './smart-filter-bar-field-definition.directive';\n\n@Directive({\n selector: '[fdpSmartFilterBarSubject], [fdp-smart-filter-bar-subject]',\n exportAs: 'fdp-smart-filter-bar-subject'\n})\nexport class SmartFilterBarSubjectDirective implements AfterViewInit {\n /** @hidden */\n @ContentChildren(SmartFilterBarFieldDefinitionDirective)\n _fieldDefinitions!: QueryList<SmartFilterBarFieldDefinitionDirective>;\n\n /** @hidden */\n _fieldDefinitionsSubject = new BehaviorSubject<SmartFilterBarFieldDefinition[]>([]);\n\n /**\n * Observable of available fields.\n */\n readonly fieldsStream = this._fieldDefinitionsSubject.asObservable();\n\n /** @hidden */\n constructor(private _subject: Table) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._fieldDefinitionsSubject.next(this._fieldDefinitions.toArray().map((d) => this._transformSubjectField(d)));\n this._fieldDefinitions.changes.subscribe((definitions: SmartFilterBarFieldDefinitionDirective[]) => {\n this._fieldDefinitionsSubject.next(definitions.map((d) => this._transformSubjectField(d)));\n });\n }\n\n /**\n * Retrieves data source of the subject.\n * @returns Subject's data source.\n */\n getDataSource(): TableDataSource<any> {\n return this._subject.getDataSource();\n }\n\n /**\n * Retrieves available fields of the subject.\n * @returns Available fields of the subject.\n */\n getSubjectFields(): SmartFilterBarFieldDefinition[] {\n return this._fieldDefinitions.toArray().map((f) => this._transformSubjectField(f));\n }\n\n /** Get available field variants */\n getFieldVariants(field: string): Observable<SelectItem[]> {\n return this.getDataSource().dataProvider.getFieldOptions(field);\n }\n\n /** @hidden */\n getDefaultFields(): string[] {\n return this.getSubjectFields()\n ?.filter((f) => f.defaultSelected)\n .map((f) => f.name);\n }\n\n /** Get subject state */\n getState(): TableState {\n return this._subject.getTableState();\n }\n\n /**\n * @returns Subject component.\n */\n getSubject(): Table {\n return this._subject;\n }\n\n /** @hidden */\n private _transformSubjectField(column: SmartFilterBarFieldDefinitionDirective): SmartFilterBarFieldDefinition {\n return {\n key: column.key,\n name: column.name,\n label: column.label,\n filterType: column.filterType,\n filterable: column.smartFilterBarFilterable,\n dataType: column.dataType,\n required: column.required,\n customFilterType: column.customFilterType,\n defaultSelected: column.defaultSelected,\n hasOptions: column.hasOptions,\n conditionStrategy: column.conditionStrategy\n };\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[fdpSmartFilterBarToolbarItem]'\n})\nexport class SmartFilterBarToolbarItemDirective {\n /** @hidden */\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { Injectable, Type } from '@angular/core';\nimport { FdDate } from '@fundamental-ngx/core/datetime';\nimport {\n BaseDynamicFormGeneratorControl,\n FormGeneratorService,\n PreparedDynamicFormFieldItem\n} from '@fundamental-ngx/platform/form';\nimport {\n CollectionFilterGroup,\n FilterableColumnDataType,\n FilterAllStrategy,\n getFilterStrategiesBasedOnDataType\n} from '@fundamental-ngx/platform/table';\nimport { isSelectItem, SelectItem } from '@fundamental-ngx/platform/shared';\n\nimport { SmartFilterBarCustomFilterConfig } from './interfaces/smart-filter-bar-custom-filter-config';\nimport { SmartFilterBarCondition } from './interfaces/smart-filter-bar-condition';\nimport { selectStrategy } from '@fundamental-ngx/cdk/utils';\n\n@Injectable()\nexport class SmartFilterBarService {\n /** @hidden */\n private _customFilterConditions: Map<Type<BaseDynamicFormGeneratorControl>, SmartFilterBarCustomFilterConfig> =\n new Map<Type<BaseDynamicFormGeneratorControl>, SmartFilterBarCustomFilterConfig>();\n\n /** @hidden */\n constructor(private _fgService: FormGeneratorService) {}\n\n /**\n * Adds custom filter type to the smart filter bar.\n * @param options Configuration options.\n * @returns true if component was added successfully.\n */\n addCustomFilter(options: SmartFilterBarCustomFilterConfig): boolean {\n if (!options.conditionComponent && options.rendererComponent) {\n options.conditionComponent = options.rendererComponent;\n }\n\n if (!options.conditionComponent) {\n return false;\n }\n\n const result = this._fgService.addComponent(options.conditionComponent, options.types);\n\n if (result) {\n this._customFilterConditions.set(options.conditionComponent, options);\n }\n\n if (result && options.rendererComponent) {\n this._fgService.addComponent(\n options.rendererComponent,\n options.types.map((t) => `${t}-renderer`)\n );\n }\n\n return result;\n }\n\n /**\n * Returns provided configuration object of the custom filter.\n * @param type Filter type.\n * @returns Configuration object.\n */\n getCustomFilterConfiguration(type: string): SmartFilterBarCustomFilterConfig | undefined {\n const componentDefinition = this._fgService.getComponentDefinitionByType(type);\n\n if (!componentDefinition) {\n return undefined;\n }\n\n return this._customFilterConditions.get(componentDefinition.component);\n }\n\n /**\n * Returns applicable condition options of the filter.\n * @param type Filter type.\n * @param dataType Filter data type.\n * @returns Array of applicable condition options.\n */\n getApplicableFilterConditions(\n type: string,\n dataType: FilterableColumnDataType = FilterableColumnDataType.STRING\n ): FilterAllStrategy[] {\n const componentDefinition = this._fgService.getComponentDefinitionByType(type);\n\n const defaultConditions: FilterAllStrategy[] = getFilterStrategiesBasedOnDataType(\n dataType\n ) as FilterAllStrategy[];\n\n if (!componentDefinition) {\n return defaultConditions;\n }\n\n const filterDefinition = this._customFilterConditions.get(componentDefinition.component);\n\n return filterDefinition?.filterStrategies || defaultConditions;\n }\n\n /** @hidden */\n async getDisplayValue(condition: SmartFilterBarCondition, filterType: string): Promise<string> {\n const configuration = this.getCustomFilterConfiguration(filterType);\n\n if (configuration?.valueRenderer) {\n const obj = configuration?.valueRenderer(condition);\n const strategy = selectStrategy(obj);\n\n let returnValue!: string;\n\n await strategy.createSubscription(obj, (value) => {\n returnValue = value;\n });\n\n return returnValue;\n }\n\n const value1 = this._normalizeValue(condition.value);\n const value2 = this._normalizeValue(condition.value2);\n\n switch (condition.operator) {\n case 'equalTo':\n return `=${value1}`;\n case 'contains':\n return `*${value1}*`;\n case 'between':\n return `${value1}...${value2}`;\n case 'beginsWith':\n return `${value1}*`;\n case 'endsWith':\n return `*${value1}`;\n case 'greaterThan':\n return `>${value1}`;\n case 'greaterThanOrEqualTo':\n return `>=${value1}`;\n case 'lessThan':\n return `<${value1}`;\n case 'lessThanOrEqualTo':\n return `<=${value1}`;\n case 'after':\n return `>${value1}`;\n case 'onOrAfter':\n return `>=${value1}`;\n case 'before':\n return `<${value1}`;\n case 'beforeOrOn':\n return `<=${value1}`;\n default:\n return `${value1}`;\n }\n }\n\n /**\n * Method for normalizing generated conditions to display in human-readable format.\n * @returns Formatted array of conditions.\n * @param formItem\n * @param conditions\n */\n async normalizeConditions(\n formItem: PreparedDynamicFormFieldItem,\n conditions: SmartFilterBarCondition[]\n ): Promise<SmartFilterBarCondition[]> {\n const normalizedConditions: SmartFilterBarCondition[] = [];\n\n for (const condition of conditions) {\n const newCondition = Object.assign({}, condition);\n\n newCondition.displayValue = await this.getDisplayValue(\n newCondition,\n formItem.guiOptions?.additionalData.type\n );\n\n normalizedConditions.push(newCondition);\n }\n\n return normalizedConditions;\n }\n\n /**\n * Returns formatted condition variants.\n */\n async getConditionFieldSelectedVariants(\n formItem: PreparedDynamicFormFieldItem,\n conditions: SmartFilterBarCondition[]\n ): Promise<SelectItem[]> {\n return (await this.normalizeConditions(formItem, conditions)).map((c: any) => {\n if (isSelectItem(c)) {\n return c;\n }\n\n const condition: SelectItem = {\n label: c.displayValue,\n value: c\n };\n\n return condition;\n });\n }\n\n /**\n * Transforms collection filter into smart filter bar condition.\n */\n transformCollectionFilter(filterGroup: CollectionFilterGroup): SmartFilterBarCondition[] {\n return filterGroup.filters.map((filter) => {\n const condition: SmartFilterBarCondition = {\n operator: filter.strategy,\n value: filter.value,\n value2: filter.value2\n };\n\n return condition;\n });\n }\n\n /**\n * @hidden\n * Normalizes condition value.\n * @param value\n * @returns\n */\n private _normalizeValue(value: any): any {\n if (Array.isArray(value)) {\n return value.map((v) => this._normalizeValue(v)).join(', ');\n }\n\n if (isSelectItem(value)) {\n return value.label;\n }\n\n if (value instanceof FdDate) {\n return value.toDateString();\n }\n\n return value;\n }\n}\n","export const SMART_FILTER_BAR_RENDERER_COMPONENT = 'smart-filter-condition-renderer';\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { SearchInput } from '@fundamental-ngx/platform/search-field';\nimport { PresetManagedComponent } from '@fundamental-ngx/platform/shared';\nimport { CollectionFilterGroup } from '@fundamental-ngx/platform/table';\nimport { SmartFilterBarManagedPreset } from './interfaces/smart-filter-bar-change';\nimport { SmartFilterBarCondition } from './interfaces/smart-filter-bar-condition';\nimport { SmartFilterBarStrategyLabels } from './interfaces/strategy-labels.type';\n\n@Directive()\nexport abstract class SmartFilterBar implements PresetManagedComponent<SmartFilterBarManagedPreset> {\n /** @hidden */\n abstract defineStrategyLabels?: SmartFilterBarStrategyLabels;\n\n abstract search: SearchInput | undefined;\n\n /** @hidden */\n abstract getDisplayValue(condition: SmartFilterBarCondition, filterType: string): Promise<string>;\n\n /** Method for setting predefined configuration preset. */\n abstract setPreset(data: SmartFilterBarManagedPreset): void;\n\n /** Returns current preset configuration. */\n abstract getCurrentPreset(): SmartFilterBarManagedPreset;\n\n abstract getFormattedConditions(): Promise<CollectionFilterGroup[]>;\n\n /** Component name used in Preset managed component. */\n @Input()\n name = 'platformSmartFilterBar';\n\n /** Event emitted when smart filter bar configuration has been changed. */\n @Output()\n presetChanged = new EventEmitter<SmartFilterBarManagedPreset>();\n}\n","import { isSelectItem } from '@fundamental-ngx/platform/shared';\n\n/** @hidden */\nexport function getSelectItemValue(item: any): any {\n if (Array.isArray(item)) {\n item = item.map((i) => getSelectItemValue(i));\n }\n\n return isSelectItem(item) ? item.value : item;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n QueryList,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { FilterAllStrategy, FILTER_STRATEGY } from '@fundamental-ngx/platform/table';\nimport { SelectItem } from '@fundamental-ngx/platform/shared';\nimport { DialogRef } from '@fundamental-ngx/core/dialog';\nimport { DynamicFormControl, DynamicFormItem, FormGeneratorComponent } from '@fundamental-ngx/platform/form';\nimport { SmartFilterBarCondition, SmartFilterBarConditionBuilder } from '../../interfaces/smart-filter-bar-condition';\nimport { SmartFilterBarService } from '../../smart-filter-bar.service';\nimport { getSelectItemValue } from '../../helpers';\nimport { SmartFilterBarStrategyLabels } from '../../interfaces/strategy-labels.type';\nimport { FdLanguage, FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { firstValueFrom, Observable } from 'rxjs';\n\n@Component({\n selector: 'fdp-smart-filter-bar-conditions-dialog',\n templateUrl: './smart-filter-bar-conditions-dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SmartFilterBarConditionsDialogComponent {\n /** Condition builder config. */\n config: SmartFilterBarConditionBuilder;\n\n /** Available condition operator options. */\n conditionOperatorOptions: SelectItem[] = [];\n\n /** @hidden */\n _formItems: DynamicFormItem[][] = [];\n\n /**\n * Generated condition forms.\n */\n @ViewChildren(FormGeneratorComponent)\n formGenerators!: QueryList<FormGeneratorComponent>;\n\n /** @hidden */\n loaded = false;\n\n /** @hidden */\n private readonly _conditionLabelKeys: SmartFilterBarStrategyLabels = {\n contains: 'filterConditionContains',\n equalTo: 'filterConditionEqualTo',\n between: 'filterConditionBetween',\n beginsWith: 'filterConditionBeginsWith',\n endsWith: 'filterConditionEndsWith',\n lessThan: 'filterConditionLessThan',\n lessThanOrEqualTo: 'filterConditionLessThanOrEqualTo',\n greaterThan: 'filterConditionGreaterThan',\n greaterThanOrEqualTo: 'filterConditionGreaterThanOrEqualTo',\n after: 'filterConditionAfter',\n onOrAfter: 'filterConditionOnOrAfter',\n before: 'filterConditionBefore',\n beforeOrOn: 'filterConditionBeforeOrOn'\n };\n\n /** @hidden */\n private _submittedForms: any[] = [];\n\n /** @hidden */\n private _language: FdLanguage;\n\n /** @hidden */\n private _translationResolver = new TranslationResolver();\n\n /** @hidden */\n constructor(\n private _dialogRef: DialogRef<SmartFilterBarConditionBuilder, SmartFilterBarCondition[]>,\n @Inject(FD_LANGUAGE) private readonly _language$: Observable<FdLanguage>,\n private readonly _cdr: ChangeDetectorRef,\n private _smartFilterBarService: SmartFilterBarService\n ) {\n this._init();\n }\n\n /** @hidden */\n private async _init(): Promise<void> {\n this.config = this._dialogRef.data;\n\n this._language = await firstValueFrom(this._language$);\n this.conditionOperatorOptions = await this._getApplicableConditionOperators();\n\n this._addExistingConditions(getSelectItemValue(this.config.conditions));\n\n if (this.config.conditions.length === 0) {\n // Add first empty condition\n this.addCondition();\n }\n this.loaded = true;\n this._cdr.markForCheck();\n }\n\n /**\n * Adds empty condition.\n */\n addCondition(): void {\n this._formItems.push(this._generateFormGeneratorItems());\n }\n\n /**\n * Removes condition at defined index\n * @param index Index of the condition in the array.\n */\n removeCondition(index: number): void {\n this._formItems.splice(index, 1);\n\n if (this._formItems.length === 0) {\n this.addCondition();\n }\n }\n\n /**\n * Submits all condition forms.\n */\n applyConditions(): void {\n this._cdr.detectChanges();\n this._submittedForms = [];\n this.formGenerators.toArray().forEach((formGenerator) => formGenerator.submit());\n }\n\n /**\n * @hidden\n * Callback function when form generator form has been submitted.\n * Will close dialog in case if all forms are valid.\n * @param form Form generator form value.\n */\n _onFormSubmitted(form: SmartFilterBarCondition): void {\n this._submittedForms.push(form);\n\n if (this._submittedForms.length !== this.formGenerators.length) {\n return;\n }\n\n const formsResult = this._submittedForms.map((f) => {\n f.value = f.value1 !== undefined ? f.value1 : f.value;\n return f;\n });\n\n this._dialogRef.close(\n formsResult.filter((c: SmartFilterBarCondition) => c.value !== undefined && c.value !== null)\n );\n }\n\n /** @hidden */\n _cancel(): void {\n this._dialogRef.dismiss();\n }\n\n /**\n * @hidden\n * Returns applicable condition options of the filter.\n * @returns Array of applicable condition options.\n */\n private _getApplicableConditionOperators(): SelectItem[] {\n const strategy = this._smartFilterBarService.getApplicableFilterConditions(\n this.config.filterType,\n this.config.dataType\n );\n\n let labelsConfig = this.config.defineStrategyLabels;\n\n if (!labelsConfig) {\n labelsConfig = { ...this._conditionLabelKeys };\n for (const strategyItem in labelsConfig) {\n if (Object.prototype.hasOwnProperty.call(labelsConfig, strategyItem)) {\n const translationKey = labelsConfig[strategyItem];\n labelsConfig[strategyItem] = this._translationResolver.resolve(\n this._language,\n 'platformSmartFilterBar.' + translationKey\n );\n }\n }\n }\n\n return strategy.map((s: FilterAllStrategy) => ({\n label: labelsConfig![s],\n value: s\n }));\n }\n\n /**\n * Transforms filter conditions into form generator form items array.\n * @param conditions existing smart filter bar filter conditions.\n */\n private _addExistingConditions(conditions: SmartFilterBarCondition[]): void {\n conditions.forEach((condition) => {\n const conditionGroup = this._generateFormGeneratorItems(condition);\n\n this._formItems.push(conditionGroup);\n });\n }\n\n /** @hidden */\n private _generateFormGeneratorItems(condition?: SmartFilterBarCondition): DynamicFormItem[] {\n return [\n {\n name: 'operator',\n message: 'operator',\n default: condition\n ? this.conditionOperatorOptions.find((o) => o.value === condition.operator)?.value\n : this.conditionOperatorOptions[0].value,\n type: 'select',\n choices: this.conditionOperatorOptions,\n required: true,\n guiOptions: {\n inline: false,\n column: 1,\n noLabelLayout: true\n }\n },\n {\n name: 'value',\n message: 'value',\n default: condition?.value,\n type: this.config.filterType,\n choices: this.config.choices,\n placeholder: this._translationResolver.resolve(\n this._language,\n 'platformSmartFilterBar.filterConditionValuePlaceholder'\n ),\n controlType: this.config.controlType,\n when: (value) => value.operator !== FILTER_STRATEGY.BETWEEN,\n onchange: (value, _, control: DynamicFormControl) => {\n control.parent?.get('value1')?.setValue(value, { emitEvent: false });\n },\n guiOptions: {\n inline: false,\n column: 2,\n noLabelLayout: true\n }\n },\n {\n name: 'value1',\n message: 'value1',\n default: condition?.value,\n type: this.config.filterType,\n choices: this.config.choices,\n placeholder: this._translationResolver.resolve(\n this._language,\n 'platformSmartFilterBar.filterConditionValueFromPlaceholder'\n ),\n controlType: this.config.controlType,\n when: (value) => value.operator === FILTER_STRATEGY.BETWEEN,\n onchange: (value, _, control: DynamicFormControl) => {\n control.parent?.get('value')?.setValue(value, { emitEvent: false });\n },\n guiOptions: {\n inline: false,\n column: 2,\n noLabelLayout: true\n }\n },\n {\n name: 'value2',\n message: 'value2',\n default: condition?.value2,\n type: this.config.filterType,\n choices: this.config.choices,\n placeholder: this._translationResolver.resolve(\n this._language,\n 'platformSmartFilterBar.filterConditionValueToPlaceholder'\n ),\n required: true,\n controlType: this.config.controlType,\n when: (value) => value?.operator === FILTER_STRATEGY.BETWEEN,\n guiOptions: {\n inline: false,\n column: 3,\n noLabelLayout: true\n }\n }\n ];\n }\n}\n","<fd-dialog class=\"fdp-smart-filter-bar__conditions-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 [headerSize]=\"4\" fd-title>{{ config.header }}</h4>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <form *ngIf=\"loaded; else loadingTpl\">\n <fd-layout-grid *ngFor=\"let condition of _formItems; let i = index\">\n <div fdLayoutGridRow>\n <div colGrow fdLayoutGridCol>\n <!-- wrapping \"formSubmitted\" event payload as any, because it's type is more generic than we're expecting -->\n <fdp-form-generator\n (formSubmitted)=\"_onFormSubmitted($any($event))\"\n [formItems]=\"condition\"\n [unifiedLayout]=\"false\"\n columnLayout=\"XL3-L3-M3-S3\"\n [noAdditionalContent]=\"true\"\n ></fdp-form-generator>\n </div>\n <div class=\"fdp-smart-filter-bar__actions-column\" colGrow fdLayoutGridCol>\n <fdp-button\n (click)=\"removeCondition(i)\"\n buttonType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformSmartFilterBar.defineConditionsRemoveConditionButtonTitle' | fdTranslate\"\n type=\"button\"\n ></fdp-button>\n </div>\n </div>\n </fd-layout-grid>\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <div colGrow fdLayoutGridCol> </div>\n <div class=\"fdp-smart-filter-bar__actions-column\" fdLayoutGridCol>\n <fdp-button\n (click)=\"addCondition()\"\n [label]=\"'platformSmartFilterBar.defineConditionsAddConditionButtonLabel' | fdTranslate\"\n ></fdp-button>\n </div>\n </div>\n </fd-layout-grid>\n </form>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <fdp-button\n (click)=\"applyConditions()\"\n buttonType=\"emphasized\"\n [label]=\"'platformSmartFilterBar.defineConditionsSubmitButtonLabel' | fdTranslate\"\n ></fdp-button>\n </fd-dialog-footer-button>\n\n <fd-dialog-footer-button>\n <fdp-button\n (click)=\"_cancel()\"\n buttonType=\"transparent\"\n [label]=\"'platformSmartFilterBar.defineConditionsCancelButton' | fdTranslate\"\n ></fdp-button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n\n<ng-template #loadingTpl>\n <div style=\"text-align: center; margin: 1rem\">\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\n </div>\n</ng-template>\n","import { Directive, Injector } from '@angular/core';\nimport { DialogService } from '@fundamental-ngx/core/dialog';\nimport { BaseDynamicFormGeneratorControl, DynamicFormControl } from '@fundamental-ngx/platform/form';\nimport { take } from 'rxjs/operators';\nimport { SmartFilterBarCondition, SmartFilterBarConditionBuilder } from '../../interfaces/smart-filter-bar-condition';\nimport { SmartFilterBarService } from '../../smart-filter-bar.service';\nimport { SmartFilterBarConditionsDialogComponent } from '../smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component';\nimport { SmartFilterBar } from '../../smart-filter-bar.class';\n\n@Directive()\nexport abstract class BaseSmartFilterBarConditionField extends BaseDynamicFormGeneratorControl {\n /** @hidden */\n protected constructor(\n protected _dialogService: DialogService,\n protected _smartFilterBar: SmartFilterBar,\n protected _smartFilterBarService: SmartFilterBarService,\n protected _injector: Injector\n ) {\n super();\n }\n\n /**\n * Method for opening conditions configuration dialog.\n */\n openConditionsDialog: () => void = () => {\n const currentValue = this.getField().value;\n\n const dialogData: SmartFilterBarConditionBuilder = {\n header: this.formItem.message as string,\n dataType: this.formItem.guiOptions?.additionalData.dataType,\n filterType: this.formItem.guiOptions?.additionalData.type,\n conditions: currentValue || [],\n choices: this.formItem.guiOptions?.additionalData.choices,\n controlType: this.formItem.guiOptions?.additionalData.controlType,\n defineStrategyLabels: this._smartFilterBar.defineStrategyLabels\n };\n\n const dialogRef = this._dialogService.open(\n SmartFilterBarConditionsDialogComponent,\n {\n data: dialogData,\n width: '67.5rem',\n minHeight: '30%'\n },\n this._injector\n );\n\n dialogRef.afterClosed.pipe(take(1)).subscribe({\n next: async (conditions: SmartFilterBarCondition[]) => {\n const field = this.getField();\n const normalizedConditions = await this._smartFilterBarService.getConditionFieldSelectedVariants(\n this.formItem,\n conditions\n );\n field.setValue(normalizedConditions);\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n error: (_) => {}\n });\n };\n\n /**\n * Method for retrieving current form control of the generated form.\n * @returns Found form control.\n */\n getField(): DynamicFormControl {\n return this.form.get(`${this.formGroupName}.${this.name}`) as DynamicFormControl;\n }\n}\n","import { Component, Injector, ViewEncapsulation } from '@angular/core';\nimport { DialogService } from '@fundamental-ngx/core/dialog';\nimport { SmartFilterBarService } from '../../smart-filter-bar.service';\nimport { BaseSmartFilterBarConditionField } from './base-smart-filter-bar-condition-field';\nimport { SmartFilterBar } from '../../smart-filter-bar.class';\n\n@Component({\n selector: 'fdp-smart-filter-bar-condition-field',\n templateUrl: './smart-filter-bar-condition-field.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SmartFilterBarConditionFieldComponent extends BaseSmartFilterBarConditionField {\n /** @hidden */\n constructor(\n dialogService: DialogService,\n smartFilterBar: SmartFilterBar,\n smartFilterBarService: SmartFilterBarService,\n injector: Injector\n ) {\n super(dialogService, smartFilterBar, smartFilterBarService, injector);\n }\n}\n","<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-multi-input\n [id]=\"id\"\n [addOnButtonClickFn]=\"openConditionsDialog\"\n [autofocus]=\"true\"\n [dataSource]=\"formItem.choices || []\"\n [formControlName]=\"name\"\n [name]=\"name\"\n [placeholder]=\"formItem.placeholder || formItem.message\"\n displayKey=\"displayValue\"\n [glyphAriaLabel]=\"'platformSmartFilterBar.manageFieldConditions' | fdTranslate\"\n >\n </fdp-multi-input>\n </ng-container>\n</ng-container>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n forwardRef,\n Injector,\n Input,\n OnDestroy,\n Output,\n Provider,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Validators } from '@angular/forms';\n\nimport { BehaviorSubject, debounceTime, filter, firstValueFrom, Observable, Subscription } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { DialogConfig, DialogService } from '@fundamental-ngx/core/dialog';\nimport { CollectionFilterGroup, FilterableColumnDataType, FilterType } from '@fundamental-ngx/platform/table';\nimport { SearchInput } from '@fundamental-ngx/platform/search-field';\nimport {\n DynamicFormFieldItem,\n DynamicFormItem,\n FormGeneratorComponent,\n FormGeneratorService,\n PreparedDynamicFormFieldItem\n} from '@fundamental-ngx/platform/form';\nimport { FDP_PRESET_MANAGED_COMPONENT, SelectItem } from '@fundamental-ngx/platform/shared';\n\nimport { SmartFilterBarSettingsDialogComponent } from './components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component';\nimport { SmartFilterBarSubjectDirective } from './directives/smart-filter-bar-subject.directive';\nimport { SmartFilterBarToolbarItemDirective } from './directives/smart-filter-bar-toolbar-item.directive';\nimport { SmartFilterBarManagedPreset, SmartFilterChangeObject } from './interfaces/smart-filter-bar-change';\nimport { SmartFilterBarFieldDefinition } from './interfaces/smart-filter-bar-field-definition';\nimport { SmartFilterBarDynamicFormFieldItem } from './interfaces/smart-filter-dynamic-form-item';\nimport { SmartFilterBarCondition } from './interfaces/smart-filter-bar-condition';\nimport { SmartFilterSettingsDialogConfig } from './interfaces/smart-filter-bar-settings-dialog-config';\nimport { SmartFilterBarService } from './smart-filter-bar.service';\nimport { SMART_FILTER_BAR_RENDERER_COMPONENT } from './constants';\nimport { SmartFilterBarVisibilityCategoryLabels } from './interfaces/smart-filter-bar-visibility-category';\nimport { SmartFilterBar } from './smart-filter-bar.class';\nimport { SmartFilterBarConditionFieldComponent } from './components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component';\nimport { getSelectItemValue } from './helpers';\nimport { SmartFilterBarStrategyLabels } from './interfaces/strategy-labels.type';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nconst defaultColumnsLayout = 'XL4-L3-M2-S1';\n\nfunction getColumnsNumber(layout: string): number {\n return Math.max(\n ...layout.split('-').map((part) => {\n const matchArray = part.match(/\\d+/);\n\n return matchArray ? parseInt(matchArray[0], 10) : 1;\n })\n );\n}\n\n/**\n * Default dialog configuration.\n */\nconst dialogConfig: DialogConfig = {\n responsivePadding: true,\n verticalPadding: true,\n minWidth: '30rem',\n /** 88px it's the header + footer height */\n bodyMinHeight: 'calc(50vh - 88px)'\n};\n\nconst smartFilterBarProvider: Provider = {\n provide: SmartFilterBar,\n useExisting: forwardRef(() => SmartFilterBarComponent)\n};\n\n@Component({\n selector: 'fdp-smart-filter-bar',\n templateUrl: './smart-filter-bar.component.html',\n styleUrls: ['./smart-filter-bar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n smartFilterBarProvider,\n {\n provide: FDP_PRESET_MANAGED_COMPONENT,\n useExisting: SmartFilterBarComponent\n }\n ],\n host: {\n class: 'fdp-smart-filter-bar',\n '[class.fdp-smart-filter-bar--transparent]': 'transparent'\n }\n})\nexport class SmartFilterBarComponent extends SmartFilterBar implements AfterViewInit, OnDestroy {\n /**\n * @hidden\n * Form generator component instance.\n */\n @ViewChild(FormGeneratorComponent) _formGenerator!: FormGeneratorComponent;\n\n /**\n * Subject which will provide configuration data: data source, columns definitions, etc.\n */\n @Input()\n set subject(value: SmartFilterBarSubjectDirective) {\n this._setSubject(value);\n }\n\n get subject(): SmartFilterBarSubjectDirective {\n return this._subject;\n }\n\n /**\n * 'Show filters' button label.\n * @deprecated use i18n capabilities instead\n */\n @Input()\n set showFiltersLabel(value: string) {\n console.warn('Property showFiltersLabel is deprecated. Use i18n capabilities instead.');\n this._showFiltersLabel = value;\n }\n\n get showFiltersLabel(): string {\n return this._showFiltersLabel;\n }\n\n /**\n * 'Hide filters' button label.\n * @deprecated use i18n capabilities instead\n */\n @Input()\n set hideFiltersLabel(value: string) {\n console.warn('Property hideFiltersLabel is deprecated. Use i18n capabilities instead.');\n this._hideFiltersLabel = value;\n }\n\n get hideFiltersLabel(): string {\n return this._hideFiltersLabel;\n }\n\n /**\n * 'Filters' button label.\n * @deprecated use i18n capabilities instead\n */\n @Input()\n set filtersLabel(value: string) {\n console.warn('Property filtersLabel is deprecated. Use i18n capabilities instead.');\n this._filtersLabel = value;\n }\n\n get filtersLabel(): string {\n return this._filtersLabel;\n }\n\n /**\n * Whether smart filter bar background should be transparent.\n */\n @Input()\n set transparent(value: BooleanInput) {\n this._transparent = coerceBooleanProperty(value);\n }\n\n get transparent(): boolean {\n return this._transparent;\n }\n\n /**\n * @deprecated use i18n capabilities instead\n * Condition strategy labels.\n */\n @Input()\n set defineStrategyLabels(value: SmartFilterBarStrategyLabels | undefined) {\n console.warn('Property defineStrategyLabels is deprecated. Use i18n capabilities instead.');\n this._defineStrategyLabels = value;\n }\n\n get defineStrategyLabels(): SmartFilterBarStrategyLabels | undefined {\n return this._defineStrategyLabels;\n }\n\n /**\n * @deprecated use i18n capabilities instead\n * Filters visibility category labels.\n */\n @Input()\n set filtersVisibilityCategoryLabels(value: SmartFilterBarVisibilityCategoryLabels | undefined) {\n console.warn('Property filtersVisibilityCategoryLabels is deprecated. Use i18n capabilities instead.');\n this._filtersVisibilityCategoryLabels = value;\n }\n\n get filtersVisibilityCategoryLabels(): SmartFilterBarVisibilityCategoryLabels | undefined {\n return this._filtersVisibilityCategoryLabels;\n }\n\n /**\n * Columns layout.\n */\n @Input()\n filtersColumnLayout: Nullable<string> = defaultColumnsLayout;\n\n /**\n * Whether to update filters when they are selected. Otherwise, filters will be applied only by pressing \"Go\" button.\n */\n @Input()\n liveUpdate = false;\n\n /**\n * Event emitted when the selected filters have been changed.\n */\n @Output()\n smartFiltersChanged: EventEmitter<SmartFilterChangeObject> = new EventEmitter<SmartFilterChangeObject>();\n\n /**\n * Event emitted when selected filters has been applied (User clicked on Go button).\n */\n @Output()\n smartFiltersApplied: EventEmitter<SmartFilterChangeObject> = new EventEmitter<SmartFilterChangeObject>();\n\n /**\n * Event emitted when search input field value has been changed.\n */\n @Output()\n searchInputChanged: EventEmitter<SearchInput> = new EventEmitter<SearchInput>();\n /** @hidden */\n @ContentChildren(SmartFilterBarToolbarItemDirective)\n private readonly _toolbarItemRefs: QueryList<SmartFilterBarToolbarItemDirective>;\n\n /**\n * Calculated array of filters to apply for the subject's data source.\n */\n filterBy: CollectionFilterGroup[] = [];\n\n /**\n * Search field value to apply for the subject's data source.\n */\n search: SearchInput | undefined;\n /** @Hidden */\n _toolbarItems: TemplateRef<any>[] = [];\n /** @hidden */\n _formItems: DynamicFormItem[];\n /** @hidden */\n _selectedFilters: string[] = [];\n /** @hidden */\n _showFilterBar = true;\n\n /** @hidden */\n get _loading(): boolean {\n return this._subject?.getDataSource() ? this._subject.getDataSource().isDataLoading : true;\n }\n\n /** @hidden */\n private _hideFiltersLabel: string;\n\n /** @hidden */\n private _showFiltersLabel: string;\n\n /** @hidden */\n private _filtersLabel: string;\n\n /** @hidden */\n private _defineStrategyLabels: SmartFilterBarStrategyLabels | undefined;\n\n /** @hidden */\n private _filtersVisibilityCategoryLabels: SmartFilterBarVisibilityCategoryLabels | undefined;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _subjectSubscriptions = new Subscription();\n\n /** @hidden */\n private _transparent = false;\n\n /** @hidden */\n private readonly _formGeneratorReady = new BehaviorSubject<boolean>(false);\n\n /** @hidden */\n private _ignorePresetChange = false;\n\n /** @hidden */\n private _subject!: SmartFilterBarSubjectDirective;\n\n /** @hidden */\n constructor(\n private _dialogService: DialogService,\n private _cdr: ChangeDetectorRef,\n private _smartFilterBarService: SmartFilterBarService,\n private _fgService: FormGeneratorService,\n private _injector: Injector,\n private readonly _destroyRef: DestroyRef\n ) {\n super();\n this._fgService.addComponent(SmartFilterBarConditionFieldComponent, [SMART_FILTER_BAR_RENDERER_COMPONENT]);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._toolbarItems = this._toolbarItemRefs.toArray().map((ref) => ref.templateRef);\n\n this._toolbarItemRefs.changes.subscribe(() => {\n this._toolbarItems = this._toolbarItemRefs.toArray().map((ref) => ref.templateRef);\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._unsubscribeFromSubject();\n }\n\n /**\n * Transforms condition value into human-readable text.\n * @param condition Smart filter bar condition.\n * @param filterType Condition filter type.\n */\n async getDisplayValue(condition: SmartFilterBarCondition, filterType: string): Promise<string> {\n return this._smartFilterBarService.getDisplayValue(condition, filterType);\n }\n\n /** Open Filtering Settings Dialog */\n showFilteringSettings(): void {\n const columns = this._getSubjectDefinitions();\n const dialogData: SmartFilterSettingsDialogConfig = {\n fields: columns,\n filterBy: this.filterBy,\n selectedFilters: this._selectedFilters,\n visibilityCategories: this.filtersVisibilityCategoryLabels\n };\n\n const dialogRef = this._dialogService.open(\n SmartFilterBarSettingsDialogComponent,\n {\n ...dialogConfig,\n disablePaddings: true,\n width: '50rem',\n data: dialogData\n },\n this._injector\n );\n\n dialogRef.afterClosed.pipe(take(1)).subscribe((selectedFilters: string[]) => {\n this._setSelectedFilters(selectedFilters);\n });\n }\n\n /** @hidden */\n _onSearchInputChange(event: SearchInput): void {\n this.search = event;\n this.searchInputChanged.emit(event);\n }\n\n /** @hidden */\n _cancelSearch(): void {\n this.search = undefined;\n\n if (this.liveUpdate) {\n this.submitForm();\n }\n }\n\n /**\n * Submits filters and search form.\n */\n submitForm(): void {\n this._formGenerator.submit();\n }\n\n /** Method for setting predefined configuration. */\n async setPreset(data: SmartFilterBarManagedPreset): Promise<void> {\n this._ignorePresetChange = true;\n data.filterBy = data.filterBy || [];\n this.filterBy = data.filterBy;\n this.search = data.search;\n\n this._formGeneratorReady.pipe(filter((value) => value)).subscribe(async () => {\n // Reset form\n this._fgService.resetForm(this._formGenerator.form);\n\n // Set new data\n for (const filterBy of this.filterBy) {\n const control = this._fgService.getFormControl(this._formGenerator.form, filterBy.field);\n\n if (!control) {\n continue;\n }\n\n const formItem = control.formItem as PreparedDynamicFormFieldItem;\n\n const condition = this._smartFilterBarService.transformCollectionFilter(filterBy);\n\n const selectedConditions = await this._smartFilterBarService.getConditionFieldSelectedVariants(\n formItem,\n condition\n );\n control?.setValue(selectedConditions);\n }\n\n this._setSelectedFilters(this.filterBy.map((filterBy) => filterBy.field));\n\n const source = this.subject.getDataSource();\n source.dataProvider.setFilters(this.filterBy, this.search);\n this.subject.getSubject().fetch();\n });\n }\n\n /** Returns current preset configuration. */\n getCurrentPreset(): SmartFilterBarManagedPreset {\n return {\n search: this.search,\n filterBy: this.filterBy\n };\n }\n\n /**\n * @hidden\n * Callback function when form generator form has been successfully validated and submitted.\n */\n _onFormSubmitted(event: any): void {\n const conditions = this._generateCollectionFilterGroups(event);\n this._applyFiltering(conditions);\n }\n\n /**\n * @hidden\n * Callback method when form has been created.\n * Populates selected filters array with user-defined default filters.\n */\n _onFormCreated(): void {\n if (this.subject) {\n this._setSelectedFilters([...this.subject.getDefaultFields(), ...this._selectedFilters]);\n }\n\n this._formGenerator.form.valueChanges\n .pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef))\n .subscribe(async () => {\n const conditions = await this.getFormattedConditions();\n this.smartFiltersChanged.emit({ filterBy: conditions, search: this.search, subject: this.subject });\n\n if (!this.liveUpdate) {\n return;\n }\n this._applyFiltering(conditions);\n });\n\n this._formGeneratorReady.next(true);\n }\n\n /**\n * @hidden\n */\n _toggleFilterBar(): void {\n this._showFilterBar = !this._showFilterBar;\n this._cdr.markForCheck();\n }\n\n /**\n * Formats raw filters object into array of grouped filters.\n * @returns Array of grouped filters.\n */\n async getFormattedConditions(): Promise<CollectionFilterGroup[]> {\n const formValue = await this._fgService.getFormValue(this._formGenerator.form);\n return this._generateCollectionFilterGroups(formValue);\n }\n\n /** @hidden */\n private _generateCollectionFilterGroups(value: {\n [key: string]: SmartFilterBarCondition[];\n }): CollectionFilterGroup[] {\n const collectionFilterGroups: CollectionFilterGroup[] = [];\n\n const columns = this._getSubjectDefinitions();\n\n Object.entries(value)\n .filter(([, fieldConditions]) => !!fieldConditions)\n .forEach(([fieldName, fieldConditions]) => {\n const column = columns.find((c) => c.name === fieldName) as SmartFilterBarFieldDefinition;\n const filterGroup: CollectionFilterGroup = {\n filters: [],\n strategy: column.conditionStrategy,\n field: column.key\n };\n fieldConditions.forEach((condition) => {\n filterGroup.filters.push({\n strategy: condition.operator,\n field: column.key,\n value: condition.value,\n value2: condition.value2,\n type: column.dataType\n });\n });\n\n collectionFilterGroups.push(filterGroup);\n });\n\n // Remove empty filter objects.\n return collectionFilterGroups.filter((filterGroup) => filterGroup.filters?.length > 0);\n }\n\n /** @hidden */\n private _setSubject(subject: SmartFilterBarSubjectDirective): void {\n if (!subject) {\n return;\n }\n\n this._subject = subject;\n this.unsubscribeFromSubject();\n this._listenToSubjectColumns();\n }\n\n /** @hidden */\n private unsubscribeFromSubject(): void {\n if (!this._subject) {\n return;\n }\n }\n\n /** @hidden */\n private _listenToSubjectColumns(): void {\n this._subjectSubscriptions.add(\n this._subject.fieldsStream.subscribe(async (columns: SmartFilterBarFieldDefinition[]) => {\n setTimeout(async () => {\n await this._generateForm(columns.filter((c) => c.filterable));\n });\n })\n );\n }\n\n /**\n * @hidden\n * Generates form items to be consumed by form generator component.\n * @param columns columns definition\n */\n private async _generateForm(columns: SmartFilterBarFieldDefinition[]): Promise<void> {\n const items: DynamicFormFieldItem[] = [];\n const columnsNumber = getColumnsNumber(this.filtersColumnLayout ?? '');\n let currentColumn = 1;\n\n if (columns.length === 0) {\n return;\n }\n\n columns.forEach((column) => {\n let item: SmartFilterBarDynamicFormFieldItem = this._generateBaseFieldItem(column);\n\n if (column.required) {\n this._selectedFilters.push(column.name);\n }\n\n switch (column.filterType) {\n case FilterType.SINGLE:\n case FilterType.CATEGORY:\n item.guiOptions.additionalData.type = 'select';\n item.guiOptions.inline = false;\n break;\n case FilterType.MULTI:\n item.guiOptions.additionalData.type = 'multi-input';\n break;\n case FilterType.CUSTOM:\n item = this._generateCustomFilterFieldItem(column, item);\n break;\n case FilterType.INPUT:\n default:\n item = this._generateInputFieldItem(column, item);\n break;\n }\n\n item.guiOptions.column = currentColumn;\n currentColumn += 1;\n\n if (currentColumn > columnsNumber) {\n currentColumn = 1;\n }\n\n items.push(item);\n });\n\n this._formItems = items;\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _generateCustomFilterFieldItem(\n column: SmartFilterBarFieldDefinition,\n item: SmartFilterBarDynamicFormFieldItem\n ): SmartFilterBarDynamicFormFieldItem {\n if (!column.customFilterType) {\n return item;\n }\n item.guiOptions.additionalData.type = column.customFilterType;\n item.guiOptions.additionalData = Object.assign(\n item.guiOptions.additionalData,\n this._smartFilterBarService.getCustomFilterConfiguration(column.customFilterType)\n );\n\n item.type = item.guiOptions.additionalData.rendererComponent\n ? `${item.guiOptions.additionalData.type}-renderer`\n : item.type;\n item.transformer = item.guiOptions.additionalData.valueTransformer;\n\n return item;\n }\n\n /**\n * @hidden\n * Generates form item based on data type.\n * @param column\n * @param item\n * @returns\n */\n private _generateInputFieldItem(\n column: SmartFilterBarFieldDefinition,\n item: SmartFilterBarDynamicFormFieldItem\n ): SmartFilterBarDynamicFormFieldItem {\n switch (column.dataType) {\n case FilterableColumnDataType.DATE:\n item.guiOptions.additionalData.type = 'datepicker';\n break;\n case FilterableColumnDataType.NUMBER:\n item.guiOptions.additionalData.controlType = 'number';\n break;\n case FilterableColumnDataType.BOOLEAN:\n case FilterableColumnDataType.STRING:\n default:\n item.guiOptions.additionalData.controlType = 'text';\n break;\n }\n\n return item;\n }\n\n /**\n * @hidden\n * Generates base form item object to be consumed by form generator component.\n * @param column column definition\n * @returns base form item object.\n */\n private _generateBaseFieldItem(column: SmartFilterBarFieldDefinition): SmartFilterBarDynamicFormFieldItem {\n return {\n name: column.name,\n message: column.label,\n required: column.required,\n type: SMART_FILTER_BAR_RENDERER_COMPONENT,\n placeholder: ' ',\n validators: column.required ? [Validators.required] : [],\n choices: column.hasOptions ? this._getFilterDefaultOptions(column.key, column.filterType) : undefined,\n transformer: (itemValue) => getSelectItemValue(itemValue),\n guiOptions: {\n additionalData: {\n type: 'input',\n dataType: column.dataType,\n filterType: column.filterType,\n controlType: 'text',\n choices: column.hasOptions ? this._getFilterAvailableOptions(column.key) : undefined\n }\n },\n when: () => this._selectedFilters.includes(column.name)\n } as SmartFilterBarDynamicFormFieldItem;\n }\n\n /**\n * @hidden\n * Retrieves available options for particular column by using data source method.\n * @param column property name of the data source items.\n * @returns {Observable<SelectItem[]>} Observable with the array of available options.\n */\n private _getFilterAvailableOptions(column: string): () => Observable<SelectItem[]> {\n return () => this._getFieldVariants(column);\n }\n\n /** @hidden */\n private _getFilterDefaultOptions(column: string, filterType: FilterType): () => Promise<any[]> {\n return async () => {\n const variants = await firstValueFrom(this._getFieldVariants(column).pipe(take(1)));\n\n const availableDefaultConditions: SmartFilterBarCondition[] = [];\n\n for (const option of variants) {\n const condition: SmartFilterBarCondition = {\n value: option.value,\n operator: 'equalTo'\n };\n\n condition.displayValue = await this.getDisplayValue(condition, filterType);\n\n availableDefaultConditions.push(condition);\n }\n\n return availableDefaultConditions;\n };\n }\n\n /** @hidden */\n private _getFieldVariants(column: string): Observable<SelectItem[]> {\n return this.subject.getFieldVariants(column).pipe(\n take(1),\n map((data) => data.filter((item, index) => data.findIndex((_item) => _item.value === item.value) === index))\n );\n }\n\n /** @hidden */\n private _getSubjectDefinitions(): SmartFilterBarFieldDefinition[] {\n return this.subject?.getSubjectFields() || [];\n }\n\n /**\n * @hidden\n * Sets provided filters directly to the data source.\n * @param filters array of filters.\n */\n private _applyFiltering(filters: CollectionFilterGroup[]): void {\n // Apply outside filtering and force subject to fetch new data.\n const source = this.subject.getDataSource();\n this.filterBy = filters;\n source.dataProvider.setFilters(filters, this.search);\n this.subject.getSubject().fetch();\n const emittedValue: SmartFilterBarManagedPreset = { search: this.search, filterBy: this.filterBy };\n this.smartFiltersApplied.emit({ ...emittedValue, subject: this._subject });\n\n if (!this._ignorePresetChange) {\n this.presetChanged.emit(emittedValue);\n }\n this._ignorePresetChange = false;\n }\n\n /** @hidden */\n private _unsubscribeFromSubject(): void {\n this._subjectSubscriptions.unsubscribe();\n this._subjectSubscriptions = new Subscription();\n }\n\n /** @hidden */\n private _setSelectedFilters(filters: string[]): void {\n this._selectedFilters = filters.filter((f: string, i: number) => filters.indexOf(f) === i);\n this._formGenerator.refreshStepsVisibility();\n }\n}\n","<div>\n <fd-toolbar [hasTitle]=\"true\" fdType=\"transparent\">\n <ng-container *ngIf=\"_toolbarItems\">\n <ng-container *ngFor=\"let template of _toolbarItems\">\n <ng-template [ngTemplateOutlet]=\"template\"></ng-template>\n <fd-toolbar-separator></fd-toolbar-separator>\n </ng-container>\n </ng-container>\n <fdp-search-field\n (inputChange)=\"_onSearchInputChange($event)\"\n (searchSubmit)=\"submitForm()\"\n (cancelSearch)=\"_cancelSearch()\"\n [disabled]=\"_loading\"\n [disableRefresh]=\"true\"\n [placeholder]=\"'platformSmartFilterBar.searchPlaceholder' | fdTranslate\"\n ></fdp-search-field>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <fdp-button\n (click)=\"submitForm()\"\n buttonType=\"emphasized\"\n *ngIf=\"!liveUpdate\"\n fd-toolbar-item\n [disabled]=\"_loading\"\n [label]=\"'platformSmartFilterBar.submitButtonLabel' | fdTranslate\"\n ></fdp-button>\n <fdp-button\n (click)=\"submitForm()\"\n fd-toolbar-item\n glyph=\"synchronize\"\n [disabled]=\"_loading\"\n [ariaLabel]=\"'platformSmartFilterBar.refreshButtonAriaLabel' | fdTranslate\"\n ></fdp-button>\n <fdp-button\n (click)=\"showFilteringSettings()\"\n [label]=\"\n filtersLabel\n ? filtersLabel + ' (' + _selectedFilters.length + ')'\n : ('platformSmartFilterBar.filtersButtonLabel'\n | fdTranslate : { filtersCount: _selectedFilters.length })\n \"\n fd-toolbar-item\n [disabled]=\"_loading\"\n ></fdp-button>\n <fdp-button\n (click)=\"_toggleFilterBar()\"\n [label]=\"\n (_showFilterBar\n ? 'platformSmartFilterBar.hideFiltersButtonLabel'\n : 'platformSmartFilterBar.showFiltersButtonLabel'\n ) | fdTranslate\n \"\n buttonType=\"transparent\"\n fd-toolbar-item\n [disabled]=\"_loading\"\n ></fdp-button>\n </fd-toolbar>\n</div>\n\n<div class=\"fdp-smart-filter-bar__filters\" [hidden]=\"!_showFilterBar\">\n <fdp-form-generator\n (formCreated)=\"_onFormCreated()\"\n (formSubmitted)=\"_onFormSubmitted($event)\"\n [noAdditionalContent]=\"true\"\n [formItems]=\"_formItems\"\n [columnLayout]=\"filtersColumnLayout\"\n ></fdp-form-generator>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport {\n PlatformFormGeneratorModule,\n PlatformInputGroupModule,\n PlatformMultiInputModule,\n FdpFormGroupModule,\n FormGeneratorService\n} from '@fundamental-ngx/platform/form';\nimport { ToolbarModule } from '@fundamental-ngx/core/toolbar';\nimport { PlatformButtonModule } from '@fundamental-ngx/platform/button';\nimport { PlatformSelectModule } from '@fundamental-ngx/platform/form';\nimport { BusyIndicatorModule } from '@fundamental-ngx/core/busy-indicator';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PlatformSearchFieldModule } from '@fundamental-ngx/platform/search-field';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { CheckboxModule } from '@fundamental-ngx/core/checkbox';\nimport { PlatformTableModule } from '@fundamental-ngx/platform/table';\nimport { LayoutGridModule } from '@fundamental-ngx/core/layout-grid';\n\nimport { SmartFilterBarComponent } from './smart-filter-bar.component';\n\nimport { SmartFilterBarSettingsDialogComponent } from './components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component';\nimport { SmartFilterBarFieldDefinitionDirective } from './directives/smart-filter-bar-field-definition.directive';\nimport { SmartFilterBarSubjectDirective } from './directives/smart-filter-bar-subject.directive';\nimport { SmartFilterBarConditionsDialogComponent } from './components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component';\nimport { SmartFilterBarConditionFieldComponent } from './components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component';\nimport { SmartFilterBarService } from './smart-filter-bar.service';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { SmartFilterBarToolbarItemDirective } from './directives/smart-filter-bar-toolbar-item.directive';\n\n@NgModule({\n declarations: [\n SmartFilterBarComponent,\n SmartFilterBarSettingsDialogComponent,\n SmartFilterBarFieldDefinitionDirective,\n SmartFilterBarSubjectDirective,\n SmartFilterBarConditionsDialogComponent,\n SmartFilterBarConditionFieldComponent,\n SmartFilterBarToolbarItemDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n PlatformFormGeneratorModule,\n I18nModule,\n ButtonModule,\n PopoverModule,\n ToolbarModule,\n PlatformButtonModule,\n PlatformInputGroupModule,\n IconModule,\n BusyIndicatorModule,\n PlatformSearchFieldModule,\n DialogModule,\n ListModule,\n CheckboxModule,\n PlatformTableModule,\n PlatformSelectModule,\n PlatformMultiInputModule,\n FdpFormGroupModule,\n LayoutGridModule\n ],\n exports: [\n SmartFilterBarComponent,\n SmartFilterBarSettingsDialogComponent,\n SmartFilterBarFieldDefinitionDirective,\n SmartFilterBarSubjectDirective,\n SmartFilterBarConditionsDialogComponent,\n SmartFilterBarConditionFieldComponent,\n SmartFilterBarToolbarItemDirective\n ],\n providers: [SmartFilterBarService, FormGeneratorService]\n})\nexport class PlatformSmartFilterBarModule {}\n","import { forwardRef, Provider } from '@angular/core';\nimport { SmartFilterBar } from '../smart-filter-bar.class';\nimport { SmartFilterBarComponent } from '../smart-filter-bar.component';\n\nexport const smartFilterBarProvider: Provider = {\n provide: SmartFilterBar,\n useExisting: forwardRef(() => SmartFilterBarComponent)\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i4","i6","i11","i1","i2.SmartFilterBarService","i5","i7","i8","i9","i10","i2.SmartFilterBar","i3.SmartFilterBarService","smartFilterBarProvider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-platform-smart-filter-bar.mjs","sources":["../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-settings-dialog/data-provider.ts","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.ts","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component.html","../../../../libs/platform/src/lib/smart-filter-bar/directives/smart-filter-bar-field-definition.directive.ts","../../../../libs/platform/src/lib/smart-filter-bar/directives/smart-filter-bar-subject.directive.ts","../../../../libs/platform/src/lib/smart-filter-bar/directives/smart-filter-bar-toolbar-item.directive.ts","../../../../libs/platform/src/lib/smart-filter-bar/smart-filter-bar.service.ts","../../../../libs/platform/src/lib/smart-filter-bar/constants.ts","../../../../libs/platform/src/lib/smart-filter-bar/smart-filter-bar.class.ts","../../../../libs/platform/src/lib/smart-filter-bar/helpers.ts","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.ts","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component.html","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-condition-field/base-smart-filter-bar-condition-field.ts","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.ts","../../../../libs/platform/src/lib/smart-filter-bar/components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component.html","../../../../libs/platform/src/lib/smart-filter-bar/smart-filter-bar.component.ts","../../../../libs/platform/src/lib/smart-filter-bar/smart-filter-bar.component.html","../../../../libs/platform/src/lib/smart-filter-bar/smart-filter-bar.module.ts","../../../../libs/platform/src/lib/smart-filter-bar/providers/smart-filter-bar.provider.ts","../../../../libs/platform/src/lib/smart-filter-bar/fundamental-ngx-platform-smart-filter-bar.ts"],"sourcesContent":["import { ArrayTableDataProvider } from '@fundamental-ngx/platform/table';\nimport { FieldFilterItem } from '../../interfaces/smart-filter-bar-field-filter-item';\nimport { SmartFilterBarVisibilityCategory } from '../../interfaces/smart-filter-bar-visibility-category';\n\nexport class SmartFilterBarOptionsDataProvider extends ArrayTableDataProvider<FieldFilterItem> {\n /** @hidden */\n constructor(items: FieldFilterItem[]) {\n super(items);\n }\n\n /**\n * Filters rows depending on applied filter.\n * @param option filter visibility category.\n */\n filter(option: SmartFilterBarVisibilityCategory): void {\n let items: FieldFilterItem[];\n\n switch (option) {\n case 'visible':\n items = this._getVisibleItems();\n break;\n case 'active':\n items = this._getActiveItems();\n break;\n case 'visibleAndActive':\n items = this._getVisibleAndActiveItems();\n break;\n case 'mandatory':\n items = this._getMandatoryItems();\n break;\n case 'all':\n default:\n items = this._getAllItems();\n break;\n }\n\n this.items$.next(items);\n }\n\n /** @hidden */\n private _getAllItems(): FieldFilterItem[] {\n return this.items;\n }\n\n /** @hidden */\n private _getVisibleItems(): FieldFilterItem[] {\n return this.items.filter((i) => i.visible);\n }\n\n /** @hidden */\n private _getActiveItems(): FieldFilterItem[] {\n return this.items.filter((i) => i.active);\n }\n\n /** @hidden */\n private _getVisibleAndActiveItems(): FieldFilterItem[] {\n return this.items.filter((i) => i.visible || i.active);\n }\n\n /** @hidden */\n private _getMandatoryItems(): FieldFilterItem[] {\n return this.items.filter((i) => i.mandatory);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n OnDestroy,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { asyncScheduler, BehaviorSubject, firstValueFrom, Observable, Subject, Subscription } from 'rxjs';\nimport { observeOn, takeUntil } from 'rxjs/operators';\n\nimport { DialogRef } from '@fundamental-ngx/core/dialog';\nimport { FdpSelectionChangeEvent } from '@fundamental-ngx/platform/form';\nimport { SelectItem } from '@fundamental-ngx/platform/shared';\nimport {\n Resettable,\n RESETTABLE_TOKEN,\n Table,\n TableDataSource,\n TableRowSelectionChangeEvent\n} from '@fundamental-ngx/platform/table';\n\nimport { SmartFilterBarFieldDefinition } from '../../interfaces/smart-filter-bar-field-definition';\nimport { SmartFilterSettingsDialogConfig } from '../../interfaces/smart-filter-bar-settings-dialog-config';\nimport { FieldFilterItem } from '../../interfaces/smart-filter-bar-field-filter-item';\nimport { SmartFilterBarOptionsDataProvider } from './data-provider';\nimport { FdLanguage, FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { SmartFilterBarVisibilityCategoryLabels } from '../../interfaces/smart-filter-bar-visibility-category';\n\n@Component({\n selector: 'fdp-smart-filter-bar-settings-dialog',\n templateUrl: './smart-filter-bar-settings-dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: RESETTABLE_TOKEN, useExisting: SmartFilterBarSettingsDialogComponent }]\n})\nexport class SmartFilterBarSettingsDialogComponent implements Resettable, AfterViewInit, OnDestroy {\n /**\n * Table instance\n */\n @ViewChild('table') table!: Table;\n\n /**\n * Table data source.\n */\n source!: TableDataSource<FieldFilterItem>;\n\n /** @hidden */\n _availableFields!: FieldFilterItem[];\n\n /** @hidden */\n _filterVisibilityOptions: SelectItem[] = [];\n\n /** @hidden */\n loaded = false;\n\n /** @hidden */\n private readonly _categoryLabelKeys: SmartFilterBarVisibilityCategoryLabels = {\n all: 'settingsCategoryAll',\n visible: 'settingsCategoryVisible',\n active: 'settingsCategoryActive',\n visibleAndActive: 'settingsCategoryVisibleAndActive',\n mandatory: 'settingsCategoryMandatory'\n };\n\n /** @hidden */\n private _sourceSubscription!: Subscription;\n\n /** @hidden */\n private _selectedFilters: string[] = [];\n\n /**\n * @hidden\n * An RxJS Subject that will kill the data stream upon component’s destruction (for unsubscribing)\n */\n private readonly _onDestroy$: Subject<void> = new Subject<void>();\n\n /** @hidden */\n private _isResetAvailableSubject$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n\n /** Indicates when reset command is available */\n readonly isResetAvailable$: Observable<boolean> = this._isResetAvailableSubject$.asObservable();\n\n /** @hidden */\n private readonly _translationResolver = new TranslationResolver();\n\n /** @hidden */\n constructor(\n private _dialogRef: DialogRef<SmartFilterSettingsDialogConfig, string[]>,\n @Inject(FD_LANGUAGE) private readonly _language$: Observable<FdLanguage>,\n private readonly _cdr: ChangeDetectorRef\n ) {\n this.setInitialTableState();\n this._init();\n }\n\n /** @hidden */\n private async _init(): Promise<void> {\n await this._transformVisibilityLabels();\n this.loaded = true;\n this._cdr.markForCheck();\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this.setSelectedFilters();\n }\n\n /**\n * Transforms visibility options into appropriate select item object.\n */\n private async _transformVisibilityLabels(): Promise<void> {\n let labels = this._dialogRef.data.visibilityCategories;\n if (!labels) {\n const lang = await firstValueFrom(this._language$);\n labels = { ...this._categoryLabelKeys };\n for (const strategyItem in labels) {\n if (Object.prototype.hasOwnProperty.call(labels, strategyItem)) {\n const translationKey = labels[strategyItem];\n labels[strategyItem] = this._translationResolver.resolve(\n lang,\n 'platformSmartFilterBar.' + translationKey\n );\n }\n }\n }\n for (const [selectValue, selectLabel] of Object.entries(labels)) {\n this._filterVisibilityOptions.push({\n label: selectLabel,\n value: selectValue\n });\n }\n }\n\n /**\n * Checks the checkbox in the table row if the field is selected.\n */\n setSelectedFilters(): void {\n this._sourceSubscription?.unsubscribe();\n this._sourceSubscription = this.source\n .open()\n .pipe(observeOn(asyncScheduler), takeUntil(this._onDestroy$))\n .subscribe((items) => {\n items.forEach((field, index) => {\n if (field.visible) {\n this.table.toggleSelectableRow(index);\n }\n });\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._onDestroy$.next();\n this._onDestroy$.complete();\n }\n\n /**\n * Resets filters selection.\n */\n reset(): void {\n this.setInitialTableState();\n this.setSelectedFilters();\n }\n\n /**\n * Sets initial state of the table.\n */\n setInitialTableState(): void {\n this._availableFields = this._dialogRef.data.fields\n .filter((c: SmartFilterBarFieldDefinition) => c.filterable)\n .map((c: SmartFilterBarFieldDefinition) => ({\n label: c.label,\n active: !!this._dialogRef.data.filterBy.find((f) => f.field === c.name),\n mandatory: c.required,\n visible: this._dialogRef.data.selectedFilters.includes(c.name),\n key: c.key,\n name: c.name\n }));\n\n this.source = new TableDataSource(new SmartFilterBarOptionsDataProvider(this._availableFields));\n }\n\n /** @hidden */\n _cancel(): void {\n this._dialogRef.dismiss();\n }\n\n /** @hidden */\n _confirm(): void {\n this._dialogRef.close(this._selectedFilters);\n }\n\n /** @hidden */\n _onRowSelectionChange(event: TableRowSelectionChangeEvent<FieldFilterItem>): void {\n this._selectedFilters = event.selection.map((c) => c.name);\n this._isResetAvailableSubject$.next(true);\n }\n\n /** @hidden */\n _onFilterVisibilityChange(event: FdpSelectionChangeEvent): void {\n if (!this.table) {\n return;\n }\n (this.source.dataProvider as SmartFilterBarOptionsDataProvider).filter(event.payload);\n this.source.fetch(this.table.getTableState());\n }\n}\n","<fd-dialog class=\"fdp-table-p13-filtering-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 [headerSize]=\"4\" fd-title>\n {{ 'platformSmartFilterBar.selectFiltersHeader' | fdTranslate }}\n </h4>\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fdp-table-reset-button></fdp-table-reset-button>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <fdp-table\n *ngIf=\"loaded; else loadingTpl\"\n #table\n (rowSelectionChange)=\"_onRowSelectionChange($event)\"\n [dataSource]=\"source\"\n selectionMode=\"multiple\"\n >\n <fdp-table-toolbar\n [hideItemCount]=\"false\"\n [title]=\"'platformSmartFilterBar.selectFiltersAvailableFiltersText' | fdTranslate\"\n >\n <fdp-table-toolbar-actions>\n <fdp-select\n (selectionChange)=\"_onFilterVisibilityChange($event)\"\n [list]=\"_filterVisibilityOptions\"\n [value]=\"_filterVisibilityOptions[0].value\"\n >\n </fdp-select>\n </fdp-table-toolbar-actions>\n </fdp-table-toolbar>\n <fdp-column\n align=\"start\"\n key=\"label\"\n [label]=\"'platformSmartFilterBar.selectFiltersFilterColumnLabel' | fdTranslate\"\n name=\"label\"\n ></fdp-column>\n <fdp-column\n align=\"center\"\n key=\"active\"\n [label]=\"'platformSmartFilterBar.selectFiltersActiveColumnLabel' | fdTranslate\"\n name=\"active\"\n width=\"150px\"\n >\n <fdp-table-cell *fdpCellDef=\"let item\">\n <fd-icon *ngIf=\"item.active\" glyph=\"accept\"></fd-icon>\n </fdp-table-cell>\n </fdp-column>\n </fdp-table>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <fdp-button\n (click)=\"_confirm()\"\n buttonType=\"emphasized\"\n [label]=\"'platformSmartFilterBar.selectFiltersSubmitButtonLabel' | fdTranslate\"\n ></fdp-button>\n </fd-dialog-footer-button>\n\n <fd-dialog-footer-button>\n <fdp-button\n (click)=\"_cancel()\"\n buttonType=\"transparent\"\n [label]=\"'platformSmartFilterBar.selectFiltersCancelButton' | fdTranslate\"\n ></fdp-button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n\n<ng-template #loadingTpl>\n <div style=\"text-align: center; margin: 1rem\">\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\n </div>\n</ng-template>\n","import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { Directive, Input } from '@angular/core';\nimport { CollectionFilterGroupStrategy, FilterableColumnDataType, FilterType } from '@fundamental-ngx/platform/table';\n\n@Directive({\n selector: '[fdpSmartFilterBarFieldDefinition], [fdp-smart-filter-bar-field-definition]'\n})\nexport class SmartFilterBarFieldDefinitionDirective {\n /** Field data accessor key. */\n @Input()\n key!: string;\n\n /** Unique field identifier. */\n @Input()\n name!: string;\n\n /** Field label. */\n @Input()\n label!: string;\n /** Field filter type */\n @Input()\n filterType!: FilterType;\n /** Field data type */\n @Input()\n dataType!: FilterableColumnDataType;\n /** Field custom filter type */\n @Input()\n customFilterType!: string;\n\n /** Condition strategy */\n @Input()\n conditionStrategy: CollectionFilterGroupStrategy = 'or';\n\n /** @hidden */\n private _smartFilterBarFilterable = true;\n\n /** Whether this field can be filtered. Default value is true. */\n @Input()\n set smartFilterBarFilterable(value: BooleanInput) {\n this._smartFilterBarFilterable = coerceBooleanProperty(value);\n }\n get smartFilterBarFilterable(): boolean {\n return this._smartFilterBarFilterable;\n }\n\n /** @hidden */\n private _required = false;\n\n /** Whether this field filter is mandatory. */\n @Input()\n set required(value: BooleanInput) {\n this._required = coerceBooleanProperty(value);\n }\n get required(): boolean {\n return this._required;\n }\n\n /** @hidden */\n private _defaultSelected = false;\n\n /** Whether this field filter is selected by default. */\n @Input()\n set defaultSelected(value: BooleanInput) {\n this._defaultSelected = coerceBooleanProperty(value);\n }\n get defaultSelected(): boolean {\n return this._defaultSelected;\n }\n\n /** Whether this field has autocomplete options */\n @Input()\n set hasOptions(value: BooleanInput) {\n this._hasOptions = coerceBooleanProperty(value);\n }\n get hasOptions(): boolean {\n return this._hasOptions;\n }\n\n /** @hidden */\n private _hasOptions = false;\n}\n","import { AfterViewInit, ContentChildren, Directive, QueryList } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { SelectItem } from '@fundamental-ngx/platform/shared';\nimport { Table, TableDataSource, TableState } from '@fundamental-ngx/platform/table';\nimport { SmartFilterBarFieldDefinition } from '../interfaces/smart-filter-bar-field-definition';\nimport { SmartFilterBarFieldDefinitionDirective } from './smart-filter-bar-field-definition.directive';\n\n@Directive({\n selector: '[fdpSmartFilterBarSubject], [fdp-smart-filter-bar-subject]',\n exportAs: 'fdp-smart-filter-bar-subject'\n})\nexport class SmartFilterBarSubjectDirective implements AfterViewInit {\n /** @hidden */\n @ContentChildren(SmartFilterBarFieldDefinitionDirective)\n _fieldDefinitions!: QueryList<SmartFilterBarFieldDefinitionDirective>;\n\n /** @hidden */\n _fieldDefinitionsSubject = new BehaviorSubject<SmartFilterBarFieldDefinition[]>([]);\n\n /**\n * Observable of available fields.\n */\n readonly fieldsStream = this._fieldDefinitionsSubject.asObservable();\n\n /** @hidden */\n constructor(private _subject: Table) {}\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._fieldDefinitionsSubject.next(this._fieldDefinitions.toArray().map((d) => this._transformSubjectField(d)));\n this._fieldDefinitions.changes.subscribe((definitions: SmartFilterBarFieldDefinitionDirective[]) => {\n this._fieldDefinitionsSubject.next(definitions.map((d) => this._transformSubjectField(d)));\n });\n }\n\n /**\n * Retrieves data source of the subject.\n * @returns Subject's data source.\n */\n getDataSource(): TableDataSource<any> {\n return this._subject.getDataSource();\n }\n\n /**\n * Retrieves available fields of the subject.\n * @returns Available fields of the subject.\n */\n getSubjectFields(): SmartFilterBarFieldDefinition[] {\n return this._fieldDefinitions.toArray().map((f) => this._transformSubjectField(f));\n }\n\n /** Get available field variants */\n getFieldVariants(field: string): Observable<SelectItem[]> {\n return this.getDataSource().dataProvider.getFieldOptions(field);\n }\n\n /** @hidden */\n getDefaultFields(): string[] {\n return this.getSubjectFields()\n ?.filter((f) => f.defaultSelected)\n .map((f) => f.name);\n }\n\n /** Get subject state */\n getState(): TableState {\n return this._subject.getTableState();\n }\n\n /**\n * @returns Subject component.\n */\n getSubject(): Table {\n return this._subject;\n }\n\n /** @hidden */\n private _transformSubjectField(column: SmartFilterBarFieldDefinitionDirective): SmartFilterBarFieldDefinition {\n return {\n key: column.key,\n name: column.name,\n label: column.label,\n filterType: column.filterType,\n filterable: column.smartFilterBarFilterable,\n dataType: column.dataType,\n required: column.required,\n customFilterType: column.customFilterType,\n defaultSelected: column.defaultSelected,\n hasOptions: column.hasOptions,\n conditionStrategy: column.conditionStrategy\n };\n }\n}\n","import { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[fdpSmartFilterBarToolbarItem]'\n})\nexport class SmartFilterBarToolbarItemDirective {\n /** @hidden */\n constructor(public templateRef: TemplateRef<any>) {}\n}\n","import { Injectable, Type } from '@angular/core';\nimport { FdDate } from '@fundamental-ngx/core/datetime';\nimport {\n BaseDynamicFormGeneratorControl,\n FormGeneratorService,\n PreparedDynamicFormFieldItem\n} from '@fundamental-ngx/platform/form';\nimport {\n CollectionFilterGroup,\n FilterableColumnDataType,\n FilterAllStrategy,\n getFilterStrategiesBasedOnDataType\n} from '@fundamental-ngx/platform/table';\nimport { isSelectItem, SelectItem } from '@fundamental-ngx/platform/shared';\n\nimport { SmartFilterBarCustomFilterConfig } from './interfaces/smart-filter-bar-custom-filter-config';\nimport { SmartFilterBarCondition } from './interfaces/smart-filter-bar-condition';\nimport { selectStrategy } from '@fundamental-ngx/cdk/utils';\n\n@Injectable()\nexport class SmartFilterBarService {\n /** @hidden */\n private _customFilterConditions: Map<Type<BaseDynamicFormGeneratorControl>, SmartFilterBarCustomFilterConfig> =\n new Map<Type<BaseDynamicFormGeneratorControl>, SmartFilterBarCustomFilterConfig>();\n\n /** @hidden */\n constructor(private _fgService: FormGeneratorService) {}\n\n /**\n * Adds custom filter type to the smart filter bar.\n * @param options Configuration options.\n * @returns true if component was added successfully.\n */\n addCustomFilter(options: SmartFilterBarCustomFilterConfig): boolean {\n if (!options.conditionComponent && options.rendererComponent) {\n options.conditionComponent = options.rendererComponent;\n }\n\n if (!options.conditionComponent) {\n return false;\n }\n\n const result = this._fgService.addComponent(options.conditionComponent, options.types);\n\n if (result) {\n this._customFilterConditions.set(options.conditionComponent, options);\n }\n\n if (result && options.rendererComponent) {\n this._fgService.addComponent(\n options.rendererComponent,\n options.types.map((t) => `${t}-renderer`)\n );\n }\n\n return result;\n }\n\n /**\n * Returns provided configuration object of the custom filter.\n * @param type Filter type.\n * @returns Configuration object.\n */\n getCustomFilterConfiguration(type: string): SmartFilterBarCustomFilterConfig | undefined {\n const componentDefinition = this._fgService.getComponentDefinitionByType(type);\n\n if (!componentDefinition) {\n return undefined;\n }\n\n return this._customFilterConditions.get(componentDefinition.component);\n }\n\n /**\n * Returns applicable condition options of the filter.\n * @param type Filter type.\n * @param dataType Filter data type.\n * @returns Array of applicable condition options.\n */\n getApplicableFilterConditions(\n type: string,\n dataType: FilterableColumnDataType = FilterableColumnDataType.STRING\n ): FilterAllStrategy[] {\n const componentDefinition = this._fgService.getComponentDefinitionByType(type);\n\n const defaultConditions: FilterAllStrategy[] = getFilterStrategiesBasedOnDataType(\n dataType\n ) as FilterAllStrategy[];\n\n if (!componentDefinition) {\n return defaultConditions;\n }\n\n const filterDefinition = this._customFilterConditions.get(componentDefinition.component);\n\n return filterDefinition?.filterStrategies || defaultConditions;\n }\n\n /** @hidden */\n async getDisplayValue(condition: SmartFilterBarCondition, filterType: string): Promise<string> {\n const configuration = this.getCustomFilterConfiguration(filterType);\n\n if (configuration?.valueRenderer) {\n const obj = configuration?.valueRenderer(condition);\n const strategy = selectStrategy(obj);\n\n let returnValue!: string;\n\n await strategy.createSubscription(obj, (value) => {\n returnValue = value;\n });\n\n return returnValue;\n }\n\n const value1 = this._normalizeValue(condition.value);\n const value2 = this._normalizeValue(condition.value2);\n\n switch (condition.operator) {\n case 'equalTo':\n return `=${value1}`;\n case 'contains':\n return `*${value1}*`;\n case 'between':\n return `${value1}...${value2}`;\n case 'beginsWith':\n return `${value1}*`;\n case 'endsWith':\n return `*${value1}`;\n case 'greaterThan':\n return `>${value1}`;\n case 'greaterThanOrEqualTo':\n return `>=${value1}`;\n case 'lessThan':\n return `<${value1}`;\n case 'lessThanOrEqualTo':\n return `<=${value1}`;\n case 'after':\n return `>${value1}`;\n case 'onOrAfter':\n return `>=${value1}`;\n case 'before':\n return `<${value1}`;\n case 'beforeOrOn':\n return `<=${value1}`;\n default:\n return `${value1}`;\n }\n }\n\n /**\n * Method for normalizing generated conditions to display in human-readable format.\n * @returns Formatted array of conditions.\n * @param formItem\n * @param conditions\n */\n async normalizeConditions(\n formItem: PreparedDynamicFormFieldItem,\n conditions: SmartFilterBarCondition[]\n ): Promise<SmartFilterBarCondition[]> {\n const normalizedConditions: SmartFilterBarCondition[] = [];\n\n for (const condition of conditions) {\n const newCondition = Object.assign({}, condition);\n\n newCondition.displayValue = await this.getDisplayValue(\n newCondition,\n formItem.guiOptions?.additionalData.type\n );\n\n normalizedConditions.push(newCondition);\n }\n\n return normalizedConditions;\n }\n\n /**\n * Returns formatted condition variants.\n */\n async getConditionFieldSelectedVariants(\n formItem: PreparedDynamicFormFieldItem,\n conditions: SmartFilterBarCondition[]\n ): Promise<SelectItem[]> {\n return (await this.normalizeConditions(formItem, conditions)).map((c: any) => {\n if (isSelectItem(c)) {\n return c;\n }\n\n const condition: SelectItem = {\n label: c.displayValue,\n value: c\n };\n\n return condition;\n });\n }\n\n /**\n * Transforms collection filter into smart filter bar condition.\n */\n transformCollectionFilter(filterGroup: CollectionFilterGroup): SmartFilterBarCondition[] {\n return filterGroup.filters.map((filter) => {\n const condition: SmartFilterBarCondition = {\n operator: filter.strategy,\n value: filter.value,\n value2: filter.value2\n };\n\n return condition;\n });\n }\n\n /**\n * @hidden\n * Normalizes condition value.\n * @param value\n * @returns\n */\n private _normalizeValue(value: any): any {\n if (Array.isArray(value)) {\n return value.map((v) => this._normalizeValue(v)).join(', ');\n }\n\n if (isSelectItem(value)) {\n return value.label;\n }\n\n if (value instanceof FdDate) {\n return value.toDateString();\n }\n\n return value;\n }\n}\n","export const SMART_FILTER_BAR_RENDERER_COMPONENT = 'smart-filter-condition-renderer';\n","import { Directive, EventEmitter, Input, Output } from '@angular/core';\nimport { SearchInput } from '@fundamental-ngx/platform/search-field';\nimport { PresetManagedComponent } from '@fundamental-ngx/platform/shared';\nimport { CollectionFilterGroup } from '@fundamental-ngx/platform/table';\nimport { SmartFilterBarManagedPreset } from './interfaces/smart-filter-bar-change';\nimport { SmartFilterBarCondition } from './interfaces/smart-filter-bar-condition';\nimport { SmartFilterBarStrategyLabels } from './interfaces/strategy-labels.type';\n\n@Directive()\nexport abstract class SmartFilterBar implements PresetManagedComponent<SmartFilterBarManagedPreset> {\n /** @hidden */\n abstract defineStrategyLabels?: SmartFilterBarStrategyLabels;\n\n abstract search: SearchInput | undefined;\n\n /** @hidden */\n abstract getDisplayValue(condition: SmartFilterBarCondition, filterType: string): Promise<string>;\n\n /** Method for setting predefined configuration preset. */\n abstract setPreset(data: SmartFilterBarManagedPreset): void;\n\n /** Returns current preset configuration. */\n abstract getCurrentPreset(): SmartFilterBarManagedPreset;\n\n abstract getFormattedConditions(): Promise<CollectionFilterGroup[]>;\n\n /** Component name used in Preset managed component. */\n @Input()\n name = 'platformSmartFilterBar';\n\n /** Event emitted when smart filter bar configuration has been changed. */\n @Output()\n presetChanged = new EventEmitter<SmartFilterBarManagedPreset>();\n}\n","import { isSelectItem } from '@fundamental-ngx/platform/shared';\n\n/** @hidden */\nexport function getSelectItemValue(item: any): any {\n if (Array.isArray(item)) {\n item = item.map((i) => getSelectItemValue(i));\n }\n\n return isSelectItem(item) ? item.value : item;\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n Inject,\n QueryList,\n ViewChildren,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { FilterAllStrategy, FILTER_STRATEGY } from '@fundamental-ngx/platform/table';\nimport { SelectItem } from '@fundamental-ngx/platform/shared';\nimport { DialogRef } from '@fundamental-ngx/core/dialog';\nimport { DynamicFormControl, DynamicFormItem, FormGeneratorComponent } from '@fundamental-ngx/platform/form';\nimport { SmartFilterBarCondition, SmartFilterBarConditionBuilder } from '../../interfaces/smart-filter-bar-condition';\nimport { SmartFilterBarService } from '../../smart-filter-bar.service';\nimport { getSelectItemValue } from '../../helpers';\nimport { SmartFilterBarStrategyLabels } from '../../interfaces/strategy-labels.type';\nimport { FdLanguage, FD_LANGUAGE, TranslationResolver } from '@fundamental-ngx/i18n';\nimport { firstValueFrom, Observable } from 'rxjs';\n\n@Component({\n selector: 'fdp-smart-filter-bar-conditions-dialog',\n templateUrl: './smart-filter-bar-conditions-dialog.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SmartFilterBarConditionsDialogComponent {\n /** Condition builder config. */\n config: SmartFilterBarConditionBuilder;\n\n /** Available condition operator options. */\n conditionOperatorOptions: SelectItem[] = [];\n\n /** @hidden */\n _formItems: DynamicFormItem[][] = [];\n\n /**\n * Generated condition forms.\n */\n @ViewChildren(FormGeneratorComponent)\n formGenerators!: QueryList<FormGeneratorComponent>;\n\n /** @hidden */\n loaded = false;\n\n /** @hidden */\n private readonly _conditionLabelKeys: SmartFilterBarStrategyLabels = {\n contains: 'filterConditionContains',\n equalTo: 'filterConditionEqualTo',\n between: 'filterConditionBetween',\n beginsWith: 'filterConditionBeginsWith',\n endsWith: 'filterConditionEndsWith',\n lessThan: 'filterConditionLessThan',\n lessThanOrEqualTo: 'filterConditionLessThanOrEqualTo',\n greaterThan: 'filterConditionGreaterThan',\n greaterThanOrEqualTo: 'filterConditionGreaterThanOrEqualTo',\n after: 'filterConditionAfter',\n onOrAfter: 'filterConditionOnOrAfter',\n before: 'filterConditionBefore',\n beforeOrOn: 'filterConditionBeforeOrOn'\n };\n\n /** @hidden */\n private _submittedForms: any[] = [];\n\n /** @hidden */\n private _language: FdLanguage;\n\n /** @hidden */\n private _translationResolver = new TranslationResolver();\n\n /** @hidden */\n constructor(\n private _dialogRef: DialogRef<SmartFilterBarConditionBuilder, SmartFilterBarCondition[]>,\n @Inject(FD_LANGUAGE) private readonly _language$: Observable<FdLanguage>,\n private readonly _cdr: ChangeDetectorRef,\n private _smartFilterBarService: SmartFilterBarService\n ) {\n this._init();\n }\n\n /** @hidden */\n private async _init(): Promise<void> {\n this.config = this._dialogRef.data;\n\n this._language = await firstValueFrom(this._language$);\n this.conditionOperatorOptions = await this._getApplicableConditionOperators();\n\n this._addExistingConditions(getSelectItemValue(this.config.conditions));\n\n if (this.config.conditions.length === 0) {\n // Add first empty condition\n this.addCondition();\n }\n this.loaded = true;\n this._cdr.markForCheck();\n }\n\n /**\n * Adds empty condition.\n */\n addCondition(): void {\n this._formItems.push(this._generateFormGeneratorItems());\n }\n\n /**\n * Removes condition at defined index\n * @param index Index of the condition in the array.\n */\n removeCondition(index: number): void {\n this._formItems.splice(index, 1);\n\n if (this._formItems.length === 0) {\n this.addCondition();\n }\n }\n\n /**\n * Submits all condition forms.\n */\n applyConditions(): void {\n this._cdr.detectChanges();\n this._submittedForms = [];\n this.formGenerators.toArray().forEach((formGenerator) => formGenerator.submit());\n }\n\n /**\n * @hidden\n * Callback function when form generator form has been submitted.\n * Will close dialog in case if all forms are valid.\n * @param form Form generator form value.\n */\n _onFormSubmitted(form: SmartFilterBarCondition): void {\n this._submittedForms.push(form);\n\n if (this._submittedForms.length !== this.formGenerators.length) {\n return;\n }\n\n const formsResult = this._submittedForms.map((f) => {\n f.value = f.value1 !== undefined ? f.value1 : f.value;\n return f;\n });\n\n this._dialogRef.close(\n formsResult.filter((c: SmartFilterBarCondition) => c.value !== undefined && c.value !== null)\n );\n }\n\n /** @hidden */\n _cancel(): void {\n this._dialogRef.dismiss();\n }\n\n /**\n * @hidden\n * Returns applicable condition options of the filter.\n * @returns Array of applicable condition options.\n */\n private _getApplicableConditionOperators(): SelectItem[] {\n const strategy = this._smartFilterBarService.getApplicableFilterConditions(\n this.config.filterType,\n this.config.dataType\n );\n\n let labelsConfig = this.config.defineStrategyLabels;\n\n if (!labelsConfig) {\n labelsConfig = { ...this._conditionLabelKeys };\n for (const strategyItem in labelsConfig) {\n if (Object.prototype.hasOwnProperty.call(labelsConfig, strategyItem)) {\n const translationKey = labelsConfig[strategyItem];\n labelsConfig[strategyItem] = this._translationResolver.resolve(\n this._language,\n 'platformSmartFilterBar.' + translationKey\n );\n }\n }\n }\n\n return strategy.map((s: FilterAllStrategy) => ({\n label: labelsConfig![s],\n value: s\n }));\n }\n\n /**\n * Transforms filter conditions into form generator form items array.\n * @param conditions existing smart filter bar filter conditions.\n */\n private _addExistingConditions(conditions: SmartFilterBarCondition[]): void {\n conditions.forEach((condition) => {\n const conditionGroup = this._generateFormGeneratorItems(condition);\n\n this._formItems.push(conditionGroup);\n });\n }\n\n /** @hidden */\n private _generateFormGeneratorItems(condition?: SmartFilterBarCondition): DynamicFormItem[] {\n return [\n {\n name: 'operator',\n message: 'operator',\n default: condition\n ? this.conditionOperatorOptions.find((o) => o.value === condition.operator)?.value\n : this.conditionOperatorOptions[0].value,\n type: 'select',\n choices: this.conditionOperatorOptions,\n required: true,\n guiOptions: {\n inline: false,\n column: 1,\n noLabelLayout: true\n }\n },\n {\n name: 'value',\n message: 'value',\n default: condition?.value,\n type: this.config.filterType,\n choices: this.config.choices,\n placeholder: this._translationResolver.resolve(\n this._language,\n 'platformSmartFilterBar.filterConditionValuePlaceholder'\n ),\n controlType: this.config.controlType,\n when: (value) => value.operator !== FILTER_STRATEGY.BETWEEN,\n onchange: (value, _, control: DynamicFormControl) => {\n control.parent?.get('value1')?.setValue(value, { emitEvent: false });\n },\n guiOptions: {\n inline: false,\n column: 2,\n noLabelLayout: true\n }\n },\n {\n name: 'value1',\n message: 'value1',\n default: condition?.value,\n type: this.config.filterType,\n choices: this.config.choices,\n placeholder: this._translationResolver.resolve(\n this._language,\n 'platformSmartFilterBar.filterConditionValueFromPlaceholder'\n ),\n controlType: this.config.controlType,\n when: (value) => value.operator === FILTER_STRATEGY.BETWEEN,\n onchange: (value, _, control: DynamicFormControl) => {\n control.parent?.get('value')?.setValue(value, { emitEvent: false });\n },\n guiOptions: {\n inline: false,\n column: 2,\n noLabelLayout: true\n }\n },\n {\n name: 'value2',\n message: 'value2',\n default: condition?.value2,\n type: this.config.filterType,\n choices: this.config.choices,\n placeholder: this._translationResolver.resolve(\n this._language,\n 'platformSmartFilterBar.filterConditionValueToPlaceholder'\n ),\n required: true,\n controlType: this.config.controlType,\n when: (value) => value?.operator === FILTER_STRATEGY.BETWEEN,\n guiOptions: {\n inline: false,\n column: 3,\n noLabelLayout: true\n }\n }\n ];\n }\n}\n","<fd-dialog class=\"fdp-smart-filter-bar__conditions-dialog\">\n <fd-dialog-header>\n <ng-template fdkTemplate=\"header\">\n <div fd-bar-left>\n <fd-bar-element>\n <h4 [headerSize]=\"4\" fd-title>{{ config.header }}</h4>\n </fd-bar-element>\n </div>\n </ng-template>\n </fd-dialog-header>\n\n <fd-dialog-body>\n <form *ngIf=\"loaded; else loadingTpl\">\n <fd-layout-grid *ngFor=\"let condition of _formItems; let i = index\">\n <div fdLayoutGridRow>\n <div colGrow fdLayoutGridCol>\n <!-- wrapping \"formSubmitted\" event payload as any, because it's type is more generic than we're expecting -->\n <fdp-form-generator\n (formSubmitted)=\"_onFormSubmitted($any($event))\"\n [formItems]=\"condition\"\n [unifiedLayout]=\"false\"\n columnLayout=\"XL3-L3-M3-S3\"\n [noAdditionalContent]=\"true\"\n ></fdp-form-generator>\n </div>\n <div class=\"fdp-smart-filter-bar__actions-column\" colGrow fdLayoutGridCol>\n <fdp-button\n (click)=\"removeCondition(i)\"\n buttonType=\"transparent\"\n glyph=\"decline\"\n [title]=\"'platformSmartFilterBar.defineConditionsRemoveConditionButtonTitle' | fdTranslate\"\n type=\"button\"\n ></fdp-button>\n </div>\n </div>\n </fd-layout-grid>\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <div colGrow fdLayoutGridCol> </div>\n <div class=\"fdp-smart-filter-bar__actions-column\" fdLayoutGridCol>\n <fdp-button\n (click)=\"addCondition()\"\n [label]=\"'platformSmartFilterBar.defineConditionsAddConditionButtonLabel' | fdTranslate\"\n ></fdp-button>\n </div>\n </div>\n </fd-layout-grid>\n </form>\n </fd-dialog-body>\n\n <fd-dialog-footer>\n <fd-dialog-footer-button>\n <fdp-button\n (click)=\"applyConditions()\"\n buttonType=\"emphasized\"\n [label]=\"'platformSmartFilterBar.defineConditionsSubmitButtonLabel' | fdTranslate\"\n ></fdp-button>\n </fd-dialog-footer-button>\n\n <fd-dialog-footer-button>\n <fdp-button\n (click)=\"_cancel()\"\n buttonType=\"transparent\"\n [label]=\"'platformSmartFilterBar.defineConditionsCancelButton' | fdTranslate\"\n ></fdp-button>\n </fd-dialog-footer-button>\n </fd-dialog-footer>\n</fd-dialog>\n\n<ng-template #loadingTpl>\n <div style=\"text-align: center; margin: 1rem\">\n <fd-busy-indicator [loading]=\"true\"></fd-busy-indicator>\n </div>\n</ng-template>\n","import { Directive, Injector } from '@angular/core';\nimport { DialogService } from '@fundamental-ngx/core/dialog';\nimport { BaseDynamicFormGeneratorControl, DynamicFormControl } from '@fundamental-ngx/platform/form';\nimport { take } from 'rxjs/operators';\nimport { SmartFilterBarCondition, SmartFilterBarConditionBuilder } from '../../interfaces/smart-filter-bar-condition';\nimport { SmartFilterBarService } from '../../smart-filter-bar.service';\nimport { SmartFilterBarConditionsDialogComponent } from '../smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component';\nimport { SmartFilterBar } from '../../smart-filter-bar.class';\n\n@Directive()\nexport abstract class BaseSmartFilterBarConditionField extends BaseDynamicFormGeneratorControl {\n /** @hidden */\n protected constructor(\n protected _dialogService: DialogService,\n protected _smartFilterBar: SmartFilterBar,\n protected _smartFilterBarService: SmartFilterBarService,\n protected _injector: Injector\n ) {\n super();\n }\n\n /**\n * Method for opening conditions configuration dialog.\n */\n openConditionsDialog: () => void = () => {\n const currentValue = this.getField().value;\n\n const dialogData: SmartFilterBarConditionBuilder = {\n header: this.formItem.message as string,\n dataType: this.formItem.guiOptions?.additionalData.dataType,\n filterType: this.formItem.guiOptions?.additionalData.type,\n conditions: currentValue || [],\n choices: this.formItem.guiOptions?.additionalData.choices,\n controlType: this.formItem.guiOptions?.additionalData.controlType,\n defineStrategyLabels: this._smartFilterBar.defineStrategyLabels\n };\n\n const dialogRef = this._dialogService.open(\n SmartFilterBarConditionsDialogComponent,\n {\n data: dialogData,\n width: '67.5rem',\n minHeight: '30%'\n },\n this._injector\n );\n\n dialogRef.afterClosed.pipe(take(1)).subscribe({\n next: async (conditions: SmartFilterBarCondition[]) => {\n const field = this.getField();\n const normalizedConditions = await this._smartFilterBarService.getConditionFieldSelectedVariants(\n this.formItem,\n conditions\n );\n field.setValue(normalizedConditions);\n },\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n error: (_) => {}\n });\n };\n\n /**\n * Method for retrieving current form control of the generated form.\n * @returns Found form control.\n */\n getField(): DynamicFormControl {\n return this.form.get(`${this.formGroupName}.${this.name}`) as DynamicFormControl;\n }\n}\n","import { Component, Injector, ViewEncapsulation } from '@angular/core';\nimport { DialogService } from '@fundamental-ngx/core/dialog';\nimport { SmartFilterBarService } from '../../smart-filter-bar.service';\nimport { BaseSmartFilterBarConditionField } from './base-smart-filter-bar-condition-field';\nimport { SmartFilterBar } from '../../smart-filter-bar.class';\n\n@Component({\n selector: 'fdp-smart-filter-bar-condition-field',\n templateUrl: './smart-filter-bar-condition-field.component.html',\n encapsulation: ViewEncapsulation.None\n})\nexport class SmartFilterBarConditionFieldComponent extends BaseSmartFilterBarConditionField {\n /** @hidden */\n constructor(\n dialogService: DialogService,\n smartFilterBar: SmartFilterBar,\n smartFilterBarService: SmartFilterBarService,\n injector: Injector\n ) {\n super(dialogService, smartFilterBar, smartFilterBarService, injector);\n }\n}\n","<ng-container [formGroup]=\"form\">\n <ng-container [formGroupName]=\"formGroupName\">\n <fdp-multi-input\n [id]=\"id\"\n [addOnButtonClickFn]=\"openConditionsDialog\"\n [autofocus]=\"true\"\n [dataSource]=\"formItem.choices || []\"\n [formControlName]=\"name\"\n [name]=\"name\"\n [placeholder]=\"formItem.placeholder || formItem.message\"\n displayKey=\"displayValue\"\n [glyphAriaLabel]=\"'platformSmartFilterBar.manageFieldConditions' | fdTranslate\"\n >\n </fdp-multi-input>\n </ng-container>\n</ng-container>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n forwardRef,\n Injector,\n Input,\n OnDestroy,\n Output,\n Provider,\n QueryList,\n TemplateRef,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport { Validators } from '@angular/forms';\n\nimport { BehaviorSubject, debounceTime, filter, firstValueFrom, Observable, Subscription } from 'rxjs';\nimport { map, take } from 'rxjs/operators';\n\nimport { Nullable, warnOnce } from '@fundamental-ngx/cdk/utils';\nimport { DialogConfig, DialogService } from '@fundamental-ngx/core/dialog';\nimport { CollectionFilterGroup, FilterableColumnDataType, FilterType } from '@fundamental-ngx/platform/table';\nimport { SearchInput } from '@fundamental-ngx/platform/search-field';\nimport {\n DynamicFormFieldItem,\n DynamicFormItem,\n FormGeneratorComponent,\n FormGeneratorService,\n PreparedDynamicFormFieldItem\n} from '@fundamental-ngx/platform/form';\nimport { FDP_PRESET_MANAGED_COMPONENT, SelectItem } from '@fundamental-ngx/platform/shared';\n\nimport { SmartFilterBarSettingsDialogComponent } from './components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component';\nimport { SmartFilterBarSubjectDirective } from './directives/smart-filter-bar-subject.directive';\nimport { SmartFilterBarToolbarItemDirective } from './directives/smart-filter-bar-toolbar-item.directive';\nimport { SmartFilterBarManagedPreset, SmartFilterChangeObject } from './interfaces/smart-filter-bar-change';\nimport { SmartFilterBarFieldDefinition } from './interfaces/smart-filter-bar-field-definition';\nimport { SmartFilterBarDynamicFormFieldItem } from './interfaces/smart-filter-dynamic-form-item';\nimport { SmartFilterBarCondition } from './interfaces/smart-filter-bar-condition';\nimport { SmartFilterSettingsDialogConfig } from './interfaces/smart-filter-bar-settings-dialog-config';\nimport { SmartFilterBarService } from './smart-filter-bar.service';\nimport { SMART_FILTER_BAR_RENDERER_COMPONENT } from './constants';\nimport { SmartFilterBarVisibilityCategoryLabels } from './interfaces/smart-filter-bar-visibility-category';\nimport { SmartFilterBar } from './smart-filter-bar.class';\nimport { SmartFilterBarConditionFieldComponent } from './components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component';\nimport { getSelectItemValue } from './helpers';\nimport { SmartFilterBarStrategyLabels } from './interfaces/strategy-labels.type';\nimport { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nconst defaultColumnsLayout = 'XL4-L3-M2-S1';\n\nfunction getColumnsNumber(layout: string): number {\n return Math.max(\n ...layout.split('-').map((part) => {\n const matchArray = part.match(/\\d+/);\n\n return matchArray ? parseInt(matchArray[0], 10) : 1;\n })\n );\n}\n\n/**\n * Default dialog configuration.\n */\nconst dialogConfig: DialogConfig = {\n responsivePadding: true,\n verticalPadding: true,\n minWidth: '30rem',\n /** 88px it's the header + footer height */\n bodyMinHeight: 'calc(50vh - 88px)'\n};\n\nconst smartFilterBarProvider: Provider = {\n provide: SmartFilterBar,\n useExisting: forwardRef(() => SmartFilterBarComponent)\n};\n\n@Component({\n selector: 'fdp-smart-filter-bar',\n templateUrl: './smart-filter-bar.component.html',\n styleUrls: ['./smart-filter-bar.component.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n smartFilterBarProvider,\n {\n provide: FDP_PRESET_MANAGED_COMPONENT,\n useExisting: SmartFilterBarComponent\n }\n ],\n host: {\n class: 'fdp-smart-filter-bar',\n '[class.fdp-smart-filter-bar--transparent]': 'transparent'\n }\n})\nexport class SmartFilterBarComponent extends SmartFilterBar implements AfterViewInit, OnDestroy {\n /**\n * @hidden\n * Form generator component instance.\n */\n @ViewChild(FormGeneratorComponent) _formGenerator!: FormGeneratorComponent;\n\n /**\n * Subject which will provide configuration data: data source, columns definitions, etc.\n */\n @Input()\n set subject(value: SmartFilterBarSubjectDirective) {\n this._setSubject(value);\n }\n\n get subject(): SmartFilterBarSubjectDirective {\n return this._subject;\n }\n\n /**\n * 'Show filters' button label.\n * @deprecated use i18n capabilities instead\n */\n @Input()\n set showFiltersLabel(value: string) {\n warnOnce('Property showFiltersLabel is deprecated. Use i18n capabilities instead.');\n this._showFiltersLabel = value;\n }\n\n get showFiltersLabel(): string {\n return this._showFiltersLabel;\n }\n\n /**\n * 'Hide filters' button label.\n * @deprecated use i18n capabilities instead\n */\n @Input()\n set hideFiltersLabel(value: string) {\n warnOnce('Property hideFiltersLabel is deprecated. Use i18n capabilities instead.');\n this._hideFiltersLabel = value;\n }\n\n get hideFiltersLabel(): string {\n return this._hideFiltersLabel;\n }\n\n /**\n * 'Filters' button label.\n * @deprecated use i18n capabilities instead\n */\n @Input()\n set filtersLabel(value: string) {\n warnOnce('Property filtersLabel is deprecated. Use i18n capabilities instead.');\n this._filtersLabel = value;\n }\n\n get filtersLabel(): string {\n return this._filtersLabel;\n }\n\n /**\n * Whether smart filter bar background should be transparent.\n */\n @Input()\n set transparent(value: BooleanInput) {\n this._transparent = coerceBooleanProperty(value);\n }\n\n get transparent(): boolean {\n return this._transparent;\n }\n\n /**\n * @deprecated use i18n capabilities instead\n * Condition strategy labels.\n */\n @Input()\n set defineStrategyLabels(value: SmartFilterBarStrategyLabels | undefined) {\n warnOnce('Property defineStrategyLabels is deprecated. Use i18n capabilities instead.');\n this._defineStrategyLabels = value;\n }\n\n get defineStrategyLabels(): SmartFilterBarStrategyLabels | undefined {\n return this._defineStrategyLabels;\n }\n\n /**\n * @deprecated use i18n capabilities instead\n * Filters visibility category labels.\n */\n @Input()\n set filtersVisibilityCategoryLabels(value: SmartFilterBarVisibilityCategoryLabels | undefined) {\n warnOnce('Property filtersVisibilityCategoryLabels is deprecated. Use i18n capabilities instead.');\n this._filtersVisibilityCategoryLabels = value;\n }\n\n get filtersVisibilityCategoryLabels(): SmartFilterBarVisibilityCategoryLabels | undefined {\n return this._filtersVisibilityCategoryLabels;\n }\n\n /**\n * Columns layout.\n */\n @Input()\n filtersColumnLayout: Nullable<string> = defaultColumnsLayout;\n\n /**\n * Whether to update filters when they are selected. Otherwise, filters will be applied only by pressing \"Go\" button.\n */\n @Input()\n liveUpdate = false;\n\n /**\n * Event emitted when the selected filters have been changed.\n */\n @Output()\n smartFiltersChanged: EventEmitter<SmartFilterChangeObject> = new EventEmitter<SmartFilterChangeObject>();\n\n /**\n * Event emitted when selected filters has been applied (User clicked on Go button).\n */\n @Output()\n smartFiltersApplied: EventEmitter<SmartFilterChangeObject> = new EventEmitter<SmartFilterChangeObject>();\n\n /**\n * Event emitted when search input field value has been changed.\n */\n @Output()\n searchInputChanged: EventEmitter<SearchInput> = new EventEmitter<SearchInput>();\n /** @hidden */\n @ContentChildren(SmartFilterBarToolbarItemDirective)\n private readonly _toolbarItemRefs: QueryList<SmartFilterBarToolbarItemDirective>;\n\n /**\n * Calculated array of filters to apply for the subject's data source.\n */\n filterBy: CollectionFilterGroup[] = [];\n\n /**\n * Search field value to apply for the subject's data source.\n */\n search: SearchInput | undefined;\n /** @Hidden */\n _toolbarItems: TemplateRef<any>[] = [];\n /** @hidden */\n _formItems: DynamicFormItem[];\n /** @hidden */\n _selectedFilters: string[] = [];\n /** @hidden */\n _showFilterBar = true;\n\n /** @hidden */\n get _loading(): boolean {\n return this._subject?.getDataSource() ? this._subject.getDataSource().isDataLoading : true;\n }\n\n /** @hidden */\n private _hideFiltersLabel: string;\n\n /** @hidden */\n private _showFiltersLabel: string;\n\n /** @hidden */\n private _filtersLabel: string;\n\n /** @hidden */\n private _defineStrategyLabels: SmartFilterBarStrategyLabels | undefined;\n\n /** @hidden */\n private _filtersVisibilityCategoryLabels: SmartFilterBarVisibilityCategoryLabels | undefined;\n\n /** @hidden */\n private _subscriptions = new Subscription();\n\n /** @hidden */\n private _subjectSubscriptions = new Subscription();\n\n /** @hidden */\n private _transparent = false;\n\n /** @hidden */\n private readonly _formGeneratorReady = new BehaviorSubject<boolean>(false);\n\n /** @hidden */\n private _ignorePresetChange = false;\n\n /** @hidden */\n private _subject!: SmartFilterBarSubjectDirective;\n\n /** @hidden */\n constructor(\n private _dialogService: DialogService,\n private _cdr: ChangeDetectorRef,\n private _smartFilterBarService: SmartFilterBarService,\n private _fgService: FormGeneratorService,\n private _injector: Injector,\n private readonly _destroyRef: DestroyRef\n ) {\n super();\n this._fgService.addComponent(SmartFilterBarConditionFieldComponent, [SMART_FILTER_BAR_RENDERER_COMPONENT]);\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._toolbarItems = this._toolbarItemRefs.toArray().map((ref) => ref.templateRef);\n\n this._toolbarItemRefs.changes.subscribe(() => {\n this._toolbarItems = this._toolbarItemRefs.toArray().map((ref) => ref.templateRef);\n });\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._subscriptions.unsubscribe();\n this._unsubscribeFromSubject();\n }\n\n /**\n * Transforms condition value into human-readable text.\n * @param condition Smart filter bar condition.\n * @param filterType Condition filter type.\n */\n async getDisplayValue(condition: SmartFilterBarCondition, filterType: string): Promise<string> {\n return this._smartFilterBarService.getDisplayValue(condition, filterType);\n }\n\n /** Open Filtering Settings Dialog */\n showFilteringSettings(): void {\n const columns = this._getSubjectDefinitions();\n const dialogData: SmartFilterSettingsDialogConfig = {\n fields: columns,\n filterBy: this.filterBy,\n selectedFilters: this._selectedFilters,\n visibilityCategories: this.filtersVisibilityCategoryLabels\n };\n\n const dialogRef = this._dialogService.open(\n SmartFilterBarSettingsDialogComponent,\n {\n ...dialogConfig,\n disablePaddings: true,\n width: '50rem',\n data: dialogData\n },\n this._injector\n );\n\n dialogRef.afterClosed.pipe(take(1)).subscribe((selectedFilters: string[]) => {\n this._setSelectedFilters(selectedFilters);\n });\n }\n\n /** @hidden */\n _onSearchInputChange(event: SearchInput): void {\n this.search = event;\n this.searchInputChanged.emit(event);\n }\n\n /** @hidden */\n _cancelSearch(): void {\n this.search = undefined;\n\n if (this.liveUpdate) {\n this.submitForm();\n }\n }\n\n /**\n * Submits filters and search form.\n */\n submitForm(): void {\n this._formGenerator.submit();\n }\n\n /** Method for setting predefined configuration. */\n async setPreset(data: SmartFilterBarManagedPreset): Promise<void> {\n this._ignorePresetChange = true;\n data.filterBy = data.filterBy || [];\n this.filterBy = data.filterBy;\n this.search = data.search;\n\n this._formGeneratorReady.pipe(filter((value) => value)).subscribe(async () => {\n // Reset form\n this._fgService.resetForm(this._formGenerator.form);\n\n // Set new data\n for (const filterBy of this.filterBy) {\n const control = this._fgService.getFormControl(this._formGenerator.form, filterBy.field);\n\n if (!control) {\n continue;\n }\n\n const formItem = control.formItem as PreparedDynamicFormFieldItem;\n\n const condition = this._smartFilterBarService.transformCollectionFilter(filterBy);\n\n const selectedConditions = await this._smartFilterBarService.getConditionFieldSelectedVariants(\n formItem,\n condition\n );\n control?.setValue(selectedConditions);\n }\n\n this._setSelectedFilters(this.filterBy.map((filterBy) => filterBy.field));\n\n const source = this.subject.getDataSource();\n source.dataProvider.setFilters(this.filterBy, this.search);\n this.subject.getSubject().fetch();\n });\n }\n\n /** Returns current preset configuration. */\n getCurrentPreset(): SmartFilterBarManagedPreset {\n return {\n search: this.search,\n filterBy: this.filterBy\n };\n }\n\n /**\n * @hidden\n * Callback function when form generator form has been successfully validated and submitted.\n */\n _onFormSubmitted(event: any): void {\n const conditions = this._generateCollectionFilterGroups(event);\n this._applyFiltering(conditions);\n }\n\n /**\n * @hidden\n * Callback method when form has been created.\n * Populates selected filters array with user-defined default filters.\n */\n _onFormCreated(): void {\n if (this.subject) {\n this._setSelectedFilters([...this.subject.getDefaultFields(), ...this._selectedFilters]);\n }\n\n this._formGenerator.form.valueChanges\n .pipe(debounceTime(50), takeUntilDestroyed(this._destroyRef))\n .subscribe(async () => {\n const conditions = await this.getFormattedConditions();\n this.smartFiltersChanged.emit({ filterBy: conditions, search: this.search, subject: this.subject });\n\n if (!this.liveUpdate) {\n return;\n }\n this._applyFiltering(conditions);\n });\n\n this._formGeneratorReady.next(true);\n }\n\n /**\n * @hidden\n */\n _toggleFilterBar(): void {\n this._showFilterBar = !this._showFilterBar;\n this._cdr.markForCheck();\n }\n\n /**\n * Formats raw filters object into array of grouped filters.\n * @returns Array of grouped filters.\n */\n async getFormattedConditions(): Promise<CollectionFilterGroup[]> {\n const formValue = await this._fgService.getFormValue(this._formGenerator.form);\n return this._generateCollectionFilterGroups(formValue);\n }\n\n /** @hidden */\n private _generateCollectionFilterGroups(value: {\n [key: string]: SmartFilterBarCondition[];\n }): CollectionFilterGroup[] {\n const collectionFilterGroups: CollectionFilterGroup[] = [];\n\n const columns = this._getSubjectDefinitions();\n\n Object.entries(value)\n .filter(([, fieldConditions]) => !!fieldConditions)\n .forEach(([fieldName, fieldConditions]) => {\n const column = columns.find((c) => c.name === fieldName) as SmartFilterBarFieldDefinition;\n const filterGroup: CollectionFilterGroup = {\n filters: [],\n strategy: column.conditionStrategy,\n field: column.key\n };\n fieldConditions.forEach((condition) => {\n filterGroup.filters.push({\n strategy: condition.operator,\n field: column.key,\n value: condition.value,\n value2: condition.value2,\n type: column.dataType\n });\n });\n\n collectionFilterGroups.push(filterGroup);\n });\n\n // Remove empty filter objects.\n return collectionFilterGroups.filter((filterGroup) => filterGroup.filters?.length > 0);\n }\n\n /** @hidden */\n private _setSubject(subject: SmartFilterBarSubjectDirective): void {\n if (!subject) {\n return;\n }\n\n this._subject = subject;\n this.unsubscribeFromSubject();\n this._listenToSubjectColumns();\n }\n\n /** @hidden */\n private unsubscribeFromSubject(): void {\n if (!this._subject) {\n return;\n }\n }\n\n /** @hidden */\n private _listenToSubjectColumns(): void {\n this._subjectSubscriptions.add(\n this._subject.fieldsStream.subscribe(async (columns: SmartFilterBarFieldDefinition[]) => {\n setTimeout(async () => {\n await this._generateForm(columns.filter((c) => c.filterable));\n });\n })\n );\n }\n\n /**\n * @hidden\n * Generates form items to be consumed by form generator component.\n * @param columns columns definition\n */\n private async _generateForm(columns: SmartFilterBarFieldDefinition[]): Promise<void> {\n const items: DynamicFormFieldItem[] = [];\n const columnsNumber = getColumnsNumber(this.filtersColumnLayout ?? '');\n let currentColumn = 1;\n\n if (columns.length === 0) {\n return;\n }\n\n columns.forEach((column) => {\n let item: SmartFilterBarDynamicFormFieldItem = this._generateBaseFieldItem(column);\n\n if (column.required) {\n this._selectedFilters.push(column.name);\n }\n\n switch (column.filterType) {\n case FilterType.SINGLE:\n case FilterType.CATEGORY:\n item.guiOptions.additionalData.type = 'select';\n item.guiOptions.inline = false;\n break;\n case FilterType.MULTI:\n item.guiOptions.additionalData.type = 'multi-input';\n break;\n case FilterType.CUSTOM:\n item = this._generateCustomFilterFieldItem(column, item);\n break;\n case FilterType.INPUT:\n default:\n item = this._generateInputFieldItem(column, item);\n break;\n }\n\n item.guiOptions.column = currentColumn;\n currentColumn += 1;\n\n if (currentColumn > columnsNumber) {\n currentColumn = 1;\n }\n\n items.push(item);\n });\n\n this._formItems = items;\n\n this._cdr.detectChanges();\n }\n\n /** @hidden */\n private _generateCustomFilterFieldItem(\n column: SmartFilterBarFieldDefinition,\n item: SmartFilterBarDynamicFormFieldItem\n ): SmartFilterBarDynamicFormFieldItem {\n if (!column.customFilterType) {\n return item;\n }\n item.guiOptions.additionalData.type = column.customFilterType;\n item.guiOptions.additionalData = Object.assign(\n item.guiOptions.additionalData,\n this._smartFilterBarService.getCustomFilterConfiguration(column.customFilterType)\n );\n\n item.type = item.guiOptions.additionalData.rendererComponent\n ? `${item.guiOptions.additionalData.type}-renderer`\n : item.type;\n item.transformer = item.guiOptions.additionalData.valueTransformer;\n\n return item;\n }\n\n /**\n * @hidden\n * Generates form item based on data type.\n * @param column\n * @param item\n * @returns\n */\n private _generateInputFieldItem(\n column: SmartFilterBarFieldDefinition,\n item: SmartFilterBarDynamicFormFieldItem\n ): SmartFilterBarDynamicFormFieldItem {\n switch (column.dataType) {\n case FilterableColumnDataType.DATE:\n item.guiOptions.additionalData.type = 'datepicker';\n break;\n case FilterableColumnDataType.NUMBER:\n item.guiOptions.additionalData.controlType = 'number';\n break;\n case FilterableColumnDataType.BOOLEAN:\n case FilterableColumnDataType.STRING:\n default:\n item.guiOptions.additionalData.controlType = 'text';\n break;\n }\n\n return item;\n }\n\n /**\n * @hidden\n * Generates base form item object to be consumed by form generator component.\n * @param column column definition\n * @returns base form item object.\n */\n private _generateBaseFieldItem(column: SmartFilterBarFieldDefinition): SmartFilterBarDynamicFormFieldItem {\n return {\n name: column.name,\n message: column.label,\n required: column.required,\n type: SMART_FILTER_BAR_RENDERER_COMPONENT,\n placeholder: ' ',\n validators: column.required ? [Validators.required] : [],\n choices: column.hasOptions ? this._getFilterDefaultOptions(column.key, column.filterType) : undefined,\n transformer: (itemValue) => getSelectItemValue(itemValue),\n guiOptions: {\n additionalData: {\n type: 'input',\n dataType: column.dataType,\n filterType: column.filterType,\n controlType: 'text',\n choices: column.hasOptions ? this._getFilterAvailableOptions(column.key) : undefined\n }\n },\n when: () => this._selectedFilters.includes(column.name)\n } as SmartFilterBarDynamicFormFieldItem;\n }\n\n /**\n * @hidden\n * Retrieves available options for particular column by using data source method.\n * @param column property name of the data source items.\n * @returns {Observable<SelectItem[]>} Observable with the array of available options.\n */\n private _getFilterAvailableOptions(column: string): () => Observable<SelectItem[]> {\n return () => this._getFieldVariants(column);\n }\n\n /** @hidden */\n private _getFilterDefaultOptions(column: string, filterType: FilterType): () => Promise<any[]> {\n return async () => {\n const variants = await firstValueFrom(this._getFieldVariants(column).pipe(take(1)));\n\n const availableDefaultConditions: SmartFilterBarCondition[] = [];\n\n for (const option of variants) {\n const condition: SmartFilterBarCondition = {\n value: option.value,\n operator: 'equalTo'\n };\n\n condition.displayValue = await this.getDisplayValue(condition, filterType);\n\n availableDefaultConditions.push(condition);\n }\n\n return availableDefaultConditions;\n };\n }\n\n /** @hidden */\n private _getFieldVariants(column: string): Observable<SelectItem[]> {\n return this.subject.getFieldVariants(column).pipe(\n take(1),\n map((data) => data.filter((item, index) => data.findIndex((_item) => _item.value === item.value) === index))\n );\n }\n\n /** @hidden */\n private _getSubjectDefinitions(): SmartFilterBarFieldDefinition[] {\n return this.subject?.getSubjectFields() || [];\n }\n\n /**\n * @hidden\n * Sets provided filters directly to the data source.\n * @param filters array of filters.\n */\n private _applyFiltering(filters: CollectionFilterGroup[]): void {\n // Apply outside filtering and force subject to fetch new data.\n const source = this.subject.getDataSource();\n this.filterBy = filters;\n source.dataProvider.setFilters(filters, this.search);\n this.subject.getSubject().fetch();\n const emittedValue: SmartFilterBarManagedPreset = { search: this.search, filterBy: this.filterBy };\n this.smartFiltersApplied.emit({ ...emittedValue, subject: this._subject });\n\n if (!this._ignorePresetChange) {\n this.presetChanged.emit(emittedValue);\n }\n this._ignorePresetChange = false;\n }\n\n /** @hidden */\n private _unsubscribeFromSubject(): void {\n this._subjectSubscriptions.unsubscribe();\n this._subjectSubscriptions = new Subscription();\n }\n\n /** @hidden */\n private _setSelectedFilters(filters: string[]): void {\n this._selectedFilters = filters.filter((f: string, i: number) => filters.indexOf(f) === i);\n this._formGenerator.refreshStepsVisibility();\n }\n}\n","<div>\n <fd-toolbar [hasTitle]=\"true\" fdType=\"transparent\">\n <ng-container *ngIf=\"_toolbarItems\">\n <ng-container *ngFor=\"let template of _toolbarItems\">\n <ng-template [ngTemplateOutlet]=\"template\"></ng-template>\n <fd-toolbar-separator></fd-toolbar-separator>\n </ng-container>\n </ng-container>\n <fdp-search-field\n (inputChange)=\"_onSearchInputChange($event)\"\n (searchSubmit)=\"submitForm()\"\n (cancelSearch)=\"_cancelSearch()\"\n [disabled]=\"_loading\"\n [disableRefresh]=\"true\"\n [placeholder]=\"'platformSmartFilterBar.searchPlaceholder' | fdTranslate\"\n ></fdp-search-field>\n <fd-toolbar-spacer></fd-toolbar-spacer>\n <fdp-button\n (click)=\"submitForm()\"\n buttonType=\"emphasized\"\n *ngIf=\"!liveUpdate\"\n fd-toolbar-item\n [disabled]=\"_loading\"\n [label]=\"'platformSmartFilterBar.submitButtonLabel' | fdTranslate\"\n ></fdp-button>\n <fdp-button\n (click)=\"submitForm()\"\n fd-toolbar-item\n glyph=\"synchronize\"\n [disabled]=\"_loading\"\n [ariaLabel]=\"'platformSmartFilterBar.refreshButtonAriaLabel' | fdTranslate\"\n ></fdp-button>\n <fdp-button\n (click)=\"showFilteringSettings()\"\n [label]=\"\n filtersLabel\n ? filtersLabel + ' (' + _selectedFilters.length + ')'\n : ('platformSmartFilterBar.filtersButtonLabel'\n | fdTranslate : { filtersCount: _selectedFilters.length })\n \"\n fd-toolbar-item\n [disabled]=\"_loading\"\n ></fdp-button>\n <fdp-button\n (click)=\"_toggleFilterBar()\"\n [label]=\"\n (_showFilterBar\n ? 'platformSmartFilterBar.hideFiltersButtonLabel'\n : 'platformSmartFilterBar.showFiltersButtonLabel'\n ) | fdTranslate\n \"\n buttonType=\"transparent\"\n fd-toolbar-item\n [disabled]=\"_loading\"\n ></fdp-button>\n </fd-toolbar>\n</div>\n\n<div class=\"fdp-smart-filter-bar__filters\" [hidden]=\"!_showFilterBar\">\n <fdp-form-generator\n (formCreated)=\"_onFormCreated()\"\n (formSubmitted)=\"_onFormSubmitted($event)\"\n [noAdditionalContent]=\"true\"\n [formItems]=\"_formItems\"\n [columnLayout]=\"filtersColumnLayout\"\n ></fdp-form-generator>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { PopoverModule } from '@fundamental-ngx/core/popover';\nimport { ButtonModule } from '@fundamental-ngx/core/button';\nimport {\n PlatformFormGeneratorModule,\n PlatformInputGroupModule,\n PlatformMultiInputModule,\n FdpFormGroupModule,\n FormGeneratorService\n} from '@fundamental-ngx/platform/form';\nimport { ToolbarModule } from '@fundamental-ngx/core/toolbar';\nimport { PlatformButtonModule } from '@fundamental-ngx/platform/button';\nimport { PlatformSelectModule } from '@fundamental-ngx/platform/form';\nimport { BusyIndicatorModule } from '@fundamental-ngx/core/busy-indicator';\nimport { IconModule } from '@fundamental-ngx/core/icon';\nimport { PlatformSearchFieldModule } from '@fundamental-ngx/platform/search-field';\nimport { DialogModule } from '@fundamental-ngx/core/dialog';\nimport { ListModule } from '@fundamental-ngx/core/list';\nimport { CheckboxModule } from '@fundamental-ngx/core/checkbox';\nimport { PlatformTableModule } from '@fundamental-ngx/platform/table';\nimport { LayoutGridModule } from '@fundamental-ngx/core/layout-grid';\n\nimport { SmartFilterBarComponent } from './smart-filter-bar.component';\n\nimport { SmartFilterBarSettingsDialogComponent } from './components/smart-filter-bar-settings-dialog/smart-filter-bar-settings-dialog.component';\nimport { SmartFilterBarFieldDefinitionDirective } from './directives/smart-filter-bar-field-definition.directive';\nimport { SmartFilterBarSubjectDirective } from './directives/smart-filter-bar-subject.directive';\nimport { SmartFilterBarConditionsDialogComponent } from './components/smart-filter-bar-conditions-dialog/smart-filter-bar-conditions-dialog.component';\nimport { SmartFilterBarConditionFieldComponent } from './components/smart-filter-bar-condition-field/smart-filter-bar-condition-field.component';\nimport { SmartFilterBarService } from './smart-filter-bar.service';\nimport { I18nModule } from '@fundamental-ngx/i18n';\nimport { SmartFilterBarToolbarItemDirective } from './directives/smart-filter-bar-toolbar-item.directive';\n\n@NgModule({\n declarations: [\n SmartFilterBarComponent,\n SmartFilterBarSettingsDialogComponent,\n SmartFilterBarFieldDefinitionDirective,\n SmartFilterBarSubjectDirective,\n SmartFilterBarConditionsDialogComponent,\n SmartFilterBarConditionFieldComponent,\n SmartFilterBarToolbarItemDirective\n ],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n PlatformFormGeneratorModule,\n I18nModule,\n ButtonModule,\n PopoverModule,\n ToolbarModule,\n PlatformButtonModule,\n PlatformInputGroupModule,\n IconModule,\n BusyIndicatorModule,\n PlatformSearchFieldModule,\n DialogModule,\n ListModule,\n CheckboxModule,\n PlatformTableModule,\n PlatformSelectModule,\n PlatformMultiInputModule,\n FdpFormGroupModule,\n LayoutGridModule\n ],\n exports: [\n SmartFilterBarComponent,\n SmartFilterBarSettingsDialogComponent,\n SmartFilterBarFieldDefinitionDirective,\n SmartFilterBarSubjectDirective,\n SmartFilterBarConditionsDialogComponent,\n SmartFilterBarConditionFieldComponent,\n SmartFilterBarToolbarItemDirective\n ],\n providers: [SmartFilterBarService, FormGeneratorService]\n})\nexport class PlatformSmartFilterBarModule {}\n","import { forwardRef, Provider } from '@angular/core';\nimport { SmartFilterBar } from '../smart-filter-bar.class';\nimport { SmartFilterBarComponent } from '../smart-filter-bar.component';\n\nexport const smartFilterBarProvider: Provider = {\n provide: SmartFilterBar,\n useExisting: forwardRef(() => SmartFilterBarComponent)\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i3","i4","i6","i11","i1","i2.SmartFilterBarService","i5","i7","i8","i9","i10","i2.SmartFilterBar","i3.SmartFilterBarService","smartFilterBarProvider"],"mappings":"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"}
|