amis 1.5.6-beta.5 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/.husky/pre-commit +1 -1
  2. package/lib/Schema.d.ts +3 -2
  3. package/lib/Schema.js.map +1 -1
  4. package/lib/components/AssociatedSelection.d.ts +84 -84
  5. package/lib/components/AssociatedSelection.js +2 -2
  6. package/lib/components/AssociatedSelection.js.map +2 -2
  7. package/lib/components/Avatar.d.ts +135 -0
  8. package/lib/components/Avatar.js +120 -0
  9. package/lib/components/Avatar.js.map +13 -0
  10. package/lib/components/BaiduMapPicker.js.map +2 -2
  11. package/lib/components/CalendarMobile.d.ts +547 -0
  12. package/lib/components/CalendarMobile.js +432 -0
  13. package/lib/components/CalendarMobile.js.map +13 -0
  14. package/lib/components/Card.js +1 -1
  15. package/lib/components/Card.js.map +2 -2
  16. package/lib/components/Cascader.d.ts +123 -0
  17. package/lib/components/Cascader.js +487 -0
  18. package/lib/components/Cascader.js.map +13 -0
  19. package/lib/components/ChainedSelection.d.ts +84 -84
  20. package/lib/components/ChainedSelection.js +15 -3
  21. package/lib/components/ChainedSelection.js.map +2 -2
  22. package/lib/components/CityArea.d.ts +527 -0
  23. package/lib/components/CityArea.js +177 -0
  24. package/lib/components/CityArea.js.map +13 -0
  25. package/lib/components/Collapse.js +1 -1
  26. package/lib/components/Collapse.js.map +2 -2
  27. package/lib/components/ColorPicker.d.ts +84 -84
  28. package/lib/components/ColorPicker.js +4 -3
  29. package/lib/components/ColorPicker.js.map +2 -2
  30. package/lib/components/DatePicker.d.ts +85 -84
  31. package/lib/components/DatePicker.js +15 -8
  32. package/lib/components/DatePicker.js.map +2 -2
  33. package/lib/components/DateRangePicker.d.ts +85 -84
  34. package/lib/components/DateRangePicker.js +18 -6
  35. package/lib/components/DateRangePicker.js.map +2 -2
  36. package/lib/components/GroupedSelection.d.ts +84 -84
  37. package/lib/components/GroupedSelection.js +14 -2
  38. package/lib/components/GroupedSelection.js.map +2 -2
  39. package/lib/components/MonthRangePicker.d.ts +85 -84
  40. package/lib/components/MonthRangePicker.js +16 -6
  41. package/lib/components/MonthRangePicker.js.map +2 -2
  42. package/lib/components/Overlay.d.ts +1 -1
  43. package/lib/components/Overlay.js.map +1 -1
  44. package/lib/components/Picker.d.ts +1 -0
  45. package/lib/components/Picker.js +16 -7
  46. package/lib/components/Picker.js.map +2 -2
  47. package/lib/components/PickerColumn.d.ts +1 -0
  48. package/lib/components/PickerColumn.js +21 -18
  49. package/lib/components/PickerColumn.js.map +2 -2
  50. package/lib/components/PickerContainer.d.ts +3 -0
  51. package/lib/components/PickerContainer.js +12 -5
  52. package/lib/components/PickerContainer.js.map +2 -2
  53. package/lib/components/PopOverContainer.d.ts +1 -0
  54. package/lib/components/PopOverContainer.js +5 -3
  55. package/lib/components/PopOverContainer.js.map +2 -2
  56. package/lib/components/PopUp.d.ts +1041 -28
  57. package/lib/components/PopUp.js +32 -8
  58. package/lib/components/PopUp.js.map +2 -2
  59. package/lib/components/Rating.d.ts +203 -73
  60. package/lib/components/Rating.js +147 -31
  61. package/lib/components/Rating.js.map +2 -2
  62. package/lib/components/ResultBox.d.ts +85 -84
  63. package/lib/components/ResultBox.js +9 -4
  64. package/lib/components/ResultBox.js.map +2 -2
  65. package/lib/components/ResultList.d.ts +9 -2
  66. package/lib/components/ResultList.js +22 -2
  67. package/lib/components/ResultList.js.map +2 -2
  68. package/lib/components/Select.d.ts +237 -237
  69. package/lib/components/Select.js +9 -6
  70. package/lib/components/Select.js.map +2 -2
  71. package/lib/components/Selection.d.ts +94 -86
  72. package/lib/components/Selection.js +11 -2
  73. package/lib/components/Selection.js.map +2 -2
  74. package/lib/components/Steps.js.map +2 -2
  75. package/lib/components/TableSelection.d.ts +85 -85
  76. package/lib/components/TableSelection.js +1 -9
  77. package/lib/components/TableSelection.js.map +2 -2
  78. package/lib/components/Tabs.js +31 -33
  79. package/lib/components/Tabs.js.map +2 -2
  80. package/lib/components/TabsTransfer.d.ts +87 -256
  81. package/lib/components/TabsTransfer.js +52 -9
  82. package/lib/components/TabsTransfer.js.map +2 -2
  83. package/lib/components/TabsTransferPicker.d.ts +1 -1
  84. package/lib/components/TabsTransferPicker.js +20 -18
  85. package/lib/components/TabsTransferPicker.js.map +2 -2
  86. package/lib/components/Timeline.d.ts +69 -0
  87. package/lib/components/Timeline.js +16 -0
  88. package/lib/components/Timeline.js.map +13 -0
  89. package/lib/components/TimelineItem.d.ts +516 -0
  90. package/lib/components/TimelineItem.js +41 -0
  91. package/lib/components/TimelineItem.js.map +13 -0
  92. package/lib/components/Transfer.d.ts +100 -98
  93. package/lib/components/Transfer.js +2 -3
  94. package/lib/components/Transfer.js.map +2 -2
  95. package/lib/components/TransferDropDown.d.ts +85 -84
  96. package/lib/components/TransferDropDown.js +9 -10
  97. package/lib/components/TransferDropDown.js.map +2 -2
  98. package/lib/components/TransferPicker.d.ts +1 -0
  99. package/lib/components/TransferPicker.js +19 -4
  100. package/lib/components/TransferPicker.js.map +2 -2
  101. package/lib/components/TreeSelection.d.ts +85 -85
  102. package/lib/components/TreeSelection.js +7 -1
  103. package/lib/components/TreeSelection.js.map +2 -2
  104. package/lib/components/calendar/Calendar.d.ts +19 -0
  105. package/lib/components/calendar/Calendar.js +71 -1
  106. package/lib/components/calendar/Calendar.js.map +2 -2
  107. package/lib/components/calendar/DaysView.d.ts +21 -0
  108. package/lib/components/calendar/DaysView.js +76 -17
  109. package/lib/components/calendar/DaysView.js.map +2 -2
  110. package/lib/components/calendar/MonthsView.d.ts +34 -0
  111. package/lib/components/calendar/MonthsView.js +68 -3
  112. package/lib/components/calendar/MonthsView.js.map +2 -2
  113. package/lib/components/calendar/QuartersView.d.ts +1 -0
  114. package/lib/components/calendar/QuartersView.js +2 -2
  115. package/lib/components/calendar/QuartersView.js.map +2 -2
  116. package/lib/components/calendar/TimeView.d.ts +30 -18
  117. package/lib/components/calendar/TimeView.js +47 -8
  118. package/lib/components/calendar/TimeView.js.map +2 -2
  119. package/lib/components/calendar/YearsView.d.ts +6 -0
  120. package/lib/components/calendar/YearsView.js +21 -10
  121. package/lib/components/calendar/YearsView.js.map +2 -2
  122. package/lib/components/condition-builder/Field.js +1 -4
  123. package/lib/components/condition-builder/Field.js.map +2 -2
  124. package/lib/components/condition-builder/Func.js +1 -1
  125. package/lib/components/condition-builder/Func.js.map +2 -2
  126. package/lib/components/formula/Editor.d.ts +3 -0
  127. package/lib/components/formula/Editor.js +3 -2
  128. package/lib/components/formula/Editor.js.map +2 -2
  129. package/lib/components/formula/FuncList.js +2 -1
  130. package/lib/components/formula/FuncList.js.map +2 -2
  131. package/lib/components/formula/Picker.js +1 -1
  132. package/lib/components/formula/Picker.js.map +2 -2
  133. package/lib/components/icons.js +4 -0
  134. package/lib/components/icons.js.map +2 -2
  135. package/lib/components/index.d.ts +2 -1
  136. package/lib/components/index.js +4 -2
  137. package/lib/components/index.js.map +2 -2
  138. package/lib/components/virtual-list/SizeAndPositionManager.js.map +2 -2
  139. package/lib/components/virtual-list/index.js +1 -2
  140. package/lib/components/virtual-list/index.js.map +2 -2
  141. package/lib/factory.js +5 -0
  142. package/lib/factory.js.map +2 -2
  143. package/lib/icons/star.js +12 -0
  144. package/lib/icons/tree-down.js +7 -0
  145. package/lib/index.d.ts +1 -0
  146. package/lib/index.js +2 -1
  147. package/lib/index.js.map +2 -2
  148. package/lib/locale/de-DE.js +17 -2
  149. package/lib/locale/de-DE.js.map +2 -2
  150. package/lib/locale/en-US.js +17 -2
  151. package/lib/locale/en-US.js.map +2 -2
  152. package/lib/locale/zh-CN.js +16 -1
  153. package/lib/locale/zh-CN.js.map +2 -2
  154. package/lib/renderers/Avatar.d.ts +35 -26
  155. package/lib/renderers/Avatar.js +14 -19
  156. package/lib/renderers/Avatar.js.map +2 -2
  157. package/lib/renderers/CRUD.js +1 -2
  158. package/lib/renderers/CRUD.js.map +2 -2
  159. package/lib/renderers/Card.js +6 -5
  160. package/lib/renderers/Card.js.map +2 -2
  161. package/lib/renderers/Custom.js.map +2 -2
  162. package/lib/renderers/DropDownButton.d.ts +11 -2
  163. package/lib/renderers/DropDownButton.js +30 -12
  164. package/lib/renderers/DropDownButton.js.map +2 -2
  165. package/lib/renderers/Each.js +5 -2
  166. package/lib/renderers/Each.js.map +2 -2
  167. package/lib/renderers/Flex.js +1 -5
  168. package/lib/renderers/Flex.js.map +2 -2
  169. package/lib/renderers/Form/ChartRadios.js.map +2 -2
  170. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  171. package/lib/renderers/Form/CityDB.js +526 -2
  172. package/lib/renderers/Form/CityDB.js.map +2 -2
  173. package/lib/renderers/Form/DiffEditor.js +2 -1
  174. package/lib/renderers/Form/DiffEditor.js.map +2 -2
  175. package/lib/renderers/Form/InputCity.d.ts +85 -84
  176. package/lib/renderers/Form/InputCity.js +4 -2
  177. package/lib/renderers/Form/InputCity.js.map +2 -2
  178. package/lib/renderers/Form/InputColor.d.ts +84 -84
  179. package/lib/renderers/Form/InputColor.js +6 -2
  180. package/lib/renderers/Form/InputColor.js.map +2 -2
  181. package/lib/renderers/Form/InputDate.js +10 -5
  182. package/lib/renderers/Form/InputDate.js.map +2 -2
  183. package/lib/renderers/Form/InputDateRange.js +6 -2
  184. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  185. package/lib/renderers/Form/InputFormula.d.ts +4 -1
  186. package/lib/renderers/Form/InputFormula.js +2 -2
  187. package/lib/renderers/Form/InputFormula.js.map +2 -2
  188. package/lib/renderers/Form/InputImage.d.ts +1 -0
  189. package/lib/renderers/Form/InputImage.js +8 -4
  190. package/lib/renderers/Form/InputImage.js.map +2 -2
  191. package/lib/renderers/Form/InputMonthRange.js +1 -1
  192. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  193. package/lib/renderers/Form/InputQuarterRange.js +1 -1
  194. package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
  195. package/lib/renderers/Form/InputRating.d.ts +37 -0
  196. package/lib/renderers/Form/InputRating.js +6 -2
  197. package/lib/renderers/Form/InputRating.js.map +2 -2
  198. package/lib/renderers/Form/InputYearRange.js +1 -1
  199. package/lib/renderers/Form/InputYearRange.js.map +2 -2
  200. package/lib/renderers/Form/Item.d.ts +10 -14
  201. package/lib/renderers/Form/Item.js +18 -9
  202. package/lib/renderers/Form/Item.js.map +2 -2
  203. package/lib/renderers/Form/NestedSelect.d.ts +1 -0
  204. package/lib/renderers/Form/NestedSelect.js +8 -4
  205. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  206. package/lib/renderers/Form/Select.d.ts +2 -0
  207. package/lib/renderers/Form/Select.js +7 -4
  208. package/lib/renderers/Form/Select.js.map +2 -2
  209. package/lib/renderers/Form/TabsTransfer.d.ts +5 -32
  210. package/lib/renderers/Form/TabsTransfer.js +20 -1
  211. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  212. package/lib/renderers/Form/TabsTransferPicker.d.ts +5 -35
  213. package/lib/renderers/Form/TabsTransferPicker.js +21 -2
  214. package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
  215. package/lib/renderers/Form/Transfer.d.ts +15 -4
  216. package/lib/renderers/Form/Transfer.js +55 -18
  217. package/lib/renderers/Form/Transfer.js.map +2 -2
  218. package/lib/renderers/Form/TransferPicker.d.ts +3 -32
  219. package/lib/renderers/Form/TransferPicker.js +1 -1
  220. package/lib/renderers/Form/TransferPicker.js.map +2 -2
  221. package/lib/renderers/Form/TreeSelect.js +4 -4
  222. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  223. package/lib/renderers/Form/index.js +2 -1
  224. package/lib/renderers/Form/index.js.map +2 -2
  225. package/lib/renderers/IFrame.js +0 -2
  226. package/lib/renderers/IFrame.js.map +2 -2
  227. package/lib/renderers/Json.js +7 -0
  228. package/lib/renderers/Json.js.map +2 -2
  229. package/lib/renderers/Nav.js +4 -1
  230. package/lib/renderers/Nav.js.map +2 -2
  231. package/lib/renderers/Remark.d.ts +4 -0
  232. package/lib/renderers/Remark.js +39 -7
  233. package/lib/renderers/Remark.js.map +2 -2
  234. package/lib/renderers/Steps.js +5 -5
  235. package/lib/renderers/Steps.js.map +2 -2
  236. package/lib/renderers/Table/TableRow.js +4 -1
  237. package/lib/renderers/Table/TableRow.js.map +2 -2
  238. package/lib/renderers/Table/index.js +4 -1
  239. package/lib/renderers/Table/index.js.map +2 -2
  240. package/lib/renderers/Tabs.js +1 -1
  241. package/lib/renderers/Tabs.js.map +2 -2
  242. package/lib/renderers/Timeline.d.ts +65 -0
  243. package/lib/renderers/Timeline.js +54 -0
  244. package/lib/renderers/Timeline.js.map +13 -0
  245. package/lib/renderers/Video.js.map +2 -2
  246. package/lib/schemaExtend.js +23 -9
  247. package/lib/schemaExtend.js.map +2 -2
  248. package/lib/store/combo.js.map +2 -2
  249. package/lib/store/formItem.js +6 -6
  250. package/lib/store/formItem.js.map +2 -2
  251. package/lib/store/table.js +1 -1
  252. package/lib/store/table.js.map +2 -2
  253. package/lib/themes/ang-ie11.css +1018 -67
  254. package/lib/themes/ang.css +1018 -67
  255. package/lib/themes/ang.css.map +1 -1
  256. package/lib/themes/antd-ie11.css +1053 -67
  257. package/lib/themes/antd.css +1053 -67
  258. package/lib/themes/antd.css.map +1 -1
  259. package/lib/themes/cxd-ie11.css +1058 -78
  260. package/lib/themes/cxd.css +1058 -78
  261. package/lib/themes/cxd.css.map +1 -1
  262. package/lib/themes/dark-ie11.css +1019 -67
  263. package/lib/themes/dark.css +1019 -67
  264. package/lib/themes/dark.css.map +1 -1
  265. package/lib/themes/default.css +1058 -78
  266. package/lib/themes/default.css.map +1 -1
  267. package/lib/utils/RootClose.js +3 -1
  268. package/lib/utils/RootClose.js.map +2 -2
  269. package/lib/utils/helper.d.ts +1 -6
  270. package/lib/utils/helper.js +6 -17
  271. package/lib/utils/helper.js.map +2 -2
  272. package/package.json +12 -6
  273. package/schema.json +3696 -971
  274. package/scss/_properties.scss +21 -7
  275. package/scss/components/_avatar.scss +27 -9
  276. package/scss/components/_calendar.scss +287 -0
  277. package/scss/components/_card.scss +1 -1
  278. package/scss/components/_cascader.scss +102 -0
  279. package/scss/components/_city-area.scss +27 -0
  280. package/scss/components/_collapse-group.scss +1 -3
  281. package/scss/components/_dropdown.scss +39 -9
  282. package/scss/components/_formula.scss +30 -6
  283. package/scss/components/_modal.scss +18 -0
  284. package/scss/components/_panel.scss +45 -0
  285. package/scss/components/_picker-columns.scss +15 -5
  286. package/scss/components/_popup.scss +42 -15
  287. package/scss/components/_result-box.scss +31 -0
  288. package/scss/components/_timeline.scss +198 -0
  289. package/scss/components/form/_checks.scss +2 -0
  290. package/scss/components/form/_color.scss +2 -2
  291. package/scss/components/form/_date-range.scss +1 -1
  292. package/scss/components/form/_date.scss +46 -1
  293. package/scss/components/form/_form.scss +168 -0
  294. package/scss/components/form/_nested-select.scss +3 -0
  295. package/scss/components/form/_rating.scss +60 -21
  296. package/scss/components/form/_result-list.scss +2 -0
  297. package/scss/components/form/_select.scss +32 -3
  298. package/scss/components/form/_selection.scss +5 -4
  299. package/scss/components/form/_transfer.scss +3 -0
  300. package/scss/components/form/_tree-select.scss +1 -1
  301. package/scss/themes/_antd-variables.scss +42 -0
  302. package/scss/themes/_common.scss +3 -0
  303. package/scss/themes/_cxd-variables.scss +51 -2
  304. package/scss/themes/_dark-variables.scss +1 -0
  305. package/scss/themes/cxd.scss +0 -12
  306. package/sdk/ang-ie11.css +1278 -141
  307. package/sdk/ang.css +1296 -153
  308. package/sdk/antd-ie11.css +1278 -141
  309. package/sdk/antd.css +1331 -153
  310. package/sdk/charts.js +14 -14
  311. package/sdk/codemirror.js +7 -7
  312. package/sdk/color-picker.js +65 -65
  313. package/sdk/cropperjs.js +2 -2
  314. package/sdk/cxd-ie11.css +1258 -132
  315. package/sdk/cxd.css +1338 -168
  316. package/sdk/dark-ie11.css +1278 -141
  317. package/sdk/dark.css +1297 -153
  318. package/sdk/exceljs.js +1 -1
  319. package/sdk/locale/de-DE.js +17 -2
  320. package/sdk/markdown.js +69 -69
  321. package/sdk/papaparse.js +1 -1
  322. package/sdk/renderers/Form/CityDB.js +1 -1
  323. package/sdk/rest.js +18 -18
  324. package/sdk/rich-text.js +62 -62
  325. package/sdk/sdk-ie11.css +1258 -132
  326. package/sdk/sdk.css +1338 -168
  327. package/sdk/sdk.js +1242 -1218
  328. package/sdk/thirds/hls.js/hls.js +1 -1
  329. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  330. package/sdk/tinymce.js +57 -57
  331. package/src/Schema.ts +3 -0
  332. package/src/components/AssociatedSelection.tsx +5 -1
  333. package/src/components/Avatar.tsx +253 -0
  334. package/src/components/BaiduMapPicker.tsx +19 -14
  335. package/src/components/CalendarMobile.tsx +563 -0
  336. package/src/components/Card.tsx +2 -2
  337. package/src/components/Cascader.tsx +564 -0
  338. package/src/components/ChainedSelection.tsx +16 -3
  339. package/src/components/CityArea.tsx +315 -0
  340. package/src/components/Collapse.tsx +1 -1
  341. package/src/components/ColorPicker.tsx +41 -40
  342. package/src/components/DatePicker.tsx +54 -38
  343. package/src/components/DateRangePicker.tsx +83 -29
  344. package/src/components/GroupedSelection.tsx +14 -2
  345. package/src/components/MonthRangePicker.tsx +76 -30
  346. package/src/components/Overlay.tsx +1 -1
  347. package/src/components/Picker.tsx +55 -35
  348. package/src/components/PickerColumn.tsx +43 -36
  349. package/src/components/PickerContainer.tsx +13 -1
  350. package/src/components/PopOverContainer.tsx +31 -17
  351. package/src/components/PopUp.tsx +84 -57
  352. package/src/components/Rating.tsx +235 -47
  353. package/src/components/ResultBox.tsx +14 -2
  354. package/src/components/ResultList.tsx +36 -6
  355. package/src/components/Select.tsx +20 -23
  356. package/src/components/Selection.tsx +21 -3
  357. package/src/components/Steps.tsx +23 -10
  358. package/src/components/TableSelection.tsx +1 -44
  359. package/src/components/Tabs.tsx +65 -54
  360. package/src/components/TabsTransfer.tsx +78 -9
  361. package/src/components/TabsTransferPicker.tsx +25 -13
  362. package/src/components/Timeline.tsx +31 -0
  363. package/src/components/TimelineItem.tsx +107 -0
  364. package/src/components/Transfer.tsx +11 -8
  365. package/src/components/TransferDropDown.tsx +20 -12
  366. package/src/components/TransferPicker.tsx +25 -4
  367. package/src/components/TreeSelection.tsx +7 -1
  368. package/src/components/calendar/Calendar.tsx +101 -4
  369. package/src/components/calendar/DaysView.tsx +165 -33
  370. package/src/components/calendar/MonthsView.tsx +108 -1
  371. package/src/components/calendar/QuartersView.tsx +3 -2
  372. package/src/components/calendar/TimeView.tsx +104 -41
  373. package/src/components/calendar/YearsView.tsx +34 -17
  374. package/src/components/condition-builder/Field.tsx +1 -3
  375. package/src/components/condition-builder/Func.tsx +1 -1
  376. package/src/components/formula/Editor.tsx +16 -11
  377. package/src/components/formula/FuncList.tsx +3 -1
  378. package/src/components/formula/Picker.tsx +2 -1
  379. package/src/components/icons.tsx +4 -0
  380. package/src/components/index.tsx +2 -0
  381. package/src/components/virtual-list/SizeAndPositionManager.ts +6 -3
  382. package/src/components/virtual-list/index.tsx +4 -6
  383. package/src/factory.tsx +6 -0
  384. package/src/icons/star.svg +12 -0
  385. package/src/icons/tree-down.svg +5 -0
  386. package/src/index.tsx +1 -0
  387. package/src/locale/de-DE.ts +17 -2
  388. package/src/locale/en-US.ts +17 -2
  389. package/src/locale/zh-CN.ts +16 -1
  390. package/src/renderers/Avatar.tsx +83 -74
  391. package/src/renderers/CRUD.tsx +1 -3
  392. package/src/renderers/Card.tsx +10 -6
  393. package/src/renderers/Custom.tsx +6 -3
  394. package/src/renderers/DropDownButton.tsx +69 -35
  395. package/src/renderers/Each.tsx +4 -4
  396. package/src/renderers/Flex.tsx +3 -7
  397. package/src/renderers/Form/ChartRadios.tsx +2 -7
  398. package/src/renderers/Form/Checkboxes.tsx +1 -1
  399. package/src/renderers/Form/CityDB.ts +526 -2
  400. package/src/renderers/Form/DiffEditor.tsx +2 -3
  401. package/src/renderers/Form/InputCity.tsx +23 -3
  402. package/src/renderers/Form/InputColor.tsx +21 -2
  403. package/src/renderers/Form/InputDate.tsx +48 -20
  404. package/src/renderers/Form/InputDateRange.tsx +9 -2
  405. package/src/renderers/Form/InputFormula.tsx +9 -4
  406. package/src/renderers/Form/InputImage.tsx +9 -4
  407. package/src/renderers/Form/InputMonthRange.tsx +0 -1
  408. package/src/renderers/Form/InputQuarterRange.tsx +0 -1
  409. package/src/renderers/Form/InputRating.tsx +66 -3
  410. package/src/renderers/Form/InputYearRange.tsx +0 -1
  411. package/src/renderers/Form/Item.tsx +29 -8
  412. package/src/renderers/Form/NestedSelect.tsx +32 -4
  413. package/src/renderers/Form/Select.tsx +15 -3
  414. package/src/renderers/Form/TabsTransfer.tsx +28 -38
  415. package/src/renderers/Form/TabsTransferPicker.tsx +28 -46
  416. package/src/renderers/Form/Transfer.tsx +75 -24
  417. package/src/renderers/Form/TransferPicker.tsx +6 -38
  418. package/src/renderers/Form/TreeSelect.tsx +18 -16
  419. package/src/renderers/Form/index.tsx +2 -1
  420. package/src/renderers/IFrame.tsx +0 -2
  421. package/src/renderers/Json.tsx +5 -0
  422. package/src/renderers/Nav.tsx +4 -1
  423. package/src/renderers/Remark.tsx +68 -18
  424. package/src/renderers/Steps.tsx +11 -13
  425. package/src/renderers/Table/TableRow.tsx +3 -1
  426. package/src/renderers/Table/index.tsx +7 -1
  427. package/src/renderers/Tabs.tsx +6 -2
  428. package/src/renderers/Timeline.tsx +141 -0
  429. package/src/renderers/Video.tsx +4 -20
  430. package/src/schemaExtend.ts +22 -10
  431. package/src/store/combo.ts +1 -3
  432. package/src/store/formItem.ts +2 -2
  433. package/src/store/table.ts +2 -1
  434. package/src/utils/RootClose.ts +5 -1
  435. package/src/utils/helper.ts +6 -16
@@ -6,8 +6,8 @@
6
6
  "/src/store/table.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": ";;;;AAAA,mDAUyB;AACzB,yCAA2C;AAC3C,oDAAqD;AACrD,wEAAqC;AACrC,kEAA+B;AAC/B,0CAcyB;AACzB,oCAA4C;AAE5C,qCAAuC;AAE1B,QAAA,MAAM,GAAG,uBAAK;KACxB,KAAK,CAAC,QAAQ,EAAE;IACf,KAAK,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;IAChD,IAAI,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAE,OAAO,CAAC;IAC3C,IAAI,EAAE,uBAAK,CAAC,KAAK,CAAC,uBAAK,CAAC,MAAM,CAAC;IAC/B,KAAK,EAAE,uBAAK,CAAC,MAAM,EAAE;IACrB,SAAS,EAAE,EAAE;IACb,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,IAAI;IACd,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,KAAK;IACnB,SAAS,EAAE,KAAK;IAChB,UAAU,EAAE,uBAAK,CAAC,KAAK,CAAC,uBAAK,CAAC,MAAM,EAAE,CAAC;IACvC,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;IACrD,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;IACrD,QAAQ,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;IACnD,MAAM,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC;IACjD,SAAS,EAAE,EAAE;CACd,CAAC;KACD,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC;IAChB,YAAY,EAAZ;QACE,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAM,KAAK,GAAG,IAAA,2BAAS,EAAC,IAAI,EAAE,CAAC,CAAgB,CAAC;QAEhD,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,MAAM,EAAE;YACtC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;SACrB;QAED,KAAK,CAAC,yBAAyB,EAAE,CAAC;IACpC,CAAC;IAED,UAAU,EAAV,UAAW,KAAc;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,eAAe,EAAf,UAAgB,KAAc;QAC5B,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC5B,CAAC;CACF,CAAC,EAnBe,CAmBf,CAAC,CAAC;AAKO,QAAA,GAAG,GAAG,uBAAK;KACrB,KAAK,CAAC,KAAK,EAAE;IACZ,SAAS,EAAE,KAAK;IAChB,EAAE,EAAE,uBAAK,CAAC,UAAU;IACpB,QAAQ,EAAE,EAAE;IACZ,GAAG,EAAE,uBAAK,CAAC,MAAM;IACjB,QAAQ,EAAE,uBAAK,CAAC,MAAM,CAAC,EAAS,CAAC;IACjC,IAAI,EAAE,uBAAK,CAAC,MAAM,CAAC,EAAS,CAAC;IAC7B,QAAQ,EAAE,uBAAK,CAAC,MAAM,CAAC,EAAS,CAAC;IACjC,KAAK,EAAE,uBAAK,CAAC,MAAM;IACnB,QAAQ,EAAE,uBAAK,CAAC,MAAM;IACtB,IAAI,EAAE,EAAE;IACR,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,KAAK;IACnB,OAAO,EAAE,KAAK;IACd,QAAQ,EAAE,uBAAK,CAAC,QAAQ,CACtB,uBAAK,CAAC,KAAK,CAAC,uBAAK,CAAC,IAAI,CAAC,cAAqB,OAAA,WAAG,EAAH,CAAG,CAAC,CAAC,EACjD,EAAE,CACH;IACD,KAAK,EAAE,uBAAK,CAAC,MAAM,CAAC,+CAA+C;CACpE,CAAC;KACD,KAAK,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC;IACd,IAAI,OAAO;QACT,OAAQ,IAAA,2BAAS,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAiB,CAAC,UAAU,CAChE,IAAY,CACb,CAAC;IACJ,CAAC;IAED,IAAI,QAAQ;QACV,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO,KAAK,CAAC;SACd;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAChC,UAAA,GAAG,IAAI,OAAA,CAAC,IAAA,iBAAO,EAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAA5C,CAA4C,CACpD,CAAC;IACJ,CAAC;IAED,0BAA0B;QACxB,IAAI,IAAI,6BACH,IAAI,CAAC,IAAI,CACb,CAAC;QAEF,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,IAAI;gBACpC,OAAA,IAAI,CAAC,0BAA0B,EAAE;YAAjC,CAAiC,CAClC,CAAC;SACH;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,SAAS;QACX,IAAM,KAAK,GAAG,IAAA,2BAAS,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAgB,CAAC;QAC7D,IAAI,KAAK,CAAC,QAAQ,EAAE;YAClB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,IAAI,GAAS,IAAW,CAAC;QAE7B,OAAO,IAAI,IAAK,IAAY,KAAK,KAAK,EAAE;YACtC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBAC3B,OAAO,IAAI,CAAC;aACb;YAED,IAAI,GAAG,IAAA,2BAAS,EAAC,IAAI,EAAE,CAAC,CAAC,CAAC;SAC3B;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;IACzB,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED,IAAI,MAAM;QACR,IAAI,QAAQ,GAAsB,IAAI,CAAC;QACvC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACxB,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,MAAM,EAAX,CAAW,CAAC,CAAC;SACnD;QAED,IAAM,MAAM,GAAG,IAAA,2BAAS,EAAC,IAAI,EAAE,CAAC,CAAgB,CAAC;QACjD,OAAO,IAAA,qBAAY,EACjB,IAAA,qBAAY,EAAE,IAAA,2BAAS,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAiB,CAAC,IAAI,EAAE;YAClE,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,qBAAqB;YACrB,MAAM,EAAE,MAAM,CAAC,SAAS,KAAK,WAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;SAChE,CAAC,EACF,QAAQ;YACN,CAAC,iDACM,IAAI,CAAC,IAAI,KACZ,QAAQ,UAAA,IAEZ,CAAC,CAAC,IAAI,CAAC,IAAI,CACd,CAAC;IACJ,CAAC;IAED,IAAI,SAAS;QACX,IAAM,KAAK,GAAG,IAAA,2BAAS,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAgB,CAAC;QAC7D,OAAO,KAAK,IAAI,KAAK,CAAC,eAAe;YACnC,CAAC,CAAC,IAAA,oBAAc,EAAC,KAAK,CAAC,eAAe,EAAG,IAAa,CAAC,MAAM,CAAC;YAC9D,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;IAED,IAAI,SAAS;QACX,IAAM,KAAK,GAAG,IAAA,2BAAS,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAgB,CAAC;QAC7D,OAAO,KAAK,IAAI,KAAK,CAAC,eAAe;YACnC,CAAC,CAAC,IAAA,oBAAc,EAAC,KAAK,CAAC,eAAe,EAAG,IAAa,CAAC,MAAM,CAAC;YAC9D,CAAC,CAAC,IAAI,CAAC;IACX,CAAC;CACF,CAAC,EA7Fa,CA6Fb,CAAC;KACF,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC;IAChB,MAAM,EAAN;QACG,IAAA,2BAAS,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAiB,CAAC,MAAM,CAAC,IAAY,CAAC,CAAC;IACxE,CAAC;IAED,cAAc,EAAd;QACG,IAAA,2BAAS,EAAC,IAAI,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAiB,CAAC,cAAc,CAC7D,IAAY,CACb,CAAC;IACJ,CAAC;IAED,MAAM,EAAN,UAAO,MAAc,EAAE,YAAsB;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAA,yBAAgB,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChD,YAAY,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9C,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,eAAe,EAAf,UAAgB,IAAa;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAED,UAAU,EAAV,UAAW,KAAc;QACvB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,WAAW,EAAX,UAAY,IAAS;QACnB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG;YAC3B,IAAI,GAAG,KAAK,IAAI,EAAE;gBACf,IAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;aAChC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;YAChC,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;YAC1B,IAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;YAE1B,SAAS;YACT,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;gBACrC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;aACrE;YAED,IAAI,KAAK,GAAG,CAAC,CAAC;YACd,IAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;YACjC,OAAO,IAAI,CAAC,MAAM,EAAE;gBAClB,qCAAqC;gBACrC,IAAM,IAAI,GAAG,gDACR,IAAI,CAAC,KAAK,EAAE,KACf,QAAQ,EAAE,IAAI,CAAC,EAAE,GACjB,CAAC;gBAEH,IAAI,KAAK,GAAG,GAAG,EAAE;oBACf,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;iBACxC;qBAAM;oBACL,IAAM,GAAG,GAAG,WAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACzB;gBACD,KAAK,EAAE,CAAC;aACT;SACF;IACH,CAAC;CACF,CAAC,EAhEe,CAgEf,CAAC,CAAC;AAKO,QAAA,UAAU,GAAG,0BAAc;KACrC,KAAK,CAAC,YAAY,CAAC;KACnB,KAAK,CAAC;IACL,OAAO,EAAE,uBAAK,CAAC,KAAK,CAAC,cAAM,CAAC;IAC5B,IAAI,EAAE,uBAAK,CAAC,KAAK,CAAC,WAAG,CAAC;IACtB,YAAY,EAAE,uBAAK,CAAC,KAAK,CAAC,uBAAK,CAAC,SAAS,CAAC,WAAG,CAAC,CAAC;IAC/C,YAAY,EAAE,uBAAK,CAAC,KAAK,CAAC,uBAAK,CAAC,MAAM,CAAC;IACvC,YAAY,EAAE,IAAI;IAClB,OAAO,EAAE,EAAE;IACX,QAAQ,EAAE,uBAAK,CAAC,QAAQ,CACtB,uBAAK,CAAC,KAAK,CAAC,uBAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,uBAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EACxD,KAAK,CACN;IACD,SAAS,EAAE,KAAK;IAChB,QAAQ,EAAE,KAAK;IACf,UAAU,EAAE,KAAK;IACjB,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,uBAAK,CAAC,MAAM,EAAE;IACxB,YAAY,EAAE,uBAAK,CAAC,MAAM,EAAE;IAC5B,QAAQ,EAAE,KAAK;IACf,gBAAgB,EAAE,uBAAK,CAAC,QAAQ,CAC9B,uBAAK,CAAC,KAAK,CAAC,uBAAK,CAAC,OAAO,EAAE,uBAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EACjD,MAAM,CACP;IACD,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,EAAE;IACnB,gBAAgB,EAAE,KAAK;IACvB,UAAU,EAAE,CAAC;IACb,gBAAgB,EAAE,CAAC;IACnB,QAAQ,EAAE,uBAAK,CAAC,QAAQ,CAAC,uBAAK,CAAC,KAAK,CAAC,uBAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;IACzD,0BAA0B,EAAE,CAAC;IAC7B,6BAA6B,EAAE,KAAK;CACrC,CAAC;KACD,KAAK,CAAC,UAAA,IAAI;IACT,SAAS,4BAA4B;QACnC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAtB,CAAsB,CAAC,CAAC;IAC7D,CAAC;IAED,SAAS,QAAQ;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC;YAChC,KAAK,EAAE,IAAA,sBAAY,EAAC,IAAI,CAAC,EAAE,CAAe;YAC1C,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB,CAAC,EAH+B,CAG/B,CAAC,CAAC;IACN,CAAC;IAED,SAAS,kBAAkB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,UAAA,IAAI;YACF,OAAA,IAAI;gBACJ,IAAA,kBAAS,EACP,IAAI,CAAC,QAAQ,EACb,IAAA,6BAAoB,EAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CACrD;gBACD,CAAC,IAAI,CAAC,IAAI,KAAK,WAAW;oBACxB,CAAC,CAAC,IAAI,CAAC,UAAU;wBACf,CAAC,IAAI,CAAC,QAAQ;wBACd,CAAC,IAAI,CAAC,gBAAgB;wBACtB,IAAI,CAAC,IAAI,CAAC,MAAM;oBAClB,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,UAAU;wBAC1B,CAAC,CAAC,IAAI,CAAC,QAAQ;wBACf,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,YAAY;4BAC5B,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ;4BAClE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gCAChC,CAAC,CAAC,IAAI,CAAC,QAAQ;oCACb,CAAC,IAAI,CAAC,UAAU;oCAChB,CAAC,IAAA,qBAAY,EAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;QAjBtC,CAiBsC,CACzC,CAAC;IACJ,CAAC;IAED,SAAS,kBAAkB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,IAAI;YAC7B,OAAA,IAAI,CAAC,IAAI,KAAK,WAAW;gBACzB,IAAI,CAAC,IAAI,KAAK,UAAU;gBACxB,IAAI,CAAC,IAAI,KAAK,YAAY;gBACxB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAChC,IAAI,CAAC,QAAQ;oBACb,IAAI,CAAC,UAAU;oBACf,IAAA,qBAAY,EAAC,IAAI,CAAC,UAAU,CAAC;QAPjC,CAOiC,CAClC,CAAC;IACJ,CAAC;IAED,SAAS,mBAAmB;QAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,EAAE,CAAC;SACX;QAED,IAAI,OAAO,GAAG,kBAAkB,EAAE,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,KAAK,MAAM,EAArB,CAAqB,CAAC,CAAC;QAEzE,eAAe;QACf,IAAI,OAAO,CAAC,MAAM,EAAE;YAClB,OAAO,GAAG,kBAAkB,EAAE,CAAC,MAAM,CACnC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAA9C,CAA8C,CACvD,CAAC;SACH;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS,oBAAoB;QAC3B,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,OAAO,EAAE,CAAC;SACX;QAED,OAAO,kBAAkB,EAAE,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,KAAK,OAAO,EAAtB,CAAsB,CAAC,CAAC;IACrE,CAAC;IAED,SAAS,UAAU,CAAC,GAAS;QAC3B,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3C,CAAC;IAED,SAAS,UAAU,CAAC,GAAS;QAC3B,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,SAAS,YAAY;QACnB,IAAI,IAAI,CAAC,gBAAgB,KAAK,MAAM,EAAE;YACpC,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAtB,CAAsB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;SACvE;QAED,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED,SAAS,kBAAkB;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,UAAA,IAAI,IAAI,OAAA,IAAA,kBAAS,EAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,KAAK,EAA9D,CAA8D,CACvE,CAAC;IACJ,CAAC;IAED,SAAS,wBAAwB;QAC/B,OAAO,kBAAkB,EAAE,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,OAAO,EAAZ,CAAY,CAAC,CAAC;IAC3D,CAAC;IAED,SAAS,eAAe,CAAC,IAAiB,EAAE,YAAyB;QAA5C,qBAAA,EAAA,SAAiB;QAAE,6BAAA,EAAA,iBAAyB;QACnE,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,UAAC,IAAU;YACtB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;gBACzC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;aAC9C;YACD,IAAI,IAAI,GAAG,IAAA,mBAAU,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAChD,IAAI,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC;YAC7C,IAAI,aAAa,EAAE;gBACjB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACzB;QACH,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,SAAS,WAAW;QAClB,OAAO,eAAe,EAAE,CAAC,MAAM,CAAC;IAClC,CAAC;IAED,SAAS,YAAY;QACnB,OAAO,IAAA,oBAAW,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAC,IAAU,IAAK,OAAA,IAAI,CAAC,KAAK,EAAV,CAAU,CAAC,CAAC;IACnE,CAAC;IAED,SAAS,QAAQ;QACf,OAAO,YAAY,EAAE,CAAC,MAAM,CAAC;IAC/B,CAAC;IAED,SAAS,WAAW;QAClB,OAAO,IAAA,oBAAW,EAAO,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,UAAC,IAAU,IAAK,OAAA,IAAI,CAAC,OAAO,EAAZ,CAAY,CAAC,CAAC;IACzE,CAAC;IAED,SAAS,iBAAiB;QACxB,OAAO,IAAA,oBAAW,EAAO,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,UAAC,IAAU,IAAK,OAAA,CAAC,IAAI,CAAC,OAAO,EAAb,CAAa,CAAC,CAAC;IAC5E,CAAC;IAED,SAAS,OAAO,CAAC,SAAc;QAC7B,OAAO,IAAA,qBAAY,EAAC,SAAS,EAAE;YAC7B,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC;YACvC,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC;YACvD,eAAe,EAAE,iBAAiB,EAAE,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,EAAT,CAAS,CAAC;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,SAAS,eAAe;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,UAAA,MAAM,IAAI,OAAA,CAAC,MAAM,CAAC,OAAO,EAAf,CAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,SAAS,cAAc;QACrB,IAAM,OAAO,GAAG,kBAAkB,EAAE,CAAC;QACrC,IAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAE3B,IAAI,CAAC,GAAG,EAAE;YACR,OAAO,EAAE,CAAC;SACX;QAED,IAAM,MAAM,GAMP;YACH;gBACE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC3B,OAAO,EAAE,CAAC;gBACV,OAAO,EAAE,CAAC;gBACV,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK;gBACvB,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;aAClB;SACF,CAAC;QAEF,oBAAoB;QACpB,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE;YACjD,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;SACxC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACrC,IAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAE3B,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,KAAK,EAAE;gBACpC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aACxB;iBAAM;gBACL,MAAM,CAAC,IAAI,CAAC;oBACV,KAAK,EAAE,OAAO,CAAC,SAAS;oBACxB,OAAO,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;oBACV,KAAK,EAAE,OAAO,CAAC,KAAK;oBACpB,GAAG,EAAE,CAAC,OAAO,CAAC;iBACf,CAAC,CAAC;aACJ;SACF;QAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;YAC3C,MAAM,CAAC,GAAG,EAAE,CAAC;SACd;QAED,OAAO,MAAM,CAAC,GAAG,CAAC,UAAA,IAAI;YACpB,IAAM,OAAO,GACX,CAAC,IAAI,CAAC,KAAK;gBACX,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;gBACzD,CAAC,CAAC,CAAC;gBACH,CAAC,CAAC,CAAC,CAAC;YACR,uDACK,IAAI,KACP,OAAO,SAAA,EACP,KAAK,EAAE,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IACnE;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,0BAA0B;QACjC,IAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAC9B,UAAA,MAAM,IAAI,OAAA,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,EAA1C,CAA0C,CACrD,CAAC;QAEF,OAAO,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAC9C,CAAC;IAED,SAAS,oBAAoB;QAC3B,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CACxB,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,UAAU,IAAI,IAAA,iBAAQ,EAAC,MAAM,CAAC,UAAU,CAAC,EAAhD,CAAgD,CAC3D,CAAC;IACJ,CAAC;IAED,OAAO;QACL,IAAI,WAAW;YACb,OAAO,4BAA4B,EAAE,CAAC;QACxC,CAAC;QAED,IAAI,KAAK;YACP,OAAO,QAAQ,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,iBAAiB;YACnB,OAAO,oBAAoB,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,wBAAwB;YAC1B,OAAO,oBAAoB,EAAE,CAAC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,YAAY,EAAnB,CAAmB,CAAC,CAAC;QACtE,CAAC;QAED,IAAI,eAAe;YACjB,OAAO,kBAAkB,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,eAAe;YACjB,OAAO,kBAAkB,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,gBAAgB;YAClB,OAAO,mBAAmB,EAAE,CAAC;QAC/B,CAAC;QAED,IAAI,iBAAiB;YACnB,OAAO,oBAAoB,EAAE,CAAC;QAChC,CAAC;QAED,IAAI,eAAe;YACjB,OAAO,kBAAkB,EAAE,CAAC;QAC9B,CAAC;QAED,IAAI,oBAAoB;YACtB,OAAO,wBAAwB,EAAE,CAAC;QACpC,CAAC;QAED,IAAI,WAAW;YACb,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QACpC,CAAC;QAED,IAAI,UAAU;YACZ,OAAO,CAAC,CAAC,CACP,IAAI,CAAC,YAAY,CAAC,MAAM;gBACrB,IAAoB,CAAC,aAAa,CAAC,MAAM;gBAC3C,IAAoB,CAAC,aAAa,CAAC,MAAM,CAC3C,CAAC;QACJ,CAAC;QAED,UAAU,YAAA;QAEV,IAAI,WAAW;YACb,OAAO,CAAC,CAAC,CACP,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,IAAI,CAAC,cAAc,CAAC,MAAM;gBACvD,IAAI,CAAC,cAAc,CAAC,MAAM,CAC3B,CAAC;QACJ,CAAC;QAED,UAAU,YAAA;QAEV,IAAI,QAAQ;YACV,OAAO,YAAY,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,QAAQ;YACV,OAAO,WAAW,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,YAAY;YACd,OAAO,eAAe,EAAE,CAAC;QAC3B,CAAC;QAED,IAAI,cAAc;YAChB,OAAO,iBAAiB,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,aAAa;YACf,OAAO,IAAA,oBAAW,EAAO,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CACxC,UAAC,IAAU,IAAK,OAAA,IAAI,CAAC,SAAS,EAAd,CAAc,CAC/B,CAAC;QACJ,CAAC;QAED,IAAI,cAAc;YAChB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,UAAU,EAAf,CAAe,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,KAAK;YACP,OAAO,QAAQ,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,SAAS;YACX,OAAO,YAAY,EAAE,CAAC;QACxB,CAAC;QAED,IAAI,QAAQ;YACV,OAAO,WAAW,EAAE,CAAC;QACvB,CAAC;QAED,IAAI,oBAAoB;;YACtB,IAAM,cAAc,GAAG,MAAA,IAAI,CAAC,IAAI,0CAAE,aAAa,CAAC,MAAM,CAAC;YACvD,IAAM,SAAS,GAAG,IAAI,CAAC,0BAA0B,CAAC;YAElD,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,SAAS,EAAE;gBACnE,OAAO,KAAK,CAAC;aACd;YAED,OAAO,SAAS,KAAK,cAAc,CAAC;QACtC,CAAC;QAED,IAAI,uBAAuB;YACzB,OAAO,0BAA0B,EAAE,CAAC;QACtC,CAAC;QAED,OAAO,SAAA;QAEP,IAAI,WAAW;YACb,OAAO,cAAc,EAAE,CAAC;QAC1B,CAAC;QAED,UAAU,EAAV,UAAW,EAAU;YACnB,OAAO,IAAA,iBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,EAAE,KAAK,EAAE,EAAd,CAAc,CAAC,CAAC;QACrD,CAAC;QAED,cAAc,EAAd,UAAe,IAAY;YACzB,OAAO,IAAI,CAAC,KAAK;iBACd,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,EAApC,CAAoC,CAAC;iBACpD,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,EAAV,CAAU,CAAC,CAAC;QAC7B,CAAC;QAED,UAAU;QACV,eAAe;YACb,OAAO,eAAe,EAAE,CAAC;QAC3B,CAAC;QAED,eAAe,EAAf;YACE,IAAM,IAAI,GAAgB,EAAE,CAAC;YAE7B,IAAA,iBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,UAAA,CAAC;gBACnB,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;oBACpC,IAAI,CAAC,IAAI,CAAC,CAAQ,CAAC,CAAC;iBACrB;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,IAAI,CAAC;QACd,CAAC;KACF,CAAC;AACJ,CAAC,CAAC;KACD,OAAO,CAAC,UAAA,IAAI;IACX,SAAS,MAAM,CAAC,MAA4B;QAC1C,MAAM,CAAC,YAAY,KAAK,KAAK,CAAC;YAC5B,CAAC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QACtE,MAAM,CAAC,gBAAgB,KAAK,KAAK,CAAC;YAChC,CAAC,IAAI,CAAC,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACpD,MAAM,CAAC,SAAS,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAEnE,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE;YACtC,cAAc,CACZ,MAAM,CAAC,OAAO,EACd,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAC5C,CAAC;SACH;QAED,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,CAAC,QAAQ,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChE,MAAM,CAAC,YAAY,KAAK,KAAK,CAAC;YAC5B,CAAC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,CAAC,eAAe,KAAK,KAAK,CAAC;YAC/B,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,CAAC,eAAe,KAAK,KAAK,CAAC;YAC/B,CAAC,IAAI,CAAC,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC;QAClD,MAAM,CAAC,gBAAgB,KAAK,KAAK,CAAC;YAChC,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAEtD,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC;YAC1B,CAAC,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,MAAM,CAAC,gBAAgB,KAAK,KAAK,CAAC;YAChC,CAAC,IAAI,CAAC,gBAAgB;gBACpB,QAAQ,CAAC,MAAM,CAAC,gBAAuB,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;QAEvD,MAAM,CAAC,0BAA0B,KAAK,KAAK,CAAC;YAC1C,CAAC,IAAI,CAAC,0BAA0B,GAAG,MAAM,CAAC,0BAA0B,CAAC,CAAC;QACxE,MAAM,CAAC,6BAA6B,KAAK,KAAK,CAAC;YAC7C,CAAC,IAAI,CAAC,6BAA6B;gBACjC,MAAM,CAAC,6BAA6B,CAAC,CAAC;QAE1C,IAAI,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACnD,IAAI,OAAO,GAAmB,MAAM,CAAC,OAAO;iBACzC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,EAAN,CAAM,CAAC;iBACxB,MAAM,EAAE,CAAC;YACZ,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACnB,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC;aACJ;YAED,OAAO,CAAC,OAAO,CAAC;gBACd,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,kBAAkB;aAC9B,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC;gBACd,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,iBAAiB;aAC7B,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC;gBACd,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,gBAAgB;aAC5B,CAAC,CAAC;YAEH,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,iDAClC,IAAI,KACP,KAAK,OAAA,EACL,QAAQ,EAAE,KAAK,GAAG,CAAC,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO,EAC1B,QAAQ,EAAE,IAAI,EACd,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK,EAC/B,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,SAAS,EAAE,KAAK,KAAK,CAAC,EACtB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,EAAE,IAC/B,EAVqC,CAUrC,CAAC,CAAC;YAEJ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAc,CAAC,CAAC;SACtC;IACH,CAAC;IAED,SAAS,aAAa,CAAC,OAAuB;QAC5C,IAAI,OAAO,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACrC,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,UAAA,MAAM,IAAI,OAAA,MAAM,EAAN,CAAM,CAAC,CAAC,MAAM,EAAE,CAAC;YAEpD,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;gBACnB,OAAO,CAAC,IAAI,CAAC;oBACX,IAAI,EAAE,MAAM;oBACZ,KAAK,EAAE,GAAG;iBACX,CAAC,CAAC;aACJ;YAED,OAAO,CAAC,OAAO,CAAC;gBACd,IAAI,EAAE,YAAY;gBAClB,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,kBAAkB;aAC9B,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC;gBACd,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,MAAM;gBACb,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,iBAAiB;aAC7B,CAAC,CAAC;YAEH,OAAO,CAAC,OAAO,CAAC;gBACd,IAAI,EAAE,UAAU;gBAChB,QAAQ,EAAE,KAAK;gBACf,SAAS,EAAE,gBAAgB;aAC5B,CAAC,CAAC;YAEH,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,iDAClC,IAAI,KACP,KAAK,OAAA,EACL,QAAQ,EAAE,KAAK,GAAG,CAAC,EACnB,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,OAAO,EAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,IAAI,EAC/B,OAAO,EAAE,IAAI,CAAC,OAAO,KAAK,KAAK,EAC/B,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,SAAS,EAAE,KAAK,KAAK,CAAC,IACtB,EATqC,CASrC,CAAC,CAAC;YAEJ,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,OAAc,CAAC,CAAC;SACtC;IACH,CAAC;IAED,SAAS,WAAW,CAAC,GAAgB,EAAE,IAAmB;QACxD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YAC/B,OAAO,GAAG,CAAC;SACZ;QAED,IAAM,GAAG,GAAW,IAAI,CAAC,KAAK,EAAY,CAAC;QAC3C,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;QACxB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtB,IAAI,KAAK,GAAG,IAAA,6BAAe,EAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC9C,IAAM,OAAO,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;YACvB,IAAI,IAAA,iBAAO,EAAC,IAAA,6BAAe,EAAC,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE;gBACtD,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvB,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;aAC3B;iBAAM;gBACL,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;oBACzB,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;iBACpD;gBAED,QAAQ,GAAG,CAAC,CAAC;gBACb,GAAG,GAAG,OAAO,CAAC;gBACd,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,KAAK,GAAG,IAAA,6BAAe,EAAC,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;aACxC;SACF;QAED,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE;YACxC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;SAC7D;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,SAAS,eAAe,CACtB,GAAgB,EAChB,OAAuB,EACvB,QAAgB,EAChB,SAAa;QAAb,0BAAA,EAAA,aAAa;QAEb,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,QAAQ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YAC/C,OAAO,GAAG,CAAC;SACZ;QACD,iCAAiC;QACjC,SAAS;YACP,SAAS;gBACT,CAAC,GAAG,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAApD,CAAoD,CAAC;oBACrE,CAAC,CAAC,CAAC;oBACH,CAAC,CAAC,CAAC,CAAC,CAAC;QAET,IAAM,IAAI,GAAkB,EAAE,CAAC;QAC/B,IAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;QAC3B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE;YAC5B,IAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;YAE1B,iCAAiC;YACjC,IAAI,CAAC,MAAM,EAAE;gBACX,MAAM;aACP;YAED,IAAI,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;gBACxC,QAAQ,EAAE,CAAC;gBACX,SAAS;aACV;YAED,IAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,GAAG,EAAE;gBACR,MAAM;aACP;YACD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAChB;QAED,OAAO,SAAS,EAAE,EAAE;YAClB,IAAI,CAAC,KAAK,EAAE,CAAC;SACd;QAED,OAAO,IAAI,CAAC,MAAM,GAAG,QAAQ,EAAE;YAC7B,IAAI,CAAC,GAAG,EAAE,CAAC;SACZ;QAED,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,SAAS,YAAY,CACnB,QAAoB,EACpB,KAAa,EACb,MAAc,EACd,QAAgB,EAChB,IAAiB;QAAjB,qBAAA,EAAA,SAAiB;QAEjB,KAAK,IAAI,CAAC,CAAC;QACX,OAAO,QAAQ,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;YAC9B,IAAI,GAAG,IAAA,iBAAQ,EAAC,IAAI,CAAC;gBACnB,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC;oBACE,IAAI,MAAA;iBACL,CAAC;YACN,IAAM,EAAE,GAAG,IAAA,aAAI,GAAE,CAAC;YAElB,OAAO;gBACL,uFAAuF;gBACvF,EAAE,EAAE,EAAE;gBACN,QAAQ,UAAA;gBACR,GAAG,EAAE,MAAM,CAAI,MAAM,SAAI,KAAK,SAAI,KAAO,CAAC;gBAC1C,IAAI,EAAE,KAAG,IAAI,GAAG,KAAO;gBACvB,KAAK,EAAE,KAAK;gBACZ,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EACN,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAClC,CAAC,CAAC,YAAY,CACV,IAAI,CAAC,QAAQ,EACb,KAAK,EACL,KAAK,EACL,EAAE,EACF,KAAG,IAAI,GAAG,KAAK,MAAG,CACnB;oBACH,CAAC,CAAC,EAAE;gBACR,UAAU,EAAE,CAAC,CAAC,CACZ,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC9D,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAC/C;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAED,SAAS,QAAQ,CACf,IAAgB,EAChB,UAAkD,EAClD,QAAkB;QAElB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC1B,6BAA6B;QAE7B,IAAI,GAAG,GAAgB,IAAI,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;YAC1C,IAAI,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,aAAI,GAAE,CAAC;YACvD,OAAO;gBACL,kHAAkH;gBAClH,EAAE,EAAE,EAAE;gBACN,GAAG,EAAE,MAAM,CAAI,KAAK,WAAM,KAAO,CAAC;gBAClC,KAAK,EAAE,CAAC;gBACR,KAAK,EAAE,KAAK;gBACZ,QAAQ,EAAE,KAAK;gBACf,QAAQ,EAAE,IAAI;gBACd,IAAI,EAAE,KAAG,KAAO;gBAChB,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,EAAE;gBACZ,QAAQ,EACN,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC;oBAClC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,EAAK,KAAK,MAAG,CAAC;oBACxD,CAAC,CAAC,EAAE;gBACR,UAAU,EAAE,CAAC,CAAC,CACZ,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;oBAC9D,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAC/C;aACF,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,GAAG,GAAG,eAAe,CACnB,GAAG,EACH,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,gBAAgB,CACtB,CAAC;SACH;QAED,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,EAApB,CAAoB,CAAC,CAAC;QAE7D,IAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC;QACrD,IACE,MAAM,KAAK,OAAO;YAClB,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,OAAO,CAAC,EAC3D;YACA,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC7D;aAAM,IACL,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC9C,CAAC,IAAI,CAAC,YAAY;gBAChB,IAAI,CAAC,YAAY,CAAC,MAAM,KAAK,KAAK;gBAClC,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAC/B;YACA,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,EAAE,EAAP,CAAO,CAAC,CAAC,CAAC;SAC3D;QAED,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,aAAa;IACb,SAAS,UAAU,CAAC,GAAgB,EAAE,QAAkB;QACtD,IAAI,QAAQ,KAAK,KAAK,EAAE;YACtB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,WAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAhB,CAAgB,CAAC,CAAC,CAAC;YACrD,OAAO;SACR;QAED,IAAM,IAAI,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;QAE1B,SAAS;QACT,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE;YACjC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;SAC7D;QAED,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;QAC7B,OAAO,IAAI,CAAC,MAAM,EAAE;YAClB,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,EAAG,CAAC;YAE3B,IAAI,KAAK,GAAG,GAAG,EAAE;gBACf,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;aACpC;iBAAM;gBACL,IAAM,GAAG,GAAG,WAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;gBAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;aACrB;YACD,KAAK,EAAE,CAAC;SACT;IACH,CAAC;IAED,SAAS,cAAc,CAAC,QAAoB,EAAE,UAAmB;QAC/D,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAE1B,IAAA,iBAAQ,EAAC,IAAI,CAAC,IAAI,EAAE,UAAA,IAAI;YACtB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACjC;iBAAM,IACL,IAAA,cAAI,EACF,QAAQ,EACR,UAAA,CAAC;gBACC,OAAA,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC;oBACxB,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,IAAI,OAAO,CAAC;YADhE,CACgE,CACnE,EACD;gBACA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACjC;QACH,CAAC,CAAC,CAAC;QAEH,kBAAkB,EAAE,CAAC;IACvB,CAAC;IAED,SAAS,SAAS;;QAChB,IAAM,SAAS,GAAG,IAAI,CAAC,0BAA0B,CAAC;QAClD,IAAM,IAAI,GAAG,IAAI,CAAC,6BAA6B,CAAC;QAEhD,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SAC3B;aAAM;YACL,IAAM,eAAa,GAAG,MAAA,IAAI,CAAC,IAAI,0CAAE,aAAa,CAAC;YAE/C,IACE,IAAI;gBACJ,SAAS;gBACT,eAAa;gBACb,SAAS,IAAI,eAAa,CAAC,MAAM,EACjC;gBACA,IAAM,iBAAiB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CACjD,UAAA,IAAI,IAAI,OAAA,CAAC,IAAI,CAAC,OAAO,EAAb,CAAa,CACtB,CAAC;gBACF,IAAM,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAC5C,UAAC,IAAI,EAAE,CAAC,IAAK,OAAA,CAAC,GAAG,SAAS,GAAG,eAAa,CAAC,MAAM,EAApC,CAAoC,CAClD,CAAC;gBAEF,IAAI,CAAC,YAAY,CAAC,OAAO,2DAAK,IAAI,CAAC,YAAY,SAAK,aAAa,QAAE,CAAC;aACrE;iBAAM;gBACL,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aAC/C;SACF;IACH,CAAC;IAED,wCAAwC;IACxC,IAAI,cAAc,GAAQ,IAAI,CAAC;IAE/B,SAAS,MAAM,CAAC,GAAS;QACvB,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE;YAClB,OAAO;SACR;QAED,cAAc,GAAG,GAAG,CAAC;QAErB,IAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAE3C,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SACvE;aAAM;YACL,CAAC,GAAG;gBACF,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;gBAClC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;SACtC;IACH,CAAC;IAED,mBAAmB;IACnB,SAAS,WAAW,CAAC,GAAS;QAC5B,qCAAqC;QACrC,IAAI,CAAC,cAAc,IAAI,GAAG,KAAK,cAAc,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC/D,MAAM,CAAC,GAAG,CAAC,CAAC;YACZ,OAAO;SACR;QAED,IAAM,SAAS,GAAG,IAAI,CAAC,0BAA0B,CAAC;QAClD,IAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC;QACzC,IAAM,mBAAmB,GAAG,aAAa,CAAC,SAAS,CACjD,UAAA,GAAG,IAAI,OAAA,GAAG,KAAK,cAAc,EAAtB,CAAsB,CAC9B,CAAC;QACF,IAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,UAAA,OAAO,IAAI,OAAA,GAAG,KAAK,OAAO,EAAf,CAAe,CAAC,CAAC;QACrE,IAAM,QAAQ,GACZ,mBAAmB,GAAG,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC;QAClE,IAAM,QAAQ,GACZ,mBAAmB,GAAG,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAElE,IAAM,IAAI,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,cAAc;QAC9B,KAAsB,UAAI,EAAJ,aAAI,EAAJ,kBAAI,EAAJ,IAAI,EAAE;YAAvB,IAAM,OAAO,aAAA;YAChB,IAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC/C,IAAI,GAAG,KAAK,CAAC,CAAC,EAAE;gBACd,iCAAiC;gBACjC,IAAI,cAAc,CAAC,OAAO,EAAE;oBAC1B,IAAI,SAAS,EAAE;wBACb,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,GAAG,SAAS,EAAE;4BACxC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;yBACjC;qBACF;yBAAM;wBACL,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;qBACjC;iBACF;aACF;iBAAM;gBACL,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;oBAC3B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;iBAClC;aACF;SACF;QAED,cAAc,GAAG,GAAG,CAAC;IACvB,CAAC;IAED,SAAS,kBAAkB;QACzB,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;YACd,OAAO;SACR;QACD,IAAM,SAAS,GAAG,IAAI,CAAC,0BAA0B,CAAC;QAClD,IAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC;QAE9C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAA3B,CAA2B,CAAC,CAAC;QAC3D,IAAI,SAAS,IAAI,SAAS,IAAI,aAAa,CAAC,MAAM,EAAE;YAClD,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,UAAA,IAAI,IAAI,OAAA,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAA3C,CAA2C,CACpD,CAAC;SACH;aAAM;YACL,IAAI,CAAC,cAAc,CAAC,GAAG,CACrB,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAhD,CAAgD,CACzD,CAAC;SACH;IACH,CAAC;IAED,SAAS,KAAK;QACZ,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;IAC5B,CAAC;IAED,SAAS,eAAe;QACtB,IAAI,IAAI,CAAC,WAAW,EAAE;YACpB,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;SAC3B;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,OAAO,CACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,UAAU,EAAf,CAAe,CAAC,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,EAAE,EAAP,CAAO,CAAC,CAC/D,CAAC;SACH;IACH,CAAC;IAED,SAAS,cAAc,CAAC,GAAS;QAC/B,IAAM,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAE9C,IAAI,CAAC,GAAG,EAAE;YACR,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;SAClC;aAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE;YACnD,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;SACrC;aAAM,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE;YAC3D,IAAI,IAAI,GAAG,IAAI;iBACZ,eAAe,EAAE;iBACjB,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK,EAAxB,CAAwB,CAAC,CAAC;YAC5C,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACf,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,EAAE,EAAP,CAAO,CAAC,CAAC,CAAC;SACtD;aAAM;YACL,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAChC;IACH,CAAC;IAED,SAAS,kBAAkB,CAAC,KAAa;QACvC,IAAI,IAAI,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC,MAAM,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,KAAK,KAAK,EAApB,CAAoB,CAAC,CAAC;QACvE,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,EAAE,EAAP,CAAO,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,SAAS,cAAc,CAAC,GAAW,EAAE,SAAyB;QAC5D,IAAI,CAAC,OAAO,GAAG,GAAG,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;IAC5B,CAAC;IAED,SAAS,KAAK;QACZ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACxC,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QAC9B,IAAA,iBAAQ,EAAC,IAAI,EAAE,UAAA,IAAI;YACjB,IAAI,IAAI,CAAC,QAAQ,EAAE;gBACjB,IAAI,MAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAjB,CAAiB,CAAC,CAAC;gBACpE,MAAI,CAAC,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;gBACnC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAI,CAAC,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,EAAE,EAAZ,CAAY,CAAC,CAAC;QACnC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,OAAA,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,EAAjB,CAAiB,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,SAAS,cAAc;QACrB,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,SAAS,YAAY;QACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;IACxB,CAAC;IAED,SAAS,QAAQ,CAAC,SAAiB,EAAE,OAAe,EAAE,IAAW;QAC/D,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAM,MAAM,GAAS,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAQ,CAAC;YAC3D,IAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC;YACzD,OAAO,IAAI,MAAM,CAAC;YAClB,SAAS,IAAI,MAAM,CAAC;YAEpB,IAAM,SAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;YACzC,SAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;YAC7B,SAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACjC,SAAO,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC;YAC1D,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,SAAO,CAAC,CAAC;YACjC,OAAO;SACR;QAED,IAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACnC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAC7B,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;QAEjC,OAAO,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,KAAK,IAAK,OAAA,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,EAAvB,CAAuB,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,yBAAyB;QAChC,IAAM,GAAG,GACP,QAAQ,CAAC,QAAQ;YACjB,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAvB,CAAuB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtE,YAAY,CAAC,OAAO,CAClB,GAAG,EACH,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,EAAV,CAAU,CAAC,CAAC,CAClE,CAAC;IACJ,CAAC;IAED,SAAS,OAAO,CAAC,IAAgB,EAAE,QAAgB;QACjD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YACjB,EAAE,EAAE,IAAI,CAAC,EAAE;YACX,QAAQ,UAAA;SACT,CAAC,CAAC;IACL,CAAC;IAED,OAAO;QACL,MAAM,QAAA;QACN,aAAa,eAAA;QACb,QAAQ,UAAA;QACR,cAAc,gBAAA;QACd,SAAS,WAAA;QACT,MAAM,QAAA;QACN,WAAW,aAAA;QACX,eAAe,iBAAA;QACf,cAAc,gBAAA;QACd,kBAAkB,oBAAA;QAClB,KAAK,OAAA;QACL,cAAc,gBAAA;QACd,KAAK,OAAA;QACL,cAAc,gBAAA;QACd,YAAY,cAAA;QACZ,QAAQ,UAAA;QACR,OAAO,SAAA;QAEP,yBAAyB,2BAAA;QAEzB,SAAS;QACT,WAAW;YACT,UAAU,CAAC;gBACT,IAAI,CAAC,IAAA,yBAAO,EAAC,IAAI,CAAC,EAAE;oBAClB,OAAO;iBACR;gBACD,IAAM,GAAG,GACP,QAAQ,CAAC,QAAQ;oBACjB,IAAI,CAAC,IAAI;oBACT,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAvB,CAAuB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAEtE,IAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;gBAEvC,IAAI,IAAI,EAAE;oBACR,IAAM,iBAAe,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACzC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,UAAA,IAAI;wBAC/B,OAAA,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAe,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAAvD,CAAuD,CACxD,CAAC;iBACH;YACH,CAAC,EAAE,GAAG,CAAC,CAAC;QACV,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC",
10
10
  "sourcesContent": [
11
- "import {\n types,\n getParent,\n SnapshotIn,\n flow,\n getEnv,\n getRoot,\n IAnyModelType,\n isAlive,\n Instance\n} from 'mobx-state-tree';\nimport {iRendererStore} from './iRenderer';\nimport {resolveVariable} from '../utils/tpl-builtin';\nimport isEqual from 'lodash/isEqual';\nimport find from 'lodash/find';\nimport {\n isBreakpoint,\n createObject,\n isObject,\n isVisible,\n guid,\n findTree,\n flattenTree,\n eachTree,\n difference,\n immutableExtends,\n extendObject,\n hasVisibleExpression,\n filterTree\n} from '../utils/helper';\nimport {evalExpression} from '../utils/tpl';\nimport {IFormStore} from './form';\nimport {getStoreById} from './manager';\n\nexport const Column = types\n .model('Column', {\n label: types.optional(types.frozen(), undefined),\n type: types.optional(types.string, 'plain'),\n name: types.maybe(types.string),\n value: types.frozen(),\n groupName: '',\n toggled: false,\n toggable: true,\n expandable: false,\n checkdisable: false,\n isPrimary: false,\n searchable: types.maybe(types.frozen()),\n enableSearch: true,\n sortable: false,\n filterable: types.optional(types.frozen(), undefined),\n fixed: '',\n index: 0,\n rawIndex: 0,\n breakpoint: types.optional(types.frozen(), undefined),\n pristine: types.optional(types.frozen(), undefined),\n remark: types.optional(types.frozen(), undefined),\n className: ''\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\n setToggled(value: boolean) {\n self.toggled = value;\n },\n\n setEnableSearch(value: boolean) {\n self.enableSearch = 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 parentId: '',\n key: types.string,\n pristine: types.frozen({} as any),\n data: types.frozen({} as any),\n rowSpans: types.frozen({} as any),\n index: types.number,\n newIndex: types.number,\n path: '', // 行数据的位置\n expandable: false,\n checkdisable: false,\n isHover: false,\n children: types.optional(\n types.array(types.late((): IAnyModelType => Row)),\n []\n ),\n depth: types.number // 当前children位于第几层,便于使用getParent获取最顶层TableStore\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 getDataWithModifiedChilden() {\n let data = {\n ...self.data\n };\n\n if (data.children && self.children) {\n data.children = self.children.map(item =>\n item.getDataWithModifiedChilden()\n );\n }\n\n return data;\n },\n\n get collapsed(): boolean {\n const table = getParent(self, self.depth * 2) as ITableStore;\n if (table.dragging) {\n return true;\n }\n\n let from: IRow = self as any;\n\n while (from && (from as any) !== table) {\n if (!table.isExpanded(from)) {\n return true;\n }\n\n from = getParent(from, 2);\n }\n\n return false;\n },\n\n get expanded(): boolean {\n return !this.collapsed;\n },\n\n get moved() {\n return self.index !== self.newIndex;\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 get checkable(): boolean {\n const table = getParent(self, self.depth * 2) as ITableStore;\n return table && table.itemCheckableOn\n ? evalExpression(table.itemCheckableOn, (self as IRow).locals)\n : true;\n },\n\n get draggable(): boolean {\n const table = getParent(self, self.depth * 2) as ITableStore;\n return table && table.itemDraggableOn\n ? evalExpression(table.itemDraggableOn, (self as IRow).locals)\n : true;\n }\n }))\n .actions(self => ({\n toggle() {\n (getParent(self, self.depth * 2) as ITableStore).toggle(self as IRow);\n },\n\n toggleExpanded() {\n (getParent(self, self.depth * 2) as ITableStore).toggleExpanded(\n self as IRow\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 reset() {\n self.newIndex = self.index;\n self.data = self.pristine;\n },\n\n setCheckdisable(bool: boolean) {\n self.checkdisable = bool;\n },\n\n setIsHover(value: boolean) {\n self.isHover = value;\n },\n\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 }));\n\nexport type IRow = Instance<typeof Row>;\nexport type SRow = SnapshotIn<typeof Row>;\n\nexport const TableStore = iRendererStore\n .named('TableStore')\n .props({\n columns: types.array(Column),\n rows: types.array(Row),\n selectedRows: types.array(types.reference(Row)),\n expandedRows: types.array(types.string),\n primaryField: 'id',\n orderBy: '',\n orderDir: types.optional(\n types.union(types.literal('asc'), types.literal('desc')),\n 'asc'\n ),\n draggable: false,\n dragging: false,\n selectable: false,\n multiple: true,\n footable: types.frozen(),\n expandConfig: types.frozen(),\n isNested: false,\n columnsTogglable: types.optional(\n types.union(types.boolean, types.literal('auto')),\n 'auto'\n ),\n itemCheckableOn: '',\n itemDraggableOn: '',\n hideCheckToggler: false,\n combineNum: 0,\n combineFromIndex: 0,\n formsRef: types.optional(types.array(types.frozen()), []),\n maxKeepItemSelectionLength: 0,\n keepItemSelectionOnPageChange: false\n })\n .views(self => {\n function getColumnsExceptBuiltinTypes() {\n return self.columns.filter(item => !/^__/.test(item.type));\n }\n\n function getForms() {\n return self.formsRef.map(item => ({\n store: getStoreById(item.id) as IFormStore,\n rowIndex: item.rowIndex\n }));\n }\n\n function getFilteredColumns() {\n return self.columns.filter(\n item =>\n item &&\n isVisible(\n item.pristine,\n hasVisibleExpression(item.pristine) ? self.data : {}\n ) &&\n (item.type === '__checkme'\n ? self.selectable &&\n !self.dragging &&\n !self.hideCheckToggler &&\n self.rows.length\n : item.type === '__dragme'\n ? self.dragging\n : item.type === '__expandme'\n ? (getFootableColumns().length || self.isNested) && !self.dragging\n : (item.toggled || !item.toggable) &&\n (!self.footable ||\n !item.breakpoint ||\n !isBreakpoint(item.breakpoint)))\n );\n }\n\n function getFootableColumns() {\n return self.columns.filter(item =>\n item.type === '__checkme' ||\n item.type === '__dragme' ||\n item.type === '__expandme'\n ? false\n : (item.toggled || !item.toggable) &&\n self.footable &&\n item.breakpoint &&\n isBreakpoint(item.breakpoint)\n );\n }\n\n function getLeftFixedColumns() {\n if (self.dragging) {\n return [];\n }\n\n let columns = getFilteredColumns().filter(item => item.fixed === 'left');\n\n // 有才带过去,没有就不带了\n if (columns.length) {\n columns = getFilteredColumns().filter(\n item => item.fixed === 'left' || /^__/.test(item.type)\n );\n }\n\n return columns;\n }\n\n function getRightFixedColumns() {\n if (self.dragging) {\n return [];\n }\n\n return getFilteredColumns().filter(item => item.fixed === 'right');\n }\n\n function isSelected(row: IRow): boolean {\n return !!~self.selectedRows.indexOf(row);\n }\n\n function isExpanded(row: IRow): boolean {\n return self.expandedRows.includes(row.id);\n }\n\n function getTogglable() {\n if (self.columnsTogglable === 'auto') {\n return self.columns.filter(item => !/^__/.test(item.type)).length > 5;\n }\n\n return self.columnsTogglable;\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 getModifiedRows(rows: IRow[] = [], modifiedRows: IRow[] = []) {\n rows = rows && rows.length ? rows : self.rows;\n rows.forEach((item: IRow) => {\n if (item.children && item.children.length) {\n getModifiedRows(item.children, modifiedRows);\n }\n let diff = difference(item.data, item.pristine);\n let hasDifference = Object.keys(diff).length;\n if (hasDifference) {\n modifiedRows.push(item);\n }\n });\n return modifiedRows;\n }\n\n function getModified() {\n return getModifiedRows().length;\n }\n\n function getMovedRows() {\n return flattenTree(self.rows).filter((item: IRow) => item.moved);\n }\n\n function getMoved() {\n return getMovedRows().length;\n }\n\n function getHovedRow(): IRow | undefined {\n return flattenTree<IRow>(self.rows).find((item: IRow) => item.isHover);\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 hasColumnHidden() {\n return self.columns.findIndex(column => !column.toggled) !== -1;\n }\n\n function getColumnGroup() {\n const columns = getFilteredColumns();\n const len = columns.length;\n\n if (!len) {\n return [];\n }\n\n const groups: Array<{\n label: string;\n index: number;\n colSpan: number;\n rowSpan: number;\n has: Array<any>;\n }> = [\n {\n label: columns[0].groupName,\n colSpan: 1,\n rowSpan: 1,\n index: columns[0].index,\n has: [columns[0]]\n }\n ];\n\n // 如果是勾选栏,让它和下一列合并。\n if (columns[0].type === '__checkme' && columns[1]) {\n groups[0].label = columns[1].groupName;\n }\n\n for (let i = 1; i < len; i++) {\n let prev = groups[groups.length - 1];\n const current = columns[i];\n\n if (current.groupName === prev.label) {\n prev.colSpan++;\n prev.has.push(current);\n } else {\n groups.push({\n label: current.groupName,\n colSpan: 1,\n rowSpan: 1,\n index: current.index,\n has: [current]\n });\n }\n }\n\n if (groups.length === 1 && !groups[0].label) {\n groups.pop();\n }\n\n return groups.map(item => {\n const rowSpan =\n !item.label ||\n (item.has.length === 1 && item.label === item.has[0].label)\n ? 2\n : 1;\n return {\n ...item,\n rowSpan,\n label: rowSpan === 2 ? item.label || item.has[0].label : item.label\n };\n });\n }\n\n function getFirstToggledColumnIndex() {\n const column = self.columns.find(\n column => !/^__/.test(column.type) && column.toggled\n );\n\n return column == null ? null : column.index;\n }\n\n function getSearchableColumns() {\n return self.columns.filter(\n column => column.searchable && isObject(column.searchable)\n );\n }\n\n return {\n get columnsData() {\n return getColumnsExceptBuiltinTypes();\n },\n\n get forms() {\n return getForms();\n },\n\n get searchableColumns() {\n return getSearchableColumns();\n },\n\n get activedSearchableColumns() {\n return getSearchableColumns().filter(column => column.enableSearch);\n },\n\n get filteredColumns() {\n return getFilteredColumns();\n },\n\n get footableColumns() {\n return getFootableColumns();\n },\n\n get leftFixedColumns() {\n return getLeftFixedColumns();\n },\n\n get rightFixedColumns() {\n return getRightFixedColumns();\n },\n\n get toggableColumns() {\n return getToggableColumns();\n },\n\n get activeToggaleColumns() {\n return getActiveToggableColumns();\n },\n\n get someChecked() {\n return !!self.selectedRows.length;\n },\n\n get allChecked(): boolean {\n return !!(\n self.selectedRows.length ===\n (self as ITableStore).checkableRows.length &&\n (self as ITableStore).checkableRows.length\n );\n },\n\n isSelected,\n\n get allExpanded() {\n return !!(\n self.expandedRows.length === this.expandableRows.length &&\n this.expandableRows.length\n );\n },\n\n isExpanded,\n\n get toggable() {\n return getTogglable();\n },\n\n get modified() {\n return getModified();\n },\n\n get modifiedRows() {\n return getModifiedRows();\n },\n\n get unSelectedRows() {\n return getUnSelectedRows();\n },\n\n get checkableRows() {\n return flattenTree<IRow>(self.rows).filter(\n (item: IRow) => item.checkable\n );\n },\n\n get expandableRows() {\n return self.rows.filter(item => item.expandable);\n },\n\n get moved() {\n return getMoved();\n },\n\n get movedRows() {\n return getMovedRows();\n },\n\n get hoverRow() {\n return getHovedRow();\n },\n\n get disabledHeadCheckbox() {\n const selectedLength = self.data?.selectedItems.length;\n const maxLength = self.maxKeepItemSelectionLength;\n\n if (!self.data || !self.keepItemSelectionOnPageChange || !maxLength) {\n return false;\n }\n\n return maxLength === selectedLength;\n },\n\n get firstToggledColumnIndex() {\n return getFirstToggledColumnIndex();\n },\n\n getData,\n\n get columnGroup() {\n return getColumnGroup();\n },\n\n getRowById(id: string) {\n return findTree(self.rows, item => item.id === id);\n },\n\n getItemsByName(name: string): any {\n return this.forms\n .filter(form => form.rowIndex === parseInt(name, 10))\n .map(item => item.store);\n },\n\n // 是否隐藏了某列\n hasColumnHidden() {\n return hasColumnHidden();\n },\n\n getExpandedRows() {\n const list: Array<IRow> = [];\n\n eachTree(self.rows, i => {\n if (self.expandedRows.includes(i.id)) {\n list.push(i as any);\n }\n });\n\n return list;\n }\n };\n })\n .actions(self => {\n function update(config: Partial<STableStore>) {\n config.primaryField !== void 0 &&\n (self.primaryField = config.primaryField);\n config.selectable !== void 0 && (self.selectable = config.selectable);\n config.columnsTogglable !== void 0 &&\n (self.columnsTogglable = config.columnsTogglable);\n config.draggable !== void 0 && (self.draggable = config.draggable);\n\n if (typeof config.orderBy === 'string') {\n setOrderByInfo(\n config.orderBy,\n config.orderDir === 'desc' ? 'desc' : 'asc'\n );\n }\n\n config.multiple !== void 0 && (self.multiple = config.multiple);\n config.footable !== void 0 && (self.footable = config.footable);\n config.expandConfig !== void 0 &&\n (self.expandConfig = config.expandConfig);\n config.itemCheckableOn !== void 0 &&\n (self.itemCheckableOn = config.itemCheckableOn);\n config.itemDraggableOn !== void 0 &&\n (self.itemDraggableOn = config.itemDraggableOn);\n config.hideCheckToggler !== void 0 &&\n (self.hideCheckToggler = !!config.hideCheckToggler);\n\n config.combineNum !== void 0 &&\n (self.combineNum = parseInt(config.combineNum as any, 10) || 0);\n config.combineFromIndex !== void 0 &&\n (self.combineFromIndex =\n parseInt(config.combineFromIndex as any, 10) || 0);\n\n config.maxKeepItemSelectionLength !== void 0 &&\n (self.maxKeepItemSelectionLength = config.maxKeepItemSelectionLength);\n config.keepItemSelectionOnPageChange !== void 0 &&\n (self.keepItemSelectionOnPageChange =\n config.keepItemSelectionOnPageChange);\n\n if (config.columns && Array.isArray(config.columns)) {\n let columns: Array<SColumn> = config.columns\n .filter(column => column)\n .concat();\n if (!columns.length) {\n columns.push({\n type: 'text',\n label: '空'\n });\n }\n\n columns.unshift({\n type: '__expandme',\n toggable: false,\n className: 'Table-expandCell'\n });\n\n columns.unshift({\n type: '__checkme',\n fixed: 'left',\n toggable: false,\n className: 'Table-checkCell'\n });\n\n columns.unshift({\n type: '__dragme',\n toggable: false,\n className: 'Table-dragCell'\n });\n\n columns = columns.map((item, index) => ({\n ...item,\n index,\n rawIndex: index - 3,\n type: item.type || 'plain',\n pristine: item,\n toggled: item.toggled !== false,\n breakpoint: item.breakpoint,\n isPrimary: index === 3\n }));\n\n self.columns.replace(columns as any);\n }\n }\n\n function updateColumns(columns: Array<SColumn>) {\n if (columns && Array.isArray(columns)) {\n columns = columns.filter(column => column).concat();\n\n if (!columns.length) {\n columns.push({\n type: 'text',\n label: '空'\n });\n }\n\n columns.unshift({\n type: '__expandme',\n toggable: false,\n className: 'Table-expandCell'\n });\n\n columns.unshift({\n type: '__checkme',\n fixed: 'left',\n toggable: false,\n className: 'Table-checkCell'\n });\n\n columns.unshift({\n type: '__dragme',\n toggable: false,\n className: 'Table-dragCell'\n });\n\n columns = columns.map((item, index) => ({\n ...item,\n index,\n rawIndex: index - 3,\n type: item.type || 'plain',\n pristine: item.pristine || item,\n toggled: item.toggled !== false,\n breakpoint: item.breakpoint,\n isPrimary: index === 3\n }));\n\n self.columns.replace(columns as any);\n }\n }\n\n function combineCell(arr: Array<SRow>, keys: Array<string>): Array<SRow> {\n if (!keys.length || !arr.length) {\n return arr;\n }\n\n const key: string = keys.shift() as string;\n let rowIndex = 0;\n let row = arr[rowIndex];\n row.rowSpans[key] = 1;\n let value = resolveVariable(key, row.data);\n for (let i = 1, len = arr.length; i < len; i++) {\n const current = arr[i];\n if (isEqual(resolveVariable(key, current.data), value)) {\n row.rowSpans[key] += 1;\n current.rowSpans[key] = 0;\n } else {\n if (row.rowSpans[key] > 1) {\n combineCell(arr.slice(rowIndex, i), keys.concat());\n }\n\n rowIndex = i;\n row = current;\n row.rowSpans[key] = 1;\n value = resolveVariable(key, row.data);\n }\n }\n\n if (row.rowSpans[key] > 1 && keys.length) {\n combineCell(arr.slice(rowIndex, arr.length), keys.concat());\n }\n\n return arr;\n }\n\n function autoCombineCell(\n arr: Array<SRow>,\n columns: Array<IColumn>,\n maxCount: number,\n fromIndex = 0\n ): Array<SRow> {\n if (!columns.length || !maxCount || !arr.length) {\n return arr;\n }\n // 如果是嵌套模式,通常第一列都是存在差异的,所以从第二列开始。\n fromIndex =\n fromIndex ||\n (arr.some(item => Array.isArray(item.children) && item.children.length)\n ? 1\n : 0);\n\n const keys: Array<string> = [];\n const len = columns.length;\n for (let i = 0; i < len; i++) {\n const column = columns[i];\n\n // maxCount 可能比实际配置的 columns 还有多。\n if (!column) {\n break;\n }\n\n if ('__' === column.type.substring(0, 2)) {\n maxCount++;\n continue;\n }\n\n const key = column.name;\n if (!key) {\n break;\n }\n keys.push(key);\n }\n\n while (fromIndex--) {\n keys.shift();\n }\n\n while (keys.length > maxCount) {\n keys.pop();\n }\n\n return combineCell(arr, keys);\n }\n\n function initChildren(\n children: Array<any>,\n depth: number,\n pindex: number,\n parentId: string,\n path: string = ''\n ): any {\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: String(item && (item as any)[self.primaryField] || `${pindex}-${depth}-${key}`),\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.children)\n ? initChildren(\n item.children,\n depth,\n index,\n id,\n `${path}${index}.`\n )\n : [],\n expandable: !!(\n (item && Array.isArray(item.children) && item.children.length) ||\n (self.footable && self.footableColumns.length)\n )\n };\n });\n }\n\n function initRows(\n rows: Array<any>,\n getEntryId?: (entry: any, index: number) => string,\n reUseRow?: boolean\n ) {\n self.selectedRows.clear();\n // self.expandedRows.clear();\n\n let arr: Array<SRow> = rows.map((item, index) => {\n let id = getEntryId ? getEntryId(item, index) : guid();\n return {\n // id: getEntryId ? getEntryId(item, key) : String(item && (item as any)[self.primaryField] || `${key}-1-${key}`),\n id: id,\n key: String(`${index}-1-${index}`),\n depth: 1, // 最大父节点默认为第一层,逐层叠加\n index: index,\n newIndex: index,\n pristine: item,\n path: `${index}`,\n data: item,\n rowSpans: {},\n children:\n item && Array.isArray(item.children)\n ? initChildren(item.children, 1, index, id, `${index}.`)\n : [],\n expandable: !!(\n (item && Array.isArray(item.children) && item.children.length) ||\n (self.footable && self.footableColumns.length)\n )\n };\n });\n\n if (self.combineNum) {\n arr = autoCombineCell(\n arr,\n self.columns,\n self.combineNum,\n self.combineFromIndex\n );\n }\n\n replaceRow(arr, reUseRow);\n self.isNested = self.rows.some(item => item.children.length);\n\n const expand = self.footable && self.footable.expand;\n if (\n expand === 'first' ||\n (self.expandConfig && self.expandConfig.expand === 'first')\n ) {\n self.rows.length && self.expandedRows.push(self.rows[0].id);\n } else if (\n (expand === 'all' && !self.footable.accordion) ||\n (self.expandConfig &&\n self.expandConfig.expand === 'all' &&\n !self.expandConfig.accordion)\n ) {\n self.expandedRows.replace(self.rows.map(item => item.id));\n }\n\n self.dragging = false;\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 updateSelected(selected: Array<any>, valueField?: string) {\n self.selectedRows.clear();\n\n eachTree(self.rows, item => {\n if (~selected.indexOf(item.pristine)) {\n self.selectedRows.push(item.id);\n } else if (\n find(\n selected,\n a =>\n a[valueField || 'value'] &&\n a[valueField || 'value'] == item.pristine[valueField || 'value']\n )\n ) {\n self.selectedRows.push(item.id);\n }\n });\n\n updateCheckDisable();\n }\n\n function toggleAll() {\n const maxLength = self.maxKeepItemSelectionLength;\n const keep = self.keepItemSelectionOnPageChange;\n\n if (self.allChecked) {\n self.selectedRows.clear();\n } else {\n const selectedItems = self.data?.selectedItems;\n\n if (\n keep &&\n maxLength &&\n selectedItems &&\n maxLength >= selectedItems.length\n ) {\n const restCheckableRows = self.checkableRows.filter(\n item => !item.checked\n );\n const checkableRows = restCheckableRows.filter(\n (item, i) => i < maxLength - selectedItems.length\n );\n\n self.selectedRows.replace([...self.selectedRows, ...checkableRows]);\n } else {\n self.selectedRows.replace(self.checkableRows);\n }\n }\n }\n\n // 记录最近一次点击的多选框,主要用于 shift 多选时判断上一个选的是什么\n let lastCheckedRow: any = null;\n\n function toggle(row: IRow) {\n if (!row.checkable) {\n return;\n }\n\n lastCheckedRow = row;\n\n const idx = self.selectedRows.indexOf(row);\n\n if (self.multiple) {\n ~idx ? self.selectedRows.splice(idx, 1) : self.selectedRows.push(row);\n } else {\n ~idx\n ? self.selectedRows.splice(idx, 1)\n : self.selectedRows.replace([row]);\n }\n }\n\n // 按住 shift 的时候点击选项\n function toggleShift(row: IRow) {\n // 如果是同一个或非 multiple 模式下就和不用 shift 一样\n if (!lastCheckedRow || row === lastCheckedRow || !self.multiple) {\n toggle(row);\n return;\n }\n\n const maxLength = self.maxKeepItemSelectionLength;\n const checkableRows = self.checkableRows;\n const lastCheckedRowIndex = checkableRows.findIndex(\n row => row === lastCheckedRow\n );\n const rowIndex = checkableRows.findIndex(rowItem => row === rowItem);\n const minIndex =\n lastCheckedRowIndex > rowIndex ? rowIndex : lastCheckedRowIndex;\n const maxIndex =\n lastCheckedRowIndex > rowIndex ? lastCheckedRowIndex : rowIndex;\n\n const rows = checkableRows.slice(minIndex, maxIndex);\n rows.push(row); // 将当前行也加入进行判断\n for (const rowItem of rows) {\n const idx = self.selectedRows.indexOf(rowItem);\n if (idx === -1) {\n // 如果上一个是选中状态,则将之间的所有 check 都变成可选\n if (lastCheckedRow.checked) {\n if (maxLength) {\n if (self.selectedRows.length < maxLength) {\n self.selectedRows.push(rowItem);\n }\n } else {\n self.selectedRows.push(rowItem);\n }\n }\n } else {\n if (!lastCheckedRow.checked) {\n self.selectedRows.splice(idx, 1);\n }\n }\n }\n\n lastCheckedRow = row;\n }\n\n function updateCheckDisable() {\n if (!self.data) {\n return;\n }\n const maxLength = self.maxKeepItemSelectionLength;\n const selectedItems = self.data.selectedItems;\n\n self.selectedRows.map(item => item.setCheckdisable(false));\n if (maxLength && maxLength <= selectedItems.length) {\n self.unSelectedRows.map(\n item => !item.checked && item.setCheckdisable(true)\n );\n } else {\n self.unSelectedRows.map(\n item => item.checkdisable && item.setCheckdisable(false)\n );\n }\n }\n\n function clear() {\n self.selectedRows.clear();\n }\n\n function toggleExpandAll() {\n if (self.allExpanded) {\n self.expandedRows.clear();\n } else {\n self.expandedRows.replace(\n self.rows.filter(item => item.expandable).map(item => item.id)\n );\n }\n }\n\n function toggleExpanded(row: IRow) {\n const idx = self.expandedRows.indexOf(row.id);\n\n if (~idx) {\n self.expandedRows.splice(idx, 1);\n } else if (self.footable && self.footable.accordion) {\n self.expandedRows.replace([row.id]);\n } else if (self.expandConfig && self.expandConfig.accordion) {\n let rows = self\n .getExpandedRows()\n .filter(item => item.depth !== row.depth);\n rows.push(row);\n self.expandedRows.replace(rows.map(item => item.id));\n } else {\n self.expandedRows.push(row.id);\n }\n }\n\n function collapseAllAtDepth(depth: number) {\n let rows = self.getExpandedRows().filter(item => item.depth !== depth);\n self.expandedRows.replace(rows.map(item => item.id));\n }\n\n function setOrderByInfo(key: string, direction: 'asc' | 'desc') {\n self.orderBy = key;\n self.orderDir = direction;\n }\n\n function reset() {\n self.rows.forEach(item => item.reset());\n let rows = self.rows.concat();\n eachTree(rows, item => {\n if (item.children) {\n let rows = item.children.concat().sort((a, b) => a.index - b.index);\n rows.forEach(item => item.reset());\n item.children.replace(rows);\n }\n });\n rows.forEach(item => item.reset());\n rows = rows.sort((a, b) => a.index - b.index);\n self.rows.replace(rows);\n self.dragging = false;\n }\n\n function toggleDragging() {\n self.dragging = !self.dragging;\n }\n\n function stopDragging() {\n self.dragging = false;\n }\n\n function exchange(fromIndex: number, toIndex: number, item?: IRow) {\n item = item || self.rows[fromIndex];\n\n if (item.parentId) {\n const parent: IRow = self.getRowById(item.parentId) as any;\n const offset = parent.children.indexOf(item) - fromIndex;\n toIndex += offset;\n fromIndex += offset;\n\n const newRows = parent.children.concat();\n newRows.splice(fromIndex, 1);\n newRows.splice(toIndex, 0, item);\n newRows.forEach((item, index) => (item.newIndex = index));\n parent.children.replace(newRows);\n return;\n }\n\n const newRows = self.rows.concat();\n newRows.splice(fromIndex, 1);\n newRows.splice(toIndex, 0, item);\n\n newRows.forEach((item, index) => (item.newIndex = index));\n self.rows.replace(newRows);\n }\n\n function persistSaveToggledColumns() {\n const key =\n location.pathname +\n self.path +\n self.toggableColumns.map(item => item.name || item.index).join('-');\n localStorage.setItem(\n key,\n JSON.stringify(self.activeToggaleColumns.map(item => item.index))\n );\n }\n\n function addForm(form: IFormStore, rowIndex: number) {\n self.formsRef.push({\n id: form.id,\n rowIndex\n });\n }\n\n return {\n update,\n updateColumns,\n initRows,\n updateSelected,\n toggleAll,\n toggle,\n toggleShift,\n toggleExpandAll,\n toggleExpanded,\n collapseAllAtDepth,\n clear,\n setOrderByInfo,\n reset,\n toggleDragging,\n stopDragging,\n exchange,\n addForm,\n\n persistSaveToggledColumns,\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.name || 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 };\n });\n\nexport type ITableStore = Instance<typeof TableStore>;\nexport type STableStore = SnapshotIn<typeof TableStore>;\n"
11
+ "import {\n types,\n getParent,\n SnapshotIn,\n flow,\n getEnv,\n getRoot,\n IAnyModelType,\n isAlive,\n Instance\n} from 'mobx-state-tree';\nimport {iRendererStore} from './iRenderer';\nimport {resolveVariable} from '../utils/tpl-builtin';\nimport isEqual from 'lodash/isEqual';\nimport find from 'lodash/find';\nimport {\n isBreakpoint,\n createObject,\n isObject,\n isVisible,\n guid,\n findTree,\n flattenTree,\n eachTree,\n difference,\n immutableExtends,\n extendObject,\n hasVisibleExpression,\n filterTree\n} from '../utils/helper';\nimport {evalExpression} from '../utils/tpl';\nimport {IFormStore} from './form';\nimport {getStoreById} from './manager';\n\nexport const Column = types\n .model('Column', {\n label: types.optional(types.frozen(), undefined),\n type: types.optional(types.string, 'plain'),\n name: types.maybe(types.string),\n value: types.frozen(),\n groupName: '',\n toggled: false,\n toggable: true,\n expandable: false,\n checkdisable: false,\n isPrimary: false,\n searchable: types.maybe(types.frozen()),\n enableSearch: true,\n sortable: false,\n filterable: types.optional(types.frozen(), undefined),\n fixed: '',\n index: 0,\n rawIndex: 0,\n breakpoint: types.optional(types.frozen(), undefined),\n pristine: types.optional(types.frozen(), undefined),\n remark: types.optional(types.frozen(), undefined),\n className: ''\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\n setToggled(value: boolean) {\n self.toggled = value;\n },\n\n setEnableSearch(value: boolean) {\n self.enableSearch = 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 parentId: '',\n key: types.string,\n pristine: types.frozen({} as any),\n data: types.frozen({} as any),\n rowSpans: types.frozen({} as any),\n index: types.number,\n newIndex: types.number,\n path: '', // 行数据的位置\n expandable: false,\n checkdisable: false,\n isHover: false,\n children: types.optional(\n types.array(types.late((): IAnyModelType => Row)),\n []\n ),\n depth: types.number // 当前children位于第几层,便于使用getParent获取最顶层TableStore\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 getDataWithModifiedChilden() {\n let data = {\n ...self.data\n };\n\n if (data.children && self.children) {\n data.children = self.children.map(item =>\n item.getDataWithModifiedChilden()\n );\n }\n\n return data;\n },\n\n get collapsed(): boolean {\n const table = getParent(self, self.depth * 2) as ITableStore;\n if (table.dragging) {\n return true;\n }\n\n let from: IRow = self as any;\n\n while (from && (from as any) !== table) {\n if (!table.isExpanded(from)) {\n return true;\n }\n\n from = getParent(from, 2);\n }\n\n return false;\n },\n\n get expanded(): boolean {\n return !this.collapsed;\n },\n\n get moved() {\n return self.index !== self.newIndex;\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 get checkable(): boolean {\n const table = getParent(self, self.depth * 2) as ITableStore;\n return table && table.itemCheckableOn\n ? evalExpression(table.itemCheckableOn, (self as IRow).locals)\n : true;\n },\n\n get draggable(): boolean {\n const table = getParent(self, self.depth * 2) as ITableStore;\n return table && table.itemDraggableOn\n ? evalExpression(table.itemDraggableOn, (self as IRow).locals)\n : true;\n }\n }))\n .actions(self => ({\n toggle() {\n (getParent(self, self.depth * 2) as ITableStore).toggle(self as IRow);\n },\n\n toggleExpanded() {\n (getParent(self, self.depth * 2) as ITableStore).toggleExpanded(\n self as IRow\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 reset() {\n self.newIndex = self.index;\n self.data = self.pristine;\n },\n\n setCheckdisable(bool: boolean) {\n self.checkdisable = bool;\n },\n\n setIsHover(value: boolean) {\n self.isHover = value;\n },\n\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 }));\n\nexport type IRow = Instance<typeof Row>;\nexport type SRow = SnapshotIn<typeof Row>;\n\nexport const TableStore = iRendererStore\n .named('TableStore')\n .props({\n columns: types.array(Column),\n rows: types.array(Row),\n selectedRows: types.array(types.reference(Row)),\n expandedRows: types.array(types.string),\n primaryField: 'id',\n orderBy: '',\n orderDir: types.optional(\n types.union(types.literal('asc'), types.literal('desc')),\n 'asc'\n ),\n draggable: false,\n dragging: false,\n selectable: false,\n multiple: true,\n footable: types.frozen(),\n expandConfig: types.frozen(),\n isNested: false,\n columnsTogglable: types.optional(\n types.union(types.boolean, types.literal('auto')),\n 'auto'\n ),\n itemCheckableOn: '',\n itemDraggableOn: '',\n hideCheckToggler: false,\n combineNum: 0,\n combineFromIndex: 0,\n formsRef: types.optional(types.array(types.frozen()), []),\n maxKeepItemSelectionLength: 0,\n keepItemSelectionOnPageChange: false\n })\n .views(self => {\n function getColumnsExceptBuiltinTypes() {\n return self.columns.filter(item => !/^__/.test(item.type));\n }\n\n function getForms() {\n return self.formsRef.map(item => ({\n store: getStoreById(item.id) as IFormStore,\n rowIndex: item.rowIndex\n }));\n }\n\n function getFilteredColumns() {\n return self.columns.filter(\n item =>\n item &&\n isVisible(\n item.pristine,\n hasVisibleExpression(item.pristine) ? self.data : {}\n ) &&\n (item.type === '__checkme'\n ? self.selectable &&\n !self.dragging &&\n !self.hideCheckToggler &&\n self.rows.length\n : item.type === '__dragme'\n ? self.dragging\n : item.type === '__expandme'\n ? (getFootableColumns().length || self.isNested) && !self.dragging\n : (item.toggled || !item.toggable) &&\n (!self.footable ||\n !item.breakpoint ||\n !isBreakpoint(item.breakpoint)))\n );\n }\n\n function getFootableColumns() {\n return self.columns.filter(item =>\n item.type === '__checkme' ||\n item.type === '__dragme' ||\n item.type === '__expandme'\n ? false\n : (item.toggled || !item.toggable) &&\n self.footable &&\n item.breakpoint &&\n isBreakpoint(item.breakpoint)\n );\n }\n\n function getLeftFixedColumns() {\n if (self.dragging) {\n return [];\n }\n\n let columns = getFilteredColumns().filter(item => item.fixed === 'left');\n\n // 有才带过去,没有就不带了\n if (columns.length) {\n columns = getFilteredColumns().filter(\n item => item.fixed === 'left' || /^__/.test(item.type)\n );\n }\n\n return columns;\n }\n\n function getRightFixedColumns() {\n if (self.dragging) {\n return [];\n }\n\n return getFilteredColumns().filter(item => item.fixed === 'right');\n }\n\n function isSelected(row: IRow): boolean {\n return !!~self.selectedRows.indexOf(row);\n }\n\n function isExpanded(row: IRow): boolean {\n return self.expandedRows.includes(row.id);\n }\n\n function getTogglable() {\n if (self.columnsTogglable === 'auto') {\n return self.columns.filter(item => !/^__/.test(item.type)).length > 5;\n }\n\n return self.columnsTogglable;\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 getModifiedRows(rows: IRow[] = [], modifiedRows: IRow[] = []) {\n rows = rows && rows.length ? rows : self.rows;\n rows.forEach((item: IRow) => {\n if (item.children && item.children.length) {\n getModifiedRows(item.children, modifiedRows);\n }\n let diff = difference(item.data, item.pristine);\n let hasDifference = Object.keys(diff).length;\n if (hasDifference) {\n modifiedRows.push(item);\n }\n });\n return modifiedRows;\n }\n\n function getModified() {\n return getModifiedRows().length;\n }\n\n function getMovedRows() {\n return flattenTree(self.rows).filter((item: IRow) => item.moved);\n }\n\n function getMoved() {\n return getMovedRows().length;\n }\n\n function getHovedRow(): IRow | undefined {\n return flattenTree<IRow>(self.rows).find((item: IRow) => item.isHover);\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 hasColumnHidden() {\n return self.columns.findIndex(column => !column.toggled) !== -1;\n }\n\n function getColumnGroup() {\n const columns = getFilteredColumns();\n const len = columns.length;\n\n if (!len) {\n return [];\n }\n\n const groups: Array<{\n label: string;\n index: number;\n colSpan: number;\n rowSpan: number;\n has: Array<any>;\n }> = [\n {\n label: columns[0].groupName,\n colSpan: 1,\n rowSpan: 1,\n index: columns[0].index,\n has: [columns[0]]\n }\n ];\n\n // 如果是勾选栏,让它和下一列合并。\n if (columns[0].type === '__checkme' && columns[1]) {\n groups[0].label = columns[1].groupName;\n }\n\n for (let i = 1; i < len; i++) {\n let prev = groups[groups.length - 1];\n const current = columns[i];\n\n if (current.groupName === prev.label) {\n prev.colSpan++;\n prev.has.push(current);\n } else {\n groups.push({\n label: current.groupName,\n colSpan: 1,\n rowSpan: 1,\n index: current.index,\n has: [current]\n });\n }\n }\n\n if (groups.length === 1 && !groups[0].label) {\n groups.pop();\n }\n\n return groups.map(item => {\n const rowSpan =\n !item.label ||\n (item.has.length === 1 && item.label === item.has[0].label)\n ? 2\n : 1;\n return {\n ...item,\n rowSpan,\n label: rowSpan === 2 ? item.label || item.has[0].label : item.label\n };\n });\n }\n\n function getFirstToggledColumnIndex() {\n const column = self.columns.find(\n column => !/^__/.test(column.type) && column.toggled\n );\n\n return column == null ? null : column.index;\n }\n\n function getSearchableColumns() {\n return self.columns.filter(\n column => column.searchable && isObject(column.searchable)\n );\n }\n\n return {\n get columnsData() {\n return getColumnsExceptBuiltinTypes();\n },\n\n get forms() {\n return getForms();\n },\n\n get searchableColumns() {\n return getSearchableColumns();\n },\n\n get activedSearchableColumns() {\n return getSearchableColumns().filter(column => column.enableSearch);\n },\n\n get filteredColumns() {\n return getFilteredColumns();\n },\n\n get footableColumns() {\n return getFootableColumns();\n },\n\n get leftFixedColumns() {\n return getLeftFixedColumns();\n },\n\n get rightFixedColumns() {\n return getRightFixedColumns();\n },\n\n get toggableColumns() {\n return getToggableColumns();\n },\n\n get activeToggaleColumns() {\n return getActiveToggableColumns();\n },\n\n get someChecked() {\n return !!self.selectedRows.length;\n },\n\n get allChecked(): boolean {\n return !!(\n self.selectedRows.length ===\n (self as ITableStore).checkableRows.length &&\n (self as ITableStore).checkableRows.length\n );\n },\n\n isSelected,\n\n get allExpanded() {\n return !!(\n self.expandedRows.length === this.expandableRows.length &&\n this.expandableRows.length\n );\n },\n\n isExpanded,\n\n get toggable() {\n return getTogglable();\n },\n\n get modified() {\n return getModified();\n },\n\n get modifiedRows() {\n return getModifiedRows();\n },\n\n get unSelectedRows() {\n return getUnSelectedRows();\n },\n\n get checkableRows() {\n return flattenTree<IRow>(self.rows).filter(\n (item: IRow) => item.checkable\n );\n },\n\n get expandableRows() {\n return self.rows.filter(item => item.expandable);\n },\n\n get moved() {\n return getMoved();\n },\n\n get movedRows() {\n return getMovedRows();\n },\n\n get hoverRow() {\n return getHovedRow();\n },\n\n get disabledHeadCheckbox() {\n const selectedLength = self.data?.selectedItems.length;\n const maxLength = self.maxKeepItemSelectionLength;\n\n if (!self.data || !self.keepItemSelectionOnPageChange || !maxLength) {\n return false;\n }\n\n return maxLength === selectedLength;\n },\n\n get firstToggledColumnIndex() {\n return getFirstToggledColumnIndex();\n },\n\n getData,\n\n get columnGroup() {\n return getColumnGroup();\n },\n\n getRowById(id: string) {\n return findTree(self.rows, item => item.id === id);\n },\n\n getItemsByName(name: string): any {\n return this.forms\n .filter(form => form.rowIndex === parseInt(name, 10))\n .map(item => item.store);\n },\n\n // 是否隐藏了某列\n hasColumnHidden() {\n return hasColumnHidden();\n },\n\n getExpandedRows() {\n const list: Array<IRow> = [];\n\n eachTree(self.rows, i => {\n if (self.expandedRows.includes(i.id)) {\n list.push(i as any);\n }\n });\n\n return list;\n }\n };\n })\n .actions(self => {\n function update(config: Partial<STableStore>) {\n config.primaryField !== void 0 &&\n (self.primaryField = config.primaryField);\n config.selectable !== void 0 && (self.selectable = config.selectable);\n config.columnsTogglable !== void 0 &&\n (self.columnsTogglable = config.columnsTogglable);\n config.draggable !== void 0 && (self.draggable = config.draggable);\n\n if (typeof config.orderBy === 'string') {\n setOrderByInfo(\n config.orderBy,\n config.orderDir === 'desc' ? 'desc' : 'asc'\n );\n }\n\n config.multiple !== void 0 && (self.multiple = config.multiple);\n config.footable !== void 0 && (self.footable = config.footable);\n config.expandConfig !== void 0 &&\n (self.expandConfig = config.expandConfig);\n config.itemCheckableOn !== void 0 &&\n (self.itemCheckableOn = config.itemCheckableOn);\n config.itemDraggableOn !== void 0 &&\n (self.itemDraggableOn = config.itemDraggableOn);\n config.hideCheckToggler !== void 0 &&\n (self.hideCheckToggler = !!config.hideCheckToggler);\n\n config.combineNum !== void 0 &&\n (self.combineNum = parseInt(config.combineNum as any, 10) || 0);\n config.combineFromIndex !== void 0 &&\n (self.combineFromIndex =\n parseInt(config.combineFromIndex as any, 10) || 0);\n\n config.maxKeepItemSelectionLength !== void 0 &&\n (self.maxKeepItemSelectionLength = config.maxKeepItemSelectionLength);\n config.keepItemSelectionOnPageChange !== void 0 &&\n (self.keepItemSelectionOnPageChange =\n config.keepItemSelectionOnPageChange);\n\n if (config.columns && Array.isArray(config.columns)) {\n let columns: Array<SColumn> = config.columns\n .filter(column => column)\n .concat();\n if (!columns.length) {\n columns.push({\n type: 'text',\n label: '空'\n });\n }\n\n columns.unshift({\n type: '__expandme',\n toggable: false,\n className: 'Table-expandCell'\n });\n\n columns.unshift({\n type: '__checkme',\n fixed: 'left',\n toggable: false,\n className: 'Table-checkCell'\n });\n\n columns.unshift({\n type: '__dragme',\n toggable: false,\n className: 'Table-dragCell'\n });\n\n columns = columns.map((item, index) => ({\n ...item,\n index,\n rawIndex: index - 3,\n type: item.type || 'plain',\n pristine: item,\n toggled: item.toggled !== false,\n breakpoint: item.breakpoint,\n isPrimary: index === 3,\n className: item.className || ''\n }));\n\n self.columns.replace(columns as any);\n }\n }\n\n function updateColumns(columns: Array<SColumn>) {\n if (columns && Array.isArray(columns)) {\n columns = columns.filter(column => column).concat();\n\n if (!columns.length) {\n columns.push({\n type: 'text',\n label: '空'\n });\n }\n\n columns.unshift({\n type: '__expandme',\n toggable: false,\n className: 'Table-expandCell'\n });\n\n columns.unshift({\n type: '__checkme',\n fixed: 'left',\n toggable: false,\n className: 'Table-checkCell'\n });\n\n columns.unshift({\n type: '__dragme',\n toggable: false,\n className: 'Table-dragCell'\n });\n\n columns = columns.map((item, index) => ({\n ...item,\n index,\n rawIndex: index - 3,\n type: item.type || 'plain',\n pristine: item.pristine || item,\n toggled: item.toggled !== false,\n breakpoint: item.breakpoint,\n isPrimary: index === 3\n }));\n\n self.columns.replace(columns as any);\n }\n }\n\n function combineCell(arr: Array<SRow>, keys: Array<string>): Array<SRow> {\n if (!keys.length || !arr.length) {\n return arr;\n }\n\n const key: string = keys.shift() as string;\n let rowIndex = 0;\n let row = arr[rowIndex];\n row.rowSpans[key] = 1;\n let value = resolveVariable(key, row.data);\n for (let i = 1, len = arr.length; i < len; i++) {\n const current = arr[i];\n if (isEqual(resolveVariable(key, current.data), value)) {\n row.rowSpans[key] += 1;\n current.rowSpans[key] = 0;\n } else {\n if (row.rowSpans[key] > 1) {\n combineCell(arr.slice(rowIndex, i), keys.concat());\n }\n\n rowIndex = i;\n row = current;\n row.rowSpans[key] = 1;\n value = resolveVariable(key, row.data);\n }\n }\n\n if (row.rowSpans[key] > 1 && keys.length) {\n combineCell(arr.slice(rowIndex, arr.length), keys.concat());\n }\n\n return arr;\n }\n\n function autoCombineCell(\n arr: Array<SRow>,\n columns: Array<IColumn>,\n maxCount: number,\n fromIndex = 0\n ): Array<SRow> {\n if (!columns.length || !maxCount || !arr.length) {\n return arr;\n }\n // 如果是嵌套模式,通常第一列都是存在差异的,所以从第二列开始。\n fromIndex =\n fromIndex ||\n (arr.some(item => Array.isArray(item.children) && item.children.length)\n ? 1\n : 0);\n\n const keys: Array<string> = [];\n const len = columns.length;\n for (let i = 0; i < len; i++) {\n const column = columns[i];\n\n // maxCount 可能比实际配置的 columns 还有多。\n if (!column) {\n break;\n }\n\n if ('__' === column.type.substring(0, 2)) {\n maxCount++;\n continue;\n }\n\n const key = column.name;\n if (!key) {\n break;\n }\n keys.push(key);\n }\n\n while (fromIndex--) {\n keys.shift();\n }\n\n while (keys.length > maxCount) {\n keys.pop();\n }\n\n return combineCell(arr, keys);\n }\n\n function initChildren(\n children: Array<any>,\n depth: number,\n pindex: number,\n parentId: string,\n path: string = ''\n ): any {\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: String(item && (item as any)[self.primaryField] || `${pindex}-${depth}-${key}`),\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.children)\n ? initChildren(\n item.children,\n depth,\n index,\n id,\n `${path}${index}.`\n )\n : [],\n expandable: !!(\n (item && Array.isArray(item.children) && item.children.length) ||\n (self.footable && self.footableColumns.length)\n )\n };\n });\n }\n\n function initRows(\n rows: Array<any>,\n getEntryId?: (entry: any, index: number) => string,\n reUseRow?: boolean\n ) {\n self.selectedRows.clear();\n // self.expandedRows.clear();\n\n let arr: Array<SRow> = rows.map((item, index) => {\n let id = getEntryId ? getEntryId(item, index) : guid();\n return {\n // id: getEntryId ? getEntryId(item, key) : String(item && (item as any)[self.primaryField] || `${key}-1-${key}`),\n id: id,\n key: String(`${index}-1-${index}`),\n depth: 1, // 最大父节点默认为第一层,逐层叠加\n index: index,\n newIndex: index,\n pristine: item,\n path: `${index}`,\n data: item,\n rowSpans: {},\n children:\n item && Array.isArray(item.children)\n ? initChildren(item.children, 1, index, id, `${index}.`)\n : [],\n expandable: !!(\n (item && Array.isArray(item.children) && item.children.length) ||\n (self.footable && self.footableColumns.length)\n )\n };\n });\n\n if (self.combineNum) {\n arr = autoCombineCell(\n arr,\n self.columns,\n self.combineNum,\n self.combineFromIndex\n );\n }\n\n replaceRow(arr, reUseRow);\n self.isNested = self.rows.some(item => item.children.length);\n\n const expand = self.footable && self.footable.expand;\n if (\n expand === 'first' ||\n (self.expandConfig && self.expandConfig.expand === 'first')\n ) {\n self.rows.length && self.expandedRows.push(self.rows[0].id);\n } else if (\n (expand === 'all' && !self.footable.accordion) ||\n (self.expandConfig &&\n self.expandConfig.expand === 'all' &&\n !self.expandConfig.accordion)\n ) {\n self.expandedRows.replace(self.rows.map(item => item.id));\n }\n\n self.dragging = false;\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 updateSelected(selected: Array<any>, valueField?: string) {\n self.selectedRows.clear();\n\n eachTree(self.rows, item => {\n if (~selected.indexOf(item.pristine)) {\n self.selectedRows.push(item.id);\n } else if (\n find(\n selected,\n a =>\n a[valueField || 'value'] &&\n a[valueField || 'value'] == item.pristine[valueField || 'value']\n )\n ) {\n self.selectedRows.push(item.id);\n }\n });\n\n updateCheckDisable();\n }\n\n function toggleAll() {\n const maxLength = self.maxKeepItemSelectionLength;\n const keep = self.keepItemSelectionOnPageChange;\n\n if (self.allChecked) {\n self.selectedRows.clear();\n } else {\n const selectedItems = self.data?.selectedItems;\n\n if (\n keep &&\n maxLength &&\n selectedItems &&\n maxLength >= selectedItems.length\n ) {\n const restCheckableRows = self.checkableRows.filter(\n item => !item.checked\n );\n const checkableRows = restCheckableRows.filter(\n (item, i) => i < maxLength - selectedItems.length\n );\n\n self.selectedRows.replace([...self.selectedRows, ...checkableRows]);\n } else {\n self.selectedRows.replace(self.checkableRows);\n }\n }\n }\n\n // 记录最近一次点击的多选框,主要用于 shift 多选时判断上一个选的是什么\n let lastCheckedRow: any = null;\n\n function toggle(row: IRow) {\n if (!row.checkable) {\n return;\n }\n\n lastCheckedRow = row;\n\n const idx = self.selectedRows.indexOf(row);\n\n if (self.multiple) {\n ~idx ? self.selectedRows.splice(idx, 1) : self.selectedRows.push(row);\n } else {\n ~idx\n ? self.selectedRows.splice(idx, 1)\n : self.selectedRows.replace([row]);\n }\n }\n\n // 按住 shift 的时候点击选项\n function toggleShift(row: IRow) {\n // 如果是同一个或非 multiple 模式下就和不用 shift 一样\n if (!lastCheckedRow || row === lastCheckedRow || !self.multiple) {\n toggle(row);\n return;\n }\n\n const maxLength = self.maxKeepItemSelectionLength;\n const checkableRows = self.checkableRows;\n const lastCheckedRowIndex = checkableRows.findIndex(\n row => row === lastCheckedRow\n );\n const rowIndex = checkableRows.findIndex(rowItem => row === rowItem);\n const minIndex =\n lastCheckedRowIndex > rowIndex ? rowIndex : lastCheckedRowIndex;\n const maxIndex =\n lastCheckedRowIndex > rowIndex ? lastCheckedRowIndex : rowIndex;\n\n const rows = checkableRows.slice(minIndex, maxIndex);\n rows.push(row); // 将当前行也加入进行判断\n for (const rowItem of rows) {\n const idx = self.selectedRows.indexOf(rowItem);\n if (idx === -1) {\n // 如果上一个是选中状态,则将之间的所有 check 都变成可选\n if (lastCheckedRow.checked) {\n if (maxLength) {\n if (self.selectedRows.length < maxLength) {\n self.selectedRows.push(rowItem);\n }\n } else {\n self.selectedRows.push(rowItem);\n }\n }\n } else {\n if (!lastCheckedRow.checked) {\n self.selectedRows.splice(idx, 1);\n }\n }\n }\n\n lastCheckedRow = row;\n }\n\n function updateCheckDisable() {\n if (!self.data) {\n return;\n }\n const maxLength = self.maxKeepItemSelectionLength;\n const selectedItems = self.data.selectedItems;\n\n self.selectedRows.map(item => item.setCheckdisable(false));\n if (maxLength && maxLength <= selectedItems.length) {\n self.unSelectedRows.map(\n item => !item.checked && item.setCheckdisable(true)\n );\n } else {\n self.unSelectedRows.map(\n item => item.checkdisable && item.setCheckdisable(false)\n );\n }\n }\n\n function clear() {\n self.selectedRows.clear();\n }\n\n function toggleExpandAll() {\n if (self.allExpanded) {\n self.expandedRows.clear();\n } else {\n self.expandedRows.replace(\n self.rows.filter(item => item.expandable).map(item => item.id)\n );\n }\n }\n\n function toggleExpanded(row: IRow) {\n const idx = self.expandedRows.indexOf(row.id);\n\n if (~idx) {\n self.expandedRows.splice(idx, 1);\n } else if (self.footable && self.footable.accordion) {\n self.expandedRows.replace([row.id]);\n } else if (self.expandConfig && self.expandConfig.accordion) {\n let rows = self\n .getExpandedRows()\n .filter(item => item.depth !== row.depth);\n rows.push(row);\n self.expandedRows.replace(rows.map(item => item.id));\n } else {\n self.expandedRows.push(row.id);\n }\n }\n\n function collapseAllAtDepth(depth: number) {\n let rows = self.getExpandedRows().filter(item => item.depth !== depth);\n self.expandedRows.replace(rows.map(item => item.id));\n }\n\n function setOrderByInfo(key: string, direction: 'asc' | 'desc') {\n self.orderBy = key;\n self.orderDir = direction;\n }\n\n function reset() {\n self.rows.forEach(item => item.reset());\n let rows = self.rows.concat();\n eachTree(rows, item => {\n if (item.children) {\n let rows = item.children.concat().sort((a, b) => a.index - b.index);\n rows.forEach(item => item.reset());\n item.children.replace(rows);\n }\n });\n rows.forEach(item => item.reset());\n rows = rows.sort((a, b) => a.index - b.index);\n self.rows.replace(rows);\n self.dragging = false;\n }\n\n function toggleDragging() {\n self.dragging = !self.dragging;\n }\n\n function stopDragging() {\n self.dragging = false;\n }\n\n function exchange(fromIndex: number, toIndex: number, item?: IRow) {\n item = item || self.rows[fromIndex];\n\n if (item.parentId) {\n const parent: IRow = self.getRowById(item.parentId) as any;\n const offset = parent.children.indexOf(item) - fromIndex;\n toIndex += offset;\n fromIndex += offset;\n\n const newRows = parent.children.concat();\n newRows.splice(fromIndex, 1);\n newRows.splice(toIndex, 0, item);\n newRows.forEach((item, index) => (item.newIndex = index));\n parent.children.replace(newRows);\n return;\n }\n\n const newRows = self.rows.concat();\n newRows.splice(fromIndex, 1);\n newRows.splice(toIndex, 0, item);\n\n newRows.forEach((item, index) => (item.newIndex = index));\n self.rows.replace(newRows);\n }\n\n function persistSaveToggledColumns() {\n const key =\n location.pathname +\n self.path +\n self.toggableColumns.map(item => item.name || item.index).join('-');\n localStorage.setItem(\n key,\n JSON.stringify(self.activeToggaleColumns.map(item => item.index))\n );\n }\n\n function addForm(form: IFormStore, rowIndex: number) {\n self.formsRef.push({\n id: form.id,\n rowIndex\n });\n }\n\n return {\n update,\n updateColumns,\n initRows,\n updateSelected,\n toggleAll,\n toggle,\n toggleShift,\n toggleExpandAll,\n toggleExpanded,\n collapseAllAtDepth,\n clear,\n setOrderByInfo,\n reset,\n toggleDragging,\n stopDragging,\n exchange,\n addForm,\n\n persistSaveToggledColumns,\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.name || 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 };\n });\n\nexport type ITableStore = Instance<typeof TableStore>;\nexport type STableStore = SnapshotIn<typeof TableStore>;\n"
12
12
  ]
13
13
  }