@fundamental-ngx/platform 0.62.0-rc.2 → 0.62.0-rc.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-approval-flow.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-form.mjs +4 -4
- package/fesm2022/fundamental-ngx-platform-form.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs +3 -1
- package/fesm2022/fundamental-ngx-platform-icon-tab-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-list.mjs +37 -3
- package/fesm2022/fundamental-ngx-platform-list.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-smart-filter-bar.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs +24 -38
- package/fesm2022/fundamental-ngx-platform-table-helpers.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-table.mjs +51 -30
- package/fesm2022/fundamental-ngx-platform-table.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs +1 -1
- package/fesm2022/fundamental-ngx-platform-value-help-dialog.mjs.map +1 -1
- package/package.json +4 -4
- package/schematics/ng-add/index.js +1 -1
- package/types/fundamental-ngx-platform-icon-tab-bar.d.ts +1 -1
- package/types/fundamental-ngx-platform-list.d.ts +11 -0
- package/types/fundamental-ngx-platform-table-helpers.d.ts +0 -4
- package/types/fundamental-ngx-platform-table.d.ts +30 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fundamental-ngx-platform-value-help-dialog.mjs","sources":["../../../../libs/platform/value-help-dialog/models/vhd-data.source.ts","../../../../libs/platform/value-help-dialog/models/vhd-strategy.enum.ts","../../../../libs/platform/value-help-dialog/models/vhd-type-condition.enum.ts","../../../../libs/platform/value-help-dialog/models/vhd-filter-rule.model.ts","../../../../libs/platform/value-help-dialog/models/vhd-tab-type.enum.ts","../../../../libs/platform/value-help-dialog/components/base-tab/vhd-base-tab.component.ts","../../../../libs/platform/value-help-dialog/constans/condition-display.function.ts","../../../../libs/platform/value-help-dialog/constans/variables.ts","../../../../libs/platform/value-help-dialog/directives/condition-count-message.directive.ts","../../../../libs/platform/value-help-dialog/components/define-tab/define-tab.component.ts","../../../../libs/platform/value-help-dialog/components/define-tab/define-tab.component.html","../../../../libs/platform/value-help-dialog/models/vhd-component.model.ts","../../../../libs/platform/value-help-dialog/components/select-tab/select-tab.component.ts","../../../../libs/platform/value-help-dialog/components/select-tab/select-tab.component.html","../../../../libs/platform/value-help-dialog/directives/value-help-filter-def.directive.ts","../../../../libs/platform/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.ts","../../../../libs/platform/value-help-dialog/directives/value-help-column-def.directive.ts","../../../../libs/platform/value-help-dialog/value-help-dialog/value-help-dialog.component.ts","../../../../libs/platform/value-help-dialog/value-help-dialog/value-help-dialog.component.html","../../../../libs/platform/value-help-dialog/value-help-dialog.module.ts","../../../../libs/platform/value-help-dialog/fundamental-ngx-platform-value-help-dialog.ts"],"sourcesContent":["import { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { BaseDataProvider, DataProvider, DataSource } from '@fundamental-ngx/platform/shared';\n\nexport class ValueHelpDialogDataSource<T> implements DataSource<T> {\n /** @hidden */\n protected _dataChanges: BehaviorSubject<T[]> = new BehaviorSubject<T[]>([]);\n /** @hidden */\n protected _onDataRequested$ = new Subject<void>();\n /** @hidden */\n protected _onDataReceived$ = new Subject<void>();\n\n /** @hidden */\n protected _dataLoading = false;\n\n /** @hidden */\n get isDataLoading(): boolean {\n return this._dataLoading;\n }\n\n /** @hidden */\n constructor(public dataProvider: DataProvider<T>) {}\n\n /** @hidden */\n match(predicate?: string | Map<string, string>): void {\n this._onDataRequested$.next();\n this._dataLoading = true;\n\n let searchParam = new Map<string, any>();\n if (typeof predicate === 'string') {\n searchParam.set('query', predicate);\n } else if (predicate instanceof Map) {\n searchParam = predicate;\n }\n\n this.dataProvider\n .fetch(searchParam)\n .pipe(take(1))\n .subscribe(\n (result: T[]) => {\n this._onDataReceived$.next();\n this._dataLoading = false;\n this._dataChanges.next(result);\n },\n () => {\n this._onDataReceived$.next();\n this._dataLoading = false;\n }\n );\n }\n\n /** @hidden */\n open(): Observable<T[]> {\n return this._dataChanges.asObservable();\n }\n\n /** @hidden */\n onDataRequested(): Observable<void> {\n return this._onDataRequested$.asObservable();\n }\n\n /** @hidden */\n onDataReceived(): Observable<void> {\n return this._onDataReceived$.asObservable();\n }\n\n /** @hidden */\n close(): void {}\n}\n\nexport class ArrayValueHelpDialogDataSource<T> extends ValueHelpDialogDataSource<T> {\n /** @hidden */\n constructor(data: T[]) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ObservableValueHelpDialogDataSource<T> extends ValueHelpDialogDataSource<T> {\n /** @hidden */\n constructor(data: Observable<T[]>) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class VhdDataProvider<R extends object> extends DataProvider<R> {\n /** @hidden */\n constructor(public values: R[]) {\n super();\n }\n\n /** @hidden */\n fetch(params: Map<string, string>): Observable<R[]> {\n let data = this.values;\n const arrayParams = Array.from(params);\n const filterFn = (row: R): boolean => {\n const rowEntries = Object.entries(row) as string[][];\n return arrayParams.every(([key, value]) => {\n if (key === '*') {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return rowEntries.some(([_rowEntryKey, rowEntryValue]) =>\n String(rowEntryValue).toLowerCase().includes(value.toLowerCase())\n );\n } else {\n return String(row[key]).toLowerCase().includes(value.toLowerCase());\n }\n });\n };\n if (params.size) {\n data = this.values.filter(filterFn);\n }\n\n return of(data);\n }\n}\n","export enum VhdDefineIncludeStrategy {\n contains = 'contains',\n equalTo = 'equalTo',\n between = 'between',\n startsWith = 'startsWith',\n endsWith = 'endsWith',\n lessThan = 'lessThan',\n lessThanEqual = 'lessThanEqual',\n greaterThan = 'greaterThan',\n greaterThanEqual = 'greaterThanEqual',\n empty = 'empty'\n}\n\nexport enum VhdDefineExcludeStrategy {\n not_equalTo = 'not_equalTo',\n not_empty = 'not_empty'\n}\n","export enum VhdDefineType {\n include = 'include',\n exclude = 'exclude'\n}\n","import { VhdDefineExcludeStrategy, VhdDefineIncludeStrategy } from './vhd-strategy.enum';\nimport { VhdDefineType } from './vhd-type-condition.enum';\n\nexport interface VhdDefineEntityRule {\n type: VhdDefineType;\n key: string;\n strategy: VhdDefineIncludeStrategy | VhdDefineExcludeStrategy;\n value: string;\n valueTo: string;\n}\n\nexport class BaseEntity implements VhdDefineEntityRule {\n /** @hidden */\n type: VhdDefineType;\n /** @hidden */\n key = '*';\n /** @hidden */\n label?: string;\n /** @hidden */\n strategy: VhdDefineIncludeStrategy | VhdDefineExcludeStrategy;\n /** @hidden */\n value = '';\n /** @hidden */\n valueTo = '';\n /** @hidden */\n valid: boolean;\n\n /** @hidden */\n constructor(strategy?: VhdDefineIncludeStrategy | VhdDefineExcludeStrategy, key?: string) {\n if (key) {\n this.key = key;\n }\n this.strategy = strategy || VhdDefineIncludeStrategy.equalTo;\n }\n}\nexport class VhdIncludedEntity extends BaseEntity {\n /** @hidden */\n type: VhdDefineType = VhdDefineType.include;\n}\nexport class VhdExcludedEntity extends BaseEntity {\n /** @hidden */\n type: VhdDefineType = VhdDefineType.exclude;\n}\n","export enum VhdTab {\n selectFromList,\n defineConditions,\n advancedSearch\n}\n","import { ChangeDetectorRef, Component, Input } from '@angular/core';\n\nimport { VhdTab } from '../../models';\n\n@Component({\n template: '',\n standalone: true\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class VhdBaseTab {\n /** Tab Title */\n @Input()\n uid: string;\n\n /** Tab Title */\n @Input()\n tabTitle: string;\n\n /** Mobile view */\n @Input()\n mobile = false;\n\n /** @hidden */\n get type(): VhdTab {\n return VhdTab.defineConditions;\n }\n\n /** @hidden */\n constructor(readonly _changeDetectorRef: ChangeDetectorRef) {}\n}\n","import {\n VhdDefineExcludeStrategy,\n VhdDefineIncludeStrategy,\n VhdExcludedEntity,\n VhdFilter,\n VhdIncludedEntity\n} from '../models';\n\nexport const defaultConditionDisplayFn = (\n item: VhdIncludedEntity | VhdExcludedEntity,\n filters?: VhdFilter[]\n): string | null => {\n const filter = (filters || []).find((f) => f.key === item.key);\n let value = (() => {\n switch (item.strategy) {\n case VhdDefineIncludeStrategy.empty:\n case VhdDefineExcludeStrategy.not_empty:\n return null;\n case VhdDefineIncludeStrategy.between:\n return `${item.value}...${item.valueTo}`;\n case VhdDefineIncludeStrategy.contains:\n return `*${item.value}*`;\n case VhdDefineIncludeStrategy.equalTo:\n return `=${item.value}`;\n case VhdDefineIncludeStrategy.startsWith:\n return `${item.value}*`;\n case VhdDefineIncludeStrategy.endsWith:\n return `*${item.value}`;\n case VhdDefineIncludeStrategy.greaterThan:\n return `>${item.value}`;\n case VhdDefineIncludeStrategy.greaterThanEqual:\n return `>=${item.value}`;\n case VhdDefineIncludeStrategy.lessThan:\n return `<${item.value}`;\n case VhdDefineIncludeStrategy.lessThanEqual:\n return `<=${item.value}`;\n case VhdDefineExcludeStrategy.not_equalTo:\n return `!(=${item.value})`;\n }\n })();\n if (value && item.type === 'exclude') {\n value = `!(${value})`;\n }\n if (filter) {\n return `${filter.label}: ${value}`;\n }\n\n return value;\n};\n","export const MAX_CHARACTER_HINT_COUNT = 7;\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Directive, Input } from '@angular/core';\nimport { AbstractControl, FormControl, NG_VALIDATORS, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdp-condition-count-message]',\n providers: [{ provide: NG_VALIDATORS, useExisting: ConditionCountMessageDirective, multi: true }],\n standalone: true\n})\nexport class ConditionCountMessageDirective {\n /** Max characters allowed */\n @Input()\n set maxCharacters(value: number) {\n this._maxCharacters = <number>coerceNumberProperty(value);\n }\n get maxCharacters(): number {\n return this._maxCharacters;\n }\n\n /** @hidden */\n private _maxCharacters = Number.MAX_SAFE_INTEGER;\n\n /** @hidden */\n private readonly validator: ValidatorFn;\n\n /** @hidden */\n constructor() {\n this.validator = this.checkError();\n }\n\n /** @hidden */\n validate(control: FormControl): ValidationErrors | null {\n return this.validator(control);\n }\n\n /** @hidden */\n private checkError(): ValidatorFn {\n return (control: AbstractControl) => {\n if (control.dirty && control.value && control.value.length > this.maxCharacters) {\n return {\n maxCharacters: {\n actualLength: control.value.length,\n requiredLength: this.maxCharacters\n }\n };\n }\n return null;\n };\n }\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n FormControlComponent,\n FormInputMessageGroupComponent,\n FormLabelComponent,\n FormMessageComponent\n} from '@fundamental-ngx/core/form';\nimport { LayoutGridColDirective, LayoutGridComponent, LayoutGridRowDirective } from '@fundamental-ngx/core/layout-grid';\nimport { ListGroupHeaderDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { OptionComponent, SelectComponent } from '@fundamental-ngx/core/select';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { MAX_CHARACTER_HINT_COUNT } from '../../constans';\nimport { ConditionCountMessageDirective } from '../../directives/condition-count-message.directive';\nimport {\n BaseEntity,\n VhdDefineExcludeStrategy,\n VhdDefineIncludeStrategy,\n VhdDefineType,\n VhdExcludedEntity,\n VhdIncludedEntity\n} from '../../models';\nimport { VhdBaseTab } from '../base-tab/vhd-base-tab.component';\n\nclass ExtendedBaseEntity extends BaseEntity {\n id?: number;\n}\n\nclass ExtendedIncludedEntity extends VhdIncludedEntity {\n id?: number;\n}\n\nclass ExtendedExcludedEntity extends VhdExcludedEntity {\n id?: number;\n}\n\nlet titleUniqueId = 0;\n\n@Component({\n selector: 'fdp-define-tab',\n templateUrl: './define-tab.component.html',\n styleUrl: './define-tab.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TitleComponent,\n LayoutGridComponent,\n LayoutGridRowDirective,\n LayoutGridColDirective,\n FormLabelComponent,\n SelectComponent,\n FormsModule,\n ListGroupHeaderDirective,\n ListTitleDirective,\n OptionComponent,\n NgTemplateOutlet,\n FormInputMessageGroupComponent,\n FormControlComponent,\n ConditionCountMessageDirective,\n ButtonComponent,\n FormMessageComponent,\n FdTranslatePipe\n ]\n})\nexport class DefineTabComponent extends VhdBaseTab implements OnChanges, AfterViewInit {\n /** @hidden */\n protected defaultId = `fd-title-id-${titleUniqueId++}`;\n /** @hidden */\n protected defaultSelectId = `fd-select-title-id-${titleUniqueId++}`;\n\n /** title id for the table */\n @Input()\n titleId: string = this.defaultId;\n\n /** seelcted value id for the table */\n @Input()\n selectedId: string = this.defaultSelectId;\n\n /** @hidden */\n @Input()\n conditions: ExtendedBaseEntity[] = [];\n\n /** @hidden */\n @Input()\n strategyLabels: { [key in keyof (typeof VhdDefineIncludeStrategy | typeof VhdDefineExcludeStrategy)]?: string } =\n {};\n\n /** @hidden */\n @Output()\n includeChange: EventEmitter<ExtendedIncludedEntity[]> = new EventEmitter<ExtendedIncludedEntity[]>();\n\n /** @hidden */\n @Output()\n excludeChange: EventEmitter<ExtendedExcludedEntity[]> = new EventEmitter<ExtendedExcludedEntity[]>();\n\n /** @hidden */\n @Output()\n conditionChange: EventEmitter<BaseEntity[]> = new EventEmitter<BaseEntity[]>();\n\n /** @hidden */\n _conditions: ExtendedBaseEntity[] = [];\n\n /** @hidden */\n _definePanelState = {\n included: false,\n excluded: false\n };\n\n /** @hidden */\n _rules = {\n maxCharactersHintCount: MAX_CHARACTER_HINT_COUNT\n };\n /** @hidden */\n _strategyIncludeValues = VhdDefineIncludeStrategy;\n\n /** @hidden */\n _strategyExcludeValues = VhdDefineExcludeStrategy;\n\n /** @hidden */\n _defineTypes = VhdDefineType;\n\n /** @hidden */\n _includeStrategy: StategyItem[] = [];\n\n /** @hidden */\n _excludeStrategy: StategyItem[] = [];\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('conditions' in changes) {\n this._conditions = (this.conditions as ExtendedIncludedEntity[]) || [];\n this._initializeConditions();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._refreshStrategies();\n }\n\n /** @hidden Track function for main data */\n _trackByKeyAndType(\n _index: number,\n item: ExtendedIncludedEntity | ExtendedExcludedEntity\n ): number | string | undefined {\n if (item) {\n return item.id + item.key + item.type;\n }\n\n return undefined;\n }\n\n /** @hidden */\n _onSelectStrategy(): void {\n this._filterChanged();\n }\n\n /** @hidden */\n _filterChanged(): void {\n this.conditionChange.emit(this._conditions);\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden */\n addEmptyCondition(): void {\n const item = new ExtendedBaseEntity();\n item.value = '';\n this._conditions.push(item);\n this._filterChanged();\n }\n\n /** @hidden */\n removeCondition(index: number): void {\n this._conditions.splice(index, 1);\n this._initializeConditions();\n this._filterChanged();\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden */\n _validateConditionValue(item: ExtendedIncludedEntity | ExtendedExcludedEntity, valid: boolean | boolean[]): void {\n item.valid = Array.isArray(valid) ? valid.every(Boolean) : !!valid;\n this._filterChanged();\n }\n\n /** @hidden */\n private _refreshStrategies(): void {\n this._includeStrategy = Object.keys(VhdDefineIncludeStrategy).map((key) => ({\n key,\n type: VhdDefineType.include\n }));\n this._excludeStrategy = Object.keys(VhdDefineExcludeStrategy).map((key) => ({\n key,\n type: VhdDefineType.exclude\n }));\n }\n\n /** @hidden */\n private _initializeConditions(): void {\n if (this._conditions.length === 0) {\n this.addEmptyCondition();\n }\n }\n}\n\ninterface StategyItem {\n key: string;\n type: VhdDefineType;\n}\n","<h5 [id]=\"titleId\" role=\"heading\" aria-level=\"5\" fd-title class=\"define-condition-title\">\n {{ ('platformVHD.defineConditionTitle' | fdTranslate)() }}\n</h5>\n@for (item of _conditions; track _trackByKeyAndType(i, item); let i = $index) {\n <fd-layout-grid class=\"condition-row\">\n <div fdLayoutGridRow>\n <div [fdLayoutGridCol]=\"4\">\n <label id=\"CONDITIONPANEL_OPERATOR_LABEL\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n CONDITIONPANEL_OPERATOR_LABEL\n </label>\n <label [id]=\"selectedId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{\n (\n 'platformVHD.defineConditionSelectedValueHiddenA11yLabel'\n | fdTranslate: { value: item.strategy }\n )()\n }}</label\n >\n <fd-select\n class=\"vhd-condition-filters\"\n fdLayoutGridCol\n colGrow\n [class.fd-select-custom-class]=\"false\"\n #sttr\n [controlTemplate]=\"customSelectTemplate\"\n [name]=\"uid + '-' + type + '-strategy-' + item.id\"\n [(ngModel)]=\"item.strategy\"\n (valueChange)=\"_filterChanged()\"\n role=\"combobox\"\n aria-roledescription=\"select\"\n aria-haspopup=\"listbox\"\n [inline]=\"false\"\n [ariaLabelledBy]=\"titleId + ' ' + 'CONDITIONPANEL_OPERATOR_LABEL' + ' ' + selectedId\"\n >\n @if (_includeStrategy.length) {\n <li fd-list-group-header>\n <span fd-list-title>{{\n ('platformVHD.defineConditionConditionsGroupHeaderInclude' | fdTranslate)()\n }}</span>\n </li>\n @for (strategy of _includeStrategy; track strategy) {\n <li fd-option [value]=\"strategy.key\">\n <ng-template\n [ngTemplateOutlet]=\"conditionStrategyOption\"\n [ngTemplateOutletContext]=\"{ type: _defineTypes.include, strategy: strategy }\"\n ></ng-template>\n </li>\n }\n }\n @if (_excludeStrategy.length) {\n <li fd-list-group-header>\n <span fd-list-title>{{\n ('platformVHD.defineConditionConditionsGroupHeaderExclude' | fdTranslate)()\n }}</span>\n </li>\n @for (strategy of _excludeStrategy; track strategy) {\n <li fd-option [value]=\"strategy.key\">\n <ng-template\n [ngTemplateOutlet]=\"conditionStrategyOption\"\n [ngTemplateOutletContext]=\"{ type: _defineTypes.exclude, strategy: strategy }\"\n ></ng-template>\n </li>\n }\n }\n </fd-select>\n </div>\n @if (item.strategy !== _strategyIncludeValues.empty && item.strategy !== _strategyExcludeValues.not_empty) {\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow>\n @if (item.strategy === _strategyIncludeValues.between) {\n <div fdLayoutGridCol colGrow>\n <fd-form-input-message-group [triggers]=\"['focusin', 'focusout']\">\n <input\n fd-form-control\n fdp-condition-count-message\n [maxCharacters]=\"_rules.maxCharactersHintCount\"\n type=\"text\"\n [placeholder]=\"('platformVHD.defineConditionFromPlaceholder' | fdTranslate)()\"\n placeholder=\"from\"\n required\n [state]=\"fromModel.invalid ? 'error' : null\"\n [name]=\"uid + '-' + type + '-from-' + item.id\"\n (blur)=\"_validateConditionValue(item, [!!fromModel.valid, !!toModel.valid])\"\n #fromModel=\"ngModel\"\n [(ngModel)]=\"item.value\"\n />\n <ng-template\n [ngTemplateOutlet]=\"countError\"\n [ngTemplateOutletContext]=\"{ $implicit: item.value && item.value.length }\"\n ></ng-template>\n </fd-form-input-message-group>\n </div>\n <div fdLayoutGridCol colGrow>\n <fd-form-input-message-group [triggers]=\"['focusin', 'focusout']\">\n <input\n fd-form-control\n fdp-condition-count-message\n [maxCharacters]=\"_rules.maxCharactersHintCount\"\n type=\"text\"\n [placeholder]=\"('platformVHD.defineConditionToPlaceholder' | fdTranslate)()\"\n required\n [state]=\"toModel.invalid ? 'error' : null\"\n [name]=\"uid + '-' + type + '-to-' + item.id\"\n (blur)=\"_validateConditionValue(item, [!!fromModel.valid, !!toModel.valid])\"\n #toModel=\"ngModel\"\n [(ngModel)]=\"item.valueTo\"\n />\n <ng-template\n [ngTemplateOutlet]=\"countError\"\n [ngTemplateOutletContext]=\"{ $implicit: item.value && item.value.length }\"\n ></ng-template>\n </fd-form-input-message-group>\n </div>\n } @else {\n <div fdLayoutGridCol colGrow>\n <fd-form-input-message-group>\n <input\n fd-form-control\n fdp-condition-count-message\n [maxCharacters]=\"_rules.maxCharactersHintCount\"\n type=\"text\"\n [placeholder]=\"('platformVHD.defineConditionValuePlaceholder' | fdTranslate)()\"\n [state]=\"valueModel.invalid ? 'error' : null\"\n [name]=\"uid + '-' + type + '-value-' + item.id\"\n (blur)=\"_validateConditionValue(item, !!valueModel.valid)\"\n #valueModel=\"ngModel\"\n [(ngModel)]=\"item.value\"\n />\n @if (valueModel.invalid) {\n <ng-template\n [ngTemplateOutlet]=\"countError\"\n [ngTemplateOutletContext]=\"{ $implicit: item.value && item.value.length }\"\n ></ng-template>\n }\n </fd-form-input-message-group>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"action-col\" fdLayoutGridCol colGrow>\n <button\n fd-button\n [ariaLabel]=\"('platformVHD.defineConditionRemoveConditionButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n glyph=\"decline\"\n [title]=\"('platformVHD.defineConditionRemoveConditionButtonTitle' | fdTranslate)()\"\n (click)=\"removeCondition(i)\"\n ></button>\n </div>\n </div>\n </fd-layout-grid>\n}\n<fd-layout-grid class=\"condition-row new-condition-row\" [noGap]=\"true\">\n <div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow> </div>\n <div fdLayoutGridCol class=\"action-col\">\n <button\n fd-button\n [attr.aria-label]=\"('platformVHD.defineConditionAddConditionButtonTitle' | fdTranslate)()\"\n [label]=\"('platformVHD.defineConditionAddConditionButtonLabel' | fdTranslate)()\"\n [title]=\"('platformVHD.defineConditionAddConditionButtonTitle' | fdTranslate)()\"\n (click)=\"addEmptyCondition()\"\n ></button>\n </div>\n </div>\n</fd-layout-grid>\n<ng-template #conditionStrategyOption let-type=\"type\" let-strategy=\"strategy\">\n @switch (strategy.key) {\n @case ('contains') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelContains' | fdTranslate)() }}\n }\n @case ('equalTo') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelEqualTo' | fdTranslate)() }}\n }\n @case ('between') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelBetween' | fdTranslate)() }}\n }\n @case ('startsWith') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelStartsWith' | fdTranslate)() }}\n }\n @case ('endsWith') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelEndsWith' | fdTranslate)() }}\n }\n @case ('lessThan') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelLessThan' | fdTranslate)() }}\n }\n @case ('lessThanEqual') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelLessThanEqual' | fdTranslate)() }}\n }\n @case ('greaterThan') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelGreaterThan' | fdTranslate)() }}\n }\n @case ('greaterThanEqual') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelGreaterThanEqual' | fdTranslate)() }}\n }\n @case ('empty') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelEmpty' | fdTranslate)() }}\n }\n @case ('not_equalTo') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelNotEqualTo' | fdTranslate)() }}\n }\n @case ('not_empty') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelNotEmpty' | fdTranslate)() }}\n }\n }\n</ng-template>\n<ng-template #countError let-count>\n @if (count && count > 7) {\n <fd-form-message type=\"error\">\n {{ ('platformVHD.defineConditionMaxCountError' | fdTranslate: { count: 7 })() }}\n </fd-form-message>\n }\n</ng-template>\n<ng-template #customSelectTemplate let-textValue>\n {{ textValue }}\n</ng-template>\n","import { QueryList } from '@angular/core';\nimport { ValueHelpColumnDefDirective } from '../directives/value-help-column-def.directive';\n\nexport abstract class VhdComponent {\n abstract columnDef: QueryList<ValueHelpColumnDefDirective>;\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\n\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet, SlicePipe } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { FocusableGridDirective, range } from '@fundamental-ngx/cdk/utils';\nimport { BarComponent, BarElementDirective, BarMiddleDirective } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { FormLabelComponent } from '@fundamental-ngx/core/form';\nimport { InfiniteScrollDirective } from '@fundamental-ngx/core/infinite-scroll';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport {\n TableBodyDirective,\n TableCellDirective,\n TableComponent,\n TableHeaderDirective,\n TableRowDirective,\n TableTextDirective\n} from '@fundamental-ngx/core/table';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { startWith } from 'rxjs';\nimport { ValueHelpColumnDefDirective } from '../../directives/value-help-column-def.directive';\nimport { VdhTableSelection, VhdFilter } from '../../models';\nimport { VhdComponent } from '../../models/vhd-component.model';\nimport { VhdBaseTab } from '../base-tab/vhd-base-tab.component';\n\nlet titleUniqueId = 0;\n\n@Component({\n selector: 'fdp-select-tab',\n templateUrl: './select-tab.component.html',\n styleUrl: './select-tab.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TitleComponent,\n CdkScrollable,\n ScrollbarDirective,\n InfiniteScrollDirective,\n FocusableGridDirective,\n TableComponent,\n FormLabelComponent,\n TableHeaderDirective,\n TableRowDirective,\n TableCellDirective,\n CheckboxComponent,\n FormsModule,\n TableBodyDirective,\n TableTextDirective,\n BarComponent,\n BarMiddleDirective,\n BarElementDirective,\n ButtonComponent,\n SkeletonComponent,\n SlicePipe,\n FdTranslatePipe,\n NgTemplateOutlet\n ]\n})\nexport class SelectTabComponent<T> extends VhdBaseTab implements OnChanges, AfterViewInit {\n /** @hidden */\n readonly loadingRange = range(3);\n protected defaultTitleId = `fd-select-tab-title-id-${titleUniqueId++}`;\n /** @hidden */\n protected defaultCountId = `fd-select-tab-title-count-id-${titleUniqueId++}`;\n\n /** Select tab title element ID */\n @Input()\n selectTabTitleId: string = this.defaultTitleId;\n\n /** Select tab count element ID */\n @Input()\n selectTabCountId: string = this.defaultCountId;\n\n /** Selected items */\n @Input()\n selected: T[] = [];\n\n /** Loading state */\n @Input()\n loading = false;\n\n /** Actual filters */\n @Input()\n filters: VhdFilter[] = [];\n\n /** Close dialog immediately after select any row from search table. It'll be skipped if multi option is true */\n @Input()\n selection: VdhTableSelection = 'single';\n\n /** Whether to allow users to select all table entries with one checkbox. */\n @Input()\n allowSelectAll = true;\n\n /** Uniq field from data source */\n @Input()\n uniqueKey = 'id';\n\n /** Items per page for pagination below search table */\n @Input()\n pageSize: number;\n\n /** Count of default mobile header from search table */\n @Input()\n defaultMobileHeaders = 2;\n\n /** Displayed data for search table */\n @Input()\n displayedData: T[] = [];\n\n /** Event emitted when row was selected. */\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() select = new EventEmitter<T[]>();\n\n /** @hidden */\n @ViewChild(InfiniteScrollDirective) infiniteScrollTable: InfiniteScrollDirective;\n\n /** @hidden indeterminate flag for `select all` checkbox */\n _selectedAll: boolean | null = false;\n\n /** @hidden Shown items count in mobile view */\n _shownFrom = 0;\n\n /** @hidden Shown items count in mobile view */\n _shownCount = 0;\n\n /** @hidden Current page in desktop view */\n _currentPage = 0;\n\n /** @hidden Headers and body for search table */\n _tableFilters: {\n main: VhdFilter[];\n secondary: VhdFilter[];\n } = {\n main: [],\n secondary: []\n };\n\n /** @hidden */\n _selectedMap: { [key: string]: boolean } = {};\n\n /** Selection type getters */\n get isSingleSelection(): boolean {\n return this.selection === 'single';\n }\n /** Selection type getters */\n get isOnceSelection(): boolean {\n return this.selection === 'once';\n }\n /** Selection type getters */\n get isMultiSelection(): boolean {\n return this.selection === 'multi';\n }\n\n /** @hidden */\n _columnDefMap = new Map<string, ValueHelpColumnDefDirective>();\n\n /** @hidden */\n private selectedItems: T[] = [];\n\n /** @hidden */\n private readonly _vhd = inject(VhdComponent, { optional: true });\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n ngAfterViewInit(): void {\n Promise.resolve(true).then(() => this._checkScrollAndShowMore());\n\n this._vhd?.columnDef.changes.pipe(startWith(null), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._columnDefMap.clear();\n this._vhd?.columnDef.forEach((item) => {\n this._columnDefMap.set(item.column, item);\n });\n });\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('filters' in changes) {\n this._initializeFilters();\n }\n if ('displayedData' in changes) {\n this._refreshDisplayedData();\n }\n if ('selected' in changes) {\n this.selectedItems = this.selected || [];\n this._refreshSelectedMap();\n this._refreshTristate();\n }\n }\n\n /** @hidden Track function for main data */\n _trackByTableRowFn: (_index: number, item: T) => string | undefined = (_index: number, item: T) => {\n if (item) {\n return item[this.uniqueKey];\n }\n\n return undefined;\n };\n\n /** @hidden Track function for filters */\n _trackByFilterFn(_index: number, item: VhdFilter): number | string | undefined {\n return item && item.key ? item.key : undefined;\n }\n\n /** @hidden Show more elements */\n _showMoreElements(): void {\n if (this.pageSize && this._shownCount !== this.displayedData.length) {\n this._shownCount += this.pageSize;\n this._shownCount = Math.min(this._shownCount, this.displayedData.length);\n } else {\n this._shownCount = this.displayedData.length;\n }\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden Refresh page in desktop view */\n _updatePage(pageNumber = 1): void {\n if (this.pageSize) {\n this._currentPage = pageNumber;\n this._shownFrom = (pageNumber - 1) * this.pageSize;\n this._shownCount = Math.min(this._shownFrom + this.pageSize, this.displayedData.length);\n } else {\n this._shownCount = this.displayedData.length;\n }\n }\n\n /** @hidden Method toggle selected state for all items */\n _toggleAllRows(): void {\n if (this._selectedAll) {\n this.selectedItems = [];\n } else {\n this.selectedItems = this.displayedData;\n }\n this.select.emit(this.selectedItems);\n this._refreshSelectedMap();\n this._refreshTristate();\n }\n\n /** @hidden Method toggle selected state for one items */\n _toggleSelectRow(item: T): void {\n if (this.isMultiSelection) {\n const isSelected = this._selectedMap[item[this.uniqueKey]];\n if (isSelected) {\n this.selectedItems = this.selectedItems.filter((s: T) => s[this.uniqueKey] !== item[this.uniqueKey]);\n } else {\n this.selectedItems.push(item);\n }\n this._selectedMap[item[this.uniqueKey]] = !this._selectedMap[item[this.uniqueKey]];\n } else {\n this._clearSelectedItems();\n this.selectedItems = [item];\n }\n this.select.emit(this.selectedItems);\n this._refreshTristate();\n }\n\n /** @hidden */\n private _checkScrollAndShowMore(): void {\n if (this.mobile) {\n return;\n }\n if (\n this.displayedData.length &&\n this._shownCount !== this.displayedData.length &&\n this.infiniteScrollTable?.shouldTriggerAction()\n ) {\n this._showMoreElements();\n setTimeout(() => {\n this._checkScrollAndShowMore();\n }, 100);\n }\n }\n\n /** @hidden */\n private _resetShown(): void {\n if (this.mobile) {\n this._showMoreElements();\n } else {\n this._checkScrollAndShowMore();\n }\n }\n\n /** @hidden Manually clear selected items */\n private _clearSelectedItems(): void {\n this._selectedMap = {};\n this.selectedItems = [];\n }\n\n /** @hidden Refresh indeterminate attribute on `select all` checkbox */\n private _refreshTristate(): void {\n const selected = Object.values(this._selectedMap).filter(Boolean).length;\n if (selected === 0) {\n this._selectedAll = false;\n } else if (selected === this.displayedData.length) {\n this._selectedAll = true;\n } else {\n this._selectedAll = null;\n }\n }\n\n /** @hidden Set up filters */\n private _initializeFilters(): void {\n if (this.mobile) {\n let _mobileTableHeaders = this.filters.filter((f) => f.main).map((f) => f.key);\n if (!_mobileTableHeaders.length) {\n _mobileTableHeaders = this.filters.slice(0, this.defaultMobileHeaders).map((f) => f.key);\n }\n this._tableFilters = {\n main: this.filters.filter((filter) => _mobileTableHeaders.some((key) => key === filter.key)),\n secondary: this.filters.filter((filter) => !_mobileTableHeaders.some((key) => key === filter.key))\n };\n } else {\n this._tableFilters = {\n main: this.filters,\n secondary: []\n };\n }\n }\n\n /** @hidden Refresh display data */\n private _refreshDisplayedData(): void {\n this._resetShown();\n this._refreshTristate();\n }\n\n /** @hidden Refresh selected map for display data */\n private _refreshSelectedMap(): void {\n this._selectedMap = {};\n for (const item of this.displayedData) {\n this._selectedMap[item[this.uniqueKey]] = false;\n }\n for (const s of this.selectedItems) {\n this._selectedMap[s[this.uniqueKey]] = true;\n }\n }\n}\n","<div class=\"table-header\">\n <h5 fd-title role=\"heading\" aria-level=\"5\">\n {{ ('platformVHD.selectTabDisplayCountLabel' | fdTranslate: { count: displayedData.length })() }}\n </h5>\n</div>\n<div\n class=\"fdp-value-help-dialog__table-holder table-content\"\n fd-scrollbar\n fdInfiniteScroll\n (onScrollAction)=\"_showMoreElements()\"\n [scrollPercent]=\"80\"\n role=\"table\"\n>\n <table\n fd-table\n [popIn]=\"mobile\"\n [noBorderX]=\"mobile\"\n [noBorderY]=\"false\"\n [attr.aria-colcount]=\"_tableFilters.main.length\"\n [attr.aria-rowcount]=\"displayedData.length\"\n role=\"grid\"\n aria-multiselectable=\"true\"\n [attr.aria-labelledby]=\"selectTabTitleId + ' ' + selectTabCountId\"\n [allCellsFocusable]=\"true\"\n >\n <label [id]=\"selectTabCountId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{\n (\n 'platformVHD.selectTabCountHiddenA11yLabel'\n | fdTranslate: { rowCount: displayedData.length, colCount: _tableFilters.main.length }\n )()\n }}\n </label>\n <label [id]=\"selectTabTitleId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{ ('platformVHD.selectTabDisplayCountLabel' | fdTranslate: { count: displayedData.length })() }}\n </label>\n <thead fd-table-header>\n @if (displayedData.length && _tableFilters) {\n <tr fd-table-row>\n <th fd-table-cell [fitContent]=\"mobile\">\n @if (isMultiSelection && allowSelectAll) {\n <fd-checkbox\n [name]=\"uid + '-row-all'\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"_selectedAll\"\n (ngModelChange)=\"_toggleAllRows()\"\n ></fd-checkbox>\n }\n </th>\n @for (\n filter of _tableFilters.main;\n track _trackByFilterFn(colindex, filter);\n let colindex = $index\n ) {\n <th fd-table-cell [attr.aria-colindex]=\"colindex\">\n {{ filter.label }}\n </th>\n }\n </tr>\n }\n </thead>\n <tbody fd-table-body>\n @for (\n row of displayedData | slice: _shownFrom : _shownCount;\n track _trackByTableRowFn(i, row);\n let i = $index\n ) {\n <tr\n fd-table-row\n [hoverable]=\"!mobile\"\n [main]=\"mobile\"\n [attr.aria-selected]=\"_selectedMap[row[uniqueKey]]\"\n [activable]=\"!isMultiSelection\"\n (click)=\"!isMultiSelection && _toggleSelectRow(row)\"\n >\n <td fd-table-cell [fitContent]=\"mobile\">\n @if (isMultiSelection) {\n <fd-checkbox\n [name]=\"uid + '-row-' + i\"\n [ngModel]=\"_selectedMap[row[uniqueKey]]\"\n (change)=\"_toggleSelectRow(row)\"\n ></fd-checkbox>\n }\n </td>\n @for (filter of _tableFilters.main; track filter; let rowIndex = $index) {\n <td fd-table-cell [attr.aria-rowindex]=\"rowIndex\">\n @if (_columnDefMap.get(filter.key); as columnDef) {\n <ng-template\n [ngTemplateOutlet]=\"columnDef.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: row,\n key: filter.key,\n value: row[filter.key] || ''\n }\"\n ></ng-template>\n } @else {\n {{ row[filter.key] || '' }}\n }\n </td>\n }\n </tr>\n @if (mobile && _tableFilters.secondary.length) {\n <tr fd-table-row [secondary]=\"true\" [attr.aria-selected]=\"_selectedMap[row[uniqueKey]]\">\n <td fd-table-cell></td>\n <td colspan=\"100%\" fd-table-cell [fitContent]=\"true\">\n @for (filter of _tableFilters.secondary; track filter) {\n <p fd-table-text>\n <label>{{ filter.label }}:</label>\n {{ row[filter.key] || '' }}\n </p>\n }\n </td>\n </tr>\n }\n }\n @if (displayedData.length && mobile && _shownCount && _shownCount !== displayedData.length) {\n <tr fd-table-row>\n <td colspan=\"100%\">\n <div fd-bar barDesign=\"header-with-subheader\">\n <div fd-bar-middle>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [label]=\"('platformVHD.selectTabMoreBtnLabel' | fdTranslate)()\"\n (click)=\"_showMoreElements()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </td>\n </tr>\n }\n @if (!displayedData.length) {\n @if (loading) {\n @for (_ of loadingRange; track $index) {\n <tr fd-table-row>\n @for (_ of loadingRange; track $index) {\n <td fd-table-cell>\n <fd-skeleton\n [style.margin]=\"'auto 0'\"\n type=\"text\"\n textLines=\"1\"\n width=\"60%\"\n ></fd-skeleton>\n </td>\n }\n </tr>\n }\n } @else {\n <tr fd-table-row>\n <td fd-table-cell colspan=\"100%\">\n <div class=\"fdp-value-help-dialog__empty-message\">\n {{ ('platformVHD.searchTableEmptyMessage' | fdTranslate)() }}\n </div>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n</div>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { ValueHelpFilterDef, ValueHelpFilterDefContext } from '../models/vhd-filter.model';\n\n@Directive({\n selector: '[fdpValueHelpFilterDef]',\n standalone: true\n})\nexport class ValueHelpFilterDefDirective implements ValueHelpFilterDef {\n /** Template reference */\n readonly templateRef = inject<TemplateRef<ValueHelpFilterDefContext>>(TemplateRef);\n\n /** @hidden */\n static ngTemplateContextGuard(dir: ValueHelpFilterDefDirective, ctx: unknown): ctx is ValueHelpFilterDefContext {\n return true;\n }\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, Input } from '@angular/core';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ValueHelpFilterDefDirective } from '../../directives/value-help-filter-def.directive';\nimport { VhdFilter } from '../../models/vhd-filter.model';\n\n@Component({\n selector: 'fdp-value-help-dialog-filter',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class VhdFilterComponent implements VhdFilter {\n /** Uniq key for search and filtering */\n @Input()\n key: string;\n\n /** Allow to control which of filters should show as main in mobile view.\n * Apply for search table only */\n @Input()\n main = false;\n\n /** Label for header in search table and search field */\n @Input()\n label: string;\n\n /** Initial filter's value for search section in `select from list tab` only */\n @Input()\n value = '';\n\n /** Allow to show filter in advanced search template */\n @Input()\n advanced = true;\n\n /** Allow to use filter for including in `define conditions tab` */\n @Input()\n include = true;\n\n /** Allow to use filter for excluding in `define conditions tab` */\n @Input()\n exclude = true;\n\n /** @hidden */\n @ContentChild(ValueHelpFilterDefDirective)\n filterDef: Nullable<ValueHelpFilterDefDirective>;\n}\n","import { Directive, Input, TemplateRef, inject } from '@angular/core';\n\nexport interface ValueHelpColumnDefContext<T> {\n $implicit: T;\n key: string;\n value: any;\n}\n\n@Directive({\n selector: '[fdpValueHelpColumnDef]',\n standalone: true\n})\nexport class ValueHelpColumnDefDirective<T = any> {\n /** Type support. */\n @Input('fdpValueHelpColumnDefAs')\n as: T;\n\n /** Column key to render custom template. */\n @Input('fdpValueHelpColumnDefColumn')\n column: string;\n /** Template reference */\n readonly templateRef = inject<TemplateRef<ValueHelpColumnDefContext<T>>>(TemplateRef);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n computed,\n inject,\n input\n} from '@angular/core';\nimport { Observable, Subject, Subscription, filter, isObservable, of, take, tap } from 'rxjs';\n\nimport { Direction } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet, SlicePipe } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { DisplayFnPipe, RtlService, TemplateDirective } from '@fundamental-ngx/cdk/utils';\nimport {\n BarComponent,\n BarElementDirective,\n BarLeftDirective,\n BarRightDirective,\n ButtonBarComponent\n} from '@fundamental-ngx/core/bar';\nimport { BusyIndicatorComponent } from '@fundamental-ngx/core/busy-indicator';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n DialogBodyComponent,\n DialogComponent,\n DialogConfig,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogRef,\n DialogService\n} from '@fundamental-ngx/core/dialog';\nimport { FormControlComponent, FormLabelComponent } from '@fundamental-ngx/core/form';\nimport { LayoutGridColDirective, LayoutGridComponent, LayoutGridRowDirective } from '@fundamental-ngx/core/layout-grid';\nimport { ListIconDirective, ListLinkDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { HeadingLevel } from '@fundamental-ngx/core/shared';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { TabItemDirective, TabLinkDirective, TabNavComponent, TabTagDirective } from '@fundamental-ngx/core/tabs';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { TokenComponent, TokenizerComponent, TokenizerInputDirective } from '@fundamental-ngx/core/token';\nimport { ToolbarComponent, ToolbarItemDirective, ToolbarSpacerDirective } from '@fundamental-ngx/core/toolbar';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { SearchFieldComponent } from '@fundamental-ngx/platform/search-field';\nimport { isDataSource } from '@fundamental-ngx/platform/shared';\nimport { DefineTabComponent } from '../components/define-tab/define-tab.component';\nimport { SelectTabComponent } from '../components/select-tab/select-tab.component';\nimport { VhdFilterComponent } from '../components/value-help-dialog-filter/value-help-dialog-filter.component';\nimport { defaultConditionDisplayFn } from '../constans/condition-display.function';\nimport { ValueHelpColumnDefDirective } from '../directives/value-help-column-def.directive';\nimport {\n ArrayValueHelpDialogDataSource,\n BaseEntity,\n ObservableValueHelpDialogDataSource,\n ValueHelpDialogDataSource,\n VdhTableSelection,\n VhdDefineExcludeStrategy,\n VhdDefineIncludeStrategy,\n VhdFilter,\n VhdTab,\n VhdValue,\n VhdValueChangeEvent\n} from '../models';\nimport { VhdComponent } from '../models/vhd-component.model';\n\nlet vhdHeaderUniqueId = 0;\n\nexport type FdpValueHelpDialogDataSource<T> =\n | ValueHelpDialogDataSource<T>\n | ArrayValueHelpDialogDataSource<T>\n | ObservableValueHelpDialogDataSource<T>;\n\nlet vhiUniqueId = 0;\n\n@Component({\n selector: 'fdp-value-help-dialog',\n templateUrl: './value-help-dialog.component.html',\n styleUrl: './value-help-dialog.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: VhdComponent,\n useExisting: PlatformValueHelpDialogComponent\n }\n ],\n imports: [\n DialogComponent,\n DialogHeaderComponent,\n TemplateDirective,\n NgTemplateOutlet,\n ScrollbarDirective,\n DialogBodyComponent,\n DialogFooterComponent,\n TitleComponent,\n TokenizerComponent,\n TokenComponent,\n ToolbarItemDirective,\n FormControlComponent,\n TokenizerInputDirective,\n ButtonComponent,\n FormsModule,\n LayoutGridComponent,\n LayoutGridRowDirective,\n LayoutGridColDirective,\n SearchFieldComponent,\n ToolbarComponent,\n ToolbarSpacerDirective,\n BusyIndicatorComponent,\n FormLabelComponent,\n SkeletonComponent,\n SelectTabComponent,\n DefineTabComponent,\n ListLinkDirective,\n ListTitleDirective,\n ListIconDirective,\n TabNavComponent,\n TabItemDirective,\n TabLinkDirective,\n TabTagDirective,\n BarComponent,\n BarLeftDirective,\n BarElementDirective,\n BarRightDirective,\n ButtonBarComponent,\n SlicePipe,\n FdTranslatePipe,\n DisplayFnPipe\n ]\n})\nexport class PlatformValueHelpDialogComponent<T = any> extends VhdComponent implements OnChanges, OnDestroy {\n /** Id of the popover */\n @Input()\n id: string = 'fdp-vhd-' + vhiUniqueId++;\n\n /** Initial state of Value help dialog */\n @Input()\n value: VhdValue<T> = {\n selected: [],\n conditions: []\n };\n\n /** Dialog title */\n @Input()\n dialogTitle: string;\n\n /** Select from list tab activation */\n @Input()\n initialTab = VhdTab.selectFromList;\n\n /** Visible tabs */\n @Input()\n tabs: 'both' | 'select' | 'define' = 'both';\n\n /** Initial expand state for advanced search panel */\n @Input()\n isOpenAdvanced = false;\n\n /** Data source */\n @Input()\n set dataSource(value: FdpValueHelpDialogDataSource<any> | undefined) {\n if (value) {\n this._dataSource = this.toDataStream(value);\n }\n }\n get dataSource(): FdpValueHelpDialogDataSource<any> | undefined {\n return this._dataSource;\n }\n\n /** Dialog's custom config */\n @Input()\n dialogConfig: DialogConfig = {};\n\n /** Unique key from the source field names. Required field. */\n @Input()\n uniqueKey: string;\n\n /** Id attribute for dialog title */\n @Input()\n headerId = `fdp-vhd-header-id-${vhdHeaderUniqueId++}`;\n\n /** Field name for default render from data.\n * Required field if tokenizerFn is not exist. */\n @Input()\n tokenViewField: string;\n\n /** Tokenizer function for custom token render, it has higher prio that `tokenViewField`.\n * Required field if tokenViewField is not exist. */\n @Input()\n tokenizerFn: (item: T) => string;\n\n /** Whether the value help dialog should be view in mobile mode */\n @Input()\n mobile = false;\n\n /** It should be able if you use multiple selection */\n @Input()\n formatToken: (value: VhdValueChangeEvent<T>) => void;\n\n /** Tokenizer function for condition's token render */\n @Input()\n conditionDisplayFn = defaultConditionDisplayFn;\n\n /** Validator function. Called when user submits VHD dialog. */\n @Input()\n tokenValidator: ((value: VhdValueChangeEvent) => Observable<boolean> | boolean) | undefined;\n\n /** Selection mode for search table */\n @Input()\n searchSelection: VdhTableSelection = 'multi';\n\n /** Items per page for pagination below search table */\n @Input()\n searchTablePageSize = 20;\n\n /** Count of default mobile header from search table */\n @Input()\n searchTableMobileHeaders = 2;\n\n /** Max shown initial filters on open. Desktop only */\n @Input()\n maxShownInitialFilters = 4;\n\n /** Loading state */\n @Input()\n loading: boolean | undefined;\n\n /** Whether to allow users to select all table entries with one checkbox. */\n @Input()\n allowSelectAll = true;\n\n /** Custom strategies labels\n * Allowed keys: contains, equalTo, between, startsWith, endsWith, lessThan, lessThanEqual, greaterThan, greaterThanEqual, empty\n */\n @Input()\n defineStrategyLabels: {\n [key in keyof (typeof VhdDefineIncludeStrategy | typeof VhdDefineExcludeStrategy)]?: string;\n } = {\n contains: 'contains',\n equalTo: 'equal to',\n between: 'between',\n startsWith: 'starts with',\n endsWith: 'ends with',\n lessThan: 'less than',\n lessThanEqual: 'less than or equal to',\n greaterThan: 'greater than',\n greaterThanEqual: 'greater than or equal to',\n empty: 'empty',\n not_equalTo: 'not equal to',\n not_empty: 'not empty'\n };\n\n /** Dialog outputs */\n /** Event emitted when filters/tokens were changed. */\n @Output()\n valueChange = new EventEmitter<VhdValueChangeEvent<T>>();\n\n /** Event emitted when data loading is started. */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onDataRequested = new EventEmitter<void>();\n\n /** Event emitted when data loading is finished. */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onDataReceived = new EventEmitter<void>();\n\n /** @hidden Fitlers for search table and defince conditions */\n @ContentChildren(VhdFilterComponent)\n filters: QueryList<VhdFilterComponent>;\n\n /** Column definitions. */\n @ContentChildren(ValueHelpColumnDefDirective)\n columnDef: QueryList<ValueHelpColumnDefDirective>;\n\n /** @hidden Internal container for dialog */\n @ViewChild('container', { read: TemplateRef })\n dialogContainer: TemplateRef<any>;\n\n /**\n * Heading level of the dialog title.\n */\n headingLevel = input<HeadingLevel>(5);\n\n /** @hidden */\n _headingLevel = computed(() =>\n this.headingLevel() ? Number.parseInt(`${this.headingLevel()}`.replace(/\\D/g, ''), 10) : undefined\n );\n\n /** @hidden */\n activeDialog?: DialogRef;\n\n /** @hidden */\n _tabTypes = VhdTab;\n\n /** @hidden */\n _hasAdvanced = true;\n\n /** @hidden */\n _displayedFilters: VhdFilter[] = [];\n\n /** @hidden */\n _displayedData: T[] = [];\n\n /** @hidden */\n _mainSearch = '';\n\n /** @hidden */\n selectedTab: VhdTab | null = null;\n\n /** @hidden */\n shownFilterCount = Infinity;\n\n /** @hidden */\n get loadingState(): boolean {\n return this.loading ?? this._internalLoadingState;\n }\n\n /** @hidden\n * To differentiate between first loading when skeletons be shown and subsequent loadings when busy indicator be shown\n */\n _firstLoadingDone = false;\n\n /** handles rtl service\n * @hidden */\n protected readonly dir = computed<Direction>(() => (this._rtlService?.rtl() ? 'rtl' : 'ltr'));\n\n /** @hidden */\n private _destroyed = inject(DestroyRef);\n\n /** @hidden */\n private _dataSource: FdpValueHelpDialogDataSource<any> | undefined;\n\n /** @hidden for data source handling */\n private _dsSubscription: Subscription | null;\n\n /** @hidden Previous state */\n private _prevState: VhdValue<T> = {\n selected: [],\n conditions: []\n };\n /** @hidden Current data for local manupulation */\n private _currentValue: VhdValue<T> = {\n selected: [],\n conditions: []\n };\n\n /** @hidden */\n private _internalLoadingState = false;\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _dialogService: DialogService\n ) {\n super();\n /** Default display function for define conditions */\n if (!this.conditionDisplayFn || typeof this.conditionDisplayFn !== 'function') {\n this.conditionDisplayFn = defaultConditionDisplayFn;\n }\n }\n\n /** @hidden */\n get isMobileAdvancedSearchActive(): boolean {\n if (this.mobile) {\n return this.isOpenAdvanced;\n }\n return false;\n }\n\n /** @hidden */\n get hasSelectedTab(): boolean {\n return this.selectedTab != null && this.selectedTab in VhdTab;\n }\n\n /** @hidden */\n get showSelectionTab(): boolean {\n return this.tabs !== 'define';\n }\n\n /** @hidden */\n get showDefineTab(): boolean {\n return this.tabs !== 'select';\n }\n\n /** @hidden */\n get isSelectionTab(): boolean {\n return this.selectedTab === VhdTab.selectFromList || this.selectedTab === VhdTab.advancedSearch;\n }\n\n /** @hidden */\n get selectedItems(): T[] {\n return this._currentValue.selected || [];\n }\n\n /** @hidden */\n get conditionItems(): BaseEntity[] {\n return this._currentValue.conditions || [];\n }\n\n /** @hidden */\n get validConditions(): BaseEntity[] {\n return this._getValidCondition(this.conditionItems);\n }\n\n /** @hidden */\n get hasSelectedAndConditions(): boolean {\n return Boolean(this.selectedItems.length + this.validConditions.length);\n }\n\n /** @hidden */\n get isShowAllFilters(): boolean {\n return this.filters.length > this.maxShownInitialFilters && this.shownFilterCount > this.maxShownInitialFilters;\n }\n\n /** @hidden */\n get isOpen(): boolean {\n return !!this.activeDialog;\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (this.isOpen) {\n if ('dataSource' in changes) {\n this._initializeDS();\n }\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._resetState();\n this._onDestroy$.next();\n }\n\n /** Open dialog */\n open(): void {\n if (!this.isValidOptions()) {\n throw new Error('Please check required fields');\n }\n if (this.isOpen) {\n return;\n }\n this._savePreviousState();\n this._updateFilters();\n this._initializeDS();\n this._initializeTab();\n if (!this.dialogConfig.ariaLabelledBy) {\n this.dialogConfig.ariaLabelledBy = this.headerId;\n }\n this.activeDialog = this._dialogService.open(this.dialogContainer, {\n backdropClickCloseable: false,\n hasBackdrop: true,\n verticalPadding: false,\n escKeyCloseable: false,\n dialogPanelClass: `fdp-value-help-dialog ${this.mobile ? 'fdp-value-help-dialog-mobile' : ''}`,\n ...this.dialogConfig,\n\n mobile: this.mobile,\n maxWidth: this.mobile ? undefined : '92%',\n width: this.mobile ? undefined : '1080px',\n height: this.mobile ? undefined : '98%'\n });\n this._listenDialogEvents();\n }\n\n /**\n * Toggle advanced search panel\n */\n toggleAdvancedSearch(state?: boolean): void {\n if (typeof state !== 'undefined') {\n this.isOpenAdvanced = state;\n } else {\n this.isOpenAdvanced = !this.isOpenAdvanced;\n }\n\n if (this.mobile) {\n this.selectedTab = this.isOpenAdvanced ? VhdTab.advancedSearch : VhdTab.selectFromList;\n }\n }\n\n /**\n * Clear all selected items\n */\n clearSelectedAndConditionItems(): void {\n this._currentValue.selected = [];\n this._currentValue.conditions = [];\n this._changeDetectorRef.markForCheck();\n }\n\n /** Search by only the search term. */\n search(): void {\n this.filter(true);\n }\n\n /**\n * Search by all filled filters, including the search term.\n */\n filter(onlySearch = false): void {\n const nonEmptyFilters = new Map();\n\n if (!onlySearch) {\n this._displayedFilters\n .filter(({ value }) =>\n !!value && typeof value === 'string' ? value.trim().length : value !== undefined\n )\n .forEach((e) => nonEmptyFilters.set(e.key, e.value));\n }\n\n if (this._mainSearch.length) {\n nonEmptyFilters.set('*', this._mainSearch);\n }\n this.dataSource?.match(nonEmptyFilters);\n }\n\n /**\n * Apply search from advanced filters view, using when mobile view is active\n */\n searchAdvanced(): void {\n this.filter();\n this.selectedTab = VhdTab.selectFromList;\n this.isOpenAdvanced = false;\n }\n\n /** Remove item from selected array */\n removeSelected(index: number): void {\n this._currentValue.selected = this.selectedItems.filter((_, i) => i !== index);\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Remove condition item\n */\n removeCondition(index: number): void {\n this._currentValue.conditions = this.conditionItems.filter((_, i) => i !== index);\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Switch tab by type\n */\n switchTab(type: VhdTab | null = null): void {\n this.selectedTab = type;\n }\n\n /**\n * Close dialog with value;\n */\n success(): void {\n if (!this.activeDialog) {\n return;\n }\n const value: VhdValueChangeEvent = {\n selected: this.selectedItems,\n conditions: this.validConditions\n };\n\n this._internalLoadingState = true;\n this._changeDetectorRef.detectChanges();\n this._getValidatorFunction(value)\n .pipe(\n tap(() => {\n this._internalLoadingState = false;\n this._changeDetectorRef.detectChanges();\n }),\n filter((r) => r),\n take(1),\n takeUntilDestroyed(this._destroyed)\n )\n .subscribe(() => {\n if (typeof this.formatToken === 'function') {\n this.formatToken(value);\n }\n this.activeDialog?.close(value);\n });\n }\n\n /**\n * Hide advanced search on mobile view and if it's opened\n * Close dialog with null value;\n */\n dismiss(): void {\n if (this.mobile && this.isOpenAdvanced) {\n this.isOpenAdvanced = false;\n this.switchTab(VhdTab.selectFromList);\n } else {\n this._currentValue = this._prevState;\n if (this.activeDialog) {\n this.activeDialog.close();\n }\n }\n }\n\n /** @hidden */\n _trackBySelectedFn: (_index: number, item: T) => number | string = (_index: number, item: T) =>\n item && item[this.uniqueKey];\n\n /** @hidden */\n _trackByFilterFn(_index: number, item: VhdFilter): number | string {\n return item && item.key;\n }\n\n /** @hidden */\n _trackByConditionFn(_index: number, item: BaseEntity): number | string | undefined {\n return item ? item.value + item.valueTo + item.strategy + item.key : undefined;\n }\n\n /** @hidden */\n onSelect($event: T[]): void {\n this._currentValue.selected = $event;\n this._changeDetectorRef.markForCheck();\n if (this.searchSelection === 'once') {\n this.success();\n }\n }\n\n /** @hidden */\n onConditionChange($event: BaseEntity[]): void {\n this._currentValue.conditions = $event;\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden */\n toggleShownFilters(): void {\n this.shownFilterCount =\n this.maxShownInitialFilters === this.shownFilterCount ? Infinity : this.maxShownInitialFilters;\n }\n\n /** @hidden */\n private _initShownFilters(): void {\n this.shownFilterCount = this.maxShownInitialFilters || Infinity;\n }\n\n /** @hidden */\n private _getValidCondition(items: BaseEntity[] = []): BaseEntity[] {\n return items.filter((item) => {\n if (\n item.strategy === VhdDefineIncludeStrategy.empty ||\n item.strategy === VhdDefineExcludeStrategy.not_empty\n ) {\n return true;\n }\n if (item.strategy === VhdDefineIncludeStrategy.between) {\n return Boolean(item.value.length && item.valueTo.length);\n }\n if (!item.valid) {\n return false;\n }\n return Boolean(item.value.length);\n });\n }\n\n /** @hidden */\n private _initializeDS(ds: FdpValueHelpDialogDataSource<any> | undefined = this.dataSource): void {\n this._resetSourceStream();\n\n if (this.showSelectionTab) {\n this._dsSubscription = new Subscription();\n\n this._dsSubscription.add(\n ds?.onDataRequested().subscribe(() => {\n this._internalLoadingState = true;\n this.onDataRequested.emit();\n })\n );\n\n this._dsSubscription.add(\n ds?.onDataReceived().subscribe(() => {\n this._internalLoadingState = false;\n this._firstLoadingDone = true;\n this.onDataReceived.emit();\n })\n );\n\n const dsSub = this.openDataStream()\n .pipe(takeUntilDestroyed(this._destroyed))\n .subscribe((data) => {\n this._displayedData = data.slice();\n this._changeDetectorRef.markForCheck();\n });\n\n this._dsSubscription.add(dsSub);\n }\n }\n\n /** @hidden Save previous state */\n private _savePreviousState(): void {\n const value = structuredClone(this.value);\n this._currentValue = value;\n this._prevState = value;\n }\n\n /** @hidden */\n private _initializeTab(): void {\n if (this.mobile) {\n this.isOpenAdvanced = false;\n }\n if (this.showSelectionTab && this.showDefineTab) {\n this.switchTab(this.mobile ? undefined : this.initialTab);\n } else if (this.showSelectionTab) {\n this.switchTab(VhdTab.selectFromList);\n } else if (this.showDefineTab) {\n this.switchTab(VhdTab.defineConditions);\n }\n this._initShownFilters();\n }\n\n /** @hidden */\n private _listenDialogEvents(): void {\n if (!this.activeDialog) {\n return;\n }\n this.activeDialog.afterClosed.pipe(takeUntilDestroyed(this._destroyed)).subscribe((value) => {\n if (value) {\n this.value = value;\n this.valueChange.emit(value);\n }\n\n this._resetState();\n });\n this.filters.changes.pipe(takeUntilDestroyed(this._destroyed)).subscribe(() => {\n this._updateFilters();\n });\n }\n\n /** @hidden */\n private _resetState(): void {\n this._resetSourceStream();\n this._mainSearch = '';\n this.activeDialog = undefined;\n }\n\n /** @hidden */\n private _updateFilters(): void {\n this._displayedFilters = this.filters.map((e) => ({\n ...e,\n label: e.label || e.key\n }));\n\n this._hasAdvanced = this._displayedFilters.some((e: VhdFilter) => !!e.advanced);\n }\n\n /** @hidden */\n private openDataStream(): Observable<T[]> {\n if (this._dataSource) {\n this._dataSource.match();\n\n return this._dataSource.open();\n }\n throw new Error(`[dataSource] source did not match an array, Observable, or DataSource`);\n }\n\n /** @hidden */\n private toDataStream(ds: FdpValueHelpDialogDataSource<T>): FdpValueHelpDialogDataSource<T> | undefined {\n if (isDataSource(ds)) {\n return ds as ValueHelpDialogDataSource<T>;\n } else if (Array.isArray(ds)) {\n return new ArrayValueHelpDialogDataSource<T>(ds);\n } else if (isObservable(ds)) {\n return new ObservableValueHelpDialogDataSource<T>(ds as Observable<T[]>);\n }\n\n return undefined;\n }\n\n /** @hidden */\n private _resetSourceStream(): void {\n if (isDataSource(this.dataSource)) {\n this.dataSource.close();\n }\n if (this._dsSubscription) {\n this._dsSubscription.unsubscribe();\n this._dsSubscription = null;\n }\n }\n\n /** @hidden */\n private isValidOptions(): boolean {\n if (this.showSelectionTab) {\n return (\n !!this.dataSource &&\n typeof this.uniqueKey === 'string' &&\n (typeof this.tokenViewField === 'string' || typeof this.tokenizerFn === 'function')\n );\n }\n return true;\n }\n\n private _getValidatorFunction(value: VhdValueChangeEvent): Observable<boolean> {\n const validator = typeof this.tokenValidator === 'function' ? this.tokenValidator(value) : of(true);\n\n return isObservable(validator) ? validator : of(validator);\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #container>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header [attr.dir]=\"dir()\">\n <ng-template fdkTemplate=\"header\">\n <ng-template [ngTemplateOutlet]=\"mobile ? mobileDialogTitle : desktopDialogTitle\"></ng-template>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body [attr.dir]=\"dir()\">\n @if (!mobile) {\n <ng-template [ngTemplateOutlet]=\"advancedSearchContent\"></ng-template>\n }\n <div fd-scrollbar class=\"fdp-value-help-dialog__content-holder\">\n @if (mobile) {\n <ng-template [ngTemplateOutlet]=\"advancedSearchContent\"></ng-template>\n }\n @if (selectedTab === _tabTypes.selectFromList) {\n <ng-template [ngTemplateOutlet]=\"selectionContent\"></ng-template>\n }\n @if (selectedTab === _tabTypes.defineConditions) {\n <ng-template [ngTemplateOutlet]=\"defineConditionsContent\"></ng-template>\n }\n </div>\n </fd-dialog-body>\n <fd-dialog-footer [attr.dir]=\"dir()\">\n <ng-template fdkTemplate=\"footer\">\n @if (!isMobileAdvancedSearchActive) {\n <div\n class=\"fdp-value-help-dialog__row fdp-value-help-dialog__selection-row\"\n [attr.aria-label]=\"('platformVHD.selectedAndConditionLabel' | fdTranslate)()\"\n >\n <span\n role=\"heading\"\n [attr.aria-level]=\"_headingLevel()\"\n fd-title\n class=\"selected-and-condition-title\"\n [id]=\"id + '-selected-item'\"\n >\n @if (hasSelectedAndConditions) {\n {{ ('platformVHD.selectedAndConditionLabel' | fdTranslate)() }}\n ({{ selectedItems.length + validConditions.length }})\n } @else {\n {{ ('platformVHD.selectedEmptyLabel' | fdTranslate)() }}\n }\n </span>\n <div class=\"fdp-value-help-dialog__tokens-wrapper\">\n <div class=\"fdp-value-help-dialog__tokens\">\n <!-- Selected items -->\n <fd-tokenizer>\n @for (\n item of selectedItems;\n track _trackBySelectedFn(selectedIndex, item);\n let selectedIndex = $index\n ) {\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"removeSelected(selectedIndex)\"\n >{{\n !!tokenizerFn\n ? (item | displayFnPipe: tokenizerFn)\n : item[tokenViewField]\n }}\n </fd-token>\n }\n @for (\n item of validConditions;\n track _trackByConditionFn(conditionIndex, item);\n let conditionIndex = $index\n ) {\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"removeCondition(conditionIndex)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"conditionValue\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-template>\n </fd-token>\n }\n <input fd-form-control fd-tokenizer-input [disabled]=\"!hasSelectedAndConditions\" />\n </fd-tokenizer>\n </div>\n <button\n (click)=\"clearSelectedAndConditionItems()\"\n class=\"fdp-value-help-dialog__tokens-clear\"\n fd-button\n [disabled]=\"!hasSelectedAndConditions\"\n fdType=\"transparent\"\n [title]=\"('platformVHD.footerClearSelectedTitle' | fdTranslate)()\"\n glyph=\"decline\"\n [ariaLabel]=\"('platformVHD.footerClearSelectedAriaLabel' | fdTranslate)()\"\n ></button>\n </div>\n </div>\n }\n <div class=\"fdp-value-help-dialog__actions-row\">\n @if (mobile && isOpenAdvanced) {\n <button\n fd-button\n data-go-advanced\n [label]=\"('platformVHD.searchButtonLabel' | fdTranslate)()\"\n fdType=\"emphasized\"\n (click)=\"searchAdvanced()\"\n ></button>\n }\n @if (selectedTab !== _tabTypes.advancedSearch) {\n <button\n fd-button\n data-succes\n [disabled]=\"loadingState\"\n [label]=\"('platformVHD.successButtonLabel' | fdTranslate)()\"\n fdType=\"emphasized\"\n (click)=\"success()\"\n ></button>\n }\n <button\n fd-button\n data-dismiss-dialog\n [label]=\"('platformVHD.cancelButtonLabel' | fdTranslate)()\"\n fdType=\"transparent\"\n (click)=\"dismiss()\"\n ></button>\n </div>\n </ng-template>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n<ng-template #advancedSearchContent>\n @if (isSelectionTab) {\n <form class=\"fdp-value-help-dialog__row fdp-value-help-dialog__advanced-search\" [id]=\"'advanced-search-' + id\">\n @if (!mobile || (mobile && !isOpenAdvanced)) {\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"12\" [colLg]=\"mobile ? 12 : 6\" [colXl]=\"mobile ? 12 : 6\">\n <fdp-search-field\n [placeholder]=\"('platformVHD.searchPlaceholder' | fdTranslate)()\"\n (searchSubmit)=\"search()\"\n (inputChange)=\"_mainSearch = $event.text\"\n ></fdp-search-field>\n </div>\n @if (_hasAdvanced) {\n <div\n [fdLayoutGridCol]=\"12\"\n [colMd]=\"12\"\n [colLg]=\"mobile ? 12 : 6\"\n [colXl]=\"mobile ? 12 : 6\"\n class=\"fdp-value-help-dialog__advanced-actions\"\n >\n <fd-toolbar [clearBorder]=\"true\">\n <fd-toolbar-spacer></fd-toolbar-spacer>\n @if (_hasAdvanced) {\n <button\n fd-toolbar-item\n fd-button\n fdType=\"transparent\"\n [label]=\"\n (\n (mobile\n ? 'platformVHD.searchAdvancedSearchLabel'\n : isOpenAdvanced\n ? 'platformVHD.searchHideAdvancedSearchLabel'\n : 'platformVHD.searchShowAdvancedSearchLabel'\n ) | fdTranslate\n )()\n \"\n (click)=\"toggleAdvancedSearch()\"\n ></button>\n }\n <button\n fd-toolbar-item\n type=\"submit\"\n fd-button\n fdType=\"emphasized\"\n [label]=\"('platformVHD.searchButtonLabel' | fdTranslate)()\"\n (click)=\"filter()\"\n ></button>\n </fd-toolbar>\n </div>\n }\n </div>\n </fd-layout-grid>\n }\n @if (isOpenAdvanced && _hasAdvanced) {\n <div [id]=\"'advanced-search-content-' + id\" class=\"fdp-value-help-dialog__advanced-filters\">\n <fd-busy-indicator [loading]=\"loadingState && _firstLoadingDone\" [block]=\"true\">\n @if (_firstLoadingDone) {\n <fd-layout-grid\n [class.fdp-value-help-dialog__with-toggle-all]=\"filters.length > maxShownInitialFilters\"\n >\n <div fdLayoutGridRow>\n @for (\n filter of _displayedFilters | slice: 0 : shownFilterCount + 1;\n track _trackByFilterFn($index, filter)\n ) {\n @if (filter.advanced) {\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"12\" [colLg]=\"6\" [colXl]=\"3\">\n <label\n class=\"fd-form-group__header\"\n fd-form-label\n [for]=\"'input' + filter.key\"\n >{{ filter.label }}:</label\n >\n @if (filter.filterDef) {\n <ng-template\n [ngTemplateOutlet]=\"filter.filterDef.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: filter }\"\n ></ng-template>\n } @else {\n <input\n [(ngModel)]=\"filter.value\"\n fd-form-control\n type=\"text\"\n [name]=\"'search-by-' + filter.label\"\n [id]=\"'input' + filter.key\"\n />\n }\n </div>\n }\n }\n @if (filters.length > maxShownInitialFilters) {\n <div\n colGrow\n [fdLayoutGridCol]=\"12\"\n [colMd]=\"12\"\n [colLg]=\"6\"\n [colXl]=\"3\"\n class=\"fdp-value-help-dialog__toggle-filters\"\n >\n <button\n fd-button\n fdType=\"transparent\"\n (click)=\"toggleShownFilters()\"\n [label]=\"\n (\n (isShowAllFilters\n ? 'platformVHD.searchHideAllAdvancedSearchLabel'\n : 'platformVHD.searchShowAllAdvancedSearchLabel'\n ) | fdTranslate\n )()\n \"\n ></button>\n </div>\n }\n </div>\n </fd-layout-grid>\n } @else {\n <fd-skeleton width=\"100%\" height=\"100px\">\n <svg:rect x=\"0\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n <svg:rect x=\"35%\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"35%\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n <svg:rect x=\"0\" y=\"60\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"80\" rx=\"4\" width=\"25%\" height=\"16\" />\n </fd-skeleton>\n }\n </fd-busy-indicator>\n </div>\n }\n </form>\n }\n</ng-template>\n<ng-template #selectionContent>\n <fd-busy-indicator\n [loading]=\"loadingState && _firstLoadingDone\"\n [block]=\"true\"\n class=\"fdp-value-help-dialog__table-busy-indicator\"\n >\n <fdp-select-tab\n [selected]=\"selectedItems\"\n [loading]=\"loadingState && !_firstLoadingDone\"\n [uid]=\"id\"\n [displayedData]=\"_displayedData\"\n [tabTitle]=\"('platformVHD.selectTabTitle' | fdTranslate)()\"\n [mobile]=\"mobile\"\n [selection]=\"searchSelection\"\n [uniqueKey]=\"uniqueKey\"\n [pageSize]=\"searchTablePageSize\"\n [defaultMobileHeaders]=\"searchTableMobileHeaders\"\n [filters]=\"_displayedFilters\"\n [allowSelectAll]=\"allowSelectAll\"\n (select)=\"onSelect($event)\"\n ></fdp-select-tab>\n </fd-busy-indicator>\n</ng-template>\n<ng-template #defineConditionsContent>\n <div fd-scrollbar>\n <fdp-define-tab\n [strategyLabels]=\"defineStrategyLabels\"\n [conditions]=\"conditionItems\"\n [uid]=\"id\"\n [tabTitle]=\"('platformVHD.defineTabTitle' | fdTranslate)()\"\n [mobile]=\"mobile\"\n (conditionChange)=\"onConditionChange($event)\"\n ></fdp-define-tab>\n </div>\n</ng-template>\n<ng-template #dialogTitleText>\n <span role=\"heading\" [attr.aria-level]=\"_headingLevel()\" [attr.id]=\"headerId\" fd-title>{{ dialogTitle }}</span>\n</ng-template>\n<ng-template #tabLink let-title=\"title\" let-type=\"type\">\n @if (selectedTab === type && showSelectionTab && showDefineTab) {\n <button\n fd-button\n glyph=\"navigation-left-arrow\"\n fdType=\"transparent\"\n (click)=\"switchTab()\"\n [title]=\"('platformVHD.selectMobileTabBackBtnTitle' | fdTranslate)()\"\n ></button>\n <span role=\"heading\" [attr.aria-level]=\"_headingLevel()\" fd-title>{{ title }}</span>\n }\n @if (selectedTab !== type) {\n <a\n fd-list-link\n (click)=\"switchTab(type)\"\n [title]=\"('platformVHD.selectMobileTabBtnOpenDialogLabel' | fdTranslate)()\"\n >\n <span fd-list-title>{{ title }}</span>\n <i fd-list-icon glyph=\"navigation-right-arrow\"></i>\n </a>\n }\n</ng-template>\n<ng-template #advancedHeader>\n <button fd-button glyph=\"navigation-left-arrow\" fdType=\"transparent\" (click)=\"toggleAdvancedSearch()\"></button>\n <span role=\"heading\" [attr.aria-level]=\"_headingLevel()\" fd-title>{{\n ('platformVHD.searchAdvancedSearchLabel' | fdTranslate)()\n }}</span>\n</ng-template>\n<ng-template #desktopDialogTitle>\n <ng-template [ngTemplateOutlet]=\"dialogTitleText\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"desktopTabs\"></ng-template>\n</ng-template>\n<ng-template #mobileDialogTitle>\n <div class=\"fdp-value-help-dialog__mobile-title\">\n @if (hasSelectedTab) {\n <ng-template [ngTemplateOutlet]=\"selectedTabHeader\"></ng-template>\n } @else {\n <span role=\"heading\" [attr.aria-level]=\"_headingLevel()\" [attr.id]=\"headerId\" fd-title>{{\n dialogTitle\n }}</span>\n }\n </div>\n <ng-template [ngTemplateOutlet]=\"mobileTabs\"></ng-template>\n</ng-template>\n<ng-template #desktopTabs>\n @if (showSelectionTab && showDefineTab) {\n <nav fd-tab-nav class=\"fdp-value-help-dialog__tabs\">\n @if (showSelectionTab) {\n <div fd-tab-item (click)=\"switchTab(_tabTypes.selectFromList)\">\n <a\n fd-tab-link\n [active]=\"selectedTab === _tabTypes.selectFromList\"\n [tabindex]=\"selectedTab === _tabTypes.selectFromList ? '0' : '-1'\"\n ><span fd-tab-tag>{{ ('platformVHD.selectTabTitle' | fdTranslate)() }}</span></a\n >\n </div>\n }\n @if (showDefineTab) {\n <div fd-tab-item (click)=\"switchTab(_tabTypes.defineConditions)\">\n <a\n fd-tab-link\n [active]=\"selectedTab === _tabTypes.defineConditions\"\n [tabindex]=\"selectedTab === _tabTypes.defineConditions ? '0' : '-1'\"\n ><span fd-tab-tag>{{ ('platformVHD.defineTabTitle' | fdTranslate)() }}</span></a\n >\n </div>\n }\n </nav>\n }\n</ng-template>\n<ng-template #mobileTabs>\n @if (!hasSelectedTab && showSelectionTab && showDefineTab) {\n <div>\n @if (showSelectionTab) {\n <div fd-bar [inPage]=\"true\">\n <div fd-bar-left>\n <fd-bar-element>\n {{ ('platformVHD.selectTabTitle' | fdTranslate)() }}\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fd-button-bar\n glyph=\"navigation-right-arrow\"\n (click)=\"switchTab(_tabTypes.selectFromList)\"\n [title]=\"\n (\n 'platformVHD.selectMobileTabTitle'\n | fdTranslate: { title: ('platformVHD.selectTabTitle' | fdTranslate)() }\n )()\n \"\n ></fd-button-bar>\n </fd-bar-element>\n </div>\n </div>\n }\n @if (showDefineTab) {\n <div fd-bar [inPage]=\"true\">\n <div fd-bar-left>\n <fd-bar-element>\n {{ ('platformVHD.defineTabTitle' | fdTranslate)() }}\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fd-button-bar\n glyph=\"navigation-right-arrow\"\n [title]=\"\n (\n 'platformVHD.selectMobileTabTitle'\n | fdTranslate: { title: ('platformVHD.defineTabTitle' | fdTranslate)() }\n )()\n \"\n (click)=\"switchTab(_tabTypes.defineConditions)\"\n >\n </fd-button-bar>\n </fd-bar-element>\n </div>\n </div>\n }\n </div>\n }\n</ng-template>\n<ng-template #selectedTabHeader>\n @switch (selectedTab) {\n @case (_tabTypes.selectFromList) {\n <ng-template\n [ngTemplateOutlet]=\"tabLink\"\n [ngTemplateOutletContext]=\"{\n title: ('platformVHD.selectTabTitle' | fdTranslate)(),\n type: selectedTab\n }\"\n ></ng-template>\n }\n @case (_tabTypes.advancedSearch) {\n <ng-template [ngTemplateOutlet]=\"advancedHeader\"></ng-template>\n }\n @case (_tabTypes.defineConditions) {\n <ng-template\n [ngTemplateOutlet]=\"tabLink\"\n [ngTemplateOutletContext]=\"{\n title: ('platformVHD.defineTabTitle' | fdTranslate)(),\n type: selectedTab\n }\"\n ></ng-template>\n }\n }\n</ng-template>\n<ng-template #conditionValue let-item=\"item\">\n @if (item.strategy !== 'empty' && item.strategy !== 'not_empty') {\n <span>\n {{ item | displayFnPipe: conditionDisplayFn : _displayedFilters }}\n </span>\n } @else {\n @if (item.strategy === 'not_empty') {\n !(<ng-template [ngTemplateOutlet]=\"emptyConditionText\"></ng-template>)\n } @else {\n <{{ ('platformVHD.selectMobileConditionEmpty' | fdTranslate)() }}>\n }\n }\n</ng-template>\n<ng-template #emptyConditionText>\n <{{ ('platformVHD.selectMobileConditionEmpty' | fdTranslate)() }}>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\nimport { VhdFilterComponent } from './components/value-help-dialog-filter/value-help-dialog-filter.component';\nimport { PlatformValueHelpDialogComponent } from './value-help-dialog/value-help-dialog.component';\n\nconst components = [PlatformValueHelpDialogComponent, VhdFilterComponent, ContentDensityModule];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class PlatformValueHelpDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["titleUniqueId","take","i1","i2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fundamental-ngx-platform-value-help-dialog.mjs","sources":["../../../../libs/platform/value-help-dialog/models/vhd-data.source.ts","../../../../libs/platform/value-help-dialog/models/vhd-strategy.enum.ts","../../../../libs/platform/value-help-dialog/models/vhd-type-condition.enum.ts","../../../../libs/platform/value-help-dialog/models/vhd-filter-rule.model.ts","../../../../libs/platform/value-help-dialog/models/vhd-tab-type.enum.ts","../../../../libs/platform/value-help-dialog/components/base-tab/vhd-base-tab.component.ts","../../../../libs/platform/value-help-dialog/constans/condition-display.function.ts","../../../../libs/platform/value-help-dialog/constans/variables.ts","../../../../libs/platform/value-help-dialog/directives/condition-count-message.directive.ts","../../../../libs/platform/value-help-dialog/components/define-tab/define-tab.component.ts","../../../../libs/platform/value-help-dialog/components/define-tab/define-tab.component.html","../../../../libs/platform/value-help-dialog/models/vhd-component.model.ts","../../../../libs/platform/value-help-dialog/components/select-tab/select-tab.component.ts","../../../../libs/platform/value-help-dialog/components/select-tab/select-tab.component.html","../../../../libs/platform/value-help-dialog/directives/value-help-filter-def.directive.ts","../../../../libs/platform/value-help-dialog/components/value-help-dialog-filter/value-help-dialog-filter.component.ts","../../../../libs/platform/value-help-dialog/directives/value-help-column-def.directive.ts","../../../../libs/platform/value-help-dialog/value-help-dialog/value-help-dialog.component.ts","../../../../libs/platform/value-help-dialog/value-help-dialog/value-help-dialog.component.html","../../../../libs/platform/value-help-dialog/value-help-dialog.module.ts","../../../../libs/platform/value-help-dialog/fundamental-ngx-platform-value-help-dialog.ts"],"sourcesContent":["import { BehaviorSubject, Observable, of, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\n\nimport { BaseDataProvider, DataProvider, DataSource } from '@fundamental-ngx/platform/shared';\n\nexport class ValueHelpDialogDataSource<T> implements DataSource<T> {\n /** @hidden */\n protected _dataChanges: BehaviorSubject<T[]> = new BehaviorSubject<T[]>([]);\n /** @hidden */\n protected _onDataRequested$ = new Subject<void>();\n /** @hidden */\n protected _onDataReceived$ = new Subject<void>();\n\n /** @hidden */\n protected _dataLoading = false;\n\n /** @hidden */\n get isDataLoading(): boolean {\n return this._dataLoading;\n }\n\n /** @hidden */\n constructor(public dataProvider: DataProvider<T>) {}\n\n /** @hidden */\n match(predicate?: string | Map<string, string>): void {\n this._onDataRequested$.next();\n this._dataLoading = true;\n\n let searchParam = new Map<string, any>();\n if (typeof predicate === 'string') {\n searchParam.set('query', predicate);\n } else if (predicate instanceof Map) {\n searchParam = predicate;\n }\n\n this.dataProvider\n .fetch(searchParam)\n .pipe(take(1))\n .subscribe(\n (result: T[]) => {\n this._onDataReceived$.next();\n this._dataLoading = false;\n this._dataChanges.next(result);\n },\n () => {\n this._onDataReceived$.next();\n this._dataLoading = false;\n }\n );\n }\n\n /** @hidden */\n open(): Observable<T[]> {\n return this._dataChanges.asObservable();\n }\n\n /** @hidden */\n onDataRequested(): Observable<void> {\n return this._onDataRequested$.asObservable();\n }\n\n /** @hidden */\n onDataReceived(): Observable<void> {\n return this._onDataReceived$.asObservable();\n }\n\n /** @hidden */\n close(): void {}\n}\n\nexport class ArrayValueHelpDialogDataSource<T> extends ValueHelpDialogDataSource<T> {\n /** @hidden */\n constructor(data: T[]) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class ObservableValueHelpDialogDataSource<T> extends ValueHelpDialogDataSource<T> {\n /** @hidden */\n constructor(data: Observable<T[]>) {\n super(new BaseDataProvider(data));\n }\n}\n\nexport class VhdDataProvider<R extends object> extends DataProvider<R> {\n /** @hidden */\n constructor(public values: R[]) {\n super();\n }\n\n /** @hidden */\n fetch(params: Map<string, string>): Observable<R[]> {\n let data = this.values;\n const arrayParams = Array.from(params);\n const filterFn = (row: R): boolean => {\n const rowEntries = Object.entries(row) as string[][];\n return arrayParams.every(([key, value]) => {\n if (key === '*') {\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n return rowEntries.some(([_rowEntryKey, rowEntryValue]) =>\n String(rowEntryValue).toLowerCase().includes(value.toLowerCase())\n );\n } else {\n return String(row[key]).toLowerCase().includes(value.toLowerCase());\n }\n });\n };\n if (params.size) {\n data = this.values.filter(filterFn);\n }\n\n return of(data);\n }\n}\n","export enum VhdDefineIncludeStrategy {\n contains = 'contains',\n equalTo = 'equalTo',\n between = 'between',\n startsWith = 'startsWith',\n endsWith = 'endsWith',\n lessThan = 'lessThan',\n lessThanEqual = 'lessThanEqual',\n greaterThan = 'greaterThan',\n greaterThanEqual = 'greaterThanEqual',\n empty = 'empty'\n}\n\nexport enum VhdDefineExcludeStrategy {\n not_equalTo = 'not_equalTo',\n not_empty = 'not_empty'\n}\n","export enum VhdDefineType {\n include = 'include',\n exclude = 'exclude'\n}\n","import { VhdDefineExcludeStrategy, VhdDefineIncludeStrategy } from './vhd-strategy.enum';\nimport { VhdDefineType } from './vhd-type-condition.enum';\n\nexport interface VhdDefineEntityRule {\n type: VhdDefineType;\n key: string;\n strategy: VhdDefineIncludeStrategy | VhdDefineExcludeStrategy;\n value: string;\n valueTo: string;\n}\n\nexport class BaseEntity implements VhdDefineEntityRule {\n /** @hidden */\n type: VhdDefineType;\n /** @hidden */\n key = '*';\n /** @hidden */\n label?: string;\n /** @hidden */\n strategy: VhdDefineIncludeStrategy | VhdDefineExcludeStrategy;\n /** @hidden */\n value = '';\n /** @hidden */\n valueTo = '';\n /** @hidden */\n valid: boolean;\n\n /** @hidden */\n constructor(strategy?: VhdDefineIncludeStrategy | VhdDefineExcludeStrategy, key?: string) {\n if (key) {\n this.key = key;\n }\n this.strategy = strategy || VhdDefineIncludeStrategy.equalTo;\n }\n}\nexport class VhdIncludedEntity extends BaseEntity {\n /** @hidden */\n type: VhdDefineType = VhdDefineType.include;\n}\nexport class VhdExcludedEntity extends BaseEntity {\n /** @hidden */\n type: VhdDefineType = VhdDefineType.exclude;\n}\n","export enum VhdTab {\n selectFromList,\n defineConditions,\n advancedSearch\n}\n","import { ChangeDetectorRef, Component, Input } from '@angular/core';\n\nimport { VhdTab } from '../../models';\n\n@Component({\n template: '',\n standalone: true\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class VhdBaseTab {\n /** Tab Title */\n @Input()\n uid: string;\n\n /** Tab Title */\n @Input()\n tabTitle: string;\n\n /** Mobile view */\n @Input()\n mobile = false;\n\n /** @hidden */\n get type(): VhdTab {\n return VhdTab.defineConditions;\n }\n\n /** @hidden */\n constructor(readonly _changeDetectorRef: ChangeDetectorRef) {}\n}\n","import {\n VhdDefineExcludeStrategy,\n VhdDefineIncludeStrategy,\n VhdExcludedEntity,\n VhdFilter,\n VhdIncludedEntity\n} from '../models';\n\nexport const defaultConditionDisplayFn = (\n item: VhdIncludedEntity | VhdExcludedEntity,\n filters?: VhdFilter[]\n): string | null => {\n const filter = (filters || []).find((f) => f.key === item.key);\n let value = (() => {\n switch (item.strategy) {\n case VhdDefineIncludeStrategy.empty:\n case VhdDefineExcludeStrategy.not_empty:\n return null;\n case VhdDefineIncludeStrategy.between:\n return `${item.value}...${item.valueTo}`;\n case VhdDefineIncludeStrategy.contains:\n return `*${item.value}*`;\n case VhdDefineIncludeStrategy.equalTo:\n return `=${item.value}`;\n case VhdDefineIncludeStrategy.startsWith:\n return `${item.value}*`;\n case VhdDefineIncludeStrategy.endsWith:\n return `*${item.value}`;\n case VhdDefineIncludeStrategy.greaterThan:\n return `>${item.value}`;\n case VhdDefineIncludeStrategy.greaterThanEqual:\n return `>=${item.value}`;\n case VhdDefineIncludeStrategy.lessThan:\n return `<${item.value}`;\n case VhdDefineIncludeStrategy.lessThanEqual:\n return `<=${item.value}`;\n case VhdDefineExcludeStrategy.not_equalTo:\n return `!(=${item.value})`;\n }\n })();\n if (value && item.type === 'exclude') {\n value = `!(${value})`;\n }\n if (filter) {\n return `${filter.label}: ${value}`;\n }\n\n return value;\n};\n","export const MAX_CHARACTER_HINT_COUNT = 7;\n","import { coerceNumberProperty } from '@angular/cdk/coercion';\nimport { Directive, Input } from '@angular/core';\nimport { AbstractControl, FormControl, NG_VALIDATORS, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[fdp-condition-count-message]',\n providers: [{ provide: NG_VALIDATORS, useExisting: ConditionCountMessageDirective, multi: true }],\n standalone: true\n})\nexport class ConditionCountMessageDirective {\n /** Max characters allowed */\n @Input()\n set maxCharacters(value: number) {\n this._maxCharacters = <number>coerceNumberProperty(value);\n }\n get maxCharacters(): number {\n return this._maxCharacters;\n }\n\n /** @hidden */\n private _maxCharacters = Number.MAX_SAFE_INTEGER;\n\n /** @hidden */\n private readonly validator: ValidatorFn;\n\n /** @hidden */\n constructor() {\n this.validator = this.checkError();\n }\n\n /** @hidden */\n validate(control: FormControl): ValidationErrors | null {\n return this.validator(control);\n }\n\n /** @hidden */\n private checkError(): ValidatorFn {\n return (control: AbstractControl) => {\n if (control.dirty && control.value && control.value.length > this.maxCharacters) {\n return {\n maxCharacters: {\n actualLength: control.value.length,\n requiredLength: this.maxCharacters\n }\n };\n }\n return null;\n };\n }\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewEncapsulation\n} from '@angular/core';\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n FormControlComponent,\n FormInputMessageGroupComponent,\n FormLabelComponent,\n FormMessageComponent\n} from '@fundamental-ngx/core/form';\nimport { LayoutGridColDirective, LayoutGridComponent, LayoutGridRowDirective } from '@fundamental-ngx/core/layout-grid';\nimport { ListGroupHeaderDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { OptionComponent, SelectComponent } from '@fundamental-ngx/core/select';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { MAX_CHARACTER_HINT_COUNT } from '../../constans';\nimport { ConditionCountMessageDirective } from '../../directives/condition-count-message.directive';\nimport {\n BaseEntity,\n VhdDefineExcludeStrategy,\n VhdDefineIncludeStrategy,\n VhdDefineType,\n VhdExcludedEntity,\n VhdIncludedEntity\n} from '../../models';\nimport { VhdBaseTab } from '../base-tab/vhd-base-tab.component';\n\nclass ExtendedBaseEntity extends BaseEntity {\n id?: number;\n}\n\nclass ExtendedIncludedEntity extends VhdIncludedEntity {\n id?: number;\n}\n\nclass ExtendedExcludedEntity extends VhdExcludedEntity {\n id?: number;\n}\n\nlet titleUniqueId = 0;\n\n@Component({\n selector: 'fdp-define-tab',\n templateUrl: './define-tab.component.html',\n styleUrl: './define-tab.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TitleComponent,\n LayoutGridComponent,\n LayoutGridRowDirective,\n LayoutGridColDirective,\n FormLabelComponent,\n SelectComponent,\n FormsModule,\n ListGroupHeaderDirective,\n ListTitleDirective,\n OptionComponent,\n NgTemplateOutlet,\n FormInputMessageGroupComponent,\n FormControlComponent,\n ConditionCountMessageDirective,\n ButtonComponent,\n FormMessageComponent,\n FdTranslatePipe\n ]\n})\nexport class DefineTabComponent extends VhdBaseTab implements OnChanges, AfterViewInit {\n /** @hidden */\n protected defaultId = `fd-title-id-${titleUniqueId++}`;\n /** @hidden */\n protected defaultSelectId = `fd-select-title-id-${titleUniqueId++}`;\n\n /** title id for the table */\n @Input()\n titleId: string = this.defaultId;\n\n /** seelcted value id for the table */\n @Input()\n selectedId: string = this.defaultSelectId;\n\n /** @hidden */\n @Input()\n conditions: ExtendedBaseEntity[] = [];\n\n /** @hidden */\n @Input()\n strategyLabels: { [key in keyof (typeof VhdDefineIncludeStrategy | typeof VhdDefineExcludeStrategy)]?: string } =\n {};\n\n /** @hidden */\n @Output()\n includeChange: EventEmitter<ExtendedIncludedEntity[]> = new EventEmitter<ExtendedIncludedEntity[]>();\n\n /** @hidden */\n @Output()\n excludeChange: EventEmitter<ExtendedExcludedEntity[]> = new EventEmitter<ExtendedExcludedEntity[]>();\n\n /** @hidden */\n @Output()\n conditionChange: EventEmitter<BaseEntity[]> = new EventEmitter<BaseEntity[]>();\n\n /** @hidden */\n _conditions: ExtendedBaseEntity[] = [];\n\n /** @hidden */\n _definePanelState = {\n included: false,\n excluded: false\n };\n\n /** @hidden */\n _rules = {\n maxCharactersHintCount: MAX_CHARACTER_HINT_COUNT\n };\n /** @hidden */\n _strategyIncludeValues = VhdDefineIncludeStrategy;\n\n /** @hidden */\n _strategyExcludeValues = VhdDefineExcludeStrategy;\n\n /** @hidden */\n _defineTypes = VhdDefineType;\n\n /** @hidden */\n _includeStrategy: StategyItem[] = [];\n\n /** @hidden */\n _excludeStrategy: StategyItem[] = [];\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('conditions' in changes) {\n this._conditions = (this.conditions as ExtendedIncludedEntity[]) || [];\n this._initializeConditions();\n }\n }\n\n /** @hidden */\n ngAfterViewInit(): void {\n this._refreshStrategies();\n }\n\n /** @hidden Track function for main data */\n _trackByKeyAndType(\n _index: number,\n item: ExtendedIncludedEntity | ExtendedExcludedEntity\n ): number | string | undefined {\n if (item) {\n return item.id + item.key + item.type;\n }\n\n return undefined;\n }\n\n /** @hidden */\n _onSelectStrategy(): void {\n this._filterChanged();\n }\n\n /** @hidden */\n _filterChanged(): void {\n this.conditionChange.emit(this._conditions);\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden */\n addEmptyCondition(): void {\n const item = new ExtendedBaseEntity();\n item.value = '';\n this._conditions.push(item);\n this._filterChanged();\n }\n\n /** @hidden */\n removeCondition(index: number): void {\n this._conditions.splice(index, 1);\n this._initializeConditions();\n this._filterChanged();\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden */\n _validateConditionValue(item: ExtendedIncludedEntity | ExtendedExcludedEntity, valid: boolean | boolean[]): void {\n item.valid = Array.isArray(valid) ? valid.every(Boolean) : !!valid;\n this._filterChanged();\n }\n\n /** @hidden */\n private _refreshStrategies(): void {\n this._includeStrategy = Object.keys(VhdDefineIncludeStrategy).map((key) => ({\n key,\n type: VhdDefineType.include\n }));\n this._excludeStrategy = Object.keys(VhdDefineExcludeStrategy).map((key) => ({\n key,\n type: VhdDefineType.exclude\n }));\n }\n\n /** @hidden */\n private _initializeConditions(): void {\n if (this._conditions.length === 0) {\n this.addEmptyCondition();\n }\n }\n}\n\ninterface StategyItem {\n key: string;\n type: VhdDefineType;\n}\n","<h5 [id]=\"titleId\" role=\"heading\" aria-level=\"5\" fd-title class=\"define-condition-title\">\n {{ ('platformVHD.defineConditionTitle' | fdTranslate)() }}\n</h5>\n@for (item of _conditions; track _trackByKeyAndType(i, item); let i = $index) {\n <fd-layout-grid class=\"condition-row\">\n <div fdLayoutGridRow>\n <div [fdLayoutGridCol]=\"4\">\n <label id=\"CONDITIONPANEL_OPERATOR_LABEL\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n CONDITIONPANEL_OPERATOR_LABEL\n </label>\n <label [id]=\"selectedId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{\n (\n 'platformVHD.defineConditionSelectedValueHiddenA11yLabel'\n | fdTranslate: { value: item.strategy }\n )()\n }}</label\n >\n <fd-select\n class=\"vhd-condition-filters\"\n fdLayoutGridCol\n colGrow\n [class.fd-select-custom-class]=\"false\"\n #sttr\n [controlTemplate]=\"customSelectTemplate\"\n [name]=\"uid + '-' + type + '-strategy-' + item.id\"\n [(ngModel)]=\"item.strategy\"\n (valueChange)=\"_filterChanged()\"\n role=\"combobox\"\n aria-roledescription=\"select\"\n aria-haspopup=\"listbox\"\n [inline]=\"false\"\n [ariaLabelledBy]=\"titleId + ' ' + 'CONDITIONPANEL_OPERATOR_LABEL' + ' ' + selectedId\"\n >\n @if (_includeStrategy.length) {\n <li fd-list-group-header>\n <span fd-list-title>{{\n ('platformVHD.defineConditionConditionsGroupHeaderInclude' | fdTranslate)()\n }}</span>\n </li>\n @for (strategy of _includeStrategy; track strategy) {\n <li fd-option [value]=\"strategy.key\">\n <ng-template\n [ngTemplateOutlet]=\"conditionStrategyOption\"\n [ngTemplateOutletContext]=\"{ type: _defineTypes.include, strategy: strategy }\"\n ></ng-template>\n </li>\n }\n }\n @if (_excludeStrategy.length) {\n <li fd-list-group-header>\n <span fd-list-title>{{\n ('platformVHD.defineConditionConditionsGroupHeaderExclude' | fdTranslate)()\n }}</span>\n </li>\n @for (strategy of _excludeStrategy; track strategy) {\n <li fd-option [value]=\"strategy.key\">\n <ng-template\n [ngTemplateOutlet]=\"conditionStrategyOption\"\n [ngTemplateOutletContext]=\"{ type: _defineTypes.exclude, strategy: strategy }\"\n ></ng-template>\n </li>\n }\n }\n </fd-select>\n </div>\n @if (item.strategy !== _strategyIncludeValues.empty && item.strategy !== _strategyExcludeValues.not_empty) {\n <div fdLayoutGridCol colGrow>\n <div fdLayoutGridRow>\n @if (item.strategy === _strategyIncludeValues.between) {\n <div fdLayoutGridCol colGrow>\n <fd-form-input-message-group [triggers]=\"['focusin', 'focusout']\">\n <input\n fd-form-control\n fdp-condition-count-message\n [maxCharacters]=\"_rules.maxCharactersHintCount\"\n type=\"text\"\n [placeholder]=\"('platformVHD.defineConditionFromPlaceholder' | fdTranslate)()\"\n placeholder=\"from\"\n required\n [state]=\"fromModel.invalid ? 'error' : null\"\n [name]=\"uid + '-' + type + '-from-' + item.id\"\n (blur)=\"_validateConditionValue(item, [!!fromModel.valid, !!toModel.valid])\"\n #fromModel=\"ngModel\"\n [(ngModel)]=\"item.value\"\n />\n <ng-template\n [ngTemplateOutlet]=\"countError\"\n [ngTemplateOutletContext]=\"{ $implicit: item.value && item.value.length }\"\n ></ng-template>\n </fd-form-input-message-group>\n </div>\n <div fdLayoutGridCol colGrow>\n <fd-form-input-message-group [triggers]=\"['focusin', 'focusout']\">\n <input\n fd-form-control\n fdp-condition-count-message\n [maxCharacters]=\"_rules.maxCharactersHintCount\"\n type=\"text\"\n [placeholder]=\"('platformVHD.defineConditionToPlaceholder' | fdTranslate)()\"\n required\n [state]=\"toModel.invalid ? 'error' : null\"\n [name]=\"uid + '-' + type + '-to-' + item.id\"\n (blur)=\"_validateConditionValue(item, [!!fromModel.valid, !!toModel.valid])\"\n #toModel=\"ngModel\"\n [(ngModel)]=\"item.valueTo\"\n />\n <ng-template\n [ngTemplateOutlet]=\"countError\"\n [ngTemplateOutletContext]=\"{ $implicit: item.value && item.value.length }\"\n ></ng-template>\n </fd-form-input-message-group>\n </div>\n } @else {\n <div fdLayoutGridCol colGrow>\n <fd-form-input-message-group>\n <input\n fd-form-control\n fdp-condition-count-message\n [maxCharacters]=\"_rules.maxCharactersHintCount\"\n type=\"text\"\n [placeholder]=\"('platformVHD.defineConditionValuePlaceholder' | fdTranslate)()\"\n [state]=\"valueModel.invalid ? 'error' : null\"\n [name]=\"uid + '-' + type + '-value-' + item.id\"\n (blur)=\"_validateConditionValue(item, !!valueModel.valid)\"\n #valueModel=\"ngModel\"\n [(ngModel)]=\"item.value\"\n />\n @if (valueModel.invalid) {\n <ng-template\n [ngTemplateOutlet]=\"countError\"\n [ngTemplateOutletContext]=\"{ $implicit: item.value && item.value.length }\"\n ></ng-template>\n }\n </fd-form-input-message-group>\n </div>\n }\n </div>\n </div>\n }\n <div class=\"action-col\" fdLayoutGridCol colGrow>\n <button\n fd-button\n [ariaLabel]=\"('platformVHD.defineConditionRemoveConditionButtonTitle' | fdTranslate)()\"\n fdType=\"transparent\"\n glyph=\"decline\"\n [title]=\"('platformVHD.defineConditionRemoveConditionButtonTitle' | fdTranslate)()\"\n (click)=\"removeCondition(i)\"\n ></button>\n </div>\n </div>\n </fd-layout-grid>\n}\n<fd-layout-grid class=\"condition-row new-condition-row\" [noGap]=\"true\">\n <div fdLayoutGridRow>\n <div fdLayoutGridCol colGrow> </div>\n <div fdLayoutGridCol class=\"action-col\">\n <button\n fd-button\n [attr.aria-label]=\"('platformVHD.defineConditionAddConditionButtonTitle' | fdTranslate)()\"\n [label]=\"('platformVHD.defineConditionAddConditionButtonLabel' | fdTranslate)()\"\n [title]=\"('platformVHD.defineConditionAddConditionButtonTitle' | fdTranslate)()\"\n (click)=\"addEmptyCondition()\"\n ></button>\n </div>\n </div>\n</fd-layout-grid>\n<ng-template #conditionStrategyOption let-type=\"type\" let-strategy=\"strategy\">\n @switch (strategy.key) {\n @case ('contains') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelContains' | fdTranslate)() }}\n }\n @case ('equalTo') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelEqualTo' | fdTranslate)() }}\n }\n @case ('between') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelBetween' | fdTranslate)() }}\n }\n @case ('startsWith') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelStartsWith' | fdTranslate)() }}\n }\n @case ('endsWith') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelEndsWith' | fdTranslate)() }}\n }\n @case ('lessThan') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelLessThan' | fdTranslate)() }}\n }\n @case ('lessThanEqual') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelLessThanEqual' | fdTranslate)() }}\n }\n @case ('greaterThan') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelGreaterThan' | fdTranslate)() }}\n }\n @case ('greaterThanEqual') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelGreaterThanEqual' | fdTranslate)() }}\n }\n @case ('empty') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelEmpty' | fdTranslate)() }}\n }\n @case ('not_equalTo') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelNotEqualTo' | fdTranslate)() }}\n }\n @case ('not_empty') {\n {{ ('platformVHD.defineConditionConditionStrategyLabelNotEmpty' | fdTranslate)() }}\n }\n }\n</ng-template>\n<ng-template #countError let-count>\n @if (count && count > 7) {\n <fd-form-message type=\"error\">\n {{ ('platformVHD.defineConditionMaxCountError' | fdTranslate: { count: 7 })() }}\n </fd-form-message>\n }\n</ng-template>\n<ng-template #customSelectTemplate let-textValue>\n {{ textValue }}\n</ng-template>\n","import { QueryList } from '@angular/core';\nimport { ValueHelpColumnDefDirective } from '../directives/value-help-column-def.directive';\n\nexport abstract class VhdComponent {\n abstract columnDef: QueryList<ValueHelpColumnDefDirective>;\n}\n","/* eslint-disable @typescript-eslint/member-ordering */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n inject\n} from '@angular/core';\n\nimport { CdkScrollable } from '@angular/cdk/overlay';\nimport { NgTemplateOutlet, SlicePipe } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { FocusableGridDirective, range } from '@fundamental-ngx/cdk/utils';\nimport { BarComponent, BarElementDirective, BarMiddleDirective } from '@fundamental-ngx/core/bar';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport { CheckboxComponent } from '@fundamental-ngx/core/checkbox';\nimport { FormLabelComponent } from '@fundamental-ngx/core/form';\nimport { InfiniteScrollDirective } from '@fundamental-ngx/core/infinite-scroll';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport {\n TableBodyDirective,\n TableCellDirective,\n TableComponent,\n TableHeaderDirective,\n TableRowDirective,\n TableTextDirective\n} from '@fundamental-ngx/core/table';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { startWith } from 'rxjs';\nimport { ValueHelpColumnDefDirective } from '../../directives/value-help-column-def.directive';\nimport { VdhTableSelection, VhdFilter } from '../../models';\nimport { VhdComponent } from '../../models/vhd-component.model';\nimport { VhdBaseTab } from '../base-tab/vhd-base-tab.component';\n\nlet titleUniqueId = 0;\n\n@Component({\n selector: 'fdp-select-tab',\n templateUrl: './select-tab.component.html',\n styleUrl: './select-tab.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TitleComponent,\n CdkScrollable,\n ScrollbarDirective,\n InfiniteScrollDirective,\n FocusableGridDirective,\n TableComponent,\n FormLabelComponent,\n TableHeaderDirective,\n TableRowDirective,\n TableCellDirective,\n CheckboxComponent,\n FormsModule,\n TableBodyDirective,\n TableTextDirective,\n BarComponent,\n BarMiddleDirective,\n BarElementDirective,\n ButtonComponent,\n SkeletonComponent,\n SlicePipe,\n FdTranslatePipe,\n NgTemplateOutlet\n ]\n})\nexport class SelectTabComponent<T> extends VhdBaseTab implements OnChanges, AfterViewInit {\n /** @hidden */\n readonly loadingRange = range(3);\n protected defaultTitleId = `fd-select-tab-title-id-${titleUniqueId++}`;\n /** @hidden */\n protected defaultCountId = `fd-select-tab-title-count-id-${titleUniqueId++}`;\n\n /** Select tab title element ID */\n @Input()\n selectTabTitleId: string = this.defaultTitleId;\n\n /** Select tab count element ID */\n @Input()\n selectTabCountId: string = this.defaultCountId;\n\n /** Selected items */\n @Input()\n selected: T[] = [];\n\n /** Loading state */\n @Input()\n loading = false;\n\n /** Actual filters */\n @Input()\n filters: VhdFilter[] = [];\n\n /** Close dialog immediately after select any row from search table. It'll be skipped if multi option is true */\n @Input()\n selection: VdhTableSelection = 'single';\n\n /** Whether to allow users to select all table entries with one checkbox. */\n @Input()\n allowSelectAll = true;\n\n /** Uniq field from data source */\n @Input()\n uniqueKey = 'id';\n\n /** Items per page for pagination below search table */\n @Input()\n pageSize: number;\n\n /** Count of default mobile header from search table */\n @Input()\n defaultMobileHeaders = 2;\n\n /** Displayed data for search table */\n @Input()\n displayedData: T[] = [];\n\n /** Event emitted when row was selected. */\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() select = new EventEmitter<T[]>();\n\n /** @hidden */\n @ViewChild(InfiniteScrollDirective) infiniteScrollTable: InfiniteScrollDirective;\n\n /** @hidden indeterminate flag for `select all` checkbox */\n _selectedAll: boolean | null = false;\n\n /** @hidden Shown items count in mobile view */\n _shownFrom = 0;\n\n /** @hidden Shown items count in mobile view */\n _shownCount = 0;\n\n /** @hidden Current page in desktop view */\n _currentPage = 0;\n\n /** @hidden Headers and body for search table */\n _tableFilters: {\n main: VhdFilter[];\n secondary: VhdFilter[];\n } = {\n main: [],\n secondary: []\n };\n\n /** @hidden */\n _selectedMap: { [key: string]: boolean } = {};\n\n /** Selection type getters */\n get isSingleSelection(): boolean {\n return this.selection === 'single';\n }\n /** Selection type getters */\n get isOnceSelection(): boolean {\n return this.selection === 'once';\n }\n /** Selection type getters */\n get isMultiSelection(): boolean {\n return this.selection === 'multi';\n }\n\n /** @hidden */\n _columnDefMap = new Map<string, ValueHelpColumnDefDirective>();\n\n /** @hidden */\n private selectedItems: T[] = [];\n\n /** @hidden */\n private readonly _vhd = inject(VhdComponent, { optional: true });\n\n /** @hidden */\n private readonly _destroyRef = inject(DestroyRef);\n\n /** @hidden */\n ngAfterViewInit(): void {\n Promise.resolve(true).then(() => this._checkScrollAndShowMore());\n\n this._vhd?.columnDef.changes.pipe(startWith(null), takeUntilDestroyed(this._destroyRef)).subscribe(() => {\n this._columnDefMap.clear();\n this._vhd?.columnDef.forEach((item) => {\n this._columnDefMap.set(item.column, item);\n });\n });\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if ('filters' in changes) {\n this._initializeFilters();\n }\n if ('displayedData' in changes) {\n this._refreshDisplayedData();\n }\n if ('selected' in changes) {\n this.selectedItems = this.selected || [];\n this._refreshSelectedMap();\n this._refreshTristate();\n }\n }\n\n /** @hidden Track function for main data */\n _trackByTableRowFn: (_index: number, item: T) => string | undefined = (_index: number, item: T) => {\n if (item) {\n return item[this.uniqueKey];\n }\n\n return undefined;\n };\n\n /** @hidden Track function for filters */\n _trackByFilterFn(_index: number, item: VhdFilter): number | string | undefined {\n return item && item.key ? item.key : undefined;\n }\n\n /** @hidden Show more elements */\n _showMoreElements(): void {\n if (this.pageSize && this._shownCount !== this.displayedData.length) {\n this._shownCount += this.pageSize;\n this._shownCount = Math.min(this._shownCount, this.displayedData.length);\n } else {\n this._shownCount = this.displayedData.length;\n }\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden Refresh page in desktop view */\n _updatePage(pageNumber = 1): void {\n if (this.pageSize) {\n this._currentPage = pageNumber;\n this._shownFrom = (pageNumber - 1) * this.pageSize;\n this._shownCount = Math.min(this._shownFrom + this.pageSize, this.displayedData.length);\n } else {\n this._shownCount = this.displayedData.length;\n }\n }\n\n /** @hidden Method toggle selected state for all items */\n _toggleAllRows(): void {\n if (this._selectedAll) {\n this.selectedItems = [];\n } else {\n this.selectedItems = this.displayedData;\n }\n this.select.emit(this.selectedItems);\n this._refreshSelectedMap();\n this._refreshTristate();\n }\n\n /** @hidden Method toggle selected state for one items */\n _toggleSelectRow(item: T): void {\n if (this.isMultiSelection) {\n const isSelected = this._selectedMap[item[this.uniqueKey]];\n if (isSelected) {\n this.selectedItems = this.selectedItems.filter((s: T) => s[this.uniqueKey] !== item[this.uniqueKey]);\n } else {\n this.selectedItems.push(item);\n }\n this._selectedMap[item[this.uniqueKey]] = !this._selectedMap[item[this.uniqueKey]];\n } else {\n this._clearSelectedItems();\n this.selectedItems = [item];\n }\n this.select.emit(this.selectedItems);\n this._refreshTristate();\n }\n\n /** @hidden */\n private _checkScrollAndShowMore(): void {\n if (this.mobile) {\n return;\n }\n if (\n this.displayedData.length &&\n this._shownCount !== this.displayedData.length &&\n this.infiniteScrollTable?.shouldTriggerAction()\n ) {\n this._showMoreElements();\n setTimeout(() => {\n this._checkScrollAndShowMore();\n }, 100);\n }\n }\n\n /** @hidden */\n private _resetShown(): void {\n if (this.mobile) {\n this._showMoreElements();\n } else {\n this._checkScrollAndShowMore();\n }\n }\n\n /** @hidden Manually clear selected items */\n private _clearSelectedItems(): void {\n this._selectedMap = {};\n this.selectedItems = [];\n }\n\n /** @hidden Refresh indeterminate attribute on `select all` checkbox */\n private _refreshTristate(): void {\n const selected = Object.values(this._selectedMap).filter(Boolean).length;\n if (selected === 0) {\n this._selectedAll = false;\n } else if (selected === this.displayedData.length) {\n this._selectedAll = true;\n } else {\n this._selectedAll = null;\n }\n }\n\n /** @hidden Set up filters */\n private _initializeFilters(): void {\n if (this.mobile) {\n let _mobileTableHeaders = this.filters.filter((f) => f.main).map((f) => f.key);\n if (!_mobileTableHeaders.length) {\n _mobileTableHeaders = this.filters.slice(0, this.defaultMobileHeaders).map((f) => f.key);\n }\n this._tableFilters = {\n main: this.filters.filter((filter) => _mobileTableHeaders.some((key) => key === filter.key)),\n secondary: this.filters.filter((filter) => !_mobileTableHeaders.some((key) => key === filter.key))\n };\n } else {\n this._tableFilters = {\n main: this.filters,\n secondary: []\n };\n }\n }\n\n /** @hidden Refresh display data */\n private _refreshDisplayedData(): void {\n this._resetShown();\n this._refreshTristate();\n }\n\n /** @hidden Refresh selected map for display data */\n private _refreshSelectedMap(): void {\n this._selectedMap = {};\n for (const item of this.displayedData) {\n this._selectedMap[item[this.uniqueKey]] = false;\n }\n for (const s of this.selectedItems) {\n this._selectedMap[s[this.uniqueKey]] = true;\n }\n }\n}\n","<div class=\"table-header\">\n <h5 fd-title role=\"heading\" aria-level=\"5\">\n {{ ('platformVHD.selectTabDisplayCountLabel' | fdTranslate: { count: displayedData.length })() }}\n </h5>\n</div>\n<div\n class=\"fdp-value-help-dialog__table-holder table-content\"\n fd-scrollbar\n fdInfiniteScroll\n (onScrollAction)=\"_showMoreElements()\"\n [scrollPercent]=\"80\"\n role=\"table\"\n>\n <table\n fd-table\n [popIn]=\"mobile\"\n [noBorderX]=\"mobile\"\n [noBorderY]=\"false\"\n [attr.aria-colcount]=\"_tableFilters.main.length\"\n [attr.aria-rowcount]=\"displayedData.length\"\n role=\"grid\"\n aria-multiselectable=\"true\"\n [attr.aria-labelledby]=\"selectTabTitleId + ' ' + selectTabCountId\"\n [allCellsFocusable]=\"true\"\n >\n <label [id]=\"selectTabCountId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{\n (\n 'platformVHD.selectTabCountHiddenA11yLabel'\n | fdTranslate: { rowCount: displayedData.length, colCount: _tableFilters.main.length }\n )()\n }}\n </label>\n <label [id]=\"selectTabTitleId\" fd-form-label class=\"fdp-value-help-dialog__hidden_label\">\n {{ ('platformVHD.selectTabDisplayCountLabel' | fdTranslate: { count: displayedData.length })() }}\n </label>\n <thead fd-table-header>\n @if (displayedData.length && _tableFilters) {\n <tr fd-table-row>\n <th fd-table-cell [fitContent]=\"mobile\">\n @if (isMultiSelection && allowSelectAll) {\n <fd-checkbox\n [name]=\"uid + '-row-all'\"\n [tristate]=\"true\"\n [tristateSelectable]=\"false\"\n [ngModel]=\"_selectedAll\"\n (ngModelChange)=\"_toggleAllRows()\"\n ></fd-checkbox>\n }\n </th>\n @for (\n filter of _tableFilters.main;\n track _trackByFilterFn(colindex, filter);\n let colindex = $index\n ) {\n <th fd-table-cell [attr.aria-colindex]=\"colindex\">\n {{ filter.label }}\n </th>\n }\n </tr>\n }\n </thead>\n <tbody fd-table-body>\n @for (\n row of displayedData | slice: _shownFrom : _shownCount;\n track _trackByTableRowFn(i, row);\n let i = $index\n ) {\n <tr\n fd-table-row\n [hoverable]=\"!mobile\"\n [main]=\"mobile\"\n [attr.aria-selected]=\"_selectedMap[row[uniqueKey]]\"\n [activable]=\"!isMultiSelection\"\n (click)=\"!isMultiSelection && _toggleSelectRow(row)\"\n >\n <td fd-table-cell [fitContent]=\"mobile\">\n @if (isMultiSelection) {\n <fd-checkbox\n [name]=\"uid + '-row-' + i\"\n [ngModel]=\"_selectedMap[row[uniqueKey]]\"\n (change)=\"_toggleSelectRow(row)\"\n ></fd-checkbox>\n }\n </td>\n @for (filter of _tableFilters.main; track filter; let rowIndex = $index) {\n <td fd-table-cell [attr.aria-rowindex]=\"rowIndex\">\n @if (_columnDefMap.get(filter.key); as columnDef) {\n <ng-template\n [ngTemplateOutlet]=\"columnDef.templateRef\"\n [ngTemplateOutletContext]=\"{\n $implicit: row,\n key: filter.key,\n value: row[filter.key] || ''\n }\"\n ></ng-template>\n } @else {\n {{ row[filter.key] || '' }}\n }\n </td>\n }\n </tr>\n @if (mobile && _tableFilters.secondary.length) {\n <tr fd-table-row [secondary]=\"true\" [attr.aria-selected]=\"_selectedMap[row[uniqueKey]]\">\n <td fd-table-cell></td>\n <td colspan=\"100%\" fd-table-cell [fitContent]=\"true\">\n @for (filter of _tableFilters.secondary; track filter) {\n <p fd-table-text>\n <label>{{ filter.label }}:</label>\n {{ row[filter.key] || '' }}\n </p>\n }\n </td>\n </tr>\n }\n }\n @if (displayedData.length && mobile && _shownCount && _shownCount !== displayedData.length) {\n <tr fd-table-row>\n <td colspan=\"100%\">\n <div fd-bar barDesign=\"header-with-subheader\">\n <div fd-bar-middle>\n <fd-bar-element>\n <button\n fd-button\n fdType=\"transparent\"\n [label]=\"('platformVHD.selectTabMoreBtnLabel' | fdTranslate)()\"\n (click)=\"_showMoreElements()\"\n ></button>\n </fd-bar-element>\n </div>\n </div>\n </td>\n </tr>\n }\n @if (!displayedData.length) {\n @if (loading) {\n @for (_ of loadingRange; track $index) {\n <tr fd-table-row>\n @for (_ of loadingRange; track $index) {\n <td fd-table-cell>\n <fd-skeleton\n [style.margin]=\"'auto 0'\"\n type=\"text\"\n textLines=\"1\"\n width=\"60%\"\n ></fd-skeleton>\n </td>\n }\n </tr>\n }\n } @else {\n <tr fd-table-row>\n <td fd-table-cell colspan=\"100%\">\n <div class=\"fdp-value-help-dialog__empty-message\">\n {{ ('platformVHD.searchTableEmptyMessage' | fdTranslate)() }}\n </div>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n</div>\n","import { Directive, inject, TemplateRef } from '@angular/core';\nimport { ValueHelpFilterDef, ValueHelpFilterDefContext } from '../models/vhd-filter.model';\n\n@Directive({\n selector: '[fdpValueHelpFilterDef]',\n standalone: true\n})\nexport class ValueHelpFilterDefDirective implements ValueHelpFilterDef {\n /** Template reference */\n readonly templateRef = inject<TemplateRef<ValueHelpFilterDefContext>>(TemplateRef);\n\n /** @hidden */\n static ngTemplateContextGuard(dir: ValueHelpFilterDefDirective, ctx: unknown): ctx is ValueHelpFilterDefContext {\n return true;\n }\n}\n","import { ChangeDetectionStrategy, Component, ContentChild, Input } from '@angular/core';\n\nimport { Nullable } from '@fundamental-ngx/cdk/utils';\nimport { ValueHelpFilterDefDirective } from '../../directives/value-help-filter-def.directive';\nimport { VhdFilter } from '../../models/vhd-filter.model';\n\n@Component({\n selector: 'fdp-value-help-dialog-filter',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class VhdFilterComponent implements VhdFilter {\n /** Uniq key for search and filtering */\n @Input()\n key: string;\n\n /** Allow to control which of filters should show as main in mobile view.\n * Apply for search table only */\n @Input()\n main = false;\n\n /** Label for header in search table and search field */\n @Input()\n label: string;\n\n /** Initial filter's value for search section in `select from list tab` only */\n @Input()\n value = '';\n\n /** Allow to show filter in advanced search template */\n @Input()\n advanced = true;\n\n /** Allow to use filter for including in `define conditions tab` */\n @Input()\n include = true;\n\n /** Allow to use filter for excluding in `define conditions tab` */\n @Input()\n exclude = true;\n\n /** @hidden */\n @ContentChild(ValueHelpFilterDefDirective)\n filterDef: Nullable<ValueHelpFilterDefDirective>;\n}\n","import { Directive, Input, TemplateRef, inject } from '@angular/core';\n\nexport interface ValueHelpColumnDefContext<T> {\n $implicit: T;\n key: string;\n value: any;\n}\n\n@Directive({\n selector: '[fdpValueHelpColumnDef]',\n standalone: true\n})\nexport class ValueHelpColumnDefDirective<T = any> {\n /** Type support. */\n @Input('fdpValueHelpColumnDefAs')\n as: T;\n\n /** Column key to render custom template. */\n @Input('fdpValueHelpColumnDefColumn')\n column: string;\n /** Template reference */\n readonly templateRef = inject<TemplateRef<ValueHelpColumnDefContext<T>>>(TemplateRef);\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n computed,\n inject,\n input\n} from '@angular/core';\nimport { Observable, Subject, Subscription, filter, isObservable, of, take, tap } from 'rxjs';\n\nimport { Direction } from '@angular/cdk/bidi';\nimport { NgTemplateOutlet, SlicePipe } from '@angular/common';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { DisplayFnPipe, RtlService, TemplateDirective } from '@fundamental-ngx/cdk/utils';\nimport {\n BarComponent,\n BarElementDirective,\n BarLeftDirective,\n BarRightDirective,\n ButtonBarComponent\n} from '@fundamental-ngx/core/bar';\nimport { BusyIndicatorComponent } from '@fundamental-ngx/core/busy-indicator';\nimport { ButtonComponent } from '@fundamental-ngx/core/button';\nimport {\n DialogBodyComponent,\n DialogComponent,\n DialogConfig,\n DialogFooterComponent,\n DialogHeaderComponent,\n DialogRef,\n DialogService\n} from '@fundamental-ngx/core/dialog';\nimport { FormControlComponent, FormLabelComponent } from '@fundamental-ngx/core/form';\nimport { LayoutGridColDirective, LayoutGridComponent, LayoutGridRowDirective } from '@fundamental-ngx/core/layout-grid';\nimport { ListIconDirective, ListLinkDirective, ListTitleDirective } from '@fundamental-ngx/core/list';\nimport { ScrollbarDirective } from '@fundamental-ngx/core/scrollbar';\nimport { HeadingLevel } from '@fundamental-ngx/core/shared';\nimport { SkeletonComponent } from '@fundamental-ngx/core/skeleton';\nimport { TabItemDirective, TabLinkDirective, TabNavComponent, TabTagDirective } from '@fundamental-ngx/core/tabs';\nimport { TitleComponent } from '@fundamental-ngx/core/title';\nimport { TokenComponent, TokenizerComponent, TokenizerInputDirective } from '@fundamental-ngx/core/token';\nimport { ToolbarComponent, ToolbarItemDirective, ToolbarSpacerDirective } from '@fundamental-ngx/core/toolbar';\nimport { FdTranslatePipe } from '@fundamental-ngx/i18n';\nimport { SearchFieldComponent } from '@fundamental-ngx/platform/search-field';\nimport { isDataSource } from '@fundamental-ngx/platform/shared';\nimport { DefineTabComponent } from '../components/define-tab/define-tab.component';\nimport { SelectTabComponent } from '../components/select-tab/select-tab.component';\nimport { VhdFilterComponent } from '../components/value-help-dialog-filter/value-help-dialog-filter.component';\nimport { defaultConditionDisplayFn } from '../constans/condition-display.function';\nimport { ValueHelpColumnDefDirective } from '../directives/value-help-column-def.directive';\nimport {\n ArrayValueHelpDialogDataSource,\n BaseEntity,\n ObservableValueHelpDialogDataSource,\n ValueHelpDialogDataSource,\n VdhTableSelection,\n VhdDefineExcludeStrategy,\n VhdDefineIncludeStrategy,\n VhdFilter,\n VhdTab,\n VhdValue,\n VhdValueChangeEvent\n} from '../models';\nimport { VhdComponent } from '../models/vhd-component.model';\n\nlet vhdHeaderUniqueId = 0;\n\nexport type FdpValueHelpDialogDataSource<T> =\n | ValueHelpDialogDataSource<T>\n | ArrayValueHelpDialogDataSource<T>\n | ObservableValueHelpDialogDataSource<T>;\n\nlet vhiUniqueId = 0;\n\n@Component({\n selector: 'fdp-value-help-dialog',\n templateUrl: './value-help-dialog.component.html',\n styleUrl: './value-help-dialog.component.scss',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: VhdComponent,\n useExisting: PlatformValueHelpDialogComponent\n }\n ],\n imports: [\n DialogComponent,\n DialogHeaderComponent,\n TemplateDirective,\n NgTemplateOutlet,\n ScrollbarDirective,\n DialogBodyComponent,\n DialogFooterComponent,\n TitleComponent,\n TokenizerComponent,\n TokenComponent,\n ToolbarItemDirective,\n FormControlComponent,\n TokenizerInputDirective,\n ButtonComponent,\n FormsModule,\n LayoutGridComponent,\n LayoutGridRowDirective,\n LayoutGridColDirective,\n SearchFieldComponent,\n ToolbarComponent,\n ToolbarSpacerDirective,\n BusyIndicatorComponent,\n FormLabelComponent,\n SkeletonComponent,\n SelectTabComponent,\n DefineTabComponent,\n ListLinkDirective,\n ListTitleDirective,\n ListIconDirective,\n TabNavComponent,\n TabItemDirective,\n TabLinkDirective,\n TabTagDirective,\n BarComponent,\n BarLeftDirective,\n BarElementDirective,\n BarRightDirective,\n ButtonBarComponent,\n SlicePipe,\n FdTranslatePipe,\n DisplayFnPipe\n ]\n})\nexport class PlatformValueHelpDialogComponent<T = any> extends VhdComponent implements OnChanges, OnDestroy {\n /** Id of the popover */\n @Input()\n id: string = 'fdp-vhd-' + vhiUniqueId++;\n\n /** Initial state of Value help dialog */\n @Input()\n value: VhdValue<T> = {\n selected: [],\n conditions: []\n };\n\n /** Dialog title */\n @Input()\n dialogTitle: string;\n\n /** Select from list tab activation */\n @Input()\n initialTab = VhdTab.selectFromList;\n\n /** Visible tabs */\n @Input()\n tabs: 'both' | 'select' | 'define' = 'both';\n\n /** Initial expand state for advanced search panel */\n @Input()\n isOpenAdvanced = false;\n\n /** Data source */\n @Input()\n set dataSource(value: FdpValueHelpDialogDataSource<any> | undefined) {\n if (value) {\n this._dataSource = this.toDataStream(value);\n }\n }\n get dataSource(): FdpValueHelpDialogDataSource<any> | undefined {\n return this._dataSource;\n }\n\n /** Dialog's custom config */\n @Input()\n dialogConfig: DialogConfig = {};\n\n /** Unique key from the source field names. Required field. */\n @Input()\n uniqueKey: string;\n\n /** Id attribute for dialog title */\n @Input()\n headerId = `fdp-vhd-header-id-${vhdHeaderUniqueId++}`;\n\n /** Field name for default render from data.\n * Required field if tokenizerFn is not exist. */\n @Input()\n tokenViewField: string;\n\n /** Tokenizer function for custom token render, it has higher prio that `tokenViewField`.\n * Required field if tokenViewField is not exist. */\n @Input()\n tokenizerFn: (item: T) => string;\n\n /** Whether the value help dialog should be view in mobile mode */\n @Input()\n mobile = false;\n\n /** It should be able if you use multiple selection */\n @Input()\n formatToken: (value: VhdValueChangeEvent<T>) => void;\n\n /** Tokenizer function for condition's token render */\n @Input()\n conditionDisplayFn = defaultConditionDisplayFn;\n\n /** Validator function. Called when user submits VHD dialog. */\n @Input()\n tokenValidator: ((value: VhdValueChangeEvent) => Observable<boolean> | boolean) | undefined;\n\n /** Selection mode for search table */\n @Input()\n searchSelection: VdhTableSelection = 'multi';\n\n /** Items per page for pagination below search table */\n @Input()\n searchTablePageSize = 20;\n\n /** Count of default mobile header from search table */\n @Input()\n searchTableMobileHeaders = 2;\n\n /** Max shown initial filters on open. Desktop only */\n @Input()\n maxShownInitialFilters = 4;\n\n /** Loading state */\n @Input()\n loading: boolean | undefined;\n\n /** Whether to allow users to select all table entries with one checkbox. */\n @Input()\n allowSelectAll = true;\n\n /** Custom strategies labels\n * Allowed keys: contains, equalTo, between, startsWith, endsWith, lessThan, lessThanEqual, greaterThan, greaterThanEqual, empty\n */\n @Input()\n defineStrategyLabels: {\n [key in keyof (typeof VhdDefineIncludeStrategy | typeof VhdDefineExcludeStrategy)]?: string;\n } = {\n contains: 'contains',\n equalTo: 'equal to',\n between: 'between',\n startsWith: 'starts with',\n endsWith: 'ends with',\n lessThan: 'less than',\n lessThanEqual: 'less than or equal to',\n greaterThan: 'greater than',\n greaterThanEqual: 'greater than or equal to',\n empty: 'empty',\n not_equalTo: 'not equal to',\n not_empty: 'not empty'\n };\n\n /** Dialog outputs */\n /** Event emitted when filters/tokens were changed. */\n @Output()\n valueChange = new EventEmitter<VhdValueChangeEvent<T>>();\n\n /** Event emitted when data loading is started. */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onDataRequested = new EventEmitter<void>();\n\n /** Event emitted when data loading is finished. */\n // eslint-disable-next-line @angular-eslint/no-output-on-prefix\n @Output() onDataReceived = new EventEmitter<void>();\n\n /** @hidden Fitlers for search table and defince conditions */\n @ContentChildren(VhdFilterComponent)\n filters: QueryList<VhdFilterComponent>;\n\n /** Column definitions. */\n @ContentChildren(ValueHelpColumnDefDirective)\n columnDef: QueryList<ValueHelpColumnDefDirective>;\n\n /** @hidden Internal container for dialog */\n @ViewChild('container', { read: TemplateRef })\n dialogContainer: TemplateRef<any>;\n\n /**\n * Heading level of the dialog title.\n */\n headingLevel = input<HeadingLevel>(5);\n\n /** @hidden */\n _headingLevel = computed(() =>\n this.headingLevel() ? Number.parseInt(`${this.headingLevel()}`.replace(/\\D/g, ''), 10) : undefined\n );\n\n /** @hidden */\n activeDialog?: DialogRef;\n\n /** @hidden */\n _tabTypes = VhdTab;\n\n /** @hidden */\n _hasAdvanced = true;\n\n /** @hidden */\n _displayedFilters: VhdFilter[] = [];\n\n /** @hidden */\n _displayedData: T[] = [];\n\n /** @hidden */\n _mainSearch = '';\n\n /** @hidden */\n selectedTab: VhdTab | null = null;\n\n /** @hidden */\n shownFilterCount = Infinity;\n\n /** @hidden */\n get loadingState(): boolean {\n return this.loading ?? this._internalLoadingState;\n }\n\n /** @hidden\n * To differentiate between first loading when skeletons be shown and subsequent loadings when busy indicator be shown\n */\n _firstLoadingDone = false;\n\n /** handles rtl service\n * @hidden */\n protected readonly dir = computed<Direction>(() => (this._rtlService?.rtl() ? 'rtl' : 'ltr'));\n\n /** @hidden */\n private _destroyed = inject(DestroyRef);\n\n /** @hidden */\n private _dataSource: FdpValueHelpDialogDataSource<any> | undefined;\n\n /** @hidden for data source handling */\n private _dsSubscription: Subscription | null;\n\n /** @hidden Previous state */\n private _prevState: VhdValue<T> = {\n selected: [],\n conditions: []\n };\n /** @hidden Current data for local manupulation */\n private _currentValue: VhdValue<T> = {\n selected: [],\n conditions: []\n };\n\n /** @hidden */\n private _internalLoadingState = false;\n\n /** @hidden */\n private readonly _onDestroy$ = new Subject<void>();\n\n /** @hidden */\n private readonly _rtlService = inject(RtlService, {\n optional: true\n });\n\n /** @hidden */\n constructor(\n public readonly elementRef: ElementRef,\n private readonly _changeDetectorRef: ChangeDetectorRef,\n private readonly _dialogService: DialogService\n ) {\n super();\n /** Default display function for define conditions */\n if (!this.conditionDisplayFn || typeof this.conditionDisplayFn !== 'function') {\n this.conditionDisplayFn = defaultConditionDisplayFn;\n }\n }\n\n /** @hidden */\n get isMobileAdvancedSearchActive(): boolean {\n if (this.mobile) {\n return this.isOpenAdvanced;\n }\n return false;\n }\n\n /** @hidden */\n get hasSelectedTab(): boolean {\n return this.selectedTab != null && this.selectedTab in VhdTab;\n }\n\n /** @hidden */\n get showSelectionTab(): boolean {\n return this.tabs !== 'define';\n }\n\n /** @hidden */\n get showDefineTab(): boolean {\n return this.tabs !== 'select';\n }\n\n /** @hidden */\n get isSelectionTab(): boolean {\n return this.selectedTab === VhdTab.selectFromList || this.selectedTab === VhdTab.advancedSearch;\n }\n\n /** @hidden */\n get selectedItems(): T[] {\n return this._currentValue.selected || [];\n }\n\n /** @hidden */\n get conditionItems(): BaseEntity[] {\n return this._currentValue.conditions || [];\n }\n\n /** @hidden */\n get validConditions(): BaseEntity[] {\n return this._getValidCondition(this.conditionItems);\n }\n\n /** @hidden */\n get hasSelectedAndConditions(): boolean {\n return Boolean(this.selectedItems.length + this.validConditions.length);\n }\n\n /** @hidden */\n get isShowAllFilters(): boolean {\n return this.filters.length > this.maxShownInitialFilters && this.shownFilterCount > this.maxShownInitialFilters;\n }\n\n /** @hidden */\n get isOpen(): boolean {\n return !!this.activeDialog;\n }\n\n /** @hidden */\n ngOnChanges(changes: SimpleChanges): void {\n if (this.isOpen) {\n if ('dataSource' in changes) {\n this._initializeDS();\n }\n }\n }\n\n /** @hidden */\n ngOnDestroy(): void {\n this._resetState();\n this._onDestroy$.next();\n }\n\n /** Open dialog */\n open(): void {\n if (!this.isValidOptions()) {\n throw new Error('Please check required fields');\n }\n if (this.isOpen) {\n return;\n }\n this._savePreviousState();\n this._updateFilters();\n this._initializeDS();\n this._initializeTab();\n if (!this.dialogConfig.ariaLabelledBy) {\n this.dialogConfig.ariaLabelledBy = this.headerId;\n }\n this.activeDialog = this._dialogService.open(this.dialogContainer, {\n backdropClickCloseable: false,\n hasBackdrop: true,\n verticalPadding: false,\n escKeyCloseable: false,\n dialogPanelClass: `fdp-value-help-dialog ${this.mobile ? 'fdp-value-help-dialog-mobile' : ''}`,\n ...this.dialogConfig,\n\n mobile: this.mobile,\n maxWidth: this.mobile ? undefined : '92%',\n width: this.mobile ? undefined : '1080px',\n height: this.mobile ? undefined : '98%'\n });\n this._listenDialogEvents();\n }\n\n /**\n * Toggle advanced search panel\n */\n toggleAdvancedSearch(state?: boolean): void {\n if (typeof state !== 'undefined') {\n this.isOpenAdvanced = state;\n } else {\n this.isOpenAdvanced = !this.isOpenAdvanced;\n }\n\n if (this.mobile) {\n this.selectedTab = this.isOpenAdvanced ? VhdTab.advancedSearch : VhdTab.selectFromList;\n }\n }\n\n /**\n * Clear all selected items\n */\n clearSelectedAndConditionItems(): void {\n this._currentValue.selected = [];\n this._currentValue.conditions = [];\n this._changeDetectorRef.markForCheck();\n }\n\n /** Search by only the search term. */\n search(): void {\n this.filter(true);\n }\n\n /**\n * Search by all filled filters, including the search term.\n */\n filter(onlySearch = false): void {\n const nonEmptyFilters = new Map();\n\n if (!onlySearch) {\n this._displayedFilters\n .filter(({ value }) =>\n !!value && typeof value === 'string' ? value.trim().length : value !== undefined\n )\n .forEach((e) => nonEmptyFilters.set(e.key, e.value));\n }\n\n if (this._mainSearch.length) {\n nonEmptyFilters.set('*', this._mainSearch);\n }\n this.dataSource?.match(nonEmptyFilters);\n }\n\n /**\n * Apply search from advanced filters view, using when mobile view is active\n */\n searchAdvanced(): void {\n this.filter();\n this.selectedTab = VhdTab.selectFromList;\n this.isOpenAdvanced = false;\n }\n\n /** Remove item from selected array */\n removeSelected(index: number): void {\n this._currentValue.selected = this.selectedItems.filter((_, i) => i !== index);\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Remove condition item\n */\n removeCondition(index: number): void {\n this._currentValue.conditions = this.conditionItems.filter((_, i) => i !== index);\n this._changeDetectorRef.markForCheck();\n }\n\n /**\n * Switch tab by type\n */\n switchTab(type: VhdTab | null = null): void {\n this.selectedTab = type;\n }\n\n /**\n * Close dialog with value;\n */\n success(): void {\n if (!this.activeDialog) {\n return;\n }\n const value: VhdValueChangeEvent = {\n selected: this.selectedItems,\n conditions: this.validConditions\n };\n\n this._internalLoadingState = true;\n this._changeDetectorRef.detectChanges();\n this._getValidatorFunction(value)\n .pipe(\n tap(() => {\n this._internalLoadingState = false;\n this._changeDetectorRef.detectChanges();\n }),\n filter((r) => r),\n take(1),\n takeUntilDestroyed(this._destroyed)\n )\n .subscribe(() => {\n if (typeof this.formatToken === 'function') {\n this.formatToken(value);\n }\n this.activeDialog?.close(value);\n });\n }\n\n /**\n * Hide advanced search on mobile view and if it's opened\n * Close dialog with null value;\n */\n dismiss(): void {\n if (this.mobile && this.isOpenAdvanced) {\n this.isOpenAdvanced = false;\n this.switchTab(VhdTab.selectFromList);\n } else {\n this._currentValue = this._prevState;\n if (this.activeDialog) {\n this.activeDialog.close();\n }\n }\n }\n\n /** @hidden */\n _trackBySelectedFn: (_index: number, item: T) => number | string = (_index: number, item: T) =>\n item && item[this.uniqueKey];\n\n /** @hidden */\n _trackByFilterFn(_index: number, item: VhdFilter): number | string {\n return item && item.key;\n }\n\n /** @hidden */\n _trackByConditionFn(_index: number, item: BaseEntity): number | string | undefined {\n return item ? item.value + item.valueTo + item.strategy + item.key : undefined;\n }\n\n /** @hidden */\n onSelect($event: T[]): void {\n this._currentValue.selected = $event;\n this._changeDetectorRef.markForCheck();\n if (this.searchSelection === 'once') {\n this.success();\n }\n }\n\n /** @hidden */\n onConditionChange($event: BaseEntity[]): void {\n this._currentValue.conditions = $event;\n this._changeDetectorRef.markForCheck();\n }\n\n /** @hidden */\n toggleShownFilters(): void {\n this.shownFilterCount =\n this.maxShownInitialFilters === this.shownFilterCount ? Infinity : this.maxShownInitialFilters;\n }\n\n /** @hidden */\n private _initShownFilters(): void {\n this.shownFilterCount = this.maxShownInitialFilters || Infinity;\n }\n\n /** @hidden */\n private _getValidCondition(items: BaseEntity[] = []): BaseEntity[] {\n return items.filter((item) => {\n if (\n item.strategy === VhdDefineIncludeStrategy.empty ||\n item.strategy === VhdDefineExcludeStrategy.not_empty\n ) {\n return true;\n }\n if (item.strategy === VhdDefineIncludeStrategy.between) {\n return Boolean(item.value.length && item.valueTo.length);\n }\n if (!item.valid) {\n return false;\n }\n return Boolean(item.value.length);\n });\n }\n\n /** @hidden */\n private _initializeDS(ds: FdpValueHelpDialogDataSource<any> | undefined = this.dataSource): void {\n this._resetSourceStream();\n\n if (this.showSelectionTab) {\n this._dsSubscription = new Subscription();\n\n this._dsSubscription.add(\n ds?.onDataRequested().subscribe(() => {\n this._internalLoadingState = true;\n this.onDataRequested.emit();\n })\n );\n\n this._dsSubscription.add(\n ds?.onDataReceived().subscribe(() => {\n this._internalLoadingState = false;\n this._firstLoadingDone = true;\n this.onDataReceived.emit();\n })\n );\n\n const dsSub = this.openDataStream()\n .pipe(takeUntilDestroyed(this._destroyed))\n .subscribe((data) => {\n this._displayedData = data.slice();\n this._changeDetectorRef.markForCheck();\n });\n\n this._dsSubscription.add(dsSub);\n }\n }\n\n /** @hidden Save previous state */\n private _savePreviousState(): void {\n const value = structuredClone(this.value);\n this._currentValue = value;\n this._prevState = value;\n }\n\n /** @hidden */\n private _initializeTab(): void {\n if (this.mobile) {\n this.isOpenAdvanced = false;\n }\n if (this.showSelectionTab && this.showDefineTab) {\n this.switchTab(this.mobile ? undefined : this.initialTab);\n } else if (this.showSelectionTab) {\n this.switchTab(VhdTab.selectFromList);\n } else if (this.showDefineTab) {\n this.switchTab(VhdTab.defineConditions);\n }\n this._initShownFilters();\n }\n\n /** @hidden */\n private _listenDialogEvents(): void {\n if (!this.activeDialog) {\n return;\n }\n this.activeDialog.afterClosed.pipe(takeUntilDestroyed(this._destroyed)).subscribe((value) => {\n if (value) {\n this.value = value;\n this.valueChange.emit(value);\n }\n\n this._resetState();\n });\n this.filters.changes.pipe(takeUntilDestroyed(this._destroyed)).subscribe(() => {\n this._updateFilters();\n });\n }\n\n /** @hidden */\n private _resetState(): void {\n this._resetSourceStream();\n this._mainSearch = '';\n this.activeDialog = undefined;\n }\n\n /** @hidden */\n private _updateFilters(): void {\n this._displayedFilters = this.filters.map((e) => ({\n ...e,\n label: e.label || e.key\n }));\n\n this._hasAdvanced = this._displayedFilters.some((e: VhdFilter) => !!e.advanced);\n }\n\n /** @hidden */\n private openDataStream(): Observable<T[]> {\n if (this._dataSource) {\n this._dataSource.match();\n\n return this._dataSource.open();\n }\n throw new Error(`[dataSource] source did not match an array, Observable, or DataSource`);\n }\n\n /** @hidden */\n private toDataStream(ds: FdpValueHelpDialogDataSource<T>): FdpValueHelpDialogDataSource<T> | undefined {\n if (isDataSource(ds)) {\n return ds as ValueHelpDialogDataSource<T>;\n } else if (Array.isArray(ds)) {\n return new ArrayValueHelpDialogDataSource<T>(ds);\n } else if (isObservable(ds)) {\n return new ObservableValueHelpDialogDataSource<T>(ds as Observable<T[]>);\n }\n\n return undefined;\n }\n\n /** @hidden */\n private _resetSourceStream(): void {\n if (isDataSource(this.dataSource)) {\n this.dataSource.close();\n }\n if (this._dsSubscription) {\n this._dsSubscription.unsubscribe();\n this._dsSubscription = null;\n }\n }\n\n /** @hidden */\n private isValidOptions(): boolean {\n if (this.showSelectionTab) {\n return (\n !!this.dataSource &&\n typeof this.uniqueKey === 'string' &&\n (typeof this.tokenViewField === 'string' || typeof this.tokenizerFn === 'function')\n );\n }\n return true;\n }\n\n private _getValidatorFunction(value: VhdValueChangeEvent): Observable<boolean> {\n const validator = typeof this.tokenValidator === 'function' ? this.tokenValidator(value) : of(true);\n\n return isObservable(validator) ? validator : of(validator);\n }\n}\n","<ng-template [fdDialogTemplate] let-dialog let-dialogConfig=\"dialogConfig\" #container>\n <fd-dialog [dialogConfig]=\"dialogConfig\" [dialogRef]=\"dialog\">\n <fd-dialog-header [attr.dir]=\"dir()\">\n <ng-template fdkTemplate=\"header\">\n <ng-template [ngTemplateOutlet]=\"mobile ? mobileDialogTitle : desktopDialogTitle\"></ng-template>\n </ng-template>\n </fd-dialog-header>\n <fd-dialog-body [attr.dir]=\"dir()\">\n @if (!mobile) {\n <ng-template [ngTemplateOutlet]=\"advancedSearchContent\"></ng-template>\n }\n <div fd-scrollbar class=\"fdp-value-help-dialog__content-holder\">\n @if (mobile) {\n <ng-template [ngTemplateOutlet]=\"advancedSearchContent\"></ng-template>\n }\n @if (selectedTab === _tabTypes.selectFromList) {\n <ng-template [ngTemplateOutlet]=\"selectionContent\"></ng-template>\n }\n @if (selectedTab === _tabTypes.defineConditions) {\n <ng-template [ngTemplateOutlet]=\"defineConditionsContent\"></ng-template>\n }\n </div>\n </fd-dialog-body>\n <fd-dialog-footer [attr.dir]=\"dir()\">\n <ng-template fdkTemplate=\"footer\">\n @if (!isMobileAdvancedSearchActive) {\n <div\n class=\"fdp-value-help-dialog__row fdp-value-help-dialog__selection-row\"\n [attr.aria-label]=\"('platformVHD.selectedAndConditionLabel' | fdTranslate)()\"\n >\n <span\n role=\"heading\"\n [attr.aria-level]=\"_headingLevel()\"\n fd-title\n class=\"selected-and-condition-title\"\n [id]=\"id + '-selected-item'\"\n >\n @if (hasSelectedAndConditions) {\n {{ ('platformVHD.selectedAndConditionLabel' | fdTranslate)() }}\n ({{ selectedItems.length + validConditions.length }})\n } @else {\n {{ ('platformVHD.selectedEmptyLabel' | fdTranslate)() }}\n }\n </span>\n <div class=\"fdp-value-help-dialog__tokens-wrapper\">\n <div class=\"fdp-value-help-dialog__tokens\">\n <!-- Selected items -->\n <fd-tokenizer>\n @for (\n item of selectedItems;\n track _trackBySelectedFn(selectedIndex, item);\n let selectedIndex = $index\n ) {\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"removeSelected(selectedIndex)\"\n >{{\n !!tokenizerFn\n ? (item | displayFnPipe: tokenizerFn)\n : item[tokenViewField]\n }}\n </fd-token>\n }\n @for (\n item of validConditions;\n track _trackByConditionFn(conditionIndex, item);\n let conditionIndex = $index\n ) {\n <fd-token\n fd-toolbar-item\n fdOverflowPriority=\"high\"\n class=\"fdp-value-help-dialog__selection-token\"\n (onCloseClick)=\"removeCondition(conditionIndex)\"\n >\n <ng-template\n [ngTemplateOutlet]=\"conditionValue\"\n [ngTemplateOutletContext]=\"{ item: item }\"\n ></ng-template>\n </fd-token>\n }\n <input fd-form-control fd-tokenizer-input [disabled]=\"!hasSelectedAndConditions\" />\n </fd-tokenizer>\n </div>\n <button\n (click)=\"clearSelectedAndConditionItems()\"\n class=\"fdp-value-help-dialog__tokens-clear\"\n fd-button\n [disabled]=\"!hasSelectedAndConditions\"\n fdType=\"transparent\"\n [title]=\"('platformVHD.footerClearSelectedTitle' | fdTranslate)()\"\n glyph=\"decline\"\n [ariaLabel]=\"('platformVHD.footerClearSelectedAriaLabel' | fdTranslate)()\"\n ></button>\n </div>\n </div>\n }\n <div class=\"fdp-value-help-dialog__actions-row\">\n @if (mobile && isOpenAdvanced) {\n <button\n fd-button\n data-go-advanced\n [label]=\"('platformVHD.searchButtonLabel' | fdTranslate)()\"\n fdType=\"emphasized\"\n (click)=\"searchAdvanced()\"\n ></button>\n }\n @if (selectedTab !== _tabTypes.advancedSearch) {\n <button\n fd-button\n data-succes\n [disabled]=\"loadingState\"\n [label]=\"('platformVHD.successButtonLabel' | fdTranslate)()\"\n fdType=\"emphasized\"\n (click)=\"success()\"\n ></button>\n }\n <button\n fd-button\n data-dismiss-dialog\n [label]=\"('platformVHD.cancelButtonLabel' | fdTranslate)()\"\n fdType=\"transparent\"\n (click)=\"dismiss()\"\n ></button>\n </div>\n </ng-template>\n </fd-dialog-footer>\n </fd-dialog>\n</ng-template>\n<ng-template #advancedSearchContent>\n @if (isSelectionTab) {\n <form class=\"fdp-value-help-dialog__row fdp-value-help-dialog__advanced-search\" [id]=\"'advanced-search-' + id\">\n @if (!mobile || (mobile && !isOpenAdvanced)) {\n <fd-layout-grid>\n <div fdLayoutGridRow>\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"12\" [colLg]=\"mobile ? 12 : 6\" [colXl]=\"mobile ? 12 : 6\">\n <fdp-search-field\n [placeholder]=\"('platformVHD.searchPlaceholder' | fdTranslate)()\"\n (searchSubmit)=\"search()\"\n (inputChange)=\"_mainSearch = $event.text\"\n ></fdp-search-field>\n </div>\n @if (_hasAdvanced) {\n <div\n [fdLayoutGridCol]=\"12\"\n [colMd]=\"12\"\n [colLg]=\"mobile ? 12 : 6\"\n [colXl]=\"mobile ? 12 : 6\"\n class=\"fdp-value-help-dialog__advanced-actions\"\n >\n <fd-toolbar [clearBorder]=\"true\">\n <fd-toolbar-spacer></fd-toolbar-spacer>\n @if (_hasAdvanced) {\n <button\n fd-toolbar-item\n fd-button\n fdType=\"transparent\"\n [label]=\"\n (\n (mobile\n ? 'platformVHD.searchAdvancedSearchLabel'\n : isOpenAdvanced\n ? 'platformVHD.searchHideAdvancedSearchLabel'\n : 'platformVHD.searchShowAdvancedSearchLabel'\n ) | fdTranslate\n )()\n \"\n (click)=\"toggleAdvancedSearch()\"\n ></button>\n }\n <button\n fd-toolbar-item\n type=\"submit\"\n fd-button\n fdType=\"emphasized\"\n [label]=\"('platformVHD.searchButtonLabel' | fdTranslate)()\"\n (click)=\"filter()\"\n ></button>\n </fd-toolbar>\n </div>\n }\n </div>\n </fd-layout-grid>\n }\n @if (isOpenAdvanced && _hasAdvanced) {\n <div [id]=\"'advanced-search-content-' + id\" class=\"fdp-value-help-dialog__advanced-filters\">\n <fd-busy-indicator [loading]=\"loadingState && _firstLoadingDone\" [block]=\"true\">\n @if (_firstLoadingDone) {\n <fd-layout-grid\n [class.fdp-value-help-dialog__with-toggle-all]=\"filters.length > maxShownInitialFilters\"\n >\n <div fdLayoutGridRow>\n @for (\n filter of _displayedFilters | slice: 0 : shownFilterCount + 1;\n track _trackByFilterFn($index, filter)\n ) {\n @if (filter.advanced) {\n <div [fdLayoutGridCol]=\"12\" [colMd]=\"12\" [colLg]=\"6\" [colXl]=\"3\">\n <label\n class=\"fd-form-group__header\"\n fd-form-label\n [for]=\"'input' + filter.key\"\n >{{ filter.label }}:</label\n >\n @if (filter.filterDef) {\n <ng-template\n [ngTemplateOutlet]=\"filter.filterDef.templateRef\"\n [ngTemplateOutletContext]=\"{ $implicit: filter }\"\n ></ng-template>\n } @else {\n <input\n [(ngModel)]=\"filter.value\"\n fd-form-control\n type=\"text\"\n [name]=\"'search-by-' + filter.label\"\n [id]=\"'input' + filter.key\"\n />\n }\n </div>\n }\n }\n @if (filters.length > maxShownInitialFilters) {\n <div\n colGrow\n [fdLayoutGridCol]=\"12\"\n [colMd]=\"12\"\n [colLg]=\"6\"\n [colXl]=\"3\"\n class=\"fdp-value-help-dialog__toggle-filters\"\n >\n <button\n fd-button\n fdType=\"transparent\"\n (click)=\"toggleShownFilters()\"\n [label]=\"\n (\n (isShowAllFilters\n ? 'platformVHD.searchHideAllAdvancedSearchLabel'\n : 'platformVHD.searchShowAllAdvancedSearchLabel'\n ) | fdTranslate\n )()\n \"\n ></button>\n </div>\n }\n </div>\n </fd-layout-grid>\n } @else {\n <fd-skeleton width=\"100%\" height=\"100px\">\n <svg:rect x=\"0\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n <svg:rect x=\"35%\" y=\"0\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"35%\" y=\"20\" rx=\"4\" width=\"25%\" height=\"16\" />\n <svg:rect x=\"0\" y=\"60\" rx=\"4\" width=\"15%\" height=\"8\" />\n <svg:rect x=\"0\" y=\"80\" rx=\"4\" width=\"25%\" height=\"16\" />\n </fd-skeleton>\n }\n </fd-busy-indicator>\n </div>\n }\n </form>\n }\n</ng-template>\n<ng-template #selectionContent>\n <fd-busy-indicator\n [loading]=\"loadingState && _firstLoadingDone\"\n [block]=\"true\"\n class=\"fdp-value-help-dialog__table-busy-indicator\"\n >\n <fdp-select-tab\n [selected]=\"selectedItems\"\n [loading]=\"loadingState && !_firstLoadingDone\"\n [uid]=\"id\"\n [displayedData]=\"_displayedData\"\n [tabTitle]=\"('platformVHD.selectTabTitle' | fdTranslate)()\"\n [mobile]=\"mobile\"\n [selection]=\"searchSelection\"\n [uniqueKey]=\"uniqueKey\"\n [pageSize]=\"searchTablePageSize\"\n [defaultMobileHeaders]=\"searchTableMobileHeaders\"\n [filters]=\"_displayedFilters\"\n [allowSelectAll]=\"allowSelectAll\"\n (select)=\"onSelect($event)\"\n ></fdp-select-tab>\n </fd-busy-indicator>\n</ng-template>\n<ng-template #defineConditionsContent>\n <div fd-scrollbar>\n <fdp-define-tab\n [strategyLabels]=\"defineStrategyLabels\"\n [conditions]=\"conditionItems\"\n [uid]=\"id\"\n [tabTitle]=\"('platformVHD.defineTabTitle' | fdTranslate)()\"\n [mobile]=\"mobile\"\n (conditionChange)=\"onConditionChange($event)\"\n ></fdp-define-tab>\n </div>\n</ng-template>\n<ng-template #dialogTitleText>\n <span role=\"heading\" [attr.aria-level]=\"_headingLevel()\" [attr.id]=\"headerId\" fd-title>{{ dialogTitle }}</span>\n</ng-template>\n<ng-template #tabLink let-title=\"title\" let-type=\"type\">\n @if (selectedTab === type && showSelectionTab && showDefineTab) {\n <button\n fd-button\n glyph=\"navigation-left-arrow\"\n fdType=\"transparent\"\n (click)=\"switchTab()\"\n [title]=\"('platformVHD.selectMobileTabBackBtnTitle' | fdTranslate)()\"\n ></button>\n <span role=\"heading\" [attr.aria-level]=\"_headingLevel()\" fd-title>{{ title }}</span>\n }\n @if (selectedTab !== type) {\n <a\n fd-list-link\n (click)=\"switchTab(type)\"\n [title]=\"('platformVHD.selectMobileTabBtnOpenDialogLabel' | fdTranslate)()\"\n >\n <span fd-list-title>{{ title }}</span>\n <i fd-list-icon glyph=\"navigation-right-arrow\"></i>\n </a>\n }\n</ng-template>\n<ng-template #advancedHeader>\n <button fd-button glyph=\"navigation-left-arrow\" fdType=\"transparent\" (click)=\"toggleAdvancedSearch()\"></button>\n <span role=\"heading\" [attr.aria-level]=\"_headingLevel()\" fd-title>{{\n ('platformVHD.searchAdvancedSearchLabel' | fdTranslate)()\n }}</span>\n</ng-template>\n<ng-template #desktopDialogTitle>\n <ng-template [ngTemplateOutlet]=\"dialogTitleText\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"desktopTabs\"></ng-template>\n</ng-template>\n<ng-template #mobileDialogTitle>\n <div class=\"fdp-value-help-dialog__mobile-title\">\n @if (hasSelectedTab) {\n <ng-template [ngTemplateOutlet]=\"selectedTabHeader\"></ng-template>\n } @else {\n <span role=\"heading\" [attr.aria-level]=\"_headingLevel()\" [attr.id]=\"headerId\" fd-title>{{\n dialogTitle\n }}</span>\n }\n </div>\n <ng-template [ngTemplateOutlet]=\"mobileTabs\"></ng-template>\n</ng-template>\n<ng-template #desktopTabs>\n @if (showSelectionTab && showDefineTab) {\n <nav fd-tab-nav class=\"fdp-value-help-dialog__tabs\">\n @if (showSelectionTab) {\n <div fd-tab-item (click)=\"switchTab(_tabTypes.selectFromList)\">\n <a\n fd-tab-link\n [active]=\"selectedTab === _tabTypes.selectFromList\"\n [tabindex]=\"selectedTab === _tabTypes.selectFromList ? '0' : '-1'\"\n ><span fd-tab-tag>{{ ('platformVHD.selectTabTitle' | fdTranslate)() }}</span></a\n >\n </div>\n }\n @if (showDefineTab) {\n <div fd-tab-item (click)=\"switchTab(_tabTypes.defineConditions)\">\n <a\n fd-tab-link\n [active]=\"selectedTab === _tabTypes.defineConditions\"\n [tabindex]=\"selectedTab === _tabTypes.defineConditions ? '0' : '-1'\"\n ><span fd-tab-tag>{{ ('platformVHD.defineTabTitle' | fdTranslate)() }}</span></a\n >\n </div>\n }\n </nav>\n }\n</ng-template>\n<ng-template #mobileTabs>\n @if (!hasSelectedTab && showSelectionTab && showDefineTab) {\n <div>\n @if (showSelectionTab) {\n <div fd-bar [inPage]=\"true\">\n <div fd-bar-left>\n <fd-bar-element>\n {{ ('platformVHD.selectTabTitle' | fdTranslate)() }}\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fd-button-bar\n glyph=\"navigation-right-arrow\"\n (click)=\"switchTab(_tabTypes.selectFromList)\"\n [title]=\"\n (\n 'platformVHD.selectMobileTabTitle'\n | fdTranslate: { title: ('platformVHD.selectTabTitle' | fdTranslate)() }\n )()\n \"\n ></fd-button-bar>\n </fd-bar-element>\n </div>\n </div>\n }\n @if (showDefineTab) {\n <div fd-bar [inPage]=\"true\">\n <div fd-bar-left>\n <fd-bar-element>\n {{ ('platformVHD.defineTabTitle' | fdTranslate)() }}\n </fd-bar-element>\n </div>\n <div fd-bar-right>\n <fd-bar-element>\n <fd-button-bar\n glyph=\"navigation-right-arrow\"\n [title]=\"\n (\n 'platformVHD.selectMobileTabTitle'\n | fdTranslate: { title: ('platformVHD.defineTabTitle' | fdTranslate)() }\n )()\n \"\n (click)=\"switchTab(_tabTypes.defineConditions)\"\n >\n </fd-button-bar>\n </fd-bar-element>\n </div>\n </div>\n }\n </div>\n }\n</ng-template>\n<ng-template #selectedTabHeader>\n @switch (selectedTab) {\n @case (_tabTypes.selectFromList) {\n <ng-template\n [ngTemplateOutlet]=\"tabLink\"\n [ngTemplateOutletContext]=\"{\n title: ('platformVHD.selectTabTitle' | fdTranslate)(),\n type: selectedTab\n }\"\n ></ng-template>\n }\n @case (_tabTypes.advancedSearch) {\n <ng-template [ngTemplateOutlet]=\"advancedHeader\"></ng-template>\n }\n @case (_tabTypes.defineConditions) {\n <ng-template\n [ngTemplateOutlet]=\"tabLink\"\n [ngTemplateOutletContext]=\"{\n title: ('platformVHD.defineTabTitle' | fdTranslate)(),\n type: selectedTab\n }\"\n ></ng-template>\n }\n }\n</ng-template>\n<ng-template #conditionValue let-item=\"item\">\n @if (item.strategy !== 'empty' && item.strategy !== 'not_empty') {\n <span>\n {{ item | displayFnPipe: conditionDisplayFn : _displayedFilters }}\n </span>\n } @else {\n @if (item.strategy === 'not_empty') {\n !(<ng-template [ngTemplateOutlet]=\"emptyConditionText\"></ng-template>)\n } @else {\n <{{ ('platformVHD.selectMobileConditionEmpty' | fdTranslate)() }}>\n }\n }\n</ng-template>\n<ng-template #emptyConditionText>\n <{{ ('platformVHD.selectMobileConditionEmpty' | fdTranslate)() }}>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { ContentDensityModule } from '@fundamental-ngx/core/content-density';\n\nimport { VhdFilterComponent } from './components/value-help-dialog-filter/value-help-dialog-filter.component';\nimport { PlatformValueHelpDialogComponent } from './value-help-dialog/value-help-dialog.component';\n\nconst components = [PlatformValueHelpDialogComponent, VhdFilterComponent, ContentDensityModule];\n\n/**\n * @deprecated\n * Use direct imports of components and directives.\n */\n@NgModule({\n imports: [...components],\n exports: [...components]\n})\nexport class PlatformValueHelpDialogModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["titleUniqueId","take","i1","i2"],"mappings":"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"}
|