@ai-table/grid 0.0.11 → 0.0.13

Sign up to get free protection for your applications and to get access to all the features.
Files changed (324) hide show
  1. package/angular-konva/components/container.component.d.ts +7 -0
  2. package/angular-konva/components/container.component.d.ts.map +1 -0
  3. package/angular-konva/components/container.token.d.ts +3 -0
  4. package/angular-konva/components/container.token.d.ts.map +1 -0
  5. package/angular-konva/components/index.d.ts +4 -0
  6. package/angular-konva/components/index.d.ts.map +1 -0
  7. package/angular-konva/components/shape.component.d.ts +61 -0
  8. package/angular-konva/components/shape.component.d.ts.map +1 -0
  9. package/angular-konva/components/stage.component.d.ts +40 -0
  10. package/angular-konva/components/stage.component.d.ts.map +1 -0
  11. package/angular-konva/index.d.ts +5 -0
  12. package/angular-konva/index.d.ts.map +1 -0
  13. package/angular-konva/interfaces/component.d.ts +49 -0
  14. package/angular-konva/interfaces/component.d.ts.map +1 -0
  15. package/angular-konva/interfaces/config.d.ts +26 -0
  16. package/angular-konva/interfaces/config.d.ts.map +1 -0
  17. package/angular-konva/interfaces/event-object.d.ts +7 -0
  18. package/angular-konva/interfaces/event-object.d.ts.map +1 -0
  19. package/angular-konva/interfaces/index.d.ts +5 -0
  20. package/angular-konva/interfaces/index.d.ts.map +1 -0
  21. package/angular-konva/interfaces/shape.d.ts +42 -0
  22. package/angular-konva/interfaces/shape.d.ts.map +1 -0
  23. package/angular-konva/utils/apply-node-props.d.ts +4 -0
  24. package/angular-konva/utils/apply-node-props.d.ts.map +1 -0
  25. package/angular-konva/utils/common.d.ts +8 -0
  26. package/angular-konva/utils/common.d.ts.map +1 -0
  27. package/angular-konva/utils/index.d.ts +5 -0
  28. package/angular-konva/utils/index.d.ts.map +1 -0
  29. package/angular-konva/utils/types.d.ts +4 -0
  30. package/angular-konva/utils/types.d.ts.map +1 -0
  31. package/angular-konva/utils/update-picture.d.ts +4 -0
  32. package/angular-konva/utils/update-picture.d.ts.map +1 -0
  33. package/components/cell-editors/abstract-cell-editor.component.d.ts +7 -5
  34. package/components/cell-editors/abstract-cell-editor.component.d.ts.map +1 -1
  35. package/components/cell-editors/cell-editor.scss +38 -25
  36. package/components/cell-editors/cell-editor.variables.scss +5 -0
  37. package/components/cell-editors/date/date-editor.component.d.ts.map +1 -1
  38. package/components/cell-editors/link/edit-link/edit-link.component.d.ts +33 -0
  39. package/components/cell-editors/link/edit-link/edit-link.component.d.ts.map +1 -0
  40. package/components/cell-editors/link/link-editor.component.d.ts +36 -0
  41. package/components/cell-editors/link/link-editor.component.d.ts.map +1 -0
  42. package/components/cell-editors/link/link-editor.component.scss +21 -0
  43. package/components/cell-editors/progress/progress-editor.component.d.ts +0 -1
  44. package/components/cell-editors/progress/progress-editor.component.d.ts.map +1 -1
  45. package/components/cell-editors/progress/progress-editor.component.scss +12 -4
  46. package/components/cell-editors/rating/rating-editor.component.d.ts +0 -1
  47. package/components/cell-editors/rating/rating-editor.component.d.ts.map +1 -1
  48. package/components/cell-editors/rating/rating-editor.component.scss +10 -0
  49. package/components/cell-editors/select/select-editor.component.d.ts +1 -3
  50. package/components/cell-editors/select/select-editor.component.d.ts.map +1 -1
  51. package/components/cell-editors/text/text-editor.component.d.ts +0 -1
  52. package/components/cell-editors/text/text-editor.component.d.ts.map +1 -1
  53. package/components/cell-views/select/option.component.d.ts.map +1 -1
  54. package/components/cell-views/select/option.scss +10 -0
  55. package/components/field-menu/field-menu.component.d.ts +8 -3
  56. package/components/field-menu/field-menu.component.d.ts.map +1 -1
  57. package/components/field-property-editor/field-property-editor.component.d.ts +4 -2
  58. package/components/field-property-editor/field-property-editor.component.d.ts.map +1 -1
  59. package/components/index.d.ts +3 -1
  60. package/components/index.d.ts.map +1 -1
  61. package/constants/colors.d.ts +18 -0
  62. package/constants/colors.d.ts.map +1 -0
  63. package/constants/grid.d.ts +17 -1
  64. package/constants/grid.d.ts.map +1 -1
  65. package/constants/icon.d.ts +19 -0
  66. package/constants/icon.d.ts.map +1 -0
  67. package/constants/index.d.ts +5 -1
  68. package/constants/index.d.ts.map +1 -1
  69. package/constants/table.d.ts +60 -0
  70. package/constants/table.d.ts.map +1 -0
  71. package/constants/text.d.ts +22 -0
  72. package/constants/text.d.ts.map +1 -0
  73. package/core/context.d.ts +14 -0
  74. package/core/context.d.ts.map +1 -0
  75. package/core/coordinate.d.ts +96 -0
  76. package/core/coordinate.d.ts.map +1 -0
  77. package/core/index.d.ts +3 -2
  78. package/core/index.d.ts.map +1 -1
  79. package/core/types/ai-table.d.ts +56 -0
  80. package/core/types/ai-table.d.ts.map +1 -0
  81. package/core/types/core.d.ts +29 -23
  82. package/core/types/core.d.ts.map +1 -1
  83. package/core/types/index.d.ts +1 -1
  84. package/core/types/index.d.ts.map +1 -1
  85. package/core/utils/common.d.ts +1 -2
  86. package/core/utils/common.d.ts.map +1 -1
  87. package/core/utils/field.d.ts +1 -1
  88. package/core/utils/field.d.ts.map +1 -1
  89. package/core/utils/index.d.ts +0 -1
  90. package/core/utils/index.d.ts.map +1 -1
  91. package/core/utils/queries.d.ts +5 -5
  92. package/core/utils/queries.d.ts.map +1 -1
  93. package/dom-grid.component.d.ts +11 -0
  94. package/dom-grid.component.d.ts.map +1 -0
  95. package/esm2022/angular-konva/components/container.component.mjs +29 -0
  96. package/esm2022/angular-konva/components/container.token.mjs +3 -0
  97. package/esm2022/angular-konva/components/index.mjs +4 -0
  98. package/esm2022/angular-konva/components/shape.component.mjs +142 -0
  99. package/esm2022/angular-konva/components/stage.component.mjs +123 -0
  100. package/esm2022/angular-konva/index.mjs +5 -0
  101. package/esm2022/angular-konva/interfaces/component.mjs +4 -0
  102. package/esm2022/angular-konva/interfaces/config.mjs +2 -0
  103. package/esm2022/angular-konva/interfaces/event-object.mjs +2 -0
  104. package/esm2022/angular-konva/interfaces/index.mjs +5 -0
  105. package/esm2022/angular-konva/interfaces/shape.mjs +42 -0
  106. package/esm2022/angular-konva/utils/apply-node-props.mjs +67 -0
  107. package/esm2022/angular-konva/utils/common.mjs +48 -0
  108. package/esm2022/angular-konva/utils/index.mjs +5 -0
  109. package/esm2022/angular-konva/utils/types.mjs +2 -0
  110. package/esm2022/angular-konva/utils/update-picture.mjs +7 -0
  111. package/esm2022/components/cell-editors/abstract-cell-editor.component.mjs +12 -7
  112. package/esm2022/components/cell-editors/date/date-editor.component.mjs +6 -3
  113. package/esm2022/components/cell-editors/link/edit-link/edit-link.component.mjs +66 -0
  114. package/esm2022/components/cell-editors/link/link-editor.component.mjs +117 -0
  115. package/esm2022/components/cell-editors/number/number-editor.component.mjs +2 -2
  116. package/esm2022/components/cell-editors/progress/progress-editor.component.mjs +3 -6
  117. package/esm2022/components/cell-editors/rating/rating-editor.component.mjs +4 -7
  118. package/esm2022/components/cell-editors/select/select-editor.component.mjs +11 -16
  119. package/esm2022/components/cell-editors/text/text-editor.component.mjs +10 -11
  120. package/esm2022/components/cell-views/select/option.component.mjs +6 -5
  121. package/esm2022/components/field-menu/field-menu.component.mjs +11 -8
  122. package/esm2022/components/field-property-editor/field-property-editor.component.mjs +17 -12
  123. package/esm2022/components/index.mjs +4 -2
  124. package/esm2022/constants/colors.mjs +18 -0
  125. package/esm2022/constants/editor.mjs +2 -3
  126. package/esm2022/constants/grid.mjs +22 -4
  127. package/esm2022/constants/icon.mjs +26 -0
  128. package/esm2022/constants/index.mjs +6 -2
  129. package/esm2022/constants/table.mjs +62 -0
  130. package/esm2022/constants/text.mjs +23 -0
  131. package/esm2022/core/context.mjs +25 -0
  132. package/esm2022/core/coordinate.mjs +222 -0
  133. package/esm2022/core/index.mjs +4 -3
  134. package/esm2022/core/types/ai-table.mjs +44 -0
  135. package/esm2022/core/types/core.mjs +6 -1
  136. package/esm2022/core/types/index.mjs +2 -2
  137. package/esm2022/core/utils/common.mjs +3 -20
  138. package/esm2022/core/utils/field.mjs +9 -5
  139. package/esm2022/core/utils/index.mjs +1 -2
  140. package/esm2022/core/utils/queries.mjs +4 -4
  141. package/esm2022/dom-grid.component.mjs +82 -0
  142. package/esm2022/grid-base.component.mjs +154 -0
  143. package/esm2022/grid.component.mjs +336 -160
  144. package/esm2022/public-api.mjs +9 -5
  145. package/esm2022/renderer/components/add-field-column.component.mjs +68 -0
  146. package/esm2022/renderer/components/cells.component.mjs +35 -0
  147. package/esm2022/renderer/components/field-head.component.mjs +130 -0
  148. package/esm2022/renderer/components/field-icon.component.mjs +66 -0
  149. package/esm2022/renderer/components/frozen-cells.component.mjs +36 -0
  150. package/esm2022/renderer/components/frozen-heads.component.mjs +117 -0
  151. package/esm2022/renderer/components/frozen-placeholder-cells.component.mjs +38 -0
  152. package/esm2022/renderer/components/heads.component.mjs +38 -0
  153. package/esm2022/renderer/components/hover-row-heads.component.mjs +107 -0
  154. package/esm2022/renderer/components/icon.component.mjs +80 -0
  155. package/esm2022/renderer/components/index.mjs +14 -0
  156. package/esm2022/renderer/components/other-rows.component.mjs +68 -0
  157. package/esm2022/renderer/components/placeholder-cells.component.mjs +33 -0
  158. package/esm2022/renderer/components/text.component.mjs +45 -0
  159. package/esm2022/renderer/creations/create-active-cell-border.mjs +68 -0
  160. package/esm2022/renderer/creations/create-cells.mjs +135 -0
  161. package/esm2022/renderer/creations/create-heads.mjs +45 -0
  162. package/esm2022/renderer/drawers/add-row-layout-drawer.mjs +97 -0
  163. package/esm2022/renderer/drawers/cell-drawer.mjs +586 -0
  164. package/esm2022/renderer/drawers/drawer.mjs +936 -0
  165. package/esm2022/renderer/drawers/layout-drawer.mjs +58 -0
  166. package/esm2022/renderer/drawers/record-row-layout-drawer.mjs +101 -0
  167. package/esm2022/renderer/index.mjs +4 -0
  168. package/esm2022/renderer/renderer.component.mjs +174 -0
  169. package/esm2022/services/event.service.mjs +115 -11
  170. package/esm2022/services/field.service.mjs +28 -5
  171. package/esm2022/services/index.mjs +4 -0
  172. package/esm2022/services/selection.service.mjs +8 -1
  173. package/esm2022/types/avatar.mjs +27 -0
  174. package/esm2022/types/canvas.mjs +2 -0
  175. package/esm2022/types/cell.mjs +2 -0
  176. package/esm2022/types/component-config.mjs +7 -0
  177. package/esm2022/types/field.mjs +1 -1
  178. package/esm2022/types/grid.mjs +16 -2
  179. package/esm2022/types/index.mjs +8 -2
  180. package/esm2022/types/layout.mjs +2 -0
  181. package/esm2022/types/row.mjs +6 -0
  182. package/esm2022/utils/build.mjs +39 -0
  183. package/esm2022/utils/cell.mjs +71 -0
  184. package/esm2022/utils/common.mjs +49 -0
  185. package/esm2022/utils/get-placeholder-cells.mjs +66 -0
  186. package/esm2022/utils/get-text-width.mjs +30 -0
  187. package/esm2022/utils/image-cache.mjs +57 -0
  188. package/esm2022/utils/index.mjs +12 -0
  189. package/esm2022/utils/os.mjs +16 -0
  190. package/esm2022/utils/position.mjs +48 -0
  191. package/esm2022/utils/style.mjs +25 -0
  192. package/esm2022/utils/text-measure.mjs +122 -0
  193. package/esm2022/utils/visible-range.mjs +38 -0
  194. package/fesm2022/ai-table-grid.mjs +5526 -693
  195. package/fesm2022/ai-table-grid.mjs.map +1 -1
  196. package/grid-base.component.d.ts +52 -0
  197. package/grid-base.component.d.ts.map +1 -0
  198. package/grid.component.d.ts +43 -40
  199. package/grid.component.d.ts.map +1 -1
  200. package/package.json +5 -2
  201. package/public-api.d.ts +8 -4
  202. package/public-api.d.ts.map +1 -1
  203. package/renderer/components/add-field-column.component.d.ts +16 -0
  204. package/renderer/components/add-field-column.component.d.ts.map +1 -0
  205. package/renderer/components/cells.component.d.ts +14 -0
  206. package/renderer/components/cells.component.d.ts.map +1 -0
  207. package/renderer/components/field-head.component.d.ts +73 -0
  208. package/renderer/components/field-head.component.d.ts.map +1 -0
  209. package/renderer/components/field-icon.component.d.ts +17 -0
  210. package/renderer/components/field-icon.component.d.ts.map +1 -0
  211. package/renderer/components/frozen-cells.component.d.ts +14 -0
  212. package/renderer/components/frozen-cells.component.d.ts.map +1 -0
  213. package/renderer/components/frozen-heads.component.d.ts +47 -0
  214. package/renderer/components/frozen-heads.component.d.ts.map +1 -0
  215. package/renderer/components/frozen-placeholder-cells.component.d.ts +22 -0
  216. package/renderer/components/frozen-placeholder-cells.component.d.ts.map +1 -0
  217. package/renderer/components/heads.component.d.ts +9 -0
  218. package/renderer/components/heads.component.d.ts.map +1 -0
  219. package/renderer/components/hover-row-heads.component.d.ts +11 -0
  220. package/renderer/components/hover-row-heads.component.d.ts.map +1 -0
  221. package/renderer/components/icon.component.d.ts +37 -0
  222. package/renderer/components/icon.component.d.ts.map +1 -0
  223. package/renderer/components/index.d.ts +14 -0
  224. package/renderer/components/index.d.ts.map +1 -0
  225. package/renderer/components/other-rows.component.d.ts +31 -0
  226. package/renderer/components/other-rows.component.d.ts.map +1 -0
  227. package/renderer/components/placeholder-cells.component.d.ts +22 -0
  228. package/renderer/components/placeholder-cells.component.d.ts.map +1 -0
  229. package/renderer/components/text.component.d.ts +99 -0
  230. package/renderer/components/text.component.d.ts.map +1 -0
  231. package/renderer/creations/create-active-cell-border.d.ts +7 -0
  232. package/renderer/creations/create-active-cell-border.d.ts.map +1 -0
  233. package/renderer/creations/create-cells.d.ts +8 -0
  234. package/renderer/creations/create-cells.d.ts.map +1 -0
  235. package/renderer/creations/create-heads.d.ts +3 -0
  236. package/renderer/creations/create-heads.d.ts.map +1 -0
  237. package/renderer/drawers/add-row-layout-drawer.d.ts +12 -0
  238. package/renderer/drawers/add-row-layout-drawer.d.ts.map +1 -0
  239. package/renderer/drawers/cell-drawer.d.ts +22 -0
  240. package/renderer/drawers/cell-drawer.d.ts.map +1 -0
  241. package/renderer/drawers/drawer.d.ts +136 -0
  242. package/renderer/drawers/drawer.d.ts.map +1 -0
  243. package/renderer/drawers/layout-drawer.d.ts +22 -0
  244. package/renderer/drawers/layout-drawer.d.ts.map +1 -0
  245. package/renderer/drawers/record-row-layout-drawer.d.ts +14 -0
  246. package/renderer/drawers/record-row-layout-drawer.d.ts.map +1 -0
  247. package/renderer/index.d.ts +4 -0
  248. package/renderer/index.d.ts.map +1 -0
  249. package/renderer/renderer.component.d.ts +64 -0
  250. package/renderer/renderer.component.d.ts.map +1 -0
  251. package/services/event.service.d.ts +17 -3
  252. package/services/event.service.d.ts.map +1 -1
  253. package/services/field.service.d.ts +5 -4
  254. package/services/field.service.d.ts.map +1 -1
  255. package/services/index.d.ts +4 -0
  256. package/services/index.d.ts.map +1 -0
  257. package/services/selection.service.d.ts.map +1 -1
  258. package/styles/styles.scss +71 -11
  259. package/types/avatar.d.ts +24 -0
  260. package/types/avatar.d.ts.map +1 -0
  261. package/types/canvas.d.ts +83 -0
  262. package/types/canvas.d.ts.map +1 -0
  263. package/types/cell.d.ts +43 -0
  264. package/types/cell.d.ts.map +1 -0
  265. package/types/component-config.d.ts +50 -0
  266. package/types/component-config.d.ts.map +1 -0
  267. package/types/field.d.ts +27 -1
  268. package/types/field.d.ts.map +1 -1
  269. package/types/grid.d.ts +80 -2
  270. package/types/grid.d.ts.map +1 -1
  271. package/types/index.d.ts +7 -1
  272. package/types/index.d.ts.map +1 -1
  273. package/types/layout.d.ts +11 -0
  274. package/types/layout.d.ts.map +1 -0
  275. package/types/row.d.ts +27 -0
  276. package/types/row.d.ts.map +1 -0
  277. package/utils/build.d.ts +5 -0
  278. package/utils/build.d.ts.map +1 -0
  279. package/utils/cell.d.ts +19 -0
  280. package/utils/cell.d.ts.map +1 -0
  281. package/utils/common.d.ts +20 -0
  282. package/utils/common.d.ts.map +1 -0
  283. package/utils/get-placeholder-cells.d.ts +16 -0
  284. package/utils/get-placeholder-cells.d.ts.map +1 -0
  285. package/utils/get-text-width.d.ts +9 -0
  286. package/utils/get-text-width.d.ts.map +1 -0
  287. package/utils/image-cache.d.ts +16 -0
  288. package/utils/image-cache.d.ts.map +1 -0
  289. package/utils/index.d.ts +12 -0
  290. package/utils/index.d.ts.map +1 -0
  291. package/utils/os.d.ts +4 -0
  292. package/utils/os.d.ts.map +1 -0
  293. package/utils/position.d.ts +20 -0
  294. package/utils/position.d.ts.map +1 -0
  295. package/utils/style.d.ts +4 -0
  296. package/utils/style.d.ts.map +1 -0
  297. package/utils/text-measure.d.ts +32 -0
  298. package/utils/text-measure.d.ts.map +1 -0
  299. package/utils/visible-range.d.ts +13 -0
  300. package/utils/visible-range.d.ts.map +1 -0
  301. package/components/cell-editors/link/number-editor.component.d.ts +0 -8
  302. package/components/cell-editors/link/number-editor.component.d.ts.map +0 -1
  303. package/constants/field.d.ts +0 -20
  304. package/constants/field.d.ts.map +0 -1
  305. package/core/action/field.d.ts +0 -12
  306. package/core/action/field.d.ts.map +0 -1
  307. package/core/action/general.d.ts +0 -5
  308. package/core/action/general.d.ts.map +0 -1
  309. package/core/action/index.d.ts +0 -12
  310. package/core/action/index.d.ts.map +0 -1
  311. package/core/action/record.d.ts +0 -12
  312. package/core/action/record.d.ts.map +0 -1
  313. package/core/types/action.d.ts +0 -64
  314. package/core/types/action.d.ts.map +0 -1
  315. package/core/utils/weak-map.d.ts +0 -3
  316. package/core/utils/weak-map.d.ts.map +0 -1
  317. package/esm2022/components/cell-editors/link/number-editor.component.mjs +0 -25
  318. package/esm2022/constants/field.mjs +0 -25
  319. package/esm2022/core/action/field.mjs +0 -57
  320. package/esm2022/core/action/general.mjs +0 -116
  321. package/esm2022/core/action/index.mjs +0 -9
  322. package/esm2022/core/action/record.mjs +0 -44
  323. package/esm2022/core/types/action.mjs +0 -18
  324. package/esm2022/core/utils/weak-map.mjs +0 -2
@@ -0,0 +1,222 @@
1
+ import { AITableRowColumnType } from '../types';
2
+ /**
3
+ * 用于构建 Canvas 基础坐标系,后续的绘制工作以此为基础
4
+ */
5
+ export class Coordinate {
6
+ constructor({ rowHeight, rowCount, columnCount, container, rowIndicesMap = {}, columnIndicesMap = {}, rowInitSize = 0, columnInitSize = 0, frozenColumnCount = 0 }) {
7
+ // 用 index 映射 每一行的 高度
8
+ this.rowIndicesMap = {};
9
+ // 用 index 映射 每一列 的 宽度
10
+ this.columnIndicesMap = {};
11
+ // 行坐标集中最后一行的索引
12
+ this.lastRowIndex = -1;
13
+ // 列坐标集中最后一列的索引
14
+ this.lastColumnIndex = -1;
15
+ this.rowMetaDataMap = {};
16
+ this.columnMetaDataMap = {};
17
+ this._rowHeight = rowHeight;
18
+ this.rowCount = rowCount;
19
+ this.columnCount = columnCount;
20
+ this.rowInitSize = rowInitSize;
21
+ this.columnInitSize = columnInitSize;
22
+ this.containerWidth = container.offsetWidth;
23
+ this.rowIndicesMap = rowIndicesMap;
24
+ this.columnIndicesMap = columnIndicesMap;
25
+ this.containerHeight = container.offsetHeight;
26
+ this.frozenColumnCount = frozenColumnCount;
27
+ this.container = container;
28
+ }
29
+ get rowHeight() {
30
+ return this._rowHeight;
31
+ }
32
+ set rowHeight(height) {
33
+ this._rowHeight = height;
34
+ }
35
+ /**
36
+ * 总宽度
37
+ */
38
+ get totalWidth() {
39
+ const { offset, size } = this.getCellMetaData(this.columnCount - 1, AITableRowColumnType.column);
40
+ return offset + size;
41
+ }
42
+ /**
43
+ * 总高度
44
+ */
45
+ get totalHeight() {
46
+ const { offset, size } = this.getCellMetaData(this.rowCount - 1, AITableRowColumnType.row);
47
+ return offset + size;
48
+ }
49
+ /**
50
+ * 根据 rowIndex 获取对应行高
51
+ */
52
+ getRowHeight(index) {
53
+ return this.rowIndicesMap[index] ?? this.rowHeight;
54
+ }
55
+ /**
56
+ * 根据 columnIndex 获取对应列宽
57
+ */
58
+ getColumnWidth(index) {
59
+ return this.columnIndicesMap[index];
60
+ }
61
+ /**
62
+ * 获取每个 cell 垂直/水平方向的坐标信息
63
+ */
64
+ getCellMetaData(index, itemType) {
65
+ let cellMetadataMap, lastMeasuredIndex, offset;
66
+ const isColumnType = itemType === AITableRowColumnType.column;
67
+ if (isColumnType) {
68
+ offset = this.columnInitSize;
69
+ lastMeasuredIndex = this.lastColumnIndex;
70
+ cellMetadataMap = this.columnMetaDataMap;
71
+ }
72
+ else {
73
+ offset = this.rowInitSize;
74
+ lastMeasuredIndex = this.lastRowIndex;
75
+ cellMetadataMap = this.rowMetaDataMap;
76
+ }
77
+ if (index > lastMeasuredIndex) {
78
+ if (lastMeasuredIndex >= 0) {
79
+ const itemMetadata = cellMetadataMap[lastMeasuredIndex];
80
+ offset = itemMetadata.offset + itemMetadata.size;
81
+ }
82
+ for (let i = lastMeasuredIndex + 1; i <= index; i++) {
83
+ const size = isColumnType ? this.columnIndicesMap[i] : this.rowIndicesMap[i] ?? this.rowHeight;
84
+ cellMetadataMap[i] = {
85
+ offset,
86
+ size
87
+ };
88
+ offset += size;
89
+ }
90
+ if (isColumnType) {
91
+ this.lastColumnIndex = index;
92
+ }
93
+ else {
94
+ this.lastRowIndex = index;
95
+ }
96
+ }
97
+ return cellMetadataMap[index] || { size: 0, offset: 0 };
98
+ }
99
+ /**
100
+ * 查找最近的单元格索引
101
+ * 性能较差,但无论如何都可以找到
102
+ */
103
+ _findNearestCellIndex(index, offset, itemType) {
104
+ const itemCount = itemType === AITableRowColumnType.column ? this.columnCount : this.rowCount;
105
+ let interval = 1;
106
+ while (index < itemCount && this.getCellMetaData(index, itemType).offset < offset) {
107
+ index += interval;
108
+ interval *= 2;
109
+ }
110
+ return this._findNearestCellIndexByBinary(offset, Math.floor(index / 2), Math.min(index, itemCount - 1), itemType);
111
+ }
112
+ /**
113
+ * 二分法查找最近的单元格索引
114
+ * 性能更佳,但需要加载数据
115
+ */
116
+ _findNearestCellIndexByBinary(offset, low, high, itemType) {
117
+ while (low <= high) {
118
+ const middle = low + Math.floor((high - low) / 2);
119
+ const currentOffset = this.getCellMetaData(middle, itemType).offset;
120
+ if (currentOffset === offset) {
121
+ return middle;
122
+ }
123
+ else if (currentOffset < offset) {
124
+ low = middle + 1;
125
+ }
126
+ else if (currentOffset > offset) {
127
+ high = middle - 1;
128
+ }
129
+ }
130
+ return low > -1 ? low - 1 : 0;
131
+ }
132
+ /**
133
+ * 根据偏移量查找最近的单元格索引
134
+ */
135
+ findNearestCellIndex(offset, itemType) {
136
+ let lastIndex;
137
+ if (itemType === AITableRowColumnType.column) {
138
+ lastIndex = this.lastColumnIndex;
139
+ }
140
+ else {
141
+ lastIndex = this.lastRowIndex;
142
+ }
143
+ const cellOffset = this.getCellMetaData(lastIndex, itemType).offset;
144
+ const lastMeasuredItemOffset = lastIndex > 0 ? cellOffset : 0;
145
+ if (lastMeasuredItemOffset >= offset) {
146
+ return this._findNearestCellIndexByBinary(offset, 0, lastIndex, itemType);
147
+ }
148
+ return this._findNearestCellIndex(Math.max(0, lastIndex), offset, itemType);
149
+ }
150
+ /**
151
+ * 根据垂直偏移量找到起始单元格的索引
152
+ */
153
+ getRowStartIndex(offset) {
154
+ return this.findNearestCellIndex(offset, AITableRowColumnType.row);
155
+ }
156
+ /**
157
+ * 根据垂直起始单元格的索引查找结束单元格的索引
158
+ */
159
+ getRowStopIndex(startIndex, scrollTop) {
160
+ const itemMetadata = this.getCellMetaData(startIndex, AITableRowColumnType.row);
161
+ const maxOffset = scrollTop + this.containerHeight;
162
+ let offset = itemMetadata.offset + itemMetadata.size;
163
+ let stopIndex = startIndex;
164
+ while (stopIndex < this.rowCount - 1 && offset < maxOffset) {
165
+ stopIndex++;
166
+ offset += this.getCellMetaData(stopIndex, AITableRowColumnType.row).size;
167
+ }
168
+ return stopIndex;
169
+ }
170
+ /**
171
+ * 根据水平偏移量找到起始单元格的索引
172
+ */
173
+ getColumnStartIndex(offset) {
174
+ return this.findNearestCellIndex(offset, AITableRowColumnType.column);
175
+ }
176
+ /**
177
+ * 根据水平起始单元格的索引查找结束单元格的索引
178
+ */
179
+ getColumnStopIndex(startIndex, scrollLeft) {
180
+ const itemMetadata = this.getCellMetaData(startIndex, AITableRowColumnType.column);
181
+ const maxOffset = scrollLeft + this.containerWidth;
182
+ let offset = itemMetadata.offset + itemMetadata.size;
183
+ let stopIndex = startIndex;
184
+ while (stopIndex < this.columnCount - 1 && offset < maxOffset) {
185
+ stopIndex++;
186
+ offset += this.getCellMetaData(stopIndex, AITableRowColumnType.column).size;
187
+ }
188
+ return stopIndex;
189
+ }
190
+ /**
191
+ * 根据 rowIndex 获取垂直偏移量
192
+ */
193
+ getRowOffset(rowIndex) {
194
+ return this.getCellMetaData(rowIndex, AITableRowColumnType.row).offset;
195
+ }
196
+ /**
197
+ * 根据 columnIndex 获取水平偏移量
198
+ */
199
+ getColumnOffset(columnIndex) {
200
+ return this.getCellMetaData(columnIndex, AITableRowColumnType.column).offset;
201
+ }
202
+ /**
203
+ * 冻结区域宽度
204
+ */
205
+ get frozenColumnWidth() {
206
+ return this.getColumnOffset(this.frozenColumnCount) - this.columnInitSize;
207
+ }
208
+ /**
209
+ * 根据 rowIndex, columnIndex 获取单元格坐标信息
210
+ */
211
+ getCellRect(rowIndex, columnIndex) {
212
+ const { size: height, offset: y } = this.getCellMetaData(rowIndex, AITableRowColumnType.row);
213
+ const { size: width, offset: x } = this.getCellMetaData(columnIndex, AITableRowColumnType.column);
214
+ return {
215
+ x,
216
+ y,
217
+ width,
218
+ height
219
+ };
220
+ }
221
+ }
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29vcmRpbmF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvY29vcmRpbmF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTBDLG9CQUFvQixFQUFrQixNQUFNLFVBQVUsQ0FBQztBQUV4Rzs7R0FFRztBQUNILE1BQU0sT0FBTyxVQUFVO0lBdUJuQixZQUFZLEVBQ1IsU0FBUyxFQUNULFFBQVEsRUFDUixXQUFXLEVBQ1gsU0FBUyxFQUNULGFBQWEsR0FBRyxFQUFFLEVBQ2xCLGdCQUFnQixHQUFHLEVBQUUsRUFDckIsV0FBVyxHQUFHLENBQUMsRUFDZixjQUFjLEdBQUcsQ0FBQyxFQUNsQixpQkFBaUIsR0FBRyxDQUFDLEVBQ0w7UUExQnBCLHFCQUFxQjtRQUNkLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUMxQyxzQkFBc0I7UUFDZixxQkFBZ0IsR0FBbUIsRUFBRSxDQUFDO1FBSzdDLGVBQWU7UUFDUixpQkFBWSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLGVBQWU7UUFDUixvQkFBZSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3JCLG1CQUFjLEdBQXdDLEVBQUUsQ0FBQztRQUN6RCxzQkFBaUIsR0FBd0MsRUFBRSxDQUFDO1FBYy9ELElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUM1QyxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENB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LE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsb0JBQW9CLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0YsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsV0FBVyxFQUFFLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xHLE9BQU87WUFDSCxDQUFDO1lBQ0QsQ0FBQztZQUNELEtBQUs7WUFDTCxNQUFNO1NBQ1QsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFJVGFibGVDZWxsTWV0YURhdGEsIEFJVGFibGVDb29yZGluYXRlLCBBSVRhYmxlUm93Q29sdW1uVHlwZSwgQUlUYWJsZVNpemVNYXAgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICog55So5LqO5p6E5bu6IENhbnZhcyDln7rnoYDlnZDmoIfns7vvvIzlkI7nu63nmoTnu5jliLblt6XkvZzku6XmraTkuLrln7rnoYBcbiAqL1xuZXhwb3J0IGNsYXNzIENvb3JkaW5hdGUge1xuICAgIHByb3RlY3RlZCBfcm93SGVpZ2h0OiBudW1iZXI7XG4gICAgcHVibGljIHJvd0NvdW50OiBudW1iZXI7XG4gICAgcHVibGljIGNvbHVtbkNvdW50OiBudW1iZXI7XG4gICAgcHVibGljIGNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQ7XG4gICAgcHVibGljIGNvbnRhaW5lcldpZHRoOiBudW1iZXI7XG4gICAgcHVibGljIGNvbnRhaW5lckhlaWdodDogbnVtYmVyO1xuICAgIC8vIOeUqCBpbmRleCDmmKDlsIQg5q+P5LiA6KGM55qEIOmrmOW6plxuICAgIHB1YmxpYyByb3dJbmRpY2VzTWFwOiBBSVRhYmxlU2l6ZU1hcCA9IHt9O1xuICAgIC8vIOeUqCBpbmRleCDmmKDlsIQg5q+P5LiA5YiXIOeahCDlrr3luqZcbiAgICBwdWJsaWMgY29sdW1uSW5kaWNlc01hcDogQUlUYWJsZVNpemVNYXAgPSB7fTtcbiAgICAvLyDpmaTljrvooajlpLTlkoznvJblj7fliJfnnJ/mraPljZXlhYPmoLznu5jliLbnmoTliJ3lp4vlgLwgeFxuICAgIHB1YmxpYyByb3dJbml0U2l6ZTogbnVtYmVyO1xuICAgIC8vIOmZpOWOu+ihqOWktOWSjOe8luWPt+WIl+ecn+ato+WNleWFg+agvOe7mOWItueahOWIneWni+WAvCB5XG4gICAgcHVibGljIGNvbHVtbkluaXRTaXplOiBudW1iZXI7XG4gICAgLy8g6KGM5Z2Q5qCH6ZuG5Lit5pyA5ZCO5LiA6KGM55qE57Si5byVXG4gICAgcHVibGljIGxhc3RSb3dJbmRleCA9IC0xO1xuICAgIC8vIOWIl+WdkOagh+mbhuS4reacgOWQjuS4gOWIl+eahOe0ouW8lVxuICAgIHB1YmxpYyBsYXN0Q29sdW1uSW5kZXggPSAtMTtcbiAgICBwdWJsaWMgcm93TWV0YURhdGFNYXA6IFJlY29yZDxudW1iZXIsIEFJVGFibGVDZWxsTWV0YURhdGE+ID0ge307XG4gICAgcHVibGljIGNvbHVtbk1ldGFEYXRhTWFwOiBSZWNvcmQ8bnVtYmVyLCBBSVRhYmxlQ2VsbE1ldGFEYXRhPiA9IHt9O1xuICAgIHB1YmxpYyBmcm96ZW5Db2x1bW5Db3VudDogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3Ioe1xuICAgICAgICByb3dIZWlnaHQsXG4gICAgICAgIHJvd0NvdW50LFxuICAgICAgICBjb2x1bW5Db3VudCxcbiAgICAgICAgY29udGFpbmVyLFxuICAgICAgICByb3dJbmRpY2VzTWFwID0ge30sXG4gICAgICAgIGNvbHVtbkluZGljZXNNYXAgPSB7fSxcbiAgICAgICAgcm93SW5pdFNpemUgPSAwLFxuICAgICAgICBjb2x1bW5Jbml0U2l6ZSA9IDAsXG4gICAgICAgIGZyb3plbkNvbHVtbkNvdW50ID0gMFxuICAgIH06IEFJVGFibGVDb29yZGluYXRlKSB7XG4gICAgICAgIHRoaXMuX3Jvd0hlaWdodCA9IHJvd0hlaWdodDtcbiAgICAgICAgdGhpcy5yb3dDb3VudCA9IHJvd0NvdW50O1xuICAgICAgICB0aGlzLmNvbHVtbkNvdW50ID0gY29sdW1uQ291bnQ7XG4gICAgICAgIHRoaXMucm93SW5pdFNpemUgPSByb3dJbml0U2l6ZTtcbiAgICAgICAgdGhpcy5jb2x1bW5Jbml0U2l6ZSA9IGNvbHVtbkluaXRTaXplO1xuICAgICAgICB0aGlzLmNvbnRhaW5lcldpZHRoID0gY29udGFpbmVyLm9mZnNldFdpZHRoO1xuICAgICAgICB0aGlzLnJvd0luZGljZXNNYXAgPSByb3dJbmRpY2VzTWFwO1xuICAgICAgICB0aGlzLmNvbHVtbkluZGljZXNNYXAgPSBjb2x1bW5JbmRpY2VzTWFwO1xuICAgICAgICB0aGlzLmNvbnRhaW5lckhlaWdodCA9IGNvbnRhaW5lci5vZmZzZXRIZWlnaHQ7XG4gICAgICAgIHRoaXMuZnJvemVuQ29sdW1uQ291bnQgPSBmcm96ZW5Db2x1bW5Db3VudDtcbiAgICAgICAgdGhpcy5jb250YWluZXIgPSBjb250YWluZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByb3dIZWlnaHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yb3dIZWlnaHQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCByb3dIZWlnaHQoaGVpZ2h0OiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fcm93SGVpZ2h0ID0gaGVpZ2h0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOaAu+WuveW6plxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgdG90YWxXaWR0aCgpIHtcbiAgICAgICAgY29uc3QgeyBvZmZzZXQsIHNpemUgfSA9IHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKHRoaXMuY29sdW1uQ291bnQgLSAxLCBBSVRhYmxlUm93Q29sdW1uVHlwZS5jb2x1bW4pO1xuICAgICAgICByZXR1cm4gb2Zmc2V0ICsgc2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmgLvpq5jluqZcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHRvdGFsSGVpZ2h0KCkge1xuICAgICAgICBjb25zdCB7IG9mZnNldCwgc2l6ZSB9ID0gdGhpcy5nZXRDZWxsTWV0YURhdGEodGhpcy5yb3dDb3VudCAtIDEsIEFJVGFibGVSb3dDb2x1bW5UeXBlLnJvdyk7XG4gICAgICAgIHJldHVybiBvZmZzZXQgKyBzaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNriByb3dJbmRleCDojrflj5blr7nlupTooYzpq5hcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Um93SGVpZ2h0KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucm93SW5kaWNlc01hcFtpbmRleF0gPz8gdGhpcy5yb3dIZWlnaHQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qC55o2uIGNvbHVtbkluZGV4IOiOt+WPluWvueW6lOWIl+WuvVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb2x1bW5XaWR0aChpbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbkluZGljZXNNYXBbaW5kZXhdO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOiOt+WPluavj+S4qiBjZWxsIOWeguebtC/msLTlubPmlrnlkJHnmoTlnZDmoIfkv6Hmga9cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZ2V0Q2VsbE1ldGFEYXRhKGluZGV4OiBudW1iZXIsIGl0ZW1UeXBlOiBBSVRhYmxlUm93Q29sdW1uVHlwZSk6IEFJVGFibGVDZWxsTWV0YURhdGEge1xuICAgICAgICBsZXQgY2VsbE1ldGFkYXRhTWFwLCBsYXN0TWVhc3VyZWRJbmRleCwgb2Zmc2V0O1xuICAgICAgICBjb25zdCBpc0NvbHVtblR5cGUgPSBpdGVtVHlwZSA9PT0gQUlUYWJsZVJvd0NvbHVtblR5cGUuY29sdW1uO1xuICAgICAgICBpZiAoaXNDb2x1bW5UeXBlKSB7XG4gICAgICAgICAgICBvZmZzZXQgPSB0aGlzLmNvbHVtbkluaXRTaXplO1xuICAgICAgICAgICAgbGFzdE1lYXN1cmVkSW5kZXggPSB0aGlzLmxhc3RDb2x1bW5JbmRleDtcbiAgICAgICAgICAgIGNlbGxNZXRhZGF0YU1hcCA9IHRoaXMuY29sdW1uTWV0YURhdGFNYXA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBvZmZzZXQgPSB0aGlzLnJvd0luaXRTaXplO1xuICAgICAgICAgICAgbGFzdE1lYXN1cmVkSW5kZXggPSB0aGlzLmxhc3RSb3dJbmRleDtcbiAgICAgICAgICAgIGNlbGxNZXRhZGF0YU1hcCA9IHRoaXMucm93TWV0YURhdGFNYXA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4ID4gbGFzdE1lYXN1cmVkSW5kZXgpIHtcbiAgICAgICAgICAgIGlmIChsYXN0TWVhc3VyZWRJbmRleCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbU1ldGFkYXRhID0gY2VsbE1ldGFkYXRhTWFwW2xhc3RNZWFzdXJlZEluZGV4XTtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSBpdGVtTWV0YWRhdGEub2Zmc2V0ICsgaXRlbU1ldGFkYXRhLnNpemU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAobGV0IGkgPSBsYXN0TWVhc3VyZWRJbmRleCArIDE7IGkgPD0gaW5kZXg7IGkrKykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNpemUgPSBpc0NvbHVtblR5cGUgPyB0aGlzLmNvbHVtbkluZGljZXNNYXBbaV0gOiB0aGlzLnJvd0luZGljZXNNYXBbaV0gPz8gdGhpcy5yb3dIZWlnaHQ7XG5cbiAgICAgICAgICAgICAgICBjZWxsTWV0YWRhdGFNYXBbaV0gPSB7XG4gICAgICAgICAgICAgICAgICAgIG9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgb2Zmc2V0ICs9IHNpemU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNDb2x1bW5UeXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0Q29sdW1uSW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sYXN0Um93SW5kZXggPSBpbmRleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2VsbE1ldGFkYXRhTWFwW2luZGV4XSB8fCB7IHNpemU6IDAsIG9mZnNldDogMCB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOafpeaJvuacgOi/keeahOWNleWFg+agvOe0ouW8lVxuICAgICAqIOaAp+iDvei+g+W3ru+8jOS9huaXoOiuuuWmguS9lemDveWPr+S7peaJvuWIsFxuICAgICAqL1xuICAgIHByaXZhdGUgX2ZpbmROZWFyZXN0Q2VsbEluZGV4KGluZGV4OiBudW1iZXIsIG9mZnNldDogbnVtYmVyLCBpdGVtVHlwZTogQUlUYWJsZVJvd0NvbHVtblR5cGUpIHtcbiAgICAgICAgY29uc3QgaXRlbUNvdW50ID0gaXRlbVR5cGUgPT09IEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbiA/IHRoaXMuY29sdW1uQ291bnQgOiB0aGlzLnJvd0NvdW50O1xuICAgICAgICBsZXQgaW50ZXJ2YWwgPSAxO1xuXG4gICAgICAgIHdoaWxlIChpbmRleCA8IGl0ZW1Db3VudCAmJiB0aGlzLmdldENlbGxNZXRhRGF0YShpbmRleCwgaXRlbVR5cGUpLm9mZnNldCA8IG9mZnNldCkge1xuICAgICAgICAgICAgaW5kZXggKz0gaW50ZXJ2YWw7XG4gICAgICAgICAgICBpbnRlcnZhbCAqPSAyO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbmROZWFyZXN0Q2VsbEluZGV4QnlCaW5hcnkob2Zmc2V0LCBNYXRoLmZsb29yKGluZGV4IC8gMiksIE1hdGgubWluKGluZGV4LCBpdGVtQ291bnQgLSAxKSwgaXRlbVR5cGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOS6jOWIhuazleafpeaJvuacgOi/keeahOWNleWFg+agvOe0ouW8lVxuICAgICAqIOaAp+iDveabtOS9s++8jOS9humcgOimgeWKoOi9veaVsOaNrlxuICAgICAqL1xuICAgIHByaXZhdGUgX2ZpbmROZWFyZXN0Q2VsbEluZGV4QnlCaW5hcnkob2Zmc2V0OiBudW1iZXIsIGxvdzogbnVtYmVyLCBoaWdoOiBudW1iZXIsIGl0ZW1UeXBlOiBBSVRhYmxlUm93Q29sdW1uVHlwZSkge1xuICAgICAgICB3aGlsZSAobG93IDw9IGhpZ2gpIHtcbiAgICAgICAgICAgIGNvbnN0IG1pZGRsZSA9IGxvdyArIE1hdGguZmxvb3IoKGhpZ2ggLSBsb3cpIC8gMik7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50T2Zmc2V0ID0gdGhpcy5nZXRDZWxsTWV0YURhdGEobWlkZGxlLCBpdGVtVHlwZSkub2Zmc2V0O1xuXG4gICAgICAgICAgICBpZiAoY3VycmVudE9mZnNldCA9PT0gb2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG1pZGRsZTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudE9mZnNldCA8IG9mZnNldCkge1xuICAgICAgICAgICAgICAgIGxvdyA9IG1pZGRsZSArIDE7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRPZmZzZXQgPiBvZmZzZXQpIHtcbiAgICAgICAgICAgICAgICBoaWdoID0gbWlkZGxlIC0gMTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbG93ID4gLTEgPyBsb3cgLSAxIDogMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja7lgY/np7vph4/mn6Xmib7mnIDov5HnmoTljZXlhYPmoLzntKLlvJVcbiAgICAgKi9cbiAgICBwdWJsaWMgZmluZE5lYXJlc3RDZWxsSW5kZXgob2Zmc2V0OiBudW1iZXIsIGl0ZW1UeXBlOiBBSVRhYmxlUm93Q29sdW1uVHlwZSkge1xuICAgICAgICBsZXQgbGFzdEluZGV4O1xuICAgICAgICBpZiAoaXRlbVR5cGUgPT09IEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbikge1xuICAgICAgICAgICAgbGFzdEluZGV4ID0gdGhpcy5sYXN0Q29sdW1uSW5kZXg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBsYXN0SW5kZXggPSB0aGlzLmxhc3RSb3dJbmRleDtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjZWxsT2Zmc2V0ID0gdGhpcy5nZXRDZWxsTWV0YURhdGEobGFzdEluZGV4LCBpdGVtVHlwZSkub2Zmc2V0O1xuICAgICAgICBjb25zdCBsYXN0TWVhc3VyZWRJdGVtT2Zmc2V0ID0gbGFzdEluZGV4ID4gMCA/IGNlbGxPZmZzZXQgOiAwO1xuXG4gICAgICAgIGlmIChsYXN0TWVhc3VyZWRJdGVtT2Zmc2V0ID49IG9mZnNldCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbmROZWFyZXN0Q2VsbEluZGV4QnlCaW5hcnkob2Zmc2V0LCAwLCBsYXN0SW5kZXgsIGl0ZW1UeXBlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fZmluZE5lYXJlc3RDZWxsSW5kZXgoTWF0aC5tYXgoMCwgbGFzdEluZGV4KSwgb2Zmc2V0LCBpdGVtVHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qC55o2u5Z6C55u05YGP56e76YeP5om+5Yiw6LW35aeL5Y2V5YWD5qC855qE57Si5byVXG4gICAgICovXG4gICAgcHVibGljIGdldFJvd1N0YXJ0SW5kZXgob2Zmc2V0OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZE5lYXJlc3RDZWxsSW5kZXgob2Zmc2V0LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5yb3cpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOagueaNruWeguebtOi1t+Wni+WNleWFg+agvOeahOe0ouW8leafpeaJvue7k+adn+WNleWFg+agvOeahOe0ouW8lVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSb3dTdG9wSW5kZXgoc3RhcnRJbmRleDogbnVtYmVyLCBzY3JvbGxUb3A6IG51bWJlcikge1xuICAgICAgICBjb25zdCBpdGVtTWV0YWRhdGEgPSB0aGlzLmdldENlbGxNZXRhRGF0YShzdGFydEluZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5yb3cpO1xuICAgICAgICBjb25zdCBtYXhPZmZzZXQgPSBzY3JvbGxUb3AgKyB0aGlzLmNvbnRhaW5lckhlaWdodDtcbiAgICAgICAgbGV0IG9mZnNldCA9IGl0ZW1NZXRhZGF0YS5vZmZzZXQgKyBpdGVtTWV0YWRhdGEuc2l6ZTtcbiAgICAgICAgbGV0IHN0b3BJbmRleCA9IHN0YXJ0SW5kZXg7XG5cbiAgICAgICAgd2hpbGUgKHN0b3BJbmRleCA8IHRoaXMucm93Q291bnQgLSAxICYmIG9mZnNldCA8IG1heE9mZnNldCkge1xuICAgICAgICAgICAgc3RvcEluZGV4Kys7XG4gICAgICAgICAgICBvZmZzZXQgKz0gdGhpcy5nZXRDZWxsTWV0YURhdGEoc3RvcEluZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5yb3cpLnNpemU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0b3BJbmRleDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja7msLTlubPlgY/np7vph4/mib7liLDotbflp4vljZXlhYPmoLznmoTntKLlvJVcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0Q29sdW1uU3RhcnRJbmRleChvZmZzZXQ6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5maW5kTmVhcmVzdENlbGxJbmRleChvZmZzZXQsIEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qC55o2u5rC05bmz6LW35aeL5Y2V5YWD5qC855qE57Si5byV5p+l5om+57uT5p2f5Y2V5YWD5qC855qE57Si5byVXG4gICAgICovXG4gICAgcHVibGljIGdldENvbHVtblN0b3BJbmRleChzdGFydEluZGV4OiBudW1iZXIsIHNjcm9sbExlZnQ6IG51bWJlcikge1xuICAgICAgICBjb25zdCBpdGVtTWV0YWRhdGEgPSB0aGlzLmdldENlbGxNZXRhRGF0YShzdGFydEluZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5jb2x1bW4pO1xuICAgICAgICBjb25zdCBtYXhPZmZzZXQgPSBzY3JvbGxMZWZ0ICsgdGhpcy5jb250YWluZXJXaWR0aDtcbiAgICAgICAgbGV0IG9mZnNldCA9IGl0ZW1NZXRhZGF0YS5vZmZzZXQgKyBpdGVtTWV0YWRhdGEuc2l6ZTtcbiAgICAgICAgbGV0IHN0b3BJbmRleCA9IHN0YXJ0SW5kZXg7XG5cbiAgICAgICAgd2hpbGUgKHN0b3BJbmRleCA8IHRoaXMuY29sdW1uQ291bnQgLSAxICYmIG9mZnNldCA8IG1heE9mZnNldCkge1xuICAgICAgICAgICAgc3RvcEluZGV4Kys7XG4gICAgICAgICAgICBvZmZzZXQgKz0gdGhpcy5nZXRDZWxsTWV0YURhdGEoc3RvcEluZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5jb2x1bW4pLnNpemU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHN0b3BJbmRleDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja4gcm93SW5kZXgg6I635Y+W5Z6C55u05YGP56e76YePXG4gICAgICovXG4gICAgcHVibGljIGdldFJvd09mZnNldChyb3dJbmRleDogbnVtYmVyKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldENlbGxNZXRhRGF0YShyb3dJbmRleCwgQUlUYWJsZVJvd0NvbHVtblR5cGUucm93KS5vZmZzZXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog5qC55o2uIGNvbHVtbkluZGV4IOiOt+WPluawtOW5s+WBj+enu+mHj1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDb2x1bW5PZmZzZXQoY29sdW1uSW5kZXg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRDZWxsTWV0YURhdGEoY29sdW1uSW5kZXgsIEFJVGFibGVSb3dDb2x1bW5UeXBlLmNvbHVtbikub2Zmc2V0O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIOWGu+e7k+WMuuWfn+WuveW6plxuICAgICAqL1xuICAgIGdldCBmcm96ZW5Db2x1bW5XaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Q29sdW1uT2Zmc2V0KHRoaXMuZnJvemVuQ29sdW1uQ291bnQpIC0gdGhpcy5jb2x1bW5Jbml0U2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDmoLnmja4gcm93SW5kZXgsIGNvbHVtbkluZGV4IOiOt+WPluWNleWFg+agvOWdkOagh+S/oeaBr1xuICAgICAqL1xuICAgIHB1YmxpYyBnZXRDZWxsUmVjdChyb3dJbmRleDogbnVtYmVyLCBjb2x1bW5JbmRleDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHsgc2l6ZTogaGVpZ2h0LCBvZmZzZXQ6IHkgfSA9IHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKHJvd0luZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5yb3cpO1xuICAgICAgICBjb25zdCB7IHNpemU6IHdpZHRoLCBvZmZzZXQ6IHggfSA9IHRoaXMuZ2V0Q2VsbE1ldGFEYXRhKGNvbHVtbkluZGV4LCBBSVRhYmxlUm93Q29sdW1uVHlwZS5jb2x1bW4pO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeCxcbiAgICAgICAgICAgIHksXG4gICAgICAgICAgICB3aWR0aCxcbiAgICAgICAgICAgIGhlaWdodFxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
+ export * from './constants/field';
2
+ export * from './coordinate';
1
3
  export * from './types';
2
- export * from './action';
3
4
  export * from './utils';
4
- export * from './constants/field';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsU0FBUyxDQUFDO0FBQ3hCLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3R5cGVzJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uJztcbmV4cG9ydCAqIGZyb20gJy4vdXRpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMvZmllbGQnOyJdfQ==
5
+ export * from './context';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxTQUFTLENBQUM7QUFDeEIsY0FBYyxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnN0YW50cy9maWVsZCc7XG5leHBvcnQgKiBmcm9tICcuL2Nvb3JkaW5hdGUnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vY29udGV4dCc7XG4iXX0=
@@ -0,0 +1,44 @@
1
+ import { Colors } from '../../constants/colors';
2
+ export const AITable = {
3
+ getColors() {
4
+ return Colors;
5
+ },
6
+ getVisibleFields(aiTable) {
7
+ return aiTable.fields().filter((field) => !field.hidden);
8
+ },
9
+ getVisibleRows(aiTable) {
10
+ return aiTable.records();
11
+ },
12
+ getActiveCell(aiTable) {
13
+ const selection = aiTable.selection();
14
+ let selectedCells = [];
15
+ for (let [recordId, fieldIds] of selection.selectedCells.entries()) {
16
+ for (let fieldId of Object.keys(fieldIds)) {
17
+ if (fieldIds[fieldId]) {
18
+ selectedCells.push({
19
+ recordId,
20
+ fieldId
21
+ });
22
+ }
23
+ }
24
+ }
25
+ return selectedCells ? selectedCells[0] : null;
26
+ },
27
+ isCellVisible(aiTable, cell) {
28
+ const visibleRowIndexMap = aiTable.context.visibleRowsIndexMap();
29
+ const visibleColumnIndexMap = aiTable.context.visibleColumnsMap();
30
+ return visibleRowIndexMap.has(cell.recordId) && visibleColumnIndexMap.has(cell.fieldId);
31
+ },
32
+ getCellIndex(aiTable, cell) {
33
+ const visibleRowIndexMap = aiTable.context.visibleRowsIndexMap();
34
+ const visibleColumnIndexMap = aiTable.context.visibleColumnsMap();
35
+ if (AITable.isCellVisible(aiTable, cell)) {
36
+ return {
37
+ rowIndex: visibleRowIndexMap.get(cell.recordId),
38
+ columnIndex: visibleColumnIndexMap.get(cell.fieldId)
39
+ };
40
+ }
41
+ return null;
42
+ }
43
+ };
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktdGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3R5cGVzL2FpLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQWtCaEQsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLFNBQVM7UUFDTCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBQ0QsZ0JBQWdCLENBQUMsT0FBZ0I7UUFDN0IsT0FBTyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBQ0QsY0FBYyxDQUFDLE9BQWdCO1FBQzNCLE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFDRCxhQUFhLENBQUMsT0FBZ0I7UUFDMUIsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3RDLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN2QixLQUFLLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDLElBQUksU0FBUyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ2pFLEtBQUssSUFBSSxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxJQUFLLFFBQXVDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDcEQsYUFBYSxDQUFDLElBQUksQ0FBQzt3QkFDZixRQUFRO3dCQUNSLE9BQU87cUJBQ1YsQ0FBQyxDQUFDO2dCQUNQLENBQUM7WUFDTCxDQUFDO1FBQ0wsQ0FBQztRQUNELE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNuRCxDQUFDO0lBQ0QsYUFBYSxDQUFDLE9BQWdCLEVBQUUsSUFBMkM7UUFDdkUsTUFBTSxrQkFBa0IsR0FBRyxPQUFPLENBQUMsT0FBUSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDbEUsTUFBTSxxQkFBcUIsR0FBRyxPQUFPLENBQUMsT0FBUSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDbkUsT0FBTyxrQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUNELFlBQVksQ0FBQyxPQUFnQixFQUFFLElBQTJDO1FBQ3RFLE1BQU0sa0JBQWtCLEdBQUcsT0FBTyxDQUFDLE9BQVEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQ2xFLE1BQU0scUJBQXFCLEdBQUcsT0FBTyxDQUFDLE9BQVEsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQ25FLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUN2QyxPQUFPO2dCQUNILFFBQVEsRUFBRSxrQkFBbUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBRTtnQkFDakQsV0FBVyxFQUFFLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFFO2FBQ3hELENBQUM7UUFDTixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTaWduYWwsIFdyaXRhYmxlU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2xvcnMgfSBmcm9tICcuLi8uLi9jb25zdGFudHMvY29sb3JzJztcbmltcG9ydCB7IEFJVGFibGVTZWxlY3Rpb24gfSBmcm9tICcuLi8uLi90eXBlcyc7XG5pbXBvcnQgeyBSZW5kZXJlckNvbnRleHQgfSBmcm9tICcuLi9jb250ZXh0JztcbmltcG9ydCB7IEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkcywgQUlUYWJsZVJlY29yZCwgQUlUYWJsZVJlY29yZHMgfSBmcm9tICcuL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGUge1xuICAgIHJlY29yZHM6IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVSZWNvcmRzPjtcbiAgICBmaWVsZHM6IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVGaWVsZHM+O1xuICAgIGNvbnRleHQ/OiBSZW5kZXJlckNvbnRleHQ7XG4gICAgc2VsZWN0aW9uOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlU2VsZWN0aW9uPjtcbiAgICByZWNvcmRzTWFwOiBTaWduYWw8eyBba2F5OiBzdHJpbmddOiBBSVRhYmxlUmVjb3JkIH0+O1xuICAgIGZpZWxkc01hcDogU2lnbmFsPHsgW2theTogc3RyaW5nXTogQUlUYWJsZUZpZWxkIH0+O1xuICAgIHJlY29yZHNXaWxsSGlkZGVuOiBXcml0YWJsZVNpZ25hbDxzdHJpbmdbXT47XG4gICAgcmVjb3Jkc1dpbGxNb3ZlOiBXcml0YWJsZVNpZ25hbDxzdHJpbmdbXT5cbn1cblxuZXhwb3J0IHR5cGUgQUlQbHVnaW4gPSAoYWlUYWJsZTogQUlUYWJsZSkgPT4gQUlUYWJsZTtcblxuZXhwb3J0IGNvbnN0IEFJVGFibGUgPSB7XG4gICAgZ2V0Q29sb3JzKCkge1xuICAgICAgICByZXR1cm4gQ29sb3JzO1xuICAgIH0sXG4gICAgZ2V0VmlzaWJsZUZpZWxkcyhhaVRhYmxlOiBBSVRhYmxlKSB7XG4gICAgICAgIHJldHVybiBhaVRhYmxlLmZpZWxkcygpLmZpbHRlcigoZmllbGQpID0+ICFmaWVsZC5oaWRkZW4pO1xuICAgIH0sXG4gICAgZ2V0VmlzaWJsZVJvd3MoYWlUYWJsZTogQUlUYWJsZSkge1xuICAgICAgICByZXR1cm4gYWlUYWJsZS5yZWNvcmRzKCk7XG4gICAgfSxcbiAgICBnZXRBY3RpdmVDZWxsKGFpVGFibGU6IEFJVGFibGUpOiB7IHJlY29yZElkOiBzdHJpbmc7IGZpZWxkSWQ6IHN0cmluZyB9IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IGFpVGFibGUuc2VsZWN0aW9uKCk7XG4gICAgICAgIGxldCBzZWxlY3RlZENlbGxzID0gW107XG4gICAgICAgIGZvciAobGV0IFtyZWNvcmRJZCwgZmllbGRJZHNdIG9mIHNlbGVjdGlvbi5zZWxlY3RlZENlbGxzLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgZm9yIChsZXQgZmllbGRJZCBvZiBPYmplY3Qua2V5cyhmaWVsZElkcykpIHtcbiAgICAgICAgICAgICAgICBpZiAoKGZpZWxkSWRzIGFzIHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9KVtmaWVsZElkXSkge1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZENlbGxzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVjb3JkSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZElkXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gc2VsZWN0ZWRDZWxscyA/IHNlbGVjdGVkQ2VsbHNbMF0gOiBudWxsO1xuICAgIH0sXG4gICAgaXNDZWxsVmlzaWJsZShhaVRhYmxlOiBBSVRhYmxlLCBjZWxsOiB7IHJlY29yZElkOiBzdHJpbmc7IGZpZWxkSWQ6IHN0cmluZyB9KSB7XG4gICAgICAgIGNvbnN0IHZpc2libGVSb3dJbmRleE1hcCA9IGFpVGFibGUuY29udGV4dCEudmlzaWJsZVJvd3NJbmRleE1hcCgpO1xuICAgICAgICBjb25zdCB2aXNpYmxlQ29sdW1uSW5kZXhNYXAgPSBhaVRhYmxlLmNvbnRleHQhLnZpc2libGVDb2x1bW5zTWFwKCk7XG4gICAgICAgIHJldHVybiB2aXNpYmxlUm93SW5kZXhNYXAhLmhhcyhjZWxsLnJlY29yZElkKSAmJiB2aXNpYmxlQ29sdW1uSW5kZXhNYXAuaGFzKGNlbGwuZmllbGRJZCk7XG4gICAgfSxcbiAgICBnZXRDZWxsSW5kZXgoYWlUYWJsZTogQUlUYWJsZSwgY2VsbDogeyByZWNvcmRJZDogc3RyaW5nOyBmaWVsZElkOiBzdHJpbmcgfSk6IHsgcm93SW5kZXg6IG51bWJlcjsgY29sdW1uSW5kZXg6IG51bWJlciB9IHwgbnVsbCB7XG4gICAgICAgIGNvbnN0IHZpc2libGVSb3dJbmRleE1hcCA9IGFpVGFibGUuY29udGV4dCEudmlzaWJsZVJvd3NJbmRleE1hcCgpO1xuICAgICAgICBjb25zdCB2aXNpYmxlQ29sdW1uSW5kZXhNYXAgPSBhaVRhYmxlLmNvbnRleHQhLnZpc2libGVDb2x1bW5zTWFwKCk7XG4gICAgICAgIGlmIChBSVRhYmxlLmlzQ2VsbFZpc2libGUoYWlUYWJsZSwgY2VsbCkpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgcm93SW5kZXg6IHZpc2libGVSb3dJbmRleE1hcCEuZ2V0KGNlbGwucmVjb3JkSWQpISxcbiAgICAgICAgICAgICAgICBjb2x1bW5JbmRleDogdmlzaWJsZUNvbHVtbkluZGV4TWFwLmdldChjZWxsLmZpZWxkSWQpIVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59O1xuIl19
@@ -43,4 +43,9 @@ export var AITableSelectOptionStyle;
43
43
  AITableSelectOptionStyle[AITableSelectOptionStyle["dot"] = 3] = "dot";
44
44
  AITableSelectOptionStyle[AITableSelectOptionStyle["piece"] = 4] = "piece";
45
45
  })(AITableSelectOptionStyle || (AITableSelectOptionStyle = {}));
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvdHlwZXMvY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQSxNQUFNLENBQU4sSUFBWSxnQkFlWDtBQWZELFdBQVksZ0JBQWdCO0lBQ3hCLGlDQUFhLENBQUE7SUFDYiwwQ0FBc0IsQ0FBQTtJQUN0QixxQ0FBaUIsQ0FBQTtJQUNqQixxQ0FBaUIsQ0FBQTtJQUNqQixpQ0FBYSxDQUFBO0lBQ2IscUNBQWlCLENBQUE7SUFDakIsMkRBQTJEO0lBQzNELHlDQUFxQixDQUFBO0lBQ3JCLGlDQUFhLENBQUE7SUFDYixpQ0FBYSxDQUFBO0lBQ2IsNENBQXdCLENBQUE7SUFDeEIsNENBQXdCLENBQUE7SUFDeEIsNENBQXdCLENBQUE7SUFDeEIsNENBQXdCLENBQUE7QUFDNUIsQ0FBQyxFQWZXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFlM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxlQW1CWDtBQW5CRCxXQUFZLGVBQWU7SUFDdkIscURBQVEsQ0FBQTtJQUNSLDZEQUFZLENBQUE7SUFDWix1REFBUyxDQUFBO0lBQ1QseURBQVUsQ0FBQTtJQUNWLHlEQUFVLENBQUE7SUFDVixxRUFBZ0IsQ0FBQTtJQUNoQix1RUFBaUIsQ0FBQTtJQUNqQix1RUFBaUIsQ0FBQTtJQUNqQixtREFBTyxDQUFBO0lBQ1AsMkRBQVcsQ0FBQTtJQUNYLG9EQUFRLENBQUE7SUFDUixvREFBUSxDQUFBO0lBQ1IsNEVBQW9CLENBQUE7SUFDcEIsZ0ZBQXNCLENBQUE7SUFDdEIsNERBQVksQ0FBQTtJQUNaLGdFQUFjLENBQUE7SUFDZCwwRUFBbUIsQ0FBQTtJQUNuQiw4RUFBcUIsQ0FBQTtBQUN6QixDQUFDLEVBbkJXLGVBQWUsS0FBZixlQUFlLFFBbUIxQjtBQStDRCxNQUFNLENBQU4sSUFBWSx3QkFLWDtBQUxELFdBQVksd0JBQXdCO0lBQ2hDLHVFQUFRLENBQUE7SUFDUixxRUFBTyxDQUFBO0lBQ1AscUVBQU8sQ0FBQTtJQUNQLHlFQUFTLENBQUE7QUFDYixDQUFDLEVBTFcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQUtuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNpZ25hbCwgV3JpdGFibGVTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElkIH0gZnJvbSAnbmd4LXRldGh5cy90eXBlcyc7XG5pbXBvcnQgeyBBSVRhYmxlU2VsZWN0aW9uIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQUlUYWJsZUFjdGlvbiB9IGZyb20gJy4vYWN0aW9uJztcblxuZXhwb3J0IGVudW0gQUlUYWJsZUZpZWxkVHlwZSB7XG4gICAgdGV4dCA9ICd0ZXh0JywgLy8g5YyF5ZCr5aSa6KGM5paH5pysXG4gICAgcmljaFRleHQgPSAncmljaF90ZXh0JywgLy8g5YyF5ZCr5aSa6KGM5paH5pysXG4gICAgc2VsZWN0ID0gJ3NlbGVjdCcsIC8vIOWMheWQq+WNlemAieWSjOWkmumAiVxuICAgIG51bWJlciA9ICdudW1iZXInLFxuICAgIGRhdGUgPSAnZGF0ZScsXG4gICAgbWVtYmVyID0gJ21lbWJlcicsIC8vIOWMheWQq+WNleS4quWSjOWkmuS4qlxuICAgIC8vIGNhc2NhZGVTZWxlY3QgPSAnY2FzY2FkZV9zZWxlY3QnLCAvLyDljIXlkKvljZXpgInlkozlpJrpgInvvIzlj4LmlbDlpI3mnYLlkI7nu63lho3ov5vooYzorr7orqFcbiAgICBwcm9ncmVzcyA9ICdwcm9ncmVzcycsXG4gICAgcmF0ZSA9ICdyYXRlJyxcbiAgICBsaW5rID0gJ2xpbmsnLFxuICAgIGNyZWF0ZWRBdCA9ICdjcmVhdGVkX2F0JyxcbiAgICB1cGRhdGVkQXQgPSAndXBkYXRlZF9hdCcsXG4gICAgY3JlYXRlZEJ5ID0gJ2NyZWF0ZWRfYnknLFxuICAgIHVwZGF0ZWRCeSA9ICd1cGRhdGVkX2J5J1xufVxuXG5leHBvcnQgZW51bSBBSVRhYmxlU3RhdFR5cGUge1xuICAgIE5vbmUgPSAwLFxuICAgIENvdW50QWxsID0gMSxcbiAgICBFbXB0eSA9IDIsXG4gICAgRmlsbGVkID0gMyxcbiAgICBVbmlxdWUgPSA0LFxuICAgIFBlcmNlbnRFbXB0eSA9IDUsXG4gICAgUGVyY2VudEZpbGxlZCA9IDYsXG4gICAgUGVyY2VudFVuaXF1ZSA9IDcsXG4gICAgU3VtID0gOCxcbiAgICBBdmVyYWdlID0gOSxcbiAgICBNYXggPSAxMCxcbiAgICBNaW4gPSAxMSxcbiAgICBEYXRlUmFuZ2VPZkRheXMgPSAxMixcbiAgICBEYXRlUmFuZ2VPZk1vbnRocyA9IDEzLFxuICAgIENoZWNrZWQgPSAxNCxcbiAgICBVbkNoZWNrZWQgPSAxNSxcbiAgICBQZXJjZW50Q2hlY2tlZCA9IDE2LFxuICAgIFBlcmNlbnRVbkNoZWNrZWQgPSAxN1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVGaWVsZE9wdGlvbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IEFJVGFibGVGaWVsZFR5cGU7XG4gICAgaWNvbjogc3RyaW5nO1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgc2V0dGluZ3M/OiBBSVRhYmxlRmllbGRTZXR0aW5ncztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlRmllbGQge1xuICAgIF9pZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBBSVRhYmxlRmllbGRUeXBlO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgaGlkZGVuPzogYm9vbGVhbjtcbiAgICBmcm96ZW4/OiBib29sZWFuO1xuICAgIHN0YXRfdHlwZT86IEFJVGFibGVTdGF0VHlwZTtcbiAgICBzZXR0aW5ncz86IEFJVGFibGVGaWVsZFNldHRpbmdzO1xufVxuXG5leHBvcnQgdHlwZSBBSVRhYmxlRmllbGRTZXR0aW5ncyA9IFRleHRTZXR0aW5ncyB8IFJpY2hUZXh0U2V0dGluZ3MgfCBTZWxlY3RTZXR0aW5ncyB8IE1lbWJlclNldHRpbmdzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRTZXR0aW5ncyB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFJpY2hUZXh0U2V0dGluZ3Mge31cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RTZXR0aW5ncyBleHRlbmRzIElzTXVsdGlwbGUge1xuICAgIG9wdGlvbl9zdHlsZT86IEFJVGFibGVTZWxlY3RPcHRpb25TdHlsZTtcbiAgICBvcHRpb25zOiBBSVRhYmxlU2VsZWN0T3B0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVtYmVyU2V0dGluZ3MgZXh0ZW5kcyBJc011bHRpcGxlIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNNdWx0aXBsZSB7XG4gICAgaXNfbXVsdGlwbGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVTZWxlY3RPcHRpb24ge1xuICAgIF9pZDogc3RyaW5nO1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGJnX2NvbG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGUge1xuICAgIHRleHQgPSAxLFxuICAgIHRhZyA9IDIsXG4gICAgZG90ID0gMyxcbiAgICBwaWVjZSA9IDRcbn1cblxuZXhwb3J0IHR5cGUgVGV4dEZpZWxkVmFsdWUgPSBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdEZpZWxkVmFsdWUgPSBJZFtdOyAvLyDmlbDlrZdcblxuZXhwb3J0IHR5cGUgTnVtYmVyRmllbGRWYWx1ZSA9IG51bWJlcjtcblxuZXhwb3J0IHR5cGUgRGF0ZUZpZWxkVmFsdWUgPSB7IHRpbWVzdGFtcDogbnVtYmVyIH07IC8vIOaXtumXtOaIs1xuXG5leHBvcnQgdHlwZSBNZW1iZXJGaWVsZFZhbHVlID0gSWRbXTtcblxuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NGaWVsZFZhbHVlID0gbnVtYmVyOyAvLyBbMCwxXVxuXG5leHBvcnQgdHlwZSBSYXRlRmllbGRWYWx1ZSA9IDEgfCAyIHwgMyB8IDQgfCA1O1xuXG5leHBvcnQgdHlwZSBGaWVsZFZhbHVlID1cbiAgICB8IFRleHRGaWVsZFZhbHVlXG4gICAgfCBTZWxlY3RGaWVsZFZhbHVlXG4gICAgfCBOdW1iZXJGaWVsZFZhbHVlXG4gICAgfCBEYXRlRmllbGRWYWx1ZVxuICAgIHwgTWVtYmVyRmllbGRWYWx1ZVxuICAgIHwgUHJvZ3Jlc3NGaWVsZFZhbHVlXG4gICAgfCBSYXRlRmllbGRWYWx1ZVxuICAgIHwgYW55O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVSZWNvcmQge1xuICAgIF9pZDogc3RyaW5nO1xuICAgIHZhbHVlczogUmVjb3JkPHN0cmluZywgRmllbGRWYWx1ZT47XG59XG5cbmV4cG9ydCB0eXBlIEFJVGFibGVSZWNvcmRzID0gQUlUYWJsZVJlY29yZFtdO1xuXG5leHBvcnQgdHlwZSBBSVRhYmxlRmllbGRzID0gQUlUYWJsZUZpZWxkW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZVZhbHVlIHtcbiAgICByZWNvcmRzOiBBSVRhYmxlUmVjb3JkcztcbiAgICBmaWVsZHM6IEFJVGFibGVGaWVsZHM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZSB7XG4gICAgcmVjb3JkczogV3JpdGFibGVTaWduYWw8QUlUYWJsZVJlY29yZHM+O1xuICAgIGZpZWxkczogV3JpdGFibGVTaWduYWw8QUlUYWJsZUZpZWxkcz47XG4gICAgYWN0aW9uczogQUlUYWJsZUFjdGlvbltdO1xuICAgIHNlbGVjdGlvbjogV3JpdGFibGVTaWduYWw8QUlUYWJsZVNlbGVjdGlvbj47XG4gICAgcmVjb3Jkc01hcDogU2lnbmFsPHsgW2theTogc3RyaW5nXTogQUlUYWJsZVJlY29yZCB9PjtcbiAgICBmaWVsZHNNYXA6IFNpZ25hbDx7IFtrYXk6IHN0cmluZ106IEFJVGFibGVGaWVsZCB9PjtcbiAgICBvbkNoYW5nZTogKCkgPT4gdm9pZDtcbiAgICBhcHBseTogKGFjdGlvbjogQUlUYWJsZUFjdGlvbikgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlQ2hhbmdlT3B0aW9ucyB7XG4gICAgcmVjb3JkczogQUlUYWJsZVJlY29yZFtdO1xuICAgIGZpZWxkczogQUlUYWJsZUZpZWxkW107XG4gICAgYWN0aW9uczogQUlUYWJsZUFjdGlvbltdO1xufVxuXG5leHBvcnQgdHlwZSBBSVBsdWdpbiA9IChhaVRhYmxlOiBBSVRhYmxlKSA9PiBBSVRhYmxlO1xuIl19
46
+ export var Direction;
47
+ (function (Direction) {
48
+ Direction["before"] = "before";
49
+ Direction["after"] = "after";
50
+ })(Direction || (Direction = {}));
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvdHlwZXMvY29yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQU4sSUFBWSxnQkFlWDtBQWZELFdBQVksZ0JBQWdCO0lBQ3hCLGlDQUFhLENBQUE7SUFDYiwwQ0FBc0IsQ0FBQTtJQUN0QixxQ0FBaUIsQ0FBQTtJQUNqQixxQ0FBaUIsQ0FBQTtJQUNqQixpQ0FBYSxDQUFBO0lBQ2IscUNBQWlCLENBQUE7SUFDakIsMkRBQTJEO0lBQzNELHlDQUFxQixDQUFBO0lBQ3JCLGlDQUFhLENBQUE7SUFDYixpQ0FBYSxDQUFBO0lBQ2IsNENBQXdCLENBQUE7SUFDeEIsNENBQXdCLENBQUE7SUFDeEIsNENBQXdCLENBQUE7SUFDeEIsNENBQXdCLENBQUE7QUFDNUIsQ0FBQyxFQWZXLGdCQUFnQixLQUFoQixnQkFBZ0IsUUFlM0I7QUFFRCxNQUFNLENBQU4sSUFBWSxlQW1CWDtBQW5CRCxXQUFZLGVBQWU7SUFDdkIscURBQVEsQ0FBQTtJQUNSLDZEQUFZLENBQUE7SUFDWix1REFBUyxDQUFBO0lBQ1QseURBQVUsQ0FBQTtJQUNWLHlEQUFVLENBQUE7SUFDVixxRUFBZ0IsQ0FBQTtJQUNoQix1RUFBaUIsQ0FBQTtJQUNqQix1RUFBaUIsQ0FBQTtJQUNqQixtREFBTyxDQUFBO0lBQ1AsMkRBQVcsQ0FBQTtJQUNYLG9EQUFRLENBQUE7SUFDUixvREFBUSxDQUFBO0lBQ1IsNEVBQW9CLENBQUE7SUFDcEIsZ0ZBQXNCLENBQUE7SUFDdEIsNERBQVksQ0FBQTtJQUNaLGdFQUFjLENBQUE7SUFDZCwwRUFBbUIsQ0FBQTtJQUNuQiw4RUFBcUIsQ0FBQTtBQUN6QixDQUFDLEVBbkJXLGVBQWUsS0FBZixlQUFlLFFBbUIxQjtBQStDRCxNQUFNLENBQU4sSUFBWSx3QkFLWDtBQUxELFdBQVksd0JBQXdCO0lBQ2hDLHVFQUFRLENBQUE7SUFDUixxRUFBTyxDQUFBO0lBQ1AscUVBQU8sQ0FBQTtJQUNQLHlFQUFTLENBQUE7QUFDYixDQUFDLEVBTFcsd0JBQXdCLEtBQXhCLHdCQUF3QixRQUtuQztBQXdDRCxNQUFNLENBQU4sSUFBWSxTQUdYO0FBSEQsV0FBWSxTQUFTO0lBQ2pCLDhCQUFpQixDQUFBO0lBQ2pCLDRCQUFlLENBQUE7QUFDbkIsQ0FBQyxFQUhXLFNBQVMsS0FBVCxTQUFTLFFBR3BCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSWQgfSBmcm9tICduZ3gtdGV0aHlzL3R5cGVzJztcblxuZXhwb3J0IGVudW0gQUlUYWJsZUZpZWxkVHlwZSB7XG4gICAgdGV4dCA9ICd0ZXh0JywgLy8g5YyF5ZCr5aSa6KGM5paH5pysXG4gICAgcmljaFRleHQgPSAncmljaF90ZXh0JywgLy8g5YyF5ZCr5aSa6KGM5paH5pysXG4gICAgc2VsZWN0ID0gJ3NlbGVjdCcsIC8vIOWMheWQq+WNlemAieWSjOWkmumAiVxuICAgIG51bWJlciA9ICdudW1iZXInLFxuICAgIGRhdGUgPSAnZGF0ZScsXG4gICAgbWVtYmVyID0gJ21lbWJlcicsIC8vIOWMheWQq+WNleS4quWSjOWkmuS4qlxuICAgIC8vIGNhc2NhZGVTZWxlY3QgPSAnY2FzY2FkZV9zZWxlY3QnLCAvLyDljIXlkKvljZXpgInlkozlpJrpgInvvIzlj4LmlbDlpI3mnYLlkI7nu63lho3ov5vooYzorr7orqFcbiAgICBwcm9ncmVzcyA9ICdwcm9ncmVzcycsXG4gICAgcmF0ZSA9ICdyYXRlJyxcbiAgICBsaW5rID0gJ2xpbmsnLFxuICAgIGNyZWF0ZWRBdCA9ICdjcmVhdGVkX2F0JyxcbiAgICB1cGRhdGVkQXQgPSAndXBkYXRlZF9hdCcsXG4gICAgY3JlYXRlZEJ5ID0gJ2NyZWF0ZWRfYnknLFxuICAgIHVwZGF0ZWRCeSA9ICd1cGRhdGVkX2J5J1xufVxuXG5leHBvcnQgZW51bSBBSVRhYmxlU3RhdFR5cGUge1xuICAgIE5vbmUgPSAwLFxuICAgIENvdW50QWxsID0gMSxcbiAgICBFbXB0eSA9IDIsXG4gICAgRmlsbGVkID0gMyxcbiAgICBVbmlxdWUgPSA0LFxuICAgIFBlcmNlbnRFbXB0eSA9IDUsXG4gICAgUGVyY2VudEZpbGxlZCA9IDYsXG4gICAgUGVyY2VudFVuaXF1ZSA9IDcsXG4gICAgU3VtID0gOCxcbiAgICBBdmVyYWdlID0gOSxcbiAgICBNYXggPSAxMCxcbiAgICBNaW4gPSAxMSxcbiAgICBEYXRlUmFuZ2VPZkRheXMgPSAxMixcbiAgICBEYXRlUmFuZ2VPZk1vbnRocyA9IDEzLFxuICAgIENoZWNrZWQgPSAxNCxcbiAgICBVbkNoZWNrZWQgPSAxNSxcbiAgICBQZXJjZW50Q2hlY2tlZCA9IDE2LFxuICAgIFBlcmNlbnRVbkNoZWNrZWQgPSAxN1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVGaWVsZE9wdGlvbiB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGU6IEFJVGFibGVGaWVsZFR5cGU7XG4gICAgaWNvbjogc3RyaW5nO1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgc2V0dGluZ3M/OiBBSVRhYmxlRmllbGRTZXR0aW5ncztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBBSVRhYmxlRmllbGQge1xuICAgIF9pZDogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlOiBBSVRhYmxlRmllbGRUeXBlO1xuICAgIGljb24/OiBzdHJpbmc7XG4gICAgd2lkdGg/OiBudW1iZXI7XG4gICAgaGlkZGVuPzogYm9vbGVhbjtcbiAgICBmcm96ZW4/OiBib29sZWFuO1xuICAgIHN0YXRfdHlwZT86IEFJVGFibGVTdGF0VHlwZTtcbiAgICBzZXR0aW5ncz86IEFJVGFibGVGaWVsZFNldHRpbmdzO1xufVxuXG5leHBvcnQgdHlwZSBBSVRhYmxlRmllbGRTZXR0aW5ncyA9IFRleHRTZXR0aW5ncyB8IFJpY2hUZXh0U2V0dGluZ3MgfCBTZWxlY3RTZXR0aW5ncyB8IE1lbWJlclNldHRpbmdzO1xuXG5leHBvcnQgaW50ZXJmYWNlIFRleHRTZXR0aW5ncyB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIFJpY2hUZXh0U2V0dGluZ3Mge31cblxuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RTZXR0aW5ncyBleHRlbmRzIElzTXVsdGlwbGUge1xuICAgIG9wdGlvbl9zdHlsZT86IEFJVGFibGVTZWxlY3RPcHRpb25TdHlsZTtcbiAgICBvcHRpb25zOiBBSVRhYmxlU2VsZWN0T3B0aW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVtYmVyU2V0dGluZ3MgZXh0ZW5kcyBJc011bHRpcGxlIHt9XG5cbmV4cG9ydCBpbnRlcmZhY2UgSXNNdWx0aXBsZSB7XG4gICAgaXNfbXVsdGlwbGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVTZWxlY3RPcHRpb24ge1xuICAgIF9pZDogc3RyaW5nO1xuICAgIHRleHQ6IHN0cmluZztcbiAgICBpY29uPzogc3RyaW5nO1xuICAgIGNvbG9yPzogc3RyaW5nO1xuICAgIGJnX2NvbG9yPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZW51bSBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGUge1xuICAgIHRleHQgPSAxLFxuICAgIHRhZyA9IDIsXG4gICAgZG90ID0gMyxcbiAgICBwaWVjZSA9IDRcbn1cblxuZXhwb3J0IHR5cGUgVGV4dEZpZWxkVmFsdWUgPSBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIFNlbGVjdEZpZWxkVmFsdWUgPSBJZFtdOyAvLyDmlbDlrZdcblxuZXhwb3J0IHR5cGUgTnVtYmVyRmllbGRWYWx1ZSA9IG51bWJlcjtcblxuZXhwb3J0IHR5cGUgRGF0ZUZpZWxkVmFsdWUgPSB7IHRpbWVzdGFtcDogbnVtYmVyIH07IC8vIOaXtumXtOaIs1xuXG5leHBvcnQgdHlwZSBNZW1iZXJGaWVsZFZhbHVlID0gSWRbXTtcblxuZXhwb3J0IHR5cGUgUHJvZ3Jlc3NGaWVsZFZhbHVlID0gbnVtYmVyOyAvLyBbMCwxXVxuXG5leHBvcnQgdHlwZSBSYXRlRmllbGRWYWx1ZSA9IDEgfCAyIHwgMyB8IDQgfCA1O1xuXG5leHBvcnQgdHlwZSBGaWVsZFZhbHVlID1cbiAgICB8IFRleHRGaWVsZFZhbHVlXG4gICAgfCBTZWxlY3RGaWVsZFZhbHVlXG4gICAgfCBOdW1iZXJGaWVsZFZhbHVlXG4gICAgfCBEYXRlRmllbGRWYWx1ZVxuICAgIHwgTWVtYmVyRmllbGRWYWx1ZVxuICAgIHwgUHJvZ3Jlc3NGaWVsZFZhbHVlXG4gICAgfCBSYXRlRmllbGRWYWx1ZVxuICAgIHwgYW55O1xuXG5leHBvcnQgaW50ZXJmYWNlIEFJVGFibGVSZWNvcmQge1xuICAgIF9pZDogc3RyaW5nO1xuICAgIHZhbHVlczogUmVjb3JkPHN0cmluZywgRmllbGRWYWx1ZT47XG59XG5cbmV4cG9ydCB0eXBlIEFJVGFibGVSZWNvcmRzID0gQUlUYWJsZVJlY29yZFtdO1xuXG5leHBvcnQgdHlwZSBBSVRhYmxlRmllbGRzID0gQUlUYWJsZUZpZWxkW107XG5cbmV4cG9ydCBpbnRlcmZhY2UgQUlUYWJsZVZhbHVlIHtcbiAgICByZWNvcmRzOiBBSVRhYmxlUmVjb3JkcztcbiAgICBmaWVsZHM6IEFJVGFibGVGaWVsZHM7XG59XG5cbmV4cG9ydCBlbnVtIERpcmVjdGlvbiB7XG4gICAgYmVmb3JlID0gJ2JlZm9yZScsXG4gICAgYWZ0ZXIgPSAnYWZ0ZXInXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWRkUmVjb3JkT3B0aW9ucyB7XG4gICAgb3JpZ2luSWQ6IHN0cmluZztcbiAgICBkaXJlY3Rpb24/OiBEaXJlY3Rpb247XG4gICAgaXNEdXBsaWNhdGU/OiBib29sZWFuO1xuICAgIGNvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFkZEZpZWxkT3B0aW9ucyB7XG4gICAgb3JpZ2luSWQ6IHN0cmluZztcbiAgICBkZWZhdWx0VmFsdWU6IFBhcnRpYWw8QUlUYWJsZUZpZWxkPjtcbiAgICBkaXJlY3Rpb24/OiBEaXJlY3Rpb247XG4gICAgaXNEdXBsaWNhdGU/OiBib29sZWFuO1xuICAgIGNvdW50PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZUZpZWxkVmFsdWVPcHRpb25zPFQgPSB1bmtub3duPiB7XG4gICAgdmFsdWU6IFQ7XG4gICAgcGF0aDogQUlGaWVsZFZhbHVlSWRQYXRoO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNldEZpZWxkT3B0aW9uczxUID0gdW5rbm93bj4ge1xuICAgIGZpZWxkOiBBSVRhYmxlRmllbGQ7XG4gICAgcGF0aDogSWRQYXRoO1xufVxuXG5leHBvcnQgdHlwZSBOdW1iZXJQYXRoID0gW251bWJlcl07XG5cbmV4cG9ydCB0eXBlIElkUGF0aCA9IFtzdHJpbmddO1xuXG5leHBvcnQgdHlwZSBBSUZpZWxkVmFsdWVJZFBhdGggPSBbc3RyaW5nLCBzdHJpbmddO1xuXG5leHBvcnQgdHlwZSBQYXRoID0gTnVtYmVyUGF0aCB8IElkUGF0aCB8IEFJRmllbGRWYWx1ZUlkUGF0aDtcbiJdfQ==
@@ -1,3 +1,3 @@
1
+ export * from './ai-table';
1
2
  export * from './core';
2
- export * from './action';
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsUUFBUSxDQUFDO0FBQ3ZCLGNBQWMsVUFBVSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb3JlJztcbmV4cG9ydCAqIGZyb20gJy4vYWN0aW9uJzsiXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3R5cGVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9haS10YWJsZSc7XG5leHBvcnQgKiBmcm9tICcuL2NvcmUnO1xuIl19
@@ -1,11 +1,8 @@
1
- import { Actions } from '../action';
2
- import { FLUSHING } from './weak-map';
3
1
  import { computed, signal } from '@angular/core';
4
2
  export function createAITable(records, fields) {
5
3
  const aiTable = {
6
4
  records,
7
5
  fields,
8
- actions: [],
9
6
  selection: signal({
10
7
  selectedRecords: new Map(),
11
8
  selectedFields: new Map(),
@@ -23,23 +20,9 @@ export function createAITable(records, fields) {
23
20
  return object;
24
21
  }, {});
25
22
  }),
26
- onChange: () => { },
27
- apply: (action) => {
28
- aiTable.actions.push(action);
29
- Actions.transform(aiTable, action);
30
- if (!FLUSHING.get(aiTable)) {
31
- FLUSHING.set(aiTable, true);
32
- Promise.resolve().then(() => {
33
- FLUSHING.set(aiTable, false);
34
- aiTable.onChange();
35
- aiTable.actions = [];
36
- });
37
- }
38
- }
23
+ recordsWillHidden: signal([]),
24
+ recordsWillMove: signal([])
39
25
  };
40
26
  return aiTable;
41
27
  }
42
- export function isPathEqual(path, another) {
43
- return path.length === another.length && path.every((n, i) => n === another[i]);
44
- }
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvY29yZS91dGlscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVwQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3RDLE9BQU8sRUFBa0IsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRSxNQUFNLFVBQVUsYUFBYSxDQUFDLE9BQXVDLEVBQUUsTUFBcUM7SUFDeEcsTUFBTSxPQUFPLEdBQVk7UUFDckIsT0FBTztRQUNQLE1BQU07UUFDTixPQUFPLEVBQUUsRUFBRTtRQUNYLFNBQVMsRUFBRSxNQUFNLENBQUM7WUFDZCxlQUFlLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDMUIsY0FBYyxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ3pCLGFBQWEsRUFBRSxJQUFJLEdBQUcsRUFBRTtTQUMzQixDQUFDO1FBQ0YsVUFBVSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsT0FBTyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQ25CLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixPQUFPLE1BQU0sQ0FBQztZQUNsQixDQUFDLEVBQ0QsRUFBc0MsQ0FDekMsQ0FBQztRQUNOLENBQUMsQ0FBQztRQUNGLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JCLE9BQU8sTUFBTSxFQUFFLENBQUMsTUFBTSxDQUNsQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDYixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUNELEVBQXFDLENBQ3hDLENBQUM7UUFDTixDQUFDLENBQUM7UUFDRixRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztRQUNsQixLQUFLLEVBQUUsQ0FBQyxNQUFxQixFQUFFLEVBQUU7WUFDN0IsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDN0IsT0FBTyxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFFbkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDekIsUUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzVCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO29CQUN4QixRQUFRLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztvQkFDN0IsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO29CQUNuQixPQUFPLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztnQkFDekIsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDO1FBQ0wsQ0FBQztLQUNKLENBQUM7SUFDRixPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBRUQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxJQUFVLEVBQUUsT0FBYTtJQUNqRCxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3BGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb25zIH0gZnJvbSAnLi4vYWN0aW9uJztcbmltcG9ydCB7IEFJVGFibGUsIEFJVGFibGVBY3Rpb24sIEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkcywgQUlUYWJsZVJlY29yZCwgQUlUYWJsZVJlY29yZHMsIFBhdGggfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBGTFVTSElORyB9IGZyb20gJy4vd2Vhay1tYXAnO1xuaW1wb3J0IHsgV3JpdGFibGVTaWduYWwsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFJVGFibGUocmVjb3JkczogV3JpdGFibGVTaWduYWw8QUlUYWJsZVJlY29yZHM+LCBmaWVsZHM6IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVGaWVsZHM+KTogQUlUYWJsZSB7XG4gICAgY29uc3QgYWlUYWJsZTogQUlUYWJsZSA9IHtcbiAgICAgICAgcmVjb3JkcyxcbiAgICAgICAgZmllbGRzLFxuICAgICAgICBhY3Rpb25zOiBbXSxcbiAgICAgICAgc2VsZWN0aW9uOiBzaWduYWwoe1xuICAgICAgICAgICAgc2VsZWN0ZWRSZWNvcmRzOiBuZXcgTWFwKCksXG4gICAgICAgICAgICBzZWxlY3RlZEZpZWxkczogbmV3IE1hcCgpLFxuICAgICAgICAgICAgc2VsZWN0ZWRDZWxsczogbmV3IE1hcCgpXG4gICAgICAgIH0pLFxuICAgICAgICByZWNvcmRzTWFwOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVjb3JkcygpLnJlZHVjZShcbiAgICAgICAgICAgICAgICAob2JqZWN0LCBpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdFtpdGVtLl9pZF0gPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge30gYXMgeyBba2F5OiBzdHJpbmddOiBBSVRhYmxlUmVjb3JkIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaWVsZHNNYXA6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZHMoKS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKG9iamVjdCwgaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3RbaXRlbS5faWRdID0gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHt9IGFzIHsgW2theTogc3RyaW5nXTogQUlUYWJsZUZpZWxkIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBvbkNoYW5nZTogKCkgPT4ge30sXG4gICAgICAgIGFwcGx5OiAoYWN0aW9uOiBBSVRhYmxlQWN0aW9uKSA9PiB7XG4gICAgICAgICAgICBhaVRhYmxlLmFjdGlvbnMucHVzaChhY3Rpb24pO1xuICAgICAgICAgICAgQWN0aW9ucy50cmFuc2Zvcm0oYWlUYWJsZSwgYWN0aW9uKTtcblxuICAgICAgICAgICAgaWYgKCFGTFVTSElORy5nZXQoYWlUYWJsZSkpIHtcbiAgICAgICAgICAgICAgICBGTFVTSElORy5zZXQoYWlUYWJsZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIEZMVVNISU5HLnNldChhaVRhYmxlLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGFpVGFibGUub25DaGFuZ2UoKTtcbiAgICAgICAgICAgICAgICAgICAgYWlUYWJsZS5hY3Rpb25zID0gW107XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuICAgIHJldHVybiBhaVRhYmxlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNQYXRoRXF1YWwocGF0aDogUGF0aCwgYW5vdGhlcjogUGF0aCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBwYXRoLmxlbmd0aCA9PT0gYW5vdGhlci5sZW5ndGggJiYgcGF0aC5ldmVyeSgobiwgaSkgPT4gbiA9PT0gYW5vdGhlcltpXSk7XG59Il19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvY29yZS91dGlscy9jb21tb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFrQixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR2pFLE1BQU0sVUFBVSxhQUFhLENBQUMsT0FBdUMsRUFBRSxNQUFxQztJQUN4RyxNQUFNLE9BQU8sR0FBWTtRQUNyQixPQUFPO1FBQ1AsTUFBTTtRQUNOLFNBQVMsRUFBRSxNQUFNLENBQUM7WUFDZCxlQUFlLEVBQUUsSUFBSSxHQUFHLEVBQUU7WUFDMUIsY0FBYyxFQUFFLElBQUksR0FBRyxFQUFFO1lBQ3pCLGFBQWEsRUFBRSxJQUFJLEdBQUcsRUFBRTtTQUMzQixDQUFDO1FBQ0YsVUFBVSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDdEIsT0FBTyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQ25CLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFO2dCQUNiLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDO2dCQUN4QixPQUFPLE1BQU0sQ0FBQztZQUNsQixDQUFDLEVBQ0QsRUFBc0MsQ0FDekMsQ0FBQztRQUNOLENBQUMsQ0FBQztRQUNGLFNBQVMsRUFBRSxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3JCLE9BQU8sTUFBTSxFQUFFLENBQUMsTUFBTSxDQUNsQixDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRTtnQkFDYixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQztnQkFDeEIsT0FBTyxNQUFNLENBQUM7WUFDbEIsQ0FBQyxFQUNELEVBQXFDLENBQ3hDLENBQUM7UUFDTixDQUFDLENBQUM7UUFDRixpQkFBaUIsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzdCLGVBQWUsRUFBRSxNQUFNLENBQUMsRUFBRSxDQUFDO0tBQzlCLENBQUM7SUFDRixPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgV3JpdGFibGVTaWduYWwsIGNvbXB1dGVkLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFJVGFibGUsIEFJVGFibGVGaWVsZCwgQUlUYWJsZUZpZWxkcywgQUlUYWJsZVJlY29yZCwgQUlUYWJsZVJlY29yZHMgfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBSVRhYmxlKHJlY29yZHM6IFdyaXRhYmxlU2lnbmFsPEFJVGFibGVSZWNvcmRzPiwgZmllbGRzOiBXcml0YWJsZVNpZ25hbDxBSVRhYmxlRmllbGRzPik6IEFJVGFibGUge1xuICAgIGNvbnN0IGFpVGFibGU6IEFJVGFibGUgPSB7XG4gICAgICAgIHJlY29yZHMsXG4gICAgICAgIGZpZWxkcyxcbiAgICAgICAgc2VsZWN0aW9uOiBzaWduYWwoe1xuICAgICAgICAgICAgc2VsZWN0ZWRSZWNvcmRzOiBuZXcgTWFwKCksXG4gICAgICAgICAgICBzZWxlY3RlZEZpZWxkczogbmV3IE1hcCgpLFxuICAgICAgICAgICAgc2VsZWN0ZWRDZWxsczogbmV3IE1hcCgpXG4gICAgICAgIH0pLFxuICAgICAgICByZWNvcmRzTWFwOiBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gcmVjb3JkcygpLnJlZHVjZShcbiAgICAgICAgICAgICAgICAob2JqZWN0LCBpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9iamVjdFtpdGVtLl9pZF0gPSBpdGVtO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JqZWN0O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge30gYXMgeyBba2F5OiBzdHJpbmddOiBBSVRhYmxlUmVjb3JkIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaWVsZHNNYXA6IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmaWVsZHMoKS5yZWR1Y2UoXG4gICAgICAgICAgICAgICAgKG9iamVjdCwgaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvYmplY3RbaXRlbS5faWRdID0gaXRlbTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHt9IGFzIHsgW2theTogc3RyaW5nXTogQUlUYWJsZUZpZWxkIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pLFxuICAgICAgICByZWNvcmRzV2lsbEhpZGRlbjogc2lnbmFsKFtdKSxcbiAgICAgICAgcmVjb3Jkc1dpbGxNb3ZlOiBzaWduYWwoW10pXG4gICAgfTtcbiAgICByZXR1cm4gYWlUYWJsZTtcbn1cbiJdfQ==
@@ -2,7 +2,8 @@ import { FieldOptions } from '../constants/field';
2
2
  import { AITableFieldType } from '../types';
3
3
  import { idCreator } from './id-creator';
4
4
  export function getDefaultFieldValue(field) {
5
- if ([AITableFieldType.select, AITableFieldType.member, AITableFieldType.createdBy, AITableFieldType.updatedBy].includes(field.type)) {
5
+ if ([AITableFieldType.member, AITableFieldType.createdBy, AITableFieldType.updatedBy].includes(field.type) ||
6
+ (AITableFieldType.select === field.type && field.settings.is_multiple)) {
6
7
  return [];
7
8
  }
8
9
  return '';
@@ -18,13 +19,16 @@ export function createDefaultFieldName(aiTable, field) {
18
19
  return FieldOptions[0].name;
19
20
  }
20
21
  export function getFieldOptionByField(field) {
21
- return FieldOptions.find(item => isSameFieldOption(item, field));
22
+ return FieldOptions.find((item) => isSameFieldOption(item, field));
22
23
  }
23
24
  export function isSameFieldOption(fieldOption, field) {
24
- return fieldOption.type === field.type && (fieldOption.type === AITableFieldType.select ? !!fieldOption.settings?.is_multiple === !!field.settings?.is_multiple : true);
25
+ return (fieldOption.type === field.type &&
26
+ (fieldOption.type === AITableFieldType.select
27
+ ? !!fieldOption.settings?.is_multiple === !!field.settings?.is_multiple
28
+ : true));
25
29
  }
26
30
  export function createDefaultField(aiTable, type = AITableFieldType.text) {
27
- const fieldOption = FieldOptions.find(item => item.type === type);
31
+ const fieldOption = FieldOptions.find((item) => item.type === type);
28
32
  return { _id: idCreator(), type, name: createDefaultFieldName(aiTable, fieldOption) };
29
33
  }
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3V0aWxzL2ZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQTZDLGdCQUFnQixFQUFjLE1BQU0sVUFBVSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQW1CO0lBQ3BELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEksT0FBTyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUM7QUFDZCxDQUFDO0FBRUQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE9BQWdCLEVBQUUsS0FBeUI7SUFDOUUsTUFBTSxXQUFXLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakQsSUFBRyxXQUFXLEVBQUMsQ0FBQztRQUNaLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUMzQyxPQUFPLGlCQUFpQixDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQTtRQUN6QyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDVixPQUFPLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLFdBQVcsQ0FBQyxJQUFJLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztJQUMxRSxDQUFDO0lBQ0QsT0FBTyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQ2hDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsS0FBNEI7SUFDOUQsT0FBTyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQSxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7QUFDcEUsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxXQUErQixFQUFFLEtBQTRCO0lBQzNGLE9BQU8sV0FBVyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBRSxXQUFXLENBQUMsUUFBdUIsRUFBRSxXQUFXLEtBQUssQ0FBQyxDQUFFLEtBQUssQ0FBQyxRQUF1QixFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUE7QUFDM00sQ0FBQztBQUVELE1BQU0sVUFBVSxrQkFBa0IsQ0FBQyxPQUFnQixFQUFFLE9BQXlCLGdCQUFnQixDQUFDLElBQUk7SUFDL0YsTUFBTSxXQUFXLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUEsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFFLENBQUM7SUFDbEUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDO0FBQzFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZE9wdGlvbnMgfSBmcm9tICcuLi9jb25zdGFudHMvZmllbGQnO1xuaW1wb3J0IHsgQUlUYWJsZSwgQUlUYWJsZUZpZWxkLCBBSVRhYmxlRmllbGRPcHRpb24sIEFJVGFibGVGaWVsZFR5cGUsIElzTXVsdGlwbGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpZENyZWF0b3IgfSBmcm9tICcuL2lkLWNyZWF0b3InO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdEZpZWxkVmFsdWUoZmllbGQ6IEFJVGFibGVGaWVsZCkge1xuICAgIGlmIChbQUlUYWJsZUZpZWxkVHlwZS5zZWxlY3QsIEFJVGFibGVGaWVsZFR5cGUubWVtYmVyLCBBSVRhYmxlRmllbGRUeXBlLmNyZWF0ZWRCeSwgQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQnldLmluY2x1ZGVzKGZpZWxkLnR5cGUpKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdEZpZWxkTmFtZShhaVRhYmxlOiBBSVRhYmxlLCBmaWVsZDogQUlUYWJsZUZpZWxkT3B0aW9uKSB7XG4gICAgY29uc3QgZmllbGRPcHRpb24gPSBnZXRGaWVsZE9wdGlvbkJ5RmllbGQoZmllbGQpO1xuICAgIGlmKGZpZWxkT3B0aW9uKXtcbiAgICAgICAgY29uc3QgY291bnQgPSBhaVRhYmxlLmZpZWxkcygpLmZpbHRlcigoaXRlbSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGlzU2FtZUZpZWxkT3B0aW9uKGZpZWxkLCBpdGVtKVxuICAgICAgICB9KS5sZW5ndGg7XG4gICAgICAgIHJldHVybiBjb3VudCA9PT0gMCA/IGZpZWxkT3B0aW9uLm5hbWUgOmZpZWxkT3B0aW9uLm5hbWUgKyAnICcgKyBjb3VudDtcbiAgICB9XG4gICAgcmV0dXJuIEZpZWxkT3B0aW9uc1swXS5uYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmllbGRPcHRpb25CeUZpZWxkKGZpZWxkOiBQYXJ0aWFsPEFJVGFibGVGaWVsZD4pe1xuICAgIHJldHVybiBGaWVsZE9wdGlvbnMuZmluZChpdGVtPT4gaXNTYW1lRmllbGRPcHRpb24oaXRlbSwgZmllbGQpKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzU2FtZUZpZWxkT3B0aW9uKGZpZWxkT3B0aW9uOiBBSVRhYmxlRmllbGRPcHRpb24sIGZpZWxkOiBQYXJ0aWFsPEFJVGFibGVGaWVsZD4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gZmllbGRPcHRpb24udHlwZSA9PT0gZmllbGQudHlwZSAmJiAoZmllbGRPcHRpb24udHlwZSA9PT0gQUlUYWJsZUZpZWxkVHlwZS5zZWxlY3QgPyAhIShmaWVsZE9wdGlvbi5zZXR0aW5ncyBhcyBJc011bHRpcGxlKT8uaXNfbXVsdGlwbGUgPT09ICEhKGZpZWxkLnNldHRpbmdzIGFzIElzTXVsdGlwbGUpPy5pc19tdWx0aXBsZSA6IHRydWUpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWZhdWx0RmllbGQoYWlUYWJsZTogQUlUYWJsZSwgdHlwZTogQUlUYWJsZUZpZWxkVHlwZSA9IEFJVGFibGVGaWVsZFR5cGUudGV4dCkge1xuICAgIGNvbnN0IGZpZWxkT3B0aW9uID0gRmllbGRPcHRpb25zLmZpbmQoaXRlbT0+IGl0ZW0udHlwZSA9PT0gdHlwZSkhO1xuICAgIHJldHVybiB7IF9pZDogaWRDcmVhdG9yKCksIHR5cGUsIG5hbWU6IGNyZWF0ZURlZmF1bHRGaWVsZE5hbWUoYWlUYWJsZSwgZmllbGRPcHRpb24pIH07XG59XG4iXX0=
34
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3V0aWxzL2ZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQTZDLGdCQUFnQixFQUFjLE1BQU0sVUFBVSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFekMsTUFBTSxVQUFVLG9CQUFvQixDQUFDLEtBQW1CO0lBQ3BELElBQ0ksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO1FBQ3RHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxJQUFJLElBQUssS0FBSyxDQUFDLFFBQXVCLENBQUMsV0FBVyxDQUFDLEVBQ3hGLENBQUM7UUFDQyxPQUFPLEVBQUUsQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLEVBQUUsQ0FBQztBQUNkLENBQUM7QUFFRCxNQUFNLFVBQVUsc0JBQXNCLENBQUMsT0FBZ0IsRUFBRSxLQUF5QjtJQUM5RSxNQUFNLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqRCxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2QsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzNDLE9BQU8saUJBQWlCLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNWLE9BQU8sS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxDQUFDLElBQUksR0FBRyxHQUFHLEdBQUcsS0FBSyxDQUFDO0lBQzNFLENBQUM7SUFDRCxPQUFPLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDaEMsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FBQyxLQUE0QjtJQUM5RCxPQUFPLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsV0FBK0IsRUFBRSxLQUE0QjtJQUMzRixPQUFPLENBQ0gsV0FBVyxDQUFDLElBQUksS0FBSyxLQUFLLENBQUMsSUFBSTtRQUMvQixDQUFDLFdBQVcsQ0FBQyxJQUFJLEtBQUssZ0JBQWdCLENBQUMsTUFBTTtZQUN6QyxDQUFDLENBQUMsQ0FBQyxDQUFFLFdBQVcsQ0FBQyxRQUF1QixFQUFFLFdBQVcsS0FBSyxDQUFDLENBQUUsS0FBSyxDQUFDLFFBQXVCLEVBQUUsV0FBVztZQUN2RyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ2QsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCLENBQUMsT0FBZ0IsRUFBRSxPQUF5QixnQkFBZ0IsQ0FBQyxJQUFJO0lBQy9GLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFFLENBQUM7SUFDckUsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDO0FBQzFGLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGaWVsZE9wdGlvbnMgfSBmcm9tICcuLi9jb25zdGFudHMvZmllbGQnO1xuaW1wb3J0IHsgQUlUYWJsZSwgQUlUYWJsZUZpZWxkLCBBSVRhYmxlRmllbGRPcHRpb24sIEFJVGFibGVGaWVsZFR5cGUsIElzTXVsdGlwbGUgfSBmcm9tICcuLi90eXBlcyc7XG5pbXBvcnQgeyBpZENyZWF0b3IgfSBmcm9tICcuL2lkLWNyZWF0b3InO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RGVmYXVsdEZpZWxkVmFsdWUoZmllbGQ6IEFJVGFibGVGaWVsZCkge1xuICAgIGlmIChcbiAgICAgICAgW0FJVGFibGVGaWVsZFR5cGUubWVtYmVyLCBBSVRhYmxlRmllbGRUeXBlLmNyZWF0ZWRCeSwgQUlUYWJsZUZpZWxkVHlwZS51cGRhdGVkQnldLmluY2x1ZGVzKGZpZWxkLnR5cGUpIHx8XG4gICAgICAgIChBSVRhYmxlRmllbGRUeXBlLnNlbGVjdCA9PT0gZmllbGQudHlwZSAmJiAoZmllbGQuc2V0dGluZ3MgYXMgSXNNdWx0aXBsZSkuaXNfbXVsdGlwbGUpXG4gICAgKSB7XG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlRGVmYXVsdEZpZWxkTmFtZShhaVRhYmxlOiBBSVRhYmxlLCBmaWVsZDogQUlUYWJsZUZpZWxkT3B0aW9uKSB7XG4gICAgY29uc3QgZmllbGRPcHRpb24gPSBnZXRGaWVsZE9wdGlvbkJ5RmllbGQoZmllbGQpO1xuICAgIGlmIChmaWVsZE9wdGlvbikge1xuICAgICAgICBjb25zdCBjb3VudCA9IGFpVGFibGUuZmllbGRzKCkuZmlsdGVyKChpdGVtKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gaXNTYW1lRmllbGRPcHRpb24oZmllbGQsIGl0ZW0pO1xuICAgICAgICB9KS5sZW5ndGg7XG4gICAgICAgIHJldHVybiBjb3VudCA9PT0gMCA/IGZpZWxkT3B0aW9uLm5hbWUgOiBmaWVsZE9wdGlvbi5uYW1lICsgJyAnICsgY291bnQ7XG4gICAgfVxuICAgIHJldHVybiBGaWVsZE9wdGlvbnNbMF0ubmFtZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpZWxkT3B0aW9uQnlGaWVsZChmaWVsZDogUGFydGlhbDxBSVRhYmxlRmllbGQ+KSB7XG4gICAgcmV0dXJuIEZpZWxkT3B0aW9ucy5maW5kKChpdGVtKSA9PiBpc1NhbWVGaWVsZE9wdGlvbihpdGVtLCBmaWVsZCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNTYW1lRmllbGRPcHRpb24oZmllbGRPcHRpb246IEFJVGFibGVGaWVsZE9wdGlvbiwgZmllbGQ6IFBhcnRpYWw8QUlUYWJsZUZpZWxkPik6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIGZpZWxkT3B0aW9uLnR5cGUgPT09IGZpZWxkLnR5cGUgJiZcbiAgICAgICAgKGZpZWxkT3B0aW9uLnR5cGUgPT09IEFJVGFibGVGaWVsZFR5cGUuc2VsZWN0XG4gICAgICAgICAgICA/ICEhKGZpZWxkT3B0aW9uLnNldHRpbmdzIGFzIElzTXVsdGlwbGUpPy5pc19tdWx0aXBsZSA9PT0gISEoZmllbGQuc2V0dGluZ3MgYXMgSXNNdWx0aXBsZSk/LmlzX211bHRpcGxlXG4gICAgICAgICAgICA6IHRydWUpXG4gICAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZURlZmF1bHRGaWVsZChhaVRhYmxlOiBBSVRhYmxlLCB0eXBlOiBBSVRhYmxlRmllbGRUeXBlID0gQUlUYWJsZUZpZWxkVHlwZS50ZXh0KSB7XG4gICAgY29uc3QgZmllbGRPcHRpb24gPSBGaWVsZE9wdGlvbnMuZmluZCgoaXRlbSkgPT4gaXRlbS50eXBlID09PSB0eXBlKSE7XG4gICAgcmV0dXJuIHsgX2lkOiBpZENyZWF0b3IoKSwgdHlwZSwgbmFtZTogY3JlYXRlRGVmYXVsdEZpZWxkTmFtZShhaVRhYmxlLCBmaWVsZE9wdGlvbikgfTtcbn1cbiJdfQ==
@@ -1,7 +1,6 @@
1
1
  export * from './id-creator';
2
2
  export * from './field';
3
3
  export * from './common';
4
- export * from './weak-map';
5
4
  export * from './record';
6
5
  export * from './queries';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsWUFBWSxDQUFBO0FBQzFCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsV0FBVyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pZC1jcmVhdG9yJ1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZCdcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uJ1xuZXhwb3J0ICogZnJvbSAnLi93ZWFrLW1hcCdcbmV4cG9ydCAqIGZyb20gJy4vcmVjb3JkJ1xuZXhwb3J0ICogZnJvbSAnLi9xdWVyaWVzJyJdfQ==
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb3JlL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFBO0FBQzVCLGNBQWMsU0FBUyxDQUFBO0FBQ3ZCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsV0FBVyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pZC1jcmVhdG9yJ1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZCdcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uJ1xuZXhwb3J0ICogZnJvbSAnLi9yZWNvcmQnXG5leHBvcnQgKiBmcm9tICcuL3F1ZXJpZXMnIl19
@@ -27,11 +27,11 @@ export const AITableQueries = {
27
27
  if (!path) {
28
28
  throw new Error(`path does not exist as path [${path}]`);
29
29
  }
30
- const recordIndex = aiTable.records().findIndex((item) => item._id === path[0]);
31
- if (recordIndex < 0) {
30
+ const record = aiTable.recordsMap()[path[0]];
31
+ if (!record) {
32
32
  throw new Error(`can not find record at path [${path}]`);
33
33
  }
34
- return aiTable.records()[recordIndex].values[path[1]];
34
+ return record.values[path[1]];
35
35
  },
36
36
  getField(aiTable, path) {
37
37
  if (!aiTable) {
@@ -52,4 +52,4 @@ export const AITableQueries = {
52
52
  return aiTable.records()[path[0]];
53
53
  }
54
54
  };
55
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvdXRpbHMvcXVlcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdwRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDMUIsY0FBYyxDQUFDLE9BQWdCLEVBQUUsTUFBcUI7UUFDbEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RELE9BQU8sQ0FBQyxXQUFXLENBQWlCLENBQUM7UUFDekMsQ0FBQztRQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsaUNBQWlDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUNELGFBQWEsQ0FBQyxPQUFnQixFQUFFLEtBQW1CO1FBQy9DLE1BQU0sVUFBVSxHQUFHLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxVQUFVLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwRCxPQUFPLENBQUMsVUFBVSxDQUFnQixDQUFDO1FBQ3ZDLENBQUM7UUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVGLENBQUM7SUFDRCxhQUFhLENBQUMsT0FBZ0IsRUFBRSxJQUF3QjtRQUNwRCxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUNyQixNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNwQixNQUFNLElBQUksS0FBSyxDQUFDLHVCQUF1QixDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxXQUFXLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxRQUFRLENBQUMsT0FBZ0IsRUFBRSxJQUFtQjtRQUMxQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNSLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLElBQUksR0FBRyxDQUFDLENBQUM7UUFDN0QsQ0FBQztRQUNELE9BQU8sT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUEsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFnQixFQUFFLElBQWtCO1FBQzFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEMsQ0FBQztDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc1VuZGVmaW5lZE9yTnVsbCB9IGZyb20gJ25neC10ZXRoeXMvdXRpbCc7XG5pbXBvcnQgeyBBSVRhYmxlLCBBSVRhYmxlRmllbGQsIEFJVGFibGVSZWNvcmQsIEFJRmllbGRWYWx1ZUlkUGF0aCwgQUlSZWNvcmRQYXRoLCBBSUZpZWxkUGF0aCwgQUlGaWVsZElkUGF0aCB9IGZyb20gJy4uL3R5cGVzJztcblxuZXhwb3J0IGNvbnN0IEFJVGFibGVRdWVyaWVzID0ge1xuICAgIGZpbmRSZWNvcmRQYXRoKGFpVGFibGU6IEFJVGFibGUsIHJlY29yZDogQUlUYWJsZVJlY29yZCkge1xuICAgICAgICBjb25zdCByZWNvcmRJbmRleCA9IHJlY29yZCAmJiBhaVRhYmxlLnJlY29yZHMoKS5pbmRleE9mKHJlY29yZCk7XG4gICAgICAgIGlmICghaXNVbmRlZmluZWRPck51bGwocmVjb3JkSW5kZXgpICYmIHJlY29yZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBbcmVjb3JkSW5kZXhdIGFzIEFJUmVjb3JkUGF0aDtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNhbiBub3QgZmluZCB0aGUgcmVjb3JkIHBhdGg6ICR7SlNPTi5zdHJpbmdpZnkoeyAuLi4ocmVjb3JkIHx8IHt9KSB9KX1gKTtcbiAgICB9LFxuICAgIGZpbmRGaWVsZFBhdGgoYWlUYWJsZTogQUlUYWJsZSwgZmllbGQ6IEFJVGFibGVGaWVsZCkge1xuICAgICAgICBjb25zdCBmaWVsZEluZGV4ID0gZmllbGQgJiYgYWlUYWJsZS5maWVsZHMoKS5pbmRleE9mKGZpZWxkKTtcbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChmaWVsZEluZGV4KSAmJiBmaWVsZEluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgIHJldHVybiBbZmllbGRJbmRleF0gYXMgQUlGaWVsZFBhdGg7XG4gICAgICAgIH1cbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjYW4gbm90IGZpbmQgdGhlIGZpZWxkIHBhdGg6ICR7SlNPTi5zdHJpbmdpZnkoeyAuLi4oZmllbGQgfHwge30pIH0pfWApO1xuICAgIH0sXG4gICAgZ2V0RmllbGRWYWx1ZShhaVRhYmxlOiBBSVRhYmxlLCBwYXRoOiBBSUZpZWxkVmFsdWVJZFBhdGgpOiBhbnkge1xuICAgICAgICBpZiAoIWFpVGFibGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYWlUYWJsZSBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYWlUYWJsZS5yZWNvcmRzKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYWlUYWJsZSBoYXMgbm8gcmVjb3Jkc2ApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghYWlUYWJsZS5maWVsZHMoKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBhaVRhYmxlIGhhcyBubyBmaWVsZHNgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcGF0aCBkb2VzIG5vdCBleGlzdCBhcyBwYXRoIFske3BhdGh9XWApO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHJlY29yZEluZGV4ID0gYWlUYWJsZS5yZWNvcmRzKCkuZmluZEluZGV4KChpdGVtKSA9PiBpdGVtLl9pZCA9PT0gcGF0aFswXSk7XG4gICAgICAgIGlmIChyZWNvcmRJbmRleCA8IDApIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG5vdCBmaW5kIHJlY29yZCBhdCBwYXRoIFske3BhdGh9XWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhaVRhYmxlLnJlY29yZHMoKVtyZWNvcmRJbmRleF0udmFsdWVzW3BhdGhbMV1dO1xuICAgIH0sXG5cbiAgICBnZXRGaWVsZChhaVRhYmxlOiBBSVRhYmxlLCBwYXRoOiBBSUZpZWxkSWRQYXRoKTogQUlUYWJsZUZpZWxkIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgaWYgKCFhaVRhYmxlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGFpVGFibGUgZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXBhdGgpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgcGF0aCBkb2VzIG5vdCBleGlzdCBhcyBwYXRoIFske3BhdGh9XWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhaVRhYmxlLmZpZWxkcygpLmZpbmQoaXRlbT0+IGl0ZW0uX2lkID09PSBwYXRoWzBdKTtcbiAgICB9LFxuXG4gICAgZ2V0UmVjb3JkKGFpVGFibGU6IEFJVGFibGUsIHBhdGg6IEFJUmVjb3JkUGF0aCk6IEFJVGFibGVSZWNvcmQge1xuICAgICAgICBpZiAoIWFpVGFibGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYWlUYWJsZSBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwYXRoIGRvZXMgbm90IGV4aXN0IGFzIHBhdGggWyR7cGF0aH1dYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFpVGFibGUucmVjb3JkcygpW3BhdGhbMF1dO1xuICAgIH1cbn07XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcmllcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvcmUvdXRpbHMvcXVlcmllcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUdwRCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUc7SUFDMUIsY0FBYyxDQUFDLE9BQWdCLEVBQUUsTUFBcUI7UUFDbEQsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFdBQVcsQ0FBQyxJQUFJLFdBQVcsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3RELE9BQU8sQ0FBQyxXQUFXLENBQWUsQ0FBQztRQUN2QyxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQ0FBaUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBQ0QsYUFBYSxDQUFDLE9BQWdCLEVBQUUsS0FBbUI7UUFDL0MsTUFBTSxVQUFVLEdBQUcsS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLFVBQVUsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ3BELE9BQU8sQ0FBQyxVQUFVLENBQWUsQ0FBQztRQUN0QyxDQUFDO1FBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBQ0QsYUFBYSxDQUFDLE9BQWdCLEVBQUUsSUFBd0I7UUFDcEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDcEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ1YsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxRQUFRLENBQUMsT0FBZ0IsRUFBRSxJQUFZO1FBQ25DLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNYLE1BQU0sSUFBSSxLQUFLLENBQUMsd0JBQXdCLENBQUMsQ0FBQztRQUM5QyxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1IsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsSUFBSSxHQUFHLENBQUMsQ0FBQztRQUM3RCxDQUFDO1FBQ0QsT0FBTyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsU0FBUyxDQUFDLE9BQWdCLEVBQUUsSUFBZ0I7UUFDeEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ1gsTUFBTSxJQUFJLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUFDLGdDQUFnQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1FBQzdELENBQUM7UUFDRCxPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QyxDQUFDO0NBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzVW5kZWZpbmVkT3JOdWxsIH0gZnJvbSAnbmd4LXRldGh5cy91dGlsJztcbmltcG9ydCB7IEFJVGFibGUsIEFJVGFibGVGaWVsZCwgQUlUYWJsZVJlY29yZCwgQUlGaWVsZFZhbHVlSWRQYXRoLCBJZFBhdGgsIE51bWJlclBhdGggfSBmcm9tICcuLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBBSVRhYmxlUXVlcmllcyA9IHtcbiAgICBmaW5kUmVjb3JkUGF0aChhaVRhYmxlOiBBSVRhYmxlLCByZWNvcmQ6IEFJVGFibGVSZWNvcmQpIHtcbiAgICAgICAgY29uc3QgcmVjb3JkSW5kZXggPSByZWNvcmQgJiYgYWlUYWJsZS5yZWNvcmRzKCkuaW5kZXhPZihyZWNvcmQpO1xuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKHJlY29yZEluZGV4KSAmJiByZWNvcmRJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gW3JlY29yZEluZGV4XSBhcyBOdW1iZXJQYXRoO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG5vdCBmaW5kIHRoZSByZWNvcmQgcGF0aDogJHtKU09OLnN0cmluZ2lmeSh7IC4uLihyZWNvcmQgfHwge30pIH0pfWApO1xuICAgIH0sXG4gICAgZmluZEZpZWxkUGF0aChhaVRhYmxlOiBBSVRhYmxlLCBmaWVsZDogQUlUYWJsZUZpZWxkKSB7XG4gICAgICAgIGNvbnN0IGZpZWxkSW5kZXggPSBmaWVsZCAmJiBhaVRhYmxlLmZpZWxkcygpLmluZGV4T2YoZmllbGQpO1xuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkT3JOdWxsKGZpZWxkSW5kZXgpICYmIGZpZWxkSW5kZXggPiAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIFtmaWVsZEluZGV4XSBhcyBOdW1iZXJQYXRoO1xuICAgICAgICB9XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG5vdCBmaW5kIHRoZSBmaWVsZCBwYXRoOiAke0pTT04uc3RyaW5naWZ5KHsgLi4uKGZpZWxkIHx8IHt9KSB9KX1gKTtcbiAgICB9LFxuICAgIGdldEZpZWxkVmFsdWUoYWlUYWJsZTogQUlUYWJsZSwgcGF0aDogQUlGaWVsZFZhbHVlSWRQYXRoKTogYW55IHtcbiAgICAgICAgaWYgKCFhaVRhYmxlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGFpVGFibGUgZG9lcyBub3QgZXhpc3RgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFpVGFibGUucmVjb3JkcygpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGFpVGFibGUgaGFzIG5vIHJlY29yZHNgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWFpVGFibGUuZmllbGRzKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYWlUYWJsZSBoYXMgbm8gZmllbGRzYCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFwYXRoKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYHBhdGggZG9lcyBub3QgZXhpc3QgYXMgcGF0aCBbJHtwYXRofV1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCByZWNvcmQgPSBhaVRhYmxlLnJlY29yZHNNYXAoKVtwYXRoWzBdXTtcbiAgICAgICAgaWYgKCFyZWNvcmQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY2FuIG5vdCBmaW5kIHJlY29yZCBhdCBwYXRoIFske3BhdGh9XWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZWNvcmQudmFsdWVzW3BhdGhbMV1dO1xuICAgIH0sXG5cbiAgICBnZXRGaWVsZChhaVRhYmxlOiBBSVRhYmxlLCBwYXRoOiBJZFBhdGgpOiBBSVRhYmxlRmllbGQgfCB1bmRlZmluZWQge1xuICAgICAgICBpZiAoIWFpVGFibGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYWlUYWJsZSBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwYXRoIGRvZXMgbm90IGV4aXN0IGFzIHBhdGggWyR7cGF0aH1dYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFpVGFibGUuZmllbGRzKCkuZmluZChpdGVtPT4gaXRlbS5faWQgPT09IHBhdGhbMF0pO1xuICAgIH0sXG5cbiAgICBnZXRSZWNvcmQoYWlUYWJsZTogQUlUYWJsZSwgcGF0aDogTnVtYmVyUGF0aCk6IEFJVGFibGVSZWNvcmQge1xuICAgICAgICBpZiAoIWFpVGFibGUpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgYWlUYWJsZSBkb2VzIG5vdCBleGlzdGApO1xuICAgICAgICB9XG4gICAgICAgIGlmICghcGF0aCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBwYXRoIGRvZXMgbm90IGV4aXN0IGFzIHBhdGggWyR7cGF0aH1dYCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFpVGFibGUucmVjb3JkcygpW3BhdGhbMF1dO1xuICAgIH1cbn07XG4iXX0=