@one-paragon/angular-utilities 1.2.0 → 1.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/action-state/action-state-spinner/action-state-spinner.component.mjs +7 -7
- package/esm2022/action-state/action-state-ui/action-state-ui.module.mjs +5 -5
- package/esm2022/action-state/ngrx-ext/ngrx-ext.module.mjs +6 -6
- package/esm2022/action-state/ngrx.mjs +6 -1
- package/esm2022/http-request-state/HttpRequestStateFactory.mjs +6 -7
- package/esm2022/http-request-state/HttpRequestStateStore.mjs +41 -37
- package/esm2022/http-request-state/directives/HttpStateDirectiveBase.mjs +17 -21
- package/esm2022/http-request-state/directives/http-error-state-directive.mjs +12 -18
- package/esm2022/http-request-state/directives/http-inProgress-state-directive.mjs +12 -18
- package/esm2022/http-request-state/directives/http-notStarted-state-directive.mjs +12 -18
- package/esm2022/http-request-state/directives/http-success-state-directive.mjs +13 -18
- package/esm2022/http-request-state/directives/request-state-directive.mjs +20 -19
- package/esm2022/http-request-state/http-state-module.mjs +6 -6
- package/esm2022/ngrx/actionable-selector.mjs +12 -14
- package/esm2022/rxjs/subjectifier.mjs +6 -6
- package/esm2022/rxjs/subscriber.directive.mjs +11 -13
- package/esm2022/table-builder/classes/MatTableObservableDataSource.mjs +3 -1
- package/esm2022/table-builder/classes/TableBuilderDataSource.mjs +10 -8
- package/esm2022/table-builder/classes/TableState.mjs +13 -15
- package/esm2022/table-builder/classes/table-builder-general-settings.mjs +46 -54
- package/esm2022/table-builder/classes/table-builder.mjs +4 -1
- package/esm2022/table-builder/classes/table-store.mjs +280 -282
- package/esm2022/table-builder/components/array-column.component.mjs +15 -19
- package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +44 -35
- package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +7 -7
- package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +7 -7
- package/esm2022/table-builder/components/filter/filter.component.mjs +24 -24
- package/esm2022/table-builder/components/filter/in-list/in-list-filter.component.mjs +19 -18
- package/esm2022/table-builder/components/gen-col-displayer/gen-col-displayer.component.mjs +15 -15
- package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +100 -86
- package/esm2022/table-builder/components/generic-table/paginator.component.mjs +20 -18
- package/esm2022/table-builder/components/group-by-list/group-by-list.component.mjs +5 -7
- package/esm2022/table-builder/components/header-menu/header-menu.component.mjs +24 -21
- package/esm2022/table-builder/components/in-filter/in-filter.component.mjs +14 -13
- package/esm2022/table-builder/components/initialization-component/initialization-component.mjs +11 -4
- package/esm2022/table-builder/components/link-column.component.mjs +19 -23
- package/esm2022/table-builder/components/number-filter/number-filter.component.mjs +8 -8
- package/esm2022/table-builder/components/profiles-menu/profiles-menu.component.mjs +26 -28
- package/esm2022/table-builder/components/scroll-strategy.mjs +11 -7
- package/esm2022/table-builder/components/sort-menu/sort-menu.component-store.mjs +31 -31
- package/esm2022/table-builder/components/sort-menu/sort-menu.component.mjs +23 -22
- package/esm2022/table-builder/components/table-container/table-container.mjs +90 -80
- package/esm2022/table-builder/components/table-container/virtual-scroll-container.mjs +49 -51
- package/esm2022/table-builder/components/table-container-filter/filter-list/filter-list.component.mjs +8 -10
- package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +17 -15
- package/esm2022/table-builder/components/table-container-filter/table-wrapper-filter-store.mjs +14 -14
- package/esm2022/table-builder/directives/custom-cell-directive.mjs +24 -20
- package/esm2022/table-builder/directives/multi-sort.directive.mjs +10 -10
- package/esm2022/table-builder/directives/resize-column.directive.mjs +13 -14
- package/esm2022/table-builder/directives/table-wrapper.directive.mjs +5 -7
- package/esm2022/table-builder/directives/tb-filter.directive.mjs +105 -110
- package/esm2022/table-builder/ngrx/tableBuilderStateStore.mjs +124 -124
- package/esm2022/table-builder/pipes/column-total.pipe.mjs +4 -4
- package/esm2022/table-builder/pipes/format-filter-type.pipe.mjs +4 -4
- package/esm2022/table-builder/pipes/format-filter-value.pipe.mjs +10 -12
- package/esm2022/table-builder/pipes/key-display.mjs +8 -10
- package/esm2022/table-builder/services/export-to-csv.service.mjs +57 -63
- package/esm2022/table-builder/services/table-template-service.mjs +11 -8
- package/esm2022/table-builder/services/transform-creator.mjs +35 -40
- package/esm2022/table-builder/table-builder.module.mjs +7 -7
- package/esm2022/utilities/directives/auto-focus.directive.mjs +8 -10
- package/esm2022/utilities/directives/clickEmitterDirective.mjs +4 -4
- package/esm2022/utilities/directives/clickSubject.mjs +5 -4
- package/esm2022/utilities/directives/conditional-classes.directive.mjs +11 -11
- package/esm2022/utilities/directives/dialog-service.mjs +5 -7
- package/esm2022/utilities/directives/dialog.mjs +38 -39
- package/esm2022/utilities/directives/mat-toggle-group-directive.mjs +7 -8
- package/esm2022/utilities/directives/prevent-enter.directive.mjs +4 -4
- package/esm2022/utilities/directives/stop-propagation.directive.mjs +4 -4
- package/esm2022/utilities/directives/styler.mjs +10 -11
- package/esm2022/utilities/directives/trim-whitespace.directive.mjs +7 -9
- package/esm2022/utilities/module.mjs +7 -7
- package/esm2022/utilities/pipes/function.pipe.mjs +4 -4
- package/esm2022/utilities/pipes/phone.pipe.mjs +4 -4
- package/esm2022/utilities/pipes/space-case.pipes.mjs +4 -4
- package/fesm2022/one-paragon-angular-utilities.mjs +1666 -1678
- package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -1
- package/http-request-state/HttpRequestStateStore.d.ts +2 -2
- package/http-request-state/directives/HttpStateDirectiveBase.d.ts +5 -7
- package/http-request-state/directives/http-error-state-directive.d.ts +1 -4
- package/http-request-state/directives/http-inProgress-state-directive.d.ts +3 -6
- package/http-request-state/directives/http-notStarted-state-directive.d.ts +1 -4
- package/http-request-state/directives/http-success-state-directive.d.ts +1 -6
- package/http-request-state/directives/request-state-directive.d.ts +0 -1
- package/package.json +8 -8
- package/rxjs/subjectifier.d.ts +0 -1
- package/table-builder/classes/TableBuilderDataSource.d.ts +0 -1
- package/table-builder/classes/table-store.d.ts +1 -2
- package/table-builder/components/column-builder/column-builder.component.d.ts +2 -6
- package/table-builder/components/filter/filter.component.d.ts +1 -2
- package/table-builder/components/filter/in-list/in-list-filter.component.d.ts +0 -3
- package/table-builder/components/gen-col-displayer/gen-col-displayer.component.d.ts +1 -2
- package/table-builder/components/generic-table/generic-table.component.d.ts +4 -4
- package/table-builder/components/generic-table/paginator.component.d.ts +0 -2
- package/table-builder/components/header-menu/header-menu.component.d.ts +1 -2
- package/table-builder/components/in-filter/in-filter.component.d.ts +1 -2
- package/table-builder/components/sort-menu/sort-menu.component-store.d.ts +1 -2
- package/table-builder/components/sort-menu/sort-menu.component.d.ts +2 -3
- package/table-builder/components/table-container/table-container-imports.d.ts +1 -1
- package/table-builder/components/table-container/virtual-scroll-container.d.ts +0 -2
- package/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.d.ts +3 -3
- package/table-builder/directives/custom-cell-directive.d.ts +3 -3
- package/table-builder/directives/multi-sort.directive.d.ts +1 -2
- package/table-builder/directives/resize-column.directive.d.ts +1 -2
- package/table-builder/directives/tb-filter.directive.d.ts +19 -23
- package/table-builder/pipes/format-filter-value.pipe.d.ts +0 -2
- package/table-builder/pipes/key-display.d.ts +0 -1
- package/table-builder/services/export-to-csv.service.d.ts +0 -3
- package/table-builder/services/table-template-service.d.ts +1 -2
- package/table-builder/services/transform-creator.d.ts +0 -5
- package/utilities/directives/auto-focus.directive.d.ts +1 -2
- package/utilities/directives/conditional-classes.directive.d.ts +1 -2
- package/utilities/directives/dialog.d.ts +2 -5
- package/utilities/directives/styler.d.ts +0 -2
- package/utilities/directives/trim-whitespace.directive.d.ts +0 -2
|
@@ -4,135 +4,135 @@ import * as i0 from "@angular/core";
|
|
|
4
4
|
export class TableBuilderStateStore extends ComponentStore {
|
|
5
5
|
constructor() {
|
|
6
6
|
super(loadGlobalStorageState() || defaultStorageState);
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
return
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
|
|
7
|
+
}
|
|
8
|
+
//selectors
|
|
9
|
+
$selectLocalTableProfile = (profileKey) => this.selectSignal(state => state.localProfiles[profileKey]);
|
|
10
|
+
$selectLocalTableStateForView = (tableId) => this.selectSignal(this.$selectLocalTableProfile(tableId), (profile) => {
|
|
11
|
+
if (profile?.current) {
|
|
12
|
+
return profile.states[profile.current];
|
|
13
|
+
}
|
|
14
|
+
if (profile?.localSavedState)
|
|
15
|
+
return profile.localSavedState;
|
|
16
|
+
return null;
|
|
17
|
+
});
|
|
18
|
+
$selectLocalProfileCurrentKey = (key) => this.selectSignal(this.$selectLocalTableProfile(key), (profile) => profile?.current);
|
|
19
|
+
$selectLocalProfileDefaultKey = (key) => this.selectSignal(this.$selectLocalTableProfile(key), (profile) => profile?.default);
|
|
20
|
+
$selectLocalProfileKeys = (tableId) => this.selectSignal(this.$selectLocalTableProfile(tableId), (profile) => Object.keys(profile?.states || {}));
|
|
21
|
+
// reducers
|
|
22
|
+
saveTableSettingsToLocalAndStorage = (tableId, stateName, tableState, asDefault) => {
|
|
23
|
+
this.saveTableStateToStorage(tableId, stateName, tableState, asDefault);
|
|
24
|
+
this.saveTableStateToLocal({ tableId, tableState, stateName, asDefault });
|
|
25
|
+
};
|
|
26
|
+
saveTableStateToLocal = this.updater((state, props) => {
|
|
27
|
+
let profile = state.localProfiles[props.tableId];
|
|
28
|
+
if (!profile?.states) {
|
|
29
|
+
profile = { states: {} };
|
|
30
|
+
}
|
|
31
|
+
if (!props.stateName) {
|
|
32
|
+
profile = { ...profile, localSavedState: props.tableState };
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
profile = { ...profile, states: { ...profile.states, [props.stateName]: props.tableState } };
|
|
36
|
+
}
|
|
37
|
+
if (props.asDefault) {
|
|
38
|
+
profile.default = props.stateName;
|
|
39
|
+
}
|
|
40
|
+
return { ...state, localProfiles: { ...state.localProfiles, [props.tableId]: profile } };
|
|
41
|
+
});
|
|
42
|
+
saveTableStateToStorage = (tableId, stateName, tableState, asDefault = false) => {
|
|
43
|
+
const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
|
|
44
|
+
globalSavedState.localProfiles[tableId] ??= { states: {} };
|
|
45
|
+
globalSavedState.localProfiles[tableId].states[stateName] = tableState;
|
|
46
|
+
if (asDefault) {
|
|
47
|
+
globalSavedState.localProfiles[tableId].default = stateName;
|
|
48
|
+
}
|
|
49
|
+
localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
|
|
50
|
+
};
|
|
51
|
+
addNewStateToLocalAndStorage = (tableId, newStateName, tableState, asDefault) => {
|
|
52
|
+
this.saveTableSettingsToLocalAndStorage(tableId, newStateName, tableState, asDefault);
|
|
53
|
+
this.setLocalCurrentState({ tableId: tableId, currentStateKey: newStateName });
|
|
54
|
+
};
|
|
55
|
+
setLocalCurrentState = this.updater((state, props) => {
|
|
56
|
+
const profile = state.localProfiles[props.tableId] || { states: {} };
|
|
57
|
+
profile.current = props.currentStateKey;
|
|
58
|
+
return { ...state, localProfiles: { ...state.localProfiles, [props.tableId]: { ...profile } } };
|
|
59
|
+
});
|
|
60
|
+
setDefaultInLocalAndStorage = (tableId, newDefault) => {
|
|
61
|
+
this.setDefaultInLocal({ default: newDefault, key: tableId });
|
|
62
|
+
this.setDefaultInStorage(tableId, newDefault);
|
|
63
|
+
};
|
|
64
|
+
setDefaultInLocal = this.updater((state, props) => {
|
|
65
|
+
if (state.localProfiles[props.key]?.states[props.default]) {
|
|
66
|
+
return ({ ...state, localProfiles: { ...state.localProfiles, [props.key]: { ...state.localProfiles[props.key], default: props.default } } });
|
|
67
|
+
}
|
|
68
|
+
return state;
|
|
69
|
+
});
|
|
70
|
+
unsetDefaultFromLocalAndStorage = (tableId) => {
|
|
71
|
+
this.unsetDefaultFromLocal(tableId);
|
|
72
|
+
this.unsetDefaultFromStorage(tableId);
|
|
73
|
+
};
|
|
74
|
+
unsetDefaultFromLocal = (tableId) => {
|
|
75
|
+
this.patchState(tables => {
|
|
76
|
+
const profile = { ...tables.localProfiles[tableId] };
|
|
77
|
+
if (profile) {
|
|
78
|
+
delete profile.default;
|
|
38
79
|
}
|
|
39
|
-
return { ...
|
|
80
|
+
return { ...tables, localProfiles: { ...tables.localProfiles, [tableId]: profile } };
|
|
40
81
|
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
globalSavedState.localProfiles[tableId].default = stateName;
|
|
47
|
-
}
|
|
82
|
+
};
|
|
83
|
+
unsetDefaultFromStorage = (tableId) => {
|
|
84
|
+
const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
|
|
85
|
+
if (globalSavedState.localProfiles[tableId]) {
|
|
86
|
+
delete globalSavedState.localProfiles[tableId].default;
|
|
48
87
|
localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
setDefaultInStorage = (tableId, stateName) => {
|
|
91
|
+
const tableProfile = this.$selectLocalTableProfile(tableId)();
|
|
92
|
+
const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
|
|
93
|
+
let savedProfile = globalSavedState.localProfiles[stateName];
|
|
94
|
+
if (!savedProfile?.states) {
|
|
95
|
+
savedProfile = { default: stateName, states: tableProfile.states };
|
|
96
|
+
}
|
|
97
|
+
else {
|
|
98
|
+
savedProfile.default = stateName;
|
|
99
|
+
}
|
|
100
|
+
globalSavedState.localProfiles[tableId] = savedProfile;
|
|
101
|
+
localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
|
|
102
|
+
};
|
|
103
|
+
deleteLocalProfilesState = this.updater((state, props) => {
|
|
104
|
+
let profile = state.localProfiles[props.key];
|
|
105
|
+
if (profile) {
|
|
106
|
+
const current = profile.current === props.stateKey ? profile.default : profile.current;
|
|
107
|
+
profile = { ...profile, current, states: { ...profile.states } };
|
|
108
|
+
delete profile.states[props.stateKey];
|
|
109
|
+
if (current === props.stateKey) {
|
|
110
|
+
profile.current = undefined;
|
|
66
111
|
}
|
|
112
|
+
return { ...state, localProfiles: { ...state.localProfiles, [props.key]: profile } };
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
67
115
|
return state;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
this.
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
|
|
87
|
-
}
|
|
88
|
-
};
|
|
89
|
-
this.setDefaultInStorage = (tableId, stateName) => {
|
|
90
|
-
const tableProfile = this.$selectLocalTableProfile(tableId)();
|
|
91
|
-
const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
|
|
92
|
-
let savedProfile = globalSavedState.localProfiles[stateName];
|
|
93
|
-
if (!savedProfile?.states) {
|
|
94
|
-
savedProfile = { default: stateName, states: tableProfile.states };
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
savedProfile.default = stateName;
|
|
98
|
-
}
|
|
99
|
-
globalSavedState.localProfiles[tableId] = savedProfile;
|
|
100
|
-
localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
|
|
101
|
-
};
|
|
102
|
-
this.deleteLocalProfilesState = this.updater((state, props) => {
|
|
103
|
-
let profile = state.localProfiles[props.key];
|
|
104
|
-
if (profile) {
|
|
105
|
-
const current = profile.current === props.stateKey ? profile.default : profile.current;
|
|
106
|
-
profile = { ...profile, current, states: { ...profile.states } };
|
|
107
|
-
delete profile.states[props.stateKey];
|
|
108
|
-
if (current === props.stateKey) {
|
|
109
|
-
profile.current = undefined;
|
|
110
|
-
}
|
|
111
|
-
return { ...state, localProfiles: { ...state.localProfiles, [props.key]: profile } };
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
return state;
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
this.deleteProfileFromLocalAndStorage = (key, stateKey) => {
|
|
118
|
-
const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
|
|
119
|
-
if (!globalSavedState.localProfiles[key]) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
else {
|
|
123
|
-
delete (globalSavedState.localProfiles[key].states ?? {})[stateKey];
|
|
124
|
-
}
|
|
125
|
-
if (globalSavedState.localProfiles[key].default === stateKey) {
|
|
126
|
-
globalSavedState.localProfiles[key].default = undefined;
|
|
127
|
-
}
|
|
128
|
-
localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
|
|
129
|
-
this.deleteLocalProfilesState({ key, stateKey });
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: TableBuilderStateStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
133
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.2", ngImport: i0, type: TableBuilderStateStore, providedIn: 'root' }); }
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
deleteProfileFromLocalAndStorage = (key, stateKey) => {
|
|
119
|
+
const globalSavedState = JSON.parse(localStorage.getItem('global-state-storage') ?? JSON.stringify(defaultStorageState));
|
|
120
|
+
if (!globalSavedState.localProfiles[key]) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
delete (globalSavedState.localProfiles[key].states ?? {})[stateKey];
|
|
125
|
+
}
|
|
126
|
+
if (globalSavedState.localProfiles[key].default === stateKey) {
|
|
127
|
+
globalSavedState.localProfiles[key].default = undefined;
|
|
128
|
+
}
|
|
129
|
+
localStorage.setItem('global-state-storage', JSON.stringify(globalSavedState));
|
|
130
|
+
this.deleteLocalProfilesState({ key, stateKey });
|
|
131
|
+
};
|
|
132
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TableBuilderStateStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
133
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TableBuilderStateStore, providedIn: 'root' });
|
|
134
134
|
}
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
135
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: TableBuilderStateStore, decorators: [{
|
|
136
136
|
type: Injectable,
|
|
137
137
|
args: [{ providedIn: 'root' }]
|
|
138
138
|
}], ctorParameters: () => [] });
|
|
@@ -151,4 +151,4 @@ function loadGlobalStorageState() {
|
|
|
151
151
|
export const defaultStorageState = {
|
|
152
152
|
localProfiles: {}
|
|
153
153
|
};
|
|
154
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVCdWlsZGVyU3RhdGVTdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL25ncngvdGFibGVCdWlsZGVyU3RhdGVTdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFPbkQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGNBQWtDO0lBQzVFO1FBQ0UsS0FBSyxDQUFDLHNCQUFzQixFQUFFLElBQUksbUJBQW1CLENBQUMsQ0FBQTtRQUd4RCxXQUFXO1FBQ1gsNkJBQXdCLEdBQUcsQ0FBQyxVQUFpQixFQUErQixFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUN2RyxLQUFLLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFFbkMsa0NBQTZCLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQ3BFLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLENBQUMsRUFDdEMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNWLElBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixPQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzFDLENBQUM7WUFDRCxJQUFHLE9BQU8sRUFBRSxlQUFlO2dCQUFFLE9BQU8sT0FBTyxDQUFDLGVBQWUsQ0FBQztZQUM1RCxPQUFPLElBQUksQ0FBQztRQUNkLENBQUMsQ0FDRixDQUFBO1FBRUQsa0NBQTZCLEdBQUcsQ0FBQyxHQUFVLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQy9ELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxHQUFHLENBQUMsRUFDbEMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUVqQyxrQ0FBNkIsR0FBRyxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FDL0QsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxFQUNsQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLDRCQUF1QixHQUFHLENBQUMsT0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUM3RCxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLEVBQ3RDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLENBQ2hELENBQUM7UUFHRixXQUFXO1FBR1gsdUNBQWtDLEdBQUcsQ0FBQyxPQUFlLEVBQUUsU0FBaUIsRUFBRSxVQUErQixFQUFFLFNBQW1CLEVBQUUsRUFBRTtZQUNoSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDeEUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztRQUM1RSxDQUFDLENBQUE7UUFFRCwwQkFBcUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQW9HLEVBQUUsRUFBRTtZQUNuSixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqRCxJQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDO2dCQUNwQixPQUFPLEdBQUcsRUFBQyxNQUFNLEVBQUMsRUFBRSxFQUFDLENBQUM7WUFDeEIsQ0FBQztZQUNELElBQUcsQ0FBQyxLQUFLLENBQUMsU0FBUyxFQUFDLENBQUM7Z0JBQ25CLE9BQU8sR0FBRyxFQUFDLEdBQUcsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDN0QsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE9BQU8sR0FBRyxFQUFDLEdBQUcsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsRUFBRyxLQUFLLENBQUMsVUFBVSxFQUFDLEVBQUUsQ0FBQztZQUM3RixDQUFDO1lBQ0QsSUFBRyxLQUFLLENBQUMsU0FBUyxFQUFDLENBQUM7Z0JBQ2xCLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUNwQyxDQUFDO1lBQ0QsT0FBTyxFQUFDLEdBQUcsS0FBSyxFQUFFLGFBQWEsRUFBRSxFQUFDLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxPQUFPLEVBQUMsRUFBRSxDQUFBO1FBQ3ZGLENBQUMsQ0FBQyxDQUFDO1FBRUgsNEJBQXVCLEdBQUcsQ0FBQyxPQUFlLEVBQUUsU0FBaUIsRUFBRSxVQUErQixFQUFFLFNBQVMsR0FBRyxLQUFLLEVBQUUsRUFBRTtZQUNuSCxNQUFNLGdCQUFnQixHQUErQixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUUsQ0FBQztZQUN0SixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUcsRUFBRSxFQUFDLENBQUE7WUFDMUQsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxVQUFVLENBQUM7WUFDdkUsSUFBRyxTQUFTLEVBQUMsQ0FBQztnQkFDWixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztZQUM5RCxDQUFDO1lBQ0QsWUFBWSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDLENBQUE7UUFFRCxpQ0FBNEIsR0FBRyxDQUFDLE9BQWUsRUFBRSxZQUFvQixFQUFFLFVBQStCLEVBQUUsU0FBbUIsRUFBRSxFQUFFO1lBQzdILElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLFVBQVUsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN0RixJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsQ0FBQTtRQUVELHlCQUFvQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBbUQsRUFBRSxFQUFFO1lBQ2pHLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBQyxDQUFDO1lBQ3BFLE9BQU8sQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLGVBQWUsQ0FBQztZQUN4QyxPQUFPLEVBQUMsR0FBRyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUMsR0FBRyxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUMsR0FBRyxPQUFPLEVBQUMsRUFBQyxFQUFDLENBQUM7UUFDNUYsQ0FBQyxDQUFDLENBQUM7UUFFSCxnQ0FBMkIsR0FBRyxDQUFDLE9BQWUsRUFBRSxVQUFrQixFQUFFLEVBQUU7WUFDcEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQTtRQUVELHNCQUFpQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBdUMsRUFBRSxFQUFFO1lBQ2xGLElBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUN6RCxPQUFPLENBQUMsRUFBQyxHQUFHLEtBQUssRUFBRSxhQUFhLEVBQUUsRUFBQyxHQUFHLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBQyxHQUFHLEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDM0ksQ0FBQztZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7UUFFSCxvQ0FBK0IsR0FBRyxDQUFDLE9BQWUsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDeEMsQ0FBQyxDQUFBO1FBRUQsMEJBQXFCLEdBQUcsQ0FBQyxPQUFlLEVBQUUsRUFBRTtZQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN2QixNQUFNLE9BQU8sR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNyRCxJQUFHLE9BQU8sRUFBRSxDQUFDO29CQUNYLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDekIsQ0FBQztnQkFDRCxPQUFPLEVBQUUsR0FBRyxNQUFNLEVBQUUsYUFBYSxFQUFFLEVBQUUsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUN2RixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQTtRQUVELDRCQUF1QixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7WUFDNUMsTUFBTSxnQkFBZ0IsR0FBdUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFFLENBQUM7WUFDOUksSUFBRyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsT0FBTyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxDQUFDO2dCQUN2RCxZQUFZLENBQUMsT0FBTyxDQUFDLHNCQUFzQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUUsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQ2xGLENBQUM7UUFDSCxDQUFDLENBQUE7UUFFRCx3QkFBbUIsR0FBRyxDQUFDLE9BQWUsRUFBRSxTQUFpQixFQUFFLEVBQUU7WUFDM0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDOUQsTUFBTSxnQkFBZ0IsR0FBdUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLHNCQUFzQixDQUFDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFFLENBQUM7WUFDOUksSUFBSSxZQUFZLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdELElBQUcsQ0FBQyxZQUFZLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ3pCLFlBQVksR0FBSSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFHLFlBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4RSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sWUFBWSxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7WUFDbkMsQ0FBQztZQUNELGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsR0FBRyxZQUFZLENBQUM7WUFDdkQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQztRQUNsRixDQUFDLENBQUE7UUFFRCw2QkFBd0IsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQXdDLEVBQUUsRUFBRTtZQUMxRixJQUFJLE9BQU8sR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM3QyxJQUFHLE9BQU8sRUFBRSxDQUFDO2dCQUNYLE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDdkYsT0FBTyxHQUFHLEVBQUMsR0FBRyxPQUFPLEVBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBQyxFQUFDLENBQUM7Z0JBQzdELE9BQU8sT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3RDLElBQUcsT0FBTyxLQUFLLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztvQkFDOUIsT0FBTyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7Z0JBQzlCLENBQUM7Z0JBQ0QsT0FBTyxFQUFDLEdBQUcsS0FBSyxFQUFFLGFBQWEsRUFBRSxFQUFDLEdBQUcsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxPQUFPLEVBQUMsRUFBRSxDQUFDO1lBQ3BGLENBQUM7aUJBQU0sQ0FBQztnQkFDTixPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILHFDQUFnQyxHQUFHLENBQUMsR0FBVyxFQUFFLFFBQWdCLEVBQUUsRUFBRTtZQUNuRSxNQUFNLGdCQUFnQixHQUF1QixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLG1CQUFtQixDQUFDLENBQUUsQ0FBQztZQUM5SSxJQUFHLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hDLE9BQU87WUFDVCxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sT0FBTyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEUsQ0FBQztZQUNELElBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztnQkFDNUQsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sR0FBRyxTQUFTLENBQUM7WUFDMUQsQ0FBQztZQUNELFlBQVksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7WUFDaEYsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUE7UUFDbEQsQ0FBQyxDQUFBO0lBdkpELENBQUM7OEdBSFUsc0JBQXNCO2tIQUF0QixzQkFBc0IsY0FEVCxNQUFNOzsyRkFDbkIsc0JBQXNCO2tCQURsQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBQzs7QUE4SmpDLFNBQVMsc0JBQXNCO0lBQzdCLE1BQU0sT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUU3RCxJQUFHLE9BQU8sRUFBRSxDQUFDO1FBQ1gsTUFBTSxDQUFDLEdBQXdCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFnQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxhQUFhLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLEtBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBQyxDQUFDO1lBQ2hDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFhLENBQUE7UUFDNUUsQ0FBQztRQUNELE9BQU8sRUFBQyxHQUFHLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxFQUFDLENBQUM7SUFDeEMsQ0FBQztBQUNILENBQUM7QUFtQkQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXVCO0lBQ3JELGFBQWEsRUFBRSxFQUFFO0NBQ2xCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gXCJAbmdyeC9jb21wb25lbnQtc3RvcmVcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjb25jYXRMYXRlc3RGcm9tIH0gZnJvbSAnQG5ncngvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnlcIjtcclxuaW1wb3J0IHsgUGVyc2lzdGVkVGFibGVTdGF0ZSwgVGFibGVTdGF0ZSB9IGZyb20gXCIuLi9jbGFzc2VzL1RhYmxlU3RhdGVcIjtcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnfSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQnVpbGRlclN0YXRlU3RvcmUgZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxHbG9iYWxTdG9yYWdlU3RhdGU+IHtcclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gICAgc3VwZXIobG9hZEdsb2JhbFN0b3JhZ2VTdGF0ZSgpIHx8IGRlZmF1bHRTdG9yYWdlU3RhdGUpXHJcbiAgfVxyXG5cclxuICAvL3NlbGVjdG9yc1xyXG4gICRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZSA9IChwcm9maWxlS2V5OnN0cmluZyk6IFNpZ25hbDxQcm9maWxlIHwgdW5kZWZpbmVkPiA9PiB0aGlzLnNlbGVjdFNpZ25hbChzdGF0ZSA9PiBcclxuICAgIHN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvZmlsZUtleV0pO1xyXG5cclxuICAkc2VsZWN0TG9jYWxUYWJsZVN0YXRlRm9yVmlldyA9ICh0YWJsZUlkOiBzdHJpbmcpID0+IHRoaXMuc2VsZWN0U2lnbmFsKFxyXG4gICAgdGhpcy4kc2VsZWN0TG9jYWxUYWJsZVByb2ZpbGUodGFibGVJZCksXHJcbiAgICAocHJvZmlsZSkgPT4ge1xyXG4gICAgICBpZihwcm9maWxlPy5jdXJyZW50KSB7XHJcbiAgICAgICAgcmV0dXJuICBwcm9maWxlLnN0YXRlc1twcm9maWxlLmN1cnJlbnRdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHByb2ZpbGU/LmxvY2FsU2F2ZWRTdGF0ZSkgcmV0dXJuIHByb2ZpbGUubG9jYWxTYXZlZFN0YXRlO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICApXHJcblxyXG4gICRzZWxlY3RMb2NhbFByb2ZpbGVDdXJyZW50S2V5ID0gKGtleTpzdHJpbmcpID0+IHRoaXMuc2VsZWN0U2lnbmFsKFxyXG4gICAgdGhpcy4kc2VsZWN0TG9jYWxUYWJsZVByb2ZpbGUoa2V5KSxcclxuICAgIChwcm9maWxlKSA9PiBwcm9maWxlPy5jdXJyZW50KTtcclxuXHJcbiAgJHNlbGVjdExvY2FsUHJvZmlsZURlZmF1bHRLZXkgPSAoa2V5OnN0cmluZykgPT4gdGhpcy5zZWxlY3RTaWduYWwoXHJcbiAgICB0aGlzLiRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZShrZXkpLFxyXG4gICAgKHByb2ZpbGUpID0+IHByb2ZpbGU/LmRlZmF1bHQpO1xyXG5cclxuICAkc2VsZWN0TG9jYWxQcm9maWxlS2V5cyA9ICh0YWJsZUlkOnN0cmluZykgPT4gdGhpcy5zZWxlY3RTaWduYWwoXHJcbiAgICB0aGlzLiRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZSh0YWJsZUlkKSxcclxuICAgIChwcm9maWxlKSA9PiBPYmplY3Qua2V5cyhwcm9maWxlPy5zdGF0ZXMgfHwge30pXHJcbiAgKTtcclxuXHJcblxyXG4gIC8vIHJlZHVjZXJzXHJcbiAgXHJcblxyXG4gIHNhdmVUYWJsZVNldHRpbmdzVG9Mb2NhbEFuZFN0b3JhZ2UgPSAodGFibGVJZDogc3RyaW5nLCBzdGF0ZU5hbWU6IHN0cmluZywgdGFibGVTdGF0ZTogUGVyc2lzdGVkVGFibGVTdGF0ZSwgYXNEZWZhdWx0PzogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5zYXZlVGFibGVTdGF0ZVRvU3RvcmFnZSh0YWJsZUlkLCBzdGF0ZU5hbWUsIHRhYmxlU3RhdGUsIGFzRGVmYXVsdCk7XHJcbiAgICB0aGlzLnNhdmVUYWJsZVN0YXRlVG9Mb2NhbCh7IHRhYmxlSWQsIHRhYmxlU3RhdGUsIHN0YXRlTmFtZSwgYXNEZWZhdWx0IH0pO1xyXG4gIH1cclxuICBcclxuICBzYXZlVGFibGVTdGF0ZVRvTG9jYWwgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBwcm9wczogeyB0YWJsZUlkOiBzdHJpbmcsIHRhYmxlU3RhdGU6IFBlcnNpc3RlZFRhYmxlU3RhdGUsIHN0YXRlTmFtZT86IHN0cmluZywgYXNEZWZhdWx0PzogYm9vbGVhbiB9KSA9PiB7XHJcbiAgICBsZXQgcHJvZmlsZSA9IHN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvcHMudGFibGVJZF07XHJcbiAgICBpZighcHJvZmlsZT8uc3RhdGVzKSB7XHJcbiAgICAgIHByb2ZpbGUgPSB7c3RhdGVzOnt9fTtcclxuICAgIH1cclxuICAgIGlmKCFwcm9wcy5zdGF0ZU5hbWUpe1xyXG4gICAgICBwcm9maWxlID0gey4uLnByb2ZpbGUsIGxvY2FsU2F2ZWRTdGF0ZTogcHJvcHMudGFibGVTdGF0ZSB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcHJvZmlsZSA9IHsuLi5wcm9maWxlLCBzdGF0ZXM6IHsuLi5wcm9maWxlLnN0YXRlcywgW3Byb3BzLnN0YXRlTmFtZV0gOiBwcm9wcy50YWJsZVN0YXRlfSB9O1xyXG4gICAgfVxyXG4gICAgaWYocHJvcHMuYXNEZWZhdWx0KXtcclxuICAgICAgcHJvZmlsZS5kZWZhdWx0ID0gcHJvcHMuc3RhdGVOYW1lO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgbG9jYWxQcm9maWxlczogey4uLnN0YXRlLmxvY2FsUHJvZmlsZXMsIFtwcm9wcy50YWJsZUlkXTogcHJvZmlsZX0gfVxyXG4gIH0pO1xyXG5cclxuICBzYXZlVGFibGVTdGF0ZVRvU3RvcmFnZSA9ICh0YWJsZUlkOiBzdHJpbmcsIHN0YXRlTmFtZTogc3RyaW5nLCB0YWJsZVN0YXRlOiBQZXJzaXN0ZWRUYWJsZVN0YXRlLCBhc0RlZmF1bHQgPSBmYWxzZSkgPT4ge1xyXG4gICAgY29uc3QgZ2xvYmFsU2F2ZWRTdGF0ZTogUGVyc2lzdGVkR2xvYmFsU3RvcmFnZVNhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpID8/IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRTdG9yYWdlU3RhdGUpICk7XHJcbiAgICBnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNbdGFibGVJZF0gPz89IHsgc3RhdGVzIDoge319XHJcbiAgICBnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNbdGFibGVJZF0uc3RhdGVzW3N0YXRlTmFtZV0gPSB0YWJsZVN0YXRlO1xyXG4gICAgaWYoYXNEZWZhdWx0KXtcclxuICAgICAgZ2xvYmFsU2F2ZWRTdGF0ZS5sb2NhbFByb2ZpbGVzW3RhYmxlSWRdLmRlZmF1bHQgPSBzdGF0ZU5hbWU7XHJcbiAgICB9XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnLCBKU09OLnN0cmluZ2lmeSggZ2xvYmFsU2F2ZWRTdGF0ZSkpO1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3U3RhdGVUb0xvY2FsQW5kU3RvcmFnZSA9ICh0YWJsZUlkOiBzdHJpbmcsIG5ld1N0YXRlTmFtZTogc3RyaW5nLCB0YWJsZVN0YXRlOiBQZXJzaXN0ZWRUYWJsZVN0YXRlLCBhc0RlZmF1bHQ/OiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLnNhdmVUYWJsZVNldHRpbmdzVG9Mb2NhbEFuZFN0b3JhZ2UodGFibGVJZCwgbmV3U3RhdGVOYW1lLCB0YWJsZVN0YXRlLCBhc0RlZmF1bHQpO1xyXG4gICAgdGhpcy5zZXRMb2NhbEN1cnJlbnRTdGF0ZSh7IHRhYmxlSWQ6IHRhYmxlSWQsIGN1cnJlbnRTdGF0ZUtleTogbmV3U3RhdGVOYW1lfSk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2NhbEN1cnJlbnRTdGF0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHByb3BzOiB7IHRhYmxlSWQ6IHN0cmluZywgY3VycmVudFN0YXRlS2V5OiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgY29uc3QgcHJvZmlsZSA9IHN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvcHMudGFibGVJZF0gfHwgeyBzdGF0ZXM6IHt9fTtcclxuICAgIHByb2ZpbGUuY3VycmVudCA9IHByb3BzLmN1cnJlbnRTdGF0ZUtleTtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIGxvY2FsUHJvZmlsZXM6IHsuLi5zdGF0ZS5sb2NhbFByb2ZpbGVzLCBbcHJvcHMudGFibGVJZF06IHsuLi5wcm9maWxlfX19O1xyXG4gIH0pO1xyXG5cclxuICBzZXREZWZhdWx0SW5Mb2NhbEFuZFN0b3JhZ2UgPSAodGFibGVJZDogc3RyaW5nLCBuZXdEZWZhdWx0OiBzdHJpbmcpID0+IHtcclxuICAgIHRoaXMuc2V0RGVmYXVsdEluTG9jYWwoeyBkZWZhdWx0OiBuZXdEZWZhdWx0LCBrZXk6IHRhYmxlSWQgfSk7XHJcbiAgICB0aGlzLnNldERlZmF1bHRJblN0b3JhZ2UodGFibGVJZCwgbmV3RGVmYXVsdCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0SW5Mb2NhbCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHByb3BzOiB7IGtleTogc3RyaW5nLCBkZWZhdWx0OiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgaWYoc3RhdGUubG9jYWxQcm9maWxlc1twcm9wcy5rZXldPy5zdGF0ZXNbcHJvcHMuZGVmYXVsdF0pIHtcclxuICAgICAgcmV0dXJuICh7Li4uc3RhdGUsIGxvY2FsUHJvZmlsZXM6IHsuLi5zdGF0ZS5sb2NhbFByb2ZpbGVzLCBbcHJvcHMua2V5XTogey4uLnN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvcHMua2V5XSwgZGVmYXVsdDogcHJvcHMuZGVmYXVsdH0gfSB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdGF0ZTtcclxuICB9KTtcclxuICBcclxuICB1bnNldERlZmF1bHRGcm9tTG9jYWxBbmRTdG9yYWdlID0gKHRhYmxlSWQ6IHN0cmluZykgPT4ge1xyXG4gICAgdGhpcy51bnNldERlZmF1bHRGcm9tTG9jYWwodGFibGVJZCk7XHJcbiAgICB0aGlzLnVuc2V0RGVmYXVsdEZyb21TdG9yYWdlKHRhYmxlSWQpO1xyXG4gIH1cclxuXHJcbiAgdW5zZXREZWZhdWx0RnJvbUxvY2FsID0gKHRhYmxlSWQ6IHN0cmluZykgPT4ge1xyXG4gICAgdGhpcy5wYXRjaFN0YXRlKHRhYmxlcyA9PiB7XHJcbiAgICAgIGNvbnN0IHByb2ZpbGUgPSB7IC4uLnRhYmxlcy5sb2NhbFByb2ZpbGVzW3RhYmxlSWRdIH07XHJcbiAgICAgIGlmKHByb2ZpbGUpIHtcclxuICAgICAgICBkZWxldGUgcHJvZmlsZS5kZWZhdWx0O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7IC4uLnRhYmxlcywgbG9jYWxQcm9maWxlczogeyAuLi50YWJsZXMubG9jYWxQcm9maWxlcywgW3RhYmxlSWRdOiBwcm9maWxlIH0gfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdW5zZXREZWZhdWx0RnJvbVN0b3JhZ2UgPSAodGFibGVJZDogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBnbG9iYWxTYXZlZFN0YXRlOiBHbG9iYWxTdG9yYWdlU3RhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpID8/IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRTdG9yYWdlU3RhdGUpICk7XHJcbiAgICBpZihnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNbdGFibGVJZF0pIHtcclxuICAgICAgZGVsZXRlIGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1t0YWJsZUlkXS5kZWZhdWx0O1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnLCBKU09OLnN0cmluZ2lmeSggZ2xvYmFsU2F2ZWRTdGF0ZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdEluU3RvcmFnZSA9ICh0YWJsZUlkOiBzdHJpbmcsIHN0YXRlTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCB0YWJsZVByb2ZpbGUgPSB0aGlzLiRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZSh0YWJsZUlkKSgpO1xyXG4gICAgY29uc3QgZ2xvYmFsU2F2ZWRTdGF0ZTogR2xvYmFsU3RvcmFnZVN0YXRlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnKSA/PyBKU09OLnN0cmluZ2lmeShkZWZhdWx0U3RvcmFnZVN0YXRlKSApO1xyXG4gICAgbGV0IHNhdmVkUHJvZmlsZSA9IGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1tzdGF0ZU5hbWVdO1xyXG4gICAgaWYoIXNhdmVkUHJvZmlsZT8uc3RhdGVzKSB7XHJcbiAgICAgIHNhdmVkUHJvZmlsZSA9ICB7IGRlZmF1bHQ6IHN0YXRlTmFtZSwgc3RhdGVzIDogdGFibGVQcm9maWxlIS5zdGF0ZXMgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNhdmVkUHJvZmlsZS5kZWZhdWx0ID0gc3RhdGVOYW1lO1xyXG4gICAgfVxyXG4gICAgZ2xvYmFsU2F2ZWRTdGF0ZS5sb2NhbFByb2ZpbGVzW3RhYmxlSWRdID0gc2F2ZWRQcm9maWxlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2dsb2JhbC1zdGF0ZS1zdG9yYWdlJywgSlNPTi5zdHJpbmdpZnkoIGdsb2JhbFNhdmVkU3RhdGUpKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUxvY2FsUHJvZmlsZXNTdGF0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHByb3BzOiB7IGtleTogc3RyaW5nLCBzdGF0ZUtleTogc3RyaW5nIH0pID0+IHtcclxuICAgIGxldCBwcm9maWxlID0gc3RhdGUubG9jYWxQcm9maWxlc1twcm9wcy5rZXldO1xyXG4gICAgaWYocHJvZmlsZSkge1xyXG4gICAgICBjb25zdCBjdXJyZW50ID0gcHJvZmlsZS5jdXJyZW50ID09PSBwcm9wcy5zdGF0ZUtleSA/IHByb2ZpbGUuZGVmYXVsdCA6IHByb2ZpbGUuY3VycmVudDtcclxuICAgICAgcHJvZmlsZSA9IHsuLi5wcm9maWxlLGN1cnJlbnQsIHN0YXRlczogeyAuLi5wcm9maWxlLnN0YXRlc319O1xyXG4gICAgICBkZWxldGUgcHJvZmlsZS5zdGF0ZXNbcHJvcHMuc3RhdGVLZXldO1xyXG4gICAgICBpZihjdXJyZW50ID09PSBwcm9wcy5zdGF0ZUtleSkge1xyXG4gICAgICAgIHByb2ZpbGUuY3VycmVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gey4uLnN0YXRlLCBsb2NhbFByb2ZpbGVzOiB7Li4uc3RhdGUubG9jYWxQcm9maWxlcywgW3Byb3BzLmtleV06IHByb2ZpbGV9IH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gc3RhdGU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGRlbGV0ZVByb2ZpbGVGcm9tTG9jYWxBbmRTdG9yYWdlID0gKGtleTogc3RyaW5nLCBzdGF0ZUtleTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBnbG9iYWxTYXZlZFN0YXRlOiBHbG9iYWxTdG9yYWdlU3RhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpID8/IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRTdG9yYWdlU3RhdGUpICk7XHJcbiAgICBpZighZ2xvYmFsU2F2ZWRTdGF0ZS5sb2NhbFByb2ZpbGVzW2tleV0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVsZXRlIChnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNba2V5XS5zdGF0ZXMgPz8ge30pW3N0YXRlS2V5XTtcclxuICAgIH1cclxuICAgIGlmKGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1trZXldLmRlZmF1bHQgPT09IHN0YXRlS2V5KSB7XHJcbiAgICAgIGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1trZXldLmRlZmF1bHQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnLCBKU09OLnN0cmluZ2lmeSggZ2xvYmFsU2F2ZWRTdGF0ZSkpO1xyXG4gICAgdGhpcy5kZWxldGVMb2NhbFByb2ZpbGVzU3RhdGUoeyBrZXksIHN0YXRlS2V5IH0pXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBsb2FkR2xvYmFsU3RvcmFnZVN0YXRlKCkgOiBHbG9iYWxTdG9yYWdlU3RhdGUgfCB2b2lkIHtcclxuICBjb25zdCBzdG9yYWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2dsb2JhbC1zdGF0ZS1zdG9yYWdlJyk7XHJcbiAgXHJcbiAgaWYoc3RvcmFnZSkge1xyXG4gICAgY29uc3QgczogR2xvYmFsU3RvcmFnZVN0YXRlID0gKEpTT04ucGFyc2Uoc3RvcmFnZSkgYXMgUGVyc2lzdGVkR2xvYmFsU3RvcmFnZVNhdGUpO1xyXG4gICAgcy5sb2NhbFByb2ZpbGVzID8/PSB7fTtcclxuICAgIGZvcihjb25zdCBrZXkgaW4gcy5sb2NhbFByb2ZpbGVzKXtcclxuICAgICAgY29uc3QgcHJvZmlsZSA9IHMubG9jYWxQcm9maWxlc1trZXldO1xyXG4gICAgICBzLmxvY2FsUHJvZmlsZXNba2V5XSA9IHsgLi4ucHJvZmlsZSwgY3VycmVudDogcHJvZmlsZS5kZWZhdWx0IH0gYXMgUHJvZmlsZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsuLi5kZWZhdWx0U3RvcmFnZVN0YXRlLCAuLi5zfTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBQZXJzaXN0ZWRQcm9maWxlIHtcclxuICBzdGF0ZXM6IERpY3Rpb25hcnk8UGVyc2lzdGVkVGFibGVTdGF0ZT47XHJcbiAgZGVmYXVsdD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGUgZXh0ZW5kcyBQZXJzaXN0ZWRQcm9maWxlIHtcclxuICBjdXJyZW50Pzogc3RyaW5nO1xyXG4gIGxvY2FsU2F2ZWRTdGF0ZT86IFBlcnNpc3RlZFRhYmxlU3RhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsU3RvcmFnZVN0YXRlIHtcclxuICBsb2NhbFByb2ZpbGVzOiBEaWN0aW9uYXJ5PFByb2ZpbGU+O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUGVyc2lzdGVkR2xvYmFsU3RvcmFnZVNhdGUge1xyXG4gIGxvY2FsUHJvZmlsZXM6IERpY3Rpb25hcnk8UGVyc2lzdGVkUHJvZmlsZT47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0U3RvcmFnZVN0YXRlOiBHbG9iYWxTdG9yYWdlU3RhdGUgPSB7XHJcbiAgbG9jYWxQcm9maWxlczoge31cclxufSJdfQ==
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVCdWlsZGVyU3RhdGVTdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy90YWJsZS1idWlsZGVyL25ncngvdGFibGVCdWlsZGVyU3RhdGVTdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFPbkQsTUFBTSxPQUFPLHNCQUF1QixTQUFRLGNBQWtDO0lBQzVFO1FBQ0UsS0FBSyxDQUFDLHNCQUFzQixFQUFFLElBQUksbUJBQW1CLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0lBRUQsV0FBVztJQUNYLHdCQUF3QixHQUFHLENBQUMsVUFBaUIsRUFBK0IsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FDdkcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRW5DLDZCQUE2QixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUNwRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsT0FBTyxDQUFDLEVBQ3RDLENBQUMsT0FBTyxFQUFFLEVBQUU7UUFDVixJQUFHLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUNwQixPQUFRLE9BQU8sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzFDLENBQUM7UUFDRCxJQUFHLE9BQU8sRUFBRSxlQUFlO1lBQUUsT0FBTyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQzVELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQyxDQUNGLENBQUE7SUFFRCw2QkFBNkIsR0FBRyxDQUFDLEdBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FDL0QsSUFBSSxD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LEdBQXdCLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFnQyxDQUFDO1FBQ2xGLENBQUMsQ0FBQyxhQUFhLEtBQUssRUFBRSxDQUFDO1FBQ3ZCLEtBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxDQUFDLGFBQWEsRUFBQyxDQUFDO1lBQ2hDLE1BQU0sT0FBTyxHQUFHLENBQUMsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDckMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsT0FBTyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFhLENBQUE7UUFDNUUsQ0FBQztRQUNELE9BQU8sRUFBQyxHQUFHLG1CQUFtQixFQUFFLEdBQUcsQ0FBQyxFQUFDLENBQUM7SUFDeEMsQ0FBQztBQUNILENBQUM7QUFtQkQsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQXVCO0lBQ3JELGFBQWEsRUFBRSxFQUFFO0NBQ2xCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gXCJAbmdyeC9jb21wb25lbnQtc3RvcmVcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgU2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZmlsdGVyLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBjb25jYXRMYXRlc3RGcm9tIH0gZnJvbSAnQG5ncngvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGljdGlvbmFyeSB9IGZyb20gXCIuLi9pbnRlcmZhY2VzL2RpY3Rpb25hcnlcIjtcclxuaW1wb3J0IHsgUGVyc2lzdGVkVGFibGVTdGF0ZSwgVGFibGVTdGF0ZSB9IGZyb20gXCIuLi9jbGFzc2VzL1RhYmxlU3RhdGVcIjtcclxuXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnfSlcclxuZXhwb3J0IGNsYXNzIFRhYmxlQnVpbGRlclN0YXRlU3RvcmUgZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxHbG9iYWxTdG9yYWdlU3RhdGU+IHtcclxuICBjb25zdHJ1Y3Rvcigpe1xyXG4gICAgc3VwZXIobG9hZEdsb2JhbFN0b3JhZ2VTdGF0ZSgpIHx8IGRlZmF1bHRTdG9yYWdlU3RhdGUpXHJcbiAgfVxyXG5cclxuICAvL3NlbGVjdG9yc1xyXG4gICRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZSA9IChwcm9maWxlS2V5OnN0cmluZyk6IFNpZ25hbDxQcm9maWxlIHwgdW5kZWZpbmVkPiA9PiB0aGlzLnNlbGVjdFNpZ25hbChzdGF0ZSA9PiBcclxuICAgIHN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvZmlsZUtleV0pO1xyXG5cclxuICAkc2VsZWN0TG9jYWxUYWJsZVN0YXRlRm9yVmlldyA9ICh0YWJsZUlkOiBzdHJpbmcpID0+IHRoaXMuc2VsZWN0U2lnbmFsKFxyXG4gICAgdGhpcy4kc2VsZWN0TG9jYWxUYWJsZVByb2ZpbGUodGFibGVJZCksXHJcbiAgICAocHJvZmlsZSkgPT4ge1xyXG4gICAgICBpZihwcm9maWxlPy5jdXJyZW50KSB7XHJcbiAgICAgICAgcmV0dXJuICBwcm9maWxlLnN0YXRlc1twcm9maWxlLmN1cnJlbnRdO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKHByb2ZpbGU/LmxvY2FsU2F2ZWRTdGF0ZSkgcmV0dXJuIHByb2ZpbGUubG9jYWxTYXZlZFN0YXRlO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICApXHJcblxyXG4gICRzZWxlY3RMb2NhbFByb2ZpbGVDdXJyZW50S2V5ID0gKGtleTpzdHJpbmcpID0+IHRoaXMuc2VsZWN0U2lnbmFsKFxyXG4gICAgdGhpcy4kc2VsZWN0TG9jYWxUYWJsZVByb2ZpbGUoa2V5KSxcclxuICAgIChwcm9maWxlKSA9PiBwcm9maWxlPy5jdXJyZW50KTtcclxuXHJcbiAgJHNlbGVjdExvY2FsUHJvZmlsZURlZmF1bHRLZXkgPSAoa2V5OnN0cmluZykgPT4gdGhpcy5zZWxlY3RTaWduYWwoXHJcbiAgICB0aGlzLiRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZShrZXkpLFxyXG4gICAgKHByb2ZpbGUpID0+IHByb2ZpbGU/LmRlZmF1bHQpO1xyXG5cclxuICAkc2VsZWN0TG9jYWxQcm9maWxlS2V5cyA9ICh0YWJsZUlkOnN0cmluZykgPT4gdGhpcy5zZWxlY3RTaWduYWwoXHJcbiAgICB0aGlzLiRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZSh0YWJsZUlkKSxcclxuICAgIChwcm9maWxlKSA9PiBPYmplY3Qua2V5cyhwcm9maWxlPy5zdGF0ZXMgfHwge30pXHJcbiAgKTtcclxuXHJcblxyXG4gIC8vIHJlZHVjZXJzXHJcbiAgXHJcblxyXG4gIHNhdmVUYWJsZVNldHRpbmdzVG9Mb2NhbEFuZFN0b3JhZ2UgPSAodGFibGVJZDogc3RyaW5nLCBzdGF0ZU5hbWU6IHN0cmluZywgdGFibGVTdGF0ZTogUGVyc2lzdGVkVGFibGVTdGF0ZSwgYXNEZWZhdWx0PzogYm9vbGVhbikgPT4ge1xyXG4gICAgdGhpcy5zYXZlVGFibGVTdGF0ZVRvU3RvcmFnZSh0YWJsZUlkLCBzdGF0ZU5hbWUsIHRhYmxlU3RhdGUsIGFzRGVmYXVsdCk7XHJcbiAgICB0aGlzLnNhdmVUYWJsZVN0YXRlVG9Mb2NhbCh7IHRhYmxlSWQsIHRhYmxlU3RhdGUsIHN0YXRlTmFtZSwgYXNEZWZhdWx0IH0pO1xyXG4gIH1cclxuICBcclxuICBzYXZlVGFibGVTdGF0ZVRvTG9jYWwgPSB0aGlzLnVwZGF0ZXIoKHN0YXRlLCBwcm9wczogeyB0YWJsZUlkOiBzdHJpbmcsIHRhYmxlU3RhdGU6IFBlcnNpc3RlZFRhYmxlU3RhdGUsIHN0YXRlTmFtZT86IHN0cmluZywgYXNEZWZhdWx0PzogYm9vbGVhbiB9KSA9PiB7XHJcbiAgICBsZXQgcHJvZmlsZSA9IHN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvcHMudGFibGVJZF07XHJcbiAgICBpZighcHJvZmlsZT8uc3RhdGVzKSB7XHJcbiAgICAgIHByb2ZpbGUgPSB7c3RhdGVzOnt9fTtcclxuICAgIH1cclxuICAgIGlmKCFwcm9wcy5zdGF0ZU5hbWUpe1xyXG4gICAgICBwcm9maWxlID0gey4uLnByb2ZpbGUsIGxvY2FsU2F2ZWRTdGF0ZTogcHJvcHMudGFibGVTdGF0ZSB9O1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcHJvZmlsZSA9IHsuLi5wcm9maWxlLCBzdGF0ZXM6IHsuLi5wcm9maWxlLnN0YXRlcywgW3Byb3BzLnN0YXRlTmFtZV0gOiBwcm9wcy50YWJsZVN0YXRlfSB9O1xyXG4gICAgfVxyXG4gICAgaWYocHJvcHMuYXNEZWZhdWx0KXtcclxuICAgICAgcHJvZmlsZS5kZWZhdWx0ID0gcHJvcHMuc3RhdGVOYW1lO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsuLi5zdGF0ZSwgbG9jYWxQcm9maWxlczogey4uLnN0YXRlLmxvY2FsUHJvZmlsZXMsIFtwcm9wcy50YWJsZUlkXTogcHJvZmlsZX0gfVxyXG4gIH0pO1xyXG5cclxuICBzYXZlVGFibGVTdGF0ZVRvU3RvcmFnZSA9ICh0YWJsZUlkOiBzdHJpbmcsIHN0YXRlTmFtZTogc3RyaW5nLCB0YWJsZVN0YXRlOiBQZXJzaXN0ZWRUYWJsZVN0YXRlLCBhc0RlZmF1bHQgPSBmYWxzZSkgPT4ge1xyXG4gICAgY29uc3QgZ2xvYmFsU2F2ZWRTdGF0ZTogUGVyc2lzdGVkR2xvYmFsU3RvcmFnZVNhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpID8/IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRTdG9yYWdlU3RhdGUpICk7XHJcbiAgICBnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNbdGFibGVJZF0gPz89IHsgc3RhdGVzIDoge319XHJcbiAgICBnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNbdGFibGVJZF0uc3RhdGVzW3N0YXRlTmFtZV0gPSB0YWJsZVN0YXRlO1xyXG4gICAgaWYoYXNEZWZhdWx0KXtcclxuICAgICAgZ2xvYmFsU2F2ZWRTdGF0ZS5sb2NhbFByb2ZpbGVzW3RhYmxlSWRdLmRlZmF1bHQgPSBzdGF0ZU5hbWU7XHJcbiAgICB9XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnLCBKU09OLnN0cmluZ2lmeSggZ2xvYmFsU2F2ZWRTdGF0ZSkpO1xyXG4gIH1cclxuXHJcbiAgYWRkTmV3U3RhdGVUb0xvY2FsQW5kU3RvcmFnZSA9ICh0YWJsZUlkOiBzdHJpbmcsIG5ld1N0YXRlTmFtZTogc3RyaW5nLCB0YWJsZVN0YXRlOiBQZXJzaXN0ZWRUYWJsZVN0YXRlLCBhc0RlZmF1bHQ/OiBib29sZWFuKSA9PiB7XHJcbiAgICB0aGlzLnNhdmVUYWJsZVNldHRpbmdzVG9Mb2NhbEFuZFN0b3JhZ2UodGFibGVJZCwgbmV3U3RhdGVOYW1lLCB0YWJsZVN0YXRlLCBhc0RlZmF1bHQpO1xyXG4gICAgdGhpcy5zZXRMb2NhbEN1cnJlbnRTdGF0ZSh7IHRhYmxlSWQ6IHRhYmxlSWQsIGN1cnJlbnRTdGF0ZUtleTogbmV3U3RhdGVOYW1lfSk7XHJcbiAgfVxyXG5cclxuICBzZXRMb2NhbEN1cnJlbnRTdGF0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHByb3BzOiB7IHRhYmxlSWQ6IHN0cmluZywgY3VycmVudFN0YXRlS2V5OiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgY29uc3QgcHJvZmlsZSA9IHN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvcHMudGFibGVJZF0gfHwgeyBzdGF0ZXM6IHt9fTtcclxuICAgIHByb2ZpbGUuY3VycmVudCA9IHByb3BzLmN1cnJlbnRTdGF0ZUtleTtcclxuICAgIHJldHVybiB7Li4uc3RhdGUsIGxvY2FsUHJvZmlsZXM6IHsuLi5zdGF0ZS5sb2NhbFByb2ZpbGVzLCBbcHJvcHMudGFibGVJZF06IHsuLi5wcm9maWxlfX19O1xyXG4gIH0pO1xyXG5cclxuICBzZXREZWZhdWx0SW5Mb2NhbEFuZFN0b3JhZ2UgPSAodGFibGVJZDogc3RyaW5nLCBuZXdEZWZhdWx0OiBzdHJpbmcpID0+IHtcclxuICAgIHRoaXMuc2V0RGVmYXVsdEluTG9jYWwoeyBkZWZhdWx0OiBuZXdEZWZhdWx0LCBrZXk6IHRhYmxlSWQgfSk7XHJcbiAgICB0aGlzLnNldERlZmF1bHRJblN0b3JhZ2UodGFibGVJZCwgbmV3RGVmYXVsdCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0SW5Mb2NhbCA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHByb3BzOiB7IGtleTogc3RyaW5nLCBkZWZhdWx0OiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgaWYoc3RhdGUubG9jYWxQcm9maWxlc1twcm9wcy5rZXldPy5zdGF0ZXNbcHJvcHMuZGVmYXVsdF0pIHtcclxuICAgICAgcmV0dXJuICh7Li4uc3RhdGUsIGxvY2FsUHJvZmlsZXM6IHsuLi5zdGF0ZS5sb2NhbFByb2ZpbGVzLCBbcHJvcHMua2V5XTogey4uLnN0YXRlLmxvY2FsUHJvZmlsZXNbcHJvcHMua2V5XSwgZGVmYXVsdDogcHJvcHMuZGVmYXVsdH0gfSB9KTtcclxuICAgIH1cclxuICAgIHJldHVybiBzdGF0ZTtcclxuICB9KTtcclxuICBcclxuICB1bnNldERlZmF1bHRGcm9tTG9jYWxBbmRTdG9yYWdlID0gKHRhYmxlSWQ6IHN0cmluZykgPT4ge1xyXG4gICAgdGhpcy51bnNldERlZmF1bHRGcm9tTG9jYWwodGFibGVJZCk7XHJcbiAgICB0aGlzLnVuc2V0RGVmYXVsdEZyb21TdG9yYWdlKHRhYmxlSWQpO1xyXG4gIH1cclxuXHJcbiAgdW5zZXREZWZhdWx0RnJvbUxvY2FsID0gKHRhYmxlSWQ6IHN0cmluZykgPT4ge1xyXG4gICAgdGhpcy5wYXRjaFN0YXRlKHRhYmxlcyA9PiB7XHJcbiAgICAgIGNvbnN0IHByb2ZpbGUgPSB7IC4uLnRhYmxlcy5sb2NhbFByb2ZpbGVzW3RhYmxlSWRdIH07XHJcbiAgICAgIGlmKHByb2ZpbGUpIHtcclxuICAgICAgICBkZWxldGUgcHJvZmlsZS5kZWZhdWx0O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB7IC4uLnRhYmxlcywgbG9jYWxQcm9maWxlczogeyAuLi50YWJsZXMubG9jYWxQcm9maWxlcywgW3RhYmxlSWRdOiBwcm9maWxlIH0gfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgdW5zZXREZWZhdWx0RnJvbVN0b3JhZ2UgPSAodGFibGVJZDogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBnbG9iYWxTYXZlZFN0YXRlOiBHbG9iYWxTdG9yYWdlU3RhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpID8/IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRTdG9yYWdlU3RhdGUpICk7XHJcbiAgICBpZihnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNbdGFibGVJZF0pIHtcclxuICAgICAgZGVsZXRlIGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1t0YWJsZUlkXS5kZWZhdWx0O1xyXG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnLCBKU09OLnN0cmluZ2lmeSggZ2xvYmFsU2F2ZWRTdGF0ZSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdEluU3RvcmFnZSA9ICh0YWJsZUlkOiBzdHJpbmcsIHN0YXRlTmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCB0YWJsZVByb2ZpbGUgPSB0aGlzLiRzZWxlY3RMb2NhbFRhYmxlUHJvZmlsZSh0YWJsZUlkKSgpO1xyXG4gICAgY29uc3QgZ2xvYmFsU2F2ZWRTdGF0ZTogR2xvYmFsU3RvcmFnZVN0YXRlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnKSA/PyBKU09OLnN0cmluZ2lmeShkZWZhdWx0U3RvcmFnZVN0YXRlKSApO1xyXG4gICAgbGV0IHNhdmVkUHJvZmlsZSA9IGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1tzdGF0ZU5hbWVdO1xyXG4gICAgaWYoIXNhdmVkUHJvZmlsZT8uc3RhdGVzKSB7XHJcbiAgICAgIHNhdmVkUHJvZmlsZSA9ICB7IGRlZmF1bHQ6IHN0YXRlTmFtZSwgc3RhdGVzIDogdGFibGVQcm9maWxlIS5zdGF0ZXMgfTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNhdmVkUHJvZmlsZS5kZWZhdWx0ID0gc3RhdGVOYW1lO1xyXG4gICAgfVxyXG4gICAgZ2xvYmFsU2F2ZWRTdGF0ZS5sb2NhbFByb2ZpbGVzW3RhYmxlSWRdID0gc2F2ZWRQcm9maWxlO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ2dsb2JhbC1zdGF0ZS1zdG9yYWdlJywgSlNPTi5zdHJpbmdpZnkoIGdsb2JhbFNhdmVkU3RhdGUpKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUxvY2FsUHJvZmlsZXNTdGF0ZSA9IHRoaXMudXBkYXRlcigoc3RhdGUsIHByb3BzOiB7IGtleTogc3RyaW5nLCBzdGF0ZUtleTogc3RyaW5nIH0pID0+IHtcclxuICAgIGxldCBwcm9maWxlID0gc3RhdGUubG9jYWxQcm9maWxlc1twcm9wcy5rZXldO1xyXG4gICAgaWYocHJvZmlsZSkge1xyXG4gICAgICBjb25zdCBjdXJyZW50ID0gcHJvZmlsZS5jdXJyZW50ID09PSBwcm9wcy5zdGF0ZUtleSA/IHByb2ZpbGUuZGVmYXVsdCA6IHByb2ZpbGUuY3VycmVudDtcclxuICAgICAgcHJvZmlsZSA9IHsuLi5wcm9maWxlLGN1cnJlbnQsIHN0YXRlczogeyAuLi5wcm9maWxlLnN0YXRlc319O1xyXG4gICAgICBkZWxldGUgcHJvZmlsZS5zdGF0ZXNbcHJvcHMuc3RhdGVLZXldO1xyXG4gICAgICBpZihjdXJyZW50ID09PSBwcm9wcy5zdGF0ZUtleSkge1xyXG4gICAgICAgIHByb2ZpbGUuY3VycmVudCA9IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gey4uLnN0YXRlLCBsb2NhbFByb2ZpbGVzOiB7Li4uc3RhdGUubG9jYWxQcm9maWxlcywgW3Byb3BzLmtleV06IHByb2ZpbGV9IH07XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gc3RhdGU7XHJcbiAgICB9XHJcbiAgfSk7XHJcblxyXG4gIGRlbGV0ZVByb2ZpbGVGcm9tTG9jYWxBbmRTdG9yYWdlID0gKGtleTogc3RyaW5nLCBzdGF0ZUtleTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBnbG9iYWxTYXZlZFN0YXRlOiBHbG9iYWxTdG9yYWdlU3RhdGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdnbG9iYWwtc3RhdGUtc3RvcmFnZScpID8/IEpTT04uc3RyaW5naWZ5KGRlZmF1bHRTdG9yYWdlU3RhdGUpICk7XHJcbiAgICBpZighZ2xvYmFsU2F2ZWRTdGF0ZS5sb2NhbFByb2ZpbGVzW2tleV0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZGVsZXRlIChnbG9iYWxTYXZlZFN0YXRlLmxvY2FsUHJvZmlsZXNba2V5XS5zdGF0ZXMgPz8ge30pW3N0YXRlS2V5XTtcclxuICAgIH1cclxuICAgIGlmKGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1trZXldLmRlZmF1bHQgPT09IHN0YXRlS2V5KSB7XHJcbiAgICAgIGdsb2JhbFNhdmVkU3RhdGUubG9jYWxQcm9maWxlc1trZXldLmRlZmF1bHQgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnZ2xvYmFsLXN0YXRlLXN0b3JhZ2UnLCBKU09OLnN0cmluZ2lmeSggZ2xvYmFsU2F2ZWRTdGF0ZSkpO1xyXG4gICAgdGhpcy5kZWxldGVMb2NhbFByb2ZpbGVzU3RhdGUoeyBrZXksIHN0YXRlS2V5IH0pXHJcbiAgfVxyXG59XHJcblxyXG5mdW5jdGlvbiBsb2FkR2xvYmFsU3RvcmFnZVN0YXRlKCkgOiBHbG9iYWxTdG9yYWdlU3RhdGUgfCB2b2lkIHtcclxuICBjb25zdCBzdG9yYWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2dsb2JhbC1zdGF0ZS1zdG9yYWdlJyk7XHJcbiAgXHJcbiAgaWYoc3RvcmFnZSkge1xyXG4gICAgY29uc3QgczogR2xvYmFsU3RvcmFnZVN0YXRlID0gKEpTT04ucGFyc2Uoc3RvcmFnZSkgYXMgUGVyc2lzdGVkR2xvYmFsU3RvcmFnZVNhdGUpO1xyXG4gICAgcy5sb2NhbFByb2ZpbGVzID8/PSB7fTtcclxuICAgIGZvcihjb25zdCBrZXkgaW4gcy5sb2NhbFByb2ZpbGVzKXtcclxuICAgICAgY29uc3QgcHJvZmlsZSA9IHMubG9jYWxQcm9maWxlc1trZXldO1xyXG4gICAgICBzLmxvY2FsUHJvZmlsZXNba2V5XSA9IHsgLi4ucHJvZmlsZSwgY3VycmVudDogcHJvZmlsZS5kZWZhdWx0IH0gYXMgUHJvZmlsZVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHsuLi5kZWZhdWx0U3RvcmFnZVN0YXRlLCAuLi5zfTtcclxuICB9XHJcbn1cclxuXHJcbmludGVyZmFjZSBQZXJzaXN0ZWRQcm9maWxlIHtcclxuICBzdGF0ZXM6IERpY3Rpb25hcnk8UGVyc2lzdGVkVGFibGVTdGF0ZT47XHJcbiAgZGVmYXVsdD86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIFByb2ZpbGUgZXh0ZW5kcyBQZXJzaXN0ZWRQcm9maWxlIHtcclxuICBjdXJyZW50Pzogc3RyaW5nO1xyXG4gIGxvY2FsU2F2ZWRTdGF0ZT86IFBlcnNpc3RlZFRhYmxlU3RhdGU7XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgR2xvYmFsU3RvcmFnZVN0YXRlIHtcclxuICBsb2NhbFByb2ZpbGVzOiBEaWN0aW9uYXJ5PFByb2ZpbGU+O1xyXG59XHJcblxyXG5pbnRlcmZhY2UgUGVyc2lzdGVkR2xvYmFsU3RvcmFnZVNhdGUge1xyXG4gIGxvY2FsUHJvZmlsZXM6IERpY3Rpb25hcnk8UGVyc2lzdGVkUHJvZmlsZT47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0U3RvcmFnZVN0YXRlOiBHbG9iYWxTdG9yYWdlU3RhdGUgPSB7XHJcbiAgbG9jYWxQcm9maWxlczoge31cclxufSJdfQ==
|
|
@@ -9,14 +9,14 @@ export class ColumnTotalPipe {
|
|
|
9
9
|
return sumBy(dataToCalculate, metaData.key);
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
-
static
|
|
13
|
-
static
|
|
12
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ColumnTotalPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
13
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: ColumnTotalPipe, isStandalone: true, name: "columnTotal" });
|
|
14
14
|
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: ColumnTotalPipe, decorators: [{
|
|
16
16
|
type: Pipe,
|
|
17
17
|
args: [{
|
|
18
18
|
name: 'columnTotal',
|
|
19
19
|
standalone: true
|
|
20
20
|
}]
|
|
21
21
|
}] });
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXRvdGFsLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9jb2x1bW4tdG90YWwucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUVwRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sUUFBUSxDQUFDOztBQU03QixNQUFNLE9BQU8sZUFBZTtJQUMxQixTQUFTLENBQUMsSUFBVyxFQUFFLFFBQWtCO1FBQ3ZDLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQTtRQUMxRCxRQUFRLFFBQVEsQ0FBQyxVQUFXLENBQUMsTUFBTyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzFDLEtBQUssS0FBSztnQkFDVixPQUFPLEtBQUssQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLENBQUM7SUFDSCxDQUFDO3VHQVBVLGVBQWU7cUdBQWYsZUFBZTs7MkZBQWYsZUFBZTtrQkFKM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsYUFBYTtvQkFDakIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNZXRhRGF0YSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7c3VtQnl9IGZyb20gJ2xvZGFzaCc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2NvbHVtblRvdGFsJyxcclxuICAgIHN0YW5kYWxvbmU6IHRydWVcclxuICB9KVxyXG5leHBvcnQgY2xhc3MgQ29sdW1uVG90YWxQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKGRhdGE6IGFueVtdLCBtZXRhRGF0YTogTWV0YURhdGEpIHtcclxuICAgIGNvbnN0IGRhdGFUb0NhbGN1bGF0ZSA9IGRhdGEuZmlsdGVyKGQgPT4gIWQuaXNHcm91cEhlYWRlcilcclxuICAgIHN3aXRjaCAobWV0YURhdGEuYWRkaXRpb25hbCEuZm9vdGVyIS50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ3N1bSc6XHJcbiAgICAgIHJldHVybiBzdW1CeShkYXRhVG9DYWxjdWxhdGUsIG1ldGFEYXRhLmtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -8,11 +8,11 @@ export class FormatFilterTypePipe {
|
|
|
8
8
|
}
|
|
9
9
|
return filterType;
|
|
10
10
|
}
|
|
11
|
-
static
|
|
12
|
-
static
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
12
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterTypePipe, isStandalone: true, name: "formatFilterType" });
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterTypePipe, decorators: [{
|
|
15
15
|
type: Pipe,
|
|
16
16
|
args: [{ name: 'formatFilterType', standalone: true }]
|
|
17
17
|
}] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZpbHRlci10eXBlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9mb3JtYXQtZmlsdGVyLXR5cGUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBR2xELE1BQU0sT0FBTyxvQkFBb0I7SUFDL0IsU0FBUyxDQUFDLFVBQXNCLEVBQUUsS0FBVTtRQUMxQyxJQUFHLFVBQVUsS0FBSyxVQUFVLENBQUMsTUFBTSxFQUFDLENBQUM7WUFDbkMsT0FBTyxLQUFLLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFBO1FBQzVDLENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO3VHQU5VLG9CQUFvQjtxR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQURoQyxJQUFJO21CQUFDLEVBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcblxyXG5AUGlwZSh7bmFtZTogJ2Zvcm1hdEZpbHRlclR5cGUnLCBzdGFuZGFsb25lOiB0cnVlfSlcclxuZXhwb3J0IGNsYXNzIEZvcm1hdEZpbHRlclR5cGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgdHJhbnNmb3JtKGZpbHRlclR5cGU6IEZpbHRlclR5cGUsIHZhbHVlOiBhbnkpe1xyXG4gICAgaWYoZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5Jc051bGwpe1xyXG4gICAgICByZXR1cm4gdmFsdWUgPyBmaWx0ZXJUeXBlIDogJ0lzIE5vdCBCbGFuaydcclxuICAgIH1cclxuICAgIHJldHVybiBmaWx0ZXJUeXBlO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -1,17 +1,15 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
1
|
+
import { Pipe, inject } from '@angular/core';
|
|
2
|
+
import { TableStore } from '../classes/table-store';
|
|
2
3
|
import { map } from 'rxjs/operators';
|
|
3
4
|
import { FieldType } from '../interfaces/report-def';
|
|
5
|
+
import { DatePipe } from '@angular/common';
|
|
4
6
|
import { FilterType } from '../enums/filterTypes';
|
|
5
7
|
import { spaceCase } from '../../utilities/pipes/space-case.pipes';
|
|
6
8
|
import { DateTimeFilterFuncs } from '../functions/date-filter-function';
|
|
7
9
|
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../classes/table-store";
|
|
9
|
-
import * as i2 from "@angular/common";
|
|
10
10
|
export class FormatFilterValuePipe {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.datePipe = datePipe;
|
|
14
|
-
}
|
|
11
|
+
tableState = inject(TableStore);
|
|
12
|
+
datePipe = inject(DatePipe);
|
|
15
13
|
transform(value, key, filterType) {
|
|
16
14
|
return this.tableState.getMetaData$(key).pipe(map(md => {
|
|
17
15
|
if (filterType === FilterType.IsNull) {
|
|
@@ -35,11 +33,11 @@ export class FormatFilterValuePipe {
|
|
|
35
33
|
return value;
|
|
36
34
|
}));
|
|
37
35
|
}
|
|
38
|
-
static
|
|
39
|
-
static
|
|
36
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
37
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterValuePipe, isStandalone: true, name: "formatFilterValue" });
|
|
40
38
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: FormatFilterValuePipe, decorators: [{
|
|
42
40
|
type: Pipe,
|
|
43
41
|
args: [{ name: 'formatFilterValue', standalone: true }]
|
|
44
|
-
}]
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
}] });
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWZpbHRlci12YWx1ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvcGlwZXMvZm9ybWF0LWZpbHRlci12YWx1ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFcEQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7QUFJeEUsTUFBTSxPQUFPLHFCQUFxQjtJQUNoQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3hCLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFFcEMsU0FBUyxDQUFDLEtBQVUsRUFBRSxHQUFXLEVBQUUsVUFBc0I7UUFDdkQsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBRSxFQUFFLENBQUMsRUFBRTtZQUNSLElBQUcsVUFBVSxLQUFLLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEMsT0FBTyxFQUFFLENBQUM7WUFDWixDQUFDO1lBQ0QsSUFBRyxLQUFLLElBQUksQ0FBQyxVQUFVLEtBQUssVUFBVSxDQUFDLEVBQUUsQ0FBRSxFQUFDLENBQUM7Z0JBQzNDLElBQUcsRUFBRSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7b0JBQ25DLE9BQU8sS0FBSyxDQUFDLEdBQUcsQ0FBRSxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxVQUFXLENBQUMsT0FBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxDQUFDO2dCQUMzRixDQUFDO2dCQUNELE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLENBQUM7WUFDbkMsQ0FBQztZQUNELElBQUcsVUFBVSxLQUFLLFVBQVUsQ0FBQyxhQUFhLEVBQUMsQ0FBQztnQkFDMUMsT0FBTyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ3pDLENBQUM7WUFDRCxJQUFHLEVBQUUsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLElBQUksRUFBQyxDQUFDO2dCQUNsQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztZQUNwRCxDQUFDO1lBQ0QsSUFBRyxFQUFFLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxRQUFRLEVBQUMsQ0FBQztnQkFDdEMsT0FBTyxDQUFDLENBQUMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ2xJLENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQTtRQUNkLENBQUMsQ0FBQyxDQUNILENBQUM7SUFDSixDQUFDO3VHQTVCVSxxQkFBcUI7cUdBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEakMsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlU3RvcmUgfSBmcm9tICcuLi9jbGFzc2VzL3RhYmxlLXN0b3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvcmVwb3J0LWRlZic7XHJcbmltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uL2VudW1zL2ZpbHRlclR5cGVzJztcclxuaW1wb3J0IHsgc3BhY2VDYXNlIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL3BpcGVzL3NwYWNlLWNhc2UucGlwZXMnO1xyXG5pbXBvcnQgeyBEYXRlVGltZUZpbHRlckZ1bmNzIH0gZnJvbSAnLi4vZnVuY3Rpb25zL2RhdGUtZmlsdGVyLWZ1bmN0aW9uJztcclxuXHJcblxyXG5AUGlwZSh7bmFtZTogJ2Zvcm1hdEZpbHRlclZhbHVlJywgc3RhbmRhbG9uZTogdHJ1ZX0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtYXRGaWx0ZXJWYWx1ZVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuICB0YWJsZVN0YXRlID0gaW5qZWN0KFRhYmxlU3RvcmUpO1xyXG4gIHByaXZhdGUgZGF0ZVBpcGUgPSBpbmplY3QoRGF0ZVBpcGUpO1xyXG5cclxuICB0cmFuc2Zvcm0odmFsdWU6IGFueSwga2V5OiBzdHJpbmcsIGZpbHRlclR5cGU6IEZpbHRlclR5cGUpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVTdGF0ZS5nZXRNZXRhRGF0YSQoa2V5KS5waXBlKFxyXG4gICAgICBtYXAoIG1kID0+IHtcclxuICAgICAgICBpZihmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLklzTnVsbCkge1xyXG4gICAgICAgICAgcmV0dXJuICcnO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZih2YWx1ZSAmJiAoZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5JbiApKXtcclxuICAgICAgICAgIGlmKG1kLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkVudW0pIHtcclxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlLm1hcCggKHY6IGFueSkgPT4gc3BhY2VDYXNlKG1kLmFkZGl0aW9uYWwhLmVudW1NYXAhW3ZdKSkuam9pbignLCAnKSA/PyB2YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIHJldHVybiB2YWx1ZS5qb2luKCcsICcpID8/IHZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihmaWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLk51bWJlckJldHdlZW4pe1xyXG4gICAgICAgICAgcmV0dXJuIHZhbHVlLlN0YXJ0ICsgJyAtICcgKyB2YWx1ZS5FbmQ7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKG1kLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkRhdGUpe1xyXG4gICAgICAgICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnTU0vZGQveXknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYobWQuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuRGF0ZVRpbWUpe1xyXG4gICAgICAgICAgcmV0dXJuICEhRGF0ZVRpbWVGaWx0ZXJGdW5jc1tmaWx0ZXJUeXBlXSA/IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnc2hvcnQnKSA6IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHZhbHVlLCAnTU0vZGQveXknKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHZhbHVlXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
1
|
+
import { Pipe, inject } from '@angular/core';
|
|
2
|
+
import { TableStore } from '../classes/table-store';
|
|
2
3
|
import { spaceCase } from '../../utilities/pipes/space-case.pipes';
|
|
3
4
|
import { map } from 'rxjs/operators';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../classes/table-store";
|
|
6
6
|
export class KeyDisplayPipe {
|
|
7
|
-
|
|
8
|
-
this.tableState = tableState;
|
|
9
|
-
}
|
|
7
|
+
tableState = inject(TableStore);
|
|
10
8
|
transform(key) {
|
|
11
9
|
return this.tableState.getMetaData$(key).pipe(map(metaData => metaData.displayName || spaceCase(key)));
|
|
12
10
|
}
|
|
13
|
-
static
|
|
14
|
-
static
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: KeyDisplayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
|
12
|
+
static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.2", ngImport: i0, type: KeyDisplayPipe, isStandalone: true, name: "keyDisplay" });
|
|
15
13
|
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: KeyDisplayPipe, decorators: [{
|
|
17
15
|
type: Pipe,
|
|
18
16
|
args: [{ name: 'keyDisplay', standalone: true }]
|
|
19
|
-
}]
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5LWRpc3BsYXkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9waXBlcy9rZXktZGlzcGxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBR3JDLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFaEMsU0FBUyxDQUFDLEdBQVc7UUFDbkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQzNDLEdBQUcsQ0FBRSxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDO3VHQVBVLGNBQWM7cUdBQWQsY0FBYzs7MkZBQWQsY0FBYztrQkFEMUIsSUFBSTttQkFBQyxFQUFDLElBQUksRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLElBQUksRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IHNwYWNlQ2FzZSB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9waXBlcy9zcGFjZS1jYXNlLnBpcGVzJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG5AUGlwZSh7bmFtZTogJ2tleURpc3BsYXknLCBzdGFuZGFsb25lOiB0cnVlfSlcclxuZXhwb3J0IGNsYXNzIEtleURpc3BsYXlQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRhYmxlU3RhdGUgPSBpbmplY3QoVGFibGVTdG9yZSk7XG5cclxuICB0cmFuc2Zvcm0oa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgcmV0dXJuIHRoaXMudGFibGVTdGF0ZS5nZXRNZXRhRGF0YSQoa2V5KS5waXBlKFxyXG4gICAgICBtYXAoIG1ldGFEYXRhID0+IG1ldGFEYXRhLmRpc3BsYXlOYW1lIHx8IHNwYWNlQ2FzZShrZXkpKVxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
|