@guiexpert/table 1.0.11 → 1.0.13
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/README.md +3 -3
- package/index.cjs +314 -0
- package/index.js +3721 -0
- package/lib/table/data/tablemodel/areamodel/async-area-model-object-array.d.ts +28 -0
- package/package.json +14 -13
- package/esm2022/guiexpert-table.mjs +0 -5
- package/esm2022/index.mjs +0 -140
- package/esm2022/lib/table/action/action-id.type.mjs +0 -20
- package/esm2022/lib/table/action/on-action-triggered.if.mjs +0 -2
- package/esm2022/lib/table/action/osx-shortcut-actionId-mapping.mjs +0 -21
- package/esm2022/lib/table/action/shortcut-actionid-mapping.type.mjs +0 -2
- package/esm2022/lib/table/action/shortcut.service.mjs +0 -114
- package/esm2022/lib/table/action/windows-shortcut-actionId-mapping.mjs +0 -19
- package/esm2022/lib/table/checkbox/checkbox-model.if.mjs +0 -2
- package/esm2022/lib/table/checkbox/checkbox-model.mjs +0 -50
- package/esm2022/lib/table/checkbox/tree-checkbox-model.mjs +0 -107
- package/esm2022/lib/table/color/color-rgb.if.mjs +0 -2
- package/esm2022/lib/table/color/color-rgb.mjs +0 -11
- package/esm2022/lib/table/color/ge-css-color-util.mjs +0 -26
- package/esm2022/lib/table/color/three-color-gradient-arg.if.mjs +0 -2
- package/esm2022/lib/table/color/three-color-gradient-arg.mjs +0 -17
- package/esm2022/lib/table/color/two-color-gradient-arg.if.mjs +0 -2
- package/esm2022/lib/table/color/two-color-gradient-arg.mjs +0 -13
- package/esm2022/lib/table/css-vars.mjs +0 -238
- package/esm2022/lib/table/data/chunk/chunk.data-event.if.mjs +0 -2
- package/esm2022/lib/table/data/chunk/chunk.data-event.mjs +0 -12
- package/esm2022/lib/table/data/chunk/request-chunk.if.mjs +0 -2
- package/esm2022/lib/table/data/chunk/request-chunk.mjs +0 -22
- package/esm2022/lib/table/data/common/aligns.mjs +0 -19
- package/esm2022/lib/table/data/common/area-map-factory.mjs +0 -7
- package/esm2022/lib/table/data/common/area-map.mjs +0 -11
- package/esm2022/lib/table/data/common/area-map.type.mjs +0 -2
- package/esm2022/lib/table/data/common/args-adjust-columns-to-row-parent-params.mjs +0 -2
- package/esm2022/lib/table/data/common/args-render-cell-div.mjs +0 -2
- package/esm2022/lib/table/data/common/boolean-function.mjs +0 -3
- package/esm2022/lib/table/data/common/cell-range.mjs +0 -36
- package/esm2022/lib/table/data/common/checkbox-column-def.mjs +0 -13
- package/esm2022/lib/table/data/common/checked-type.mjs +0 -2
- package/esm2022/lib/table/data/common/event/ge-cell-indices.mjs +0 -9
- package/esm2022/lib/table/data/common/event/ge-key-event.mjs +0 -9
- package/esm2022/lib/table/data/common/event/ge-model-change-event.mjs +0 -11
- package/esm2022/lib/table/data/common/event/ge-mouse-event.mjs +0 -30
- package/esm2022/lib/table/data/common/event/input/table-cell-update-event.if.mjs +0 -2
- package/esm2022/lib/table/data/common/event/input/table-cell-update-event.mjs +0 -13
- package/esm2022/lib/table/data/common/filter-function.mjs +0 -2
- package/esm2022/lib/table/data/common/get-t.mjs +0 -2
- package/esm2022/lib/table/data/common/index-and-px.mjs +0 -9
- package/esm2022/lib/table/data/common/size.if.mjs +0 -2
- package/esm2022/lib/table/data/common/size.mjs +0 -9
- package/esm2022/lib/table/data/common/sizes.mjs +0 -33
- package/esm2022/lib/table/data/common/sort-item.mjs +0 -9
- package/esm2022/lib/table/data/common/sort-state.type.mjs +0 -2
- package/esm2022/lib/table/data/common/tree-arrow.type.mjs +0 -2
- package/esm2022/lib/table/data/common/tree-row-if.mjs +0 -2
- package/esm2022/lib/table/data/common/tree-row.mjs +0 -19
- package/esm2022/lib/table/data/common/value-label.if.mjs +0 -2
- package/esm2022/lib/table/data/common/value-label.mjs +0 -9
- package/esm2022/lib/table/data/div-scope.type.mjs +0 -2
- package/esm2022/lib/table/data/event/mouse-target-data.mjs +0 -36
- package/esm2022/lib/table/data/geo-data.mjs +0 -15
- package/esm2022/lib/table/data/options/auto-restore-options.if.mjs +0 -2
- package/esm2022/lib/table/data/options/auto-restore-options.mjs +0 -40
- package/esm2022/lib/table/data/options/default-row-heights.if.mjs +0 -2
- package/esm2022/lib/table/data/options/default-row-heights.mjs +0 -11
- package/esm2022/lib/table/data/options/icon.if.mjs +0 -2
- package/esm2022/lib/table/data/options/icon.mjs +0 -11
- package/esm2022/lib/table/data/options/sorted-options.if.mjs +0 -2
- package/esm2022/lib/table/data/options/sorted-options.mjs +0 -12
- package/esm2022/lib/table/data/options/table-options.if.mjs +0 -2
- package/esm2022/lib/table/data/options/table-options.mjs +0 -44
- package/esm2022/lib/table/data/options/tree-options.if.mjs +0 -2
- package/esm2022/lib/table/data/options/tree-options.mjs +0 -14
- package/esm2022/lib/table/data/side-ident.type.mjs +0 -2
- package/esm2022/lib/table/data/table-model-and-options.if.mjs +0 -2
- package/esm2022/lib/table/data/table-model-and-options.mjs +0 -9
- package/esm2022/lib/table/data/tablemodel/area-ident.type.mjs +0 -14
- package/esm2022/lib/table/data/tablemodel/areamodel/abstract-area-model.mjs +0 -137
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-array-of-arrays.mjs +0 -47
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-cell-groups.mjs +0 -163
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-hidden.mjs +0 -84
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array-with-columndefs.mjs +0 -15
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-object-array.mjs +0 -88
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model-tree.mjs +0 -181
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model.if.mjs +0 -2
- package/esm2022/lib/table/data/tablemodel/areamodel/area-model.mjs +0 -76
- package/esm2022/lib/table/data/tablemodel/areamodel/col-and-rowspan-model.mjs +0 -51
- package/esm2022/lib/table/data/tablemodel/areamodel/has-default-row-height-if.mjs +0 -2
- package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group-ext.mjs +0 -133
- package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.if.mjs +0 -2
- package/esm2022/lib/table/data/tablemodel/cellgroup/cell-group.mjs +0 -18
- package/esm2022/lib/table/data/tablemodel/cellgroup/cellgroup-factory.mjs +0 -110
- package/esm2022/lib/table/data/tablemodel/column/column-def.if.mjs +0 -2
- package/esm2022/lib/table/data/tablemodel/column/column-def.mjs +0 -52
- package/esm2022/lib/table/data/tablemodel/padding.mjs +0 -13
- package/esm2022/lib/table/data/tablemodel/table-model.if.mjs +0 -2
- package/esm2022/lib/table/data/tablemodel/table-model.mjs +0 -308
- package/esm2022/lib/table/ele-scope.mjs +0 -199
- package/esm2022/lib/table/event-adapter.mjs +0 -17
- package/esm2022/lib/table/event-listener.if.mjs +0 -2
- package/esm2022/lib/table/factory/table-factory.mjs +0 -186
- package/esm2022/lib/table/factory/tree-factory.mjs +0 -32
- package/esm2022/lib/table/focus/focus-model.if.mjs +0 -2
- package/esm2022/lib/table/focus/focus-model.mjs +0 -33
- package/esm2022/lib/table/focus/focus.type.mjs +0 -2
- package/esm2022/lib/table/input-handler.mjs +0 -25
- package/esm2022/lib/table/mouse-handler.mjs +0 -196
- package/esm2022/lib/table/render-scope.mjs +0 -719
- package/esm2022/lib/table/renderer/cell-group-ext-cell-renderer.mjs +0 -8
- package/esm2022/lib/table/renderer/cell-render.if.mjs +0 -2
- package/esm2022/lib/table/renderer/checkbox-boolean-property-cell-renderer.mjs +0 -47
- package/esm2022/lib/table/renderer/checkbox-cell-renderer.mjs +0 -22
- package/esm2022/lib/table/renderer/date-to-int-date-cell-renderer.mjs +0 -24
- package/esm2022/lib/table/renderer/date-to-iso-cell-renderer.mjs +0 -9
- package/esm2022/lib/table/renderer/date-to-locale-date-cell-renderer.mjs +0 -9
- package/esm2022/lib/table/renderer/date-to-tec-cell-renderer.mjs +0 -12
- package/esm2022/lib/table/renderer/edit/edit-cell-renderer.type.mjs +0 -2
- package/esm2022/lib/table/renderer/edit/edit-input-pipe-for-number.mjs +0 -4
- package/esm2022/lib/table/renderer/edit/edit-input-pipe.if.mjs +0 -2
- package/esm2022/lib/table/renderer/edit/input-cell-renderer.mjs +0 -23
- package/esm2022/lib/table/renderer/edit/select-cell-renderer.mjs +0 -36
- package/esm2022/lib/table/renderer/male-female-to-icon-cell-renderer.mjs +0 -12
- package/esm2022/lib/table/renderer/number-cell-renderer.mjs +0 -21
- package/esm2022/lib/table/renderer/progress-bar-cell-renderer.mjs +0 -44
- package/esm2022/lib/table/renderer/renderer-cleanup-fn.type.mjs +0 -2
- package/esm2022/lib/table/renderer/renderer.mjs +0 -7
- package/esm2022/lib/table/renderer/star-rating-cell-renderer.mjs +0 -27
- package/esm2022/lib/table/renderer/true-false-cell-renderer.mjs +0 -15
- package/esm2022/lib/table/selection/selection-model.if.mjs +0 -2
- package/esm2022/lib/table/selection/selection-model.mjs +0 -99
- package/esm2022/lib/table/selection/selection-service.mjs +0 -101
- package/esm2022/lib/table/selection/selection.type.mjs +0 -2
- package/esm2022/lib/table/service/abstract-store-state.service.mjs +0 -50
- package/esm2022/lib/table/service/convenience-dom.service.mjs +0 -405
- package/esm2022/lib/table/service/data/collapsed-expanded.data.mjs +0 -13
- package/esm2022/lib/table/service/data/html-style.type.mjs +0 -2
- package/esm2022/lib/table/service/dom-service.if.mjs +0 -2
- package/esm2022/lib/table/service/ge-filter.service.mjs +0 -98
- package/esm2022/lib/table/service/simple-dom-service.mjs +0 -34
- package/esm2022/lib/table/service/sorter.service.mjs +0 -27
- package/esm2022/lib/table/service/store-state-collapsed-expand.service.mjs +0 -57
- package/esm2022/lib/table/service/store-state-scroll-pos.service.mjs +0 -29
- package/esm2022/lib/table/service/store-state-sorting.service.mjs +0 -29
- package/esm2022/lib/table/service/tree-row.service.mjs +0 -23
- package/esm2022/lib/table/table-api.mjs +0 -42
- package/esm2022/lib/table/table-scope.mjs +0 -364
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { CellRange } from "../data/common/cell-range";
|
|
2
|
-
export class SelectionService {
|
|
3
|
-
tableScope;
|
|
4
|
-
getSelectionModel;
|
|
5
|
-
getFocusModel;
|
|
6
|
-
previousEvt;
|
|
7
|
-
constructor(tableScope) {
|
|
8
|
-
this.tableScope = tableScope;
|
|
9
|
-
if (this.tableScope.tableOptions?.getSelectionModel) {
|
|
10
|
-
this.getSelectionModel = this.tableScope.tableOptions.getSelectionModel;
|
|
11
|
-
}
|
|
12
|
-
if (this.tableScope.tableOptions?.getFocusModel) {
|
|
13
|
-
this.getFocusModel = this.tableScope.tableOptions.getFocusModel;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
onMouseClicked(evt, _previousEvt) {
|
|
17
|
-
let dirty = false;
|
|
18
|
-
let deletePreviousEvent = false;
|
|
19
|
-
if (this.getSelectionModel && this.getFocusModel) {
|
|
20
|
-
const sm = this.getSelectionModel();
|
|
21
|
-
const fm = this.getFocusModel();
|
|
22
|
-
if (sm && fm) {
|
|
23
|
-
// Focus:
|
|
24
|
-
if (!fm.hasFocus(evt.rowIndex, evt.columnIndex)) {
|
|
25
|
-
fm.setFocus(evt.rowIndex, evt.columnIndex);
|
|
26
|
-
dirty = true;
|
|
27
|
-
}
|
|
28
|
-
// Selection:
|
|
29
|
-
if (!evt.originalEvent?.shiftKey) {
|
|
30
|
-
if (sm.hasSelection()) {
|
|
31
|
-
sm.clear();
|
|
32
|
-
dirty = true;
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
if (evt.originalEvent?.shiftKey && this.previousEvt) {
|
|
36
|
-
sm.addSelection(this.createRangeByEvents(evt, this.previousEvt));
|
|
37
|
-
deletePreviousEvent = true;
|
|
38
|
-
dirty = true;
|
|
39
|
-
}
|
|
40
|
-
else if (evt.originalEvent?.ctrlKey || evt.originalEvent?.metaKey) {
|
|
41
|
-
sm.addSelection(CellRange.singleCell(evt.rowIndex, evt.columnIndex));
|
|
42
|
-
deletePreviousEvent = true;
|
|
43
|
-
dirty = true;
|
|
44
|
-
}
|
|
45
|
-
else if (evt.originalEvent?.altKey && (evt.originalEvent?.ctrlKey || evt.originalEvent?.metaKey)) {
|
|
46
|
-
sm.removeSelection(CellRange.singleCell(evt.rowIndex, evt.columnIndex));
|
|
47
|
-
deletePreviousEvent = true;
|
|
48
|
-
dirty = true;
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
if (deletePreviousEvent) {
|
|
53
|
-
this.previousEvt = undefined;
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
this.previousEvt = evt?.clone();
|
|
57
|
-
}
|
|
58
|
-
return dirty;
|
|
59
|
-
}
|
|
60
|
-
onActionTriggered(actionId) {
|
|
61
|
-
if (this.getSelectionModel && this.getFocusModel) {
|
|
62
|
-
const sm = this.getSelectionModel();
|
|
63
|
-
const fm = this.getFocusModel();
|
|
64
|
-
if (sm && fm) {
|
|
65
|
-
if (actionId === "SELECT_ALL") {
|
|
66
|
-
sm.selectAll();
|
|
67
|
-
this.tableScope.repaint();
|
|
68
|
-
return true;
|
|
69
|
-
}
|
|
70
|
-
if (actionId === "DESELECT_ALL") {
|
|
71
|
-
sm.clear();
|
|
72
|
-
this.tableScope.repaint();
|
|
73
|
-
return true;
|
|
74
|
-
}
|
|
75
|
-
if (actionId === "TOGGLE_SELECTION") {
|
|
76
|
-
const [row, col] = fm.getFocus();
|
|
77
|
-
sm.togglePoint(row, col);
|
|
78
|
-
this.tableScope.repaint();
|
|
79
|
-
return true;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return false;
|
|
84
|
-
}
|
|
85
|
-
createRangeByEvents(evt, previousEvt) {
|
|
86
|
-
if (!previousEvt) {
|
|
87
|
-
previousEvt = evt;
|
|
88
|
-
}
|
|
89
|
-
const r1 = Math.min(evt.rowIndex, previousEvt?.rowIndex);
|
|
90
|
-
const r2 = Math.max(evt.rowIndex, previousEvt?.rowIndex);
|
|
91
|
-
const c1 = Math.min(evt.columnIndex, previousEvt?.columnIndex);
|
|
92
|
-
const c2 = Math.max(evt.columnIndex, previousEvt?.columnIndex);
|
|
93
|
-
return CellRange.create({
|
|
94
|
-
rowIndex1: r1,
|
|
95
|
-
columnIndex1: c1,
|
|
96
|
-
rowIndex2: r2,
|
|
97
|
-
columnIndex2: c2
|
|
98
|
-
});
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLXNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvc2VsZWN0aW9uL3NlbGVjdGlvbi1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUt0RCxNQUFNLE9BQU8sZ0JBQWdCO0lBUU47SUFOWCxpQkFBaUIsQ0FBMEI7SUFDM0MsYUFBYSxDQUFzQjtJQUNuQyxXQUFXLENBQWdCO0lBR3JDLFlBQ3FCLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFFekMsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsRUFBRTtZQUNuRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUM7U0FDekU7UUFDRCxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRTtZQUMvQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQztTQUNqRTtJQUNILENBQUM7SUFHRCxjQUFjLENBQUMsR0FBaUIsRUFBRSxZQUFzQztRQUN0RSxJQUFJLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxtQkFBbUIsR0FBRyxLQUFLLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUNoRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUNwQyxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDaEMsSUFBSSxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUVaLFNBQVM7Z0JBQ1QsSUFBSSxDQUFD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QUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztvQkFDekIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDMUIsT0FBTyxJQUFJLENBQUM7aUJBQ2I7YUFDRjtTQUNGO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBR08sbUJBQW1CLENBQUMsR0FBaUIsRUFBRSxXQUEwQjtRQUN2RSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2hCLFdBQVcsR0FBRyxHQUFHLENBQUM7U0FDbkI7UUFDRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDekQsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQy9ELE9BQU8sU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN0QixTQUFTLEVBQUUsRUFBRTtZQUNiLFlBQVksRUFBRSxFQUFFO1lBQ2hCLFNBQVMsRUFBRSxFQUFFO1lBQ2IsWUFBWSxFQUFFLEVBQUU7U0FDakIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2VNb3VzZUV2ZW50IH0gZnJvbSBcIi4uL2RhdGEvY29tbW9uL2V2ZW50L2dlLW1vdXNlLWV2ZW50XCI7XG5pbXBvcnQgeyBUYWJsZVNjb3BlIH0gZnJvbSBcIi4uL3RhYmxlLXNjb3BlXCI7XG5pbXBvcnQgeyBHZXRUIH0gZnJvbSBcIi4uL2RhdGEvY29tbW9uL2dldC10XCI7XG5pbXBvcnQgeyBTZWxlY3Rpb25Nb2RlbElmIH0gZnJvbSBcIi4vc2VsZWN0aW9uLW1vZGVsLmlmXCI7XG5pbXBvcnQgeyBGb2N1c01vZGVsSWYgfSBmcm9tIFwiLi4vZm9jdXMvZm9jdXMtbW9kZWwuaWZcIjtcbmltcG9ydCB7IENlbGxSYW5nZSB9IGZyb20gXCIuLi9kYXRhL2NvbW1vbi9jZWxsLXJhbmdlXCI7XG5pbXBvcnQgeyBPbkFjdGlvblRyaWdnZXJlZElmIH0gZnJvbSBcIi4uL2FjdGlvbi9vbi1hY3Rpb24tdHJpZ2dlcmVkLmlmXCI7XG5pbXBvcnQgeyBBY3Rpb25JZCB9IGZyb20gXCIuLi9hY3Rpb24vYWN0aW9uLWlkLnR5cGVcIjtcblxuXG5leHBvcnQgY2xhc3MgU2VsZWN0aW9uU2VydmljZSBpbXBsZW1lbnRzIE9uQWN0aW9uVHJpZ2dlcmVkSWYge1xuXG4gIHByb3RlY3RlZCBnZXRTZWxlY3Rpb25Nb2RlbD86IEdldFQ8U2VsZWN0aW9uTW9kZWxJZj47XG4gIHByb3RlY3RlZCBnZXRGb2N1c01vZGVsPzogR2V0VDxGb2N1c01vZGVsSWY+O1xuICBwcm90ZWN0ZWQgcHJldmlvdXNFdnQ/OiBHZU1vdXNlRXZlbnQ7XG5cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGFibGVTY29wZTogVGFibGVTY29wZVxuICApIHtcbiAgICBpZiAodGhpcy50YWJsZVNjb3BlLnRhYmxlT3B0aW9ucz8uZ2V0U2VsZWN0aW9uTW9kZWwpIHtcbiAgICAgIHRoaXMuZ2V0U2VsZWN0aW9uTW9kZWwgPSB0aGlzLnRhYmxlU2NvcGUudGFibGVPcHRpb25zLmdldFNlbGVjdGlvbk1vZGVsO1xuICAgIH1cbiAgICBpZiAodGhpcy50YWJsZVNjb3BlLnRhYmxlT3B0aW9ucz8uZ2V0Rm9jdXNNb2RlbCkge1xuICAgICAgdGhpcy5nZXRGb2N1c01vZGVsID0gdGhpcy50YWJsZVNjb3BlLnRhYmxlT3B0aW9ucy5nZXRGb2N1c01vZGVsO1xuICAgIH1cbiAgfVxuXG5cbiAgb25Nb3VzZUNsaWNrZWQoZXZ0OiBHZU1vdXNlRXZlbnQsIF9wcmV2aW91c0V2dDogR2VNb3VzZUV2ZW50IHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgbGV0IGRpcnR5ID0gZmFsc2U7XG4gICAgbGV0IGRlbGV0ZVByZXZpb3VzRXZlbnQgPSBmYWxzZTtcblxuICAgIGlmICh0aGlzLmdldFNlbGVjdGlvbk1vZGVsICYmIHRoaXMuZ2V0Rm9jdXNNb2RlbCkge1xuICAgICAgY29uc3Qgc20gPSB0aGlzLmdldFNlbGVjdGlvbk1vZGVsKCk7XG4gICAgICBjb25zdCBmbSA9IHRoaXMuZ2V0Rm9jdXNNb2RlbCgpO1xuICAgICAgaWYgKHNtICYmIGZtKSB7XG5cbiAgICAgICAgLy8gRm9jdXM6XG4gICAgICAgIGlmICghZm0uaGFzRm9jdXMoZXZ0LnJvd0luZGV4LCBldnQuY29sdW1uSW5kZXgpKSB7XG4gICAgICAgICAgZm0uc2V0Rm9jdXMoZXZ0LnJvd0luZGV4LCBldnQuY29sdW1uSW5kZXgpO1xuICAgICAgICAgIGRpcnR5ID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFNlbGVjdGlvbjpcbiAgICAgICAgaWYgKCFldnQub3JpZ2luYWxFdmVudD8uc2hpZnRLZXkpIHtcbiAgICAgICAgICBpZiAoc20uaGFzU2VsZWN0aW9uKCkpIHtcbiAgICAgICAgICAgIHNtLmNsZWFyKCk7XG4gICAgICAgICAgICBkaXJ0eSA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChldnQub3JpZ2luYWxFdmVudD8uc2hpZnRLZXkgJiYgdGhpcy5wcmV2aW91c0V2dCkge1xuICAgICAgICAgIHNtLmFkZFNlbGVjdGlvbih0aGlzLmNyZWF0ZVJhbmdlQnlFdmVudHMoZXZ0LCB0aGlzLnByZXZpb3VzRXZ0KSk7XG4gICAgICAgICAgZGVsZXRlUHJldmlvdXNFdmVudCA9IHRydWU7XG4gICAgICAgICAgZGlydHkgPSB0cnVlO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoZXZ0Lm9yaWdpbmFsRXZlbnQ/LmN0cmxLZXkgfHwgZXZ0Lm9yaWdpbmFsRXZlbnQ/Lm1ldGFLZXkpIHtcbiAgICAgICAgICBzbS5hZGRTZWxlY3Rpb24oQ2VsbFJhbmdlLnNpbmdsZUNlbGwoZXZ0LnJvd0luZGV4LCBldnQuY29sdW1uSW5kZXgpKTtcbiAgICAgICAgICBkZWxldGVQcmV2aW91c0V2ZW50ID0gdHJ1ZTtcbiAgICAgICAgICBkaXJ0eSA9IHRydWU7XG5cbiAgICAgICAgfSBlbHNlIGlmIChldnQub3JpZ2luYWxFdmVudD8uYWx0S2V5ICYmIChldnQub3JpZ2luYWxFdmVudD8uY3RybEtleSB8fCBldnQub3JpZ2luYWxFdmVudD8ubWV0YUtleSkpIHtcbiAgICAgICAgICBzbS5yZW1vdmVTZWxlY3Rpb24oQ2VsbFJhbmdlLnNpbmdsZUNlbGwoZXZ0LnJvd0luZGV4LCBldnQuY29sdW1uSW5kZXgpKTtcbiAgICAgICAgICBkZWxldGVQcmV2aW91c0V2ZW50ID0gdHJ1ZTtcbiAgICAgICAgICBkaXJ0eSA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGRlbGV0ZVByZXZpb3VzRXZlbnQpIHtcbiAgICAgIHRoaXMucHJldmlvdXNFdnQgPSB1bmRlZmluZWQ7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJldmlvdXNFdnQgPSBldnQ/LmNsb25lKCk7XG4gICAgfVxuICAgIHJldHVybiBkaXJ0eTtcbiAgfVxuXG4gIG9uQWN0aW9uVHJpZ2dlcmVkKGFjdGlvbklkOiBBY3Rpb25JZCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLmdldFNlbGVjdGlvbk1vZGVsICYmIHRoaXMuZ2V0Rm9jdXNNb2RlbCkge1xuICAgICAgY29uc3Qgc20gPSB0aGlzLmdldFNlbGVjdGlvbk1vZGVsKCk7XG4gICAgICBjb25zdCBmbSA9IHRoaXMuZ2V0Rm9jdXNNb2RlbCgpO1xuICAgICAgaWYgKHNtICYmIGZtKSB7XG4gICAgICAgIGlmIChhY3Rpb25JZCA9PT0gXCJTRUxFQ1RfQUxMXCIpIHtcbiAgICAgICAgICBzbS5zZWxlY3RBbGwoKTtcbiAgICAgICAgICB0aGlzLnRhYmxlU2NvcGUucmVwYWludCgpO1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhY3Rpb25JZCA9PT0gXCJERVNFTEVDVF9BTExcIikge1xuICAgICAgICAgIHNtLmNsZWFyKCk7XG4gICAgICAgICAgdGhpcy50YWJsZVNjb3BlLnJlcGFpbnQoKTtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYWN0aW9uSWQgPT09IFwiVE9HR0xFX1NFTEVDVElPTlwiKSB7XG4gICAgICAgICAgY29uc3QgW3JvdywgY29sXSA9IGZtLmdldEZvY3VzKCk7XG4gICAgICAgICAgc20udG9nZ2xlUG9pbnQocm93LCBjb2wpO1xuICAgICAgICAgIHRoaXMudGFibGVTY29wZS5yZXBhaW50KCk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cblxuICBwcml2YXRlIGNyZWF0ZVJhbmdlQnlFdmVudHMoZXZ0OiBHZU1vdXNlRXZlbnQsIHByZXZpb3VzRXZ0PzogR2VNb3VzZUV2ZW50KSB7XG4gICAgaWYgKCFwcmV2aW91c0V2dCkge1xuICAgICAgcHJldmlvdXNFdnQgPSBldnQ7XG4gICAgfVxuICAgIGNvbnN0IHIxID0gTWF0aC5taW4oZXZ0LnJvd0luZGV4LCBwcmV2aW91c0V2dD8ucm93SW5kZXgpO1xuICAgIGNvbnN0IHIyID0gTWF0aC5tYXgoZXZ0LnJvd0luZGV4LCBwcmV2aW91c0V2dD8ucm93SW5kZXgpO1xuICAgIGNvbnN0IGMxID0gTWF0aC5taW4oZXZ0LmNvbHVtbkluZGV4LCBwcmV2aW91c0V2dD8uY29sdW1uSW5kZXgpO1xuICAgIGNvbnN0IGMyID0gTWF0aC5tYXgoZXZ0LmNvbHVtbkluZGV4LCBwcmV2aW91c0V2dD8uY29sdW1uSW5kZXgpO1xuICAgIHJldHVybiBDZWxsUmFuZ2UuY3JlYXRlKHtcbiAgICAgIHJvd0luZGV4MTogcjEsXG4gICAgICBjb2x1bW5JbmRleDE6IGMxLFxuICAgICAgcm93SW5kZXgyOiByMixcbiAgICAgIGNvbHVtbkluZGV4MjogYzJcbiAgICB9KTtcbiAgfVxuXG59XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3RhYmxlL3NyYy9saWIvdGFibGUvc2VsZWN0aW9uL3NlbGVjdGlvbi50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTZWxlY3Rpb25UeXBlID0gXCJub25lXCIgfCBcImNlbGxcIiB8IFwicm93XCIgfCBcImNvbHVtblwiIHwgXCJyYW5nZVwiO1xuZXhwb3J0IHR5cGUgU2VsZWN0aW9uTW9kZSA9IFwic2luZ2xlXCIgfCBcIm11bHRpXCI7XG5cblxuXG4iXX0=
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
export class AbstractStoreStateService {
|
|
2
|
-
getStorageKeyFn;
|
|
3
|
-
constructor(fn) {
|
|
4
|
-
this.getStorageKeyFn = fn;
|
|
5
|
-
}
|
|
6
|
-
autoConvertMapToObject(item) {
|
|
7
|
-
const obj = {};
|
|
8
|
-
if (item instanceof Map) {
|
|
9
|
-
const map = item;
|
|
10
|
-
for (const item of [...map]) {
|
|
11
|
-
const [key, value] = item;
|
|
12
|
-
// @ts-ignore
|
|
13
|
-
obj[key] = value;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return obj;
|
|
17
|
-
}
|
|
18
|
-
checkAndPersistItem(keySuffix, item) {
|
|
19
|
-
const fn = this.getStorageKeyFn;
|
|
20
|
-
if (fn) {
|
|
21
|
-
const key = fn();
|
|
22
|
-
if (key) {
|
|
23
|
-
const subKey = key + keySuffix;
|
|
24
|
-
if ((item + "").includes("Map")) {
|
|
25
|
-
const obj = this.autoConvertMapToObject(item);
|
|
26
|
-
this.persistItem(subKey, obj);
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
this.persistItem(subKey, item);
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
persistItem(subKey, item) {
|
|
35
|
-
if (item) {
|
|
36
|
-
localStorage.setItem(subKey, JSON.stringify(item));
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
localStorage.removeItem(subKey);
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
loadFromLocalStorage(subKey) {
|
|
43
|
-
const item = localStorage.getItem(subKey);
|
|
44
|
-
if (item) {
|
|
45
|
-
return JSON.parse(item);
|
|
46
|
-
}
|
|
47
|
-
return null;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc3RvcmUtc3RhdGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdGFibGUvc3JjL2xpYi90YWJsZS9zZXJ2aWNlL2Fic3RyYWN0LXN0b3JlLXN0YXRlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsTUFBTSxPQUFnQix5QkFBeUI7SUFHbkMsZUFBZSxDQUErQjtJQUd4RCxZQUFZLEVBQStCO1FBQ3pDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxJQUFTO1FBQzlCLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxZQUFZLEdBQUcsRUFBRTtZQUN2QixNQUFNLEdBQUcsR0FBRyxJQUF3QixDQUFDO1lBRXJDLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUcsQ0FBQyxFQUFFO2dCQUMzQixNQUFNLENBQ0osR0FBRyxFQUNILEtBQUssQ0FDTixHQUFHLElBQUksQ0FBQztnQkFDVCxhQUFhO2dCQUNiLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7YUFDbEI7U0FDRjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQU1TLG1CQUFtQixDQUFDLFNBQWlCLEVBQUUsSUFBUztRQUN4RCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO1FBQ2hDLElBQUksRUFBRSxFQUFFO1lBQ04sTUFBTSxHQUFHLEdBQUcsRUFBRSxFQUFFLENBQUM7WUFDakIsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsTUFBTSxNQUFNLEdBQUcsR0FBRyxHQUFHLFNBQVMsQ0FBQztnQkFDL0IsSUFBSSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQy9CO3FCQUFNO29CQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO2lCQUNoQzthQUVGO1NBQ0Y7SUFDSCxDQUFDO0lBRVMsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUFxQjtRQUN6RCxJQUFJLElBQUksRUFBRTtZQUNSLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUNwRDthQUFNO1lBQ0wsWUFBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFUyxvQkFBb0IsQ0FBSSxNQUFjO1FBQzlDLE1BQU0sSUFBSSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDMUMsSUFBSSxJQUFJLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFNLENBQUM7U0FDOUI7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0F1Q0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHZXRTdG9yYWdlS2V5Rm4gfSBmcm9tIFwiLi4vZGF0YS9vcHRpb25zL2F1dG8tcmVzdG9yZS1vcHRpb25zLmlmXCI7XG5cblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U3RvcmVTdGF0ZVNlcnZpY2Uge1xuXG5cbiAgcHJvdGVjdGVkIGdldFN0b3JhZ2VLZXlGbj86IHVuZGVmaW5lZCB8IEdldFN0b3JhZ2VLZXlGbjtcblxuXG4gIGNvbnN0cnVjdG9yKGZuOiBHZXRTdG9yYWdlS2V5Rm4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLmdldFN0b3JhZ2VLZXlGbiA9IGZuO1xuICB9XG5cbiAgYXV0b0NvbnZlcnRNYXBUb09iamVjdChpdGVtOiBhbnkpIHtcbiAgICBjb25zdCBvYmogPSB7fTtcbiAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIE1hcCkge1xuICAgICAgY29uc3QgbWFwID0gaXRlbSBhcyBNYXA8c3RyaW5nLCBhbnk+O1xuXG4gICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgWy4uLm1hcF0pIHtcbiAgICAgICAgY29uc3QgW1xuICAgICAgICAgIGtleSxcbiAgICAgICAgICB2YWx1ZVxuICAgICAgICBdID0gaXRlbTtcbiAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9XG5cbiAgLy8gYWJzdHJhY3QgZ2V0U3ViS2V5KCk6IHN0cmluZztcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgbG9hZCgpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBjaGVja0FuZFBlcnNpc3RJdGVtKGtleVN1ZmZpeDogc3RyaW5nLCBpdGVtOiBhbnkpIHtcbiAgICBjb25zdCBmbiA9IHRoaXMuZ2V0U3RvcmFnZUtleUZuO1xuICAgIGlmIChmbikge1xuICAgICAgY29uc3Qga2V5ID0gZm4oKTtcbiAgICAgIGlmIChrZXkpIHtcbiAgICAgICAgY29uc3Qgc3ViS2V5ID0ga2V5ICsga2V5U3VmZml4O1xuICAgICAgICBpZiAoKGl0ZW0gKyBcIlwiKS5pbmNsdWRlcyhcIk1hcFwiKSkge1xuICAgICAgICAgIGNvbnN0IG9iaiA9IHRoaXMuYXV0b0NvbnZlcnRNYXBUb09iamVjdChpdGVtKTtcbiAgICAgICAgICB0aGlzLnBlcnNpc3RJdGVtKHN1YktleSwgb2JqKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnBlcnNpc3RJdGVtKHN1YktleSwgaXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBwZXJzaXN0SXRlbShzdWJLZXk6IHN0cmluZywgaXRlbTogc3RyaW5nIHwgb2JqZWN0KSB7XG4gICAgaWYgKGl0ZW0pIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHN1YktleSwgSlNPTi5zdHJpbmdpZnkoaXRlbSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShzdWJLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBsb2FkRnJvbUxvY2FsU3RvcmFnZTxVPihzdWJLZXk6IHN0cmluZyk6IFUgfCBudWxsIHtcbiAgICBjb25zdCBpdGVtID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oc3ViS2V5KTtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoaXRlbSkgYXMgVTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBwcml2YXRlIGxvYWRJdGVtcygpIHtcbiAgLy8gICBjb25zdCBmbiA9IHRoaXMuZ2V0U3RvcmFnZUtleUZuO1xuICAvLyAgIGlmIChmbikge1xuICAvLyAgICAgY29uc3Qga2V5ID0gZm4oKTtcbiAgLy8gICAgIGlmIChrZXkpIHtcbiAgLy8gICAgICAgLy8gQSBtYWluIGtleSBpcyBnaXZlbiBieSBmdW5jdGlvbiBmcm9tIG9wdGlvbnNcbiAgLy8gICAgICAgY29uc3Qgc3ViS2V5ID0ga2V5ICsgdGhpcy5DSEVDS0VEX1NUQVRFO1xuICAvLyAgICAgICBjb25zdCBhcnIgPSB0aGlzLmxvYWRGcm9tTG9jYWxTdG9yYWdlPEFycmF5PHN0cmluZyB8IG51bWJlcj4+KHN1YktleSk7XG4gIC8vICAgICAgIGlmIChhcnIpIHtcbiAgLy8gICAgICAgICB0aGlzLmNoZWNrZWRTdGF0ZUlkcy5sZW5ndGggPSAwO1xuICAvLyAgICAgICAgIGFyci5mb3JFYWNoKGEgPT4gdGhpcy5jaGVja2VkU3RhdGVJZHMucHVzaChhKSk7XG4gIC8vICAgICAgIH1cbiAgLy9cbiAgLy8gICAgICAgY29uc3Qgc3ViS2V5MiA9IGtleSArIHRoaXMuQ09MTEFQU0VEX0VYUEFOREVEX1NUQVRFO1xuICAvLyAgICAgICBjb25zdCBkYXRhID0gdGhpcy5sb2FkRnJvbUxvY2FsU3RvcmFnZTxDb2xsYXBzZWRFeHBhbmRlZERhdGE+KHN1YktleTIpO1xuICAvLyAgICAgICBpZiAoZGF0YSkge1xuICAvLyAgICAgICAgIHRoaXMuY29sbGFwc2VkRXhwYW5kZWRTdGF0ZSA9IGRhdGE7XG4gIC8vICAgICAgIH1cbiAgLy9cbiAgLy8gICAgICAgY29uc3Qgc3ViS2V5MyA9IGtleSArIHRoaXMuU0VMRUNURURfU1RBVEU7XG4gIC8vICAgICAgIGNvbnN0IGFycjMgPSB0aGlzLmxvYWRGcm9tTG9jYWxTdG9yYWdlPG9iamVjdD4oc3ViS2V5Myk7XG4gIC8vICAgICAgIGlmIChhcnIzKSB7XG4gIC8vICAgICAgICAgY29uc3QgbWFwOiBNYXA8c3RyaW5nIHwgbnVtYmVyLCBzdHJpbmdbXT4gPSBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKGFycjMpKTtcbiAgLy8gICAgICAgICBpZiAobWFwKSB7XG4gIC8vICAgICAgICAgICB0aGlzLnNlbGVjdGVkU3RhdGVJZHMuY2xlYXIoKTtcbiAgLy8gICAgICAgICAgIG1hcC5mb3JFYWNoKChjb2wsIGspID0+IHRoaXMuc2VsZWN0ZWRTdGF0ZUlkcy5zZXQoaywgY29sKSk7XG4gIC8vICAgICAgICAgfVxuICAvLyAgICAgICB9XG4gIC8vXG4gIC8vICAgICAgIGNvbnN0IHN1YktleTQgPSBrZXkgKyB0aGlzLlNDUk9MTF9TVEFURTtcbiAgLy8gICAgICAgbGV0IHNjcm9sbE9mZnNldCA9IHRoaXMubG9hZEZyb21Mb2NhbFN0b3JhZ2U8W251bWJlciwgbnVtYmVyXT4oc3ViS2V5NCk7XG4gIC8vICAgICAgIHRoaXMuc2Nyb2xsT2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0ID8gc2Nyb2xsT2Zmc2V0IDogWzAsIDBdO1xuICAvLyAgICAgfVxuICAvLyAgIH1cbiAgLy8gfVxuXG5cbn1cbiJdfQ==
|