@one-paragon/angular-utilities 1.2.17 → 1.3.0
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/http-request-state/HttpRequestStateFactory.mjs +2 -2
- package/esm2022/http-request-state/HttpRequestStateStore.mjs +19 -5
- package/esm2022/ngrx/actionable-selector.mjs +70 -34
- package/esm2022/table-builder/components/column-builder/column-builder.component.mjs +12 -1
- package/esm2022/table-builder/components/date-filter/date-filter.component.mjs +3 -3
- package/esm2022/table-builder/components/date-time-filter/date-time-filter.component.mjs +3 -3
- package/esm2022/table-builder/components/filter/filter.component.mjs +7 -7
- package/esm2022/table-builder/components/generic-table/generic-table.component.mjs +37 -41
- package/esm2022/table-builder/components/table-container/table-container.mjs +6 -8
- package/esm2022/table-builder/components/table-container-filter/gen-filter-displayer/gen-filter-displayer.component.mjs +4 -5
- package/fesm2022/one-paragon-angular-utilities.mjs +151 -95
- package/fesm2022/one-paragon-angular-utilities.mjs.map +1 -1
- package/http-request-state/HttpRequestStateStore.d.ts +4 -0
- package/ngrx/actionable-selector.d.ts +19 -5
- package/package.json +1 -1
- package/table-builder/components/column-builder/column-builder.component.d.ts +3 -0
- package/table-builder/components/generic-table/generic-table.component.d.ts +5 -10
- package/table-builder/components/table-container/table-container-imports.d.ts +2 -2
- package/table-builder/components/table-container/table-container.d.ts +5 -4
- package/table-builder/directives/table-wrapper.directive.d.ts +1 -1
|
@@ -8,7 +8,7 @@ export class HttpRequestStateFactory {
|
|
|
8
8
|
}
|
|
9
9
|
requestors = [];
|
|
10
10
|
create(req, optionsOrProject, options) {
|
|
11
|
-
const requestor = (typeof (optionsOrProject) === 'function' ? new HttpRequestStateStore(req, options, optionsOrProject) : new HttpRequestStateStore(req,
|
|
11
|
+
const requestor = (typeof (optionsOrProject) === 'function' ? new HttpRequestStateStore(req, options, optionsOrProject) : new HttpRequestStateStore(req, optionsOrProject));
|
|
12
12
|
this.requestors.push(requestor);
|
|
13
13
|
return requestor;
|
|
14
14
|
}
|
|
@@ -48,4 +48,4 @@ function getDestroyRef(options) {
|
|
|
48
48
|
const destroyRef = providedInjector?.get(DestroyRef) || inject(DestroyRef);
|
|
49
49
|
return destroyRef;
|
|
50
50
|
}
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlcXVlc3RTdGF0ZUZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvaHR0cC1yZXF1ZXN0LXN0YXRlL0h0dHBSZXF1ZXN0U3RhdGVGYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUF1Qix3QkFBd0IsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFOUcsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBSWhFLE1BQU0sT0FBTyx1QkFBdUI7SUFFbEMsZ0JBQWUsQ0FBQztJQUNoQixXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ08sVUFBVSxHQUFnQixFQUFFLENBQUM7SUFJckMsTUFBTSxDQUFnRSxHQUFrQyxFQUFFLGdCQUE4RCxFQUFFLE9BQXFDO1FBQzdNLE1BQU0sU0FBUyxHQUFHLENBQUMsT0FBTSxDQUFDLGdCQUFnQixDQUFDLEtBQUssVUFBVSxDQUFDLENBQUMsQ0FBRSxJQUFJLHFCQUFxQixDQUFrQixHQUFHLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUkscUJBQXFCLENBQWtCLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7UUFDOU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELGdCQUFnQixDQUFLLENBQXVDLEVBQUcsT0FBa0M7UUFDL0YsTUFBTSxTQUFTLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEMsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQzt1R0FwQlUsdUJBQXVCOzJHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVU7O0FBMkJYLE1BQU0sVUFBVSxlQUFlLENBQWlFLEdBQWtDLEVBQUUsZ0JBQWdFLEVBQUUsT0FBdUM7SUFFM08sTUFBTSxHQUFHLEdBQUksVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsZ0JBQWdCLENBQUM7SUFFdkUsTUFBTSxVQUFVLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBRXRDLE1BQU0sWUFBWSxHQUFHLE9BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLFVBQVUsQ0FBQyxDQUFDO1FBQzVELElBQUkscUJBQXFCLENBQWtCLEdBQUcsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLENBQUM7UUFDMUUsQ0FBQyxDQUFDLElBQUkscUJBQXFCLENBQWtCLEdBQUcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXRFLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFFeEQsT0FBTyxZQUFZLENBQUM7QUFDdEIsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQVU7SUFDNUIsT0FBTyxPQUFPLEtBQUssS0FBSyxVQUFVLENBQUM7QUFDckMsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLE9BQW9DO0lBQ3pELE1BQU0sZ0JBQWdCLEdBQUcsT0FBTyxFQUFFLFFBQVEsQ0FBQztJQUUzQyxJQUFHLENBQUMsZ0JBQWdCLEVBQUMsQ0FBQztRQUNwQixJQUFJLENBQUM7WUFDSCx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUM1QyxDQUFDO1FBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsNkdBQTZHLENBQUMsQ0FBQztRQUNqSSxDQUFDO0lBQ0gsQ0FBQztJQUVELE1BQU0sVUFBVSxHQUFHLGdCQUFnQixFQUFFLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFM0UsT0FBTyxVQUFVLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERlc3Ryb3lSZWYsIEluamVjdGFibGUsIEluamVjdG9yLCBPbkRlc3Ryb3ksIGFzc2VydEluSW5qZWN0aW9uQ29udGV4dCwgaW5qZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSHR0cFJlcXVlc3RGYWN0b3J5LCBSZXF1ZXN0U3RhdGVPcHRpb25zLCBSZXF1ZXN0Q3JlYXRvck9wdGlvbnMgfSBmcm9tIFwiLi90eXBlc1wiO1xyXG5pbXBvcnQgeyBIdHRwUmVxdWVzdFN0YXRlU3RvcmUgfSBmcm9tICcuL0h0dHBSZXF1ZXN0U3RhdGVTdG9yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSHR0cFJlcXVlc3RTdGF0ZUZhY3RvcnkgIGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5yZXF1ZXN0b3JzLmZvckVhY2goIHJlcXVlc3QgPT4gcmVxdWVzdC5uZ09uRGVzdHJveSgpKTtcclxuICB9XHJcbiAgcHJpdmF0ZSByZXF1ZXN0b3JzOiBPbkRlc3Ryb3lbXSA9IFtdO1xyXG5cclxuICBjcmVhdGU8VFBhcmFtIGV4dGVuZHMgYW55W10sIFY+KCByZXE6IEh0dHBSZXF1ZXN0RmFjdG9yeTxUUGFyYW0sIFY+LCBvcHRpb25zPzogUmVxdWVzdFN0YXRlT3B0aW9uczxUUGFyYW0+KSA6IEh0dHBSZXF1ZXN0U3RhdGVTdG9yZTxUUGFyYW0sIFY+XHJcbiAgY3JlYXRlPFRQYXJhbSBleHRlbmRzIGFueVtdLCBWLCBSLCBUID0gUj4oIHJlcTogSHR0cFJlcXVlc3RGYWN0b3J5PFRQYXJhbSwgVj4sIHByb2plY3Q6ICh2OiBWKSA9PiBSICwgb3B0aW9ucz86IFJlcXVlc3RTdGF0ZU9wdGlvbnM8VFBhcmFtPikgOiBIdHRwUmVxdWVzdFN0YXRlU3RvcmU8VFBhcmFtLCBWLCBUPlxyXG4gIGNyZWF0ZTxUUGFyYW0gZXh0ZW5kcyBhbnlbXSwgViwgUiA9IG51bGwsIFQgPSBSIGV4dGVuZHMgbnVsbCA/IFYgOiBSPihyZXE6IEh0dHBSZXF1ZXN0RmFjdG9yeTxUUGFyYW0sIFY+LCBvcHRpb25zT3JQcm9qZWN0PzogUmVxdWVzdFN0YXRlT3B0aW9uczxUUGFyYW0+IHwgKCh2OiBWKSA9PiBSKSwgb3B0aW9ucz86IFJlcXVlc3RTdGF0ZU9wdGlvbnM8VFBhcmFtPiApIDogSHR0cFJlcXVlc3RTdGF0ZVN0b3JlPFRQYXJhbSwgViwgUiwgVD4ge1xyXG4gICAgY29uc3QgcmVxdWVzdG9yID0gKHR5cGVvZihvcHRpb25zT3JQcm9qZWN0KSA9PT0gJ2Z1bmN0aW9uJyA/ICBuZXcgSHR0cFJlcXVlc3RTdGF0ZVN0b3JlPFRQYXJhbSwgViwgUiwgVD4ocmVxLCBvcHRpb25zLCBvcHRpb25zT3JQcm9qZWN0KSA6IG5ldyBIdHRwUmVxdWVzdFN0YXRlU3RvcmU8VFBhcmFtLCBWLCBSLCBUPihyZXEsIG9wdGlvbnNPclByb2plY3QpKTtcclxuICAgIHRoaXMucmVxdWVzdG9ycy5wdXNoKHJlcXVlc3Rvcik7XHJcbiAgICByZXR1cm4gcmVxdWVzdG9yO1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlSHR0cENsaWVudDxUPiggcjogKG86IE9ic2VydmFibGU8VD4gKSA9PiBPYnNlcnZhYmxlPFQ+ICwgb3B0aW9ucz86IFJlcXVlc3RTdGF0ZU9wdGlvbnM8YW55PiApICB7XHJcbiAgICBjb25zdCByZXF1ZXN0b3IgPSBuZXcgSHR0cFJlcXVlc3RTdGF0ZVN0b3JlKHIsIG9wdGlvbnMpO1xyXG4gICAgdGhpcy5yZXF1ZXN0b3JzLnB1c2gocmVxdWVzdG9yKTtcclxuICAgIHJldHVybiByZXF1ZXN0b3I7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVJlcXVlc3RvcjxUUGFyYW0gZXh0ZW5kcyBhbnlbXSwgVj4oIHJlcTogSHR0cFJlcXVlc3RGYWN0b3J5PFRQYXJhbSwgVj4sIG9wdGlvbnM/OiBSZXF1ZXN0Q3JlYXRvck9wdGlvbnM8VFBhcmFtPikgOiBIdHRwUmVxdWVzdFN0YXRlU3RvcmU8VFBhcmFtLCBWPlxyXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVxdWVzdG9yPFRQYXJhbSBleHRlbmRzIGFueVtdLCBWLCBSLCBUID0gUj4oIHJlcTogSHR0cFJlcXVlc3RGYWN0b3J5PFRQYXJhbSwgVj4sIHByb2plY3Q6ICh2OiBWKSA9PiBSICwgb3B0aW9ucz86IFJlcXVlc3RDcmVhdG9yT3B0aW9uczxUUGFyYW0+KSA6IEh0dHBSZXF1ZXN0U3RhdGVTdG9yZTxUUGFyYW0sIFYsIFQ+XHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZXF1ZXN0b3I8VFBhcmFtIGV4dGVuZHMgYW55W10sIFYsIFIgPSBudWxsLCBUID0gUiBleHRlbmRzIG51bGwgPyBWIDogUj4oIHJlcTogSHR0cFJlcXVlc3RGYWN0b3J5PFRQYXJhbSwgVj4sIG9wdGlvbnNPclByb2plY3Q/OiBSZXF1ZXN0Q3JlYXRvck9wdGlvbnM8VFBhcmFtPiB8ICgodjogVikgPT4gUiksIG9wdGlvbnM/OiBSZXF1ZXN0Q3JlYXRvck9wdGlvbnM8VFBhcmFtPiApIDogSHR0cFJlcXVlc3RTdGF0ZVN0b3JlPFRQYXJhbSwgViwgUiwgVD57XHJcblxyXG4gIGNvbnN0IG9wcyAgPSBpc0Z1bmN0aW9uKG9wdGlvbnNPclByb2plY3QpID8gb3B0aW9ucyA6IG9wdGlvbnNPclByb2plY3Q7XHJcblxyXG4gIGNvbnN0IGRlc3Ryb3lSZWYgPSBnZXREZXN0cm95UmVmKG9wcyk7XHJcblxyXG4gIGNvbnN0IHJlcXVlc3RTdG9yZSA9IHR5cGVvZihvcHRpb25zT3JQcm9qZWN0KSA9PT0gJ2Z1bmN0aW9uJyA/ICBcclxuICAgIG5ldyBIdHRwUmVxdWVzdFN0YXRlU3RvcmU8VFBhcmFtLCBWLCBSLCBUPihyZXEsIG9wdGlvbnMsIG9wdGlvbnNPclByb2plY3QpXHJcbiAgICA6IG5ldyBIdHRwUmVxdWVzdFN0YXRlU3RvcmU8VFBhcmFtLCBWLCBSLCBUPihyZXEsIG9wdGlvbnNPclByb2plY3QpO1xyXG5cclxuICBkZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiByZXF1ZXN0U3RvcmU/Lm5nT25EZXN0cm95KCkpO1xyXG5cclxuICByZXR1cm4gcmVxdWVzdFN0b3JlO1xyXG59XHJcblxyXG5mdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGdW5jdGlvbiB7XHJcbiAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ2Z1bmN0aW9uJztcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0RGVzdHJveVJlZihvcHRpb25zPzogUmVxdWVzdENyZWF0b3JPcHRpb25zPGFueT4pe1xyXG4gIGNvbnN0IHByb3ZpZGVkSW5qZWN0b3IgPSBvcHRpb25zPy5pbmplY3RvcjtcclxuXHJcbiAgaWYoIXByb3ZpZGVkSW5qZWN0b3Ipe1xyXG4gICAgdHJ5IHtcclxuICAgICAgYXNzZXJ0SW5JbmplY3Rpb25Db250ZXh0KGNyZWF0ZVJlcXVlc3Rvcik7XHJcbiAgICB9IGNhdGNoIChlcnJvcikge1xyXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ2NyZWF0ZVJlcXVlc3RvcigpIG11c3QgYmUgdXNlZCBpbiBhbiBJbmplY3Rpb24gQ29udGV4dCBvciB5b3UgbXVzdCBwcm92aWRlIGFuIGluamVjdG9yIHRvIGNyZWF0ZVJlcXVlc3RvcigpJyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBkZXN0cm95UmVmID0gcHJvdmlkZWRJbmplY3Rvcj8uZ2V0KERlc3Ryb3lSZWYpIHx8IGluamVjdChEZXN0cm95UmVmKTtcclxuXHJcbiAgcmV0dXJuIGRlc3Ryb3lSZWY7XHJcbn0iXX0=
|
|
@@ -48,10 +48,24 @@ export class HttpRequestStateStore extends ComponentStore {
|
|
|
48
48
|
}
|
|
49
49
|
return this.requestEffect(value);
|
|
50
50
|
};
|
|
51
|
-
selectHttpState
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
$selectHttpState = this.selectSignal(a => a.response);
|
|
52
|
+
selectHttpState$ = this.select(a => a.response);
|
|
53
|
+
$selectStatus = computed(() => this.$selectHttpState()?.status);
|
|
54
|
+
selectStatus$ = this.selectHttpState$.pipe(map(s => s.status));
|
|
55
|
+
selectError$ = this.selectHttpState$.pipe(filter(isErrorState), map(state => state.error));
|
|
56
|
+
$selectError = computed(() => {
|
|
57
|
+
const state = this.$selectHttpState();
|
|
58
|
+
if (isErrorState(state))
|
|
59
|
+
return state.error;
|
|
60
|
+
});
|
|
61
|
+
selectResponse$ = this.selectHttpState$.pipe(filter(isSuccessState), map(state => state.body));
|
|
62
|
+
$selectResponse = computed(() => {
|
|
63
|
+
const state = this.$selectHttpState();
|
|
64
|
+
if (isSuccessState(state)) {
|
|
65
|
+
return state.body;
|
|
66
|
+
}
|
|
67
|
+
return undefined;
|
|
68
|
+
});
|
|
55
69
|
selectSuccessOrError$ = this.state$.pipe(map(r => r.response), filter(isSuccessOrErrorState), map(() => null));
|
|
56
70
|
errorHandled = false;
|
|
57
71
|
onError(cb) {
|
|
@@ -118,4 +132,4 @@ export function wrapInArr(sigOrObs) {
|
|
|
118
132
|
computed(() => [sigOrObs()])
|
|
119
133
|
: sigOrObs.pipe(map(a => [a]));
|
|
120
134
|
}
|
|
121
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlcXVlc3RTdGF0ZVN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2h0dHAtcmVxdWVzdC1zdGF0ZS9IdHRwUmVxdWVzdFN0YXRlU3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBc0IsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQW9FLE1BQU0sU0FBUyxDQUFDO0FBQ3ZKLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0SSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBWSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBUWxDLE1BQU0sT0FBTyxxQkFBcUYsU0FBUSxjQUEwQztJQUN4SSxPQUFPLENBQXVCO0lBQzlCLE9BQU8sQ0FBZTtJQUN0QixHQUFHLENBQWdDO0lBQ25DLFFBQVEsQ0FBWTtJQUM1QixZQUFZLEdBQWtDLEVBQUUs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Q0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzRSxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQTt1R0FqSlEscUJBQXFCOzJGQUFyQixxQkFBcUI7OzJGQUFyQixxQkFBcUI7a0JBRGpDLFNBQVM7O0FBb0pSLE1BQU0sT0FBTyxpQkFBaUI7Q0FBRztBQUdqQyxNQUFNLFVBQVUsU0FBUyxDQUFJLFFBQW1DO0lBQzlELE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDM0IsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNqQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XHJcbmltcG9ydCB7IEh0dHBSZXF1ZXN0RmFjdG9yeSwgSHR0cFJlcXVlc3RTdHJhdGVneSwgSHR0cFJlcXVlc3RTdGF0dXMsIEh0dHBSZXF1ZXN0U3RhdGUsIFJlcXVlc3RTdGF0ZU9wdGlvbnMsIEh0dHBSZXF1ZXN0U3RhdGVDYW5jZWxsZWQgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgY3JlYXRlRmFpbHVyZSwgY3JlYXRlU3VjY2VzcywgaW5Qcm9ncmVzcywgaXNFcnJvclN0YXRlLCBpc1N1Y2Nlc3NPckVycm9yU3RhdGUsIGlzU3VjY2Vzc1N0YXRlLCBub3RTdGFydGVkIH0gZnJvbSAnLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgY29uY2F0TWFwLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IG1hcEVycm9yIH0gZnJvbSAnLi4vcnhqcy9tYXBFcnJvcic7XHJcbmltcG9ydCB7IGRlZmF1bHRTaGFyZVJlcGxheSB9IGZyb20gJy4uL3J4anMvZGVmYXVsdFNoYXJlUmVwbGF5JztcclxuaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgSW5qZWN0b3IsIGlzU2lnbmFsLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBub3ROdWxsIH0gZnJvbSAnLi4vcnhqcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFJlcXVlc3RSZXNwb25zZTxUUGFyYW0gZXh0ZW5kcyBhbnlbXSwgVD4ge1xyXG4gIHJlcXVlc3RQYXJhbXM6IFsuLi5UUGFyYW1dO1xyXG4gIHJlc3BvbnNlOiBIdHRwUmVxdWVzdFN0YXRlPFQ+O1xyXG59XHJcblxyXG5ARGlyZWN0aXZlKClcclxuZXhwb3J0IGNsYXNzIEh0dHBSZXF1ZXN0U3RhdGVTdG9yZTxUUGFyYW0gZXh0ZW5kcyBhbnlbXSwgViwgUiA9IG51bGwsIFQgPSBSIGV4dGVuZHMgbnVsbCA/IFYgOiBSPiBleHRlbmRzIENvbXBvbmVudFN0b3JlPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sIFQ+PiB7XHJcbiAgICBwcml2YXRlIG9wdGlvbnM/OiBSZXF1ZXN0U3RhdGVPcHRpb25zO1xyXG4gICAgcHJpdmF0ZSBwcm9qZWN0PzogKHY6IFYpID0+IFI7XHJcbiAgICBwcml2YXRlIHJlcTogSHR0cFJlcXVlc3RGYWN0b3J5PFRQYXJhbSwgVj47XHJcbiAgICBwcml2YXRlIGluamVjdG9yPzogSW5qZWN0b3I7XHJcbiAgICBjb25zdHJ1Y3RvcihyZXE6IEh0dHBSZXF1ZXN0RmFjdG9yeTxUUGFyYW0sIFY+ICxvcHRpb25zPzogUmVxdWVzdFN0YXRlT3B0aW9uczxUUGFyYW0+LCBwcm9qZWN0PzogKHY6IFYpID0+IFIpIHtcclxuICAgICAgc3VwZXIoeyByZXF1ZXN0UGFyYW1zOiBudWxsIGFzIGFueSwgcmVzcG9uc2U6IG5vdFN0YXJ0ZWQgfSk7XHJcbiAgICAgIHRoaXMucHJvamVjdCA9IHByb2plY3Q7XHJcbiAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XHJcbiAgICAgIHRoaXMuaW5qZWN0b3IgPSBvcHRpb25zPy5pbmplY3RvcjtcclxuICAgICAgdGhpcy5yZXEgPSByZXE7XHJcbiAgICAgIHRoaXMucmVxdWVzdCA9ICh0aGlzLm9wdGlvbnM/LnN0cmF0ZWd5ID09PSBIdHRwUmVxdWVzdFN0cmF0ZWd5LnNpbmdsZVVzZSkgPyB0aGlzLnNpbmdsZVVzZVJlcXVlc3QgOiAgdGhpcy5mbGF0dGVuZWRSZXF1ZXN0O1xyXG5cclxuICAgICAgaWYob3B0aW9ucz8uYXV0b1JlcXVlc3RXaXRoKXtcclxuICAgICAgICB0aGlzLnJlcXVlc3QoLi4ub3B0aW9ucy5hdXRvUmVxdWVzdFdpdGgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmVzZXQoKSB7XHJcbiAgICAgIHRoaXMuc2V0U3RhdGUoeyByZXF1ZXN0UGFyYW1zOm51bGwgYXMgYW55LCByZXNwb25zZTogbm90U3RhcnRlZCB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGZsYXR0ZW5pbmdTdHJhdGVneSA9ICgpID0+IHtcclxuICAgICAgaWYodGhpcy5vcHRpb25zPy5zdHJhdGVneSA9PT0gSHR0cFJlcXVlc3RTdHJhdGVneS5jb25jdXJyZW50KVxyXG4gICAgICAgIHJldHVybiBtZXJnZU1hcCggKHBhcmFtczogWy4uLlRQYXJhbV0pID0+IHRoaXMuY3JlYXRlUmVxdWVzdCguLi5wYXJhbXMpKTtcclxuICAgICAgaWYodGhpcy5vcHRpb25zPy5zdHJhdGVneSA9PT0gSHR0cFJlcXVlc3RTdHJhdGVneS5zZXF1ZW50aWFsKVxyXG4gICAgICAgIHJldHVybiBjb25jYXRNYXAoIChwYXJhbXM6IFsuLi5UUGFyYW1dKSA9PiB0aGlzLmNyZWF0ZVJlcXVlc3QoLi4ucGFyYW1zKSk7XHJcbiAgICAgIHJldHVybiBzd2l0Y2hNYXAoIChwYXJhbXM6IFsuLi5UUGFyYW1dKSA9PiAoKHBhcmFtc1swXSBhcyBhbnkpIGluc3RhbmNlb2YgQ2FuY2VsbGF0aW9uVG9rZW4pID9cclxuICAgICAgICBvZih7IHJlcXVlc3RQYXJhbXM6IHBhcmFtc1swXSwgcmVzcG9uc2U6IHsgc3RhdHVzOiBIdHRwUmVxdWVzdFN0YXR1cy5jYW5jZWxsZWQgfSBhcyBIdHRwUmVxdWVzdFN0YXRlQ2FuY2VsbGVkIH0gKSA6IHRoaXMuY3JlYXRlUmVxdWVzdCguLi5wYXJhbXMpICk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSByZXF1ZXN0RWZmZWN0OiAodmFsdWU6IFsuLi5UUGFyYW1dICkgPT4gU3Vic2NyaXB0aW9uID0gdGhpcy5lZmZlY3QoKG9iczogT2JzZXJ2YWJsZTxbLi4uVFBhcmFtXT4pID0+IHtcclxuICAgICAgcmV0dXJuIChvYnMpLnBpcGUoXHJcbiAgICAgICAgdGhpcy5mbGF0dGVuaW5nU3RyYXRlZ3koKSxcclxuICAgICAgICB0YXA8UmVxdWVzdFJlc3BvbnNlPFRQYXJhbSwgVD4+KHN0YXRlID0+IHRoaXMuc2V0U3RhdGUoc3RhdGUpKSxcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHByaXZhdGUgZmxhdHRlbmVkUmVxdWVzdCA9ICguLi52YWx1ZTogWy4uLlRQYXJhbV0pID0+IHtcclxuICAgICAgcmV0dXJuIHRoaXMucmVxdWVzdEVmZmVjdCh2YWx1ZSkgYXMgU3Vic2NyaXB0aW9uO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBzaW5nbGVVc2VSZXF1ZXN0ID0gKC4uLnZhbHVlOiBbLi4uVFBhcmFtXSkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5nZXQoKS5yZXNwb25zZS5zdGF0dXMgIT09IEh0dHBSZXF1ZXN0U3RhdHVzLm5vdFN0YXJ0ZWQpIHtcclxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzdGF0ZSBjYW4gbm90IGJlIHJldXNlZC4gZWl0aGVyIHJlc2V0IHRoZSBzdGF0ZSBieSBjYWxsaW5nIHJlc2V0KCkgb3IgdXNlIGEgc3RhdGUgcmVxdWVzdGVyIHRoYXQgYWxsb3dzIGNvbmN1cnJlbnQgcmVxdWVzdHMuXCIpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RFZmZlY3QodmFsdWUpIGFzIFN1YnNjcmlwdGlvbjtcclxuICAgIH1cclxuXHJcbiAgICBzZWxlY3RIdHRwU3RhdGUkID0gdGhpcy5zdGF0ZSQucGlwZShtYXAoYSA9PiBhLnJlc3BvbnNlKSk7XHJcblxyXG4gICAgc2VsZWN0U3RhdHVzJCA9IHRoaXMuc2VsZWN0SHR0cFN0YXRlJC5waXBlKG1hcChhID0+IGEuc3RhdHVzKSk7XHJcblxyXG4gICAgc2VsZWN0RXJyb3IkID0gdGhpcy5zdGF0ZSQucGlwZShcclxuICAgICAgbWFwKHIgPT4gci5yZXNwb25zZSksXHJcbiAgICAgIGZpbHRlcihpc0Vycm9yU3RhdGUpLFxyXG4gICAgICBtYXAoIHN0YXRlID0+IHN0YXRlLmVycm9yKVxyXG4gICAgKTtcclxuXHJcbiAgICBzZWxlY3RSZXNwb25zZSQ6IE9ic2VydmFibGU8VD4gPSB0aGlzLnN0YXRlJC5waXBlKFxyXG4gICAgICBtYXAociA9PiByLnJlc3BvbnNlKSxcclxuICAgICAgZmlsdGVyKGlzU3VjY2Vzc1N0YXRlKSxcclxuICAgICAgbWFwKCBzdGF0ZSA9PiBzdGF0ZS5ib2R5KVxyXG4gICAgKTtcclxuICAgIHNlbGVjdFN1Y2Nlc3NPckVycm9yJCA9IHRoaXMuc3RhdGUkLnBpcGUoXHJcbiAgICAgIG1hcChyID0+IHIucmVzcG9uc2UpLFxyXG4gICAgICBmaWx0ZXIoaXNTdWNjZXNzT3JFcnJvclN0YXRlKSxcclxuICAgICAgbWFwKCAoKSA9PiBudWxsKVxyXG4gICAgKTtcclxuXHJcbiAgICBlcnJvckhhbmRsZWQgPSBmYWxzZTtcclxuICAgIG9uRXJyb3IoIGNiOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JIYW5kbGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdEVycm9yJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3MoIGNiOiAoYm9keT86IFQpID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdFJlc3BvbnNlJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3NPckVycm9yKGNiOiAoKSA9PiB2b2lkKXtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdFN1Y2Nlc3NPckVycm9yJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3NXaXRoUmVxdWVzdChmdW5jOiAoc3RhdGU6IHtcclxuICAgICAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgICAgIGJvZHk6IFQ7XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub25VcGRhdGUoKHsgcmVxdWVzdFBhcmFtcywgcmVzcG9uc2UgfSkgPT4ge1xyXG4gICAgICAgIGlmKGlzU3VjY2Vzc1N0YXRlKHJlc3BvbnNlKSl7XHJcbiAgICAgICAgICBmdW5jKHtyZXF1ZXN0UGFyYW1zLGJvZHk6IHJlc3BvbnNlLmJvZHl9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvbkVycm9yV2l0aFJlcXVlc3QoZnVuYzogKHN0YXRlOiB7XHJcbiAgICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZTtcclxuICAgICAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub25VcGRhdGUoICh7IHJlcXVlc3RQYXJhbXMsIHJlc3BvbnNlIH0pID0+IHtcclxuICAgICAgICBpZihpc0Vycm9yU3RhdGUocmVzcG9uc2UpKXtcclxuICAgICAgICAgIGZ1bmMoeyByZXF1ZXN0UGFyYW1zLCBlcnJvcjogcmVzcG9uc2UuZXJyb3IgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVSZXF1ZXN0KC4uLnBhcmFtczogWy4uLlRQYXJhbV0pOiBPYnNlcnZhYmxlPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sIFQ+PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlcSguLi5wYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlID0+IGNyZWF0ZVN1Y2Nlc3MoKHRoaXMucHJvamVjdCA/IHRoaXMucHJvamVjdChyZSkgOiByZSkgYXMgVCkpLFxyXG4gICAgICAgIG1hcEVycm9yKGNyZWF0ZUZhaWx1cmUpLFxyXG4gICAgICAgIHN0YXJ0V2l0aChpblByb2dyZXNzKSxcclxuICAgICAgICBtYXAoIHN0YXRlID0+ICh7IHJlcXVlc3RQYXJhbXM6IHBhcmFtcywgcmVzcG9uc2U6IHN0YXRlIH0pKSxcclxuICAgICAgICBkZWZhdWx0U2hhcmVSZXBsYXkoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVXBkYXRlKGZ1bmM6IChzdGF0ZToge1xyXG4gICAgICByZXF1ZXN0UGFyYW1zOiBbLi4uVFBhcmFtXTtcclxuICAgICAgcmVzcG9uc2U6IEh0dHBSZXF1ZXN0U3RhdGU8VD47XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub24odGhpcy5zdGF0ZSQsIGZ1bmMpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uID0gPFY+KHNyY09ic2VydmFibGU6IE9ic2VydmFibGU8Vj4sIGZ1bmM6IChvYmo6IFYpID0+IHZvaWQpOiBTdWJzY3JpcHRpb24gPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5lZmZlY3QoKHNyYzogT2JzZXJ2YWJsZTxWPikgPT4ge1xyXG4gICAgICAgIHJldHVybiBzcmMucGlwZSh0YXAoZnVuYykpO1xyXG4gICAgICB9KShzcmNPYnNlcnZhYmxlKSBhcyBTdWJzY3JpcHRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmVxdWVzdDogKC4uLnZhbHVlOiAgWy4uLlRQYXJhbV0gKSA9PiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVxdWVzdFdpdGggPSAocGFyYW1zOiBPYnNlcnZhYmxlPFsuLi5UUGFyYW1dPiB8IFNpZ25hbDxbLi4uVFBhcmFtXT4pID0+IHtcclxuICAgICAgaWYoaXNTaWduYWwocGFyYW1zKSl7XHJcbiAgICAgICAgcGFyYW1zID0gdG9PYnNlcnZhYmxlKHBhcmFtcywgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9KS5waXBlKG5vdE51bGwoKSk7XHJcbiAgICAgIH1cclxuICAgICAgcGFyYW1zLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHApID0+IHRoaXMucmVxdWVzdCguLi5wKSk7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gIH1cclxuICBleHBvcnQgY2xhc3MgQ2FuY2VsbGF0aW9uVG9rZW4ge31cclxuICBleHBvcnQgZnVuY3Rpb24gd3JhcEluQXJyPFQ+KHNpZzogU2lnbmFsPFQ+KSA6IFNpZ25hbDxbVF0+O1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB3cmFwSW5BcnI8VD4ob2JzOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxbVF0+O1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB3cmFwSW5BcnI8VD4oc2lnT3JPYnM6IFNpZ25hbDxUPiB8IE9ic2VydmFibGU8VD4pe1xyXG4gICAgcmV0dXJuIGlzU2lnbmFsKHNpZ09yT2JzKSA/XHJcbiAgICBjb21wdXRlZCgoKSA9PiBbc2lnT3JPYnMoKV0pXHJcbiAgICA6IHNpZ09yT2JzLnBpcGUobWFwKGEgPT4gW2FdKSk7XHJcbiAgfVxyXG4iXX0=
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHR0cFJlcXVlc3RTdGF0ZVN0b3JlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL2h0dHAtcmVxdWVzdC1zdGF0ZS9IdHRwUmVxdWVzdFN0YXRlU3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLEVBQUUsRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZELE9BQU8sRUFBc0IsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQW9FLE1BQU0sU0FBUyxDQUFDO0FBQ3ZKLE9BQU8sRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUN0SSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhHLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBWSxRQUFRLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxTQUFTLENBQUM7O0FBUWxDLE1BQU0sT0FBTyxxQkFBcUYsU0FBUSxjQUEwQztJQUN4SSxPQUFPLENBQXVCO0lBQzlCLE9BQU8sQ0FBZTtJQUN0QixHQUFHLENBQWdDO0lBQ25DLFFBQVEsQ0FBWTtJQUM1QixZQUFZLEdBQWtDLEVBQUUs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bnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRTdG9yZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudC1zdG9yZSc7XHJcbmltcG9ydCB7IEh0dHBSZXF1ZXN0RmFjdG9yeSwgSHR0cFJlcXVlc3RTdHJhdGVneSwgSHR0cFJlcXVlc3RTdGF0dXMsIEh0dHBSZXF1ZXN0U3RhdGUsIFJlcXVlc3RTdGF0ZU9wdGlvbnMsIEh0dHBSZXF1ZXN0U3RhdGVDYW5jZWxsZWQgfSBmcm9tICcuL3R5cGVzJztcclxuaW1wb3J0IHsgY3JlYXRlRmFpbHVyZSwgY3JlYXRlU3VjY2VzcywgaW5Qcm9ncmVzcywgaXNFcnJvclN0YXRlLCBpc1N1Y2Nlc3NPckVycm9yU3RhdGUsIGlzU3VjY2Vzc1N0YXRlLCBub3RTdGFydGVkIH0gZnJvbSAnLi9oZWxwZXJzJztcclxuaW1wb3J0IHsgY29uY2F0TWFwLCBmaWx0ZXIsIG1hcCwgbWVyZ2VNYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IG1hcEVycm9yIH0gZnJvbSAnLi4vcnhqcy9tYXBFcnJvcic7XHJcbmltcG9ydCB7IGRlZmF1bHRTaGFyZVJlcGxheSB9IGZyb20gJy4uL3J4anMvZGVmYXVsdFNoYXJlUmVwbGF5JztcclxuaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgSW5qZWN0b3IsIGlzU2lnbmFsLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgbm90TnVsbCB9IGZyb20gJy4uL3J4anMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBSZXF1ZXN0UmVzcG9uc2U8VFBhcmFtIGV4dGVuZHMgYW55W10sIFQ+IHtcclxuICByZXF1ZXN0UGFyYW1zOiBbLi4uVFBhcmFtXTtcclxuICByZXNwb25zZTogSHR0cFJlcXVlc3RTdGF0ZTxUPjtcclxufVxyXG5cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBjbGFzcyBIdHRwUmVxdWVzdFN0YXRlU3RvcmU8VFBhcmFtIGV4dGVuZHMgYW55W10sIFYsIFIgPSBudWxsLCBUID0gUiBleHRlbmRzIG51bGwgPyBWIDogUj4gZXh0ZW5kcyBDb21wb25lbnRTdG9yZTxSZXF1ZXN0UmVzcG9uc2U8VFBhcmFtLCBUPj4ge1xyXG4gICAgcHJpdmF0ZSBvcHRpb25zPzogUmVxdWVzdFN0YXRlT3B0aW9ucztcclxuICAgIHByaXZhdGUgcHJvamVjdD86ICh2OiBWKSA9PiBSO1xyXG4gICAgcHJpdmF0ZSByZXE6IEh0dHBSZXF1ZXN0RmFjdG9yeTxUUGFyYW0sIFY+O1xyXG4gICAgcHJpdmF0ZSBpbmplY3Rvcj86IEluamVjdG9yO1xyXG4gICAgY29uc3RydWN0b3IocmVxOiBIdHRwUmVxdWVzdEZhY3Rvcnk8VFBhcmFtLCBWPiAsb3B0aW9ucz86IFJlcXVlc3RTdGF0ZU9wdGlvbnM8VFBhcmFtPiwgcHJvamVjdD86ICh2OiBWKSA9PiBSKSB7XHJcbiAgICAgIHN1cGVyKHsgcmVxdWVzdFBhcmFtczogbnVsbCBhcyBhbnksIHJlc3BvbnNlOiBub3RTdGFydGVkIH0pO1xyXG4gICAgICB0aGlzLnByb2plY3QgPSBwcm9qZWN0O1xyXG4gICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xyXG4gICAgICB0aGlzLmluamVjdG9yID0gb3B0aW9ucz8uaW5qZWN0b3I7XHJcbiAgICAgIHRoaXMucmVxID0gcmVxO1xyXG4gICAgICB0aGlzLnJlcXVlc3QgPSAodGhpcy5vcHRpb25zPy5zdHJhdGVneSA9PT0gSHR0cFJlcXVlc3RTdHJhdGVneS5zaW5nbGVVc2UpID8gdGhpcy5zaW5nbGVVc2VSZXF1ZXN0IDogIHRoaXMuZmxhdHRlbmVkUmVxdWVzdDtcclxuXHJcbiAgICAgIGlmKG9wdGlvbnM/LmF1dG9SZXF1ZXN0V2l0aCl7XHJcbiAgICAgICAgdGhpcy5yZXF1ZXN0KC4uLm9wdGlvbnMuYXV0b1JlcXVlc3RXaXRoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJlc2V0KCkge1xyXG4gICAgICB0aGlzLnNldFN0YXRlKHsgcmVxdWVzdFBhcmFtczpudWxsIGFzIGFueSwgcmVzcG9uc2U6IG5vdFN0YXJ0ZWQgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBmbGF0dGVuaW5nU3RyYXRlZ3kgPSAoKSA9PiB7XHJcbiAgICAgIGlmKHRoaXMub3B0aW9ucz8uc3RyYXRlZ3kgPT09IEh0dHBSZXF1ZXN0U3RyYXRlZ3kuY29uY3VycmVudClcclxuICAgICAgICByZXR1cm4gbWVyZ2VNYXAoIChwYXJhbXM6IFsuLi5UUGFyYW1dKSA9PiB0aGlzLmNyZWF0ZVJlcXVlc3QoLi4ucGFyYW1zKSk7XHJcbiAgICAgIGlmKHRoaXMub3B0aW9ucz8uc3RyYXRlZ3kgPT09IEh0dHBSZXF1ZXN0U3RyYXRlZ3kuc2VxdWVudGlhbClcclxuICAgICAgICByZXR1cm4gY29uY2F0TWFwKCAocGFyYW1zOiBbLi4uVFBhcmFtXSkgPT4gdGhpcy5jcmVhdGVSZXF1ZXN0KC4uLnBhcmFtcykpO1xyXG4gICAgICByZXR1cm4gc3dpdGNoTWFwKCAocGFyYW1zOiBbLi4uVFBhcmFtXSkgPT4gKChwYXJhbXNbMF0gYXMgYW55KSBpbnN0YW5jZW9mIENhbmNlbGxhdGlvblRva2VuKSA/XHJcbiAgICAgICAgb2YoeyByZXF1ZXN0UGFyYW1zOiBwYXJhbXNbMF0sIHJlc3BvbnNlOiB7IHN0YXR1czogSHR0cFJlcXVlc3RTdGF0dXMuY2FuY2VsbGVkIH0gYXMgSHR0cFJlcXVlc3RTdGF0ZUNhbmNlbGxlZCB9ICkgOiB0aGlzLmNyZWF0ZVJlcXVlc3QoLi4ucGFyYW1zKSApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcmVxdWVzdEVmZmVjdDogKHZhbHVlOiBbLi4uVFBhcmFtXSApID0+IFN1YnNjcmlwdGlvbiA9IHRoaXMuZWZmZWN0KChvYnM6IE9ic2VydmFibGU8Wy4uLlRQYXJhbV0+KSA9PiB7XHJcbiAgICAgIHJldHVybiAob2JzKS5waXBlKFxyXG4gICAgICAgIHRoaXMuZmxhdHRlbmluZ1N0cmF0ZWd5KCksXHJcbiAgICAgICAgdGFwPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sIFQ+PihzdGF0ZSA9PiB0aGlzLnNldFN0YXRlKHN0YXRlKSksXHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBwcml2YXRlIGZsYXR0ZW5lZFJlcXVlc3QgPSAoLi4udmFsdWU6IFsuLi5UUGFyYW1dKSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlcXVlc3RFZmZlY3QodmFsdWUpIGFzIFN1YnNjcmlwdGlvbjtcclxuICAgIH1cclxuICAgIHByaXZhdGUgc2luZ2xlVXNlUmVxdWVzdCA9ICguLi52YWx1ZTogWy4uLlRQYXJhbV0pID0+IHtcclxuICAgICAgaWYgKHRoaXMuZ2V0KCkucmVzcG9uc2Uuc3RhdHVzICE9PSBIdHRwUmVxdWVzdFN0YXR1cy5ub3RTdGFydGVkKSB7XHJcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwic3RhdGUgY2FuIG5vdCBiZSByZXVzZWQuIGVpdGhlciByZXNldCB0aGUgc3RhdGUgYnkgY2FsbGluZyByZXNldCgpIG9yIHVzZSBhIHN0YXRlIHJlcXVlc3RlciB0aGF0IGFsbG93cyBjb25jdXJyZW50IHJlcXVlc3RzLlwiKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdGhpcy5yZXF1ZXN0RWZmZWN0KHZhbHVlKSBhcyBTdWJzY3JpcHRpb247XHJcbiAgICB9XHJcblxyXG4gICAgJHNlbGVjdEh0dHBTdGF0ZSA9IHRoaXMuc2VsZWN0U2lnbmFsKGEgPT4gYS5yZXNwb25zZSk7XHJcblxyXG4gICAgc2VsZWN0SHR0cFN0YXRlJCA9IHRoaXMuc2VsZWN0KGEgPT4gYS5yZXNwb25zZSk7XHJcblxyXG4gICAgJHNlbGVjdFN0YXR1cyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuJHNlbGVjdEh0dHBTdGF0ZSgpPy5zdGF0dXMpO1xyXG5cclxuICAgIHNlbGVjdFN0YXR1cyQgPSB0aGlzLnNlbGVjdEh0dHBTdGF0ZSQucGlwZShtYXAocyA9PiBzLnN0YXR1cykpO1xyXG5cclxuXHJcblxyXG4gICAgc2VsZWN0RXJyb3IkID0gdGhpcy5zZWxlY3RIdHRwU3RhdGUkLnBpcGUoXHJcbiAgICAgIGZpbHRlcihpc0Vycm9yU3RhdGUpLFxyXG4gICAgICBtYXAoc3RhdGUgPT4gc3RhdGUuZXJyb3IpXHJcbiAgICApO1xyXG5cclxuICAgICRzZWxlY3RFcnJvciA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLiRzZWxlY3RIdHRwU3RhdGUoKTtcclxuICAgICAgaWYoaXNFcnJvclN0YXRlKHN0YXRlKSkgcmV0dXJuIHN0YXRlLmVycm9yXHJcbiAgICB9KVxyXG5cclxuICAgIHNlbGVjdFJlc3BvbnNlJDogT2JzZXJ2YWJsZTxUPiA9IHRoaXMuc2VsZWN0SHR0cFN0YXRlJC5waXBlKFxyXG4gICAgICBmaWx0ZXIoaXNTdWNjZXNzU3RhdGUpLFxyXG4gICAgICBtYXAoIHN0YXRlID0+IHN0YXRlLmJvZHkpXHJcbiAgICApO1xyXG5cclxuICAgICRzZWxlY3RSZXNwb25zZSA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgICAgY29uc3Qgc3RhdGUgPSB0aGlzLiRzZWxlY3RIdHRwU3RhdGUoKTtcclxuICAgICAgaWYoaXNTdWNjZXNzU3RhdGUoc3RhdGUpKXtcclxuICAgICAgICByZXR1cm4gc3RhdGUuYm9keVxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9KVxyXG5cclxuICAgIHNlbGVjdFN1Y2Nlc3NPckVycm9yJCA9IHRoaXMuc3RhdGUkLnBpcGUoXHJcbiAgICAgIG1hcChyID0+IHIucmVzcG9uc2UpLFxyXG4gICAgICBmaWx0ZXIoaXNTdWNjZXNzT3JFcnJvclN0YXRlKSxcclxuICAgICAgbWFwKCAoKSA9PiBudWxsKVxyXG4gICAgKTtcclxuXHJcbiAgICBlcnJvckhhbmRsZWQgPSBmYWxzZTtcclxuICAgIG9uRXJyb3IoIGNiOiAoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMuZXJyb3JIYW5kbGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdEVycm9yJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3MoIGNiOiAoYm9keT86IFQpID0+IHZvaWQpIHtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdFJlc3BvbnNlJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3NPckVycm9yKGNiOiAoKSA9PiB2b2lkKXtcclxuICAgICAgdGhpcy5vbih0aGlzLnNlbGVjdFN1Y2Nlc3NPckVycm9yJCwgY2IpO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvblN1Y2Nlc3NXaXRoUmVxdWVzdChmdW5jOiAoc3RhdGU6IHtcclxuICAgICAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgICAgIGJvZHk6IFQ7XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub25VcGRhdGUoKHsgcmVxdWVzdFBhcmFtcywgcmVzcG9uc2UgfSkgPT4ge1xyXG4gICAgICAgIGlmKGlzU3VjY2Vzc1N0YXRlKHJlc3BvbnNlKSl7XHJcbiAgICAgICAgICBmdW5jKHtyZXF1ZXN0UGFyYW1zLGJvZHk6IHJlc3BvbnNlLmJvZHl9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gdGhpcztcclxuICAgIH1cclxuXHJcbiAgICBvbkVycm9yV2l0aFJlcXVlc3QoZnVuYzogKHN0YXRlOiB7XHJcbiAgICAgIGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZTtcclxuICAgICAgcmVxdWVzdFBhcmFtczogWy4uLlRQYXJhbV07XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub25VcGRhdGUoICh7IHJlcXVlc3RQYXJhbXMsIHJlc3BvbnNlIH0pID0+IHtcclxuICAgICAgICBpZihpc0Vycm9yU3RhdGUocmVzcG9uc2UpKXtcclxuICAgICAgICAgIGZ1bmMoeyByZXF1ZXN0UGFyYW1zLCBlcnJvcjogcmVzcG9uc2UuZXJyb3IgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgICAgcmV0dXJuIHRoaXM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjcmVhdGVSZXF1ZXN0KC4uLnBhcmFtczogWy4uLlRQYXJhbV0pOiBPYnNlcnZhYmxlPFJlcXVlc3RSZXNwb25zZTxUUGFyYW0sIFQ+PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJlcSguLi5wYXJhbXMpLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlID0+IGNyZWF0ZVN1Y2Nlc3MoKHRoaXMucHJvamVjdCA/IHRoaXMucHJvamVjdChyZSkgOiByZSkgYXMgVCkpLFxyXG4gICAgICAgIG1hcEVycm9yKGNyZWF0ZUZhaWx1cmUpLFxyXG4gICAgICAgIHN0YXJ0V2l0aChpblByb2dyZXNzKSxcclxuICAgICAgICBtYXAoIHN0YXRlID0+ICh7IHJlcXVlc3RQYXJhbXM6IHBhcmFtcywgcmVzcG9uc2U6IHN0YXRlIH0pKSxcclxuICAgICAgICBkZWZhdWx0U2hhcmVSZXBsYXkoKVxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIG9uVXBkYXRlKGZ1bmM6IChzdGF0ZToge1xyXG4gICAgICByZXF1ZXN0UGFyYW1zOiBbLi4uVFBhcmFtXTtcclxuICAgICAgcmVzcG9uc2U6IEh0dHBSZXF1ZXN0U3RhdGU8VD47XHJcbiAgICB9KSA9PiB2b2lkKSB7XHJcbiAgICAgIHRoaXMub24odGhpcy5zdGF0ZSQsIGZ1bmMpO1xyXG4gICAgfVxyXG5cclxuICAgIG9uID0gPFY+KHNyY09ic2VydmFibGU6IE9ic2VydmFibGU8Vj4sIGZ1bmM6IChvYmo6IFYpID0+IHZvaWQpOiBTdWJzY3JpcHRpb24gPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy5lZmZlY3QoKHNyYzogT2JzZXJ2YWJsZTxWPikgPT4ge1xyXG4gICAgICAgIHJldHVybiBzcmMucGlwZSh0YXAoZnVuYykpO1xyXG4gICAgICB9KShzcmNPYnNlcnZhYmxlKSBhcyBTdWJzY3JpcHRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcmVxdWVzdDogKC4uLnZhbHVlOiAgWy4uLlRQYXJhbV0gKSA9PiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmVxdWVzdFdpdGggPSAocGFyYW1zOiBPYnNlcnZhYmxlPFsuLi5UUGFyYW1dPiB8IFNpZ25hbDxbLi4uVFBhcmFtXT4pID0+IHtcclxuICAgICAgaWYoaXNTaWduYWwocGFyYW1zKSl7XHJcbiAgICAgICAgcGFyYW1zID0gdG9PYnNlcnZhYmxlKHBhcmFtcywgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9KS5waXBlKG5vdE51bGwoKSk7XHJcbiAgICAgIH1cclxuICAgICAgcGFyYW1zLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoKHApID0+IHRoaXMucmVxdWVzdCguLi5wKSk7XHJcbiAgICAgIHJldHVybiB0aGlzO1xyXG4gICAgfVxyXG4gIH1cclxuICBleHBvcnQgY2xhc3MgQ2FuY2VsbGF0aW9uVG9rZW4ge31cclxuICBleHBvcnQgZnVuY3Rpb24gd3JhcEluQXJyPFQ+KHNpZzogU2lnbmFsPFQ+KSA6IFNpZ25hbDxbVF0+O1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB3cmFwSW5BcnI8VD4ob2JzOiBPYnNlcnZhYmxlPFQ+KTogT2JzZXJ2YWJsZTxbVF0+O1xyXG4gIGV4cG9ydCBmdW5jdGlvbiB3cmFwSW5BcnI8VD4oc2lnT3JPYnM6IFNpZ25hbDxUPiB8IE9ic2VydmFibGU8VD4pe1xyXG4gICAgcmV0dXJuIGlzU2lnbmFsKHNpZ09yT2JzKSA/XHJcbiAgICBjb21wdXRlZCgoKSA9PiBbc2lnT3JPYnMoKV0pXHJcbiAgICA6IHNpZ09yT2JzLnBpcGUobWFwKGEgPT4gW2FdKSk7XHJcbiAgfVxyXG4iXX0=
|
|
@@ -1,33 +1,9 @@
|
|
|
1
|
-
import { APP_INITIALIZER, makeEnvironmentProviders } from "@angular/core";
|
|
1
|
+
import { APP_INITIALIZER, EnvironmentInjector, makeEnvironmentProviders, runInInjectionContext } from "@angular/core";
|
|
2
2
|
import { createSelector, Store } from "@ngrx/store";
|
|
3
3
|
import { v4 as uuid } from 'uuid';
|
|
4
|
-
class AppStoreCache {
|
|
5
|
-
cache = {};
|
|
6
|
-
isInCache = (props, actionableSelectorId) => {
|
|
7
|
-
if (typeof props != 'object')
|
|
8
|
-
props = { props };
|
|
9
|
-
let itemsInCache = this.cache[actionableSelectorId] = this.cache[actionableSelectorId] || [];
|
|
10
|
-
if (itemsInCache.some(itemInCache => shallowEquals(itemInCache, props))) {
|
|
11
|
-
return true;
|
|
12
|
-
}
|
|
13
|
-
itemsInCache.push(props);
|
|
14
|
-
return false;
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
4
|
let _store;
|
|
18
5
|
let _cache;
|
|
19
|
-
|
|
20
|
-
const setStore = (store) => {
|
|
21
|
-
if (store instanceof Store)
|
|
22
|
-
_store = store;
|
|
23
|
-
};
|
|
24
|
-
export function setUpStoreFactory(store) {
|
|
25
|
-
_cache = new AppStoreCache();
|
|
26
|
-
return () => new Promise((resolve, reject) => {
|
|
27
|
-
setStore(store);
|
|
28
|
-
resolve(null);
|
|
29
|
-
});
|
|
30
|
-
}
|
|
6
|
+
let _ei;
|
|
31
7
|
/**
|
|
32
8
|
* Creates a selector that can dispatch an action if conditions are met.
|
|
33
9
|
* Note: The props of the selector factory must include the props of the action.
|
|
@@ -37,18 +13,59 @@ export function setUpStoreFactory(store) {
|
|
|
37
13
|
* if true is returned. If no method is passed in than the action will be dispatched if the selector returns undefined or null.
|
|
38
14
|
*/
|
|
39
15
|
export const createActionableSelector = (selectorFactory, action, dispatchIf = defaultFilter) => {
|
|
16
|
+
const options = {
|
|
17
|
+
selectorFactory,
|
|
18
|
+
action: (...props) => () => _store.dispatch(action(...props)),
|
|
19
|
+
dispatchIf
|
|
20
|
+
};
|
|
21
|
+
const actionable = createActionResultSelector(options);
|
|
22
|
+
return (...props) => createSelector(actionable(...props), b => b.result);
|
|
23
|
+
};
|
|
24
|
+
export const createActionSelector = (options) => {
|
|
25
|
+
const actionable = createActionResultSelector(options);
|
|
26
|
+
return ((...props) => createSelector(actionable(...props), b => b.result));
|
|
27
|
+
};
|
|
28
|
+
export const createActionableResultSelector = (selectorFactory, action, dispatchIf = defaultFilter) => {
|
|
29
|
+
const options = {
|
|
30
|
+
selectorFactory,
|
|
31
|
+
action: (...props) => () => _store.dispatch(action(...props)),
|
|
32
|
+
dispatchIf
|
|
33
|
+
};
|
|
34
|
+
return createActionResultSelector(options);
|
|
35
|
+
};
|
|
36
|
+
export const createActionResultSelector = (options) => {
|
|
40
37
|
const id = uuid();
|
|
41
|
-
const slctr = (props) => createSelector(selectorFactory(props), (selected) => {
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
const slctr = (...props) => createSelector(options.selectorFactory(...props), (selected) => {
|
|
39
|
+
const needsDispatch = (options.dispatchIf || defaultFilter)(selected);
|
|
40
|
+
if (needsDispatch && !_cache.isInCache(id, ...props)) {
|
|
41
|
+
queueMicrotask(() => runInInjectionContext(options.injector || _ei, () => {
|
|
42
|
+
options.action(...props)();
|
|
43
|
+
}));
|
|
44
44
|
}
|
|
45
|
-
return
|
|
45
|
+
return ({
|
|
46
|
+
loading: needsDispatch,
|
|
47
|
+
result: selected
|
|
48
|
+
});
|
|
46
49
|
});
|
|
47
50
|
return slctr;
|
|
48
51
|
};
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
class AppStoreCache {
|
|
53
|
+
cache = {};
|
|
54
|
+
isInCache = (actionableSelectorId, ...p) => {
|
|
55
|
+
const props = p.reduce((a, b) => {
|
|
56
|
+
if (typeof b != 'object')
|
|
57
|
+
b = { b };
|
|
58
|
+
return ({ ...a, ...b });
|
|
59
|
+
}, {});
|
|
60
|
+
let itemsInCache = this.cache[actionableSelectorId] = (this.cache[actionableSelectorId] || []);
|
|
61
|
+
if (itemsInCache.some(itemInCache => shallowEquals(itemInCache, props))) {
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
itemsInCache.push(props);
|
|
65
|
+
return false;
|
|
66
|
+
};
|
|
51
67
|
}
|
|
68
|
+
export const clearActionableSelectorRequestCache = () => _cache.cache = {};
|
|
52
69
|
const shallowEquals = (cachedItem, newItem) => {
|
|
53
70
|
const cachedItemKeys = Object.keys(cachedItem);
|
|
54
71
|
const secondKeys = Object.keys(newItem);
|
|
@@ -63,9 +80,28 @@ const shallowEquals = (cachedItem, newItem) => {
|
|
|
63
80
|
}
|
|
64
81
|
return true;
|
|
65
82
|
};
|
|
83
|
+
export function defaultFilter(data) {
|
|
84
|
+
return data == null || data == undefined;
|
|
85
|
+
}
|
|
86
|
+
const setStore = (store) => {
|
|
87
|
+
if (store instanceof Store)
|
|
88
|
+
_store ??= store;
|
|
89
|
+
};
|
|
90
|
+
const setEnvironmentInjector = (ei) => {
|
|
91
|
+
if (ei instanceof EnvironmentInjector)
|
|
92
|
+
_ei ??= ei;
|
|
93
|
+
};
|
|
66
94
|
export function provideActionableSelector() {
|
|
67
95
|
return makeEnvironmentProviders([
|
|
68
|
-
{ provide: APP_INITIALIZER, useFactory: setUpStoreFactory, multi: true, deps: [Store] },
|
|
96
|
+
{ provide: APP_INITIALIZER, useFactory: setUpStoreFactory, multi: true, deps: [Store, EnvironmentInjector] },
|
|
69
97
|
]);
|
|
70
98
|
}
|
|
71
|
-
|
|
99
|
+
export function setUpStoreFactory(store, env) {
|
|
100
|
+
_cache ??= new AppStoreCache();
|
|
101
|
+
return () => new Promise((resolve, reject) => {
|
|
102
|
+
setStore(store);
|
|
103
|
+
setEnvironmentInjector(env);
|
|
104
|
+
resolve(null);
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uYWJsZS1zZWxlY3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXItdXRpbGl0aWVzL3NyYy9uZ3J4L2FjdGlvbmFibGUtc2VsZWN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBWSx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQVUsY0FBYyxFQUFvQixLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUUsT0FBTyxFQUFFLEVBQUUsSUFBSSxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFbEMsSUFBSSxNQUFrQixDQUFDO0FBQ3ZCLElBQUksTUFBcUIsQ0FBQztBQUMxQixJQUFJLEdBQXlCLENBQUM7QUFFOUI7Ozs7Ozs7R0FPRztBQUNILE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLENBQ3RDLGVBQXVFLEVBQ3ZFLE1BQTZCLEVBQzdCLGFBQXdDLGFBQWEsRUFDckQsRUFBRTtJQUNGLE1BQU0sT0FBTyxHQUFHO1FBQ2QsZUFBZTtRQUNmLE1BQU0sRUFBRSxDQUFDLEdBQUcsS0FBWSxFQUFFLEVBQUUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ3BFLFVBQVU7S0FDWCxDQUFBO0lBQ0QsTUFBTSxVQUFVLEdBQUcsMEJBQTBCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkQsT0FBTyxDQUFDLEdBQUcsS0FBWSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLEdBQUcsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDbEYsQ0FBQyxDQUFBO0FBRUQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FB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LG1CQUFtQjtRQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7QUFDbkQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLHlCQUF5QjtJQUN2QyxPQUFPLHdCQUF3QixDQUFDO1FBQzlCLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsbUJBQW1CLENBQUMsRUFBRTtLQUM3RyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLEtBQVksRUFBRSxHQUF3QjtJQUN0RSxNQUFNLEtBQUssSUFBSSxhQUFhLEVBQUUsQ0FBQztJQUMvQixPQUFPLEdBQUcsRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQzNDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQixzQkFBc0IsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBFbnZpcm9ubWVudEluamVjdG9yLCBJbmplY3RvciwgbWFrZUVudmlyb25tZW50UHJvdmlkZXJzLCBydW5JbkluamVjdGlvbkNvbnRleHQsIHVudHJhY2tlZCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGlvbiwgY3JlYXRlU2VsZWN0b3IsIE1lbW9pemVkU2VsZWN0b3IsIFN0b3JlIH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWQgfSBmcm9tICd1dWlkJztcclxuXHJcbmxldCBfc3RvcmU6IFN0b3JlPGFueT47XHJcbmxldCBfY2FjaGU6IEFwcFN0b3JlQ2FjaGU7XHJcbmxldCBfZWkgOiBFbnZpcm9ubWVudEluamVjdG9yO1xyXG5cclxuLyoqXHJcbiAqIENyZWF0ZXMgYSBzZWxlY3RvciB0aGF0IGNhbiBkaXNwYXRjaCBhbiBhY3Rpb24gaWYgY29uZGl0aW9ucyBhcmUgbWV0LlxyXG4gKiBOb3RlOiBUaGUgcHJvcHMgb2YgdGhlIHNlbGVjdG9yIGZhY3RvcnkgbXVzdCBpbmNsdWRlIHRoZSBwcm9wcyBvZiB0aGUgYWN0aW9uLlxyXG4gKiBAcGFyYW0gc2VsZWN0b3JGYWN0b3J5IEEgbWV0aG9kIHRoYXQgcmV0dXJucyBzZWxlY3Rvci5cclxuICogQHBhcmFtIGFjdGlvbiBUaGUgYWN0aW9uIHRoYXQgd2lsbCBiZSBkaXNwYXRjaGVkIHdoZW4gY29uZGl0aW9ucyBhcmUgbWV0LlxyXG4gKiBAcGFyYW0gW2Rpc3BhdGNoSWYgPSBkZWZhdWx0RmlsdGVyXSBPcHRpb25hbC4gQSBtZXRob2QgdGhhdCB0YWtlcyB0aGUgcmVzdWx0IG9mIHRoZSBzZWxlY3RvciBhbmQgcmV0dXJucyBhIGJvb2xlYW4uIFRoZSBhY3Rpb25zIGdldHMgZGlzcGF0Y2hlZFxyXG4gKiBpZiB0cnVlIGlzIHJldHVybmVkLiBJZiBubyBtZXRob2QgaXMgcGFzc2VkIGluIHRoYW4gdGhlIGFjdGlvbiB3aWxsIGJlIGRpc3BhdGNoZWQgaWYgdGhlIHNlbGVjdG9yIHJldHVybnMgdW5kZWZpbmVkIG9yIG51bGwuXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9uYWJsZVNlbGVjdG9yID0gPFN0YXRlLCBSZXN1bHQsIFByb3BzIGV4dGVuZHMgYW55W10+KFxyXG4gIHNlbGVjdG9yRmFjdG9yeTogKCguLi5wcm9wczogUHJvcHMpID0+IE1lbW9pemVkU2VsZWN0b3I8U3RhdGUsIFJlc3VsdD4pLFxyXG4gIGFjdGlvbjogQWN0aW9uUmV0dXJuZXI8UHJvcHM+LFxyXG4gIGRpc3BhdGNoSWY6IChkYXRhOiBSZXN1bHQpID0+IGJvb2xlYW4gPSBkZWZhdWx0RmlsdGVyLFxyXG4pID0+IHtcclxuICBjb25zdCBvcHRpb25zID0ge1xyXG4gICAgc2VsZWN0b3JGYWN0b3J5LFxyXG4gICAgYWN0aW9uOiAoLi4ucHJvcHM6IFByb3BzKSA9PiAoKSA9PiBfc3RvcmUuZGlzcGF0Y2goYWN0aW9uKC4uLnByb3BzKSksXHJcbiAgICBkaXNwYXRjaElmXHJcbiAgfVxyXG4gIGNvbnN0IGFjdGlvbmFibGUgPSBjcmVhdGVBY3Rpb25SZXN1bHRTZWxlY3RvcihvcHRpb25zKTtcclxuICByZXR1cm4gKC4uLnByb3BzOiBQcm9wcykgPT4gY3JlYXRlU2VsZWN0b3IoYWN0aW9uYWJsZSguLi5wcm9wcyksIGIgPT4gYi5yZXN1bHQpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9uU2VsZWN0b3IgPSA8U3RhdGUsIFJlc3VsdCwgUHJvcHMgZXh0ZW5kcyBhbnlbXSA9IGFueVtdPihvcHRpb25zOiBDcmVhdGVBY3Rpb25SZXN1bHRzT3B0aW9uczxTdGF0ZSwgUmVzdWx0LCBQcm9wcz4pID0+IHtcclxuICBjb25zdCBhY3Rpb25hYmxlID0gY3JlYXRlQWN0aW9uUmVzdWx0U2VsZWN0b3Iob3B0aW9ucyk7XHJcbiAgcmV0dXJuICgoLi4ucHJvcHM6IFByb3BzKSA9PiBjcmVhdGVTZWxlY3RvcihhY3Rpb25hYmxlKC4uLnByb3BzKSwgYiA9PiBiLnJlc3VsdCkpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9uYWJsZVJlc3VsdFNlbGVjdG9yID0gPFN0YXRlLCBSZXN1bHQsIFByb3BzIGV4dGVuZHMgYW55W10+KFxyXG4gIHNlbGVjdG9yRmFjdG9yeTogKCguLi5wcm9wczogUHJvcHMpID0+IE1lbW9pemVkU2VsZWN0b3I8U3RhdGUsIFJlc3VsdD4pLFxyXG4gIGFjdGlvbjogQWN0aW9uUmV0dXJuZXI8UHJvcHM+LFxyXG4gIGRpc3BhdGNoSWY6IChkYXRhOiBSZXN1bHQpID0+IGJvb2xlYW4gPSBkZWZhdWx0RmlsdGVyLFxyXG4pID0+IHtcclxuICBjb25zdCBvcHRpb25zOiBDcmVhdGVBY3Rpb25SZXN1bHRzT3B0aW9uczxTdGF0ZSwgUmVzdWx0LCBQcm9wcz4gPSB7IFxyXG4gICAgc2VsZWN0b3JGYWN0b3J5LFxyXG4gICAgYWN0aW9uOiAoLi4ucHJvcHM6IFByb3BzKSA9PiAoKSA9PiBfc3RvcmUuZGlzcGF0Y2goYWN0aW9uKC4uLnByb3BzKSksXHJcbiAgICBkaXNwYXRjaElmXHJcbiAgfTtcclxuXHJcbiAgcmV0dXJuIGNyZWF0ZUFjdGlvblJlc3VsdFNlbGVjdG9yKG9wdGlvbnMpO1xyXG59XHJcblxyXG5leHBvcnQgY29uc3QgY3JlYXRlQWN0aW9uUmVzdWx0U2VsZWN0b3IgPSA8U3RhdGUsIFJlc3VsdCwgUHJvcHMgZXh0ZW5kcyBhbnlbXSA9IGFueVtdPihvcHRpb25zOiBDcmVhdGVBY3Rpb25SZXN1bHRzT3B0aW9uczxTdGF0ZSwgUmVzdWx0LCBQcm9wcz4pID0+IHtcclxuICBjb25zdCBpZCA9IHV1aWQoKTtcclxuICBjb25zdCBzbGN0ciA9ICguLi5wcm9wczogUHJvcHMpID0+IGNyZWF0ZVNlbGVjdG9yKFxyXG4gICAgb3B0aW9ucy5zZWxlY3RvckZhY3RvcnkoLi4ucHJvcHMpLFxyXG4gICAgKHNlbGVjdGVkOiBSZXN1bHQpID0+IHtcclxuICAgICAgY29uc3QgbmVlZHNEaXNwYXRjaCA9IChvcHRpb25zLmRpc3BhdGNoSWYgfHwgZGVmYXVsdEZpbHRlcikoc2VsZWN0ZWQpO1xyXG4gICAgICBpZihuZWVkc0Rpc3BhdGNoICYmICFfY2FjaGUuaXNJbkNhY2hlKGlkLCAuLi5wcm9wcykpe1xyXG4gICAgICAgIHF1ZXVlTWljcm90YXNrKCgpID0+ICBcclxuICAgICAgICAgIHJ1bkluSW5qZWN0aW9uQ29udGV4dChvcHRpb25zLmluamVjdG9yIHx8IF9laSwgKCkgPT4ge1xyXG4gICAgICAgICAgICBvcHRpb25zLmFjdGlvbiguLi5wcm9wcykoKVxyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAoe1xyXG4gICAgICAgIGxvYWRpbmc6IG5lZWRzRGlzcGF0Y2gsXHJcbiAgICAgICAgcmVzdWx0OiBzZWxlY3RlZFxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICApIGFzIEFjdGlvbmFibGVNZW1vaXplZFNlbGVjdG9yPFN0YXRlLCBMb2FkaW5nU3RhdGU8UmVzdWx0Pj47XHJcbiAgcmV0dXJuIHNsY3RyO1xyXG59XHJcblxyXG5jbGFzcyBBcHBTdG9yZUNhY2hlIHtcclxuICBjYWNoZTogQ2FjaGUgPSB7fTtcclxuICBpc0luQ2FjaGUgPSAoYWN0aW9uYWJsZVNlbGVjdG9ySWQ6IHN0cmluZywgLi4ucDogYW55W10pOiBib29sZWFuID0+IHtcclxuICAgIGNvbnN0IHByb3BzID0gcC5yZWR1Y2UoKGEsIGIpID0+IHtcclxuICAgICAgaWYodHlwZW9mIGIgIT0gJ29iamVjdCcpIGIgPSB7IGIgfTtcclxuICAgICAgcmV0dXJuKHsgLi4uYSwgLi4uYiB9KVxyXG4gICAgfSwge30pO1xyXG5cclxuICAgIGxldCBpdGVtc0luQ2FjaGUgPSB0aGlzLmNhY2hlW2FjdGlvbmFibGVTZWxlY3RvcklkXSA9ICh0aGlzLmNhY2hlW2FjdGlvbmFibGVTZWxlY3RvcklkXSB8fCBbXSk7XHJcblxyXG4gICAgaWYoaXRlbXNJbkNhY2hlLnNvbWUoaXRlbUluQ2FjaGUgPT4gc2hhbGxvd0VxdWFscyhpdGVtSW5DYWNoZSwgcHJvcHMpKSl7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGl0ZW1zSW5DYWNoZS5wdXNoKHByb3BzKTtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBjbGVhckFjdGlvbmFibGVTZWxlY3RvclJlcXVlc3RDYWNoZSA9ICgpID0+IF9jYWNoZS5jYWNoZSA9IHt9O1xyXG5cclxuY29uc3Qgc2hhbGxvd0VxdWFscyA9IChjYWNoZWRJdGVtOiBvYmplY3QsIG5ld0l0ZW06IG9iamVjdCk6IGJvb2xlYW4gPT4ge1xyXG4gIGNvbnN0IGNhY2hlZEl0ZW1LZXlzID0gT2JqZWN0LmtleXMoY2FjaGVkSXRlbSk7XHJcbiAgY29uc3Qgc2Vjb25kS2V5cyA9IE9iamVjdC5rZXlzKG5ld0l0ZW0pO1xyXG4gIGlmKGNhY2hlZEl0ZW1LZXlzLmxlbmd0aCAhPT0gc2Vjb25kS2V5cy5sZW5ndGgpIHtcclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcbiAgZm9yKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2FjaGVkSXRlbUtleXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICBjb25zdCBjdXJyZW50S2V5ID0gY2FjaGVkSXRlbUtleXNbaW5kZXhdO1xyXG4gICAgaWYoY2FjaGVkSXRlbVtjdXJyZW50S2V5XSAhPT0gbmV3SXRlbVtjdXJyZW50S2V5XSl7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcbiAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBkZWZhdWx0RmlsdGVyKGRhdGE6IGFueSkge1xyXG4gIHJldHVybiBkYXRhID09IG51bGwgfHwgZGF0YSA9PSB1bmRlZmluZWQ7XHJcbn1cclxuXHJcbmNvbnN0IHNldFN0b3JlID0gKHN0b3JlOiBTdG9yZSkgPT4ge1xyXG4gIGlmKHN0b3JlIGluc3RhbmNlb2YgU3RvcmUpIF9zdG9yZSA/Pz0gc3RvcmU7XHJcbn07XHJcblxyXG5jb25zdCBzZXRFbnZpcm9ubWVudEluamVjdG9yID0gKGVpOiBFbnZpcm9ubWVudEluamVjdG9yKSA9PiB7XHJcbiAgaWYoZWkgaW5zdGFuY2VvZiBFbnZpcm9ubWVudEluamVjdG9yKSBfZWkgPz89IGVpO1xyXG59O1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVBY3Rpb25hYmxlU2VsZWN0b3IoKXtcclxuICByZXR1cm4gbWFrZUVudmlyb25tZW50UHJvdmlkZXJzKFtcclxuICAgIHsgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLCB1c2VGYWN0b3J5OiBzZXRVcFN0b3JlRmFjdG9yeSwgbXVsdGk6IHRydWUsIGRlcHM6IFtTdG9yZSwgRW52aXJvbm1lbnRJbmplY3Rvcl0gfSxcclxuICBdKVxyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc2V0VXBTdG9yZUZhY3Rvcnkoc3RvcmU6IFN0b3JlLCBlbnY6IEVudmlyb25tZW50SW5qZWN0b3Ipe1xyXG4gIF9jYWNoZSA/Pz0gbmV3IEFwcFN0b3JlQ2FjaGUoKTtcclxuICByZXR1cm4gKCkgPT4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xyXG4gICAgc2V0U3RvcmUoc3RvcmUpO1xyXG4gICAgc2V0RW52aXJvbm1lbnRJbmplY3RvcihlbnYpXHJcbiAgICByZXNvbHZlKG51bGwpO1xyXG4gIH0pXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQWN0aW9uUmVzdWx0c09wdGlvbnM8U3RhdGUsIFJlc3VsdCwgUHJvcHMgZXh0ZW5kcyBhbnlbXT57XHJcbiAgc2VsZWN0b3JGYWN0b3J5OiAoLi4ucHJvcHM6IFByb3BzKSA9PiBNZW1vaXplZFNlbGVjdG9yPFN0YXRlLCBSZXN1bHQ+LFxyXG4gIGFjdGlvbjogKC4uLnByb3BzOiBQcm9wcykgPT4gKCkgPT4gdm9pZCxcclxuICBkaXNwYXRjaElmPzogKGRhdGE6IFJlc3VsdCkgPT4gYm9vbGVhbixcclxuICBpbmplY3Rvcj86IEluamVjdG9yXHJcbn1cclxuXHJcbmludGVyZmFjZSBMb2FkaW5nU3RhdGU8VD4ge1xyXG4gIGxvYWRpbmc6IGJvb2xlYW47XHJcbiAgcmVzdWx0PzogVDtcclxufVxyXG5cclxudHlwZSBBY3Rpb25hYmxlTWVtb2l6ZWRTZWxlY3RvcjxTdGF0ZSwgUmVzdWx0PiA9IE1lbW9pemVkU2VsZWN0b3I8U3RhdGUsIFJlc3VsdD47XHJcblxyXG5leHBvcnQgdHlwZSBBY3Rpb25SZXR1cm5lcjxQcm9wcyBleHRlbmRzIGFueVtdPiA9ICguLi5wcm9wczogUHJvcHMpID0+IEFjdGlvbjtcclxuXHJcbnR5cGUgQ2FjaGUgPSB7XHJcbiAgW2tleTogc3RyaW5nXTogeyBba2V5OiBzdHJpbmddOiBhbnkgfVtdO1xyXG59Il19
|
|
@@ -70,10 +70,21 @@ export class ColumnBuilderComponent {
|
|
|
70
70
|
ngOnInit() {
|
|
71
71
|
this.initialSetUp();
|
|
72
72
|
}
|
|
73
|
+
viewInited = false;
|
|
73
74
|
ngAfterViewInit() {
|
|
74
75
|
this.furtherSetUp();
|
|
75
76
|
this.table.addColumnDef(this.columnDef);
|
|
77
|
+
this.onViewInit();
|
|
78
|
+
this.viewInited = true;
|
|
76
79
|
}
|
|
80
|
+
onViewInit = () => { };
|
|
81
|
+
whenViewInited = (callback) => {
|
|
82
|
+
if (this.viewInited) {
|
|
83
|
+
callback();
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
this.onViewInit = callback;
|
|
87
|
+
};
|
|
77
88
|
initialSetUp() {
|
|
78
89
|
if (this.metaData.fieldType === FieldType.Currency) {
|
|
79
90
|
this.classes = {
|
|
@@ -131,4 +142,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImpor
|
|
|
131
142
|
type: ViewChild,
|
|
132
143
|
args: ['body']
|
|
133
144
|
}] } });
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQWUsU0FBUyxFQUFxQixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQW1CLFNBQVMsRUFBWSxNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpGLE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFD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REEsdWlCRDNCSSxjQUFjLDRuQkFBRSxnQkFBZ0Isb0pBQUUscUJBQXFCLHVGQUFFLFlBQVksNkNBQUUsZUFBZSxvRkFDdEYsMkJBQTJCLDJHQUFFLGNBQWMsK2xCQUFFLGFBQWEsaVBBQUUsYUFBYSxrREFBRSxtQkFBbUIsNEVBQzlGLFNBQVMsNkNBQUUsZ0JBQWdCLDZUQUFFLFlBQVksNEZBQUUsZUFBZSwrQ0FBRSxZQUFZLDRDQUFFLFdBQVcsb0NBUHhFO1lBQ2IsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUU7U0FDckQ7OzJGQVFVLHNCQUFzQjtrQkFkbEMsU0FBUztzQ0FHUyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQzt3QkFDYixFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRTtxQkFDckQsY0FDVyxJQUFJLFdBQ1A7d0JBQ1AsY0FBYyxFQUFFLGdCQUFnQixFQUFFLHFCQUFxQixFQUFFLFlBQVksRUFBRSxlQUFlO3dCQUN0RiwyQkFBMkIsRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxtQkFBbUI7d0JBQzlGLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxXQUFXO3FCQUN0Rjs4QkFTd0IsU0FBUztzQkFBakMsU0FBUzt1QkFBQyxZQUFZO2dCQUNKLFlBQVk7c0JBQTlCLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIE9uSW5pdCwgUHJlZGljYXRlLCBJbmplY3RvciwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBcnJheUFkZGl0aW9uYWwsIEZpZWxkVHlwZSwgTWV0YURhdGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL3JlcG9ydC1kZWYnO1xyXG5pbXBvcnQgeyBNYXRDb2x1bW5EZWYsIE1hdFRhYmxlLCBNYXRUYWJsZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBDdXN0b21DZWxsRGlyZWN0aXZlLCBSZXNpemVDb2x1bW5EaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcclxuaW1wb3J0IHsgRmlsdGVySW5mbyB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBUcmFuc2Zvcm1DcmVhdG9yIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNmb3JtLWNyZWF0b3InO1xyXG5pbXBvcnQgeyBUYWJsZVN0b3JlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy90YWJsZS1zdG9yZSc7XHJcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgVGFibGVUZW1wbGF0ZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90YWJsZS10ZW1wbGF0ZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ2RrRHJvcExpc3QsIENES19EUk9QX0xJU1QsIERyYWdEcm9wTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IERpY3Rpb25hcnkgfSBmcm9tICdAbmdyeC9lbnRpdHknO1xyXG5pbXBvcnQgeyBBc3luY1BpcGUsIEN1cnJlbmN5UGlwZSwgRGVjaW1hbFBpcGUsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb25kaXRpb25hbENsYXNzZXNEaXJlY3RpdmUsIEZ1bmN0aW9uUGlwZSwgU3BhY2VDYXNlUGlwZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcbmltcG9ydCB7IE1hdFNvcnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcclxuaW1wb3J0IHsgSGVhZGVyTWVudUNvbXBvbmVudCB9IGZyb20gJy4uL2hlYWRlci1tZW51L2hlYWRlci1tZW51LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcclxuaW1wb3J0IHsgTGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5ncngvY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ29sdW1uVG90YWxQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvY29sdW1uLXRvdGFsLnBpcGUnO1xyXG5pbXBvcnQgeyBTdHlsZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMvZGlyZWN0aXZlcy9zdHlsZXInO1xyXG5pbXBvcnQgeyBjb2x1bW5TdHlsZXMgfSBmcm9tICcuL2NvbHVtbi1oZWxwZXJzJztcclxuaW1wb3J0IHsgVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4gfSBmcm9tICcuLi8uLi9jbGFzc2VzL1RhYmxlQnVpbGRlckNvbmZpZyc7XHJcbmltcG9ydCB7IExpbmtJbmZvIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbGluay1jcmVhdG9yLnNlcnZpY2UnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICB2aWV3UHJvdmlkZXJzOiBbXHJcbiAgICB7IHByb3ZpZGU6IENES19EUk9QX0xJU1QsIHVzZUV4aXN0aW5nOiBDZGtEcm9wTGlzdCB9LFxyXG4gIF0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBNYXRUYWJsZU1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCwgUmVzaXplQ29sdW1uRGlyZWN0aXZlLCBGdW5jdGlvblBpcGUsIFN0eWxlckRpcmVjdGl2ZSxcclxuICAgIENvbmRpdGlvbmFsQ2xhc3Nlc0RpcmVjdGl2ZSwgRHJhZ0Ryb3BNb2R1bGUsIE1hdFNvcnRNb2R1bGUsIFNwYWNlQ2FzZVBpcGUsIEhlYWRlck1lbnVDb21wb25lbnQsXHJcbiAgICBBc3luY1BpcGUsIE1hdFRvb2x0aXBNb2R1bGUsIExldERpcmVjdGl2ZSwgQ29sdW1uVG90YWxQaXBlLCBDdXJyZW5jeVBpcGUsIERlY2ltYWxQaXBlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29sdW1uQnVpbGRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSB0cmFuc2Zvcm1DcmVhdG9yID0gaW5qZWN0KFRyYW5zZm9ybUNyZWF0b3IpO1xyXG4gIHByaXZhdGUgdGFibGUgPSBpbmplY3Q8TWF0VGFibGU8YW55Pj4oTWF0VGFibGUpO1xyXG4gIHByaXZhdGUgc3RhdGUgPSBpbmplY3QoVGFibGVTdG9yZSk7XHJcbiAgcHJpdmF0ZSB0ZW1wbGF0ZVNlcnZpY2UgPSBpbmplY3QoVGFibGVUZW1wbGF0ZVNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcblxyXG4gIEBWaWV3Q2hpbGQoTWF0Q29sdW1uRGVmKSBjb2x1bW5EZWYhOiBNYXRDb2x1bW5EZWY7XHJcbiAgQFZpZXdDaGlsZCgnYm9keScpIGJvZHlUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgdGFibGVDb25maWcgPSBpbmplY3QoVGFibGVCdWlsZGVyQ29uZmlnVG9rZW4pO1xyXG4gIEZpZWxkVHlwZSA9IEZpZWxkVHlwZTtcclxuICBmaWx0ZXIhOiBQYXJ0aWFsPEZpbHRlckluZm8+O1xyXG4gIF9tZXRhRGF0YSE6IE1ldGFEYXRhO1xyXG4gIGdldCBtZXRhRGF0YSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuX21ldGFEYXRhO1xyXG4gIH1cclxuICBzZXQgbWV0YURhdGEobWQ6IE1ldGFEYXRhKXtcclxuICAgIGlmKHRoaXMubWV0YURhdGEgJiYgdGhpcy5tZXRhRGF0YS5maWVsZFR5cGUgIT09IG1kLmZpZWxkVHlwZSl7XHJcbiAgICAgIHRoaXMuX21ldGFEYXRhID0gbWQ7XHJcbiAgICAgIHRoaXMuaW5pdGlhbFNldFVwKCk7XHJcbiAgICAgIHRoaXMuZnVydGhlclNldFVwKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLl9tZXRhRGF0YSA9IG1kO1xyXG4gICAgfVxyXG4gIH1cclxuICBjdXN0b21DZWxsPzogQ3VzdG9tQ2VsbERpcmVjdGl2ZSA9IHVuZGVmaW5lZDtcclxuICBkYXRhJCE6IE9ic2VydmFibGU8YW55W10+O1xyXG5cclxuICBvdXRlclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICBpbm5lclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcclxuICB0cmFuc2Zvcm0hOiAobzogYW55LCAuLi5hcmdzOiBhbnlbXSk9PiBhbnkgO1xyXG5cclxuICBnZXRJbm5lclRlbXBsYXRlKCkgOlRlbXBsYXRlUmVmPGFueT4ge1xyXG4gICAgaWYodGhpcy5tZXRhRGF0YS50ZW1wbGF0ZSkgcmV0dXJuIHRoaXMubWV0YURhdGEudGVtcGxhdGU7XHJcbiAgICBpZiAodGhpcy5jdXN0b21DZWxsPy5UZW1wbGF0ZVJlZikgIHJldHVybiB0aGlzLmN1c3RvbUNlbGwuVGVtcGxhdGVSZWY7XHJcbiAgICByZXR1cm4gdGhpcy50ZW1wbGF0ZVNlcnZpY2UuZ2V0VGVtcGxhdGUodGhpcy5tZXRhRGF0YSk7XHJcbiAgfVxyXG4gIHNob3dGaWx0ZXJzJCE6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgZ2V0T3V0ZXJUZW1wbGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uY2VsbD8udGVtcGxhdGUgPz8gdGhpcy5ib2R5VGVtcGxhdGU7XHJcbiAgfVxyXG4gIGNsYXNzZXM/OiBEaWN0aW9uYXJ5PFByZWRpY2F0ZTxhbnk+PjtcclxuICBzdHlsZXMgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gY29sdW1uU3R5bGVzKHRoaXMubWV0YURhdGEsIHRoaXMuc3RhdGUuJGdldFVzZXJEZWZpbmVkV2lkdGgodGhpcy5tZXRhRGF0YS5rZXkpKCksIHRoaXMuc3RhdGUudGFibGVTZXR0aW5nc01pbldpZHRoKCkpO1xyXG4gIH0pXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmluaXRpYWxTZXRVcCgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5mdXJ0aGVyU2V0VXAoKTtcclxuICAgIHRoaXMudGFibGUuYWRkQ29sdW1uRGVmKHRoaXMuY29sdW1uRGVmKTtcclxuICB9XHJcblxyXG4gIGluaXRpYWxTZXRVcCgpe1xyXG4gICAgaWYodGhpcy5tZXRhRGF0YS5maWVsZFR5cGUgPT09IEZpZWxkVHlwZS5DdXJyZW5jeSkge1xyXG4gICAgICB0aGlzLmNsYXNzZXMgPSB7XHJcbiAgICAgICAgWyduZWdhdGl2ZS1jdXJyZW5jeSddOiAoZWxlbWVudCkgPT4gZWxlbWVudFt0aGlzLm1ldGFEYXRhLmtleV0gPCAwLFxyXG4gICAgICAgIC4uLnRoaXMubWV0YURhdGEuY2xhc3Nlc1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5jbGFzc2VzID0gdGhpcy5tZXRhRGF0YS5jbGFzc2VzO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maWx0ZXIgPSB7a2V5OiB0aGlzLm1ldGFEYXRhLmtleSwgZmllbGRUeXBlOiB0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZX07XHJcblxyXG4gICAgdGhpcy5zaG93RmlsdGVycyQgPSB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3MkLnBpcGUobWFwKHNldHRpbmdzID0+ICEoc2V0dGluZ3MuaGlkZUNvbHVtbkhlYWRlckZpbHRlcnMgfHwgdGhpcy5tZXRhRGF0YS5ub0ZpbHRlcikpKTtcclxuICAgIHRoaXMuYWRkaXRpb25hbCA9IHRoaXMubWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuTGlua1xyXG4gICAgICA/IHRoaXMuc3RhdGUuZ2V0TGlua0luZm8odGhpcy5tZXRhRGF0YSkoKVxyXG4gICAgICA6XHJcbiAgICAgIHRoaXMubWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQXJyYXlcclxuICAgICAgPyAodGhpcy5tZXRhRGF0YS5hZGRpdGlvbmFsIGFzIEFycmF5QWRkaXRpb25hbCk/LmxpbWl0IHx8IHRoaXMudGFibGVDb25maWc/LmFycmF5RGVmYXVsdHM/LmFycmF5U3R5bGVcclxuICAgICAgOiB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBmdXJ0aGVyU2V0VXAoKXtcclxuICAgIHRoaXMub3V0ZXJUZW1wbGF0ZSA9IHRoaXMuZ2V0T3V0ZXJUZW1wbGF0ZSgpO1xyXG4gICAgdGhpcy5pbm5lclRlbXBsYXRlID0gdGhpcy5nZXRJbm5lclRlbXBsYXRlKCk7XHJcbiAgICB0aGlzLnRyYW5zZm9ybSA9IHRoaXMudHJhbnNmb3JtQ3JlYXRvci5jcmVhdGVUcmFuc2Zvcm1lcih0aGlzLm1ldGFEYXRhKTtcclxuICB9XHJcblxyXG4gIGNlbGxDbGlja2VkKGVsZW1lbnQ6IGFueSwga2V5OiBzdHJpbmcpIHtcclxuICAgIGlmKHRoaXMubWV0YURhdGEuY2xpY2spIHtcclxuICAgICAgdGhpcy5tZXRhRGF0YS5jbGljayhlbGVtZW50LGtleSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRUb29sdGlwID0gKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgaWYodHlwZW9mIHRoaXMubWV0YURhdGEudG9vbFRpcCA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubWV0YURhdGEudG9vbFRpcDtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLm1ldGFEYXRhLnRvb2xUaXAhKGVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgYWRkaXRpb25hbDogTGlua0luZm8gfCBudW1iZXIgfCB1bmRlZmluZWQ7XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciBbbWF0Q29sdW1uRGVmXT1cIm1ldGFEYXRhLmtleVwiICpuZ3J4TGV0PVwic3R5bGVzKCkgYXMgc3R5bGVzXCIgPlxyXG5cclxuICA8IS0tIGhlYWRlciAtLT5cclxuICA8bmctdGVtcGxhdGUgbWF0SGVhZGVyQ2VsbERlZiAjbXlIZWFkZXI+XHJcbiAgICA8bWF0LWhlYWRlci1jZWxsIGNka0RyYWcgW3N0eWxlXT0nc3R5bGVzLmhlYWRlcicgcmVzaXplQ29sdW1uIFtrZXldPVwibWV0YURhdGEua2V5XCIgY2xhc3M9XCJjb2x1bW4taGVhZFwiXHJcbiAgICAgIFtjbGFzc109J21ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRDbGFzc2VzPy5oZWFkZXInPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyLWNvbnRhaW5lclwiIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgQGlmKCFjdXN0b21DZWxsPy5jb2x1bW5EZWY/LmhlYWRlckNlbGwpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBAaWYobWV0YURhdGEuZmllbGRUeXBlICE9PSBGaWVsZFR5cGUuTm90TWFwcGVkKXtcclxuICAgICAgICAgICAgICA8ZGl2IG1hdC1zb3J0LWhlYWRlciBbZGlzYWJsZWRdPVwibWV0YURhdGEubm9Tb3J0XCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPlxyXG4gICAgICAgICAgICAgICAge3sgbWV0YURhdGEuZGlzcGxheU5hbWUgPyAgbWV0YURhdGEuZGlzcGxheU5hbWUgOiAoIG1ldGFEYXRhLmtleSB8IHNwYWNlQ2FzZSApIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH0gQGVsc2UgaWYobWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuTm90TWFwcGVkKXtcclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuICAgICAgICAgICAgICAgIHt7IG1ldGFEYXRhLmRpc3BsYXlOYW1lID8gIG1ldGFEYXRhLmRpc3BsYXlOYW1lIDogKCBtZXRhRGF0YS5rZXkgfCBzcGFjZUNhc2UgKSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBpZigoc2hvd0ZpbHRlcnMkIHwgYXN5bmMpKXtcclxuICAgICAgICAgICAgICA8dGItaGVhZGVyLW1lbnUgI21lbnUgW21ldGFEYXRhXT0nbWV0YURhdGEnIC8+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgQGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tQ2VsbCEuY29sdW1uRGVmIS5oZWFkZXJDZWxsLnRlbXBsYXRlOyBjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBzdHlsZXM6ICBzdHlsZXMuaGVhZGVyfSBcIj5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIH1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1oZWFkZXItY2VsbD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8IS0tIGJvZHkgLS0+XHJcbiAgPG5nLWNvbnRhaW5lciAqbWF0Q2VsbERlZj1cImxldCBlbGVtZW50O1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm91dGVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgbWV0YURhdGE6IG1ldGFEYXRhLCBlbGVtZW50OiBlbGVtZW50ICwgc3R5bGVzOiBzdHlsZXMuYm9keSwgJGltcGxpY2l0OiBlbGVtZW50IH1cIi8+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLXRlbXBsYXRlICNib2R5IGxldC1lbGVtZW50PSdlbGVtZW50JyA+XHJcbiAgICA8bWF0LWNlbGwgIFttYXRUb29sdGlwXT1cIm1ldGFEYXRhLnRvb2xUaXAgPyAoZ2V0VG9vbHRpcCB8IGZ1bmMgOiBlbGVtZW50KSA6ICcnXCIgIFtjb25kaXRpb25hbENsYXNzZXNdPSdtZXRhRGF0YS5jbGFzc2VzJyBbZWxlbWVudF09J2VsZW1lbnQnIFtzdHlsZXJdPSdzdHlsZXMuYm9keScgKGNsaWNrKT0nY2VsbENsaWNrZWQoZWxlbWVudCwgbWV0YURhdGEua2V5KScgPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJUZW1wbGF0ZTsgY29udGV4dDogeyB2YWx1ZTogKHRyYW5zZm9ybSB8IGZ1bmMgOiBlbGVtZW50KSwgZWxlbWVudDogZWxlbWVudCwgYWRkaXRpb25hbDogYWRkaXRpb25hbCwgJGltcGxpY2l0OiBlbGVtZW50IH07IEluamVjdG9yOiBpbmplY3RvclwiIC8+XHJcbiAgICA8L21hdC1jZWxsPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDwhLS0gZm9vdGVyIC0tPlxyXG4gIDxuZy10ZW1wbGF0ZSBtYXRGb290ZXJDZWxsRGVmPlxyXG4gICAgQGlmKGN1c3RvbUNlbGw/LmNvbHVtbkRlZj8uZm9vdGVyQ2VsbCl7XHJcbiAgICAgIDxuZy1jb250YWluZXJcclxuICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21DZWxsIS5jb2x1bW5EZWYhLmZvb3RlckNlbGwudGVtcGxhdGU7IGNvbnRleHQ6IHttZXRhRGF0YTogbWV0YURhdGEsIGRhdGE6IGRhdGEkLCBzdHlsZXMgOiBzdHlsZXMuZm9vdGVyIH1cIi8+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgPG1hdC1mb290ZXItY2VsbCAgW3N0eWxlXT0nc3R5bGVzLmZvb3RlcicgKm5ncnhMZXQ9XCJkYXRhJCBhcyBkYXRhXCIgW2NsYXNzXT0nbWV0YURhdGEuYWRkaXRpb25hbD8uY29sdW1uUGFydENsYXNzZXM/LmZvb3Rlcic+XHJcbiAgICAgICAgQGlmKCEhZGF0YT8ubGVuZ3RoICYmIG1ldGFEYXRhLmFkZGl0aW9uYWw/LmZvb3Rlcil7XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImJvbGRcIj5cclxuICAgICAgICAgICAgQHN3aXRjaCAobWV0YURhdGEuZmllbGRUeXBlKSB7XHJcbiAgICAgICAgICAgICAgQGNhc2UgKEZpZWxkVHlwZS5DdXJyZW5jeSkgeyB7eyBkYXRhIHwgY29sdW1uVG90YWw6IG1ldGFEYXRhIHwgY3VycmVuY3kgfX0gfVxyXG4gICAgICAgICAgICAgIEBjYXNlIChGaWVsZFR5cGUuTnVtYmVyKSB7IHt7IGRhdGEgfCBjb2x1bW5Ub3RhbDogbWV0YURhdGEgfCBudW1iZXIgfX0gfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgPC9tYXQtZm9vdGVyLWNlbGw+XHJcbiAgICB9XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9jb2x1bW4tYnVpbGRlci9jb2x1bW4tYnVpbGRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2NvbHVtbi1idWlsZGVyL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQWUsU0FBUyxFQUFxQixRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxSSxPQUFPLEVBQW1CLFNBQVMsRUFBWSxNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRWpGLE9BQU8sRUFBdUIscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFD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WTtnQkFDSixZQUFZO3NCQUE5QixTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkLCBPbkluaXQsIFByZWRpY2F0ZSwgSW5qZWN0b3IsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQXJyYXlBZGRpdGlvbmFsLCBGaWVsZFR5cGUsIE1ldGFEYXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9yZXBvcnQtZGVmJztcclxuaW1wb3J0IHsgTWF0Q29sdW1uRGVmLCBNYXRUYWJsZSwgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ3VzdG9tQ2VsbERpcmVjdGl2ZSwgUmVzaXplQ29sdW1uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IEZpbHRlckluZm8gfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcclxuaW1wb3J0IHsgVHJhbnNmb3JtQ3JlYXRvciB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RyYW5zZm9ybS1jcmVhdG9yJztcclxuaW1wb3J0IHsgVGFibGVTdG9yZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvdGFibGUtc3RvcmUnO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFRhYmxlVGVtcGxhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGFibGUtdGVtcGxhdGUtc2VydmljZSc7XHJcbmltcG9ydCB7IENka0Ryb3BMaXN0LCBDREtfRFJPUF9MSVNULCBEcmFnRHJvcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kcmFnLWRyb3AnO1xyXG5pbXBvcnQgeyBEaWN0aW9uYXJ5IH0gZnJvbSAnQG5ncngvZW50aXR5JztcclxuaW1wb3J0IHsgQXN5bmNQaXBlLCBDdXJyZW5jeVBpcGUsIERlY2ltYWxQaXBlLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29uZGl0aW9uYWxDbGFzc2VzRGlyZWN0aXZlLCBGdW5jdGlvblBpcGUsIFNwYWNlQ2FzZVBpcGUgfSBmcm9tICcuLi8uLi8uLi91dGlsaXRpZXMnO1xyXG5pbXBvcnQgeyBNYXRTb3J0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XHJcbmltcG9ydCB7IEhlYWRlck1lbnVDb21wb25lbnQgfSBmcm9tICcuLi9oZWFkZXItbWVudS9oZWFkZXItbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IExldERpcmVjdGl2ZSB9IGZyb20gJ0BuZ3J4L2NvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbHVtblRvdGFsUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzL2NvbHVtbi10b3RhbC5waXBlJztcclxuaW1wb3J0IHsgU3R5bGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzL2RpcmVjdGl2ZXMvc3R5bGVyJztcclxuaW1wb3J0IHsgY29sdW1uU3R5bGVzIH0gZnJvbSAnLi9jb2x1bW4taGVscGVycyc7XHJcbmltcG9ydCB7IFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9UYWJsZUJ1aWxkZXJDb25maWcnO1xyXG5pbXBvcnQgeyBMaW5rSW5mbyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpbmstY3JlYXRvci5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICB0ZW1wbGF0ZVVybDogJy4vY29sdW1uLWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NvbHVtbi1idWlsZGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgdmlld1Byb3ZpZGVyczogW1xyXG4gICAgeyBwcm92aWRlOiBDREtfRFJPUF9MSVNULCB1c2VFeGlzdGluZzogQ2RrRHJvcExpc3QgfSxcclxuICBdLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgTWF0VGFibGVNb2R1bGUsIE5nVGVtcGxhdGVPdXRsZXQsIFJlc2l6ZUNvbHVtbkRpcmVjdGl2ZSwgRnVuY3Rpb25QaXBlLCBTdHlsZXJEaXJlY3RpdmUsXHJcbiAgICBDb25kaXRpb25hbENsYXNzZXNEaXJlY3RpdmUsIERyYWdEcm9wTW9kdWxlLCBNYXRTb3J0TW9kdWxlLCBTcGFjZUNhc2VQaXBlLCBIZWFkZXJNZW51Q29tcG9uZW50LFxyXG4gICAgQXN5bmNQaXBlLCBNYXRUb29sdGlwTW9kdWxlLCBMZXREaXJlY3RpdmUsIENvbHVtblRvdGFsUGlwZSwgQ3VycmVuY3lQaXBlLCBEZWNpbWFsUGlwZVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbHVtbkJ1aWxkZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHByaXZhdGUgdHJhbnNmb3JtQ3JlYXRvciA9IGluamVjdChUcmFuc2Zvcm1DcmVhdG9yKTtcclxuICBwcml2YXRlIHRhYmxlID0gaW5qZWN0PE1hdFRhYmxlPGFueT4+KE1hdFRhYmxlKTtcclxuICBwcml2YXRlIHN0YXRlID0gaW5qZWN0KFRhYmxlU3RvcmUpO1xyXG4gIHByaXZhdGUgdGVtcGxhdGVTZXJ2aWNlID0gaW5qZWN0KFRhYmxlVGVtcGxhdGVTZXJ2aWNlKTtcclxuICBwcm90ZWN0ZWQgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG5cclxuICBAVmlld0NoaWxkKE1hdENvbHVtbkRlZikgY29sdW1uRGVmITogTWF0Q29sdW1uRGVmO1xyXG4gIEBWaWV3Q2hpbGQoJ2JvZHknKSBib2R5VGVtcGxhdGUhOiBUZW1wbGF0ZVJlZjxhbnk+O1xyXG4gIHRhYmxlQ29uZmlnID0gaW5qZWN0KFRhYmxlQnVpbGRlckNvbmZpZ1Rva2VuKTtcclxuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XHJcbiAgZmlsdGVyITogUGFydGlhbDxGaWx0ZXJJbmZvPjtcclxuICBfbWV0YURhdGEhOiBNZXRhRGF0YTtcclxuICBnZXQgbWV0YURhdGEoKXtcclxuICAgIHJldHVybiB0aGlzLl9tZXRhRGF0YTtcclxuICB9XHJcbiAgc2V0IG1ldGFEYXRhKG1kOiBNZXRhRGF0YSl7XHJcbiAgICBpZih0aGlzLm1ldGFEYXRhICYmIHRoaXMubWV0YURhdGEuZmllbGRUeXBlICE9PSBtZC5maWVsZFR5cGUpe1xyXG4gICAgICB0aGlzLl9tZXRhRGF0YSA9IG1kO1xyXG4gICAgICB0aGlzLmluaXRpYWxTZXRVcCgpO1xyXG4gICAgICB0aGlzLmZ1cnRoZXJTZXRVcCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5fbWV0YURhdGEgPSBtZDtcclxuICAgIH1cclxuICB9XHJcbiAgY3VzdG9tQ2VsbD86IEN1c3RvbUNlbGxEaXJlY3RpdmUgPSB1bmRlZmluZWQ7XHJcbiAgZGF0YSQhOiBPYnNlcnZhYmxlPGFueVtdPjtcclxuXHJcbiAgb3V0ZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgaW5uZXJUZW1wbGF0ZSE6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgdHJhbnNmb3JtITogKG86IGFueSwgLi4uYXJnczogYW55W10pPT4gYW55IDtcclxuXHJcbiAgZ2V0SW5uZXJUZW1wbGF0ZSgpIDpUZW1wbGF0ZVJlZjxhbnk+IHtcclxuICAgIGlmKHRoaXMubWV0YURhdGEudGVtcGxhdGUpIHJldHVybiB0aGlzLm1ldGFEYXRhLnRlbXBsYXRlO1xyXG4gICAgaWYgKHRoaXMuY3VzdG9tQ2VsbD8uVGVtcGxhdGVSZWYpICByZXR1cm4gdGhpcy5jdXN0b21DZWxsLlRlbXBsYXRlUmVmO1xyXG4gICAgcmV0dXJuIHRoaXMudGVtcGxhdGVTZXJ2aWNlLmdldFRlbXBsYXRlKHRoaXMubWV0YURhdGEpO1xyXG4gIH1cclxuICBzaG93RmlsdGVycyQhOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gIGdldE91dGVyVGVtcGxhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXN0b21DZWxsPy5jb2x1bW5EZWY/LmNlbGw/LnRlbXBsYXRlID8/IHRoaXMuYm9keVRlbXBsYXRlO1xyXG4gIH1cclxuICBjbGFzc2VzPzogRGljdGlvbmFyeTxQcmVkaWNhdGU8YW55Pj47XHJcbiAgc3R5bGVzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIGNvbHVtblN0eWxlcyh0aGlzLm1ldGFEYXRhLCB0aGlzLnN0YXRlLiRnZXRVc2VyRGVmaW5lZFdpZHRoKHRoaXMubWV0YURhdGEua2V5KSgpLCB0aGlzLnN0YXRlLnRhYmxlU2V0dGluZ3NNaW5XaWR0aCgpKTtcclxuICB9KVxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pbml0aWFsU2V0VXAoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmlld0luaXRlZCA9IGZhbHNlO1xyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuZnVydGhlclNldFVwKCk7XHJcbiAgICB0aGlzLnRhYmxlLmFkZENvbHVtbkRlZih0aGlzLmNvbHVtbkRlZik7XHJcbiAgICB0aGlzLm9uVmlld0luaXQoKTtcclxuICAgIHRoaXMudmlld0luaXRlZCA9IHRydWU7XHJcbiAgfVxyXG4gIHByaXZhdGUgb25WaWV3SW5pdDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIHdoZW5WaWV3SW5pdGVkID0gKGNhbGxiYWNrOiAoKSA9PiB2b2lkKSA9PiB7XHJcbiAgICBpZih0aGlzLnZpZXdJbml0ZWQpIHtcclxuICAgICAgY2FsbGJhY2soKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblZpZXdJbml0ID0gY2FsbGJhY2s7XHJcbiAgfVxyXG5cclxuICBpbml0aWFsU2V0VXAoKXtcclxuICAgIGlmKHRoaXMubWV0YURhdGEuZmllbGRUeXBlID09PSBGaWVsZFR5cGUuQ3VycmVuY3kpIHtcclxuICAgICAgdGhpcy5jbGFzc2VzID0ge1xyXG4gICAgICAgIFsnbmVnYXRpdmUtY3VycmVuY3knXTogKGVsZW1lbnQpID0+IGVsZW1lbnRbdGhpcy5tZXRhRGF0YS5rZXldIDwgMCxcclxuICAgICAgICAuLi50aGlzLm1ldGFEYXRhLmNsYXNzZXNcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuY2xhc3NlcyA9IHRoaXMubWV0YURhdGEuY2xhc3NlcztcclxuICAgIH1cclxuICAgIHRoaXMuZmlsdGVyID0ge2tleTogdGhpcy5tZXRhRGF0YS5rZXksIGZpZWxkVHlwZTogdGhpcy5tZXRhRGF0YS5maWVsZFR5cGV9O1xyXG5cclxuICAgIHRoaXMuc2hvd0ZpbHRlcnMkID0gdGhpcy5zdGF0ZS50YWJsZVNldHRpbmdzJC5waXBlKG1hcChzZXR0aW5ncyA9PiAhKHNldHRpbmdzLmhpZGVDb2x1bW5IZWFkZXJGaWx0ZXJzIHx8IHRoaXMubWV0YURhdGEubm9GaWx0ZXIpKSk7XHJcbiAgICB0aGlzLmFkZGl0aW9uYWwgPSB0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkxpbmtcclxuICAgICAgPyB0aGlzLnN0YXRlLmdldExpbmtJbmZvKHRoaXMubWV0YURhdGEpKClcclxuICAgICAgOlxyXG4gICAgICB0aGlzLm1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLkFycmF5XHJcbiAgICAgID8gKHRoaXMubWV0YURhdGEuYWRkaXRpb25hbCBhcyBBcnJheUFkZGl0aW9uYWwpPy5saW1pdCB8fCB0aGlzLnRhYmxlQ29uZmlnPy5hcnJheURlZmF1bHRzPy5hcnJheVN0eWxlXHJcbiAgICAgIDogdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgZnVydGhlclNldFVwKCl7XHJcbiAgICB0aGlzLm91dGVyVGVtcGxhdGUgPSB0aGlzLmdldE91dGVyVGVtcGxhdGUoKTtcclxuICAgIHRoaXMuaW5uZXJUZW1wbGF0ZSA9IHRoaXMuZ2V0SW5uZXJUZW1wbGF0ZSgpO1xyXG4gICAgdGhpcy50cmFuc2Zvcm0gPSB0aGlzLnRyYW5zZm9ybUNyZWF0b3IuY3JlYXRlVHJhbnNmb3JtZXIodGhpcy5tZXRhRGF0YSk7XHJcbiAgfVxyXG5cclxuICBjZWxsQ2xpY2tlZChlbGVtZW50OiBhbnksIGtleTogc3RyaW5nKSB7XHJcbiAgICBpZih0aGlzLm1ldGFEYXRhLmNsaWNrKSB7XHJcbiAgICAgIHRoaXMubWV0YURhdGEuY2xpY2soZWxlbWVudCxrZXkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0VG9vbHRpcCA9IChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgIGlmKHR5cGVvZiB0aGlzLm1ldGFEYXRhLnRvb2xUaXAgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1ldGFEYXRhLnRvb2xUaXA7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5tZXRhRGF0YS50b29sVGlwIShlbGVtZW50KTtcclxuICB9XHJcblxyXG4gIGFkZGl0aW9uYWw6IExpbmtJbmZvIHwgbnVtYmVyIHwgdW5kZWZpbmVkO1xyXG59XHJcbiIsIjxuZy1jb250YWluZXIgW21hdENvbHVtbkRlZl09XCJtZXRhRGF0YS5rZXlcIiAqbmdyeExldD1cInN0eWxlcygpIGFzIHN0eWxlc1wiID5cclxuXHJcbiAgPCEtLSBoZWFkZXIgLS0+XHJcbiAgPG5nLXRlbXBsYXRlIG1hdEhlYWRlckNlbGxEZWYgI215SGVhZGVyPlxyXG4gICAgPG1hdC1oZWFkZXItY2VsbCBjZGtEcmFnIFtzdHlsZV09J3N0eWxlcy5oZWFkZXInIHJlc2l6ZUNvbHVtbiBba2V5XT1cIm1ldGFEYXRhLmtleVwiIGNsYXNzPVwiY29sdW1uLWhlYWRcIlxyXG4gICAgICBbY2xhc3NdPSdtZXRhRGF0YS5hZGRpdGlvbmFsPy5jb2x1bW5QYXJ0Q2xhc3Nlcz8uaGVhZGVyJz5cclxuICAgICAgPGRpdiBjbGFzcz1cImhlYWRlci1jb250YWluZXJcIiBjZGtEcmFnSGFuZGxlPlxyXG4gICAgICAgIEBpZighY3VzdG9tQ2VsbD8uY29sdW1uRGVmPy5oZWFkZXJDZWxsKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgQGlmKG1ldGFEYXRhLmZpZWxkVHlwZSAhPT0gRmllbGRUeXBlLk5vdE1hcHBlZCl7XHJcbiAgICAgICAgICAgICAgPGRpdiBtYXQtc29ydC1oZWFkZXIgW2Rpc2FibGVkXT1cIm1ldGFEYXRhLm5vU29ydFwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj5cclxuICAgICAgICAgICAgICAgIHt7IG1ldGFEYXRhLmRpc3BsYXlOYW1lID8gIG1ldGFEYXRhLmRpc3BsYXlOYW1lIDogKCBtZXRhRGF0YS5rZXkgfCBzcGFjZUNhc2UgKSB9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9IEBlbHNlIGlmKG1ldGFEYXRhLmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLk5vdE1hcHBlZCl7XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XHJcbiAgICAgICAgICAgICAgICB7eyBtZXRhRGF0YS5kaXNwbGF5TmFtZSA/ICBtZXRhRGF0YS5kaXNwbGF5TmFtZSA6ICggbWV0YURhdGEua2V5IHwgc3BhY2VDYXNlICkgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYoKHNob3dGaWx0ZXJzJCB8IGFzeW5jKSl7XHJcbiAgICAgICAgICAgICAgPHRiLWhlYWRlci1tZW51ICNtZW51IFttZXRhRGF0YV09J21ldGFEYXRhJyAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIEBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImN1c3RvbUNlbGwhLmNvbHVtbkRlZiEuaGVhZGVyQ2VsbC50ZW1wbGF0ZTsgY29udGV4dDoge21ldGFEYXRhOiBtZXRhRGF0YSwgc3R5bGVzOiAgc3R5bGVzLmhlYWRlcn0gXCI+XHJcbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICB9XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9tYXQtaGVhZGVyLWNlbGw+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgPCEtLSBib2R5IC0tPlxyXG4gIDxuZy1jb250YWluZXIgKm1hdENlbGxEZWY9XCJsZXQgZWxlbWVudDtcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvdXRlclRlbXBsYXRlOyBjb250ZXh0OiB7IG1ldGFEYXRhOiBtZXRhRGF0YSwgZWxlbWVudDogZWxlbWVudCAsIHN0eWxlczogc3R5bGVzLmJvZHksICRpbXBsaWNpdDogZWxlbWVudCB9XCIvPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy10ZW1wbGF0ZSAjYm9keSBsZXQtZWxlbWVudD0nZWxlbWVudCcgPlxyXG4gICAgPG1hdC1jZWxsICBbbWF0VG9vbHRpcF09XCJtZXRhRGF0YS50b29sVGlwID8gKGdldFRvb2x0aXAgfCBmdW5jIDogZWxlbWVudCkgOiAnJ1wiICBbY29uZGl0aW9uYWxDbGFzc2VzXT0nbWV0YURhdGEuY2xhc3NlcycgW2VsZW1lbnRdPSdlbGVtZW50JyBbc3R5bGVyXT0nc3R5bGVzLmJvZHknIChjbGljayk9J2NlbGxDbGlja2VkKGVsZW1lbnQsIG1ldGFEYXRhLmtleSknID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVyVGVtcGxhdGU7IGNvbnRleHQ6IHsgdmFsdWU6ICh0cmFuc2Zvcm0gfCBmdW5jIDogZWxlbWVudCksIGVsZW1lbnQ6IGVsZW1lbnQsIGFkZGl0aW9uYWw6IGFkZGl0aW9uYWwsICRpbXBsaWNpdDogZWxlbWVudCB9OyBJbmplY3RvcjogaW5qZWN0b3JcIiAvPlxyXG4gICAgPC9tYXQtY2VsbD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8IS0tIGZvb3RlciAtLT5cclxuICA8bmctdGVtcGxhdGUgbWF0Rm9vdGVyQ2VsbERlZj5cclxuICAgIEBpZihjdXN0b21DZWxsPy5jb2x1bW5EZWY/LmZvb3RlckNlbGwpe1xyXG4gICAgICA8bmctY29udGFpbmVyXHJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiY3VzdG9tQ2VsbCEuY29sdW1uRGVmIS5mb290ZXJDZWxsLnRlbXBsYXRlOyBjb250ZXh0OiB7bWV0YURhdGE6IG1ldGFEYXRhLCBkYXRhOiBkYXRhJCwgc3R5bGVzIDogc3R5bGVzLmZvb3RlciB9XCIvPlxyXG4gICAgfSBAZWxzZSB7XHJcbiAgICAgIDxtYXQtZm9vdGVyLWNlbGwgIFtzdHlsZV09J3N0eWxlcy5mb290ZXInICpuZ3J4TGV0PVwiZGF0YSQgYXMgZGF0YVwiIFtjbGFzc109J21ldGFEYXRhLmFkZGl0aW9uYWw/LmNvbHVtblBhcnRDbGFzc2VzPy5mb290ZXInPlxyXG4gICAgICAgIEBpZighIWRhdGE/Lmxlbmd0aCAmJiBtZXRhRGF0YS5hZGRpdGlvbmFsPy5mb290ZXIpe1xyXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2xkXCI+XHJcbiAgICAgICAgICAgIEBzd2l0Y2ggKG1ldGFEYXRhLmZpZWxkVHlwZSkge1xyXG4gICAgICAgICAgICAgIEBjYXNlIChGaWVsZFR5cGUuQ3VycmVuY3kpIHsge3sgZGF0YSB8IGNvbHVtblRvdGFsOiBtZXRhRGF0YSB8IGN1cnJlbmN5IH19IH1cclxuICAgICAgICAgICAgICBAY2FzZSAoRmllbGRUeXBlLk51bWJlcikgeyB7eyBkYXRhIHwgY29sdW1uVG90YWw6IG1ldGFEYXRhIHwgbnVtYmVyIH19IH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgIDwvbWF0LWZvb3Rlci1jZWxsPlxyXG4gICAgfVxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -14,16 +14,16 @@ export class DateFilterComponent {
|
|
|
14
14
|
info;
|
|
15
15
|
CurrentFilterType;
|
|
16
16
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DateFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: DateFilterComponent, isStandalone: true, selector: "tb-date-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "@if (CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull) {\r\n <mat-form-field>\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\r\n <mat-datepicker-toggle class=\"small-button date-toggle\" matSuffix [for]=\"cal\" preventEnter />\r\n <mat-datepicker #cal />\r\n </mat-form-field>\r\n}\r\n@if(CurrentFilterType === FilterType.DateBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <mat-form-field class=\"my-filter\" >\r\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\r\n (click)=\"fromVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"fromVal\" preventEnter />\r\n <mat-datepicker #fromVal></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"toVal\" preventEnter />\r\n <mat-datepicker #toVal />\r\n </mat-form-field>\r\n </ng-container>\r\n}\r\n\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: DateFilterComponent, isStandalone: true, selector: "tb-date-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "@if (CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull) {\r\n <mat-form-field>\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\r\n <mat-datepicker-toggle class=\"small-button date-toggle\" matSuffix [for]=\"cal\" preventEnter />\r\n <mat-datepicker #cal />\r\n </mat-form-field>\r\n}\r\n@if(CurrentFilterType === FilterType.DateBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <mat-form-field class=\"my-filter\" >\r\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\r\n (click)=\"fromVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"fromVal\" preventEnter />\r\n <mat-datepicker #fromVal></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"toVal\" preventEnter />\r\n <mat-datepicker #toVal />\r\n </mat-form-field>\r\n </ng-container>\r\n}\r\n\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.head-row{display:flex;width:100%;align-items:center;justify-content:space-between}.filter-row{display:flex;align-items:center;gap:1rem}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"], dependencies: [{ kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
18
18
|
}
|
|
19
19
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DateFilterComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
21
|
args: [{ selector: 'tb-date-filter', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], standalone: true, imports: [
|
|
22
22
|
MatInputModule, FormsModule, MatDatepickerModule, PreventEnterDirective
|
|
23
|
-
], template: "@if (CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull) {\r\n <mat-form-field>\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\r\n <mat-datepicker-toggle class=\"small-button date-toggle\" matSuffix [for]=\"cal\" preventEnter />\r\n <mat-datepicker #cal />\r\n </mat-form-field>\r\n}\r\n@if(CurrentFilterType === FilterType.DateBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <mat-form-field class=\"my-filter\" >\r\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\r\n (click)=\"fromVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"fromVal\" preventEnter />\r\n <mat-datepicker #fromVal></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"toVal\" preventEnter />\r\n <mat-datepicker #toVal />\r\n </mat-form-field>\r\n </ng-container>\r\n}\r\n\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.
|
|
23
|
+
], template: "@if (CurrentFilterType !== FilterType.DateBetween && CurrentFilterType !== FilterType.IsNull) {\r\n <mat-form-field>\r\n <input matInput name=\"filterValue\" [ngModel]=\"info.filterValue\" [matDatepicker]=\"cal\"/>\r\n <mat-datepicker-toggle class=\"small-button date-toggle\" matSuffix [for]=\"cal\" preventEnter />\r\n <mat-datepicker #cal />\r\n </mat-form-field>\r\n}\r\n@if(CurrentFilterType === FilterType.DateBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <mat-form-field class=\"my-filter\" >\r\n <input matInput name=\"Start\" [ngModel]=\"info.filterValue?.Start\" placeholder=\"From\" [matDatepicker]=\"fromVal\"\r\n (click)=\"fromVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"fromVal\" preventEnter />\r\n <mat-datepicker #fromVal></mat-datepicker>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <input matInput name=\"End\" [ngModel]=\"info.filterValue?.End\" placeholder=\"To\" [matDatepicker]=\"toVal\" (click)=\"toVal.open()\"/>\r\n <mat-datepicker-toggle matSuffix class=\"small-button date-toggle\" [for]=\"toVal\" preventEnter />\r\n <mat-datepicker #toVal />\r\n </mat-form-field>\r\n </ng-container>\r\n}\r\n\r\n", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.head-row{display:flex;width:100%;align-items:center;justify-content:space-between}.filter-row{display:flex;align-items:center;gap:1rem}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
|
|
24
24
|
}], propDecorators: { info: [{
|
|
25
25
|
type: Input
|
|
26
26
|
}], CurrentFilterType: [{
|
|
27
27
|
type: Input
|
|
28
28
|
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci11dGlsaXRpZXMvc3JjL3RhYmxlLWJ1aWxkZXIvY29tcG9uZW50cy9kYXRlLWZpbHRlci9kYXRlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtZmlsdGVyL2RhdGUtZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFFLE9BQU8sRUFBYyxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7Ozs7O0FBYTNELE1BQU0sT0FBTyxtQkFBbUI7SUFDNUIsVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUNoQixJQUFJLENBQWlCO0lBQ3JCLGlCQUFpQixDQUFjO3VHQUgvQixtQkFBbUI7MkZBQW5CLG1CQUFtQiw0SUNuQmhDLGd2Q0F1QkEsK3pCRFBRLGNBQWMsc3JCQUFFLFdBQVcsMDRCQUFFLG1CQUFtQix1ZkFIckMsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUM7OzJGQU14RCxtQkFBbUI7a0JBWC9CLFNBQVM7K0JBQ0ksZ0JBQWdCLG1CQUVULHVCQUF1QixDQUFDLE1BQU0saUJBRWhDLENBQUMsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDLGNBQ3JELElBQUksV0FDUDt3QkFDTCxjQUFjLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLHFCQUFxQjtxQkFDMUU7OEJBSVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhcnRpYWxGaWx0ZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2ZpbHRlci1pbmZvJztcclxuaW1wb3J0IHsgRmlsdGVyVHlwZSwgRmlsdGVyVHlwZXMgfSBmcm9tICcuLi8uLi9lbnVtcy9maWx0ZXJUeXBlcyc7XHJcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1zTW9kdWxlLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xyXG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IFByZXZlbnRFbnRlckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGItZGF0ZS1maWx0ZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4uL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIHZpZXdQcm92aWRlcnM6IFt7cHJvdmlkZTogQ29udHJvbENvbnRhaW5lciwgdXNlRXhpc3Rpbmc6IE5nRm9ybX1dLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBNYXRJbnB1dE1vZHVsZSwgRm9ybXNNb2R1bGUsIE1hdERhdGVwaWNrZXJNb2R1bGUsIFByZXZlbnRFbnRlckRpcmVjdGl2ZVxyXG4gICAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZUZpbHRlckNvbXBvbmVudCB7XHJcbiAgICBGaWx0ZXJUeXBlID0gRmlsdGVyVHlwZXM7XHJcbiAgICBASW5wdXQoKSBpbmZvITogUGFydGlhbEZpbHRlcjtcclxuICAgIEBJbnB1dCgpIEN1cnJlbnRGaWx0ZXJUeXBlITogRmlsdGVyVHlwZTtcclxufVxyXG4iLCJAaWYgKEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLkRhdGVCZXR3ZWVuICYmIEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLklzTnVsbCkge1xyXG4gIDxtYXQtZm9ybS1maWVsZD5cclxuICAgIDxpbnB1dCBtYXRJbnB1dCBuYW1lPVwiZmlsdGVyVmFsdWVcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlXCIgW21hdERhdGVwaWNrZXJdPVwiY2FsXCIvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBjbGFzcz1cInNtYWxsLWJ1dHRvbiBkYXRlLXRvZ2dsZVwiIG1hdFN1ZmZpeCBbZm9yXT1cImNhbFwiIHByZXZlbnRFbnRlciAvPlxyXG4gICAgPG1hdC1kYXRlcGlja2VyICNjYWwgLz5cclxuICA8L21hdC1mb3JtLWZpZWxkPlxyXG59XHJcbkBpZihDdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlQmV0d2Vlbil7XHJcbiAgPG5nLWNvbnRhaW5lciBuZ01vZGVsR3JvdXA9XCJmaWx0ZXJWYWx1ZVwiPlxyXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwibXktZmlsdGVyXCIgPlxyXG4gICAgICA8aW5wdXQgbWF0SW5wdXQgbmFtZT1cIlN0YXJ0XCIgW25nTW9kZWxdPVwiaW5mby5maWx0ZXJWYWx1ZT8uU3RhcnRcIiAgcGxhY2Vob2xkZXI9XCJGcm9tXCIgW21hdERhdGVwaWNrZXJdPVwiZnJvbVZhbFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiZnJvbVZhbC5vcGVuKClcIi8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IGNsYXNzPVwic21hbGwtYnV0dG9uIGRhdGUtdG9nZ2xlXCIgW2Zvcl09XCJmcm9tVmFsXCIgcHJldmVudEVudGVyIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjZnJvbVZhbD48L21hdC1kYXRlcGlja2VyPlxyXG4gICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDxtYXQtZm9ybS1maWVsZD5cclxuICAgICAgPGlucHV0IG1hdElucHV0IG5hbWU9XCJFbmRcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5FbmRcIiAgcGxhY2Vob2xkZXI9XCJUb1wiIFttYXREYXRlcGlja2VyXT1cInRvVmFsXCIgKGNsaWNrKT1cInRvVmFsLm9wZW4oKVwiLz5cclxuICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggY2xhc3M9XCJzbWFsbC1idXR0b24gZGF0ZS10b2dnbGVcIiBbZm9yXT1cInRvVmFsXCIgcHJldmVudEVudGVyIC8+XHJcbiAgICAgIDxtYXQtZGF0ZXBpY2tlciAjdG9WYWwgLz5cclxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbn1cclxuXHJcbiJdfQ==
|
|
@@ -9,16 +9,16 @@ export class DateTimeFilterComponent {
|
|
|
9
9
|
info;
|
|
10
10
|
CurrentFilterType;
|
|
11
11
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DateTimeFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
12
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: DateTimeFilterComponent, isStandalone: true, selector: "tb-date-time-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "@if(CurrentFilterType !== FilterType.DateTimeBetween && CurrentFilterType !== FilterType.IsNull){\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue\" preventEnter name=\"filterValue\" class=\"op-date-time-input\"/>\r\n}\r\n@if(CurrentFilterType === FilterType.DateTimeBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.Start\" preventEnter name=\"Start\" class=\"op-date-time-input\"/>\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.End\" preventEnter name=\"End\" class=\"op-date-time-input\"/>\r\n </ng-container>\r\n}", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.
|
|
12
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.2", type: DateTimeFilterComponent, isStandalone: true, selector: "tb-date-time-filter", inputs: { info: "info", CurrentFilterType: "CurrentFilterType" }, ngImport: i0, template: "@if(CurrentFilterType !== FilterType.DateTimeBetween && CurrentFilterType !== FilterType.IsNull){\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue\" preventEnter name=\"filterValue\" class=\"op-date-time-input\"/>\r\n}\r\n@if(CurrentFilterType === FilterType.DateTimeBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.Start\" preventEnter name=\"Start\" class=\"op-date-time-input\"/>\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.End\" preventEnter name=\"End\" class=\"op-date-time-input\"/>\r\n </ng-container>\r\n}", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.head-row{display:flex;width:100%;align-items:center;justify-content:space-between}.filter-row{display:flex;align-items:center;gap:1rem}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i1.NgModelGroup, selector: "[ngModelGroup]", inputs: ["ngModelGroup"], exportAs: ["ngModelGroup"] }], viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
13
13
|
}
|
|
14
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.2", ngImport: i0, type: DateTimeFilterComponent, decorators: [{
|
|
15
15
|
type: Component,
|
|
16
16
|
args: [{ selector: 'tb-date-time-filter', changeDetection: ChangeDetectionStrategy.OnPush, viewProviders: [{ provide: ControlContainer, useExisting: NgForm }], standalone: true, imports: [
|
|
17
17
|
FormsModule, PreventEnterDirective
|
|
18
|
-
], template: "@if(CurrentFilterType !== FilterType.DateTimeBetween && CurrentFilterType !== FilterType.IsNull){\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue\" preventEnter name=\"filterValue\" class=\"op-date-time-input\"/>\r\n}\r\n@if(CurrentFilterType === FilterType.DateTimeBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.Start\" preventEnter name=\"Start\" class=\"op-date-time-input\"/>\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.End\" preventEnter name=\"End\" class=\"op-date-time-input\"/>\r\n </ng-container>\r\n}", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.
|
|
18
|
+
], template: "@if(CurrentFilterType !== FilterType.DateTimeBetween && CurrentFilterType !== FilterType.IsNull){\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue\" preventEnter name=\"filterValue\" class=\"op-date-time-input\"/>\r\n}\r\n@if(CurrentFilterType === FilterType.DateTimeBetween){\r\n <ng-container ngModelGroup=\"filterValue\">\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.Start\" preventEnter name=\"Start\" class=\"op-date-time-input\"/>\r\n <input type=\"datetime-local\" [ngModel]=\"info.filterValue?.End\" preventEnter name=\"End\" class=\"op-date-time-input\"/>\r\n </ng-container>\r\n}", styles: [".filter-name{color:#6495ed;margin:10px 0;font-weight:600;display:inline-block}.switch{display:inline-block}.head-row{display:flex;width:100%;align-items:center;justify-content:space-between}.filter-row{display:flex;align-items:center;gap:1rem}mat-card.filter-card::ng-deep mat-form-field{width:150px}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper{line-height:0}mat-card.filter-card::ng-deep .mat-mdc-form-field-subscript-wrapper:before{height:0}.inline{display:inline-block}.small-button{height:18px;width:18px;font-size:18px;padding:0;margin:0}.small-button ::ng-deep *{line-height:initial;font-size:initial;height:18px;width:18px;font-size:18px;bottom:initial}.cancel-button{font-weight:700}.date-toggle ::ng-deep svg{position:absolute;left:0;top:0}\n"] }]
|
|
19
19
|
}], propDecorators: { info: [{
|
|
20
20
|
type: Input
|
|
21
21
|
}], CurrentFilterType: [{
|
|
22
22
|
type: Input
|
|
23
23
|
}] } });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtdGltZS1maWx0ZXIvZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLXV0aWxpdGllcy9zcmMvdGFibGUtYnVpbGRlci9jb21wb25lbnRzL2RhdGUtdGltZS1maWx0ZXIvZGF0ZS10aW1lLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBYTNELE1BQU0sT0FBTyx1QkFBdUI7SUFDbEMsVUFBVSxHQUFHLFdBQVcsQ0FBQztJQUNoQixJQUFJLENBQWlCO0lBQ3JCLGlCQUFpQixDQUFjO3VHQUg3Qix1QkFBdUI7MkZBQXZCLHVCQUF1QixpSkNqQnBDLDJuQkFRQywrekJETUcsV0FBVyxnNEJBSEUsQ0FBQyxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFDLENBQUM7OzJGQU10RCx1QkFBdUI7a0JBWG5DLFNBQVM7K0JBQ0UscUJBQXFCLG1CQUVkLHVCQUF1QixDQUFDLE1BQU0saUJBRWhDLENBQUMsRUFBQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBQyxDQUFDLGNBQ3JELElBQUksV0FDUDt3QkFDUCxXQUFXLEVBQUUscUJBQXFCO3FCQUNuQzs4QkFJUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUGFydGlhbEZpbHRlciB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZmlsdGVyLWluZm8nO1xyXG5pbXBvcnQgeyBGaWx0ZXJUeXBlLCBGaWx0ZXJUeXBlcyB9IGZyb20gJy4uLy4uL2VudW1zL2ZpbHRlclR5cGVzJztcclxuaW1wb3J0IHsgQ29udHJvbENvbnRhaW5lciwgRm9ybXNNb2R1bGUsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUHJldmVudEVudGVyRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbGl0aWVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndGItZGF0ZS10aW1lLWZpbHRlcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtdGltZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0eWxlVXJsczogWycuLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgdmlld1Byb3ZpZGVyczogW3twcm92aWRlOiBDb250cm9sQ29udGFpbmVyLCB1c2VFeGlzdGluZzogTmdGb3JtfV0sXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBGb3Jtc01vZHVsZSwgUHJldmVudEVudGVyRGlyZWN0aXZlXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVGaWx0ZXJDb21wb25lbnQge1xyXG4gIEZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlcztcclxuICBASW5wdXQoKSBpbmZvITogUGFydGlhbEZpbHRlcjtcclxuICBASW5wdXQoKSBDdXJyZW50RmlsdGVyVHlwZSE6IEZpbHRlclR5cGU7XHJcbn1cclxuIiwiQGlmKEN1cnJlbnRGaWx0ZXJUeXBlICE9PSBGaWx0ZXJUeXBlLkRhdGVUaW1lQmV0d2VlbiAmJiBDdXJyZW50RmlsdGVyVHlwZSAhPT0gRmlsdGVyVHlwZS5Jc051bGwpe1xyXG4gIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlXCIgcHJldmVudEVudGVyIG5hbWU9XCJmaWx0ZXJWYWx1ZVwiIGNsYXNzPVwib3AtZGF0ZS10aW1lLWlucHV0XCIvPlxyXG59XHJcbkBpZihDdXJyZW50RmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5EYXRlVGltZUJldHdlZW4pe1xyXG4gIDxuZy1jb250YWluZXIgbmdNb2RlbEdyb3VwPVwiZmlsdGVyVmFsdWVcIj5cclxuICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5TdGFydFwiIHByZXZlbnRFbnRlciBuYW1lPVwiU3RhcnRcIiBjbGFzcz1cIm9wLWRhdGUtdGltZS1pbnB1dFwiLz5cclxuICAgIDxpbnB1dCB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIiBbbmdNb2RlbF09XCJpbmZvLmZpbHRlclZhbHVlPy5FbmRcIiBwcmV2ZW50RW50ZXIgbmFtZT1cIkVuZFwiIGNsYXNzPVwib3AtZGF0ZS10aW1lLWlucHV0XCIvPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG59Il19
|