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
@@ -14,6 +14,9 @@ import {isEffectiveApi} from '../../utils/api';
14
14
  import {isEmpty, createObject, autobind} from '../../utils/helper';
15
15
  import {dataMapping} from '../../utils/tpl-builtin';
16
16
  import {SchemaApi} from '../../Schema';
17
+ import Spinner from '../../components/Spinner';
18
+ import {BaseTransferRenderer, TransferControlSchema} from './Transfer';
19
+ import TransferDropDown from '../../components/TransferDropDown';
17
20
 
18
21
  /**
19
22
  * Select 下拉选择框。
@@ -28,11 +31,6 @@ export interface SelectControlSchema extends FormOptionsControl {
28
31
  */
29
32
  autoComplete?: SchemaApi;
30
33
 
31
- /**
32
- * 是否可以搜索值
33
- */
34
- searchable?: boolean;
35
-
36
34
  /**
37
35
  * 可以自定义菜单展示。
38
36
  */
@@ -42,6 +40,51 @@ export interface SelectControlSchema extends FormOptionsControl {
42
40
  * 边框模式,全边框,还是半边框,或者没边框。
43
41
  */
44
42
  borderMode?: 'full' | 'half' | 'none';
43
+
44
+ /**
45
+ * 勾选展示模式
46
+ */
47
+ selectMode?: 'table' | 'group' | 'tree' | 'chained' | 'associated';
48
+
49
+ /**
50
+ * 当 selectMode 为 associated 时用来定义左侧的选项
51
+ */
52
+ leftOptions?: Array<Option>;
53
+
54
+ /**
55
+ * 当 selectMode 为 associated 时用来定义左侧的选择模式
56
+ */
57
+ leftMode?: 'tree' | 'list';
58
+
59
+ /**
60
+ * 当 selectMode 为 associated 时用来定义右侧的选择模式
61
+ */
62
+ rightMode?: 'table' | 'list' | 'tree' | 'chained';
63
+
64
+ /**
65
+ * 搜索结果展示模式
66
+ */
67
+ searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
68
+
69
+ /**
70
+ * 当 selectMode 为 table 时定义表格列信息。
71
+ */
72
+ columns?: Array<any>;
73
+
74
+ /**
75
+ * 当 searchResultMode 为 table 时定义表格列信息。
76
+ */
77
+ searchResultColumns?: Array<any>;
78
+
79
+ /**
80
+ * 可搜索?
81
+ */
82
+ searchable?: boolean;
83
+
84
+ /**
85
+ * 搜索 API
86
+ */
87
+ searchApi?: SchemaApi;
45
88
  }
46
89
 
47
90
  export interface SelectProps extends OptionsControlProps {
@@ -220,6 +263,18 @@ export default class SelectControl extends React.Component<SelectProps, any> {
220
263
  reload && reload();
221
264
  }
222
265
 
266
+ option2value() {}
267
+
268
+ renderOtherMode() {
269
+ const {selectMode, ...rest} = this.props;
270
+ return (
271
+ <TransferDropdownRenderer
272
+ {...rest}
273
+ selectMode={selectMode === 'group' ? 'list' : selectMode}
274
+ />
275
+ );
276
+ }
277
+
223
278
  render() {
224
279
  let {
225
280
  autoComplete,
@@ -241,6 +296,7 @@ export default class SelectControl extends React.Component<SelectProps, any> {
241
296
  render,
242
297
  menuTpl,
243
298
  borderMode,
299
+ selectMode,
244
300
  ...rest
245
301
  } = this.props;
246
302
 
@@ -250,25 +306,110 @@ export default class SelectControl extends React.Component<SelectProps, any> {
250
306
 
251
307
  return (
252
308
  <div className={cx(`${classPrefix}SelectControl`, className)}>
253
- <Select
254
- {...rest}
255
- borderMode={borderMode}
256
- placeholder={placeholder}
257
- multiple={multiple || multi}
258
- ref={this.inputRef}
309
+ {['table', 'list', 'group', 'tree', 'chained', 'associated'].includes(
310
+ selectMode
311
+ ) ? (
312
+ this.renderOtherMode()
313
+ ) : (
314
+ <Select
315
+ {...rest}
316
+ borderMode={borderMode}
317
+ placeholder={placeholder}
318
+ multiple={multiple || multi}
319
+ ref={this.inputRef}
320
+ value={selectedOptions}
321
+ options={options}
322
+ loadOptions={
323
+ isEffectiveApi(autoComplete) ? this.lazyloadRemote : undefined
324
+ }
325
+ creatable={creatable}
326
+ searchable={searchable || !!autoComplete}
327
+ onChange={this.changeValue}
328
+ loading={loading}
329
+ noResultsText={noResultsText}
330
+ renderMenu={menuTpl ? this.renderMenu : undefined}
331
+ />
332
+ )}
333
+ </div>
334
+ );
335
+ }
336
+ }
337
+
338
+ export interface TransferDropDownProps
339
+ extends OptionsControlProps,
340
+ Omit<
341
+ TransferControlSchema,
342
+ | 'type'
343
+ | 'options'
344
+ | 'inputClassName'
345
+ | 'className'
346
+ | 'descriptionClassName'
347
+ > {
348
+ borderMode?: 'full' | 'half' | 'none';
349
+ }
350
+
351
+ class TransferDropdownRenderer extends BaseTransferRenderer<TransferDropDownProps> {
352
+ render() {
353
+ const {
354
+ className,
355
+ classnames: cx,
356
+ selectedOptions,
357
+ sortable,
358
+ loading,
359
+ searchable,
360
+ searchResultMode,
361
+ showArrow,
362
+ deferLoad,
363
+ disabled,
364
+ selectTitle,
365
+ selectMode,
366
+ multiple,
367
+ columns,
368
+ leftMode,
369
+ borderMode
370
+ } = this.props;
371
+
372
+ // 目前 LeftOptions 没有接口可以动态加载
373
+ // 为了方便可以快速实现动态化,让选项的第一个成员携带
374
+ // LeftOptions 信息
375
+ let {options, leftOptions, leftDefaultValue} = this.props;
376
+ if (
377
+ selectMode === 'associated' &&
378
+ options &&
379
+ options.length === 1 &&
380
+ options[0].leftOptions &&
381
+ Array.isArray(options[0].children)
382
+ ) {
383
+ leftOptions = options[0].leftOptions;
384
+ leftDefaultValue = options[0].leftDefaultValue ?? leftDefaultValue;
385
+ options = options[0].children;
386
+ }
387
+
388
+ return (
389
+ <>
390
+ <TransferDropDown
391
+ selectMode={selectMode}
392
+ className={className}
259
393
  value={selectedOptions}
394
+ disabled={disabled}
260
395
  options={options}
261
- loadOptions={
262
- isEffectiveApi(autoComplete) ? this.lazyloadRemote : undefined
263
- }
264
- creatable={creatable}
265
- searchable={searchable || !!autoComplete}
266
- onChange={this.changeValue}
267
- loading={loading}
268
- noResultsText={noResultsText}
269
- renderMenu={menuTpl ? this.renderMenu : undefined}
396
+ onChange={this.handleChange}
397
+ option2value={this.option2value}
398
+ sortable={sortable}
399
+ searchResultMode={searchResultMode}
400
+ onSearch={searchable ? this.handleSearch : undefined}
401
+ showArrow={showArrow}
402
+ onDeferLoad={deferLoad}
403
+ selectTitle={selectTitle}
404
+ multiple={multiple}
405
+ columns={columns}
406
+ leftMode={leftMode}
407
+ leftOptions={leftOptions}
408
+ borderMode={borderMode}
270
409
  />
271
- </div>
410
+
411
+ <Spinner overlay key="info" show={loading} />
412
+ </>
272
413
  );
273
414
  }
274
415
  }
@@ -0,0 +1,123 @@
1
+ import {
2
+ OptionsControlProps,
3
+ OptionsControl,
4
+ FormOptionsControl
5
+ } from './Options';
6
+ import React from 'react';
7
+ import {Api} from '../../types';
8
+ import Spinner from '../../components/Spinner';
9
+ import {BaseTransferRenderer} from './Transfer';
10
+ import TabsTransfer from '../../components/TabsTransfer';
11
+ import {SchemaApi} from '../../Schema';
12
+ import TransferPicker from '../../components/TransferPicker';
13
+ import TabsTransferPicker from '../../components/TabsTransferPicker';
14
+
15
+ /**
16
+ * TabsTransferPicker 穿梭器的弹框形态
17
+ * 文档:https://baidu.gitee.io/amis/docs/components/form/tabs-transfer-picker
18
+ */
19
+ export interface TabsTransferPickerControlSchema extends FormOptionsControl {
20
+ type: 'tabs-transfer-picker';
21
+
22
+ /**
23
+ * 是否显示剪头
24
+ */
25
+ showArrow?: boolean;
26
+
27
+ /**
28
+ * 可排序?
29
+ */
30
+ sortable?: boolean;
31
+
32
+ /**
33
+ * 搜索结果展示模式
34
+ */
35
+ searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
36
+
37
+ /**
38
+ * 可搜索?
39
+ */
40
+ searchable?: boolean;
41
+
42
+ /**
43
+ * 搜索 API
44
+ */
45
+ searchApi?: SchemaApi;
46
+
47
+ /**
48
+ * 左侧的标题文字
49
+ */
50
+ selectTitle?: string;
51
+
52
+ /**
53
+ * 右侧结果的标题文字
54
+ */
55
+ resultTitle?: string;
56
+
57
+ /**
58
+ * 弹窗大小
59
+ */
60
+ pickerSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
61
+ }
62
+
63
+ export interface TabsTransferProps
64
+ extends OptionsControlProps,
65
+ Omit<
66
+ TabsTransferPickerControlSchema,
67
+ | 'type'
68
+ | 'options'
69
+ | 'inputClassName'
70
+ | 'className'
71
+ | 'descriptionClassName'
72
+ > {}
73
+
74
+ @OptionsControl({
75
+ type: 'tabs-transfer-picker'
76
+ })
77
+ export class TabsTransferPickerRenderer extends BaseTransferRenderer<TabsTransferProps> {
78
+ render() {
79
+ const {
80
+ className,
81
+ classnames: cx,
82
+ options,
83
+ selectedOptions,
84
+ sortable,
85
+ loading,
86
+ searchable,
87
+ searchResultMode,
88
+ showArrow,
89
+ deferLoad,
90
+ disabled,
91
+ selectTitle,
92
+ resultTitle,
93
+ pickerSize,
94
+ columns,
95
+ leftMode,
96
+ leftOptions
97
+ } = this.props;
98
+
99
+ return (
100
+ <div className={cx('TabsTransferControl', className)}>
101
+ <TabsTransferPicker
102
+ value={selectedOptions}
103
+ disabled={disabled}
104
+ options={options}
105
+ onChange={this.handleChange}
106
+ option2value={this.option2value}
107
+ sortable={sortable}
108
+ searchResultMode={searchResultMode}
109
+ onSearch={searchable ? this.handleSearch : undefined}
110
+ showArrow={showArrow}
111
+ onDeferLoad={deferLoad}
112
+ selectTitle={selectTitle}
113
+ resultTitle={resultTitle}
114
+ size={pickerSize}
115
+ leftMode={leftMode}
116
+ leftOptions={leftOptions}
117
+ />
118
+
119
+ <Spinner overlay key="info" show={loading} />
120
+ </div>
121
+ );
122
+ }
123
+ }
@@ -207,8 +207,9 @@ export class BaseTransferRenderer<
207
207
  (option: Option) => {
208
208
  return !!(
209
209
  (Array.isArray(option.children) && option.children.length) ||
210
- regexp.test(option[(labelField as string) || 'label']) ||
211
- regexp.test(option[(valueField as string) || 'value'])
210
+ (option[(valueField as string) || 'value'] &&
211
+ (regexp.test(option[(labelField as string) || 'label']) ||
212
+ regexp.test(option[(valueField as string) || 'value'])))
212
213
  );
213
214
  },
214
215
  0,
@@ -248,7 +249,6 @@ export class BaseTransferRenderer<
248
249
  const {
249
250
  className,
250
251
  classnames: cx,
251
- options,
252
252
  selectedOptions,
253
253
  showArrow,
254
254
  sortable,
@@ -259,7 +259,6 @@ export class BaseTransferRenderer<
259
259
  searchResultMode,
260
260
  searchResultColumns,
261
261
  deferLoad,
262
- leftOptions,
263
262
  leftMode,
264
263
  rightMode,
265
264
  disabled,
@@ -269,6 +268,22 @@ export class BaseTransferRenderer<
269
268
  resultItemRender
270
269
  } = this.props;
271
270
 
271
+ // 目前 LeftOptions 没有接口可以动态加载
272
+ // 为了方便可以快速实现动态化,让选项的第一个成员携带
273
+ // LeftOptions 信息
274
+ let {options, leftOptions, leftDefaultValue} = this.props;
275
+ if (
276
+ selectMode === 'associated' &&
277
+ options &&
278
+ options.length === 1 &&
279
+ options[0].leftOptions &&
280
+ Array.isArray(options[0].children)
281
+ ) {
282
+ leftOptions = options[0].leftOptions;
283
+ leftDefaultValue = options[0].leftDefaultValue ?? leftDefaultValue;
284
+ options = options[0].children;
285
+ }
286
+
272
287
  return (
273
288
  <div className={cx('TransferControl', className)}>
274
289
  <Transfer
@@ -0,0 +1,145 @@
1
+ import {
2
+ OptionsControlProps,
3
+ OptionsControl,
4
+ FormOptionsControl
5
+ } from './Options';
6
+ import React from 'react';
7
+ import {Api} from '../../types';
8
+ import Spinner from '../../components/Spinner';
9
+ import {BaseTransferRenderer} from './Transfer';
10
+ import TabsTransfer from '../../components/TabsTransfer';
11
+ import {SchemaApi} from '../../Schema';
12
+ import TransferPicker from '../../components/TransferPicker';
13
+
14
+ /**
15
+ * TransferPicker 穿梭器的弹框形态
16
+ * 文档:https://baidu.gitee.io/amis/docs/components/form/transfer-picker
17
+ */
18
+ export interface TransferPickerControlSchema extends FormOptionsControl {
19
+ type: 'transfer-picker';
20
+ /**
21
+ * 边框模式,全边框,还是半边框,或者没边框。
22
+ */
23
+ borderMode?: 'full' | 'half' | 'none';
24
+
25
+ /**
26
+ * 是否显示剪头
27
+ */
28
+ showArrow?: boolean;
29
+
30
+ /**
31
+ * 可排序?
32
+ */
33
+ sortable?: boolean;
34
+
35
+ /**
36
+ * 搜索结果展示模式
37
+ */
38
+ searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
39
+
40
+ /**
41
+ * 可搜索?
42
+ */
43
+ searchable?: boolean;
44
+
45
+ /**
46
+ * 搜索 API
47
+ */
48
+ searchApi?: SchemaApi;
49
+
50
+ /**
51
+ * 左侧的标题文字
52
+ */
53
+ selectTitle?: string;
54
+
55
+ /**
56
+ * 右侧结果的标题文字
57
+ */
58
+ resultTitle?: string;
59
+
60
+ /**
61
+ * 弹窗大小
62
+ */
63
+ pickerSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
64
+ }
65
+
66
+ export interface TabsTransferProps
67
+ extends OptionsControlProps,
68
+ Omit<
69
+ TransferPickerControlSchema,
70
+ | 'type'
71
+ | 'options'
72
+ | 'inputClassName'
73
+ | 'className'
74
+ | 'descriptionClassName'
75
+ > {}
76
+
77
+ @OptionsControl({
78
+ type: 'transfer-picker'
79
+ })
80
+ export class TransferPickerRenderer extends BaseTransferRenderer<TabsTransferProps> {
81
+ render() {
82
+ const {
83
+ className,
84
+ classnames: cx,
85
+ selectedOptions,
86
+ sortable,
87
+ loading,
88
+ searchable,
89
+ searchResultMode,
90
+ showArrow,
91
+ deferLoad,
92
+ disabled,
93
+ selectTitle,
94
+ resultTitle,
95
+ pickerSize,
96
+ columns,
97
+ leftMode,
98
+ selectMode,
99
+ borderMode
100
+ } = this.props;
101
+
102
+ // 目前 LeftOptions 没有接口可以动态加载
103
+ // 为了方便可以快速实现动态化,让选项的第一个成员携带
104
+ // LeftOptions 信息
105
+ let {options, leftOptions, leftDefaultValue} = this.props;
106
+ if (
107
+ selectMode === 'associated' &&
108
+ options &&
109
+ options.length === 1 &&
110
+ options[0].leftOptions &&
111
+ Array.isArray(options[0].children)
112
+ ) {
113
+ leftOptions = options[0].leftOptions;
114
+ leftDefaultValue = options[0].leftDefaultValue ?? leftDefaultValue;
115
+ options = options[0].children;
116
+ }
117
+
118
+ return (
119
+ <div className={cx('TransferControl', className)}>
120
+ <TransferPicker
121
+ borderMode={borderMode}
122
+ selectMode={selectMode}
123
+ value={selectedOptions}
124
+ disabled={disabled}
125
+ options={options}
126
+ onChange={this.handleChange}
127
+ option2value={this.option2value}
128
+ sortable={sortable}
129
+ searchResultMode={searchResultMode}
130
+ onSearch={searchable ? this.handleSearch : undefined}
131
+ showArrow={showArrow}
132
+ onDeferLoad={deferLoad}
133
+ selectTitle={selectTitle}
134
+ resultTitle={resultTitle}
135
+ size={pickerSize}
136
+ columns={columns}
137
+ leftMode={leftMode}
138
+ leftOptions={leftOptions}
139
+ />
140
+
141
+ <Spinner overlay key="info" show={loading} />
142
+ </div>
143
+ );
144
+ }
145
+ }
@@ -478,6 +478,19 @@ export default class TreeSelectControl extends React.Component<
478
478
  minLength,
479
479
  labelField,
480
480
  nodePath,
481
+ onAdd,
482
+ creatable,
483
+ createTip,
484
+ addControls,
485
+ onEdit,
486
+ editable,
487
+ editTip,
488
+ editControls,
489
+ removable,
490
+ removeTip,
491
+ onDelete,
492
+ rootCreatable,
493
+ rootCreateTip,
481
494
  translate: __,
482
495
  deferLoad,
483
496
  expandTreeOptions
@@ -533,6 +546,18 @@ export default class TreeSelectControl extends React.Component<
533
546
  pathSeparator={pathSeparator}
534
547
  maxLength={maxLength}
535
548
  minLength={minLength}
549
+ onAdd={onAdd}
550
+ creatable={creatable}
551
+ createTip={createTip}
552
+ rootCreatable={rootCreatable}
553
+ rootCreateTip={rootCreateTip}
554
+ onEdit={onEdit}
555
+ editable={editable}
556
+ editTip={editTip}
557
+ removable={removable}
558
+ removeTip={removeTip}
559
+ onDelete={onDelete}
560
+ bultinCUD={!addControls && !editControls}
536
561
  onDeferLoad={deferLoad}
537
562
  onExpandTree={expandTreeOptions}
538
563
  />
@@ -202,6 +202,11 @@ export interface FormSchema extends BaseSchema {
202
202
  */
203
203
  mode?: 'normal' | 'inline' | 'horizontal';
204
204
 
205
+ /**
206
+ * 表单项显示为几列
207
+ */
208
+ columnCount?: number;
209
+
205
210
  /**
206
211
  * 如果是水平排版,这个属性可以细化水平排版的左右宽度占比。
207
212
  */
@@ -347,6 +352,7 @@ export default class Form extends React.Component<FormProps, object> {
347
352
  right: 10,
348
353
  offset: 2
349
354
  },
355
+ columnCount: 0,
350
356
  panelClassName: 'Panel--default',
351
357
  messages: {
352
358
  fetchFailed: 'fetchFailed',
@@ -367,6 +373,7 @@ export default class Form extends React.Component<FormProps, object> {
367
373
  'initFetch',
368
374
  'wrapWithPanel',
369
375
  'mode',
376
+ 'columnCount',
370
377
  'collapsable',
371
378
  'horizontal',
372
379
  'panelClassName',
@@ -827,7 +834,7 @@ export default class Form extends React.Component<FormProps, object> {
827
834
  );
828
835
  }
829
836
 
830
- if (store.persistData) {
837
+ if (store.persistData && store.inited) {
831
838
  store.setLocalPersistData();
832
839
  }
833
840
  }
@@ -1418,6 +1425,7 @@ export default class Form extends React.Component<FormProps, object> {
1418
1425
  debug,
1419
1426
  $path,
1420
1427
  store,
1428
+ columnCount,
1421
1429
  render
1422
1430
  } = this.props;
1423
1431
 
@@ -1429,7 +1437,12 @@ export default class Form extends React.Component<FormProps, object> {
1429
1437
 
1430
1438
  return (
1431
1439
  <WrapperComponent
1432
- className={cx(`Form`, `Form--${mode || 'normal'}`, className)}
1440
+ className={cx(
1441
+ `Form`,
1442
+ `Form--${mode || 'normal'}`,
1443
+ columnCount ? `Form--column Form--column-${columnCount}` : null,
1444
+ className
1445
+ )}
1433
1446
  onSubmit={this.handleFormSubmit}
1434
1447
  noValidate
1435
1448
  >
@@ -479,8 +479,17 @@ export function wrapControl<
479
479
  const {
480
480
  formStore: form,
481
481
  onChange,
482
- $schema: {name, onChange: onFormItemChange, maxLength, minLength},
482
+ $schema: {
483
+ name,
484
+ id,
485
+ label,
486
+ type,
487
+ onChange: onFormItemChange,
488
+ maxLength,
489
+ minLength
490
+ },
483
491
  data,
492
+ env,
484
493
  validateOnChange,
485
494
  formSubmited
486
495
  } = this.props;
@@ -495,6 +504,22 @@ export function wrapControl<
495
504
  return;
496
505
  }
497
506
 
507
+ if (type !== 'input-password') {
508
+ env?.tracker(
509
+ {
510
+ eventType: 'formItemChange',
511
+ eventData: {
512
+ id,
513
+ name,
514
+ label,
515
+ type,
516
+ value
517
+ }
518
+ },
519
+ this.props
520
+ );
521
+ }
522
+
498
523
  this.model.changeEmitedValue(value);
499
524
  if (
500
525
  onFormItemChange?.(value, oldValue, this.model, form) === false