amis 1.5.6 → 1.6.1-beta.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 (538) hide show
  1. package/.husky/pre-commit +1 -1
  2. package/README.md +1 -0
  3. package/lib/RootRenderer.d.ts +2 -0
  4. package/lib/RootRenderer.js +19 -1
  5. package/lib/RootRenderer.js.map +2 -2
  6. package/lib/Schema.d.ts +3 -2
  7. package/lib/Schema.js.map +1 -1
  8. package/lib/SchemaRenderer.js +52 -1
  9. package/lib/SchemaRenderer.js.map +2 -2
  10. package/lib/Scoped.d.ts +2 -0
  11. package/lib/Scoped.js +27 -1
  12. package/lib/Scoped.js.map +2 -2
  13. package/lib/actions/Action.d.ts +33 -0
  14. package/lib/actions/Action.js +100 -0
  15. package/lib/actions/Action.js.map +13 -0
  16. package/lib/actions/AjaxAction.d.ts +14 -0
  17. package/lib/actions/AjaxAction.js +68 -0
  18. package/lib/actions/AjaxAction.js.map +13 -0
  19. package/lib/actions/BreakAction.d.ts +12 -0
  20. package/lib/actions/BreakAction.js +28 -0
  21. package/lib/actions/BreakAction.js.map +13 -0
  22. package/lib/actions/BroadcastAction.d.ts +12 -0
  23. package/lib/actions/BroadcastAction.js +40 -0
  24. package/lib/actions/BroadcastAction.js.map +13 -0
  25. package/lib/actions/CmptAction.d.ts +12 -0
  26. package/lib/actions/CmptAction.js +40 -0
  27. package/lib/actions/CmptAction.js.map +13 -0
  28. package/lib/actions/ContinueAction.d.ts +12 -0
  29. package/lib/actions/ContinueAction.js +28 -0
  30. package/lib/actions/ContinueAction.js.map +13 -0
  31. package/lib/actions/CopyAction.d.ts +12 -0
  32. package/lib/actions/CopyAction.js +35 -0
  33. package/lib/actions/CopyAction.js.map +13 -0
  34. package/lib/actions/CustomAction.d.ts +12 -0
  35. package/lib/actions/CustomAction.js +43 -0
  36. package/lib/actions/CustomAction.js.map +13 -0
  37. package/lib/actions/DialogAction.d.ts +12 -0
  38. package/lib/actions/DialogAction.js +31 -0
  39. package/lib/actions/DialogAction.js.map +13 -0
  40. package/lib/actions/DrawerAction.d.ts +12 -0
  41. package/lib/actions/DrawerAction.js +31 -0
  42. package/lib/actions/DrawerAction.js.map +13 -0
  43. package/lib/actions/EmailAction.d.ts +12 -0
  44. package/lib/actions/EmailAction.js +37 -0
  45. package/lib/actions/EmailAction.js.map +13 -0
  46. package/lib/actions/LoopAction.d.ts +12 -0
  47. package/lib/actions/LoopAction.js +93 -0
  48. package/lib/actions/LoopAction.js.map +13 -0
  49. package/lib/actions/OpenPageAction.d.ts +12 -0
  50. package/lib/actions/OpenPageAction.js +33 -0
  51. package/lib/actions/OpenPageAction.js.map +13 -0
  52. package/lib/actions/ParallelAction.d.ts +5 -0
  53. package/lib/actions/ParallelAction.js +33 -0
  54. package/lib/actions/ParallelAction.js.map +13 -0
  55. package/lib/actions/SwitchAction.d.ts +8 -0
  56. package/lib/actions/SwitchAction.js +45 -0
  57. package/lib/actions/SwitchAction.js.map +13 -0
  58. package/lib/actions/index.d.ts +18 -0
  59. package/lib/actions/index.js +22 -0
  60. package/lib/actions/index.js.map +13 -0
  61. package/lib/components/AnchorNav.d.ts +20 -20
  62. package/lib/components/AssociatedSelection.d.ts +84 -84
  63. package/lib/components/AssociatedSelection.js +2 -2
  64. package/lib/components/AssociatedSelection.js.map +2 -2
  65. package/lib/components/Avatar.d.ts +135 -0
  66. package/lib/components/Avatar.js +120 -0
  67. package/lib/components/Avatar.js.map +13 -0
  68. package/lib/components/BaiduMapPicker.js.map +2 -2
  69. package/lib/components/Button.d.ts +20 -20
  70. package/lib/components/CalendarMobile.d.ts +573 -0
  71. package/lib/components/CalendarMobile.js +486 -0
  72. package/lib/components/CalendarMobile.js.map +13 -0
  73. package/lib/components/Cascader.d.ts +123 -0
  74. package/lib/components/Cascader.js +487 -0
  75. package/lib/components/Cascader.js.map +13 -0
  76. package/lib/components/ChainedSelection.d.ts +84 -84
  77. package/lib/components/ChainedSelection.js +15 -3
  78. package/lib/components/ChainedSelection.js.map +2 -2
  79. package/lib/components/CityArea.d.ts +527 -0
  80. package/lib/components/CityArea.js +177 -0
  81. package/lib/components/CityArea.js.map +13 -0
  82. package/lib/components/Collapse.d.ts +20 -20
  83. package/lib/components/ColorPicker.d.ts +84 -84
  84. package/lib/components/ColorPicker.js +4 -3
  85. package/lib/components/ColorPicker.js.map +2 -2
  86. package/lib/components/DatePicker.d.ts +85 -84
  87. package/lib/components/DatePicker.js +21 -8
  88. package/lib/components/DatePicker.js.map +2 -2
  89. package/lib/components/DateRangePicker.d.ts +85 -84
  90. package/lib/components/DateRangePicker.js +19 -6
  91. package/lib/components/DateRangePicker.js.map +2 -2
  92. package/lib/components/GroupedSelection.d.ts +84 -84
  93. package/lib/components/GroupedSelection.js +14 -2
  94. package/lib/components/GroupedSelection.js.map +2 -2
  95. package/lib/components/InputBox.d.ts +21 -21
  96. package/lib/components/ListGroup.d.ts +21 -21
  97. package/lib/components/ListMenu.d.ts +84 -84
  98. package/lib/components/MonthRangePicker.d.ts +85 -84
  99. package/lib/components/MonthRangePicker.js +18 -7
  100. package/lib/components/MonthRangePicker.js.map +2 -2
  101. package/lib/components/Overlay.d.ts +1 -1
  102. package/lib/components/Overlay.js.map +1 -1
  103. package/lib/components/Picker.d.ts +1 -0
  104. package/lib/components/Picker.js +16 -7
  105. package/lib/components/Picker.js.map +2 -2
  106. package/lib/components/PickerColumn.d.ts +1 -0
  107. package/lib/components/PickerColumn.js +21 -18
  108. package/lib/components/PickerColumn.js.map +2 -2
  109. package/lib/components/PickerContainer.d.ts +3 -0
  110. package/lib/components/PickerContainer.js +12 -5
  111. package/lib/components/PickerContainer.js.map +2 -2
  112. package/lib/components/PopOverContainer.d.ts +1 -0
  113. package/lib/components/PopOverContainer.js +5 -3
  114. package/lib/components/PopOverContainer.js.map +2 -2
  115. package/lib/components/PopUp.d.ts +1041 -28
  116. package/lib/components/PopUp.js +32 -8
  117. package/lib/components/PopUp.js.map +2 -2
  118. package/lib/components/Radios.d.ts +21 -21
  119. package/lib/components/Rating.d.ts +21 -21
  120. package/lib/components/ResultBox.d.ts +85 -84
  121. package/lib/components/ResultBox.js +9 -4
  122. package/lib/components/ResultBox.js.map +2 -2
  123. package/lib/components/ResultList.d.ts +9 -2
  124. package/lib/components/ResultList.js +22 -2
  125. package/lib/components/ResultList.js.map +2 -2
  126. package/lib/components/Select.d.ts +238 -238
  127. package/lib/components/Select.js +13 -9
  128. package/lib/components/Select.js.map +2 -2
  129. package/lib/components/Selection.d.ts +94 -86
  130. package/lib/components/Selection.js +11 -2
  131. package/lib/components/Selection.js.map +2 -2
  132. package/lib/components/Steps.js.map +2 -2
  133. package/lib/components/TableSelection.d.ts +85 -85
  134. package/lib/components/TableSelection.js +1 -9
  135. package/lib/components/TableSelection.js.map +2 -2
  136. package/lib/components/Tabs.js +31 -33
  137. package/lib/components/Tabs.js.map +2 -2
  138. package/lib/components/TabsTransfer.d.ts +87 -256
  139. package/lib/components/TabsTransfer.js +52 -9
  140. package/lib/components/TabsTransfer.js.map +2 -2
  141. package/lib/components/TabsTransferPicker.d.ts +1 -1
  142. package/lib/components/TabsTransferPicker.js +20 -18
  143. package/lib/components/TabsTransferPicker.js.map +2 -2
  144. package/lib/components/Timeline.d.ts +69 -0
  145. package/lib/components/Timeline.js +16 -0
  146. package/lib/components/Timeline.js.map +13 -0
  147. package/lib/components/TimelineItem.d.ts +517 -0
  148. package/lib/components/TimelineItem.js +40 -0
  149. package/lib/components/TimelineItem.js.map +13 -0
  150. package/lib/components/Transfer.d.ts +100 -98
  151. package/lib/components/Transfer.js +2 -3
  152. package/lib/components/Transfer.js.map +2 -2
  153. package/lib/components/TransferDropDown.d.ts +85 -84
  154. package/lib/components/TransferDropDown.js +9 -10
  155. package/lib/components/TransferDropDown.js.map +2 -2
  156. package/lib/components/TransferPicker.d.ts +1 -0
  157. package/lib/components/TransferPicker.js +19 -4
  158. package/lib/components/TransferPicker.js.map +2 -2
  159. package/lib/components/Tree.d.ts +84 -84
  160. package/lib/components/TreeSelection.d.ts +85 -85
  161. package/lib/components/TreeSelection.js +7 -1
  162. package/lib/components/TreeSelection.js.map +2 -2
  163. package/lib/components/calendar/Calendar.d.ts +19 -0
  164. package/lib/components/calendar/Calendar.js +71 -1
  165. package/lib/components/calendar/Calendar.js.map +2 -2
  166. package/lib/components/calendar/DaysView.d.ts +21 -0
  167. package/lib/components/calendar/DaysView.js +76 -17
  168. package/lib/components/calendar/DaysView.js.map +2 -2
  169. package/lib/components/calendar/MonthsView.d.ts +34 -0
  170. package/lib/components/calendar/MonthsView.js +68 -3
  171. package/lib/components/calendar/MonthsView.js.map +2 -2
  172. package/lib/components/calendar/QuartersView.d.ts +1 -0
  173. package/lib/components/calendar/QuartersView.js +2 -2
  174. package/lib/components/calendar/QuartersView.js.map +2 -2
  175. package/lib/components/calendar/TimeView.d.ts +30 -18
  176. package/lib/components/calendar/TimeView.js +47 -8
  177. package/lib/components/calendar/TimeView.js.map +2 -2
  178. package/lib/components/calendar/YearsView.d.ts +6 -0
  179. package/lib/components/calendar/YearsView.js +21 -10
  180. package/lib/components/calendar/YearsView.js.map +2 -2
  181. package/lib/components/condition-builder/Field.js +1 -4
  182. package/lib/components/condition-builder/Field.js.map +2 -2
  183. package/lib/components/condition-builder/Func.js +1 -1
  184. package/lib/components/condition-builder/Func.js.map +2 -2
  185. package/lib/components/formula/Editor.d.ts +3 -0
  186. package/lib/components/formula/Editor.js +3 -2
  187. package/lib/components/formula/Editor.js.map +2 -2
  188. package/lib/components/formula/FuncList.js +2 -1
  189. package/lib/components/formula/FuncList.js.map +2 -2
  190. package/lib/components/formula/Picker.js +1 -1
  191. package/lib/components/formula/Picker.js.map +2 -2
  192. package/lib/components/formula/plugin.js +0 -1
  193. package/lib/components/formula/plugin.js.map +2 -2
  194. package/lib/components/icons.js +2 -0
  195. package/lib/components/icons.js.map +2 -2
  196. package/lib/components/index.d.ts +2 -1
  197. package/lib/components/index.js +4 -2
  198. package/lib/components/index.js.map +2 -2
  199. package/lib/components/virtual-list/SizeAndPositionManager.js.map +2 -2
  200. package/lib/components/virtual-list/index.js +1 -2
  201. package/lib/components/virtual-list/index.js.map +2 -2
  202. package/lib/env.d.ts +4 -0
  203. package/lib/env.js.map +2 -2
  204. package/lib/factory.d.ts +2 -1
  205. package/lib/factory.js +83 -0
  206. package/lib/factory.js.map +2 -2
  207. package/lib/helper.css.map +1 -1
  208. package/lib/icons/tree-down.js +7 -0
  209. package/lib/index.d.ts +3 -0
  210. package/lib/index.js +4 -1
  211. package/lib/index.js.map +2 -2
  212. package/lib/locale/de-DE.js +17 -2
  213. package/lib/locale/de-DE.js.map +2 -2
  214. package/lib/locale/en-US.js +17 -2
  215. package/lib/locale/en-US.js.map +2 -2
  216. package/lib/locale/zh-CN.js +16 -1
  217. package/lib/locale/zh-CN.js.map +2 -2
  218. package/lib/renderers/Action.d.ts +1 -1
  219. package/lib/renderers/Action.js +26 -10
  220. package/lib/renderers/Action.js.map +2 -2
  221. package/lib/renderers/Avatar.d.ts +35 -26
  222. package/lib/renderers/Avatar.js +14 -19
  223. package/lib/renderers/Avatar.js.map +2 -2
  224. package/lib/renderers/CRUD.js +1 -2
  225. package/lib/renderers/CRUD.js.map +2 -2
  226. package/lib/renderers/Card.js +6 -5
  227. package/lib/renderers/Card.js.map +2 -2
  228. package/lib/renderers/Custom.d.ts +1 -1
  229. package/lib/renderers/Custom.js +1 -1
  230. package/lib/renderers/Custom.js.map +2 -2
  231. package/lib/renderers/DropDownButton.d.ts +11 -2
  232. package/lib/renderers/DropDownButton.js +30 -12
  233. package/lib/renderers/DropDownButton.js.map +2 -2
  234. package/lib/renderers/Each.js +5 -2
  235. package/lib/renderers/Each.js.map +2 -2
  236. package/lib/renderers/Flex.js +1 -5
  237. package/lib/renderers/Flex.js.map +2 -2
  238. package/lib/renderers/Form/ChartRadios.js.map +2 -2
  239. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  240. package/lib/renderers/Form/CityDB.js +526 -2
  241. package/lib/renderers/Form/CityDB.js.map +2 -2
  242. package/lib/renderers/Form/DiffEditor.d.ts +6 -0
  243. package/lib/renderers/Form/DiffEditor.js +2 -1
  244. package/lib/renderers/Form/DiffEditor.js.map +2 -2
  245. package/lib/renderers/Form/Editor.d.ts +6 -0
  246. package/lib/renderers/Form/InputCity.d.ts +85 -84
  247. package/lib/renderers/Form/InputCity.js +4 -2
  248. package/lib/renderers/Form/InputCity.js.map +2 -2
  249. package/lib/renderers/Form/InputColor.d.ts +84 -84
  250. package/lib/renderers/Form/InputColor.js +6 -2
  251. package/lib/renderers/Form/InputColor.js.map +2 -2
  252. package/lib/renderers/Form/InputDate.js +10 -5
  253. package/lib/renderers/Form/InputDate.js.map +2 -2
  254. package/lib/renderers/Form/InputDateRange.js +6 -2
  255. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  256. package/lib/renderers/Form/InputFormula.d.ts +4 -1
  257. package/lib/renderers/Form/InputFormula.js +2 -2
  258. package/lib/renderers/Form/InputFormula.js.map +2 -2
  259. package/lib/renderers/Form/InputImage.d.ts +1 -0
  260. package/lib/renderers/Form/InputImage.js +8 -4
  261. package/lib/renderers/Form/InputImage.js.map +2 -2
  262. package/lib/renderers/Form/InputMonthRange.js +1 -1
  263. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  264. package/lib/renderers/Form/InputQuarterRange.js +1 -1
  265. package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
  266. package/lib/renderers/Form/InputYearRange.js +1 -1
  267. package/lib/renderers/Form/InputYearRange.js.map +2 -2
  268. package/lib/renderers/Form/Item.d.ts +10 -14
  269. package/lib/renderers/Form/Item.js +18 -9
  270. package/lib/renderers/Form/Item.js.map +2 -2
  271. package/lib/renderers/Form/NestedSelect.d.ts +1 -0
  272. package/lib/renderers/Form/NestedSelect.js +8 -4
  273. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  274. package/lib/renderers/Form/Options.js +9 -7
  275. package/lib/renderers/Form/Options.js.map +2 -2
  276. package/lib/renderers/Form/Select.d.ts +2 -0
  277. package/lib/renderers/Form/Select.js +9 -6
  278. package/lib/renderers/Form/Select.js.map +2 -2
  279. package/lib/renderers/Form/TabsTransfer.d.ts +5 -32
  280. package/lib/renderers/Form/TabsTransfer.js +20 -1
  281. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  282. package/lib/renderers/Form/TabsTransferPicker.d.ts +5 -35
  283. package/lib/renderers/Form/TabsTransferPicker.js +21 -2
  284. package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
  285. package/lib/renderers/Form/Transfer.d.ts +15 -4
  286. package/lib/renderers/Form/Transfer.js +55 -18
  287. package/lib/renderers/Form/Transfer.js.map +2 -2
  288. package/lib/renderers/Form/TransferPicker.d.ts +3 -32
  289. package/lib/renderers/Form/TransferPicker.js +1 -1
  290. package/lib/renderers/Form/TransferPicker.js.map +2 -2
  291. package/lib/renderers/Form/TreeSelect.js +4 -4
  292. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  293. package/lib/renderers/Form/index.js +10 -2
  294. package/lib/renderers/Form/index.js.map +2 -2
  295. package/lib/renderers/IFrame.js +0 -2
  296. package/lib/renderers/IFrame.js.map +2 -2
  297. package/lib/renderers/Link.d.ts +1 -1
  298. package/lib/renderers/Link.js +27 -6
  299. package/lib/renderers/Link.js.map +2 -2
  300. package/lib/renderers/Nav.d.ts +21 -21
  301. package/lib/renderers/Nav.js +4 -1
  302. package/lib/renderers/Nav.js.map +2 -2
  303. package/lib/renderers/Remark.d.ts +5 -1
  304. package/lib/renderers/Remark.js +39 -7
  305. package/lib/renderers/Remark.js.map +2 -2
  306. package/lib/renderers/Steps.js +5 -5
  307. package/lib/renderers/Steps.js.map +2 -2
  308. package/lib/renderers/Table/TableRow.js +4 -1
  309. package/lib/renderers/Table/TableRow.js.map +2 -2
  310. package/lib/renderers/Table/index.js +4 -1
  311. package/lib/renderers/Table/index.js.map +2 -2
  312. package/lib/renderers/Tabs.js +1 -1
  313. package/lib/renderers/Tabs.js.map +2 -2
  314. package/lib/renderers/Timeline.d.ts +65 -0
  315. package/lib/renderers/Timeline.js +54 -0
  316. package/lib/renderers/Timeline.js.map +13 -0
  317. package/lib/renderers/Video.js.map +2 -2
  318. package/lib/schemaExtend.js +23 -9
  319. package/lib/schemaExtend.js.map +2 -2
  320. package/lib/store/combo.js.map +2 -2
  321. package/lib/store/formItem.js +7 -7
  322. package/lib/store/formItem.js.map +2 -2
  323. package/lib/store/table.js +1 -1
  324. package/lib/store/table.js.map +2 -2
  325. package/lib/themes/ang-ie11.css +1149 -53
  326. package/lib/themes/ang.css +1149 -53
  327. package/lib/themes/ang.css.map +1 -1
  328. package/lib/themes/antd-ie11.css +1187 -53
  329. package/lib/themes/antd.css +1187 -53
  330. package/lib/themes/antd.css.map +1 -1
  331. package/lib/themes/cxd-ie11.css +1190 -71
  332. package/lib/themes/cxd.css +1190 -71
  333. package/lib/themes/cxd.css.map +1 -1
  334. package/lib/themes/dark-ie11.css +1152 -53
  335. package/lib/themes/dark.css +1152 -53
  336. package/lib/themes/dark.css.map +1 -1
  337. package/lib/themes/default.css +1190 -71
  338. package/lib/themes/default.css.map +1 -1
  339. package/lib/utils/RootClose.js +3 -1
  340. package/lib/utils/RootClose.js.map +2 -2
  341. package/lib/utils/api.js +14 -3
  342. package/lib/utils/api.js.map +2 -2
  343. package/lib/utils/debug.d.ts +26 -0
  344. package/lib/utils/debug.js +351 -0
  345. package/lib/utils/debug.js.map +13 -0
  346. package/lib/utils/helper.d.ts +1 -6
  347. package/lib/utils/helper.js +6 -17
  348. package/lib/utils/helper.js.map +2 -2
  349. package/lib/utils/renderer-event.d.ts +38 -0
  350. package/lib/utils/renderer-event.js +28 -0
  351. package/lib/utils/renderer-event.js.map +13 -0
  352. package/package.json +12 -6
  353. package/schema.json +3483 -810
  354. package/scss/_properties.scss +20 -6
  355. package/scss/_variables.scss +1 -0
  356. package/scss/components/_avatar.scss +27 -9
  357. package/scss/components/_calendar.scss +291 -0
  358. package/scss/components/_card.scss +1 -1
  359. package/scss/components/_cascader.scss +102 -0
  360. package/scss/components/_city-area.scss +27 -0
  361. package/scss/components/_collapse-group.scss +1 -3
  362. package/scss/components/_debug.scss +167 -0
  363. package/scss/components/_dropdown.scss +39 -9
  364. package/scss/components/_formula.scss +30 -6
  365. package/scss/components/_modal.scss +18 -0
  366. package/scss/components/_panel.scss +45 -0
  367. package/scss/components/_picker-columns.scss +15 -5
  368. package/scss/components/_popup.scss +43 -16
  369. package/scss/components/_result-box.scss +31 -0
  370. package/scss/components/_timeline.scss +198 -0
  371. package/scss/components/form/_checks.scss +2 -0
  372. package/scss/components/form/_color.scss +2 -2
  373. package/scss/components/form/_date-range.scss +34 -1
  374. package/scss/components/form/_date.scss +46 -1
  375. package/scss/components/form/_form.scss +170 -0
  376. package/scss/components/form/_nested-select.scss +3 -0
  377. package/scss/components/form/_result-list.scss +2 -0
  378. package/scss/components/form/_select.scss +32 -3
  379. package/scss/components/form/_selection.scss +5 -4
  380. package/scss/components/form/_transfer.scss +3 -0
  381. package/scss/components/form/_tree-select.scss +1 -1
  382. package/scss/themes/_antd-variables.scss +45 -0
  383. package/scss/themes/_common.scss +5 -0
  384. package/scss/themes/_cxd-variables.scss +51 -2
  385. package/scss/themes/_dark-variables.scss +4 -0
  386. package/scss/themes/cxd.scss +0 -19
  387. package/sdk/ang-ie11.css +1450 -142
  388. package/sdk/ang.css +1473 -159
  389. package/sdk/antd-ie11.css +1451 -142
  390. package/sdk/antd.css +1511 -159
  391. package/sdk/charts.js +15 -15
  392. package/sdk/codemirror.js +7 -7
  393. package/sdk/color-picker.js +65 -65
  394. package/sdk/cropperjs.js +2 -2
  395. package/sdk/cxd-ie11.css +1449 -159
  396. package/sdk/cxd.css +1514 -179
  397. package/sdk/dark-ie11.css +1450 -142
  398. package/sdk/dark.css +1476 -159
  399. package/sdk/exceljs.js +1 -1
  400. package/sdk/helper.css.map +1 -1
  401. package/sdk/locale/de-DE.js +17 -2
  402. package/sdk/markdown.js +69 -69
  403. package/sdk/papaparse.js +1 -1
  404. package/sdk/renderers/Form/CityDB.js +1 -1
  405. package/sdk/rest.js +18 -18
  406. package/sdk/rich-text.js +62 -62
  407. package/sdk/sdk-ie11.css +1449 -159
  408. package/sdk/sdk.css +1514 -179
  409. package/sdk/sdk.js +1311 -1253
  410. package/sdk/thirds/hls.js/hls.js +1 -1
  411. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  412. package/sdk/tinymce.js +57 -57
  413. package/src/RootRenderer.tsx +27 -1
  414. package/src/Schema.ts +3 -0
  415. package/src/SchemaRenderer.tsx +70 -4
  416. package/src/Scoped.tsx +46 -4
  417. package/src/actions/Action.ts +138 -0
  418. package/src/actions/AjaxAction.ts +58 -0
  419. package/src/actions/BreakAction.ts +27 -0
  420. package/src/actions/BroadcastAction.ts +41 -0
  421. package/src/actions/CmptAction.ts +36 -0
  422. package/src/actions/ContinueAction.ts +27 -0
  423. package/src/actions/CopyAction.ts +41 -0
  424. package/src/actions/CustomAction.ts +46 -0
  425. package/src/actions/DialogAction.ts +28 -0
  426. package/src/actions/DrawerAction.ts +28 -0
  427. package/src/actions/EmailAction.ts +38 -0
  428. package/src/actions/LoopAction.ts +77 -0
  429. package/src/actions/OpenPageAction.ts +39 -0
  430. package/src/actions/ParallelAction.ts +26 -0
  431. package/src/actions/SwitchAction.ts +35 -0
  432. package/src/actions/index.ts +20 -0
  433. package/src/components/AssociatedSelection.tsx +5 -1
  434. package/src/components/Avatar.tsx +253 -0
  435. package/src/components/BaiduMapPicker.tsx +19 -14
  436. package/src/components/CalendarMobile.tsx +658 -0
  437. package/src/components/Cascader.tsx +564 -0
  438. package/src/components/ChainedSelection.tsx +16 -3
  439. package/src/components/CityArea.tsx +315 -0
  440. package/src/components/ColorPicker.tsx +41 -40
  441. package/src/components/DatePicker.tsx +80 -34
  442. package/src/components/DateRangePicker.tsx +85 -30
  443. package/src/components/GroupedSelection.tsx +14 -2
  444. package/src/components/MonthRangePicker.tsx +78 -31
  445. package/src/components/Overlay.tsx +1 -1
  446. package/src/components/Picker.tsx +55 -35
  447. package/src/components/PickerColumn.tsx +43 -36
  448. package/src/components/PickerContainer.tsx +13 -1
  449. package/src/components/PopOverContainer.tsx +31 -17
  450. package/src/components/PopUp.tsx +84 -57
  451. package/src/components/ResultBox.tsx +14 -2
  452. package/src/components/ResultList.tsx +36 -6
  453. package/src/components/Select.tsx +24 -26
  454. package/src/components/Selection.tsx +21 -3
  455. package/src/components/Steps.tsx +23 -10
  456. package/src/components/TableSelection.tsx +1 -44
  457. package/src/components/Tabs.tsx +65 -54
  458. package/src/components/TabsTransfer.tsx +78 -9
  459. package/src/components/TabsTransferPicker.tsx +25 -13
  460. package/src/components/Timeline.tsx +36 -0
  461. package/src/components/TimelineItem.tsx +140 -0
  462. package/src/components/Transfer.tsx +11 -8
  463. package/src/components/TransferDropDown.tsx +20 -12
  464. package/src/components/TransferPicker.tsx +25 -4
  465. package/src/components/TreeSelection.tsx +7 -1
  466. package/src/components/calendar/Calendar.tsx +101 -4
  467. package/src/components/calendar/DaysView.tsx +165 -33
  468. package/src/components/calendar/MonthsView.tsx +108 -1
  469. package/src/components/calendar/QuartersView.tsx +3 -2
  470. package/src/components/calendar/TimeView.tsx +104 -41
  471. package/src/components/calendar/YearsView.tsx +34 -17
  472. package/src/components/condition-builder/Field.tsx +1 -3
  473. package/src/components/condition-builder/Func.tsx +1 -1
  474. package/src/components/formula/Editor.tsx +16 -11
  475. package/src/components/formula/FuncList.tsx +3 -1
  476. package/src/components/formula/Picker.tsx +2 -1
  477. package/src/components/formula/plugin.ts +0 -2
  478. package/src/components/icons.tsx +2 -0
  479. package/src/components/index.tsx +2 -0
  480. package/src/components/virtual-list/SizeAndPositionManager.ts +6 -3
  481. package/src/components/virtual-list/index.tsx +4 -6
  482. package/src/env.tsx +22 -0
  483. package/src/factory.tsx +93 -1
  484. package/src/icons/tree-down.svg +5 -0
  485. package/src/index.tsx +5 -0
  486. package/src/locale/de-DE.ts +17 -2
  487. package/src/locale/en-US.ts +17 -2
  488. package/src/locale/zh-CN.ts +16 -1
  489. package/src/renderers/Action.tsx +11 -2
  490. package/src/renderers/Avatar.tsx +83 -74
  491. package/src/renderers/CRUD.tsx +1 -3
  492. package/src/renderers/Card.tsx +10 -6
  493. package/src/renderers/Custom.tsx +7 -4
  494. package/src/renderers/DropDownButton.tsx +69 -35
  495. package/src/renderers/Each.tsx +4 -4
  496. package/src/renderers/Flex.tsx +3 -7
  497. package/src/renderers/Form/ChartRadios.tsx +2 -7
  498. package/src/renderers/Form/Checkboxes.tsx +1 -1
  499. package/src/renderers/Form/CityDB.ts +526 -2
  500. package/src/renderers/Form/DiffEditor.tsx +2 -3
  501. package/src/renderers/Form/InputCity.tsx +23 -3
  502. package/src/renderers/Form/InputColor.tsx +21 -2
  503. package/src/renderers/Form/InputDate.tsx +48 -20
  504. package/src/renderers/Form/InputDateRange.tsx +9 -2
  505. package/src/renderers/Form/InputFormula.tsx +9 -4
  506. package/src/renderers/Form/InputImage.tsx +9 -4
  507. package/src/renderers/Form/InputMonthRange.tsx +0 -1
  508. package/src/renderers/Form/InputQuarterRange.tsx +0 -1
  509. package/src/renderers/Form/InputYearRange.tsx +0 -1
  510. package/src/renderers/Form/Item.tsx +29 -8
  511. package/src/renderers/Form/NestedSelect.tsx +32 -4
  512. package/src/renderers/Form/Options.tsx +15 -7
  513. package/src/renderers/Form/Select.tsx +21 -5
  514. package/src/renderers/Form/TabsTransfer.tsx +28 -38
  515. package/src/renderers/Form/TabsTransferPicker.tsx +28 -46
  516. package/src/renderers/Form/Transfer.tsx +75 -24
  517. package/src/renderers/Form/TransferPicker.tsx +6 -38
  518. package/src/renderers/Form/TreeSelect.tsx +18 -16
  519. package/src/renderers/Form/index.tsx +9 -2
  520. package/src/renderers/IFrame.tsx +0 -2
  521. package/src/renderers/Link.tsx +18 -3
  522. package/src/renderers/Nav.tsx +4 -1
  523. package/src/renderers/Remark.tsx +68 -18
  524. package/src/renderers/Steps.tsx +11 -13
  525. package/src/renderers/Table/TableRow.tsx +3 -1
  526. package/src/renderers/Table/index.tsx +7 -1
  527. package/src/renderers/Tabs.tsx +6 -2
  528. package/src/renderers/Timeline.tsx +141 -0
  529. package/src/renderers/Video.tsx +4 -20
  530. package/src/schemaExtend.ts +22 -10
  531. package/src/store/combo.ts +1 -3
  532. package/src/store/formItem.ts +3 -3
  533. package/src/store/table.ts +2 -1
  534. package/src/utils/RootClose.ts +5 -1
  535. package/src/utils/api.ts +15 -2
  536. package/src/utils/debug.tsx +438 -0
  537. package/src/utils/helper.ts +6 -16
  538. package/src/utils/renderer-event.ts +75 -0
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": 3,
3
+ "file": "debug.js",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "/src/utils/debug.tsx"
7
+ ],
8
+ "names": [],
9
+ "mappings": "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",
10
+ "sourcesContent": [
11
+ "/**\n * amis 运行时调试功能,为了避免循环引用,这个组件不要依赖 amis 里的组件\n */\n\nimport React, {Component, useEffect, useRef, useState} from 'react';\nimport cx from 'classnames';\nimport {findDOMNode, render} from 'react-dom';\nimport JsonView from 'react-json-view';\nimport {autorun, observable} from 'mobx';\nimport {observer} from 'mobx-react';\nimport {uuidv4} from './helper';\nimport position from './position';\n\nclass Log {\n @observable cat = '';\n @observable level = '';\n @observable msg = '';\n @observable ext? = '';\n}\n\nclass AMISDebugStore {\n /**\n * 当前 tab\n */\n @observable tab: 'log' | 'inspect' = 'log';\n\n /**\n * 显示位置,默认在右边\n */\n @observable position: 'left' | 'right' = 'right';\n\n /**\n * 组件日志\n */\n @observable logs: Log[] = [];\n\n /**\n * Debug 面板是否展开\n */\n @observable isExpanded = false;\n\n /**\n * 是否是 inspect 模式,在这个模式下可以查看数据域\n */\n @observable inspectMode = false;\n\n /**\n * 当前高亮的组件节点 id\n */\n @observable hoverId: string;\n\n /**\n * 当前选中的组件节点 id\n */\n @observable activeId: string;\n}\n\nconst store = new AMISDebugStore();\n\ninterface ComponentInspect {\n name: string;\n component: any;\n}\n\n// 存储组件信息用于 debug\nconst ComponentInfo = {} as {[propName: string]: ComponentInspect};\n\nconst LogView = observer(({store}: {store: AMISDebugStore}) => {\n const logs = store.logs;\n return (\n <>\n {logs.map((log, index) => {\n return (\n <div className=\"AMISDebug-logLine\" key={`log-${index}`}>\n <div className=\"AMISDebug-logLineMsg\">\n [{log.cat}] {log.msg}\n </div>\n {log.ext ? (\n <JsonView\n name={null}\n theme=\"monokai\"\n src={JSON.parse(log.ext)}\n collapsed={true}\n enableClipboard={false}\n displayDataTypes={false}\n iconStyle=\"square\"\n />\n ) : null}\n </div>\n );\n })}\n </>\n );\n});\n\nconst AMISDebug = observer(({store}: {store: AMISDebugStore}) => {\n const activeId = store.activeId;\n const activeComponentInspect = ComponentInfo[activeId];\n\n // 收集数据域里的数据\n let start = activeComponentInspect?.component?.props?.data || {};\n const stacks = [start];\n\n while (Object.getPrototypeOf(start) !== Object.prototype) {\n const superData = Object.getPrototypeOf(start);\n if (Object.prototype.toString.call(superData) !== '[object Object]') {\n break;\n }\n stacks.push(superData);\n start = superData;\n }\n\n const stackDataView = [];\n if (Object.keys(stacks[0]).length || stacks.length > 1) {\n let level = 0;\n for (const stack of stacks) {\n stackDataView.push(\n <div key={`data-${level}`}>\n <h3>Data Level-{level}</h3>\n <JsonView\n key={`dataview-${stack}`}\n name={null}\n theme=\"monokai\"\n src={stack}\n collapsed={level === 0 ? false : true}\n enableClipboard={false}\n displayDataTypes={false}\n iconStyle=\"square\"\n />\n </div>\n );\n level += 1;\n }\n }\n\n const panelRef = useRef(null);\n\n const [isResizing, setResizing] = useState(false);\n\n const [startX, setStartX] = useState(0);\n\n const [panelWidth, setPanelWidth] = useState(0);\n\n useEffect(() => {\n const handleMouseUp = () => {\n setResizing(false);\n };\n const handleMouseMove = (e: MouseEvent) => {\n if (!isResizing) {\n return;\n }\n const xOffset =\n store.position === 'right' ? e.clientX - startX : startX - e.clientX;\n const panel = panelRef.current! as HTMLElement;\n const targetWidth = Math.max(200, panelWidth - xOffset);\n panel.style.width = targetWidth + 'px';\n if (e.stopPropagation) e.stopPropagation();\n if (e.preventDefault) e.preventDefault();\n e.cancelBubble = true;\n return false;\n };\n if (isResizing) {\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('mouseup', handleMouseUp);\n }\n\n return () => {\n if (isResizing) {\n document.removeEventListener('mousemove', handleMouseMove);\n document.removeEventListener('mouseup', handleMouseUp);\n }\n };\n }, [isResizing]);\n\n return (\n <div\n className={cx('AMISDebug', {\n 'is-expanded': store.isExpanded,\n 'is-left': store.position === 'left'\n })}\n ref={panelRef}\n >\n <div\n className=\"AMISDebug-toggle\"\n onClick={() => {\n store.isExpanded = true;\n }}\n >\n {store.isExpanded ? (\n <i className=\"fas fa-times\"></i>\n ) : (\n <i className=\"fas fa-bug\"></i>\n )}\n </div>\n <div className={cx('AMISDebug-content')}>\n <div\n className=\"AMISDebug-close\"\n title=\"Close\"\n onClick={() => {\n store.isExpanded = false;\n }}\n >\n <i className=\"fas fa-times\" />\n </div>\n <div\n className=\"AMISDebug-resize\"\n onMouseDown={event => {\n setStartX(event.clientX);\n setPanelWidth(\n parseInt(\n getComputedStyle(panelRef.current!).getPropertyValue('width'),\n 10\n )\n );\n setResizing(true);\n }}\n ></div>\n <div className=\"AMISDebug-tab\">\n <button\n className={cx({active: store.tab === 'log'})}\n onClick={() => {\n store.tab = 'log';\n }}\n >\n Log\n </button>\n <button\n className={cx({active: store.tab === 'inspect'})}\n onClick={() => {\n store.tab = 'inspect';\n }}\n >\n Inspect\n </button>\n </div>\n <div className=\"AMISDebug-changePosition\">\n {store.position === 'right' ? (\n <i\n className=\"fas fa-chevron-left\"\n title=\"move to left\"\n onClick={() => {\n store.position = 'left';\n }}\n />\n ) : (\n <i\n className=\"fas fa-chevron-right\"\n title=\"move to right\"\n onClick={() => {\n store.position = 'right';\n }}\n />\n )}\n </div>\n {store.tab === 'log' ? (\n <div className=\"AMISDebug-log\">\n <button\n onClick={() => {\n store.logs = [];\n }}\n >\n Clear Log\n </button>\n <LogView store={store} />\n </div>\n ) : null}\n {store.tab === 'inspect' ? (\n <div className=\"AMISDebug-inspect\">\n {activeId ? (\n <>\n <h3>\n Component:{' '}\n <span className=\"primary\">{activeComponentInspect.name}</span>\n </h3>\n {stackDataView}\n </>\n ) : (\n 'Click component to display inspect'\n )}\n </div>\n ) : null}\n </div>\n </div>\n );\n});\n\nexport let enableAMISDebug = false;\n\n// 开启 debug 有两种方法,一个是设置 enableAMISDebug 全局变量,另一个是通过 amisDebug=1 query\nif (\n (window as any).enableAMISDebug ||\n location.search.indexOf('amisDebug=1') !== -1\n) {\n enableAMISDebug = true;\n // 页面只有一个\n if (!(window as any).amisDebugElement) {\n const amisDebugElement = document.createElement('div');\n document.body.appendChild(amisDebugElement);\n const element = <AMISDebug store={store} />;\n render(element, amisDebugElement);\n (window as any).amisDebugElement = true;\n }\n}\n\n/**\n * 鼠标移动到某个组件的效果\n */\nfunction handleMouseMove(e: MouseEvent) {\n if (!store.isExpanded) {\n return;\n }\n const dom = e.target as HTMLElement;\n const target = dom.closest(`[data-debug-id]`);\n if (target) {\n store.hoverId = target.getAttribute('data-debug-id')!;\n }\n}\n\n/**\n * 点选某个组件\n */\nfunction handleMouseclick(e: MouseEvent) {\n if (!store.isExpanded) {\n return;\n }\n const dom = e.target as HTMLElement;\n const target = dom.closest(`[data-debug-id]`);\n if (target) {\n store.activeId = target.getAttribute('data-debug-id')!;\n store.tab = 'inspect';\n }\n}\n\n// hover 及点击后的高亮\nconst amisHoverBox = document.createElement('div');\namisHoverBox.className = 'AMISDebug-hoverBox';\nconst amisActiveBox = document.createElement('div');\namisActiveBox.className = 'AMISDebug-activeBox';\n\nautorun(() => {\n const hoverId = store.hoverId;\n const hoverElement = document.querySelector(\n `[data-debug-id=\"${hoverId}\"]`\n ) as HTMLElement;\n if (hoverElement) {\n const offset = position(hoverElement, document.body);\n amisHoverBox.style.top = `${offset.top}px`;\n amisHoverBox.style.left = `${offset.left}px`;\n amisHoverBox.style.width = `${offset.width}px`;\n amisHoverBox.style.height = `${offset.height}px`;\n }\n});\n\nautorun(() => {\n const activeId = store.activeId;\n const activeElement = document.querySelector(\n `[data-debug-id=\"${activeId}\"]`\n ) as HTMLElement;\n if (activeElement) {\n const offset = position(activeElement, document.body);\n amisActiveBox.style.top = `${offset.top}px`;\n amisActiveBox.style.left = `${offset.left}px`;\n amisActiveBox.style.width = `${offset.width}px`;\n amisActiveBox.style.height = `${offset.height}px`;\n }\n});\n\nif (enableAMISDebug) {\n document.body.appendChild(amisHoverBox);\n document.body.appendChild(amisActiveBox);\n document.addEventListener('mousemove', handleMouseMove);\n document.addEventListener('click', handleMouseclick);\n}\n\ninterface DebugWrapperProps {\n renderer: any;\n}\n\nexport class DebugWrapper extends Component<DebugWrapperProps> {\n componentDidMount() {\n if (!enableAMISDebug) {\n return;\n }\n const root = findDOMNode(this) as HTMLElement;\n if (!root) {\n return;\n }\n const {renderer} = this.props;\n const debugId = uuidv4();\n root.setAttribute('data-debug-id', debugId);\n ComponentInfo[debugId] = {\n name: renderer.name,\n component: this.props.children\n };\n }\n\n render() {\n return this.props.children;\n }\n}\n\ntype Category = 'api' | 'event';\n\n/**\n * 一般调试日志\n * @param msg 简单消息\n * @param ext 扩展信息\n */\nexport function debug(cat: Category, msg: string, ext?: object) {\n if (!enableAMISDebug) {\n return;\n }\n const log = {\n cat,\n level: 'debug',\n msg: msg,\n ext: JSON.stringify(ext)\n };\n console.debug(log);\n store.logs.push(log);\n}\n\n/**\n * 警告日志\n * @param msg 简单消息\n * @param ext 扩展信息\n */\nexport function warning(cat: Category, msg: string, ext?: object) {\n if (!enableAMISDebug) {\n return;\n }\n store.logs.push({\n cat,\n level: 'warn',\n msg: msg,\n ext: JSON.stringify(ext)\n });\n}\n"
12
+ ]
13
+ }
@@ -279,10 +279,5 @@ export declare function hashCode(s: string): number;
279
279
  * @param mapper
280
280
  */
281
281
  export declare function JSONTraverse(json: any, mapper: (value: any, key: string | number, host: Object) => any): void;
282
- export declare function convertDateArrayToDate(value: number[], types: string[], date: moment.Moment): moment.Moment | null;
283
- export declare function convertDateToObject(value: moment.Moment): {
284
- year: number;
285
- month: number;
286
- day: number;
287
- } | null;
282
+ export declare function convertArrayValueToMoment(value: number[], types: string[], mom: moment.Moment): moment.Moment;
288
283
  export declare function getRange(min: number, max: number, step?: number): number[];
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.everyTree = exports.filterTree = exports.getTree = exports.findTreeIndex = exports.findTree = exports.eachTree = exports.mapTree = exports.uuidv4 = exports.uuid = exports.isEmpty = exports.omitControls = exports.until = exports.isBreakpoint = exports.__uri = exports.padArr = exports.difference = exports.getScrollParent = exports.promisify = exports.makeHorizontalDeeper = exports.hasAbility = exports.isDisabled = exports.visibilityFilter = exports.isUnfolded = exports.isVisible = exports.hasVisibleExpression = exports.makeColumnClassBuild = exports.immutableExtends = exports.isArrayChildrenModified = exports.isObjectShallowModified = exports.rmUndefined = exports.anyChanged = exports.noop = exports.hasOwnProperty = exports.findIndex = exports.guid = exports.syncDataFromSuper = exports.isSuperDataModified = exports.extendObject = exports.injectPropsToObject = exports.range = exports.isMobile = exports.preventDefault = exports.keyToPath = exports.deleteVariable = exports.setVariable = exports.getVariable = exports.string2regExp = exports.isObject = exports.cloneObject = exports.createObject = void 0;
4
- exports.getRange = exports.convertDateToObject = exports.convertDateArrayToDate = exports.JSONTraverse = exports.hashCode = exports.isClickOnInput = exports.normalizeNodePath = exports.removeHTMLTag = exports.detectPropValueChanged = exports.getPropValue = exports.getScrollbarWidth = exports.findObjectsWithKey = exports.SkipOperation = exports.loadScript = exports.mapObject = exports.chainEvents = exports.chainFunctions = exports.object2formData = exports.qsparse = exports.qsstringify = exports.hasFile = exports.sortArray = exports.bulkBindFunctions = exports.autobind = exports.pickEventsProps = exports.getLevelFromClassName = exports.getWidthRate = exports.camel = exports.lcFirst = exports.ucFirst = exports.getTreeParent = exports.getTreeAncestors = exports.getTreeDepth = exports.spliceTree = exports.flattenTree = exports.someTree = void 0;
4
+ exports.getRange = exports.convertArrayValueToMoment = exports.JSONTraverse = exports.hashCode = exports.isClickOnInput = exports.normalizeNodePath = exports.removeHTMLTag = exports.detectPropValueChanged = exports.getPropValue = exports.getScrollbarWidth = exports.findObjectsWithKey = exports.SkipOperation = exports.loadScript = exports.mapObject = exports.chainEvents = exports.chainFunctions = exports.object2formData = exports.qsparse = exports.qsstringify = exports.hasFile = exports.sortArray = exports.bulkBindFunctions = exports.autobind = exports.pickEventsProps = exports.getLevelFromClassName = exports.getWidthRate = exports.camel = exports.lcFirst = exports.ucFirst = exports.getTreeParent = exports.getTreeAncestors = exports.getTreeDepth = exports.spliceTree = exports.flattenTree = exports.someTree = void 0;
5
5
  var tslib_1 = require("tslib");
6
6
  var isPlainObject_1 = (0, tslib_1.__importDefault)(require("lodash/isPlainObject"));
7
7
  var isEqual_1 = (0, tslib_1.__importDefault)(require("lodash/isEqual"));
@@ -1232,28 +1232,17 @@ function JSONTraverse(json, mapper) {
1232
1232
  });
1233
1233
  }
1234
1234
  exports.JSONTraverse = JSONTraverse;
1235
- function convertDateArrayToDate(value, types, date) {
1235
+ function convertArrayValueToMoment(value, types, mom) {
1236
1236
  if (value.length === 0)
1237
- return date;
1237
+ return mom;
1238
1238
  for (var i = 0; i < types.length; i++) {
1239
1239
  var type = types[i];
1240
1240
  // @ts-ignore
1241
- date[type](value[i]);
1241
+ mom.set(type, value[i]);
1242
1242
  }
1243
- return date;
1243
+ return mom;
1244
1244
  }
1245
- exports.convertDateArrayToDate = convertDateArrayToDate;
1246
- function convertDateToObject(value) {
1247
- if (value) {
1248
- return {
1249
- year: value.year(),
1250
- month: parseInt(value.format('MM'), 10),
1251
- day: parseInt(value.format('DD'), 10)
1252
- };
1253
- }
1254
- return null;
1255
- }
1256
- exports.convertDateToObject = convertDateToObject;
1245
+ exports.convertArrayValueToMoment = convertArrayValueToMoment;
1257
1246
  function getRange(min, max, step) {
1258
1247
  if (step === void 0) { step = 1; }
1259
1248
  var arr = [];
@@ -6,8 +6,8 @@
6
6
  "/src/utils/helper.ts"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import isPlainObject from 'lodash/isPlainObject';\nimport isEqual from 'lodash/isEqual';\nimport isNaN from 'lodash/isNaN';\nimport uniq from 'lodash/uniq';\nimport last from 'lodash/last';\nimport {Schema, PlainObject, FunctionPropertyNames} from '../types';\nimport {evalExpression} from './tpl';\nimport qs from 'qs';\nimport {IIRendererStore} from '../store';\nimport {IFormStore} from '../store/form';\nimport {autobindMethod} from './autobind';\nimport {\n createObject,\n cloneObject,\n isObject,\n string2regExp,\n getVariable,\n setVariable,\n deleteVariable,\n keyToPath,\n isPureVariable,\n resolveVariable,\n resolveVariableAndFilter\n} from 'amis-formula';\nimport {isObservable} from 'mobx';\n\nexport {\n createObject,\n cloneObject,\n isObject,\n string2regExp,\n getVariable,\n setVariable,\n deleteVariable,\n keyToPath\n};\n\nexport function preventDefault(event: TouchEvent | Event): void {\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n}\n\nexport function isMobile() {\n return (window as any).matchMedia?.('(max-width: 768px)').matches;\n}\n\nexport function range(num: number, min: number, max: number): number {\n return Math.min(Math.max(num, min), max);\n}\n\n/**\n * 给目标对象添加其他属性,可读取但是不会被遍历。\n * @param target\n * @param props\n */\nexport function injectPropsToObject(target: any, props: any) {\n const sup = Object.create(target.__super || null);\n Object.keys(props).forEach(key => (sup[key] = props[key]));\n const result = Object.create(sup);\n Object.keys(target).forEach(key => (result[key] = target[key]));\n return result;\n}\n\nexport function extendObject(\n target: any,\n src?: any,\n persistOwnProps: boolean = true\n) {\n const obj = cloneObject(target, persistOwnProps);\n src && Object.keys(src).forEach(key => (obj[key] = src[key]));\n return obj;\n}\n\nexport function isSuperDataModified(\n data: any,\n prevData: any,\n store: IIRendererStore\n) {\n let keys: Array<string> = [];\n\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(store.data))\n );\n } else {\n keys = Object.keys(store.data);\n }\n\n if (Array.isArray(keys) && keys.length) {\n return keys.some(key => data[key] !== prevData[key]);\n }\n\n return false;\n}\n\nexport function syncDataFromSuper(\n data: any,\n superObject: any,\n prevSuperObject: any,\n store: IIRendererStore,\n force: boolean\n) {\n const obj = {\n ...data\n };\n\n let keys: Array<string> = [];\n\n // 如果是 form store,则从父级同步 formItem 种东西。\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(obj))\n );\n } else if (force) {\n keys = Object.keys(obj);\n }\n\n if (superObject || prevSuperObject) {\n keys.forEach(key => {\n if (!key) {\n return;\n }\n\n if (\n ((superObject && typeof superObject[key] !== 'undefined') ||\n (prevSuperObject && typeof prevSuperObject[key] !== 'undefined')) &&\n ((prevSuperObject && !superObject) ||\n (!prevSuperObject && superObject) ||\n prevSuperObject[key] !== superObject[key])\n ) {\n obj[key] = superObject[key];\n }\n });\n }\n\n return obj;\n}\n\n/**\n * 生成 8 位随机数字。\n *\n * @return {string} 8位随机数字\n */\nexport function guid() {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n return s4() + s4() + s4();\n}\n\nexport function findIndex(\n arr: Array<any>,\n detect: (item?: any, index?: number) => boolean\n) {\n for (let i = 0, len = arr.length; i < len; i++) {\n if (detect(arr[i], i)) {\n return i;\n }\n }\n\n return -1;\n}\n\nexport function hasOwnProperty(\n data: {[propName: string]: any},\n key: string\n): boolean {\n const parts = keyToPath(key);\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (!isObject(data) || !data.hasOwnProperty(key)) {\n return false;\n }\n\n data = data[key];\n }\n\n return true;\n}\n\nexport function noop() {}\n\nexport function anyChanged(\n attrs: string | Array<string>,\n from: {[propName: string]: any},\n to: {[propName: string]: any},\n strictMode: boolean = true\n): boolean {\n return (typeof attrs === 'string' ? attrs.split(/\\s*,\\s*/) : attrs).some(\n key => (strictMode ? from[key] !== to[key] : from[key] != to[key])\n );\n}\n\nexport function rmUndefined(obj: PlainObject) {\n const newObj: PlainObject = {};\n\n if (typeof obj !== 'object') {\n return obj;\n }\n\n const keys = Object.keys(obj);\n keys.forEach(key => {\n if (obj[key] !== undefined) {\n newObj[key] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function isObjectShallowModified(\n prev: any,\n next: any,\n strictMode: boolean = true,\n ignoreUndefined: boolean = false,\n statck: Array<any> = []\n): boolean {\n if (Array.isArray(prev) && Array.isArray(next)) {\n return prev.length !== next.length\n ? true\n : prev.some((prev, index) =>\n isObjectShallowModified(\n prev,\n next[index],\n strictMode,\n ignoreUndefined,\n statck\n )\n );\n } else if (isNaN(prev) && isNaN(next)) {\n return false;\n } else if (\n null == prev ||\n null == next ||\n !isObject(prev) ||\n !isObject(next) ||\n isObservable(prev) ||\n isObservable(next)\n ) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (ignoreUndefined) {\n prev = rmUndefined(prev);\n next = rmUndefined(next);\n }\n\n const keys = Object.keys(prev);\n const nextKeys = Object.keys(next);\n if (\n keys.length !== nextKeys.length ||\n keys.sort().join(',') !== nextKeys.sort().join(',')\n ) {\n return true;\n }\n\n // 避免循环引用死循环。\n if (~statck.indexOf(prev)) {\n return false;\n }\n statck.push(prev);\n\n for (let i: number = keys.length - 1; i >= 0; i--) {\n let key = keys[i];\n if (\n isObjectShallowModified(\n prev[key],\n next[key],\n strictMode,\n ignoreUndefined,\n statck\n )\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function isArrayChildrenModified(\n prev: Array<any>,\n next: Array<any>,\n strictMode: boolean = true\n) {\n if (!Array.isArray(prev) || !Array.isArray(next)) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (prev.length !== next.length) {\n return true;\n }\n\n for (let i: number = prev.length - 1; i >= 0; i--) {\n if (strictMode ? prev[i] !== next[i] : prev[i] != next[i]) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function immutableExtends(to: any, from: any, deep = false) {\n // 不是对象,不可以merge\n if (!isObject(to) || !isObject(from)) {\n return to;\n }\n\n let ret = to;\n\n Object.keys(from).forEach(key => {\n const origin = to[key];\n const value = from[key];\n\n // todo 支持深度merge\n if (origin !== value) {\n // 一旦有修改,就创建个新对象。\n ret = ret !== to ? ret : {...to};\n ret[key] = value;\n }\n });\n\n return ret;\n}\n\n// 即将抛弃\nexport function makeColumnClassBuild(\n steps: number,\n classNameTpl: string = 'col-sm-$value'\n) {\n let count = 12;\n let step = Math.floor(count / steps);\n\n return function (schema: Schema) {\n if (\n schema.columnClassName &&\n /\\bcol-(?:xs|sm|md|lg)-(\\d+)\\b/.test(schema.columnClassName)\n ) {\n const flex = parseInt(RegExp.$1, 10);\n count -= flex;\n steps--;\n step = Math.floor(count / steps);\n return schema.columnClassName;\n } else if (schema.columnClassName) {\n count -= step;\n steps--;\n return schema.columnClassName;\n }\n\n count -= step;\n steps--;\n return classNameTpl.replace('$value', '' + step);\n };\n}\n\nexport function hasVisibleExpression(schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n}) {\n return schema?.visibleOn || schema?.hiddenOn;\n}\n\nexport function isVisible(\n schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n },\n data?: object\n) {\n return !(\n schema.hidden ||\n schema.visible === false ||\n (schema.hiddenOn && evalExpression(schema.hiddenOn, data) === true) ||\n (schema.visibleOn && evalExpression(schema.visibleOn, data) === false)\n );\n}\n\nexport function isUnfolded(\n node: any,\n config: {\n foldedField?: string;\n unfoldedField?: string;\n }\n): boolean {\n let {foldedField, unfoldedField} = config;\n\n unfoldedField = unfoldedField || 'unfolded';\n foldedField = foldedField || 'folded';\n\n let ret: boolean = false;\n if (unfoldedField && typeof node[unfoldedField] !== 'undefined') {\n ret = !!node[unfoldedField];\n } else if (foldedField && typeof node[foldedField] !== 'undefined') {\n ret = !node[foldedField];\n }\n\n return ret;\n}\n\n/**\n * 过滤掉被隐藏的数组元素\n */\nexport function visibilityFilter(items: any, data?: object) {\n return items.filter((item: any) => {\n return isVisible(item, data);\n });\n}\n\nexport function isDisabled(\n schema: {\n disabledOn?: string;\n disabled?: boolean;\n },\n data?: object\n) {\n return (\n schema.disabled ||\n (schema.disabledOn && evalExpression(schema.disabledOn, data))\n );\n}\n\nexport function hasAbility(\n schema: any,\n ability: string,\n data?: object,\n defaultValue: boolean = true\n): boolean {\n return schema.hasOwnProperty(ability)\n ? schema[ability]\n : schema.hasOwnProperty(`${ability}On`)\n ? evalExpression(schema[`${ability}On`], data || schema)\n : defaultValue;\n}\n\nexport function makeHorizontalDeeper(\n horizontal: {\n left: string;\n right: string;\n offset: string;\n leftFixed?: any;\n },\n count: number\n): {\n left: string | number;\n right: string | number;\n offset: string | number;\n leftFixed?: any;\n} {\n if (count > 1 && /\\bcol-(xs|sm|md|lg)-(\\d+)\\b/.test(horizontal.left)) {\n const flex = parseInt(RegExp.$2, 10) * count;\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n } else if (count > 1 && typeof horizontal.left === 'number') {\n const flex = horizontal.left * count;\n\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n }\n\n return horizontal;\n}\n\nexport function promisify<T extends Function>(\n fn: T\n): (...args: Array<any>) => Promise<any> & {\n raw: T;\n} {\n let promisified = function () {\n try {\n const ret = fn.apply(null, arguments);\n if (ret && ret.then) {\n return ret;\n } else if (typeof ret === 'function') {\n // thunk support\n return new Promise((resolve, reject) =>\n ret((error: boolean, value: any) =>\n error ? reject(error) : resolve(value)\n )\n );\n }\n return Promise.resolve(ret);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n (promisified as any).raw = fn;\n return promisified;\n}\n\nexport function getScrollParent(node: HTMLElement): HTMLElement | null {\n if (node == null) {\n return null;\n }\n\n const style = getComputedStyle(node);\n\n if (!style) {\n return null;\n }\n\n const text =\n style.getPropertyValue('overflow') +\n style.getPropertyValue('overflow-x') +\n style.getPropertyValue('overflow-y');\n\n if (/auto|scroll/.test(text) || node.nodeName === 'BODY') {\n return node;\n }\n\n return getScrollParent(node.parentNode as HTMLElement);\n}\n\n/**\n * Deep diff between two object, using lodash\n * @param {Object} object Object compared\n * @param {Object} base Object to compare with\n * @return {Object} Return a new object who represent the diff\n */\nexport function difference<\n T extends {[propName: string]: any},\n U extends {[propName: string]: any}\n>(object: T, base: U, keepProps?: Array<string>): {[propName: string]: any} {\n function changes(object: T, base: U) {\n if (isObject(object) && isObject(base)) {\n const keys: Array<keyof T & keyof U> = uniq(\n Object.keys(object).concat(Object.keys(base))\n );\n let result: any = {};\n\n keys.forEach(key => {\n const a: any = object[key as keyof T];\n const b: any = base[key as keyof U];\n\n if (keepProps && ~keepProps.indexOf(key as string)) {\n result[key] = a;\n }\n\n if (isEqual(a, b)) {\n return;\n }\n\n if (!object.hasOwnProperty(key)) {\n result[key] = undefined;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n result[key] = a;\n } else {\n result[key] = changes(a as any, b as any);\n }\n });\n\n return result;\n } else {\n return object;\n }\n }\n return changes(object, base);\n}\n\nexport const padArr = (arr: Array<any>, size = 4): Array<Array<any>> => {\n const ret: Array<Array<any>> = [];\n const pool: Array<any> = arr.concat();\n let from = 0;\n\n while (pool.length) {\n let host: Array<any> = ret[from] || (ret[from] = []);\n\n if (host.length >= size) {\n from += 1;\n continue;\n }\n\n host.push(pool.shift());\n }\n\n return ret;\n};\n\nexport function __uri(id: string) {\n return id;\n}\n\n// xs < 768px\n// sm >= 768px\n// md >= 992px\n// lg >= 1200px\nexport function isBreakpoint(str: string): boolean {\n if (typeof str !== 'string') {\n return !!str;\n }\n\n const breaks = str.split(/\\s*,\\s*|\\s+/);\n\n if ((window as any).matchMedia) {\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' &&\n matchMedia(`screen and (max-width: 767px)`).matches) ||\n (item === 'sm' &&\n matchMedia(`screen and (min-width: 768px) and (max-width: 991px)`)\n .matches) ||\n (item === 'md' &&\n matchMedia(`screen and (min-width: 992px) and (max-width: 1199px)`)\n .matches) ||\n (item === 'lg' && matchMedia(`screen and (min-width: 1200px)`).matches)\n );\n } else {\n const width = window.innerWidth;\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' && width < 768) ||\n (item === 'sm' && width >= 768 && width < 992) ||\n (item === 'md' && width >= 992 && width < 1200) ||\n (item === 'lg' && width >= 1200)\n );\n }\n}\n\nexport function until(\n fn: () => Promise<any>,\n when: (ret: any) => boolean,\n getCanceler: (fn: () => any) => void,\n interval: number = 5000\n) {\n let timer: ReturnType<typeof setTimeout>;\n let stoped: boolean = false;\n\n return new Promise((resolve, reject) => {\n let cancel = () => {\n clearTimeout(timer);\n stoped = true;\n };\n\n let check = async () => {\n try {\n const ret = await fn();\n\n if (stoped) {\n return;\n } else if (when(ret)) {\n stoped = true;\n resolve(ret);\n } else {\n timer = setTimeout(check, interval);\n }\n } catch (e) {\n reject(e);\n }\n };\n\n check();\n getCanceler && getCanceler(cancel);\n });\n}\n\nexport function omitControls(\n controls: Array<any>,\n omitItems: Array<string>\n): Array<any> {\n return controls.filter(\n control => !~omitItems.indexOf(control.name || control._name)\n );\n}\n\nexport function isEmpty(thing: any) {\n if (isObject(thing) && Object.keys(thing).length) {\n return false;\n }\n\n return true;\n}\n\n/**\n * 基于时间戳的 uuid\n *\n * @returns uniqueId\n */\nexport const uuid = () => {\n return (+new Date()).toString(36);\n};\n\n// 参考 https://github.com/streamich/v4-uuid\nconst str = () =>\n (\n '00000000000000000' + (Math.random() * 0xffffffffffffffff).toString(16)\n ).slice(-16);\n\nexport const uuidv4 = () => {\n const a = str();\n const b = str();\n return (\n a.slice(0, 8) +\n '-' +\n a.slice(8, 12) +\n '-4' +\n a.slice(13) +\n '-a' +\n b.slice(1, 4) +\n '-' +\n b.slice(4)\n );\n};\n\nexport interface TreeItem {\n children?: TreeArray;\n [propName: string]: any;\n}\nexport interface TreeArray extends Array<TreeItem> {}\n\n/**\n * 类似于 arr.map 方法,此方法主要针对类似下面示例的树形结构。\n * [\n * {\n * children: []\n * },\n * // 其他成员\n * ]\n *\n * @param {Tree} tree 树形数据\n * @param {Function} iterator 处理函数,返回的数据会被替换成新的。\n * @return {Tree} 返回处理过的 tree\n */\nexport function mapTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => T,\n level: number = 1,\n depthFirst: boolean = false,\n paths: Array<T> = []\n) {\n return tree.map((item: any, index) => {\n if (depthFirst) {\n let children: TreeArray | undefined = item.children\n ? mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n )\n : undefined;\n children && (item = {...item, children: children});\n item = iterator(item, index, level, paths) || {...(item as object)};\n return item;\n }\n\n item = iterator(item, index, level, paths) || {...(item as object)};\n\n if (item.children && item.children.splice) {\n item.children = mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n );\n }\n\n return item;\n });\n}\n\n/**\n * 遍历树\n * @param tree\n * @param iterator\n */\nexport function eachTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1\n) {\n tree.map((item, index) => {\n iterator(item, index, level);\n\n if (item.children && item.children.splice) {\n eachTree(item.children, iterator, level + 1);\n }\n });\n}\n\n/**\n * 在树中查找节点。\n * @param tree\n * @param iterator\n */\nexport function findTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): T | null {\n let result: T | null = null;\n\n everyTree(tree, (item, key, level, paths) => {\n if (iterator(item, key, level, paths)) {\n result = item;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 在树中查找节点, 返回下标数组。\n * @param tree\n * @param iterator\n */\nexport function findTreeIndex<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): Array<number> | undefined {\n let idx: Array<number> = [];\n\n findTree(tree, (item, index, level, paths) => {\n if (iterator(item, index, level, paths)) {\n idx = [index];\n\n paths = paths.concat();\n paths.unshift({\n children: tree\n } as any);\n\n for (let i = paths.length - 1; i > 0; i--) {\n const prev = paths[i - 1];\n const current = paths[i];\n idx.unshift(prev.children!.indexOf(current));\n }\n\n return true;\n }\n return false;\n });\n\n return idx.length ? idx : undefined;\n}\n\nexport function getTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number\n): T | undefined | null {\n const indexes = Array.isArray(idx) ? idx.concat() : [idx];\n const lastIndex = indexes.pop()!;\n let list: Array<T> | null = tree;\n for (let i = 0, len = indexes.length; i < len; i++) {\n const index = indexes[i];\n if (!list![index]) {\n list = null;\n break;\n }\n list = list![index].children as any;\n }\n return list ? list[lastIndex] : undefined;\n}\n\n/**\n * 过滤树节点\n *\n * @param tree\n * @param iterator\n */\nexport function filterTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1,\n depthFirst: boolean = false\n) {\n if (depthFirst) {\n return tree\n .map(item => {\n let children: TreeArray | undefined = item.children\n ? filterTree(item.children, iterator, level + 1, depthFirst)\n : undefined;\n\n if (Array.isArray(children) && Array.isArray(item.children)) {\n item = {...item, children: children};\n }\n\n return item;\n })\n .filter((item, index) => iterator(item, index, level));\n }\n\n return tree\n .filter((item, index) => iterator(item, index, level))\n .map(item => {\n if (item.children && item.children.splice) {\n let children = filterTree(\n item.children,\n iterator,\n level + 1,\n depthFirst\n );\n\n if (Array.isArray(children) && Array.isArray(item.children)) {\n item = {...item, children: children};\n }\n }\n return item;\n });\n}\n\n/**\n * 判断树中每个节点是否满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function everyTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (\n item: T,\n key: number,\n level: number,\n paths: Array<T>,\n indexes: Array<number>\n ) => boolean,\n level: number = 1,\n paths: Array<T> = [],\n indexes: Array<number> = []\n): boolean {\n return tree.every((item, index) => {\n const value: any = iterator(item, index, level, paths, indexes);\n\n if (value && item.children && item.children.splice) {\n return everyTree(\n item.children,\n iterator,\n level + 1,\n paths.concat(item),\n indexes.concat(index)\n );\n }\n\n return value;\n });\n}\n\n/**\n * 判断树中是否有某些节点满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function someTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => boolean\n): boolean {\n let result = false;\n\n everyTree(tree, (item: T, key: number, level: number, paths: Array<T>) => {\n if (iterator(item, key, level, paths)) {\n result = true;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 将树打平变成一维数组,可以传入第二个参数实现打平节点中的其他属性。\n *\n * 比如:\n *\n * flattenTree([\n * {\n * id: 1,\n * children: [\n * { id: 2 },\n * { id: 3 },\n * ]\n * }\n * ], item => item.id); // 输出位 [1, 2, 3]\n *\n * @param tree\n * @param mapper\n */\nexport function flattenTree<T extends TreeItem>(tree: Array<T>): Array<T>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper: (value: T, index: number) => U\n): Array<U>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper?: (value: T, index: number) => U\n): Array<U> {\n let flattened: Array<any> = [];\n eachTree(tree, (item, index) =>\n flattened.push(mapper ? mapper(item, index) : item)\n );\n return flattened;\n}\n\n/**\n * 操作树,遵循 imutable, 每次返回一个新的树。\n * 类似数组的 splice 不同的地方这个方法不修改原始数据,\n * 同时第二个参数不是下标,而是下标数组,分别代表每一层的下标。\n *\n * 至于如何获取下标数组,请查看 findTreeIndex\n *\n * @param tree\n * @param idx\n * @param deleteCount\n * @param ...items\n */\nexport function spliceTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number,\n deleteCount: number = 0,\n ...items: Array<T>\n): Array<T> {\n const list = tree.concat();\n if (typeof idx === 'number') {\n list.splice(idx, deleteCount, ...items);\n } else if (Array.isArray(idx) && idx.length) {\n idx = idx.concat();\n const lastIdx = idx.pop()!;\n let host = idx.reduce((list: Array<T>, idx) => {\n const child = {\n ...list[idx],\n children: list[idx].children ? list[idx].children!.concat() : []\n };\n list[idx] = child;\n return child.children;\n }, list);\n host.splice(lastIdx, deleteCount, ...items);\n }\n\n return list;\n}\n\n/**\n * 计算树的深度\n * @param tree\n */\nexport function getTreeDepth<T extends TreeItem>(tree: Array<T>): number {\n return Math.max(\n ...tree.map(item => {\n if (Array.isArray(item.children)) {\n return 1 + getTreeDepth(item.children);\n }\n\n return 1;\n })\n );\n}\n\n/**\n * 从树中获取某个值的所有祖先\n * @param tree\n * @param value\n */\nexport function getTreeAncestors<T extends TreeItem>(\n tree: Array<T>,\n value: T,\n includeSelf = false\n): Array<T> | null {\n let ancestors: Array<T> | null = null;\n\n findTree(tree, (item, index, level, paths) => {\n if (item === value) {\n ancestors = paths;\n if (includeSelf) {\n ancestors.push(item);\n }\n return true;\n }\n return false;\n });\n\n return ancestors;\n}\n\n/**\n * 从树中获取某个值的上级\n * @param tree\n * @param value\n */\nexport function getTreeParent<T extends TreeItem>(tree: Array<T>, value: T) {\n const ancestors = getTreeAncestors(tree, value);\n return ancestors?.length ? ancestors[ancestors.length - 1] : null;\n}\n\nexport function ucFirst(str?: string) {\n return typeof str === 'string'\n ? str.substring(0, 1).toUpperCase() + str.substring(1)\n : str;\n}\n\nexport function lcFirst(str?: string) {\n return str ? str.substring(0, 1).toLowerCase() + str.substring(1) : '';\n}\n\nexport function camel(str?: string) {\n return str\n ? str\n .split(/[\\s_\\-]/)\n .map((item, index) => (index === 0 ? lcFirst(item) : ucFirst(item)))\n .join('')\n : '';\n}\n\nexport function getWidthRate(value: any, strictMode = false): number {\n if (typeof value === 'string' && /\\bcol\\-\\w+\\-(\\d+)\\b/.test(value)) {\n return parseInt(RegExp.$1, 10);\n }\n\n return strictMode ? 0 : value || 0;\n}\n\nexport function getLevelFromClassName(\n value: string,\n defaultValue: string = 'default'\n) {\n if (\n /\\b(?:btn|text)-(link|primary|secondary|info|success|warning|danger|light|dark)\\b/.test(\n value\n )\n ) {\n return RegExp.$1;\n }\n\n return defaultValue;\n}\n\nexport function pickEventsProps(props: any) {\n const ret: any = {};\n props &&\n Object.keys(props).forEach(\n key => /^on/.test(key) && (ret[key] = props[key])\n );\n return ret;\n}\n\nexport const autobind = autobindMethod;\n\nexport const bulkBindFunctions = function <\n T extends {\n [propName: string]: any;\n }\n>(context: T, funNames: Array<FunctionPropertyNames<T>>) {\n funNames.forEach(key => (context[key] = context[key].bind(context)));\n};\n\nexport function sortArray<T extends any>(\n items: Array<T>,\n field: string,\n dir: -1 | 1\n): Array<T> {\n return items.sort((a: any, b: any) => {\n let ret: number;\n const a1 = a[field];\n const b1 = b[field];\n\n if (typeof a1 === 'number' && typeof b1 === 'number') {\n ret = a1 < b1 ? -1 : a1 === b1 ? 0 : 1;\n } else {\n ret = String(a1).localeCompare(String(b1));\n }\n\n return ret * dir;\n });\n}\n\n// 只判断一层, 如果层级很深,form-data 也不好表达。\nexport function hasFile(object: any): boolean {\n return Object.keys(object).some(key => {\n let value = object[key];\n\n return (\n value instanceof File ||\n (Array.isArray(value) && value.length && value[0] instanceof File)\n );\n });\n}\n\nexport function qsstringify(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n keepEmptyArray?: boolean\n) {\n // qs会保留空字符串。fix: Combo模式的空数组,无法清空。改为存为空字符串;只转换一层\n keepEmptyArray &&\n Object.keys(data).forEach((key: any) => {\n Array.isArray(data[key]) && !data[key].length && (data[key] = '');\n });\n return qs.stringify(data, options);\n}\n\nexport function qsparse(\n data: string,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true,\n depth: 1000 // 默认是 5, 所以condition-builder只要来个条件组就会导致报错\n }\n) {\n return qs.parse(data, options);\n}\n\nexport function object2formData(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n fd: FormData = new FormData()\n): any {\n let fileObjects: any = [];\n let others: any = {};\n\n Object.keys(data).forEach(key => {\n const value = data[key];\n\n if (value instanceof File) {\n fileObjects.push([key, value]);\n } else if (\n Array.isArray(value) &&\n value.length &&\n value[0] instanceof File\n ) {\n value.forEach(value => fileObjects.push([`${key}[]`, value]));\n } else {\n others[key] = value;\n }\n });\n\n // 因为 key 的格式太多了,偷个懒,用 qs 来处理吧。\n qsstringify(others, options)\n .split('&')\n .forEach(item => {\n let parts = item.split('=');\n // form-data/multipart 是不需要 encode 值的。\n parts[0] && fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fileObjects.forEach((fileObject: any[]) =>\n fd.append(fileObject[0], fileObject[1], fileObject[1].name)\n );\n\n return fd;\n}\n\nexport function chainFunctions(\n ...fns: Array<(...args: Array<any>) => void>\n): (...args: Array<any>) => void {\n return (...args: Array<any>) =>\n fns.reduce(\n (ret: any, fn: any) =>\n ret === false\n ? false\n : typeof fn == 'function'\n ? fn(...args)\n : undefined,\n undefined\n );\n}\n\nexport function chainEvents(props: any, schema: any) {\n const ret: any = {};\n\n Object.keys(props).forEach(key => {\n if (\n key.substr(0, 2) === 'on' &&\n typeof props[key] === 'function' &&\n typeof schema[key] === 'function' &&\n schema[key] !== props[key]\n ) {\n // 表单项里面的 onChange 很特殊,这个不要处理。\n if (props.formStore && key === 'onChange') {\n ret[key] = props[key];\n } else {\n ret[key] = chainFunctions(schema[key], props[key]);\n }\n } else {\n ret[key] = props[key];\n }\n });\n\n return ret;\n}\n\nexport function mapObject(value: any, fn: Function): any {\n if (Array.isArray(value)) {\n return value.map(item => mapObject(item, fn));\n }\n if (isObject(value)) {\n let tmpValue = {...value};\n Object.keys(tmpValue).forEach(key => {\n (tmpValue as PlainObject)[key] = mapObject(\n (tmpValue as PlainObject)[key],\n fn\n );\n });\n return tmpValue;\n }\n return fn(value);\n}\n\nexport function loadScript(src: string) {\n return new Promise<void>((ok, fail) => {\n const script = document.createElement('script');\n script.onerror = reason => fail(reason);\n\n if (~src.indexOf('{{callback}}')) {\n const callbackFn = `loadscriptcallback_${uuid()}`;\n (window as any)[callbackFn] = () => {\n ok();\n delete (window as any)[callbackFn];\n };\n src = src.replace('{{callback}}', callbackFn);\n } else {\n script.onload = () => ok();\n }\n\n script.src = src;\n document.head.appendChild(script);\n });\n}\n\nexport class SkipOperation extends Error {}\n\n/**\n * 检查对象是否有循环引用,来自 https://stackoverflow.com/a/34909127\n * @param obj\n */\nfunction isCyclic(obj: any): boolean {\n const seenObjects: any = [];\n function detect(obj: any) {\n if (obj && typeof obj === 'object') {\n if (seenObjects.indexOf(obj) !== -1) {\n return true;\n }\n seenObjects.push(obj);\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && detect(obj[key])) {\n return true;\n }\n }\n }\n return false;\n }\n return detect(obj);\n}\n\nfunction internalFindObjectsWithKey(obj: any, key: string) {\n let objects: any[] = [];\n for (const k in obj) {\n if (!obj.hasOwnProperty(k)) continue;\n if (k === key) {\n objects.push(obj);\n } else if (typeof obj[k] === 'object') {\n objects = objects.concat(internalFindObjectsWithKey(obj[k], key));\n }\n }\n return objects;\n}\n\n/**\n * 深度查找具有某个 key 名字段的对象,实际实现是 internalFindObjectsWithKey,这里包一层是为了做循环引用检测\n * @param obj\n * @param key\n */\nexport function findObjectsWithKey(obj: any, key: string) {\n // 避免循环引用导致死循环\n if (isCyclic(obj)) {\n return [];\n }\n return internalFindObjectsWithKey(obj, key);\n}\n\nlet scrollbarWidth: number;\n\n/**\n * 获取浏览器滚动条宽度 https://stackoverflow.com/a/13382873\n */\n\nexport function getScrollbarWidth() {\n if (typeof scrollbarWidth !== 'undefined') {\n return scrollbarWidth;\n }\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n // @ts-ignore\n outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n scrollbarWidth = outer.offsetWidth - inner.offsetWidth;\n\n // Removing temporary elements from the DOM\n // @ts-ignore\n outer.parentNode.removeChild(outer);\n\n return scrollbarWidth;\n}\n\nfunction resolveValueByName(data: any, name?: string) {\n return isPureVariable(name)\n ? resolveVariableAndFilter(name, data)\n : resolveVariable(name, data);\n}\n\n// 统一的获取 value 值方法\nexport function getPropValue<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(props: T, getter?: (props: T) => any) {\n const {name, value, data, defaultValue} = props;\n return (\n value ?? getter?.(props) ?? resolveValueByName(data, name) ?? defaultValue\n );\n}\n\n// 检测 value 是否有变化,有变化就执行 onChange\nexport function detectPropValueChanged<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(\n props: T,\n prevProps: T,\n onChange: (value: any) => void,\n getter?: (props: T) => any\n) {\n let nextValue: any;\n if (typeof props.value !== 'undefined') {\n props.value !== prevProps.value && onChange(props.value);\n } else if ((nextValue = getter?.(props)) !== undefined) {\n nextValue !== getter!(prevProps) && onChange(nextValue);\n } else if (\n typeof props.name === 'string' &&\n (nextValue = resolveValueByName(props.data, props.name)) !== undefined\n ) {\n nextValue !== resolveValueByName(prevProps.data, prevProps.name) &&\n onChange(nextValue);\n } else if (props.defaultValue !== prevProps.defaultValue) {\n onChange(props.defaultValue);\n }\n}\n\n// 去掉字符串中的 html 标签,不完全准确但效率比较高\nexport function removeHTMLTag(str: string) {\n return typeof str === 'string' ? str.replace(/<\\/?[^>]+(>|$)/g, '') : str;\n}\n\n/**\n * 将路径格式的value转换成普通格式的value值\n *\n * @example\n *\n * 'a/b/c' => 'c';\n * {label: 'A/B/C', value: 'a/b/c'} => {label: 'C', value: 'c'};\n * 'a/b/c,a/d' => 'c,d';\n * ['a/b/c', 'a/d'] => ['c', 'd'];\n * [{label: 'A/B/C', value: 'a/b/c'},{label: 'A/D', value: 'a/d'}] => [{label: 'C', value: 'c'},{label: 'D', value: 'd'}]\n */\nexport function normalizeNodePath(\n value: any,\n enableNodePath: boolean,\n labelField: string = 'label',\n valueField: string = 'value',\n pathSeparator: string = '/',\n delimiter: string = ','\n) {\n const nodeValueArray: any[] = [];\n const nodePathArray: any[] = [];\n const getLastNodeFromPath = (path: any) =>\n last(path ? path.toString().split(pathSeparator) : []);\n\n if (typeof value === 'undefined' || !enableNodePath) {\n return {nodeValueArray, nodePathArray};\n }\n\n // 尾节点为当前options中value值\n if (Array.isArray(value)) {\n value.forEach(nodePath => {\n if (nodePath && nodePath.hasOwnProperty(valueField)) {\n nodeValueArray.push({\n ...nodePath,\n [labelField]: getLastNodeFromPath(nodePath[labelField]),\n [valueField]: getLastNodeFromPath(nodePath[valueField])\n });\n nodePathArray.push(nodePath[valueField]);\n } else {\n nodeValueArray.push(getLastNodeFromPath(nodePath));\n nodePathArray.push(nodePath);\n }\n });\n } else if (typeof value === 'string') {\n value\n .toString()\n .split(delimiter)\n .forEach(path => {\n nodeValueArray.push(getLastNodeFromPath(path));\n nodePathArray.push(path);\n });\n } else {\n nodeValueArray.push({\n ...value,\n [labelField]: getLastNodeFromPath(value[labelField]),\n [valueField || 'value']: getLastNodeFromPath(value[valueField])\n });\n nodePathArray.push(value[valueField]);\n }\n\n return {nodeValueArray, nodePathArray};\n}\n\n// 主要用于排除点击输入框和链接等情况\nexport function isClickOnInput(e: React.MouseEvent<HTMLElement>) {\n const target: HTMLElement = e.target as HTMLElement;\n let formItem;\n if (\n !e.currentTarget.contains(target) ||\n ~['INPUT', 'TEXTAREA'].indexOf(target.tagName) ||\n ((formItem = target.closest(`button, a, [data-role=\"form-item\"]`)) &&\n e.currentTarget.contains(formItem))\n ) {\n return true;\n }\n return false;\n}\n\n// 计算字符串 hash\nexport function hashCode(s: string): number {\n return s.split('').reduce((a, b) => {\n a = (a << 5) - a + b.charCodeAt(0);\n return a & a;\n }, 0);\n}\n\n/**\n * 遍历 schema\n * @param json\n * @param mapper\n */\nexport function JSONTraverse(\n json: any,\n mapper: (value: any, key: string | number, host: Object) => any\n) {\n Object.keys(json).forEach(key => {\n const value: any = json[key];\n if (isPlainObject(value) || Array.isArray(value)) {\n JSONTraverse(value, mapper);\n } else {\n mapper(value, key, json);\n }\n });\n}\n\nexport function convertDateArrayToDate(\n value: number[],\n types: string[],\n date: moment.Moment\n): moment.Moment | null {\n if (value.length === 0) return date;\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n // @ts-ignore\n date[type](value[i]);\n }\n return date;\n}\n\nexport function convertDateToObject(value: moment.Moment) {\n if (value) {\n return {\n year: value.year(),\n month: parseInt(value.format('MM'), 10),\n day: parseInt(value.format('DD'), 10)\n };\n }\n return null;\n}\n\nexport function getRange(min: number, max: number, step: number = 1) {\n const arr = [];\n for (let i = min; i <= max; i += step) {\n arr.push(i);\n }\n return arr;\n}\n"
11
+ "import isPlainObject from 'lodash/isPlainObject';\nimport isEqual from 'lodash/isEqual';\nimport isNaN from 'lodash/isNaN';\nimport uniq from 'lodash/uniq';\nimport last from 'lodash/last';\nimport {Schema, PlainObject, FunctionPropertyNames} from '../types';\nimport {evalExpression} from './tpl';\nimport qs from 'qs';\nimport {IIRendererStore} from '../store';\nimport {IFormStore} from '../store/form';\nimport {autobindMethod} from './autobind';\nimport {\n createObject,\n cloneObject,\n isObject,\n string2regExp,\n getVariable,\n setVariable,\n deleteVariable,\n keyToPath,\n isPureVariable,\n resolveVariable,\n resolveVariableAndFilter\n} from 'amis-formula';\nimport {isObservable} from 'mobx';\n\nexport {\n createObject,\n cloneObject,\n isObject,\n string2regExp,\n getVariable,\n setVariable,\n deleteVariable,\n keyToPath\n};\n\nexport function preventDefault(event: TouchEvent | Event): void {\n if (typeof event.cancelable !== 'boolean' || event.cancelable) {\n event.preventDefault();\n }\n}\n\nexport function isMobile() {\n return (window as any).matchMedia?.('(max-width: 768px)').matches;\n}\n\nexport function range(num: number, min: number, max: number): number {\n return Math.min(Math.max(num, min), max);\n}\n\n/**\n * 给目标对象添加其他属性,可读取但是不会被遍历。\n * @param target\n * @param props\n */\nexport function injectPropsToObject(target: any, props: any) {\n const sup = Object.create(target.__super || null);\n Object.keys(props).forEach(key => (sup[key] = props[key]));\n const result = Object.create(sup);\n Object.keys(target).forEach(key => (result[key] = target[key]));\n return result;\n}\n\nexport function extendObject(\n target: any,\n src?: any,\n persistOwnProps: boolean = true\n) {\n const obj = cloneObject(target, persistOwnProps);\n src && Object.keys(src).forEach(key => (obj[key] = src[key]));\n return obj;\n}\n\nexport function isSuperDataModified(\n data: any,\n prevData: any,\n store: IIRendererStore\n) {\n let keys: Array<string> = [];\n\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(store.data))\n );\n } else {\n keys = Object.keys(store.data);\n }\n\n if (Array.isArray(keys) && keys.length) {\n return keys.some(key => data[key] !== prevData[key]);\n }\n\n return false;\n}\n\nexport function syncDataFromSuper(\n data: any,\n superObject: any,\n prevSuperObject: any,\n store: IIRendererStore,\n force: boolean\n) {\n const obj = {\n ...data\n };\n\n let keys: Array<string> = [];\n\n // 如果是 form store,则从父级同步 formItem 种东西。\n if (store && store.storeType === 'FormStore') {\n keys = uniq(\n (store as IFormStore).items\n .map(item => `${item.name}`.replace(/\\..*$/, ''))\n .concat(Object.keys(obj))\n );\n } else if (force) {\n keys = Object.keys(obj);\n }\n\n if (superObject || prevSuperObject) {\n keys.forEach(key => {\n if (!key) {\n return;\n }\n\n if (\n ((superObject && typeof superObject[key] !== 'undefined') ||\n (prevSuperObject && typeof prevSuperObject[key] !== 'undefined')) &&\n ((prevSuperObject && !superObject) ||\n (!prevSuperObject && superObject) ||\n prevSuperObject[key] !== superObject[key])\n ) {\n obj[key] = superObject[key];\n }\n });\n }\n\n return obj;\n}\n\n/**\n * 生成 8 位随机数字。\n *\n * @return {string} 8位随机数字\n */\nexport function guid() {\n function s4() {\n return Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n }\n return s4() + s4() + s4();\n}\n\nexport function findIndex(\n arr: Array<any>,\n detect: (item?: any, index?: number) => boolean\n) {\n for (let i = 0, len = arr.length; i < len; i++) {\n if (detect(arr[i], i)) {\n return i;\n }\n }\n\n return -1;\n}\n\nexport function hasOwnProperty(\n data: {[propName: string]: any},\n key: string\n): boolean {\n const parts = keyToPath(key);\n\n while (parts.length) {\n let key = parts.shift() as string;\n if (!isObject(data) || !data.hasOwnProperty(key)) {\n return false;\n }\n\n data = data[key];\n }\n\n return true;\n}\n\nexport function noop() {}\n\nexport function anyChanged(\n attrs: string | Array<string>,\n from: {[propName: string]: any},\n to: {[propName: string]: any},\n strictMode: boolean = true\n): boolean {\n return (typeof attrs === 'string' ? attrs.split(/\\s*,\\s*/) : attrs).some(\n key => (strictMode ? from[key] !== to[key] : from[key] != to[key])\n );\n}\n\nexport function rmUndefined(obj: PlainObject) {\n const newObj: PlainObject = {};\n\n if (typeof obj !== 'object') {\n return obj;\n }\n\n const keys = Object.keys(obj);\n keys.forEach(key => {\n if (obj[key] !== undefined) {\n newObj[key] = obj[key];\n }\n });\n\n return newObj;\n}\n\nexport function isObjectShallowModified(\n prev: any,\n next: any,\n strictMode: boolean = true,\n ignoreUndefined: boolean = false,\n statck: Array<any> = []\n): boolean {\n if (Array.isArray(prev) && Array.isArray(next)) {\n return prev.length !== next.length\n ? true\n : prev.some((prev, index) =>\n isObjectShallowModified(\n prev,\n next[index],\n strictMode,\n ignoreUndefined,\n statck\n )\n );\n } else if (isNaN(prev) && isNaN(next)) {\n return false;\n } else if (\n null == prev ||\n null == next ||\n !isObject(prev) ||\n !isObject(next) ||\n isObservable(prev) ||\n isObservable(next)\n ) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (ignoreUndefined) {\n prev = rmUndefined(prev);\n next = rmUndefined(next);\n }\n\n const keys = Object.keys(prev);\n const nextKeys = Object.keys(next);\n if (\n keys.length !== nextKeys.length ||\n keys.sort().join(',') !== nextKeys.sort().join(',')\n ) {\n return true;\n }\n\n // 避免循环引用死循环。\n if (~statck.indexOf(prev)) {\n return false;\n }\n statck.push(prev);\n\n for (let i: number = keys.length - 1; i >= 0; i--) {\n let key = keys[i];\n if (\n isObjectShallowModified(\n prev[key],\n next[key],\n strictMode,\n ignoreUndefined,\n statck\n )\n ) {\n return true;\n }\n }\n return false;\n}\n\nexport function isArrayChildrenModified(\n prev: Array<any>,\n next: Array<any>,\n strictMode: boolean = true\n) {\n if (!Array.isArray(prev) || !Array.isArray(next)) {\n return strictMode ? prev !== next : prev != next;\n }\n\n if (prev.length !== next.length) {\n return true;\n }\n\n for (let i: number = prev.length - 1; i >= 0; i--) {\n if (strictMode ? prev[i] !== next[i] : prev[i] != next[i]) {\n return true;\n }\n }\n\n return false;\n}\n\nexport function immutableExtends(to: any, from: any, deep = false) {\n // 不是对象,不可以merge\n if (!isObject(to) || !isObject(from)) {\n return to;\n }\n\n let ret = to;\n\n Object.keys(from).forEach(key => {\n const origin = to[key];\n const value = from[key];\n\n // todo 支持深度merge\n if (origin !== value) {\n // 一旦有修改,就创建个新对象。\n ret = ret !== to ? ret : {...to};\n ret[key] = value;\n }\n });\n\n return ret;\n}\n\n// 即将抛弃\nexport function makeColumnClassBuild(\n steps: number,\n classNameTpl: string = 'col-sm-$value'\n) {\n let count = 12;\n let step = Math.floor(count / steps);\n\n return function (schema: Schema) {\n if (\n schema.columnClassName &&\n /\\bcol-(?:xs|sm|md|lg)-(\\d+)\\b/.test(schema.columnClassName)\n ) {\n const flex = parseInt(RegExp.$1, 10);\n count -= flex;\n steps--;\n step = Math.floor(count / steps);\n return schema.columnClassName;\n } else if (schema.columnClassName) {\n count -= step;\n steps--;\n return schema.columnClassName;\n }\n\n count -= step;\n steps--;\n return classNameTpl.replace('$value', '' + step);\n };\n}\n\nexport function hasVisibleExpression(schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n}) {\n return schema?.visibleOn || schema?.hiddenOn;\n}\n\nexport function isVisible(\n schema: {\n visibleOn?: string;\n hiddenOn?: string;\n visible?: boolean;\n hidden?: boolean;\n },\n data?: object\n) {\n return !(\n schema.hidden ||\n schema.visible === false ||\n (schema.hiddenOn && evalExpression(schema.hiddenOn, data) === true) ||\n (schema.visibleOn && evalExpression(schema.visibleOn, data) === false)\n );\n}\n\nexport function isUnfolded(\n node: any,\n config: {\n foldedField?: string;\n unfoldedField?: string;\n }\n): boolean {\n let {foldedField, unfoldedField} = config;\n\n unfoldedField = unfoldedField || 'unfolded';\n foldedField = foldedField || 'folded';\n\n let ret: boolean = false;\n if (unfoldedField && typeof node[unfoldedField] !== 'undefined') {\n ret = !!node[unfoldedField];\n } else if (foldedField && typeof node[foldedField] !== 'undefined') {\n ret = !node[foldedField];\n }\n\n return ret;\n}\n\n/**\n * 过滤掉被隐藏的数组元素\n */\nexport function visibilityFilter(items: any, data?: object) {\n return items.filter((item: any) => {\n return isVisible(item, data);\n });\n}\n\nexport function isDisabled(\n schema: {\n disabledOn?: string;\n disabled?: boolean;\n },\n data?: object\n) {\n return (\n schema.disabled ||\n (schema.disabledOn && evalExpression(schema.disabledOn, data))\n );\n}\n\nexport function hasAbility(\n schema: any,\n ability: string,\n data?: object,\n defaultValue: boolean = true\n): boolean {\n return schema.hasOwnProperty(ability)\n ? schema[ability]\n : schema.hasOwnProperty(`${ability}On`)\n ? evalExpression(schema[`${ability}On`], data || schema)\n : defaultValue;\n}\n\nexport function makeHorizontalDeeper(\n horizontal: {\n left: string;\n right: string;\n offset: string;\n leftFixed?: any;\n },\n count: number\n): {\n left: string | number;\n right: string | number;\n offset: string | number;\n leftFixed?: any;\n} {\n if (count > 1 && /\\bcol-(xs|sm|md|lg)-(\\d+)\\b/.test(horizontal.left)) {\n const flex = parseInt(RegExp.$2, 10) * count;\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n } else if (count > 1 && typeof horizontal.left === 'number') {\n const flex = horizontal.left * count;\n\n return {\n leftFixed: horizontal.leftFixed,\n left: flex,\n right: 12 - flex,\n offset: flex\n };\n }\n\n return horizontal;\n}\n\nexport function promisify<T extends Function>(\n fn: T\n): (...args: Array<any>) => Promise<any> & {\n raw: T;\n} {\n let promisified = function () {\n try {\n const ret = fn.apply(null, arguments);\n if (ret && ret.then) {\n return ret;\n } else if (typeof ret === 'function') {\n // thunk support\n return new Promise((resolve, reject) =>\n ret((error: boolean, value: any) =>\n error ? reject(error) : resolve(value)\n )\n );\n }\n return Promise.resolve(ret);\n } catch (e) {\n return Promise.reject(e);\n }\n };\n (promisified as any).raw = fn;\n return promisified;\n}\n\nexport function getScrollParent(node: HTMLElement): HTMLElement | null {\n if (node == null) {\n return null;\n }\n\n const style = getComputedStyle(node);\n\n if (!style) {\n return null;\n }\n\n const text =\n style.getPropertyValue('overflow') +\n style.getPropertyValue('overflow-x') +\n style.getPropertyValue('overflow-y');\n\n if (/auto|scroll/.test(text) || node.nodeName === 'BODY') {\n return node;\n }\n\n return getScrollParent(node.parentNode as HTMLElement);\n}\n\n/**\n * Deep diff between two object, using lodash\n * @param {Object} object Object compared\n * @param {Object} base Object to compare with\n * @return {Object} Return a new object who represent the diff\n */\nexport function difference<\n T extends {[propName: string]: any},\n U extends {[propName: string]: any}\n>(object: T, base: U, keepProps?: Array<string>): {[propName: string]: any} {\n function changes(object: T, base: U) {\n if (isObject(object) && isObject(base)) {\n const keys: Array<keyof T & keyof U> = uniq(\n Object.keys(object).concat(Object.keys(base))\n );\n let result: any = {};\n\n keys.forEach(key => {\n const a: any = object[key as keyof T];\n const b: any = base[key as keyof U];\n\n if (keepProps && ~keepProps.indexOf(key as string)) {\n result[key] = a;\n }\n\n if (isEqual(a, b)) {\n return;\n }\n\n if (!object.hasOwnProperty(key)) {\n result[key] = undefined;\n } else if (Array.isArray(a) && Array.isArray(b)) {\n result[key] = a;\n } else {\n result[key] = changes(a as any, b as any);\n }\n });\n\n return result;\n } else {\n return object;\n }\n }\n return changes(object, base);\n}\n\nexport const padArr = (arr: Array<any>, size = 4): Array<Array<any>> => {\n const ret: Array<Array<any>> = [];\n const pool: Array<any> = arr.concat();\n let from = 0;\n\n while (pool.length) {\n let host: Array<any> = ret[from] || (ret[from] = []);\n\n if (host.length >= size) {\n from += 1;\n continue;\n }\n\n host.push(pool.shift());\n }\n\n return ret;\n};\n\nexport function __uri(id: string) {\n return id;\n}\n\n// xs < 768px\n// sm >= 768px\n// md >= 992px\n// lg >= 1200px\nexport function isBreakpoint(str: string): boolean {\n if (typeof str !== 'string') {\n return !!str;\n }\n\n const breaks = str.split(/\\s*,\\s*|\\s+/);\n\n if ((window as any).matchMedia) {\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' &&\n matchMedia(`screen and (max-width: 767px)`).matches) ||\n (item === 'sm' &&\n matchMedia(`screen and (min-width: 768px) and (max-width: 991px)`)\n .matches) ||\n (item === 'md' &&\n matchMedia(`screen and (min-width: 992px) and (max-width: 1199px)`)\n .matches) ||\n (item === 'lg' && matchMedia(`screen and (min-width: 1200px)`).matches)\n );\n } else {\n const width = window.innerWidth;\n return breaks.some(\n item =>\n item === '*' ||\n (item === 'xs' && width < 768) ||\n (item === 'sm' && width >= 768 && width < 992) ||\n (item === 'md' && width >= 992 && width < 1200) ||\n (item === 'lg' && width >= 1200)\n );\n }\n}\n\nexport function until(\n fn: () => Promise<any>,\n when: (ret: any) => boolean,\n getCanceler: (fn: () => any) => void,\n interval: number = 5000\n) {\n let timer: ReturnType<typeof setTimeout>;\n let stoped: boolean = false;\n\n return new Promise((resolve, reject) => {\n let cancel = () => {\n clearTimeout(timer);\n stoped = true;\n };\n\n let check = async () => {\n try {\n const ret = await fn();\n\n if (stoped) {\n return;\n } else if (when(ret)) {\n stoped = true;\n resolve(ret);\n } else {\n timer = setTimeout(check, interval);\n }\n } catch (e) {\n reject(e);\n }\n };\n\n check();\n getCanceler && getCanceler(cancel);\n });\n}\n\nexport function omitControls(\n controls: Array<any>,\n omitItems: Array<string>\n): Array<any> {\n return controls.filter(\n control => !~omitItems.indexOf(control.name || control._name)\n );\n}\n\nexport function isEmpty(thing: any) {\n if (isObject(thing) && Object.keys(thing).length) {\n return false;\n }\n\n return true;\n}\n\n/**\n * 基于时间戳的 uuid\n *\n * @returns uniqueId\n */\nexport const uuid = () => {\n return (+new Date()).toString(36);\n};\n\n// 参考 https://github.com/streamich/v4-uuid\nconst str = () =>\n (\n '00000000000000000' + (Math.random() * 0xffffffffffffffff).toString(16)\n ).slice(-16);\n\nexport const uuidv4 = () => {\n const a = str();\n const b = str();\n return (\n a.slice(0, 8) +\n '-' +\n a.slice(8, 12) +\n '-4' +\n a.slice(13) +\n '-a' +\n b.slice(1, 4) +\n '-' +\n b.slice(4)\n );\n};\n\nexport interface TreeItem {\n children?: TreeArray;\n [propName: string]: any;\n}\nexport interface TreeArray extends Array<TreeItem> {}\n\n/**\n * 类似于 arr.map 方法,此方法主要针对类似下面示例的树形结构。\n * [\n * {\n * children: []\n * },\n * // 其他成员\n * ]\n *\n * @param {Tree} tree 树形数据\n * @param {Function} iterator 处理函数,返回的数据会被替换成新的。\n * @return {Tree} 返回处理过的 tree\n */\nexport function mapTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => T,\n level: number = 1,\n depthFirst: boolean = false,\n paths: Array<T> = []\n) {\n return tree.map((item: any, index) => {\n if (depthFirst) {\n let children: TreeArray | undefined = item.children\n ? mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n )\n : undefined;\n children && (item = {...item, children: children});\n item = iterator(item, index, level, paths) || {...(item as object)};\n return item;\n }\n\n item = iterator(item, index, level, paths) || {...(item as object)};\n\n if (item.children && item.children.splice) {\n item.children = mapTree(\n item.children,\n iterator,\n level + 1,\n depthFirst,\n paths.concat(item)\n );\n }\n\n return item;\n });\n}\n\n/**\n * 遍历树\n * @param tree\n * @param iterator\n */\nexport function eachTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1\n) {\n tree.map((item, index) => {\n iterator(item, index, level);\n\n if (item.children && item.children.splice) {\n eachTree(item.children, iterator, level + 1);\n }\n });\n}\n\n/**\n * 在树中查找节点。\n * @param tree\n * @param iterator\n */\nexport function findTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): T | null {\n let result: T | null = null;\n\n everyTree(tree, (item, key, level, paths) => {\n if (iterator(item, key, level, paths)) {\n result = item;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 在树中查找节点, 返回下标数组。\n * @param tree\n * @param iterator\n */\nexport function findTreeIndex<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => any\n): Array<number> | undefined {\n let idx: Array<number> = [];\n\n findTree(tree, (item, index, level, paths) => {\n if (iterator(item, index, level, paths)) {\n idx = [index];\n\n paths = paths.concat();\n paths.unshift({\n children: tree\n } as any);\n\n for (let i = paths.length - 1; i > 0; i--) {\n const prev = paths[i - 1];\n const current = paths[i];\n idx.unshift(prev.children!.indexOf(current));\n }\n\n return true;\n }\n return false;\n });\n\n return idx.length ? idx : undefined;\n}\n\nexport function getTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number\n): T | undefined | null {\n const indexes = Array.isArray(idx) ? idx.concat() : [idx];\n const lastIndex = indexes.pop()!;\n let list: Array<T> | null = tree;\n for (let i = 0, len = indexes.length; i < len; i++) {\n const index = indexes[i];\n if (!list![index]) {\n list = null;\n break;\n }\n list = list![index].children as any;\n }\n return list ? list[lastIndex] : undefined;\n}\n\n/**\n * 过滤树节点\n *\n * @param tree\n * @param iterator\n */\nexport function filterTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number) => any,\n level: number = 1,\n depthFirst: boolean = false\n) {\n if (depthFirst) {\n return tree\n .map(item => {\n let children: TreeArray | undefined = item.children\n ? filterTree(item.children, iterator, level + 1, depthFirst)\n : undefined;\n\n if (Array.isArray(children) && Array.isArray(item.children)) {\n item = {...item, children: children};\n }\n\n return item;\n })\n .filter((item, index) => iterator(item, index, level));\n }\n\n return tree\n .filter((item, index) => iterator(item, index, level))\n .map(item => {\n if (item.children && item.children.splice) {\n let children = filterTree(\n item.children,\n iterator,\n level + 1,\n depthFirst\n );\n\n if (Array.isArray(children) && Array.isArray(item.children)) {\n item = {...item, children: children};\n }\n }\n return item;\n });\n}\n\n/**\n * 判断树中每个节点是否满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function everyTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (\n item: T,\n key: number,\n level: number,\n paths: Array<T>,\n indexes: Array<number>\n ) => boolean,\n level: number = 1,\n paths: Array<T> = [],\n indexes: Array<number> = []\n): boolean {\n return tree.every((item, index) => {\n const value: any = iterator(item, index, level, paths, indexes);\n\n if (value && item.children && item.children.splice) {\n return everyTree(\n item.children,\n iterator,\n level + 1,\n paths.concat(item),\n indexes.concat(index)\n );\n }\n\n return value;\n });\n}\n\n/**\n * 判断树中是否有某些节点满足某个条件。\n * @param tree\n * @param iterator\n */\nexport function someTree<T extends TreeItem>(\n tree: Array<T>,\n iterator: (item: T, key: number, level: number, paths: Array<T>) => boolean\n): boolean {\n let result = false;\n\n everyTree(tree, (item: T, key: number, level: number, paths: Array<T>) => {\n if (iterator(item, key, level, paths)) {\n result = true;\n return false;\n }\n return true;\n });\n\n return result;\n}\n\n/**\n * 将树打平变成一维数组,可以传入第二个参数实现打平节点中的其他属性。\n *\n * 比如:\n *\n * flattenTree([\n * {\n * id: 1,\n * children: [\n * { id: 2 },\n * { id: 3 },\n * ]\n * }\n * ], item => item.id); // 输出位 [1, 2, 3]\n *\n * @param tree\n * @param mapper\n */\nexport function flattenTree<T extends TreeItem>(tree: Array<T>): Array<T>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper: (value: T, index: number) => U\n): Array<U>;\nexport function flattenTree<T extends TreeItem, U>(\n tree: Array<T>,\n mapper?: (value: T, index: number) => U\n): Array<U> {\n let flattened: Array<any> = [];\n eachTree(tree, (item, index) =>\n flattened.push(mapper ? mapper(item, index) : item)\n );\n return flattened;\n}\n\n/**\n * 操作树,遵循 imutable, 每次返回一个新的树。\n * 类似数组的 splice 不同的地方这个方法不修改原始数据,\n * 同时第二个参数不是下标,而是下标数组,分别代表每一层的下标。\n *\n * 至于如何获取下标数组,请查看 findTreeIndex\n *\n * @param tree\n * @param idx\n * @param deleteCount\n * @param ...items\n */\nexport function spliceTree<T extends TreeItem>(\n tree: Array<T>,\n idx: Array<number> | number,\n deleteCount: number = 0,\n ...items: Array<T>\n): Array<T> {\n const list = tree.concat();\n if (typeof idx === 'number') {\n list.splice(idx, deleteCount, ...items);\n } else if (Array.isArray(idx) && idx.length) {\n idx = idx.concat();\n const lastIdx = idx.pop()!;\n let host = idx.reduce((list: Array<T>, idx) => {\n const child = {\n ...list[idx],\n children: list[idx].children ? list[idx].children!.concat() : []\n };\n list[idx] = child;\n return child.children;\n }, list);\n host.splice(lastIdx, deleteCount, ...items);\n }\n\n return list;\n}\n\n/**\n * 计算树的深度\n * @param tree\n */\nexport function getTreeDepth<T extends TreeItem>(tree: Array<T>): number {\n return Math.max(\n ...tree.map(item => {\n if (Array.isArray(item.children)) {\n return 1 + getTreeDepth(item.children);\n }\n\n return 1;\n })\n );\n}\n\n/**\n * 从树中获取某个值的所有祖先\n * @param tree\n * @param value\n */\nexport function getTreeAncestors<T extends TreeItem>(\n tree: Array<T>,\n value: T,\n includeSelf = false\n): Array<T> | null {\n let ancestors: Array<T> | null = null;\n\n findTree(tree, (item, index, level, paths) => {\n if (item === value) {\n ancestors = paths;\n if (includeSelf) {\n ancestors.push(item);\n }\n return true;\n }\n return false;\n });\n\n return ancestors;\n}\n\n/**\n * 从树中获取某个值的上级\n * @param tree\n * @param value\n */\nexport function getTreeParent<T extends TreeItem>(tree: Array<T>, value: T) {\n const ancestors = getTreeAncestors(tree, value);\n return ancestors?.length ? ancestors[ancestors.length - 1] : null;\n}\n\nexport function ucFirst(str?: string) {\n return typeof str === 'string'\n ? str.substring(0, 1).toUpperCase() + str.substring(1)\n : str;\n}\n\nexport function lcFirst(str?: string) {\n return str ? str.substring(0, 1).toLowerCase() + str.substring(1) : '';\n}\n\nexport function camel(str?: string) {\n return str\n ? str\n .split(/[\\s_\\-]/)\n .map((item, index) => (index === 0 ? lcFirst(item) : ucFirst(item)))\n .join('')\n : '';\n}\n\nexport function getWidthRate(value: any, strictMode = false): number {\n if (typeof value === 'string' && /\\bcol\\-\\w+\\-(\\d+)\\b/.test(value)) {\n return parseInt(RegExp.$1, 10);\n }\n\n return strictMode ? 0 : value || 0;\n}\n\nexport function getLevelFromClassName(\n value: string,\n defaultValue: string = 'default'\n) {\n if (\n /\\b(?:btn|text)-(link|primary|secondary|info|success|warning|danger|light|dark)\\b/.test(\n value\n )\n ) {\n return RegExp.$1;\n }\n\n return defaultValue;\n}\n\nexport function pickEventsProps(props: any) {\n const ret: any = {};\n props &&\n Object.keys(props).forEach(\n key => /^on/.test(key) && (ret[key] = props[key])\n );\n return ret;\n}\n\nexport const autobind = autobindMethod;\n\nexport const bulkBindFunctions = function <\n T extends {\n [propName: string]: any;\n }\n>(context: T, funNames: Array<FunctionPropertyNames<T>>) {\n funNames.forEach(key => (context[key] = context[key].bind(context)));\n};\n\nexport function sortArray<T extends any>(\n items: Array<T>,\n field: string,\n dir: -1 | 1\n): Array<T> {\n return items.sort((a: any, b: any) => {\n let ret: number;\n const a1 = a[field];\n const b1 = b[field];\n\n if (typeof a1 === 'number' && typeof b1 === 'number') {\n ret = a1 < b1 ? -1 : a1 === b1 ? 0 : 1;\n } else {\n ret = String(a1).localeCompare(String(b1));\n }\n\n return ret * dir;\n });\n}\n\n// 只判断一层, 如果层级很深,form-data 也不好表达。\nexport function hasFile(object: any): boolean {\n return Object.keys(object).some(key => {\n let value = object[key];\n\n return (\n value instanceof File ||\n (Array.isArray(value) && value.length && value[0] instanceof File)\n );\n });\n}\n\nexport function qsstringify(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n keepEmptyArray?: boolean\n) {\n // qs会保留空字符串。fix: Combo模式的空数组,无法清空。改为存为空字符串;只转换一层\n keepEmptyArray &&\n Object.keys(data).forEach((key: any) => {\n Array.isArray(data[key]) && !data[key].length && (data[key] = '');\n });\n return qs.stringify(data, options);\n}\n\nexport function qsparse(\n data: string,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true,\n depth: 1000 // 默认是 5, 所以condition-builder只要来个条件组就会导致报错\n }\n) {\n return qs.parse(data, options);\n}\n\nexport function object2formData(\n data: any,\n options: any = {\n arrayFormat: 'indices',\n encodeValuesOnly: true\n },\n fd: FormData = new FormData()\n): any {\n let fileObjects: any = [];\n let others: any = {};\n\n Object.keys(data).forEach(key => {\n const value = data[key];\n\n if (value instanceof File) {\n fileObjects.push([key, value]);\n } else if (\n Array.isArray(value) &&\n value.length &&\n value[0] instanceof File\n ) {\n value.forEach(value => fileObjects.push([`${key}[]`, value]));\n } else {\n others[key] = value;\n }\n });\n\n // 因为 key 的格式太多了,偷个懒,用 qs 来处理吧。\n qsstringify(others, options)\n .split('&')\n .forEach(item => {\n let parts = item.split('=');\n // form-data/multipart 是不需要 encode 值的。\n parts[0] && fd.append(parts[0], decodeURIComponent(parts[1]));\n });\n\n // Note: File类型字段放在后面,可以支持第三方云存储鉴权\n fileObjects.forEach((fileObject: any[]) =>\n fd.append(fileObject[0], fileObject[1], fileObject[1].name)\n );\n\n return fd;\n}\n\nexport function chainFunctions(\n ...fns: Array<(...args: Array<any>) => void>\n): (...args: Array<any>) => void {\n return (...args: Array<any>) =>\n fns.reduce(\n (ret: any, fn: any) =>\n ret === false\n ? false\n : typeof fn == 'function'\n ? fn(...args)\n : undefined,\n undefined\n );\n}\n\nexport function chainEvents(props: any, schema: any) {\n const ret: any = {};\n\n Object.keys(props).forEach(key => {\n if (\n key.substr(0, 2) === 'on' &&\n typeof props[key] === 'function' &&\n typeof schema[key] === 'function' &&\n schema[key] !== props[key]\n ) {\n // 表单项里面的 onChange 很特殊,这个不要处理。\n if (props.formStore && key === 'onChange') {\n ret[key] = props[key];\n } else {\n ret[key] = chainFunctions(schema[key], props[key]);\n }\n } else {\n ret[key] = props[key];\n }\n });\n\n return ret;\n}\n\nexport function mapObject(value: any, fn: Function): any {\n if (Array.isArray(value)) {\n return value.map(item => mapObject(item, fn));\n }\n if (isObject(value)) {\n let tmpValue = {...value};\n Object.keys(tmpValue).forEach(key => {\n (tmpValue as PlainObject)[key] = mapObject(\n (tmpValue as PlainObject)[key],\n fn\n );\n });\n return tmpValue;\n }\n return fn(value);\n}\n\nexport function loadScript(src: string) {\n return new Promise<void>((ok, fail) => {\n const script = document.createElement('script');\n script.onerror = reason => fail(reason);\n\n if (~src.indexOf('{{callback}}')) {\n const callbackFn = `loadscriptcallback_${uuid()}`;\n (window as any)[callbackFn] = () => {\n ok();\n delete (window as any)[callbackFn];\n };\n src = src.replace('{{callback}}', callbackFn);\n } else {\n script.onload = () => ok();\n }\n\n script.src = src;\n document.head.appendChild(script);\n });\n}\n\nexport class SkipOperation extends Error {}\n\n/**\n * 检查对象是否有循环引用,来自 https://stackoverflow.com/a/34909127\n * @param obj\n */\nfunction isCyclic(obj: any): boolean {\n const seenObjects: any = [];\n function detect(obj: any) {\n if (obj && typeof obj === 'object') {\n if (seenObjects.indexOf(obj) !== -1) {\n return true;\n }\n seenObjects.push(obj);\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && detect(obj[key])) {\n return true;\n }\n }\n }\n return false;\n }\n return detect(obj);\n}\n\nfunction internalFindObjectsWithKey(obj: any, key: string) {\n let objects: any[] = [];\n for (const k in obj) {\n if (!obj.hasOwnProperty(k)) continue;\n if (k === key) {\n objects.push(obj);\n } else if (typeof obj[k] === 'object') {\n objects = objects.concat(internalFindObjectsWithKey(obj[k], key));\n }\n }\n return objects;\n}\n\n/**\n * 深度查找具有某个 key 名字段的对象,实际实现是 internalFindObjectsWithKey,这里包一层是为了做循环引用检测\n * @param obj\n * @param key\n */\nexport function findObjectsWithKey(obj: any, key: string) {\n // 避免循环引用导致死循环\n if (isCyclic(obj)) {\n return [];\n }\n return internalFindObjectsWithKey(obj, key);\n}\n\nlet scrollbarWidth: number;\n\n/**\n * 获取浏览器滚动条宽度 https://stackoverflow.com/a/13382873\n */\n\nexport function getScrollbarWidth() {\n if (typeof scrollbarWidth !== 'undefined') {\n return scrollbarWidth;\n }\n // Creating invisible container\n const outer = document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.overflow = 'scroll'; // forcing scrollbar to appear\n // @ts-ignore\n outer.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n document.body.appendChild(outer);\n\n // Creating inner element and placing it in the container\n const inner = document.createElement('div');\n outer.appendChild(inner);\n\n // Calculating difference between container's full width and the child width\n scrollbarWidth = outer.offsetWidth - inner.offsetWidth;\n\n // Removing temporary elements from the DOM\n // @ts-ignore\n outer.parentNode.removeChild(outer);\n\n return scrollbarWidth;\n}\n\nfunction resolveValueByName(data: any, name?: string) {\n return isPureVariable(name)\n ? resolveVariableAndFilter(name, data)\n : resolveVariable(name, data);\n}\n\n// 统一的获取 value 值方法\nexport function getPropValue<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(props: T, getter?: (props: T) => any) {\n const {name, value, data, defaultValue} = props;\n return (\n value ?? getter?.(props) ?? resolveValueByName(data, name) ?? defaultValue\n );\n}\n\n// 检测 value 是否有变化,有变化就执行 onChange\nexport function detectPropValueChanged<\n T extends {\n value?: any;\n name?: string;\n data?: any;\n defaultValue?: any;\n }\n>(\n props: T,\n prevProps: T,\n onChange: (value: any) => void,\n getter?: (props: T) => any\n) {\n let nextValue: any;\n if (typeof props.value !== 'undefined') {\n props.value !== prevProps.value && onChange(props.value);\n } else if ((nextValue = getter?.(props)) !== undefined) {\n nextValue !== getter!(prevProps) && onChange(nextValue);\n } else if (\n typeof props.name === 'string' &&\n (nextValue = resolveValueByName(props.data, props.name)) !== undefined\n ) {\n nextValue !== resolveValueByName(prevProps.data, prevProps.name) &&\n onChange(nextValue);\n } else if (props.defaultValue !== prevProps.defaultValue) {\n onChange(props.defaultValue);\n }\n}\n\n// 去掉字符串中的 html 标签,不完全准确但效率比较高\nexport function removeHTMLTag(str: string) {\n return typeof str === 'string' ? str.replace(/<\\/?[^>]+(>|$)/g, '') : str;\n}\n\n/**\n * 将路径格式的value转换成普通格式的value值\n *\n * @example\n *\n * 'a/b/c' => 'c';\n * {label: 'A/B/C', value: 'a/b/c'} => {label: 'C', value: 'c'};\n * 'a/b/c,a/d' => 'c,d';\n * ['a/b/c', 'a/d'] => ['c', 'd'];\n * [{label: 'A/B/C', value: 'a/b/c'},{label: 'A/D', value: 'a/d'}] => [{label: 'C', value: 'c'},{label: 'D', value: 'd'}]\n */\nexport function normalizeNodePath(\n value: any,\n enableNodePath: boolean,\n labelField: string = 'label',\n valueField: string = 'value',\n pathSeparator: string = '/',\n delimiter: string = ','\n) {\n const nodeValueArray: any[] = [];\n const nodePathArray: any[] = [];\n const getLastNodeFromPath = (path: any) =>\n last(path ? path.toString().split(pathSeparator) : []);\n\n if (typeof value === 'undefined' || !enableNodePath) {\n return {nodeValueArray, nodePathArray};\n }\n\n // 尾节点为当前options中value值\n if (Array.isArray(value)) {\n value.forEach(nodePath => {\n if (nodePath && nodePath.hasOwnProperty(valueField)) {\n nodeValueArray.push({\n ...nodePath,\n [labelField]: getLastNodeFromPath(nodePath[labelField]),\n [valueField]: getLastNodeFromPath(nodePath[valueField])\n });\n nodePathArray.push(nodePath[valueField]);\n } else {\n nodeValueArray.push(getLastNodeFromPath(nodePath));\n nodePathArray.push(nodePath);\n }\n });\n } else if (typeof value === 'string') {\n value\n .toString()\n .split(delimiter)\n .forEach(path => {\n nodeValueArray.push(getLastNodeFromPath(path));\n nodePathArray.push(path);\n });\n } else {\n nodeValueArray.push({\n ...value,\n [labelField]: getLastNodeFromPath(value[labelField]),\n [valueField || 'value']: getLastNodeFromPath(value[valueField])\n });\n nodePathArray.push(value[valueField]);\n }\n\n return {nodeValueArray, nodePathArray};\n}\n\n// 主要用于排除点击输入框和链接等情况\nexport function isClickOnInput(e: React.MouseEvent<HTMLElement>) {\n const target: HTMLElement = e.target as HTMLElement;\n let formItem;\n if (\n !e.currentTarget.contains(target) ||\n ~['INPUT', 'TEXTAREA'].indexOf(target.tagName) ||\n ((formItem = target.closest(`button, a, [data-role=\"form-item\"]`)) &&\n e.currentTarget.contains(formItem))\n ) {\n return true;\n }\n return false;\n}\n\n// 计算字符串 hash\nexport function hashCode(s: string): number {\n return s.split('').reduce((a, b) => {\n a = (a << 5) - a + b.charCodeAt(0);\n return a & a;\n }, 0);\n}\n\n/**\n * 遍历 schema\n * @param json\n * @param mapper\n */\nexport function JSONTraverse(\n json: any,\n mapper: (value: any, key: string | number, host: Object) => any\n) {\n Object.keys(json).forEach(key => {\n const value: any = json[key];\n if (isPlainObject(value) || Array.isArray(value)) {\n JSONTraverse(value, mapper);\n } else {\n mapper(value, key, json);\n }\n });\n}\n\nexport function convertArrayValueToMoment(\n value: number[],\n types: string[],\n mom: moment.Moment\n): moment.Moment {\n if (value.length === 0) return mom;\n for (let i = 0; i < types.length; i++) {\n const type = types[i];\n // @ts-ignore\n mom.set(type, value[i]);\n }\n return mom;\n}\n\n\nexport function getRange(min: number, max: number, step: number = 1) {\n const arr = [];\n for (let i = min; i <= max; i += step) {\n arr.push(i);\n }\n return arr;\n}\n"
12
12
  ]
13
13
  }
@@ -0,0 +1,38 @@
1
+ import { ListenerAction, ListenerContext } from '../actions/Action';
2
+ export interface EventListeners {
3
+ [propName: string]: {
4
+ weight?: number;
5
+ actions: ListenerAction[];
6
+ };
7
+ }
8
+ export interface OnEventProps {
9
+ onEvent?: {
10
+ [propName: string]: {
11
+ weight?: number;
12
+ actions: ListenerAction[];
13
+ };
14
+ };
15
+ }
16
+ export interface RendererEventListener {
17
+ renderer: ListenerContext;
18
+ type: string;
19
+ weight: number;
20
+ actions: ListenerAction[];
21
+ }
22
+ export declare type RendererEvent<T, P = any> = {
23
+ context: T;
24
+ type: string;
25
+ prevented?: boolean;
26
+ stoped?: boolean;
27
+ data?: P;
28
+ preventDefault: () => void;
29
+ stopPropagation: () => void;
30
+ setData: (data: P) => void;
31
+ };
32
+ export interface RendererEventContext {
33
+ data?: any;
34
+ [propName: string]: any;
35
+ }
36
+ export declare function createRendererEvent<T extends RendererEventContext>(type: string, context: T): RendererEvent<T>;
37
+ declare const _default: {};
38
+ export default _default;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRendererEvent = void 0;
4
+ // 创建渲染器事件对象
5
+ function createRendererEvent(type, context) {
6
+ var rendererEvent = {
7
+ context: context,
8
+ type: type,
9
+ prevented: false,
10
+ stoped: false,
11
+ preventDefault: function () {
12
+ rendererEvent.prevented = true;
13
+ },
14
+ stopPropagation: function () {
15
+ rendererEvent.stoped = true;
16
+ },
17
+ get data() {
18
+ return rendererEvent.context.data;
19
+ },
20
+ setData: function (data) {
21
+ rendererEvent.context.data = data;
22
+ }
23
+ };
24
+ return rendererEvent;
25
+ }
26
+ exports.createRendererEvent = createRendererEvent;
27
+ exports.default = {};
28
+ //# sourceMappingURL=./utils/renderer-event.js.map
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": 3,
3
+ "file": "renderer-event.js",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "/src/utils/renderer-event.ts"
7
+ ],
8
+ "names": [],
9
+ "mappings": ";;;AA6CA,YAAY;AACZ,SAAgB,mBAAmB,CACjC,IAAY,EACZ,OAAU;IAEV,IAAM,aAAa,GAAG;QACpB,OAAO,SAAA;QACP,IAAI,MAAA;QACJ,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,KAAK;QACb,cAAc;YACZ,aAAa,CAAC,SAAS,GAAG,IAAI,CAAC;QACjC,CAAC;QAED,eAAe;YACb,aAAa,CAAC,MAAM,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,IAAI,IAAI;YACN,OAAO,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC;QACpC,CAAC;QAED,OAAO,EAAP,UAAQ,IAAS;YACf,aAAa,CAAC,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;QACpC,CAAC;KACF,CAAC;IACF,OAAO,aAAa,CAAC;AACvB,CAAC;AA1BD,kDA0BC;AAED,kBAAe,EAAE,CAAC",
10
+ "sourcesContent": [
11
+ "import {ListenerAction, ListenerContext} from '../actions/Action';\n\n// 事件监听器\nexport interface EventListeners {\n [propName: string]: {\n weight?: number; // 权重\n actions: ListenerAction[]; // 执行的动作集\n };\n}\n\n// 事件动作属性\nexport interface OnEventProps {\n onEvent?: {\n [propName: string]: {\n weight?: number; // 权重\n actions: ListenerAction[]; // 执行的动作集\n };\n };\n}\n\n// 渲染器事件监听器\nexport interface RendererEventListener {\n renderer: ListenerContext;\n type: string;\n weight: number;\n actions: ListenerAction[];\n}\n\n// 将事件上下文转成事件对象\nexport type RendererEvent<T, P = any> = {\n context: T;\n type: string;\n prevented?: boolean; // 阻止原有动作执行\n stoped?: boolean; // 阻止后续动作执行\n data?: P;\n preventDefault: () => void;\n stopPropagation: () => void;\n setData: (data: P) => void;\n};\n\nexport interface RendererEventContext {\n data?: any;\n [propName: string]: any;\n}\n\n// 创建渲染器事件对象\nexport function createRendererEvent<T extends RendererEventContext>(\n type: string,\n context: T\n): RendererEvent<T> {\n const rendererEvent = {\n context,\n type,\n prevented: false,\n stoped: false,\n preventDefault() {\n rendererEvent.prevented = true;\n },\n\n stopPropagation() {\n rendererEvent.stoped = true;\n },\n\n get data() {\n return rendererEvent.context.data;\n },\n\n setData(data: any) {\n rendererEvent.context.data = data;\n }\n };\n return rendererEvent;\n}\n\nexport default {};\n"
12
+ ]
13
+ }