@ai-table/grid 0.0.40 → 0.0.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/cell-editors/select/select-editor.component.d.ts +3 -1
- package/components/cell-editors/select/select-editor.component.d.ts.map +1 -1
- package/components/context-menu/context-menu.component.d.ts +4 -1
- package/components/context-menu/context-menu.component.d.ts.map +1 -1
- package/components/drag/drag.component.d.ts +26 -0
- package/components/drag/drag.component.d.ts.map +1 -0
- package/components/drag/drag.component.scss +19 -0
- package/constants/file-icon.d.ts +32 -0
- package/constants/file-icon.d.ts.map +1 -0
- package/constants/grid.d.ts.map +1 -1
- package/constants/icon.d.ts +1 -0
- package/constants/icon.d.ts.map +1 -1
- package/constants/table.d.ts +4 -0
- package/constants/table.d.ts.map +1 -1
- package/core/constants/field.d.ts.map +1 -1
- package/core/types/ai-table.d.ts +3 -1
- package/core/types/ai-table.d.ts.map +1 -1
- package/core/types/core.d.ts +33 -2
- package/core/types/core.d.ts.map +1 -1
- package/core/utils/common.d.ts +3 -3
- package/core/utils/common.d.ts.map +1 -1
- package/core/utils/field.d.ts.map +1 -1
- package/core/utils/queries.d.ts +3 -1
- package/core/utils/queries.d.ts.map +1 -1
- package/esm2022/components/cell-editors/select/select-editor.component.mjs +22 -21
- package/esm2022/components/context-menu/context-menu.component.mjs +17 -5
- package/esm2022/components/drag/drag.component.mjs +150 -0
- package/esm2022/constants/file-icon.mjs +342 -0
- package/esm2022/constants/grid.mjs +2 -1
- package/esm2022/constants/icon.mjs +2 -1
- package/esm2022/constants/table.mjs +6 -2
- package/esm2022/core/constants/field.mjs +7 -1
- package/esm2022/core/types/ai-table.mjs +2 -2
- package/esm2022/core/types/core.mjs +9 -1
- package/esm2022/core/utils/common.mjs +3 -2
- package/esm2022/core/utils/field.mjs +8 -3
- package/esm2022/core/utils/queries.mjs +19 -13
- package/esm2022/grid-base.component.mjs +5 -3
- package/esm2022/grid.component.mjs +91 -4
- package/esm2022/renderer/components/field-icon.component.mjs +5 -2
- package/esm2022/renderer/creations/create-heads.mjs +5 -5
- package/esm2022/renderer/drawers/cell-drawer.mjs +74 -2
- package/esm2022/renderer/drawers/drawer.mjs +11 -2
- package/esm2022/services/event.service.mjs +12 -5
- package/esm2022/services/selection.service.mjs +22 -3
- package/esm2022/types/clipboard.mjs +2 -0
- package/esm2022/types/grid.mjs +1 -1
- package/esm2022/types/index.mjs +2 -1
- package/esm2022/types/row.mjs +1 -1
- package/esm2022/utils/clipboard/clipboard.mjs +88 -0
- package/esm2022/utils/clipboard/copy.mjs +92 -0
- package/esm2022/utils/clipboard/extract.mjs +19 -0
- package/esm2022/utils/clipboard/index.mjs +5 -0
- package/esm2022/utils/clipboard/paste.mjs +184 -0
- package/esm2022/utils/field/model/attachment.mjs +63 -0
- package/esm2022/utils/field/model/date.mjs +45 -2
- package/esm2022/utils/field/model/field.mjs +1 -1
- package/esm2022/utils/field/model/index.mjs +5 -3
- package/esm2022/utils/field/model/link.mjs +25 -1
- package/esm2022/utils/field/model/member.mjs +40 -1
- package/esm2022/utils/field/model/number.mjs +31 -1
- package/esm2022/utils/field/model/progress.mjs +34 -1
- package/esm2022/utils/field/model/rate.mjs +35 -1
- package/esm2022/utils/field/model/select.mjs +64 -1
- package/esm2022/utils/field/model/text.mjs +7 -1
- package/esm2022/utils/file.mjs +208 -0
- package/esm2022/utils/icon.mjs +48 -0
- package/esm2022/utils/index.mjs +2 -1
- package/esm2022/utils/match-keywords.mjs +3 -3
- package/fesm2022/ai-table-grid.mjs +2146 -433
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/grid-base.component.d.ts +4 -2
- package/grid-base.component.d.ts.map +1 -1
- package/grid.component.d.ts +6 -1
- package/grid.component.d.ts.map +1 -1
- package/package.json +1 -1
- package/renderer/components/field-icon.component.d.ts.map +1 -1
- package/renderer/drawers/cell-drawer.d.ts +1 -0
- package/renderer/drawers/cell-drawer.d.ts.map +1 -1
- package/renderer/drawers/drawer.d.ts.map +1 -1
- package/services/event.service.d.ts.map +1 -1
- package/services/selection.service.d.ts +5 -1
- package/services/selection.service.d.ts.map +1 -1
- package/styles/styles.scss +2 -0
- package/types/clipboard.d.ts +5 -0
- package/types/clipboard.d.ts.map +1 -0
- package/types/grid.d.ts +22 -5
- package/types/grid.d.ts.map +1 -1
- package/types/index.d.ts +1 -0
- package/types/index.d.ts.map +1 -1
- package/types/row.d.ts +3 -1
- package/types/row.d.ts.map +1 -1
- package/utils/clipboard/clipboard.d.ts +8 -0
- package/utils/clipboard/clipboard.d.ts.map +1 -0
- package/utils/clipboard/copy.d.ts +5 -0
- package/utils/clipboard/copy.d.ts.map +1 -0
- package/utils/clipboard/extract.d.ts +3 -0
- package/utils/clipboard/extract.d.ts.map +1 -0
- package/utils/clipboard/index.d.ts +5 -0
- package/utils/clipboard/index.d.ts.map +1 -0
- package/utils/clipboard/paste.d.ts +10 -0
- package/utils/clipboard/paste.d.ts.map +1 -0
- package/utils/field/model/attachment.d.ts +17 -0
- package/utils/field/model/attachment.d.ts.map +1 -0
- package/utils/field/model/date.d.ts +9 -1
- package/utils/field/model/date.d.ts.map +1 -1
- package/utils/field/model/field.d.ts +4 -0
- package/utils/field/model/field.d.ts.map +1 -1
- package/utils/field/model/index.d.ts +1 -1
- package/utils/field/model/index.d.ts.map +1 -1
- package/utils/field/model/link.d.ts +9 -1
- package/utils/field/model/link.d.ts.map +1 -1
- package/utils/field/model/member.d.ts +8 -0
- package/utils/field/model/member.d.ts.map +1 -1
- package/utils/field/model/number.d.ts +9 -1
- package/utils/field/model/number.d.ts.map +1 -1
- package/utils/field/model/progress.d.ts +9 -1
- package/utils/field/model/progress.d.ts.map +1 -1
- package/utils/field/model/rate.d.ts +9 -1
- package/utils/field/model/rate.d.ts.map +1 -1
- package/utils/field/model/select.d.ts +16 -1
- package/utils/field/model/select.d.ts.map +1 -1
- package/utils/field/model/text.d.ts +2 -0
- package/utils/field/model/text.d.ts.map +1 -1
- package/utils/file.d.ts +11 -0
- package/utils/file.d.ts.map +1 -0
- package/utils/icon.d.ts +19 -0
- package/utils/icon.d.ts.map +1 -0
- package/utils/index.d.ts +1 -0
- package/utils/index.d.ts.map +1 -1
@@ -0,0 +1,184 @@
|
|
1
|
+
import { AITable, AITableFieldType, createDefaultField, createDefaultFieldName, FieldOptions, getFieldValue, idCreator } from '../../core';
|
2
|
+
import { readFromClipboard, aiTableFragmentAttribute, extractText } from '../clipboard';
|
3
|
+
import { FieldModelMap } from '../field/model';
|
4
|
+
import { processPastedValueForSelect } from '../field/model/select';
|
5
|
+
const aiTableAttributePattern = new RegExp(`${aiTableFragmentAttribute}="(.+?)"`, 'm');
|
6
|
+
const decodeClipboardJsonData = (encoded) => {
|
7
|
+
const decoded = decodeURIComponent(window.atob(encoded));
|
8
|
+
return JSON.parse(decoded);
|
9
|
+
};
|
10
|
+
function extractContentFromClipboardText(clipboardText) {
|
11
|
+
const contents = clipboardText
|
12
|
+
.split('\n')
|
13
|
+
.map((row) => row.split('\t'))
|
14
|
+
.filter((row) => row.length > 0 && row.some((cell) => cell.trim().length > 0));
|
15
|
+
return contents;
|
16
|
+
}
|
17
|
+
function extractContentFromClipboardHtml(clipboardHtml) {
|
18
|
+
const tablePattern = /<table[^>]*>([\s\S]*?)<\/table>/i;
|
19
|
+
const trPattern = /<tr[^>]*>([\s\S]*?)<\/tr>/gi;
|
20
|
+
const cellPattern = /<td[^>]*>([\s\S]*?)<\/td>/gi;
|
21
|
+
const contents = [];
|
22
|
+
try {
|
23
|
+
const tableMatch = clipboardHtml.match(tablePattern);
|
24
|
+
const tableContent = tableMatch ? tableMatch[1] : clipboardHtml;
|
25
|
+
const rows = tableContent.match(trPattern) || [];
|
26
|
+
rows.forEach((row) => {
|
27
|
+
const rowContent = [];
|
28
|
+
const cells = row.match(cellPattern) || [];
|
29
|
+
cells.forEach((cell) => {
|
30
|
+
const content = cell.replace(/<td>|<\/td>/g, '').trim();
|
31
|
+
rowContent.push(content);
|
32
|
+
});
|
33
|
+
contents.push(rowContent);
|
34
|
+
});
|
35
|
+
return contents;
|
36
|
+
}
|
37
|
+
catch (error) {
|
38
|
+
return [];
|
39
|
+
}
|
40
|
+
}
|
41
|
+
function extractAITableContentFromClipboardHtml(clipboardHtml) {
|
42
|
+
const aiTableFragment = clipboardHtml.match(aiTableAttributePattern);
|
43
|
+
if (aiTableFragment && !!aiTableFragment.length) {
|
44
|
+
return decodeClipboardJsonData(aiTableFragment[1]);
|
45
|
+
}
|
46
|
+
return null;
|
47
|
+
}
|
48
|
+
const readClipboardData = async () => {
|
49
|
+
const clipboardData = await readFromClipboard();
|
50
|
+
let clipboardContent = [];
|
51
|
+
let aiTableContent = null;
|
52
|
+
if (clipboardData) {
|
53
|
+
const clipboardHtml = clipboardData.html;
|
54
|
+
const clipboardText = clipboardData.text;
|
55
|
+
if (clipboardHtml) {
|
56
|
+
aiTableContent = extractAITableContentFromClipboardHtml(clipboardHtml);
|
57
|
+
clipboardContent = extractContentFromClipboardHtml(clipboardHtml);
|
58
|
+
}
|
59
|
+
if (!clipboardContent.length && clipboardText) {
|
60
|
+
clipboardContent = extractContentFromClipboardText(clipboardText);
|
61
|
+
}
|
62
|
+
}
|
63
|
+
return {
|
64
|
+
clipboardContent,
|
65
|
+
aiTableContent
|
66
|
+
};
|
67
|
+
};
|
68
|
+
function getPasteValue(plainText, aiTableContent, recordIndex, fieldIndex, targetField, references) {
|
69
|
+
let field = null;
|
70
|
+
let record = null;
|
71
|
+
if (aiTableContent) {
|
72
|
+
const { fields, records } = aiTableContent;
|
73
|
+
field = fields[fieldIndex];
|
74
|
+
record = records[recordIndex];
|
75
|
+
}
|
76
|
+
if (targetField.type === AITableFieldType.attachment || (field && field.type === AITableFieldType.attachment)) {
|
77
|
+
return { value: null, newField: null };
|
78
|
+
}
|
79
|
+
if (targetField.type !== AITableFieldType.link) {
|
80
|
+
plainText = extractText(plainText);
|
81
|
+
}
|
82
|
+
let originData = field && record ? { field, cellValue: getFieldValue(record, field) } : null;
|
83
|
+
if (targetField.type === AITableFieldType.select) {
|
84
|
+
let { existOptionIds, newOptions } = processPastedValueForSelect(plainText, targetField, originData);
|
85
|
+
let newField = null;
|
86
|
+
let newOptionIds = [];
|
87
|
+
if (newOptions.length) {
|
88
|
+
newOptions = newOptions.map((option) => {
|
89
|
+
return {
|
90
|
+
...option,
|
91
|
+
_id: idCreator()
|
92
|
+
};
|
93
|
+
});
|
94
|
+
newField = {
|
95
|
+
...targetField,
|
96
|
+
settings: {
|
97
|
+
...targetField.settings,
|
98
|
+
options: [...(targetField.settings?.options || []), ...newOptions]
|
99
|
+
}
|
100
|
+
};
|
101
|
+
newOptionIds = newOptions.map((option) => option._id).filter((id) => !!id);
|
102
|
+
}
|
103
|
+
const selectFieldValue = newOptionIds?.length ? [...existOptionIds, ...newOptionIds] : existOptionIds;
|
104
|
+
return {
|
105
|
+
value: selectFieldValue,
|
106
|
+
newField
|
107
|
+
};
|
108
|
+
}
|
109
|
+
return { value: FieldModelMap[targetField.type].toFieldValue(plainText, targetField, originData, references), newField: null };
|
110
|
+
}
|
111
|
+
function appendRecord(aiTable, actions) {
|
112
|
+
const allRecords = aiTable.records();
|
113
|
+
const lastRecordId = allRecords.length > 0 ? allRecords[allRecords.length - 1]._id : '';
|
114
|
+
actions.addRecord({
|
115
|
+
originId: lastRecordId
|
116
|
+
});
|
117
|
+
}
|
118
|
+
function appendField(aiTable, originField, actions) {
|
119
|
+
const lastFieldId = aiTable.fields().length > 0 ? aiTable.fields()[aiTable.fields().length - 1]._id : '';
|
120
|
+
let defaultFieldValue;
|
121
|
+
if (originField) {
|
122
|
+
defaultFieldValue = {
|
123
|
+
...originField,
|
124
|
+
name: createDefaultFieldName(aiTable, FieldOptions.find((item) => item.type === originField.type)),
|
125
|
+
_id: idCreator()
|
126
|
+
};
|
127
|
+
}
|
128
|
+
else {
|
129
|
+
defaultFieldValue = createDefaultField(aiTable, AITableFieldType.text);
|
130
|
+
}
|
131
|
+
actions.addField({
|
132
|
+
originId: lastFieldId,
|
133
|
+
defaultValue: defaultFieldValue
|
134
|
+
});
|
135
|
+
}
|
136
|
+
export const writeToAITable = async (aiTable, actions) => {
|
137
|
+
const selectedCells = Array.from(aiTable.selection().selectedCells);
|
138
|
+
if (!selectedCells.length) {
|
139
|
+
return;
|
140
|
+
}
|
141
|
+
const { clipboardContent, aiTableContent } = await readClipboardData();
|
142
|
+
if (!clipboardContent.length) {
|
143
|
+
return;
|
144
|
+
}
|
145
|
+
const [firstCell] = selectedCells;
|
146
|
+
const [startRecordId, startFieldId] = firstCell.split(':');
|
147
|
+
const startRowIndex = aiTable.context.visibleRowsIndexMap().get(startRecordId) ?? 0;
|
148
|
+
const startColIndex = aiTable.context.visibleColumnsIndexMap().get(startFieldId) ?? 0;
|
149
|
+
const references = aiTable.context.references();
|
150
|
+
let isPasteSuccess = false;
|
151
|
+
clipboardContent.forEach((row, i) => {
|
152
|
+
const targetRowIndex = startRowIndex + i;
|
153
|
+
if (targetRowIndex >= aiTable.context.linearRows().length - 1) {
|
154
|
+
appendRecord(aiTable, actions);
|
155
|
+
}
|
156
|
+
row.forEach((plainText, j) => {
|
157
|
+
const targetColIndex = startColIndex + j;
|
158
|
+
if (targetColIndex >= AITable.getVisibleFields(aiTable).length) {
|
159
|
+
const originField = aiTableContent?.fields[j] || null;
|
160
|
+
appendField(aiTable, originField, actions);
|
161
|
+
}
|
162
|
+
const targetRecord = aiTable.context.linearRows()[targetRowIndex];
|
163
|
+
const targetField = AITable.getVisibleFields(aiTable)[targetColIndex];
|
164
|
+
const recordIndex = i;
|
165
|
+
const fieldIndex = j;
|
166
|
+
const { value, newField } = getPasteValue(plainText, aiTableContent, recordIndex, fieldIndex, targetField, references);
|
167
|
+
if (newField) {
|
168
|
+
actions.setField(newField);
|
169
|
+
}
|
170
|
+
if (value !== null) {
|
171
|
+
try {
|
172
|
+
actions.updateFieldValue({
|
173
|
+
value,
|
174
|
+
path: [targetRecord._id, targetField._id]
|
175
|
+
});
|
176
|
+
isPasteSuccess = true;
|
177
|
+
}
|
178
|
+
catch (error) { }
|
179
|
+
}
|
180
|
+
});
|
181
|
+
});
|
182
|
+
return isPasteSuccess;
|
183
|
+
};
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzdGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy91dGlscy9jbGlwYm9hcmQvcGFzdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILE9BQU8sRUFFUCxnQkFBZ0IsRUFFaEIsa0JBQWtCLEVBQ2xCLHNCQUFzQixFQUN0QixZQUFZLEVBRVosYUFBYSxFQUNiLFNBQVMsRUFHWixNQUFNLFlBQVksQ0FBQztBQUNwQixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUdwRSxNQUFNLHVCQUF1QixHQUFHLElBQUksTUFBTSxDQUFDLEdBQUcsd0JBQXdCLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztBQUV2RixNQUFNLHVCQUF1QixHQUFHLENBQUMsT0FBZSxFQUFFLEVBQUU7SUFDaEQsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixTQUFTLCtCQUErQixDQUFDLGFBQXFCO0lBQzFELE1BQU0sUUFBUSxHQUFHLGFBQWE7U0FDekIsS0FBSyxDQUFDLElBQUksQ0FBQztTQUNYLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM3QixNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENB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LElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsV0FBVyxDQUFDLEdBQUcsQ0FBQztxQkFDNUMsQ0FBQyxDQUFDO29CQUNILGNBQWMsR0FBRyxJQUFJLENBQUM7Z0JBQzFCLENBQUM7Z0JBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxDQUFBLENBQUM7WUFDdEIsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLGNBQWMsQ0FBQztBQUMxQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBSVRhYmxlQ29udGVudCwgQUlUYWJsZVJlZmVyZW5jZXMgfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQge1xuICAgIEFJVGFibGUsXG4gICAgQUlUYWJsZUZpZWxkLFxuICAgIEFJVGFibGVGaWVsZFR5cGUsXG4gICAgQUlUYWJsZVJlY29yZCxcbiAgICBjcmVhdGVEZWZhdWx0RmllbGQsXG4gICAgY3JlYXRlRGVmYXVsdEZpZWxkTmFtZSxcbiAgICBGaWVsZE9wdGlvbnMsXG4gICAgRmllbGRWYWx1ZSxcbiAgICBnZXRGaWVsZFZhbHVlLFxuICAgIGlkQ3JlYXRvcixcbiAgICBTZWxlY3RTZXR0aW5ncyxcbiAgICBVcGRhdGVGaWVsZFZhbHVlT3B0aW9uc1xufSBmcm9tICcuLi8uLi9jb3JlJztcbmltcG9ydCB7IHJlYWRGcm9tQ2xpcGJvYXJkLCBhaVRhYmxlRnJhZ21lbnRBdHRyaWJ1dGUsIGV4dHJhY3RUZXh0IH0gZnJvbSAnLi4vY2xpcGJvYXJkJztcbmltcG9ydCB7IEZpZWxkTW9kZWxNYXAgfSBmcm9tICcuLi9maWVsZC9tb2RlbCc7XG5pbXBvcnQgeyBwcm9jZXNzUGFzdGVkVmFsdWVGb3JTZWxlY3QgfSBmcm9tICcuLi9maWVsZC9tb2RlbC9zZWxlY3QnO1xuaW1wb3J0IHsgQWRkUmVjb3JkT3B0aW9ucywgQWRkRmllbGRPcHRpb25zIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5cbmNvbnN0IGFpVGFibGVBdHRyaWJ1dGVQYXR0ZXJuID0gbmV3IFJlZ0V4cChgJHthaVRhYmxlRnJhZ21lbnRBdHRyaWJ1dGV9PVwiKC4rPylcImAsICdtJyk7XG5cbmNvbnN0IGRlY29kZUNsaXBib2FyZEpzb25EYXRhID0gKGVuY29kZWQ6IHN0cmluZykgPT4ge1xuICAgIGNvbnN0IGRlY29kZWQgPSBkZWNvZGVVUklDb21wb25lbnQod2luZG93LmF0b2IoZW5jb2RlZCkpO1xuICAgIHJldHVybiBKU09OLnBhcnNlKGRlY29kZWQpO1xufTtcblxuZnVuY3Rpb24gZXh0cmFjdENvbnRlbnRGcm9tQ2xpcGJvYXJkVGV4dChjbGlwYm9hcmRUZXh0OiBzdHJpbmcpOiBzdHJpbmdbXVtdIHtcbiAgICBjb25zdCBjb250ZW50cyA9IGNsaXBib2FyZFRleHRcbiAgICAgICAgLnNwbGl0KCdcXG4nKVxuICAgICAgICAubWFwKChyb3cpID0+IHJvdy5zcGxpdCgnXFx0JykpXG4gICAgICAgIC5maWx0ZXIoKHJvdykgPT4gcm93Lmxlbmd0aCA+IDAgJiYgcm93LnNvbWUoKGNlbGwpID0+IGNlbGwudHJpbSgpLmxlbmd0aCA+IDApKTtcblxuICAgIHJldHVybiBjb250ZW50cztcbn1cblxuZnVuY3Rpb24gZXh0cmFjdENvbnRlbnRGcm9tQ2xpcGJvYXJkSHRtbChjbGlwYm9hcmRIdG1sOiBzdHJpbmcpOiBzdHJpbmdbXVtdIHtcbiAgICBjb25zdCB0YWJsZVBhdHRlcm4gPSAvPHRhYmxlW14+XSo+KFtcXHNcXFNdKj8pPFxcL3RhYmxlPi9pO1xuICAgIGNvbnN0IHRyUGF0dGVybiA9IC88dHJbXj5dKj4oW1xcc1xcU10qPyk8XFwvdHI+L2dpO1xuICAgIGNvbnN0IGNlbGxQYXR0ZXJuID0gLzx0ZFtePl0qPihbXFxzXFxTXSo/KTxcXC90ZD4vZ2k7XG4gICAgY29uc3QgY29udGVudHM6IHN0cmluZ1tdW10gPSBbXTtcblxuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHRhYmxlTWF0Y2ggPSBjbGlwYm9hcmRIdG1sLm1hdGNoKHRhYmxlUGF0dGVybik7XG4gICAgICAgIGNvbnN0IHRhYmxlQ29udGVudCA9IHRhYmxlTWF0Y2ggPyB0YWJsZU1hdGNoWzFdIDogY2xpcGJvYXJkSHRtbDtcbiAgICAgICAgY29uc3Qgcm93cyA9IHRhYmxlQ29udGVudC5tYXRjaCh0clBhdHRlcm4pIHx8IFtdO1xuXG4gICAgICAgIHJvd3MuZm9yRWFjaCgocm93KSA9PiB7XG4gICAgICAgICAgICBjb25zdCByb3dDb250ZW50OiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICAgICAgY29uc3QgY2VsbHMgPSByb3cubWF0Y2goY2VsbFBhdHRlcm4pIHx8IFtdO1xuXG4gICAgICAgICAgICBjZWxscy5mb3JFYWNoKChjZWxsKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29udGVudCA9IGNlbGwucmVwbGFjZSgvPHRkPnw8XFwvdGQ+L2csICcnKS50cmltKCk7XG4gICAgICAgICAgICAgICAgcm93Q29udGVudC5wdXNoKGNvbnRlbnQpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGNvbnRlbnRzLnB1c2gocm93Q29udGVudCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBjb250ZW50cztcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxufVxuXG5mdW5jdGlvbiBleHRyYWN0QUlUYWJsZUNvbnRlbnRGcm9tQ2xpcGJvYXJkSHRtbChjbGlwYm9hcmRIdG1sOiBzdHJpbmcpOiBBSVRhYmxlQ29udGVudCB8IG51bGwge1xuICAgIGNvbnN0IGFpVGFibGVGcmFnbWVudCA9IGNsaXBib2FyZEh0bWwubWF0Y2goYWlUYWJsZUF0dHJpYnV0ZVBhdHRlcm4pO1xuICAgIGlmIChhaVRhYmxlRnJhZ21lbnQgJiYgISFhaVRhYmxlRnJhZ21lbnQubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBkZWNvZGVDbGlwYm9hcmRKc29uRGF0YShhaVRhYmxlRnJhZ21lbnRbMV0pO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuY29uc3QgcmVhZENsaXBib2FyZERhdGEgPSBhc3luYyAoKTogUHJvbWlzZTx7IGNsaXBib2FyZENvbnRlbnQ6IHN0cmluZ1tdW107IGFpVGFibGVDb250ZW50OiBBSVRhYmxlQ29udGVudCB8IG51bGwgfT4gPT4ge1xuICAgIGNvbnN0IGNsaXBib2FyZERhdGEgPSBhd2FpdCByZWFkRnJvbUNsaXBib2FyZCgpO1xuICAgIGxldCBjbGlwYm9hcmRDb250ZW50OiBzdHJpbmdbXVtdID0gW107XG4gICAgbGV0IGFpVGFibGVDb250ZW50OiBBSVRhYmxlQ29udGVudCB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKGNsaXBib2FyZERhdGEpIHtcbiAgICAgICAgY29uc3QgY2xpcGJvYXJkSHRtbCA9IGNsaXBib2FyZERhdGEuaHRtbDtcbiAgICAgICAgY29uc3QgY2xpcGJvYXJkVGV4dCA9IGNsaXBib2FyZERhdGEudGV4dDtcblxuICAgICAgICBpZiAoY2xpcGJvYXJkSHRtbCkge1xuICAgICAgICAgICAgYWlUYWJsZUNvbnRlbnQgPSBleHRyYWN0QUlUYWJsZUNvbnRlbnRGcm9tQ2xpcGJvYXJkSHRtbChjbGlwYm9hcmRIdG1sKTtcbiAgICAgICAgICAgIGNsaXBib2FyZENvbnRlbnQgPSBleHRyYWN0Q29udGVudEZyb21DbGlwYm9hcmRIdG1sKGNsaXBib2FyZEh0bWwpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjbGlwYm9hcmRDb250ZW50Lmxlbmd0aCAmJiBjbGlwYm9hcmRUZXh0KSB7XG4gICAgICAgICAgICBjbGlwYm9hcmRDb250ZW50ID0gZXh0cmFjdENvbnRlbnRGcm9tQ2xpcGJvYXJkVGV4dChjbGlwYm9hcmRUZXh0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICAgIGNsaXBib2FyZENvbnRlbnQsXG4gICAgICAgIGFpVGFibGVDb250ZW50XG4gICAgfTtcbn07XG5cbmZ1bmN0aW9uIGdldFBhc3RlVmFsdWUoXG4gICAgcGxhaW5UZXh0OiBzdHJpbmcsXG4gICAgYWlUYWJsZUNvbnRlbnQ6IEFJVGFibGVDb250ZW50IHwgbnVsbCxcbiAgICByZWNvcmRJbmRleDogbnVtYmVyLFxuICAgIGZpZWxkSW5kZXg6IG51bWJlcixcbiAgICB0YXJnZXRGaWVsZDogQUlUYWJsZUZpZWxkLFxuICAgIHJlZmVyZW5jZXM6IEFJVGFibGVSZWZlcmVuY2VzXG4pOiB7XG4gICAgdmFsdWU6IEZpZWxkVmFsdWUgfCBudWxsO1xuICAgIG5ld0ZpZWxkOiBBSVRhYmxlRmllbGQgfCBudWxsO1xufSB7XG4gICAgbGV0IGZpZWxkOiBBSVRhYmxlRmllbGQgfCBudWxsID0gbnVsbDtcbiAgICBsZXQgcmVjb3JkOiBQYXJ0aWFsPEFJVGFibGVSZWNvcmQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBpZiAoYWlUYWJsZUNvbnRlbnQpIHtcbiAgICAgICAgY29uc3QgeyBmaWVsZHMsIHJlY29yZHMgfSA9IGFpVGFibGVDb250ZW50O1xuICAgICAgICBmaWVsZCA9IGZpZWxkc1tmaWVsZEluZGV4XTtcbiAgICAgICAgcmVjb3JkID0gcmVjb3Jkc1tyZWNvcmRJbmRleF07XG4gICAgfVxuXG4gICAgaWYgKHRhcmdldEZpZWxkLnR5cGUgPT09IEFJVGFibGVGaWVsZFR5cGUuYXR0YWNobWVudCB8fCAoZmllbGQgJiYgZmllbGQudHlwZSA9PT0gQUlUYWJsZUZpZWxkVHlwZS5hdHRhY2htZW50KSkge1xuICAgICAgICByZXR1cm4geyB2YWx1ZTogbnVsbCwgbmV3RmllbGQ6IG51bGwgfTtcbiAgICB9XG4gICAgaWYgKHRhcmdldEZpZWxkLnR5cGUgIT09IEFJVGFibGVGaWVsZFR5cGUubGluaykge1xuICAgICAgICBwbGFpblRleHQgPSBleHRyYWN0VGV4dChwbGFpblRleHQpO1xuICAgIH1cblxuICAgIGxldCBvcmlnaW5EYXRhID0gZmllbGQgJiYgcmVjb3JkID8geyBmaWVsZCwgY2VsbFZhbHVlOiBnZXRGaWVsZFZhbHVlKHJlY29yZCwgZmllbGQpIH0gOiBudWxsO1xuICAgIGlmICh0YXJnZXRGaWVsZC50eXBlID09PSBBSVRhYmxlRmllbGRUeXBlLnNlbGVjdCkge1xuICAgICAgICBsZXQgeyBleGlzdE9wdGlvbklkcywgbmV3T3B0aW9ucyB9ID0gcHJvY2Vzc1Bhc3RlZFZhbHVlRm9yU2VsZWN0KHBsYWluVGV4dCwgdGFyZ2V0RmllbGQsIG9yaWdpbkRhdGEpO1xuICAgICAgICBsZXQgbmV3RmllbGQ6IEFJVGFibGVGaWVsZCB8IG51bGwgPSBudWxsO1xuICAgICAgICBsZXQgbmV3T3B0aW9uSWRzOiBzdHJpbmdbXSA9IFtdO1xuXG4gICAgICAgIGlmIChuZXdPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgbmV3T3B0aW9ucyA9IG5ld09wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAuLi5vcHRpb24sXG4gICAgICAgICAgICAgICAgICAgIF9pZDogaWRDcmVhdG9yKClcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBuZXdGaWVsZCA9IHtcbiAgICAgICAgICAgICAgICAuLi50YXJnZXRGaWVsZCxcbiAgICAgICAgICAgICAgICBzZXR0aW5nczoge1xuICAgICAgICAgICAgICAgICAgICAuLi50YXJnZXRGaWVsZC5zZXR0aW5ncyxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogWy4uLigodGFyZ2V0RmllbGQuc2V0dGluZ3MgYXMgU2VsZWN0U2V0dGluZ3MpPy5vcHRpb25zIHx8IFtdKSwgLi4ubmV3T3B0aW9uc11cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgbmV3T3B0aW9uSWRzID0gbmV3T3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLl9pZCkuZmlsdGVyKChpZCkgPT4gISFpZCkgYXMgc3RyaW5nW107XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBzZWxlY3RGaWVsZFZhbHVlID0gbmV3T3B0aW9uSWRzPy5sZW5ndGggPyBbLi4uZXhpc3RPcHRpb25JZHMsIC4uLm5ld09wdGlvbklkc10gOiBleGlzdE9wdGlvbklkcztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHZhbHVlOiBzZWxlY3RGaWVsZFZhbHVlLFxuICAgICAgICAgICAgbmV3RmllbGRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4geyB2YWx1ZTogRmllbGRNb2RlbE1hcFt0YXJnZXRGaWVsZC50eXBlXS50b0ZpZWxkVmFsdWUocGxhaW5UZXh0LCB0YXJnZXRGaWVsZCwgb3JpZ2luRGF0YSwgcmVmZXJlbmNlcyksIG5ld0ZpZWxkOiBudWxsIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZVBhc3RlQWN0aW9ucyB7XG4gICAgdXBkYXRlRmllbGRWYWx1ZTogKGRhdGE6IFVwZGF0ZUZpZWxkVmFsdWVPcHRpb25zKSA9PiB2b2lkO1xuICAgIHNldEZpZWxkOiAoZmllbGQ6IEFJVGFibGVGaWVsZCkgPT4gdm9pZDtcbiAgICBhZGRSZWNvcmQ6IChkYXRhOiBBZGRSZWNvcmRPcHRpb25zKSA9PiB2b2lkO1xuICAgIGFkZEZpZWxkOiAoZGF0YTogQWRkRmllbGRPcHRpb25zKSA9PiB2b2lkO1xufVxuXG5mdW5jdGlvbiBhcHBlbmRSZWNvcmQoYWlUYWJsZTogQUlUYWJsZSwgYWN0aW9uczogQUlUYWJsZVBhc3RlQWN0aW9ucykge1xuICAgIGNvbnN0IGFsbFJlY29yZHMgPSBhaVRhYmxlLnJlY29yZHMoKTtcbiAgICBjb25zdCBsYXN0UmVjb3JkSWQgPSBhbGxSZWNvcmRzLmxlbmd0aCA+IDAgPyBhbGxSZWNvcmRzW2FsbFJlY29yZHMubGVuZ3RoIC0gMV0uX2lkIDogJyc7XG4gICAgYWN0aW9ucy5hZGRSZWNvcmQoe1xuICAgICAgICBvcmlnaW5JZDogbGFzdFJlY29yZElkXG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIGFwcGVuZEZpZWxkKGFpVGFibGU6IEFJVGFibGUsIG9yaWdpbkZpZWxkOiBBSVRhYmxlRmllbGQgfCBudWxsLCBhY3Rpb25zOiBBSVRhYmxlUGFzdGVBY3Rpb25zKSB7XG4gICAgY29uc3QgbGFzdEZpZWxkSWQgPSBhaVRhYmxlLmZpZWxkcygpLmxlbmd0aCA+IDAgPyBhaVRhYmxlLmZpZWxkcygpW2FpVGFibGUuZmllbGRzKCkubGVuZ3RoIC0gMV0uX2lkIDogJyc7XG4gICAgbGV0IGRlZmF1bHRGaWVsZFZhbHVlOiBQYXJ0aWFsPEFJVGFibGVGaWVsZD47XG4gICAgaWYgKG9yaWdpbkZpZWxkKSB7XG4gICAgICAgIGRlZmF1bHRGaWVsZFZhbHVlID0ge1xuICAgICAgICAgICAgLi4ub3JpZ2luRmllbGQsXG4gICAgICAgICAgICBuYW1lOiBjcmVhdGVEZWZhdWx0RmllbGROYW1lKGFpVGFibGUsIEZpZWxkT3B0aW9ucy5maW5kKChpdGVtKSA9PiBpdGVtLnR5cGUgPT09IG9yaWdpbkZpZWxkLnR5cGUpISksXG4gICAgICAgICAgICBfaWQ6IGlkQ3JlYXRvcigpXG4gICAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgICAgZGVmYXVsdEZpZWxkVmFsdWUgPSBjcmVhdGVEZWZhdWx0RmllbGQoYWlUYWJsZSwgQUlUYWJsZUZpZWxkVHlwZS50ZXh0KTtcbiAgICB9XG5cbiAgICBhY3Rpb25zLmFkZEZpZWxkKHtcbiAgICAgICAgb3JpZ2luSWQ6IGxhc3RGaWVsZElkLFxuICAgICAgICBkZWZhdWx0VmFsdWU6IGRlZmF1bHRGaWVsZFZhbHVlXG4gICAgfSk7XG59XG5cbmV4cG9ydCBjb25zdCB3cml0ZVRvQUlUYWJsZSA9IGFzeW5jIChhaVRhYmxlOiBBSVRhYmxlLCBhY3Rpb25zOiBBSVRhYmxlUGFzdGVBY3Rpb25zKSA9PiB7XG4gICAgY29uc3Qgc2VsZWN0ZWRDZWxscyA9IEFycmF5LmZyb20oYWlUYWJsZS5zZWxlY3Rpb24oKS5zZWxlY3RlZENlbGxzKTtcbiAgICBpZiAoIXNlbGVjdGVkQ2VsbHMubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgeyBjbGlwYm9hcmRDb250ZW50LCBhaVRhYmxlQ29udGVudCB9ID0gYXdhaXQgcmVhZENsaXBib2FyZERhdGEoKTtcbiAgICBpZiAoIWNsaXBib2FyZENvbnRlbnQubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBbZmlyc3RDZWxsXSA9IHNlbGVjdGVkQ2VsbHM7XG4gICAgY29uc3QgW3N0YXJ0UmVjb3JkSWQsIHN0YXJ0RmllbGRJZF0gPSBmaXJzdENlbGwuc3BsaXQoJzonKTtcbiAgICBjb25zdCBzdGFydFJvd0luZGV4ID0gYWlUYWJsZS5jb250ZXh0IS52aXNpYmxlUm93c0luZGV4TWFwKCkuZ2V0KHN0YXJ0UmVjb3JkSWQpID8/IDA7XG4gICAgY29uc3Qgc3RhcnRDb2xJbmRleCA9IGFpVGFibGUuY29udGV4dCEudmlzaWJsZUNvbHVtbnNJbmRleE1hcCgpLmdldChzdGFydEZpZWxkSWQpID8/IDA7XG4gICAgY29uc3QgcmVmZXJlbmNlcyA9IGFpVGFibGUuY29udGV4dCEucmVmZXJlbmNlcygpO1xuICAgIGxldCBpc1Bhc3RlU3VjY2VzcyA9IGZhbHNlO1xuXG4gICAgY2xpcGJvYXJkQ29udGVudC5mb3JFYWNoKChyb3csIGkpID0+IHtcbiAgICAgICAgY29uc3QgdGFyZ2V0Um93SW5kZXggPSBzdGFydFJvd0luZGV4ICsgaTtcbiAgICAgICAgaWYgKHRhcmdldFJvd0luZGV4ID49IGFpVGFibGUuY29udGV4dCEubGluZWFyUm93cygpLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgICAgIGFwcGVuZFJlY29yZChhaVRhYmxlLCBhY3Rpb25zKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJvdy5mb3JFYWNoKChwbGFpblRleHQsIGopID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHRhcmdldENvbEluZGV4ID0gc3RhcnRDb2xJbmRleCArIGo7XG4gICAgICAgICAgICBpZiAodGFyZ2V0Q29sSW5kZXggPj0gQUlUYWJsZS5nZXRWaXNpYmxlRmllbGRzKGFpVGFibGUpLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbkZpZWxkID0gYWlUYWJsZUNvbnRlbnQ/LmZpZWxkc1tqXSB8fCBudWxsO1xuICAgICAgICAgICAgICAgIGFwcGVuZEZpZWxkKGFpVGFibGUsIG9yaWdpbkZpZWxkLCBhY3Rpb25zKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgdGFyZ2V0UmVjb3JkID0gYWlUYWJsZS5jb250ZXh0IS5saW5lYXJSb3dzKClbdGFyZ2V0Um93SW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0RmllbGQgPSBBSVRhYmxlLmdldFZpc2libGVGaWVsZHMoYWlUYWJsZSlbdGFyZ2V0Q29sSW5kZXhdO1xuICAgICAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSBpO1xuICAgICAgICAgICAgY29uc3QgZmllbGRJbmRleCA9IGo7XG4gICAgICAgICAgICBjb25zdCB7IHZhbHVlLCBuZXdGaWVsZCB9ID0gZ2V0UGFzdGVWYWx1ZShwbGFpblRleHQsIGFpVGFibGVDb250ZW50LCByZWNvcmRJbmRleCwgZmllbGRJbmRleCwgdGFyZ2V0RmllbGQsIHJlZmVyZW5jZXMpO1xuXG4gICAgICAgICAgICBpZiAobmV3RmllbGQpIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25zLnNldEZpZWxkKG5ld0ZpZWxkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9ucy51cGRhdGVGaWVsZFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aDogW3RhcmdldFJlY29yZC5faWQsIHRhcmdldEZpZWxkLl9pZF1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlzUGFzdGVTdWNjZXNzID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlcnJvcikge31cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gaXNQYXN0ZVN1Y2Nlc3M7XG59O1xuIl19
|
@@ -0,0 +1,63 @@
|
|
1
|
+
import { AITableFilterOperation } from '../../../types';
|
2
|
+
import { isEmpty } from '../../common';
|
3
|
+
import { compareString, hasIntersect } from '../operate';
|
4
|
+
import { Field } from './field';
|
5
|
+
export class AttachmentField extends Field {
|
6
|
+
isMeetFilter(condition, cellValue) {
|
7
|
+
switch (condition.operation) {
|
8
|
+
case AITableFilterOperation.empty:
|
9
|
+
return isEmpty(cellValue);
|
10
|
+
case AITableFilterOperation.exists:
|
11
|
+
return !isEmpty(cellValue);
|
12
|
+
case AITableFilterOperation.in:
|
13
|
+
return Array.isArray(condition.value) && hasIntersect(cellValue, condition.value);
|
14
|
+
case AITableFilterOperation.nin:
|
15
|
+
return Array.isArray(condition.value) && !hasIntersect(cellValue, condition.value);
|
16
|
+
default:
|
17
|
+
return super.isMeetFilter(condition, cellValue);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
compare(cellValue1, cellValue2, field, references, sortKey) {
|
21
|
+
const value1 = cellValueToSortValue(cellValue1, field, references, sortKey);
|
22
|
+
const value2 = cellValueToSortValue(cellValue2, field, references, sortKey);
|
23
|
+
return compareString(value1, value2);
|
24
|
+
}
|
25
|
+
cellFullText(transformValue, field, references) {
|
26
|
+
let fullText = [];
|
27
|
+
if (transformValue?.length && references) {
|
28
|
+
for (let index = 0; index < transformValue.length; index++) {
|
29
|
+
const attachmentInfo = references?.attachments[transformValue[index]];
|
30
|
+
if (!attachmentInfo) {
|
31
|
+
continue;
|
32
|
+
}
|
33
|
+
if (attachmentInfo.title) {
|
34
|
+
fullText.push(attachmentInfo.title);
|
35
|
+
}
|
36
|
+
}
|
37
|
+
}
|
38
|
+
return fullText;
|
39
|
+
}
|
40
|
+
toFieldValue(plainText, targetField, originData, references) {
|
41
|
+
return toAttachmentFieldValue(plainText, targetField, originData, references);
|
42
|
+
}
|
43
|
+
}
|
44
|
+
export function toAttachmentFieldValue(plainText, targetField, originData, references) {
|
45
|
+
return null;
|
46
|
+
}
|
47
|
+
function cellValueToSortValue(cellValue, field, references, sortKey = 'title') {
|
48
|
+
let values = [];
|
49
|
+
if (cellValue?.length && references) {
|
50
|
+
for (let index = 0; index < cellValue.length; index++) {
|
51
|
+
const attachmentInfo = references?.attachments[cellValue[index]];
|
52
|
+
if (!attachmentInfo) {
|
53
|
+
continue;
|
54
|
+
}
|
55
|
+
const value = attachmentInfo[sortKey];
|
56
|
+
if (value) {
|
57
|
+
values.push(value);
|
58
|
+
}
|
59
|
+
}
|
60
|
+
}
|
61
|
+
return values && values.length ? values.join(', ') : null;
|
62
|
+
}
|
63
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0YWNobWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3V0aWxzL2ZpZWxkL21vZGVsL2F0dGFjaG1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUEwQixzQkFBc0IsRUFBcUIsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFaEMsTUFBTSxPQUFPLGVBQWdCLFNBQVEsS0FBSztJQUM3QixZQUFZLENBQUMsU0FBeUMsRUFBRSxTQUErQjtRQUM1RixRQUFRLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixLQUFLLHNCQUFzQixDQUFDLEtBQUs7Z0JBQzdCLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlCLEtBQUssc0JBQXNCLENBQUMsTUFBTTtnQkFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixLQUFLLHNCQUFzQixDQUFDLEVBQUU7Z0JBQzFCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEYsS0FBSyxzQkFBc0IsQ0FBQyxHQUFHO2dCQUMzQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkY7Z0JBQ0ksT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0wsQ0FBQztJQUVRLE9BQU8sQ0FDWixVQUFnQyxFQUNoQyxVQUFnQyxFQUNoQyxLQUFtQixFQUNuQixVQUE2QixFQUM3QixPQUFlO1FBRWYsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUUsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUUsT0FBTyxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFUSxZQUFZLENBQUMsY0FBd0IsRUFBRSxLQUFtQixFQUFFLFVBQThCO1FBQy9GLElBQUksUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM1QixJQUFJLGNBQWMsRUFBRSxNQUFNLElBQUksVUFBVSxFQUFFLENBQUM7WUFDdkMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxjQUFjLEdBQUcsVUFBVSxFQUFFLFdBQVcsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDdEUsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO29CQUNsQixTQUFTO2dCQUNiLENBQUM7Z0JBQ0QsSUFBSSxjQUFjLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3ZCLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4QyxDQUFDO1lBQ0wsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLFFBQVEsQ0FBQztJQUNwQixDQUFDO0lBRVEsWUFBWSxDQUNqQixTQUFpQixFQUNqQixXQUF5QixFQUN6QixVQUFxRSxFQUNyRSxVQUE4QjtRQUU5QixPQUFPLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxzQkFBc0IsQ0FDbEMsU0FBaUIsRUFDakIsV0FBeUIsRUFDekIsVUFBcUUsRUFDckUsVUFBOEI7SUFFOUIsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQ3pCLFNBQStCLEVBQy9CLEtBQW1CLEVBQ25CLFVBQTZCLEVBQzdCLE9BQU8sR0FBRyxPQUFPO0lBRWpCLElBQUksTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUMxQixJQUFJLFNBQVMsRUFBRSxNQUFNLElBQUksVUFBVSxFQUFFLENBQUM7UUFDbEMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLGNBQWMsR0FBRyxVQUFVLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDbEIsU0FBUztZQUNiLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDUixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQUlUYWJsZUZpZWxkLCBBdHRhY2htZW50RmllbGRWYWx1ZSwgRmllbGRWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgQUlUYWJsZUZpbHRlckNvbmRpdGlvbiwgQUlUYWJsZUZpbHRlck9wZXJhdGlvbiwgQUlUYWJsZVJlZmVyZW5jZXMgfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IGNvbXBhcmVTdHJpbmcsIGhhc0ludGVyc2VjdCB9IGZyb20gJy4uL29wZXJhdGUnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuL2ZpZWxkJztcblxuZXhwb3J0IGNsYXNzIEF0dGFjaG1lbnRGaWVsZCBleHRlbmRzIEZpZWxkIHtcbiAgICBvdmVycmlkZSBpc01lZXRGaWx0ZXIoY29uZGl0aW9uOiBBSVRhYmxlRmlsdGVyQ29uZGl0aW9uPHN0cmluZz4sIGNlbGxWYWx1ZTogQXR0YWNobWVudEZpZWxkVmFsdWUpIHtcbiAgICAgICAgc3dpdGNoIChjb25kaXRpb24ub3BlcmF0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZW1wdHk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRW1wdHkoY2VsbFZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5leGlzdHM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc0VtcHR5KGNlbGxWYWx1ZSk7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uaW46XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoY29uZGl0aW9uLnZhbHVlKSAmJiBoYXNJbnRlcnNlY3QoY2VsbFZhbHVlLCBjb25kaXRpb24udmFsdWUpO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLm5pbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjb25kaXRpb24udmFsdWUpICYmICFoYXNJbnRlcnNlY3QoY2VsbFZhbHVlLCBjb25kaXRpb24udmFsdWUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIuaXNNZWV0RmlsdGVyKGNvbmRpdGlvbiwgY2VsbFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG92ZXJyaWRlIGNvbXBhcmUoXG4gICAgICAgIGNlbGxWYWx1ZTE6IEF0dGFjaG1lbnRGaWVsZFZhbHVlLFxuICAgICAgICBjZWxsVmFsdWUyOiBBdHRhY2htZW50RmllbGRWYWx1ZSxcbiAgICAgICAgZmllbGQ6IEFJVGFibGVGaWVsZCxcbiAgICAgICAgcmVmZXJlbmNlczogQUlUYWJsZVJlZmVyZW5jZXMsXG4gICAgICAgIHNvcnRLZXk6IHN0cmluZ1xuICAgICk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlMSA9IGNlbGxWYWx1ZVRvU29ydFZhbHVlKGNlbGxWYWx1ZTEsIGZpZWxkLCByZWZlcmVuY2VzLCBzb3J0S2V5KTtcbiAgICAgICAgY29uc3QgdmFsdWUyID0gY2VsbFZhbHVlVG9Tb3J0VmFsdWUoY2VsbFZhbHVlMiwgZmllbGQsIHJlZmVyZW5jZXMsIHNvcnRLZXkpO1xuICAgICAgICByZXR1cm4gY29tcGFyZVN0cmluZyh2YWx1ZTEsIHZhbHVlMik7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgY2VsbEZ1bGxUZXh0KHRyYW5zZm9ybVZhbHVlOiBzdHJpbmdbXSwgZmllbGQ6IEFJVGFibGVGaWVsZCwgcmVmZXJlbmNlcz86IEFJVGFibGVSZWZlcmVuY2VzKTogc3RyaW5nW10ge1xuICAgICAgICBsZXQgZnVsbFRleHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGlmICh0cmFuc2Zvcm1WYWx1ZT8ubGVuZ3RoICYmIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0cmFuc2Zvcm1WYWx1ZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCBhdHRhY2htZW50SW5mbyA9IHJlZmVyZW5jZXM/LmF0dGFjaG1lbnRzW3RyYW5zZm9ybVZhbHVlW2luZGV4XV07XG4gICAgICAgICAgICAgICAgaWYgKCFhdHRhY2htZW50SW5mbykge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKGF0dGFjaG1lbnRJbmZvLnRpdGxlKSB7XG4gICAgICAgICAgICAgICAgICAgIGZ1bGxUZXh0LnB1c2goYXR0YWNobWVudEluZm8udGl0bGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVsbFRleHQ7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgdG9GaWVsZFZhbHVlKFxuICAgICAgICBwbGFpblRleHQ6IHN0cmluZyxcbiAgICAgICAgdGFyZ2V0RmllbGQ6IEFJVGFibGVGaWVsZCxcbiAgICAgICAgb3JpZ2luRGF0YT86IHsgZmllbGQ6IEFJVGFibGVGaWVsZDsgY2VsbFZhbHVlOiBBdHRhY2htZW50RmllbGRWYWx1ZSB9LFxuICAgICAgICByZWZlcmVuY2VzPzogQUlUYWJsZVJlZmVyZW5jZXNcbiAgICApOiBBdHRhY2htZW50RmllbGRWYWx1ZSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdG9BdHRhY2htZW50RmllbGRWYWx1ZShwbGFpblRleHQsIHRhcmdldEZpZWxkLCBvcmlnaW5EYXRhLCByZWZlcmVuY2VzKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0F0dGFjaG1lbnRGaWVsZFZhbHVlKFxuICAgIHBsYWluVGV4dDogc3RyaW5nLFxuICAgIHRhcmdldEZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgb3JpZ2luRGF0YT86IHsgZmllbGQ6IEFJVGFibGVGaWVsZDsgY2VsbFZhbHVlOiBBdHRhY2htZW50RmllbGRWYWx1ZSB9LFxuICAgIHJlZmVyZW5jZXM/OiBBSVRhYmxlUmVmZXJlbmNlc1xuKTogRmllbGRWYWx1ZSB8IG51bGwge1xuICAgIHJldHVybiBudWxsO1xufVxuXG5mdW5jdGlvbiBjZWxsVmFsdWVUb1NvcnRWYWx1ZShcbiAgICBjZWxsVmFsdWU6IEF0dGFjaG1lbnRGaWVsZFZhbHVlLFxuICAgIGZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgcmVmZXJlbmNlczogQUlUYWJsZVJlZmVyZW5jZXMsXG4gICAgc29ydEtleSA9ICd0aXRsZSdcbik6IHN0cmluZyB8IG51bGwge1xuICAgIGxldCB2YWx1ZXM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKGNlbGxWYWx1ZT8ubGVuZ3RoICYmIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNlbGxWYWx1ZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgIGNvbnN0IGF0dGFjaG1lbnRJbmZvID0gcmVmZXJlbmNlcz8uYXR0YWNobWVudHNbY2VsbFZhbHVlW2luZGV4XV07XG4gICAgICAgICAgICBpZiAoIWF0dGFjaG1lbnRJbmZvKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXR0YWNobWVudEluZm9bc29ydEtleV07XG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoID8gdmFsdWVzLmpvaW4oJywgJykgOiBudWxsO1xufVxuIl19
|
@@ -1,8 +1,10 @@
|
|
1
1
|
import { fromUnixTime, subDays } from 'date-fns';
|
2
|
-
import { isArray,
|
2
|
+
import { isArray, TinyDate } from 'ngx-tethys/util';
|
3
3
|
import { Field } from './field';
|
4
4
|
import { AITableFilterOperation } from '../../../types';
|
5
|
+
import { AITableFieldType } from '../../../core';
|
5
6
|
import { compareNumber } from '../operate';
|
7
|
+
import { isEmpty } from '../../common';
|
6
8
|
export class DateField extends Field {
|
7
9
|
isMeetFilter(condition, cellValue) {
|
8
10
|
const [left, right] = this.getTimeRange(condition.value);
|
@@ -28,6 +30,9 @@ export class DateField extends Field {
|
|
28
30
|
const value2 = cellValueToSortValue(cellValue2);
|
29
31
|
return compareNumber(value1, value2);
|
30
32
|
}
|
33
|
+
toFieldValue(plainText, targetField, originData) {
|
34
|
+
return toDateFieldValue(plainText, targetField, originData);
|
35
|
+
}
|
31
36
|
getTimeRange(value) {
|
32
37
|
switch (value) {
|
33
38
|
case 'today':
|
@@ -58,7 +63,45 @@ export class DateField extends Field {
|
|
58
63
|
}
|
59
64
|
}
|
60
65
|
}
|
66
|
+
export function toDateFieldValue(plainText, targetField, originData) {
|
67
|
+
if (targetField.type === AITableFieldType.createdAt || targetField.type === AITableFieldType.updatedAt) {
|
68
|
+
return null;
|
69
|
+
}
|
70
|
+
if (originData) {
|
71
|
+
const { field, cellValue } = originData;
|
72
|
+
switch (field.type) {
|
73
|
+
case AITableFieldType.date:
|
74
|
+
return cellValue;
|
75
|
+
case AITableFieldType.text:
|
76
|
+
const dateValue = transformDateValue(cellValue);
|
77
|
+
if (dateValue) {
|
78
|
+
return dateValue;
|
79
|
+
}
|
80
|
+
break;
|
81
|
+
default:
|
82
|
+
break;
|
83
|
+
}
|
84
|
+
}
|
85
|
+
else {
|
86
|
+
const dateValue = transformDateValue(plainText);
|
87
|
+
if (dateValue) {
|
88
|
+
return dateValue;
|
89
|
+
}
|
90
|
+
}
|
91
|
+
return null;
|
92
|
+
}
|
61
93
|
function cellValueToSortValue(cellValue) {
|
62
94
|
return cellValue?.timestamp;
|
63
95
|
}
|
64
|
-
|
96
|
+
function transformDateValue(text) {
|
97
|
+
const value = text.trim();
|
98
|
+
const pattern = /^\d{4}-\d{1,2}-\d{1,2}$/;
|
99
|
+
if (value && !isEmpty(value) && pattern.test(value)) {
|
100
|
+
const dateValue = {
|
101
|
+
timestamp: new TinyDate(value).getUnixTime()
|
102
|
+
};
|
103
|
+
return dateValue;
|
104
|
+
}
|
105
|
+
return null;
|
106
|
+
}
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3V0aWxzL2ZpZWxkL21vZGVsL2RhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hDLE9BQU8sRUFBMEIsc0JBQXNCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQWdCLGdCQUFnQixFQUE4QixNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdkMsTUFBTSxPQUFPLFNBQVUsU0FBUSxLQUFLO0lBQ3ZCLFlBQVksQ0FBQyxTQUF5QyxFQUFFLFNBQXlCO1FBQ3RGLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekQsUUFBUSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUIsS0FBSyxzQkFBc0IsQ0FBQyxLQUFLO2dCQUM3QixPQUFPLE9BQU8sQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLFNBQVMsS0FBSyxDQUFDLENBQUM7WUFDckUsS0FBSyxzQkFBc0IsQ0FBQyxNQUFNO2dCQUM5QixPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQztZQUN0RSxLQUFLLHNCQUFzQixDQUFDLEVBQUU7Z0JBQzFCLE9B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Q0FBQztBQUVELFNBQVMsa0JBQWtCLENBQUMsSUFBWTtJQUNwQyxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDMUIsTUFBTSxPQUFPLEdBQUcseUJBQXlCLENBQUM7SUFFMUMsSUFBSSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ2xELE1BQU0sU0FBUyxHQUFHO1lBQ2QsU0FBUyxFQUFFLElBQUksUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDLFdBQVcsRUFBRTtTQUMvQyxDQUFDO1FBQ0YsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmcm9tVW5peFRpbWUsIHN1YkRheXMgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBpc0FycmF5LCBUaW55RGF0ZSB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4vZmllbGQnO1xuaW1wb3J0IHsgQUlUYWJsZUZpbHRlckNvbmRpdGlvbiwgQUlUYWJsZUZpbHRlck9wZXJhdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkVHlwZSwgRGF0ZUZpZWxkVmFsdWUsIEZpZWxkVmFsdWUgfSBmcm9tICcuLi8uLi8uLi9jb3JlJztcbmltcG9ydCB7IGNvbXBhcmVOdW1iZXIgfSBmcm9tICcuLi9vcGVyYXRlJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICcuLi8uLi9jb21tb24nO1xuXG5leHBvcnQgY2xhc3MgRGF0ZUZpZWxkIGV4dGVuZHMgRmllbGQge1xuICAgIG92ZXJyaWRlIGlzTWVldEZpbHRlcihjb25kaXRpb246IEFJVGFibGVGaWx0ZXJDb25kaXRpb248c3RyaW5nPiwgY2VsbFZhbHVlOiBEYXRlRmllbGRWYWx1ZSkge1xuICAgICAgICBjb25zdCBbbGVmdCwgcmlnaHRdID0gdGhpcy5nZXRUaW1lUmFuZ2UoY29uZGl0aW9uLnZhbHVlKTtcbiAgICAgICAgc3dpdGNoIChjb25kaXRpb24ub3BlcmF0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZW1wdHk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRW1wdHkoY2VsbFZhbHVlLnRpbWVzdGFtcCkgfHwgY2VsbFZhbHVlLnRpbWVzdGFtcCA9PT0gMDtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5leGlzdHM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc0VtcHR5KGNlbGxWYWx1ZS50aW1lc3RhbXApICYmIGNlbGxWYWx1ZS50aW1lc3RhbXAgIT09IDA7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZXE6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGxlZnQgPD0gY2VsbFZhbHVlLnRpbWVzdGFtcCAmJiBjZWxsVmFsdWUudGltZXN0YW1wIDwgcmlnaHQ7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZ3Q6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNlbGxWYWx1ZS50aW1lc3RhbXAgPiByaWdodDtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5sdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gY2VsbFZhbHVlLnRpbWVzdGFtcCA8IGxlZnQ7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uYmV0d2VlbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gbGVmdCA8PSBjZWxsVmFsdWUudGltZXN0YW1wICYmIGNlbGxWYWx1ZS50aW1lc3RhbXAgPCByaWdodDtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHN1cGVyLmlzTWVldEZpbHRlcihjb25kaXRpb24sIGNlbGxWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvdmVycmlkZSBjb21wYXJlKGNlbGxWYWx1ZTE6IERhdGVGaWVsZFZhbHVlLCBjZWxsVmFsdWUyOiBEYXRlRmllbGRWYWx1ZSk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlMSA9IGNlbGxWYWx1ZVRvU29ydFZhbHVlKGNlbGxWYWx1ZTEpO1xuICAgICAgICBjb25zdCB2YWx1ZTIgPSBjZWxsVmFsdWVUb1NvcnRWYWx1ZShjZWxsVmFsdWUyKTtcbiAgICAgICAgcmV0dXJuIGNvbXBhcmVOdW1iZXIodmFsdWUxLCB2YWx1ZTIpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIHRvRmllbGRWYWx1ZShcbiAgICAgICAgcGxhaW5UZXh0OiBzdHJpbmcsXG4gICAgICAgIHRhcmdldEZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgICAgIG9yaWdpbkRhdGE/OiB7IGZpZWxkOiBBSVRhYmxlRmllbGQ7IGNlbGxWYWx1ZTogRmllbGRWYWx1ZSB9XG4gICAgKTogRmllbGRWYWx1ZSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdG9EYXRlRmllbGRWYWx1ZShwbGFpblRleHQsIHRhcmdldEZpZWxkLCBvcmlnaW5EYXRhKTtcbiAgICB9XG5cbiAgICBnZXRUaW1lUmFuZ2UodmFsdWU6IHN0cmluZyB8IG51bWJlciB8IG51bWJlcltdKSB7XG4gICAgICAgIHN3aXRjaCAodmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2UgJ3RvZGF5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gW25ldyBUaW55RGF0ZShuZXcgRGF0ZSgpKS5zdGFydE9mRGF5KCkuZ2V0VW5peFRpbWUoKSwgbmV3IFRpbnlEYXRlKG5ldyBEYXRlKCkpLmVuZE9mRGF5KCkuZ2V0VW5peFRpbWUoKV07XG4gICAgICAgICAgICBjYXNlICdjdXJyZW50X3dlZWsnOlxuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIG5ldyBUaW55RGF0ZSgpLnN0YXJ0T2ZXZWVrKHsgd2Vla1N0YXJ0c09uOiAxIH0pLmdldFVuaXhUaW1lKCksXG4gICAgICAgICAgICAgICAgICAgIG5ldyBUaW55RGF0ZSgpLmVuZE9mV2Vlayh7IHdlZWtTdGFydHNPbjogMSB9KS5nZXRVbml4VGltZSgpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGNhc2UgJ3llc3RlcmRheSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgbmV3IFRpbnlEYXRlKHN1YkRheXMobmV3IERhdGUoKSwgMSkpLnN0YXJ0T2ZEYXkoKS5nZXRVbml4VGltZSgpLFxuICAgICAgICAgICAgICAgICAgICBuZXcgVGlueURhdGUoc3ViRGF5cyhuZXcgRGF0ZSgpLCAxKSkuZW5kT2ZEYXkoKS5nZXRVbml4VGltZSgpXG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIGNhc2UgJ2N1cnJlbnRfbW9udGgnOlxuICAgICAgICAgICAgICAgIHJldHVybiBbbmV3IFRpbnlEYXRlKCkuc3RhcnRPZk1vbnRoKCkuZ2V0VW5peFRpbWUoKSwgbmV3IFRpbnlEYXRlKCkuZW5kT2ZNb250aCgpLmdldFVuaXhUaW1lKCldO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBpZiAoaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBUaW55RGF0ZShmcm9tVW5peFRpbWUodmFsdWVbMF0gYXMgbnVtYmVyKSkuc3RhcnRPZkRheSgpLmdldFVuaXhUaW1lKCksXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgVGlueURhdGUoZnJvbVVuaXhUaW1lKHZhbHVlWzFdIGFzIG51bWJlcikpLmVuZE9mRGF5KCkuZ2V0VW5peFRpbWUoKVxuICAgICAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICBuZXcgVGlueURhdGUoZnJvbVVuaXhUaW1lKHZhbHVlIGFzIG51bWJlcikpLnN0YXJ0T2ZEYXkoKS5nZXRVbml4VGltZSgpLFxuICAgICAgICAgICAgICAgICAgICBuZXcgVGlueURhdGUoZnJvbVVuaXhUaW1lKHZhbHVlIGFzIG51bWJlcikpLmVuZE9mRGF5KCkuZ2V0VW5peFRpbWUoKVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgIH1cbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0RhdGVGaWVsZFZhbHVlKFxuICAgIHBsYWluVGV4dDogc3RyaW5nLFxuICAgIHRhcmdldEZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgb3JpZ2luRGF0YT86IHsgZmllbGQ6IEFJVGFibGVGaWVsZDsgY2VsbFZhbHVlOiBGaWVsZFZhbHVlIH1cbik6IEZpZWxkVmFsdWUgfCBudWxsIHtcbiAgICBpZiAodGFyZ2V0RmllbGQudHlwZSA9PT0gQUlUYWJsZUZpZWxkVHlwZS5jcmVhdGVkQXQgfHwgdGFyZ2V0RmllbGQudHlwZSA9PT0gQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQXQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKG9yaWdpbkRhdGEpIHtcbiAgICAgICAgY29uc3QgeyBmaWVsZCwgY2VsbFZhbHVlIH0gPSBvcmlnaW5EYXRhO1xuICAgICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpZWxkVHlwZS5kYXRlOlxuICAgICAgICAgICAgICAgIHJldHVybiBjZWxsVmFsdWU7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWVsZFR5cGUudGV4dDpcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlVmFsdWUgPSB0cmFuc2Zvcm1EYXRlVmFsdWUoY2VsbFZhbHVlKTtcbiAgICAgICAgICAgICAgICBpZiAoZGF0ZVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRlVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGRhdGVWYWx1ZSA9IHRyYW5zZm9ybURhdGVWYWx1ZShwbGFpblRleHQpO1xuICAgICAgICBpZiAoZGF0ZVZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZVZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGNlbGxWYWx1ZVRvU29ydFZhbHVlKGNlbGxWYWx1ZTogRGF0ZUZpZWxkVmFsdWUpOiBudW1iZXIge1xuICAgIHJldHVybiBjZWxsVmFsdWU/LnRpbWVzdGFtcDtcbn1cblxuZnVuY3Rpb24gdHJhbnNmb3JtRGF0ZVZhbHVlKHRleHQ6IHN0cmluZyk6IEZpZWxkVmFsdWUgfCBudWxsIHtcbiAgICBjb25zdCB2YWx1ZSA9IHRleHQudHJpbSgpO1xuICAgIGNvbnN0IHBhdHRlcm4gPSAvXlxcZHs0fS1cXGR7MSwyfS1cXGR7MSwyfSQvO1xuXG4gICAgaWYgKHZhbHVlICYmICFpc0VtcHR5KHZhbHVlKSAmJiBwYXR0ZXJuLnRlc3QodmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IGRhdGVWYWx1ZSA9IHtcbiAgICAgICAgICAgIHRpbWVzdGFtcDogbmV3IFRpbnlEYXRlKHZhbHVlKS5nZXRVbml4VGltZSgpXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBkYXRlVmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xufVxuIl19
|
@@ -35,4 +35,4 @@ export class Field {
|
|
35
35
|
}
|
36
36
|
}
|
37
37
|
}
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy91dGlscy9maWVsZC9tb2RlbC9maWVsZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBCLHNCQUFzQixFQUFxQixNQUFNLGdCQUFnQixDQUFDO0FBRW5HLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFdkMsTUFBTSxPQUFnQixLQUFLO0lBa0J2QixLQUFLO0lBQ0wsWUFBWSxDQUFDLFNBQWlDLEVBQUUsU0FBcUI7UUFDakUsUUFBUSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDMUIsS0FBSyxzQkFBc0IsQ0FBQyxLQUFLLENBQUM7WUFDbEMsS0FBSyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNqQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUM3RCxDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDTixPQUFPLElBQUksQ0FBQztZQUNoQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFRCxLQUFLO0lBQ0wsWUFBWSxDQUFDLGNBQW1CLEVBQUUsS0FBbUIsRUFBRSxVQUE4QjtRQUNqRixJQUFJLFFBQVEsR0FBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQzNCLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxZQUFZLENBQUMsU0FBdUUsRUFBRSxTQUFxQjtRQUN2RyxRQUFRLFNBQVMsRUFBRSxDQUFDO1lBQ2hCLEtBQUssc0JBQXNCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUIsQ0FBQztZQUNELEtBQUssc0JBQXNCLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztnQkFDakMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixDQUFDO1lBQ0QsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDTixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7WUFDbkQsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBSVRhYmxlRmlsdGVyQ29uZGl0aW9uLCBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLCBBSVRhYmxlUmVmZXJlbmNlcyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IEFJVGFibGVGaWVsZCwgRmllbGRWYWx1ZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBGaWVsZCB7XG4gICAgLy8g5o6S5bqPXG4gICAgYWJzdHJhY3QgY29tcGFyZShcbiAgICAgICAgY2VsbFZhbHVlMTogRmllbGRWYWx1ZSxcbiAgICAgICAgY2VsbFZhbHVlMjogRmllbGRWYWx1ZSxcbiAgICAgICAgZmllbGQ6IEFJVGFibGVGaWVsZCxcbiAgICAgICAgcmVmZXJlbmNlcz86IEFJVGFibGVSZWZlcmVuY2VzLFxuICAgICAgICBzb3J0S2V5Pzogc3RyaW5nXG4gICAgKTogbnVtYmVyO1xuXG4gICAgLy8g57KY6LS0XG4gICAgYWJzdHJhY3QgdG9GaWVsZFZhbHVlKFxuICAgICAgICBwbGFpblRleHQ6IHN0cmluZyxcbiAgICAgICAgdGFyZ2V0RmllbGQ6IEFJVGFibGVGaWVsZCxcbiAgICAgICAgb3JpZ2luRGF0YT86IHsgZmllbGQ6IEFJVGFibGVGaWVsZDsgY2VsbFZhbHVlOiBGaWVsZFZhbHVlIH0gfCBudWxsLFxuICAgICAgICByZWZlcmVuY2VzPzogQUlUYWJsZVJlZmVyZW5jZXNcbiAgICApOiBGaWVsZFZhbHVlIHwgbnVsbDtcblxuICAgIC8vIOetm+mAiVxuICAgIGlzTWVldEZpbHRlcihjb25kaXRpb246IEFJVGFibGVGaWx0ZXJDb25kaXRpb24sIGNlbGxWYWx1ZTogRmllbGRWYWx1ZSkge1xuICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi5vcGVyYXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5lbXB0eTpcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5leGlzdHM6IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5pc0VtcHR5T3JOb3QoY29uZGl0aW9uLm9wZXJhdGlvbiwgY2VsbFZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIOafpeaJvlxuICAgIGNlbGxGdWxsVGV4dCh0cmFuc2Zvcm1WYWx1ZTogYW55LCBmaWVsZDogQUlUYWJsZUZpZWxkLCByZWZlcmVuY2VzPzogQUlUYWJsZVJlZmVyZW5jZXMpOiBzdHJpbmdbXSB7XG4gICAgICAgIGxldCBmdWxsVGV4dDogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgaWYgKCFpc0VtcHR5KHRyYW5zZm9ybVZhbHVlKSkge1xuICAgICAgICAgICAgZnVsbFRleHQucHVzaChTdHJpbmcodHJhbnNmb3JtVmFsdWUpKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZnVsbFRleHQ7XG4gICAgfVxuXG4gICAgaXNFbXB0eU9yTm90KG9wZXJhdGlvbjogQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5lbXB0eSB8IEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZXhpc3RzLCBjZWxsVmFsdWU6IEZpZWxkVmFsdWUpIHtcbiAgICAgICAgc3dpdGNoIChvcGVyYXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5lbXB0eToge1xuICAgICAgICAgICAgICAgIHJldHVybiBpc0VtcHR5KGNlbGxWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZXhpc3RzOiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc0VtcHR5KGNlbGxWYWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdjb21wYXJlIG9wZXJhdG9yIHR5cGUgZXJyb3InKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { AITableFieldType } from '../../../core';
|
2
|
+
import { AttachmentField } from './attachment';
|
2
3
|
import { DateField } from './date';
|
3
4
|
import { LinkField } from './link';
|
4
5
|
import { MemberField } from './member';
|
@@ -7,7 +8,7 @@ import { ProgressField } from './progress';
|
|
7
8
|
import { RateField } from './rate';
|
8
9
|
import { SelectField } from './select';
|
9
10
|
import { TextField } from './text';
|
10
|
-
export const
|
11
|
+
export const FieldModelMap = {
|
11
12
|
[AITableFieldType.text]: new TextField(),
|
12
13
|
[AITableFieldType.richText]: new TextField(),
|
13
14
|
[AITableFieldType.select]: new SelectField(),
|
@@ -20,6 +21,7 @@ export const ViewOperationMap = {
|
|
20
21
|
[AITableFieldType.member]: new MemberField(),
|
21
22
|
[AITableFieldType.progress]: new ProgressField(),
|
22
23
|
[AITableFieldType.createdBy]: new MemberField(),
|
23
|
-
[AITableFieldType.updatedBy]: new MemberField()
|
24
|
+
[AITableFieldType.updatedBy]: new MemberField(),
|
25
|
+
[AITableFieldType.attachment]: new AttachmentField()
|
24
26
|
};
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy91dGlscy9maWVsZC9tb2RlbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBR25DLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDbkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNuQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFFbkMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFvQztJQUMxRCxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksU0FBUyxFQUFFO0lBQ3hDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxTQUFTLEVBQUU7SUFDNUMsQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLFdBQVcsRUFBRTtJQUM1QyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksU0FBUyxFQUFFO0lBQ3hDLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLEVBQUUsSUFBSSxTQUFTLEVBQUU7SUFDN0MsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLFNBQVMsRUFBRTtJQUM3QyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksV0FBVyxFQUFFO0lBQzVDLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxTQUFTLEVBQUU7SUFDeEMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLFNBQVMsRUFBRTtJQUN4QyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxFQUFFLElBQUksV0FBVyxFQUFFO0lBQzVDLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLEVBQUUsSUFBSSxhQUFhLEVBQUU7SUFDaEQsQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxJQUFJLFdBQVcsRUFBRTtJQUMvQyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxFQUFFLElBQUksV0FBVyxFQUFFO0lBQy9DLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxlQUFlLEVBQUU7Q0FDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFJVGFibGVGaWVsZFR5cGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlJztcbmltcG9ydCB7IEF0dGFjaG1lbnRGaWVsZCB9IGZyb20gJy4vYXR0YWNobWVudCc7XG5pbXBvcnQgeyBEYXRlRmllbGQgfSBmcm9tICcuL2RhdGUnO1xuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuL2ZpZWxkJztcblxuaW1wb3J0IHsgTGlua0ZpZWxkIH0gZnJvbSAnLi9saW5rJztcbmltcG9ydCB7IE1lbWJlckZpZWxkIH0gZnJvbSAnLi9tZW1iZXInO1xuaW1wb3J0IHsgTnVtYmVyRmllbGQgfSBmcm9tICcuL251bWJlcic7XG5pbXBvcnQgeyBQcm9ncmVzc0ZpZWxkIH0gZnJvbSAnLi9wcm9ncmVzcyc7XG5pbXBvcnQgeyBSYXRlRmllbGQgfSBmcm9tICcuL3JhdGUnO1xuaW1wb3J0IHsgU2VsZWN0RmllbGQgfSBmcm9tICcuL3NlbGVjdCc7XG5pbXBvcnQgeyBUZXh0RmllbGQgfSBmcm9tICcuL3RleHQnO1xuXG5leHBvcnQgY29uc3QgRmllbGRNb2RlbE1hcDogUmVjb3JkPEFJVGFibGVGaWVsZFR5cGUsIEZpZWxkPiA9IHtcbiAgICBbQUlUYWJsZUZpZWxkVHlwZS50ZXh0XTogbmV3IFRleHRGaWVsZCgpLFxuICAgIFtBSVRhYmxlRmllbGRUeXBlLnJpY2hUZXh0XTogbmV3IFRleHRGaWVsZCgpLFxuICAgIFtBSVRhYmxlRmllbGRUeXBlLnNlbGVjdF06IG5ldyBTZWxlY3RGaWVsZCgpLFxuICAgIFtBSVRhYmxlRmllbGRUeXBlLmRhdGVdOiBuZXcgRGF0ZUZpZWxkKCksXG4gICAgW0FJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEF0XTogbmV3IERhdGVGaWVsZCgpLFxuICAgIFtBSVRhYmxlRmllbGRUeXBlLnVwZGF0ZWRBdF06IG5ldyBEYXRlRmllbGQoKSxcbiAgICBbQUlUYWJsZUZpZWxkVHlwZS5udW1iZXJdOiBuZXcgTnVtYmVyRmllbGQoKSxcbiAgICBbQUlUYWJsZUZpZWxkVHlwZS5yYXRlXTogbmV3IFJhdGVGaWVsZCgpLFxuICAgIFtBSVRhYmxlRmllbGRUeXBlLmxpbmtdOiBuZXcgTGlua0ZpZWxkKCksXG4gICAgW0FJVGFibGVGaWVsZFR5cGUubWVtYmVyXTogbmV3IE1lbWJlckZpZWxkKCksXG4gICAgW0FJVGFibGVGaWVsZFR5cGUucHJvZ3Jlc3NdOiBuZXcgUHJvZ3Jlc3NGaWVsZCgpLFxuICAgIFtBSVRhYmxlRmllbGRUeXBlLmNyZWF0ZWRCeV06IG5ldyBNZW1iZXJGaWVsZCgpLFxuICAgIFtBSVRhYmxlRmllbGRUeXBlLnVwZGF0ZWRCeV06IG5ldyBNZW1iZXJGaWVsZCgpLFxuICAgIFtBSVRhYmxlRmllbGRUeXBlLmF0dGFjaG1lbnRdOiBuZXcgQXR0YWNobWVudEZpZWxkKClcbn07XG4iXX0=
|
@@ -1,4 +1,6 @@
|
|
1
|
+
import { AITableFieldType } from '../../../core';
|
1
2
|
import { AITableFilterOperation } from '../../../types';
|
3
|
+
import { extractText, extractLinkHref } from '../../clipboard';
|
2
4
|
import { isEmpty } from '../../common';
|
3
5
|
import { compareString, stringInclude } from '../operate';
|
4
6
|
import { Field } from './field';
|
@@ -26,8 +28,30 @@ export class LinkField extends Field {
|
|
26
28
|
}
|
27
29
|
return texts;
|
28
30
|
}
|
31
|
+
toFieldValue(plainText, targetField, originData) {
|
32
|
+
return toLinkFieldValue(plainText, targetField, originData);
|
33
|
+
}
|
34
|
+
}
|
35
|
+
export function toLinkFieldValue(plainText, targetField, originData) {
|
36
|
+
if (originData) {
|
37
|
+
const { field, cellValue } = originData;
|
38
|
+
if (field.type === AITableFieldType.link) {
|
39
|
+
return cellValue;
|
40
|
+
}
|
41
|
+
}
|
42
|
+
else {
|
43
|
+
const url = extractLinkHref(plainText);
|
44
|
+
const text = extractText(plainText);
|
45
|
+
if (url && text) {
|
46
|
+
return {
|
47
|
+
url,
|
48
|
+
text
|
49
|
+
};
|
50
|
+
}
|
51
|
+
}
|
52
|
+
return null;
|
29
53
|
}
|
30
54
|
function cellValueToSortValue(cellValue) {
|
31
55
|
return (cellValue && cellValue.text && cellValue.text.trim()) || null;
|
32
56
|
}
|
33
|
-
//# sourceMappingURL=data:application/json;base64,
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3V0aWxzL2ZpZWxkL21vZGVsL2xpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixnQkFBZ0IsRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUEwQixzQkFBc0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUMxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxTQUFVLFNBQVEsS0FBSztJQUN2QixZQUFZLENBQUMsU0FBeUMsRUFBRSxTQUFxQjtRQUNsRixNQUFNLGFBQWEsR0FBRyxTQUFTLEVBQUUsSUFBSSxDQUFDO1FBQ3RDLFFBQVEsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzFCLEtBQUssc0JBQXNCLENBQUMsS0FBSztnQkFDN0IsT0FBTyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDbEMsS0FBSyxzQkFBc0IsQ0FBQyxNQUFNO2dCQUM5QixPQUFPLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ25DLEtBQUssc0JBQXNCLENBQUMsT0FBTztnQkFDL0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxhQUFhLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRjtnQkFDSSxPQUFPLEtBQUssQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQzVELENBQUM7SUFDTCxDQUFDO0lBRVEsT0FBTyxDQUFDLFVBQXNCLEVBQUUsVUFBc0I7UUFDM0QsT0FBTyxhQUFhLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLEVBQUUsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRVEsWUFBWSxDQUFDLGNBQThCO1FBQ2hELElBQUksS0FBSyxHQUFhLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRVEsWUFBWSxDQUNqQixTQUFpQixFQUNqQixXQUF5QixFQUN6QixVQUFrRTtRQUVsRSxPQUFPLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUNKO0FBRUQsTUFBTSxVQUFVLGdCQUFnQixDQUM1QixTQUFpQixFQUNqQixXQUF5QixFQUN6QixVQUFrRTtJQUVsRSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2IsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDeEMsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3ZDLE9BQU8sU0FBUyxDQUFDO1FBQ3JCLENBQUM7SUFDTCxDQUFDO1NBQU0sQ0FBQztRQUNKLE1BQU0sR0FBRyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2QyxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDZCxPQUFPO2dCQUNILEdBQUc7Z0JBQ0gsSUFBSTthQUNQLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUFDLFNBQXlCO0lBQ25ELE9BQU8sQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDO0FBQzFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBSVRhYmxlRmllbGQsIEFJVGFibGVGaWVsZFR5cGUsIEZpZWxkVmFsdWUsIExpbmtGaWVsZFZhbHVlIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlRmlsdGVyQ29uZGl0aW9uLCBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZXh0cmFjdFRleHQsIGV4dHJhY3RMaW5rSHJlZiB9IGZyb20gJy4uLy4uL2NsaXBib2FyZCc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnLi4vLi4vY29tbW9uJztcbmltcG9ydCB7IGNvbXBhcmVTdHJpbmcsIHN0cmluZ0luY2x1ZGUgfSBmcm9tICcuLi9vcGVyYXRlJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi9maWVsZCc7XG5cbmV4cG9ydCBjbGFzcyBMaW5rRmllbGQgZXh0ZW5kcyBGaWVsZCB7XG4gICAgb3ZlcnJpZGUgaXNNZWV0RmlsdGVyKGNvbmRpdGlvbjogQUlUYWJsZUZpbHRlckNvbmRpdGlvbjxzdHJpbmc+LCBjZWxsVmFsdWU6IEZpZWxkVmFsdWUpIHtcbiAgICAgICAgY29uc3QgY2VsbFRleHRWYWx1ZSA9IGNlbGxWYWx1ZT8udGV4dDtcbiAgICAgICAgc3dpdGNoIChjb25kaXRpb24ub3BlcmF0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZW1wdHk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRW1wdHkoY2VsbFRleHRWYWx1ZSk7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZXhpc3RzOlxuICAgICAgICAgICAgICAgIHJldHVybiAhaXNFbXB0eShjZWxsVGV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5jb250YWluOlxuICAgICAgICAgICAgICAgIHJldHVybiAhaXNFbXB0eShjZWxsVGV4dFZhbHVlKSAmJiBzdHJpbmdJbmNsdWRlKGNlbGxUZXh0VmFsdWUsIGNvbmRpdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci5pc01lZXRGaWx0ZXIoY29uZGl0aW9uLCBjZWxsVGV4dFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG92ZXJyaWRlIGNvbXBhcmUoY2VsbFZhbHVlMTogRmllbGRWYWx1ZSwgY2VsbFZhbHVlMjogRmllbGRWYWx1ZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBjb21wYXJlU3RyaW5nKGNlbGxWYWx1ZVRvU29ydFZhbHVlKGNlbGxWYWx1ZTEpLCBjZWxsVmFsdWVUb1NvcnRWYWx1ZShjZWxsVmFsdWUyKSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgY2VsbEZ1bGxUZXh0KHRyYW5zZm9ybVZhbHVlOiBMaW5rRmllbGRWYWx1ZSk6IHN0cmluZ1tdIHtcbiAgICAgICAgbGV0IHRleHRzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAoIWlzRW1wdHkodHJhbnNmb3JtVmFsdWU/LnRleHQpKSB7XG4gICAgICAgICAgICB0ZXh0cy5wdXNoKHRyYW5zZm9ybVZhbHVlLnRleHQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZXh0cztcbiAgICB9XG5cbiAgICBvdmVycmlkZSB0b0ZpZWxkVmFsdWUoXG4gICAgICAgIHBsYWluVGV4dDogc3RyaW5nLFxuICAgICAgICB0YXJnZXRGaWVsZDogQUlUYWJsZUZpZWxkLFxuICAgICAgICBvcmlnaW5EYXRhPzogeyBmaWVsZDogQUlUYWJsZUZpZWxkOyBjZWxsVmFsdWU6IEZpZWxkVmFsdWUgfSB8IG51bGxcbiAgICApOiBGaWVsZFZhbHVlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0b0xpbmtGaWVsZFZhbHVlKHBsYWluVGV4dCwgdGFyZ2V0RmllbGQsIG9yaWdpbkRhdGEpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvTGlua0ZpZWxkVmFsdWUoXG4gICAgcGxhaW5UZXh0OiBzdHJpbmcsXG4gICAgdGFyZ2V0RmllbGQ6IEFJVGFibGVGaWVsZCxcbiAgICBvcmlnaW5EYXRhPzogeyBmaWVsZDogQUlUYWJsZUZpZWxkOyBjZWxsVmFsdWU6IEZpZWxkVmFsdWUgfSB8IG51bGxcbik6IEZpZWxkVmFsdWUgfCBudWxsIHtcbiAgICBpZiAob3JpZ2luRGF0YSkge1xuICAgICAgICBjb25zdCB7IGZpZWxkLCBjZWxsVmFsdWUgfSA9IG9yaWdpbkRhdGE7XG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSBBSVRhYmxlRmllbGRUeXBlLmxpbmspIHtcbiAgICAgICAgICAgIHJldHVybiBjZWxsVmFsdWU7XG4gICAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCB1cmwgPSBleHRyYWN0TGlua0hyZWYocGxhaW5UZXh0KTtcbiAgICAgICAgY29uc3QgdGV4dCA9IGV4dHJhY3RUZXh0KHBsYWluVGV4dCk7XG4gICAgICAgIGlmICh1cmwgJiYgdGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgdGV4dFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gY2VsbFZhbHVlVG9Tb3J0VmFsdWUoY2VsbFZhbHVlOiBMaW5rRmllbGRWYWx1ZSk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiAoY2VsbFZhbHVlICYmIGNlbGxWYWx1ZS50ZXh0ICYmIGNlbGxWYWx1ZS50ZXh0LnRyaW0oKSkgfHwgbnVsbDtcbn1cbiJdfQ==
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import { AITableFieldType } from '../../../core';
|
1
2
|
import { AITableFilterOperation } from '../../../types';
|
2
3
|
import { isEmpty } from '../../common';
|
3
4
|
import { compareString, hasIntersect } from '../operate';
|
@@ -37,6 +38,44 @@ export class MemberField extends Field {
|
|
37
38
|
}
|
38
39
|
return fullText;
|
39
40
|
}
|
41
|
+
toFieldValue(plainText, targetField, originData, references) {
|
42
|
+
return toMemberFieldValue(plainText, targetField, originData, references);
|
43
|
+
}
|
44
|
+
}
|
45
|
+
export function toMemberFieldValue(plainText, targetField, originData, references) {
|
46
|
+
if (targetField.type == AITableFieldType.createdBy || targetField.type == AITableFieldType.updatedBy) {
|
47
|
+
return null;
|
48
|
+
}
|
49
|
+
const isMultiple = targetField.settings?.is_multiple;
|
50
|
+
if (originData) {
|
51
|
+
const { field, cellValue } = originData;
|
52
|
+
switch (field.type) {
|
53
|
+
case AITableFieldType.member:
|
54
|
+
if (Array.isArray(cellValue) && cellValue.length) {
|
55
|
+
return isMultiple ? cellValue : [cellValue[0]];
|
56
|
+
}
|
57
|
+
break;
|
58
|
+
default:
|
59
|
+
break;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
plainText = plainText.trim();
|
63
|
+
const hasMemberInfo = references && references.members && Object.keys(references.members).length;
|
64
|
+
if (plainText && hasMemberInfo) {
|
65
|
+
const memberNames = plainText.split(',').map((id) => id.trim());
|
66
|
+
const memberInfos = Object.values(references.members);
|
67
|
+
let validMemberIds = [];
|
68
|
+
memberNames.forEach((memberName) => {
|
69
|
+
const memberInfo = memberInfos.find((member) => member.display_name === memberName);
|
70
|
+
if (memberInfo) {
|
71
|
+
validMemberIds.push(memberInfo.uid);
|
72
|
+
}
|
73
|
+
});
|
74
|
+
if (validMemberIds.length) {
|
75
|
+
return isMultiple ? validMemberIds : [validMemberIds[0]];
|
76
|
+
}
|
77
|
+
}
|
78
|
+
return null;
|
40
79
|
}
|
41
80
|
function cellValueToSortValue(cellValue, field, references, sortKey = 'display_name') {
|
42
81
|
let values = [];
|
@@ -54,4 +93,4 @@ function cellValueToSortValue(cellValue, field, references, sortKey = 'display_n
|
|
54
93
|
}
|
55
94
|
return values && values.length ? values.join(', ') : null;
|
56
95
|
}
|
57
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvdXRpbHMvZmllbGQvbW9kZWwvbWVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBMEIsc0JBQXNCLEVBQXFCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxXQUFZLFNBQVEsS0FBSztJQUN6QixZQUFZLENBQUMsU0FBeUMsRUFBRSxTQUEyQjtRQUN4RixRQUFRLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixLQUFLLHNCQUFzQixDQUFDLEtBQUs7Z0JBQzdCLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlCLEtBQUssc0JBQXNCLENBQUMsTUFBTTtnQkFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixLQUFLLHNCQUFzQixDQUFDLEVBQUU7Z0JBQzFCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEYsS0FBSyxzQkFBc0IsQ0FBQyxHQUFHO2dCQUMzQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkY7Z0JBQ0ksT0FBTyxLQUFLLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN4RCxDQUFDO0lBQ0wsQ0FBQztJQUVRLE9BQU8sQ0FDWixVQUFzQixFQUN0QixVQUFzQixFQUN0QixLQUFtQixFQUNuQixVQUE2QixFQUM3QixPQUFlO1FBRWYsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUUsTUFBTSxNQUFNLEdBQUcsb0JBQW9CLENBQUMsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUUsT0FBTyxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFUSxZQUFZLENBQUMsY0FBd0IsRUFBRSxLQUFtQixFQUFFLFVBQThCO1FBQy9GLElBQUksUUFBUSxHQUFhLEVBQUUsQ0FBQztRQUM1QixJQUFJLGNBQWMsRUFBRSxNQUFNLElBQUksVUFBVSxFQUFFLENBQUM7WUFDdkMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDekQsTUFBTSxRQUFRLEdBQUcsVUFBVSxFQUFFLE9BQU8sQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNaLFNBQVM7Z0JBQ2IsQ0FBQztnQkFDRCxJQUFJLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztvQkFDeEIsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ3pDLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sUUFBUSxDQUFDO0lBQ3BCLENBQUM7Q0FDSjtBQUVELFNBQVMsb0JBQW9CLENBQ3pCLFNBQTJCLEVBQzNCLEtBQW1CLEVBQ25CLFVBQTZCLEVBQzdCLE9BQU8sR0FBRyxjQUFjO0lBRXhCLElBQUksTUFBTSxHQUFhLEVBQUUsQ0FBQztJQUMxQixJQUFJLFNBQVMsRUFBRSxNQUFNLElBQUksVUFBVSxFQUFFLENBQUM7UUFDbEMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsS0FBSyxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FBQztZQUNwRCxNQUFNLFFBQVEsR0FBRyxVQUFVLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDWixTQUFTO1lBQ2IsQ0FBQztZQUVELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNoQyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNSLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxNQUFNLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzlELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBSVRhYmxlRmllbGQsIEZpZWxkVmFsdWUsIE1lbWJlckZpZWxkVmFsdWUgfSBmcm9tICcuLi8uLi8uLi9jb3JlJztcbmltcG9ydCB7IEFJVGFibGVGaWx0ZXJDb25kaXRpb24sIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24sIEFJVGFibGVSZWZlcmVuY2VzIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJy4uLy4uL2NvbW1vbic7XG5pbXBvcnQgeyBjb21wYXJlU3RyaW5nLCBoYXNJbnRlcnNlY3QgfSBmcm9tICcuLi9vcGVyYXRlJztcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi9maWVsZCc7XG5cbmV4cG9ydCBjbGFzcyBNZW1iZXJGaWVsZCBleHRlbmRzIEZpZWxkIHtcbiAgICBvdmVycmlkZSBpc01lZXRGaWx0ZXIoY29uZGl0aW9uOiBBSVRhYmxlRmlsdGVyQ29uZGl0aW9uPHN0cmluZz4sIGNlbGxWYWx1ZTogTWVtYmVyRmllbGRWYWx1ZSkge1xuICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi5vcGVyYXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5lbXB0eTpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNFbXB0eShjZWxsVmFsdWUpO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmV4aXN0czpcbiAgICAgICAgICAgICAgICByZXR1cm4gIWlzRW1wdHkoY2VsbFZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5pbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjb25kaXRpb24udmFsdWUpICYmIGhhc0ludGVyc2VjdChjZWxsVmFsdWUsIGNvbmRpdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24ubmluOlxuICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGNvbmRpdGlvbi52YWx1ZSkgJiYgIWhhc0ludGVyc2VjdChjZWxsVmFsdWUsIGNvbmRpdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBzdXBlci5pc01lZXRGaWx0ZXIoY29uZGl0aW9uLCBjZWxsVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgY29tcGFyZShcbiAgICAgICAgY2VsbFZhbHVlMTogRmllbGRWYWx1ZSxcbiAgICAgICAgY2VsbFZhbHVlMjogRmllbGRWYWx1ZSxcbiAgICAgICAgZmllbGQ6IEFJVGFibGVGaWVsZCxcbiAgICAgICAgcmVmZXJlbmNlczogQUlUYWJsZVJlZmVyZW5jZXMsXG4gICAgICAgIHNvcnRLZXk6IHN0cmluZ1xuICAgICk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlMSA9IGNlbGxWYWx1ZVRvU29ydFZhbHVlKGNlbGxWYWx1ZTEsIGZpZWxkLCByZWZlcmVuY2VzLCBzb3J0S2V5KTtcbiAgICAgICAgY29uc3QgdmFsdWUyID0gY2VsbFZhbHVlVG9Tb3J0VmFsdWUoY2VsbFZhbHVlMiwgZmllbGQsIHJlZmVyZW5jZXMsIHNvcnRLZXkpO1xuICAgICAgICByZXR1cm4gY29tcGFyZVN0cmluZyh2YWx1ZTEsIHZhbHVlMik7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgY2VsbEZ1bGxUZXh0KHRyYW5zZm9ybVZhbHVlOiBzdHJpbmdbXSwgZmllbGQ6IEFJVGFibGVGaWVsZCwgcmVmZXJlbmNlcz86IEFJVGFibGVSZWZlcmVuY2VzKTogc3RyaW5nW10ge1xuICAgICAgICBsZXQgZnVsbFRleHQ6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGlmICh0cmFuc2Zvcm1WYWx1ZT8ubGVuZ3RoICYmIHJlZmVyZW5jZXMpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCB0cmFuc2Zvcm1WYWx1ZS5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBjb25zdCB1c2VySW5mbyA9IHJlZmVyZW5jZXM/Lm1lbWJlcnNbdHJhbnNmb3JtVmFsdWVbaW5kZXhdXTtcbiAgICAgICAgICAgICAgICBpZiAoIXVzZXJJbmZvKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodXNlckluZm8uZGlzcGxheV9uYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIGZ1bGxUZXh0LnB1c2godXNlckluZm8uZGlzcGxheV9uYW1lKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZ1bGxUZXh0O1xuICAgIH1cbn1cblxuZnVuY3Rpb24gY2VsbFZhbHVlVG9Tb3J0VmFsdWUoXG4gICAgY2VsbFZhbHVlOiBNZW1iZXJGaWVsZFZhbHVlLFxuICAgIGZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgcmVmZXJlbmNlczogQUlUYWJsZVJlZmVyZW5jZXMsXG4gICAgc29ydEtleSA9ICdkaXNwbGF5X25hbWUnXG4pOiBzdHJpbmcgfCBudWxsIHtcbiAgICBsZXQgdmFsdWVzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGlmIChjZWxsVmFsdWU/Lmxlbmd0aCAmJiByZWZlcmVuY2VzKSB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBjZWxsVmFsdWUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICBjb25zdCB1c2VySW5mbyA9IHJlZmVyZW5jZXM/Lm1lbWJlcnNbY2VsbFZhbHVlW2luZGV4XV07XG4gICAgICAgICAgICBpZiAoIXVzZXJJbmZvKSB7XG4gICAgICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IHZhbHVlID0gdXNlckluZm9bc29ydEtleV07XG4gICAgICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlcyAmJiB2YWx1ZXMubGVuZ3RoID8gdmFsdWVzLmpvaW4oJywgJykgOiBudWxsO1xufVxuIl19
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvdXRpbHMvZmllbGQvbW9kZWwvbWVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBZ0IsZ0JBQWdCLEVBQWdELE1BQU0sZUFBZSxDQUFDO0FBQzdHLE9BQU8sRUFBMEIsc0JBQXNCLEVBQXFCLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN2QyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6RCxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRWhDLE1BQU0sT0FBTyxXQUFZLFNBQVEsS0FBSztJQUN6QixZQUFZLENBQUMsU0FBeUMsRUFBRSxTQUEyQjtRQUN4RixRQUFRLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixLQUFLLHNCQUFzQixDQUFDLEtBQUs7Z0JBQzdCLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlCLEtBQUssc0JBQXNCLENBQUMsTUFBTTtnQkFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixLQUFLLHNCQUFzQixDQUFDLEVBQUU7Z0JBQzFCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEYsS0FBSyxzQkFBc0IsQ0FBQyxHQUFHO2dCQUMzQixPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdkY7Z0JBQ0ksT0FBTyxLQUFLLENBQUMs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QUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNaLFNBQVM7WUFDYixDQUFDO1lBRUQsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hDLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2QixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLE1BQU0sSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDOUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElkIH0gZnJvbSAnbmd4LXRldGh5cy90eXBlcyc7XG5pbXBvcnQgeyBBSVRhYmxlRmllbGQsIEFJVGFibGVGaWVsZFR5cGUsIEZpZWxkVmFsdWUsIE1lbWJlckZpZWxkVmFsdWUsIE1lbWJlclNldHRpbmdzIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlRmlsdGVyQ29uZGl0aW9uLCBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLCBBSVRhYmxlUmVmZXJlbmNlcyB9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICcuLi8uLi9jb21tb24nO1xuaW1wb3J0IHsgY29tcGFyZVN0cmluZywgaGFzSW50ZXJzZWN0IH0gZnJvbSAnLi4vb3BlcmF0ZSc7XG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4vZmllbGQnO1xuXG5leHBvcnQgY2xhc3MgTWVtYmVyRmllbGQgZXh0ZW5kcyBGaWVsZCB7XG4gICAgb3ZlcnJpZGUgaXNNZWV0RmlsdGVyKGNvbmRpdGlvbjogQUlUYWJsZUZpbHRlckNvbmRpdGlvbjxzdHJpbmc+LCBjZWxsVmFsdWU6IE1lbWJlckZpZWxkVmFsdWUpIHtcbiAgICAgICAgc3dpdGNoIChjb25kaXRpb24ub3BlcmF0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZW1wdHk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRW1wdHkoY2VsbFZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5leGlzdHM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc0VtcHR5KGNlbGxWYWx1ZSk7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uaW46XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoY29uZGl0aW9uLnZhbHVlKSAmJiBoYXNJbnRlcnNlY3QoY2VsbFZhbHVlLCBjb25kaXRpb24udmFsdWUpO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLm5pbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjb25kaXRpb24udmFsdWUpICYmICFoYXNJbnRlcnNlY3QoY2VsbFZhbHVlLCBjb25kaXRpb24udmFsdWUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXIuaXNNZWV0RmlsdGVyKGNvbmRpdGlvbiwgY2VsbFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG92ZXJyaWRlIGNvbXBhcmUoXG4gICAgICAgIGNlbGxWYWx1ZTE6IEZpZWxkVmFsdWUsXG4gICAgICAgIGNlbGxWYWx1ZTI6IEZpZWxkVmFsdWUsXG4gICAgICAgIGZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgICAgIHJlZmVyZW5jZXM6IEFJVGFibGVSZWZlcmVuY2VzLFxuICAgICAgICBzb3J0S2V5OiBzdHJpbmdcbiAgICApOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZTEgPSBjZWxsVmFsdWVUb1NvcnRWYWx1ZShjZWxsVmFsdWUxLCBmaWVsZCwgcmVmZXJlbmNlcywgc29ydEtleSk7XG4gICAgICAgIGNvbnN0IHZhbHVlMiA9IGNlbGxWYWx1ZVRvU29ydFZhbHVlKGNlbGxWYWx1ZTIsIGZpZWxkLCByZWZlcmVuY2VzLCBzb3J0S2V5KTtcbiAgICAgICAgcmV0dXJuIGNvbXBhcmVTdHJpbmcodmFsdWUxLCB2YWx1ZTIpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIGNlbGxGdWxsVGV4dCh0cmFuc2Zvcm1WYWx1ZTogc3RyaW5nW10sIGZpZWxkOiBBSVRhYmxlRmllbGQsIHJlZmVyZW5jZXM/OiBBSVRhYmxlUmVmZXJlbmNlcyk6IHN0cmluZ1tdIHtcbiAgICAgICAgbGV0IGZ1bGxUZXh0OiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBpZiAodHJhbnNmb3JtVmFsdWU/Lmxlbmd0aCAmJiByZWZlcmVuY2VzKSB7XG4gICAgICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgdHJhbnNmb3JtVmFsdWUubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgdXNlckluZm8gPSByZWZlcmVuY2VzPy5tZW1iZXJzW3RyYW5zZm9ybVZhbHVlW2luZGV4XV07XG4gICAgICAgICAgICAgICAgaWYgKCF1c2VySW5mbykge1xuICAgICAgICAgICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHVzZXJJbmZvLmRpc3BsYXlfbmFtZSkge1xuICAgICAgICAgICAgICAgICAgICBmdWxsVGV4dC5wdXNoKHVzZXJJbmZvLmRpc3BsYXlfbmFtZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmdWxsVGV4dDtcbiAgICB9XG5cbiAgICBvdmVycmlkZSB0b0ZpZWxkVmFsdWUoXG4gICAgICAgIHBsYWluVGV4dDogc3RyaW5nLFxuICAgICAgICB0YXJnZXRGaWVsZDogQUlUYWJsZUZpZWxkLFxuICAgICAgICBvcmlnaW5EYXRhPzogeyBmaWVsZDogQUlUYWJsZUZpZWxkOyBjZWxsVmFsdWU6IEZpZWxkVmFsdWUgfSxcbiAgICAgICAgcmVmZXJlbmNlcz86IEFJVGFibGVSZWZlcmVuY2VzXG4gICAgKTogRmllbGRWYWx1ZSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdG9NZW1iZXJGaWVsZFZhbHVlKHBsYWluVGV4dCwgdGFyZ2V0RmllbGQsIG9yaWdpbkRhdGEsIHJlZmVyZW5jZXMpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvTWVtYmVyRmllbGRWYWx1ZShcbiAgICBwbGFpblRleHQ6IHN0cmluZyxcbiAgICB0YXJnZXRGaWVsZDogQUlUYWJsZUZpZWxkLFxuICAgIG9yaWdpbkRhdGE/OiB7IGZpZWxkOiBBSVRhYmxlRmllbGQ7IGNlbGxWYWx1ZTogRmllbGRWYWx1ZSB9LFxuICAgIHJlZmVyZW5jZXM/OiBBSVRhYmxlUmVmZXJlbmNlc1xuKTogRmllbGRWYWx1ZSB8IG51bGwge1xuICAgIGlmICh0YXJnZXRGaWVsZC50eXBlID09IEFJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEJ5IHx8IHRhcmdldEZpZWxkLnR5cGUgPT0gQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQnkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgaXNNdWx0aXBsZSA9ICh0YXJnZXRGaWVsZC5zZXR0aW5ncyBhcyBNZW1iZXJTZXR0aW5ncyk/LmlzX211bHRpcGxlO1xuICAgIGlmIChvcmlnaW5EYXRhKSB7XG4gICAgICAgIGNvbnN0IHsgZmllbGQsIGNlbGxWYWx1ZSB9ID0gb3JpZ2luRGF0YTtcbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWVsZFR5cGUubWVtYmVyOlxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNlbGxWYWx1ZSkgJiYgY2VsbFZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSA/IGNlbGxWYWx1ZSA6IFtjZWxsVmFsdWVbMF1dO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwbGFpblRleHQgPSBwbGFpblRleHQudHJpbSgpO1xuICAgIGNvbnN0IGhhc01lbWJlckluZm8gPSByZWZlcmVuY2VzICYmIHJlZmVyZW5jZXMubWVtYmVycyAmJiBPYmplY3Qua2V5cyhyZWZlcmVuY2VzLm1lbWJlcnMpLmxlbmd0aDtcbiAgICBpZiAocGxhaW5UZXh0ICYmIGhhc01lbWJlckluZm8pIHtcbiAgICAgICAgY29uc3QgbWVtYmVyTmFtZXMgPSBwbGFpblRleHQuc3BsaXQoJywnKS5tYXAoKGlkKSA9PiBpZC50cmltKCkpO1xuICAgICAgICBjb25zdCBtZW1iZXJJbmZvcyA9IE9iamVjdC52YWx1ZXMocmVmZXJlbmNlcy5tZW1iZXJzKTtcbiAgICAgICAgbGV0IHZhbGlkTWVtYmVySWRzOiBNZW1iZXJGaWVsZFZhbHVlID0gW107XG4gICAgICAgIG1lbWJlck5hbWVzLmZvckVhY2goKG1lbWJlck5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1lbWJlckluZm8gPSBtZW1iZXJJbmZvcy5maW5kKChtZW1iZXIpID0+IG1lbWJlci5kaXNwbGF5X25hbWUgPT09IG1lbWJlck5hbWUpO1xuICAgICAgICAgICAgaWYgKG1lbWJlckluZm8pIHtcbiAgICAgICAgICAgICAgICB2YWxpZE1lbWJlcklkcy5wdXNoKG1lbWJlckluZm8udWlkIGFzIElkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh2YWxpZE1lbWJlcklkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBpc011bHRpcGxlID8gdmFsaWRNZW1iZXJJZHMgOiBbdmFsaWRNZW1iZXJJZHNbMF1dO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGNlbGxWYWx1ZVRvU29ydFZhbHVlKFxuICAgIGNlbGxWYWx1ZTogTWVtYmVyRmllbGRWYWx1ZSxcbiAgICBmaWVsZDogQUlUYWJsZUZpZWxkLFxuICAgIHJlZmVyZW5jZXM6IEFJVGFibGVSZWZlcmVuY2VzLFxuICAgIHNvcnRLZXkgPSAnZGlzcGxheV9uYW1lJ1xuKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgbGV0IHZhbHVlczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAoY2VsbFZhbHVlPy5sZW5ndGggJiYgcmVmZXJlbmNlcykge1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2VsbFZhbHVlLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgdXNlckluZm8gPSByZWZlcmVuY2VzPy5tZW1iZXJzW2NlbGxWYWx1ZVtpbmRleF1dO1xuICAgICAgICAgICAgaWYgKCF1c2VySW5mbykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHVzZXJJbmZvW3NvcnRLZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCA/IHZhbHVlcy5qb2luKCcsICcpIDogbnVsbDtcbn1cbiJdfQ==
|