@mediusinc/mng-commons 7.0.0-rc.1 → 7.0.0-rc.2
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/core/index.d.ts +24 -4
- package/fesm2022/mediusinc-mng-commons-core.mjs +108 -72
- package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-filter.mjs +16 -0
- package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-form.mjs +406 -49
- package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-model-class.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api-class.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-BQ99oqWO.mjs +30 -0
- package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-BQ99oqWO.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BLuM5Kpu.mjs +2700 -0
- package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BLuM5Kpu.mjs.map +1 -0
- package/fesm2022/mediusinc-mng-commons-table.mjs +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +31 -3
- package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons-tableview.mjs +155 -123
- package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
- package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
- package/filter/index.d.ts +13 -0
- package/form/index.d.ts +109 -22
- package/i18n/en.json +12 -1
- package/i18n/sl.json +12 -1
- package/package.json +24 -24
- package/table/api/index.d.ts +2 -2
- package/table/index.d.ts +97 -29
- package/tableview/api/index.d.ts +17 -2
- package/tableview/index.d.ts +7 -1
- package/version-info.json +6 -6
- package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-0Dtv48mq.mjs +0 -30
- package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-0Dtv48mq.mjs.map +0 -1
- package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BsAwyXiN.mjs +0 -2417
- package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-BsAwyXiN.mjs.map +0 -1
package/table/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as primeng_api from 'primeng/api';
|
|
2
|
-
import { SelectItem, SortMeta, MessageService, ToastMessageOptions } from 'primeng/api';
|
|
2
|
+
import { SelectItem, MenuItem, SortMeta, MessageService, ToastMessageOptions } from 'primeng/api';
|
|
3
3
|
import * as _angular_core from '@angular/core';
|
|
4
4
|
import { OnDestroy, Signal, TemplateRef, PipeTransform, InjectionToken, Provider } from '@angular/core';
|
|
5
5
|
import * as _mediusinc_mng_commons_core from '@mediusinc/mng-commons/core';
|
|
@@ -12,8 +12,8 @@ import { NgForm } from '@angular/forms';
|
|
|
12
12
|
import { Popover } from 'primeng/popover';
|
|
13
13
|
import * as _mediusinc_mng_commons_table from '@mediusinc/mng-commons/table';
|
|
14
14
|
import { Table, TableColumnReorderEvent, TableRowReorderEvent, TableLazyLoadEvent, TableFilterEvent } from 'primeng/table';
|
|
15
|
-
import { PrimeNG } from 'primeng/config';
|
|
16
15
|
import { MultiSelectChangeEvent } from 'primeng/multiselect';
|
|
16
|
+
import { PrimeNG } from 'primeng/config';
|
|
17
17
|
import { LookupDataProviderInst } from '@mediusinc/mng-commons/form/api';
|
|
18
18
|
import { TranslateService } from '@ngx-translate/core';
|
|
19
19
|
import { ReplaySubject, Observable } from 'rxjs';
|
|
@@ -46,6 +46,10 @@ interface FilterDateConfig {
|
|
|
46
46
|
format?: string;
|
|
47
47
|
showTime?: boolean;
|
|
48
48
|
showSeconds?: boolean;
|
|
49
|
+
showMilliseconds?: boolean;
|
|
50
|
+
primeTimePicker?: boolean;
|
|
51
|
+
timeSelectInterval?: number;
|
|
52
|
+
timeSelect?: boolean;
|
|
49
53
|
}
|
|
50
54
|
interface FilterNumberConfig {
|
|
51
55
|
fractionsMin?: number;
|
|
@@ -62,7 +66,7 @@ declare class FilterService {
|
|
|
62
66
|
toggleCaseSensitivity(): void;
|
|
63
67
|
clear(): void;
|
|
64
68
|
setDisplayValue(displayValue: any): void;
|
|
65
|
-
setState(state?: FilterState): void;
|
|
69
|
+
setState(state?: FilterState, updateTable?: boolean): void;
|
|
66
70
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FilterService, never>;
|
|
67
71
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<FilterService>;
|
|
68
72
|
}
|
|
@@ -90,7 +94,6 @@ declare class TableFilterComponent implements OnDestroy {
|
|
|
90
94
|
protected readonly isMultiselect: _angular_core.Signal<boolean>;
|
|
91
95
|
protected readonly placeholderKey: _angular_core.Signal<string>;
|
|
92
96
|
protected readonly booleanOptions: BooleanFilterDropdownItem[];
|
|
93
|
-
protected readonly noFilterLabel: _angular_core.WritableSignal<any>;
|
|
94
97
|
constructor();
|
|
95
98
|
ngOnDestroy(): void;
|
|
96
99
|
protected onTextModelChange(event: Event): void;
|
|
@@ -152,21 +155,27 @@ declare class TableColumnValueComponent<T, TT> {
|
|
|
152
155
|
}
|
|
153
156
|
|
|
154
157
|
declare class TableFilterActiveTagComponent {
|
|
158
|
+
private readonly translateService;
|
|
155
159
|
readonly FilterMatchMode: typeof FilterMatchMode;
|
|
156
160
|
model: _angular_core.InputSignal<ModelDescriptor<any>>;
|
|
157
161
|
filter: _angular_core.InputSignal<FilterStateWithConfig>;
|
|
158
162
|
edit: _angular_core.OutputEmitterRef<FilterActiveTagEvent>;
|
|
159
163
|
remove: _angular_core.OutputEmitterRef<FilterActiveTagEvent>;
|
|
164
|
+
toggleDisabled: _angular_core.OutputEmitterRef<FilterActiveTagEvent>;
|
|
160
165
|
label: _angular_core.Signal<string>;
|
|
161
166
|
matchMode: _angular_core.Signal<string | undefined>;
|
|
162
167
|
matchModeSymbol: _angular_core.Signal<string>;
|
|
163
168
|
value: _angular_core.Signal<any>;
|
|
164
169
|
protected isActive: _angular_core.Signal<boolean>;
|
|
170
|
+
menuItems: _angular_core.WritableSignal<MenuItem[]>;
|
|
171
|
+
private tagMenu;
|
|
165
172
|
onRemove(event: Event): void;
|
|
166
173
|
onEdit(event: Event): void;
|
|
174
|
+
onDisable(event: Event): void;
|
|
175
|
+
openTagMenu(event: Event): void;
|
|
167
176
|
private getPropertyLabelKey;
|
|
168
177
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableFilterActiveTagComponent, never>;
|
|
169
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableFilterActiveTagComponent, "mng-table-filter-active-tag", never, { "model": { "alias": "model"; "required": true; "isSignal": true; }; "filter": { "alias": "filter"; "required": true; "isSignal": true; }; }, { "edit": "edit"; "remove": "remove"; }, never, never, true, never>;
|
|
178
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableFilterActiveTagComponent, "mng-table-filter-active-tag", never, { "model": { "alias": "model"; "required": true; "isSignal": true; }; "filter": { "alias": "filter"; "required": true; "isSignal": true; }; }, { "edit": "edit"; "remove": "remove"; "toggleDisabled": "toggleDisabled"; }, never, never, true, never>;
|
|
170
179
|
}
|
|
171
180
|
|
|
172
181
|
declare class TableFilterFormComponent {
|
|
@@ -199,6 +208,7 @@ declare class TableFilterFormComponent {
|
|
|
199
208
|
valueModel: _angular_core.WritableSignal<any>;
|
|
200
209
|
caseSensitiveModel: _angular_core.WritableSignal<boolean>;
|
|
201
210
|
isMultiselect: _angular_core.Signal<boolean>;
|
|
211
|
+
protected addFilterShortcutText: string;
|
|
202
212
|
constructor();
|
|
203
213
|
onFormSubmit(form: NgForm): void;
|
|
204
214
|
resetForm(value?: FilterFormModel): void;
|
|
@@ -226,6 +236,7 @@ declare class TableHeaderWithFiltersTemplateDirective extends TemplateDirective<
|
|
|
226
236
|
}
|
|
227
237
|
|
|
228
238
|
declare class TableHeaderWithFiltersComponent {
|
|
239
|
+
private readonly translateService;
|
|
229
240
|
private static readonly SEARCH_WORD_LIMIT_MAX;
|
|
230
241
|
private readonly tableData;
|
|
231
242
|
private readonly tableConfig;
|
|
@@ -240,6 +251,7 @@ declare class TableHeaderWithFiltersComponent {
|
|
|
240
251
|
} | undefined>;
|
|
241
252
|
searchLimitWordMax: _angular_core.InputSignal<number | null | undefined>;
|
|
242
253
|
enableCaseSensitive: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
254
|
+
protected filterMenuItems: _angular_core.WritableSignal<MenuItem[]>;
|
|
243
255
|
private filterOverlay;
|
|
244
256
|
private filterFormComponent;
|
|
245
257
|
templates: Signal<readonly TableHeaderWithFiltersTemplateDirective[]>;
|
|
@@ -259,6 +271,8 @@ declare class TableHeaderWithFiltersComponent {
|
|
|
259
271
|
displayMatchMode: string;
|
|
260
272
|
config: FilterConfig;
|
|
261
273
|
}[]>;
|
|
274
|
+
protected allActiveFiltersDisabled: Signal<boolean>;
|
|
275
|
+
protected addFilterShortcutText: string;
|
|
262
276
|
searchValue: Signal<string | undefined>;
|
|
263
277
|
searchCaseSensitive: Signal<boolean | undefined>;
|
|
264
278
|
searchWordLimitMaxError: _angular_core.WritableSignal<boolean>;
|
|
@@ -266,50 +280,106 @@ declare class TableHeaderWithFiltersComponent {
|
|
|
266
280
|
private searchValueSubject;
|
|
267
281
|
private searchCaseSensitiveSubject;
|
|
268
282
|
private clickedOnFilterEvent;
|
|
283
|
+
private readonly filterSplitButton;
|
|
284
|
+
private readonly searchInput;
|
|
269
285
|
constructor();
|
|
270
|
-
onFilterFormApply(event: FilterFormEmitEvent): void;
|
|
271
|
-
onFilterRemove(event: FilterActiveTagEvent): void;
|
|
272
|
-
onFilterEdit(event: FilterActiveTagEvent): void;
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
286
|
+
protected onFilterFormApply(event: FilterFormEmitEvent): void;
|
|
287
|
+
protected onFilterRemove(event: FilterActiveTagEvent): void;
|
|
288
|
+
protected onFilterEdit(event: FilterActiveTagEvent): void;
|
|
289
|
+
private overlaySelectors;
|
|
290
|
+
private isOverlayOpen;
|
|
291
|
+
filterShortcuts(event: KeyboardEvent): void;
|
|
292
|
+
protected onFilterSplitButtonShow(): void;
|
|
293
|
+
protected onFilterAdd(event: Event): void;
|
|
294
|
+
protected onFilterToggleDisabled(event: FilterActiveTagEvent): void;
|
|
295
|
+
private onFilterToggleDisableAll;
|
|
296
|
+
private onFilterRemoveAll;
|
|
297
|
+
protected onSearchChange(value: string): void;
|
|
298
|
+
protected onSearchSubmit(event: Event): void;
|
|
299
|
+
protected onSearchCaseSensitiveChange(value: boolean): void;
|
|
300
|
+
protected onOverlayHide(): void;
|
|
277
301
|
private onFilterAddOrEdit;
|
|
278
302
|
private getInitialFilters;
|
|
279
|
-
private
|
|
280
|
-
private
|
|
303
|
+
private updateFilter;
|
|
304
|
+
private updateSearch;
|
|
281
305
|
protected readonly FilterTypeEnum: typeof FilterTypeEnum;
|
|
282
306
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableHeaderWithFiltersComponent, never>;
|
|
283
307
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableHeaderWithFiltersComponent, "mng-table-header-with-filters", never, { "metadata": { "alias": "metadata"; "required": true; "isSignal": true; }; "genericFilterDescriptor": { "alias": "genericFilterDescriptor"; "required": false; "isSignal": true; }; "model": { "alias": "model"; "required": true; "isSignal": true; }; "enableSearch": { "alias": "enableSearch"; "required": false; "isSignal": true; }; "search": { "alias": "search"; "required": false; "isSignal": true; }; "searchLimitWordMax": { "alias": "searchLimitWordMax"; "required": false; "isSignal": true; }; "enableCaseSensitive": { "alias": "enableCaseSensitive"; "required": false; "isSignal": true; }; }, {}, ["templates"], never, true, never>;
|
|
284
308
|
}
|
|
285
309
|
|
|
286
|
-
|
|
310
|
+
interface SearchState {
|
|
311
|
+
value: string;
|
|
312
|
+
caseSensitive: boolean;
|
|
313
|
+
}
|
|
314
|
+
declare abstract class ADataListService<Item> {
|
|
315
|
+
abstract readonly params: Signal<DataListParams | undefined>;
|
|
316
|
+
abstract readonly sortStates: Signal<SortMeta[] | undefined>;
|
|
317
|
+
abstract readonly filterStates: Signal<Record<string, FilterState>>;
|
|
318
|
+
abstract readonly searchState: Signal<SearchState | undefined>;
|
|
319
|
+
abstract readonly offset: Signal<number>;
|
|
320
|
+
abstract readonly rows: Signal<number>;
|
|
321
|
+
abstract readonly data: Signal<Item[]>;
|
|
322
|
+
abstract readonly count: Signal<number>;
|
|
323
|
+
abstract readonly loading: Signal<boolean>;
|
|
324
|
+
/**
|
|
325
|
+
* Sets the params.
|
|
326
|
+
* @param params The new params to set.
|
|
327
|
+
* @param fromQueryParams
|
|
328
|
+
*/
|
|
329
|
+
abstract setParams(params: DataListParams, fromQueryParams: boolean): void;
|
|
330
|
+
/**
|
|
331
|
+
* Updates filter states when not directly set by `setParams`.
|
|
332
|
+
*
|
|
333
|
+
* @param filters Map of filters with state updates.
|
|
334
|
+
*/
|
|
335
|
+
abstract updateFilters(filters: Record<string, FilterState | undefined>): void;
|
|
336
|
+
/**
|
|
337
|
+
* Updates search state when not directly set by `setParams`.
|
|
338
|
+
*
|
|
339
|
+
* @param search
|
|
340
|
+
*/
|
|
341
|
+
abstract updateSearch(search: SearchState | undefined): void;
|
|
342
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ADataListService<any>, never>;
|
|
343
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ADataListService<any>>;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
declare class TableDataService<Item> extends ADataListService<Item> {
|
|
287
347
|
#private;
|
|
288
348
|
readonly params: Signal<DataListParams<string, string> | undefined>;
|
|
289
|
-
readonly
|
|
349
|
+
readonly sortStates: Signal<SortMeta[] | undefined>;
|
|
290
350
|
readonly filterStates: Signal<Record<string, FilterState>>;
|
|
291
|
-
readonly
|
|
351
|
+
readonly primeFilterStates: Signal<{
|
|
352
|
+
[x: string]: FilterState;
|
|
353
|
+
}>;
|
|
354
|
+
readonly searchState: Signal<{
|
|
292
355
|
value: string;
|
|
293
356
|
caseSensitive: boolean;
|
|
294
357
|
} | undefined>;
|
|
295
358
|
readonly isAllPaginationMetaInitialized: Signal<boolean>;
|
|
296
359
|
readonly paginationMode: Signal<TablePaginationModeEnum>;
|
|
297
360
|
readonly offset: Signal<number>;
|
|
298
|
-
readonly rows: Signal<number
|
|
361
|
+
readonly rows: Signal<number>;
|
|
299
362
|
readonly data: Signal<Item[]>;
|
|
300
363
|
readonly count: Signal<number>;
|
|
301
364
|
readonly loading: Signal<boolean>;
|
|
302
365
|
readonly selectedItems: _angular_core.WritableSignal<Item[]>;
|
|
366
|
+
constructor();
|
|
303
367
|
setDataSources(arrayItems: Signal<Item[] | undefined>, dataListResult: Signal<DataListResult<Item> | undefined>, dataProvider: Signal<ITableDataProvider<Item, any, any, any> | undefined>, manualLoading: Signal<boolean | undefined>): void;
|
|
304
368
|
setPrimeTable(cmp?: Table<Item>): void;
|
|
305
|
-
fetchWithDataProvider(
|
|
369
|
+
fetchWithDataProvider(paramsList: DataListParams, onErrorFn: (error: Error) => void): boolean;
|
|
306
370
|
setParams(params: DataListParams, fromQueryParams?: boolean): void;
|
|
307
371
|
/**
|
|
308
|
-
* Updates primeNG component with new filters and triggers data reload (if lazy load) or inline filtering
|
|
309
|
-
*
|
|
310
|
-
*
|
|
372
|
+
* Updates primeNG component with new filters and triggers data reload (if lazy load) or inline filtering.ž
|
|
373
|
+
* Usually setting the params should trigger the cycle to load data and calculate other states (sort, filter, search, etc.) from params.
|
|
374
|
+
* In case of PrimeNG's inline filtering, the internal primeNG state must be updated first and the states must subsequently be updated via callback functions.
|
|
375
|
+
*
|
|
376
|
+
* @param filters - { [fieldName]: FilterState | undefined } where:
|
|
377
|
+
* - fieldName = column field identifier
|
|
378
|
+
* - FilterState = full filter config
|
|
379
|
+
* - undefined = clears filter for that field
|
|
311
380
|
*/
|
|
312
|
-
|
|
381
|
+
updateFilters(filters: Record<string, FilterState | undefined>): void;
|
|
382
|
+
updateSearch(search: SearchState | undefined): void;
|
|
313
383
|
/**
|
|
314
384
|
* Compare the given params with the stored params in the DataListService.
|
|
315
385
|
*
|
|
@@ -318,7 +388,6 @@ declare class TableDataService<Item> implements OnDestroy {
|
|
|
318
388
|
* @return {boolean} - True if the given params match the stored params, otherwise false.
|
|
319
389
|
*/
|
|
320
390
|
private compareWithCurrentParams;
|
|
321
|
-
ngOnDestroy(): void;
|
|
322
391
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableDataService<any>, never>;
|
|
323
392
|
static ɵprov: _angular_core.ɵɵInjectableDeclaration<TableDataService<any>>;
|
|
324
393
|
}
|
|
@@ -326,7 +395,6 @@ declare class TableDataService<Item> implements OnDestroy {
|
|
|
326
395
|
declare class TableMetadataService {
|
|
327
396
|
#private;
|
|
328
397
|
static readonly cmpTypeName = "TableComponent";
|
|
329
|
-
readonly primeConfig: PrimeNG;
|
|
330
398
|
readonly moduleConfig: _mediusinc_mng_commons_core.CommonsModuleConfig | null;
|
|
331
399
|
readonly tableModuleConfig: _mediusinc_mng_commons_table.TableFeatureConfig | null;
|
|
332
400
|
readonly serializationCfg: CommonsSerializationConfig;
|
|
@@ -446,8 +514,8 @@ declare class TableComponent<Item = any, Service = undefined, Sorts = any, Filte
|
|
|
446
514
|
cellClick: _angular_core.OutputRef<TableCellClickEvent<Item>>;
|
|
447
515
|
selectionChange: _angular_core.OutputEmitterRef<Item[]>;
|
|
448
516
|
rowReorder: _angular_core.OutputEmitterRef<TableRowReorderEvent>;
|
|
449
|
-
readonly templates: _angular_core.InputSignal<TableTemplateDirective<"
|
|
450
|
-
readonly contentTemplates: Signal<readonly TableTemplateDirective<"
|
|
517
|
+
readonly templates: _angular_core.InputSignal<TableTemplateDirective<"footer" | "header" | "columnCustomLast" | "rowExpandContent" | "columnHeader" | "headerTitleRowRight" | "headerTitle">[]>;
|
|
518
|
+
readonly contentTemplates: Signal<readonly TableTemplateDirective<"footer" | "header" | "columnCustomLast" | "rowExpandContent" | "columnHeader" | "headerTitleRowRight" | "headerTitle">[]>;
|
|
451
519
|
readonly primeTable: Signal<Table<Item> | undefined>;
|
|
452
520
|
headerTemplate: Signal<TemplateRef<TableTemplateContext> | null>;
|
|
453
521
|
headerTitleTemplate: Signal<TemplateRef<TableTemplateContext> | null>;
|
|
@@ -576,5 +644,5 @@ declare function withTable(config?: TableFeatureConfig): CommonsFeature;
|
|
|
576
644
|
*/
|
|
577
645
|
declare function provideTableChild(config?: TableFeatureConfig): Provider[];
|
|
578
646
|
|
|
579
|
-
export { COMMONS_TABLE_FEATURE_CONFIG_IT, FilterService, FilterValuePipe, LocaleDefaultRowClassPipe, TableColumnValueComponent, TableComponent, TableDataService, TableFilterActiveTagComponent, TableFilterClassPipe, TableFilterComponent, TableFilterFormComponent, TableHeaderWithFiltersComponent, TableTemplateDirective, createFilterDescriptorsFromGeneric, filterAdjustDisplayValueOnMatchModeChange, filterApplySerializationConfigToCmp, filterAreDatesEqual, filterGenerateMatchModeOptions, filterGetDateConfig, filterGetDefaultMatchMode, filterGetNumberConfig, filterSetStateOnChange, filterSetStateOnDisplayChange, generateTableLayoutPrefsKey, isFilterValueBlank, provideTableChild, tableNotificationError, withTable };
|
|
580
|
-
export type { ColumnWithPreferences, FilterActiveTagEvent, FilterConfig, FilterDateConfig, FilterFormEmitEvent, FilterNumberConfig, FilterStateWithConfig, ITable, TableFeatureConfig };
|
|
647
|
+
export { ADataListService, COMMONS_TABLE_FEATURE_CONFIG_IT, FilterService, FilterValuePipe, LocaleDefaultRowClassPipe, TableColumnValueComponent, TableComponent, TableDataService, TableFilterActiveTagComponent, TableFilterClassPipe, TableFilterComponent, TableFilterFormComponent, TableHeaderWithFiltersComponent, TableTemplateDirective, createFilterDescriptorsFromGeneric, filterAdjustDisplayValueOnMatchModeChange, filterApplySerializationConfigToCmp, filterAreDatesEqual, filterGenerateMatchModeOptions, filterGetDateConfig, filterGetDefaultMatchMode, filterGetNumberConfig, filterSetStateOnChange, filterSetStateOnDisplayChange, generateTableLayoutPrefsKey, isFilterValueBlank, provideTableChild, tableNotificationError, withTable };
|
|
648
|
+
export type { ColumnWithPreferences, FilterActiveTagEvent, FilterConfig, FilterDateConfig, FilterFormEmitEvent, FilterNumberConfig, FilterStateWithConfig, ITable, SearchState, TableFeatureConfig };
|
package/tableview/api/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InputSignal, OutputEmitterRef, Type, InputSignalWithTransform, WritableSignal, Injector, InjectionToken } from '@angular/core';
|
|
3
3
|
import * as _mediusinc_mng_commons_core from '@mediusinc/mng-commons/core';
|
|
4
|
-
import { IdType, ActionData, ActionParameters, GetterFn, StyleLevelEnum, ServiceClassType, ILookupDataProvider, ILookupDescriptor, LookupDataProviderLookupFnType, EnumValue, EnumConstantType, ItemOrObservable, ArrayItemType, ITableviewDescriptor, ITableDescriptor, CommonPropsObjType3, IEditorDescriptor, IDataProvider, Nullable, IActionDescriptor, APermissions, ClassType, ServiceClassOptType, Undefined, DataProviderInst, StyleSizeEnum, DataListResult, CommonsErrorBaseOptions, ACommonsErrorBase, ICommonsActionError, ClassFunctionKeysWithParamAndReturnType, ClassFunctionKeyParam1ObjKeyExtendsOfTargetType, CommonsRouteData } from '@mediusinc/mng-commons/core';
|
|
4
|
+
import { IdType, ActionData, ActionParameters, GetterFn, PrimeMessageSeverityType, StyleLevelEnum, ServiceClassType, ILookupDataProvider, ILookupDescriptor, LookupDataProviderLookupFnType, EnumValue, EnumConstantType, ItemOrObservable, ArrayItemType, ITableviewDescriptor, ITableDescriptor, CommonPropsObjType3, IEditorDescriptor, IDataProvider, Nullable, IActionDescriptor, APermissions, ClassType, ServiceClassOptType, Undefined, DataProviderInst, StyleSizeEnum, DataListResult, CommonsErrorBaseOptions, ACommonsErrorBase, ICommonsActionError, ClassFunctionKeysWithParamAndReturnType, ClassFunctionKeyParam1ObjKeyExtendsOfTargetType, CommonsRouteData } from '@mediusinc/mng-commons/core';
|
|
5
5
|
import { IActionButtonDescriptor, InputTrimType, EmptyValueType } from '@mediusinc/mng-commons/form/api';
|
|
6
6
|
import { EnumDescriptor, TypeDescriptor, ModelDescriptor, ModelDescriptorCreateOpts } from '@mediusinc/mng-commons/model';
|
|
7
7
|
import { ToastMessageOptions, Confirmation } from 'primeng/api';
|
|
@@ -450,7 +450,7 @@ interface FieldActionResult {
|
|
|
450
450
|
}
|
|
451
451
|
interface FieldActionResultMessage {
|
|
452
452
|
content: string;
|
|
453
|
-
severity?:
|
|
453
|
+
severity?: PrimeMessageSeverityType;
|
|
454
454
|
}
|
|
455
455
|
|
|
456
456
|
type FieldActionRunFnType<EditorModel, ParentEditorModel = undefined> = (ctx: FieldActionContext<EditorModel, ParentEditorModel>) => void | FieldActionResult | Observable<FieldActionResult>;
|
|
@@ -659,6 +659,10 @@ type FieldInputDatePickerDisplayOptsType = {
|
|
|
659
659
|
format?: string;
|
|
660
660
|
showTime?: boolean;
|
|
661
661
|
showSeconds?: boolean;
|
|
662
|
+
showMilliseconds?: boolean;
|
|
663
|
+
primeTimePicker?: boolean;
|
|
664
|
+
timeSelectInterval?: number;
|
|
665
|
+
timeSelect?: boolean;
|
|
662
666
|
};
|
|
663
667
|
type FieldInputDateValidationOptsType<FieldValue, EditorModel, ParentEditorModel> = {
|
|
664
668
|
min?: Date | FieldInputDatePickerDynamicMinMaxFnType<FieldValue, EditorModel, ParentEditorModel>;
|
|
@@ -742,6 +746,10 @@ declare class FieldInputDescriptor<EditorModel, FieldModel = FieldInputDescripto
|
|
|
742
746
|
private _datePickerMax?;
|
|
743
747
|
private _datePickerShowTime?;
|
|
744
748
|
private _datePickerShowSeconds?;
|
|
749
|
+
private _datePickerShowMilliseconds?;
|
|
750
|
+
private _datePickerPrimeTimePicker?;
|
|
751
|
+
private _datePickerTimeSelectInterval?;
|
|
752
|
+
private _datePickerTimeSelect?;
|
|
745
753
|
private _datePickerValueUtc?;
|
|
746
754
|
private _datePickerValueNoTimezone?;
|
|
747
755
|
private _datePickerValueNoTime?;
|
|
@@ -790,6 +798,10 @@ declare class FieldInputDescriptor<EditorModel, FieldModel = FieldInputDescripto
|
|
|
790
798
|
get datePickerMax(): Date | FieldInputDatePickerDynamicMinMaxFnType<FieldValue, EditorModel, ParentEditorModel> | undefined;
|
|
791
799
|
get datePickerShowTime(): boolean | undefined;
|
|
792
800
|
get datePickerShowSeconds(): boolean | undefined;
|
|
801
|
+
get datePickerShowMilliseconds(): boolean | undefined;
|
|
802
|
+
get datePickerPrimeTimePicker(): boolean | undefined;
|
|
803
|
+
get datePickerTimeSelect(): boolean | undefined;
|
|
804
|
+
get datePickerTimeSelectInterval(): number | undefined;
|
|
793
805
|
get datePickerValueUtc(): boolean | undefined;
|
|
794
806
|
get datePickerValueNoTimezone(): boolean | undefined;
|
|
795
807
|
get datePickerValueNoTime(): boolean | undefined;
|
|
@@ -1780,6 +1792,7 @@ declare class ActionEditorDescriptorInst<Item, Service = any, EditorItem = Item,
|
|
|
1780
1792
|
protected _fetchNotificationOnError?: ActionNotificationType | boolean;
|
|
1781
1793
|
protected _dialogSize: StyleSizeEnum;
|
|
1782
1794
|
protected _dialogClassName?: string;
|
|
1795
|
+
protected _dialogIsMaximizable?: boolean;
|
|
1783
1796
|
protected _fetchFunction?: ActionEditorRunFnType<Item, ParentEditorItem, Service, FetchInputItem, EditorItem>;
|
|
1784
1797
|
protected _submitFunction?: ActionEditorRunFnType<Item, ParentEditorItem, Service, EditorItem, SubmitReturnItem>;
|
|
1785
1798
|
protected _editorComponent?: Type<any>;
|
|
@@ -1792,6 +1805,7 @@ declare class ActionEditorDescriptorInst<Item, Service = any, EditorItem = Item,
|
|
|
1792
1805
|
get editorDescriptor(): EditorDescriptorInst<EditorItem, ParentEditorItem>;
|
|
1793
1806
|
get dialogSize(): StyleSizeEnum;
|
|
1794
1807
|
get dialogClassName(): string | undefined;
|
|
1808
|
+
get dialogIsMaximizable(): boolean | undefined;
|
|
1795
1809
|
get fetchNotificationOnSuccess(): boolean | ActionNotificationType | undefined;
|
|
1796
1810
|
get fetchNotificationOnError(): boolean | ActionNotificationType | undefined;
|
|
1797
1811
|
get dataProvider(): IEditorDataProvider<Item, any> | undefined;
|
|
@@ -1809,6 +1823,7 @@ declare class ActionEditorDescriptorInst<Item, Service = any, EditorItem = Item,
|
|
|
1809
1823
|
withEditorTitle(title: string | null, params?: any): this;
|
|
1810
1824
|
withDialogSize(size?: StyleSizeEnum): this;
|
|
1811
1825
|
withDialogClassName(className: string): this;
|
|
1826
|
+
withDialogMaximizable(isMaximizable?: boolean): this;
|
|
1812
1827
|
withRunFunction(fn: ActionEditorRunFnType<Item, ParentEditorItem, Service, EditorItem, SubmitReturnItem>): this;
|
|
1813
1828
|
withFetchFunction(fn: ActionEditorRunFnType<Item, ParentEditorItem, Service, FetchInputItem, EditorItem>): this;
|
|
1814
1829
|
withSubmitFunction(fn: ActionEditorRunFnType<Item, ParentEditorItem, Service, EditorItem, SubmitReturnItem>): this;
|
package/tableview/index.d.ts
CHANGED
|
@@ -268,7 +268,12 @@ declare class FormEditorComponent<Item = any, ParentItem = any> implements IForm
|
|
|
268
268
|
private _formlyInitialItem;
|
|
269
269
|
private initialItemInput;
|
|
270
270
|
private setterFields;
|
|
271
|
-
formMessages: _angular_core.WritableSignal<ToastMessageOptions[]>;
|
|
271
|
+
readonly formMessages: _angular_core.WritableSignal<ToastMessageOptions[]>;
|
|
272
|
+
protected readonly formMessagesTypeNarrowed: _angular_core.Signal<{
|
|
273
|
+
severity: _mediusinc_mng_commons_core.PrimeMessageSeverityType | undefined;
|
|
274
|
+
text: string | undefined;
|
|
275
|
+
icon: string | undefined;
|
|
276
|
+
}[]>;
|
|
272
277
|
readonly restoreLocalStateButtonStyle: string;
|
|
273
278
|
readonly previewLocalStateButtonStyle: string;
|
|
274
279
|
readonly clearLocalStateButtonStyle: string;
|
|
@@ -1058,6 +1063,7 @@ declare class FormlyFieldTableDialogMultiselectComponent extends ACommonsFormlyF
|
|
|
1058
1063
|
declare class FormlyFieldTabsComponent extends ACommonsFormlyGroupType<any, any, FieldTabGroupDescriptor<any>> implements OnInit {
|
|
1059
1064
|
fieldGroup: _angular_core.WritableSignal<CommonsFormlyFieldConfig<any, any, any, _mediusinc_mng_commons_tableview_api.CommonsFormlyFieldProps<any, any, any>>[]>;
|
|
1060
1065
|
ngOnInit(): void;
|
|
1066
|
+
protected onEscape(): void;
|
|
1061
1067
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FormlyFieldTabsComponent, never>;
|
|
1062
1068
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FormlyFieldTabsComponent, "mng-formly-field-tabs", never, {}, {}, never, never, true, never>;
|
|
1063
1069
|
}
|
package/version-info.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mediusinc/mng-commons",
|
|
3
|
-
"version": "7.0.0-rc.
|
|
4
|
-
"tag":
|
|
5
|
-
"distance":
|
|
6
|
-
"hash": "
|
|
3
|
+
"version": "7.0.0-rc.2",
|
|
4
|
+
"tag": null,
|
|
5
|
+
"distance": null,
|
|
6
|
+
"hash": "66a002f",
|
|
7
7
|
"dirty": true,
|
|
8
|
-
"semver":
|
|
8
|
+
"semver": null,
|
|
9
9
|
"buildTimestamp": null,
|
|
10
|
-
"raw": "
|
|
10
|
+
"raw": "7.0.0-rc.2-66a002f-dirty"
|
|
11
11
|
}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { NgClass } from '@angular/common';
|
|
2
|
-
import * as i0 from '@angular/core';
|
|
3
|
-
import { inject, input, computed, ChangeDetectionStrategy, Component } from '@angular/core';
|
|
4
|
-
import * as i1 from '@angular/forms';
|
|
5
|
-
import { FormsModule } from '@angular/forms';
|
|
6
|
-
import { TranslatePipe } from '@ngx-translate/core';
|
|
7
|
-
import { Button } from 'primeng/button';
|
|
8
|
-
import { MultiSelect } from 'primeng/multiselect';
|
|
9
|
-
import { Tooltip } from 'primeng/tooltip';
|
|
10
|
-
import { I18nPropertyPipe } from '@mediusinc/mng-commons/core';
|
|
11
|
-
import { T as TableMetadataService, a as TablePreferencesService } from './mediusinc-mng-commons-table-mediusinc-mng-commons-table-BsAwyXiN.mjs';
|
|
12
|
-
|
|
13
|
-
class TableColumnToggleComponent {
|
|
14
|
-
constructor() {
|
|
15
|
-
this.metadata = inject(TableMetadataService);
|
|
16
|
-
this.prefs = inject(TablePreferencesService);
|
|
17
|
-
// data source inputs
|
|
18
|
-
this.columns = input.required(...(ngDevMode ? [{ debugName: "columns" }] : []));
|
|
19
|
-
this.anyColumnVisible = computed(() => this.columns().length > 0, ...(ngDevMode ? [{ debugName: "anyColumnVisible" }] : []));
|
|
20
|
-
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TableColumnToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.1.7", type: TableColumnToggleComponent, isStandalone: true, selector: "mng-table-column-toggle", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<p-multiSelect\n #columnToggleMultiselect\n styleClass=\"p-button-primary mng-table-columns-multiselect\"\n appendTo=\"body\"\n dataKey=\"id\"\n tooltipPosition=\"left\"\n placeholder=\"\"\n dropdownIcon=\"pi pi-sliders-h\"\n [filter]=\"false\"\n [options]=\"prefs.columnsWithPrefs()\"\n [ngModel]=\"columns()\"\n [pTooltip]=\"'mngTable.adjustTable' | translate\"\n [displaySelectedLabel]=\"false\"\n (onChange)=\"prefs.onColumnToggle($event)\">\n <ng-template #filter>\n <div class=\"flex w-full justify-between items-center\">\n <div class=\"p-checkbox\">\n <div class=\"p-hidden-accessible\">\n <input type=\"checkbox\" readonly=\"readonly\" [checked]=\"columnToggleMultiselect.allSelected\" (keydown.space)=\"columnToggleMultiselect.onToggleAll($event)\" />\n </div>\n <div\n class=\"p-checkbox-box cursor-pointer\"\n role=\"checkbox\"\n [attr.aria-checked]=\"columnToggleMultiselect.allSelected\"\n [class.p-select-option-selected]=\"anyColumnVisible()\"\n (click)=\"prefs.onColumnToggleAll()\">\n <span class=\"p-checkbox-icon\" [ngClass]=\"{'pi pi-check': anyColumnVisible()}\"></span>\n </div>\n </div>\n <p-button\n icon=\"pi pi-replay\"\n severity=\"secondary\"\n text=\"true\"\n tooltipPosition=\"left\"\n [pTooltip]=\"'mngTable.resetLayout' | translate\"\n (click)=\"prefs.clearLayoutPreferences()\"></p-button>\n </div>\n </ng-template>\n <ng-template #item let-item>\n {{\n (item.descriptor.title && !item.descriptor.titleUseModelBase\n ? item.descriptor.title\n : (item.descriptor.title ?? item.descriptor.property | mngI18nProperty: metadata.descriptor().model)\n ) | translate\n }}\n </ng-template>\n</p-multiSelect>\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: MultiSelect, selector: "p-multiSelect, p-multiselect, p-multi-select", inputs: ["id", "ariaLabel", "styleClass", "panelStyle", "panelStyleClass", "inputId", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "dataKey", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "chipIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "placeholder", "options", "filterValue", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus", "highlightOnSelect", "size", "variant", "fluid", "appendTo"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions", "appendTo"] }, { kind: "component", type: Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "variant", "style", "styleClass", "badgeClass", "badgeSeverity", "ariaLabel", "buttonProps", "autofocus", "fluid"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: I18nPropertyPipe, name: "mngI18nProperty" }, { kind: "pipe", type: TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
23
|
-
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: TableColumnToggleComponent, decorators: [{
|
|
25
|
-
type: Component,
|
|
26
|
-
args: [{ selector: 'mng-table-column-toggle', imports: [I18nPropertyPipe, NgClass, MultiSelect, FormsModule, TranslatePipe, Tooltip, Button], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-multiSelect\n #columnToggleMultiselect\n styleClass=\"p-button-primary mng-table-columns-multiselect\"\n appendTo=\"body\"\n dataKey=\"id\"\n tooltipPosition=\"left\"\n placeholder=\"\"\n dropdownIcon=\"pi pi-sliders-h\"\n [filter]=\"false\"\n [options]=\"prefs.columnsWithPrefs()\"\n [ngModel]=\"columns()\"\n [pTooltip]=\"'mngTable.adjustTable' | translate\"\n [displaySelectedLabel]=\"false\"\n (onChange)=\"prefs.onColumnToggle($event)\">\n <ng-template #filter>\n <div class=\"flex w-full justify-between items-center\">\n <div class=\"p-checkbox\">\n <div class=\"p-hidden-accessible\">\n <input type=\"checkbox\" readonly=\"readonly\" [checked]=\"columnToggleMultiselect.allSelected\" (keydown.space)=\"columnToggleMultiselect.onToggleAll($event)\" />\n </div>\n <div\n class=\"p-checkbox-box cursor-pointer\"\n role=\"checkbox\"\n [attr.aria-checked]=\"columnToggleMultiselect.allSelected\"\n [class.p-select-option-selected]=\"anyColumnVisible()\"\n (click)=\"prefs.onColumnToggleAll()\">\n <span class=\"p-checkbox-icon\" [ngClass]=\"{'pi pi-check': anyColumnVisible()}\"></span>\n </div>\n </div>\n <p-button\n icon=\"pi pi-replay\"\n severity=\"secondary\"\n text=\"true\"\n tooltipPosition=\"left\"\n [pTooltip]=\"'mngTable.resetLayout' | translate\"\n (click)=\"prefs.clearLayoutPreferences()\"></p-button>\n </div>\n </ng-template>\n <ng-template #item let-item>\n {{\n (item.descriptor.title && !item.descriptor.titleUseModelBase\n ? item.descriptor.title\n : (item.descriptor.title ?? item.descriptor.property | mngI18nProperty: metadata.descriptor().model)\n ) | translate\n }}\n </ng-template>\n</p-multiSelect>\n" }]
|
|
27
|
-
}] });
|
|
28
|
-
|
|
29
|
-
export { TableColumnToggleComponent };
|
|
30
|
-
//# sourceMappingURL=mediusinc-mng-commons-table-column-toggle.component-0Dtv48mq.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"mediusinc-mng-commons-table-column-toggle.component-0Dtv48mq.mjs","sources":["../tmp-esm2022/table/components/column-toggle/column-toggle.component.js"],"sourcesContent":["import { NgClass } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Button } from 'primeng/button';\nimport { MultiSelect } from 'primeng/multiselect';\nimport { Tooltip } from 'primeng/tooltip';\nimport { I18nPropertyPipe } from '@mediusinc/mng-commons/core';\nimport { TableMetadataService } from '../../services/table-metadata.service';\nimport { TablePreferencesService } from '../../services/table-preferences.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nexport class TableColumnToggleComponent {\n constructor() {\n this.metadata = inject(TableMetadataService);\n this.prefs = inject(TablePreferencesService);\n // data source inputs\n this.columns = input.required(...(ngDevMode ? [{ debugName: \"columns\" }] : []));\n this.anyColumnVisible = computed(() => this.columns().length > 0, ...(ngDevMode ? [{ debugName: \"anyColumnVisible\" }] : []));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TableColumnToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.1.0\", version: \"20.1.7\", type: TableColumnToggleComponent, isStandalone: true, selector: \"mng-table-column-toggle\", inputs: { columns: { classPropertyName: \"columns\", publicName: \"columns\", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: \"<p-multiSelect\\n #columnToggleMultiselect\\n styleClass=\\\"p-button-primary mng-table-columns-multiselect\\\"\\n appendTo=\\\"body\\\"\\n dataKey=\\\"id\\\"\\n tooltipPosition=\\\"left\\\"\\n placeholder=\\\"\\\"\\n dropdownIcon=\\\"pi pi-sliders-h\\\"\\n [filter]=\\\"false\\\"\\n [options]=\\\"prefs.columnsWithPrefs()\\\"\\n [ngModel]=\\\"columns()\\\"\\n [pTooltip]=\\\"'mngTable.adjustTable' | translate\\\"\\n [displaySelectedLabel]=\\\"false\\\"\\n (onChange)=\\\"prefs.onColumnToggle($event)\\\">\\n <ng-template #filter>\\n <div class=\\\"flex w-full justify-between items-center\\\">\\n <div class=\\\"p-checkbox\\\">\\n <div class=\\\"p-hidden-accessible\\\">\\n <input type=\\\"checkbox\\\" readonly=\\\"readonly\\\" [checked]=\\\"columnToggleMultiselect.allSelected\\\" (keydown.space)=\\\"columnToggleMultiselect.onToggleAll($event)\\\" />\\n </div>\\n <div\\n class=\\\"p-checkbox-box cursor-pointer\\\"\\n role=\\\"checkbox\\\"\\n [attr.aria-checked]=\\\"columnToggleMultiselect.allSelected\\\"\\n [class.p-select-option-selected]=\\\"anyColumnVisible()\\\"\\n (click)=\\\"prefs.onColumnToggleAll()\\\">\\n <span class=\\\"p-checkbox-icon\\\" [ngClass]=\\\"{'pi pi-check': anyColumnVisible()}\\\"></span>\\n </div>\\n </div>\\n <p-button\\n icon=\\\"pi pi-replay\\\"\\n severity=\\\"secondary\\\"\\n text=\\\"true\\\"\\n tooltipPosition=\\\"left\\\"\\n [pTooltip]=\\\"'mngTable.resetLayout' | translate\\\"\\n (click)=\\\"prefs.clearLayoutPreferences()\\\"></p-button>\\n </div>\\n </ng-template>\\n <ng-template #item let-item>\\n {{\\n (item.descriptor.title && !item.descriptor.titleUseModelBase\\n ? item.descriptor.title\\n : (item.descriptor.title ?? item.descriptor.property | mngI18nProperty: metadata.descriptor().model)\\n ) | translate\\n }}\\n </ng-template>\\n</p-multiSelect>\\n\", dependencies: [{ kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"component\", type: MultiSelect, selector: \"p-multiSelect, p-multiselect, p-multi-select\", inputs: [\"id\", \"ariaLabel\", \"styleClass\", \"panelStyle\", \"panelStyleClass\", \"inputId\", \"readonly\", \"group\", \"filter\", \"filterPlaceHolder\", \"filterLocale\", \"overlayVisible\", \"tabindex\", \"dataKey\", \"ariaLabelledBy\", \"displaySelectedLabel\", \"maxSelectedLabels\", \"selectionLimit\", \"selectedItemsLabel\", \"showToggleAll\", \"emptyFilterMessage\", \"emptyMessage\", \"resetFilterOnHide\", \"dropdownIcon\", \"chipIcon\", \"optionLabel\", \"optionValue\", \"optionDisabled\", \"optionGroupLabel\", \"optionGroupChildren\", \"showHeader\", \"filterBy\", \"scrollHeight\", \"lazy\", \"virtualScroll\", \"loading\", \"virtualScrollItemSize\", \"loadingIcon\", \"virtualScrollOptions\", \"overlayOptions\", \"ariaFilterLabel\", \"filterMatchMode\", \"tooltip\", \"tooltipPosition\", \"tooltipPositionStyle\", \"tooltipStyleClass\", \"autofocusFilter\", \"display\", \"autocomplete\", \"showClear\", \"autofocus\", \"placeholder\", \"options\", \"filterValue\", \"selectAll\", \"focusOnHover\", \"filterFields\", \"selectOnFocus\", \"autoOptionFocus\", \"highlightOnSelect\", \"size\", \"variant\", \"fluid\", \"appendTo\"], outputs: [\"onChange\", \"onFilter\", \"onFocus\", \"onBlur\", \"onClick\", \"onClear\", \"onPanelShow\", \"onPanelHide\", \"onLazyLoad\", \"onRemove\", \"onSelectAllChange\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"directive\", type: Tooltip, selector: \"[pTooltip]\", inputs: [\"tooltipPosition\", \"tooltipEvent\", \"positionStyle\", \"tooltipStyleClass\", \"tooltipZIndex\", \"escape\", \"showDelay\", \"hideDelay\", \"life\", \"positionTop\", \"positionLeft\", \"autoHide\", \"fitContent\", \"hideOnEscape\", \"pTooltip\", \"tooltipDisabled\", \"tooltipOptions\", \"appendTo\"] }, { kind: \"component\", type: Button, selector: \"p-button\", inputs: [\"type\", \"iconPos\", \"icon\", \"badge\", \"label\", \"disabled\", \"loading\", \"loadingIcon\", \"raised\", \"rounded\", \"text\", \"plain\", \"severity\", \"outlined\", \"link\", \"tabindex\", \"size\", \"variant\", \"style\", \"styleClass\", \"badgeClass\", \"badgeSeverity\", \"ariaLabel\", \"buttonProps\", \"autofocus\", \"fluid\"], outputs: [\"onClick\", \"onFocus\", \"onBlur\"] }, { kind: \"pipe\", type: I18nPropertyPipe, name: \"mngI18nProperty\" }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.7\", ngImport: i0, type: TableColumnToggleComponent, decorators: [{\n type: Component,\n args: [{ selector: 'mng-table-column-toggle', imports: [I18nPropertyPipe, NgClass, MultiSelect, FormsModule, TranslatePipe, Tooltip, Button], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<p-multiSelect\\n #columnToggleMultiselect\\n styleClass=\\\"p-button-primary mng-table-columns-multiselect\\\"\\n appendTo=\\\"body\\\"\\n dataKey=\\\"id\\\"\\n tooltipPosition=\\\"left\\\"\\n placeholder=\\\"\\\"\\n dropdownIcon=\\\"pi pi-sliders-h\\\"\\n [filter]=\\\"false\\\"\\n [options]=\\\"prefs.columnsWithPrefs()\\\"\\n [ngModel]=\\\"columns()\\\"\\n [pTooltip]=\\\"'mngTable.adjustTable' | translate\\\"\\n [displaySelectedLabel]=\\\"false\\\"\\n (onChange)=\\\"prefs.onColumnToggle($event)\\\">\\n <ng-template #filter>\\n <div class=\\\"flex w-full justify-between items-center\\\">\\n <div class=\\\"p-checkbox\\\">\\n <div class=\\\"p-hidden-accessible\\\">\\n <input type=\\\"checkbox\\\" readonly=\\\"readonly\\\" [checked]=\\\"columnToggleMultiselect.allSelected\\\" (keydown.space)=\\\"columnToggleMultiselect.onToggleAll($event)\\\" />\\n </div>\\n <div\\n class=\\\"p-checkbox-box cursor-pointer\\\"\\n role=\\\"checkbox\\\"\\n [attr.aria-checked]=\\\"columnToggleMultiselect.allSelected\\\"\\n [class.p-select-option-selected]=\\\"anyColumnVisible()\\\"\\n (click)=\\\"prefs.onColumnToggleAll()\\\">\\n <span class=\\\"p-checkbox-icon\\\" [ngClass]=\\\"{'pi pi-check': anyColumnVisible()}\\\"></span>\\n </div>\\n </div>\\n <p-button\\n icon=\\\"pi pi-replay\\\"\\n severity=\\\"secondary\\\"\\n text=\\\"true\\\"\\n tooltipPosition=\\\"left\\\"\\n [pTooltip]=\\\"'mngTable.resetLayout' | translate\\\"\\n (click)=\\\"prefs.clearLayoutPreferences()\\\"></p-button>\\n </div>\\n </ng-template>\\n <ng-template #item let-item>\\n {{\\n (item.descriptor.title && !item.descriptor.titleUseModelBase\\n ? item.descriptor.title\\n : (item.descriptor.title ?? item.descriptor.property | mngI18nProperty: metadata.descriptor().model)\\n ) | translate\\n }}\\n </ng-template>\\n</p-multiSelect>\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXRvZ2dsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi90YWJsZS9zcmMvY29tcG9uZW50cy9jb2x1bW4tdG9nZ2xlL2NvbHVtbi10b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vdGFibGUvc3JjL2NvbXBvbmVudHMvY29sdW1uLXRvZ2dsZS9jb2x1bW4tdG9nZ2xlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4QyxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFFeEMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFHN0QsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sMENBQTBDLENBQUM7OztBQVFqRixNQUFNLE9BQU8sMEJBQTBCO0lBTnZDO1FBT3VCLGFBQVEsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxVQUFLLEdBQUcsTUFBTSxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFFM0QscUJBQXFCO1FBQ0wsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLGtEQUEyQixDQUFDO1FBRTFELHFCQUFnQixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsNERBQUMsQ0FBQztLQUMxRTs4R0FSWSwwQkFBMEI7a0dBQTFCLDBCQUEwQiw0TkNyQnZDLG9pRUErQ0EsNENEN0JnQyxPQUFPLG9GQUFFLFdBQVcsaXZDQUFFLFdBQVcsK1ZBQWlCLE9BQU8sNlVBQUUsTUFBTSxxWUFBbkYsZ0JBQWdCLG1EQUFxQyxhQUFhOzsyRkFHbkUsMEJBQTBCO2tCQU50QyxTQUFTOytCQUNJLHlCQUF5QixXQUUxQixDQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxDQUFDLG1CQUM3RSx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ0NsYXNzfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7VHJhbnNsYXRlUGlwZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0J1dHRvbn0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHtNdWx0aVNlbGVjdH0gZnJvbSAncHJpbWVuZy9tdWx0aXNlbGVjdCc7XG5pbXBvcnQge1Rvb2x0aXB9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5cbmltcG9ydCB7STE4blByb3BlcnR5UGlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtDb2x1bW5XaXRoUHJlZmVyZW5jZXN9IGZyb20gJy4uLy4uL21vZGVscy9jb2x1bW4tcHJlZmVyZW5jZXMubW9kZWwnO1xuaW1wb3J0IHtUYWJsZU1ldGFkYXRhU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFibGUtbWV0YWRhdGEuc2VydmljZSc7XG5pbXBvcnQge1RhYmxlUHJlZmVyZW5jZXNTZXJ2aWNlfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWJsZS1wcmVmZXJlbmNlcy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctdGFibGUtY29sdW1uLXRvZ2dsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtJMThuUHJvcGVydHlQaXBlLCBOZ0NsYXNzLCBNdWx0aVNlbGVjdCwgRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZVBpcGUsIFRvb2x0aXAsIEJ1dHRvbl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVDb2x1bW5Ub2dnbGVDb21wb25lbnQge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBtZXRhZGF0YSA9IGluamVjdChUYWJsZU1ldGFkYXRhU2VydmljZSk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZWZzID0gaW5qZWN0KFRhYmxlUHJlZmVyZW5jZXNTZXJ2aWNlKTtcblxuICAgIC8vIGRhdGEgc291cmNlIGlucHV0c1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5zID0gaW5wdXQucmVxdWlyZWQ8Q29sdW1uV2l0aFByZWZlcmVuY2VzW10+KCk7XG5cbiAgICBwcm90ZWN0ZWQgYW55Q29sdW1uVmlzaWJsZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY29sdW1ucygpLmxlbmd0aCA+IDApO1xufVxuIiwiPHAtbXVsdGlTZWxlY3RcbiAgICAjY29sdW1uVG9nZ2xlTXVsdGlzZWxlY3RcbiAgICBzdHlsZUNsYXNzPVwicC1idXR0b24tcHJpbWFyeSBtbmctdGFibGUtY29sdW1ucy1tdWx0aXNlbGVjdFwiXG4gICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICBkYXRhS2V5PVwiaWRcIlxuICAgIHRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuICAgIHBsYWNlaG9sZGVyPVwiXCJcbiAgICBkcm9wZG93bkljb249XCJwaSBwaS1zbGlkZXJzLWhcIlxuICAgIFtmaWx0ZXJdPVwiZmFsc2VcIlxuICAgIFtvcHRpb25zXT1cInByZWZzLmNvbHVtbnNXaXRoUHJlZnMoKVwiXG4gICAgW25nTW9kZWxdPVwiY29sdW1ucygpXCJcbiAgICBbcFRvb2x0aXBdPVwiJ21uZ1RhYmxlLmFkanVzdFRhYmxlJyB8IHRyYW5zbGF0ZVwiXG4gICAgW2Rpc3BsYXlTZWxlY3RlZExhYmVsXT1cImZhbHNlXCJcbiAgICAob25DaGFuZ2UpPVwicHJlZnMub25Db2x1bW5Ub2dnbGUoJGV2ZW50KVwiPlxuICAgIDxuZy10ZW1wbGF0ZSAjZmlsdGVyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCB3LWZ1bGwganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1oaWRkZW4tYWNjZXNzaWJsZVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgcmVhZG9ubHk9XCJyZWFkb25seVwiIFtjaGVja2VkXT1cImNvbHVtblRvZ2dsZU11bHRpc2VsZWN0LmFsbFNlbGVjdGVkXCIgKGtleWRvd24uc3BhY2UpPVwiY29sdW1uVG9nZ2xlTXVsdGlzZWxlY3Qub25Ub2dnbGVBbGwoJGV2ZW50KVwiIC8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInAtY2hlY2tib3gtYm94IGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgICAgICAgcm9sZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cImNvbHVtblRvZ2dsZU11bHRpc2VsZWN0LmFsbFNlbGVjdGVkXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnAtc2VsZWN0LW9wdGlvbi1zZWxlY3RlZF09XCJhbnlDb2x1bW5WaXNpYmxlKClcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJlZnMub25Db2x1bW5Ub2dnbGVBbGwoKVwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInAtY2hlY2tib3gtaWNvblwiIFtuZ0NsYXNzXT1cInsncGkgcGktY2hlY2snOiBhbnlDb2x1bW5WaXNpYmxlKCl9XCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8cC1idXR0b25cbiAgICAgICAgICAgICAgICBpY29uPVwicGkgcGktcmVwbGF5XCJcbiAgICAgICAgICAgICAgICBzZXZlcml0eT1cInNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgdGV4dD1cInRydWVcIlxuICAgICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgICAgIFtwVG9vbHRpcF09XCInbW5nVGFibGUucmVzZXRMYXlvdXQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicHJlZnMuY2xlYXJMYXlvdXRQcmVmZXJlbmNlcygpXCI+PC9wLWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2l0ZW0gbGV0LWl0ZW0+XG4gICAgICAgIHt7XG4gICAgICAgICAgICAoaXRlbS5kZXNjcmlwdG9yLnRpdGxlICYmICFpdGVtLmRlc2NyaXB0b3IudGl0bGVVc2VNb2RlbEJhc2VcbiAgICAgICAgICAgICAgICA/IGl0ZW0uZGVzY3JpcHRvci50aXRsZVxuICAgICAgICAgICAgICAgIDogKGl0ZW0uZGVzY3JpcHRvci50aXRsZSA/PyBpdGVtLmRlc2NyaXB0b3IucHJvcGVydHkgfCBtbmdJMThuUHJvcGVydHk6IG1ldGFkYXRhLmRlc2NyaXB0b3IoKS5tb2RlbClcbiAgICAgICAgICAgICkgfCB0cmFuc2xhdGVcbiAgICAgICAgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuPC9wLW11bHRpU2VsZWN0PlxuIl19"],"names":[],"mappings":"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"}
|