@fundamental-ngx/platform 0.43.11 → 0.43.13
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/esm2020/approval-flow/approval-flow-add-node/approval-flow-add-node.component.mjs +1 -1
- package/esm2020/approval-flow/approval-flow-approver-details/approval-flow-approver-details.component.mjs +1 -1
- package/esm2020/form/multi-combobox/multi-combobox/multi-combobox.component.mjs +3 -3
- package/esm2020/form/multi-combobox/multi-combobox.module.mjs +8 -5
- package/esm2020/form/multi-input/multi-input.component.mjs +3 -3
- package/esm2020/form/multi-input/multi-input.module.mjs +8 -5
- package/esm2020/search-field/search-field.component.mjs +6 -2
- package/esm2020/smart-filter-bar/smart-filter-bar.component.mjs +1 -1
- package/esm2020/table/components/table-p13-dialog/columns/columns.component.mjs +1 -1
- package/esm2020/table/components/table-toolbar/table-toolbar.component.mjs +3 -3
- package/esm2020/value-help-dialog/value-help-dialog/value-help-dialog.component.mjs +1 -1
- package/esm2020/variant-management/variant-management.component.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-approval-flow.mjs +2 -2
- package/fesm2015/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-form.mjs +17 -11
- package/fesm2015/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-search-field.mjs +5 -1
- package/fesm2015/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-table.mjs +3 -3
- package/fesm2015/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2015/fundamental-ngx-platform-variant-management.mjs +1 -1
- package/fesm2015/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-approval-flow.mjs +2 -2
- package/fesm2020/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-form.mjs +17 -11
- package/fesm2020/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-search-field.mjs +5 -1
- package/fesm2020/fundamental-ngx-platform-search-field.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
- package/fesm2020/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-table.mjs +3 -3
- package/fesm2020/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
- package/fesm2020/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/fesm2020/fundamental-ngx-platform-variant-management.mjs +1 -1
- package/fesm2020/fundamental-ngx-platform-variant-management.mjs.map +1 -1
- package/form/multi-combobox/multi-combobox.module.d.ts +1 -1
- package/form/multi-input/multi-input.module.d.ts +1 -1
- package/fundamental-ngx-platform-v0.43.13.tgz +0 -0
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/search-field/search-field.component.d.ts +3 -1
- package/fundamental-ngx-platform-v0.43.11.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 /** 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 /** @hidden */\n 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","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 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';\nimport { DestroyedService } from '@fundamental-ngx/cdk/utils';\n\nimport { BehaviorSubject, debounceTime, filter, firstValueFrom, Observable, Subscription } from 'rxjs';\nimport { map, take, takeUntil } 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';\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 DestroyedService,\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 * 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 showFiltersLabel: string;\n\n /**\n * 'Hide filters' button label.\n * @deprecated use i18n capabilities instead\n */\n @Input()\n hideFiltersLabel: string;\n\n /**\n * 'Filters' button label.\n * @deprecated use i18n capabilities instead\n */\n @Input()\n filtersLabel: string;\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 defineStrategyLabels: SmartFilterBarStrategyLabels | undefined;\n\n /**\n * @deprecated use i18n capabilities instead\n * Filters visibility category labels.\n */\n @Input()\n filtersVisibilityCategoryLabels: SmartFilterBarVisibilityCategoryLabels | undefined;\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\n /**\n * Calculated array of filters to apply for the subject's data source.\n */\n filterBy: CollectionFilterGroup[] = [];\n /**\n * Search field value to apply for the subject's data source.\n */\n search: SearchInput | undefined;\n\n /** @hidden */\n @ContentChildren(SmartFilterBarToolbarItemDirective)\n private readonly _toolbarItemRefs: QueryList<SmartFilterBarToolbarItemDirective>;\n\n /**\n * @hidden\n * Form generator component instance.\n */\n @ViewChild(FormGeneratorComponent) _formGenerator!: FormGeneratorComponent;\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 _subscriptions = new Subscription();\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 constructor(\n private _dialogService: DialogService,\n private _cdr: ChangeDetectorRef,\n private _smartFilterBarService: SmartFilterBarService,\n private _fgService: FormGeneratorService,\n private _injector: Injector,\n private readonly _destroy$: DestroyedService\n ) {\n super();\n this._fgService.addComponent(SmartFilterBarConditionFieldComponent, [SMART_FILTER_BAR_RENDERER_COMPONENT]);\n }\n\n /** @hidden */\n private _subject!: SmartFilterBarSubjectDirective;\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.pipe(debounceTime(50), takeUntil(this._destroy$)).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","i5","i8","i11","i1","i2.SmartFilterBarService","i3","i4","i6","i7","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 /** 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 /** @hidden */\n 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","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 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';\nimport { DestroyedService } from '@fundamental-ngx/cdk/utils';\n\nimport { BehaviorSubject, debounceTime, filter, firstValueFrom, Observable, Subscription } from 'rxjs';\nimport { map, take, takeUntil } 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';\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 DestroyedService,\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 * 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 showFiltersLabel: string;\n\n /**\n * 'Hide filters' button label.\n * @deprecated use i18n capabilities instead\n */\n @Input()\n hideFiltersLabel: string;\n\n /**\n * 'Filters' button label.\n * @deprecated use i18n capabilities instead\n */\n @Input()\n filtersLabel: string;\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 defineStrategyLabels: SmartFilterBarStrategyLabels | undefined;\n\n /**\n * @deprecated use i18n capabilities instead\n * Filters visibility category labels.\n */\n @Input()\n filtersVisibilityCategoryLabels: SmartFilterBarVisibilityCategoryLabels | undefined;\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\n /**\n * Calculated array of filters to apply for the subject's data source.\n */\n filterBy: CollectionFilterGroup[] = [];\n /**\n * Search field value to apply for the subject's data source.\n */\n search: SearchInput | undefined;\n\n /** @hidden */\n @ContentChildren(SmartFilterBarToolbarItemDirective)\n private readonly _toolbarItemRefs: QueryList<SmartFilterBarToolbarItemDirective>;\n\n /**\n * @hidden\n * Form generator component instance.\n */\n @ViewChild(FormGeneratorComponent) _formGenerator!: FormGeneratorComponent;\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 _subscriptions = new Subscription();\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 constructor(\n private _dialogService: DialogService,\n private _cdr: ChangeDetectorRef,\n private _smartFilterBarService: SmartFilterBarService,\n private _fgService: FormGeneratorService,\n private _injector: Injector,\n private readonly _destroy$: DestroyedService\n ) {\n super();\n this._fgService.addComponent(SmartFilterBarConditionFieldComponent, [SMART_FILTER_BAR_RENDERER_COMPONENT]);\n }\n\n /** @hidden */\n private _subject!: SmartFilterBarSubjectDirective;\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.pipe(debounceTime(50), takeUntil(this._destroy$)).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","i5","i8","i11","i1","i2.SmartFilterBarService","i3","i4","i6","i7","i9","i10","i2.SmartFilterBar","i3.SmartFilterBarService","smartFilterBarProvider"],"mappings":"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"}
|