@ai-table/state 0.0.14 → 0.0.16
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/default.d.ts +2 -0
- package/constants/default.d.ts.map +1 -0
- package/constants/field-menu-item.d.ts +1 -7
- package/constants/field-menu-item.d.ts.map +1 -1
- package/constants/index.d.ts +1 -0
- package/constants/index.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 +18 -11
- package/esm2022/constants/default.mjs +2 -0
- package/esm2022/constants/field-menu-item.mjs +1 -9
- package/esm2022/constants/index.mjs +2 -1
- 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 +51 -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 +9 -3
- package/esm2022/utils/record/update-system-field-value.mjs +8 -0
- package/esm2022/utils/view.mjs +4 -4
- package/fesm2022/ai-table-state.mjs +280 -176
- 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
@@ -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==
|
@@ -1,27 +1,40 @@
|
|
1
|
-
import { getDefaultFieldValue } from '@ai-table/grid';
|
2
1
|
import { ActionName } from '../../types';
|
3
|
-
import { getSharedRecordIndex, toRecordSyncElement, toSyncElement } from '../utils';
|
4
|
-
export default function addNode(sharedType, action) {
|
2
|
+
import { getPositionsByRecordSyncElement, getSharedRecordIndex, toRecordSyncElement, toSyncElement, setRecordPositions, getIdBySystemFieldValuesType, setRecordUpdatedInfo } from '../utils';
|
3
|
+
export default function addNode(aiTable, sharedType, action) {
|
5
4
|
const records = sharedType.get('records');
|
6
5
|
const views = sharedType.get('views');
|
7
6
|
const fields = sharedType.get('fields');
|
8
7
|
switch (action.type) {
|
9
8
|
case ActionName.AddRecord:
|
10
|
-
records && records.push([toRecordSyncElement(action.record)]);
|
9
|
+
records && records.push([toRecordSyncElement(action.record, aiTable.fields())]);
|
11
10
|
break;
|
12
11
|
case ActionName.AddView:
|
13
12
|
views && views.push([toSyncElement(action.view)]);
|
14
13
|
break;
|
15
|
-
case ActionName.
|
14
|
+
case ActionName.SetRecordPositions:
|
16
15
|
if (records) {
|
17
16
|
const recordIndex = getSharedRecordIndex(records, action.path[0]);
|
18
17
|
const record = records.get(recordIndex);
|
19
|
-
const
|
20
|
-
const
|
21
|
-
const
|
22
|
-
|
23
|
-
|
24
|
-
|
18
|
+
const positions = getPositionsByRecordSyncElement(record);
|
19
|
+
const newPositions = { ...positions };
|
20
|
+
for (const key in action.positions) {
|
21
|
+
if (action.positions[key] === null || action.positions[key] === undefined) {
|
22
|
+
delete newPositions[key];
|
23
|
+
}
|
24
|
+
else {
|
25
|
+
newPositions[key] = action.positions[key];
|
26
|
+
}
|
27
|
+
}
|
28
|
+
setRecordPositions(record, newPositions);
|
29
|
+
}
|
30
|
+
break;
|
31
|
+
case ActionName.UpdateSystemFieldValue:
|
32
|
+
if (records) {
|
33
|
+
const recordIndex = getSharedRecordIndex(records, action.path[0]);
|
34
|
+
const record = records.get(recordIndex);
|
35
|
+
if (action.updatedInfo.updated_at && action.updatedInfo.updated_at) {
|
36
|
+
setRecordUpdatedInfo(record, action.updatedInfo);
|
37
|
+
}
|
25
38
|
}
|
26
39
|
break;
|
27
40
|
case ActionName.AddField:
|
@@ -29,13 +42,15 @@ export default function addNode(sharedType, action) {
|
|
29
42
|
fields.push([toSyncElement(action.field)]);
|
30
43
|
const path = action.path[0];
|
31
44
|
for (let value of records) {
|
32
|
-
const
|
33
|
-
const
|
34
|
-
|
45
|
+
const customFieldValues = value.get(1);
|
46
|
+
const systemFieldValues = value.get(0);
|
47
|
+
const recordEntity = aiTable.recordsMap()[getIdBySystemFieldValuesType(systemFieldValues)];
|
48
|
+
const newFieldValue = recordEntity.values[action.field._id];
|
49
|
+
customFieldValues.insert(path, [newFieldValue]);
|
35
50
|
}
|
36
51
|
}
|
37
52
|
break;
|
38
53
|
}
|
39
54
|
return sharedType;
|
40
55
|
}
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdGF0ZS9zcmMvc2hhcmVkL3RvLXlqcy9hZGQtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQ0gsVUFBVSxFQVdiLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFDSCwrQkFBK0IsRUFDL0Isb0JBQW9CLEVBQ3BCLG1CQUFtQixFQUNuQixhQUFhLEVBQ2Isa0JBQWtCLEVBQ2xCLDRCQUE0QixFQUM1QixvQkFBb0IsRUFDdkIsTUFBTSxVQUFVLENBQUM7QUFFbEIsTUFBTSxDQUFDLE9BQU8sVUFBVSxPQUFPLENBQzNCLE9BQWdCLEVBQ2hCLFVBQXNCLEVBQ3RCLE1BQTJHO0lBRTNHLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUErQixDQUFDO0lBQ3hFLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFFLENBQUM7SUFDdkMsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQTZCLENBQUM7SUFDcEUsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsS0FBSyxVQUFVLENBQUMsU0FBUztZQUNyQixPQUFPLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxNQUEyQixFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUgsTUFBTTtRQUNWLEtBQUssVUFBVSxDQUFDLE9BQU87WUFDbkIsS0FBSyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRCxNQUFNO1FBQ1YsS0FBSyxVQUFVLENBQUMsa0JBQWtCO1lBQzlCLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ1YsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDbEUsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDeEMsTUFBTSxTQUFTLEdBQUcsK0JBQStCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzFELE1BQU0sWUFBWSxHQUFHLEVBQUUsR0FBRyxTQUFTLEVBQUUsQ0FBQztnQkFDdEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQ2pDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxJQUFJLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQzt3QkFDeEUsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUM7b0JBQzdCLENBQUM7eUJBQU0sQ0FBQzt3QkFDSixZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDOUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELGtCQUFrQixDQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM3QyxDQUFDO1lBQ0QsTUFBTTtRQUNWLEtBQUssVUFBVSxDQUFDLHNCQUFzQjtZQUNsQyxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xFLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ3hDLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLElBQUksTUFBTSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsQ0FBQztvQkFDakUsb0JBQW9CLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxXQUF5RCxDQUFDLENBQUM7Z0JBQ25HLENBQUM7WUFDTCxDQUFDO1lBQ0QsTUFBTTtRQUNWLEtBQUssVUFBVSxDQUFDLFFBQVE7WUFDcEIsSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3BCLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDM0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUIsS0FBSyxJQUFJLEtBQUssSUFBSSxPQUFPLEVBQUUsQ0FBQztvQkFDeEIsTUFBTSxpQkFBaUIsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUN2QyxNQUFNLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ3ZDLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxVQUFVLEVBQUUsQ0FBQyw0QkFBNEIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7b0JBQzNGLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDNUQsaUJBQWlCLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BELENBQUM7WUFDTCxDQUFDO1lBQ0QsTUFBTTtJQUNkLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlUYWJsZSB9IGZyb20gJ0BhaS10YWJsZS9ncmlkJztcbmltcG9ydCAqIGFzIFkgZnJvbSAneWpzJztcbmltcG9ydCB7XG4gICAgQWN0aW9uTmFtZSxcbiAgICBBZGRGaWVsZEFjdGlvbixcbiAgICBBZGRSZWNvcmRBY3Rpb24sXG4gICAgU2V0UmVjb3JkUG9zaXRpb25BY3Rpb24sXG4gICAgQWRkVmlld0FjdGlvbixcbiAgICBBSVRhYmxlVmlld1JlY29yZCxcbiAgICBTaGFyZWRUeXBlLFxuICAgIFN5bmNBcnJheUVsZW1lbnQsXG4gICAgU3luY01hcEVsZW1lbnQsXG4gICAgQUlUYWJsZVZpZXdGaWVsZHMsXG4gICAgVXBkYXRlU3lzdGVtRmllbGRWYWx1ZVxufSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQge1xuICAgIGdldFBvc2l0aW9uc0J5UmVjb3JkU3luY0VsZW1lbnQsXG4gICAgZ2V0U2hhcmVkUmVjb3JkSW5kZXgsXG4gICAgdG9SZWNvcmRTeW5jRWxlbWVudCxcbiAgICB0b1N5bmNFbGVtZW50LFxuICAgIHNldFJlY29yZFBvc2l0aW9ucyxcbiAgICBnZXRJZEJ5U3lzdGVtRmllbGRWYWx1ZXNUeXBlLFxuICAgIHNldFJlY29yZFVwZGF0ZWRJbmZvXG59IGZyb20gJy4uL3V0aWxzJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gYWRkTm9kZShcbiAgICBhaVRhYmxlOiBBSVRhYmxlLFxuICAgIHNoYXJlZFR5cGU6IFNoYXJlZFR5cGUsXG4gICAgYWN0aW9uOiBBZGRGaWVsZEFjdGlvbiB8IEFkZFJlY29yZEFjdGlvbiB8IEFkZFZpZXdBY3Rpb24gfCBTZXRSZWNvcmRQb3NpdGlvbkFjdGlvbiB8IFVwZGF0ZVN5c3RlbUZpZWxkVmFsdWVcbik6IFNoYXJlZFR5cGUge1xuICAgIGNvbnN0IHJlY29yZHMgPSBzaGFyZWRUeXBlLmdldCgncmVjb3JkcycpISBhcyBZLkFycmF5PFN5bmNBcnJheUVsZW1lbnQ+O1xuICAgIGNvbnN0IHZpZXdzID0gc2hhcmVkVHlwZS5nZXQoJ3ZpZXdzJykhO1xuICAgIGNvbnN0IGZpZWxkcyA9IHNoYXJlZFR5cGUuZ2V0KCdmaWVsZHMnKSEgYXMgWS5BcnJheTxTeW5jTWFwRWxlbWVudD47XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuQWRkUmVjb3JkOlxuICAgICAgICAgICAgcmVjb3JkcyAmJiByZWNvcmRzLnB1c2goW3RvUmVjb3JkU3luY0VsZW1lbnQoYWN0aW9uLnJlY29yZCBhcyBBSVRhYmxlVmlld1JlY29yZCwgYWlUYWJsZS5maWVsZHMoKSBhcyBBSVRhYmxlVmlld0ZpZWxkcyldKTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuQWRkVmlldzpcbiAgICAgICAgICAgIHZpZXdzICYmIHZpZXdzLnB1c2goW3RvU3luY0VsZW1lbnQoYWN0aW9uLnZpZXcpXSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLlNldFJlY29yZFBvc2l0aW9uczpcbiAgICAgICAgICAgIGlmIChyZWNvcmRzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSBnZXRTaGFyZWRSZWNvcmRJbmRleChyZWNvcmRzLCBhY3Rpb24ucGF0aFswXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gcmVjb3Jkcy5nZXQocmVjb3JkSW5kZXgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IGdldFBvc2l0aW9uc0J5UmVjb3JkU3luY0VsZW1lbnQocmVjb3JkKTtcbiAgICAgICAgICAgICAgICBjb25zdCBuZXdQb3NpdGlvbnMgPSB7IC4uLnBvc2l0aW9ucyB9O1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IGluIGFjdGlvbi5wb3NpdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGlvbi5wb3NpdGlvbnNba2V5XSA9PT0gbnVsbCB8fCBhY3Rpb24ucG9zaXRpb25zW2tleV0gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIG5ld1Bvc2l0aW9uc1trZXldO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbmV3UG9zaXRpb25zW2tleV0gPSBhY3Rpb24ucG9zaXRpb25zW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc2V0UmVjb3JkUG9zaXRpb25zKHJlY29yZCwgbmV3UG9zaXRpb25zKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuVXBkYXRlU3lzdGVtRmllbGRWYWx1ZTpcbiAgICAgICAgICAgIGlmIChyZWNvcmRzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSBnZXRTaGFyZWRSZWNvcmRJbmRleChyZWNvcmRzLCBhY3Rpb24ucGF0aFswXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gcmVjb3Jkcy5nZXQocmVjb3JkSW5kZXgpO1xuICAgICAgICAgICAgICAgIGlmIChhY3Rpb24udXBkYXRlZEluZm8udXBkYXRlZF9hdCAmJiBhY3Rpb24udXBkYXRlZEluZm8udXBkYXRlZF9hdCkge1xuICAgICAgICAgICAgICAgICAgICBzZXRSZWNvcmRVcGRhdGVkSW5mbyhyZWNvcmQsIGFjdGlvbi51cGRhdGVkSW5mbyBhcyB7IHVwZGF0ZWRfYXQ6IG51bWJlcjsgdXBkYXRlZF9ieTogc3RyaW5nIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuQWRkRmllbGQ6XG4gICAgICAgICAgICBpZiAoZmllbGRzICYmIHJlY29yZHMpIHtcbiAgICAgICAgICAgICAgICBmaWVsZHMucHVzaChbdG9TeW5jRWxlbWVudChhY3Rpb24uZmllbGQpXSk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IGFjdGlvbi5wYXRoWzBdO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IHZhbHVlIG9mIHJlY29yZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VzdG9tRmllbGRWYWx1ZXMgPSB2YWx1ZS5nZXQoMSk7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN5c3RlbUZpZWxkVmFsdWVzID0gdmFsdWUuZ2V0KDApO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWNvcmRFbnRpdHkgPSBhaVRhYmxlLnJlY29yZHNNYXAoKVtnZXRJZEJ5U3lzdGVtRmllbGRWYWx1ZXNUeXBlKHN5c3RlbUZpZWxkVmFsdWVzKV07XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG5ld0ZpZWxkVmFsdWUgPSByZWNvcmRFbnRpdHkudmFsdWVzW2FjdGlvbi5maWVsZC5faWRdO1xuICAgICAgICAgICAgICAgICAgICBjdXN0b21GaWVsZFZhbHVlcy5pbnNlcnQocGF0aCwgW25ld0ZpZWxkVmFsdWVdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gc2hhcmVkVHlwZTtcbn1cbiJdfQ==
|
@@ -1,27 +1,28 @@
|
|
1
1
|
import updateFieldValue from './update-field-value';
|
2
|
+
import { ActionName } from '../../types';
|
2
3
|
import setNode from './set-node';
|
3
4
|
import addNode from './add-node';
|
4
5
|
import removeNode from './remove-node';
|
5
6
|
export const actionMappers = {
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
7
|
+
[ActionName.AddRecord]: addNode,
|
8
|
+
[ActionName.UpdateFieldValue]: updateFieldValue,
|
9
|
+
[ActionName.RemoveRecord]: removeNode,
|
10
|
+
[ActionName.AddField]: addNode,
|
11
|
+
[ActionName.SetField]: setNode,
|
12
|
+
[ActionName.RemoveField]: removeNode,
|
13
|
+
[ActionName.SetView]: setNode,
|
14
|
+
[ActionName.AddView]: addNode,
|
15
|
+
[ActionName.RemoveView]: removeNode,
|
16
|
+
[ActionName.SetRecordPositions]: addNode,
|
17
|
+
[ActionName.UpdateSystemFieldValue]: addNode
|
17
18
|
};
|
18
|
-
export function applyActionOps(sharedType, actions
|
19
|
+
export function applyActionOps(aiTable, sharedType, actions) {
|
19
20
|
if (actions.length > 0) {
|
20
21
|
sharedType.doc.transact(() => {
|
21
22
|
actions.forEach((action) => {
|
22
23
|
const apply = actionMappers[action.type];
|
23
24
|
if (apply) {
|
24
|
-
return apply(sharedType, action);
|
25
|
+
return apply(aiTable, sharedType, action);
|
25
26
|
}
|
26
27
|
return null;
|
27
28
|
});
|
@@ -29,4 +30,4 @@ export function applyActionOps(sharedType, actions, aiTable) {
|
|
29
30
|
}
|
30
31
|
return sharedType;
|
31
32
|
}
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdGF0ZS9zcmMvc2hhcmVkL3RvLXlqcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLGdCQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQTZCLE1BQU0sYUFBYSxDQUFDO0FBQ3BFLE9BQU8sT0FBTyxNQUFNLFlBQVksQ0FBQztBQUNqQyxPQUFPLE9BQU8sTUFBTSxZQUFZLENBQUM7QUFDakMsT0FBTyxVQUFVLE1BQU0sZUFBZSxDQUFDO0FBUXZDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBK0I7SUFDckQsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsT0FBTztJQUMvQixDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLGdCQUFnQjtJQUMvQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsRUFBRSxVQUFVO0lBQ3JDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLE9BQU87SUFDOUIsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUUsT0FBTztJQUM5QixDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsRUFBRSxVQUFVO0lBQ3BDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU87SUFDN0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTztJQUM3QixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsRUFBRSxVQUFVO0lBQ25DLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsT0FBTztJQUN4QyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxFQUFFLE9BQU87Q0FDL0MsQ0FBQztBQUVGLE1BQU0sVUFBVSxjQUFjLENBQUMsT0FBZ0IsRUFBRSxVQUFzQixFQUFFLE9BQXdCO0lBQzdGLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNyQixVQUFVLENBQUMsR0FBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDMUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUN2QixNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBNkIsQ0FBQztnQkFDckUsSUFBSSxLQUFLLEVBQUUsQ0FBQztvQkFDUixPQUFPLEtBQUssQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxDQUFDO2dCQUM5QyxDQUFDO2dCQUNELE9BQU8sSUFBSSxDQUFDO1lBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2hCLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlUYWJsZSB9IGZyb20gJ0BhaS10YWJsZS9ncmlkJztcbmltcG9ydCB1cGRhdGVGaWVsZFZhbHVlIGZyb20gJy4vdXBkYXRlLWZpZWxkLXZhbHVlJztcbmltcG9ydCB7IEFjdGlvbk5hbWUsIEFJVGFibGVBY3Rpb24sIFNoYXJlZFR5cGUgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgc2V0Tm9kZSBmcm9tICcuL3NldC1ub2RlJztcbmltcG9ydCBhZGROb2RlIGZyb20gJy4vYWRkLW5vZGUnO1xuaW1wb3J0IHJlbW92ZU5vZGUgZnJvbSAnLi9yZW1vdmUtbm9kZSc7XG5cbmV4cG9ydCB0eXBlIEFjdGlvbk1hcHBlcjxPIGV4dGVuZHMgQUlUYWJsZUFjdGlvbiA9IEFJVGFibGVBY3Rpb24+ID0ge1xuICAgIFtLIGluIE9bJ3R5cGUnXV06IE8gZXh0ZW5kcyB7IHR5cGU6IEsgfSA/IEFwcGx5RnVuYzxPPiA6IG5ldmVyO1xufTtcblxuZXhwb3J0IHR5cGUgQXBwbHlGdW5jPE8gZXh0ZW5kcyBBSVRhYmxlQWN0aW9uID0gQUlUYWJsZUFjdGlvbj4gPSAoYWlUYWJsZTogQUlUYWJsZSwgc2hhcmVkVHlwZTogU2hhcmVkVHlwZSwgb3A6IE8pID0+IFNoYXJlZFR5cGU7XG5cbmV4cG9ydCBjb25zdCBhY3Rpb25NYXBwZXJzOiBQYXJ0aWFsPEFjdGlvbk1hcHBlcjxhbnk+PiA9IHtcbiAgICBbQWN0aW9uTmFtZS5BZGRSZWNvcmRdOiBhZGROb2RlLFxuICAgIFtBY3Rpb25OYW1lLlVwZGF0ZUZpZWxkVmFsdWVdOiB1cGRhdGVGaWVsZFZhbHVlLFxuICAgIFtBY3Rpb25OYW1lLlJlbW92ZVJlY29yZF06IHJlbW92ZU5vZGUsXG4gICAgW0FjdGlvbk5hbWUuQWRkRmllbGRdOiBhZGROb2RlLFxuICAgIFtBY3Rpb25OYW1lLlNldEZpZWxkXTogc2V0Tm9kZSxcbiAgICBbQWN0aW9uTmFtZS5SZW1vdmVGaWVsZF06IHJlbW92ZU5vZGUsXG4gICAgW0FjdGlvbk5hbWUuU2V0Vmlld106IHNldE5vZGUsXG4gICAgW0FjdGlvbk5hbWUuQWRkVmlld106IGFkZE5vZGUsXG4gICAgW0FjdGlvbk5hbWUuUmVtb3ZlVmlld106IHJlbW92ZU5vZGUsXG4gICAgW0FjdGlvbk5hbWUuU2V0UmVjb3JkUG9zaXRpb25zXTogYWRkTm9kZSxcbiAgICBbQWN0aW9uTmFtZS5VcGRhdGVTeXN0ZW1GaWVsZFZhbHVlXTogYWRkTm9kZVxufTtcblxuZXhwb3J0IGZ1bmN0aW9uIGFwcGx5QWN0aW9uT3BzKGFpVGFibGU6IEFJVGFibGUsIHNoYXJlZFR5cGU6IFNoYXJlZFR5cGUsIGFjdGlvbnM6IEFJVGFibGVBY3Rpb25bXSk6IFNoYXJlZFR5cGUge1xuICAgIGlmIChhY3Rpb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgc2hhcmVkVHlwZS5kb2MhLnRyYW5zYWN0KCgpID0+IHtcbiAgICAgICAgICAgIGFjdGlvbnMuZm9yRWFjaCgoYWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgYXBwbHkgPSBhY3Rpb25NYXBwZXJzW2FjdGlvbi50eXBlXSBhcyBBcHBseUZ1bmM8dHlwZW9mIGFjdGlvbj47XG4gICAgICAgICAgICAgICAgaWYgKGFwcGx5KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBhcHBseShhaVRhYmxlLCBzaGFyZWRUeXBlLCBhY3Rpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LCBhaVRhYmxlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc2hhcmVkVHlwZTtcbn1cbiJdfQ==
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { ActionName } from '../../types';
|
2
2
|
import { getSharedMapValueIndex, getSharedRecordIndex } from '../utils';
|
3
|
-
export default function removeNode(sharedType, action) {
|
3
|
+
export default function removeNode(aiTable, sharedType, action) {
|
4
4
|
const fields = sharedType.get('fields');
|
5
5
|
const records = sharedType.get('records');
|
6
6
|
const views = sharedType.get('views');
|
@@ -21,18 +21,6 @@ export default function removeNode(sharedType, action) {
|
|
21
21
|
}
|
22
22
|
}
|
23
23
|
break;
|
24
|
-
case ActionName.RemoveRecordPosition:
|
25
|
-
if (records) {
|
26
|
-
const recordIndex = getSharedRecordIndex(records, action.path[1]);
|
27
|
-
const record = records.get(recordIndex);
|
28
|
-
const customField = record.get(1);
|
29
|
-
const positionsIndex = customField.length - 1;
|
30
|
-
const positions = customField.get(positionsIndex);
|
31
|
-
delete positions[action.path[0]];
|
32
|
-
customField.delete(positionsIndex);
|
33
|
-
customField.insert(positionsIndex, [positions]);
|
34
|
-
}
|
35
|
-
break;
|
36
24
|
case ActionName.RemoveField:
|
37
25
|
if (fields && records) {
|
38
26
|
const fieldIndex = getSharedMapValueIndex(fields, action.path[0]);
|
@@ -47,4 +35,4 @@ export default function removeNode(sharedType, action) {
|
|
47
35
|
}
|
48
36
|
return sharedType;
|
49
37
|
}
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3ZlLW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdGF0ZS9zcmMvc2hhcmVkL3RvLXlqcy9yZW1vdmUtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsVUFBVSxFQU9iLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUd4RSxNQUFNLENBQUMsT0FBTyxVQUFVLFVBQVUsQ0FBQyxPQUFnQixFQUFFLFVBQXNCLEVBQUUsTUFBaUU7SUFDMUksTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQTRCLENBQUM7SUFDbkUsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQThCLENBQUM7SUFDdkUsTUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQTZCLENBQUM7SUFFbEUsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbEIsS0FBSyxVQUFVLENBQUMsWUFBWTtZQUN4QixJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2xFLElBQUksV0FBVyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7b0JBQ25CLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7Z0JBQ2hDLENBQUM7WUFDTCxDQUFDO1lBQ0QsTUFBTTtRQUNWLEtBQUssVUFBVSxDQUFDLFVBQVU7WUFDdEIsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDUixNQUFNLFNBQVMsR0FBRyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNqQixLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUM1QixDQUFDO1lBQ0wsQ0FBQztZQUNELE1BQU07UUFDVixLQUFLLFVBQVUsQ0FBQyxXQUFXO1lBQ3ZCLElBQUksTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUNwQixNQUFNLFVBQVUsR0FBRyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNsRSxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO29CQUNsQixNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUMxQixLQUFLLElBQUksS0FBSyxJQUFJLE9BQU8sRUFBRSxDQUFDO3dCQUN4QixLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDcEMsQ0FBQztnQkFDTCxDQUFDO1lBQ0wsQ0FBQztZQUNELE1BQU07SUFDZCxDQUFDO0lBRUQsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIFkgZnJvbSAneWpzJztcbmltcG9ydCB7XG4gICAgQWN0aW9uTmFtZSxcbiAgICBSZW1vdmVGaWVsZEFjdGlvbixcbiAgICBSZW1vdmVSZWNvcmRBY3Rpb24sXG4gICAgUmVtb3ZlVmlld0FjdGlvbixcbiAgICBTaGFyZWRUeXBlLFxuICAgIFN5bmNBcnJheUVsZW1lbnQsXG4gICAgU3luY01hcEVsZW1lbnRcbn0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U2hhcmVkTWFwVmFsdWVJbmRleCwgZ2V0U2hhcmVkUmVjb3JkSW5kZXggfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgeyBBSVRhYmxlIH0gZnJvbSAnQGFpLXRhYmxlL2dyaWQnO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiByZW1vdmVOb2RlKGFpVGFibGU6IEFJVGFibGUsIHNoYXJlZFR5cGU6IFNoYXJlZFR5cGUsIGFjdGlvbjogUmVtb3ZlRmllbGRBY3Rpb24gfCBSZW1vdmVSZWNvcmRBY3Rpb24gfCBSZW1vdmVWaWV3QWN0aW9uKTogU2hhcmVkVHlwZSB7XG4gICAgY29uc3QgZmllbGRzID0gc2hhcmVkVHlwZS5nZXQoJ2ZpZWxkcycpIGFzIFkuQXJyYXk8U3luY01hcEVsZW1lbnQ+O1xuICAgIGNvbnN0IHJlY29yZHMgPSBzaGFyZWRUeXBlLmdldCgncmVjb3JkcycpIGFzIFkuQXJyYXk8U3luY0FycmF5RWxlbWVudD47XG4gICAgY29uc3Qgdmlld3MgPSBzaGFyZWRUeXBlLmdldCgndmlld3MnKSEgYXMgWS5BcnJheTxTeW5jTWFwRWxlbWVudD47XG5cbiAgICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgICAgIGNhc2UgQWN0aW9uTmFtZS5SZW1vdmVSZWNvcmQ6XG4gICAgICAgICAgICBpZiAocmVjb3Jkcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlY29yZEluZGV4ID0gZ2V0U2hhcmVkUmVjb3JkSW5kZXgocmVjb3JkcywgYWN0aW9uLnBhdGhbMF0pO1xuICAgICAgICAgICAgICAgIGlmIChyZWNvcmRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlY29yZHMuZGVsZXRlKHJlY29yZEluZGV4KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSBBY3Rpb25OYW1lLlJlbW92ZVZpZXc6XG4gICAgICAgICAgICBpZiAodmlld3MpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB2aWV3SW5kZXggPSBnZXRTaGFyZWRNYXBWYWx1ZUluZGV4KHZpZXdzLCBhY3Rpb24ucGF0aFswXSk7XG4gICAgICAgICAgICAgICAgaWYgKHZpZXdJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXdzLmRlbGV0ZSh2aWV3SW5kZXgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIEFjdGlvbk5hbWUuUmVtb3ZlRmllbGQ6XG4gICAgICAgICAgICBpZiAoZmllbGRzICYmIHJlY29yZHMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWVsZEluZGV4ID0gZ2V0U2hhcmVkTWFwVmFsdWVJbmRleChmaWVsZHMsIGFjdGlvbi5wYXRoWzBdKTtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIGZpZWxkcy5kZWxldGUoZmllbGRJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IHZhbHVlIG9mIHJlY29yZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLmdldCgxKS5kZWxldGUoZmllbGRJbmRleCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICByZXR1cm4gc2hhcmVkVHlwZTtcbn1cbiJdfQ==
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import { getSharedMapValueIndex } from '../utils';
|
2
2
|
import { ActionName } from '../../types';
|
3
|
-
export default function setNode(sharedType, action) {
|
3
|
+
export default function setNode(aiTable, sharedType, action) {
|
4
4
|
let sharedNodes;
|
5
5
|
if (action.type === ActionName.SetField) {
|
6
6
|
sharedNodes = sharedType.get('fields');
|
@@ -29,4 +29,4 @@ export default function setNode(sharedType, action) {
|
|
29
29
|
}
|
30
30
|
return sharedType;
|
31
31
|
}
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2V0LW5vZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdGF0ZS9zcmMvc2hhcmVkL3RvLXlqcy9zZXQtbm9kZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBNkQsTUFBTSxhQUFhLENBQUM7QUFJcEcsTUFBTSxDQUFDLE9BQU8sVUFBVSxPQUFPLENBQUMsT0FBZ0IsRUFBRSxVQUFzQixFQUFFLE1BQXNDO0lBQzVHLElBQUksV0FBVyxDQUFDO0lBQ2hCLElBQUksTUFBTSxDQUFDLElBQUksS0FBSyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDdEMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUE2QixDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3JDLFdBQVcsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBNkIsQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBSSxXQUFXLEVBQUUsQ0FBQztRQUNkLElBQUksU0FBUyxHQUFHLHNCQUFzQixDQUFDLFdBQVcsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBVyxDQUFDLENBQUM7UUFDOUUsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqQixNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBbUIsQ0FBQztZQUMxRCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFO2dCQUMxRCxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDaEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDckIsQ0FBQztxQkFBTSxDQUFDO29CQUNKLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN6QixDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDSCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hELElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO29CQUM1QyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNyQixDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3RCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBnZXRTaGFyZWRNYXBWYWx1ZUluZGV4IH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgQWN0aW9uTmFtZSwgU2V0RmllbGRBY3Rpb24sIFNldFZpZXdBY3Rpb24sIFNoYXJlZFR5cGUsIFN5bmNNYXBFbGVtZW50IH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0ICogYXMgWSBmcm9tICd5anMnO1xuaW1wb3J0IHsgQUlUYWJsZSB9IGZyb20gJ0BhaS10YWJsZS9ncmlkJztcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gc2V0Tm9kZShhaVRhYmxlOiBBSVRhYmxlLCBzaGFyZWRUeXBlOiBTaGFyZWRUeXBlLCBhY3Rpb246IFNldEZpZWxkQWN0aW9uIHwgU2V0Vmlld0FjdGlvbik6IFNoYXJlZFR5cGUge1xuICAgIGxldCBzaGFyZWROb2RlcztcbiAgICBpZiAoYWN0aW9uLnR5cGUgPT09IEFjdGlvbk5hbWUuU2V0RmllbGQpIHtcbiAgICAgICAgc2hhcmVkTm9kZXMgPSBzaGFyZWRUeXBlLmdldCgnZmllbGRzJykhIGFzIFkuQXJyYXk8U3luY01hcEVsZW1lbnQ+O1xuICAgIH1cblxuICAgIGlmIChhY3Rpb24udHlwZSA9PT0gQWN0aW9uTmFtZS5TZXRWaWV3KSB7XG4gICAgICAgIHNoYXJlZE5vZGVzID0gc2hhcmVkVHlwZS5nZXQoJ3ZpZXdzJykhIGFzIFkuQXJyYXk8U3luY01hcEVsZW1lbnQ+O1xuICAgIH1cblxuICAgIGlmIChzaGFyZWROb2Rlcykge1xuICAgICAgICBsZXQgbm9kZUluZGV4ID0gZ2V0U2hhcmVkTWFwVmFsdWVJbmRleChzaGFyZWROb2RlcywgYWN0aW9uLnBhdGhbMF0gYXMgc3RyaW5nKTtcbiAgICAgICAgaWYgKG5vZGVJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gc2hhcmVkTm9kZXMuZ2V0KG5vZGVJbmRleCkgYXMgU3luY01hcEVsZW1lbnQ7XG4gICAgICAgICAgICBPYmplY3QuZW50cmllcyhhY3Rpb24ubmV3UHJvcGVydGllcykuZm9yRWFjaCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgbm9kZS5kZWxldGUoa2V5KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBub2RlLnNldChrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIE9iamVjdC5lbnRyaWVzKGFjdGlvbi5wcm9wZXJ0aWVzKS5mb3JFYWNoKChba2V5XSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghYWN0aW9uLm5ld1Byb3BlcnRpZXMuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICAgICAgICAgICAgICBub2RlLmRlbGV0ZShrZXkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBzaGFyZWRUeXBlO1xufVxuIl19
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { getSharedMapValueIndex, getSharedRecordIndex } from '../utils';
|
2
|
-
export default function updateFieldValue(sharedType, action) {
|
2
|
+
export default function updateFieldValue(aiTable, sharedType, action) {
|
3
3
|
const sharedRecords = sharedType.get('records');
|
4
4
|
const sharedFields = sharedType.get('fields');
|
5
5
|
if (sharedRecords && sharedFields) {
|
@@ -14,4 +14,4 @@ export default function updateFieldValue(sharedType, action) {
|
|
14
14
|
}
|
15
15
|
return sharedType;
|
16
16
|
}
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLWZpZWxkLXZhbHVlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvc3RhdGUvc3JjL3NoYXJlZC90by15anMvdXBkYXRlLWZpZWxkLXZhbHVlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUd4RSxNQUFNLENBQUMsT0FBTyxVQUFVLGdCQUFnQixDQUFDLE9BQWdCLEVBQUUsVUFBc0IsRUFBRSxNQUE4QjtJQUM3RyxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2hELE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFFLENBQUM7SUFDL0MsSUFBSSxhQUFhLElBQUksWUFBWSxFQUFFLENBQUM7UUFDaEMsTUFBTSxXQUFXLEdBQUcsb0JBQW9CLENBQUMsYUFBMEMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckcsTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsWUFBdUMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkcsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDdEMsTUFBTSxNQUFNLEdBQUcsYUFBYSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQXFCLENBQUM7WUFDbkUsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQy9CLFdBQVcsQ0FBQyxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlUYWJsZSB9IGZyb20gJ0BhaS10YWJsZS9ncmlkJztcbmltcG9ydCB7IFNoYXJlZFR5cGUsIFN5bmNBcnJheUVsZW1lbnQsIFN5bmNNYXBFbGVtZW50LCBVcGRhdGVGaWVsZFZhbHVlQWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2V0U2hhcmVkTWFwVmFsdWVJbmRleCwgZ2V0U2hhcmVkUmVjb3JkSW5kZXggfSBmcm9tICcuLi91dGlscyc7XG5pbXBvcnQgKiBhcyBZIGZyb20gJ3lqcyc7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIHVwZGF0ZUZpZWxkVmFsdWUoYWlUYWJsZTogQUlUYWJsZSwgc2hhcmVkVHlwZTogU2hhcmVkVHlwZSwgYWN0aW9uOiBVcGRhdGVGaWVsZFZhbHVlQWN0aW9uKTogU2hhcmVkVHlwZSB7XG4gICAgY29uc3Qgc2hhcmVkUmVjb3JkcyA9IHNoYXJlZFR5cGUuZ2V0KCdyZWNvcmRzJyk7XG4gICAgY29uc3Qgc2hhcmVkRmllbGRzID0gc2hhcmVkVHlwZS5nZXQoJ2ZpZWxkcycpITtcbiAgICBpZiAoc2hhcmVkUmVjb3JkcyAmJiBzaGFyZWRGaWVsZHMpIHtcbiAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSBnZXRTaGFyZWRSZWNvcmRJbmRleChzaGFyZWRSZWNvcmRzIGFzIFkuQXJyYXk8U3luY0FycmF5RWxlbWVudD4sIGFjdGlvbi5wYXRoWzBdKTtcbiAgICAgICAgY29uc3QgZmllbGRJbmRleCA9IGdldFNoYXJlZE1hcFZhbHVlSW5kZXgoc2hhcmVkRmllbGRzIGFzIFkuQXJyYXk8U3luY01hcEVsZW1lbnQ+LCBhY3Rpb24ucGF0aFsxXSk7XG4gICAgICAgIGlmIChyZWNvcmRJbmRleCA+IC0xICYmIGZpZWxkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkID0gc2hhcmVkUmVjb3Jkcz8uZ2V0KHJlY29yZEluZGV4KSBhcyBTeW5jQXJyYXlFbGVtZW50O1xuICAgICAgICAgICAgY29uc3QgY3VzdG9tRmllbGQgPSByZWNvcmQuZ2V0KDEpO1xuICAgICAgICAgICAgY3VzdG9tRmllbGQuZGVsZXRlKGZpZWxkSW5kZXgpO1xuICAgICAgICAgICAgY3VzdG9tRmllbGQuaW5zZXJ0KGZpZWxkSW5kZXgsIFthY3Rpb24ubmV3RmllbGRWYWx1ZV0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHNoYXJlZFR5cGU7XG59XG4iXX0=
|
@@ -1,4 +1,3 @@
|
|
1
|
-
export * from './
|
2
|
-
export * from './init-table';
|
1
|
+
export * from './initialize';
|
3
2
|
export * from './translate';
|
4
|
-
//# sourceMappingURL=data:application/json;base64,
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9zdGF0ZS9zcmMvc2hhcmVkL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbml0aWFsaXplJztcbmV4cG9ydCAqIGZyb20gJy4vdHJhbnNsYXRlJzsiXX0=
|
@@ -0,0 +1,51 @@
|
|
1
|
+
import * as Y from 'yjs';
|
2
|
+
import { getIdBySystemFieldValues, getPositionsBySystemFieldValues, getTrackableEntityBySystemFieldValues, getValuesByCustomFieldValues, toRecordSyncElement, toSyncElement } from './translate';
|
3
|
+
import { AI_TABLE_CONTENT_FIELD_NAME } from '../../constants/default';
|
4
|
+
export const createSharedType = (fieldName = AI_TABLE_CONTENT_FIELD_NAME) => {
|
5
|
+
const doc = new Y.Doc();
|
6
|
+
const sharedType = doc.getMap(fieldName);
|
7
|
+
return sharedType;
|
8
|
+
};
|
9
|
+
export const getDataBySharedType = (sharedType) => {
|
10
|
+
const data = sharedType.toJSON();
|
11
|
+
const fields = data['fields'];
|
12
|
+
const records = getRecordsBySharedJson(data['records'], fields);
|
13
|
+
const views = data['views'];
|
14
|
+
return {
|
15
|
+
records,
|
16
|
+
fields,
|
17
|
+
views
|
18
|
+
};
|
19
|
+
};
|
20
|
+
export const getSharedTypeByData = (doc, initializeValue) => {
|
21
|
+
const sharedType = doc.getMap(AI_TABLE_CONTENT_FIELD_NAME);
|
22
|
+
toSharedType(sharedType, initializeValue);
|
23
|
+
return sharedType;
|
24
|
+
};
|
25
|
+
export function toSharedType(sharedType, data) {
|
26
|
+
sharedType.doc.transact(() => {
|
27
|
+
const fieldSharedType = new Y.Array();
|
28
|
+
fieldSharedType.insert(0, data.fields.map(toSyncElement));
|
29
|
+
sharedType.set('fields', fieldSharedType);
|
30
|
+
const recordSharedType = new Y.Array();
|
31
|
+
sharedType.set('records', recordSharedType);
|
32
|
+
recordSharedType.insert(0, data.records.map((record) => {
|
33
|
+
return toRecordSyncElement(record, data.fields);
|
34
|
+
}));
|
35
|
+
const viewsSharedType = new Y.Array();
|
36
|
+
sharedType.set('views', viewsSharedType);
|
37
|
+
viewsSharedType.insert(0, data.views.map(toSyncElement));
|
38
|
+
});
|
39
|
+
}
|
40
|
+
export const getRecordsBySharedJson = (recordJsonArray, fields) => {
|
41
|
+
return recordJsonArray.map((record) => {
|
42
|
+
const [systemFieldValues, customFieldValues] = record;
|
43
|
+
return {
|
44
|
+
_id: getIdBySystemFieldValues(systemFieldValues),
|
45
|
+
...getTrackableEntityBySystemFieldValues(systemFieldValues),
|
46
|
+
positions: getPositionsBySystemFieldValues(systemFieldValues),
|
47
|
+
values: getValuesByCustomFieldValues(customFieldValues, fields)
|
48
|
+
};
|
49
|
+
});
|
50
|
+
};
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3N0YXRlL3NyYy9zaGFyZWQvdXRpbHMvaW5pdGlhbGl6ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQztBQUV6QixPQUFPLEVBQ0gsd0JBQXdCLEVBQ3hCLCtCQUErQixFQUMvQixxQ0FBcUMsRUFDckMsNEJBQTRCLEVBQzVCLG1CQUFtQixFQUNuQixhQUFhLEVBQ2hCLE1BQU0sYUFBYSxDQUFDO0FBQ3JCLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXRFLE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHLENBQUMsWUFBb0IsMkJBQTJCLEVBQUUsRUFBRTtJQUNoRixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUN4QixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFNLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLE9BQU8sVUFBVSxDQUFDO0FBQ3RCLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG1CQUFtQixHQUFHLENBQUMsVUFBc0IsRUFBRSxFQUFFO0lBQzFELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNqQyxNQUFNLE1BQU0sR0FBc0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2pELE1BQU0sT0FBTyxHQUF1QixzQkFBc0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEYsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLE9BQU87UUFDSCxPQUFPO1FBQ1AsTUFBTTtRQUNOLEtBQUs7S0FDUixDQUFDO0FBQ04sQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsQ0FDL0IsR0FBVSxFQUNWLGVBSUMsRUFDSCxFQUFFO0lBQ0EsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBTSwyQkFBMkIsQ0FBQyxDQUFDO0lBQ2hFLFlBQVksQ0FBQyxVQUFVLEVBQUUsZUFBZSxDQUFDLENBQUM7SUFDMUMsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLFlBQVksQ0FDeEIsVUFBc0IsRUFDdEIsSUFJQztJQUVELFVBQVUsQ0FBQyxHQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUMxQixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN0QyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzFELFVBQVUsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFnQixDQUFDO1FBQ3JELFVBQVUsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsZ0JBQWdCLENBQUMsTUFBTSxDQUNuQixDQUFDLEVBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN4QixPQUFPLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQ0wsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3RDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3pDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDN0QsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsQ0FBQyxlQUF1QyxFQUFFLE1BQXlCLEVBQXNCLEVBQUU7SUFDN0gsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBNEIsRUFBRSxFQUFFO1FBQ3hELE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxpQkFBaUIsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUN0RCxPQUFPO1lBQ0gsR0FBRyxFQUFFLHdCQUF3QixDQUFDLGlCQUFpQixDQUFDO1lBQ2hELEdBQUcscUNBQXFDLENBQUMsaUJBQWlCLENBQUM7WUFDM0QsU0FBUyxFQUFFLCtCQUErQixDQUFDLGlCQUFpQixDQUFDO1lBQzdELE1BQU0sRUFBRSw0QkFBNEIsQ0FBQyxpQkFBaUIsRUFBRSxNQUFNLENBQUM7U0FDbEUsQ0FBQztJQUNOLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgWSBmcm9tICd5anMnO1xuaW1wb3J0IHsgQUlUYWJsZVZpZXdGaWVsZHMsIEFJVGFibGVWaWV3UmVjb3JkcywgQUlUYWJsZVZpZXdzLCBTaGFyZWRSZWNvcmRKc29uVHlwZSwgU2hhcmVkVHlwZSB9IGZyb20gJy4uLy4uL3R5cGVzJztcbmltcG9ydCB7XG4gICAgZ2V0SWRCeVN5c3RlbUZpZWxkVmFsdWVzLFxuICAgIGdldFBvc2l0aW9uc0J5U3lzdGVtRmllbGRWYWx1ZXMsXG4gICAgZ2V0VHJhY2thYmxlRW50aXR5QnlTeXN0ZW1GaWVsZFZhbHVlcyxcbiAgICBnZXRWYWx1ZXNCeUN1c3RvbUZpZWxkVmFsdWVzLFxuICAgIHRvUmVjb3JkU3luY0VsZW1lbnQsXG4gICAgdG9TeW5jRWxlbWVudFxufSBmcm9tICcuL3RyYW5zbGF0ZSc7XG5pbXBvcnQgeyBBSV9UQUJMRV9DT05URU5UX0ZJRUxEX05BTUUgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvZGVmYXVsdCc7XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTaGFyZWRUeXBlID0gKGZpZWxkTmFtZTogc3RyaW5nID0gQUlfVEFCTEVfQ09OVEVOVF9GSUVMRF9OQU1FKSA9PiB7XG4gICAgY29uc3QgZG9jID0gbmV3IFkuRG9jKCk7XG4gICAgY29uc3Qgc2hhcmVkVHlwZSA9IGRvYy5nZXRNYXA8YW55PihmaWVsZE5hbWUpO1xuICAgIHJldHVybiBzaGFyZWRUeXBlO1xufTtcblxuZXhwb3J0IGNvbnN0IGdldERhdGFCeVNoYXJlZFR5cGUgPSAoc2hhcmVkVHlwZTogU2hhcmVkVHlwZSkgPT4ge1xuICAgIGNvbnN0IGRhdGEgPSBzaGFyZWRUeXBlLnRvSlNPTigpO1xuICAgIGNvbnN0IGZpZWxkczogQUlUYWJsZVZpZXdGaWVsZHMgPSBkYXRhWydmaWVsZHMnXTtcbiAgICBjb25zdCByZWNvcmRzOiBBSVRhYmxlVmlld1JlY29yZHMgPSBnZXRSZWNvcmRzQnlTaGFyZWRKc29uKGRhdGFbJ3JlY29yZHMnXSwgZmllbGRzKTtcbiAgICBjb25zdCB2aWV3cyA9IGRhdGFbJ3ZpZXdzJ107XG4gICAgcmV0dXJuIHtcbiAgICAgICAgcmVjb3JkcyxcbiAgICAgICAgZmllbGRzLFxuICAgICAgICB2aWV3c1xuICAgIH07XG59O1xuXG5leHBvcnQgY29uc3QgZ2V0U2hhcmVkVHlwZUJ5RGF0YSA9IChcbiAgICBkb2M6IFkuRG9jLFxuICAgIGluaXRpYWxpemVWYWx1ZToge1xuICAgICAgICBmaWVsZHM6IEFJVGFibGVWaWV3RmllbGRzO1xuICAgICAgICByZWNvcmRzOiBBSVRhYmxlVmlld1JlY29yZHM7XG4gICAgICAgIHZpZXdzOiBBSVRhYmxlVmlld3M7XG4gICAgfVxuKSA9PiB7XG4gICAgY29uc3Qgc2hhcmVkVHlwZSA9IGRvYy5nZXRNYXA8YW55PihBSV9UQUJMRV9DT05URU5UX0ZJRUxEX05BTUUpO1xuICAgIHRvU2hhcmVkVHlwZShzaGFyZWRUeXBlLCBpbml0aWFsaXplVmFsdWUpO1xuICAgIHJldHVybiBzaGFyZWRUeXBlO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHRvU2hhcmVkVHlwZShcbiAgICBzaGFyZWRUeXBlOiBZLk1hcDxhbnk+LFxuICAgIGRhdGE6IHtcbiAgICAgICAgZmllbGRzOiBBSVRhYmxlVmlld0ZpZWxkcztcbiAgICAgICAgcmVjb3JkczogQUlUYWJsZVZpZXdSZWNvcmRzO1xuICAgICAgICB2aWV3czogQUlUYWJsZVZpZXdzO1xuICAgIH1cbik6IHZvaWQge1xuICAgIHNoYXJlZFR5cGUuZG9jIS50cmFuc2FjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkU2hhcmVkVHlwZSA9IG5ldyBZLkFycmF5KCk7XG4gICAgICAgIGZpZWxkU2hhcmVkVHlwZS5pbnNlcnQoMCwgZGF0YS5maWVsZHMubWFwKHRvU3luY0VsZW1lbnQpKTtcbiAgICAgICAgc2hhcmVkVHlwZS5zZXQoJ2ZpZWxkcycsIGZpZWxkU2hhcmVkVHlwZSk7XG4gICAgICAgIGNvbnN0IHJlY29yZFNoYXJlZFR5cGUgPSBuZXcgWS5BcnJheTxZLkFycmF5PGFueT4+KCk7XG4gICAgICAgIHNoYXJlZFR5cGUuc2V0KCdyZWNvcmRzJywgcmVjb3JkU2hhcmVkVHlwZSk7XG4gICAgICAgIHJlY29yZFNoYXJlZFR5cGUuaW5zZXJ0KFxuICAgICAgICAgICAgMCxcbiAgICAgICAgICAgIGRhdGEucmVjb3Jkcy5tYXAoKHJlY29yZCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b1JlY29yZFN5bmNFbGVtZW50KHJlY29yZCwgZGF0YS5maWVsZHMpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCB2aWV3c1NoYXJlZFR5cGUgPSBuZXcgWS5BcnJheSgpO1xuICAgICAgICBzaGFyZWRUeXBlLnNldCgndmlld3MnLCB2aWV3c1NoYXJlZFR5cGUpO1xuICAgICAgICB2aWV3c1NoYXJlZFR5cGUuaW5zZXJ0KDAsIGRhdGEudmlld3MubWFwKHRvU3luY0VsZW1lbnQpKTtcbiAgICB9KTtcbn1cblxuZXhwb3J0IGNvbnN0IGdldFJlY29yZHNCeVNoYXJlZEpzb24gPSAocmVjb3JkSnNvbkFycmF5OiBTaGFyZWRSZWNvcmRKc29uVHlwZVtdLCBmaWVsZHM6IEFJVGFibGVWaWV3RmllbGRzKTogQUlUYWJsZVZpZXdSZWNvcmRzID0+IHtcbiAgICByZXR1cm4gcmVjb3JkSnNvbkFycmF5Lm1hcCgocmVjb3JkOiBTaGFyZWRSZWNvcmRKc29uVHlwZSkgPT4ge1xuICAgICAgICBjb25zdCBbc3lzdGVtRmllbGRWYWx1ZXMsIGN1c3RvbUZpZWxkVmFsdWVzXSA9IHJlY29yZDtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIF9pZDogZ2V0SWRCeVN5c3RlbUZpZWxkVmFsdWVzKHN5c3RlbUZpZWxkVmFsdWVzKSxcbiAgICAgICAgICAgIC4uLmdldFRyYWNrYWJsZUVudGl0eUJ5U3lzdGVtRmllbGRWYWx1ZXMoc3lzdGVtRmllbGRWYWx1ZXMpLFxuICAgICAgICAgICAgcG9zaXRpb25zOiBnZXRQb3NpdGlvbnNCeVN5c3RlbUZpZWxkVmFsdWVzKHN5c3RlbUZpZWxkVmFsdWVzKSxcbiAgICAgICAgICAgIHZhbHVlczogZ2V0VmFsdWVzQnlDdXN0b21GaWVsZFZhbHVlcyhjdXN0b21GaWVsZFZhbHVlcywgZmllbGRzKVxuICAgICAgICB9O1xuICAgIH0pO1xufTtcbiJdfQ==
|