@ai-table/grid 0.0.73 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/angular-konva/components/container.component.d.ts.map +1 -1
- package/angular-konva/components/shape.component.d.ts.map +1 -1
- package/angular-konva/components/stage.component.d.ts.map +1 -1
- package/components/cell-editors/abstract-cell-editor.component.d.ts.map +1 -1
- package/components/cell-editors/date/date-editor.component.d.ts.map +1 -1
- package/components/cell-editors/link/edit-link/edit-link.component.d.ts.map +1 -1
- package/components/cell-editors/link/link-editor.component.d.ts.map +1 -1
- package/components/cell-editors/number/number-editor.component.d.ts.map +1 -1
- package/components/cell-editors/select/select-editor.component.d.ts.map +1 -1
- package/components/cell-editors/text/text-editor.component.d.ts.map +1 -1
- package/components/cell-views/select/option.component.d.ts.map +1 -1
- package/components/context-menu/context-menu.component.d.ts.map +1 -1
- package/components/drag/drag.component.d.ts.map +1 -1
- package/components/field-menu/field-menu.component.d.ts.map +1 -1
- package/components/field-setting/field-setting.component.d.ts.map +1 -1
- package/core/context.d.ts +2 -0
- package/core/context.d.ts.map +1 -1
- package/core/types/ai-table.d.ts.map +1 -1
- package/core/utils/field.d.ts.map +1 -1
- package/core/utils/queries.d.ts.map +1 -1
- package/core/utils/short-id.d.ts.map +1 -1
- package/dom-grid.component.d.ts.map +1 -1
- package/fesm2022/ai-table-grid.mjs +322 -310
- package/fesm2022/ai-table-grid.mjs.map +1 -1
- package/grid-base.component.d.ts +3 -1
- package/grid-base.component.d.ts.map +1 -1
- package/grid.component.d.ts +1 -1
- package/grid.component.d.ts.map +1 -1
- package/package.json +3 -5
- package/pipes/grid.pipe.d.ts.map +1 -1
- package/renderer/components/action-icon.component.d.ts.map +1 -1
- package/renderer/components/add-field-column.component.d.ts.map +1 -1
- package/renderer/components/cells/attachment.component.d.ts.map +1 -1
- package/renderer/components/cells/link.component.d.ts.map +1 -1
- package/renderer/components/cells/progress.component.d.ts.map +1 -1
- package/renderer/components/cells/rate.component.d.ts.map +1 -1
- package/renderer/components/cells/rich-text.component.d.ts.map +1 -1
- package/renderer/components/cells.component.d.ts.map +1 -1
- package/renderer/components/field-head.component.d.ts +2 -2
- package/renderer/components/field-head.component.d.ts.map +1 -1
- package/renderer/components/field-icon.component.d.ts.map +1 -1
- package/renderer/components/frozen-cells.component.d.ts.map +1 -1
- package/renderer/components/frozen-heads.component.d.ts +1 -1
- package/renderer/components/frozen-heads.component.d.ts.map +1 -1
- package/renderer/components/frozen-placeholder-cells.component.d.ts.map +1 -1
- package/renderer/components/heads.component.d.ts +1 -1
- package/renderer/components/heads.component.d.ts.map +1 -1
- package/renderer/components/hover-cell.component.d.ts.map +1 -1
- package/renderer/components/hover-row-heads.component.d.ts.map +1 -1
- package/renderer/components/icon.component.d.ts.map +1 -1
- package/renderer/components/other-rows.component.d.ts.map +1 -1
- package/renderer/components/placeholder-cells.component.d.ts.map +1 -1
- package/renderer/components/text.component.d.ts.map +1 -1
- package/renderer/creations/create-active-cell-border.d.ts.map +1 -1
- package/renderer/creations/create-cells.d.ts.map +1 -1
- package/renderer/creations/create-heads.d.ts.map +1 -1
- package/renderer/drawers/add-row-layout-drawer.d.ts +1 -1
- package/renderer/drawers/add-row-layout-drawer.d.ts.map +1 -1
- package/renderer/drawers/cell-drawer.d.ts.map +1 -1
- package/renderer/drawers/drawer.d.ts +1 -1
- package/renderer/renderer.component.d.ts +5 -4
- package/renderer/renderer.component.d.ts.map +1 -1
- package/types/cell.d.ts +2 -0
- package/types/cell.d.ts.map +1 -1
- package/types/component-config.d.ts +2 -0
- package/types/component-config.d.ts.map +1 -1
- package/types/grid.d.ts +4 -0
- package/types/grid.d.ts.map +1 -1
- package/types/row.d.ts +1 -0
- package/types/row.d.ts.map +1 -1
- package/utils/build.d.ts.map +1 -1
- package/utils/clipboard/clipboard.d.ts.map +1 -1
- package/utils/clipboard/copy.d.ts.map +1 -1
- package/utils/clipboard/paste.d.ts +5 -1
- package/utils/clipboard/paste.d.ts.map +1 -1
- package/utils/common.d.ts.map +1 -1
- package/utils/field/model/date.d.ts.map +1 -1
- package/utils/field/model/link.d.ts.map +1 -1
- package/utils/field/model/progress.d.ts.map +1 -1
- package/utils/field/model/text.d.ts.map +1 -1
- package/utils/get-text-width.d.ts.map +1 -1
- package/utils/i18n.d.ts +2 -0
- package/utils/i18n.d.ts.map +1 -1
- package/utils/match-keywords.d.ts.map +1 -1
- package/utils/position.d.ts.map +1 -1
- package/utils/style.d.ts.map +1 -1
- package/utils/text-measure.d.ts.map +1 -1
- package/utils/visible-range.d.ts.map +1 -1
- package/esm2022/ai-table-grid.mjs +0 -5
- package/esm2022/angular-konva/components/container.component.mjs +0 -29
- package/esm2022/angular-konva/components/container.token.mjs +0 -3
- package/esm2022/angular-konva/components/index.mjs +0 -4
- package/esm2022/angular-konva/components/shape.component.mjs +0 -142
- package/esm2022/angular-konva/components/stage.component.mjs +0 -123
- package/esm2022/angular-konva/index.mjs +0 -5
- package/esm2022/angular-konva/interfaces/component.mjs +0 -4
- package/esm2022/angular-konva/interfaces/config.mjs +0 -2
- package/esm2022/angular-konva/interfaces/event-object.mjs +0 -2
- package/esm2022/angular-konva/interfaces/index.mjs +0 -5
- package/esm2022/angular-konva/interfaces/shape.mjs +0 -42
- package/esm2022/angular-konva/utils/apply-node-props.mjs +0 -67
- package/esm2022/angular-konva/utils/common.mjs +0 -48
- package/esm2022/angular-konva/utils/index.mjs +0 -5
- package/esm2022/angular-konva/utils/types.mjs +0 -2
- package/esm2022/angular-konva/utils/update-picture.mjs +0 -7
- package/esm2022/components/cell-editors/abstract-cell-editor.component.mjs +0 -56
- package/esm2022/components/cell-editors/date/date-editor.component.mjs +0 -87
- package/esm2022/components/cell-editors/link/edit-link/edit-link.component.mjs +0 -81
- package/esm2022/components/cell-editors/link/link-editor.component.mjs +0 -122
- package/esm2022/components/cell-editors/number/number-editor.component.mjs +0 -41
- package/esm2022/components/cell-editors/select/select-editor.component.mjs +0 -74
- package/esm2022/components/cell-editors/text/text-editor.component.mjs +0 -76
- package/esm2022/components/cell-views/select/option.component.mjs +0 -28
- package/esm2022/components/context-menu/context-menu.component.mjs +0 -42
- package/esm2022/components/drag/drag.component.mjs +0 -300
- package/esm2022/components/field-menu/field-menu.component.mjs +0 -47
- package/esm2022/components/field-setting/field-setting.component.mjs +0 -142
- package/esm2022/components/index.mjs +0 -10
- package/esm2022/constants/colors.mjs +0 -19
- package/esm2022/constants/editor.mjs +0 -11
- package/esm2022/constants/file-icon.mjs +0 -342
- package/esm2022/constants/grid.mjs +0 -35
- package/esm2022/constants/icon.mjs +0 -30
- package/esm2022/constants/index.mjs +0 -7
- package/esm2022/constants/table.mjs +0 -78
- package/esm2022/constants/text.mjs +0 -23
- package/esm2022/core/constants/field.mjs +0 -107
- package/esm2022/core/context.mjs +0 -29
- package/esm2022/core/coordinate.mjs +0 -222
- package/esm2022/core/index.mjs +0 -6
- package/esm2022/core/types/ai-table.mjs +0 -57
- package/esm2022/core/types/core.mjs +0 -2
- package/esm2022/core/types/index.mjs +0 -3
- package/esm2022/core/utils/common.mjs +0 -45
- package/esm2022/core/utils/field.mjs +0 -64
- package/esm2022/core/utils/id-creator.mjs +0 -21
- package/esm2022/core/utils/index.mjs +0 -5
- package/esm2022/core/utils/queries.mjs +0 -80
- package/esm2022/core/utils/short-id.mjs +0 -53
- package/esm2022/dom-grid.component.mjs +0 -80
- package/esm2022/grid-base.component.mjs +0 -145
- package/esm2022/grid.component.mjs +0 -649
- package/esm2022/index.mjs +0 -2
- package/esm2022/pipes/grid.pipe.mjs +0 -110
- package/esm2022/pipes/index.mjs +0 -2
- package/esm2022/public-api.mjs +0 -12
- package/esm2022/renderer/components/action-icon.component.mjs +0 -117
- package/esm2022/renderer/components/add-field-column.component.mjs +0 -88
- package/esm2022/renderer/components/cells/attachment.component.mjs +0 -107
- package/esm2022/renderer/components/cells/cells.mjs +0 -6
- package/esm2022/renderer/components/cells/index.mjs +0 -7
- package/esm2022/renderer/components/cells/link.component.mjs +0 -89
- package/esm2022/renderer/components/cells/progress.component.mjs +0 -268
- package/esm2022/renderer/components/cells/rate.component.mjs +0 -153
- package/esm2022/renderer/components/cells/rich-text.component.mjs +0 -95
- package/esm2022/renderer/components/cells.component.mjs +0 -35
- package/esm2022/renderer/components/field-head.component.mjs +0 -146
- package/esm2022/renderer/components/field-icon.component.mjs +0 -72
- package/esm2022/renderer/components/frozen-cells.component.mjs +0 -36
- package/esm2022/renderer/components/frozen-heads.component.mjs +0 -214
- package/esm2022/renderer/components/frozen-placeholder-cells.component.mjs +0 -38
- package/esm2022/renderer/components/heads.component.mjs +0 -38
- package/esm2022/renderer/components/hover-cell.component.mjs +0 -104
- package/esm2022/renderer/components/hover-row-heads.component.mjs +0 -132
- package/esm2022/renderer/components/icon.component.mjs +0 -84
- package/esm2022/renderer/components/index.mjs +0 -15
- package/esm2022/renderer/components/other-rows.component.mjs +0 -68
- package/esm2022/renderer/components/placeholder-cells.component.mjs +0 -33
- package/esm2022/renderer/components/text.component.mjs +0 -67
- package/esm2022/renderer/creations/create-active-cell-border.mjs +0 -70
- package/esm2022/renderer/creations/create-cells.mjs +0 -190
- package/esm2022/renderer/creations/create-heads.mjs +0 -51
- package/esm2022/renderer/drawers/add-row-layout-drawer.mjs +0 -98
- package/esm2022/renderer/drawers/cell-drawer.mjs +0 -673
- package/esm2022/renderer/drawers/drawer.mjs +0 -947
- package/esm2022/renderer/drawers/layout-drawer.mjs +0 -64
- package/esm2022/renderer/drawers/record-row-layout-drawer.mjs +0 -131
- package/esm2022/renderer/index.mjs +0 -4
- package/esm2022/renderer/interfaces/hover-cell.mjs +0 -4
- package/esm2022/renderer/interfaces/index.mjs +0 -2
- package/esm2022/renderer/renderer.component.mjs +0 -197
- package/esm2022/services/event.service.mjs +0 -241
- package/esm2022/services/field.service.mjs +0 -56
- package/esm2022/services/index.mjs +0 -4
- package/esm2022/services/selection.service.mjs +0 -151
- package/esm2022/types/avatar.mjs +0 -27
- package/esm2022/types/canvas.mjs +0 -2
- package/esm2022/types/cell.mjs +0 -2
- package/esm2022/types/clipboard.mjs +0 -2
- package/esm2022/types/component-config.mjs +0 -7
- package/esm2022/types/field.mjs +0 -2
- package/esm2022/types/grid.mjs +0 -17
- package/esm2022/types/index.mjs +0 -10
- package/esm2022/types/layout.mjs +0 -2
- package/esm2022/types/row.mjs +0 -6
- package/esm2022/utils/build.mjs +0 -39
- package/esm2022/utils/cell.mjs +0 -80
- package/esm2022/utils/clear-cells.mjs +0 -23
- package/esm2022/utils/clipboard/clipboard.mjs +0 -88
- package/esm2022/utils/clipboard/copy.mjs +0 -99
- package/esm2022/utils/clipboard/extract.mjs +0 -38
- package/esm2022/utils/clipboard/index.mjs +0 -5
- package/esm2022/utils/clipboard/paste.mjs +0 -188
- package/esm2022/utils/common.mjs +0 -50
- package/esm2022/utils/field/field-operable.mjs +0 -2
- package/esm2022/utils/field/field.mjs +0 -20
- package/esm2022/utils/field/index.mjs +0 -4
- package/esm2022/utils/field/model/attachment.mjs +0 -56
- package/esm2022/utils/field/model/date.mjs +0 -141
- package/esm2022/utils/field/model/index.mjs +0 -12
- package/esm2022/utils/field/model/link.mjs +0 -56
- package/esm2022/utils/field/model/member.mjs +0 -81
- package/esm2022/utils/field/model/number.mjs +0 -59
- package/esm2022/utils/field/model/progress.mjs +0 -69
- package/esm2022/utils/field/model/rate.mjs +0 -58
- package/esm2022/utils/field/model/rich-text.mjs +0 -39
- package/esm2022/utils/field/model/select.mjs +0 -131
- package/esm2022/utils/field/model/text.mjs +0 -32
- package/esm2022/utils/field/operate.mjs +0 -73
- package/esm2022/utils/file.mjs +0 -116
- package/esm2022/utils/get-placeholder-cells.mjs +0 -66
- package/esm2022/utils/get-text-width.mjs +0 -30
- package/esm2022/utils/hover-cell.mjs +0 -25
- package/esm2022/utils/i18n.mjs +0 -87
- package/esm2022/utils/image-cache.mjs +0 -57
- package/esm2022/utils/index.mjs +0 -19
- package/esm2022/utils/match-keywords.mjs +0 -15
- package/esm2022/utils/os.mjs +0 -16
- package/esm2022/utils/position.mjs +0 -48
- package/esm2022/utils/style.mjs +0 -37
- package/esm2022/utils/text-measure.mjs +0 -122
- package/esm2022/utils/visible-range.mjs +0 -42
@@ -1,56 +0,0 @@
|
|
1
|
-
import { isNil } from 'lodash';
|
2
|
-
import { AITableFieldType, LinkFieldBase, AITableFilterOperation, isEmpty } from '@ai-table/utils';
|
3
|
-
import { extractText, extractLinkUrl } from '../../clipboard';
|
4
|
-
import { compareString, isMeetFilter, stringInclude } from '../operate';
|
5
|
-
export class LinkField extends LinkFieldBase {
|
6
|
-
isMeetFilter(condition, cellValue) {
|
7
|
-
if (cellValue === null) {
|
8
|
-
if (condition.operation === AITableFilterOperation.empty) {
|
9
|
-
return true;
|
10
|
-
}
|
11
|
-
else {
|
12
|
-
return false;
|
13
|
-
}
|
14
|
-
}
|
15
|
-
const cellTextValue = cellValue?.text;
|
16
|
-
switch (condition.operation) {
|
17
|
-
case AITableFilterOperation.empty:
|
18
|
-
return isEmpty(cellTextValue);
|
19
|
-
case AITableFilterOperation.exists:
|
20
|
-
return !isEmpty(cellTextValue);
|
21
|
-
case AITableFilterOperation.contain:
|
22
|
-
return !isNil(cellTextValue) && stringInclude(cellTextValue, condition.value);
|
23
|
-
default:
|
24
|
-
return isMeetFilter(condition, cellTextValue);
|
25
|
-
}
|
26
|
-
}
|
27
|
-
compare(cellValue1, cellValue2) {
|
28
|
-
return compareString(cellValueToSortValue(cellValue1), cellValueToSortValue(cellValue2));
|
29
|
-
}
|
30
|
-
toFieldValue(plainText, targetField, originData) {
|
31
|
-
return toLinkFieldValue(plainText, targetField, originData);
|
32
|
-
}
|
33
|
-
}
|
34
|
-
export function toLinkFieldValue(plainText, targetField, originData) {
|
35
|
-
if (originData) {
|
36
|
-
const { field, cellValue } = originData;
|
37
|
-
if (field.type === AITableFieldType.link) {
|
38
|
-
return cellValue;
|
39
|
-
}
|
40
|
-
}
|
41
|
-
else {
|
42
|
-
const url = extractLinkUrl(plainText);
|
43
|
-
const text = extractText(plainText);
|
44
|
-
if (url && text) {
|
45
|
-
return {
|
46
|
-
url,
|
47
|
-
text
|
48
|
-
};
|
49
|
-
}
|
50
|
-
}
|
51
|
-
return null;
|
52
|
-
}
|
53
|
-
function cellValueToSortValue(cellValue) {
|
54
|
-
return (cellValue && cellValue.text && cellValue.text.trim()) || null;
|
55
|
-
}
|
56
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3V0aWxzL2ZpZWxkL21vZGVsL2xpbmsudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMvQixPQUFPLEVBRUgsZ0JBQWdCLEVBR2hCLGFBQWEsRUFFYixzQkFBc0IsRUFDdEIsT0FBTyxFQUNWLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHeEUsTUFBTSxPQUFPLFNBQVUsU0FBUSxhQUFhO0lBQ3hDLFlBQVksQ0FBQyxTQUF5QyxFQUFFLFNBQXlCO1FBQzdFLElBQUksU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3JCLElBQUksU0FBUyxDQUFDLFNBQVMsS0FBSyxzQkFBc0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDdkQsT0FBTyxJQUFJLENBQUM7WUFDaEIsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLE9BQU8sS0FBSyxDQUFDO1lBQ2pCLENBQUM7UUFDTCxDQUFDO1FBQ0QsTUFBTSxhQUFhLEdBQUcsU0FBUyxFQUFFLElBQUksQ0FBQztRQUN0QyxRQUFRLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixLQUFLLHNCQUFzQixDQUFDLEtBQUs7Z0JBQzdCLE9BQU8sT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1lBQ2xDLEtBQUssc0JBQXNCLENBQUMsTUFBTTtnQkFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNuQyxLQUFLLHNCQUFzQixDQUFDLE9BQU87Z0JBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLElBQUksYUFBYSxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEY7Z0JBQ0ksT0FBTyxZQUFZLENBQUMsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLFVBQTBCLEVBQUUsVUFBMEI7UUFDMUQsT0FBTyxhQUFhLENBQUMsb0JBQW9CLENBQUMsVUFBVSxDQUFDLEVBQUUsb0JBQW9CLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsWUFBWSxDQUNSLFNBQWlCLEVBQ2pCLFdBQXlCLEVBQ3pCLFVBQWtFO1FBRWxFLE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0o7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzVCLFNBQWlCLEVBQ2pCLFdBQXlCLEVBQ3pCLFVBQWtFO0lBRWxFLElBQUksVUFBVSxFQUFFLENBQUM7UUFDYixNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUN4QyxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDdkMsT0FBTyxTQUFTLENBQUM7UUFDckIsQ0FBQztJQUNMLENBQUM7U0FBTSxDQUFDO1FBQ0osTUFBTSxHQUFHLEdBQUcsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwQyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNkLE9BQU87Z0JBQ0gsR0FBRztnQkFDSCxJQUFJO2FBQ1AsQ0FBQztRQUNOLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQVMsb0JBQW9CLENBQUMsU0FBeUI7SUFDbkQsT0FBTyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsSUFBSSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDMUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzTmlsIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gICAgQUlUYWJsZUZpZWxkLFxuICAgIEFJVGFibGVGaWVsZFR5cGUsXG4gICAgRmllbGRWYWx1ZSxcbiAgICBMaW5rRmllbGRWYWx1ZSxcbiAgICBMaW5rRmllbGRCYXNlLFxuICAgIEFJVGFibGVGaWx0ZXJDb25kaXRpb24sXG4gICAgQUlUYWJsZUZpbHRlck9wZXJhdGlvbixcbiAgICBpc0VtcHR5XG59IGZyb20gJ0BhaS10YWJsZS91dGlscyc7XG5pbXBvcnQgeyBleHRyYWN0VGV4dCwgZXh0cmFjdExpbmtVcmwgfSBmcm9tICcuLi8uLi9jbGlwYm9hcmQnO1xuaW1wb3J0IHsgY29tcGFyZVN0cmluZywgaXNNZWV0RmlsdGVyLCBzdHJpbmdJbmNsdWRlIH0gZnJvbSAnLi4vb3BlcmF0ZSc7XG5pbXBvcnQgeyBGaWVsZE9wZXJhYmxlIH0gZnJvbSAnLi4vZmllbGQtb3BlcmFibGUnO1xuXG5leHBvcnQgY2xhc3MgTGlua0ZpZWxkIGV4dGVuZHMgTGlua0ZpZWxkQmFzZSBpbXBsZW1lbnRzIEZpZWxkT3BlcmFibGU8c3RyaW5nLCBMaW5rRmllbGRWYWx1ZT4ge1xuICAgIGlzTWVldEZpbHRlcihjb25kaXRpb246IEFJVGFibGVGaWx0ZXJDb25kaXRpb248c3RyaW5nPiwgY2VsbFZhbHVlOiBMaW5rRmllbGRWYWx1ZSkge1xuICAgICAgICBpZiAoY2VsbFZhbHVlID09PSBudWxsKSB7XG4gICAgICAgICAgICBpZiAoY29uZGl0aW9uLm9wZXJhdGlvbiA9PT0gQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5lbXB0eSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY2VsbFRleHRWYWx1ZSA9IGNlbGxWYWx1ZT8udGV4dDtcbiAgICAgICAgc3dpdGNoIChjb25kaXRpb24ub3BlcmF0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZW1wdHk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRW1wdHkoY2VsbFRleHRWYWx1ZSk7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZXhpc3RzOlxuICAgICAgICAgICAgICAgIHJldHVybiAhaXNFbXB0eShjZWxsVGV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5jb250YWluOlxuICAgICAgICAgICAgICAgIHJldHVybiAhaXNOaWwoY2VsbFRleHRWYWx1ZSkgJiYgc3RyaW5nSW5jbHVkZShjZWxsVGV4dFZhbHVlLCBjb25kaXRpb24udmFsdWUpO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNNZWV0RmlsdGVyKGNvbmRpdGlvbiwgY2VsbFRleHRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wYXJlKGNlbGxWYWx1ZTE6IExpbmtGaWVsZFZhbHVlLCBjZWxsVmFsdWUyOiBMaW5rRmllbGRWYWx1ZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBjb21wYXJlU3RyaW5nKGNlbGxWYWx1ZVRvU29ydFZhbHVlKGNlbGxWYWx1ZTEpLCBjZWxsVmFsdWVUb1NvcnRWYWx1ZShjZWxsVmFsdWUyKSk7XG4gICAgfVxuXG4gICAgdG9GaWVsZFZhbHVlKFxuICAgICAgICBwbGFpblRleHQ6IHN0cmluZyxcbiAgICAgICAgdGFyZ2V0RmllbGQ6IEFJVGFibGVGaWVsZCxcbiAgICAgICAgb3JpZ2luRGF0YT86IHsgZmllbGQ6IEFJVGFibGVGaWVsZDsgY2VsbFZhbHVlOiBGaWVsZFZhbHVlIH0gfCBudWxsXG4gICAgKTogRmllbGRWYWx1ZSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdG9MaW5rRmllbGRWYWx1ZShwbGFpblRleHQsIHRhcmdldEZpZWxkLCBvcmlnaW5EYXRhKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b0xpbmtGaWVsZFZhbHVlKFxuICAgIHBsYWluVGV4dDogc3RyaW5nLFxuICAgIHRhcmdldEZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgb3JpZ2luRGF0YT86IHsgZmllbGQ6IEFJVGFibGVGaWVsZDsgY2VsbFZhbHVlOiBGaWVsZFZhbHVlIH0gfCBudWxsXG4pOiBGaWVsZFZhbHVlIHwgbnVsbCB7XG4gICAgaWYgKG9yaWdpbkRhdGEpIHtcbiAgICAgICAgY29uc3QgeyBmaWVsZCwgY2VsbFZhbHVlIH0gPSBvcmlnaW5EYXRhO1xuICAgICAgICBpZiAoZmllbGQudHlwZSA9PT0gQUlUYWJsZUZpZWxkVHlwZS5saW5rKSB7XG4gICAgICAgICAgICByZXR1cm4gY2VsbFZhbHVlO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgdXJsID0gZXh0cmFjdExpbmtVcmwocGxhaW5UZXh0KTtcbiAgICAgICAgY29uc3QgdGV4dCA9IGV4dHJhY3RUZXh0KHBsYWluVGV4dCk7XG4gICAgICAgIGlmICh1cmwgJiYgdGV4dCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB1cmwsXG4gICAgICAgICAgICAgICAgdGV4dFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZnVuY3Rpb24gY2VsbFZhbHVlVG9Tb3J0VmFsdWUoY2VsbFZhbHVlOiBMaW5rRmllbGRWYWx1ZSk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiAoY2VsbFZhbHVlICYmIGNlbGxWYWx1ZS50ZXh0ICYmIGNlbGxWYWx1ZS50ZXh0LnRyaW0oKSkgfHwgbnVsbDtcbn1cbiJdfQ==
|
@@ -1,81 +0,0 @@
|
|
1
|
-
import { compareString, hasIntersect, isMeetFilter } from '../operate';
|
2
|
-
import { MemberFieldBase, AITableFieldType, AITableFilterOperation, isEmpty } from '@ai-table/utils';
|
3
|
-
export class MemberField extends MemberFieldBase {
|
4
|
-
isMeetFilter(condition, cellValue) {
|
5
|
-
switch (condition.operation) {
|
6
|
-
case AITableFilterOperation.empty:
|
7
|
-
return isEmpty(cellValue);
|
8
|
-
case AITableFilterOperation.exists:
|
9
|
-
return !isEmpty(cellValue);
|
10
|
-
case AITableFilterOperation.in:
|
11
|
-
return Array.isArray(condition.value) && hasIntersect(cellValue, condition.value);
|
12
|
-
case AITableFilterOperation.nin:
|
13
|
-
return Array.isArray(condition.value) && !hasIntersect(cellValue, condition.value);
|
14
|
-
default:
|
15
|
-
return isMeetFilter(condition, cellValue);
|
16
|
-
}
|
17
|
-
}
|
18
|
-
compare(cellValue1, cellValue2, references, sortKey, options) {
|
19
|
-
const value1 = cellValueToSortValue(cellValue1, options.field, references, sortKey);
|
20
|
-
const value2 = cellValueToSortValue(cellValue2, options.field, references, sortKey);
|
21
|
-
return compareString(value1, value2);
|
22
|
-
}
|
23
|
-
toFieldValue(plainText, targetField, originData, references) {
|
24
|
-
return toMemberFieldValue(plainText, targetField, originData, references);
|
25
|
-
}
|
26
|
-
}
|
27
|
-
export function toMemberFieldValue(plainText, targetField, originData, references) {
|
28
|
-
if (targetField.type == AITableFieldType.createdBy || targetField.type == AITableFieldType.updatedBy) {
|
29
|
-
return null;
|
30
|
-
}
|
31
|
-
const isMultiple = targetField.settings?.is_multiple;
|
32
|
-
if (originData) {
|
33
|
-
const { field, cellValue } = originData;
|
34
|
-
switch (field.type) {
|
35
|
-
case AITableFieldType.member:
|
36
|
-
if (Array.isArray(cellValue) && cellValue.length) {
|
37
|
-
return isMultiple ? cellValue : [cellValue[0]];
|
38
|
-
}
|
39
|
-
break;
|
40
|
-
default:
|
41
|
-
break;
|
42
|
-
}
|
43
|
-
}
|
44
|
-
plainText = plainText.trim();
|
45
|
-
const hasMemberInfo = references && references.members && Object.keys(references.members).length;
|
46
|
-
if (plainText && hasMemberInfo) {
|
47
|
-
const memberNames = plainText
|
48
|
-
.split(',')
|
49
|
-
.map((id) => id.trim())
|
50
|
-
.filter((id) => !!id);
|
51
|
-
const memberInfos = Object.values(references.members);
|
52
|
-
let validMemberIds = [];
|
53
|
-
memberNames.forEach((memberName) => {
|
54
|
-
const memberInfo = memberInfos.find((member) => member.display_name === memberName);
|
55
|
-
if (memberInfo) {
|
56
|
-
validMemberIds.push(memberInfo.uid);
|
57
|
-
}
|
58
|
-
});
|
59
|
-
if (validMemberIds.length) {
|
60
|
-
return isMultiple ? validMemberIds : [validMemberIds[0]];
|
61
|
-
}
|
62
|
-
}
|
63
|
-
return null;
|
64
|
-
}
|
65
|
-
function cellValueToSortValue(cellValue, field, references, sortKey = 'display_name') {
|
66
|
-
let values = [];
|
67
|
-
if (cellValue?.length && references) {
|
68
|
-
for (let index = 0; index < cellValue.length; index++) {
|
69
|
-
const userInfo = references?.members[cellValue[index]];
|
70
|
-
if (!userInfo) {
|
71
|
-
continue;
|
72
|
-
}
|
73
|
-
const value = userInfo[sortKey];
|
74
|
-
if (value) {
|
75
|
-
values.push(value);
|
76
|
-
}
|
77
|
-
}
|
78
|
-
}
|
79
|
-
return values && values.length ? values.join(', ') : null;
|
80
|
-
}
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvdXRpbHMvZmllbGQvbW9kZWwvbWVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN2RSxPQUFPLEVBRUgsZUFBZSxFQUVmLGdCQUFnQixFQUtoQixzQkFBc0IsRUFFdEIsT0FBTyxFQUNWLE1BQU0saUJBQWlCLENBQUM7QUFJekIsTUFBTSxPQUFPLFdBQVksU0FBUSxlQUFlO0lBQzVDLFlBQVksQ0FBQyxTQUF5QyxFQUFFLFNBQTJCO1FBQy9FLFFBQVEsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzFCLEtBQUssc0JBQXNCLENBQUMsS0FBSztnQkFDN0IsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUIsS0FBSyxzQkFBc0IsQ0FBQyxNQUFNO2dCQUM5QixPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQy9CLEtBQUssc0JBQXNCLENBQUMsRUFBRTtnQkFDMUIsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0RixLQUFLLHNCQUFzQixDQUFDLEdBQUc7Z0JBQzNCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN2RjtnQkFDSSxPQUFPLFlBQVksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLENBQ0gsVUFBNEIsRUFDNUIsVUFBNEIsRUFDNUIs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Q0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxTQUFTLG9CQUFvQixDQUN6QixTQUEyQixFQUMzQixLQUFtQixFQUNuQixVQUE2QixFQUM3QixPQUFPLEdBQUcsY0FBYztJQUV4QixJQUFJLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFDMUIsSUFBSSxTQUFTLEVBQUUsTUFBTSxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2xDLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxTQUFTLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDcEQsTUFBTSxRQUFRLEdBQUcsVUFBVSxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUN2RCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ1osU0FBUztZQUNiLENBQUM7WUFFRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDaEMsSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDUixNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3ZCLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUNELE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztBQUM5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcGFyZVN0cmluZywgaGFzSW50ZXJzZWN0LCBpc01lZXRGaWx0ZXIgfSBmcm9tICcuLi9vcGVyYXRlJztcbmltcG9ydCB7XG4gICAgQUlUYWJsZUZpbHRlckNvbmRpdGlvbixcbiAgICBNZW1iZXJGaWVsZEJhc2UsXG4gICAgQUlUYWJsZUZpZWxkLFxuICAgIEFJVGFibGVGaWVsZFR5cGUsXG4gICAgQUlUYWJsZVJlZmVyZW5jZXMsXG4gICAgRmllbGRWYWx1ZSxcbiAgICBNZW1iZXJGaWVsZFZhbHVlLFxuICAgIE1lbWJlclNldHRpbmdzLFxuICAgIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24sXG4gICAgSWQsXG4gICAgaXNFbXB0eVxufSBmcm9tICdAYWktdGFibGUvdXRpbHMnO1xuaW1wb3J0IHsgRmllbGRPcGVyYWJsZSB9IGZyb20gJy4uL2ZpZWxkLW9wZXJhYmxlJztcbmltcG9ydCB7IEFJVGFibGUgfSBmcm9tICcuLi8uLi8uLi9jb3JlJztcblxuZXhwb3J0IGNsYXNzIE1lbWJlckZpZWxkIGV4dGVuZHMgTWVtYmVyRmllbGRCYXNlIGltcGxlbWVudHMgRmllbGRPcGVyYWJsZTxzdHJpbmcsIE1lbWJlckZpZWxkVmFsdWU+IHtcbiAgICBpc01lZXRGaWx0ZXIoY29uZGl0aW9uOiBBSVRhYmxlRmlsdGVyQ29uZGl0aW9uPHN0cmluZz4sIGNlbGxWYWx1ZTogTWVtYmVyRmllbGRWYWx1ZSkge1xuICAgICAgICBzd2l0Y2ggKGNvbmRpdGlvbi5vcGVyYXRpb24pIHtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5lbXB0eTpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNFbXB0eShjZWxsVmFsdWUpO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmV4aXN0czpcbiAgICAgICAgICAgICAgICByZXR1cm4gIWlzRW1wdHkoY2VsbFZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5pbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjb25kaXRpb24udmFsdWUpICYmIGhhc0ludGVyc2VjdChjZWxsVmFsdWUsIGNvbmRpdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24ubmluOlxuICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGNvbmRpdGlvbi52YWx1ZSkgJiYgIWhhc0ludGVyc2VjdChjZWxsVmFsdWUsIGNvbmRpdGlvbi52YWx1ZSk7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBpc01lZXRGaWx0ZXIoY29uZGl0aW9uLCBjZWxsVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29tcGFyZShcbiAgICAgICAgY2VsbFZhbHVlMTogTWVtYmVyRmllbGRWYWx1ZSxcbiAgICAgICAgY2VsbFZhbHVlMjogTWVtYmVyRmllbGRWYWx1ZSxcbiAgICAgICAgcmVmZXJlbmNlczogQUlUYWJsZVJlZmVyZW5jZXMsXG4gICAgICAgIHNvcnRLZXk6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgYWlUYWJsZTogQUlUYWJsZTtcbiAgICAgICAgICAgIGZpZWxkOiBBSVRhYmxlRmllbGQ7XG4gICAgICAgIH1cbiAgICApOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZTEgPSBjZWxsVmFsdWVUb1NvcnRWYWx1ZShjZWxsVmFsdWUxLCBvcHRpb25zLmZpZWxkLCByZWZlcmVuY2VzLCBzb3J0S2V5KTtcbiAgICAgICAgY29uc3QgdmFsdWUyID0gY2VsbFZhbHVlVG9Tb3J0VmFsdWUoY2VsbFZhbHVlMiwgb3B0aW9ucy5maWVsZCwgcmVmZXJlbmNlcywgc29ydEtleSk7XG4gICAgICAgIHJldHVybiBjb21wYXJlU3RyaW5nKHZhbHVlMSwgdmFsdWUyKTtcbiAgICB9XG5cbiAgICB0b0ZpZWxkVmFsdWUoXG4gICAgICAgIHBsYWluVGV4dDogc3RyaW5nLFxuICAgICAgICB0YXJnZXRGaWVsZDogQUlUYWJsZUZpZWxkLFxuICAgICAgICBvcmlnaW5EYXRhPzogeyBmaWVsZDogQUlUYWJsZUZpZWxkOyBjZWxsVmFsdWU6IEZpZWxkVmFsdWUgfSxcbiAgICAgICAgcmVmZXJlbmNlcz86IEFJVGFibGVSZWZlcmVuY2VzXG4gICAgKTogRmllbGRWYWx1ZSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdG9NZW1iZXJGaWVsZFZhbHVlKHBsYWluVGV4dCwgdGFyZ2V0RmllbGQsIG9yaWdpbkRhdGEsIHJlZmVyZW5jZXMpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvTWVtYmVyRmllbGRWYWx1ZShcbiAgICBwbGFpblRleHQ6IHN0cmluZyxcbiAgICB0YXJnZXRGaWVsZDogQUlUYWJsZUZpZWxkLFxuICAgIG9yaWdpbkRhdGE/OiB7IGZpZWxkOiBBSVRhYmxlRmllbGQ7IGNlbGxWYWx1ZTogRmllbGRWYWx1ZSB9LFxuICAgIHJlZmVyZW5jZXM/OiBBSVRhYmxlUmVmZXJlbmNlc1xuKTogRmllbGRWYWx1ZSB8IG51bGwge1xuICAgIGlmICh0YXJnZXRGaWVsZC50eXBlID09IEFJVGFibGVGaWVsZFR5cGUuY3JlYXRlZEJ5IHx8IHRhcmdldEZpZWxkLnR5cGUgPT0gQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQnkpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgaXNNdWx0aXBsZSA9ICh0YXJnZXRGaWVsZC5zZXR0aW5ncyBhcyBNZW1iZXJTZXR0aW5ncyk/LmlzX211bHRpcGxlO1xuICAgIGlmIChvcmlnaW5EYXRhKSB7XG4gICAgICAgIGNvbnN0IHsgZmllbGQsIGNlbGxWYWx1ZSB9ID0gb3JpZ2luRGF0YTtcbiAgICAgICAgc3dpdGNoIChmaWVsZC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWVsZFR5cGUubWVtYmVyOlxuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNlbGxWYWx1ZSkgJiYgY2VsbFZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXNNdWx0aXBsZSA/IGNlbGxWYWx1ZSA6IFtjZWxsVmFsdWVbMF1dO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwbGFpblRleHQgPSBwbGFpblRleHQudHJpbSgpO1xuICAgIGNvbnN0IGhhc01lbWJlckluZm8gPSByZWZlcmVuY2VzICYmIHJlZmVyZW5jZXMubWVtYmVycyAmJiBPYmplY3Qua2V5cyhyZWZlcmVuY2VzLm1lbWJlcnMpLmxlbmd0aDtcbiAgICBpZiAocGxhaW5UZXh0ICYmIGhhc01lbWJlckluZm8pIHtcbiAgICAgICAgY29uc3QgbWVtYmVyTmFtZXMgPSBwbGFpblRleHRcbiAgICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgICAubWFwKChpZCkgPT4gaWQudHJpbSgpKVxuICAgICAgICAgICAgLmZpbHRlcigoaWQpID0+ICEhaWQpO1xuICAgICAgICBjb25zdCBtZW1iZXJJbmZvcyA9IE9iamVjdC52YWx1ZXMocmVmZXJlbmNlcy5tZW1iZXJzKTtcbiAgICAgICAgbGV0IHZhbGlkTWVtYmVySWRzOiBNZW1iZXJGaWVsZFZhbHVlID0gW107XG4gICAgICAgIG1lbWJlck5hbWVzLmZvckVhY2goKG1lbWJlck5hbWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1lbWJlckluZm8gPSBtZW1iZXJJbmZvcy5maW5kKChtZW1iZXIpID0+IG1lbWJlci5kaXNwbGF5X25hbWUgPT09IG1lbWJlck5hbWUpO1xuICAgICAgICAgICAgaWYgKG1lbWJlckluZm8pIHtcbiAgICAgICAgICAgICAgICB2YWxpZE1lbWJlcklkcy5wdXNoKG1lbWJlckluZm8udWlkIGFzIElkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh2YWxpZE1lbWJlcklkcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBpc011bHRpcGxlID8gdmFsaWRNZW1iZXJJZHMgOiBbdmFsaWRNZW1iZXJJZHNbMF1dO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbmZ1bmN0aW9uIGNlbGxWYWx1ZVRvU29ydFZhbHVlKFxuICAgIGNlbGxWYWx1ZTogTWVtYmVyRmllbGRWYWx1ZSxcbiAgICBmaWVsZDogQUlUYWJsZUZpZWxkLFxuICAgIHJlZmVyZW5jZXM6IEFJVGFibGVSZWZlcmVuY2VzLFxuICAgIHNvcnRLZXkgPSAnZGlzcGxheV9uYW1lJ1xuKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgbGV0IHZhbHVlczogc3RyaW5nW10gPSBbXTtcbiAgICBpZiAoY2VsbFZhbHVlPy5sZW5ndGggJiYgcmVmZXJlbmNlcykge1xuICAgICAgICBmb3IgKGxldCBpbmRleCA9IDA7IGluZGV4IDwgY2VsbFZhbHVlLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgICAgICAgY29uc3QgdXNlckluZm8gPSByZWZlcmVuY2VzPy5tZW1iZXJzW2NlbGxWYWx1ZVtpbmRleF1dO1xuICAgICAgICAgICAgaWYgKCF1c2VySW5mbykge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IHVzZXJJbmZvW3NvcnRLZXldO1xuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdmFsdWVzLnB1c2godmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZXMgJiYgdmFsdWVzLmxlbmd0aCA/IHZhbHVlcy5qb2luKCcsICcpIDogbnVsbDtcbn1cbiJdfQ==
|
@@ -1,59 +0,0 @@
|
|
1
|
-
import { helpers } from 'ngx-tethys/util';
|
2
|
-
import { AITableFieldType, AITableFilterOperation, NumberFieldBase, isEmpty } from '@ai-table/utils';
|
3
|
-
import { compareNumber, isMeetFilter } from '../operate';
|
4
|
-
export class NumberField extends NumberFieldBase {
|
5
|
-
isMeetFilter(condition, cellValue) {
|
6
|
-
switch (condition.operation) {
|
7
|
-
case AITableFilterOperation.empty:
|
8
|
-
return isEmpty(cellValue);
|
9
|
-
case AITableFilterOperation.exists:
|
10
|
-
return !isEmpty(cellValue);
|
11
|
-
case AITableFilterOperation.eq:
|
12
|
-
return !Number.isNaN(condition.value) && cellValue != null && condition.value === cellValue;
|
13
|
-
case AITableFilterOperation.gte:
|
14
|
-
return cellValue != null && cellValue >= condition.value;
|
15
|
-
case AITableFilterOperation.lte:
|
16
|
-
return cellValue != null && cellValue <= condition.value;
|
17
|
-
case AITableFilterOperation.gt:
|
18
|
-
return cellValue != null && cellValue > condition.value;
|
19
|
-
case AITableFilterOperation.lt:
|
20
|
-
return cellValue != null && cellValue < condition.value;
|
21
|
-
case AITableFilterOperation.ne:
|
22
|
-
return cellValue == null || Number.isNaN(condition.value) || cellValue !== condition.value;
|
23
|
-
default:
|
24
|
-
return isMeetFilter(condition, cellValue);
|
25
|
-
}
|
26
|
-
}
|
27
|
-
compare(cellValue1, cellValue2) {
|
28
|
-
return compareNumber(cellValue1, cellValue2);
|
29
|
-
}
|
30
|
-
toFieldValue(plainText, targetField, originData) {
|
31
|
-
return toNumberFieldValue(plainText, targetField, originData);
|
32
|
-
}
|
33
|
-
}
|
34
|
-
export function toNumberFieldValue(plainText, targetField, originData) {
|
35
|
-
let text = plainText.trim();
|
36
|
-
if (originData) {
|
37
|
-
const { field, cellValue } = originData;
|
38
|
-
const fieldType = field.type;
|
39
|
-
switch (fieldType) {
|
40
|
-
case AITableFieldType.number:
|
41
|
-
case AITableFieldType.rate:
|
42
|
-
case AITableFieldType.progress:
|
43
|
-
return cellValue;
|
44
|
-
case AITableFieldType.select:
|
45
|
-
if (cellValue && Array.isArray(cellValue) && cellValue.length) {
|
46
|
-
const optionsMap = helpers.keyBy(field.settings.options || [], '_id');
|
47
|
-
text = optionsMap[cellValue[0]]?.text;
|
48
|
-
}
|
49
|
-
break;
|
50
|
-
default:
|
51
|
-
break;
|
52
|
-
}
|
53
|
-
}
|
54
|
-
if (text && !isEmpty(text) && !Number.isNaN(Number(text))) {
|
55
|
-
return Number(text);
|
56
|
-
}
|
57
|
-
return null;
|
58
|
-
}
|
59
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvdXRpbHMvZmllbGQvbW9kZWwvbnVtYmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBRUgsZ0JBQWdCLEVBRWhCLHNCQUFzQixFQUl0QixlQUFlLEVBQ2YsT0FBTyxFQUNWLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFHekQsTUFBTSxPQUFPLFdBQVksU0FBUSxlQUFlO0lBQzVDLFlBQVksQ0FBQyxTQUF5QyxFQUFFLFNBQTJCO1FBQy9FLFFBQVEsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzFCLEtBQUssc0JBQXNCLENBQUMsS0FBSztnQkFDN0IsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUIsS0FBSyxzQkFBc0IsQ0FBQyxNQUFNO2dCQUM5QixPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQy9CLEtBQUssc0JBQXNCLENBQUMsRUFBRTtnQkFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsSUFBSSxJQUFJLElBQUksU0FBUyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7WUFDaEcsS0FBSyxzQkFBc0IsQ0FBQyxHQUFHO2dCQUMzQixPQUFPLFNBQVMsSUFBSSxJQUFJLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDN0QsS0FBSyxzQkFBc0IsQ0FBQyxHQUFHO2dCQUMzQixPQUFPLFNBQVMsSUFBSSxJQUFJLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDN0QsS0FBSyxzQkFBc0IsQ0FBQyxFQUFFO2dCQUMxQixPQUFPLFNBQVMsSUFBSSxJQUFJLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDNUQsS0FBSyxzQkFBc0IsQ0FBQyxFQUFFO2dCQUMxQixPQUFPLFNBQVMsSUFBSSxJQUFJLElBQUksU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDNUQsS0FBSyxzQkFBc0IsQ0FBQyxFQUFFO2dCQUMxQixPQUFPLFNBQVMsSUFBSSxJQUFJLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksU0FBUyxLQUFLLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDL0Y7Z0JBQ0ksT0FBTyxZQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUFDLFVBQTRCLEVBQUUsVUFBNEI7UUFDOUQsT0FBTyxhQUFhLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCxZQUFZLENBQ1IsU0FBaUIsRUFDakIsV0FBeUIsRUFDekIsVUFBMkQ7UUFFM0QsT0FBTyxrQkFBa0IsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FDOUIsU0FBaUIsRUFDakIsV0FBeUIsRUFDekIsVUFBMkQ7SUFFM0QsSUFBSSxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO0lBRTVCLElBQUksVUFBVSxFQUFFLENBQUM7UUFDYixNQUFNLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLFVBQVUsQ0FBQztRQUN4QyxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBRTdCLFFBQVEsU0FBUyxFQUFFLENBQUM7WUFDaEIsS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDN0IsS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDM0IsS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRO2dCQUMxQixPQUFPLFNBQVMsQ0FBQztZQUNyQixLQUFLLGdCQUFnQixDQUFDLE1BQU07Z0JBQ3hCLElBQUksU0FBUyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO29CQUM1RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFFLEtBQUssQ0FBQyxRQUEyQixDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQzFGLElBQUksR0FBRyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDO2dCQUMxQyxDQUFDO2dCQUNELE1BQU07WUFDVjtnQkFDSSxNQUFNO1FBQ2QsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN4RCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsT0FBTyxJQUFJLENBQUM7QUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGhlbHBlcnMgfSBmcm9tICduZ3gtdGV0aHlzL3V0aWwnO1xuaW1wb3J0IHtcbiAgICBBSVRhYmxlRmllbGQsXG4gICAgQUlUYWJsZUZpZWxkVHlwZSxcbiAgICBBSVRhYmxlRmlsdGVyQ29uZGl0aW9uLFxuICAgIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24sXG4gICAgRmllbGRWYWx1ZSxcbiAgICBOdW1iZXJGaWVsZFZhbHVlLFxuICAgIFNlbGVjdFNldHRpbmdzLFxuICAgIE51bWJlckZpZWxkQmFzZSxcbiAgICBpc0VtcHR5XG59IGZyb20gJ0BhaS10YWJsZS91dGlscyc7XG5pbXBvcnQgeyBjb21wYXJlTnVtYmVyLCBpc01lZXRGaWx0ZXIgfSBmcm9tICcuLi9vcGVyYXRlJztcbmltcG9ydCB7IEZpZWxkT3BlcmFibGUgfSBmcm9tICcuLi9maWVsZC1vcGVyYWJsZSc7XG5cbmV4cG9ydCBjbGFzcyBOdW1iZXJGaWVsZCBleHRlbmRzIE51bWJlckZpZWxkQmFzZSBpbXBsZW1lbnRzIEZpZWxkT3BlcmFibGU8bnVtYmVyLCBOdW1iZXJGaWVsZFZhbHVlPiB7XG4gICAgaXNNZWV0RmlsdGVyKGNvbmRpdGlvbjogQUlUYWJsZUZpbHRlckNvbmRpdGlvbjxudW1iZXI+LCBjZWxsVmFsdWU6IE51bWJlckZpZWxkVmFsdWUpIHtcbiAgICAgICAgc3dpdGNoIChjb25kaXRpb24ub3BlcmF0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZW1wdHk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRW1wdHkoY2VsbFZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5leGlzdHM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc0VtcHR5KGNlbGxWYWx1ZSk7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZXE6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFOdW1iZXIuaXNOYU4oY29uZGl0aW9uLnZhbHVlKSAmJiBjZWxsVmFsdWUgIT0gbnVsbCAmJiBjb25kaXRpb24udmFsdWUgPT09IGNlbGxWYWx1ZTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5ndGU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNlbGxWYWx1ZSAhPSBudWxsICYmIGNlbGxWYWx1ZSA+PSBjb25kaXRpb24udmFsdWU7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24ubHRlOlxuICAgICAgICAgICAgICAgIHJldHVybiBjZWxsVmFsdWUgIT0gbnVsbCAmJiBjZWxsVmFsdWUgPD0gY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmd0OlxuICAgICAgICAgICAgICAgIHJldHVybiBjZWxsVmFsdWUgIT0gbnVsbCAmJiBjZWxsVmFsdWUgPiBjb25kaXRpb24udmFsdWU7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24ubHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNlbGxWYWx1ZSAhPSBudWxsICYmIGNlbGxWYWx1ZSA8IGNvbmRpdGlvbi52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5uZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gY2VsbFZhbHVlID09IG51bGwgfHwgTnVtYmVyLmlzTmFOKGNvbmRpdGlvbi52YWx1ZSkgfHwgY2VsbFZhbHVlICE9PSBjb25kaXRpb24udmFsdWU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBpc01lZXRGaWx0ZXIoY29uZGl0aW9uLCBjZWxsVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29tcGFyZShjZWxsVmFsdWUxOiBOdW1iZXJGaWVsZFZhbHVlLCBjZWxsVmFsdWUyOiBOdW1iZXJGaWVsZFZhbHVlKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGNvbXBhcmVOdW1iZXIoY2VsbFZhbHVlMSwgY2VsbFZhbHVlMik7XG4gICAgfVxuXG4gICAgdG9GaWVsZFZhbHVlKFxuICAgICAgICBwbGFpblRleHQ6IHN0cmluZyxcbiAgICAgICAgdGFyZ2V0RmllbGQ6IEFJVGFibGVGaWVsZCxcbiAgICAgICAgb3JpZ2luRGF0YT86IHsgZmllbGQ6IEFJVGFibGVGaWVsZDsgY2VsbFZhbHVlOiBGaWVsZFZhbHVlIH1cbiAgICApOiBGaWVsZFZhbHVlIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0b051bWJlckZpZWxkVmFsdWUocGxhaW5UZXh0LCB0YXJnZXRGaWVsZCwgb3JpZ2luRGF0YSk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gdG9OdW1iZXJGaWVsZFZhbHVlKFxuICAgIHBsYWluVGV4dDogc3RyaW5nLFxuICAgIHRhcmdldEZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgb3JpZ2luRGF0YT86IHsgZmllbGQ6IEFJVGFibGVGaWVsZDsgY2VsbFZhbHVlOiBGaWVsZFZhbHVlIH1cbik6IE51bWJlckZpZWxkVmFsdWUgfCBudWxsIHtcbiAgICBsZXQgdGV4dCA9IHBsYWluVGV4dC50cmltKCk7XG5cbiAgICBpZiAob3JpZ2luRGF0YSkge1xuICAgICAgICBjb25zdCB7IGZpZWxkLCBjZWxsVmFsdWUgfSA9IG9yaWdpbkRhdGE7XG4gICAgICAgIGNvbnN0IGZpZWxkVHlwZSA9IGZpZWxkLnR5cGU7XG5cbiAgICAgICAgc3dpdGNoIChmaWVsZFR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpZWxkVHlwZS5udW1iZXI6XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWVsZFR5cGUucmF0ZTpcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpZWxkVHlwZS5wcm9ncmVzczpcbiAgICAgICAgICAgICAgICByZXR1cm4gY2VsbFZhbHVlO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmllbGRUeXBlLnNlbGVjdDpcbiAgICAgICAgICAgICAgICBpZiAoY2VsbFZhbHVlICYmIEFycmF5LmlzQXJyYXkoY2VsbFZhbHVlKSAmJiBjZWxsVmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbnNNYXAgPSBoZWxwZXJzLmtleUJ5KChmaWVsZC5zZXR0aW5ncyBhcyBTZWxlY3RTZXR0aW5ncykub3B0aW9ucyB8fCBbXSwgJ19pZCcpO1xuICAgICAgICAgICAgICAgICAgICB0ZXh0ID0gb3B0aW9uc01hcFtjZWxsVmFsdWVbMF1dPy50ZXh0O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGV4dCAmJiAhaXNFbXB0eSh0ZXh0KSAmJiAhTnVtYmVyLmlzTmFOKE51bWJlcih0ZXh0KSkpIHtcbiAgICAgICAgcmV0dXJuIE51bWJlcih0ZXh0KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG4iXX0=
|
@@ -1,69 +0,0 @@
|
|
1
|
-
import { helpers, isEmpty } from 'ngx-tethys/util';
|
2
|
-
import { AITableFieldType, AITableFilterOperation, ProgressFieldBase } from '@ai-table/utils';
|
3
|
-
import { compareNumber, isMeetFilter } from '../operate';
|
4
|
-
export class ProgressField extends ProgressFieldBase {
|
5
|
-
isMeetFilter(condition, cellValue) {
|
6
|
-
switch (condition.operation) {
|
7
|
-
case AITableFilterOperation.empty:
|
8
|
-
return isEmpty(cellValue);
|
9
|
-
case AITableFilterOperation.exists:
|
10
|
-
return !isEmpty(cellValue);
|
11
|
-
case AITableFilterOperation.eq:
|
12
|
-
return !Number.isNaN(condition.value) && cellValue != null && condition.value === cellValue;
|
13
|
-
case AITableFilterOperation.gte:
|
14
|
-
return cellValue != null && cellValue >= condition.value;
|
15
|
-
case AITableFilterOperation.lte:
|
16
|
-
return cellValue != null && cellValue <= condition.value;
|
17
|
-
case AITableFilterOperation.gt:
|
18
|
-
return cellValue != null && cellValue > condition.value;
|
19
|
-
case AITableFilterOperation.lt:
|
20
|
-
return cellValue != null && cellValue < condition.value;
|
21
|
-
case AITableFilterOperation.ne:
|
22
|
-
return cellValue == null || Number.isNaN(condition.value) || cellValue !== condition.value;
|
23
|
-
default:
|
24
|
-
return isMeetFilter(condition, cellValue);
|
25
|
-
}
|
26
|
-
}
|
27
|
-
compare(cellValue1, cellValue2) {
|
28
|
-
return compareNumber(cellValue1, cellValue2);
|
29
|
-
}
|
30
|
-
toFieldValue(plainText, targetField, originData) {
|
31
|
-
return toProgressFieldValue(plainText, targetField, originData);
|
32
|
-
}
|
33
|
-
}
|
34
|
-
export function toProgressFieldValue(plainText, targetField, originData) {
|
35
|
-
let value = plainText.trim();
|
36
|
-
if (originData) {
|
37
|
-
const { field, cellValue } = originData;
|
38
|
-
switch (field.type) {
|
39
|
-
case AITableFieldType.progress:
|
40
|
-
case AITableFieldType.rate:
|
41
|
-
case AITableFieldType.number:
|
42
|
-
value = cellValue;
|
43
|
-
break;
|
44
|
-
case AITableFieldType.select:
|
45
|
-
if (cellValue && Array.isArray(cellValue) && cellValue.length) {
|
46
|
-
const optionsMap = helpers.keyBy(field.settings.options || [], '_id');
|
47
|
-
value = optionsMap[cellValue[0]]?.text;
|
48
|
-
}
|
49
|
-
break;
|
50
|
-
default:
|
51
|
-
break;
|
52
|
-
}
|
53
|
-
}
|
54
|
-
const progressRegex = /^(?:100|[1-9]?\d(?:\.\d+)?)\s*%$/;
|
55
|
-
if (progressRegex.test(value)) {
|
56
|
-
value = parseFloat(value);
|
57
|
-
}
|
58
|
-
if (!isEmpty(value)) {
|
59
|
-
let progressValue = Number(value);
|
60
|
-
if (!Number.isNaN(progressValue)) {
|
61
|
-
progressValue = Math.round(progressValue);
|
62
|
-
if (progressValue >= 0 && progressValue <= 100) {
|
63
|
-
return progressValue;
|
64
|
-
}
|
65
|
-
}
|
66
|
-
}
|
67
|
-
return null;
|
68
|
-
}
|
69
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy91dGlscy9maWVsZC9tb2RlbC9wcm9ncmVzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFSCxnQkFBZ0IsRUFFaEIsc0JBQXNCLEVBSXRCLGlCQUFpQixFQUNwQixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBR3pELE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQWlCO0lBQ2hELFlBQVksQ0FBQyxTQUF5QyxFQUFFLFNBQTZCO1FBQ2pGLFFBQVEsU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQzFCLEtBQUssc0JBQXNCLENBQUMsS0FBSztnQkFDN0IsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDOUIsS0FBSyxzQkFBc0IsQ0FBQyxNQUFNO2dCQUM5QixPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQy9CLEtBQUssc0JBQXNCLENBQUMsRUFBRTtnQkFDMUIsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLFNBQVMsSUFBSSxJQUFJLElBQUksU0FBUyxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUM7WUFDaEcsS0FBSyxzQkFBc0IsQ0FBQyxHQUFHO2dCQUMzQixPQUFPLFNBQVMsSUFBSSxJQUFJLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDN0QsS0FBSyxzQkFBc0IsQ0FBQyxHQUFHO2dCQUMzQixPQUFPLFNBQVMsSUFBSSxJQUFJLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDN0QsS0FBSyxzQkFB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L3V0aWwnO1xuaW1wb3J0IHtcbiAgICBBSVRhYmxlRmllbGQsXG4gICAgQUlUYWJsZUZpZWxkVHlwZSxcbiAgICBBSVRhYmxlRmlsdGVyQ29uZGl0aW9uLFxuICAgIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24sXG4gICAgRmllbGRWYWx1ZSxcbiAgICBQcm9ncmVzc0ZpZWxkVmFsdWUsXG4gICAgU2VsZWN0U2V0dGluZ3MsXG4gICAgUHJvZ3Jlc3NGaWVsZEJhc2Vcbn0gZnJvbSAnQGFpLXRhYmxlL3V0aWxzJztcbmltcG9ydCB7IGNvbXBhcmVOdW1iZXIsIGlzTWVldEZpbHRlciB9IGZyb20gJy4uL29wZXJhdGUnO1xuaW1wb3J0IHsgRmllbGRPcGVyYWJsZSB9IGZyb20gJy4uL2ZpZWxkLW9wZXJhYmxlJztcblxuZXhwb3J0IGNsYXNzIFByb2dyZXNzRmllbGQgZXh0ZW5kcyBQcm9ncmVzc0ZpZWxkQmFzZSBpbXBsZW1lbnRzIEZpZWxkT3BlcmFibGU8bnVtYmVyLCBQcm9ncmVzc0ZpZWxkVmFsdWU+IHtcbiAgICBpc01lZXRGaWx0ZXIoY29uZGl0aW9uOiBBSVRhYmxlRmlsdGVyQ29uZGl0aW9uPG51bWJlcj4sIGNlbGxWYWx1ZTogUHJvZ3Jlc3NGaWVsZFZhbHVlKSB7XG4gICAgICAgIHN3aXRjaCAoY29uZGl0aW9uLm9wZXJhdGlvbikge1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmVtcHR5OlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0VtcHR5KGNlbGxWYWx1ZSk7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZXhpc3RzOlxuICAgICAgICAgICAgICAgIHJldHVybiAhaXNFbXB0eShjZWxsVmFsdWUpO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmVxOlxuICAgICAgICAgICAgICAgIHJldHVybiAhTnVtYmVyLmlzTmFOKGNvbmRpdGlvbi52YWx1ZSkgJiYgY2VsbFZhbHVlICE9IG51bGwgJiYgY29uZGl0aW9uLnZhbHVlID09PSBjZWxsVmFsdWU7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZ3RlOlxuICAgICAgICAgICAgICAgIHJldHVybiBjZWxsVmFsdWUgIT0gbnVsbCAmJiBjZWxsVmFsdWUgPj0gY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmx0ZTpcbiAgICAgICAgICAgICAgICByZXR1cm4gY2VsbFZhbHVlICE9IG51bGwgJiYgY2VsbFZhbHVlIDw9IGNvbmRpdGlvbi52YWx1ZTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5ndDpcbiAgICAgICAgICAgICAgICByZXR1cm4gY2VsbFZhbHVlICE9IG51bGwgJiYgY2VsbFZhbHVlID4gY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBjZWxsVmFsdWUgIT0gbnVsbCAmJiBjZWxsVmFsdWUgPCBjb25kaXRpb24udmFsdWU7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24ubmU6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNlbGxWYWx1ZSA9PSBudWxsIHx8IE51bWJlci5pc05hTihjb25kaXRpb24udmFsdWUpIHx8IGNlbGxWYWx1ZSAhPT0gY29uZGl0aW9uLnZhbHVlO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNNZWV0RmlsdGVyKGNvbmRpdGlvbiwgY2VsbFZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBhcmUoY2VsbFZhbHVlMTogUHJvZ3Jlc3NGaWVsZFZhbHVlLCBjZWxsVmFsdWUyOiBQcm9ncmVzc0ZpZWxkVmFsdWUpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gY29tcGFyZU51bWJlcihjZWxsVmFsdWUxLCBjZWxsVmFsdWUyKTtcbiAgICB9XG5cbiAgICB0b0ZpZWxkVmFsdWUoXG4gICAgICAgIHBsYWluVGV4dDogc3RyaW5nLFxuICAgICAgICB0YXJnZXRGaWVsZDogQUlUYWJsZUZpZWxkLFxuICAgICAgICBvcmlnaW5EYXRhPzogeyBmaWVsZDogQUlUYWJsZUZpZWxkOyBjZWxsVmFsdWU6IEZpZWxkVmFsdWUgfVxuICAgICk6IEZpZWxkVmFsdWUgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRvUHJvZ3Jlc3NGaWVsZFZhbHVlKHBsYWluVGV4dCwgdGFyZ2V0RmllbGQsIG9yaWdpbkRhdGEpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvUHJvZ3Jlc3NGaWVsZFZhbHVlKFxuICAgIHBsYWluVGV4dDogc3RyaW5nLFxuICAgIHRhcmdldEZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgb3JpZ2luRGF0YT86IHsgZmllbGQ6IEFJVGFibGVGaWVsZDsgY2VsbFZhbHVlOiBGaWVsZFZhbHVlIH1cbik6IEZpZWxkVmFsdWUgfCBudWxsIHtcbiAgICBsZXQgdmFsdWU6IGFueSA9IHBsYWluVGV4dC50cmltKCk7XG4gICAgaWYgKG9yaWdpbkRhdGEpIHtcbiAgICAgICAgY29uc3QgeyBmaWVsZCwgY2VsbFZhbHVlIH0gPSBvcmlnaW5EYXRhO1xuICAgICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpZWxkVHlwZS5wcm9ncmVzczpcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpZWxkVHlwZS5yYXRlOlxuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmllbGRUeXBlLm51bWJlcjpcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGNlbGxWYWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpZWxkVHlwZS5zZWxlY3Q6XG4gICAgICAgICAgICAgICAgaWYgKGNlbGxWYWx1ZSAmJiBBcnJheS5pc0FycmF5KGNlbGxWYWx1ZSkgJiYgY2VsbFZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zTWFwID0gaGVscGVycy5rZXlCeSgoZmllbGQuc2V0dGluZ3MgYXMgU2VsZWN0U2V0dGluZ3MpLm9wdGlvbnMgfHwgW10sICdfaWQnKTtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBvcHRpb25zTWFwW2NlbGxWYWx1ZVswXV0/LnRleHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHByb2dyZXNzUmVnZXggPSAvXig/OjEwMHxbMS05XT9cXGQoPzpcXC5cXGQrKT8pXFxzKiUkLztcbiAgICBpZiAocHJvZ3Jlc3NSZWdleC50ZXN0KHZhbHVlKSkge1xuICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgIH1cblxuICAgIGlmICghaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgbGV0IHByb2dyZXNzVmFsdWUgPSBOdW1iZXIodmFsdWUpO1xuICAgICAgICBpZiAoIU51bWJlci5pc05hTihwcm9ncmVzc1ZhbHVlKSkge1xuICAgICAgICAgICAgcHJvZ3Jlc3NWYWx1ZSA9IE1hdGgucm91bmQocHJvZ3Jlc3NWYWx1ZSk7XG4gICAgICAgICAgICBpZiAocHJvZ3Jlc3NWYWx1ZSA+PSAwICYmIHByb2dyZXNzVmFsdWUgPD0gMTAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb2dyZXNzVmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbn1cbiJdfQ==
|
@@ -1,58 +0,0 @@
|
|
1
|
-
import { helpers } from 'ngx-tethys/util';
|
2
|
-
import { AITableFieldType, AITableFilterOperation, RateFieldBase, isEmpty } from '@ai-table/utils';
|
3
|
-
import { compareNumber, isMeetFilter } from '../operate';
|
4
|
-
import { isNumber } from 'lodash';
|
5
|
-
export class RateField extends RateFieldBase {
|
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
|
-
const isContain = condition.value.some((item) => String(item) === String(cellValue));
|
14
|
-
return !isEmpty(cellValue) && isContain;
|
15
|
-
case AITableFilterOperation.nin:
|
16
|
-
const noContain = condition.value.every((item) => String(item) !== String(cellValue));
|
17
|
-
return isEmpty(cellValue) || noContain;
|
18
|
-
default:
|
19
|
-
return isMeetFilter(condition, cellValue);
|
20
|
-
}
|
21
|
-
}
|
22
|
-
compare(cellValue1, cellValue2) {
|
23
|
-
return compareNumber(cellValue1, cellValue2);
|
24
|
-
}
|
25
|
-
toFieldValue(plainText, targetField, originData) {
|
26
|
-
return toRateFieldValue(plainText, targetField, originData);
|
27
|
-
}
|
28
|
-
}
|
29
|
-
export function toRateFieldValue(plainText, targetField, originData) {
|
30
|
-
let value = plainText.trim();
|
31
|
-
if (originData) {
|
32
|
-
const { field, cellValue } = originData;
|
33
|
-
switch (field.type) {
|
34
|
-
case AITableFieldType.rate:
|
35
|
-
case AITableFieldType.number:
|
36
|
-
case AITableFieldType.progress:
|
37
|
-
value = cellValue;
|
38
|
-
break;
|
39
|
-
case AITableFieldType.select:
|
40
|
-
if (cellValue && Array.isArray(cellValue) && cellValue.length) {
|
41
|
-
const optionsMap = helpers.keyBy(field.settings.options || [], '_id');
|
42
|
-
value = optionsMap[cellValue[0]]?.text;
|
43
|
-
}
|
44
|
-
break;
|
45
|
-
default:
|
46
|
-
break;
|
47
|
-
}
|
48
|
-
}
|
49
|
-
if (!isEmpty(value) || isNumber(value)) {
|
50
|
-
const rateValue = Number(value);
|
51
|
-
if (!Number.isNaN(rateValue) && rateValue > 0 && rateValue < 5) {
|
52
|
-
return Math.round(rateValue);
|
53
|
-
}
|
54
|
-
return 5;
|
55
|
-
}
|
56
|
-
return null;
|
57
|
-
}
|
58
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL3V0aWxzL2ZpZWxkL21vZGVsL3JhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFFSCxnQkFBZ0IsRUFFaEIsc0JBQXNCLEVBSXRCLGFBQWEsRUFDYixPQUFPLEVBQ1YsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV6RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRWxDLE1BQU0sT0FBTyxTQUFVLFNBQVEsYUFBYTtJQUN4QyxZQUFZLENBQUMsU0FBMkMsRUFBRSxTQUF5QjtRQUMvRSxRQUFRLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixLQUFLLHNCQUFzQixDQUFDLEtBQUs7Z0JBQzdCLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlCLEtBQUssc0JBQXNCLENBQUMsTUFBTTtnQkFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixLQUFLLHNCQUFzQixDQUFDLEVBQUU7Z0JBQzFCLE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3JGLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDO1lBQzVDLEtBQUssc0JBQXNCLENBQUMsR0FBRztnQkFDM0IsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDdEYsT0FBTyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDO1lBQzNDO2dCQUNJLE9BQU8sWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNsRCxDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxVQUEwQixFQUFFLFVBQTBCO1FBQzFELE9BQU8sYUFBYSxDQUFDLFVBQVUsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsWUFBWSxDQUNSLFNBQWlCLEVBQ2pCLFdBQXlCLEVBQ3pCLFVBQTJEO1FBRTNELE9BQU8sZ0JBQWdCLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsQ0FBQztJQUNoRSxDQUFDO0NBQ0o7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQzVCLFNBQWlCLEVBQ2pCLFdBQXlCLEVBQ3pCLFVBQTJEO0lBRTNELElBQUksS0FBSyxHQUFRLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2IsTUFBTSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxVQUFVLENBQUM7UUFDeEMsUUFBUSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsS0FBSyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUM7WUFDM0IsS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUM7WUFDN0IsS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRO2dCQUMxQixLQUFLLEdBQUcsU0FBUyxDQUFDO2dCQUNsQixNQUFNO1lBQ1YsS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNO2dCQUN4QixJQUFJLFNBQVMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztvQkFDNUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBRSxLQUFLLENBQUMsUUFBMkIsQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO29CQUMxRixLQUFLLEdBQUcsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQztnQkFDM0MsQ0FBQztnQkFDRCxNQUFNO1lBQ1Y7Z0JBQ0ksTUFBTTtRQUNkLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxHQUFHLENBQUMsSUFBSSxTQUFTLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDN0QsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ2pDLENBQUM7UUFDRCxPQUFPLENBQUMsQ0FBQztJQUNiLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaGVscGVycyB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQge1xuICAgIEFJVGFibGVGaWVsZCxcbiAgICBBSVRhYmxlRmllbGRUeXBlLFxuICAgIEFJVGFibGVGaWx0ZXJDb25kaXRpb24sXG4gICAgQUlUYWJsZUZpbHRlck9wZXJhdGlvbixcbiAgICBGaWVsZFZhbHVlLFxuICAgIFJhdGVGaWVsZFZhbHVlLFxuICAgIFNlbGVjdFNldHRpbmdzLFxuICAgIFJhdGVGaWVsZEJhc2UsXG4gICAgaXNFbXB0eVxufSBmcm9tICdAYWktdGFibGUvdXRpbHMnO1xuaW1wb3J0IHsgY29tcGFyZU51bWJlciwgaXNNZWV0RmlsdGVyIH0gZnJvbSAnLi4vb3BlcmF0ZSc7XG5pbXBvcnQgeyBGaWVsZE9wZXJhYmxlIH0gZnJvbSAnLi4vZmllbGQtb3BlcmFibGUnO1xuaW1wb3J0IHsgaXNOdW1iZXIgfSBmcm9tICdsb2Rhc2gnO1xuXG5leHBvcnQgY2xhc3MgUmF0ZUZpZWxkIGV4dGVuZHMgUmF0ZUZpZWxkQmFzZSBpbXBsZW1lbnRzIEZpZWxkT3BlcmFibGU8c3RyaW5nW10sIFJhdGVGaWVsZFZhbHVlPiB7XG4gICAgaXNNZWV0RmlsdGVyKGNvbmRpdGlvbjogQUlUYWJsZUZpbHRlckNvbmRpdGlvbjxzdHJpbmdbXT4sIGNlbGxWYWx1ZTogUmF0ZUZpZWxkVmFsdWUpIHtcbiAgICAgICAgc3dpdGNoIChjb25kaXRpb24ub3BlcmF0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZW1wdHk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRW1wdHkoY2VsbFZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5leGlzdHM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc0VtcHR5KGNlbGxWYWx1ZSk7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uaW46XG4gICAgICAgICAgICAgICAgY29uc3QgaXNDb250YWluID0gY29uZGl0aW9uLnZhbHVlLnNvbWUoKGl0ZW0pID0+IFN0cmluZyhpdGVtKSA9PT0gU3RyaW5nKGNlbGxWYWx1ZSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiAhaXNFbXB0eShjZWxsVmFsdWUpICYmIGlzQ29udGFpbjtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5uaW46XG4gICAgICAgICAgICAgICAgY29uc3Qgbm9Db250YWluID0gY29uZGl0aW9uLnZhbHVlLmV2ZXJ5KChpdGVtKSA9PiBTdHJpbmcoaXRlbSkgIT09IFN0cmluZyhjZWxsVmFsdWUpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaXNFbXB0eShjZWxsVmFsdWUpIHx8IG5vQ29udGFpbjtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTWVldEZpbHRlcihjb25kaXRpb24sIGNlbGxWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wYXJlKGNlbGxWYWx1ZTE6IFJhdGVGaWVsZFZhbHVlLCBjZWxsVmFsdWUyOiBSYXRlRmllbGRWYWx1ZSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBjb21wYXJlTnVtYmVyKGNlbGxWYWx1ZTEsIGNlbGxWYWx1ZTIpO1xuICAgIH1cblxuICAgIHRvRmllbGRWYWx1ZShcbiAgICAgICAgcGxhaW5UZXh0OiBzdHJpbmcsXG4gICAgICAgIHRhcmdldEZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgICAgIG9yaWdpbkRhdGE/OiB7IGZpZWxkOiBBSVRhYmxlRmllbGQ7IGNlbGxWYWx1ZTogRmllbGRWYWx1ZSB9XG4gICAgKTogRmllbGRWYWx1ZSB8IG51bGwge1xuICAgICAgICByZXR1cm4gdG9SYXRlRmllbGRWYWx1ZShwbGFpblRleHQsIHRhcmdldEZpZWxkLCBvcmlnaW5EYXRhKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1JhdGVGaWVsZFZhbHVlKFxuICAgIHBsYWluVGV4dDogc3RyaW5nLFxuICAgIHRhcmdldEZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgb3JpZ2luRGF0YT86IHsgZmllbGQ6IEFJVGFibGVGaWVsZDsgY2VsbFZhbHVlOiBGaWVsZFZhbHVlIH1cbik6IEZpZWxkVmFsdWUgfCBudWxsIHtcbiAgICBsZXQgdmFsdWU6IGFueSA9IHBsYWluVGV4dC50cmltKCk7XG4gICAgaWYgKG9yaWdpbkRhdGEpIHtcbiAgICAgICAgY29uc3QgeyBmaWVsZCwgY2VsbFZhbHVlIH0gPSBvcmlnaW5EYXRhO1xuICAgICAgICBzd2l0Y2ggKGZpZWxkLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpZWxkVHlwZS5yYXRlOlxuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmllbGRUeXBlLm51bWJlcjpcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpZWxkVHlwZS5wcm9ncmVzczpcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IGNlbGxWYWx1ZTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpZWxkVHlwZS5zZWxlY3Q6XG4gICAgICAgICAgICAgICAgaWYgKGNlbGxWYWx1ZSAmJiBBcnJheS5pc0FycmF5KGNlbGxWYWx1ZSkgJiYgY2VsbFZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25zTWFwID0gaGVscGVycy5rZXlCeSgoZmllbGQuc2V0dGluZ3MgYXMgU2VsZWN0U2V0dGluZ3MpLm9wdGlvbnMgfHwgW10sICdfaWQnKTtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSBvcHRpb25zTWFwW2NlbGxWYWx1ZVswXV0/LnRleHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGlmICghaXNFbXB0eSh2YWx1ZSkgfHwgaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICAgIGNvbnN0IHJhdGVWYWx1ZSA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgIGlmICghTnVtYmVyLmlzTmFOKHJhdGVWYWx1ZSkgJiYgcmF0ZVZhbHVlID4gMCAmJiByYXRlVmFsdWUgPCA1KSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChyYXRlVmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiA1O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xufVxuIl19
|
@@ -1,39 +0,0 @@
|
|
1
|
-
import { AITableFieldType, AITableFilterOperation, RichTextFieldBase, isEmpty } from '@ai-table/utils';
|
2
|
-
import { transformCellValue } from '../../cell';
|
3
|
-
import { compareString, isMeetFilter, stringInclude } from '../operate';
|
4
|
-
export class RichTextField extends RichTextFieldBase {
|
5
|
-
transformCellValue(cellValue, options) {
|
6
|
-
return transformCellValue(options.aiTable, options.field, cellValue);
|
7
|
-
}
|
8
|
-
isMeetFilter(condition, cellValue, options) {
|
9
|
-
const textValue = transformCellValue(options.aiTable, options.field, cellValue || []);
|
10
|
-
switch (condition.operation) {
|
11
|
-
case AITableFilterOperation.empty:
|
12
|
-
return isEmpty(textValue);
|
13
|
-
case AITableFilterOperation.exists:
|
14
|
-
return !isEmpty(textValue);
|
15
|
-
case AITableFilterOperation.contain:
|
16
|
-
return !isEmpty(textValue) && stringInclude(textValue, condition.value);
|
17
|
-
default:
|
18
|
-
return isMeetFilter(condition, textValue);
|
19
|
-
}
|
20
|
-
}
|
21
|
-
compare(cellValue1, cellValue2, references, sortKey, options) {
|
22
|
-
const value1 = this.transformCellValue(cellValue1 || [], options);
|
23
|
-
const value2 = this.transformCellValue(cellValue2 || [], options);
|
24
|
-
return compareString(value1, value2);
|
25
|
-
}
|
26
|
-
toFieldValue(plainText, targetField, originData) {
|
27
|
-
return toRichTextFieldValue(plainText, targetField, originData);
|
28
|
-
}
|
29
|
-
}
|
30
|
-
export function toRichTextFieldValue(plainText, targetField, originData) {
|
31
|
-
if (originData) {
|
32
|
-
const { field, cellValue } = originData;
|
33
|
-
if (field.type === AITableFieldType.richText) {
|
34
|
-
return cellValue;
|
35
|
-
}
|
36
|
-
}
|
37
|
-
return null;
|
38
|
-
}
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC10ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvdXRpbHMvZmllbGQvbW9kZWwvcmljaC10ZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxnQkFBZ0IsRUFFaEIsc0JBQXNCLEVBS3RCLGlCQUFpQixFQUNqQixPQUFPLEVBQ1YsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBSXhFLE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQWlCO0lBQ3ZDLGtCQUFrQixDQUFDLFNBQXFCLEVBQUUsT0FBcUI7UUFDcEUsT0FBTyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUVELFlBQVksQ0FDUixTQUF5QyxFQUN6QyxTQUE2QixFQUM3QixPQUdDO1FBRUQsTUFBTSxTQUFTLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN0RixRQUFRLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixLQUFLLHNCQUFzQixDQUFDLEtBQUs7Z0JBQzdCLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlCLEtBQUssc0JBQXNCLENBQUMsTUFBTTtnQkFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixLQUFLLHNCQUFzQixDQUFDLE9BQU87Z0JBQy9CLE9BQU8sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksYUFBYSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUU7Z0JBQ0ksT0FBTyxZQUFZLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ2xELENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxDQUNILFVBQThCLEVBQzlCLFVBQThCLEVBQzlCLFVBQTZCLEVBQzdCLE9BQWUsRUFDZixPQUdDO1FBRUQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEUsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbEUsT0FBTyxhQUFhLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxZQUFZLENBQ1IsU0FBaUIsRUFDakIsV0FBeUIsRUFDekIsVUFBMkQ7UUFFM0QsT0FBTyxvQkFBb0IsQ0FBQyxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7Q0FDSjtBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FDaEMsU0FBaUIsRUFDakIsV0FBeUIsRUFDekIsVUFBMkQ7SUFFM0QsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNiLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEdBQUcsVUFBVSxDQUFDO1FBQ3hDLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMzQyxPQUFPLFNBQVMsQ0FBQztRQUNyQixDQUFDO0lBQ0wsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFJVGFibGVGaWVsZCxcbiAgICBBSVRhYmxlRmllbGRUeXBlLFxuICAgIEFJVGFibGVGaWx0ZXJDb25kaXRpb24sXG4gICAgQUlUYWJsZUZpbHRlck9wZXJhdGlvbixcbiAgICBBSVRhYmxlUmVmZXJlbmNlcyxcbiAgICBGaWVsZE9wdGlvbnMsXG4gICAgRmllbGRWYWx1ZSxcbiAgICBSaWNoVGV4dEZpZWxkVmFsdWUsXG4gICAgUmljaFRleHRGaWVsZEJhc2UsXG4gICAgaXNFbXB0eVxufSBmcm9tICdAYWktdGFibGUvdXRpbHMnO1xuaW1wb3J0IHsgdHJhbnNmb3JtQ2VsbFZhbHVlIH0gZnJvbSAnLi4vLi4vY2VsbCc7XG5pbXBvcnQgeyBjb21wYXJlU3RyaW5nLCBpc01lZXRGaWx0ZXIsIHN0cmluZ0luY2x1ZGUgfSBmcm9tICcuLi9vcGVyYXRlJztcbmltcG9ydCB7IEZpZWxkT3BlcmFibGUgfSBmcm9tICcuLi9maWVsZC1vcGVyYWJsZSc7XG5pbXBvcnQgeyBBSVRhYmxlIH0gZnJvbSAnLi4vLi4vLi4vY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBSaWNoVGV4dEZpZWxkIGV4dGVuZHMgUmljaFRleHRGaWVsZEJhc2UgaW1wbGVtZW50cyBGaWVsZE9wZXJhYmxlPHN0cmluZywgUmljaFRleHRGaWVsZFZhbHVlPiB7XG4gICAgb3ZlcnJpZGUgdHJhbnNmb3JtQ2VsbFZhbHVlKGNlbGxWYWx1ZTogRmllbGRWYWx1ZSwgb3B0aW9uczogRmllbGRPcHRpb25zKSB7XG4gICAgICAgIHJldHVybiB0cmFuc2Zvcm1DZWxsVmFsdWUob3B0aW9ucy5haVRhYmxlLCBvcHRpb25zLmZpZWxkISwgY2VsbFZhbHVlKTtcbiAgICB9XG5cbiAgICBpc01lZXRGaWx0ZXIoXG4gICAgICAgIGNvbmRpdGlvbjogQUlUYWJsZUZpbHRlckNvbmRpdGlvbjxzdHJpbmc+LFxuICAgICAgICBjZWxsVmFsdWU6IFJpY2hUZXh0RmllbGRWYWx1ZSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgYWlUYWJsZTogQUlUYWJsZTtcbiAgICAgICAgICAgIGZpZWxkOiBBSVRhYmxlRmllbGQ7XG4gICAgICAgIH1cbiAgICApIHtcbiAgICAgICAgY29uc3QgdGV4dFZhbHVlID0gdHJhbnNmb3JtQ2VsbFZhbHVlKG9wdGlvbnMuYWlUYWJsZSwgb3B0aW9ucy5maWVsZCwgY2VsbFZhbHVlIHx8IFtdKTtcbiAgICAgICAgc3dpdGNoIChjb25kaXRpb24ub3BlcmF0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZW1wdHk6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzRW1wdHkodGV4dFZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5leGlzdHM6XG4gICAgICAgICAgICAgICAgcmV0dXJuICFpc0VtcHR5KHRleHRWYWx1ZSk7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uY29udGFpbjpcbiAgICAgICAgICAgICAgICByZXR1cm4gIWlzRW1wdHkodGV4dFZhbHVlKSAmJiBzdHJpbmdJbmNsdWRlKHRleHRWYWx1ZSwgY29uZGl0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTWVldEZpbHRlcihjb25kaXRpb24sIHRleHRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wYXJlKFxuICAgICAgICBjZWxsVmFsdWUxOiBSaWNoVGV4dEZpZWxkVmFsdWUsXG4gICAgICAgIGNlbGxWYWx1ZTI6IFJpY2hUZXh0RmllbGRWYWx1ZSxcbiAgICAgICAgcmVmZXJlbmNlczogQUlUYWJsZVJlZmVyZW5jZXMsXG4gICAgICAgIHNvcnRLZXk6IHN0cmluZyxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgYWlUYWJsZTogQUlUYWJsZTtcbiAgICAgICAgICAgIGZpZWxkOiBBSVRhYmxlRmllbGQ7XG4gICAgICAgIH1cbiAgICApOiBudW1iZXIge1xuICAgICAgICBjb25zdCB2YWx1ZTEgPSB0aGlzLnRyYW5zZm9ybUNlbGxWYWx1ZShjZWxsVmFsdWUxIHx8IFtdLCBvcHRpb25zKTtcbiAgICAgICAgY29uc3QgdmFsdWUyID0gdGhpcy50cmFuc2Zvcm1DZWxsVmFsdWUoY2VsbFZhbHVlMiB8fCBbXSwgb3B0aW9ucyk7XG4gICAgICAgIHJldHVybiBjb21wYXJlU3RyaW5nKHZhbHVlMSwgdmFsdWUyKTtcbiAgICB9XG5cbiAgICB0b0ZpZWxkVmFsdWUoXG4gICAgICAgIHBsYWluVGV4dDogc3RyaW5nLFxuICAgICAgICB0YXJnZXRGaWVsZDogQUlUYWJsZUZpZWxkLFxuICAgICAgICBvcmlnaW5EYXRhPzogeyBmaWVsZDogQUlUYWJsZUZpZWxkOyBjZWxsVmFsdWU6IEZpZWxkVmFsdWUgfVxuICAgICk6IEZpZWxkVmFsdWUgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRvUmljaFRleHRGaWVsZFZhbHVlKHBsYWluVGV4dCwgdGFyZ2V0RmllbGQsIG9yaWdpbkRhdGEpO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRvUmljaFRleHRGaWVsZFZhbHVlKFxuICAgIHBsYWluVGV4dDogc3RyaW5nLFxuICAgIHRhcmdldEZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgb3JpZ2luRGF0YT86IHsgZmllbGQ6IEFJVGFibGVGaWVsZDsgY2VsbFZhbHVlOiBGaWVsZFZhbHVlIH1cbik6IEZpZWxkVmFsdWUgfCBudWxsIHtcbiAgICBpZiAob3JpZ2luRGF0YSkge1xuICAgICAgICBjb25zdCB7IGZpZWxkLCBjZWxsVmFsdWUgfSA9IG9yaWdpbkRhdGE7XG4gICAgICAgIGlmIChmaWVsZC50eXBlID09PSBBSVRhYmxlRmllbGRUeXBlLnJpY2hUZXh0KSB7XG4gICAgICAgICAgICByZXR1cm4gY2VsbFZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG4iXX0=
|
@@ -1,131 +0,0 @@
|
|
1
|
-
import { helpers } from 'ngx-tethys/util';
|
2
|
-
import { compareString, hasIntersect, isMeetFilter } from '../operate';
|
3
|
-
import { DEFAULT_COLORS } from 'ngx-tethys/color-picker';
|
4
|
-
import { idCreator } from '../../../core';
|
5
|
-
import { AITableFilterOperation, SelectFieldBase, AITableFieldType, AITableSelectOptionStyle, isEmpty } from '@ai-table/utils';
|
6
|
-
export class SelectField extends SelectFieldBase {
|
7
|
-
isValid(cellValue) {
|
8
|
-
return Array.isArray(cellValue) || cellValue === null;
|
9
|
-
}
|
10
|
-
isMeetFilter(condition, cellValue) {
|
11
|
-
switch (condition.operation) {
|
12
|
-
case AITableFilterOperation.empty:
|
13
|
-
return isEmpty(cellValue);
|
14
|
-
case AITableFilterOperation.exists:
|
15
|
-
return !isEmpty(cellValue);
|
16
|
-
case AITableFilterOperation.in:
|
17
|
-
return Array.isArray(condition.value) && hasIntersect(cellValue, condition.value);
|
18
|
-
case AITableFilterOperation.nin:
|
19
|
-
return Array.isArray(condition.value) && !hasIntersect(cellValue, condition.value);
|
20
|
-
default:
|
21
|
-
return isMeetFilter(condition, cellValue);
|
22
|
-
}
|
23
|
-
}
|
24
|
-
compare(cellValue1, cellValue2, references, sortKey, options) {
|
25
|
-
const value1 = cellValueToSortValue(cellValue1, options.field);
|
26
|
-
const value2 = cellValueToSortValue(cellValue2, options.field);
|
27
|
-
return compareString(value1, value2);
|
28
|
-
}
|
29
|
-
toFieldValue(plainText, targetField, originData) {
|
30
|
-
return toSelectFieldValue(plainText, targetField, originData);
|
31
|
-
}
|
32
|
-
}
|
33
|
-
export function toSelectFieldValue(plainText, targetField, originData) {
|
34
|
-
return null;
|
35
|
-
}
|
36
|
-
export function processPastedValueForSelect(plainText, targetField, originData) {
|
37
|
-
const targetFieldOptions = targetField.settings?.options || [];
|
38
|
-
const targetOptionStyle = targetField.settings?.option_style || AITableSelectOptionStyle.text;
|
39
|
-
let existOptionIds = [];
|
40
|
-
let newOptions = [];
|
41
|
-
let cellFullTexts = plainText
|
42
|
-
.split(',')
|
43
|
-
.map((text) => text.trim())
|
44
|
-
.filter((text) => !!text);
|
45
|
-
const { field, cellValue } = originData || {};
|
46
|
-
if (field && field.type === AITableFieldType.select) {
|
47
|
-
if (cellValue && Array.isArray(cellValue) && cellValue.length) {
|
48
|
-
const targetOptionIds = targetFieldOptions.map((option) => option._id);
|
49
|
-
const originOptionsMap = helpers.keyBy(field.settings?.options || [], '_id');
|
50
|
-
cellValue.forEach((id) => {
|
51
|
-
if (targetOptionIds.includes(id)) {
|
52
|
-
existOptionIds.push(id);
|
53
|
-
}
|
54
|
-
else if (targetFieldOptions.some((option) => option.text === originOptionsMap[id]?.text)) {
|
55
|
-
const option = targetFieldOptions.find((option) => option.text === originOptionsMap[id].text);
|
56
|
-
existOptionIds.push(option._id);
|
57
|
-
}
|
58
|
-
else {
|
59
|
-
const originOption = originOptionsMap[id];
|
60
|
-
if (originOption) {
|
61
|
-
const newOption = copyOption(originOption, targetFieldOptions, targetOptionStyle);
|
62
|
-
newOptions.push(newOption);
|
63
|
-
}
|
64
|
-
}
|
65
|
-
});
|
66
|
-
}
|
67
|
-
}
|
68
|
-
else {
|
69
|
-
cellFullTexts.forEach((text) => {
|
70
|
-
const option = targetFieldOptions.find((option) => option.text === text);
|
71
|
-
if (option) {
|
72
|
-
existOptionIds.push(option._id);
|
73
|
-
}
|
74
|
-
else {
|
75
|
-
const originOption = { text };
|
76
|
-
const newOption = copyOption(originOption, targetFieldOptions, targetOptionStyle);
|
77
|
-
newOptions.push(newOption);
|
78
|
-
}
|
79
|
-
});
|
80
|
-
}
|
81
|
-
const isMultiple = targetField.settings?.is_multiple;
|
82
|
-
if (isMultiple) {
|
83
|
-
return { existOptionIds, newOptions };
|
84
|
-
}
|
85
|
-
else {
|
86
|
-
if (existOptionIds.length) {
|
87
|
-
return { existOptionIds: [existOptionIds[0]], newOptions: [] };
|
88
|
-
}
|
89
|
-
else {
|
90
|
-
if (newOptions.length) {
|
91
|
-
return { existOptionIds: [], newOptions: [newOptions[0]] };
|
92
|
-
}
|
93
|
-
else {
|
94
|
-
return { existOptionIds: [], newOptions: [] };
|
95
|
-
}
|
96
|
-
}
|
97
|
-
}
|
98
|
-
}
|
99
|
-
function copyOption(originOption, targetFieldOptions, targetOptionStyle) {
|
100
|
-
let newOption = {
|
101
|
-
_id: idCreator(),
|
102
|
-
text: originOption.text
|
103
|
-
};
|
104
|
-
if (targetOptionStyle !== AITableSelectOptionStyle.text) {
|
105
|
-
const originBgColor = originOption.bg_color;
|
106
|
-
const existBgColors = targetFieldOptions.map((option) => option.bg_color);
|
107
|
-
const defaultBgColor = DEFAULT_COLORS[10 + (targetFieldOptions?.length || 0)];
|
108
|
-
newOption = {
|
109
|
-
...newOption,
|
110
|
-
bg_color: originBgColor && !existBgColors.includes(originBgColor) ? originBgColor : defaultBgColor
|
111
|
-
};
|
112
|
-
}
|
113
|
-
return newOption;
|
114
|
-
}
|
115
|
-
function cellValueToSortValue(cellValue, field) {
|
116
|
-
if (!cellValue) {
|
117
|
-
return null;
|
118
|
-
}
|
119
|
-
const texts = [];
|
120
|
-
const optionsMap = helpers.keyBy(field.settings.options || [], '_id');
|
121
|
-
if (cellValue && Array.isArray(cellValue) && cellValue.length) {
|
122
|
-
cellValue.forEach((optionId) => {
|
123
|
-
const option = optionsMap[optionId];
|
124
|
-
if (option && option.text) {
|
125
|
-
texts.push(option.text);
|
126
|
-
}
|
127
|
-
});
|
128
|
-
}
|
129
|
-
return texts && texts.length ? texts.join(',') : null;
|
130
|
-
}
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvdXRpbHMvZmllbGQvbW9kZWwvc2VsZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDdkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBVyxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUVILHNCQUFzQixFQUV0QixlQUFlLEVBRWYsZ0JBQWdCLEVBRWhCLHdCQUF3QixFQUl4QixPQUFPLEVBQ1YsTUFBTSxpQkFBaUIsQ0FBQztBQUd6QixNQUFNLE9BQU8sV0FBWSxTQUFRLGVBQWU7SUFDbkMsT0FBTyxDQUFDLFNBQXFCO1FBQ2xDLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsSUFBSSxTQUFTLEtBQUssSUFBSSxDQUFDO0lBQzFELENBQUM7SUFFRCxZQUFZLENBQUMsU0FBeUMsRUFBRSxTQUEyQjtRQUMvRSxRQUFRLFNBQVMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUMxQixLQUFLLHNCQUFzQixDQUFDLEtBQUs7Z0JBQzdCLE9BQU8sT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzlCLEtBQUssc0JBQXNCLENBQUMsTUFBTTtnQkFDOUIsT0FBTyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUMvQixLQUFLLHNCQUFzQixDQUFDLEVBQUU7Z0JBQzFCLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksWUFBWSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEYsS0FB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cnQgeyBoZWxwZXJzIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IGNvbXBhcmVTdHJpbmcsIGhhc0ludGVyc2VjdCwgaXNNZWV0RmlsdGVyIH0gZnJvbSAnLi4vb3BlcmF0ZSc7XG5pbXBvcnQgeyBERUZBVUxUX0NPTE9SUyB9IGZyb20gJ25neC10ZXRoeXMvY29sb3ItcGlja2VyJztcbmltcG9ydCB7IEFJVGFibGUsIGlkQ3JlYXRvciB9IGZyb20gJy4uLy4uLy4uL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBSVRhYmxlRmlsdGVyQ29uZGl0aW9uLFxuICAgIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24sXG4gICAgQUlUYWJsZVJlZmVyZW5jZXMsXG4gICAgU2VsZWN0RmllbGRCYXNlLFxuICAgIEFJVGFibGVGaWVsZCxcbiAgICBBSVRhYmxlRmllbGRUeXBlLFxuICAgIEFJVGFibGVTZWxlY3RPcHRpb24sXG4gICAgQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlLFxuICAgIEZpZWxkVmFsdWUsXG4gICAgU2VsZWN0RmllbGRWYWx1ZSxcbiAgICBTZWxlY3RTZXR0aW5ncyxcbiAgICBpc0VtcHR5XG59IGZyb20gJ0BhaS10YWJsZS91dGlscyc7XG5pbXBvcnQgeyBGaWVsZE9wZXJhYmxlIH0gZnJvbSAnLi4vZmllbGQtb3BlcmFibGUnO1xuXG5leHBvcnQgY2xhc3MgU2VsZWN0RmllbGQgZXh0ZW5kcyBTZWxlY3RGaWVsZEJhc2UgaW1wbGVtZW50cyBGaWVsZE9wZXJhYmxlPHN0cmluZywgU2VsZWN0RmllbGRWYWx1ZT4ge1xuICAgIG92ZXJyaWRlIGlzVmFsaWQoY2VsbFZhbHVlOiBGaWVsZFZhbHVlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGNlbGxWYWx1ZSkgfHwgY2VsbFZhbHVlID09PSBudWxsO1xuICAgIH1cblxuICAgIGlzTWVldEZpbHRlcihjb25kaXRpb246IEFJVGFibGVGaWx0ZXJDb25kaXRpb248c3RyaW5nPiwgY2VsbFZhbHVlOiBTZWxlY3RGaWVsZFZhbHVlKSB7XG4gICAgICAgIHN3aXRjaCAoY29uZGl0aW9uLm9wZXJhdGlvbikge1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmVtcHR5OlxuICAgICAgICAgICAgICAgIHJldHVybiBpc0VtcHR5KGNlbGxWYWx1ZSk7XG4gICAgICAgICAgICBjYXNlIEFJVGFibGVGaWx0ZXJPcGVyYXRpb24uZXhpc3RzOlxuICAgICAgICAgICAgICAgIHJldHVybiAhaXNFbXB0eShjZWxsVmFsdWUpO1xuICAgICAgICAgICAgY2FzZSBBSVRhYmxlRmlsdGVyT3BlcmF0aW9uLmluOlxuICAgICAgICAgICAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KGNvbmRpdGlvbi52YWx1ZSkgJiYgaGFzSW50ZXJzZWN0KGNlbGxWYWx1ZSwgY29uZGl0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGNhc2UgQUlUYWJsZUZpbHRlck9wZXJhdGlvbi5uaW46XG4gICAgICAgICAgICAgICAgcmV0dXJuIEFycmF5LmlzQXJyYXkoY29uZGl0aW9uLnZhbHVlKSAmJiAhaGFzSW50ZXJzZWN0KGNlbGxWYWx1ZSwgY29uZGl0aW9uLnZhbHVlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTWVldEZpbHRlcihjb25kaXRpb24sIGNlbGxWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wYXJlKFxuICAgICAgICBjZWxsVmFsdWUxOiBTZWxlY3RGaWVsZFZhbHVlLFxuICAgICAgICBjZWxsVmFsdWUyOiBTZWxlY3RGaWVsZFZhbHVlLFxuICAgICAgICByZWZlcmVuY2VzOiBBSVRhYmxlUmVmZXJlbmNlcyxcbiAgICAgICAgc29ydEtleTogc3RyaW5nLFxuICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICBhaVRhYmxlOiBBSVRhYmxlO1xuICAgICAgICAgICAgZmllbGQ6IEFJVGFibGVGaWVsZDtcbiAgICAgICAgfVxuICAgICk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IHZhbHVlMSA9IGNlbGxWYWx1ZVRvU29ydFZhbHVlKGNlbGxWYWx1ZTEsIG9wdGlvbnMuZmllbGQpO1xuICAgICAgICBjb25zdCB2YWx1ZTIgPSBjZWxsVmFsdWVUb1NvcnRWYWx1ZShjZWxsVmFsdWUyLCBvcHRpb25zLmZpZWxkKTtcbiAgICAgICAgcmV0dXJuIGNvbXBhcmVTdHJpbmcodmFsdWUxLCB2YWx1ZTIpO1xuICAgIH1cblxuICAgIHRvRmllbGRWYWx1ZShcbiAgICAgICAgcGxhaW5UZXh0OiBzdHJpbmcsXG4gICAgICAgIHRhcmdldEZpZWxkOiBBSVRhYmxlRmllbGQsXG4gICAgICAgIG9yaWdpbkRhdGE/OiB7IGZpZWxkOiBBSVRhYmxlRmllbGQ7IGNlbGxWYWx1ZTogRmllbGRWYWx1ZSB9IHwgbnVsbFxuICAgICk6IEZpZWxkVmFsdWUgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRvU2VsZWN0RmllbGRWYWx1ZShwbGFpblRleHQsIHRhcmdldEZpZWxkLCBvcmlnaW5EYXRhKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0b1NlbGVjdEZpZWxkVmFsdWUoXG4gICAgcGxhaW5UZXh0OiBzdHJpbmcsXG4gICAgdGFyZ2V0RmllbGQ6IEFJVGFibGVGaWVsZCxcbiAgICBvcmlnaW5EYXRhPzogeyBmaWVsZDogQUlUYWJsZUZpZWxkOyBjZWxsVmFsdWU6IEZpZWxkVmFsdWUgfSB8IG51bGxcbik6IEZpZWxkVmFsdWUgfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHByb2Nlc3NQYXN0ZWRWYWx1ZUZvclNlbGVjdChcbiAgICBwbGFpblRleHQ6IHN0cmluZyxcbiAgICB0YXJnZXRGaWVsZDogQUlUYWJsZUZpZWxkLFxuICAgIG9yaWdpbkRhdGE/OiB7IGZpZWxkOiBBSVRhYmxlRmllbGQ7IGNlbGxWYWx1ZTogRmllbGRWYWx1ZSB9IHwgbnVsbFxuKTogeyBleGlzdE9wdGlvbklkczogc3RyaW5nW107IG5ld09wdGlvbnM6IEFJVGFibGVTZWxlY3RPcHRpb25bXSB9IHtcbiAgICBjb25zdCB0YXJnZXRGaWVsZE9wdGlvbnMgPSAodGFyZ2V0RmllbGQuc2V0dGluZ3MgYXMgU2VsZWN0U2V0dGluZ3MpPy5vcHRpb25zIHx8IFtdO1xuICAgIGNvbnN0IHRhcmdldE9wdGlvblN0eWxlID0gKHRhcmdldEZpZWxkLnNldHRpbmdzIGFzIFNlbGVjdFNldHRpbmdzKT8ub3B0aW9uX3N0eWxlIHx8IEFJVGFibGVTZWxlY3RPcHRpb25TdHlsZS50ZXh0O1xuXG4gICAgbGV0IGV4aXN0T3B0aW9uSWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGxldCBuZXdPcHRpb25zOiBBSVRhYmxlU2VsZWN0T3B0aW9uW10gPSBbXTtcblxuICAgIGxldCBjZWxsRnVsbFRleHRzOiBzdHJpbmdbXSA9IHBsYWluVGV4dFxuICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAubWFwKCh0ZXh0KSA9PiB0ZXh0LnRyaW0oKSlcbiAgICAgICAgLmZpbHRlcigodGV4dCkgPT4gISF0ZXh0KTtcblxuICAgIGNvbnN0IHsgZmllbGQsIGNlbGxWYWx1ZSB9ID0gb3JpZ2luRGF0YSB8fCB7fTtcbiAgICBpZiAoZmllbGQgJiYgZmllbGQudHlwZSA9PT0gQUlUYWJsZUZpZWxkVHlwZS5zZWxlY3QpIHtcbiAgICAgICAgaWYgKGNlbGxWYWx1ZSAmJiBBcnJheS5pc0FycmF5KGNlbGxWYWx1ZSkgJiYgY2VsbFZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgdGFyZ2V0T3B0aW9uSWRzID0gdGFyZ2V0RmllbGRPcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uX2lkKTtcbiAgICAgICAgICAgIGNvbnN0IG9yaWdpbk9wdGlvbnNNYXAgPSBoZWxwZXJzLmtleUJ5KChmaWVsZC5zZXR0aW5ncyBhcyBTZWxlY3RTZXR0aW5ncyk/Lm9wdGlvbnMgfHwgW10sICdfaWQnKTtcbiAgICAgICAgICAgIGNlbGxWYWx1ZS5mb3JFYWNoKChpZCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICh0YXJnZXRPcHRpb25JZHMuaW5jbHVkZXMoaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGV4aXN0T3B0aW9uSWRzLnB1c2goaWQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGFyZ2V0RmllbGRPcHRpb25zLnNvbWUoKG9wdGlvbikgPT4gb3B0aW9uLnRleHQgPT09IG9yaWdpbk9wdGlvbnNNYXBbaWRdPy50ZXh0KSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb24gPSB0YXJnZXRGaWVsZE9wdGlvbnMuZmluZCgob3B0aW9uOiBBSVRhYmxlU2VsZWN0T3B0aW9uKSA9PiBvcHRpb24udGV4dCA9PT0gb3JpZ2luT3B0aW9uc01hcFtpZF0udGV4dCk7XG4gICAgICAgICAgICAgICAgICAgIGV4aXN0T3B0aW9uSWRzLnB1c2gob3B0aW9uIS5faWQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG9yaWdpbk9wdGlvbiA9IG9yaWdpbk9wdGlvbnNNYXBbaWRdO1xuICAgICAgICAgICAgICAgICAgICBpZiAob3JpZ2luT3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBuZXdPcHRpb24gPSBjb3B5T3B0aW9uKG9yaWdpbk9wdGlvbiwgdGFyZ2V0RmllbGRPcHRpb25zLCB0YXJnZXRPcHRpb25TdHlsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdPcHRpb25zLnB1c2gobmV3T3B0aW9uKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgY2VsbEZ1bGxUZXh0cy5mb3JFYWNoKCh0ZXh0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBvcHRpb24gPSB0YXJnZXRGaWVsZE9wdGlvbnMuZmluZCgob3B0aW9uKSA9PiBvcHRpb24udGV4dCA9PT0gdGV4dCk7XG4gICAgICAgICAgICBpZiAob3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgZXhpc3RPcHRpb25JZHMucHVzaChvcHRpb24uX2lkKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luT3B0aW9uID0geyB0ZXh0IH07XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3T3B0aW9uID0gY29weU9wdGlvbihvcmlnaW5PcHRpb24sIHRhcmdldEZpZWxkT3B0aW9ucywgdGFyZ2V0T3B0aW9uU3R5bGUpO1xuICAgICAgICAgICAgICAgIG5ld09wdGlvbnMucHVzaChuZXdPcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBpc011bHRpcGxlID0gKHRhcmdldEZpZWxkLnNldHRpbmdzIGFzIFNlbGVjdFNldHRpbmdzKT8uaXNfbXVsdGlwbGU7XG4gICAgaWYgKGlzTXVsdGlwbGUpIHtcbiAgICAgICAgcmV0dXJuIHsgZXhpc3RPcHRpb25JZHMsIG5ld09wdGlvbnMgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZXhpc3RPcHRpb25JZHMubGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm4geyBleGlzdE9wdGlvbklkczogW2V4aXN0T3B0aW9uSWRzWzBdXSwgbmV3T3B0aW9uczogW10gfTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChuZXdPcHRpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGV4aXN0T3B0aW9uSWRzOiBbXSwgbmV3T3B0aW9uczogW25ld09wdGlvbnNbMF1dIH07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB7IGV4aXN0T3B0aW9uSWRzOiBbXSwgbmV3T3B0aW9uczogW10gfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cblxuZnVuY3Rpb24gY29weU9wdGlvbihcbiAgICBvcmlnaW5PcHRpb246IFBhcnRpYWw8QUlUYWJsZVNlbGVjdE9wdGlvbj4sXG4gICAgdGFyZ2V0RmllbGRPcHRpb25zOiBBSVRhYmxlU2VsZWN0T3B0aW9uW10sXG4gICAgdGFyZ2V0T3B0aW9uU3R5bGU6IEFJVGFibGVTZWxlY3RPcHRpb25TdHlsZVxuKTogQUlUYWJsZVNlbGVjdE9wdGlvbiB7XG4gICAgbGV0IG5ld09wdGlvbjogQUlUYWJsZVNlbGVjdE9wdGlvbiA9IHtcbiAgICAgICAgX2lkOiBpZENyZWF0b3IoKSxcbiAgICAgICAgdGV4dDogb3JpZ2luT3B0aW9uLnRleHQhXG4gICAgfTtcblxuICAgIGlmICh0YXJnZXRPcHRpb25TdHlsZSAhPT0gQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlLnRleHQpIHtcbiAgICAgICAgY29uc3Qgb3JpZ2luQmdDb2xvciA9IG9yaWdpbk9wdGlvbi5iZ19jb2xvcjtcbiAgICAgICAgY29uc3QgZXhpc3RCZ0NvbG9ycyA9IHRhcmdldEZpZWxkT3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLmJnX2NvbG9yKTtcbiAgICAgICAgY29uc3QgZGVmYXVsdEJnQ29sb3IgPSBERUZBVUxUX0NPTE9SU1sxMCArICh0YXJnZXRGaWVsZE9wdGlvbnM/Lmxlbmd0aCB8fCAwKV07XG5cbiAgICAgICAgbmV3T3B0aW9uID0ge1xuICAgICAgICAgICAgLi4ubmV3T3B0aW9uLFxuICAgICAgICAgICAgYmdfY29sb3I6IG9yaWdpbkJnQ29sb3IgJiYgIWV4aXN0QmdDb2xvcnMuaW5jbHVkZXMob3JpZ2luQmdDb2xvcikgPyBvcmlnaW5CZ0NvbG9yIDogZGVmYXVsdEJnQ29sb3JcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3T3B0aW9uO1xufVxuXG5mdW5jdGlvbiBjZWxsVmFsdWVUb1NvcnRWYWx1ZShjZWxsVmFsdWU6IFNlbGVjdEZpZWxkVmFsdWUsIGZpZWxkOiBBSVRhYmxlRmllbGQpOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIWNlbGxWYWx1ZSkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgdGV4dHM6IHN0cmluZ1tdID0gW107XG4gICAgY29uc3Qgb3B0aW9uc01hcCA9IGhlbHBlcnMua2V5QnkoKGZpZWxkLnNldHRpbmdzIGFzIFNlbGVjdFNldHRpbmdzKS5vcHRpb25zIHx8IFtdLCAnX2lkJyk7XG4gICAgaWYgKGNlbGxWYWx1ZSAmJiBBcnJheS5pc0FycmF5KGNlbGxWYWx1ZSkgJiYgY2VsbFZhbHVlLmxlbmd0aCkge1xuICAgICAgICBjZWxsVmFsdWUuZm9yRWFjaCgob3B0aW9uSWQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG9wdGlvbiA9IG9wdGlvbnNNYXBbb3B0aW9uSWRdO1xuICAgICAgICAgICAgaWYgKG9wdGlvbiAmJiBvcHRpb24udGV4dCkge1xuICAgICAgICAgICAgICAgIHRleHRzLnB1c2gob3B0aW9uLnRleHQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRleHRzICYmIHRleHRzLmxlbmd0aCA/IHRleHRzLmpvaW4oJywnKSA6IG51bGw7XG59XG4iXX0=
|