@one-paragon/angular-utilities 0.1.16 → 0.1.19
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/action-state/action-state-spinner/action-state-spinner.component.d.ts +12 -12
- package/action-state/action-state-ui/action-state-ui.module.d.ts +9 -9
- package/action-state/index.d.ts +4 -4
- package/action-state/ngrx-ext/ngrx-ext.module.d.ts +8 -8
- package/action-state/ngrx.d.ts +31 -31
- package/esm2020/action-state/action-state-spinner/action-state-spinner.component.mjs +23 -23
- package/esm2020/action-state/action-state-ui/action-state-ui.module.mjs +28 -28
- package/esm2020/action-state/index.mjs +8 -8
- package/esm2020/action-state/ngrx-ext/ngrx-ext.module.mjs +23 -23
- package/esm2020/action-state/ngrx.mjs +42 -42
- package/esm2020/http-request-state/HttpRequestStateFactory.mjs +26 -26
- package/esm2020/http-request-state/HttpRequestStateStore.mjs +97 -78
- package/esm2020/http-request-state/directives/HttpStateDirectiveBase.mjs +33 -33
- package/esm2020/http-request-state/directives/http-error-state-directive.mjs +28 -28
- package/esm2020/http-request-state/directives/http-inProgress-state-directive.mjs +28 -28
- package/esm2020/http-request-state/directives/http-notStarted-state-directive.mjs +28 -28
- package/esm2020/http-request-state/directives/http-success-state-directive.mjs +28 -28
- package/esm2020/http-request-state/directives/index.mjs +5 -5
- package/esm2020/http-request-state/directives/request-state-directive.mjs +56 -56
- package/esm2020/http-request-state/helpers.mjs +22 -19
- package/esm2020/http-request-state/http-request-state.mjs +38 -38
- package/esm2020/http-request-state/http-state-module.mjs +40 -40
- package/esm2020/http-request-state/index.mjs +6 -6
- package/esm2020/http-request-state/rxjs/getRequestorBody.mjs +3 -3
- package/esm2020/http-request-state/rxjs/getRequestorState.mjs +2 -2
- package/esm2020/http-request-state/rxjs/index.mjs +4 -4
- package/esm2020/http-request-state/rxjs/tapError.mjs +11 -11
- package/esm2020/http-request-state/rxjs/tapSuccess.mjs +11 -11
- package/esm2020/http-request-state/types.mjs +16 -15
- package/esm2020/ngrx/actionable-selector.mjs +76 -76
- package/esm2020/ngrx/index.mjs +1 -1
- package/esm2020/one-paragon-angular-utilities.mjs +4 -4
- package/esm2020/public-api.mjs +19 -19
- package/esm2020/rxjs/defaultShareReplay.mjs +6 -6
- package/esm2020/rxjs/index.mjs +5 -5
- package/esm2020/rxjs/mapError.mjs +7 -7
- package/esm2020/rxjs/rxjs-operators.mjs +91 -91
- package/esm2020/rxjs/subjectifier.mjs +15 -15
- package/esm2020/table-builder/classes/DefaultSettings.mjs +5 -5
- package/esm2020/table-builder/classes/GenericTableDataSource.mjs +12 -12
- package/esm2020/table-builder/classes/MatTableObservableDataSource.mjs +20 -20
- package/esm2020/table-builder/classes/TableBuilderConfig.mjs +2 -2
- package/esm2020/table-builder/classes/TableState.mjs +31 -31
- package/esm2020/table-builder/classes/data-filter.mjs +26 -26
- package/esm2020/table-builder/classes/display-col.mjs +1 -1
- package/esm2020/table-builder/classes/filter-info.mjs +71 -71
- package/esm2020/table-builder/classes/table-builder-general-settings.mjs +67 -67
- package/esm2020/table-builder/classes/table-builder.mjs +61 -61
- package/esm2020/table-builder/classes/table-store.mjs +292 -292
- package/esm2020/table-builder/components/array-column.component.mjs +32 -32
- package/esm2020/table-builder/components/column-builder/column-builder.component.mjs +111 -111
- package/esm2020/table-builder/components/date-filter/date-filter.component.mjs +24 -24
- package/esm2020/table-builder/components/filter/filter.component.mjs +53 -53
- package/esm2020/table-builder/components/filter/in-list/in-list-filter.component.mjs +91 -91
- package/esm2020/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +44 -44
- package/esm2020/table-builder/components/generic-table/generic-table.component.mjs +198 -198
- package/esm2020/table-builder/components/generic-table/paginator.component.mjs +59 -59
- package/esm2020/table-builder/components/group-by-list/group-by-list.component.mjs +21 -21
- package/esm2020/table-builder/components/header-menu/header-menu.component.mjs +89 -89
- package/esm2020/table-builder/components/in-filter/in-filter.component.mjs +65 -65
- package/esm2020/table-builder/components/index.mjs +10 -10
- package/esm2020/table-builder/components/initialization-component/initialization-component.mjs +33 -33
- package/esm2020/table-builder/components/link-column.component.mjs +66 -66
- package/esm2020/table-builder/components/number-filter/number-filter.component.mjs +26 -26
- package/esm2020/table-builder/components/sort-menu/sort-menu.component-store.mjs +41 -41
- package/esm2020/table-builder/components/sort-menu/sort-menu.component.mjs +75 -75
- package/esm2020/table-builder/components/table-container/table-container.mjs +312 -312
- package/esm2020/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +42 -42
- package/esm2020/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +29 -29
- package/esm2020/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +24 -24
- package/esm2020/table-builder/directives/custom-cell-directive.mjs +58 -58
- package/esm2020/table-builder/directives/index.mjs +6 -6
- package/esm2020/table-builder/directives/multi-sort.directive.mjs +42 -42
- package/esm2020/table-builder/directives/resize-column.directive.mjs +85 -85
- package/esm2020/table-builder/directives/table-wrapper.directive.mjs +26 -26
- package/esm2020/table-builder/directives/tb-filter.directive.mjs +403 -403
- package/esm2020/table-builder/enums/filterTypes.mjs +59 -59
- package/esm2020/table-builder/functions/boolean-filter-function.mjs +9 -9
- package/esm2020/table-builder/functions/date-filter-function.mjs +32 -32
- package/esm2020/table-builder/functions/download-data.mjs +11 -11
- package/esm2020/table-builder/functions/null-filter-function.mjs +7 -7
- package/esm2020/table-builder/functions/number-filter-function.mjs +31 -31
- package/esm2020/table-builder/functions/sort-data-function.mjs +4 -4
- package/esm2020/table-builder/functions/string-filter-function.mjs +40 -40
- package/esm2020/table-builder/interfaces/ColumnInfo.mjs +1 -1
- package/esm2020/table-builder/interfaces/dictionary.mjs +1 -1
- package/esm2020/table-builder/interfaces/report-def.mjs +34 -34
- package/esm2020/table-builder/material.module.mjs +220 -220
- package/esm2020/table-builder/ngrx/actions.mjs +4 -4
- package/esm2020/table-builder/ngrx/effects.mjs +47 -47
- package/esm2020/table-builder/ngrx/reducer.mjs +51 -51
- package/esm2020/table-builder/ngrx/selectors.mjs +23 -23
- package/esm2020/table-builder/pipes/column-total.pipe.mjs +19 -19
- package/esm2020/table-builder/pipes/format-filter-type.pipe.mjs +17 -17
- package/esm2020/table-builder/pipes/format-filter-value.pipe.mjs +45 -45
- package/esm2020/table-builder/pipes/key-display.mjs +19 -19
- package/esm2020/table-builder/services/export-to-csv.service.mjs +84 -84
- package/esm2020/table-builder/services/link-creator.service.mjs +42 -42
- package/esm2020/table-builder/services/table-template-service.mjs +43 -43
- package/esm2020/table-builder/services/transform-creator.mjs +70 -70
- package/esm2020/table-builder/table-builder.module.mjs +204 -204
- package/esm2020/utilities/directives/auto-focus.directive.mjs +25 -25
- package/esm2020/utilities/directives/clickEmitterDirective.mjs +20 -20
- package/esm2020/utilities/directives/clickSubject.mjs +26 -26
- package/esm2020/utilities/directives/conditional-classes.directive.mjs +35 -35
- package/esm2020/utilities/directives/dialog-service.mjs +24 -24
- package/esm2020/utilities/directives/dialog.mjs +130 -130
- package/esm2020/utilities/directives/mat-toggle-group-directive.mjs +57 -57
- package/esm2020/utilities/directives/prevent-enter.directive.mjs +18 -18
- package/esm2020/utilities/directives/stop-propagation.directive.mjs +24 -24
- package/esm2020/utilities/directives/styler.mjs +25 -25
- package/esm2020/utilities/directives/trim-whitespace.directive.mjs +29 -29
- package/esm2020/utilities/index.mjs +16 -16
- package/esm2020/utilities/module.mjs +91 -91
- package/esm2020/utilities/pipes/function.pipe.mjs +20 -20
- package/esm2020/utilities/pipes/phone.pipe.mjs +19 -19
- package/esm2020/utilities/pipes/space-case.pipes.mjs +28 -28
- package/fesm2015/one-paragon-angular-utilities.mjs +4382 -4358
- package/fesm2015/one-paragon-angular-utilities.mjs.map +1 -1
- package/fesm2020/one-paragon-angular-utilities.mjs +4350 -4328
- package/fesm2020/one-paragon-angular-utilities.mjs.map +1 -1
- package/http-request-state/HttpRequestStateFactory.d.ts +14 -14
- package/http-request-state/HttpRequestStateStore.d.ts +48 -40
- package/http-request-state/directives/HttpStateDirectiveBase.d.ts +16 -16
- package/http-request-state/directives/http-error-state-directive.d.ts +12 -12
- package/http-request-state/directives/http-inProgress-state-directive.d.ts +12 -12
- package/http-request-state/directives/http-notStarted-state-directive.d.ts +12 -12
- package/http-request-state/directives/http-success-state-directive.d.ts +14 -14
- package/http-request-state/directives/index.d.ts +5 -5
- package/http-request-state/directives/request-state-directive.d.ts +29 -29
- package/http-request-state/helpers.d.ts +9 -8
- package/http-request-state/http-request-state.d.ts +12 -12
- package/http-request-state/http-state-module.d.ts +11 -11
- package/http-request-state/index.d.ts +6 -6
- package/http-request-state/rxjs/getRequestorBody.d.ts +3 -3
- package/http-request-state/rxjs/getRequestorState.d.ts +3 -3
- package/http-request-state/rxjs/index.d.ts +4 -4
- package/http-request-state/rxjs/tapError.d.ts +3 -3
- package/http-request-state/rxjs/tapSuccess.d.ts +3 -3
- package/http-request-state/types.d.ts +36 -32
- package/index.d.ts +5 -5
- package/ngrx/actionable-selector.d.ts +15 -15
- package/ngrx/index.d.ts +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +15 -15
- package/rxjs/defaultShareReplay.d.ts +2 -2
- package/rxjs/index.d.ts +4 -4
- package/rxjs/mapError.d.ts +2 -2
- package/rxjs/rxjs-operators.d.ts +12 -12
- package/rxjs/subjectifier.d.ts +9 -9
- package/table-builder/classes/DefaultSettings.d.ts +8 -8
- package/table-builder/classes/GenericTableDataSource.d.ts +8 -8
- package/table-builder/classes/MatTableObservableDataSource.d.ts +9 -9
- package/table-builder/classes/TableBuilderConfig.d.ts +19 -19
- package/table-builder/classes/TableState.d.ts +46 -46
- package/table-builder/classes/data-filter.d.ts +9 -9
- package/table-builder/classes/display-col.d.ts +5 -5
- package/table-builder/classes/filter-info.d.ts +40 -40
- package/table-builder/classes/table-builder-general-settings.d.ts +43 -43
- package/table-builder/classes/table-builder.d.ts +14 -14
- package/table-builder/classes/table-store.d.ts +114 -114
- package/table-builder/components/array-column.component.d.ts +14 -14
- package/table-builder/components/column-builder/column-builder.component.d.ts +50 -50
- package/table-builder/components/date-filter/date-filter.component.d.ts +10 -10
- package/table-builder/components/filter/filter.component.d.ts +294 -294
- package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +27 -27
- package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +16 -16
- package/table-builder/components/generic-table/generic-table.component.d.ts +71 -71
- package/table-builder/components/generic-table/paginator.component.d.ts +28 -28
- package/table-builder/components/group-by-list/group-by-list.component.d.ts +10 -10
- package/table-builder/components/header-menu/header-menu.component.d.ts +25 -25
- package/table-builder/components/in-filter/in-filter.component.d.ts +22 -22
- package/table-builder/components/index.d.ts +9 -9
- package/table-builder/components/initialization-component/initialization-component.d.ts +12 -12
- package/table-builder/components/link-column.component.d.ts +17 -17
- package/table-builder/components/number-filter/number-filter.component.d.ts +12 -12
- package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +24 -24
- package/table-builder/components/sort-menu/sort-menu.component.d.ts +25 -25
- package/table-builder/components/table-container/table-container.d.ts +65 -65
- package/table-builder/components/table-container-filter/filter-list/filter-list.component.d.ts +17 -17
- package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +14 -14
- package/table-builder/components/table-container-filter/table-wrapper-filter-store.d.ts +14 -14
- package/table-builder/directives/custom-cell-directive.d.ts +19 -19
- package/table-builder/directives/index.d.ts +5 -5
- package/table-builder/directives/multi-sort.directive.d.ts +11 -11
- package/table-builder/directives/resize-column.directive.d.ts +43 -43
- package/table-builder/directives/table-wrapper.directive.d.ts +11 -11
- package/table-builder/directives/tb-filter.directive.d.ts +120 -120
- package/table-builder/enums/filterTypes.d.ts +31 -31
- package/table-builder/functions/boolean-filter-function.d.ts +3 -3
- package/table-builder/functions/date-filter-function.d.ts +3 -3
- package/table-builder/functions/download-data.d.ts +1 -1
- package/table-builder/functions/null-filter-function.d.ts +2 -2
- package/table-builder/functions/number-filter-function.d.ts +4 -4
- package/table-builder/functions/sort-data-function.d.ts +3 -3
- package/table-builder/functions/string-filter-function.d.ts +7 -7
- package/table-builder/interfaces/ColumnInfo.d.ts +6 -6
- package/table-builder/interfaces/dictionary.d.ts +3 -3
- package/table-builder/interfaces/report-def.d.ts +135 -135
- package/table-builder/material.module.d.ts +34 -34
- package/table-builder/ngrx/actions.d.ts +23 -23
- package/table-builder/ngrx/effects.d.ts +19 -19
- package/table-builder/ngrx/reducer.d.ts +15 -15
- package/table-builder/ngrx/selectors.d.ts +22 -22
- package/table-builder/pipes/column-total.pipe.d.ts +8 -8
- package/table-builder/pipes/format-filter-type.pipe.d.ts +8 -8
- package/table-builder/pipes/format-filter-value.pipe.d.ts +14 -14
- package/table-builder/pipes/key-display.d.ts +11 -11
- package/table-builder/services/export-to-csv.service.d.ts +22 -22
- package/table-builder/services/link-creator.service.d.ts +12 -12
- package/table-builder/services/table-template-service.d.ts +14 -14
- package/table-builder/services/transform-creator.d.ts +19 -19
- package/table-builder/table-builder.module.d.ts +45 -45
- package/utilities/directives/auto-focus.directive.d.ts +10 -10
- package/utilities/directives/clickEmitterDirective.d.ts +7 -7
- package/utilities/directives/clickSubject.d.ts +9 -9
- package/utilities/directives/conditional-classes.directive.d.ts +14 -14
- package/utilities/directives/dialog-service.d.ts +10 -10
- package/utilities/directives/dialog.d.ts +45 -45
- package/utilities/directives/mat-toggle-group-directive.d.ts +21 -21
- package/utilities/directives/prevent-enter.directive.d.ts +6 -6
- package/utilities/directives/stop-propagation.directive.d.ts +7 -7
- package/utilities/directives/styler.d.ts +9 -9
- package/utilities/directives/trim-whitespace.directive.d.ts +9 -9
- package/utilities/index.d.ts +15 -15
- package/utilities/module.d.ts +19 -19
- package/utilities/pipes/function.pipe.d.ts +7 -7
- package/utilities/pipes/phone.pipe.d.ts +7 -7
- package/utilities/pipes/space-case.pipes.d.ts +17 -17
|
@@ -1,52 +1,52 @@
|
|
|
1
|
-
import { createReducer, on } from '@ngrx/store';
|
|
2
|
-
import * as tableActions from './actions';
|
|
3
|
-
export const defaultStorageState = {
|
|
4
|
-
globalProfileKeys: ['Default'],
|
|
5
|
-
currentGlobalProfile: 'Default',
|
|
6
|
-
globalProfiles: {},
|
|
7
|
-
localProfiles: {}
|
|
8
|
-
};
|
|
9
|
-
function loadGlobalStorageState() {
|
|
10
|
-
const storage = localStorage.getItem('global-state-storage');
|
|
11
|
-
if (storage) {
|
|
12
|
-
return { ...defaultStorageState, ...JSON.parse(storage) };
|
|
13
|
-
}
|
|
14
|
-
return defaultStorageState;
|
|
15
|
-
}
|
|
16
|
-
const reducer = createReducer(loadGlobalStorageState(), on(tableActions.setLocalProfile, (state, { key, value }) => {
|
|
17
|
-
let profile = state.localProfiles[key];
|
|
18
|
-
if (!profile) {
|
|
19
|
-
profile = { default: 'default', current: 'default', states: {
|
|
20
|
-
default: value
|
|
21
|
-
} };
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
profile = { ...profile, states: { ...profile.states, [profile.current ?? profile.default]: value } };
|
|
25
|
-
}
|
|
26
|
-
return { ...state, localProfiles: { ...state.localProfiles, [key]: profile } };
|
|
27
|
-
}), on(tableActions.setLocalProfilesState, (state, { key, current }) => {
|
|
28
|
-
let profile = state.localProfiles[key];
|
|
29
|
-
if (!profile) {
|
|
30
|
-
profile = { default: current, current, states: { [current]: null } };
|
|
31
|
-
}
|
|
32
|
-
else {
|
|
33
|
-
const state = profile.states[current] ?? profile.states[profile.current ?? profile.default];
|
|
34
|
-
profile = { ...profile, current, states: { ...profile.states, [current]: state } };
|
|
35
|
-
}
|
|
36
|
-
return { ...state, localProfiles: { ...state.localProfiles, [key]: profile } };
|
|
37
|
-
}), on(tableActions.deleteLocalProfilesState, (state, { key, stateKey }) => {
|
|
38
|
-
let profile = state.localProfiles[key];
|
|
39
|
-
if (profile) {
|
|
40
|
-
const current = profile.current === stateKey ? profile.default : profile.current;
|
|
41
|
-
profile = { ...profile, current, states: { ...profile.states } };
|
|
42
|
-
delete profile.states[stateKey];
|
|
43
|
-
return { ...state, localProfiles: { ...state.localProfiles, [key]: profile } };
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
return state;
|
|
47
|
-
}
|
|
48
|
-
}));
|
|
49
|
-
export function storageStateReducer(state, action) {
|
|
50
|
-
return reducer(state, action);
|
|
51
|
-
}
|
|
1
|
+
import { createReducer, on } from '@ngrx/store';
|
|
2
|
+
import * as tableActions from './actions';
|
|
3
|
+
export const defaultStorageState = {
|
|
4
|
+
globalProfileKeys: ['Default'],
|
|
5
|
+
currentGlobalProfile: 'Default',
|
|
6
|
+
globalProfiles: {},
|
|
7
|
+
localProfiles: {}
|
|
8
|
+
};
|
|
9
|
+
function loadGlobalStorageState() {
|
|
10
|
+
const storage = localStorage.getItem('global-state-storage');
|
|
11
|
+
if (storage) {
|
|
12
|
+
return { ...defaultStorageState, ...JSON.parse(storage) };
|
|
13
|
+
}
|
|
14
|
+
return defaultStorageState;
|
|
15
|
+
}
|
|
16
|
+
const reducer = createReducer(loadGlobalStorageState(), on(tableActions.setLocalProfile, (state, { key, value }) => {
|
|
17
|
+
let profile = state.localProfiles[key];
|
|
18
|
+
if (!profile) {
|
|
19
|
+
profile = { default: 'default', current: 'default', states: {
|
|
20
|
+
default: value
|
|
21
|
+
} };
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
profile = { ...profile, states: { ...profile.states, [profile.current ?? profile.default]: value } };
|
|
25
|
+
}
|
|
26
|
+
return { ...state, localProfiles: { ...state.localProfiles, [key]: profile } };
|
|
27
|
+
}), on(tableActions.setLocalProfilesState, (state, { key, current }) => {
|
|
28
|
+
let profile = state.localProfiles[key];
|
|
29
|
+
if (!profile) {
|
|
30
|
+
profile = { default: current, current, states: { [current]: null } };
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
const state = profile.states[current] ?? profile.states[profile.current ?? profile.default];
|
|
34
|
+
profile = { ...profile, current, states: { ...profile.states, [current]: state } };
|
|
35
|
+
}
|
|
36
|
+
return { ...state, localProfiles: { ...state.localProfiles, [key]: profile } };
|
|
37
|
+
}), on(tableActions.deleteLocalProfilesState, (state, { key, stateKey }) => {
|
|
38
|
+
let profile = state.localProfiles[key];
|
|
39
|
+
if (profile) {
|
|
40
|
+
const current = profile.current === stateKey ? profile.default : profile.current;
|
|
41
|
+
profile = { ...profile, current, states: { ...profile.states } };
|
|
42
|
+
delete profile.states[stateKey];
|
|
43
|
+
return { ...state, localProfiles: { ...state.localProfiles, [key]: profile } };
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
return state;
|
|
47
|
+
}
|
|
48
|
+
}));
|
|
49
|
+
export function storageStateReducer(state, action) {
|
|
50
|
+
return reducer(state, action);
|
|
51
|
+
}
|
|
52
52
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkdWNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL25ncngvcmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFVLEVBQUUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN4RCxPQUFPLEtBQUssWUFBWSxNQUFNLFdBQVcsQ0FBQztBQWdCMUMsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXVCO0lBQ3JELGlCQUFpQixFQUFFLENBQUMsU0FBUyxDQUFDO0lBQzlCLG9CQUFvQixFQUFFLFNBQVM7SUFDL0IsY0FBYyxFQUFFLEVBQUU7SUFDbEIsYUFBYSxFQUFFLEVBQUU7Q0FDbEIsQ0FBQTtBQUdELFNBQVMsc0JBQXNCO0lBQzdCLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUM3RCxJQUFHLE9BQU8sRUFBRTtRQUNWLE9BQU8sRUFBQyxHQUFHLG1CQUFtQixFQUFFLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBQyxDQUFDO0tBQ3pEO0lBQ0QsT0FBTyxtQkFBbUIsQ0FBQztBQUM3QixDQUFDO0FBRUQsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUMzQixzQkFBc0IsRUFBRSxFQUN4QixFQUFFLENBQUMsWUFBWSxDQUFDLGVBQWUsRUFBRSxDQUFDLEtBQUssRUFBQyxFQUFDLEdBQUcsRUFBQyxLQUFLLEVBQUMsRUFBQyxFQUFFO0lBQ3BELElBQUksT0FBTyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDdkMsSUFBRyxDQUFDLE9BQU8sRUFBRTtRQUNYLE9BQU8sR0FBSSxFQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUc7Z0JBQzNELE9BQU8sRUFBRSxLQUFLO2FBQ2YsRUFBQyxDQUFDO0tBQ0o7U0FBTTtRQUNMLE9BQU8sR0FBRyxFQUFDLEdBQUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFHLEtBQUssRUFBQyxFQUFFLENBQUM7S0FDcEc7SUFDRCxPQUFPLEVBQUMsR0FBRyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFDLEVBQUUsQ0FBQTtBQUM3RSxDQUFDLENBQUMsRUFDRixFQUFFLENBQUMsWUFBWSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUMsR0FBRyxFQUFDLE9BQU8sRUFBQyxFQUFFLEVBQUU7SUFDOUQsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QyxJQUFHLENBQUMsT0FBTyxFQUFFO1FBQ1gsT0FBTyxHQUFJLEVBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUcsTUFBTSxFQUFHLEVBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBQyxDQUFDO0tBQ3RFO1NBQU07UUFDTCxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUYsT0FBTyxHQUFHLEVBQUMsR0FBRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFHLEtBQUssRUFBRSxFQUFDLENBQUM7S0FDbEY7SUFDRCxPQUFPLEVBQUMsR0FBRyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFDLEVBQUMsQ0FBQztBQUM3RSxDQUFDLENBQUMsRUFDRixFQUFFLENBQUMsWUFBWSxDQUFDLHdCQUF3QixFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUMsR0FBRyxFQUFDLFFBQVEsRUFBQyxFQUFFLEVBQUU7SUFDbEUsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN2QyxJQUFHLE9BQU8sRUFBRTtRQUNWLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO1FBQ2pGLE9BQU8sR0FBRyxFQUFDLEdBQUcsT0FBTyxFQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUMsRUFBQyxDQUFDO1FBQzdELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxPQUFPLEVBQUMsR0FBRyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsT0FBTyxFQUFDLEVBQUUsQ0FBQztLQUM3RTtTQUFNO1FBQ0wsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUMsQ0FBQyxDQUNILENBQUM7QUFFRixNQUFNLFVBQVUsbUJBQW1CLENBQUMsS0FBcUMsRUFBRSxNQUFjO0lBQ3ZGLE9BQU8sT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNoQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY3JlYXRlUmVkdWNlciwgQWN0aW9uLCBvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcclxuaW1wb3J0ICogYXMgdGFibGVBY3Rpb25zIGZyb20gJy4vYWN0aW9ucyc7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnknO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBQcm9maWxlPFQgPSBhbnk+IHtcclxuICBkZWZhdWx0OiBzdHJpbmc7XHJcbiAgY3VycmVudDogc3RyaW5nO1xyXG4gIHN0YXRlczogRGljdGlvbmFyeTxUPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBHbG9iYWxTdG9yYWdlU3RhdGUge1xyXG4gIGdsb2JhbFByb2ZpbGVLZXlzIDogc3RyaW5nIFtdO1xyXG4gIGN1cnJlbnRHbG9iYWxQcm9maWxlOiBzdHJpbmc7XHJcbiAgZ2xvYmFsUHJvZmlsZXM6IERpY3Rpb25hcnk8UHJvZmlsZT47XHJcbiAgbG9jYWxQcm9maWxlczogRGljdGlvbmFyeTxQcm9maWxlPjtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRTdG9yYWdlU3RhdGU6IEdsb2JhbFN0b3JhZ2VTdGF0ZSA9IHtcclxuICBnbG9iYWxQcm9maWxlS2V5czogWydEZWZhdWx0J10sXHJcbiAgY3VycmVudEdsb2JhbFByb2ZpbGU6ICdEZWZhdWx0JyxcclxuICBnbG9iYWxQcm9maWxlczoge30sXHJcbiAgbG9jYWxQcm9maWxlczoge31cclxufVxyXG5cclxuXHJcbmZ1bmN0aW9uIGxvYWRHbG9iYWxTdG9yYWdlU3RhdGUoKSA6IEdsb2JhbFN0b3JhZ2VTdGF0ZSB7XHJcbiAgY29uc3Qgc3RvcmFnZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpO1xyXG4gIGlmKHN0b3JhZ2UpIHtcclxuICAgIHJldHVybiB7Li4uZGVmYXVsdFN0b3JhZ2VTdGF0ZSwgLi4uSlNPTi5wYXJzZShzdG9yYWdlKX07XHJcbiAgfVxyXG4gIHJldHVybiBkZWZhdWx0U3RvcmFnZVN0YXRlO1xyXG59XHJcblxyXG5jb25zdCByZWR1Y2VyID0gY3JlYXRlUmVkdWNlcihcclxuICBsb2FkR2xvYmFsU3RvcmFnZVN0YXRlKCksXHJcbiAgb24odGFibGVBY3Rpb25zLnNldExvY2FsUHJvZmlsZSwgKHN0YXRlLHtrZXksdmFsdWV9KT0+IHtcclxuICAgIGxldCBwcm9maWxlID0gc3RhdGUubG9jYWxQcm9maWxlc1trZXldO1xyXG4gICAgaWYoIXByb2ZpbGUpIHtcclxuICAgICAgcHJvZmlsZSA9ICB7ZGVmYXVsdDogJ2RlZmF1bHQnLCBjdXJyZW50OiAnZGVmYXVsdCcsIHN0YXRlcyA6IHtcclxuICAgICAgICBkZWZhdWx0OiB2YWx1ZVxyXG4gICAgICB9fTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHByb2ZpbGUgPSB7Li4ucHJvZmlsZSwgc3RhdGVzOiB7Li4ucHJvZmlsZS5zdGF0ZXMsIFtwcm9maWxlLmN1cnJlbnQgPz8gcHJvZmlsZS5kZWZhdWx0XSA6IHZhbHVlfSB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgbG9jYWxQcm9maWxlczogey4uLnN0YXRlLmxvY2FsUHJvZmlsZXMsIFtrZXldOiBwcm9maWxlfSB9XHJcbiAgfSksXHJcbiAgb24odGFibGVBY3Rpb25zLnNldExvY2FsUHJvZmlsZXNTdGF0ZSwgKHN0YXRlLCB7a2V5LGN1cnJlbnR9KSA9PiB7XHJcbiAgICBsZXQgcHJvZmlsZSA9IHN0YXRlLmxvY2FsUHJvZmlsZXNba2V5XTtcclxuICAgIGlmKCFwcm9maWxlKSB7XHJcbiAgICAgIHByb2ZpbGUgPSAge2RlZmF1bHQ6IGN1cnJlbnQsIGN1cnJlbnQgLCBzdGF0ZXMgOiB7W2N1cnJlbnRdOiBudWxsIH19O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgc3RhdGUgPSBwcm9maWxlLnN0YXRlc1tjdXJyZW50XSA/PyBwcm9maWxlLnN0YXRlc1twcm9maWxlLmN1cnJlbnQgPz8gcHJvZmlsZS5kZWZhdWx0XTtcclxuICAgICAgcHJvZmlsZSA9IHsuLi5wcm9maWxlLCBjdXJyZW50LCBzdGF0ZXM6IHsuLi5wcm9maWxlLnN0YXRlcywgW2N1cnJlbnRdIDogc3RhdGUgfX07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gey4uLnN0YXRlLCBsb2NhbFByb2ZpbGVzOiB7Li4uc3RhdGUubG9jYWxQcm9maWxlcywgW2tleV06IHByb2ZpbGV9fTtcclxuICB9KSxcclxuICBvbih0YWJsZUFjdGlvbnMuZGVsZXRlTG9jYWxQcm9maWxlc1N0YXRlLCAoc3RhdGUsIHtrZXksc3RhdGVLZXl9KSA9PiB7XHJcbiAgICBsZXQgcHJvZmlsZSA9IHN0YXRlLmxvY2FsUHJvZmlsZXNba2V5XTtcclxuICAgIGlmKHByb2ZpbGUpIHtcclxuICAgICAgY29uc3QgY3VycmVudCA9IHByb2ZpbGUuY3VycmVudCA9PT0gc3RhdGVLZXkgPyBwcm9maWxlLmRlZmF1bHQgOiBwcm9maWxlLmN1cnJlbnQ7XHJcbiAgICAgIHByb2ZpbGUgPSB7Li4ucHJvZmlsZSxjdXJyZW50LCBzdGF0ZXM6IHsgLi4ucHJvZmlsZS5zdGF0ZXN9fTtcclxuICAgICAgZGVsZXRlIHByb2ZpbGUuc3RhdGVzW3N0YXRlS2V5XTtcclxuICAgICAgcmV0dXJuIHsuLi5zdGF0ZSwgbG9jYWxQcm9maWxlczogey4uLnN0YXRlLmxvY2FsUHJvZmlsZXMsIFtrZXldOiBwcm9maWxlfSB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHN0YXRlO1xyXG4gICAgfVxyXG4gIH0pXHJcbik7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3RvcmFnZVN0YXRlUmVkdWNlcihzdGF0ZTogR2xvYmFsU3RvcmFnZVN0YXRlIHwgdW5kZWZpbmVkLCBhY3Rpb246IEFjdGlvbikge1xyXG4gIHJldHVybiByZWR1Y2VyKHN0YXRlLCBhY3Rpb24pO1xyXG59XHJcbiJdfQ==
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
import { createSelector } from '@ngrx/store';
|
|
2
|
-
export const selectGlobalStorageState = (state) => state.globalStorageState;
|
|
3
|
-
export const selectGlobalProfileKeys = createSelector(selectGlobalStorageState, state => state.globalProfileKeys);
|
|
4
|
-
export const selectCurrentGlobalProfile = createSelector(selectGlobalStorageState, state => state.globalProfiles[state.currentGlobalProfile]);
|
|
5
|
-
export const selectLocalProfile = (key) => createSelector(selectGlobalStorageState, state => state.localProfiles[key]);
|
|
6
|
-
export const selectLocalProfileState = (key) => createSelector(selectLocalProfile(key), (profile) => {
|
|
7
|
-
if (profile) {
|
|
8
|
-
return profile.states[profile.current ?? profile.default];
|
|
9
|
-
}
|
|
10
|
-
return null;
|
|
11
|
-
});
|
|
12
|
-
export const selectLocalProfileCurrentKey = (key) => createSelector(selectLocalProfile(key), (profile) => {
|
|
13
|
-
if (profile) {
|
|
14
|
-
return profile.current ?? profile.default;
|
|
15
|
-
}
|
|
16
|
-
return 'default';
|
|
17
|
-
});
|
|
18
|
-
export const selectLocalProfileKeys = (key) => createSelector(selectLocalProfile(key), (profile) => {
|
|
19
|
-
if (profile) {
|
|
20
|
-
return Object.keys(profile.states).filter(key => key);
|
|
21
|
-
}
|
|
22
|
-
return null;
|
|
23
|
-
});
|
|
1
|
+
import { createSelector } from '@ngrx/store';
|
|
2
|
+
export const selectGlobalStorageState = (state) => state.globalStorageState;
|
|
3
|
+
export const selectGlobalProfileKeys = createSelector(selectGlobalStorageState, state => state.globalProfileKeys);
|
|
4
|
+
export const selectCurrentGlobalProfile = createSelector(selectGlobalStorageState, state => state.globalProfiles[state.currentGlobalProfile]);
|
|
5
|
+
export const selectLocalProfile = (key) => createSelector(selectGlobalStorageState, state => state.localProfiles[key]);
|
|
6
|
+
export const selectLocalProfileState = (key) => createSelector(selectLocalProfile(key), (profile) => {
|
|
7
|
+
if (profile) {
|
|
8
|
+
return profile.states[profile.current ?? profile.default];
|
|
9
|
+
}
|
|
10
|
+
return null;
|
|
11
|
+
});
|
|
12
|
+
export const selectLocalProfileCurrentKey = (key) => createSelector(selectLocalProfile(key), (profile) => {
|
|
13
|
+
if (profile) {
|
|
14
|
+
return profile.current ?? profile.default;
|
|
15
|
+
}
|
|
16
|
+
return 'default';
|
|
17
|
+
});
|
|
18
|
+
export const selectLocalProfileKeys = (key) => createSelector(selectLocalProfile(key), (profile) => {
|
|
19
|
+
if (profile) {
|
|
20
|
+
return Object.keys(profile.states).filter(key => key);
|
|
21
|
+
}
|
|
22
|
+
return null;
|
|
23
|
+
});
|
|
24
24
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvbmdyeC9zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc3QyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxDQUFDLEtBQStDLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztBQUV0SCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUUsQ0FBQTtBQUVsSCxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBRyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUM7QUFFOUksTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FBSSxHQUFVLEVBQUUsRUFBRSxDQUFFLGNBQWMsQ0FBQyx3QkFBd0IsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUVsSSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUFJLEdBQVUsRUFBRSxFQUFFLENBQUUsY0FBYyxDQUN2RSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFDdkIsQ0FBQyxPQUFtQixFQUFFLEVBQUU7SUFDdEIsSUFBRyxPQUFPLEVBQUU7UUFDVixPQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7S0FDNUQ7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDLENBQUMsQ0FBQztBQUVILE1BQU0sQ0FBQyxNQUFNLDRCQUE0QixHQUFHLENBQUksR0FBVSxFQUFFLEVBQUUsQ0FBRSxjQUFjLENBQzVFLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxFQUN2QixDQUFDLE9BQW1CLEVBQUUsRUFBRTtJQUN0QixJQUFHLE9BQU8sRUFBRTtRQUNWLE9BQVEsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDO0tBQzVDO0lBQ0QsT0FBTyxTQUFTLENBQUM7QUFDckIsQ0FBQyxDQUFDLENBQUM7QUFFSCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFJLEdBQVUsRUFBRSxFQUFFLENBQUUsY0FBYyxDQUN0RSxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsRUFDdkIsQ0FBQyxPQUFtQixFQUFFLEVBQUU7SUFDdEIsSUFBRyxPQUFPLEVBQUU7UUFDVixPQUFRLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0tBQ3pEO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjcmVhdGVTZWxlY3RvciB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IEdsb2JhbFN0b3JhZ2VTdGF0ZSwgUHJvZmlsZSB9IGZyb20gJy4vcmVkdWNlcic7XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RHbG9iYWxTdG9yYWdlU3RhdGUgPSAoc3RhdGU6IHtnbG9iYWxTdG9yYWdlU3RhdGU6IEdsb2JhbFN0b3JhZ2VTdGF0ZX0pID0+IHN0YXRlLmdsb2JhbFN0b3JhZ2VTdGF0ZTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEdsb2JhbFByb2ZpbGVLZXlzID0gY3JlYXRlU2VsZWN0b3Ioc2VsZWN0R2xvYmFsU3RvcmFnZVN0YXRlLCBzdGF0ZSA9PiBzdGF0ZS5nbG9iYWxQcm9maWxlS2V5cyApXG5cbmV4cG9ydCBjb25zdCBzZWxlY3RDdXJyZW50R2xvYmFsUHJvZmlsZSA9IGNyZWF0ZVNlbGVjdG9yKHNlbGVjdEdsb2JhbFN0b3JhZ2VTdGF0ZSwgc3RhdGUgPT4gc3RhdGUuZ2xvYmFsUHJvZmlsZXNbc3RhdGUuY3VycmVudEdsb2JhbFByb2ZpbGVdKTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdExvY2FsUHJvZmlsZSA9IDxUPihrZXk6c3RyaW5nKSA9PiAgY3JlYXRlU2VsZWN0b3Ioc2VsZWN0R2xvYmFsU3RvcmFnZVN0YXRlLCBzdGF0ZSA9PiBzdGF0ZS5sb2NhbFByb2ZpbGVzW2tleV0pO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0TG9jYWxQcm9maWxlU3RhdGUgPSA8VD4oa2V5OnN0cmluZykgPT4gIGNyZWF0ZVNlbGVjdG9yKFxuICBzZWxlY3RMb2NhbFByb2ZpbGUoa2V5KSxcbiAgKHByb2ZpbGU6IFByb2ZpbGU8VD4pID0+IHtcbiAgICBpZihwcm9maWxlKSB7XG4gICAgICByZXR1cm4gIHByb2ZpbGUuc3RhdGVzW3Byb2ZpbGUuY3VycmVudCA/PyBwcm9maWxlLmRlZmF1bHRdO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn0pO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0TG9jYWxQcm9maWxlQ3VycmVudEtleSA9IDxUPihrZXk6c3RyaW5nKSA9PiAgY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdExvY2FsUHJvZmlsZShrZXkpLFxuICAocHJvZmlsZTogUHJvZmlsZTxUPikgPT4ge1xuICAgIGlmKHByb2ZpbGUpIHtcbiAgICAgIHJldHVybiAgcHJvZmlsZS5jdXJyZW50ID8/IHByb2ZpbGUuZGVmYXVsdDtcbiAgICB9XG4gICAgcmV0dXJuICdkZWZhdWx0Jztcbn0pO1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0TG9jYWxQcm9maWxlS2V5cyA9IDxUPihrZXk6c3RyaW5nKSA9PiAgY3JlYXRlU2VsZWN0b3IoXG4gIHNlbGVjdExvY2FsUHJvZmlsZShrZXkpLFxuICAocHJvZmlsZTogUHJvZmlsZTxUPikgPT4ge1xuICAgIGlmKHByb2ZpbGUpIHtcbiAgICAgIHJldHVybiAgT2JqZWN0LmtleXMocHJvZmlsZS5zdGF0ZXMpLmZpbHRlcigga2V5ID0+IGtleSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufSk7XG4iXX0=
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { sumBy } from 'lodash';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ColumnTotalPipe {
|
|
5
|
-
transform(data, metaData) {
|
|
6
|
-
const dataToCalculate = data.filter(d => !d.isGroupHeader && !d.isGroupFooter);
|
|
7
|
-
switch (metaData.additional.footer.type) {
|
|
8
|
-
case 'sum':
|
|
9
|
-
return sumBy(dataToCalculate, metaData.key);
|
|
10
|
-
}
|
|
11
|
-
return null;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
ColumnTotalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ColumnTotalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
15
|
-
ColumnTotalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: ColumnTotalPipe, name: "columnTotal" });
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ColumnTotalPipe, decorators: [{
|
|
17
|
-
type: Pipe,
|
|
18
|
-
args: [{ name: 'columnTotal' }]
|
|
19
|
-
}] });
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { sumBy } from 'lodash';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ColumnTotalPipe {
|
|
5
|
+
transform(data, metaData) {
|
|
6
|
+
const dataToCalculate = data.filter(d => !d.isGroupHeader && !d.isGroupFooter);
|
|
7
|
+
switch (metaData.additional.footer.type) {
|
|
8
|
+
case 'sum':
|
|
9
|
+
return sumBy(dataToCalculate, metaData.key);
|
|
10
|
+
}
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
ColumnTotalPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ColumnTotalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
15
|
+
ColumnTotalPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: ColumnTotalPipe, name: "columnTotal" });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ColumnTotalPipe, decorators: [{
|
|
17
|
+
type: Pipe,
|
|
18
|
+
args: [{ name: 'columnTotal' }]
|
|
19
|
+
}] });
|
|
20
20
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXRvdGFsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9jb2x1bW4tdG90YWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sUUFBUSxDQUFDOztBQUc3QixNQUFNLE9BQU8sZUFBZTtJQUMxQixTQUFTLENBQUMsSUFBVyxFQUFFLFFBQWtCO1FBQ3ZDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUE7UUFDOUUsUUFBUSxRQUFRLENBQUMsVUFBVyxDQUFDLE1BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDekMsS0FBSyxLQUFLO2dCQUNWLE9BQU8sS0FBSyxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDN0M7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7OzRHQVJVLGVBQWU7MEdBQWYsZUFBZTsyRkFBZixlQUFlO2tCQUQzQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1ldGFEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcbmltcG9ydCB7c3VtQnl9IGZyb20gJ2xvZGFzaCc7XG5cbkBQaXBlKHsgbmFtZTogJ2NvbHVtblRvdGFsJyB9KVxuZXhwb3J0IGNsYXNzIENvbHVtblRvdGFsUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oZGF0YTogYW55W10sIG1ldGFEYXRhOiBNZXRhRGF0YSkge1xuICAgIGNvbnN0IGRhdGFUb0NhbGN1bGF0ZSA9IGRhdGEuZmlsdGVyKGQgPT4gIWQuaXNHcm91cEhlYWRlciAmJiAhZC5pc0dyb3VwRm9vdGVyKVxuICAgIHN3aXRjaCAobWV0YURhdGEuYWRkaXRpb25hbCEuZm9vdGVyIS50eXBlKSB7XG4gICAgICBjYXNlICdzdW0nOlxuICAgICAgcmV0dXJuIHN1bUJ5KGRhdGFUb0NhbGN1bGF0ZSwgbWV0YURhdGEua2V5KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { FilterType } from '../enums/filterTypes';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class FormatFilterTypePipe {
|
|
5
|
-
transform(filterType, value) {
|
|
6
|
-
if (filterType === FilterType.IsNull) {
|
|
7
|
-
return value ? filterType : 'Is Not Blank';
|
|
8
|
-
}
|
|
9
|
-
return filterType;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
FormatFilterTypePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormatFilterTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
-
FormatFilterTypePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: FormatFilterTypePipe, name: "formatFilterType" });
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormatFilterTypePipe, decorators: [{
|
|
15
|
-
type: Pipe,
|
|
16
|
-
args: [{ name: 'formatFilterType' }]
|
|
17
|
-
}] });
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { FilterType } from '../enums/filterTypes';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class FormatFilterTypePipe {
|
|
5
|
+
transform(filterType, value) {
|
|
6
|
+
if (filterType === FilterType.IsNull) {
|
|
7
|
+
return value ? filterType : 'Is Not Blank';
|
|
8
|
+
}
|
|
9
|
+
return filterType;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
FormatFilterTypePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormatFilterTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
FormatFilterTypePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: FormatFilterTypePipe, name: "formatFilterType" });
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormatFilterTypePipe, decorators: [{
|
|
15
|
+
type: Pipe,
|
|
16
|
+
args: [{ name: 'formatFilterType' }]
|
|
17
|
+
}] });
|
|
18
18
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZpbHRlci10eXBlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9mb3JtYXQtZmlsdGVyLXR5cGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBR2xELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsU0FBUyxDQUFDLFVBQXNCLEVBQUUsS0FBVTtRQUMxQyxJQUFHLFVBQVUsS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFDO1lBQ2xDLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQTtTQUMzQztRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7O2lIQU5VLG9CQUFvQjsrR0FBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRGhDLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGaWx0ZXJUeXBlIH0gZnJvbSAnLi4vZW51bXMvZmlsdGVyVHlwZXMnO1xuXG5AUGlwZSh7bmFtZTogJ2Zvcm1hdEZpbHRlclR5cGUnfSlcbmV4cG9ydCBjbGFzcyBGb3JtYXRGaWx0ZXJUeXBlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICB0cmFuc2Zvcm0oZmlsdGVyVHlwZTogRmlsdGVyVHlwZSwgdmFsdWU6IGFueSl7XG4gICAgaWYoZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5Jc051bGwpe1xuICAgICAgcmV0dXJuIHZhbHVlID8gZmlsdGVyVHlwZSA6ICdJcyBOb3QgQmxhbmsnXG4gICAgfVxuICAgIHJldHVybiBmaWx0ZXJUeXBlO1xuICB9XG59Il19
|
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { map } from 'rxjs/operators';
|
|
3
|
-
import { FieldType } from '../interfaces/report-def';
|
|
4
|
-
import { FilterType } from '../enums/filterTypes';
|
|
5
|
-
import { spaceCase } from '../../utilities/pipes/space-case.pipes';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../classes/table-store";
|
|
8
|
-
import * as i2 from "@angular/common";
|
|
9
|
-
export class FormatFilterValuePipe {
|
|
10
|
-
constructor(tableState, datePipe) {
|
|
11
|
-
this.tableState = tableState;
|
|
12
|
-
this.datePipe = datePipe;
|
|
13
|
-
}
|
|
14
|
-
transform(value, key, filterType) {
|
|
15
|
-
return this.tableState.getMetaData$(key).pipe(map(md => {
|
|
16
|
-
if (filterType === FilterType.IsNull) {
|
|
17
|
-
return '';
|
|
18
|
-
}
|
|
19
|
-
if (value && (filterType === FilterType.In)) {
|
|
20
|
-
if (md.fieldType === FieldType.Enum) {
|
|
21
|
-
return value.map((v) => spaceCase(md.additional.enumMap[v])).join(', ') ?? value;
|
|
22
|
-
}
|
|
23
|
-
return value.join(', ') ?? value;
|
|
24
|
-
}
|
|
25
|
-
if (filterType === FilterType.NumberBetween) {
|
|
26
|
-
if (md.fieldType === FieldType.Date) {
|
|
27
|
-
value = this.datePipe.transform(value.Start, 'MM/dd/yy') + ' - ' + this.datePipe.transform(value.End, 'MM/dd/yy');
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
value = value.Start + ' - ' + value.End;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
else if (md.fieldType === FieldType.Date) {
|
|
34
|
-
value = this.datePipe.transform(value, 'MM/dd/yy');
|
|
35
|
-
}
|
|
36
|
-
return value;
|
|
37
|
-
}));
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
FormatFilterValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormatFilterValuePipe, deps: [{ token: i1.TableStore }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
41
|
-
FormatFilterValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: FormatFilterValuePipe, name: "formatFilterValue" });
|
|
42
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormatFilterValuePipe, decorators: [{
|
|
43
|
-
type: Pipe,
|
|
44
|
-
args: [{ name: 'formatFilterValue' }]
|
|
45
|
-
}], ctorParameters: function () { return [{ type: i1.TableStore }, { type: i2.DatePipe }]; } });
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { map } from 'rxjs/operators';
|
|
3
|
+
import { FieldType } from '../interfaces/report-def';
|
|
4
|
+
import { FilterType } from '../enums/filterTypes';
|
|
5
|
+
import { spaceCase } from '../../utilities/pipes/space-case.pipes';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "../classes/table-store";
|
|
8
|
+
import * as i2 from "@angular/common";
|
|
9
|
+
export class FormatFilterValuePipe {
|
|
10
|
+
constructor(tableState, datePipe) {
|
|
11
|
+
this.tableState = tableState;
|
|
12
|
+
this.datePipe = datePipe;
|
|
13
|
+
}
|
|
14
|
+
transform(value, key, filterType) {
|
|
15
|
+
return this.tableState.getMetaData$(key).pipe(map(md => {
|
|
16
|
+
if (filterType === FilterType.IsNull) {
|
|
17
|
+
return '';
|
|
18
|
+
}
|
|
19
|
+
if (value && (filterType === FilterType.In)) {
|
|
20
|
+
if (md.fieldType === FieldType.Enum) {
|
|
21
|
+
return value.map((v) => spaceCase(md.additional.enumMap[v])).join(', ') ?? value;
|
|
22
|
+
}
|
|
23
|
+
return value.join(', ') ?? value;
|
|
24
|
+
}
|
|
25
|
+
if (filterType === FilterType.NumberBetween) {
|
|
26
|
+
if (md.fieldType === FieldType.Date) {
|
|
27
|
+
value = this.datePipe.transform(value.Start, 'MM/dd/yy') + ' - ' + this.datePipe.transform(value.End, 'MM/dd/yy');
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
value = value.Start + ' - ' + value.End;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
else if (md.fieldType === FieldType.Date) {
|
|
34
|
+
value = this.datePipe.transform(value, 'MM/dd/yy');
|
|
35
|
+
}
|
|
36
|
+
return value;
|
|
37
|
+
}));
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
FormatFilterValuePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormatFilterValuePipe, deps: [{ token: i1.TableStore }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
41
|
+
FormatFilterValuePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: FormatFilterValuePipe, name: "formatFilterValue" });
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: FormatFilterValuePipe, decorators: [{
|
|
43
|
+
type: Pipe,
|
|
44
|
+
args: [{ name: 'formatFilterValue' }]
|
|
45
|
+
}], ctorParameters: function () { return [{ type: i1.TableStore }, { type: i2.DatePipe }]; } });
|
|
46
46
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZpbHRlci12YWx1ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvcGlwZXMvZm9ybWF0LWZpbHRlci12YWx1ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBR3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQzs7OztBQUluRSxNQUFNLE9BQU8scUJBQXFCO0lBQ2hDLFlBQW9CLFVBQXNCLEVBQVcsUUFBa0I7UUFBbkQsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUFXLGFBQVEsR0FBUixRQUFRLENBQVU7SUFDdkUsQ0FBQztJQUNELFNBQVMsQ0FBQyxLQUFVLEVBQUUsR0FBVyxFQUFFLFVBQXNCO1FBQ3ZELE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMzQyxHQUFHLENBQUUsRUFBRSxDQUFDLEVBQUU7WUFDUixJQUFHLFVBQVUsS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFFO2dCQUNuQyxPQUFPLEVBQUUsQ0FBQzthQUNYO1lBQ0QsSUFBRyxLQUFLLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLEVBQUUsQ0FBRSxFQUFDO2dCQUMxQyxJQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksRUFBRTtvQkFDbEMsT0FBTyxLQUFLLENBQUMsR0FBRyxDQUFFLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFVBQVcsQ0FBQyxPQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7aUJBQzFGO2dCQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7YUFDbEM7WUFDRCxJQUFHLFVBQVUsS0FBSyxVQUFVLENBQUMsYUFBYSxFQUFDO2dCQUN6QyxJQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksRUFBQztvQkFDakMsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLEdBQUUsS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLENBQUM7aUJBQ2xIO3FCQUFJO29CQUNILEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO2lCQUN6QzthQUNGO2lCQUFNLElBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFDO2dCQUN4QyxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2FBQ3BEO1lBQ0QsT0FBTyxLQUFLLENBQUE7UUFDZCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7a0hBM0JVLHFCQUFxQjtnSEFBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBRGpDLElBQUk7bUJBQUMsRUFBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uL2VudW1zL2ZpbHRlclR5cGVzJztcbmltcG9ydCB7IHNwYWNlQ2FzZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9waXBlcy9zcGFjZS1jYXNlLnBpcGVzJztcblxuXG5AUGlwZSh7bmFtZTogJ2Zvcm1hdEZpbHRlclZhbHVlJ30pXG5leHBvcnQgY2xhc3MgRm9ybWF0RmlsdGVyVmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKCBwdWJsaWMgdGFibGVTdGF0ZTogVGFibGVTdG9yZSAsIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlKSB7XG4gIH1cbiAgdHJhbnNmb3JtKHZhbHVlOiBhbnksIGtleTogc3RyaW5nLCBmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy50YWJsZVN0YXRlLmdldE1ldGFEYXRhJChrZXkpLnBpcGUoXG4gICAgICBtYXAoIG1kID0+IHtcbiAgICAgICAgaWYoZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5Jc051bGwpIHtcbiAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgIH1cbiAgICAgICAgaWYodmFsdWUgJiYgKGZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuSW4gKSl7XG4gICAgICAgICAgaWYobWQuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRW51bSkge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcCggKHY6IGFueSkgPT4gc3BhY2VDYXNlKG1kLmFkZGl0aW9uYWwhLmVudW1NYXAhW3ZdKSkuam9pbignLCAnKSA/PyB2YWx1ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIHZhbHVlLmpvaW4oJywgJykgPz8gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgaWYoZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5OdW1iZXJCZXR3ZWVuKXtcbiAgICAgICAgICBpZihtZC5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5EYXRlKXtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odmFsdWUuU3RhcnQsICdNTS9kZC95eScpKyAnIC0gJyArIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLkVuZCwgJ01NL2RkL3l5Jyk7XG4gICAgICAgICAgfWVsc2V7XG4gICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLlN0YXJ0ICsgJyAtICcgKyB2YWx1ZS5FbmQ7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2UgaWYobWQuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRGF0ZSl7XG4gICAgICAgICAgdmFsdWUgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgJ01NL2RkL3l5Jyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlXG4gICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { spaceCase } from '../../utilities/pipes/space-case.pipes';
|
|
3
|
-
import { map } from 'rxjs/operators';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../classes/table-store";
|
|
6
|
-
export class KeyDisplayPipe {
|
|
7
|
-
constructor(tableState) {
|
|
8
|
-
this.tableState = tableState;
|
|
9
|
-
}
|
|
10
|
-
transform(key) {
|
|
11
|
-
return this.tableState.getMetaData$(key).pipe(map(metaData => metaData.displayName || spaceCase(key)));
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
KeyDisplayPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: KeyDisplayPipe, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
15
|
-
KeyDisplayPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: KeyDisplayPipe, name: "keyDisplay" });
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: KeyDisplayPipe, decorators: [{
|
|
17
|
-
type: Pipe,
|
|
18
|
-
args: [{ name: 'keyDisplay' }]
|
|
19
|
-
}], ctorParameters: function () { return [{ type: i1.TableStore }]; } });
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import { spaceCase } from '../../utilities/pipes/space-case.pipes';
|
|
3
|
+
import { map } from 'rxjs/operators';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../classes/table-store";
|
|
6
|
+
export class KeyDisplayPipe {
|
|
7
|
+
constructor(tableState) {
|
|
8
|
+
this.tableState = tableState;
|
|
9
|
+
}
|
|
10
|
+
transform(key) {
|
|
11
|
+
return this.tableState.getMetaData$(key).pipe(map(metaData => metaData.displayName || spaceCase(key)));
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
KeyDisplayPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: KeyDisplayPipe, deps: [{ token: i1.TableStore }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
15
|
+
KeyDisplayPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.0.1", ngImport: i0, type: KeyDisplayPipe, name: "keyDisplay" });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: KeyDisplayPipe, decorators: [{
|
|
17
|
+
type: Pipe,
|
|
18
|
+
args: [{ name: 'keyDisplay' }]
|
|
19
|
+
}], ctorParameters: function () { return [{ type: i1.TableStore }]; } });
|
|
20
20
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWRpc3BsYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9rZXktZGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFbkUsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHckMsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUMxQyxDQUFDO0lBQ0QsU0FBUyxDQUFDLEdBQVc7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDOzsyR0FQVSxjQUFjO3lHQUFkLGNBQWM7MkZBQWQsY0FBYztrQkFEMUIsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxZQUFZLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgc3BhY2VDYXNlIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3BpcGVzL3NwYWNlLWNhc2UucGlwZXMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbkBQaXBlKHtuYW1lOiAna2V5RGlzcGxheSd9KVxyXG5leHBvcnQgY2xhc3MgS2V5RGlzcGxheVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICBjb25zdHJ1Y3RvciggcHVibGljIHRhYmxlU3RhdGU6IFRhYmxlU3RvcmUpIHtcclxuICB9XHJcbiAgdHJhbnNmb3JtKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIHJldHVybiB0aGlzLnRhYmxlU3RhdGUuZ2V0TWV0YURhdGEkKGtleSkucGlwZShcclxuICAgICAgbWFwKCBtZXRhRGF0YSA9PiBtZXRhRGF0YS5kaXNwbGF5TmFtZSB8fCBzcGFjZUNhc2Uoa2V5KSlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -1,84 +1,84 @@
|
|
|
1
|
-
import { Inject, Injectable } from '@angular/core';
|
|
2
|
-
import { first, map } from 'rxjs/operators';
|
|
3
|
-
import { combineLatest } from 'rxjs';
|
|
4
|
-
import { orderMetaData } from '../classes/table-store';
|
|
5
|
-
import { TableBuilderConfigToken } from '../classes/TableBuilderConfig';
|
|
6
|
-
import { downloadData } from '../functions/download-data';
|
|
7
|
-
import { ArrayStyle, FieldType } from '../interfaces/report-def';
|
|
8
|
-
import { isPipe } from './transform-creator';
|
|
9
|
-
import { get } from 'lodash';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "../classes/table-store";
|
|
12
|
-
import * as i2 from "@angular/common";
|
|
13
|
-
export class ExportToCsvService {
|
|
14
|
-
constructor(state, config, datePipe) {
|
|
15
|
-
this.state = state;
|
|
16
|
-
this.config = config;
|
|
17
|
-
this.datePipe = datePipe;
|
|
18
|
-
this.exportToCsv = (data) => {
|
|
19
|
-
const exportableFields$ = this.state.state$.pipe(map(mapExportableFields));
|
|
20
|
-
combineLatest([data, exportableFields$]).pipe(first(), map(([data, fields]) => this.csvData(data, fields))).subscribe(csv => downloadData(csv, 'export.csv', 'text/csv'));
|
|
21
|
-
};
|
|
22
|
-
this.csvData = (data, metaData) => {
|
|
23
|
-
const res = data.map(row => metaData.map(meta => this.metaToField(meta, row)).join(','));
|
|
24
|
-
res.unshift(metaData.map(meta => meta.displayName || meta.key).join(','));
|
|
25
|
-
return res.join('\n');
|
|
26
|
-
};
|
|
27
|
-
this.metaToField = (meta, row) => {
|
|
28
|
-
let val = get(row, meta.key);
|
|
29
|
-
if (val == null && !meta.transform)
|
|
30
|
-
return val;
|
|
31
|
-
if (meta.transform && meta.fieldType !== FieldType.Expression) {
|
|
32
|
-
const transform = meta.transform;
|
|
33
|
-
return isPipe(transform) ? transform.transform(val) : transform(val);
|
|
34
|
-
}
|
|
35
|
-
switch (meta.fieldType) {
|
|
36
|
-
case FieldType.Date:
|
|
37
|
-
const dateFormat = meta.additional?.export?.dateFormat || this.config?.export?.dateFormat || meta.additional?.dateFormat;
|
|
38
|
-
val = this.transform(val, dateFormat);
|
|
39
|
-
break;
|
|
40
|
-
case FieldType.String:
|
|
41
|
-
const prepend = meta.additional?.export?.prepend || this.config?.export?.prepend || '';
|
|
42
|
-
val = prepend + val;
|
|
43
|
-
break;
|
|
44
|
-
case FieldType.Array:
|
|
45
|
-
const additional = meta.additional;
|
|
46
|
-
val = val.slice(0, additional.limit).join(additional.arrayStyle === ArrayStyle.NewLine ? '\n' : ', ');
|
|
47
|
-
break;
|
|
48
|
-
case FieldType.Expression:
|
|
49
|
-
val = meta.transform(row);
|
|
50
|
-
break;
|
|
51
|
-
}
|
|
52
|
-
if (typeof val === 'string' && (val.includes(',') || val.includes('"') || val.includes('\n'))) {
|
|
53
|
-
val = val.replaceAll('"', '""');
|
|
54
|
-
val = '"' + val + '"';
|
|
55
|
-
}
|
|
56
|
-
return val;
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
transform(val, dateFormat) {
|
|
60
|
-
if (this.config.transformers && this.config.transformers[FieldType.Date]) {
|
|
61
|
-
return this.config.transformers[FieldType.Date](val);
|
|
62
|
-
}
|
|
63
|
-
return this.datePipe.transform(val, dateFormat);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
ExportToCsvService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ExportToCsvService, deps: [{ token: i1.TableStore }, { token: TableBuilderConfigToken }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
67
|
-
ExportToCsvService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ExportToCsvService });
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ExportToCsvService, decorators: [{
|
|
69
|
-
type: Injectable
|
|
70
|
-
}], ctorParameters: function () { return [{ type: i1.TableStore }, { type: undefined, decorators: [{
|
|
71
|
-
type: Inject,
|
|
72
|
-
args: [TableBuilderConfigToken]
|
|
73
|
-
}] }, { type: i2.DatePipe }]; } });
|
|
74
|
-
export const removeFromMetaData = (state, keysToRemove) => orderMetaData(state)
|
|
75
|
-
.filter(meta => !keysToRemove.includes(meta.key));
|
|
76
|
-
export const nonExportableFields = (state) => Object.values(state.metaData)
|
|
77
|
-
.filter(md => md.noExport)
|
|
78
|
-
.map(md => md.key);
|
|
79
|
-
export const mapExportableFields = (state) => {
|
|
80
|
-
const fieldsToRemove = nonExportableFields(state)
|
|
81
|
-
.concat(state.hiddenKeys);
|
|
82
|
-
return removeFromMetaData(state, fieldsToRemove);
|
|
83
|
-
};
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvc2VydmljZXMvZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFHLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFDbkUsT0FBTyxFQUFzQix1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQW1CLFVBQVUsRUFBRSxTQUFTLEVBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUU1RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7OztBQUc3QixNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1MsS0FBaUIsRUFDaUIsTUFBMEIsRUFDM0QsUUFBa0I7UUFGbkIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNpQixXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUMzRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRzVCLGdCQUFXLEdBQUcsQ0FBQyxJQUFxQixFQUFFLEVBQUU7WUFDdEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzlDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUN6QixDQUFDO1lBRUYsYUFBYSxD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QUFLLENBQUM7S0FDbkIsTUFBTSxDQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBR3JELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBRSxLQUFLLENBQUMsUUFBUSxDQUFDO0tBQ3JGLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUU7S0FDMUIsR0FBRyxDQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBRSxDQUFDO0FBRXZCLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ3ZELE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQztTQUM5QyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNCLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ3BELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlyc3QsIG1hcCAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG9yZGVyTWV0YURhdGEsIFRhYmxlU3RvcmUgfSBmcm9tICcuLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZywgVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4gfSBmcm9tICcuLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XG5pbXBvcnQgeyBkb3dubG9hZERhdGEgfSBmcm9tICcuLi9mdW5jdGlvbnMvZG93bmxvYWQtZGF0YSc7XG5pbXBvcnQgeyBBcnJheUFkZGl0aW9uYWwsIEFycmF5U3R5bGUsIEZpZWxkVHlwZSwgTWV0YURhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xuaW1wb3J0IHsgVGFibGVTdGF0ZSB9IGZyb20gJy4uL2NsYXNzZXMvVGFibGVTdGF0ZSc7XG5pbXBvcnQgeyBpc1BpcGUgfSBmcm9tICcuL3RyYW5zZm9ybS1jcmVhdG9yJztcbmltcG9ydCB7IGdldCB9IGZyb20gJ2xvZGFzaCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFeHBvcnRUb0NzdlNlcnZpY2U8VD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgc3RhdGU6IFRhYmxlU3RvcmUsXG4gICAgQEluamVjdChUYWJsZUJ1aWxkZXJDb25maWdUb2tlbikgcHJpdmF0ZSBjb25maWc6IFRhYmxlQnVpbGRlckNvbmZpZyxcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcbiAgKXt9XG5cbiAgZXhwb3J0VG9Dc3YgPSAoZGF0YTogT2JzZXJ2YWJsZTxUW10+KSA9PiB7XG4gICAgY29uc3QgZXhwb3J0YWJsZUZpZWxkcyQgPSB0aGlzLnN0YXRlLnN0YXRlJC5waXBlKFxuICAgICAgbWFwKG1hcEV4cG9ydGFibGVGaWVsZHMpXG4gICAgKTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW2RhdGEsZXhwb3J0YWJsZUZpZWxkcyRdKS5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIG1hcCgoW2RhdGEsZmllbGRzXSkgPT4gdGhpcy5jc3ZEYXRhKGRhdGEsZmllbGRzKSksXG4gICAgKS5zdWJzY3JpYmUoY3N2ID0+IGRvd25sb2FkRGF0YShjc3YsJ2V4cG9ydC5jc3YnLCd0ZXh0L2NzdicpICk7XG4gIH1cblxuICBjc3ZEYXRhID0gKGRhdGE6QXJyYXk8VD4sIG1ldGFEYXRhOiBNZXRhRGF0YTxUPltdKSA9PiB7XG4gICAgY29uc3QgcmVzID0gZGF0YS5tYXAocm93ID0+IG1ldGFEYXRhLm1hcChtZXRhID0+IHRoaXMubWV0YVRvRmllbGQobWV0YSwgcm93KSkuam9pbignLCcpKTtcbiAgICByZXMudW5zaGlmdChtZXRhRGF0YS5tYXAobWV0YSA9PiBtZXRhLmRpc3BsYXlOYW1lIHx8IG1ldGEua2V5KS5qb2luKCcsJykpO1xuICAgIHJldHVybiByZXMuam9pbignXFxuJyk7XG4gIH1cblxuICBtZXRhVG9GaWVsZCA9IChtZXRhOiBNZXRhRGF0YTxUPiwgcm93OiBUKSA9PiB7XG4gICAgbGV0IHZhbDogYW55ID0gZ2V0KCByb3csbWV0YS5rZXkpO1xuICAgIGlmICh2YWwgPT0gbnVsbCAmJiAhbWV0YS50cmFuc2Zvcm0pIHJldHVybiB2YWxcbiAgICBpZihtZXRhLnRyYW5zZm9ybSAmJiBtZXRhLmZpZWxkVHlwZSAhPT0gRmllbGRUeXBlLkV4cHJlc3Npb24pe1xuICAgICAgY29uc3QgdHJhbnNmb3JtID0gbWV0YS50cmFuc2Zvcm0gYXMgYW55O1xuICAgICAgcmV0dXJuICBpc1BpcGUodHJhbnNmb3JtKSA/IHRyYW5zZm9ybS50cmFuc2Zvcm0odmFsKSA6IHRyYW5zZm9ybSh2YWwpO1xuICAgIH1cbiAgICBzd2l0Y2ggKG1ldGEuZmllbGRUeXBlKSB7XG4gICAgICBjYXNlIEZpZWxkVHlwZS5EYXRlOlxuICAgICAgICBjb25zdCBkYXRlRm9ybWF0ID0gbWV0YS5hZGRpdGlvbmFsPy5leHBvcnQ/LmRhdGVGb3JtYXQgfHwgdGhpcy5jb25maWc/LmV4cG9ydD8uZGF0ZUZvcm1hdCB8fCBtZXRhLmFkZGl0aW9uYWw/LmRhdGVGb3JtYXQ7XG4gICAgICAgIHZhbCA9IHRoaXMudHJhbnNmb3JtKHZhbCwgZGF0ZUZvcm1hdCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBGaWVsZFR5cGUuU3RyaW5nOlxuICAgICAgICBjb25zdCBwcmVwZW5kOiBzdHJpbmcgPSBtZXRhLmFkZGl0aW9uYWw/LmV4cG9ydD8ucHJlcGVuZCB8fCB0aGlzLmNvbmZpZz8uZXhwb3J0Py5wcmVwZW5kIHx8ICcnO1xuICAgICAgICB2YWwgPSBwcmVwZW5kICsgdmFsO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRmllbGRUeXBlLkFycmF5OlxuICAgICAgICBjb25zdCBhZGRpdGlvbmFsID0gbWV0YS5hZGRpdGlvbmFsIGFzIEFycmF5QWRkaXRpb25hbDtcbiAgICAgICAgdmFsID0gKHZhbCBhcyBBcnJheTxzdHJpbmc+KS5zbGljZSgwLGFkZGl0aW9uYWwubGltaXQpLmpvaW4oYWRkaXRpb25hbC5hcnJheVN0eWxlID09PSBBcnJheVN0eWxlLk5ld0xpbmUgPyAnXFxuJyA6ICcsICcpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgRmllbGRUeXBlLkV4cHJlc3Npb246XG4gICAgICAgIHZhbCA9IChtZXRhLnRyYW5zZm9ybSBhcyBhbnkpKHJvdyk7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgJiYgKHZhbC5pbmNsdWRlcygnLCcpIHx8IHZhbC5pbmNsdWRlcygnXCInKSB8fCB2YWwuaW5jbHVkZXMoJ1xcbicpKSkge1xuICAgICAgdmFsID0gdmFsLnJlcGxhY2VBbGwoJ1wiJywgJ1wiXCInKTtcbiAgICAgIHZhbCA9ICdcIicgKyB2YWwgKyAnXCInO1xuICAgIH1cbiAgICByZXR1cm4gdmFsO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmFuc2Zvcm0odmFsOiBhbnksIGRhdGVGb3JtYXQ6IGFueSkge1xuICAgIGlmICh0aGlzLmNvbmZpZy50cmFuc2Zvcm1lcnMgJiYgdGhpcy5jb25maWcudHJhbnNmb3JtZXJzW0ZpZWxkVHlwZS5EYXRlXSkge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnLnRyYW5zZm9ybWVyc1tGaWVsZFR5cGUuRGF0ZV0hKHZhbCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh2YWwsIGRhdGVGb3JtYXQpO1xuICB9XG59XG5cbmV4cG9ydCBjb25zdCByZW1vdmVGcm9tTWV0YURhdGEgPSAoc3RhdGU6IFRhYmxlU3RhdGUsIGtleXNUb1JlbW92ZTogc3RyaW5nW10pID0+XG5cbiAgb3JkZXJNZXRhRGF0YShzdGF0ZSlcbiAgLmZpbHRlciggbWV0YSA9PiAha2V5c1RvUmVtb3ZlLmluY2x1ZGVzKG1ldGEua2V5KSk7XG5cblxuZXhwb3J0IGNvbnN0IG5vbkV4cG9ydGFibGVGaWVsZHMgPSAoc3RhdGU6IFRhYmxlU3RhdGUpID0+IE9iamVjdC52YWx1ZXMoIHN0YXRlLm1ldGFEYXRhKVxuICAuZmlsdGVyKG1kID0+IG1kLm5vRXhwb3J0IClcbiAgLm1hcCggbWQgPT4gbWQua2V5ICk7XG5cbmV4cG9ydCBjb25zdCBtYXBFeHBvcnRhYmxlRmllbGRzID0gKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiB7XG4gIGNvbnN0IGZpZWxkc1RvUmVtb3ZlID0gbm9uRXhwb3J0YWJsZUZpZWxkcyhzdGF0ZSlcbiAgICAuY29uY2F0KHN0YXRlLmhpZGRlbktleXMpO1xuICAgcmV0dXJuIHJlbW92ZUZyb21NZXRhRGF0YShzdGF0ZSwgZmllbGRzVG9SZW1vdmUpO1xufVxuIl19
|
|
1
|
+
import { Inject, Injectable } from '@angular/core';
|
|
2
|
+
import { first, map } from 'rxjs/operators';
|
|
3
|
+
import { combineLatest } from 'rxjs';
|
|
4
|
+
import { orderMetaData } from '../classes/table-store';
|
|
5
|
+
import { TableBuilderConfigToken } from '../classes/TableBuilderConfig';
|
|
6
|
+
import { downloadData } from '../functions/download-data';
|
|
7
|
+
import { ArrayStyle, FieldType } from '../interfaces/report-def';
|
|
8
|
+
import { isPipe } from './transform-creator';
|
|
9
|
+
import { get } from 'lodash';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../classes/table-store";
|
|
12
|
+
import * as i2 from "@angular/common";
|
|
13
|
+
export class ExportToCsvService {
|
|
14
|
+
constructor(state, config, datePipe) {
|
|
15
|
+
this.state = state;
|
|
16
|
+
this.config = config;
|
|
17
|
+
this.datePipe = datePipe;
|
|
18
|
+
this.exportToCsv = (data) => {
|
|
19
|
+
const exportableFields$ = this.state.state$.pipe(map(mapExportableFields));
|
|
20
|
+
combineLatest([data, exportableFields$]).pipe(first(), map(([data, fields]) => this.csvData(data, fields))).subscribe(csv => downloadData(csv, 'export.csv', 'text/csv'));
|
|
21
|
+
};
|
|
22
|
+
this.csvData = (data, metaData) => {
|
|
23
|
+
const res = data.map(row => metaData.map(meta => this.metaToField(meta, row)).join(','));
|
|
24
|
+
res.unshift(metaData.map(meta => meta.displayName || meta.key).join(','));
|
|
25
|
+
return res.join('\n');
|
|
26
|
+
};
|
|
27
|
+
this.metaToField = (meta, row) => {
|
|
28
|
+
let val = get(row, meta.key);
|
|
29
|
+
if (val == null && !meta.transform)
|
|
30
|
+
return val;
|
|
31
|
+
if (meta.transform && meta.fieldType !== FieldType.Expression) {
|
|
32
|
+
const transform = meta.transform;
|
|
33
|
+
return isPipe(transform) ? transform.transform(val) : transform(val);
|
|
34
|
+
}
|
|
35
|
+
switch (meta.fieldType) {
|
|
36
|
+
case FieldType.Date:
|
|
37
|
+
const dateFormat = meta.additional?.export?.dateFormat || this.config?.export?.dateFormat || meta.additional?.dateFormat;
|
|
38
|
+
val = this.transform(val, dateFormat);
|
|
39
|
+
break;
|
|
40
|
+
case FieldType.String:
|
|
41
|
+
const prepend = meta.additional?.export?.prepend || this.config?.export?.prepend || '';
|
|
42
|
+
val = prepend + val;
|
|
43
|
+
break;
|
|
44
|
+
case FieldType.Array:
|
|
45
|
+
const additional = meta.additional;
|
|
46
|
+
val = val.slice(0, additional.limit).join(additional.arrayStyle === ArrayStyle.NewLine ? '\n' : ', ');
|
|
47
|
+
break;
|
|
48
|
+
case FieldType.Expression:
|
|
49
|
+
val = meta.transform(row);
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
if (typeof val === 'string' && (val.includes(',') || val.includes('"') || val.includes('\n'))) {
|
|
53
|
+
val = val.replaceAll('"', '""');
|
|
54
|
+
val = '"' + val + '"';
|
|
55
|
+
}
|
|
56
|
+
return val;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
transform(val, dateFormat) {
|
|
60
|
+
if (this.config.transformers && this.config.transformers[FieldType.Date]) {
|
|
61
|
+
return this.config.transformers[FieldType.Date](val);
|
|
62
|
+
}
|
|
63
|
+
return this.datePipe.transform(val, dateFormat);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
ExportToCsvService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ExportToCsvService, deps: [{ token: i1.TableStore }, { token: TableBuilderConfigToken }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
67
|
+
ExportToCsvService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ExportToCsvService });
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: ExportToCsvService, decorators: [{
|
|
69
|
+
type: Injectable
|
|
70
|
+
}], ctorParameters: function () { return [{ type: i1.TableStore }, { type: undefined, decorators: [{
|
|
71
|
+
type: Inject,
|
|
72
|
+
args: [TableBuilderConfigToken]
|
|
73
|
+
}] }, { type: i2.DatePipe }]; } });
|
|
74
|
+
export const removeFromMetaData = (state, keysToRemove) => orderMetaData(state)
|
|
75
|
+
.filter(meta => !keysToRemove.includes(meta.key));
|
|
76
|
+
export const nonExportableFields = (state) => Object.values(state.metaData)
|
|
77
|
+
.filter(md => md.noExport)
|
|
78
|
+
.map(md => md.key);
|
|
79
|
+
export const mapExportableFields = (state) => {
|
|
80
|
+
const fieldsToRemove = nonExportableFields(state)
|
|
81
|
+
.concat(state.hiddenKeys);
|
|
82
|
+
return removeFromMetaData(state, fieldsToRemove);
|
|
83
|
+
};
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvc2VydmljZXMvZXhwb3J0LXRvLWNzdi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFHLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNwQyxPQUFPLEVBQUUsYUFBYSxFQUFjLE1BQU0sd0JBQXdCLENBQUM7QUFDbkUsT0FBTyxFQUFzQix1QkFBdUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQW1CLFVBQVUsRUFBRSxTQUFTLEVBQVksTUFBTSwwQkFBMEIsQ0FBQztBQUU1RixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDN0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7OztBQUc3QixNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLFlBQ1MsS0FBaUIsRUFDaUIsTUFBMEIsRUFDM0QsUUFBa0I7UUFGbkIsVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUNpQixXQUFNLEdBQU4sTUFBTSxDQUFvQjtRQUMzRCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBRzVCLGdCQUFXLEdBQUcsQ0FBQyxJQUFxQixFQUFFLEVBQUU7WUFDdEMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzlDLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUN6QixDQUFDO1lBRUYsYUFBYSxD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QUFLLENBQUM7S0FDbkIsTUFBTSxDQUFFLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBR3JELE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBRSxLQUFLLENBQUMsUUFBUSxDQUFDO0tBQ3JGLE1BQU0sQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUU7S0FDMUIsR0FBRyxDQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBRSxDQUFDO0FBRXZCLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsS0FBaUIsRUFBRSxFQUFFO0lBQ3ZELE1BQU0sY0FBYyxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQztTQUM5QyxNQUFNLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzNCLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxDQUFDO0FBQ3BELENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlyc3QsIG1hcCAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3R9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBvcmRlck1ldGFEYXRhLCBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZywgVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4gfSBmcm9tICcuLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XHJcbmltcG9ydCB7IGRvd25sb2FkRGF0YSB9IGZyb20gJy4uL2Z1bmN0aW9ucy9kb3dubG9hZC1kYXRhJztcclxuaW1wb3J0IHsgQXJyYXlBZGRpdGlvbmFsLCBBcnJheVN0eWxlLCBGaWVsZFR5cGUsIE1ldGFEYXRhIH0gZnJvbSAnLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgVGFibGVTdGF0ZSB9IGZyb20gJy4uL2NsYXNzZXMvVGFibGVTdGF0ZSc7XHJcbmltcG9ydCB7IGlzUGlwZSB9IGZyb20gJy4vdHJhbnNmb3JtLWNyZWF0b3InO1xyXG5pbXBvcnQgeyBnZXQgfSBmcm9tICdsb2Rhc2gnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgRXhwb3J0VG9Dc3ZTZXJ2aWNlPFQ+IHtcclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyBzdGF0ZTogVGFibGVTdG9yZSxcclxuICAgIEBJbmplY3QoVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4pIHByaXZhdGUgY29uZmlnOiBUYWJsZUJ1aWxkZXJDb25maWcsXHJcbiAgICBwcml2YXRlIGRhdGVQaXBlOiBEYXRlUGlwZSxcclxuICApe31cclxuXHJcbiAgZXhwb3J0VG9Dc3YgPSAoZGF0YTogT2JzZXJ2YWJsZTxUW10+KSA9PiB7XHJcbiAgICBjb25zdCBleHBvcnRhYmxlRmllbGRzJCA9IHRoaXMuc3RhdGUuc3RhdGUkLnBpcGUoXHJcbiAgICAgIG1hcChtYXBFeHBvcnRhYmxlRmllbGRzKVxyXG4gICAgKTtcclxuXHJcbiAgICBjb21iaW5lTGF0ZXN0KFtkYXRhLGV4cG9ydGFibGVGaWVsZHMkXSkucGlwZShcclxuICAgICAgZmlyc3QoKSxcclxuICAgICAgbWFwKChbZGF0YSxmaWVsZHNdKSA9PiB0aGlzLmNzdkRhdGEoZGF0YSxmaWVsZHMpKSxcclxuICAgICkuc3Vic2NyaWJlKGNzdiA9PiBkb3dubG9hZERhdGEoY3N2LCdleHBvcnQuY3N2JywndGV4dC9jc3YnKSApO1xyXG4gIH1cclxuXHJcbiAgY3N2RGF0YSA9IChkYXRhOkFycmF5PFQ+LCBtZXRhRGF0YTogTWV0YURhdGE8VD5bXSkgPT4ge1xyXG4gICAgY29uc3QgcmVzID0gZGF0YS5tYXAocm93ID0+IG1ldGFEYXRhLm1hcChtZXRhID0+IHRoaXMubWV0YVRvRmllbGQobWV0YSwgcm93KSkuam9pbignLCcpKTtcclxuICAgIHJlcy51bnNoaWZ0KG1ldGFEYXRhLm1hcChtZXRhID0+IG1ldGEuZGlzcGxheU5hbWUgfHwgbWV0YS5rZXkpLmpvaW4oJywnKSk7XHJcbiAgICByZXR1cm4gcmVzLmpvaW4oJ1xcbicpO1xyXG4gIH1cclxuXHJcbiAgbWV0YVRvRmllbGQgPSAobWV0YTogTWV0YURhdGE8VD4sIHJvdzogVCkgPT4ge1xyXG4gICAgbGV0IHZhbDogYW55ID0gZ2V0KCByb3csbWV0YS5rZXkpO1xyXG4gICAgaWYgKHZhbCA9PSBudWxsICYmICFtZXRhLnRyYW5zZm9ybSkgcmV0dXJuIHZhbFxyXG4gICAgaWYobWV0YS50cmFuc2Zvcm0gJiYgbWV0YS5maWVsZFR5cGUgIT09IEZpZWxkVHlwZS5FeHByZXNzaW9uKXtcclxuICAgICAgY29uc3QgdHJhbnNmb3JtID0gbWV0YS50cmFuc2Zvcm0gYXMgYW55O1xyXG4gICAgICByZXR1cm4gIGlzUGlwZSh0cmFuc2Zvcm0pID8gdHJhbnNmb3JtLnRyYW5zZm9ybSh2YWwpIDogdHJhbnNmb3JtKHZhbCk7XHJcbiAgICB9XHJcbiAgICBzd2l0Y2ggKG1ldGEuZmllbGRUeXBlKSB7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkRhdGU6XHJcbiAgICAgICAgY29uc3QgZGF0ZUZvcm1hdCA9IG1ldGEuYWRkaXRpb25hbD8uZXhwb3J0Py5kYXRlRm9ybWF0IHx8IHRoaXMuY29uZmlnPy5leHBvcnQ/LmRhdGVGb3JtYXQgfHwgbWV0YS5hZGRpdGlvbmFsPy5kYXRlRm9ybWF0O1xyXG4gICAgICAgIHZhbCA9IHRoaXMudHJhbnNmb3JtKHZhbCwgZGF0ZUZvcm1hdCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLlN0cmluZzpcclxuICAgICAgICBjb25zdCBwcmVwZW5kOiBzdHJpbmcgPSBtZXRhLmFkZGl0aW9uYWw/LmV4cG9ydD8ucHJlcGVuZCB8fCB0aGlzLmNvbmZpZz8uZXhwb3J0Py5wcmVwZW5kIHx8ICcnO1xyXG4gICAgICAgIHZhbCA9IHByZXBlbmQgKyB2YWw7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgRmllbGRUeXBlLkFycmF5OlxyXG4gICAgICAgIGNvbnN0IGFkZGl0aW9uYWwgPSBtZXRhLmFkZGl0aW9uYWwgYXMgQXJyYXlBZGRpdGlvbmFsO1xyXG4gICAgICAgIHZhbCA9ICh2YWwgYXMgQXJyYXk8c3RyaW5nPikuc2xpY2UoMCxhZGRpdGlvbmFsLmxpbWl0KS5qb2luKGFkZGl0aW9uYWwuYXJyYXlTdHlsZSA9PT0gQXJyYXlTdHlsZS5OZXdMaW5lID8gJ1xcbicgOiAnLCAnKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBGaWVsZFR5cGUuRXhwcmVzc2lvbjpcclxuICAgICAgICB2YWwgPSAobWV0YS50cmFuc2Zvcm0gYXMgYW55KShyb3cpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnICYmICh2YWwuaW5jbHVkZXMoJywnKSB8fCB2YWwuaW5jbHVkZXMoJ1wiJykgfHwgdmFsLmluY2x1ZGVzKCdcXG4nKSkpIHtcclxuICAgICAgdmFsID0gdmFsLnJlcGxhY2VBbGwoJ1wiJywgJ1wiXCInKTtcclxuICAgICAgdmFsID0gJ1wiJyArIHZhbCArICdcIic7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdmFsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm0odmFsOiBhbnksIGRhdGVGb3JtYXQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuY29uZmlnLnRyYW5zZm9ybWVycyAmJiB0aGlzLmNvbmZpZy50cmFuc2Zvcm1lcnNbRmllbGRUeXBlLkRhdGVdKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZy50cmFuc2Zvcm1lcnNbRmllbGRUeXBlLkRhdGVdISh2YWwpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbCwgZGF0ZUZvcm1hdCk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3QgcmVtb3ZlRnJvbU1ldGFEYXRhID0gKHN0YXRlOiBUYWJsZVN0YXRlLCBrZXlzVG9SZW1vdmU6IHN0cmluZ1tdKSA9PlxyXG5cclxuICBvcmRlck1ldGFEYXRhKHN0YXRlKVxyXG4gIC5maWx0ZXIoIG1ldGEgPT4gIWtleXNUb1JlbW92ZS5pbmNsdWRlcyhtZXRhLmtleSkpO1xyXG5cclxuXHJcbmV4cG9ydCBjb25zdCBub25FeHBvcnRhYmxlRmllbGRzID0gKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiBPYmplY3QudmFsdWVzKCBzdGF0ZS5tZXRhRGF0YSlcclxuICAuZmlsdGVyKG1kID0+IG1kLm5vRXhwb3J0IClcclxuICAubWFwKCBtZCA9PiBtZC5rZXkgKTtcclxuXHJcbmV4cG9ydCBjb25zdCBtYXBFeHBvcnRhYmxlRmllbGRzID0gKHN0YXRlOiBUYWJsZVN0YXRlKSA9PiB7XHJcbiAgY29uc3QgZmllbGRzVG9SZW1vdmUgPSBub25FeHBvcnRhYmxlRmllbGRzKHN0YXRlKVxyXG4gICAgLmNvbmNhdChzdGF0ZS5oaWRkZW5LZXlzKTtcclxuICAgcmV0dXJuIHJlbW92ZUZyb21NZXRhRGF0YShzdGF0ZSwgZmllbGRzVG9SZW1vdmUpO1xyXG59XHJcbiJdfQ==
|