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
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import PopOverContainer from '../PopOverContainer';
3
- import ListRadios from '../ListRadios';
3
+ import ListSelection from '../GroupedSelection';
4
4
  import ResultBox from '../ResultBox';
5
5
  import {ClassNamesFn, ThemeProps, themeable} from '../../theme';
6
6
  import {Icon} from '../icons';
@@ -90,13 +90,15 @@ export class ConditionField extends React.Component<
90
90
  {searchable ? (
91
91
  <SearchBox mini={false} onSearch={this.onSearch} />
92
92
  ) : null}
93
- <ListRadios
93
+ <ListSelection
94
+ multiple={false}
94
95
  onClick={e => this.onPopClose(e, onClose)}
95
- showRadio={false}
96
96
  options={this.state.options}
97
- value={value}
97
+ value={[value]}
98
98
  option2value={option2value}
99
- onChange={onChange}
99
+ onChange={(value: any) =>
100
+ onChange(Array.isArray(value) ? value[0] : value)
101
+ }
100
102
  />
101
103
  </>
102
104
  )}
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import {Func, ExpressionFunc, Field, Funcs} from './types';
3
3
  import {ThemeProps, themeable} from '../../theme';
4
4
  import PopOverContainer from '../PopOverContainer';
5
- import ListRadios from '../ListRadios';
5
+ import GroupedSelection from '../GroupedSelection';
6
6
  import {autobind, findTree, noop} from '../../utils/helper';
7
7
  import ResultBox from '../ResultBox';
8
8
  import {Icon} from '../icons';
@@ -77,13 +77,13 @@ export class ConditionFunc extends React.Component<ConditionFuncProps> {
77
77
  <div className={cx('CBFunc')}>
78
78
  <PopOverContainer
79
79
  popOverRender={({onClose}) => (
80
- <ListRadios
80
+ <GroupedSelection
81
81
  onClick={onClose}
82
- showRadio={false}
83
82
  options={funcs!}
84
83
  value={(func as Func)?.type}
85
84
  option2value={option2value}
86
85
  onChange={this.handleFuncChange}
86
+ multiple={false}
87
87
  />
88
88
  )}
89
89
  >
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import PopOverContainer from '../PopOverContainer';
3
3
  import {Icon} from '../icons';
4
- import ListRadios from '../ListRadios';
4
+ import GroupedSelection from '../GroupedSelection';
5
5
  import {ClassNamesFn, themeable, ThemeProps} from '../../theme';
6
6
 
7
7
  export interface InputSwitchProps extends ThemeProps {
@@ -23,13 +23,13 @@ export function InputSwitch({
23
23
  return (
24
24
  <PopOverContainer
25
25
  popOverRender={({onClose}) => (
26
- <ListRadios
26
+ <GroupedSelection
27
27
  onClick={onClose}
28
28
  option2value={option2value}
29
29
  onChange={onChange}
30
30
  options={options}
31
31
  value={value}
32
- showRadio={false}
32
+ multiple={false}
33
33
  disabled={disabled}
34
34
  />
35
35
  )}
@@ -18,7 +18,7 @@ import {autobind, findTree, noop} from '../../utils/helper';
18
18
  import Expression from './Expression';
19
19
  import {Config, OperationMap} from './config';
20
20
  import PopOverContainer from '../PopOverContainer';
21
- import ListRadios from '../ListRadios';
21
+ import GroupedSelection from '../GroupedSelection';
22
22
  import ResultBox from '../ResultBox';
23
23
  import {localeable, LocaleProps} from '../../locale';
24
24
 
@@ -100,15 +100,8 @@ export class ConditionItem extends React.Component<ConditionItemProps> {
100
100
  }
101
101
 
102
102
  renderLeft() {
103
- const {
104
- value,
105
- fields,
106
- funcs,
107
- config,
108
- disabled,
109
- fieldClassName,
110
- searchable
111
- } = this.props;
103
+ const {value, fields, funcs, config, disabled, fieldClassName, searchable} =
104
+ this.props;
112
105
  return (
113
106
  <Expression
114
107
  config={config}
@@ -158,7 +151,7 @@ export class ConditionItem extends React.Component<ConditionItemProps> {
158
151
  return (
159
152
  <PopOverContainer
160
153
  popOverRender={({onClose}) => (
161
- <ListRadios
154
+ <GroupedSelection
162
155
  onClick={onClose}
163
156
  option2value={option2value}
164
157
  onChange={this.handleOperatorChange}
@@ -167,7 +160,7 @@ export class ConditionItem extends React.Component<ConditionItemProps> {
167
160
  value: operator
168
161
  }))}
169
162
  value={value.op}
170
- showRadio={false}
163
+ multiple={false}
171
164
  />
172
165
  )}
173
166
  >
@@ -24,6 +24,7 @@ import ViewIcon from '../icons/view.svg';
24
24
  import RemoveIcon from '../icons/remove.svg';
25
25
  import RetryIcon from '../icons/retry.svg';
26
26
  import UploadIcon from '../icons/upload.svg';
27
+ import DownloadIcon from '../icons/download.svg';
27
28
  import FileIcon from '../icons/file.svg';
28
29
  import StatusSuccessIcon from '../icons/status-success.svg';
29
30
  import StatusFailIcon from '../icons/status-fail.svg';
@@ -69,6 +70,10 @@ import ExpandAltIcon from '../icons/expand-alt.svg';
69
70
  import CompressAltIcon from '../icons/compress-alt.svg';
70
71
  import TransparentIcon from '../icons/transparent.svg';
71
72
  import LoadingOutline from '../icons/loading-outline.svg';
73
+ import AlertSuccess from '../icons/alert-success.svg';
74
+ import AlertInfo from '../icons/alert-info.svg';
75
+ import AlertWarning from '../icons/alert-warning.svg';
76
+ import AlertDanger from '../icons/alert-danger.svg';
72
77
 
73
78
  // 兼容原来的用法,后续不直接试用。
74
79
 
@@ -120,6 +125,7 @@ registerIcon('view', ViewIcon);
120
125
  registerIcon('remove', RemoveIcon);
121
126
  registerIcon('retry', RetryIcon);
122
127
  registerIcon('upload', UploadIcon);
128
+ registerIcon('download', DownloadIcon);
123
129
  registerIcon('file', FileIcon);
124
130
  registerIcon('status-success', StatusSuccessIcon);
125
131
  registerIcon('status-fail', StatusFailIcon);
@@ -164,6 +170,10 @@ registerIcon('expand-alt', ExpandAltIcon);
164
170
  registerIcon('compress-alt', CompressAltIcon);
165
171
  registerIcon('transparent', TransparentIcon);
166
172
  registerIcon('loading-outline', LoadingOutline);
173
+ registerIcon('alert-success', AlertSuccess);
174
+ registerIcon('alert-info', AlertInfo);
175
+ registerIcon('alert-warning', AlertWarning);
176
+ registerIcon('alert-danger', AlertDanger);
167
177
 
168
178
  export function Icon({
169
179
  icon,
@@ -10,7 +10,7 @@ import {default as ContextMenu, openContextMenus} from './ContextMenu';
10
10
  import AsideNav from './AsideNav';
11
11
  import Button from './Button';
12
12
  import Checkbox from './Checkbox';
13
- import Checkboxes from './Checkboxes';
13
+ import Checkboxes from './Selection';
14
14
  import Collapse from './Collapse';
15
15
  import DatePicker from './DatePicker';
16
16
  import DateRangePicker from './DateRangePicker';
@@ -41,19 +41,19 @@ import Tree from './Tree';
41
41
  import Alert2 from './Alert2';
42
42
  import Transfer from './Transfer';
43
43
  import TabsTransfer from './TabsTransfer';
44
- import ListCheckboxes from './ListCheckboxes';
45
- import TableCheckboxes from './TableCheckboxes';
46
- import TreeCheckboxes from './TreeCheckboxes';
47
- import ChainedCheckboxes from './ChainedCheckboxes';
48
44
  import ResultBox from './ResultBox';
49
45
  import InputBox from './InputBox';
50
- import ListRadios from './ListRadios';
51
- import TreeRadios from './TreeRadios';
52
46
  import ListGroup from './ListGroup';
53
47
  import NumberInput from './NumberInput';
54
48
  import ArrayInput from './ArrayInput';
55
49
  import SearchBox from './SearchBox';
56
50
  import AnchorNav from './AnchorNav';
51
+ import Selection from './Selection';
52
+ import GroupedSelection from './GroupedSelection';
53
+ import ChainedSelection from './ChainedSelection';
54
+ import TableSelection from './TableSelection';
55
+ import TreeSelection from './TreeSelection';
56
+ import AssociatedSelection from './AssociatedSelection';
57
57
 
58
58
  export {
59
59
  NotFound,
@@ -99,15 +99,15 @@ export {
99
99
  Tree,
100
100
  Transfer,
101
101
  TabsTransfer,
102
- ListCheckboxes,
103
- TableCheckboxes,
104
- TreeCheckboxes,
105
- ChainedCheckboxes,
102
+ Selection,
103
+ GroupedSelection,
104
+ ChainedSelection,
105
+ TableSelection,
106
+ TreeSelection,
107
+ AssociatedSelection,
106
108
  ResultBox,
107
109
  InputBox,
108
- ListRadios,
109
110
  SearchBox,
110
- TreeRadios,
111
111
  ListGroup,
112
112
  NumberInput,
113
113
  ArrayInput,
@@ -4,19 +4,31 @@
4
4
 
5
5
  import {SchemaNode, Schema} from './types';
6
6
  import {RendererProps, RendererConfig, addSchemaFilter} from './factory';
7
-
7
+ import {findObjectsWithKey} from './utils/helper';
8
8
  const isMobile = (window as any).matchMedia?.('(max-width: 768px)').matches
9
9
  ? true
10
10
  : false;
11
11
 
12
- addSchemaFilter(function (schema: Schema, renderer, props?: any) {
13
- if (schema && schema.mobile && isMobile) {
14
- return {...schema, ...schema.mobile};
12
+ // 这里不能用 addSchemaFilter 是因为还需要更深层的替换,比如 select 里的 options
13
+ export const envOverwrite = (schema: any, locale?: string) => {
14
+ if (schema.mobile && isMobile) {
15
+ Object.assign(schema, schema.mobile);
16
+ delete schema.mobile;
15
17
  }
16
18
 
17
- if (props?.locale && schema[props.locale]) {
18
- return {...schema, ...schema[props.locale]};
19
+ if (locale) {
20
+ let schemaNodes = findObjectsWithKey(schema, locale);
21
+ for (let schemaNode of schemaNodes) {
22
+ Object.assign(schemaNode, schemaNode[locale]);
23
+ delete schemaNode[locale];
24
+ }
19
25
  }
20
26
 
21
- return schema;
22
- });
27
+ if (isMobile) {
28
+ let schemaNodes = findObjectsWithKey(schema, 'mobile');
29
+ for (let schemaNode of schemaNodes) {
30
+ Object.assign(schemaNode, schemaNode['mobile']);
31
+ delete schemaNode['mobile'];
32
+ }
33
+ }
34
+ };
package/src/factory.tsx CHANGED
@@ -3,8 +3,24 @@ import {RendererStore, IRendererStore, IIRendererStore} from './store/index';
3
3
  import {getEnv, destroy} from 'mobx-state-tree';
4
4
  import {wrapFetcher} from './utils/api';
5
5
  import {normalizeLink} from './utils/normalizeLink';
6
- import {findIndex, promisify, qsparse, string2regExp} from './utils/helper';
7
- import {Api, fetcherResult, Payload, SchemaNode, Schema, Action} from './types';
6
+ import {
7
+ findIndex,
8
+ isObject,
9
+ JSONTraverse,
10
+ promisify,
11
+ qsparse,
12
+ string2regExp
13
+ } from './utils/helper';
14
+ import {
15
+ Api,
16
+ fetcherResult,
17
+ Payload,
18
+ SchemaNode,
19
+ Schema,
20
+ Action,
21
+ EventTrack,
22
+ PlainObject
23
+ } from './types';
8
24
  import {observer} from 'mobx-react';
9
25
  import Scoped from './Scoped';
10
26
  import {getTheme, ThemeInstance, ThemeProps} from './theme';
@@ -16,6 +32,7 @@ import {getDefaultLocale, makeTranslator, LocaleProps} from './locale';
16
32
  import ScopedRootRenderer, {RootRenderProps} from './Root';
17
33
  import {HocStoreFactory} from './WithStore';
18
34
  import {EnvContext, RendererEnv} from './env';
35
+ import {envOverwrite} from './envOverwrite';
19
36
 
20
37
  export interface TestFunc {
21
38
  (
@@ -58,6 +75,10 @@ export interface RendererProps extends ThemeProps, LocaleProps {
58
75
  };
59
76
  defaultData?: object;
60
77
  className?: any;
78
+ /**
79
+ * 是否使用移动端交互
80
+ */
81
+ useMobileUI?: boolean;
61
82
  [propName: string]: any;
62
83
  }
63
84
 
@@ -114,12 +135,20 @@ export interface RenderOptions {
114
135
  affixOffsetTop?: number;
115
136
  affixOffsetBottom?: number;
116
137
  richTextToken?: string;
138
+ /**
139
+ * 替换文本,用于实现 URL 替换、语言替换等
140
+ */
141
+ replaceText?: {[propName: string]: any};
142
+ /**
143
+ * 文本替换的黑名单,因为属性太多了所以改成黑名单的 fangs
144
+ */
145
+ replaceTextIgnoreKeys?: String[];
117
146
  [propName: string]: any;
118
147
  }
119
148
 
120
149
  export interface fetcherConfig {
121
150
  url: string;
122
- method?: 'get' | 'post' | 'put' | 'patch' | 'delete';
151
+ method?: 'get' | 'post' | 'put' | 'patch' | 'delete' | 'jsonp';
123
152
  data?: any;
124
153
  config?: any;
125
154
  }
@@ -262,19 +291,19 @@ const defaultOptions: RenderOptions = {
262
291
  },
263
292
  isCancel() {
264
293
  console.error(
265
- 'Please implements this. see https://baidu.gitee.io/amis/docs/start/getting-started#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97'
294
+ 'Please implement isCancel. see https://baidu.gitee.io/amis/docs/start/getting-started#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97'
266
295
  );
267
296
  return false;
268
297
  },
269
298
  updateLocation() {
270
299
  console.error(
271
- 'Please implements this. see https://baidu.gitee.io/amis/docs/start/getting-started#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97'
300
+ 'Please implement updateLocation. see https://baidu.gitee.io/amis/docs/start/getting-started#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97'
272
301
  );
273
302
  },
274
303
  alert,
275
304
  confirm,
276
305
  notify: (type, msg, conf) =>
277
- toast[type] ? toast[type](msg) : console.warn('[Notify]', type, msg),
306
+ toast[type] ? toast[type](msg, conf) : console.warn('[Notify]', type, msg),
278
307
 
279
308
  jumpTo: (to: string, action?: any) => {
280
309
  if (to === 'goBack') {
@@ -320,7 +349,17 @@ const defaultOptions: RenderOptions = {
320
349
  copy(contents: string) {
321
350
  console.error('copy contents', contents);
322
351
  },
323
- rendererResolver: resolveRenderer
352
+ // 用于跟踪用户在界面中的各种操作
353
+ tracker(eventTrack: EventTrack, props: PlainObject) {},
354
+ rendererResolver: resolveRenderer,
355
+ replaceTextIgnoreKeys: [
356
+ 'type',
357
+ 'name',
358
+ 'mode',
359
+ 'target',
360
+ 'reload',
361
+ 'persistData'
362
+ ]
324
363
  };
325
364
  let stores: {
326
365
  [propName: string]: IRendererStore;
@@ -340,12 +379,15 @@ export function render(
340
379
  const translate = props.translate || makeTranslator(locale);
341
380
  let store = stores[options.session || 'global'];
342
381
 
382
+ // 根据环境覆盖 schema,这个要在最前面做,不然就无法覆盖 validations
383
+ envOverwrite(schema, locale);
384
+
343
385
  if (!store) {
344
386
  options = {
345
387
  ...defaultOptions,
346
388
  ...options,
347
389
  fetcher: options.fetcher
348
- ? wrapFetcher(options.fetcher)
390
+ ? wrapFetcher(options.fetcher, options.tracker)
349
391
  : defaultOptions.fetcher,
350
392
  confirm: promisify(
351
393
  options.confirm || defaultOptions.confirm || window.confirm
@@ -372,6 +414,25 @@ export function render(
372
414
  env.locale = locale;
373
415
  }
374
416
 
417
+ // 进行文本替换
418
+ if (env.replaceText && isObject(env.replaceText)) {
419
+ const replaceKeys = Object.keys(env.replaceText);
420
+ replaceKeys.sort().reverse(); // 避免用户将短的放前面
421
+ const replaceTextIgnoreKeys = new Set(env.replaceTextIgnoreKeys || []);
422
+ JSONTraverse(schema, (value: any, key: string, object: any) => {
423
+ if (typeof value === 'string' && !replaceTextIgnoreKeys.has(key)) {
424
+ for (const replaceKey of replaceKeys) {
425
+ if (~value.indexOf(replaceKey)) {
426
+ object[key] = value.replaceAll(
427
+ replaceKey,
428
+ env.replaceText[replaceKey]
429
+ );
430
+ }
431
+ }
432
+ }
433
+ });
434
+ }
435
+
375
436
  return (
376
437
  <EnvContext.Provider value={env}>
377
438
  <ScopedRootRenderer
@@ -416,7 +477,7 @@ export function updateEnv(options: Partial<RenderOptions>, session = 'global') {
416
477
  };
417
478
 
418
479
  if (options.fetcher) {
419
- options.fetcher = wrapFetcher(options.fetcher) as any;
480
+ options.fetcher = wrapFetcher(options.fetcher, options.tracker) as any;
420
481
  }
421
482
 
422
483
  if (options.confirm) {
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @file 常用 hooks
3
+ */
4
+ export {default as useSetState} from './use-set-state';
5
+ export {default as useUpdateEffect} from './use-update-effect';
@@ -0,0 +1,19 @@
1
+ import {useCallback, useState} from 'react';
2
+ import isFunction from 'lodash/isFunction';
3
+
4
+ const useSetState = <T extends object>(
5
+ initialState: T = {} as T
6
+ ): [T, (patch: Partial<T> | ((prevState: T) => Partial<T>)) => void] => {
7
+ const [state, setState] = useState<T>(initialState);
8
+
9
+ const setMergeState = useCallback(patch => {
10
+ setState(prevState => ({
11
+ ...prevState,
12
+ ...(isFunction(patch) ? patch(prevState) : patch)
13
+ }));
14
+ }, []);
15
+
16
+ return [state, setMergeState];
17
+ };
18
+
19
+ export default useSetState;
@@ -0,0 +1,100 @@
1
+ import {useCallback, useRef} from 'react';
2
+
3
+ const MIN_DISTANCE = 10;
4
+
5
+ type Direction = '' | 'vertical' | 'horizontal';
6
+
7
+ function getDirection(x: number, y: number) {
8
+ if (x > y && x > MIN_DISTANCE) {
9
+ return 'horizontal';
10
+ }
11
+ if (y > x && y > MIN_DISTANCE) {
12
+ return 'vertical';
13
+ }
14
+ return '';
15
+ }
16
+
17
+ const INITIAL_STATE = {
18
+ startX: 0,
19
+ startY: 0,
20
+ deltaX: 0,
21
+ deltaY: 0,
22
+ offsetX: 0,
23
+ offsetY: 0,
24
+ direction: '' as Direction
25
+ };
26
+
27
+ type StateType = Partial<typeof INITIAL_STATE>;
28
+ type StateFunctionType = (value: StateType) => typeof INITIAL_STATE;
29
+
30
+ const useTouch = () => {
31
+ const refState = useRef(INITIAL_STATE);
32
+ const innerState = refState.current;
33
+
34
+ const update = (value: StateType | StateFunctionType) => {
35
+ if (typeof value === 'function') {
36
+ value = value(refState.current);
37
+ }
38
+ Object.entries(value).forEach(([k, v]) => {
39
+ //@ts-ignore
40
+ refState.current[k] = v;
41
+ });
42
+ };
43
+
44
+ const isVertical = useCallback(
45
+ () => innerState.direction === 'vertical',
46
+ [innerState.direction]
47
+ );
48
+ const isHorizontal = useCallback(
49
+ () => innerState.direction === 'horizontal',
50
+ [innerState.direction]
51
+ );
52
+
53
+ const reset = () => {
54
+ update({
55
+ deltaX: 0,
56
+ deltaY: 0,
57
+ offsetX: 0,
58
+ offsetY: 0,
59
+ direction: ''
60
+ });
61
+ };
62
+
63
+ const start = ((event: TouchEvent) => {
64
+ reset();
65
+ update({
66
+ startX: event.touches[0].clientX,
67
+ startY: event.touches[0].clientY
68
+ });
69
+ }) as EventListener;
70
+
71
+ const move = ((event: TouchEvent) => {
72
+ const touch = event.touches[0];
73
+
74
+ update(value => {
75
+ // Fix: Safari back will set clientX to negative number
76
+ const newState = {...value} as typeof innerState;
77
+
78
+ newState.deltaX = touch.clientX < 0 ? 0 : touch.clientX - newState.startX;
79
+ newState.deltaY = touch.clientY - newState.startY;
80
+ newState.offsetX = Math.abs(newState.deltaX);
81
+ newState.offsetY = Math.abs(newState.deltaY);
82
+
83
+ if (!newState.direction) {
84
+ newState.direction = getDirection(newState.offsetX, newState.offsetY);
85
+ }
86
+ return newState;
87
+ });
88
+ }) as EventListener;
89
+
90
+ return {
91
+ ...innerState,
92
+ move,
93
+ start,
94
+ reset,
95
+ isVertical,
96
+ isHorizontal
97
+ };
98
+ };
99
+
100
+ export default useTouch;
@@ -0,0 +1,16 @@
1
+ import {useEffect, useRef} from 'react';
2
+
3
+ const useUpdateEffect: typeof useEffect = (effect, deps) => {
4
+ const isMounted = useRef(false);
5
+
6
+ useEffect(() => {
7
+ if (!isMounted.current) {
8
+ isMounted.current = true;
9
+ } else {
10
+ return effect();
11
+ }
12
+ return undefined;
13
+ }, deps);
14
+ };
15
+
16
+ export default useUpdateEffect;
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="16px" fill="currentColor"><path d="M667.904 704.32L508.992 546.56l-157.888 158.912-45.376-45.056 157.824-158.976L304.64 343.488l45.12-45.376 158.912 157.824 157.888-158.848 45.44 45.056L553.984 501.12l158.976 157.888-45.12 45.44zM510.528 64a448 448 0 1 0 2.944 896 448 448 0 0 0-2.944-896z" fill="#E8684A"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="16px" fill="currentColor"><path d="M512 64A448 448 0 1 1 512 960 448 448 0 0 1 512 64z m32 354.944h-64V768h64V418.944zM512 256a38.4 38.4 0 1 0-0.128 76.672A38.4 38.4 0 0 0 512 256z" fill="#2468F2"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="16px" fill="currentColor"><path d="M449.856 706.56l-45.44-45.056 0.128-0.064L268.16 526.016l45.12-45.44 136.32 135.488 270.592-272.384 45.376 45.056-315.712 317.888zM510.528 64A448 448 0 1 0 960 510.528 448 448 0 0 0 510.528 64z" fill="#0BC286"></path></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1024 1024" width="16px" fill="currentColor"><path d="M512 64A448 448 0 1 1 512 960 448 448 0 0 1 512 64z m0 627.2A38.4 38.4 0 1 0 512 768a38.4 38.4 0 0 0 0-76.8zM544 256h-64v349.12h64V256z" fill="#FFB200"></path></svg>
@@ -0,0 +1,4 @@
1
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="download" class="svg-inline--fa fa-download fa-w-16" role="img"
2
+ xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
3
+ <path fill="currentColor" d="M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"></path>
4
+ </svg>
@@ -1,7 +1,13 @@
1
- <svg viewBox="0 0 428 684" version="1.1"
2
- xmlns="http://www.w3.org/2000/svg"
3
- xmlns:xlink="http://www.w3.org/1999/xlink">
4
- <g id="drag-bar" fill="currentColor" fill-rule="nonzero">
5
- <path d="M171.333333,86 C171.333333,133.128298 133.128298,171.333333 86,171.333333 C38.8717015,171.333333 0.666667,133.128298 0.666667,86 C0.666667,38.8717015 38.8717015,0.666667 86,0.666667 C133.128298,0.666667 171.333333,38.8717015 171.333333,86 L171.333333,86 Z M86,256.666667 C38.8717015,256.666667 0.666667,294.871702 0.666667,342 C0.666667,389.128298 38.8717015,427.333333 86,427.333333 C133.128298,427.333333 171.333333,389.128298 171.333333,342 C171.333333,294.871702 133.128298,256.666667 86,256.666667 L86,256.666667 Z M86,512.666667 C38.8717015,512.666667 0.666667,550.871702 0.666667,598 C0.666667,645.128298 38.8717015,683.333333 86,683.333333 C133.128298,683.333333 171.333333,645.128298 171.333333,598 C171.333333,550.871702 133.128298,512.666667 86,512.666667 L86,512.666667 Z M342,171.333333 C389.128298,171.333333 427.333333,133.128298 427.333333,86 C427.333333,38.8717015 389.128298,0.666667 342,0.666667 C294.871702,0.666667 256.666667,38.8717015 256.666667,86 C256.666667,133.128298 294.871702,171.333333 342,171.333333 L342,171.333333 Z M342,256.666667 C294.871702,256.666667 256.666667,294.871702 256.666667,342 C256.666667,389.128298 294.871702,427.333333 342,427.333333 C389.128298,427.333333 427.333333,389.128298 427.333333,342 C427.333333,294.871702 389.128298,256.666667 342,256.666667 L342,256.666667 Z M342,512.666667 C294.871702,512.666667 256.666667,550.871702 256.666667,598 C256.666667,645.128298 294.871702,683.333333 342,683.333333 C389.128298,683.333333 427.333333,645.128298 427.333333,598 C427.333333,575.368193 418.342883,553.663326 402.339778,537.660222 C386.336674,521.657117 364.631807,512.666667 342,512.666667 L342,512.666667 Z" id="形状"></path>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <g transform="translate(5.000000, 1.000000)" stroke-width="1" stroke="currentColor">
4
+ <circle cx="1" cy="1" r="1"></circle>
5
+ <circle cx="5" cy="1" r="1"></circle>
6
+ <circle cx="1" cy="5" r="1"></circle>
7
+ <circle cx="5" cy="5" r="1"></circle>
8
+ <circle cx="1" cy="9" r="1"></circle>
9
+ <circle cx="5" cy="9" r="1"></circle>
10
+ <circle cx="1" cy="13" r="1"></circle>
11
+ <circle cx="5" cy="13" r="1"></circle>
6
12
  </g>
7
- </svg>
13
+ </svg>
package/src/index.tsx CHANGED
@@ -56,6 +56,7 @@ import './renderers/Form/ButtonToolbar';
56
56
  import './renderers/Breadcrumb';
57
57
  import './renderers/DropDownButton';
58
58
  import './renderers/Collapse';
59
+ import './renderers/CollapseGroup';
59
60
  import './renderers/Color';
60
61
  import './renderers/CRUD';
61
62
  import './renderers/Pagination';
@@ -111,12 +112,14 @@ import './renderers/Form/InputColor';
111
112
  import './renderers/Form/ChainedSelect';
112
113
  import './renderers/Form/NestedSelect';
113
114
  import './renderers/Form/Transfer';
115
+ import './renderers/Form/TransferPicker';
114
116
  import './renderers/Form/InputTable';
115
117
  import './renderers/Form/Picker';
116
118
  import './renderers/Form/IconPicker';
117
119
  import './renderers/Form/Formula';
118
120
  import './renderers/Form/FieldSet';
119
121
  import './renderers/Form/TabsTransfer';
122
+ import './renderers/Form/TabsTransferPicker';
120
123
  import './renderers/Form/Group';
121
124
  import './renderers/Form/InputGroup';
122
125
  import './renderers/Grid';
@@ -133,6 +136,7 @@ import './renderers/PaginationWrapper';
133
136
  import './renderers/Panel';
134
137
  import './renderers/Plain';
135
138
  import './renderers/Property';
139
+ import './renderers/Portlet';
136
140
  import './renderers/Spinner';
137
141
  import './renderers/Table/index';
138
142
  import './renderers/Tabs';
@@ -164,6 +168,7 @@ import './renderers/Markdown';
164
168
  import './renderers/TableView';
165
169
  import './renderers/Code';
166
170
  import './renderers/WebComponent';
171
+ import './renderers/GridNav';
167
172
 
168
173
  import Scoped, {ScopedContext} from './Scoped';
169
174
 
@@ -181,6 +181,7 @@ register('de-DE', {
181
181
  'Transfer.configError': 'Konfigurationsfehler',
182
182
  'Transfer.refreshIcon': 'Zum Aktualisieren klicken',
183
183
  'Transfer.searchKeyword': 'Stichwörter eingeben',
184
+ 'Transfer.available': 'Verfügbar',
184
185
  'Transfer.selectd': 'Ausgewählt',
185
186
  'Transfer.selectFromLeft': 'Von links auswählen',
186
187
  'Tree.addChild': 'Untergeordnetes Element hinzufügen',
@@ -222,6 +223,7 @@ register('de-DE', {
222
223
  'Wizard.saveAndNext': 'Speichern & Weiter',
223
224
  'year-to-year': '{{from}} - {{to}}',
224
225
  'Year.placeholder': 'Wählen Sie ein Jahr',
226
+ 'reload': 'Neu laden',
225
227
  'rotate': 'Drehen',
226
228
  'Editor.fullscreen': 'Schirmfüllend Modus',
227
229
  'Editor.exitFullscreen': 'Zurücktreten Schirmfüllend Modus',