amis 1.9.0-beta.12 → 1.9.0-beta.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (365) hide show
  1. package/lib/Schema.d.ts +4 -2
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/SchemaRenderer.d.ts +2 -2
  4. package/lib/SchemaRenderer.js +3 -3
  5. package/lib/SchemaRenderer.js.map +2 -2
  6. package/lib/actions/Action.d.ts +8 -6
  7. package/lib/actions/Action.js.map +2 -2
  8. package/lib/actions/AjaxAction.d.ts +10 -7
  9. package/lib/actions/AjaxAction.js +27 -21
  10. package/lib/actions/AjaxAction.js.map +2 -2
  11. package/lib/actions/BreakAction.d.ts +2 -2
  12. package/lib/actions/BreakAction.js.map +1 -1
  13. package/lib/actions/BroadcastAction.d.ts +3 -3
  14. package/lib/actions/BroadcastAction.js +3 -2
  15. package/lib/actions/BroadcastAction.js.map +2 -2
  16. package/lib/actions/CmptAction.d.ts +2 -2
  17. package/lib/actions/CmptAction.js +7 -9
  18. package/lib/actions/CmptAction.js.map +2 -2
  19. package/lib/actions/ContinueAction.d.ts +2 -2
  20. package/lib/actions/ContinueAction.js.map +1 -1
  21. package/lib/actions/CopyAction.d.ts +7 -4
  22. package/lib/actions/CopyAction.js +8 -6
  23. package/lib/actions/CopyAction.js.map +2 -2
  24. package/lib/actions/CustomAction.d.ts +2 -2
  25. package/lib/actions/CustomAction.js.map +1 -1
  26. package/lib/actions/DialogAction.d.ts +14 -8
  27. package/lib/actions/DialogAction.js +6 -6
  28. package/lib/actions/DialogAction.js.map +2 -2
  29. package/lib/actions/DrawerAction.d.ts +3 -3
  30. package/lib/actions/DrawerAction.js.map +1 -1
  31. package/lib/actions/EmailAction.d.ts +10 -7
  32. package/lib/actions/EmailAction.js +4 -5
  33. package/lib/actions/EmailAction.js.map +2 -2
  34. package/lib/actions/LinkAction.d.ts +19 -11
  35. package/lib/actions/LinkAction.js +6 -5
  36. package/lib/actions/LinkAction.js.map +2 -2
  37. package/lib/actions/LoopAction.d.ts +6 -3
  38. package/lib/actions/LoopAction.js +22 -20
  39. package/lib/actions/LoopAction.js.map +2 -2
  40. package/lib/actions/PageAction.d.ts +8 -5
  41. package/lib/actions/PageAction.js +3 -2
  42. package/lib/actions/PageAction.js.map +2 -2
  43. package/lib/actions/ParallelAction.d.ts +2 -2
  44. package/lib/actions/ParallelAction.js.map +1 -1
  45. package/lib/actions/SwitchAction.d.ts +2 -2
  46. package/lib/actions/SwitchAction.js.map +1 -1
  47. package/lib/actions/ToastAction.d.ts +2 -2
  48. package/lib/actions/ToastAction.js +6 -4
  49. package/lib/actions/ToastAction.js.map +2 -2
  50. package/lib/components/Editor.d.ts +84 -84
  51. package/lib/components/InputBox.js +1 -1
  52. package/lib/components/InputBox.js.map +2 -2
  53. package/lib/components/Pagination.d.ts +1175 -0
  54. package/lib/components/Pagination.js +274 -0
  55. package/lib/components/Pagination.js.map +13 -0
  56. package/lib/components/PickerContainer.d.ts +1 -0
  57. package/lib/components/PickerContainer.js +3 -2
  58. package/lib/components/PickerContainer.js.map +2 -2
  59. package/lib/components/Rating.js +11 -9
  60. package/lib/components/Rating.js.map +2 -2
  61. package/lib/components/Select.js +3 -3
  62. package/lib/components/Select.js.map +2 -2
  63. package/lib/components/Tag.d.ts +148 -0
  64. package/lib/components/Tag.js +96 -0
  65. package/lib/components/Tag.js.map +13 -0
  66. package/lib/components/TooltipWrapper.d.ts +25 -21
  67. package/lib/components/TooltipWrapper.js +11 -1
  68. package/lib/components/TooltipWrapper.js.map +2 -2
  69. package/lib/components/TransferDropDown.d.ts +85 -84
  70. package/lib/components/TransferDropDown.js +2 -2
  71. package/lib/components/TransferDropDown.js.map +2 -2
  72. package/lib/components/Tree.d.ts +84 -84
  73. package/lib/components/formula/VariableList.d.ts +1 -0
  74. package/lib/components/formula/VariableList.js.map +2 -2
  75. package/lib/components/icons.js +2 -0
  76. package/lib/components/icons.js.map +2 -2
  77. package/lib/components/index.d.ts +4 -1
  78. package/lib/components/index.js +7 -1
  79. package/lib/components/index.js.map +2 -2
  80. package/lib/components/schema-editor/Array.d.ts +11 -0
  81. package/lib/components/schema-editor/Array.js +66 -0
  82. package/lib/components/schema-editor/Array.js.map +13 -0
  83. package/lib/components/schema-editor/Common.d.ts +29 -0
  84. package/lib/components/schema-editor/Common.js +69 -0
  85. package/lib/components/schema-editor/Common.js.map +13 -0
  86. package/lib/components/schema-editor/Item.d.ts +9 -0
  87. package/lib/components/schema-editor/Item.js +31 -0
  88. package/lib/components/schema-editor/Item.js.map +13 -0
  89. package/lib/components/schema-editor/Object.d.ts +44 -0
  90. package/lib/components/schema-editor/Object.js +191 -0
  91. package/lib/components/schema-editor/Object.js.map +13 -0
  92. package/lib/components/schema-editor/SchemaVariableList.d.ts +316 -0
  93. package/lib/components/schema-editor/SchemaVariableList.js +74 -0
  94. package/lib/components/schema-editor/SchemaVariableList.js.map +13 -0
  95. package/lib/components/schema-editor/SchemaVariableListPicker.d.ts +305 -0
  96. package/lib/components/schema-editor/SchemaVariableListPicker.js +32 -0
  97. package/lib/components/schema-editor/SchemaVariableListPicker.js.map +13 -0
  98. package/lib/components/schema-editor/index.d.ts +520 -0
  99. package/lib/components/schema-editor/index.js +118 -0
  100. package/lib/components/schema-editor/index.js.map +13 -0
  101. package/lib/components/table/Cell.d.ts +930 -0
  102. package/lib/components/table/Cell.js +36 -0
  103. package/lib/components/table/Cell.js.map +13 -0
  104. package/lib/components/table/HeadCellDropDown.d.ts +514 -0
  105. package/lib/components/table/HeadCellDropDown.js +52 -0
  106. package/lib/components/table/HeadCellDropDown.js.map +13 -0
  107. package/lib/components/table/HeadCellFilter.d.ts +771 -0
  108. package/lib/components/table/HeadCellFilter.js +106 -0
  109. package/lib/components/table/HeadCellFilter.js.map +13 -0
  110. package/lib/components/table/HeadCellSelect.d.ts +672 -0
  111. package/lib/components/table/HeadCellSelect.js +46 -0
  112. package/lib/components/table/HeadCellSelect.js.map +13 -0
  113. package/lib/components/table/HeadCellSort.d.ts +498 -0
  114. package/lib/components/table/HeadCellSort.js +67 -0
  115. package/lib/components/table/HeadCellSort.js.map +13 -0
  116. package/lib/components/table/index.d.ts +1355 -0
  117. package/lib/components/table/index.js +1095 -0
  118. package/lib/components/table/index.js.map +13 -0
  119. package/lib/env.d.ts +2 -4
  120. package/lib/env.js.map +2 -2
  121. package/lib/factory.js +0 -95
  122. package/lib/factory.js.map +2 -2
  123. package/lib/icons/dot.js +11 -0
  124. package/lib/index.d.ts +6 -1
  125. package/lib/index.js +9 -2
  126. package/lib/index.js.map +2 -2
  127. package/lib/locale/de-DE.js +18 -1
  128. package/lib/locale/de-DE.js.map +2 -2
  129. package/lib/locale/en-US.js +18 -1
  130. package/lib/locale/en-US.js.map +2 -2
  131. package/lib/locale/zh-CN.js +20 -1
  132. package/lib/locale/zh-CN.js.map +2 -2
  133. package/lib/renderers/Action.js +0 -2
  134. package/lib/renderers/Action.js.map +2 -2
  135. package/lib/renderers/Carousel.d.ts +5 -1
  136. package/lib/renderers/Carousel.js +18 -5
  137. package/lib/renderers/Carousel.js.map +2 -2
  138. package/lib/renderers/Form/ButtonGroupSelect.d.ts +2 -0
  139. package/lib/renderers/Form/ButtonGroupSelect.js +7 -0
  140. package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
  141. package/lib/renderers/Form/Checkbox.js +3 -4
  142. package/lib/renderers/Form/Checkbox.js.map +2 -2
  143. package/lib/renderers/Form/Checkboxes.d.ts +2 -1
  144. package/lib/renderers/Form/Checkboxes.js +19 -14
  145. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  146. package/lib/renderers/Form/Combo.js +23 -4
  147. package/lib/renderers/Form/Combo.js.map +2 -2
  148. package/lib/renderers/Form/DiffEditor.d.ts +126 -18
  149. package/lib/renderers/Form/Editor.d.ts +412 -112
  150. package/lib/renderers/Form/Editor.js +10 -1
  151. package/lib/renderers/Form/Editor.js.map +2 -2
  152. package/lib/renderers/Form/InputExcel.js +6 -1
  153. package/lib/renderers/Form/InputExcel.js.map +2 -2
  154. package/lib/renderers/Form/InputFile.js +1 -2
  155. package/lib/renderers/Form/InputFile.js.map +2 -2
  156. package/lib/renderers/Form/InputTree.js +1 -1
  157. package/lib/renderers/Form/InputTree.js.map +2 -2
  158. package/lib/renderers/Form/Item.d.ts +0 -6
  159. package/lib/renderers/Form/JSONSchemaEditor.d.ts +41 -0
  160. package/lib/renderers/Form/JSONSchemaEditor.js +33 -0
  161. package/lib/renderers/Form/JSONSchemaEditor.js.map +13 -0
  162. package/lib/renderers/Form/ListSelect.d.ts +2 -0
  163. package/lib/renderers/Form/ListSelect.js +7 -0
  164. package/lib/renderers/Form/ListSelect.js.map +2 -2
  165. package/lib/renderers/Form/Options.js +1 -0
  166. package/lib/renderers/Form/Options.js.map +2 -2
  167. package/lib/renderers/Form/Select.js +12 -1
  168. package/lib/renderers/Form/Select.js.map +2 -2
  169. package/lib/renderers/Form/TabsTransfer.d.ts +1 -1
  170. package/lib/renderers/Form/TabsTransfer.js +2 -2
  171. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  172. package/lib/renderers/Form/TreeSelect.d.ts +4 -0
  173. package/lib/renderers/Form/TreeSelect.js +2 -2
  174. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  175. package/lib/renderers/Form/wrapControl.js +10 -5
  176. package/lib/renderers/Form/wrapControl.js.map +2 -2
  177. package/lib/renderers/Pagination.d.ts +49 -30
  178. package/lib/renderers/Pagination.js +3 -132
  179. package/lib/renderers/Pagination.js.map +2 -2
  180. package/lib/renderers/Table/HeadCellSearchDropdown.js +0 -1
  181. package/lib/renderers/Table/HeadCellSearchDropdown.js.map +2 -2
  182. package/lib/renderers/Table-v2/HeadCellSearchDropdown.d.ts +29 -0
  183. package/lib/renderers/Table-v2/HeadCellSearchDropdown.js +158 -0
  184. package/lib/renderers/Table-v2/HeadCellSearchDropdown.js.map +13 -0
  185. package/lib/renderers/Table-v2/TableCell.d.ts +6 -0
  186. package/lib/renderers/Table-v2/TableCell.js +28 -0
  187. package/lib/renderers/Table-v2/TableCell.js.map +13 -0
  188. package/lib/renderers/Table-v2/index.d.ts +256 -0
  189. package/lib/renderers/Table-v2/index.js +548 -0
  190. package/lib/renderers/Table-v2/index.js.map +13 -0
  191. package/lib/renderers/Tabs.js +1 -1
  192. package/lib/renderers/Tabs.js.map +2 -2
  193. package/lib/renderers/Tag.d.ts +66 -0
  194. package/lib/renderers/Tag.js +53 -0
  195. package/lib/renderers/Tag.js.map +13 -0
  196. package/lib/renderers/Wizard.js +3 -3
  197. package/lib/renderers/Wizard.js.map +2 -2
  198. package/lib/schemaExtend.js +24 -30
  199. package/lib/schemaExtend.js.map +2 -2
  200. package/lib/store/combo.d.ts +140 -20
  201. package/lib/store/form.d.ts +56 -8
  202. package/lib/store/formItem.d.ts +3 -1
  203. package/lib/store/formItem.js +3 -1
  204. package/lib/store/formItem.js.map +2 -2
  205. package/lib/store/index.js +2 -0
  206. package/lib/store/index.js.map +2 -2
  207. package/lib/store/table-v2.d.ts +308 -0
  208. package/lib/store/table-v2.js +452 -0
  209. package/lib/store/table-v2.js.map +13 -0
  210. package/lib/store/table.d.ts +112 -16
  211. package/lib/store/table.js +1 -1
  212. package/lib/store/table.js.map +2 -2
  213. package/lib/themes/ang-ie11.css +1686 -120
  214. package/lib/themes/ang.css +1807 -208
  215. package/lib/themes/ang.css.map +1 -1
  216. package/lib/themes/antd-ie11.css +1667 -101
  217. package/lib/themes/antd.css +1789 -201
  218. package/lib/themes/antd.css.map +1 -1
  219. package/lib/themes/cxd-ie11.css +1662 -97
  220. package/lib/themes/cxd.css +1983 -394
  221. package/lib/themes/cxd.css.map +1 -1
  222. package/lib/themes/dark-ie11.css +1667 -101
  223. package/lib/themes/dark.css +1789 -201
  224. package/lib/themes/dark.css.map +1 -1
  225. package/lib/themes/default-ie11.css +1662 -97
  226. package/lib/themes/default.css +1983 -394
  227. package/lib/themes/default.css.map +1 -1
  228. package/lib/utils/DataSchema.d.ts +25 -0
  229. package/lib/utils/DataSchema.js +104 -0
  230. package/lib/utils/DataSchema.js.map +13 -0
  231. package/lib/utils/DataScope.d.ts +23 -0
  232. package/lib/utils/DataScope.js +140 -0
  233. package/lib/utils/DataScope.js.map +13 -0
  234. package/lib/utils/handleAction.js +1 -1
  235. package/lib/utils/handleAction.js.map +2 -2
  236. package/lib/utils/renderer-event.d.ts +8 -2
  237. package/lib/utils/renderer-event.js +102 -1
  238. package/lib/utils/renderer-event.js.map +2 -2
  239. package/package.json +3 -2
  240. package/schema.json +1476 -469
  241. package/scss/_properties.scss +69 -0
  242. package/scss/components/_button.scss +37 -39
  243. package/scss/components/_context-menu.scss +3 -18
  244. package/scss/components/_json-schema-editor.scss +126 -0
  245. package/scss/components/_pagination.scss +104 -23
  246. package/scss/components/_result-box.scss +2 -2
  247. package/scss/components/_table-v2.scss +912 -0
  248. package/scss/components/_tag.scss +177 -0
  249. package/scss/components/form/_selection.scss +1 -14
  250. package/scss/components/form/_text.scss +1 -1
  251. package/scss/themes/_antd-variables.scss +0 -13
  252. package/scss/themes/_common.scss +3 -0
  253. package/scss/themes/_cxd-variables.scss +7 -17
  254. package/scss/themes/_dark-variables.scss +0 -13
  255. package/scss/themes/cxd.scss +1 -1
  256. package/sdk/ang-ie11.css +2240 -227
  257. package/sdk/ang.css +2905 -859
  258. package/sdk/antd-ie11.css +2233 -220
  259. package/sdk/antd.css +2905 -870
  260. package/sdk/barcode.js +51 -51
  261. package/sdk/charts.js +14 -14
  262. package/sdk/codemirror.js +7 -7
  263. package/sdk/color-picker.js +65 -65
  264. package/sdk/cropperjs.js +2 -2
  265. package/sdk/cxd-ie11.css +2223 -211
  266. package/sdk/cxd.css +2911 -875
  267. package/sdk/dark-ie11.css +2233 -220
  268. package/sdk/dark.css +2905 -870
  269. package/sdk/exceljs.js +1 -1
  270. package/sdk/locale/de-DE.js +18 -1
  271. package/sdk/markdown.js +69 -69
  272. package/sdk/papaparse.js +1 -1
  273. package/sdk/renderers/Form/CityDB.js +1 -1
  274. package/sdk/rest.js +16 -16
  275. package/sdk/rich-text.js +62 -62
  276. package/sdk/sdk-ie11.css +2223 -211
  277. package/sdk/sdk.css +2911 -875
  278. package/sdk/sdk.js +1326 -1270
  279. package/sdk/thirds/hls.js/hls.js +1 -1
  280. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  281. package/sdk/tinymce.js +57 -57
  282. package/src/Schema.ts +7 -0
  283. package/src/SchemaRenderer.tsx +4 -5
  284. package/src/actions/Action.ts +7 -6
  285. package/src/actions/AjaxAction.ts +33 -24
  286. package/src/actions/BreakAction.ts +2 -2
  287. package/src/actions/BroadcastAction.ts +6 -5
  288. package/src/actions/CmptAction.ts +5 -6
  289. package/src/actions/ContinueAction.ts +2 -2
  290. package/src/actions/CopyAction.ts +14 -8
  291. package/src/actions/CustomAction.ts +2 -2
  292. package/src/actions/DialogAction.ts +16 -10
  293. package/src/actions/DrawerAction.ts +3 -3
  294. package/src/actions/EmailAction.ts +12 -12
  295. package/src/actions/LinkAction.ts +34 -14
  296. package/src/actions/LoopAction.ts +13 -8
  297. package/src/actions/PageAction.ts +9 -6
  298. package/src/actions/ParallelAction.ts +2 -2
  299. package/src/actions/SwitchAction.ts +2 -2
  300. package/src/actions/ToastAction.ts +9 -5
  301. package/src/components/InputBox.tsx +1 -0
  302. package/src/components/Pagination.tsx +446 -0
  303. package/src/components/PickerContainer.tsx +8 -5
  304. package/src/components/Rating.tsx +16 -9
  305. package/src/components/Select.tsx +3 -3
  306. package/src/components/Tag.tsx +179 -0
  307. package/src/components/TooltipWrapper.tsx +14 -1
  308. package/src/components/TransferDropDown.tsx +3 -0
  309. package/src/components/formula/VariableList.tsx +1 -0
  310. package/src/components/icons.tsx +2 -0
  311. package/src/components/index.tsx +7 -1
  312. package/src/components/schema-editor/Array.tsx +95 -0
  313. package/src/components/schema-editor/Common.tsx +138 -0
  314. package/src/components/schema-editor/Item.tsx +36 -0
  315. package/src/components/schema-editor/Object.tsx +299 -0
  316. package/src/components/schema-editor/SchemaVariableList.tsx +97 -0
  317. package/src/components/schema-editor/SchemaVariableListPicker.tsx +66 -0
  318. package/src/components/schema-editor/index.tsx +211 -0
  319. package/src/components/table/Cell.tsx +70 -0
  320. package/src/components/table/HeadCellDropDown.tsx +115 -0
  321. package/src/components/table/HeadCellFilter.tsx +193 -0
  322. package/src/components/table/HeadCellSelect.tsx +86 -0
  323. package/src/components/table/HeadCellSort.tsx +102 -0
  324. package/src/components/table/index.tsx +1681 -0
  325. package/src/env.tsx +7 -14
  326. package/src/factory.tsx +3 -106
  327. package/src/icons/dot.svg +11 -0
  328. package/src/index.tsx +8 -1
  329. package/src/locale/de-DE.ts +18 -1
  330. package/src/locale/en-US.ts +18 -1
  331. package/src/locale/zh-CN.ts +20 -1
  332. package/src/renderers/Action.tsx +1 -1
  333. package/src/renderers/Carousel.tsx +21 -6
  334. package/src/renderers/Form/ButtonGroupSelect.tsx +10 -1
  335. package/src/renderers/Form/Checkbox.tsx +4 -4
  336. package/src/renderers/Form/Checkboxes.tsx +31 -25
  337. package/src/renderers/Form/Combo.tsx +20 -4
  338. package/src/renderers/Form/Editor.tsx +15 -1
  339. package/src/renderers/Form/InputExcel.tsx +6 -1
  340. package/src/renderers/Form/InputFile.tsx +1 -2
  341. package/src/renderers/Form/InputTree.tsx +1 -1
  342. package/src/renderers/Form/JSONSchemaEditor.tsx +67 -0
  343. package/src/renderers/Form/ListSelect.tsx +9 -1
  344. package/src/renderers/Form/Options.tsx +1 -1
  345. package/src/renderers/Form/Select.tsx +7 -0
  346. package/src/renderers/Form/TabsTransfer.tsx +2 -2
  347. package/src/renderers/Form/TreeSelect.tsx +8 -1
  348. package/src/renderers/Form/wrapControl.tsx +11 -5
  349. package/src/renderers/Pagination.tsx +65 -253
  350. package/src/renderers/Table/HeadCellSearchDropdown.tsx +0 -1
  351. package/src/renderers/Table-v2/HeadCellSearchDropdown.tsx +244 -0
  352. package/src/renderers/Table-v2/TableCell.tsx +19 -0
  353. package/src/renderers/Table-v2/index.tsx +1140 -0
  354. package/src/renderers/Tabs.tsx +1 -1
  355. package/src/renderers/Tag.tsx +128 -0
  356. package/src/renderers/Wizard.tsx +3 -3
  357. package/src/schemaExtend.ts +24 -28
  358. package/src/store/formItem.ts +5 -1
  359. package/src/store/index.ts +2 -0
  360. package/src/store/table-v2.ts +646 -0
  361. package/src/store/table.ts +1 -1
  362. package/src/utils/DataSchema.ts +131 -0
  363. package/src/utils/DataScope.ts +190 -0
  364. package/src/utils/handleAction.ts +1 -1
  365. package/src/utils/renderer-event.ts +113 -2
@@ -0,0 +1,452 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TableStoreV2 = exports.Row = exports.Column = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var mobx_state_tree_1 = require("mobx-state-tree");
6
+ var find_1 = (0, tslib_1.__importDefault)(require("lodash/find"));
7
+ var isEqual_1 = (0, tslib_1.__importDefault)(require("lodash/isEqual"));
8
+ var helper_1 = require("../utils/helper");
9
+ var api_1 = require("../utils/api");
10
+ var service_1 = require("./service");
11
+ var ServerError = /** @class */ (function (_super) {
12
+ (0, tslib_1.__extends)(ServerError, _super);
13
+ function ServerError() {
14
+ var _this = _super !== null && _super.apply(this, arguments) || this;
15
+ _this.type = 'ServerError';
16
+ return _this;
17
+ }
18
+ return ServerError;
19
+ }(Error));
20
+ exports.Column = mobx_state_tree_1.types
21
+ .model('Column', {
22
+ title: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), undefined),
23
+ key: '',
24
+ toggled: false,
25
+ breakpoint: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), undefined),
26
+ pristine: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), undefined),
27
+ toggable: true,
28
+ index: 0,
29
+ type: '',
30
+ children: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.array(mobx_state_tree_1.types.late(function () { return exports.Column; })), [])
31
+ })
32
+ .actions(function (self) { return ({
33
+ toggleToggle: function () {
34
+ self.toggled = !self.toggled;
35
+ var table = (0, mobx_state_tree_1.getParent)(self, 2);
36
+ if (!table.activeToggaleColumns.length) {
37
+ self.toggled = true;
38
+ }
39
+ table.persistSaveToggledColumns();
40
+ },
41
+ setToggled: function (value) {
42
+ self.toggled = value;
43
+ }
44
+ }); });
45
+ exports.Row = mobx_state_tree_1.types
46
+ .model('Row', {
47
+ storeType: 'Row',
48
+ id: mobx_state_tree_1.types.identifier,
49
+ key: mobx_state_tree_1.types.string,
50
+ pristine: mobx_state_tree_1.types.frozen({}),
51
+ data: mobx_state_tree_1.types.frozen({}),
52
+ index: mobx_state_tree_1.types.number,
53
+ newIndex: mobx_state_tree_1.types.number,
54
+ depth: mobx_state_tree_1.types.number,
55
+ children: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.array(mobx_state_tree_1.types.late(function () { return exports.Row; })), []),
56
+ path: '' // 行数据的位置
57
+ })
58
+ .views(function (self) { return ({
59
+ get checked() {
60
+ return (0, mobx_state_tree_1.getParent)(self, self.depth * 2).isSelected(self);
61
+ },
62
+ get modified() {
63
+ if (!self.data) {
64
+ return false;
65
+ }
66
+ return Object.keys(self.data).some(function (key) { return !(0, isEqual_1.default)(self.data[key], self.pristine[key]); });
67
+ },
68
+ get locals() {
69
+ var children = null;
70
+ if (self.children.length) {
71
+ children = self.children.map(function (item) { return item.locals; });
72
+ }
73
+ var parent = (0, mobx_state_tree_1.getParent)(self, 2);
74
+ return (0, helper_1.createObject)((0, helper_1.extendObject)((0, mobx_state_tree_1.getParent)(self, self.depth * 2).data, {
75
+ index: self.index,
76
+ // todo 以后再支持多层,目前先一层
77
+ parent: parent.storeType === exports.Row.name ? parent.data : undefined
78
+ }), children
79
+ ? (0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.data), { children: children }) : self.data);
80
+ }
81
+ }); })
82
+ .actions(function (self) { return ({
83
+ replaceWith: function (data) {
84
+ Object.keys(data).forEach(function (key) {
85
+ if (key !== 'id') {
86
+ self[key] = data[key];
87
+ }
88
+ });
89
+ if (Array.isArray(data.children)) {
90
+ var arr = data.children;
91
+ var pool = arr.concat();
92
+ // 把多的删了先
93
+ if (self.children.length > arr.length) {
94
+ self.children.splice(arr.length, self.children.length - arr.length);
95
+ }
96
+ var index = 0;
97
+ var len = self.children.length;
98
+ while (pool.length) {
99
+ // 因为父级id未更新,所以需要将子级的parentId正确指向父级id
100
+ var item = (0, tslib_1.__assign)((0, tslib_1.__assign)({}, pool.shift()), { parentId: self.id });
101
+ if (index < len) {
102
+ self.children[index].replaceWith(item);
103
+ }
104
+ else {
105
+ var row = exports.Row.create(item);
106
+ self.children.push(row);
107
+ }
108
+ index++;
109
+ }
110
+ }
111
+ },
112
+ change: function (values, savePristine) {
113
+ self.data = (0, helper_1.immutableExtends)(self.data, values);
114
+ savePristine && (self.pristine = self.data);
115
+ }
116
+ }); });
117
+ exports.TableStoreV2 = service_1.ServiceStore
118
+ .named('TableStoreV2')
119
+ .props({
120
+ columns: mobx_state_tree_1.types.array(exports.Column),
121
+ rows: mobx_state_tree_1.types.array(exports.Row),
122
+ selectedRowKeys: mobx_state_tree_1.types.array(mobx_state_tree_1.types.frozen()),
123
+ selectedRows: mobx_state_tree_1.types.array(mobx_state_tree_1.types.reference(exports.Row)),
124
+ expandedRowKeys: mobx_state_tree_1.types.array(mobx_state_tree_1.types.frozen()),
125
+ columnsTogglable: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.union(mobx_state_tree_1.types.boolean, mobx_state_tree_1.types.literal('auto')), 'auto'),
126
+ orderBy: '',
127
+ order: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.union(mobx_state_tree_1.types.literal('asc'), mobx_state_tree_1.types.literal('desc')), 'asc'),
128
+ query: mobx_state_tree_1.types.optional(mobx_state_tree_1.types.frozen(), {}),
129
+ pageNo: 1,
130
+ pageSize: 10,
131
+ dragging: false
132
+ })
133
+ .views(function (self) {
134
+ function getToggable() {
135
+ if (self.columnsTogglable === 'auto') {
136
+ return self.columns.filter.length > 10;
137
+ }
138
+ return self.columnsTogglable;
139
+ }
140
+ function hasColumnHidden() {
141
+ return self.columns.findIndex(function (column) { return !column.toggled; }) !== -1;
142
+ }
143
+ function getToggableColumns() {
144
+ return self.columns.filter(function (item) { return (0, helper_1.isVisible)(item.pristine, self.data) && item.toggable !== false; });
145
+ }
146
+ function getActiveToggableColumns() {
147
+ return getToggableColumns().filter(function (item) { return item.toggled; });
148
+ }
149
+ function getAllFilteredColumns(columns) {
150
+ if (columns) {
151
+ return columns.filter(function (item) {
152
+ return item &&
153
+ (0, helper_1.isVisible)(item.pristine, (0, helper_1.hasVisibleExpression)(item.pristine) ? self.data : {}) &&
154
+ (item.toggled || !item.toggable);
155
+ }).map(function (item) { return ((0, tslib_1.__assign)((0, tslib_1.__assign)({}, item.pristine), { type: item.type, children: item.children ? getAllFilteredColumns(item.children) : undefined })); });
156
+ }
157
+ return [];
158
+ }
159
+ function getFilteredColumns() {
160
+ return getAllFilteredColumns(self.columns);
161
+ }
162
+ function getUnSelectedRows() {
163
+ return (0, helper_1.flattenTree)(self.rows).filter(function (item) { return !item.checked; });
164
+ }
165
+ function getData(superData) {
166
+ return (0, helper_1.createObject)(superData, {
167
+ items: self.rows.map(function (item) { return item.data; }),
168
+ selectedItems: self.selectedRows.map(function (item) { return item.data; }),
169
+ unSelectedItems: getUnSelectedRows().map(function (item) { return item.data; })
170
+ });
171
+ }
172
+ function isSelected(row) {
173
+ return !!~self.selectedRows.indexOf(row);
174
+ }
175
+ return {
176
+ get toggable() {
177
+ return getToggable();
178
+ },
179
+ get columnsData() {
180
+ return self.columns;
181
+ },
182
+ get toggableColumns() {
183
+ return getToggableColumns();
184
+ },
185
+ get filteredColumns() {
186
+ return getFilteredColumns();
187
+ },
188
+ get activeToggaleColumns() {
189
+ return getActiveToggableColumns();
190
+ },
191
+ get dataSource() {
192
+ return self.rows.map(function (item) { return item.data; });
193
+ },
194
+ get currentSelectedRowKeys() {
195
+ return self.selectedRowKeys.map(function (item) { return item; });
196
+ },
197
+ get currentExpandedKeys() {
198
+ return self.expandedRowKeys.map(function (item) { return item; });
199
+ },
200
+ // 是否隐藏了某列
201
+ hasColumnHidden: function () {
202
+ return hasColumnHidden();
203
+ },
204
+ getData: getData,
205
+ isSelected: isSelected
206
+ };
207
+ })
208
+ .actions(function (self) {
209
+ function updateColumns(columns) {
210
+ if (columns && Array.isArray(columns)) {
211
+ var cols = columns
212
+ .filter(function (column) { return column; })
213
+ .concat();
214
+ cols = cols.map(function (item, index) { return ((0, tslib_1.__assign)((0, tslib_1.__assign)({}, item), { index: index, type: item.type || 'plain', pristine: item, toggled: item.toggled !== false, breakpoint: item.breakpoint, children: item.children ? updateColumns(item.children) : [] })); });
215
+ return cols;
216
+ }
217
+ return;
218
+ }
219
+ function update(config) {
220
+ config.columnsTogglable !== void 0 &&
221
+ (self.columnsTogglable = config.columnsTogglable);
222
+ if (typeof config.orderBy === 'string') {
223
+ setOrderByInfo(config.orderBy, config.order === 'desc' ? 'desc' : 'asc');
224
+ }
225
+ if (config.columns && Array.isArray(config.columns)) {
226
+ self.columns.replace(updateColumns(config.columns));
227
+ }
228
+ }
229
+ function persistSaveToggledColumns() {
230
+ var key = location.pathname +
231
+ self.path +
232
+ self.toggableColumns.map(function (item) { return item.key || item.index; }).join('-');
233
+ localStorage.setItem(key, JSON.stringify(self.activeToggaleColumns.map(function (item) { return item.index; })));
234
+ }
235
+ function setOrderByInfo(key, direction) {
236
+ self.orderBy = key;
237
+ self.order = direction;
238
+ }
239
+ function updateQuery(values, updater, pageNoField, pageSizeField, replace) {
240
+ if (pageNoField === void 0) { pageNoField = 'pageNo'; }
241
+ if (pageSizeField === void 0) { pageSizeField = 'pageSize'; }
242
+ if (replace === void 0) { replace = false; }
243
+ var originQuery = self.query;
244
+ self.query = replace
245
+ ? (0, tslib_1.__assign)({}, values) : (0, tslib_1.__assign)((0, tslib_1.__assign)({}, self.query), values);
246
+ if (self.query[pageNoField || 'pageNo']) {
247
+ self.pageNo = parseInt(self.query[pageNoField || 'pageNo'], 10);
248
+ }
249
+ if (self.query[pageSizeField || 'pageSize']) {
250
+ self.pageSize = parseInt(self.query[pageSizeField || 'pageSize'], 10);
251
+ }
252
+ updater &&
253
+ (0, helper_1.isObjectShallowModified)(originQuery, self.query, false) &&
254
+ setTimeout(updater.bind(null, "?".concat((0, helper_1.qsstringify)(self.query))), 4);
255
+ }
256
+ function updateSelectedRows(rows, selectedKeys, keyField) {
257
+ (0, helper_1.eachTree)(rows, function (item) {
258
+ if (~selectedKeys.indexOf(item.pristine[keyField || 'key'])) {
259
+ self.selectedRows.push(item.id);
260
+ self.selectedRowKeys.push(item.pristine[keyField || 'key']);
261
+ }
262
+ else if ((0, find_1.default)(selectedKeys, function (a) {
263
+ return a &&
264
+ a == item.pristine[keyField || 'key'];
265
+ })) {
266
+ self.selectedRows.push(item.id);
267
+ self.selectedRowKeys.push(item.pristine[keyField || 'key']);
268
+ }
269
+ else if (item.children) {
270
+ updateSelectedRows(item.children, selectedKeys, keyField);
271
+ }
272
+ });
273
+ }
274
+ function updateSelected(selectedKeys, keyField) {
275
+ self.selectedRows.clear();
276
+ self.selectedRowKeys.clear();
277
+ updateSelectedRows(self.rows, selectedKeys, keyField);
278
+ }
279
+ function updateExpanded(expandedRowKeys, keyField) {
280
+ self.expandedRowKeys.clear();
281
+ (0, helper_1.eachTree)(self.rows, function (item) {
282
+ if (~expandedRowKeys.indexOf(item.pristine[keyField || 'key'])) {
283
+ self.expandedRowKeys.push(item.pristine[keyField || 'key']);
284
+ }
285
+ else if ((0, find_1.default)(expandedRowKeys, function (a) {
286
+ return a &&
287
+ a == item.pristine[keyField || 'key'];
288
+ })) {
289
+ self.expandedRowKeys.push(item.pristine[keyField || 'key']);
290
+ }
291
+ });
292
+ }
293
+ // 尽可能的复用 row
294
+ function replaceRow(arr, reUseRow) {
295
+ if (reUseRow === false) {
296
+ self.rows.replace(arr.map(function (item) { return exports.Row.create(item); }));
297
+ return;
298
+ }
299
+ var pool = arr.concat();
300
+ // 把多的删了先
301
+ if (self.rows.length > arr.length) {
302
+ self.rows.splice(arr.length, self.rows.length - arr.length);
303
+ }
304
+ var index = 0;
305
+ var len = self.rows.length;
306
+ while (pool.length) {
307
+ var item = pool.shift();
308
+ if (index < len) {
309
+ self.rows[index].replaceWith(item);
310
+ }
311
+ else {
312
+ var row = exports.Row.create(item);
313
+ self.rows.push(row);
314
+ }
315
+ index++;
316
+ }
317
+ }
318
+ function initChildren(children, depth, pindex, parentId, path, keyField) {
319
+ if (path === void 0) { path = ''; }
320
+ var key = keyField || 'children';
321
+ depth += 1;
322
+ return children.map(function (item, index) {
323
+ item = (0, helper_1.isObject)(item)
324
+ ? item
325
+ : {
326
+ item: item
327
+ };
328
+ var id = (0, helper_1.guid)();
329
+ return {
330
+ id: id,
331
+ parentId: parentId,
332
+ key: String("".concat(pindex, "-").concat(depth, "-").concat(index)),
333
+ path: "".concat(path).concat(index),
334
+ depth: depth,
335
+ index: index,
336
+ newIndex: index,
337
+ pristine: item,
338
+ data: item,
339
+ rowSpans: {},
340
+ children: item && Array.isArray(item[key])
341
+ ? initChildren(item[key], depth, index, id, "".concat(path).concat(index, "."))
342
+ : []
343
+ };
344
+ });
345
+ }
346
+ function initRows(rows, getEntryId, reUseRow, keyField) {
347
+ self.selectedRows.clear();
348
+ var key = keyField || 'children';
349
+ var arr = rows.map(function (item, index) {
350
+ var id = getEntryId ? getEntryId(item, index) : (0, helper_1.guid)();
351
+ return {
352
+ id: id,
353
+ key: String("".concat(index, "-1-").concat(index)),
354
+ index: index,
355
+ newIndex: index,
356
+ pristine: item,
357
+ path: "".concat(index),
358
+ data: item,
359
+ depth: 1,
360
+ children: item && Array.isArray(item[key])
361
+ ? initChildren(item[key], 1, index, id, "".concat(index, "."), key)
362
+ : []
363
+ };
364
+ });
365
+ replaceRow(arr, reUseRow);
366
+ }
367
+ var saveRemote = (0, mobx_state_tree_1.flow)(function saveRemote(api, data, options) {
368
+ var json, e_1;
369
+ var _a, _b, _c;
370
+ if (options === void 0) { options = {}; }
371
+ return (0, tslib_1.__generator)(this, function (_d) {
372
+ switch (_d.label) {
373
+ case 0:
374
+ _d.trys.push([0, 2, , 3]);
375
+ options = (0, tslib_1.__assign)({ method: 'post' }, options);
376
+ self.markSaving(true);
377
+ return [4 /*yield*/, (0, mobx_state_tree_1.getEnv)(self).fetcher(api, data, options)];
378
+ case 1:
379
+ json = _d.sent();
380
+ self.markSaving(false);
381
+ if (!(0, helper_1.isEmpty)(json.data) || json.ok) {
382
+ self.updateData((0, api_1.normalizeApiResponseData)(json.data), {
383
+ __saved: Date.now()
384
+ }, !!api && api.replaceData);
385
+ self.updatedAt = Date.now();
386
+ }
387
+ if (!json.ok) {
388
+ self.updateMessage((_b = (_a = json.msg) !== null && _a !== void 0 ? _a : options.errorMessage) !== null && _b !== void 0 ? _b : self.__('saveFailed'), true);
389
+ (0, mobx_state_tree_1.getEnv)(self).notify('error', self.msg, json.msgTimeout !== undefined
390
+ ? {
391
+ closeButton: true,
392
+ timeout: json.msgTimeout
393
+ }
394
+ : undefined);
395
+ throw new ServerError(self.msg);
396
+ }
397
+ else {
398
+ self.updateMessage((_c = json.msg) !== null && _c !== void 0 ? _c : options.successMessage);
399
+ self.msg &&
400
+ (0, mobx_state_tree_1.getEnv)(self).notify('success', self.msg, json.msgTimeout !== undefined
401
+ ? {
402
+ closeButton: true,
403
+ timeout: json.msgTimeout
404
+ }
405
+ : undefined);
406
+ }
407
+ return [2 /*return*/, json.data];
408
+ case 2:
409
+ e_1 = _d.sent();
410
+ self.markSaving(false);
411
+ if (!(0, mobx_state_tree_1.isAlive)(self) || self.disposed) {
412
+ return [2 /*return*/];
413
+ }
414
+ e_1.type !== 'ServerError' && (0, mobx_state_tree_1.getEnv)(self).notify('error', e_1.message);
415
+ throw e_1;
416
+ case 3: return [2 /*return*/];
417
+ }
418
+ });
419
+ });
420
+ return {
421
+ update: update,
422
+ persistSaveToggledColumns: persistSaveToggledColumns,
423
+ setOrderByInfo: setOrderByInfo,
424
+ updateQuery: updateQuery,
425
+ initRows: initRows,
426
+ updateSelected: updateSelected,
427
+ updateExpanded: updateExpanded,
428
+ // events
429
+ afterCreate: function () {
430
+ setTimeout(function () {
431
+ if (!(0, mobx_state_tree_1.isAlive)(self)) {
432
+ return;
433
+ }
434
+ var key = location.pathname +
435
+ self.path +
436
+ self.toggableColumns.map(function (item) { return item.key || item.index; }).join('-');
437
+ var data = localStorage.getItem(key);
438
+ if (data) {
439
+ var selectedColumns_1 = JSON.parse(data);
440
+ self.toggableColumns.forEach(function (item) {
441
+ return item.setToggled(!!~selectedColumns_1.indexOf(item.index));
442
+ });
443
+ }
444
+ }, 200);
445
+ },
446
+ saveRemote: saveRemote,
447
+ getRowByIndex: function (rowIndex) {
448
+ return self.rows[rowIndex];
449
+ }
450
+ };
451
+ });
452
+ //# sourceMappingURL=./store/table-v2.js.map
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": 3,
3
+ "file": "table-v2.js",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "/src/store/table-v2.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": "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",
10
+ "sourcesContent": [
11
+ "import {\n types,\n getParent,\n Instance,\n SnapshotIn,\n isAlive,\n IAnyModelType,\n flow,\n getEnv\n} from 'mobx-state-tree';\nimport find from 'lodash/find';\nimport isEqual from 'lodash/isEqual';\n\nimport {\n isVisible,\n hasVisibleExpression,\n isObjectShallowModified,\n qsstringify,\n guid,\n eachTree,\n createObject,\n flattenTree,\n isObject,\n immutableExtends,\n isEmpty,\n extendObject\n} from '../utils/helper';\nimport {normalizeApiResponseData} from '../utils/api';\nimport {Api, Payload, fetchOptions, ApiObject} from '../types';\nimport {ServiceStore} from './service';\n\nclass ServerError extends Error {\n type = 'ServerError';\n}\n\nexport const Column = types\n .model('Column', {\n title: types.optional(types.frozen(), undefined),\n key: '',\n toggled: false,\n breakpoint: types.optional(types.frozen(), undefined),\n pristine: types.optional(types.frozen(), undefined),\n toggable: true,\n index: 0,\n type: '',\n children: types.optional(\n types.array(types.late((): IAnyModelType => Column)),\n []\n )\n })\n .actions(self => ({\n toggleToggle() {\n self.toggled = !self.toggled;\n const table = getParent(self, 2) as ITableStore;\n\n if (!table.activeToggaleColumns.length) {\n self.toggled = true;\n }\n\n table.persistSaveToggledColumns();\n },\n setToggled(value: boolean) {\n self.toggled = value;\n }\n }));\n\nexport type IColumn = Instance<typeof Column>;\nexport type SColumn = SnapshotIn<typeof Column>;\n\nexport const Row = types\n .model('Row', {\n storeType: 'Row',\n id: types.identifier,\n key: types.string,\n pristine: types.frozen({} as any), // 原始数据\n data: types.frozen({} as any),\n index: types.number,\n newIndex: types.number,\n depth: types.number, // 当前children位于第几层,便于使用getParent获取最顶层TableStore\n children: types.optional(\n types.array(types.late((): IAnyModelType => Row)),\n []\n ),\n path: '' // 行数据的位置\n })\n .views(self => ({\n get checked(): boolean {\n return (getParent(self, self.depth * 2) as ITableStore).isSelected(\n self as IRow\n );\n },\n\n get modified() {\n if (!self.data) {\n return false;\n }\n\n return Object.keys(self.data).some(\n key => !isEqual(self.data[key], self.pristine[key])\n );\n },\n\n get locals(): any {\n let children: Array<any> | null = null;\n if (self.children.length) {\n children = self.children.map(item => item.locals);\n }\n\n const parent = getParent(self, 2) as ITableStore;\n return createObject(\n extendObject((getParent(self, self.depth * 2) as ITableStore).data, {\n index: self.index,\n // todo 以后再支持多层,目前先一层\n parent: parent.storeType === Row.name ? parent.data : undefined\n }),\n children\n ? {\n ...self.data,\n children\n }\n : self.data\n );\n }\n }))\n .actions(self => ({\n replaceWith(data: any) {\n Object.keys(data).forEach(key => {\n if (key !== 'id') {\n (self as any)[key] = data[key];\n }\n });\n\n if (Array.isArray(data.children)) {\n const arr = data.children;\n const pool = arr.concat();\n\n // 把多的删了先\n if (self.children.length > arr.length) {\n self.children.splice(arr.length, self.children.length - arr.length);\n }\n\n let index = 0;\n const len = self.children.length;\n while (pool.length) {\n // 因为父级id未更新,所以需要将子级的parentId正确指向父级id\n const item = {\n ...pool.shift(),\n parentId: self.id\n }!;\n\n if (index < len) {\n self.children[index].replaceWith(item);\n } else {\n const row = Row.create(item);\n self.children.push(row);\n }\n index++;\n }\n }\n },\n change(values: object, savePristine?: boolean) {\n self.data = immutableExtends(self.data, values);\n savePristine && (self.pristine = self.data);\n }\n }));\n\nexport type IRow = Instance<typeof Row>;\nexport type SRow = SnapshotIn<typeof Row>;\n\nexport const TableStoreV2 = ServiceStore\n .named('TableStoreV2')\n .props({\n columns: types.array(Column),\n rows: types.array(Row),\n selectedRowKeys: types.array(types.frozen()),\n selectedRows: types.array(types.reference(Row)),\n expandedRowKeys: types.array(types.frozen()),\n columnsTogglable: types.optional(\n types.union(types.boolean, types.literal('auto')),\n 'auto'\n ),\n orderBy: '',\n order: types.optional(\n types.union(types.literal('asc'), types.literal('desc')),\n 'asc'\n ),\n query: types.optional(types.frozen(), {}),\n pageNo: 1,\n pageSize: 10,\n dragging: false\n })\n .views(self => {\n function getToggable() {\n if (self.columnsTogglable === 'auto') {\n return self.columns.filter.length > 10;\n }\n\n return self.columnsTogglable;\n }\n\n function hasColumnHidden() {\n return self.columns.findIndex(column => !column.toggled) !== -1;\n }\n\n function getToggableColumns() {\n return self.columns.filter(\n item => isVisible(item.pristine, self.data) && item.toggable !== false\n );\n }\n\n function getActiveToggableColumns() {\n return getToggableColumns().filter(item => item.toggled);\n }\n\n function getAllFilteredColumns(columns?: Array<SColumn>): Array<any> {\n if (columns) {\n return columns.filter(\n item =>\n item &&\n isVisible(\n item.pristine,\n hasVisibleExpression(item.pristine) ? self.data : {}\n ) &&\n (item.toggled || !item.toggable)\n ).map(item => ({\n ...item.pristine,\n type: item.type,\n children: item.children ? getAllFilteredColumns(item.children) : undefined\n })); \n }\n return [];\n }\n\n function getFilteredColumns() {\n return getAllFilteredColumns(self.columns); \n }\n\n function getUnSelectedRows() {\n return flattenTree<IRow>(self.rows).filter((item: IRow) => !item.checked);\n }\n\n function getData(superData: any): any {\n return createObject(superData, {\n items: self.rows.map(item => item.data),\n selectedItems: self.selectedRows.map(item => item.data),\n unSelectedItems: getUnSelectedRows().map(item => item.data)\n });\n }\n\n function isSelected(row: IRow): boolean {\n return !!~self.selectedRows.indexOf(row);\n }\n\n return {\n get toggable() {\n return getToggable();\n },\n\n get columnsData() {\n return self.columns;\n },\n\n get toggableColumns() {\n return getToggableColumns();\n },\n\n get filteredColumns() {\n return getFilteredColumns();\n },\n\n get activeToggaleColumns() {\n return getActiveToggableColumns();\n },\n\n get dataSource() {\n return self.rows.map(item => item.data);\n },\n\n get currentSelectedRowKeys() {\n return self.selectedRowKeys.map(item => item);\n },\n\n get currentExpandedKeys() {\n return self.expandedRowKeys.map(item => item);\n },\n\n // 是否隐藏了某列\n hasColumnHidden() {\n return hasColumnHidden();\n },\n\n getData,\n\n isSelected\n }\n })\n .actions(self => {\n function updateColumns(columns: Array<SColumn>) {\n if (columns && Array.isArray(columns)) {\n let cols: Array<SColumn> = columns\n .filter(column => column)\n .concat();\n\n cols = cols.map((item, index) => ({\n ...item,\n index,\n type: item.type || 'plain',\n pristine: item,\n toggled: item.toggled !== false,\n breakpoint: item.breakpoint,\n children: item.children ? updateColumns(item.children) : []\n }));\n\n return cols;\n }\n return;\n }\n \n function update(config: Partial<STableStore>) {\n config.columnsTogglable !== void 0 &&\n (self.columnsTogglable = config.columnsTogglable);\n\n if (typeof config.orderBy === 'string') {\n setOrderByInfo(\n config.orderBy,\n config.order === 'desc' ? 'desc' : 'asc'\n );\n }\n\n if (config.columns && Array.isArray(config.columns)) {\n self.columns.replace(updateColumns(config.columns) as any);\n }\n }\n\n function persistSaveToggledColumns() {\n const key =\n location.pathname +\n self.path +\n self.toggableColumns.map(item => item.key || item.index).join('-');\n localStorage.setItem(\n key,\n JSON.stringify(self.activeToggaleColumns.map(item => item.index))\n );\n }\n\n function setOrderByInfo(key: string, direction: 'asc' | 'desc') {\n self.orderBy = key;\n self.order = direction;\n }\n\n function updateQuery(\n values: object,\n updater?: Function,\n pageNoField: string = 'pageNo',\n pageSizeField: string = 'pageSize',\n replace: boolean = false\n ) {\n const originQuery = self.query;\n self.query = replace\n ? {\n ...values\n }\n : {\n ...self.query,\n ...values\n };\n\n if (self.query[pageNoField || 'pageNo']) {\n self.pageNo = parseInt(self.query[pageNoField || 'pageNo'], 10);\n }\n\n if (self.query[pageSizeField || 'pageSize']) {\n self.pageSize = parseInt(self.query[pageSizeField || 'pageSize'], 10);\n }\n\n updater &&\n isObjectShallowModified(originQuery, self.query, false) &&\n setTimeout(updater.bind(null, `?${qsstringify(self.query)}`), 4);\n }\n\n function updateSelectedRows(rows: Array<any>, selectedKeys: Array<any>, keyField?: string) {\n eachTree(rows, item => {\n if (~selectedKeys.indexOf(item.pristine[keyField || 'key'])) {\n self.selectedRows.push(item.id);\n self.selectedRowKeys.push(item.pristine[keyField || 'key']);\n } else if (\n find(\n selectedKeys,\n a =>\n a &&\n a == item.pristine[keyField || 'key']\n )\n ) {\n self.selectedRows.push(item.id);\n self.selectedRowKeys.push(item.pristine[keyField || 'key']);\n } else if (item.children) {\n updateSelectedRows(item.children, selectedKeys, keyField);\n }\n });\n }\n\n function updateSelected(selectedKeys: Array<any>, keyField?: string) {\n self.selectedRows.clear();\n self.selectedRowKeys.clear();\n\n updateSelectedRows(self.rows, selectedKeys, keyField);\n }\n\n function updateExpanded(expandedRowKeys: Array<any>, keyField?: string) {\n self.expandedRowKeys.clear();\n\n eachTree(self.rows, item => {\n if (~expandedRowKeys.indexOf(item.pristine[keyField || 'key'])) {\n self.expandedRowKeys.push(item.pristine[keyField || 'key']);\n } else if (\n find(\n expandedRowKeys,\n a =>\n a &&\n a == item.pristine[keyField || 'key']\n )\n ) {\n self.expandedRowKeys.push(item.pristine[keyField || 'key']);\n }\n });\n }\n\n // 尽可能的复用 row\n function replaceRow(arr: Array<SRow>, reUseRow?: boolean) {\n if (reUseRow === false) {\n self.rows.replace(arr.map(item => Row.create(item)));\n return;\n }\n\n const pool = arr.concat();\n\n // 把多的删了先\n if (self.rows.length > arr.length) {\n self.rows.splice(arr.length, self.rows.length - arr.length);\n }\n\n let index = 0;\n const len = self.rows.length;\n while (pool.length) {\n const item = pool.shift()!;\n\n if (index < len) {\n self.rows[index].replaceWith(item);\n } else {\n const row = Row.create(item);\n self.rows.push(row);\n }\n index++;\n }\n }\n\n function initChildren(\n children: Array<any>,\n depth: number,\n pindex: number,\n parentId: string,\n path: string = '',\n keyField?: string\n ): any {\n const key = keyField || 'children';\n\n depth += 1;\n return children.map((item, index) => {\n item = isObject(item)\n ? item\n : {\n item\n };\n const id = guid();\n\n return {\n id: id,\n parentId,\n key: String(`${pindex}-${depth}-${index}`),\n path: `${path}${index}`,\n depth: depth,\n index: index,\n newIndex: index,\n pristine: item,\n data: item,\n rowSpans: {},\n children:\n item && Array.isArray(item[key])\n ? initChildren(\n item[key],\n depth,\n index,\n id,\n `${path}${index}.`,\n\n )\n : []\n };\n });\n }\n\n function initRows(\n rows: Array<any>,\n getEntryId?: (entry: any, index: number) => string,\n reUseRow?: boolean,\n keyField?: string\n ) {\n self.selectedRows.clear();\n\n const key = keyField || 'children';\n\n let arr: Array<SRow> = rows.map((item, index) => {\n let id = getEntryId ? getEntryId(item, index) : guid();\n\n return {\n id: id,\n key: String(`${index}-1-${index}`),\n index: index,\n newIndex: index,\n pristine: item,\n path: `${index}`,\n data: item,\n depth: 1, // 最大父节点默认为第一层,逐层叠加\n children:\n item && Array.isArray(item[key])\n ? initChildren(item[key], 1, index, id, `${index}.`, key)\n : []\n };\n });\n\n replaceRow(arr, reUseRow);\n }\n\n const saveRemote: (\n api: Api,\n data?: object,\n options?: fetchOptions\n ) => Promise<any> = flow(function* saveRemote(\n api: Api,\n data: object,\n options: fetchOptions = {}\n ) {\n try {\n options = {\n method: 'post', // 默认走 post\n ...options\n };\n\n self.markSaving(true);\n const json: Payload = yield getEnv(self).fetcher(api, data, options);\n self.markSaving(false);\n\n if (!isEmpty(json.data) || json.ok) {\n self.updateData(\n normalizeApiResponseData(json.data),\n {\n __saved: Date.now()\n },\n !!api && (api as ApiObject).replaceData\n );\n self.updatedAt = Date.now();\n }\n\n if (!json.ok) {\n self.updateMessage(\n json.msg ?? options.errorMessage ?? self.__('saveFailed'),\n true\n );\n getEnv(self).notify(\n 'error',\n self.msg,\n json.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: json.msgTimeout\n }\n : undefined\n );\n throw new ServerError(self.msg);\n } else {\n self.updateMessage(json.msg ?? options.successMessage);\n self.msg &&\n getEnv(self).notify(\n 'success',\n self.msg,\n json.msgTimeout !== undefined\n ? {\n closeButton: true,\n timeout: json.msgTimeout\n }\n : undefined\n );\n }\n return json.data;\n } catch (e) {\n self.markSaving(false);\n\n if (!isAlive(self) || self.disposed) {\n return;\n }\n\n e.type !== 'ServerError' && getEnv(self).notify('error', e.message);\n throw e;\n }\n });\n\n return {\n update,\n persistSaveToggledColumns,\n setOrderByInfo,\n updateQuery,\n initRows,\n updateSelected,\n updateExpanded,\n\n // events\n afterCreate() {\n setTimeout(() => {\n if (!isAlive(self)) {\n return;\n }\n const key =\n location.pathname +\n self.path +\n self.toggableColumns.map(item => item.key || item.index).join('-');\n\n const data = localStorage.getItem(key);\n\n if (data) {\n const selectedColumns = JSON.parse(data);\n self.toggableColumns.forEach(item =>\n item.setToggled(!!~selectedColumns.indexOf(item.index))\n );\n }\n }, 200);\n },\n saveRemote,\n\n getRowByIndex(rowIndex: number) {\n return self.rows[rowIndex];\n }\n };\n });\n\nexport type ITableStore = Instance<typeof TableStoreV2>;\nexport type STableStore = SnapshotIn<typeof TableStoreV2>;\n"
12
+ ]
13
+ }