@one-paragon/angular-utilities 2.8.4 → 2.8.6
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/one-paragon-angular-utilities.mjs +7350 -0
- package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -0
- package/package.json +27 -15
- package/types/one-paragon-angular-utilities.d.ts +2211 -0
- package/karma.conf.js +0 -43
- package/ng-package.json +0 -7
- package/src/action-state/action-state-spinner/action-state-spinner.component.css +0 -16
- package/src/action-state/action-state-spinner/action-state-spinner.component.html +0 -7
- package/src/action-state/action-state-spinner/action-state-spinner.component.spec.ts +0 -25
- package/src/action-state/action-state-spinner/action-state-spinner.component.ts +0 -26
- package/src/action-state/action-state-ui/action-state-ui.module.ts +0 -13
- package/src/action-state/index.ts +0 -8
- package/src/action-state/ngrx-ext/ngrx-ext.module.ts +0 -14
- package/src/action-state/ngrx.ts +0 -69
- package/src/http-request-state/RequestStateFactory.ts +0 -56
- package/src/http-request-state/RequestStateStore.ts +0 -360
- package/src/http-request-state/deprecated.ts +0 -20
- package/src/http-request-state/directives/HttpStateDirectiveBase.ts +0 -29
- package/src/http-request-state/directives/http-error-state-directive.ts +0 -21
- package/src/http-request-state/directives/http-inProgress-state-directive.ts +0 -19
- package/src/http-request-state/directives/http-notStarted-state-directive.ts +0 -19
- package/src/http-request-state/directives/http-success-state-directive.ts +0 -29
- package/src/http-request-state/directives/index.ts +0 -5
- package/src/http-request-state/directives/request-state-directive.spec.ts +0 -73
- package/src/http-request-state/directives/request-state-directive.ts +0 -78
- package/src/http-request-state/documentation/CREATE-REQUESTOR.md +0 -667
- package/src/http-request-state/documentation/README.md +0 -191
- package/src/http-request-state/documentation/REQUEST-STATE-STORE-CONFIG.md +0 -648
- package/src/http-request-state/documentation/REQUESTOR.md +0 -616
- package/src/http-request-state/helpers.ts +0 -30
- package/src/http-request-state/http-state-module.ts +0 -23
- package/src/http-request-state/index.ts +0 -7
- package/src/http-request-state/models/view-context.ts +0 -18
- package/src/http-request-state/observable.spec.ts +0 -43
- package/src/http-request-state/request-state.ts +0 -66
- package/src/http-request-state/rxjs/getRequestorBody.ts +0 -10
- package/src/http-request-state/rxjs/getRequestorState.ts +0 -8
- package/src/http-request-state/rxjs/index.ts +0 -4
- package/src/http-request-state/rxjs/tapError.ts +0 -16
- package/src/http-request-state/rxjs/tapSuccess.ts +0 -16
- package/src/http-request-state/strategies.spec.ts +0 -42
- package/src/http-request-state/types.ts +0 -54
- package/src/ngrx/actionable-selector.ts +0 -189
- package/src/ngrx/index.ts +0 -1
- package/src/public-api.ts +0 -40
- package/src/rxjs/defaultShareReplay.ts +0 -8
- package/src/rxjs/index.ts +0 -5
- package/src/rxjs/mapError.ts +0 -8
- package/src/rxjs/rxjs-operators.ts +0 -130
- package/src/rxjs/subjectifier.ts +0 -17
- package/src/rxjs/subscriber.directive.ts +0 -57
- package/src/specs/clickSubject.spec.ts +0 -99
- package/src/specs/dialog.spec.ts +0 -101
- package/src/specs/toggleGroupDirective.spec.ts +0 -229
- package/src/table-builder/classes/DefaultSettings.ts +0 -11
- package/src/table-builder/classes/MatTableObservableDataSource.ts +0 -23
- package/src/table-builder/classes/TableBuilderConfig.ts +0 -49
- package/src/table-builder/classes/TableBuilderDataSource.ts +0 -64
- package/src/table-builder/classes/TableState.ts +0 -96
- package/src/table-builder/classes/data-store.ts +0 -10
- package/src/table-builder/classes/display-col.ts +0 -5
- package/src/table-builder/classes/filter-info.ts +0 -129
- package/src/table-builder/classes/table-builder-general-settings.ts +0 -233
- package/src/table-builder/classes/table-builder.ts +0 -105
- package/src/table-builder/classes/table-store.helpers.ts +0 -109
- package/src/table-builder/classes/table-store.ts +0 -540
- package/src/table-builder/components/array-column.component.ts +0 -34
- package/src/table-builder/components/column-builder/column-builder.component.html +0 -109
- package/src/table-builder/components/column-builder/column-builder.component.scss +0 -43
- package/src/table-builder/components/column-builder/column-builder.component.spec.ts +0 -49
- package/src/table-builder/components/column-builder/column-builder.component.ts +0 -130
- package/src/table-builder/components/column-builder/column-helpers.ts +0 -54
- package/src/table-builder/components/column-header-menu/column-header-menu.component.html +0 -128
- package/src/table-builder/components/column-header-menu/column-header-menu.component.scss +0 -97
- package/src/table-builder/components/column-header-menu/column-header-menu.component.ts +0 -113
- package/src/table-builder/components/date-filter/date-filter.component.html +0 -39
- package/src/table-builder/components/date-filter/date-filter.component.ts +0 -33
- package/src/table-builder/components/date-time-filter/date-time-filter.component.html +0 -25
- package/src/table-builder/components/date-time-filter/date-time-filter.component.ts +0 -33
- package/src/table-builder/components/filter/filter.component.html +0 -120
- package/src/table-builder/components/filter/filter.component.scss +0 -60
- package/src/table-builder/components/filter/filter.component.spec.ts +0 -86
- package/src/table-builder/components/filter/filter.component.ts +0 -73
- package/src/table-builder/components/filter/in-list/in-list-filter.component.ts +0 -171
- package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.html +0 -60
- package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.scss +0 -57
- package/src/table-builder/components/gen-col-displayer/gen-col-displayer.component.ts +0 -44
- package/src/table-builder/components/generic-table/generic-table.component.html +0 -140
- package/src/table-builder/components/generic-table/generic-table.component.scss +0 -45
- package/src/table-builder/components/generic-table/generic-table.component.ts +0 -531
- package/src/table-builder/components/generic-table/paginator.component.ts +0 -125
- package/src/table-builder/components/group-by-list/group-by-list.component.css +0 -24
- package/src/table-builder/components/group-by-list/group-by-list.component.html +0 -21
- package/src/table-builder/components/group-by-list/group-by-list.component.spec.ts +0 -23
- package/src/table-builder/components/group-by-list/group-by-list.component.ts +0 -26
- package/src/table-builder/components/in-filter/in-filter.component.css +0 -22
- package/src/table-builder/components/in-filter/in-filter.component.html +0 -38
- package/src/table-builder/components/in-filter/in-filter.component.ts +0 -66
- package/src/table-builder/components/index.ts +0 -9
- package/src/table-builder/components/initialization-component/initialization.component.html +0 -78
- package/src/table-builder/components/initialization-component/initialization.component.ts +0 -28
- package/src/table-builder/components/link-column.component.ts +0 -42
- package/src/table-builder/components/number-filter/number-filter.component.css +0 -10
- package/src/table-builder/components/number-filter/number-filter.component.html +0 -32
- package/src/table-builder/components/number-filter/number-filter.component.spec.ts +0 -30
- package/src/table-builder/components/number-filter/number-filter.component.ts +0 -34
- package/src/table-builder/components/profiles-menu/profiles-menu.component.html +0 -77
- package/src/table-builder/components/profiles-menu/profiles-menu.component.scss +0 -126
- package/src/table-builder/components/profiles-menu/profiles-menu.component.spec.ts +0 -23
- package/src/table-builder/components/profiles-menu/profiles-menu.component.ts +0 -64
- package/src/table-builder/components/reset-menu/reset-menu.component.css +0 -3
- package/src/table-builder/components/reset-menu/reset-menu.component.html +0 -10
- package/src/table-builder/components/reset-menu/reset-menu.component.ts +0 -87
- package/src/table-builder/components/scroll-strategy.ts +0 -139
- package/src/table-builder/components/sort-menu/sort-menu.component-store.ts +0 -57
- package/src/table-builder/components/sort-menu/sort-menu.component.html +0 -115
- package/src/table-builder/components/sort-menu/sort-menu.component.scss +0 -119
- package/src/table-builder/components/sort-menu/sort-menu.component.ts +0 -88
- package/src/table-builder/components/table-container/table-container.component.html +0 -94
- package/src/table-builder/components/table-container/table-container.component.scss +0 -60
- package/src/table-builder/components/table-container/table-container.component.ts +0 -467
- package/src/table-builder/components/table-container/table-container.helpers/data-state.helpers.ts +0 -113
- package/src/table-builder/components/table-container/table-container.helpers/filter-state.helpers.ts +0 -125
- package/src/table-builder/components/table-container/table-container.helpers/groupBy.helpers.ts +0 -172
- package/src/table-builder/components/table-container/table-container.helpers/meta-data.helpers.ts +0 -19
- package/src/table-builder/components/table-container/table-container.helpers/sort-state.helpers.ts +0 -47
- package/src/table-builder/components/table-container/tableProps.ts +0 -21
- package/src/table-builder/components/table-container/virtual-scroll-container.ts +0 -216
- package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.html +0 -42
- package/src/table-builder/components/table-container-filter/filter-list/filter-list.component.ts +0 -47
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.css +0 -40
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.html +0 -11
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.spec.ts +0 -85
- package/src/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.ts +0 -35
- package/src/table-builder/components/table-container-filter/table-wrapper-filter-store.ts +0 -13
- package/src/table-builder/components/table-header-menu/table-header-menu.component.css +0 -21
- package/src/table-builder/components/table-header-menu/table-header-menu.component.html +0 -48
- package/src/table-builder/components/table-header-menu/table-header-menu.component.ts +0 -36
- package/src/table-builder/directives/custom-cell-directive.ts +0 -63
- package/src/table-builder/directives/custom-header-directive.ts +0 -16
- package/src/table-builder/directives/group-row-directive.ts +0 -91
- package/src/table-builder/directives/index.ts +0 -8
- package/src/table-builder/directives/multi-sort.directive.spec.ts +0 -124
- package/src/table-builder/directives/multi-sort.directive.ts +0 -58
- package/src/table-builder/directives/resize-column.directive.ts +0 -107
- package/src/table-builder/directives/table-wrapper.directive.ts +0 -13
- package/src/table-builder/directives/tb-filter.directive.ts +0 -376
- package/src/table-builder/documentation/table-builder/CUSTOM-CELL.md +0 -568
- package/src/table-builder/documentation/table-builder/CUSTOM-GROUP-ROW.md +0 -356
- package/src/table-builder/documentation/table-builder/METADATA-DOCUMENTATION.md +0 -517
- package/src/table-builder/documentation/table-builder/STYLER-STYLE.md +0 -228
- package/src/table-builder/documentation/table-builder/TABLE-BUILDER-CONFIG.md +0 -325
- package/src/table-builder/documentation/table-builder/TABLE-BUILDER-SETTINGS.md +0 -515
- package/src/table-builder/documentation/table-builder/TABLE-BUILDER.md +0 -430
- package/src/table-builder/documentation/table-builder/TABLE-CONTAINER.md +0 -628
- package/src/table-builder/enums/filterTypes.ts +0 -39
- package/src/table-builder/functions/boolean-filter-function.ts +0 -12
- package/src/table-builder/functions/date-filter-function.ts +0 -85
- package/src/table-builder/functions/download-data.ts +0 -11
- package/src/table-builder/functions/null-filter-function.ts +0 -9
- package/src/table-builder/functions/number-filter-function.ts +0 -47
- package/src/table-builder/functions/sort-data-function.ts +0 -80
- package/src/table-builder/functions/string-filter-function.ts +0 -59
- package/src/table-builder/interfaces/ColumnInfo.ts +0 -9
- package/src/table-builder/interfaces/dictionary.ts +0 -3
- package/src/table-builder/interfaces/meta-data.ts +0 -279
- package/src/table-builder/ngrx/tableBuilderStateStore.ts +0 -203
- package/src/table-builder/pipes/column-total.pipe.ts +0 -16
- package/src/table-builder/pipes/format-filter-type.pipe.ts +0 -12
- package/src/table-builder/pipes/format-filter-value.pipe.ts +0 -71
- package/src/table-builder/pipes/key-display.ts +0 -13
- package/src/table-builder/services/all-values-filter-creator.service.ts +0 -92
- package/src/table-builder/services/export-to-csv.service.ts +0 -117
- package/src/table-builder/services/link-creator.service.ts +0 -98
- package/src/table-builder/services/table-template-service.ts +0 -47
- package/src/table-builder/services/transform-creator.ts +0 -90
- package/src/table-builder/specs/table-custom-filters.spec.ts +0 -262
- package/src/table-builder/styles/collapser.styles.scss +0 -16
- package/src/table-builder/table-builder.module.ts +0 -42
- package/src/table-builder/types/group-types.ts +0 -42
- package/src/table-builder/types/index.ts +0 -1
- package/src/test.ts +0 -17
- package/src/utilities/array-helpers.ts +0 -13
- package/src/utilities/directives/auto-focus.directive.ts +0 -20
- package/src/utilities/directives/clickEmitterDirective.ts +0 -15
- package/src/utilities/directives/clickSubject.ts +0 -19
- package/src/utilities/directives/conditional-classes.directive.ts +0 -36
- package/src/utilities/directives/dialog-service.ts +0 -19
- package/src/utilities/directives/dialog.ts +0 -174
- package/src/utilities/directives/mat-toggle-group-directive.ts +0 -60
- package/src/utilities/directives/prevent-enter.directive.ts +0 -12
- package/src/utilities/directives/stop-propagation.directive.ts +0 -19
- package/src/utilities/directives/styler.ts +0 -45
- package/src/utilities/directives/trim-whitespace.directive.ts +0 -20
- package/src/utilities/index.ts +0 -22
- package/src/utilities/module.ts +0 -53
- package/src/utilities/pipes/function.pipe.ts +0 -21
- package/src/utilities/pipes/phone.pipe.ts +0 -20
- package/src/utilities/pipes/space-case.pipes.spec.ts +0 -47
- package/src/utilities/pipes/space-case.pipes.ts +0 -29
- package/tsconfig.lib.json +0 -20
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { FilterFunc, FilterFuncs, FilterInfo, Range } from '../classes/filter-info';
|
|
2
|
-
import { DateFilterTypes, DateTimeFilterTypes, FilterType } from '../enums/filterTypes';
|
|
3
|
-
import { FieldType } from '../interfaces/meta-data';
|
|
4
|
-
import { splitOutBlankFilter } from '../services/all-values-filter-creator.service';
|
|
5
|
-
import { isNull } from './null-filter-function';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const dateIsOnFunc: FilterFunc<Date> = (filterInfo:FilterInfo) => {
|
|
9
|
-
const isOnVal = new Date( filterInfo.filterValue).getTime();
|
|
10
|
-
const clean = filterInfo.fieldType === FieldType.Date ? (a, b) => b : cleanDateTime
|
|
11
|
-
return ((val) => clean(filterInfo, val).getTime() === isOnVal);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const dateIsNotOnFunc: FilterFunc<Date> = (filterInfo:FilterInfo) => {
|
|
15
|
-
const isNotOnVal = new Date( filterInfo.filterValue).getTime();
|
|
16
|
-
const clean = filterInfo.fieldType === FieldType.Date ? (a, b) => b : cleanDateTime
|
|
17
|
-
return ((val) => clean(filterInfo, val).getTime() !== isNotOnVal);
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const dateIsOnOrAfterFunc: FilterFunc<Date> = (filterInfo:FilterInfo) => {
|
|
21
|
-
const afterVal = new Date( filterInfo.filterValue).getTime();
|
|
22
|
-
const clean = filterInfo.fieldType === FieldType.Date ? (a, b) => b : cleanDateTime
|
|
23
|
-
return ((val) => clean(filterInfo, val).getTime() >= afterVal);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const dateIsOnOrBeforeFunc: FilterFunc<Date> = (filterInfo:FilterInfo) => {
|
|
27
|
-
const beforeVal = new Date( filterInfo.filterValue).getTime();
|
|
28
|
-
const clean = filterInfo.fieldType === FieldType.Date ? (a, b) => b : cleanDateTime
|
|
29
|
-
return ((val) => clean(filterInfo, val).getTime() <= beforeVal);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const dateIsInFunc: FilterFunc<Date[], Date> = (filterInfo:FilterInfo) => {
|
|
33
|
-
const { blankFilter, values } = splitOutBlankFilter(filterInfo.filterValue as Date[]);
|
|
34
|
-
const filterVals = values.map(v => new Date(v).getTime());
|
|
35
|
-
const clean = filterInfo.fieldType === FieldType.Date ? (a, b) => b : cleanDateTime;
|
|
36
|
-
|
|
37
|
-
const basicFunc = (val) => filterVals.some((f) => f === val);
|
|
38
|
-
const func = blankFilter ? ((val) => blankFilter(val) || basicFunc(val)) : basicFunc;
|
|
39
|
-
|
|
40
|
-
return ((val) => {
|
|
41
|
-
const d = clean(filterInfo, val)?.getTime();
|
|
42
|
-
return func(d);
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const dateBetweenFunc: FilterFunc<Range<Date>, Date> = (filterInfo:FilterInfo) => {
|
|
47
|
-
const startVal = new Date(filterInfo.filterValue.Start);
|
|
48
|
-
const endVal = new Date(filterInfo.filterValue.End);
|
|
49
|
-
const clean = filterInfo.fieldType === FieldType.Date ? (a, b) => b : cleanDateTime
|
|
50
|
-
return (
|
|
51
|
-
(val) => {
|
|
52
|
-
const cleanedVal = clean(filterInfo, val);
|
|
53
|
-
return cleanedVal >= startVal && cleanedVal <= endVal;
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const cleanDateTime = (filterInfo:FilterInfo, val: Date) => {
|
|
58
|
-
if(!!DateFilterFuncs[filterInfo.filterType]){
|
|
59
|
-
const d = new Date(val);
|
|
60
|
-
d.setHours(0, 0, 0, 0);
|
|
61
|
-
return d;
|
|
62
|
-
}
|
|
63
|
-
return val;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
export const DateFilterFuncs: FilterFuncs<DateFilterTypes> = {
|
|
67
|
-
[FilterType.DateIsOn]: dateIsOnFunc,
|
|
68
|
-
[FilterType.DateIsNotOn]: dateIsNotOnFunc,
|
|
69
|
-
[FilterType.DateOnOrAfter]: dateIsOnOrAfterFunc,
|
|
70
|
-
[FilterType.DateOnOrBefore]: dateIsOnOrBeforeFunc,
|
|
71
|
-
[FilterType.DateBetween]: dateBetweenFunc,
|
|
72
|
-
[FilterType.In]: dateIsInFunc,
|
|
73
|
-
[FilterType.IsNull]: isNull,
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
export const DateTimeFilterFuncs: FilterFuncs<DateTimeFilterTypes> = {
|
|
77
|
-
...DateFilterFuncs,
|
|
78
|
-
[FilterType.DateTimeIsAt]: dateIsOnFunc,
|
|
79
|
-
[FilterType.DateTimeIsNotAt]: dateIsNotOnFunc,
|
|
80
|
-
[FilterType.DateTimeAtOrAfter]: dateIsOnOrAfterFunc,
|
|
81
|
-
[FilterType.DateTimeAtOrBefore]: dateIsOnOrBeforeFunc,
|
|
82
|
-
[FilterType.DateTimeBetween]: dateBetweenFunc,
|
|
83
|
-
[FilterType.In]: dateIsInFunc,
|
|
84
|
-
[FilterType.IsNull]: isNull,
|
|
85
|
-
};
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export function downloadData(data: string, filename: string, mimeType: string) {
|
|
2
|
-
const url = URL.createObjectURL(new Blob([data], { type: mimeType }));
|
|
3
|
-
const downloadLink = document.createElement('a');
|
|
4
|
-
downloadLink.download = filename;
|
|
5
|
-
downloadLink.href = url;
|
|
6
|
-
downloadLink.style.display = 'none';
|
|
7
|
-
document.body.appendChild(downloadLink);
|
|
8
|
-
downloadLink.click();
|
|
9
|
-
document.body.removeChild(downloadLink);
|
|
10
|
-
URL.revokeObjectURL(url);
|
|
11
|
-
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { FilterFunc, FilterInfo } from '../classes/filter-info';
|
|
2
|
-
|
|
3
|
-
export const isNull:FilterFunc<boolean, any> = (filterInfo:FilterInfo) => {
|
|
4
|
-
const func = filterInfo.filterValue ?
|
|
5
|
-
(val: any) => val == null || val === ''
|
|
6
|
-
:
|
|
7
|
-
(val: any) => val != null && val !== '';
|
|
8
|
-
return func;
|
|
9
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { Range, FilterFunc, FilterInfo, FilterFuncs } from '../classes/filter-info';
|
|
2
|
-
import { FilterType, NumberFilterTypes } from '../enums/filterTypes';
|
|
3
|
-
import { splitOutBlankFilter } from '../services/all-values-filter-creator.service';
|
|
4
|
-
import { isNull } from './null-filter-function';
|
|
5
|
-
|
|
6
|
-
type NumberFilterFunc = FilterFunc<number>
|
|
7
|
-
|
|
8
|
-
const numberEqalsFunc:NumberFilterFunc = (filterInfo : FilterInfo<number>) => (val: number): boolean => {
|
|
9
|
-
return val === filterInfo.filterValue;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const numberNotEqualFunc:NumberFilterFunc = (filterInfo : FilterInfo<number>) => (val: number): boolean => {
|
|
13
|
-
return val !== filterInfo.filterValue;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const numberGreaterThanFunc:NumberFilterFunc = (filterInfo : FilterInfo<number>) => (val: number): boolean => {
|
|
17
|
-
return val > filterInfo.filterValue;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
const numberLessThanFunc:NumberFilterFunc = (filterInfo : FilterInfo<number>) => (val: number): boolean => {
|
|
21
|
-
return val < filterInfo.filterValue;
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
const numberBetweenFunc:FilterFunc<Range<number>, number> = (filterInfo : FilterInfo) => {
|
|
25
|
-
const startVal = Number(filterInfo.filterValue.Start);
|
|
26
|
-
const endVal = Number(filterInfo.filterValue.End);
|
|
27
|
-
return ((val) => (val > startVal) && (val < endVal));
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export const multipleNumberValuesEqualsFunc:FilterFunc<number[], number> = (filterInfo:FilterInfo) => {
|
|
31
|
-
const { blankFilter, values } = splitOutBlankFilter(filterInfo.filterValue as number[]);
|
|
32
|
-
|
|
33
|
-
const basicFunc = (val: number) => values.some((s) => val === s);
|
|
34
|
-
const func = blankFilter ? ((val) => blankFilter(val) || basicFunc(val)) : basicFunc;
|
|
35
|
-
|
|
36
|
-
return func;
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
export const NumberFilterFuncs: FilterFuncs<NumberFilterTypes> = {
|
|
40
|
-
[FilterType.NumberEquals]: numberEqalsFunc,
|
|
41
|
-
[FilterType.NumberNotEqual]: numberNotEqualFunc,
|
|
42
|
-
[FilterType.NumberGreaterThan]: numberGreaterThanFunc,
|
|
43
|
-
[FilterType.NumberLessThan]: numberLessThanFunc,
|
|
44
|
-
[FilterType.NumberBetween]: numberBetweenFunc,
|
|
45
|
-
[FilterType.IsNull]: isNull,
|
|
46
|
-
[FilterType.In]: multipleNumberValuesEqualsFunc,
|
|
47
|
-
};
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { Predicate } from "@angular/core";
|
|
2
|
-
import { TableBuilderSort } from "../components/table-container/table-container.helpers/sort-state.helpers";
|
|
3
|
-
|
|
4
|
-
export function sortData<T>(data: T[], sorted: TableBuilderSort[]): T[] {
|
|
5
|
-
return data.sort(compareT(sorted));
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export function filterData<T>(data: T[], filters: Predicate<T>[], resetAll = false){
|
|
9
|
-
if(filters.length === 0){
|
|
10
|
-
if(resetAll){
|
|
11
|
-
for(let index = 0; index < data.length; index++) {
|
|
12
|
-
const element = data[index];
|
|
13
|
-
element[tbNoShowSymbol] = false;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return data;
|
|
17
|
-
}
|
|
18
|
-
for(let index = 0; index < data.length; index++) {
|
|
19
|
-
const element = data[index];
|
|
20
|
-
const hide = !filters.every(filter => filter(element));
|
|
21
|
-
if(hide || resetAll){
|
|
22
|
-
element[tbNoShowSymbol] = hide;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
return data;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export const tbNoShowSymbol = Symbol('tb_no_show');
|
|
29
|
-
|
|
30
|
-
function compareT<T>(criteria: TableBuilderSort[]) {
|
|
31
|
-
const transforms = criteria.reduce((acc, c) => {
|
|
32
|
-
acc[c.active] = {
|
|
33
|
-
transform: c.sortBy ? c.sortBy : getFactory(c.active), nulls: c.nulls === 'first' ? -1 : 1 };
|
|
34
|
-
return acc;
|
|
35
|
-
}, {} as Record<string, { transform: (t: T) => any, nulls: 1 | -1}>);
|
|
36
|
-
|
|
37
|
-
return function (a: T, b: T): number {
|
|
38
|
-
for(let index = 0; index < criteria.length; index++) {
|
|
39
|
-
const c = criteria[index];
|
|
40
|
-
const d = transforms[c.active];
|
|
41
|
-
const nullValue = d.nulls;
|
|
42
|
-
if(a == null) {
|
|
43
|
-
if(b == null) return 0;
|
|
44
|
-
return nullValue;
|
|
45
|
-
}
|
|
46
|
-
if(b == null) return -nullValue;
|
|
47
|
-
const transform = d.transform;
|
|
48
|
-
const aVal = transform(a);
|
|
49
|
-
const bVal = transform(b);
|
|
50
|
-
if(aVal == null) {
|
|
51
|
-
if(bVal == null) return 0;
|
|
52
|
-
return nullValue;
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
if(bVal == null) return -nullValue;
|
|
56
|
-
if(aVal < bVal) return c.direction === 'asc' ? -1 : 1;
|
|
57
|
-
if(aVal > bVal) return c.direction === 'asc' ? 1 : -1;
|
|
58
|
-
}
|
|
59
|
-
return 0;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
export function getFactory(b: string){
|
|
64
|
-
if(typeof b !== 'string') return (a) => a[b];
|
|
65
|
-
if(!b.includes('.')) return (a) => {
|
|
66
|
-
if(!a) return a;
|
|
67
|
-
return a[b];
|
|
68
|
-
};
|
|
69
|
-
const arr = b.split('.');
|
|
70
|
-
return (a) => {
|
|
71
|
-
let val = a;
|
|
72
|
-
if(!a) return a;
|
|
73
|
-
for(let index = 0; index < arr.length; index++) {
|
|
74
|
-
val = val[arr[index]];
|
|
75
|
-
if(val == undefined) return undefined;
|
|
76
|
-
if(typeof val !== 'object' && index + 1 < arr.length) return undefined;
|
|
77
|
-
}
|
|
78
|
-
return val;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { FilterFunc, FilterFuncs, FilterInfo } from '../classes/filter-info';
|
|
2
|
-
import { EnumFilterTypes, FilterType, StringFilterTypes } from '../enums/filterTypes';
|
|
3
|
-
import { splitOutBlankFilter } from '../services/all-values-filter-creator.service';
|
|
4
|
-
import { isNull } from './null-filter-function';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const stringEqualFunc:FilterFunc<string> = (filterInfo:FilterInfo) => {
|
|
8
|
-
const equalsVal = prepareForStringCompare(filterInfo.filterValue);
|
|
9
|
-
return ((val) => prepareForStringCompare(val) === equalsVal );
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const stringContainsFunc:FilterFunc<string> = (filterInfo:FilterInfo) => {
|
|
13
|
-
const containsVal = prepareForStringCompare(filterInfo.filterValue);
|
|
14
|
-
return ((val) => prepareForStringCompare(val).includes(containsVal));
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
const stringDoesNotContainFunc:FilterFunc<string> = (filterInfo:FilterInfo) => {
|
|
18
|
-
const doesNotContainVal = prepareForStringCompare(filterInfo.filterValue);
|
|
19
|
-
return ((val) => !prepareForStringCompare(val)?.includes(doesNotContainVal));
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
const stringStartsWithFunc:FilterFunc<string> = (filterInfo:FilterInfo) => {
|
|
23
|
-
const startsWith = prepareForStringCompare(filterInfo.filterValue);
|
|
24
|
-
return ((val) => prepareForStringCompare(val).startsWith(startsWith));
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
const stringEndsWithFunc:FilterFunc<string> = (filterInfo:FilterInfo) => {
|
|
28
|
-
const startsWith = prepareForStringCompare(filterInfo.filterValue);
|
|
29
|
-
return ((val) => prepareForStringCompare(val).endsWith(startsWith));
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
const multipleStringValuesEqualsFunc:FilterFunc<string[], string> = (filterInfo:FilterInfo) => {
|
|
33
|
-
const { blankFilter, values } = splitOutBlankFilter(filterInfo.filterValue as string[]);
|
|
34
|
-
|
|
35
|
-
const filterVals = values.map((v) => prepareForStringCompare(v));
|
|
36
|
-
const basicFunc = (val: string) => filterVals.some((s) => val === s);
|
|
37
|
-
const func = blankFilter ? ((val) => blankFilter(val) || basicFunc(val)) : basicFunc;
|
|
38
|
-
return ((val) => {
|
|
39
|
-
const v = prepareForStringCompare(val);
|
|
40
|
-
return func(v);
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
export const StringFilterFuncs: FilterFuncs<StringFilterTypes> = {
|
|
45
|
-
[FilterType.StringEquals]: stringEqualFunc,
|
|
46
|
-
[FilterType.StringContains]: stringContainsFunc,
|
|
47
|
-
[FilterType.StringDoesNotContain]: stringDoesNotContainFunc,
|
|
48
|
-
[FilterType.StringStartWith]: stringStartsWithFunc,
|
|
49
|
-
[FilterType.StringEndsWith]: stringEndsWithFunc,
|
|
50
|
-
[FilterType.IsNull]: isNull,
|
|
51
|
-
[FilterType.In]: multipleStringValuesEqualsFunc,
|
|
52
|
-
};
|
|
53
|
-
|
|
54
|
-
export const EnumFilterFuncs: FilterFuncs<EnumFilterTypes> = {
|
|
55
|
-
[FilterType.IsNull]: isNull,
|
|
56
|
-
[FilterType.In]: multipleStringValuesEqualsFunc,
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
export const prepareForStringCompare = (val: any): string => (val?.toString().trim().toLowerCase());
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { CustomCellDirective } from "../directives/custom-cell-directive";
|
|
2
|
-
import { CustomHeaderDirective } from "../directives/custom-header-directive";
|
|
3
|
-
import { MetaData } from "./meta-data";
|
|
4
|
-
|
|
5
|
-
export interface ColumnInfo {
|
|
6
|
-
metaData: MetaData;
|
|
7
|
-
customCell?: CustomCellDirective;
|
|
8
|
-
customHeader?: CustomHeaderDirective;
|
|
9
|
-
}
|
|
@@ -1,279 +0,0 @@
|
|
|
1
|
-
import { Dictionary } from './dictionary';
|
|
2
|
-
import { Predicate, TemplateRef } from '@angular/core';
|
|
3
|
-
import { TableBuilderExport } from '../classes/TableBuilderConfig';
|
|
4
|
-
import { QueryParamsHandling } from '@angular/router';
|
|
5
|
-
import { StylerStyle } from '../../utilities/directives/styler';
|
|
6
|
-
|
|
7
|
-
export enum FieldType {
|
|
8
|
-
Unknown = 0,
|
|
9
|
-
Date = 1,
|
|
10
|
-
ImageUrl = 3,
|
|
11
|
-
Currency = 4,
|
|
12
|
-
Array = 5,
|
|
13
|
-
Hidden = 6,
|
|
14
|
-
Number = 7,
|
|
15
|
-
String = 8,
|
|
16
|
-
Boolean = 9,
|
|
17
|
-
PhoneNumber = 10,
|
|
18
|
-
Enum = 12,
|
|
19
|
-
DateTime = 13,
|
|
20
|
-
NotMapped = 14,
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export enum SortDirection {
|
|
24
|
-
asc= 'asc',
|
|
25
|
-
desc= 'desc'
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export enum Target {
|
|
29
|
-
Blank = '_blank',
|
|
30
|
-
Self = '_self',
|
|
31
|
-
Parent = '_parent',
|
|
32
|
-
Top = '_top'
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
interface BaseMeta <T = any> {
|
|
36
|
-
displayName?: string;
|
|
37
|
-
order?: number;
|
|
38
|
-
preSort?: SortDef;
|
|
39
|
-
sortLogic?: {
|
|
40
|
-
/**
|
|
41
|
-
* defaults to last
|
|
42
|
-
*/
|
|
43
|
-
nulls?: 'first' | 'last';
|
|
44
|
-
sortBy?: ((t: T) => any) | 'use map';
|
|
45
|
-
}
|
|
46
|
-
noSort?: boolean;
|
|
47
|
-
width?: string;
|
|
48
|
-
noExport?: boolean;
|
|
49
|
-
filterLogic?: {
|
|
50
|
-
filterBy?: ((t: T) => any) | 'use map';
|
|
51
|
-
/**
|
|
52
|
-
* defaults to the MetaData's Field type
|
|
53
|
-
*/
|
|
54
|
-
filterType?: FieldType;
|
|
55
|
-
},
|
|
56
|
-
noFilter?: boolean;
|
|
57
|
-
groupByLogic?: {
|
|
58
|
-
groupBy?: ((t:T) => any) | 'use map',
|
|
59
|
-
/**
|
|
60
|
-
* It will be called with the groupBy value. This will be the type of value table builder uses for the column unless groupBy is a function,
|
|
61
|
-
* in which case groupByHeader will be called with the value returned by groupBy.
|
|
62
|
-
*/
|
|
63
|
-
groupByHeader?: (groupByVal: any) => string,
|
|
64
|
-
};
|
|
65
|
-
click?: (element: T, key?: string, event?: MouseEvent ) => void;
|
|
66
|
-
template?: TemplateRef<any>;
|
|
67
|
-
classes?: Dictionary<Predicate<T> | true>;
|
|
68
|
-
toolTip?: string | ((t:T) => string);
|
|
69
|
-
useIcon?: boolean;
|
|
70
|
-
map? : (t: T) => any;
|
|
71
|
-
}
|
|
72
|
-
export type Path<T, U = never, P = never> =
|
|
73
|
-
(T extends P ? never : T extends object ?
|
|
74
|
-
{ [K in keyof T]: K extends string | number ? `${K}` | (T[K] extends (Array<any> | undefined) ? `${K}.${keyof Array<any> & (string | number)}` : `${K}.${Path<T[K], T[K], P | U >}`) : never; }[keyof T]
|
|
75
|
-
: never);
|
|
76
|
-
|
|
77
|
-
export interface BaseMappedMetaData<T = any, AdditionalFields extends string[] = []> extends BaseMeta<T> {
|
|
78
|
-
key: (Path<T> | AdditionalFields[number]) & string;
|
|
79
|
-
/**
|
|
80
|
-
* if used with map, `mapItem` will only be used where the row is not available, ex. group header
|
|
81
|
-
*/
|
|
82
|
-
mapItem?: (i: any) => any;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
export interface MappedMetaData<T = any, AdditionalFields extends string[] = []> extends BaseMappedMetaData<T, AdditionalFields> {
|
|
86
|
-
fieldType: FieldType.String | FieldType.PhoneNumber | FieldType.ImageUrl | FieldType.Hidden | FieldType.Unknown;
|
|
87
|
-
additional?: Additional<T>;
|
|
88
|
-
mapItem?: (i: string) => any;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
export interface MappedNumberMetaData<T = any, AdditionalFields extends string[] = []> extends BaseMappedMetaData<T, AdditionalFields> {
|
|
92
|
-
fieldType: FieldType.Number | FieldType.Currency;
|
|
93
|
-
mapItem?: (i: number) => any;
|
|
94
|
-
additional?: NumberAdditional<T>;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
export interface MappedEnumMetaData<T = any, AdditionalFields extends string[] = []> extends BaseMappedMetaData<T, AdditionalFields> {
|
|
98
|
-
fieldType: FieldType.Enum;
|
|
99
|
-
mapItem?: (i: number) => any;
|
|
100
|
-
additional?: EnumAdditional<T>;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
export interface MappedDateMetaData<T = any, AdditionalFields extends string[] = []> extends BaseMappedMetaData<T, AdditionalFields> {
|
|
104
|
-
fieldType: FieldType.Date;
|
|
105
|
-
mapItem?: (i: Date) => any;
|
|
106
|
-
additional?: DateAdditional<T>;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
export interface MappedDateTimeMetaData<T = any, AdditionalFields extends string[] = []> extends BaseMappedMetaData<T, AdditionalFields> {
|
|
110
|
-
fieldType: FieldType.DateTime;
|
|
111
|
-
mapItem?: (i: Date) => any;
|
|
112
|
-
additional?: DateTimeAdditional<T>;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export interface MappedBooleanMetaData<T = any, AdditionalFields extends string[] = []> extends BaseMappedMetaData<T, AdditionalFields> {
|
|
116
|
-
fieldType: FieldType.Boolean;
|
|
117
|
-
mapItem?: (i: boolean) => any;
|
|
118
|
-
additional?: BooleanAdditional<T>;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
export interface MappedArrayMetaData<T = any, AdditionalFields extends string[] = []> extends BaseMappedMetaData<T, AdditionalFields> {
|
|
122
|
-
fieldType: FieldType.Array;
|
|
123
|
-
mapItem?: (i: string) => any;
|
|
124
|
-
additional?: ArrayAdditional<T>;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
export type MetaData<T = any, AdditionalFields extends string[] = []> =
|
|
128
|
-
MappedMetaData<T, AdditionalFields>
|
|
129
|
-
| NotMappedMetaData<T>
|
|
130
|
-
| MappedNumberMetaData<T, AdditionalFields>
|
|
131
|
-
| MappedEnumMetaData<T, AdditionalFields>
|
|
132
|
-
| MappedBooleanMetaData<T, AdditionalFields>
|
|
133
|
-
| MappedDateMetaData<T, AdditionalFields>
|
|
134
|
-
| MappedDateTimeMetaData<T, AdditionalFields>
|
|
135
|
-
| MappedArrayMetaData<T, AdditionalFields>
|
|
136
|
-
;
|
|
137
|
-
|
|
138
|
-
export interface NotMappedMetaData<T = any> extends BaseMeta<T> {
|
|
139
|
-
key: string;
|
|
140
|
-
fieldType: FieldType.NotMapped;
|
|
141
|
-
additional?: Additional<T>;
|
|
142
|
-
}
|
|
143
|
-
export interface ReportDef<DataType = any> {
|
|
144
|
-
data: DataType[];
|
|
145
|
-
metaData: MetaData [];
|
|
146
|
-
totalRecords?: number;
|
|
147
|
-
count: number;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
export interface SortDef {
|
|
151
|
-
direction: SortDirection;
|
|
152
|
-
precedence?: number;
|
|
153
|
-
}
|
|
154
|
-
|
|
155
|
-
export interface FilterOptions<T = string> {
|
|
156
|
-
filterableValues : T[] | 'all values' | AllValueOptions;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
export interface AllValueOptions {
|
|
160
|
-
allValues: true;
|
|
161
|
-
doNotTreatEmptyStringsAsBlanks?: boolean;
|
|
162
|
-
doNotIncludeBlanks?: boolean;
|
|
163
|
-
doNotUseFilterBy? : boolean;
|
|
164
|
-
}
|
|
165
|
-
export interface DateTimeOptions {
|
|
166
|
-
format?: string;
|
|
167
|
-
includeSeconds?: boolean;
|
|
168
|
-
includeMilliseconds: boolean;
|
|
169
|
-
}
|
|
170
|
-
type interpolatedRoute = string;
|
|
171
|
-
interface BaseAdditional<T = any> {
|
|
172
|
-
link? : {
|
|
173
|
-
base?: string;
|
|
174
|
-
urlKey?: string;
|
|
175
|
-
target?: Target;
|
|
176
|
-
useRouterLink?: boolean;
|
|
177
|
-
/**
|
|
178
|
-
* If you want to use a route with interpolated params, you can use this. Wrap the property name in curly braces.
|
|
179
|
-
* For example, if interpolatedRoute = /users/{id}/edit, {id} will be replaced with the value of the element's id property.
|
|
180
|
-
*/
|
|
181
|
-
interpolatedRoute?: interpolatedRoute | ((t: T) => string);
|
|
182
|
-
routerLinkOptions?:{
|
|
183
|
-
queryParams?: [string, interpolatedRoute | ((t: T) => string)][];
|
|
184
|
-
fragment?: string;
|
|
185
|
-
preserveFragment?: boolean;
|
|
186
|
-
queryParamsHandling?: QueryParamsHandling;
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
export?: MetaDataExport<T>;
|
|
190
|
-
dateTimeOptions?: DateTimeOptions;
|
|
191
|
-
styles?: StylerStyle<T>;
|
|
192
|
-
columnPartStyles?: {
|
|
193
|
-
header?: Dictionary<string>,
|
|
194
|
-
body?: StylerStyle<T>,
|
|
195
|
-
innerBody?: StylerStyle<T>,
|
|
196
|
-
footer?: Dictionary<string>,
|
|
197
|
-
}
|
|
198
|
-
columnPartClasses?: {
|
|
199
|
-
header?: Dictionary<Predicate<T> | true>,
|
|
200
|
-
footer?: Dictionary<Predicate<T> | true>,
|
|
201
|
-
}
|
|
202
|
-
footer?: { type: any };
|
|
203
|
-
}
|
|
204
|
-
export interface Additional<T = any, V = string> extends BaseAdditional<T> {
|
|
205
|
-
filterOptions?: FilterOptions<V>;
|
|
206
|
-
footer?: { type: never };
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
interface NumberAdditional<T = any> extends BaseAdditional<T> {
|
|
210
|
-
filterOptions?: FilterOptions<number>;
|
|
211
|
-
footer?: { type: 'sum' };
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
interface EnumAdditional<T = any> extends BaseAdditional<T> {
|
|
215
|
-
filterOptions?: FilterOptions<number>;
|
|
216
|
-
enumMap?: {[key:number]:string};
|
|
217
|
-
footer?: { type: never };
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
interface BooleanAdditional<T = any> extends BaseAdditional<T> {
|
|
221
|
-
filterOptions?: FilterOptions<never>;
|
|
222
|
-
footer?: { type: never };
|
|
223
|
-
boolean? : {
|
|
224
|
-
showForFalse? : true | { icon : string },
|
|
225
|
-
forTrue? : { icon : string }
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
interface DateAdditional<T = any> extends BaseAdditional<T> {
|
|
230
|
-
filterOptions?: FilterOptions<Date>;
|
|
231
|
-
dateFormat?: string;
|
|
232
|
-
footer?: { type: never };
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
export interface DateTimeAdditional<T = any> extends BaseAdditional<T> {
|
|
236
|
-
filterOptions?: FilterOptions<Date>;
|
|
237
|
-
dateTimeOptions?: DateTimeOptions;
|
|
238
|
-
footer?: { type: never };
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
export enum ArrayStyle {
|
|
243
|
-
CommaDelimited,
|
|
244
|
-
NewLine
|
|
245
|
-
}
|
|
246
|
-
|
|
247
|
-
export interface ArrayAdditional<T = any> extends Additional<T> {
|
|
248
|
-
limit?: number;
|
|
249
|
-
arrayStyle?: ArrayStyle;
|
|
250
|
-
}
|
|
251
|
-
|
|
252
|
-
export interface MetaDataExport<T> extends TableBuilderExport {
|
|
253
|
-
/**
|
|
254
|
-
* This will supersede all other mappings when exporting.
|
|
255
|
-
*/
|
|
256
|
-
mapForExport?: (t: T) => string;
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* used with `mapLink` = 'add link'
|
|
260
|
-
*/
|
|
261
|
-
linkColumnName?: string;
|
|
262
|
-
}
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
export function metaDataArrToDict<T = MetaData>(arr: MetaData[], transform?: (m : MetaData) => T): Dictionary<T>{
|
|
266
|
-
const dict = {};
|
|
267
|
-
if(transform){
|
|
268
|
-
arr.forEach(e => dict[e.key] = transform(e));
|
|
269
|
-
} else {
|
|
270
|
-
arr.forEach(e => dict[e.key] = e);
|
|
271
|
-
}
|
|
272
|
-
return dict;
|
|
273
|
-
}
|
|
274
|
-
|
|
275
|
-
export interface CustomCellMeta extends Pick<MetaData, 'key' | 'displayName' | 'preSort' | 'fieldType' | 'order' | 'width'>{
|
|
276
|
-
customCell: true;
|
|
277
|
-
noExport?: boolean;
|
|
278
|
-
additional: { styles?: StylerStyle; }
|
|
279
|
-
}
|