@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.
Files changed (232) hide show
  1. package/angular-konva/components/container.component.d.ts.map +1 -1
  2. package/angular-konva/components/shape.component.d.ts.map +1 -1
  3. package/angular-konva/components/stage.component.d.ts.map +1 -1
  4. package/components/cell-editors/abstract-cell-editor.component.d.ts.map +1 -1
  5. package/components/cell-editors/date/date-editor.component.d.ts.map +1 -1
  6. package/components/cell-editors/link/edit-link/edit-link.component.d.ts.map +1 -1
  7. package/components/cell-editors/link/link-editor.component.d.ts.map +1 -1
  8. package/components/cell-editors/number/number-editor.component.d.ts.map +1 -1
  9. package/components/cell-editors/select/select-editor.component.d.ts.map +1 -1
  10. package/components/cell-editors/text/text-editor.component.d.ts.map +1 -1
  11. package/components/cell-views/select/option.component.d.ts.map +1 -1
  12. package/components/context-menu/context-menu.component.d.ts.map +1 -1
  13. package/components/drag/drag.component.d.ts.map +1 -1
  14. package/components/field-menu/field-menu.component.d.ts.map +1 -1
  15. package/components/field-setting/field-setting.component.d.ts.map +1 -1
  16. package/core/context.d.ts +2 -0
  17. package/core/context.d.ts.map +1 -1
  18. package/core/types/ai-table.d.ts.map +1 -1
  19. package/core/utils/field.d.ts.map +1 -1
  20. package/core/utils/queries.d.ts.map +1 -1
  21. package/core/utils/short-id.d.ts.map +1 -1
  22. package/dom-grid.component.d.ts.map +1 -1
  23. package/fesm2022/ai-table-grid.mjs +322 -310
  24. package/fesm2022/ai-table-grid.mjs.map +1 -1
  25. package/grid-base.component.d.ts +3 -1
  26. package/grid-base.component.d.ts.map +1 -1
  27. package/grid.component.d.ts +1 -1
  28. package/grid.component.d.ts.map +1 -1
  29. package/package.json +3 -5
  30. package/pipes/grid.pipe.d.ts.map +1 -1
  31. package/renderer/components/action-icon.component.d.ts.map +1 -1
  32. package/renderer/components/add-field-column.component.d.ts.map +1 -1
  33. package/renderer/components/cells/attachment.component.d.ts.map +1 -1
  34. package/renderer/components/cells/link.component.d.ts.map +1 -1
  35. package/renderer/components/cells/progress.component.d.ts.map +1 -1
  36. package/renderer/components/cells/rate.component.d.ts.map +1 -1
  37. package/renderer/components/cells/rich-text.component.d.ts.map +1 -1
  38. package/renderer/components/cells.component.d.ts.map +1 -1
  39. package/renderer/components/field-head.component.d.ts +2 -2
  40. package/renderer/components/field-head.component.d.ts.map +1 -1
  41. package/renderer/components/field-icon.component.d.ts.map +1 -1
  42. package/renderer/components/frozen-cells.component.d.ts.map +1 -1
  43. package/renderer/components/frozen-heads.component.d.ts +1 -1
  44. package/renderer/components/frozen-heads.component.d.ts.map +1 -1
  45. package/renderer/components/frozen-placeholder-cells.component.d.ts.map +1 -1
  46. package/renderer/components/heads.component.d.ts +1 -1
  47. package/renderer/components/heads.component.d.ts.map +1 -1
  48. package/renderer/components/hover-cell.component.d.ts.map +1 -1
  49. package/renderer/components/hover-row-heads.component.d.ts.map +1 -1
  50. package/renderer/components/icon.component.d.ts.map +1 -1
  51. package/renderer/components/other-rows.component.d.ts.map +1 -1
  52. package/renderer/components/placeholder-cells.component.d.ts.map +1 -1
  53. package/renderer/components/text.component.d.ts.map +1 -1
  54. package/renderer/creations/create-active-cell-border.d.ts.map +1 -1
  55. package/renderer/creations/create-cells.d.ts.map +1 -1
  56. package/renderer/creations/create-heads.d.ts.map +1 -1
  57. package/renderer/drawers/add-row-layout-drawer.d.ts +1 -1
  58. package/renderer/drawers/add-row-layout-drawer.d.ts.map +1 -1
  59. package/renderer/drawers/cell-drawer.d.ts.map +1 -1
  60. package/renderer/drawers/drawer.d.ts +1 -1
  61. package/renderer/renderer.component.d.ts +5 -4
  62. package/renderer/renderer.component.d.ts.map +1 -1
  63. package/types/cell.d.ts +2 -0
  64. package/types/cell.d.ts.map +1 -1
  65. package/types/component-config.d.ts +2 -0
  66. package/types/component-config.d.ts.map +1 -1
  67. package/types/grid.d.ts +4 -0
  68. package/types/grid.d.ts.map +1 -1
  69. package/types/row.d.ts +1 -0
  70. package/types/row.d.ts.map +1 -1
  71. package/utils/build.d.ts.map +1 -1
  72. package/utils/clipboard/clipboard.d.ts.map +1 -1
  73. package/utils/clipboard/copy.d.ts.map +1 -1
  74. package/utils/clipboard/paste.d.ts +5 -1
  75. package/utils/clipboard/paste.d.ts.map +1 -1
  76. package/utils/common.d.ts.map +1 -1
  77. package/utils/field/model/date.d.ts.map +1 -1
  78. package/utils/field/model/link.d.ts.map +1 -1
  79. package/utils/field/model/progress.d.ts.map +1 -1
  80. package/utils/field/model/text.d.ts.map +1 -1
  81. package/utils/get-text-width.d.ts.map +1 -1
  82. package/utils/i18n.d.ts +2 -0
  83. package/utils/i18n.d.ts.map +1 -1
  84. package/utils/match-keywords.d.ts.map +1 -1
  85. package/utils/position.d.ts.map +1 -1
  86. package/utils/style.d.ts.map +1 -1
  87. package/utils/text-measure.d.ts.map +1 -1
  88. package/utils/visible-range.d.ts.map +1 -1
  89. package/esm2022/ai-table-grid.mjs +0 -5
  90. package/esm2022/angular-konva/components/container.component.mjs +0 -29
  91. package/esm2022/angular-konva/components/container.token.mjs +0 -3
  92. package/esm2022/angular-konva/components/index.mjs +0 -4
  93. package/esm2022/angular-konva/components/shape.component.mjs +0 -142
  94. package/esm2022/angular-konva/components/stage.component.mjs +0 -123
  95. package/esm2022/angular-konva/index.mjs +0 -5
  96. package/esm2022/angular-konva/interfaces/component.mjs +0 -4
  97. package/esm2022/angular-konva/interfaces/config.mjs +0 -2
  98. package/esm2022/angular-konva/interfaces/event-object.mjs +0 -2
  99. package/esm2022/angular-konva/interfaces/index.mjs +0 -5
  100. package/esm2022/angular-konva/interfaces/shape.mjs +0 -42
  101. package/esm2022/angular-konva/utils/apply-node-props.mjs +0 -67
  102. package/esm2022/angular-konva/utils/common.mjs +0 -48
  103. package/esm2022/angular-konva/utils/index.mjs +0 -5
  104. package/esm2022/angular-konva/utils/types.mjs +0 -2
  105. package/esm2022/angular-konva/utils/update-picture.mjs +0 -7
  106. package/esm2022/components/cell-editors/abstract-cell-editor.component.mjs +0 -56
  107. package/esm2022/components/cell-editors/date/date-editor.component.mjs +0 -87
  108. package/esm2022/components/cell-editors/link/edit-link/edit-link.component.mjs +0 -81
  109. package/esm2022/components/cell-editors/link/link-editor.component.mjs +0 -122
  110. package/esm2022/components/cell-editors/number/number-editor.component.mjs +0 -41
  111. package/esm2022/components/cell-editors/select/select-editor.component.mjs +0 -74
  112. package/esm2022/components/cell-editors/text/text-editor.component.mjs +0 -76
  113. package/esm2022/components/cell-views/select/option.component.mjs +0 -28
  114. package/esm2022/components/context-menu/context-menu.component.mjs +0 -42
  115. package/esm2022/components/drag/drag.component.mjs +0 -300
  116. package/esm2022/components/field-menu/field-menu.component.mjs +0 -47
  117. package/esm2022/components/field-setting/field-setting.component.mjs +0 -142
  118. package/esm2022/components/index.mjs +0 -10
  119. package/esm2022/constants/colors.mjs +0 -19
  120. package/esm2022/constants/editor.mjs +0 -11
  121. package/esm2022/constants/file-icon.mjs +0 -342
  122. package/esm2022/constants/grid.mjs +0 -35
  123. package/esm2022/constants/icon.mjs +0 -30
  124. package/esm2022/constants/index.mjs +0 -7
  125. package/esm2022/constants/table.mjs +0 -78
  126. package/esm2022/constants/text.mjs +0 -23
  127. package/esm2022/core/constants/field.mjs +0 -107
  128. package/esm2022/core/context.mjs +0 -29
  129. package/esm2022/core/coordinate.mjs +0 -222
  130. package/esm2022/core/index.mjs +0 -6
  131. package/esm2022/core/types/ai-table.mjs +0 -57
  132. package/esm2022/core/types/core.mjs +0 -2
  133. package/esm2022/core/types/index.mjs +0 -3
  134. package/esm2022/core/utils/common.mjs +0 -45
  135. package/esm2022/core/utils/field.mjs +0 -64
  136. package/esm2022/core/utils/id-creator.mjs +0 -21
  137. package/esm2022/core/utils/index.mjs +0 -5
  138. package/esm2022/core/utils/queries.mjs +0 -80
  139. package/esm2022/core/utils/short-id.mjs +0 -53
  140. package/esm2022/dom-grid.component.mjs +0 -80
  141. package/esm2022/grid-base.component.mjs +0 -145
  142. package/esm2022/grid.component.mjs +0 -649
  143. package/esm2022/index.mjs +0 -2
  144. package/esm2022/pipes/grid.pipe.mjs +0 -110
  145. package/esm2022/pipes/index.mjs +0 -2
  146. package/esm2022/public-api.mjs +0 -12
  147. package/esm2022/renderer/components/action-icon.component.mjs +0 -117
  148. package/esm2022/renderer/components/add-field-column.component.mjs +0 -88
  149. package/esm2022/renderer/components/cells/attachment.component.mjs +0 -107
  150. package/esm2022/renderer/components/cells/cells.mjs +0 -6
  151. package/esm2022/renderer/components/cells/index.mjs +0 -7
  152. package/esm2022/renderer/components/cells/link.component.mjs +0 -89
  153. package/esm2022/renderer/components/cells/progress.component.mjs +0 -268
  154. package/esm2022/renderer/components/cells/rate.component.mjs +0 -153
  155. package/esm2022/renderer/components/cells/rich-text.component.mjs +0 -95
  156. package/esm2022/renderer/components/cells.component.mjs +0 -35
  157. package/esm2022/renderer/components/field-head.component.mjs +0 -146
  158. package/esm2022/renderer/components/field-icon.component.mjs +0 -72
  159. package/esm2022/renderer/components/frozen-cells.component.mjs +0 -36
  160. package/esm2022/renderer/components/frozen-heads.component.mjs +0 -214
  161. package/esm2022/renderer/components/frozen-placeholder-cells.component.mjs +0 -38
  162. package/esm2022/renderer/components/heads.component.mjs +0 -38
  163. package/esm2022/renderer/components/hover-cell.component.mjs +0 -104
  164. package/esm2022/renderer/components/hover-row-heads.component.mjs +0 -132
  165. package/esm2022/renderer/components/icon.component.mjs +0 -84
  166. package/esm2022/renderer/components/index.mjs +0 -15
  167. package/esm2022/renderer/components/other-rows.component.mjs +0 -68
  168. package/esm2022/renderer/components/placeholder-cells.component.mjs +0 -33
  169. package/esm2022/renderer/components/text.component.mjs +0 -67
  170. package/esm2022/renderer/creations/create-active-cell-border.mjs +0 -70
  171. package/esm2022/renderer/creations/create-cells.mjs +0 -190
  172. package/esm2022/renderer/creations/create-heads.mjs +0 -51
  173. package/esm2022/renderer/drawers/add-row-layout-drawer.mjs +0 -98
  174. package/esm2022/renderer/drawers/cell-drawer.mjs +0 -673
  175. package/esm2022/renderer/drawers/drawer.mjs +0 -947
  176. package/esm2022/renderer/drawers/layout-drawer.mjs +0 -64
  177. package/esm2022/renderer/drawers/record-row-layout-drawer.mjs +0 -131
  178. package/esm2022/renderer/index.mjs +0 -4
  179. package/esm2022/renderer/interfaces/hover-cell.mjs +0 -4
  180. package/esm2022/renderer/interfaces/index.mjs +0 -2
  181. package/esm2022/renderer/renderer.component.mjs +0 -197
  182. package/esm2022/services/event.service.mjs +0 -241
  183. package/esm2022/services/field.service.mjs +0 -56
  184. package/esm2022/services/index.mjs +0 -4
  185. package/esm2022/services/selection.service.mjs +0 -151
  186. package/esm2022/types/avatar.mjs +0 -27
  187. package/esm2022/types/canvas.mjs +0 -2
  188. package/esm2022/types/cell.mjs +0 -2
  189. package/esm2022/types/clipboard.mjs +0 -2
  190. package/esm2022/types/component-config.mjs +0 -7
  191. package/esm2022/types/field.mjs +0 -2
  192. package/esm2022/types/grid.mjs +0 -17
  193. package/esm2022/types/index.mjs +0 -10
  194. package/esm2022/types/layout.mjs +0 -2
  195. package/esm2022/types/row.mjs +0 -6
  196. package/esm2022/utils/build.mjs +0 -39
  197. package/esm2022/utils/cell.mjs +0 -80
  198. package/esm2022/utils/clear-cells.mjs +0 -23
  199. package/esm2022/utils/clipboard/clipboard.mjs +0 -88
  200. package/esm2022/utils/clipboard/copy.mjs +0 -99
  201. package/esm2022/utils/clipboard/extract.mjs +0 -38
  202. package/esm2022/utils/clipboard/index.mjs +0 -5
  203. package/esm2022/utils/clipboard/paste.mjs +0 -188
  204. package/esm2022/utils/common.mjs +0 -50
  205. package/esm2022/utils/field/field-operable.mjs +0 -2
  206. package/esm2022/utils/field/field.mjs +0 -20
  207. package/esm2022/utils/field/index.mjs +0 -4
  208. package/esm2022/utils/field/model/attachment.mjs +0 -56
  209. package/esm2022/utils/field/model/date.mjs +0 -141
  210. package/esm2022/utils/field/model/index.mjs +0 -12
  211. package/esm2022/utils/field/model/link.mjs +0 -56
  212. package/esm2022/utils/field/model/member.mjs +0 -81
  213. package/esm2022/utils/field/model/number.mjs +0 -59
  214. package/esm2022/utils/field/model/progress.mjs +0 -69
  215. package/esm2022/utils/field/model/rate.mjs +0 -58
  216. package/esm2022/utils/field/model/rich-text.mjs +0 -39
  217. package/esm2022/utils/field/model/select.mjs +0 -131
  218. package/esm2022/utils/field/model/text.mjs +0 -32
  219. package/esm2022/utils/field/operate.mjs +0 -73
  220. package/esm2022/utils/file.mjs +0 -116
  221. package/esm2022/utils/get-placeholder-cells.mjs +0 -66
  222. package/esm2022/utils/get-text-width.mjs +0 -30
  223. package/esm2022/utils/hover-cell.mjs +0 -25
  224. package/esm2022/utils/i18n.mjs +0 -87
  225. package/esm2022/utils/image-cache.mjs +0 -57
  226. package/esm2022/utils/index.mjs +0 -19
  227. package/esm2022/utils/match-keywords.mjs +0 -15
  228. package/esm2022/utils/os.mjs +0 -16
  229. package/esm2022/utils/position.mjs +0 -48
  230. package/esm2022/utils/style.mjs +0 -37
  231. package/esm2022/utils/text-measure.mjs +0 -122
  232. 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=