@ai-table/state 0.0.14 → 0.0.15
Sign up to get free protection for your applications and to get access to all the features.
- package/action/general.d.ts.map +1 -1
- package/action/index.d.ts +2 -2
- package/action/position.d.ts +5 -7
- package/action/position.d.ts.map +1 -1
- package/action/record.d.ts +3 -1
- package/action/record.d.ts.map +1 -1
- package/constants/field-menu-item.d.ts +1 -7
- package/constants/field-menu-item.d.ts.map +1 -1
- package/esm2022/action/general.mjs +26 -13
- package/esm2022/action/index.mjs +3 -3
- package/esm2022/action/position.mjs +7 -15
- package/esm2022/action/record.mjs +11 -2
- package/esm2022/constants/field-menu-item.mjs +1 -9
- package/esm2022/shared/to-table/array-event.mjs +49 -27
- package/esm2022/shared/to-yjs/add-node.mjs +30 -15
- package/esm2022/shared/to-yjs/index.mjs +15 -14
- package/esm2022/shared/to-yjs/remove-node.mjs +2 -14
- package/esm2022/shared/to-yjs/set-node.mjs +2 -2
- package/esm2022/shared/to-yjs/update-field-value.mjs +2 -2
- package/esm2022/shared/utils/index.mjs +2 -3
- package/esm2022/shared/utils/initialize.mjs +50 -0
- package/esm2022/shared/utils/translate.mjs +75 -18
- package/esm2022/types/action.mjs +3 -3
- package/esm2022/types/shared.mjs +1 -1
- package/esm2022/types/view.mjs +3 -1
- package/esm2022/utils/field/add-fields.mjs +6 -4
- package/esm2022/utils/field/remove-field.mjs +14 -0
- package/esm2022/utils/index.mjs +3 -1
- package/esm2022/utils/record/add-records.mjs +3 -3
- package/esm2022/utils/record/update-field-value.mjs +3 -2
- package/esm2022/utils/record/update-system-field-value.mjs +8 -0
- package/esm2022/utils/view.mjs +4 -4
- package/fesm2022/ai-table-state.mjs +265 -165
- package/fesm2022/ai-table-state.mjs.map +1 -1
- package/package.json +1 -1
- package/shared/to-table/array-event.d.ts +5 -2
- package/shared/to-table/array-event.d.ts.map +1 -1
- package/shared/to-yjs/add-node.d.ts +3 -2
- package/shared/to-yjs/add-node.d.ts.map +1 -1
- package/shared/to-yjs/index.d.ts +2 -2
- package/shared/to-yjs/index.d.ts.map +1 -1
- package/shared/to-yjs/remove-node.d.ts +3 -2
- package/shared/to-yjs/remove-node.d.ts.map +1 -1
- package/shared/to-yjs/set-node.d.ts +2 -1
- package/shared/to-yjs/set-node.d.ts.map +1 -1
- package/shared/to-yjs/update-field-value.d.ts +2 -1
- package/shared/to-yjs/update-field-value.d.ts.map +1 -1
- package/shared/utils/index.d.ts +1 -2
- package/shared/utils/index.d.ts.map +1 -1
- package/shared/utils/initialize.d.ts +20 -0
- package/shared/utils/initialize.d.ts.map +1 -0
- package/shared/utils/translate.d.ts +18 -7
- package/shared/utils/translate.d.ts.map +1 -1
- package/types/action.d.ts +14 -13
- package/types/action.d.ts.map +1 -1
- package/types/shared.d.ts +9 -1
- package/types/shared.d.ts.map +1 -1
- package/types/view.d.ts +3 -0
- package/types/view.d.ts.map +1 -1
- package/utils/field/add-fields.d.ts +2 -2
- package/utils/field/add-fields.d.ts.map +1 -1
- package/utils/field/remove-field.d.ts +9 -0
- package/utils/field/remove-field.d.ts.map +1 -0
- package/utils/index.d.ts +2 -0
- package/utils/index.d.ts.map +1 -1
- package/utils/record/add-records.d.ts +2 -2
- package/utils/record/add-records.d.ts.map +1 -1
- package/utils/record/update-field-value.d.ts +2 -2
- package/utils/record/update-field-value.d.ts.map +1 -1
- package/utils/record/update-system-field-value.d.ts +4 -0
- package/utils/record/update-system-field-value.d.ts.map +1 -0
- package/esm2022/shared/utils/init-shared.mjs +0 -48
- package/esm2022/shared/utils/init-table.mjs +0 -13
- package/shared/utils/init-shared.d.ts +0 -16
- package/shared/utils/init-shared.d.ts.map +0 -1
- package/shared/utils/init-table.d.ts +0 -7
- package/shared/utils/init-table.d.ts.map +0 -1
package/action/general.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../packages/state/src/action/general.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"general.d.ts","sourceRoot":"","sources":["../../../packages/state/src/action/general.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,aAAa,EAMb,WAAW,EACd,MAAM,UAAU,CAAC;AAgMlB,eAAO,MAAM,cAAc;uBACJ,WAAW,UAAU,aAAa,GAAG,IAAI;CAS/D,CAAC"}
|
package/action/index.d.ts
CHANGED
@@ -1,6 +1,5 @@
|
|
1
1
|
export declare const Actions: {
|
2
|
-
|
3
|
-
removeRecordPosition: typeof import("./position").removeRecordPosition;
|
2
|
+
setRecordPositions: typeof import("./position").setRecordPositions;
|
4
3
|
setView: (aiTable: import("@ai-table/state").AIViewTable, value: Partial<import("@ai-table/state").AITableView>, path: [string]) => void;
|
5
4
|
addView: (aiTable: import("@ai-table/state").AIViewTable, view: import("@ai-table/state").AITableView, path: [number]) => void;
|
6
5
|
removeView: (aiTable: import("@ai-table/state").AIViewTable, path: [string]) => void;
|
@@ -12,6 +11,7 @@ export declare const Actions: {
|
|
12
11
|
updateFieldValue: typeof import("./record").updateFieldValue;
|
13
12
|
moveRecord: typeof import("./record").moveRecord;
|
14
13
|
removeRecord: typeof import("./record").removeRecord;
|
14
|
+
updateSystemFieldValue: typeof import("./record").updateSystemFieldValue;
|
15
15
|
transform(aiTable: import("@ai-table/state").AIViewTable, action: import("@ai-table/state").AITableAction): void;
|
16
16
|
};
|
17
17
|
//# sourceMappingURL=index.d.ts.map
|
package/action/position.d.ts
CHANGED
@@ -1,9 +1,7 @@
|
|
1
|
-
import { AIViewTable, Positions } from
|
2
|
-
import { IdPath } from
|
3
|
-
export declare function
|
4
|
-
export declare
|
5
|
-
|
6
|
-
setRecordPosition: typeof setRecordPosition;
|
7
|
-
removeRecordPosition: typeof removeRecordPosition;
|
1
|
+
import { AIViewTable, Positions, RemovePositions } from '../types';
|
2
|
+
import { IdPath } from '@ai-table/grid';
|
3
|
+
export declare function setRecordPositions(aiTable: AIViewTable, positions: Positions | RemovePositions, path: IdPath): void;
|
4
|
+
export declare const PositionsActions: {
|
5
|
+
setRecordPositions: typeof setRecordPositions;
|
8
6
|
};
|
9
7
|
//# sourceMappingURL=position.d.ts.map
|
package/action/position.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../packages/state/src/action/position.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,WAAW,EAAE,SAAS,
|
1
|
+
{"version":3,"file":"position.d.ts","sourceRoot":"","sources":["../../../packages/state/src/action/position.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AACxG,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAExC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,GAAG,eAAe,EAAE,IAAI,EAAE,MAAM,QAO5G;AAED,eAAO,MAAM,gBAAgB;;CAE5B,CAAC"}
|
package/action/record.d.ts
CHANGED
@@ -1,6 +1,7 @@
|
|
1
|
-
import { AIFieldValueIdPath, AITableRecord, IdPath, NumberPath } from '@ai-table/grid';
|
1
|
+
import { AIFieldValueIdPath, AITableRecord, AITableRecordUpdatedInfo, IdPath, NumberPath } from '@ai-table/grid';
|
2
2
|
import { AIViewTable } from '../types';
|
3
3
|
export declare function updateFieldValue(aiTable: AIViewTable, value: any, path: AIFieldValueIdPath): void;
|
4
|
+
export declare function updateSystemFieldValue(aiTable: AIViewTable, path: IdPath, updatedInfo: AITableRecordUpdatedInfo): void;
|
4
5
|
export declare function addRecord(aiTable: AIViewTable, record: AITableRecord, path: NumberPath): void;
|
5
6
|
export declare function moveRecord(aiTable: AIViewTable, path: NumberPath, newPath: NumberPath): void;
|
6
7
|
export declare function removeRecord(aiTable: AIViewTable, path: IdPath): void;
|
@@ -9,5 +10,6 @@ export declare const RecordActions: {
|
|
9
10
|
updateFieldValue: typeof updateFieldValue;
|
10
11
|
moveRecord: typeof moveRecord;
|
11
12
|
removeRecord: typeof removeRecord;
|
13
|
+
updateSystemFieldValue: typeof updateSystemFieldValue;
|
12
14
|
};
|
13
15
|
//# sourceMappingURL=record.d.ts.map
|
package/action/record.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../packages/state/src/action/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAkB,aAAa,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
1
|
+
{"version":3,"file":"record.d.ts","sourceRoot":"","sources":["../../../packages/state/src/action/record.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAkB,aAAa,EAAE,wBAAwB,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjI,OAAO,EAMH,WAAW,EAEd,MAAM,UAAU,CAAC;AAElB,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,kBAAkB,QAW1F;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,wBAAwB,QAO/G;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,UAAU,QAOtF;AAED,wBAAgB,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,QAOrF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,QAM9D;AAED,eAAO,MAAM,aAAa;;;;;;CAMzB,CAAC"}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import {
|
1
|
+
import { AITableField } from '@ai-table/grid';
|
2
2
|
import { ElementRef, Signal } from '@angular/core';
|
3
3
|
import { AIViewTable } from '../types';
|
4
4
|
export declare const DividerMenuItem: {
|
@@ -13,10 +13,4 @@ export declare const EditFieldPropertyItem: {
|
|
13
13
|
y: number;
|
14
14
|
}) => import("ngx-tethys/popover").ThyPopoverRef<unknown, unknown, unknown> | undefined;
|
15
15
|
};
|
16
|
-
export declare const RemoveFieldItem: {
|
17
|
-
type: string;
|
18
|
-
name: string;
|
19
|
-
icon: string;
|
20
|
-
exec: (aiTable: AITable, field: Signal<AITableField>) => void;
|
21
|
-
};
|
22
16
|
//# sourceMappingURL=field-menu-item.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"field-menu-item.d.ts","sourceRoot":"","sources":["../../../packages/state/src/constants/field-menu-item.ts"],"names":[],"mappings":"AAAA,OAAO,
|
1
|
+
{"version":3,"file":"field-menu-item.d.ts","sourceRoot":"","sources":["../../../packages/state/src/constants/field-menu-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4C,YAAY,EAA8B,MAAM,gBAAgB,CAAC;AACpH,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAGnD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,eAAe;;CAE3B,CAAC;AAEF,eAAO,MAAM,qBAAqB;;;;oBAKjB,WAAW,SACb,OAAO,YAAY,CAAC,WAClB,WAAW,GAAG,WAAW,GAAG,CAAC,aAC3B;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE;CAoB1C,CAAC"}
|
@@ -12,6 +12,19 @@ const apply = (aiTable, records, fields, views, action) => {
|
|
12
12
|
}
|
13
13
|
break;
|
14
14
|
}
|
15
|
+
case ActionName.UpdateSystemFieldValue: {
|
16
|
+
const [recordId] = action.path;
|
17
|
+
if (recordId && action.updatedInfo) {
|
18
|
+
const recordIndex = aiTable.records().findIndex((item) => item._id === recordId);
|
19
|
+
if (action.updatedInfo.updated_at) {
|
20
|
+
records[recordIndex].updated_at = action.updatedInfo.updated_at;
|
21
|
+
}
|
22
|
+
if (action.updatedInfo.updated_by) {
|
23
|
+
records[recordIndex].updated_by = action.updatedInfo.updated_by;
|
24
|
+
}
|
25
|
+
}
|
26
|
+
break;
|
27
|
+
}
|
15
28
|
case ActionName.AddRecord: {
|
16
29
|
const [recordIndex] = action.path;
|
17
30
|
if (recordIndex > -1) {
|
@@ -141,23 +154,23 @@ const apply = (aiTable, records, fields, views, action) => {
|
|
141
154
|
}
|
142
155
|
break;
|
143
156
|
}
|
144
|
-
case ActionName.
|
145
|
-
const {
|
157
|
+
case ActionName.SetRecordPositions: {
|
158
|
+
const { positions, path } = action;
|
146
159
|
const record = records.find((item) => item._id === path[0]);
|
147
160
|
if (record) {
|
148
|
-
record.positions
|
149
|
-
|
150
|
-
|
151
|
-
|
161
|
+
const newPositions = { ...record.positions };
|
162
|
+
for (const key in positions) {
|
163
|
+
if (positions[key] === null || positions[key] === undefined) {
|
164
|
+
delete newPositions[key];
|
165
|
+
}
|
166
|
+
else {
|
167
|
+
newPositions[key] = positions[key];
|
168
|
+
}
|
169
|
+
}
|
170
|
+
record.positions = newPositions;
|
152
171
|
}
|
153
172
|
break;
|
154
173
|
}
|
155
|
-
case ActionName.RemoveRecordPosition: {
|
156
|
-
const { path } = action;
|
157
|
-
const record = records.find((item) => item._id === path[1]);
|
158
|
-
delete record?.positions[path[0]];
|
159
|
-
break;
|
160
|
-
}
|
161
174
|
}
|
162
175
|
return {
|
163
176
|
records,
|
@@ -176,4 +189,4 @@ export const GeneralActions = {
|
|
176
189
|
aiTable.views.set(finishDraft(views));
|
177
190
|
}
|
178
191
|
};
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0YXRlL3NyYy9hY3Rpb24vZ2VuZXJhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUF1SCxNQUFNLFVBQVUsQ0FBQztBQUMzSixPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLE9BQU8sQ0FBQztBQUNqRCxPQUFPLEVBQStCLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUUvRCxNQUFNLEtBQUssR0FBRyxDQUFDLE9BQW9CLEVBQUUsT0FBMkIsRUFBRSxNQUFxQixFQUFFLEtBQW9CLEVBQUUsTUFBcUIsRUFBRSxFQUFFO0lBQ3BJLFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xCLEtBQUssVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztZQUMvQixNQUFNLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDeEMsSUFBSSxRQUFRLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3RCLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7Z0JBQ2pGLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQztZQUNoRSxDQUFDO1lBQ0QsTUFBTTtRQUNWLENBQUM7UUFDRCxLQUFLLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxD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LElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE1BQU07UUFDVixDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU87UUFDSCxPQUFPO1FBQ1AsTUFBTTtRQUNOLEtBQUs7S0FDUixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzFCLFNBQVMsQ0FBQyxPQUFvQixFQUFFLE1BQXFCO1FBQ2pELE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQXVCLENBQUM7UUFDckUsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBc0IsQ0FBQztRQUNsRSxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDM0MsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGlvbk5hbWUsIEFJVGFibGVBY3Rpb24sIEFJVGFibGVWaWV3LCBBSVRhYmxlVmlld0ZpZWxkLCBBSVRhYmxlVmlld0ZpZWxkcywgQUlUYWJsZVZpZXdSZWNvcmQsIEFJVGFibGVWaWV3UmVjb3JkcywgQUlWaWV3VGFibGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBjcmVhdGVEcmFmdCwgZmluaXNoRHJhZnQgfSBmcm9tICdpbW1lcic7XG5pbXBvcnQgeyBBSVRhYmxlRmllbGQsIEFJVGFibGVGaWVsZHMsIGdldERlZmF1bHRGaWVsZFZhbHVlIH0gZnJvbSAnQGFpLXRhYmxlL2dyaWQnO1xuaW1wb3J0IHsgY3JlYXRlRGVmYXVsdFBvc2l0aW9ucywgaXNQYXRoRXF1YWwgfSBmcm9tICcuLi91dGlscyc7XG5cbmNvbnN0IGFwcGx5ID0gKGFpVGFibGU6IEFJVmlld1RhYmxlLCByZWNvcmRzOiBBSVRhYmxlVmlld1JlY29yZHMsIGZpZWxkczogQUlUYWJsZUZpZWxkcywgdmlld3M6IEFJVGFibGVWaWV3W10sIGFjdGlvbjogQUlUYWJsZUFjdGlvbikgPT4ge1xuICAgIHN3aXRjaCAoYWN0aW9uLnR5cGUpIHtcbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLlVwZGF0ZUZpZWxkVmFsdWU6IHtcbiAgICAgICAgICAgIGNvbnN0IFtyZWNvcmRJZCwgZmllbGRJZF0gPSBhY3Rpb24ucGF0aDtcbiAgICAgICAgICAgIGlmIChyZWNvcmRJZCAmJiBmaWVsZElkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSBhaVRhYmxlLnJlY29yZHMoKS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSByZWNvcmRJZCk7XG4gICAgICAgICAgICAgICAgcmVjb3Jkc1tyZWNvcmRJbmRleF0udmFsdWVzW2ZpZWxkSWRdID0gYWN0aW9uLm5ld0ZpZWxkVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuQWRkUmVjb3JkOiB7XG4gICAgICAgICAgICBjb25zdCBbcmVjb3JkSW5kZXhdID0gYWN0aW9uLnBhdGg7XG4gICAgICAgICAgICBpZiAocmVjb3JkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGlmICghKGFjdGlvbi5yZWNvcmQgYXMgQUlUYWJsZVZpZXdSZWNvcmQpLnBvc2l0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVWaWV3ID0gYWlUYWJsZS52aWV3cygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSBhaVRhYmxlLmFjdGl2ZVZpZXdJZCgpKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gcmVjb3JkSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVWaWV3Py5zZXR0aW5ncz8uY29uZGl0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSByZWNvcmRzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAoYWN0aW9uLnJlY29yZCBhcyBBSVRhYmxlVmlld1JlY29yZCkucG9zaXRpb25zID0gY3JlYXRlRGVmYXVsdFBvc2l0aW9ucyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGFpVGFibGUudmlld3MoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFpVGFibGUuYWN0aXZlVmlld0lkKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLnJlY29yZHMoKSBhcyBBSVRhYmxlVmlld1JlY29yZHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZWNvcmRzLnNwbGljZShyZWNvcmRJbmRleCwgMCwgYWN0aW9uLnJlY29yZCBhcyBBSVRhYmxlVmlld1JlY29yZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuQWRkRmllbGQ6IHtcbiAgICAgICAgICAgIGNvbnN0IFtmaWVsZEluZGV4XSA9IGFjdGlvbi5wYXRoO1xuICAgICAgICAgICAgaWYgKGZpZWxkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0ZpZWxkID0gYWN0aW9uLmZpZWxkO1xuICAgICAgICAgICAgICAgIChuZXdGaWVsZCBhcyBBSVRhYmxlVmlld0ZpZWxkKS5wb3NpdGlvbnMgPSBjcmVhdGVEZWZhdWx0UG9zaXRpb25zKFxuICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLnZpZXdzKCksXG4gICAgICAgICAgICAgICAgICAgIGFpVGFibGUuYWN0aXZlVmlld0lkKCksXG4gICAgICAgICAgICAgICAgICAgIGFpVGFibGUuZmllbGRzKCkgYXMgQUlUYWJsZVZpZXdGaWVsZHMsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5wYXRoWzBdXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBmaWVsZHMuc3BsaWNlKGZpZWxkSW5kZXgsIDAsIG5ld0ZpZWxkIGFzIEFJVGFibGVWaWV3RmllbGQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1JlY29yZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgW25ld0ZpZWxkLl9pZF06IGdldERlZmF1bHRGaWVsZFZhbHVlKGFjdGlvbi5maWVsZClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJlY29yZHMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLnZhbHVlcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLml0ZW0udmFsdWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4ubmV3UmVjb3JkXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuTW92ZVJlY29yZDoge1xuICAgICAgICAgICAgaWYgKGlzUGF0aEVxdWFsKGFjdGlvbi5wYXRoLCBhY3Rpb24ubmV3UGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZWNvcmQgPSByZWNvcmRzW2FjdGlvbi5wYXRoWzBdXTtcbiAgICAgICAgICAgIHJlY29yZHMuc3BsaWNlKGFjdGlvbi5wYXRoWzBdLCAxKTtcbiAgICAgICAgICAgIHJlY29yZHMuc3BsaWNlKGFjdGlvbi5uZXdQYXRoWzBdLCAwLCByZWNvcmQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLk1vdmVGaWVsZDoge1xuICAgICAgICAgICAgaWYgKGlzUGF0aEVxdWFsKGFjdGlvbi5wYXRoLCBhY3Rpb24ubmV3UGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9IGZpZWxkc1thY3Rpb24ucGF0aFswXV07XG4gICAgICAgICAgICBmaWVsZHMuc3BsaWNlKGFjdGlvbi5wYXRoWzBdLCAxKTtcbiAgICAgICAgICAgIGZpZWxkcy5zcGxpY2UoYWN0aW9uLm5ld1BhdGhbMF0sIDAsIGZpZWxkKTtcblxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLlJlbW92ZUZpZWxkOiB7XG4gICAgICAgICAgICBjb25zdCBbZmllbGRJZF0gPSBhY3Rpb24ucGF0aDtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkSW5kZXggPSBhaVRhYmxlLmZpZWxkcygpLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IGZpZWxkSWQpO1xuICAgICAgICAgICAgaWYgKGZpZWxkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGZpZWxkcy5zcGxpY2UoZmllbGRJbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgcmVjb3Jkcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBpdGVtLnZhbHVlc1tmaWVsZElkXTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5SZW1vdmVSZWNvcmQ6IHtcbiAgICAgICAgICAgIGNvbnN0IFtyZWNvcmRJZF0gPSBhY3Rpb24ucGF0aDtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZEluZGV4ID0gYWlUYWJsZS5yZWNvcmRzKCkuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLl9pZCA9PT0gcmVjb3JkSWQpO1xuICAgICAgICAgICAgaWYgKHJlY29yZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICByZWNvcmRzLnNwbGljZShyZWNvcmRJbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5TZXRGaWVsZDoge1xuICAgICAgICAgICAgY29uc3QgZmllbGQgPSBmaWVsZHMuZmluZCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IGFjdGlvbi5wYXRoWzBdKSBhcyBBSVRhYmxlRmllbGQ7XG4gICAgICAgICAgICBpZiAoZmllbGQpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBhY3Rpb24ubmV3UHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBrID0ga2V5IGFzIGtleW9mIEFJVGFibGVGaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhY3Rpb24ubmV3UHJvcGVydGllc1trXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmaWVsZFtrXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIChmaWVsZFtrXSBhcyBhbnkpID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBwcm9wZXJ0aWVzIHRoYXQgd2VyZSBwcmV2aW91c2x5IGRlZmluZWQsIGJ1dCBhcmUgbm93IG1pc3NpbmcsIG11c3QgYmUgZGVsZXRlZFxuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGFjdGlvbi5wcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYWN0aW9uLm5ld1Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGZpZWxkWzxrZXlvZiBBSVRhYmxlRmllbGQ+a2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5TZXRWaWV3OiB7XG4gICAgICAgICAgICBjb25zdCB2aWV3ID0gdmlld3MuZmluZCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IGFjdGlvbi5wYXRoWzBdKSBhcyBBSVRhYmxlVmlldztcbiAgICAgICAgICAgIGlmICh2aWV3KSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYWN0aW9uLm5ld1Byb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgayA9IGtleSBhcyBrZXlvZiBBSVRhYmxlVmlldztcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBhY3Rpb24ubmV3UHJvcGVydGllc1trXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB2aWV3W2tdO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgKHZpZXdba10gYXMgYW55KSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gcHJvcGVydGllcyB0aGF0IHdlcmUgcHJldmlvdXNseSBkZWZpbmVkLCBidXQgYXJlIG5vdyBtaXNzaW5nLCBtdXN0IGJlIGRlbGV0ZWRcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBhY3Rpb24ucHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGlvbi5uZXdQcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB2aWV3WzxrZXlvZiBBSVRhYmxlVmlldz5rZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLkFkZFZpZXc6IHtcbiAgICAgICAgICAgIGNvbnN0IFt2aWV3SW5kZXhdID0gYWN0aW9uLnBhdGg7XG4gICAgICAgICAgICBpZiAodmlld0luZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICB2aWV3cy5zcGxpY2Uodmlld0luZGV4LCAwLCBhY3Rpb24udmlldyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuUmVtb3ZlVmlldzoge1xuICAgICAgICAgICAgY29uc3QgW3ZpZXdJZF0gPSBhY3Rpb24ucGF0aDtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdJbmRleCA9IHZpZXdzLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IHZpZXdJZCk7XG4gICAgICAgICAgICBpZiAodmlld0luZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICB2aWV3cy5zcGxpY2Uodmlld0luZGV4LCAxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5BZGRSZWNvcmRQb3NpdGlvbjoge1xuICAgICAgICAgICAgY29uc3QgeyBwb3NpdGlvbiwgcGF0aCB9ID0gYWN0aW9uO1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gcmVjb3Jkcy5maW5kKChpdGVtKSA9PiBpdGVtLl9pZCA9PT0gcGF0aFswXSk7XG4gICAgICAgICAgICBpZiAocmVjb3JkKSB7XG4gICAgICAgICAgICAgICAgcmVjb3JkLnBvc2l0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4ucmVjb3JkLnBvc2l0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgLi4ucG9zaXRpb25cbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLlJlbW92ZVJlY29yZFBvc2l0aW9uOiB7XG4gICAgICAgICAgICBjb25zdCB7IHBhdGggfSA9IGFjdGlvbjtcbiAgICAgICAgICAgIGNvbnN0IHJlY29yZCA9IHJlY29yZHMuZmluZCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IHBhdGhbMV0pO1xuICAgICAgICAgICAgZGVsZXRlIHJlY29yZD8ucG9zaXRpb25zW3BhdGhbMF1dO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVjb3JkcyxcbiAgICAgICAgZmllbGRzLFxuICAgICAgICB2aWV3c1xuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgR2VuZXJhbEFjdGlvbnMgPSB7XG4gICAgdHJhbnNmb3JtKGFpVGFibGU6IEFJVmlld1RhYmxlLCBhY3Rpb246IEFJVGFibGVBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IGNyZWF0ZURyYWZ0KGFpVGFibGUucmVjb3JkcygpKSBhcyBBSVRhYmxlVmlld1JlY29yZHM7XG4gICAgICAgIGNvbnN0IGZpZWxkcyA9IGNyZWF0ZURyYWZ0KGFpVGFibGUuZmllbGRzKCkpIGFzIEFJVGFibGVWaWV3RmllbGRzO1xuICAgICAgICBjb25zdCB2aWV3cyA9IGNyZWF0ZURyYWZ0KGFpVGFibGUudmlld3MoKSk7XG4gICAgICAgIGFwcGx5KGFpVGFibGUsIHJlY29yZHMsIGZpZWxkcywgdmlld3MsIGFjdGlvbik7XG4gICAgICAgIGFpVGFibGUuZmllbGRzLnNldChmaW5pc2hEcmFmdChmaWVsZHMpKTtcbiAgICAgICAgYWlUYWJsZS5yZWNvcmRzLnNldChmaW5pc2hEcmFmdChyZWNvcmRzKSk7XG4gICAgICAgIGFpVGFibGUudmlld3Muc2V0KGZpbmlzaERyYWZ0KHZpZXdzKSk7XG4gICAgfVxufTtcbiJdfQ==
|
192
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0YXRlL3NyYy9hY3Rpb24vZ2VuZXJhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQVFiLE1BQU0sVUFBVSxDQUFDO0FBQ2xCLE9BQU8sRUFBRSxXQUFXLEVBQUUsV0FBVyxFQUFFLE1BQU0sT0FBTyxDQUFDO0FBQ2pELE9BQU8sRUFBK0Isb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRS9ELE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBb0IsRUFBRSxPQUEyQixFQUFFLE1BQXFCLEVBQUUsS0FBb0IsRUFBRSxNQUFxQixFQUFFLEVBQUU7SUFDcEksUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsS0FBSyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1lBQy9CLE1BQU0sQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUN4QyxJQUFJLFFBQVEsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxXQUFXLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQztnQkFDakYsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxNQUFNLENBQUMsYUFBYSxDQUFDO1lBQ2hFLENBQUM7WUFDRCxNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssVUFBVSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQztZQUNyQyxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUMvQixJQUFJLFFBQVEsSUFBSSxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQ2pDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7Z0JBQ2pGLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDaEMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQztnQkFDcEUsQ0FBQztnQkFDRCxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2hDLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUM7Z0JBQ3BFLENBQUM7WUFDTCxDQUFDO1lBQ0QsTUFBTTtRQUNWLENBQUM7UUFDRCxLQUFLLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1lBQ3hCLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2xDLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBRSxNQUFNLENBQUMsTUFBNEIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztvQkFDbEQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztvQkFDdkYsSUFBSSxLQUFLLEdBQUcsV0FBVyxDQUFDO29CQUN4QixJQUFJLFVBQVUsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUM7d0JBQ25DLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO29CQUMzQixDQUFDO29CQUNBLE1BQU0sQ0FBQyxNQUE0QixDQUFDLFNBQVMsR0FBRyxzQkFBc0IsQ0FDbkUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUNmLE9BQU8sQ0FBQyxZQUFZLEVBQUUsRUFDdEIsT0FBTyxDQUFDLE9BQU8sRUFBd0IsRUFDdkMsS0FBSyxDQUNSLENBQUM7Z0JBQ04sQ0FBQztnQkFDRCxPQUFPLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLEVBQUUsTUFBTSxDQUFDLE1BQTJCLENBQUMsQ0FBQztZQUN2RSxDQUFDO1lBQ0QsTUFBTTtRQUNWLENBQUM7UUFDRCxLQUFLLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2pDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7Z0JBQzdCLFFBQTZCLENBQUMsU0FBUyxHQUFHLHNCQUFzQixDQUM3RCxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQ2YsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUN0QixPQUFPLENBQUMsTUFBTSxFQUF1QixFQUNyQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUNqQixDQUFDO2dCQUNGLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxRQUE0QixDQUFDLENBQUM7Z0JBQzNELE1BQU0sU0FBUyxHQUFHO29CQUNkLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7aUJBQ3JELENBQUM7Z0JBQ0YsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHO3dCQUNWLEdBQUcsSUFBSSxDQUFDLE1BQU07d0JBQ2QsR0FBRyxTQUFTO3FCQUNmLENBQUM7Z0JBQ04sQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1lBQ0QsTUFBTTtRQUNWLENBQUM7UUFDRCxLQUFLLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ3pCLElBQUksV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQzNDLE9BQU87WUFDWCxDQUFDO1lBQ0QsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN2QyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUM3QyxNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDeEIsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDM0MsT0FBTztZQUNYLENBQUM7WUFDRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzNDLE1BQU07UUFDVixDQUFDO1FBQ0QsS0FBSyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztZQUMxQixNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUM5QixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLE9BQU8sQ0FBQyxDQUFDO1lBQzlFLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xCLE1BQU0sQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO2dCQUM3QixPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7b0JBQ3JCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDaEMsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1lBQ0QsTUFBTTtRQUNWLENBQUM7UUFDRCxLQUFLLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQzNCLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQy9CLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssUUFBUSxDQUFDLENBQUM7WUFDakYsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbkMsQ0FBQztZQUNELE1BQU07UUFDVixDQUFDO1FBRUQsS0FBSyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztZQUN2QixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQWlCLENBQUM7WUFDakYsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDUixLQUFLLE1BQU0sR0FBRyxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztvQkFDckMsTUFBTSxDQUFDLEdBQUcsR0FBeUIsQ0FBQztvQkFDcEMsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDdEMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7d0JBQ2hCLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNwQixDQUFDO3lCQUFNLENBQUM7d0JBQ0gsS0FBSyxDQUFDLENBQUMsQ0FBUyxHQUFHLEtBQUssQ0FBQztvQkFDOUIsQ0FBQztnQkFDTCxDQUFDO2dCQUVELGdGQUFnRjtnQkFDaEYsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ2xDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO3dCQUM1QyxPQUFPLEtBQUssQ0FBcUIsR0FBRyxDQUFDLENBQUM7b0JBQzFDLENBQUM7Z0JBQ0wsQ0FBQztZQUNMLENBQUM7WUFDRCxNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7WUFDdEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFnQixDQUFDO1lBQzlFLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1AsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7b0JBQ3JDLE1BQU0sQ0FBQyxHQUFHLEdBQXdCLENBQUM7b0JBQ25DLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO3dCQUNoQixPQUFPLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbkIsQ0FBQzt5QkFBTSxDQUFDO3dCQUNILElBQUksQ0FBQyxDQUFDLENBQVMsR0FBRyxLQUFLLENBQUM7b0JBQzdCLENBQUM7Z0JBQ0wsQ0FBQztnQkFFRCxnRkFBZ0Y7Z0JBQ2hGLEtBQUssTUFBTSxHQUFHLElBQUksTUFBTSxDQUFDLFVBQVUsRUFBRSxDQUFDO29CQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQzt3QkFDNUMsT0FBTyxJQUFJLENBQW9CLEdBQUcsQ0FBQyxDQUFDO29CQUN4QyxDQUFDO2dCQUNMLENBQUM7WUFDTCxDQUFDO1lBQ0QsTUFBTTtRQUNWLENBQUM7UUFDRCxLQUFLLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2hDLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUMsQ0FBQztZQUNELE1BQU07UUFDVixDQUFDO1FBQ0QsS0FBSyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUN6QixNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztZQUM3QixNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQ2pFLElBQUksU0FBUyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFDRCxNQUFNO1FBQ1YsQ0FBQztRQUNELEtBQUssVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztZQUNqQyxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sQ0FBQztZQUNuQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVELElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxZQUFZLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztnQkFDN0MsS0FBSyxNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDMUIsSUFBSSxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQzt3QkFDMUQsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzdCLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBVyxDQUFDO29CQUNqRCxDQUFDO2dCQUNMLENBQUM7Z0JBQ0QsTUFBTSxDQUFDLFNBQVMsR0FBRyxZQUFZLENBQUM7WUFDcEMsQ0FBQztZQUNELE1BQU07UUFDVixDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU87UUFDSCxPQUFPO1FBQ1AsTUFBTTtRQUNOLEtBQUs7S0FDUixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFHO0lBQzFCLFNBQVMsQ0FBQyxPQUFvQixFQUFFLE1BQXFCO1FBQ2pELE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQXVCLENBQUM7UUFDckUsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBc0IsQ0FBQztRQUNsRSxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDM0MsS0FBSyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUMvQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUN4QyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztRQUMxQyxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMxQyxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWN0aW9uTmFtZSxcbiAgICBBSVRhYmxlQWN0aW9uLFxuICAgIEFJVGFibGVWaWV3LFxuICAgIEFJVGFibGVWaWV3RmllbGQsXG4gICAgQUlUYWJsZVZpZXdGaWVsZHMsXG4gICAgQUlUYWJsZVZpZXdSZWNvcmQsXG4gICAgQUlUYWJsZVZpZXdSZWNvcmRzLFxuICAgIEFJVmlld1RhYmxlXG59IGZyb20gJy4uL3R5cGVzJztcbmltcG9ydCB7IGNyZWF0ZURyYWZ0LCBmaW5pc2hEcmFmdCB9IGZyb20gJ2ltbWVyJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkcywgZ2V0RGVmYXVsdEZpZWxkVmFsdWUgfSBmcm9tICdAYWktdGFibGUvZ3JpZCc7XG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0UG9zaXRpb25zLCBpc1BhdGhFcXVhbCB9IGZyb20gJy4uL3V0aWxzJztcblxuY29uc3QgYXBwbHkgPSAoYWlUYWJsZTogQUlWaWV3VGFibGUsIHJlY29yZHM6IEFJVGFibGVWaWV3UmVjb3JkcywgZmllbGRzOiBBSVRhYmxlRmllbGRzLCB2aWV3czogQUlUYWJsZVZpZXdbXSwgYWN0aW9uOiBBSVRhYmxlQWN0aW9uKSA9PiB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuVXBkYXRlRmllbGRWYWx1ZToge1xuICAgICAgICAgICAgY29uc3QgW3JlY29yZElkLCBmaWVsZElkXSA9IGFjdGlvbi5wYXRoO1xuICAgICAgICAgICAgaWYgKHJlY29yZElkICYmIGZpZWxkSWQpIHtcbiAgICAgICAgICAgICAgICBjb25zdCByZWNvcmRJbmRleCA9IGFpVGFibGUucmVjb3JkcygpLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IHJlY29yZElkKTtcbiAgICAgICAgICAgICAgICByZWNvcmRzW3JlY29yZEluZGV4XS52YWx1ZXNbZmllbGRJZF0gPSBhY3Rpb24ubmV3RmllbGRWYWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5VcGRhdGVTeXN0ZW1GaWVsZFZhbHVlOiB7XG4gICAgICAgICAgICBjb25zdCBbcmVjb3JkSWRdID0gYWN0aW9uLnBhdGg7XG4gICAgICAgICAgICBpZiAocmVjb3JkSWQgJiYgYWN0aW9uLnVwZGF0ZWRJbmZvKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSBhaVRhYmxlLnJlY29yZHMoKS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSByZWNvcmRJZCk7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbi51cGRhdGVkSW5mby51cGRhdGVkX2F0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZHNbcmVjb3JkSW5kZXhdLnVwZGF0ZWRfYXQgPSBhY3Rpb24udXBkYXRlZEluZm8udXBkYXRlZF9hdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGFjdGlvbi51cGRhdGVkSW5mby51cGRhdGVkX2J5KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZHNbcmVjb3JkSW5kZXhdLnVwZGF0ZWRfYnkgPSBhY3Rpb24udXBkYXRlZEluZm8udXBkYXRlZF9ieTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuQWRkUmVjb3JkOiB7XG4gICAgICAgICAgICBjb25zdCBbcmVjb3JkSW5kZXhdID0gYWN0aW9uLnBhdGg7XG4gICAgICAgICAgICBpZiAocmVjb3JkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGlmICghKGFjdGlvbi5yZWNvcmQgYXMgQUlUYWJsZVZpZXdSZWNvcmQpLnBvc2l0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3RpdmVWaWV3ID0gYWlUYWJsZS52aWV3cygpLmZpbmQoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSBhaVRhYmxlLmFjdGl2ZVZpZXdJZCgpKTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGluZGV4ID0gcmVjb3JkSW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmVWaWV3Py5zZXR0aW5ncz8uY29uZGl0aW9ucykge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW5kZXggPSByZWNvcmRzLmxlbmd0aDtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAoYWN0aW9uLnJlY29yZCBhcyBBSVRhYmxlVmlld1JlY29yZCkucG9zaXRpb25zID0gY3JlYXRlRGVmYXVsdFBvc2l0aW9ucyhcbiAgICAgICAgICAgICAgICAgICAgICAgIGFpVGFibGUudmlld3MoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFpVGFibGUuYWN0aXZlVmlld0lkKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLnJlY29yZHMoKSBhcyBBSVRhYmxlVmlld1JlY29yZHMsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbmRleFxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZWNvcmRzLnNwbGljZShyZWNvcmRJbmRleCwgMCwgYWN0aW9uLnJlY29yZCBhcyBBSVRhYmxlVmlld1JlY29yZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuQWRkRmllbGQ6IHtcbiAgICAgICAgICAgIGNvbnN0IFtmaWVsZEluZGV4XSA9IGFjdGlvbi5wYXRoO1xuICAgICAgICAgICAgaWYgKGZpZWxkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0ZpZWxkID0gYWN0aW9uLmZpZWxkO1xuICAgICAgICAgICAgICAgIChuZXdGaWVsZCBhcyBBSVRhYmxlVmlld0ZpZWxkKS5wb3NpdGlvbnMgPSBjcmVhdGVEZWZhdWx0UG9zaXRpb25zKFxuICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLnZpZXdzKCksXG4gICAgICAgICAgICAgICAgICAgIGFpVGFibGUuYWN0aXZlVmlld0lkKCksXG4gICAgICAgICAgICAgICAgICAgIGFpVGFibGUuZmllbGRzKCkgYXMgQUlUYWJsZVZpZXdGaWVsZHMsXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5wYXRoWzBdXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBmaWVsZHMuc3BsaWNlKGZpZWxkSW5kZXgsIDAsIG5ld0ZpZWxkIGFzIEFJVGFibGVWaWV3RmllbGQpO1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld1JlY29yZCA9IHtcbiAgICAgICAgICAgICAgICAgICAgW25ld0ZpZWxkLl9pZF06IGdldERlZmF1bHRGaWVsZFZhbHVlKGFjdGlvbi5maWVsZClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHJlY29yZHMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpdGVtLnZhbHVlcyA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLml0ZW0udmFsdWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4ubmV3UmVjb3JkXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuTW92ZVJlY29yZDoge1xuICAgICAgICAgICAgaWYgKGlzUGF0aEVxdWFsKGFjdGlvbi5wYXRoLCBhY3Rpb24ubmV3UGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCByZWNvcmQgPSByZWNvcmRzW2FjdGlvbi5wYXRoWzBdXTtcbiAgICAgICAgICAgIHJlY29yZHMuc3BsaWNlKGFjdGlvbi5wYXRoWzBdLCAxKTtcbiAgICAgICAgICAgIHJlY29yZHMuc3BsaWNlKGFjdGlvbi5uZXdQYXRoWzBdLCAwLCByZWNvcmQpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLk1vdmVGaWVsZDoge1xuICAgICAgICAgICAgaWYgKGlzUGF0aEVxdWFsKGFjdGlvbi5wYXRoLCBhY3Rpb24ubmV3UGF0aCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBmaWVsZCA9IGZpZWxkc1thY3Rpb24ucGF0aFswXV07XG4gICAgICAgICAgICBmaWVsZHMuc3BsaWNlKGFjdGlvbi5wYXRoWzBdLCAxKTtcbiAgICAgICAgICAgIGZpZWxkcy5zcGxpY2UoYWN0aW9uLm5ld1BhdGhbMF0sIDAsIGZpZWxkKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5SZW1vdmVGaWVsZDoge1xuICAgICAgICAgICAgY29uc3QgW2ZpZWxkSWRdID0gYWN0aW9uLnBhdGg7XG4gICAgICAgICAgICBjb25zdCBmaWVsZEluZGV4ID0gYWlUYWJsZS5maWVsZHMoKS5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSBmaWVsZElkKTtcbiAgICAgICAgICAgIGlmIChmaWVsZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgICBmaWVsZHMuc3BsaWNlKGZpZWxkSW5kZXgsIDEpO1xuICAgICAgICAgICAgICAgIHJlY29yZHMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgaXRlbS52YWx1ZXNbZmllbGRJZF07XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuUmVtb3ZlUmVjb3JkOiB7XG4gICAgICAgICAgICBjb25zdCBbcmVjb3JkSWRdID0gYWN0aW9uLnBhdGg7XG4gICAgICAgICAgICBjb25zdCByZWNvcmRJbmRleCA9IGFpVGFibGUucmVjb3JkcygpLmZpbmRJbmRleCgoaXRlbSkgPT4gaXRlbS5faWQgPT09IHJlY29yZElkKTtcbiAgICAgICAgICAgIGlmIChyZWNvcmRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgcmVjb3Jkcy5zcGxpY2UocmVjb3JkSW5kZXgsIDEpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuU2V0RmllbGQ6IHtcbiAgICAgICAgICAgIGNvbnN0IGZpZWxkID0gZmllbGRzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSBhY3Rpb24ucGF0aFswXSkgYXMgQUlUYWJsZUZpZWxkO1xuICAgICAgICAgICAgaWYgKGZpZWxkKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYWN0aW9uLm5ld1Byb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgayA9IGtleSBhcyBrZXlvZiBBSVRhYmxlRmllbGQ7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYWN0aW9uLm5ld1Byb3BlcnRpZXNba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZmllbGRba107XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAoZmllbGRba10gYXMgYW55KSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gcHJvcGVydGllcyB0aGF0IHdlcmUgcHJldmlvdXNseSBkZWZpbmVkLCBidXQgYXJlIG5vdyBtaXNzaW5nLCBtdXN0IGJlIGRlbGV0ZWRcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBhY3Rpb24ucHJvcGVydGllcykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGlvbi5uZXdQcm9wZXJ0aWVzLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmaWVsZFs8a2V5b2YgQUlUYWJsZUZpZWxkPmtleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuU2V0Vmlldzoge1xuICAgICAgICAgICAgY29uc3QgdmlldyA9IHZpZXdzLmZpbmQoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSBhY3Rpb24ucGF0aFswXSkgYXMgQUlUYWJsZVZpZXc7XG4gICAgICAgICAgICBpZiAodmlldykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGFjdGlvbi5uZXdQcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGsgPSBrZXkgYXMga2V5b2YgQUlUYWJsZVZpZXc7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYWN0aW9uLm5ld1Byb3BlcnRpZXNba107XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdmlld1trXTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICh2aWV3W2tdIGFzIGFueSkgPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIC8vIHByb3BlcnRpZXMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgZGVmaW5lZCwgYnV0IGFyZSBub3cgbWlzc2luZywgbXVzdCBiZSBkZWxldGVkXG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gYWN0aW9uLnByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFhY3Rpb24ubmV3UHJvcGVydGllcy5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgdmlld1s8a2V5b2YgQUlUYWJsZVZpZXc+a2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5BZGRWaWV3OiB7XG4gICAgICAgICAgICBjb25zdCBbdmlld0luZGV4XSA9IGFjdGlvbi5wYXRoO1xuICAgICAgICAgICAgaWYgKHZpZXdJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgdmlld3Muc3BsaWNlKHZpZXdJbmRleCwgMCwgYWN0aW9uLnZpZXcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLlJlbW92ZVZpZXc6IHtcbiAgICAgICAgICAgIGNvbnN0IFt2aWV3SWRdID0gYWN0aW9uLnBhdGg7XG4gICAgICAgICAgICBjb25zdCB2aWV3SW5kZXggPSB2aWV3cy5maW5kSW5kZXgoKGl0ZW0pID0+IGl0ZW0uX2lkID09PSB2aWV3SWQpO1xuICAgICAgICAgICAgaWYgKHZpZXdJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgdmlld3Muc3BsaWNlKHZpZXdJbmRleCwgMSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuU2V0UmVjb3JkUG9zaXRpb25zOiB7XG4gICAgICAgICAgICBjb25zdCB7IHBvc2l0aW9ucywgcGF0aCB9ID0gYWN0aW9uO1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gcmVjb3Jkcy5maW5kKChpdGVtKSA9PiBpdGVtLl9pZCA9PT0gcGF0aFswXSk7XG4gICAgICAgICAgICBpZiAocmVjb3JkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3UG9zaXRpb25zID0geyAuLi5yZWNvcmQucG9zaXRpb25zIH07XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBrZXkgaW4gcG9zaXRpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwb3NpdGlvbnNba2V5XSA9PT0gbnVsbCB8fCBwb3NpdGlvbnNba2V5XSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgbmV3UG9zaXRpb25zW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdQb3NpdGlvbnNba2V5XSA9IHBvc2l0aW9uc1trZXldIGFzIG51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZWNvcmQucG9zaXRpb25zID0gbmV3UG9zaXRpb25zO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVjb3JkcyxcbiAgICAgICAgZmllbGRzLFxuICAgICAgICB2aWV3c1xuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgR2VuZXJhbEFjdGlvbnMgPSB7XG4gICAgdHJhbnNmb3JtKGFpVGFibGU6IEFJVmlld1RhYmxlLCBhY3Rpb246IEFJVGFibGVBY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVjb3JkcyA9IGNyZWF0ZURyYWZ0KGFpVGFibGUucmVjb3JkcygpKSBhcyBBSVRhYmxlVmlld1JlY29yZHM7XG4gICAgICAgIGNvbnN0IGZpZWxkcyA9IGNyZWF0ZURyYWZ0KGFpVGFibGUuZmllbGRzKCkpIGFzIEFJVGFibGVWaWV3RmllbGRzO1xuICAgICAgICBjb25zdCB2aWV3cyA9IGNyZWF0ZURyYWZ0KGFpVGFibGUudmlld3MoKSk7XG4gICAgICAgIGFwcGx5KGFpVGFibGUsIHJlY29yZHMsIGZpZWxkcywgdmlld3MsIGFjdGlvbik7XG4gICAgICAgIGFpVGFibGUuZmllbGRzLnNldChmaW5pc2hEcmFmdChmaWVsZHMpKTtcbiAgICAgICAgYWlUYWJsZS5yZWNvcmRzLnNldChmaW5pc2hEcmFmdChyZWNvcmRzKSk7XG4gICAgICAgIGFpVGFibGUudmlld3Muc2V0KGZpbmlzaERyYWZ0KHZpZXdzKSk7XG4gICAgfVxufTtcbiJdfQ==
|
package/esm2022/action/index.mjs
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { FieldActions } from './field';
|
2
2
|
import { GeneralActions } from './general';
|
3
|
-
import {
|
3
|
+
import { PositionsActions } from './position';
|
4
4
|
import { RecordActions } from './record';
|
5
5
|
import { ViewActions } from './view';
|
6
6
|
export const Actions = {
|
@@ -8,6 +8,6 @@ export const Actions = {
|
|
8
8
|
...RecordActions,
|
9
9
|
...FieldActions,
|
10
10
|
...ViewActions,
|
11
|
-
...
|
11
|
+
...PositionsActions
|
12
12
|
};
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdGF0ZS9zcmMvYWN0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDdkMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDOUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXJDLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNuQixHQUFHLGNBQWM7SUFDakIsR0FBRyxhQUFhO0lBQ2hCLEdBQUcsWUFBWTtJQUNmLEdBQUcsV0FBVztJQUNkLEdBQUcsZ0JBQWdCO0NBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZEFjdGlvbnMgfSBmcm9tICcuL2ZpZWxkJztcbmltcG9ydCB7IEdlbmVyYWxBY3Rpb25zIH0gZnJvbSAnLi9nZW5lcmFsJztcbmltcG9ydCB7IFBvc2l0aW9uc0FjdGlvbnMgfSBmcm9tICcuL3Bvc2l0aW9uJztcbmltcG9ydCB7IFJlY29yZEFjdGlvbnMgfSBmcm9tICcuL3JlY29yZCc7XG5pbXBvcnQgeyBWaWV3QWN0aW9ucyB9IGZyb20gJy4vdmlldyc7XG5cbmV4cG9ydCBjb25zdCBBY3Rpb25zID0ge1xuICAgIC4uLkdlbmVyYWxBY3Rpb25zLFxuICAgIC4uLlJlY29yZEFjdGlvbnMsXG4gICAgLi4uRmllbGRBY3Rpb25zLFxuICAgIC4uLlZpZXdBY3Rpb25zLFxuICAgIC4uLlBvc2l0aW9uc0FjdGlvbnNcbn07XG4iXX0=
|
@@ -1,21 +1,13 @@
|
|
1
|
-
import { ActionName } from
|
2
|
-
export function
|
1
|
+
import { ActionName } from '../types';
|
2
|
+
export function setRecordPositions(aiTable, positions, path) {
|
3
3
|
const operation = {
|
4
|
-
type: ActionName.
|
5
|
-
|
4
|
+
type: ActionName.SetRecordPositions,
|
5
|
+
positions,
|
6
6
|
path
|
7
7
|
};
|
8
8
|
aiTable.apply(operation);
|
9
9
|
}
|
10
|
-
export
|
11
|
-
|
12
|
-
type: ActionName.RemoveRecordPosition,
|
13
|
-
path
|
14
|
-
};
|
15
|
-
aiTable.apply(operation);
|
16
|
-
}
|
17
|
-
export const PositionActions = {
|
18
|
-
setRecordPosition,
|
19
|
-
removeRecordPosition
|
10
|
+
export const PositionsActions = {
|
11
|
+
setRecordPositions
|
20
12
|
};
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9zaXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9zdGF0ZS9zcmMvYWN0aW9uL3Bvc2l0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQW9FLE1BQU0sVUFBVSxDQUFDO0FBR3hHLE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFvQixFQUFFLFNBQXNDLEVBQUUsSUFBWTtJQUN6RyxNQUFNLFNBQVMsR0FBNEI7UUFDdkMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxrQkFBa0I7UUFDbkMsU0FBUztRQUNULElBQUk7S0FDUCxDQUFDO0lBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUc7SUFDNUIsa0JBQWtCO0NBQ3JCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25OYW1lLCBTZXRSZWNvcmRQb3NpdGlvbkFjdGlvbiwgQUlWaWV3VGFibGUsIFBvc2l0aW9ucywgUmVtb3ZlUG9zaXRpb25zIH0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHsgSWRQYXRoIH0gZnJvbSAnQGFpLXRhYmxlL2dyaWQnO1xuXG5leHBvcnQgZnVuY3Rpb24gc2V0UmVjb3JkUG9zaXRpb25zKGFpVGFibGU6IEFJVmlld1RhYmxlLCBwb3NpdGlvbnM6IFBvc2l0aW9ucyB8IFJlbW92ZVBvc2l0aW9ucywgcGF0aDogSWRQYXRoKSB7XG4gICAgY29uc3Qgb3BlcmF0aW9uOiBTZXRSZWNvcmRQb3NpdGlvbkFjdGlvbiA9IHtcbiAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5TZXRSZWNvcmRQb3NpdGlvbnMsXG4gICAgICAgIHBvc2l0aW9ucyxcbiAgICAgICAgcGF0aFxuICAgIH07XG4gICAgYWlUYWJsZS5hcHBseShvcGVyYXRpb24pO1xufVxuXG5leHBvcnQgY29uc3QgUG9zaXRpb25zQWN0aW9ucyA9IHtcbiAgICBzZXRSZWNvcmRQb3NpdGlvbnNcbn07XG4iXX0=
|
@@ -12,6 +12,14 @@ export function updateFieldValue(aiTable, value, path) {
|
|
12
12
|
aiTable.apply(operation);
|
13
13
|
}
|
14
14
|
}
|
15
|
+
export function updateSystemFieldValue(aiTable, path, updatedInfo) {
|
16
|
+
const operation = {
|
17
|
+
type: ActionName.UpdateSystemFieldValue,
|
18
|
+
updatedInfo,
|
19
|
+
path
|
20
|
+
};
|
21
|
+
aiTable.apply(operation);
|
22
|
+
}
|
15
23
|
export function addRecord(aiTable, record, path) {
|
16
24
|
const operation = {
|
17
25
|
type: ActionName.AddRecord,
|
@@ -39,6 +47,7 @@ export const RecordActions = {
|
|
39
47
|
addRecord,
|
40
48
|
updateFieldValue,
|
41
49
|
moveRecord,
|
42
|
-
removeRecord
|
50
|
+
removeRecord,
|
51
|
+
updateSystemFieldValue
|
43
52
|
};
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjb3JkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RhdGUvc3JjL2FjdGlvbi9yZWNvcmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixjQUFjLEVBQStELE1BQU0sZ0JBQWdCLENBQUM7QUFDakksT0FBTyxFQUVILFVBQVUsRUFNYixNQUFNLFVBQVUsQ0FBQztBQUVsQixNQUFNLFVBQVUsZ0JBQWdCLENBQUMsT0FBb0IsRUFBRSxLQUFVLEVBQUUsSUFBd0I7SUFDdkYsTUFBTSxRQUFRLEdBQUcsY0FBYyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDN0QsSUFBSSxRQUFRLEtBQUssS0FBSyxFQUFFLENBQUM7UUFDckIsTUFBTSxTQUFTLEdBQTJCO1lBQ3RDLElBQUksRUFBRSxVQUFVLENBQUMsZ0JBQWdCO1lBQ2pDLFVBQVUsRUFBRSxRQUFRO1lBQ3BCLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLElBQUk7U0FDUCxDQUFDO1FBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM3QixDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxPQUFvQixFQUFFLElBQVksRUFBRSxXQUFxQztJQUM1RyxNQUFNLFNBQVMsR0FBMkI7UUFDdEMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxzQkFBc0I7UUFDdkMsV0FBVztRQUNYLElBQUk7S0FDUCxDQUFDO0lBQ0YsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM3QixDQUFDO0FBRUQsTUFBTSxVQUFVLFNBQVMsQ0FBQyxPQUFvQixFQUFFLE1BQXFCLEVBQUUsSUFBZ0I7SUFDbkYsTUFBTSxTQUFTLEdBQW9CO1FBQy9CLElBQUksRUFBRSxVQUFVLENBQUMsU0FBUztRQUMxQixNQUFNO1FBQ04sSUFBSTtLQUNQLENBQUM7SUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLFVBQVUsVUFBVSxDQUFDLE9BQW9CLEVBQUUsSUFBZ0IsRUFBRSxPQUFtQjtJQUNsRixNQUFNLFNBQVMsR0FBcUI7UUFDaEMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxVQUFVO1FBQzNCLElBQUk7UUFDSixPQUFPO0tBQ1YsQ0FBQztJQUNGLE9BQU8sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDN0IsQ0FBQztBQUVELE1BQU0sVUFBVSxZQUFZLENBQUMsT0FBb0IsRUFBRSxJQUFZO0lBQzNELE1BQU0sU0FBUyxHQUF1QjtRQUNsQyxJQUFJLEVBQUUsVUFBVSxDQUFDLFlBQVk7UUFDN0IsSUFBSTtLQUNQLENBQUM7SUFDRixPQUFPLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQzdCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUc7SUFDekIsU0FBUztJQUNULGdCQUFnQjtJQUNoQixVQUFVO0lBQ1YsWUFBWTtJQUNaLHNCQUFzQjtDQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlGaWVsZFZhbHVlSWRQYXRoLCBBSVRhYmxlUXVlcmllcywgQUlUYWJsZVJlY29yZCwgQUlUYWJsZVJlY29yZFVwZGF0ZWRJbmZvLCBJZFBhdGgsIE51bWJlclBhdGggfSBmcm9tICdAYWktdGFibGUvZ3JpZCc7XG5pbXBvcnQge1xuICAgIFVwZGF0ZUZpZWxkVmFsdWVBY3Rpb24sXG4gICAgQWN0aW9uTmFtZSxcbiAgICBBZGRSZWNvcmRBY3Rpb24sXG4gICAgTW92ZVJlY29yZEFjdGlvbixcbiAgICBSZW1vdmVSZWNvcmRBY3Rpb24sXG4gICAgQUlWaWV3VGFibGUsXG4gICAgVXBkYXRlU3lzdGVtRmllbGRWYWx1ZVxufSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiB1cGRhdGVGaWVsZFZhbHVlKGFpVGFibGU6IEFJVmlld1RhYmxlLCB2YWx1ZTogYW55LCBwYXRoOiBBSUZpZWxkVmFsdWVJZFBhdGgpIHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkVmFsdWUoYWlUYWJsZSwgcGF0aCk7XG4gICAgaWYgKG9sZFZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgICBjb25zdCBvcGVyYXRpb246IFVwZGF0ZUZpZWxkVmFsdWVBY3Rpb24gPSB7XG4gICAgICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLlVwZGF0ZUZpZWxkVmFsdWUsXG4gICAgICAgICAgICBmaWVsZFZhbHVlOiBvbGRWYWx1ZSxcbiAgICAgICAgICAgIG5ld0ZpZWxkVmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgcGF0aFxuICAgICAgICB9O1xuICAgICAgICBhaVRhYmxlLmFwcGx5KG9wZXJhdGlvbik7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdXBkYXRlU3lzdGVtRmllbGRWYWx1ZShhaVRhYmxlOiBBSVZpZXdUYWJsZSwgcGF0aDogSWRQYXRoLCB1cGRhdGVkSW5mbzogQUlUYWJsZVJlY29yZFVwZGF0ZWRJbmZvKSB7XG4gICAgY29uc3Qgb3BlcmF0aW9uOiBVcGRhdGVTeXN0ZW1GaWVsZFZhbHVlID0ge1xuICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLlVwZGF0ZVN5c3RlbUZpZWxkVmFsdWUsXG4gICAgICAgIHVwZGF0ZWRJbmZvLFxuICAgICAgICBwYXRoXG4gICAgfTtcbiAgICBhaVRhYmxlLmFwcGx5KG9wZXJhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBhZGRSZWNvcmQoYWlUYWJsZTogQUlWaWV3VGFibGUsIHJlY29yZDogQUlUYWJsZVJlY29yZCwgcGF0aDogTnVtYmVyUGF0aCkge1xuICAgIGNvbnN0IG9wZXJhdGlvbjogQWRkUmVjb3JkQWN0aW9uID0ge1xuICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLkFkZFJlY29yZCxcbiAgICAgICAgcmVjb3JkLFxuICAgICAgICBwYXRoXG4gICAgfTtcbiAgICBhaVRhYmxlLmFwcGx5KG9wZXJhdGlvbik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb3ZlUmVjb3JkKGFpVGFibGU6IEFJVmlld1RhYmxlLCBwYXRoOiBOdW1iZXJQYXRoLCBuZXdQYXRoOiBOdW1iZXJQYXRoKSB7XG4gICAgY29uc3Qgb3BlcmF0aW9uOiBNb3ZlUmVjb3JkQWN0aW9uID0ge1xuICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLk1vdmVSZWNvcmQsXG4gICAgICAgIHBhdGgsXG4gICAgICAgIG5ld1BhdGhcbiAgICB9O1xuICAgIGFpVGFibGUuYXBwbHkob3BlcmF0aW9uKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHJlbW92ZVJlY29yZChhaVRhYmxlOiBBSVZpZXdUYWJsZSwgcGF0aDogSWRQYXRoKSB7XG4gICAgY29uc3Qgb3BlcmF0aW9uOiBSZW1vdmVSZWNvcmRBY3Rpb24gPSB7XG4gICAgICAgIHR5cGU6IEFjdGlvbk5hbWUuUmVtb3ZlUmVjb3JkLFxuICAgICAgICBwYXRoXG4gICAgfTtcbiAgICBhaVRhYmxlLmFwcGx5KG9wZXJhdGlvbik7XG59XG5cbmV4cG9ydCBjb25zdCBSZWNvcmRBY3Rpb25zID0ge1xuICAgIGFkZFJlY29yZCxcbiAgICB1cGRhdGVGaWVsZFZhbHVlLFxuICAgIG1vdmVSZWNvcmQsXG4gICAgcmVtb3ZlUmVjb3JkLFxuICAgIHVwZGF0ZVN5c3RlbUZpZWxkVmFsdWVcbn07XG4iXX0=
|
@@ -28,12 +28,4 @@ export const EditFieldPropertyItem = {
|
|
28
28
|
return undefined;
|
29
29
|
}
|
30
30
|
};
|
31
|
-
|
32
|
-
type: 'removeField',
|
33
|
-
name: '删除列',
|
34
|
-
icon: 'trash',
|
35
|
-
exec: (aiTable, field) => {
|
36
|
-
Actions.removeField(aiTable, [field()._id]);
|
37
|
-
}
|
38
|
-
};
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbWVudS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RhdGUvc3JjL2NvbnN0YW50cy9maWVsZC1tZW51LWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLCtCQUErQixFQUEyRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFJLE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3BDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUMzQixJQUFJLEVBQUUsU0FBUztDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDakMsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixJQUFJLEVBQUUsS0FBSztJQUNYLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLENBQUMsT0FBb0IsRUFBRSxLQUEyQixFQUFFLE1BQXNDLEVBQUUsUUFBbUMsRUFBRSxFQUFFO1FBQ3JJLE1BQU0sWUFBWSxHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRSxNQUFNLFNBQVMsR0FBaUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELElBQUksTUFBTSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sVUFBVSxHQUFHLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3hELEtBQUssRUFBRSxTQUFTO2dCQUNoQixRQUFRLEVBQUUsSUFBSTtnQkFDZCxNQUFNLEVBQUUsTUFBTztnQkFDZixRQUFRO2FBQ1gsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxVQUFVLElBQUksWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO2dCQUNoRixVQUFVLENBQUMsaUJBQWdELENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUN0RixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQTtnQkFDdEQsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUM7UUFDdEIsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7Q0FDSixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzNCLElBQUksRUFBRSxhQUFhO0lBQ25CLElBQUksRUFBRSxLQUFLO0lBQ1gsSUFBSSxFQUFFLE9BQU87SUFDYixJQUFJLEVBQUUsQ0FBQyxPQUFnQixFQUFFLEtBQTJCLEVBQUUsRUFBRTtRQUNwRCxPQUFPLENBQUMsV0FBVyxDQUFDLE9BQXNCLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQy9ELENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlfVEFCTEVfR1JJRF9GSUVMRF9TRVJWSUNFX01BUCwgQUlUYWJsZSwgQUlUYWJsZUZpZWxkLCBBSVRhYmxlRmllbGRNZW51SXRlbSwgQUlUYWJsZUZpZWxkUHJvcGVydHlFZGl0b3IgfSBmcm9tICdAYWktdGFibGUvZ3JpZCc7XG5pbXBvcnQgeyBFbGVtZW50UmVmLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9uJztcbmltcG9ydCB7IEFJVmlld1RhYmxlIH0gZnJvbSAnLi4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgRGl2aWRlck1lbnVJdGVtID0ge1xuICAgIHR5cGU6ICdkaXZpZGVyJ1xufTtcblxuZXhwb3J0IGNvbnN0IEVkaXRGaWVsZFByb3BlcnR5SXRlbSA9IHtcbiAgICB0eXBlOiAnZWRpdEZpZWxkUHJvcGVydHknLFxuICAgIG5hbWU6ICfnvJbovpHliJcnLFxuICAgIGljb246ICdlZGl0JyxcbiAgICBleGVjOiAoYWlUYWJsZTogQUlWaWV3VGFibGUsIGZpZWxkOiBTaWduYWw8QUlUYWJsZUZpZWxkPiwgb3JpZ2luPzogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPGFueT4sIHBvc2l0aW9uPzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkU2VydmljZSA9IEFJX1RBQkxFX0dSSURfRklFTERfU0VSVklDRV9NQVAuZ2V0KGFpVGFibGUpO1xuICAgICAgICBjb25zdCBjb3B5RmllbGQ6IEFJVGFibGVGaWVsZCA9IF8uY2xvbmVEZWVwKGZpZWxkKCkpO1xuICAgICAgICBpZiAob3JpZ2luICYmIHBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBwb3BvdmVyUmVmID0gZmllbGRTZXJ2aWNlPy5lZGl0RmllbGRQcm9wZXJ0eShhaVRhYmxlLCB7XG4gICAgICAgICAgICAgICAgZmllbGQ6IGNvcHlGaWVsZCxcbiAgICAgICAgICAgICAgICBpc1VwZGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvcmlnaW46IG9yaWdpbiEsXG4gICAgICAgICAgICAgICAgcG9zaXRpb25cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHBvcG92ZXJSZWYgJiYgZmllbGRTZXJ2aWNlICYmICFmaWVsZFNlcnZpY2UuYWlGaWVsZENvbmZpZz8uZmllbGRQcm9wZXJ0eUVkaXRvcikge1xuICAgICAgICAgICAgICAgIChwb3BvdmVyUmVmLmNvbXBvbmVudEluc3RhbmNlIGFzIEFJVGFibGVGaWVsZFByb3BlcnR5RWRpdG9yKS5zZXRGaWVsZC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIEFjdGlvbnMuc2V0RmllbGQoYWlUYWJsZSwgdmFsdWUuZmllbGQsIHZhbHVlLnBhdGgpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcG9wb3ZlclJlZjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn07XG5cbmV4cG9ydCBjb25zdCBSZW1vdmVGaWVsZEl0ZW0gPSB7XG4gICAgdHlwZTogJ3JlbW92ZUZpZWxkJyxcbiAgICBuYW1lOiAn5Yig6Zmk5YiXJyxcbiAgICBpY29uOiAndHJhc2gnLFxuICAgIGV4ZWM6IChhaVRhYmxlOiBBSVRhYmxlLCBmaWVsZDogU2lnbmFsPEFJVGFibGVGaWVsZD4pID0+IHtcbiAgICAgICAgQWN0aW9ucy5yZW1vdmVGaWVsZChhaVRhYmxlIGFzIEFJVmlld1RhYmxlLCBbZmllbGQoKS5faWRdKTtcbiAgICB9XG59O1xuIl19
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtbWVudS1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RhdGUvc3JjL2NvbnN0YW50cy9maWVsZC1tZW51LWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLCtCQUErQixFQUFxRCxNQUFNLGdCQUFnQixDQUFDO0FBRXBILE9BQU8sQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBR3BDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUMzQixJQUFJLEVBQUUsU0FBUztDQUNsQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUc7SUFDakMsSUFBSSxFQUFFLG1CQUFtQjtJQUN6QixJQUFJLEVBQUUsS0FBSztJQUNYLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLENBQ0YsT0FBb0IsRUFDcEIsS0FBMkIsRUFDM0IsTUFBc0MsRUFDdEMsUUFBbUMsRUFDckMsRUFBRTtRQUNBLE1BQU0sWUFBWSxHQUFHLCtCQUErQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsRSxNQUFNLFNBQVMsR0FBaUIsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELElBQUksTUFBTSxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ3JCLE1BQU0sVUFBVSxHQUFHLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3hELEtBQUssRUFBRSxTQUFTO2dCQUNoQixRQUFRLEVBQUUsSUFBSTtnQkFDZCxNQUFNLEVBQUUsTUFBTztnQkFDZixRQUFRO2FBQ1gsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxVQUFVLElBQUksWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxDQUFDO2dCQUNoRixVQUFVLENBQUMsaUJBQWdELENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUN0RixPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDdkQsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1lBQ0QsT0FBTyxVQUFVLENBQUM7UUFDdEIsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7Q0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlfVEFCTEVfR1JJRF9GSUVMRF9TRVJWSUNFX01BUCwgQUlUYWJsZSwgQUlUYWJsZUZpZWxkLCBBSVRhYmxlRmllbGRQcm9wZXJ0eUVkaXRvciB9IGZyb20gJ0BhaS10YWJsZS9ncmlkJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEFjdGlvbnMgfSBmcm9tICcuLi9hY3Rpb24nO1xuaW1wb3J0IHsgQUlWaWV3VGFibGUgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBEaXZpZGVyTWVudUl0ZW0gPSB7XG4gICAgdHlwZTogJ2RpdmlkZXInXG59O1xuXG5leHBvcnQgY29uc3QgRWRpdEZpZWxkUHJvcGVydHlJdGVtID0ge1xuICAgIHR5cGU6ICdlZGl0RmllbGRQcm9wZXJ0eScsXG4gICAgbmFtZTogJ+e8lui+keWIlycsXG4gICAgaWNvbjogJ2VkaXQnLFxuICAgIGV4ZWM6IChcbiAgICAgICAgYWlUYWJsZTogQUlWaWV3VGFibGUsXG4gICAgICAgIGZpZWxkOiBTaWduYWw8QUlUYWJsZUZpZWxkPixcbiAgICAgICAgb3JpZ2luPzogSFRNTEVsZW1lbnQgfCBFbGVtZW50UmVmPGFueT4sXG4gICAgICAgIHBvc2l0aW9uPzogeyB4OiBudW1iZXI7IHk6IG51bWJlciB9XG4gICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkU2VydmljZSA9IEFJX1RBQkxFX0dSSURfRklFTERfU0VSVklDRV9NQVAuZ2V0KGFpVGFibGUpO1xuICAgICAgICBjb25zdCBjb3B5RmllbGQ6IEFJVGFibGVGaWVsZCA9IF8uY2xvbmVEZWVwKGZpZWxkKCkpO1xuICAgICAgICBpZiAob3JpZ2luICYmIHBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBwb3BvdmVyUmVmID0gZmllbGRTZXJ2aWNlPy5lZGl0RmllbGRQcm9wZXJ0eShhaVRhYmxlLCB7XG4gICAgICAgICAgICAgICAgZmllbGQ6IGNvcHlGaWVsZCxcbiAgICAgICAgICAgICAgICBpc1VwZGF0ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBvcmlnaW46IG9yaWdpbiEsXG4gICAgICAgICAgICAgICAgcG9zaXRpb25cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKHBvcG92ZXJSZWYgJiYgZmllbGRTZXJ2aWNlICYmICFmaWVsZFNlcnZpY2UuYWlGaWVsZENvbmZpZz8uZmllbGRQcm9wZXJ0eUVkaXRvcikge1xuICAgICAgICAgICAgICAgIChwb3BvdmVyUmVmLmNvbXBvbmVudEluc3RhbmNlIGFzIEFJVGFibGVGaWVsZFByb3BlcnR5RWRpdG9yKS5zZXRGaWVsZC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIEFjdGlvbnMuc2V0RmllbGQoYWlUYWJsZSwgdmFsdWUuZmllbGQsIHZhbHVlLnBhdGgpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHBvcG92ZXJSZWY7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59O1xuIl19
|
@@ -1,8 +1,8 @@
|
|
1
1
|
import { isArray } from 'ngx-tethys/util';
|
2
2
|
import * as Y from 'yjs';
|
3
|
-
import { ActionName
|
4
|
-
import { getShareTypeNumberPath, translatePositionToPath } from '../utils';
|
5
|
-
import { getSharedMapValueId, getSharedRecordId,
|
3
|
+
import { ActionName } from '../../types';
|
4
|
+
import { getIdBySystemFieldValues, getShareTypeNumberPath, getTrackableEntityBySystemFieldValues, translatePositionToPath } from '../utils';
|
5
|
+
import { getPositionsBySystemFieldValues, getSharedMapValueId, getSharedRecord, getSharedRecordId, getValuesByCustomFieldValues, POSITIONS_INDEX, UPDATED_BY_INDEX } from '../utils/translate';
|
6
6
|
import { AITableQueries } from '@ai-table/grid';
|
7
7
|
export default function translateArrayEvent(aiTable, sharedType, event) {
|
8
8
|
let offset = 0;
|
@@ -47,15 +47,18 @@ export default function translateArrayEvent(aiTable, sharedType, event) {
|
|
47
47
|
if (isAddOrRemove(targetPath)) {
|
48
48
|
delta.insert?.map((item) => {
|
49
49
|
const data = item.toJSON();
|
50
|
-
const [
|
51
|
-
const
|
50
|
+
const [systemFieldValues, customFieldValues] = data;
|
51
|
+
const positions = getPositionsBySystemFieldValues(customFieldValues);
|
52
|
+
const position = positions[activeViewId];
|
52
53
|
const path = translatePositionToPath(aiTable.records(), position, activeViewId);
|
53
54
|
actions.push({
|
54
55
|
type: ActionName.AddRecord,
|
55
56
|
path: path,
|
56
57
|
record: {
|
57
|
-
_id:
|
58
|
-
|
58
|
+
_id: getIdBySystemFieldValues(systemFieldValues),
|
59
|
+
...getTrackableEntityBySystemFieldValues(systemFieldValues),
|
60
|
+
positions: getPositionsBySystemFieldValues(customFieldValues),
|
61
|
+
values: getValuesByCustomFieldValues(customFieldValues, aiTable.fields())
|
59
62
|
}
|
60
63
|
});
|
61
64
|
});
|
@@ -64,30 +67,34 @@ export default function translateArrayEvent(aiTable, sharedType, event) {
|
|
64
67
|
try {
|
65
68
|
const sharedRecords = sharedType.get('records');
|
66
69
|
const sharedFields = sharedType.get('fields');
|
70
|
+
let systemFieldOffset = 0;
|
67
71
|
delta.insert?.map((item) => {
|
68
72
|
const recordIndex = targetPath[0];
|
69
73
|
const fieldIndex = offset;
|
70
74
|
const record = aiTable.records()[recordIndex];
|
71
|
-
if (
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
path: [record._id],
|
77
|
-
position: {
|
78
|
-
[key]: item[key]
|
79
|
-
}
|
80
|
-
});
|
75
|
+
if (isSystemFieldOperation(targetPath)) {
|
76
|
+
if (isPositionsOperation(fieldIndex)) {
|
77
|
+
const newPositions = {};
|
78
|
+
for (const key in item) {
|
79
|
+
newPositions[key] = item[key];
|
81
80
|
}
|
81
|
+
actions.push({
|
82
|
+
type: ActionName.SetRecordPositions,
|
83
|
+
path: [record._id],
|
84
|
+
positions: newPositions
|
85
|
+
});
|
86
|
+
// 此处的循环会包含 updated_at 和 updated_by 各一次,这里只处理 updated_by 同时包含两个字段的修改
|
82
87
|
}
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
88
|
+
else if (isUpdatedByOperation(fieldIndex + systemFieldOffset)) {
|
89
|
+
const systemFieldValues = getSharedRecord(sharedRecords, recordIndex).get(0).toJSON();
|
90
|
+
const { updated_at, updated_by } = getTrackableEntityBySystemFieldValues(systemFieldValues);
|
91
|
+
actions.push({
|
92
|
+
type: ActionName.UpdateSystemFieldValue,
|
93
|
+
path: [record._id],
|
94
|
+
updatedInfo: { updated_at, updated_by }
|
95
|
+
});
|
90
96
|
}
|
97
|
+
systemFieldOffset++;
|
91
98
|
}
|
92
99
|
else {
|
93
100
|
const recordId = getSharedRecordId(sharedRecords, recordIndex);
|
@@ -138,8 +145,23 @@ export default function translateArrayEvent(aiTable, sharedType, event) {
|
|
138
145
|
export function isAddOrRemove(targetPath) {
|
139
146
|
return targetPath.length === 0;
|
140
147
|
}
|
141
|
-
export function
|
142
|
-
|
148
|
+
export function isSystemFieldOperation(targetPath) {
|
149
|
+
if (targetPath.length === 2 && targetPath[1] === 0) {
|
150
|
+
return true;
|
151
|
+
}
|
152
|
+
return false;
|
153
|
+
}
|
154
|
+
export function isCustomFieldOperation(targetPath) {
|
155
|
+
if (targetPath.length === 2 && targetPath[1] === 1) {
|
156
|
+
return true;
|
157
|
+
}
|
158
|
+
return false;
|
159
|
+
}
|
160
|
+
export function isPositionsOperation(fieldIndex) {
|
161
|
+
return fieldIndex === POSITIONS_INDEX;
|
162
|
+
}
|
163
|
+
export function isUpdatedByOperation(fieldIndex) {
|
164
|
+
return fieldIndex === UPDATED_BY_INDEX;
|
143
165
|
}
|
144
166
|
export function getRemoveIds(event, type) {
|
145
167
|
const ids = [];
|
@@ -163,4 +185,4 @@ export function getRemoveIds(event, type) {
|
|
163
185
|
});
|
164
186
|
return ids;
|
165
187
|
}
|
166
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdGF0ZS9zcmMvc2hhcmVkL3RvLXRhYmxlL2FycmF5LWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztBQUN6QixPQUFPLEVBQ0gsVUFBVSxHQVNiLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRyxPQUFPLEVBQW9DLGNBQWMsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUV0RyxNQUFNLENBQUMsT0FBTyxVQUFVLG1CQUFtQixDQUFDLE9BQW9CLEVBQUUsVUFBc0IsRUFBRSxLQUFvQjtJQUMxRyxJQUFJLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDZixJQUFJLFVBQVUsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEQsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxRCxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3hELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsTUFBTSxPQUFPLEdBQW9CLEVBQUUsQ0FBQztJQUNwQyxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFNUMsS0FBSyxDQUFDLE9BQU8s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S0FBSyxFQUFFLENBQUM7Z0JBQzlELEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQVksQ0FBQyxDQUFDO1lBQ2xELENBQUM7WUFDRCxJQUFJLElBQUksS0FBSyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQzFDLElBQUksT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO29CQUNsQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEMsQ0FBQztZQUNMLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQyxDQUNKLENBQUM7SUFDRixPQUFPLEdBQUcsQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0FycmF5IH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCAqIGFzIFkgZnJvbSAneWpzJztcbmltcG9ydCB7XG4gICAgQWN0aW9uTmFtZSxcbiAgICBBSVRhYmxlQWN0aW9uLFxuICAgIEFJVGFibGVWaWV3LFxuICAgIEFJVGFibGVWaWV3RmllbGRzLFxuICAgIEFJVGFibGVWaWV3UmVjb3JkcyxcbiAgICBBSVZpZXdUYWJsZSxcbiAgICBTaGFyZWRUeXBlLFxuICAgIFN5bmNBcnJheUVsZW1lbnQsXG4gICAgU3luY01hcEVsZW1lbnQsXG59IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGdldFNoYXJlVHlwZU51bWJlclBhdGgsIHRyYW5zbGF0ZVBvc2l0aW9uVG9QYXRoIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgZ2V0U2hhcmVkTWFwVmFsdWVJZCwgZ2V0U2hhcmVkUmVjb3JkSWQsIHRyYW5zbGF0ZVRvUmVjb3JkVmFsdWVzIH0gZnJvbSAnLi4vdXRpbHMvdHJhbnNsYXRlJztcbmltcG9ydCB7IEFJRmllbGRWYWx1ZUlkUGF0aCwgQUlUYWJsZUZpZWxkLCBBSVRhYmxlUXVlcmllcywgSWRQYXRoLCBOdW1iZXJQYXRoIH0gZnJvbSAnQGFpLXRhYmxlL2dyaWQnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0cmFuc2xhdGVBcnJheUV2ZW50KGFpVGFibGU6IEFJVmlld1RhYmxlLCBzaGFyZWRUeXBlOiBTaGFyZWRUeXBlLCBldmVudDogWS5ZRXZlbnQ8YW55Pik6IEFJVGFibGVBY3Rpb25bXSB7XG4gICAgbGV0IG9mZnNldCA9IDA7XG4gICAgbGV0IHRhcmdldFBhdGggPSBnZXRTaGFyZVR5cGVOdW1iZXJQYXRoKGV2ZW50LnBhdGgpO1xuICAgIGNvbnN0IGlzUmVjb3Jkc1RyYW5zbGF0ZSA9IGV2ZW50LnBhdGguaW5jbHVkZXMoJ3JlY29yZHMnKTtcbiAgICBjb25zdCBpc0ZpZWxkc1RyYW5zbGF0ZSA9IGV2ZW50LnBhdGguaW5jbHVkZXMoJ2ZpZWxkcycpO1xuICAgIGNvbnN0IGlzVmlld3NUcmFuc2xhdGUgPSBldmVudC5wYXRoLmluY2x1ZGVzKCd2aWV3cycpO1xuICAgIGNvbnN0IGFjdGlvbnM6IEFJVGFibGVBY3Rpb25bXSA9IFtdO1xuICAgIGNvbnN0IGFjdGl2ZVZpZXdJZCA9IGFpVGFibGUuYWN0aXZlVmlld0lkKCk7XG5cbiAgICBldmVudC5jaGFuZ2VzLmRlbHRhLmZvckVhY2goKGRlbHRhKSA9PiB7XG4gICAgICAgIGlmICgncmV0YWluJyBpbiBkZWx0YSkge1xuICAgICAgICAgICAgb2Zmc2V0ICs9IGRlbHRhLnJldGFpbiA/PyAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCdkZWxldGUnIGluIGRlbHRhKSB7XG4gICAgICAgICAgICBpZiAoaXNBZGRPclJlbW92ZSh0YXJnZXRQYXRoKSkge1xuICAgICAgICAgICAgICAgIGlmIChpc1ZpZXdzVHJhbnNsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZVZpZXcgPSBhaVRhYmxlLnZpZXdzKClbb2Zmc2V0XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW92ZVZpZXcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5SZW1vdmVWaWV3LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IFtyZW1vdmVWaWV3Ll9pZF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IGlzUmVjb3Jkc1RyYW5zbGF0ZSA/IEFjdGlvbk5hbWUuUmVtb3ZlUmVjb3JkIDogQWN0aW9uTmFtZS5SZW1vdmVGaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVtb3ZlSWRzID0gZ2V0UmVtb3ZlSWRzKGV2ZW50LCB0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW92ZUlkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUlkcy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJ2luc2VydCcgaW4gZGVsdGEpIHtcbiAgICAgICAgICAgIGlmIChpc0FycmF5KGRlbHRhLmluc2VydCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNSZWNvcmRzVHJhbnNsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0FkZE9yUmVtb3ZlKHRhcmdldFBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWx0YS5pbnNlcnQ/Lm1hcCgoaXRlbTogWS5BcnJheTxhbnk+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGl0ZW0udG9KU09OKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW2ZpeGVkRmllbGQsIGN1c3RvbUZpZWxkXSA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSBjdXN0b21GaWVsZFtjdXN0b21GaWVsZC5sZW5ndGggLSAxXVthY3RpdmVWaWV3SWRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSB0cmFuc2xhdGVQb3NpdGlvblRvUGF0aChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWlUYWJsZS5yZWNvcmRzKCkgYXMgQUlUYWJsZVZpZXdSZWNvcmRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlVmlld0lkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKSBhcyBOdW1iZXJQYXRoO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5BZGRSZWNvcmQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IHBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlY29yZDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX2lkOiBmaXhlZEZpZWxkWzBdWydfaWQnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlczogdHJhbnNsYXRlVG9SZWNvcmRWYWx1ZXMoY3VzdG9tRmllbGQsIGFpVGFibGUuZmllbGRzKCkgYXMgQUlUYWJsZVZpZXdGaWVsZHMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaGFyZWRSZWNvcmRzID0gc2hhcmVkVHlwZS5nZXQoJ3JlY29yZHMnKSEgYXMgWS5BcnJheTxTeW5jQXJyYXlFbGVtZW50PjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaGFyZWRGaWVsZHMgPSBzaGFyZWRUeXBlLmdldCgnZmllbGRzJykhIGFzIFkuQXJyYXk8U3luY01hcEVsZW1lbnQ+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbHRhLmluc2VydD8ubWFwKChpdGVtOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSB0YXJnZXRQYXRoWzBdIGFzIG51bWJlcjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGRJbmRleCA9IG9mZnNldDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gKGFpVGFibGUucmVjb3JkcygpIGFzIEFJVGFibGVWaWV3UmVjb3JkcylbcmVjb3JkSW5kZXhdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNQb3NpdGlvbk9wZXJhdGlvbihmaWVsZEluZGV4LCBzaGFyZWRGaWVsZHMpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWNvcmQucG9zaXRpb25zW2tleV0gJiYgcmVjb3JkLnBvc2l0aW9uc1trZXldICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLkFkZFJlY29yZFBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogW3JlY29yZC5faWRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBba2V5XTogaXRlbVtrZXldXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIHJlY29yZC5wb3NpdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWl0ZW1ba2V5XSAmJiBpdGVtW2tleV0gIT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IEFjdGlvbk5hbWUuUmVtb3ZlUmVjb3JkUG9zaXRpb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBba2V5LCByZWNvcmQuX2lkXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWNvcmRJZCA9IGdldFNoYXJlZFJlY29yZElkKHNoYXJlZFJlY29yZHMsIHJlY29yZEluZGV4KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGZpZWxkSWQgPSBnZXRTaGFyZWRNYXBWYWx1ZUlkKHNoYXJlZEZpZWxkcywgZmllbGRJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gW3JlY29yZElkLCBmaWVsZElkXSBhcyBBSUZpZWxkVmFsdWVJZFBhdGg7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gQUlUYWJsZVF1ZXJpZXMuZ2V0RmllbGRWYWx1ZShhaVRhYmxlLCBwYXRoKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gVG8gZXhjbHVkZSBpbnNlcnQgdHJpZ2dlcmVkIGJ5IGZpZWxkIGluc2VydHMuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGRWYWx1ZSAhPT0gaXRlbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IEFjdGlvbk5hbWUuVXBkYXRlRmllbGRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRWYWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3RmllbGRWYWx1ZTogaXRlbVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge31cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNGaWVsZHNUcmFuc2xhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsdGEuaW5zZXJ0Py5tYXAoKGl0ZW06IFkuTWFwPGFueT4pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBpdGVtLnRvSlNPTigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHRyYW5zbGF0ZVBvc2l0aW9uVG9QYXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFpVGFibGUuZmllbGRzKCkgYXMgQUlUYWJsZVZpZXdGaWVsZHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YVsncG9zaXRpb25zJ11bYWN0aXZlVmlld0lkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVWaWV3SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICkgYXMgTnVtYmVyUGF0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5BZGRGaWVsZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkOiBkYXRhIGFzIEFJVGFibGVGaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoaXNWaWV3c1RyYW5zbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBkZWx0YS5pbnNlcnQ/Lm1hcCgoaXRlbTogWS5NYXA8YW55PiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBpdGVtLnRvSlNPTigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLkFkZFZpZXcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogW29mZnNldCArIGluZGV4XSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3OiBkYXRhIGFzIEFJVGFibGVWaWV3XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGFjdGlvbnM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0FkZE9yUmVtb3ZlKHRhcmdldFBhdGg6IG51bWJlcltdKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRhcmdldFBhdGgubGVuZ3RoID09PSAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQb3NpdGlvbk9wZXJhdGlvbihmaWVsZEluZGV4OiBudW1iZXIsIHNoYXJlZEZpZWxkczogWS5BcnJheTxTeW5jTWFwRWxlbWVudD4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmllbGRJbmRleCA9PT0gc2hhcmVkRmllbGRzLmxlbmd0aDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFJlbW92ZUlkcyhldmVudDogWS5ZRXZlbnQ8YW55PiwgdHlwZTogQWN0aW9uTmFtZS5SZW1vdmVGaWVsZCB8IEFjdGlvbk5hbWUuUmVtb3ZlUmVjb3JkKSB7XG4gICAgY29uc3QgaWRzOiBbc3RyaW5nXVtdID0gW107XG4gICAgaWYgKCF0eXBlKSB7XG4gICAgICAgIHJldHVybiBpZHM7XG4gICAgfVxuXG4gICAgWS5pdGVyYXRlRGVsZXRlZFN0cnVjdHMoXG4gICAgICAgIGV2ZW50LnRyYW5zYWN0aW9uLFxuICAgICAgICBldmVudC50cmFuc2FjdGlvbi5kZWxldGVTZXQsXG4gICAgICAgIC8vIEBwYXJhbSB7SXRlbXxHQ30gaXRlbVxuICAgICAgICAoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKGl0ZW0gaW5zdGFuY2VvZiBZLkl0ZW0gJiYgaXRlbS5kZWxldGVkKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09IEFjdGlvbk5hbWUuUmVtb3ZlRmllbGQgJiYgaXRlbS5wYXJlbnRTdWIgPT09ICdfaWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlkcy5wdXNoKGl0ZW0uY29udGVudC5nZXRDb250ZW50KCkgYXMgSWRQYXRoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHR5cGUgPT09IEFjdGlvbk5hbWUuUmVtb3ZlUmVjb3JkKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbnRlbnQgPSBpdGVtLmNvbnRlbnQuZ2V0Q29udGVudCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29udGVudFswXSAmJiBjb250ZW50WzBdWydfaWQnXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWRzLnB1c2goW2NvbnRlbnRbMF1bJ19pZCddXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApO1xuICAgIHJldHVybiBpZHM7XG59XG4iXX0=
|
188
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktZXZlbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdGF0ZS9zcmMvc2hhcmVkL3RvLXRhYmxlL2FycmF5LWV2ZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztBQUN6QixPQUFPLEVBQ0gsVUFBVSxFQVViLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxzQkFBc0IsRUFBRSxxQ0FBcUMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM1SSxPQUFPLEVBQ0gsK0JBQStCLEVBQy9CLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsaUJBQWlCLEVBQ2pCLDRCQUE0QixFQUM1QixlQUFlLEVBQ2YsZ0JBQWdCLEVBQ25CLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFvQyxjQUFjLEVBQXNCLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEcsTUFBTSxDQUFDLE9BQU8sVUFBVSxtQkFBbUIsQ0FBQyxPQUFvQixFQUFFLFVBQXNCLEVBQUUsS0FBb0I7SUFDMUcsSUFBSSxNQUFNLEdBQUcsQ0FBQyxDQUFDO0lBQ2YsSUFBSSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUQsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN4RCxNQUFNLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELE1BQU0sT0FBTyxHQUFvQixFQUFF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T0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUMxQyxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDbEMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xDLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUMsQ0FDSixDQUFDO0lBQ0YsT0FBTyxHQUFHLENBQUM7QUFDZixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNBcnJheSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgKiBhcyBZIGZyb20gJ3lqcyc7XG5pbXBvcnQge1xuICAgIEFjdGlvbk5hbWUsXG4gICAgQUlUYWJsZUFjdGlvbixcbiAgICBBSVRhYmxlVmlldyxcbiAgICBBSVRhYmxlVmlld0ZpZWxkcyxcbiAgICBBSVRhYmxlVmlld1JlY29yZHMsXG4gICAgQUlWaWV3VGFibGUsXG4gICAgUG9zaXRpb25zLFxuICAgIFNoYXJlZFR5cGUsXG4gICAgU3luY0FycmF5RWxlbWVudCxcbiAgICBTeW5jTWFwRWxlbWVudFxufSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRJZEJ5U3lzdGVtRmllbGRWYWx1ZXMsIGdldFNoYXJlVHlwZU51bWJlclBhdGgsIGdldFRyYWNrYWJsZUVudGl0eUJ5U3lzdGVtRmllbGRWYWx1ZXMsIHRyYW5zbGF0ZVBvc2l0aW9uVG9QYXRoIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtcbiAgICBnZXRQb3NpdGlvbnNCeVN5c3RlbUZpZWxkVmFsdWVzLFxuICAgIGdldFNoYXJlZE1hcFZhbHVlSWQsXG4gICAgZ2V0U2hhcmVkUmVjb3JkLFxuICAgIGdldFNoYXJlZFJlY29yZElkLFxuICAgIGdldFZhbHVlc0J5Q3VzdG9tRmllbGRWYWx1ZXMsXG4gICAgUE9TSVRJT05TX0lOREVYLFxuICAgIFVQREFURURfQllfSU5ERVhcbn0gZnJvbSAnLi4vdXRpbHMvdHJhbnNsYXRlJztcbmltcG9ydCB7IEFJRmllbGRWYWx1ZUlkUGF0aCwgQUlUYWJsZUZpZWxkLCBBSVRhYmxlUXVlcmllcywgSWRQYXRoLCBOdW1iZXJQYXRoIH0gZnJvbSAnQGFpLXRhYmxlL2dyaWQnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiB0cmFuc2xhdGVBcnJheUV2ZW50KGFpVGFibGU6IEFJVmlld1RhYmxlLCBzaGFyZWRUeXBlOiBTaGFyZWRUeXBlLCBldmVudDogWS5ZRXZlbnQ8YW55Pik6IEFJVGFibGVBY3Rpb25bXSB7XG4gICAgbGV0IG9mZnNldCA9IDA7XG4gICAgbGV0IHRhcmdldFBhdGggPSBnZXRTaGFyZVR5cGVOdW1iZXJQYXRoKGV2ZW50LnBhdGgpO1xuICAgIGNvbnN0IGlzUmVjb3Jkc1RyYW5zbGF0ZSA9IGV2ZW50LnBhdGguaW5jbHVkZXMoJ3JlY29yZHMnKTtcbiAgICBjb25zdCBpc0ZpZWxkc1RyYW5zbGF0ZSA9IGV2ZW50LnBhdGguaW5jbHVkZXMoJ2ZpZWxkcycpO1xuICAgIGNvbnN0IGlzVmlld3NUcmFuc2xhdGUgPSBldmVudC5wYXRoLmluY2x1ZGVzKCd2aWV3cycpO1xuICAgIGNvbnN0IGFjdGlvbnM6IEFJVGFibGVBY3Rpb25bXSA9IFtdO1xuICAgIGNvbnN0IGFjdGl2ZVZpZXdJZCA9IGFpVGFibGUuYWN0aXZlVmlld0lkKCk7XG5cbiAgICBldmVudC5jaGFuZ2VzLmRlbHRhLmZvckVhY2goKGRlbHRhKSA9PiB7XG4gICAgICAgIGlmICgncmV0YWluJyBpbiBkZWx0YSkge1xuICAgICAgICAgICAgb2Zmc2V0ICs9IGRlbHRhLnJldGFpbiA/PyAwO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCdkZWxldGUnIGluIGRlbHRhKSB7XG4gICAgICAgICAgICBpZiAoaXNBZGRPclJlbW92ZSh0YXJnZXRQYXRoKSkge1xuICAgICAgICAgICAgICAgIGlmIChpc1ZpZXdzVHJhbnNsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlbW92ZVZpZXcgPSBhaVRhYmxlLnZpZXdzKClbb2Zmc2V0XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW92ZVZpZXcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5SZW1vdmVWaWV3LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IFtyZW1vdmVWaWV3Ll9pZF1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdHlwZSA9IGlzUmVjb3Jkc1RyYW5zbGF0ZSA/IEFjdGlvbk5hbWUuUmVtb3ZlUmVjb3JkIDogQWN0aW9uTmFtZS5SZW1vdmVGaWVsZDtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVtb3ZlSWRzID0gZ2V0UmVtb3ZlSWRzKGV2ZW50LCB0eXBlKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHJlbW92ZUlkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZUlkcy5mb3JFYWNoKChwYXRoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoJ2luc2VydCcgaW4gZGVsdGEpIHtcbiAgICAgICAgICAgIGlmIChpc0FycmF5KGRlbHRhLmluc2VydCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoaXNSZWNvcmRzVHJhbnNsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpc0FkZE9yUmVtb3ZlKHRhcmdldFBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkZWx0YS5pbnNlcnQ/Lm1hcCgoaXRlbTogWS5BcnJheTxhbnk+KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGl0ZW0udG9KU09OKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgW3N5c3RlbUZpZWxkVmFsdWVzLCBjdXN0b21GaWVsZFZhbHVlc10gPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IGdldFBvc2l0aW9uc0J5U3lzdGVtRmllbGRWYWx1ZXMoY3VzdG9tRmllbGRWYWx1ZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9uID0gcG9zaXRpb25zW2FjdGl2ZVZpZXdJZF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IHRyYW5zbGF0ZVBvc2l0aW9uVG9QYXRoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhaVRhYmxlLnJlY29yZHMoKSBhcyBBSVRhYmxlVmlld1JlY29yZHMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmVWaWV3SWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIGFzIE51bWJlclBhdGg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLkFkZFJlY29yZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogcGF0aCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfaWQ6IGdldElkQnlTeXN0ZW1GaWVsZFZhbHVlcyhzeXN0ZW1GaWVsZFZhbHVlcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5nZXRUcmFja2FibGVFbnRpdHlCeVN5c3RlbUZpZWxkVmFsdWVzKHN5c3RlbUZpZWxkVmFsdWVzKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uczogZ2V0UG9zaXRpb25zQnlTeXN0ZW1GaWVsZFZhbHVlcyhjdXN0b21GaWVsZFZhbHVlcyksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZXM6IGdldFZhbHVlc0J5Q3VzdG9tRmllbGRWYWx1ZXMoY3VzdG9tRmllbGRWYWx1ZXMsIGFpVGFibGUuZmllbGRzKCkgYXMgQUlUYWJsZVZpZXdGaWVsZHMpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaGFyZWRSZWNvcmRzID0gc2hhcmVkVHlwZS5nZXQoJ3JlY29yZHMnKSEgYXMgWS5BcnJheTxTeW5jQXJyYXlFbGVtZW50PjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzaGFyZWRGaWVsZHMgPSBzaGFyZWRUeXBlLmdldCgnZmllbGRzJykhIGFzIFkuQXJyYXk8U3luY01hcEVsZW1lbnQ+O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzeXN0ZW1GaWVsZE9mZnNldCA9IDA7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsdGEuaW5zZXJ0Py5tYXAoKGl0ZW06IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWNvcmRJbmRleCA9IHRhcmdldFBhdGhbMF0gYXMgbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWVsZEluZGV4ID0gb2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZWNvcmQgPSAoYWlUYWJsZS5yZWNvcmRzKCkgYXMgQUlUYWJsZVZpZXdSZWNvcmRzKVtyZWNvcmRJbmRleF07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpc1N5c3RlbUZpZWxkT3BlcmF0aW9uKHRhcmdldFBhdGgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoaXNQb3NpdGlvbnNPcGVyYXRpb24oZmllbGRJbmRleCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdQb3NpdGlvbnM6IFBvc2l0aW9ucyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmV3UG9zaXRpb25zW2tleV0gPSBpdGVtW2tleV07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IEFjdGlvbk5hbWUuU2V0UmVjb3JkUG9zaXRpb25zLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBbcmVjb3JkLl9pZF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uczogbmV3UG9zaXRpb25zXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyDmraTlpITnmoTlvqrnjq/kvJrljIXlkKsgdXBkYXRlZF9hdCDlkowgdXBkYXRlZF9ieSDlkITkuIDmrKHvvIzov5nph4zlj6rlpITnkIYgdXBkYXRlZF9ieSDlkIzml7bljIXlkKvkuKTkuKrlrZfmrrXnmoTkv67mlLlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNVcGRhdGVkQnlPcGVyYXRpb24oZmllbGRJbmRleCArIHN5c3RlbUZpZWxkT2Zmc2V0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHN5c3RlbUZpZWxkVmFsdWVzID0gZ2V0U2hhcmVkUmVjb3JkKHNoYXJlZFJlY29yZHMsIHJlY29yZEluZGV4KS5nZXQoMCkudG9KU09OKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyB1cGRhdGVkX2F0LCB1cGRhdGVkX2J5IH0gPSBnZXRUcmFja2FibGVFbnRpdHlCeVN5c3RlbUZpZWxkVmFsdWVzKHN5c3RlbUZpZWxkVmFsdWVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLlVwZGF0ZVN5c3RlbUZpZWxkVmFsdWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IFtyZWNvcmQuX2lkXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBkYXRlZEluZm86IHsgdXBkYXRlZF9hdCwgdXBkYXRlZF9ieSB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeXN0ZW1GaWVsZE9mZnNldCsrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkSWQgPSBnZXRTaGFyZWRSZWNvcmRJZChzaGFyZWRSZWNvcmRzLCByZWNvcmRJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBmaWVsZElkID0gZ2V0U2hhcmVkTWFwVmFsdWVJZChzaGFyZWRGaWVsZHMsIGZpZWxkSW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IFtyZWNvcmRJZCwgZmllbGRJZF0gYXMgQUlGaWVsZFZhbHVlSWRQYXRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZmllbGRWYWx1ZSA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkVmFsdWUoYWlUYWJsZSwgcGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUbyBleGNsdWRlIGluc2VydCB0cmlnZ2VyZWQgYnkgZmllbGQgaW5zZXJ0cy5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZFZhbHVlICE9PSBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogQWN0aW9uTmFtZS5VcGRhdGVGaWVsZFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXdGaWVsZFZhbHVlOiBpdGVtXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7fVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc0ZpZWxkc1RyYW5zbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICBkZWx0YS5pbnNlcnQ/Lm1hcCgoaXRlbTogWS5NYXA8YW55PikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGl0ZW0udG9KU09OKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0gdHJhbnNsYXRlUG9zaXRpb25Ub1BhdGgoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWlUYWJsZS5maWVsZHMoKSBhcyBBSVRhYmxlVmlld0ZpZWxkcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXRhWydwb3NpdGlvbnMnXVthY3RpdmVWaWV3SWRdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZVZpZXdJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKSBhcyBOdW1iZXJQYXRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiBBY3Rpb25OYW1lLkFkZEZpZWxkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQ6IGRhdGEgYXMgQUlUYWJsZUZpZWxkXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChpc1ZpZXdzVHJhbnNsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIGRlbHRhLmluc2VydD8ubWFwKChpdGVtOiBZLk1hcDxhbnk+LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZGF0YSA9IGl0ZW0udG9KU09OKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY3Rpb25zLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6IEFjdGlvbk5hbWUuQWRkVmlldyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoOiBbb2Zmc2V0ICsgaW5kZXhdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXc6IGRhdGEgYXMgQUlUYWJsZVZpZXdcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gYWN0aW9ucztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQWRkT3JSZW1vdmUodGFyZ2V0UGF0aDogbnVtYmVyW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGFyZ2V0UGF0aC5sZW5ndGggPT09IDA7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N5c3RlbUZpZWxkT3BlcmF0aW9uKHRhcmdldFBhdGg6IG51bWJlcltdKTogYm9vbGVhbiB7XG4gICAgaWYgKHRhcmdldFBhdGgubGVuZ3RoID09PSAyICYmIHRhcmdldFBhdGhbMV0gPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ3VzdG9tRmllbGRPcGVyYXRpb24odGFyZ2V0UGF0aDogbnVtYmVyW10pOiBib29sZWFuIHtcbiAgICBpZiAodGFyZ2V0UGF0aC5sZW5ndGggPT09IDIgJiYgdGFyZ2V0UGF0aFsxXSA9PT0gMSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQb3NpdGlvbnNPcGVyYXRpb24oZmllbGRJbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZpZWxkSW5kZXggPT09IFBPU0lUSU9OU19JTkRFWDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVXBkYXRlZEJ5T3BlcmF0aW9uKGZpZWxkSW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBmaWVsZEluZGV4ID09PSBVUERBVEVEX0JZX0lOREVYO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVtb3ZlSWRzKGV2ZW50OiBZLllFdmVudDxhbnk+LCB0eXBlOiBBY3Rpb25OYW1lLlJlbW92ZUZpZWxkIHwgQWN0aW9uTmFtZS5SZW1vdmVSZWNvcmQpIHtcbiAgICBjb25zdCBpZHM6IFtzdHJpbmddW10gPSBbXTtcbiAgICBpZiAoIXR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGlkcztcbiAgICB9XG5cbiAgICBZLml0ZXJhdGVEZWxldGVkU3RydWN0cyhcbiAgICAgICAgZXZlbnQudHJhbnNhY3Rpb24sXG4gICAgICAgIGV2ZW50LnRyYW5zYWN0aW9uLmRlbGV0ZVNldCxcbiAgICAgICAgLy8gQHBhcmFtIHtJdGVtfEdDfSBpdGVtXG4gICAgICAgIChpdGVtKSA9PiB7XG4gICAgICAgICAgICBpZiAoaXRlbSBpbnN0YW5jZW9mIFkuSXRlbSAmJiBpdGVtLmRlbGV0ZWQpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gQWN0aW9uTmFtZS5SZW1vdmVGaWVsZCAmJiBpdGVtLnBhcmVudFN1YiA9PT0gJ19pZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgaWRzLnB1c2goaXRlbS5jb250ZW50LmdldENvbnRlbnQoKSBhcyBJZFBhdGgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gQWN0aW9uTmFtZS5SZW1vdmVSZWNvcmQpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGl0ZW0uY29udGVudC5nZXRDb250ZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjb250ZW50WzBdICYmIGNvbnRlbnRbMF1bJ19pZCddKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZHMucHVzaChbY29udGVudFswXVsnX2lkJ11dKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG4gICAgcmV0dXJuIGlkcztcbn1cbiJdfQ==
|