amis 1.4.2-beta.6 → 1.5.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 (488) hide show
  1. package/lib/Schema.d.ts +11 -3
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/components/Alert2.d.ts +26 -21
  4. package/lib/components/Alert2.js +11 -4
  5. package/lib/components/Alert2.js.map +2 -2
  6. package/lib/components/AnchorNav.d.ts +22 -21
  7. package/lib/components/AnchorNav.js +7 -3
  8. package/lib/components/AnchorNav.js.map +2 -2
  9. package/lib/components/ArrayInput.d.ts +84 -84
  10. package/lib/components/AssociatedSelection.d.ts +930 -0
  11. package/lib/components/AssociatedSelection.js +89 -0
  12. package/lib/components/AssociatedSelection.js.map +13 -0
  13. package/lib/components/Badge.js +2 -2
  14. package/lib/components/Badge.js.map +2 -2
  15. package/lib/components/Button.js +1 -1
  16. package/lib/components/Button.js.map +2 -2
  17. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  18. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  19. package/lib/components/ChainedSelection.js.map +13 -0
  20. package/lib/components/Checkbox.d.ts +20 -20
  21. package/lib/components/Collapse.d.ts +51 -23
  22. package/lib/components/Collapse.js +70 -11
  23. package/lib/components/Collapse.js.map +2 -2
  24. package/lib/components/CollapseGroup.d.ts +88 -0
  25. package/lib/components/CollapseGroup.js +81 -0
  26. package/lib/components/CollapseGroup.js.map +13 -0
  27. package/lib/components/ColorPicker.d.ts +89 -85
  28. package/lib/components/ColorPicker.js +17 -4
  29. package/lib/components/ColorPicker.js.map +2 -2
  30. package/lib/components/DatePicker.d.ts +84 -84
  31. package/lib/components/DateRangePicker.d.ts +84 -84
  32. package/lib/components/Drawer.js +2 -2
  33. package/lib/components/Drawer.js.map +2 -2
  34. package/lib/components/Editor.d.ts +84 -84
  35. package/lib/components/GridNav.d.ts +52 -0
  36. package/lib/components/GridNav.js +123 -0
  37. package/lib/components/GridNav.js.map +13 -0
  38. package/lib/components/GroupedSelection.d.ts +907 -0
  39. package/lib/components/GroupedSelection.js +48 -0
  40. package/lib/components/GroupedSelection.js.map +13 -0
  41. package/lib/components/InputBox.d.ts +22 -21
  42. package/lib/components/InputBox.js +10 -2
  43. package/lib/components/InputBox.js.map +2 -2
  44. package/lib/components/Link.d.ts +29 -36
  45. package/lib/components/Link.js +14 -15
  46. package/lib/components/Link.js.map +2 -2
  47. package/lib/components/ListGroup.d.ts +21 -21
  48. package/lib/components/ModalManager.js +1 -1
  49. package/lib/components/ModalManager.js.map +2 -2
  50. package/lib/components/MonthRangePicker.d.ts +84 -84
  51. package/lib/components/NumberInput.d.ts +20 -20
  52. package/lib/components/Overlay.js +5 -0
  53. package/lib/components/Overlay.js.map +2 -2
  54. package/lib/components/PickerColumn.d.ts +514 -0
  55. package/lib/components/PickerColumn.js +279 -0
  56. package/lib/components/PickerColumn.js.map +13 -0
  57. package/lib/components/PickerContainer.d.ts +513 -0
  58. package/lib/components/PickerContainer.js +96 -0
  59. package/lib/components/PickerContainer.js.map +13 -0
  60. package/lib/components/PopOver.d.ts +1 -0
  61. package/lib/components/PopOver.js +12 -1
  62. package/lib/components/PopOver.js.map +2 -2
  63. package/lib/components/Progress.d.ts +85 -0
  64. package/lib/components/Progress.js +81 -0
  65. package/lib/components/Progress.js.map +13 -0
  66. package/lib/components/Radios.d.ts +22 -21
  67. package/lib/components/Radios.js +1 -0
  68. package/lib/components/Radios.js.map +2 -2
  69. package/lib/components/Rating.d.ts +21 -21
  70. package/lib/components/ResultBox.d.ts +84 -84
  71. package/lib/components/ResultBox.js +10 -2
  72. package/lib/components/ResultBox.js.map +2 -2
  73. package/lib/components/SearchBox.d.ts +84 -84
  74. package/lib/components/Select.d.ts +245 -237
  75. package/lib/components/Select.js +25 -4
  76. package/lib/components/Select.js.map +2 -2
  77. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  78. package/lib/components/Selection.js +134 -0
  79. package/lib/components/Selection.js.map +13 -0
  80. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  81. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  82. package/lib/components/TableSelection.js.map +13 -0
  83. package/lib/components/Tabs.d.ts +20 -20
  84. package/lib/components/TabsTransfer.d.ts +84 -84
  85. package/lib/components/TabsTransfer.js +9 -9
  86. package/lib/components/TabsTransfer.js.map +2 -2
  87. package/lib/components/TabsTransferPicker.d.ts +489 -0
  88. package/lib/components/TabsTransferPicker.js +60 -0
  89. package/lib/components/TabsTransferPicker.js.map +13 -0
  90. package/lib/components/Toast.d.ts +90 -87
  91. package/lib/components/Toast.js +15 -5
  92. package/lib/components/Toast.js.map +2 -2
  93. package/lib/components/Transfer.d.ts +908 -274
  94. package/lib/components/Transfer.js +31 -24
  95. package/lib/components/Transfer.js.map +2 -2
  96. package/lib/components/TransferDropDown.d.ts +488 -0
  97. package/lib/components/TransferDropDown.js +59 -0
  98. package/lib/components/TransferDropDown.js.map +13 -0
  99. package/lib/components/TransferPicker.d.ts +493 -0
  100. package/lib/components/TransferPicker.js +60 -0
  101. package/lib/components/TransferPicker.js.map +13 -0
  102. package/lib/components/Tree.d.ts +115 -84
  103. package/lib/components/Tree.js +183 -30
  104. package/lib/components/Tree.js.map +2 -2
  105. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  106. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  107. package/lib/components/TreeSelection.js.map +13 -0
  108. package/lib/components/condition-builder/Field.js +4 -2
  109. package/lib/components/condition-builder/Field.js.map +2 -2
  110. package/lib/components/condition-builder/Func.js +2 -2
  111. package/lib/components/condition-builder/Func.js.map +2 -2
  112. package/lib/components/condition-builder/InputSwitch.js +2 -2
  113. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  114. package/lib/components/condition-builder/Item.js +3 -3
  115. package/lib/components/condition-builder/Item.js.map +2 -2
  116. package/lib/components/icons.js +10 -0
  117. package/lib/components/icons.js.map +2 -2
  118. package/lib/components/index.d.ts +8 -8
  119. package/lib/components/index.js +16 -16
  120. package/lib/components/index.js.map +2 -2
  121. package/lib/envOverwrite.d.ts +1 -1
  122. package/lib/envOverwrite.js +24 -9
  123. package/lib/envOverwrite.js.map +2 -2
  124. package/lib/factory.d.ts +15 -1
  125. package/lib/factory.js +35 -6
  126. package/lib/factory.js.map +2 -2
  127. package/lib/helper.css.map +1 -1
  128. package/lib/hooks/index.d.ts +5 -0
  129. package/lib/hooks/index.js +14 -0
  130. package/lib/hooks/index.js.map +13 -0
  131. package/lib/hooks/use-set-state.d.ts +2 -0
  132. package/lib/hooks/use-set-state.js +15 -0
  133. package/lib/hooks/use-set-state.js.map +13 -0
  134. package/lib/hooks/use-touch.d.ts +16 -0
  135. package/lib/hooks/use-touch.js +73 -0
  136. package/lib/hooks/use-touch.js.map +13 -0
  137. package/lib/hooks/use-update-effect.d.ts +3 -0
  138. package/lib/hooks/use-update-effect.js +17 -0
  139. package/lib/hooks/use-update-effect.js.map +13 -0
  140. package/lib/icons/alert-danger.js +7 -0
  141. package/lib/icons/alert-info.js +7 -0
  142. package/lib/icons/alert-success.js +7 -0
  143. package/lib/icons/alert-warning.js +7 -0
  144. package/lib/icons/download.js +7 -0
  145. package/lib/icons/drag-bar.js +10 -3
  146. package/lib/index.d.ts +5 -0
  147. package/lib/index.js +6 -1
  148. package/lib/index.js.map +2 -2
  149. package/lib/locale/de-DE.js +2 -0
  150. package/lib/locale/de-DE.js.map +2 -2
  151. package/lib/locale/en-US.js +3 -0
  152. package/lib/locale/en-US.js.map +2 -2
  153. package/lib/locale/zh-CN.js +5 -2
  154. package/lib/locale/zh-CN.js.map +2 -2
  155. package/lib/renderers/Action.d.ts +10 -5
  156. package/lib/renderers/Action.js +23 -5
  157. package/lib/renderers/Action.js.map +2 -2
  158. package/lib/renderers/Alert.d.ts +21 -1
  159. package/lib/renderers/Alert.js.map +2 -2
  160. package/lib/renderers/AnchorNav.d.ts +1 -0
  161. package/lib/renderers/AnchorNav.js +2 -2
  162. package/lib/renderers/AnchorNav.js.map +2 -2
  163. package/lib/renderers/Avatar.js +3 -3
  164. package/lib/renderers/Avatar.js.map +2 -2
  165. package/lib/renderers/Breadcrumb.js +1 -1
  166. package/lib/renderers/Breadcrumb.js.map +2 -2
  167. package/lib/renderers/CRUD.d.ts +5 -0
  168. package/lib/renderers/CRUD.js +25 -4
  169. package/lib/renderers/CRUD.js.map +2 -2
  170. package/lib/renderers/Card.d.ts +5 -0
  171. package/lib/renderers/Card.js +34 -23
  172. package/lib/renderers/Card.js.map +2 -2
  173. package/lib/renderers/Collapse.d.ts +25 -20
  174. package/lib/renderers/Collapse.js +10 -72
  175. package/lib/renderers/Collapse.js.map +2 -2
  176. package/lib/renderers/CollapseGroup.d.ts +42 -0
  177. package/lib/renderers/CollapseGroup.js +33 -0
  178. package/lib/renderers/CollapseGroup.js.map +13 -0
  179. package/lib/renderers/Form/ConditionBuilder.js +2 -2
  180. package/lib/renderers/Form/ConditionBuilder.js.map +2 -2
  181. package/lib/renderers/Form/DiffEditor.d.ts +4 -3
  182. package/lib/renderers/Form/Editor.d.ts +3 -2
  183. package/lib/renderers/Form/InputCity.d.ts +84 -84
  184. package/lib/renderers/Form/InputCity.js +7 -6
  185. package/lib/renderers/Form/InputCity.js.map +2 -2
  186. package/lib/renderers/Form/InputColor.d.ts +86 -85
  187. package/lib/renderers/Form/InputColor.js +1 -1
  188. package/lib/renderers/Form/InputColor.js.map +2 -2
  189. package/lib/renderers/Form/InputFile.d.ts +6 -0
  190. package/lib/renderers/Form/InputFile.js +28 -8
  191. package/lib/renderers/Form/InputFile.js.map +2 -2
  192. package/lib/renderers/Form/InputImage.js +11 -4
  193. package/lib/renderers/Form/InputImage.js.map +2 -2
  194. package/lib/renderers/Form/Item.d.ts +1 -1
  195. package/lib/renderers/Form/Item.js +2 -1
  196. package/lib/renderers/Form/Item.js.map +2 -2
  197. package/lib/renderers/Form/Options.js +25 -4
  198. package/lib/renderers/Form/Options.js.map +2 -2
  199. package/lib/renderers/Form/Select.d.ts +42 -4
  200. package/lib/renderers/Form/Select.js +37 -3
  201. package/lib/renderers/Form/Select.js.map +2 -2
  202. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  203. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  204. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  205. package/lib/renderers/Form/Transfer.js +18 -3
  206. package/lib/renderers/Form/Transfer.js.map +2 -2
  207. package/lib/renderers/Form/TransferPicker.d.ts +52 -0
  208. package/lib/renderers/Form/TransferPicker.js +43 -0
  209. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  210. package/lib/renderers/Form/TreeSelect.js +2 -2
  211. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  212. package/lib/renderers/Form/index.d.ts +5 -0
  213. package/lib/renderers/Form/index.js +5 -3
  214. package/lib/renderers/Form/index.js.map +2 -2
  215. package/lib/renderers/Form/wrapControl.js +13 -1
  216. package/lib/renderers/Form/wrapControl.js.map +2 -2
  217. package/lib/renderers/GridNav.d.ts +99 -0
  218. package/lib/renderers/GridNav.js +82 -0
  219. package/lib/renderers/GridNav.js.map +13 -0
  220. package/lib/renderers/IFrame.js +1 -3
  221. package/lib/renderers/IFrame.js.map +2 -2
  222. package/lib/renderers/Image.js +7 -5
  223. package/lib/renderers/Image.js.map +2 -2
  224. package/lib/renderers/Json.d.ts +4 -0
  225. package/lib/renderers/Json.js +4 -13
  226. package/lib/renderers/Json.js.map +2 -2
  227. package/lib/renderers/Link.d.ts +4 -2
  228. package/lib/renderers/Link.js +15 -8
  229. package/lib/renderers/Link.js.map +2 -2
  230. package/lib/renderers/List.js +1 -1
  231. package/lib/renderers/List.js.map +2 -2
  232. package/lib/renderers/Nav.d.ts +21 -21
  233. package/lib/renderers/Nav.js +37 -19
  234. package/lib/renderers/Nav.js.map +2 -2
  235. package/lib/renderers/Page.d.ts +18 -0
  236. package/lib/renderers/Page.js +53 -9
  237. package/lib/renderers/Page.js.map +2 -2
  238. package/lib/renderers/Portlet.d.ts +125 -0
  239. package/lib/renderers/Portlet.js +156 -0
  240. package/lib/renderers/Portlet.js.map +13 -0
  241. package/lib/renderers/Progress.d.ts +23 -3
  242. package/lib/renderers/Progress.js +15 -19
  243. package/lib/renderers/Progress.js.map +2 -2
  244. package/lib/renderers/Property.js +1 -1
  245. package/lib/renderers/Property.js.map +2 -2
  246. package/lib/renderers/Table/ColumnToggler.js +1 -1
  247. package/lib/renderers/Table/ColumnToggler.js.map +2 -2
  248. package/lib/renderers/Table/TableContent.d.ts +4 -1
  249. package/lib/renderers/Table/TableContent.js +21 -1
  250. package/lib/renderers/Table/TableContent.js.map +2 -2
  251. package/lib/renderers/Table/index.d.ts +5 -1
  252. package/lib/renderers/Table/index.js +65 -30
  253. package/lib/renderers/Table/index.js.map +2 -2
  254. package/lib/renderers/Tabs.js +9 -1
  255. package/lib/renderers/Tabs.js.map +2 -2
  256. package/lib/renderers/WebComponent.js +1 -1
  257. package/lib/renderers/WebComponent.js.map +2 -2
  258. package/lib/store/combo.d.ts +2 -2
  259. package/lib/store/form.d.ts +1 -1
  260. package/lib/store/form.js +3 -5
  261. package/lib/store/form.js.map +2 -2
  262. package/lib/store/formItem.js +44 -4
  263. package/lib/store/formItem.js.map +2 -2
  264. package/lib/store/table.d.ts +3 -2
  265. package/lib/store/table.js +35 -12
  266. package/lib/store/table.js.map +2 -2
  267. package/lib/themes/ang-ie11.css +934 -222
  268. package/lib/themes/ang.css +934 -222
  269. package/lib/themes/ang.css.map +1 -1
  270. package/lib/themes/antd-ie11.css +934 -222
  271. package/lib/themes/antd.css +934 -222
  272. package/lib/themes/antd.css.map +1 -1
  273. package/lib/themes/cxd-ie11.css +970 -260
  274. package/lib/themes/cxd.css +970 -260
  275. package/lib/themes/cxd.css.map +1 -1
  276. package/lib/themes/dark-ie11.css +934 -222
  277. package/lib/themes/dark.css +934 -222
  278. package/lib/themes/dark.css.map +1 -1
  279. package/lib/themes/default.css +970 -260
  280. package/lib/themes/default.css.map +1 -1
  281. package/lib/types.d.ts +38 -1
  282. package/lib/types.js +0 -5
  283. package/lib/types.js.map +2 -2
  284. package/lib/utils/api.d.ts +3 -2
  285. package/lib/utils/api.js +90 -17
  286. package/lib/utils/api.js.map +2 -2
  287. package/lib/utils/dom.d.ts +4 -0
  288. package/lib/utils/dom.js +11 -1
  289. package/lib/utils/dom.js.map +2 -2
  290. package/lib/utils/helper.d.ts +12 -23
  291. package/lib/utils/helper.js +62 -166
  292. package/lib/utils/helper.js.map +2 -2
  293. package/lib/utils/tpl-builtin.d.ts +2 -20
  294. package/lib/utils/tpl-builtin.js +25 -743
  295. package/lib/utils/tpl-builtin.js.map +2 -2
  296. package/lib/utils/tpl.js +24 -0
  297. package/lib/utils/tpl.js.map +2 -2
  298. package/package.json +5 -2
  299. package/schema.json +3966 -1263
  300. package/scss/_mixins.scss +1 -3
  301. package/scss/_properties.scss +42 -13
  302. package/scss/base/_common.scss +3 -0
  303. package/scss/base/_normalize.scss +2 -0
  304. package/scss/components/_alert.scss +28 -5
  305. package/scss/components/_anchor-nav.scss +89 -29
  306. package/scss/components/_button.scss +12 -0
  307. package/scss/components/_card.scss +9 -15
  308. package/scss/components/_collapse-group.scss +15 -0
  309. package/scss/components/_collapse.scss +48 -23
  310. package/scss/components/_grid-nav.scss +128 -0
  311. package/scss/components/_images.scss +1 -0
  312. package/scss/components/_input-box.scss +1 -0
  313. package/scss/components/_nav.scss +2 -7
  314. package/scss/components/_page.scss +35 -2
  315. package/scss/components/_picker-columns.scss +124 -0
  316. package/scss/components/_popover.scss +13 -0
  317. package/scss/components/_portlet.scss +51 -0
  318. package/scss/components/_progress.scss +141 -33
  319. package/scss/components/_result-box.scss +1 -0
  320. package/scss/components/_spinner.scss +5 -4
  321. package/scss/components/_status.scss +1 -1
  322. package/scss/components/_table.scss +32 -0
  323. package/scss/components/_toast.scss +41 -11
  324. package/scss/components/form/_checks.scss +0 -351
  325. package/scss/components/form/_color.scss +32 -3
  326. package/scss/components/form/_combo.scss +4 -0
  327. package/scss/components/form/_fieldset.scss +6 -1
  328. package/scss/components/form/_file.scss +11 -0
  329. package/scss/components/form/_form.scss +48 -0
  330. package/scss/components/form/_selection.scss +354 -0
  331. package/scss/components/form/_transfer.scss +76 -18
  332. package/scss/components/form/_tree.scss +42 -0
  333. package/scss/themes/_common.scss +6 -0
  334. package/scss/themes/_cxd-variables.scss +13 -6
  335. package/scss/themes/cxd.scss +19 -20
  336. package/sdk/ang-ie11.css +1065 -246
  337. package/sdk/ang.css +1069 -230
  338. package/sdk/antd-ie11.css +1068 -249
  339. package/sdk/antd.css +1069 -230
  340. package/sdk/charts.js +17 -17
  341. package/sdk/color-picker.js +65 -69
  342. package/sdk/cropperjs.js +3 -3
  343. package/sdk/cxd-ie11.css +1081 -268
  344. package/sdk/cxd.css +1116 -279
  345. package/sdk/dark-ie11.css +1069 -250
  346. package/sdk/dark.css +1069 -230
  347. package/sdk/exceljs.js +1 -1
  348. package/sdk/helper.css.map +1 -1
  349. package/sdk/iconfont.svg +2513 -0
  350. package/sdk/iconfont.ttf +0 -0
  351. package/sdk/iconfont.woff +0 -0
  352. package/sdk/locale/de-DE.js +2 -0
  353. package/sdk/markdown.js +69 -69
  354. package/sdk/papaparse.js +1 -1
  355. package/sdk/renderers/Form/CityDB.js +1 -1
  356. package/sdk/rest.js +20 -28
  357. package/sdk/rich-text.js +62 -62
  358. package/sdk/sdk-ie11.css +1081 -268
  359. package/sdk/sdk.css +1116 -279
  360. package/sdk/sdk.js +1371 -1189
  361. package/sdk/thirds/hls.js/hls.js +18 -18
  362. package/sdk/thirds/mpegts.js/mpegts.js +2 -2
  363. package/sdk/tinymce.js +57 -57
  364. package/src/Schema.ts +19 -1
  365. package/src/components/Alert2.tsx +32 -4
  366. package/src/components/AnchorNav.tsx +15 -4
  367. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +43 -37
  368. package/src/components/Badge.tsx +3 -3
  369. package/src/components/Button.tsx +1 -0
  370. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  371. package/src/components/Collapse.tsx +139 -20
  372. package/src/components/CollapseGroup.tsx +130 -0
  373. package/src/components/ColorPicker.tsx +32 -10
  374. package/src/components/Drawer.tsx +8 -6
  375. package/src/components/GridNav.tsx +233 -0
  376. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  377. package/src/components/InputBox.tsx +10 -9
  378. package/src/components/Link.tsx +28 -37
  379. package/src/components/ModalManager.ts +1 -1
  380. package/src/components/Overlay.tsx +6 -0
  381. package/src/components/PickerColumn.tsx +429 -0
  382. package/src/components/PickerContainer.tsx +128 -0
  383. package/src/components/PopOver.tsx +15 -1
  384. package/src/components/Progress.tsx +140 -0
  385. package/src/components/Radios.tsx +3 -8
  386. package/src/components/ResultBox.tsx +9 -9
  387. package/src/components/Select.tsx +57 -5
  388. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  389. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  390. package/src/components/TabsTransfer.tsx +13 -7
  391. package/src/components/TabsTransferPicker.tsx +85 -0
  392. package/src/components/Toast.tsx +48 -21
  393. package/src/components/Transfer.tsx +71 -50
  394. package/src/components/TransferDropDown.tsx +120 -0
  395. package/src/components/TransferPicker.tsx +91 -0
  396. package/src/components/Tree.tsx +194 -8
  397. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  398. package/src/components/condition-builder/Field.tsx +7 -5
  399. package/src/components/condition-builder/Func.tsx +3 -3
  400. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  401. package/src/components/condition-builder/Item.tsx +5 -12
  402. package/src/components/icons.tsx +10 -0
  403. package/src/components/index.tsx +13 -13
  404. package/src/envOverwrite.ts +20 -8
  405. package/src/factory.tsx +70 -9
  406. package/src/hooks/index.ts +5 -0
  407. package/src/hooks/use-set-state.ts +19 -0
  408. package/src/hooks/use-touch.ts +100 -0
  409. package/src/hooks/use-update-effect.ts +16 -0
  410. package/src/icons/alert-danger.svg +1 -0
  411. package/src/icons/alert-info.svg +1 -0
  412. package/src/icons/alert-success.svg +1 -0
  413. package/src/icons/alert-warning.svg +1 -0
  414. package/src/icons/download.svg +4 -0
  415. package/src/icons/drag-bar.svg +12 -6
  416. package/src/index.tsx +5 -0
  417. package/src/locale/de-DE.ts +2 -0
  418. package/src/locale/en-US.ts +3 -0
  419. package/src/locale/zh-CN.ts +5 -2
  420. package/src/renderers/Action.tsx +58 -3
  421. package/src/renderers/Alert.tsx +31 -1
  422. package/src/renderers/AnchorNav.tsx +4 -0
  423. package/src/renderers/Avatar.tsx +8 -4
  424. package/src/renderers/Breadcrumb.tsx +5 -1
  425. package/src/renderers/CRUD.tsx +29 -3
  426. package/src/renderers/Card.tsx +76 -36
  427. package/src/renderers/Collapse.tsx +70 -115
  428. package/src/renderers/CollapseGroup.tsx +80 -0
  429. package/src/renderers/Form/ConditionBuilder.tsx +2 -2
  430. package/src/renderers/Form/InputCity.tsx +4 -8
  431. package/src/renderers/Form/InputColor.tsx +4 -2
  432. package/src/renderers/Form/InputFile.tsx +65 -24
  433. package/src/renderers/Form/InputImage.tsx +11 -3
  434. package/src/renderers/Form/Item.tsx +3 -2
  435. package/src/renderers/Form/Options.tsx +29 -3
  436. package/src/renderers/Form/Select.tsx +162 -21
  437. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  438. package/src/renderers/Form/Transfer.tsx +19 -4
  439. package/src/renderers/Form/TransferPicker.tsx +145 -0
  440. package/src/renderers/Form/TreeSelect.tsx +25 -0
  441. package/src/renderers/Form/index.tsx +15 -2
  442. package/src/renderers/Form/wrapControl.tsx +26 -1
  443. package/src/renderers/GridNav.tsx +204 -0
  444. package/src/renderers/IFrame.tsx +2 -4
  445. package/src/renderers/Image.tsx +19 -15
  446. package/src/renderers/Json.tsx +9 -9
  447. package/src/renderers/Link.tsx +29 -16
  448. package/src/renderers/List.tsx +1 -1
  449. package/src/renderers/Nav.tsx +105 -56
  450. package/src/renderers/Page.tsx +62 -1
  451. package/src/renderers/Portlet.tsx +423 -0
  452. package/src/renderers/Progress.tsx +56 -38
  453. package/src/renderers/Property.tsx +6 -4
  454. package/src/renderers/Table/ColumnToggler.tsx +1 -1
  455. package/src/renderers/Table/TableContent.tsx +40 -2
  456. package/src/renderers/Table/index.tsx +88 -43
  457. package/src/renderers/Tabs.tsx +9 -1
  458. package/src/renderers/WebComponent.tsx +2 -2
  459. package/src/store/form.ts +3 -9
  460. package/src/store/formItem.ts +94 -2
  461. package/src/store/table.ts +55 -14
  462. package/src/types.ts +58 -1
  463. package/src/utils/api.ts +120 -26
  464. package/src/utils/dom.tsx +12 -0
  465. package/src/utils/helper.ts +55 -185
  466. package/src/utils/tpl-builtin.ts +40 -866
  467. package/src/utils/tpl.ts +33 -0
  468. package/tsconfig-for-declaration.json +1 -1
  469. package/dump.rdb +0 -0
  470. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  471. package/lib/components/AssociatedCheckboxes.js +0 -90
  472. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  473. package/lib/components/ChainedCheckboxes.js.map +0 -13
  474. package/lib/components/Checkboxes.js +0 -101
  475. package/lib/components/Checkboxes.js.map +0 -13
  476. package/lib/components/ListCheckboxes.d.ts +0 -739
  477. package/lib/components/ListCheckboxes.js +0 -48
  478. package/lib/components/ListCheckboxes.js.map +0 -13
  479. package/lib/components/ListRadios.d.ts +0 -763
  480. package/lib/components/ListRadios.js +0 -86
  481. package/lib/components/ListRadios.js.map +0 -13
  482. package/lib/components/TableCheckboxes.js.map +0 -13
  483. package/lib/components/TreeCheckboxes.js.map +0 -13
  484. package/lib/components/TreeRadios.d.ts +0 -838
  485. package/lib/components/TreeRadios.js +0 -116
  486. package/lib/components/TreeRadios.js.map +0 -13
  487. package/src/components/ListRadios.tsx +0 -159
  488. package/src/components/TreeRadios.tsx +0 -202
package/src/utils/api.ts CHANGED
@@ -1,6 +1,7 @@
1
- import {Api, ApiObject, fetcherResult, Payload} from '../types';
1
+ import omit from 'lodash/omit';
2
+ import {Api, ApiObject, EventTrack, fetcherResult, Payload} from '../types';
2
3
  import {fetcherConfig} from '../factory';
3
- import {tokenize, dataMapping} from './tpl-builtin';
4
+ import {tokenize, dataMapping, escapeHtml} from './tpl-builtin';
4
5
  import {evalExpression} from './tpl';
5
6
  import {
6
7
  isObject,
@@ -10,11 +11,12 @@ import {
10
11
  qsstringify,
11
12
  cloneObject,
12
13
  createObject,
13
- qsparse
14
+ qsparse,
15
+ uuid
14
16
  } from './helper';
15
17
  import isPlainObject from 'lodash/isPlainObject';
16
18
 
17
- const rSchema = /(?:^|raw\:)(get|post|put|delete|patch|options|head):/i;
19
+ const rSchema = /(?:^|raw\:)(get|post|put|delete|patch|options|head|jsonp):/i;
18
20
 
19
21
  interface ApiCacheConfig extends ApiObject {
20
22
  cachedPromise: Promise<any>;
@@ -62,6 +64,23 @@ export function buildApi(
62
64
  };
63
65
  api.method = (api.method || (options as any).method || 'get').toLowerCase();
64
66
 
67
+ if (api.headers) {
68
+ api.headers = dataMapping(api.headers, data, undefined, false);
69
+ }
70
+
71
+ if (api.requestAdaptor && typeof api.requestAdaptor === 'string') {
72
+ api.requestAdaptor = str2function(api.requestAdaptor, 'api') as any;
73
+ }
74
+
75
+ if (api.adaptor && typeof api.adaptor === 'string') {
76
+ api.adaptor = str2function(
77
+ api.adaptor,
78
+ 'payload',
79
+ 'response',
80
+ 'api'
81
+ ) as any;
82
+ }
83
+
65
84
  if (!data) {
66
85
  return api;
67
86
  } else if (
@@ -107,7 +126,7 @@ export function buildApi(
107
126
  }
108
127
 
109
128
  // get 类请求,把 data 附带到 url 上。
110
- if (api.method === 'get') {
129
+ if (api.method === 'get' || api.method === 'jsonp') {
111
130
  if (!~raw.indexOf('$') && !api.data && autoAppend) {
112
131
  api.query = api.data = data;
113
132
  } else if (
@@ -145,23 +164,6 @@ export function buildApi(
145
164
  }
146
165
  }
147
166
 
148
- if (api.headers) {
149
- api.headers = dataMapping(api.headers, data, undefined, false);
150
- }
151
-
152
- if (api.requestAdaptor && typeof api.requestAdaptor === 'string') {
153
- api.requestAdaptor = str2function(api.requestAdaptor, 'api') as any;
154
- }
155
-
156
- if (api.adaptor && typeof api.adaptor === 'string') {
157
- api.adaptor = str2function(
158
- api.adaptor,
159
- 'payload',
160
- 'response',
161
- 'api'
162
- ) as any;
163
- }
164
-
165
167
  return api;
166
168
  }
167
169
 
@@ -194,11 +196,26 @@ export function str2AsyncFunction(
194
196
  }
195
197
 
196
198
  export function responseAdaptor(ret: fetcherResult, api: ApiObject) {
197
- const data = ret.data;
199
+ let data = ret.data;
198
200
  let hasStatusField = true;
199
201
 
200
202
  if (!data) {
201
- throw new Error('Response is empty!');
203
+ throw new Error('Response is empty');
204
+ }
205
+
206
+ if (typeof data === 'string') {
207
+ try {
208
+ data = JSON.parse(data);
209
+ if (typeof data === 'undefined') {
210
+ throw new Error('Response should be JSON');
211
+ }
212
+ } catch (e) {
213
+ const responseBrief =
214
+ typeof data === 'string'
215
+ ? escapeHtml((data as string).substring(0, 100))
216
+ : '';
217
+ throw new Error(`Response should be JSON\n ${responseBrief}`);
218
+ }
202
219
  }
203
220
 
204
221
  // 兼容几种常见写法
@@ -246,7 +263,7 @@ export function responseAdaptor(ret: fetcherResult, api: ApiObject) {
246
263
  }
247
264
 
248
265
  if (payload.ok && api.responseData) {
249
- payload.data = dataMapping(
266
+ const responseData = dataMapping(
250
267
  api.responseData,
251
268
 
252
269
  createObject(
@@ -260,13 +277,16 @@ export function responseAdaptor(ret: fetcherResult, api: ApiObject) {
260
277
  undefined,
261
278
  api.convertKeyToPath
262
279
  );
280
+ console.debug('responseData', responseData);
281
+ payload.data = responseData;
263
282
  }
264
283
 
265
284
  return payload;
266
285
  }
267
286
 
268
287
  export function wrapFetcher(
269
- fn: (config: fetcherConfig) => Promise<fetcherResult>
288
+ fn: (config: fetcherConfig) => Promise<fetcherResult>,
289
+ tracker?: (eventTrack: EventTrack, data: any) => void
270
290
  ): (api: Api, data: object, options?: object) => Promise<Payload | void> {
271
291
  return function (api, data, options) {
272
292
  api = buildApi(api, data, options) as ApiObject;
@@ -296,6 +316,15 @@ export function wrapFetcher(
296
316
  api.headers['Content-Type'] = 'application/json';
297
317
  }
298
318
 
319
+ tracker?.(
320
+ {eventType: 'api', eventData: omit(api, ['config', 'data', 'body'])},
321
+ api.data
322
+ );
323
+
324
+ if (api.method?.toLocaleLowerCase() === 'jsonp') {
325
+ return wrapAdaptor(jsonpFetcher(api), api);
326
+ }
327
+
299
328
  if (typeof api.cache === 'number' && api.cache > 0) {
300
329
  const apiCache = getApiCache(api);
301
330
  return wrapAdaptor(
@@ -338,6 +367,71 @@ export function wrapAdaptor(promise: Promise<fetcherResult>, api: ApiObject) {
338
367
  : promise.then(ret => responseAdaptor(ret, api));
339
368
  }
340
369
 
370
+ export function jsonpFetcher(api: ApiObject): Promise<fetcherResult> {
371
+ return new Promise((resolve, reject) => {
372
+ let script: HTMLScriptElement | null = document.createElement('script');
373
+ let src = api.url;
374
+
375
+ script.async = true;
376
+
377
+ function remove() {
378
+ if (script) {
379
+ // @ts-ignore
380
+ script.onload = script.onreadystatechange = script.onerror = null;
381
+
382
+ if (script.parentNode) {
383
+ script.parentNode.removeChild(script);
384
+ }
385
+
386
+ script = null;
387
+ }
388
+ }
389
+
390
+ const jsonp = api.query?.callback || 'axiosJsonpCallback' + uuid();
391
+ const old = (window as any)[jsonp];
392
+
393
+ (window as any)[jsonp] = function (responseData: any) {
394
+ (window as any)[jsonp] = old;
395
+
396
+ const response = {
397
+ data: responseData,
398
+ status: 200,
399
+ headers: {}
400
+ };
401
+
402
+ resolve(response);
403
+ };
404
+
405
+ const additionalParams: any = {
406
+ _: new Date().getTime(),
407
+ _callback: jsonp
408
+ };
409
+
410
+ src += (src.indexOf('?') >= 0 ? '&' : '?') + qsstringify(additionalParams);
411
+
412
+ // @ts-ignore IE 为script.onreadystatechange
413
+ script.onload = script.onreadystatechange = function () {
414
+ // @ts-ignore
415
+ if (!script.readyState || /loaded|complete/.test(script.readyState)) {
416
+ remove();
417
+ }
418
+ };
419
+
420
+ script.onerror = function () {
421
+ remove();
422
+ const errResponse = {
423
+ status: 0,
424
+ headers: {}
425
+ };
426
+
427
+ reject(errResponse);
428
+ };
429
+
430
+ script.src = src;
431
+ document.head.appendChild(script);
432
+ });
433
+ }
434
+
341
435
  export function isApiOutdated(
342
436
  prevApi: Api | undefined,
343
437
  nextApi: Api | undefined,
package/src/utils/dom.tsx CHANGED
@@ -267,3 +267,15 @@ export function calculatePosition(
267
267
  activePlacement
268
268
  };
269
269
  }
270
+
271
+ /**
272
+ * 专门用来获取样式的像素值,默认返回 0
273
+ */
274
+ export function getStyleNumber(element: HTMLElement, styleName: string) {
275
+ if (!element) {
276
+ return 0;
277
+ }
278
+ return (
279
+ parseInt(getComputedStyle(element).getPropertyValue(styleName), 10) || 0
280
+ );
281
+ }
@@ -10,55 +10,43 @@ import {IIRendererStore} from '../store';
10
10
  import {IFormStore} from '../store/form';
11
11
  import {autobindMethod} from './autobind';
12
12
  import {
13
+ createObject,
14
+ cloneObject,
15
+ isObject,
16
+ string2regExp,
17
+ getVariable,
18
+ setVariable,
19
+ deleteVariable,
20
+ keyToPath,
13
21
  isPureVariable,
14
22
  resolveVariable,
15
23
  resolveVariableAndFilter
16
- } from './tpl-builtin';
24
+ } from 'amis-formula';
17
25
  import {isObservable} from 'mobx';
18
26
 
19
- // 方便取值的时候能够把上层的取到,但是获取的时候不会全部把所有的数据获取到。
20
- export function createObject(
21
- superProps?: {[propName: string]: any},
22
- props?: {[propName: string]: any},
23
- properties?: any
24
- ): object {
25
- if (superProps && Object.isFrozen(superProps)) {
26
- superProps = cloneObject(superProps);
27
- }
28
-
29
- const obj = superProps
30
- ? Object.create(superProps, {
31
- ...properties,
32
- __super: {
33
- value: superProps,
34
- writable: false,
35
- enumerable: false
36
- }
37
- })
38
- : Object.create(Object.prototype, properties);
27
+ export {
28
+ createObject,
29
+ cloneObject,
30
+ isObject,
31
+ string2regExp,
32
+ getVariable,
33
+ setVariable,
34
+ deleteVariable,
35
+ keyToPath
36
+ };
39
37
 
40
- props &&
41
- isObject(props) &&
42
- Object.keys(props).forEach(key => (obj[key] = props[key]));
38
+ export function preventDefault(event: TouchEvent | Event): void {
39
+ if (typeof event.cancelable !== 'boolean' || event.cancelable) {
40
+ event.preventDefault();
41
+ }
42
+ }
43
43
 
44
- return obj;
44
+ export function isMobile() {
45
+ return (window as any).matchMedia?.('(max-width: 768px)').matches;
45
46
  }
46
47
 
47
- export function cloneObject(target: any, persistOwnProps: boolean = true) {
48
- const obj =
49
- target && target.__super
50
- ? Object.create(target.__super, {
51
- __super: {
52
- value: target.__super,
53
- writable: false,
54
- enumerable: false
55
- }
56
- })
57
- : Object.create(Object.prototype);
58
- persistOwnProps &&
59
- target &&
60
- Object.keys(target).forEach(key => (obj[key] = target[key]));
61
- return obj;
48
+ export function range(num: number, min: number, max: number): number {
49
+ return Math.min(Math.max(num, min), max);
62
50
  }
63
51
 
64
52
  /**
@@ -156,96 +144,6 @@ export function findIndex(
156
144
  return -1;
157
145
  }
158
146
 
159
- export function getVariable(
160
- data: {[propName: string]: any},
161
- key: string | undefined,
162
- canAccessSuper: boolean = true
163
- ): any {
164
- if (!data || !key) {
165
- return undefined;
166
- } else if (canAccessSuper ? key in data : data.hasOwnProperty(key)) {
167
- return data[key];
168
- }
169
-
170
- return keyToPath(key).reduce(
171
- (obj, key) =>
172
- obj &&
173
- typeof obj === 'object' &&
174
- (canAccessSuper ? key in obj : obj.hasOwnProperty(key))
175
- ? obj[key]
176
- : undefined,
177
- data
178
- );
179
- }
180
-
181
- export function setVariable(
182
- data: {[propName: string]: any},
183
- key: string,
184
- value: any,
185
- convertKeyToPath?: boolean
186
- ) {
187
- data = data || {};
188
-
189
- if (key in data) {
190
- data[key] = value;
191
- return;
192
- }
193
-
194
- const parts = convertKeyToPath !== false ? keyToPath(key) : [key];
195
- const last = parts.pop() as string;
196
-
197
- while (parts.length) {
198
- let key = parts.shift() as string;
199
- if (isPlainObject(data[key])) {
200
- data = data[key] = {
201
- ...data[key]
202
- };
203
- } else if (Array.isArray(data[key])) {
204
- data[key] = data[key].concat();
205
- data = data[key];
206
- } else if (data[key]) {
207
- // throw new Error(`目标路径不是纯对象,不能覆盖`);
208
- // 强行转成对象
209
- data[key] = {};
210
- data = data[key];
211
- } else {
212
- data[key] = {};
213
- data = data[key];
214
- }
215
- }
216
-
217
- data[last] = value;
218
- }
219
-
220
- export function deleteVariable(data: {[propName: string]: any}, key: string) {
221
- if (!data) {
222
- return;
223
- } else if (data.hasOwnProperty(key)) {
224
- delete data[key];
225
- return;
226
- }
227
-
228
- const parts = keyToPath(key);
229
- const last = parts.pop() as string;
230
-
231
- while (parts.length) {
232
- let key = parts.shift() as string;
233
- if (isPlainObject(data[key])) {
234
- data = data[key] = {
235
- ...data[key]
236
- };
237
- } else if (data[key]) {
238
- throw new Error(`目标路径不是纯对象,不能修改`);
239
- } else {
240
- break;
241
- }
242
- }
243
-
244
- if (data && data.hasOwnProperty && data.hasOwnProperty(last)) {
245
- delete data[last];
246
- }
247
- }
248
-
249
147
  export function hasOwnProperty(
250
148
  data: {[propName: string]: any},
251
149
  key: string
@@ -676,18 +574,6 @@ export function __uri(id: string) {
676
574
  return id;
677
575
  }
678
576
 
679
- export function isObject(obj: any) {
680
- const typename = typeof obj;
681
- return (
682
- obj &&
683
- typename !== 'string' &&
684
- typename !== 'number' &&
685
- typename !== 'boolean' &&
686
- typename !== 'function' &&
687
- !Array.isArray(obj)
688
- );
689
- }
690
-
691
577
  // xs < 768px
692
578
  // sm >= 768px
693
579
  // md >= 992px
@@ -1240,17 +1126,6 @@ export function getLevelFromClassName(
1240
1126
  return defaultValue;
1241
1127
  }
1242
1128
 
1243
- export function string2regExp(value: string, caseSensitive = false) {
1244
- if (typeof value !== 'string') {
1245
- throw new TypeError('Expected a string');
1246
- }
1247
-
1248
- return new RegExp(
1249
- value.replace(/[|\\{}()[\]^$+*?.]/g, '\\$&').replace(/-/g, '\\x2d'),
1250
- !caseSensitive ? 'i' : ''
1251
- );
1252
- }
1253
-
1254
1129
  export function pickEventsProps(props: any) {
1255
1130
  const ret: any = {};
1256
1131
  props &&
@@ -1452,38 +1327,6 @@ export function loadScript(src: string) {
1452
1327
 
1453
1328
  export class SkipOperation extends Error {}
1454
1329
 
1455
- /**
1456
- * 将例如像 a.b.c 或 a[1].b 的字符串转换为路径数组
1457
- *
1458
- * @param string 要转换的字符串
1459
- */
1460
- export const keyToPath = (string: string) => {
1461
- const result = [];
1462
-
1463
- if (string.charCodeAt(0) === '.'.charCodeAt(0)) {
1464
- result.push('');
1465
- }
1466
-
1467
- string.replace(
1468
- new RegExp(
1469
- '[^.[\\]]+|\\[(?:([^"\'][^[]*)|(["\'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))',
1470
- 'g'
1471
- ),
1472
- (match, expression, quote, subString) => {
1473
- let key = match;
1474
- if (quote) {
1475
- key = subString.replace(/\\(\\)?/g, '$1');
1476
- } else if (expression) {
1477
- key = expression.trim();
1478
- }
1479
- result.push(key);
1480
- return '';
1481
- }
1482
- );
1483
-
1484
- return result;
1485
- };
1486
-
1487
1330
  /**
1488
1331
  * 检查对象是否有循环引用,来自 https://stackoverflow.com/a/34909127
1489
1332
  * @param obj
@@ -1698,3 +1541,30 @@ export function isClickOnInput(e: React.MouseEvent<HTMLElement>) {
1698
1541
  }
1699
1542
  return false;
1700
1543
  }
1544
+
1545
+ // 计算字符串 hash
1546
+ export function hashCode(s: string): number {
1547
+ return s.split('').reduce((a, b) => {
1548
+ a = (a << 5) - a + b.charCodeAt(0);
1549
+ return a & a;
1550
+ }, 0);
1551
+ }
1552
+
1553
+ /**
1554
+ * 遍历 schema
1555
+ * @param json
1556
+ * @param mapper
1557
+ */
1558
+ export function JSONTraverse(
1559
+ json: any,
1560
+ mapper: (value: any, key: string | number, host: Object) => any
1561
+ ) {
1562
+ Object.keys(json).forEach(key => {
1563
+ const value: any = json[key];
1564
+ if (isPlainObject(value) || Array.isArray(value)) {
1565
+ JSONTraverse(value, mapper);
1566
+ } else {
1567
+ mapper(value, key, json);
1568
+ }
1569
+ });
1570
+ }