amis 1.4.1 → 1.4.2-beta.13

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 (516) hide show
  1. package/README.md +1 -1
  2. package/lib/Schema.d.ts +26 -2
  3. package/lib/Schema.js.map +1 -1
  4. package/lib/components/Alert.js +3 -1
  5. package/lib/components/Alert.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.d.ts +2 -2
  14. package/lib/components/Badge.js +13 -7
  15. package/lib/components/Badge.js.map +2 -2
  16. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  17. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  18. package/lib/components/ChainedSelection.js.map +13 -0
  19. package/lib/components/Collapse.js +1 -1
  20. package/lib/components/Collapse.js.map +2 -2
  21. package/lib/components/ColorPicker.d.ts +84 -84
  22. package/lib/components/DatePicker.d.ts +84 -84
  23. package/lib/components/DatePicker.js +1 -1
  24. package/lib/components/DatePicker.js.map +2 -2
  25. package/lib/components/DateRangePicker.d.ts +84 -84
  26. package/lib/components/DateRangePicker.js +1 -1
  27. package/lib/components/DateRangePicker.js.map +2 -2
  28. package/lib/components/Editor.d.ts +84 -84
  29. package/lib/components/GroupedSelection.d.ts +907 -0
  30. package/lib/components/GroupedSelection.js +48 -0
  31. package/lib/components/GroupedSelection.js.map +13 -0
  32. package/lib/components/InputBox.d.ts +22 -21
  33. package/lib/components/InputBox.js +11 -3
  34. package/lib/components/InputBox.js.map +2 -2
  35. package/lib/components/Link.d.ts +84 -0
  36. package/lib/components/Link.js +43 -0
  37. package/lib/components/Link.js.map +13 -0
  38. package/lib/components/ListGroup.d.ts +21 -21
  39. package/lib/components/ModalManager.js +1 -1
  40. package/lib/components/ModalManager.js.map +2 -2
  41. package/lib/components/MonthRangePicker.d.ts +84 -84
  42. package/lib/components/MonthRangePicker.js +1 -1
  43. package/lib/components/MonthRangePicker.js.map +2 -2
  44. package/lib/components/NumberInput.d.ts +20 -20
  45. package/lib/components/PickerColumn.d.ts +514 -0
  46. package/lib/components/PickerColumn.js +279 -0
  47. package/lib/components/PickerColumn.js.map +13 -0
  48. package/lib/components/PickerContainer.d.ts +513 -0
  49. package/lib/components/PickerContainer.js +96 -0
  50. package/lib/components/PickerContainer.js.map +13 -0
  51. package/lib/components/Radios.d.ts +22 -21
  52. package/lib/components/Radios.js +1 -0
  53. package/lib/components/Radios.js.map +2 -2
  54. package/lib/components/Rating.d.ts +21 -21
  55. package/lib/components/ResultBox.d.ts +84 -84
  56. package/lib/components/ResultBox.js +10 -2
  57. package/lib/components/ResultBox.js.map +2 -2
  58. package/lib/components/RichText.js +17 -53
  59. package/lib/components/RichText.js.map +2 -2
  60. package/lib/components/SearchBox.d.ts +84 -84
  61. package/lib/components/SearchBox.js +4 -4
  62. package/lib/components/SearchBox.js.map +2 -2
  63. package/lib/components/Select.d.ts +245 -237
  64. package/lib/components/Select.js +28 -4
  65. package/lib/components/Select.js.map +2 -2
  66. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  67. package/lib/components/Selection.js +134 -0
  68. package/lib/components/Selection.js.map +13 -0
  69. package/lib/components/SparkLine.d.ts +85 -84
  70. package/lib/components/SparkLine.js +2 -2
  71. package/lib/components/SparkLine.js.map +2 -2
  72. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  73. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  74. package/lib/components/TableSelection.js.map +13 -0
  75. package/lib/components/Tabs.d.ts +20 -20
  76. package/lib/components/TabsTransfer.d.ts +84 -84
  77. package/lib/components/TabsTransfer.js +9 -9
  78. package/lib/components/TabsTransfer.js.map +2 -2
  79. package/lib/components/TabsTransferPicker.d.ts +489 -0
  80. package/lib/components/TabsTransferPicker.js +60 -0
  81. package/lib/components/TabsTransferPicker.js.map +13 -0
  82. package/lib/components/Toast.js +2 -2
  83. package/lib/components/Toast.js.map +2 -2
  84. package/lib/components/Transfer.d.ts +908 -274
  85. package/lib/components/Transfer.js +31 -24
  86. package/lib/components/Transfer.js.map +2 -2
  87. package/lib/components/TransferDropDown.d.ts +488 -0
  88. package/lib/components/TransferDropDown.js +59 -0
  89. package/lib/components/TransferDropDown.js.map +13 -0
  90. package/lib/components/TransferPicker.d.ts +493 -0
  91. package/lib/components/TransferPicker.js +60 -0
  92. package/lib/components/TransferPicker.js.map +13 -0
  93. package/lib/components/Tree.d.ts +84 -84
  94. package/lib/components/Tree.js +5 -3
  95. package/lib/components/Tree.js.map +2 -2
  96. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  97. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  98. package/lib/components/TreeSelection.js.map +13 -0
  99. package/lib/components/WithRemoteConfig.js +1 -1
  100. package/lib/components/WithRemoteConfig.js.map +2 -2
  101. package/lib/components/condition-builder/Field.js +5 -2
  102. package/lib/components/condition-builder/Field.js.map +2 -2
  103. package/lib/components/condition-builder/Func.js +2 -2
  104. package/lib/components/condition-builder/Func.js.map +2 -2
  105. package/lib/components/condition-builder/InputSwitch.js +2 -2
  106. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  107. package/lib/components/condition-builder/Item.js +3 -3
  108. package/lib/components/condition-builder/Item.js.map +2 -2
  109. package/lib/components/icons.js +14 -0
  110. package/lib/components/icons.js.map +2 -2
  111. package/lib/components/index.d.ts +8 -8
  112. package/lib/components/index.js +16 -16
  113. package/lib/components/index.js.map +2 -2
  114. package/lib/envOverwrite.js.map +2 -2
  115. package/lib/factory.d.ts +4 -0
  116. package/lib/factory.js +4 -2
  117. package/lib/factory.js.map +2 -2
  118. package/lib/helper.css.map +1 -1
  119. package/lib/hooks/index.d.ts +5 -0
  120. package/lib/hooks/index.js +14 -0
  121. package/lib/hooks/index.js.map +13 -0
  122. package/lib/hooks/use-set-state.d.ts +2 -0
  123. package/lib/hooks/use-set-state.js +15 -0
  124. package/lib/hooks/use-set-state.js.map +13 -0
  125. package/lib/hooks/use-touch.d.ts +16 -0
  126. package/lib/hooks/use-touch.js +73 -0
  127. package/lib/hooks/use-touch.js.map +13 -0
  128. package/lib/hooks/use-update-effect.d.ts +3 -0
  129. package/lib/hooks/use-update-effect.js +17 -0
  130. package/lib/hooks/use-update-effect.js.map +13 -0
  131. package/lib/icons/clock.js +10 -0
  132. package/lib/icons/download.js +7 -0
  133. package/lib/icons/status-close.js +11 -0
  134. package/lib/icons/status-fail.js +11 -0
  135. package/lib/icons/status-info.js +10 -0
  136. package/lib/icons/status-success.js +11 -0
  137. package/lib/icons/status-warning.js +10 -0
  138. package/lib/index.d.ts +3 -0
  139. package/lib/index.js +4 -1
  140. package/lib/index.js.map +2 -2
  141. package/lib/locale/de-DE.js +4 -0
  142. package/lib/locale/de-DE.js.map +2 -2
  143. package/lib/locale/en-US.js +5 -0
  144. package/lib/locale/en-US.js.map +2 -2
  145. package/lib/locale/zh-CN.js +8 -3
  146. package/lib/locale/zh-CN.js.map +2 -2
  147. package/lib/renderers/Action.d.ts +8 -0
  148. package/lib/renderers/Action.js +17 -4
  149. package/lib/renderers/Action.js.map +2 -2
  150. package/lib/renderers/AnchorNav.d.ts +1 -0
  151. package/lib/renderers/AnchorNav.js +2 -2
  152. package/lib/renderers/AnchorNav.js.map +2 -2
  153. package/lib/renderers/Avatar.js +3 -3
  154. package/lib/renderers/Avatar.js.map +2 -2
  155. package/lib/renderers/Breadcrumb.js +1 -1
  156. package/lib/renderers/Breadcrumb.js.map +2 -2
  157. package/lib/renderers/CRUD.d.ts +9 -0
  158. package/lib/renderers/CRUD.js +43 -8
  159. package/lib/renderers/CRUD.js.map +2 -2
  160. package/lib/renderers/Card.d.ts +4 -0
  161. package/lib/renderers/Card.js +29 -23
  162. package/lib/renderers/Card.js.map +2 -2
  163. package/lib/renderers/Chart.js +1 -1
  164. package/lib/renderers/Chart.js.map +2 -2
  165. package/lib/renderers/Collapse.js +3 -2
  166. package/lib/renderers/Collapse.js.map +2 -2
  167. package/lib/renderers/Dialog.js +0 -3
  168. package/lib/renderers/Dialog.js.map +2 -2
  169. package/lib/renderers/Drawer.js +0 -3
  170. package/lib/renderers/Drawer.js.map +2 -2
  171. package/lib/renderers/DropDownButton.d.ts +5 -1
  172. package/lib/renderers/DropDownButton.js +8 -6
  173. package/lib/renderers/DropDownButton.js.map +2 -2
  174. package/lib/renderers/Form/Checkbox.d.ts +5 -0
  175. package/lib/renderers/Form/Checkbox.js +4 -0
  176. package/lib/renderers/Form/Checkbox.js.map +2 -2
  177. package/lib/renderers/Form/Combo.js +2 -2
  178. package/lib/renderers/Form/Combo.js.map +2 -2
  179. package/lib/renderers/Form/DiffEditor.d.ts +4 -3
  180. package/lib/renderers/Form/Editor.d.ts +3 -2
  181. package/lib/renderers/Form/InputCity.d.ts +84 -84
  182. package/lib/renderers/Form/InputCity.js +7 -6
  183. package/lib/renderers/Form/InputCity.js.map +2 -2
  184. package/lib/renderers/Form/InputColor.d.ts +84 -84
  185. package/lib/renderers/Form/InputFile.d.ts +6 -0
  186. package/lib/renderers/Form/InputFile.js +30 -10
  187. package/lib/renderers/Form/InputFile.js.map +2 -2
  188. package/lib/renderers/Form/InputImage.js +16 -7
  189. package/lib/renderers/Form/InputImage.js.map +2 -2
  190. package/lib/renderers/Form/Item.d.ts +1 -1
  191. package/lib/renderers/Form/Item.js.map +1 -1
  192. package/lib/renderers/Form/Options.js +19 -6
  193. package/lib/renderers/Form/Options.js.map +2 -2
  194. package/lib/renderers/Form/Picker.js +2 -2
  195. package/lib/renderers/Form/Picker.js.map +2 -2
  196. package/lib/renderers/Form/Select.d.ts +42 -4
  197. package/lib/renderers/Form/Select.js +37 -3
  198. package/lib/renderers/Form/Select.js.map +2 -2
  199. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  200. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  201. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  202. package/lib/renderers/Form/Transfer.js +18 -3
  203. package/lib/renderers/Form/Transfer.js.map +2 -2
  204. package/lib/renderers/Form/TransferPicker.d.ts +52 -0
  205. package/lib/renderers/Form/TransferPicker.js +43 -0
  206. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  207. package/lib/renderers/Form/TreeSelect.js +2 -2
  208. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  209. package/lib/renderers/Form/index.d.ts +5 -0
  210. package/lib/renderers/Form/index.js +5 -3
  211. package/lib/renderers/Form/index.js.map +2 -2
  212. package/lib/renderers/Form/wrapControl.js +15 -3
  213. package/lib/renderers/Form/wrapControl.js.map +2 -2
  214. package/lib/renderers/IFrame.js +3 -5
  215. package/lib/renderers/IFrame.js.map +2 -2
  216. package/lib/renderers/Image.d.ts +1 -0
  217. package/lib/renderers/Image.js +15 -1
  218. package/lib/renderers/Image.js.map +2 -2
  219. package/lib/renderers/Json.d.ts +4 -0
  220. package/lib/renderers/Json.js +4 -13
  221. package/lib/renderers/Json.js.map +2 -2
  222. package/lib/renderers/Link.d.ts +18 -3
  223. package/lib/renderers/Link.js +27 -15
  224. package/lib/renderers/Link.js.map +2 -2
  225. package/lib/renderers/List.js +1 -1
  226. package/lib/renderers/List.js.map +2 -2
  227. package/lib/renderers/Log.d.ts +2 -2
  228. package/lib/renderers/Log.js +7 -1
  229. package/lib/renderers/Log.js.map +2 -2
  230. package/lib/renderers/Mapping.d.ts +9 -2
  231. package/lib/renderers/Mapping.js +18 -6
  232. package/lib/renderers/Mapping.js.map +2 -2
  233. package/lib/renderers/Nav.d.ts +62 -36
  234. package/lib/renderers/Nav.js +272 -96
  235. package/lib/renderers/Nav.js.map +2 -2
  236. package/lib/renderers/Portlet.d.ts +125 -0
  237. package/lib/renderers/Portlet.js +156 -0
  238. package/lib/renderers/Portlet.js.map +13 -0
  239. package/lib/renderers/Property.js +2 -1
  240. package/lib/renderers/Property.js.map +2 -2
  241. package/lib/renderers/SearchBox.d.ts +6 -1
  242. package/lib/renderers/SearchBox.js +19 -5
  243. package/lib/renderers/SearchBox.js.map +2 -2
  244. package/lib/renderers/SparkLine.d.ts +4 -0
  245. package/lib/renderers/SparkLine.js.map +2 -2
  246. package/lib/renderers/Table/ColumnToggler.d.ts +113 -0
  247. package/lib/renderers/Table/ColumnToggler.js +216 -0
  248. package/lib/renderers/Table/ColumnToggler.js.map +13 -0
  249. package/lib/renderers/Table/ItemActionsWrapper.d.ts +11 -0
  250. package/lib/renderers/Table/ItemActionsWrapper.js +31 -0
  251. package/lib/renderers/Table/ItemActionsWrapper.js.map +13 -0
  252. package/lib/renderers/Table/TableBody.d.ts +4 -0
  253. package/lib/renderers/Table/TableCell.js +3 -1
  254. package/lib/renderers/Table/TableCell.js.map +2 -2
  255. package/lib/renderers/Table/TableContent.d.ts +4 -1
  256. package/lib/renderers/Table/TableContent.js +21 -1
  257. package/lib/renderers/Table/TableContent.js.map +2 -2
  258. package/lib/renderers/Table/index.d.ts +19 -2
  259. package/lib/renderers/Table/index.js +172 -57
  260. package/lib/renderers/Table/index.js.map +2 -2
  261. package/lib/renderers/Tabs.js +9 -1
  262. package/lib/renderers/Tabs.js.map +2 -2
  263. package/lib/renderers/WebComponent.js +1 -1
  264. package/lib/renderers/WebComponent.js.map +2 -2
  265. package/lib/store/combo.d.ts +2 -16
  266. package/lib/store/crud.js +3 -7
  267. package/lib/store/crud.js.map +2 -2
  268. package/lib/store/form.d.ts +1 -1
  269. package/lib/store/form.js +5 -6
  270. package/lib/store/form.js.map +2 -2
  271. package/lib/store/service.js +5 -4
  272. package/lib/store/service.js.map +2 -2
  273. package/lib/store/table.d.ts +260 -3
  274. package/lib/store/table.js +69 -11
  275. package/lib/store/table.js.map +2 -2
  276. package/lib/themes/ang-ie11.css +888 -238
  277. package/lib/themes/ang.css +888 -238
  278. package/lib/themes/ang.css.map +1 -1
  279. package/lib/themes/antd-ie11.css +888 -238
  280. package/lib/themes/antd.css +888 -238
  281. package/lib/themes/antd.css.map +1 -1
  282. package/lib/themes/cxd-ie11.css +1446 -457
  283. package/lib/themes/cxd.css +1446 -457
  284. package/lib/themes/cxd.css.map +1 -1
  285. package/lib/themes/dark-ie11.css +888 -238
  286. package/lib/themes/dark.css +888 -238
  287. package/lib/themes/dark.css.map +1 -1
  288. package/lib/themes/default.css +1446 -457
  289. package/lib/themes/default.css.map +1 -1
  290. package/lib/types.d.ts +37 -0
  291. package/lib/types.js +0 -5
  292. package/lib/types.js.map +2 -2
  293. package/lib/utils/api.d.ts +3 -2
  294. package/lib/utils/api.js +31 -15
  295. package/lib/utils/api.js.map +2 -2
  296. package/lib/utils/dom.d.ts +4 -0
  297. package/lib/utils/dom.js +11 -1
  298. package/lib/utils/dom.js.map +2 -2
  299. package/lib/utils/handleAction.d.ts +7 -0
  300. package/lib/utils/handleAction.js +30 -0
  301. package/lib/utils/handleAction.js.map +13 -0
  302. package/lib/utils/helper.d.ts +3 -1
  303. package/lib/utils/helper.js +14 -5
  304. package/lib/utils/helper.js.map +2 -2
  305. package/lib/utils/icon.js +3 -0
  306. package/lib/utils/icon.js.map +2 -2
  307. package/lib/utils/tpl-builtin.d.ts +1 -1
  308. package/lib/utils/tpl-builtin.js +25 -15
  309. package/lib/utils/tpl-builtin.js.map +2 -2
  310. package/package.json +1 -1
  311. package/schema.json +3341 -998
  312. package/scss/_mixins.scss +1 -3
  313. package/scss/_properties.scss +63 -4
  314. package/scss/_utilities.scss +4 -0
  315. package/scss/base/_common.scss +3 -0
  316. package/scss/base/_normalize.scss +2 -0
  317. package/scss/components/_anchor-nav.scss +88 -29
  318. package/scss/components/_button.scss +4 -5
  319. package/scss/components/_card.scss +8 -14
  320. package/scss/components/_collapse.scss +41 -8
  321. package/scss/components/_column-toggler.scss +234 -0
  322. package/scss/components/_dropdown.scss +2 -1
  323. package/scss/components/_images.scss +2 -1
  324. package/scss/components/_input-box.scss +1 -0
  325. package/scss/components/_link.scss +6 -0
  326. package/scss/components/_mapping.scss +6 -0
  327. package/scss/components/_nav.scss +231 -223
  328. package/scss/components/_page.scss +5 -4
  329. package/scss/components/_picker-columns.scss +124 -0
  330. package/scss/components/_popover.scss +13 -0
  331. package/scss/components/_portlet.scss +51 -0
  332. package/scss/components/_progress.scss +2 -0
  333. package/scss/components/_result-box.scss +1 -0
  334. package/scss/components/_status.scss +1 -1
  335. package/scss/components/_steps.scss +1 -1
  336. package/scss/components/_table.scss +51 -1
  337. package/scss/components/form/_checks.scss +0 -351
  338. package/scss/components/form/_color.scss +1 -0
  339. package/scss/components/form/_date-range.scss +2 -0
  340. package/scss/components/form/_date.scss +2 -0
  341. package/scss/components/form/_fieldset.scss +6 -3
  342. package/scss/components/form/_file.scss +16 -4
  343. package/scss/components/form/_form.scss +48 -0
  344. package/scss/components/form/_image.scss +7 -2
  345. package/scss/components/form/_list.scss +1 -0
  346. package/scss/components/form/_location.scss +1 -1
  347. package/scss/components/form/_selection.scss +354 -0
  348. package/scss/components/form/_text.scss +13 -0
  349. package/scss/components/form/_textarea.scss +10 -0
  350. package/scss/components/form/_transfer.scss +77 -18
  351. package/scss/themes/_common.scss +7 -0
  352. package/scss/themes/_cxd-colors.scss +56 -0
  353. package/scss/themes/_cxd-variables.scss +217 -89
  354. package/scss/themes/cxd.scss +370 -0
  355. package/sdk/ang-ie11.css +1117 -392
  356. package/sdk/ang.css +1110 -342
  357. package/sdk/antd-ie11.css +1105 -380
  358. package/sdk/antd.css +1110 -342
  359. package/sdk/charts.js +13 -13
  360. package/sdk/color-picker.js +65 -69
  361. package/sdk/cropperjs.js +2 -2
  362. package/sdk/cxd-ie11.css +2086 -1062
  363. package/sdk/cxd.css +1643 -495
  364. package/sdk/dark-ie11.css +1117 -392
  365. package/sdk/dark.css +1110 -342
  366. package/sdk/exceljs.js +1 -1
  367. package/sdk/helper.css.map +1 -1
  368. package/sdk/iconfont.svg +2513 -0
  369. package/sdk/iconfont.ttf +0 -0
  370. package/sdk/iconfont.woff +0 -0
  371. package/sdk/ie11-patch.css +1 -0
  372. package/sdk/locale/de-DE.js +4 -0
  373. package/sdk/markdown.js +69 -69
  374. package/sdk/papaparse.js +1 -1
  375. package/sdk/renderers/Form/CityDB.js +1 -1
  376. package/sdk/rest.js +20 -28
  377. package/sdk/rich-text.js +62 -62
  378. package/sdk/sdk-ie11.css +2086 -1062
  379. package/sdk/sdk.css +1643 -495
  380. package/sdk/sdk.js +1219 -1165
  381. package/sdk/thirds/hls.js/hls.js +1 -1
  382. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  383. package/sdk/tinymce.js +57 -57
  384. package/src/Schema.ts +32 -0
  385. package/src/components/Alert.tsx +3 -1
  386. package/src/components/AnchorNav.tsx +15 -4
  387. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
  388. package/src/components/Badge.tsx +38 -26
  389. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  390. package/src/components/Collapse.tsx +14 -9
  391. package/src/components/DatePicker.tsx +1 -1
  392. package/src/components/DateRangePicker.tsx +23 -11
  393. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  394. package/src/components/InputBox.tsx +11 -10
  395. package/src/components/Link.tsx +85 -0
  396. package/src/components/ModalManager.ts +1 -1
  397. package/src/components/MonthRangePicker.tsx +10 -2
  398. package/src/components/PickerColumn.tsx +429 -0
  399. package/src/components/PickerContainer.tsx +128 -0
  400. package/src/components/Radios.tsx +3 -8
  401. package/src/components/ResultBox.tsx +9 -9
  402. package/src/components/RichText.tsx +17 -57
  403. package/src/components/SearchBox.tsx +4 -5
  404. package/src/components/Select.tsx +60 -5
  405. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  406. package/src/components/SparkLine.tsx +4 -1
  407. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  408. package/src/components/TabsTransfer.tsx +13 -7
  409. package/src/components/TabsTransferPicker.tsx +85 -0
  410. package/src/components/Toast.tsx +5 -5
  411. package/src/components/Transfer.tsx +71 -50
  412. package/src/components/TransferDropDown.tsx +120 -0
  413. package/src/components/TransferPicker.tsx +91 -0
  414. package/src/components/Tree.tsx +6 -8
  415. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  416. package/src/components/WithRemoteConfig.tsx +7 -2
  417. package/src/components/condition-builder/Field.tsx +5 -5
  418. package/src/components/condition-builder/Func.tsx +3 -3
  419. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  420. package/src/components/condition-builder/Item.tsx +5 -12
  421. package/src/components/icons.tsx +15 -0
  422. package/src/components/index.tsx +13 -13
  423. package/src/envOverwrite.ts +0 -1
  424. package/src/factory.tsx +18 -3
  425. package/src/hooks/index.ts +5 -0
  426. package/src/hooks/use-set-state.ts +19 -0
  427. package/src/hooks/use-touch.ts +100 -0
  428. package/src/hooks/use-update-effect.ts +16 -0
  429. package/src/icons/clock.svg +1 -0
  430. package/src/icons/download.svg +4 -0
  431. package/src/icons/status-close.svg +10 -0
  432. package/src/icons/status-fail.svg +10 -0
  433. package/src/icons/status-info.svg +8 -0
  434. package/src/icons/status-success.svg +10 -0
  435. package/src/icons/status-warning.svg +8 -0
  436. package/src/index.tsx +3 -0
  437. package/src/locale/de-DE.ts +4 -0
  438. package/src/locale/en-US.ts +5 -0
  439. package/src/locale/zh-CN.ts +8 -3
  440. package/src/renderers/Action.tsx +33 -2
  441. package/src/renderers/AnchorNav.tsx +4 -0
  442. package/src/renderers/Avatar.tsx +8 -4
  443. package/src/renderers/Breadcrumb.tsx +5 -1
  444. package/src/renderers/CRUD.tsx +63 -28
  445. package/src/renderers/Card.tsx +63 -34
  446. package/src/renderers/Chart.tsx +6 -2
  447. package/src/renderers/Collapse.tsx +4 -2
  448. package/src/renderers/Dialog.tsx +0 -4
  449. package/src/renderers/Drawer.tsx +0 -4
  450. package/src/renderers/DropDownButton.tsx +18 -13
  451. package/src/renderers/Form/Checkbox.tsx +8 -0
  452. package/src/renderers/Form/Combo.tsx +2 -3
  453. package/src/renderers/Form/InputCity.tsx +4 -8
  454. package/src/renderers/Form/InputFile.tsx +66 -24
  455. package/src/renderers/Form/InputImage.tsx +16 -5
  456. package/src/renderers/Form/Item.tsx +3 -2
  457. package/src/renderers/Form/Options.tsx +32 -7
  458. package/src/renderers/Form/Picker.tsx +3 -2
  459. package/src/renderers/Form/Select.tsx +162 -21
  460. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  461. package/src/renderers/Form/Transfer.tsx +19 -4
  462. package/src/renderers/Form/TransferPicker.tsx +145 -0
  463. package/src/renderers/Form/TreeSelect.tsx +25 -0
  464. package/src/renderers/Form/index.tsx +15 -2
  465. package/src/renderers/Form/wrapControl.tsx +28 -3
  466. package/src/renderers/IFrame.tsx +4 -5
  467. package/src/renderers/Image.tsx +10 -0
  468. package/src/renderers/Json.tsx +9 -9
  469. package/src/renderers/Link.tsx +53 -14
  470. package/src/renderers/List.tsx +1 -1
  471. package/src/renderers/Log.tsx +16 -3
  472. package/src/renderers/Mapping.tsx +27 -11
  473. package/src/renderers/Nav.tsx +325 -122
  474. package/src/renderers/Portlet.tsx +423 -0
  475. package/src/renderers/Property.tsx +3 -2
  476. package/src/renderers/SearchBox.tsx +23 -4
  477. package/src/renderers/SparkLine.tsx +5 -0
  478. package/src/renderers/Table/ColumnToggler.tsx +544 -0
  479. package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
  480. package/src/renderers/Table/TableCell.tsx +16 -1
  481. package/src/renderers/Table/TableContent.tsx +40 -2
  482. package/src/renderers/Table/index.tsx +257 -80
  483. package/src/renderers/Tabs.tsx +9 -1
  484. package/src/renderers/WebComponent.tsx +2 -2
  485. package/src/store/crud.ts +3 -8
  486. package/src/store/form.ts +5 -10
  487. package/src/store/service.ts +5 -4
  488. package/src/store/table.ts +103 -11
  489. package/src/types.ts +57 -0
  490. package/src/utils/api.ts +52 -23
  491. package/src/utils/dom.tsx +12 -0
  492. package/src/utils/handleAction.ts +41 -0
  493. package/src/utils/helper.ts +12 -4
  494. package/src/utils/icon.tsx +4 -0
  495. package/src/utils/tpl-builtin.ts +48 -17
  496. package/dump.rdb +0 -0
  497. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  498. package/lib/components/AssociatedCheckboxes.js +0 -90
  499. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  500. package/lib/components/ChainedCheckboxes.js.map +0 -13
  501. package/lib/components/Checkboxes.js +0 -101
  502. package/lib/components/Checkboxes.js.map +0 -13
  503. package/lib/components/ListCheckboxes.d.ts +0 -739
  504. package/lib/components/ListCheckboxes.js +0 -48
  505. package/lib/components/ListCheckboxes.js.map +0 -13
  506. package/lib/components/ListRadios.d.ts +0 -763
  507. package/lib/components/ListRadios.js +0 -86
  508. package/lib/components/ListRadios.js.map +0 -13
  509. package/lib/components/TableCheckboxes.js.map +0 -13
  510. package/lib/components/TreeCheckboxes.js.map +0 -13
  511. package/lib/components/TreeRadios.d.ts +0 -838
  512. package/lib/components/TreeRadios.js +0 -116
  513. package/lib/components/TreeRadios.js.map +0 -13
  514. package/sdk.zip +0 -0
  515. package/src/components/ListRadios.tsx +0 -159
  516. package/src/components/TreeRadios.tsx +0 -202
@@ -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
@@ -506,8 +531,8 @@ export function wrapControl<
506
531
 
507
532
  if (
508
533
  // 如果配置了 minLength 或者 maxLength 就切成及时验证
509
- (typeof maxLength && maxLength) ||
510
- (typeof minLength && minLength) ||
534
+ this.model.rules.minLength ||
535
+ this.model.rules.maxLength ||
511
536
  validateOnChange === true ||
512
537
  (validateOnChange !== false && (formSubmited || validated))
513
538
  ) {
@@ -6,7 +6,7 @@ import {ScopedContext, IScopedContext} from '../Scoped';
6
6
  import {buildApi, isApiOutdated} from '../utils/api';
7
7
  import {BaseSchema, SchemaUrlPath} from '../Schema';
8
8
  import {ActionSchema} from './Action';
9
- import {isPureVariable, resolveVariableAndFilter} from '../utils/tpl-builtin';
9
+ import {dataMapping} from '../utils/tpl-builtin';
10
10
 
11
11
  /**
12
12
  * IFrame 渲染器
@@ -149,7 +149,7 @@ export default class IFrame extends React.Component<IFrameProps, object> {
149
149
 
150
150
  render() {
151
151
  const {width, height} = this.state;
152
- let {className, src, frameBorder, data, style} = this.props;
152
+ let {className, src, name, frameBorder, data, style} = this.props;
153
153
 
154
154
  let tempStyle: any = {};
155
155
 
@@ -161,9 +161,7 @@ export default class IFrame extends React.Component<IFrameProps, object> {
161
161
  ...style
162
162
  };
163
163
 
164
- if (isPureVariable(src)) {
165
- src = resolveVariableAndFilter(src, data, '| raw');
166
- }
164
+ src = dataMapping(src, data);
167
165
 
168
166
  const finalSrc = src ? buildApi(src, data).url : undefined;
169
167
 
@@ -177,6 +175,7 @@ export default class IFrame extends React.Component<IFrameProps, object> {
177
175
 
178
176
  return (
179
177
  <iframe
178
+ name={name}
180
179
  className={className}
181
180
  frameBorder={frameBorder}
182
181
  style={style}
@@ -7,6 +7,7 @@ import {Icon} from '../components/icons';
7
7
  import {LocaleProps, localeable} from '../locale';
8
8
  import {BaseSchema, SchemaClassName, SchemaTpl, SchemaUrlPath} from '../Schema';
9
9
  import {resolveVariable} from '../utils/tpl-builtin';
10
+ import handleAction from '../utils/handleAction';
10
11
 
11
12
  /**
12
13
  * 图片展示控件。
@@ -322,6 +323,14 @@ export class ImageField extends React.Component<ImageFieldProps, object> {
322
323
  );
323
324
  }
324
325
 
326
+ @autobind
327
+ handleClick(e: React.MouseEvent<HTMLElement>) {
328
+ const clickAction = this.props.clickAction;
329
+ if (clickAction) {
330
+ handleAction(e, clickAction, this.props);
331
+ }
332
+ }
333
+
325
334
  render() {
326
335
  const {
327
336
  className,
@@ -359,6 +368,7 @@ export class ImageField extends React.Component<ImageFieldProps, object> {
359
368
  : 'ImageField--thumb',
360
369
  className
361
370
  )}
371
+ onClick={this.handleClick}
362
372
  >
363
373
  {value ? (
364
374
  <ThemedImageThumb
@@ -29,6 +29,11 @@ export interface JsonSchema extends BaseSchema {
29
29
  * 是否可修改
30
30
  */
31
31
  mutable?: boolean;
32
+
33
+ /**
34
+ * 是否显示数据类型
35
+ */
36
+ displayDataTypes?: boolean;
32
37
  }
33
38
 
34
39
  export interface JSONProps extends RendererProps, JsonSchema {
@@ -44,7 +49,8 @@ export class JSONField extends React.Component<JSONProps, object> {
44
49
  static defaultProps: Partial<JSONProps> = {
45
50
  placeholder: '-',
46
51
  levelExpand: 1,
47
- source: ''
52
+ source: '',
53
+ displayDataTypes: false
48
54
  };
49
55
 
50
56
  @autobind
@@ -79,6 +85,7 @@ export class JSONField extends React.Component<JSONProps, object> {
79
85
  source,
80
86
  levelExpand,
81
87
  mutable,
88
+ displayDataTypes,
82
89
  name
83
90
  } = this.props;
84
91
 
@@ -87,14 +94,6 @@ export class JSONField extends React.Component<JSONProps, object> {
87
94
  let data = value;
88
95
  if (source !== undefined && isPureVariable(source)) {
89
96
  data = resolveVariableAndFilter(source, this.props.data, '| raw');
90
- } else if (typeof value === 'string') {
91
- try {
92
- data = JSON.parse(value);
93
- } catch (e) {
94
- data = {
95
- error: e.message
96
- };
97
- }
98
97
  }
99
98
 
100
99
  let jsonThemeValue = jsonTheme;
@@ -124,6 +123,7 @@ export class JSONField extends React.Component<JSONProps, object> {
124
123
  theme={(jsonThemeValue as any) ?? 'rjv-default'}
125
124
  shouldCollapse={this.shouldExpandNode}
126
125
  enableClipboard={false}
126
+ displayDataTypes={displayDataTypes}
127
127
  iconStyle="square"
128
128
  onEdit={name && mutable ? this.emitChange : false}
129
129
  onDelete={name && mutable ? this.emitChange : false}
@@ -1,9 +1,10 @@
1
1
  import React from 'react';
2
2
  import {Renderer, RendererProps} from '../factory';
3
3
  import {BaseSchema, SchemaTpl} from '../Schema';
4
- import {getPropValue} from '../utils/helper';
4
+ import {autobind, getPropValue} from '../utils/helper';
5
5
  import {filter} from '../utils/tpl';
6
6
  import {BadgeSchema, withBadge} from '../components/Badge';
7
+ import Link from '../components/Link';
7
8
 
8
9
  /**
9
10
  * Link 链接展示控件。
@@ -29,18 +30,48 @@ export interface LinkSchema extends BaseSchema {
29
30
  * 角标
30
31
  */
31
32
  badge?: BadgeSchema;
33
+
34
+ /**
35
+ * a标签原生target属性
36
+ */
37
+ htmlTarget?: string;
38
+
39
+ /**
40
+ * 图标
41
+ */
42
+ icon?: string;
43
+
44
+ /**
45
+ * 右侧图标
46
+ */
47
+ rightIcon?: string;
32
48
  }
33
49
 
34
50
  export interface LinkProps
35
51
  extends RendererProps,
36
52
  Omit<LinkSchema, 'type' | 'className'> {}
37
53
 
38
- export class LinkField extends React.Component<LinkProps, object> {
54
+ export class LinkCmpt extends React.Component<LinkProps, object> {
39
55
  static defaultProps = {
40
- className: '',
41
- blank: false
56
+ blank: true,
57
+ disabled: false,
58
+ htmlTarget: ''
42
59
  };
43
60
 
61
+ handleClick(href: string) {
62
+ const {env, blank, body} = this.props;
63
+ env?.tracker(
64
+ {
65
+ eventType: 'url',
66
+ // 需要和 action 里命名一致方便后续分析
67
+ eventData: {url: href, blank, label: body}
68
+ },
69
+ this.props
70
+ );
71
+ }
72
+
73
+ getHref() {}
74
+
44
75
  render() {
45
76
  const {
46
77
  className,
@@ -48,25 +79,33 @@ export class LinkField extends React.Component<LinkProps, object> {
48
79
  href,
49
80
  classnames: cx,
50
81
  blank,
82
+ disabled,
51
83
  htmlTarget,
52
84
  data,
53
85
  render,
54
86
  translate: __,
55
- title
87
+ title,
88
+ icon,
89
+ rightIcon
56
90
  } = this.props;
57
91
 
58
- let value = getPropValue(this.props);
59
- const finnalHref = href ? filter(href, data, '| raw') : '';
92
+ let value =
93
+ (typeof href === 'string' && href
94
+ ? filter(href, data, '| raw')
95
+ : undefined) || getPropValue(this.props);
60
96
 
61
97
  return (
62
- <a
63
- href={finnalHref || value}
64
- target={htmlTarget || (blank ? '_blank' : '_self')}
65
- className={cx('Link', className)}
98
+ <Link
99
+ className={className}
100
+ href={value}
101
+ disabled={disabled}
66
102
  title={title}
103
+ htmlTarget={htmlTarget || (blank ? '_blank' : '_self')}
104
+ icon={icon}
105
+ rightIcon={rightIcon}
67
106
  >
68
- {body ? render('body', body) : finnalHref || value || __('link')}
69
- </a>
107
+ {body ? render('body', body) : value || __('link')}
108
+ </Link>
70
109
  );
71
110
  }
72
111
  }
@@ -76,4 +115,4 @@ export class LinkField extends React.Component<LinkProps, object> {
76
115
  })
77
116
  // @ts-ignore 类型没搞定
78
117
  @withBadge
79
- export class LinkFieldRenderer extends LinkField {}
118
+ export class LinkFieldRenderer extends LinkCmpt {}