amis 1.3.5-beta.7 → 1.4.2-beta.11

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 (577) 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 +16 -3
  14. package/lib/components/Badge.js +54 -5
  15. package/lib/components/Badge.js.map +2 -2
  16. package/lib/components/Button.d.ts +24 -22
  17. package/lib/components/Button.js +13 -7
  18. package/lib/components/Button.js.map +2 -2
  19. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  20. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  21. package/lib/components/ChainedSelection.js.map +13 -0
  22. package/lib/components/Checkbox.d.ts +1 -1
  23. package/lib/components/Checkbox.js +1 -1
  24. package/lib/components/Checkbox.js.map +2 -2
  25. package/lib/components/Collapse.js +1 -1
  26. package/lib/components/Collapse.js.map +2 -2
  27. package/lib/components/ColorPicker.d.ts +84 -84
  28. package/lib/components/DatePicker.d.ts +84 -84
  29. package/lib/components/DatePicker.js +1 -1
  30. package/lib/components/DatePicker.js.map +2 -2
  31. package/lib/components/DateRangePicker.d.ts +84 -84
  32. package/lib/components/DateRangePicker.js +1 -1
  33. package/lib/components/DateRangePicker.js.map +2 -2
  34. package/lib/components/Drawer.js +1 -1
  35. package/lib/components/Drawer.js.map +2 -2
  36. package/lib/components/Editor.d.ts +84 -84
  37. package/lib/components/GroupedSelection.d.ts +907 -0
  38. package/lib/components/GroupedSelection.js +48 -0
  39. package/lib/components/GroupedSelection.js.map +13 -0
  40. package/lib/components/InputBox.js +1 -1
  41. package/lib/components/InputBox.js.map +2 -2
  42. package/lib/components/Link.d.ts +84 -0
  43. package/lib/components/Link.js +43 -0
  44. package/lib/components/Link.js.map +13 -0
  45. package/lib/components/ListGroup.d.ts +21 -21
  46. package/lib/components/Modal.js +1 -1
  47. package/lib/components/Modal.js.map +2 -2
  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/MonthRangePicker.js +1 -1
  52. package/lib/components/MonthRangePicker.js.map +2 -2
  53. package/lib/components/NumberInput.d.ts +20 -20
  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/Radios.d.ts +22 -21
  61. package/lib/components/Radios.js +1 -0
  62. package/lib/components/Radios.js.map +2 -2
  63. package/lib/components/Rating.d.ts +21 -21
  64. package/lib/components/ResultBox.d.ts +84 -84
  65. package/lib/components/RichText.d.ts +6 -1
  66. package/lib/components/RichText.js +207 -8
  67. package/lib/components/RichText.js.map +2 -2
  68. package/lib/components/SearchBox.d.ts +84 -84
  69. package/lib/components/SearchBox.js +4 -4
  70. package/lib/components/SearchBox.js.map +2 -2
  71. package/lib/components/Select.d.ts +252 -237
  72. package/lib/components/Select.js +28 -4
  73. package/lib/components/Select.js.map +2 -2
  74. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  75. package/lib/components/Selection.js +134 -0
  76. package/lib/components/Selection.js.map +13 -0
  77. package/lib/components/SparkLine.d.ts +85 -84
  78. package/lib/components/SparkLine.js +2 -2
  79. package/lib/components/SparkLine.js.map +2 -2
  80. package/lib/components/Steps.d.ts +3 -3
  81. package/lib/components/Steps.js.map +1 -1
  82. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  83. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  84. package/lib/components/TableSelection.js.map +13 -0
  85. package/lib/components/Tabs.d.ts +20 -20
  86. package/lib/components/TabsTransfer.d.ts +84 -84
  87. package/lib/components/TabsTransfer.js +9 -9
  88. package/lib/components/TabsTransfer.js.map +2 -2
  89. package/lib/components/TabsTransferPicker.d.ts +489 -0
  90. package/lib/components/TabsTransferPicker.js +60 -0
  91. package/lib/components/TabsTransferPicker.js.map +13 -0
  92. package/lib/components/Toast.js +2 -2
  93. package/lib/components/Toast.js.map +2 -2
  94. package/lib/components/Transfer.d.ts +908 -274
  95. package/lib/components/Transfer.js +31 -24
  96. package/lib/components/Transfer.js.map +2 -2
  97. package/lib/components/TransferDropDown.d.ts +487 -0
  98. package/lib/components/TransferDropDown.js +59 -0
  99. package/lib/components/TransferDropDown.js.map +13 -0
  100. package/lib/components/TransferPicker.d.ts +489 -0
  101. package/lib/components/TransferPicker.js +60 -0
  102. package/lib/components/TransferPicker.js.map +13 -0
  103. package/lib/components/Tree.d.ts +84 -84
  104. package/lib/components/Tree.js +5 -3
  105. package/lib/components/Tree.js.map +2 -2
  106. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  107. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  108. package/lib/components/TreeSelection.js.map +13 -0
  109. package/lib/components/WithRemoteConfig.d.ts +8 -0
  110. package/lib/components/WithRemoteConfig.js +29 -3
  111. package/lib/components/WithRemoteConfig.js.map +2 -2
  112. package/lib/components/calendar/DaysView.js +2 -2
  113. package/lib/components/calendar/DaysView.js.map +2 -2
  114. package/lib/components/condition-builder/Field.js +5 -3
  115. package/lib/components/condition-builder/Field.js.map +2 -2
  116. package/lib/components/condition-builder/Func.js +2 -2
  117. package/lib/components/condition-builder/Func.js.map +2 -2
  118. package/lib/components/condition-builder/InputSwitch.js +2 -2
  119. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  120. package/lib/components/condition-builder/Item.js +3 -3
  121. package/lib/components/condition-builder/Item.js.map +2 -2
  122. package/lib/components/condition-builder/Value.js +2 -1
  123. package/lib/components/condition-builder/Value.js.map +2 -2
  124. package/lib/components/condition-builder/types.d.ts +5 -0
  125. package/lib/components/condition-builder/types.js.map +1 -1
  126. package/lib/components/icons.js +14 -0
  127. package/lib/components/icons.js.map +2 -2
  128. package/lib/components/index.d.ts +8 -8
  129. package/lib/components/index.js +16 -16
  130. package/lib/components/index.js.map +2 -2
  131. package/lib/envOverwrite.js.map +2 -2
  132. package/lib/factory.d.ts +9 -1
  133. package/lib/factory.js +13 -6
  134. package/lib/factory.js.map +2 -2
  135. package/lib/helper.css.map +1 -1
  136. package/lib/hooks/index.d.ts +5 -0
  137. package/lib/hooks/index.js +14 -0
  138. package/lib/hooks/index.js.map +13 -0
  139. package/lib/hooks/use-set-state.d.ts +2 -0
  140. package/lib/hooks/use-set-state.js +15 -0
  141. package/lib/hooks/use-set-state.js.map +13 -0
  142. package/lib/hooks/use-touch.d.ts +16 -0
  143. package/lib/hooks/use-touch.js +73 -0
  144. package/lib/hooks/use-touch.js.map +13 -0
  145. package/lib/hooks/use-update-effect.d.ts +3 -0
  146. package/lib/hooks/use-update-effect.js +17 -0
  147. package/lib/hooks/use-update-effect.js.map +13 -0
  148. package/lib/icons/clock.js +10 -0
  149. package/lib/icons/loading-outline.js +7 -0
  150. package/lib/icons/status-close.js +11 -0
  151. package/lib/icons/status-fail.js +11 -0
  152. package/lib/icons/status-info.js +10 -0
  153. package/lib/icons/status-success.js +11 -0
  154. package/lib/icons/status-warning.js +10 -0
  155. package/lib/index.d.ts +3 -0
  156. package/lib/index.js +4 -1
  157. package/lib/index.js.map +2 -2
  158. package/lib/locale/de-DE.js +5 -0
  159. package/lib/locale/de-DE.js.map +2 -2
  160. package/lib/locale/en-US.js +6 -1
  161. package/lib/locale/en-US.js.map +2 -2
  162. package/lib/locale/zh-CN.js +9 -4
  163. package/lib/locale/zh-CN.js.map +2 -2
  164. package/lib/renderers/Action.d.ts +17 -1
  165. package/lib/renderers/Action.js +21 -8
  166. package/lib/renderers/Action.js.map +2 -2
  167. package/lib/renderers/AnchorNav.d.ts +1 -0
  168. package/lib/renderers/AnchorNav.js +2 -2
  169. package/lib/renderers/AnchorNav.js.map +2 -2
  170. package/lib/renderers/Avatar.js +3 -3
  171. package/lib/renderers/Avatar.js.map +2 -2
  172. package/lib/renderers/Breadcrumb.js +1 -1
  173. package/lib/renderers/Breadcrumb.js.map +2 -2
  174. package/lib/renderers/CRUD.d.ts +9 -0
  175. package/lib/renderers/CRUD.js +48 -23
  176. package/lib/renderers/CRUD.js.map +2 -2
  177. package/lib/renderers/Card.d.ts +4 -0
  178. package/lib/renderers/Card.js +29 -23
  179. package/lib/renderers/Card.js.map +2 -2
  180. package/lib/renderers/Chart.js +1 -1
  181. package/lib/renderers/Chart.js.map +2 -2
  182. package/lib/renderers/Collapse.d.ts +1 -1
  183. package/lib/renderers/Collapse.js +8 -3
  184. package/lib/renderers/Collapse.js.map +2 -2
  185. package/lib/renderers/Dialog.d.ts +0 -252
  186. package/lib/renderers/Dialog.js +1 -4
  187. package/lib/renderers/Dialog.js.map +2 -2
  188. package/lib/renderers/Drawer.js +0 -3
  189. package/lib/renderers/Drawer.js.map +2 -2
  190. package/lib/renderers/DropDownButton.d.ts +13 -1
  191. package/lib/renderers/DropDownButton.js +9 -5
  192. package/lib/renderers/DropDownButton.js.map +2 -2
  193. package/lib/renderers/Form/Checkbox.d.ts +5 -0
  194. package/lib/renderers/Form/Checkbox.js +4 -0
  195. package/lib/renderers/Form/Checkbox.js.map +2 -2
  196. package/lib/renderers/Form/Combo.js +2 -2
  197. package/lib/renderers/Form/Combo.js.map +2 -2
  198. package/lib/renderers/Form/DiffEditor.d.ts +4 -5
  199. package/lib/renderers/Form/Editor.d.ts +3 -4
  200. package/lib/renderers/Form/Editor.js +1 -1
  201. package/lib/renderers/Form/Editor.js.map +2 -2
  202. package/lib/renderers/Form/InputCity.d.ts +84 -84
  203. package/lib/renderers/Form/InputCity.js +7 -6
  204. package/lib/renderers/Form/InputCity.js.map +2 -2
  205. package/lib/renderers/Form/InputColor.d.ts +84 -84
  206. package/lib/renderers/Form/InputExcel.d.ts +5 -0
  207. package/lib/renderers/Form/InputExcel.js +24 -3
  208. package/lib/renderers/Form/InputExcel.js.map +2 -2
  209. package/lib/renderers/Form/InputFile.js +12 -6
  210. package/lib/renderers/Form/InputFile.js.map +2 -2
  211. package/lib/renderers/Form/InputImage.d.ts +8 -0
  212. package/lib/renderers/Form/InputImage.js +18 -8
  213. package/lib/renderers/Form/InputImage.js.map +2 -2
  214. package/lib/renderers/Form/InputTable.d.ts +23 -5
  215. package/lib/renderers/Form/InputTable.js +32 -3
  216. package/lib/renderers/Form/InputTable.js.map +2 -2
  217. package/lib/renderers/Form/Item.d.ts +1 -1
  218. package/lib/renderers/Form/Item.js.map +1 -1
  219. package/lib/renderers/Form/Options.js +19 -6
  220. package/lib/renderers/Form/Options.js.map +2 -2
  221. package/lib/renderers/Form/Picker.js +2 -2
  222. package/lib/renderers/Form/Picker.js.map +2 -2
  223. package/lib/renderers/Form/Select.d.ts +41 -4
  224. package/lib/renderers/Form/Select.js +23 -3
  225. package/lib/renderers/Form/Select.js.map +2 -2
  226. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  227. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  228. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  229. package/lib/renderers/Form/Transfer.js +3 -2
  230. package/lib/renderers/Form/Transfer.js.map +2 -2
  231. package/lib/renderers/Form/TransferPicker.d.ts +48 -0
  232. package/lib/renderers/Form/TransferPicker.js +29 -0
  233. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  234. package/lib/renderers/Form/TreeSelect.js +2 -2
  235. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  236. package/lib/renderers/Form/index.js +1 -1
  237. package/lib/renderers/Form/index.js.map +2 -2
  238. package/lib/renderers/Form/wrapControl.js +15 -3
  239. package/lib/renderers/Form/wrapControl.js.map +2 -2
  240. package/lib/renderers/IFrame.js +3 -5
  241. package/lib/renderers/IFrame.js.map +2 -2
  242. package/lib/renderers/Image.d.ts +1 -0
  243. package/lib/renderers/Image.js +15 -1
  244. package/lib/renderers/Image.js.map +2 -2
  245. package/lib/renderers/Json.d.ts +4 -0
  246. package/lib/renderers/Json.js +7 -12
  247. package/lib/renderers/Json.js.map +2 -2
  248. package/lib/renderers/Link.d.ts +18 -3
  249. package/lib/renderers/Link.js +27 -15
  250. package/lib/renderers/Link.js.map +2 -2
  251. package/lib/renderers/List.js +1 -1
  252. package/lib/renderers/List.js.map +2 -2
  253. package/lib/renderers/Log.d.ts +2 -2
  254. package/lib/renderers/Log.js +7 -1
  255. package/lib/renderers/Log.js.map +2 -2
  256. package/lib/renderers/Mapping.d.ts +9 -2
  257. package/lib/renderers/Mapping.js +18 -6
  258. package/lib/renderers/Mapping.js.map +2 -2
  259. package/lib/renderers/Nav.d.ts +81 -25
  260. package/lib/renderers/Nav.js +292 -31
  261. package/lib/renderers/Nav.js.map +2 -2
  262. package/lib/renderers/Page.js +4 -1
  263. package/lib/renderers/Page.js.map +2 -2
  264. package/lib/renderers/Portlet.d.ts +125 -0
  265. package/lib/renderers/Portlet.js +156 -0
  266. package/lib/renderers/Portlet.js.map +13 -0
  267. package/lib/renderers/Property.js +2 -1
  268. package/lib/renderers/Property.js.map +2 -2
  269. package/lib/renderers/SearchBox.d.ts +6 -1
  270. package/lib/renderers/SearchBox.js +19 -5
  271. package/lib/renderers/SearchBox.js.map +2 -2
  272. package/lib/renderers/Service.d.ts +10 -1
  273. package/lib/renderers/Service.js +85 -3
  274. package/lib/renderers/Service.js.map +2 -2
  275. package/lib/renderers/SparkLine.d.ts +4 -0
  276. package/lib/renderers/SparkLine.js.map +2 -2
  277. package/lib/renderers/Steps.d.ts +4 -4
  278. package/lib/renderers/Steps.js +5 -2
  279. package/lib/renderers/Steps.js.map +2 -2
  280. package/lib/renderers/Table/ColumnToggler.d.ts +113 -0
  281. package/lib/renderers/Table/ColumnToggler.js +216 -0
  282. package/lib/renderers/Table/ColumnToggler.js.map +13 -0
  283. package/lib/renderers/Table/ItemActionsWrapper.d.ts +11 -0
  284. package/lib/renderers/Table/ItemActionsWrapper.js +31 -0
  285. package/lib/renderers/Table/ItemActionsWrapper.js.map +13 -0
  286. package/lib/renderers/Table/TableBody.d.ts +5 -1
  287. package/lib/renderers/Table/TableBody.js.map +1 -1
  288. package/lib/renderers/Table/TableCell.js +3 -1
  289. package/lib/renderers/Table/TableCell.js.map +2 -2
  290. package/lib/renderers/Table/TableContent.d.ts +5 -2
  291. package/lib/renderers/Table/TableContent.js +21 -1
  292. package/lib/renderers/Table/TableContent.js.map +2 -2
  293. package/lib/renderers/Table/index.d.ts +27 -5
  294. package/lib/renderers/Table/index.js +251 -101
  295. package/lib/renderers/Table/index.js.map +2 -2
  296. package/lib/renderers/Tabs.js +9 -1
  297. package/lib/renderers/Tabs.js.map +2 -2
  298. package/lib/renderers/WebComponent.js +1 -1
  299. package/lib/renderers/WebComponent.js.map +2 -2
  300. package/lib/store/app.d.ts +0 -1
  301. package/lib/store/combo.d.ts +2 -18
  302. package/lib/store/crud.d.ts +0 -1
  303. package/lib/store/crud.js +3 -7
  304. package/lib/store/crud.js.map +2 -2
  305. package/lib/store/form.d.ts +1 -2
  306. package/lib/store/form.js +5 -6
  307. package/lib/store/form.js.map +2 -2
  308. package/lib/store/modal.d.ts +1 -1
  309. package/lib/store/modal.js +4 -0
  310. package/lib/store/modal.js.map +2 -2
  311. package/lib/store/root.d.ts +0 -1
  312. package/lib/store/service.d.ts +0 -1
  313. package/lib/store/service.js +5 -17
  314. package/lib/store/service.js.map +2 -2
  315. package/lib/store/table.d.ts +260 -5
  316. package/lib/store/table.js +83 -7
  317. package/lib/store/table.js.map +2 -2
  318. package/lib/themes/ang-ie11.css +1360 -244
  319. package/lib/themes/ang.css +1360 -244
  320. package/lib/themes/ang.css.map +1 -1
  321. package/lib/themes/antd-ie11.css +1360 -244
  322. package/lib/themes/antd.css +1360 -244
  323. package/lib/themes/antd.css.map +1 -1
  324. package/lib/themes/cxd-ie11.css +1960 -517
  325. package/lib/themes/cxd.css +1960 -517
  326. package/lib/themes/cxd.css.map +1 -1
  327. package/lib/themes/dark-ie11.css +1360 -244
  328. package/lib/themes/dark.css +1360 -244
  329. package/lib/themes/dark.css.map +1 -1
  330. package/lib/themes/default.css +1960 -517
  331. package/lib/themes/default.css.map +1 -1
  332. package/lib/types.d.ts +37 -0
  333. package/lib/types.js +0 -5
  334. package/lib/types.js.map +2 -2
  335. package/lib/utils/api.d.ts +3 -2
  336. package/lib/utils/api.js +43 -15
  337. package/lib/utils/api.js.map +2 -2
  338. package/lib/utils/attachmentAdpator.d.ts +7 -0
  339. package/lib/utils/attachmentAdpator.js +82 -0
  340. package/lib/utils/attachmentAdpator.js.map +13 -0
  341. package/lib/utils/dom.d.ts +4 -0
  342. package/lib/utils/dom.js +11 -1
  343. package/lib/utils/dom.js.map +2 -2
  344. package/lib/utils/handleAction.d.ts +7 -0
  345. package/lib/utils/handleAction.js +30 -0
  346. package/lib/utils/handleAction.js.map +13 -0
  347. package/lib/utils/helper.d.ts +3 -1
  348. package/lib/utils/helper.js +14 -5
  349. package/lib/utils/helper.js.map +2 -2
  350. package/lib/utils/icon.js +3 -0
  351. package/lib/utils/icon.js.map +2 -2
  352. package/lib/utils/tpl-builtin.d.ts +1 -1
  353. package/lib/utils/tpl-builtin.js +25 -15
  354. package/lib/utils/tpl-builtin.js.map +2 -2
  355. package/lib/utils/validations.js +62 -5
  356. package/lib/utils/validations.js.map +2 -2
  357. package/package.json +1 -2
  358. package/schema.json +3638 -1030
  359. package/scss/_mixins.scss +27 -0
  360. package/scss/_properties.scss +88 -13
  361. package/scss/_utilities.scss +4 -0
  362. package/scss/base/_normalize.scss +2 -0
  363. package/scss/components/_anchor-nav.scss +88 -29
  364. package/scss/components/_badge.scss +67 -2
  365. package/scss/components/_button.scss +34 -3
  366. package/scss/components/_card.scss +8 -14
  367. package/scss/components/_collapse.scss +41 -8
  368. package/scss/components/_column-toggler.scss +234 -0
  369. package/scss/components/_dropdown.scss +2 -1
  370. package/scss/components/_image-gallery.scss +1 -1
  371. package/scss/components/_images.scss +2 -1
  372. package/scss/components/_link.scss +6 -0
  373. package/scss/components/_mapping.scss +6 -0
  374. package/scss/components/_markdown.scss +266 -0
  375. package/scss/components/_nav.scss +236 -154
  376. package/scss/components/_page.scss +5 -4
  377. package/scss/components/_picker-columns.scss +123 -0
  378. package/scss/components/_popover.scss +17 -0
  379. package/scss/components/_portlet.scss +51 -0
  380. package/scss/components/_progress.scss +2 -0
  381. package/scss/components/_spinner.scss +6 -2
  382. package/scss/components/_status.scss +1 -1
  383. package/scss/components/_steps.scss +1 -1
  384. package/scss/components/_table.scss +51 -1
  385. package/scss/components/form/_checks.scss +0 -351
  386. package/scss/components/form/_color.scss +1 -0
  387. package/scss/components/form/_date-range.scss +2 -0
  388. package/scss/components/form/_date.scss +2 -0
  389. package/scss/components/form/_fieldset.scss +6 -3
  390. package/scss/components/form/_file.scss +5 -4
  391. package/scss/components/form/_group.scss +4 -0
  392. package/scss/components/form/_image.scss +7 -2
  393. package/scss/components/form/_list.scss +1 -0
  394. package/scss/components/form/_location.scss +1 -1
  395. package/scss/components/form/_selection.scss +354 -0
  396. package/scss/components/form/_text.scss +13 -0
  397. package/scss/components/form/_textarea.scss +10 -0
  398. package/scss/components/form/_transfer.scss +77 -18
  399. package/scss/themes/_common.scss +7 -0
  400. package/scss/themes/_cxd-colors.scss +56 -0
  401. package/scss/themes/_cxd-variables.scss +219 -91
  402. package/scss/themes/cxd.scss +370 -0
  403. package/sdk/ang-ie11.css +1752 -431
  404. package/sdk/ang.css +1706 -323
  405. package/sdk/antd-ie11.css +1739 -420
  406. package/sdk/antd.css +1706 -323
  407. package/sdk/charts.js +13 -13
  408. package/sdk/color-picker.js +65 -69
  409. package/sdk/cropperjs.js +2 -2
  410. package/sdk/cxd-ie11.css +3015 -1397
  411. package/sdk/cxd.css +2402 -651
  412. package/sdk/dark-ie11.css +1750 -429
  413. package/sdk/dark.css +1706 -323
  414. package/sdk/exceljs.js +1 -1
  415. package/sdk/helper.css.map +1 -1
  416. package/sdk/ie11-patch.css +1 -0
  417. package/sdk/locale/de-DE.js +5 -0
  418. package/sdk/markdown.js +69 -69
  419. package/sdk/papaparse.js +1 -1
  420. package/sdk/renderers/Form/CityDB.js +1 -1
  421. package/sdk/rest.js +20 -30
  422. package/sdk/rich-text.js +62 -64
  423. package/sdk/sdk-ie11.css +3015 -1397
  424. package/sdk/sdk.css +2402 -651
  425. package/sdk/sdk.js +1278 -1220
  426. package/sdk/thirds/hls.js/hls.js +1 -1
  427. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  428. package/sdk/tinymce.js +57 -57
  429. package/src/Schema.ts +32 -0
  430. package/src/components/Alert.tsx +3 -1
  431. package/src/components/AnchorNav.tsx +15 -4
  432. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
  433. package/src/components/Badge.tsx +126 -23
  434. package/src/components/Button.tsx +23 -7
  435. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  436. package/src/components/Checkbox.tsx +5 -2
  437. package/src/components/Collapse.tsx +14 -9
  438. package/src/components/DatePicker.tsx +1 -1
  439. package/src/components/DateRangePicker.tsx +23 -11
  440. package/src/components/Drawer.tsx +3 -2
  441. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  442. package/src/components/InputBox.tsx +1 -1
  443. package/src/components/Link.tsx +85 -0
  444. package/src/components/Modal.tsx +3 -2
  445. package/src/components/ModalManager.ts +1 -1
  446. package/src/components/MonthRangePicker.tsx +10 -2
  447. package/src/components/PickerColumn.tsx +429 -0
  448. package/src/components/PickerContainer.tsx +128 -0
  449. package/src/components/Radios.tsx +3 -8
  450. package/src/components/RichText.tsx +244 -3
  451. package/src/components/SearchBox.tsx +4 -5
  452. package/src/components/Select.tsx +61 -5
  453. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  454. package/src/components/SparkLine.tsx +4 -1
  455. package/src/components/Steps.tsx +3 -3
  456. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  457. package/src/components/TabsTransfer.tsx +13 -7
  458. package/src/components/TabsTransferPicker.tsx +85 -0
  459. package/src/components/Toast.tsx +5 -5
  460. package/src/components/Transfer.tsx +71 -50
  461. package/src/components/TransferDropDown.tsx +117 -0
  462. package/src/components/TransferPicker.tsx +84 -0
  463. package/src/components/Tree.tsx +6 -8
  464. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  465. package/src/components/WithRemoteConfig.tsx +44 -4
  466. package/src/components/calendar/DaysView.tsx +2 -2
  467. package/src/components/condition-builder/Field.tsx +6 -7
  468. package/src/components/condition-builder/Func.tsx +3 -3
  469. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  470. package/src/components/condition-builder/Item.tsx +5 -12
  471. package/src/components/condition-builder/Value.tsx +3 -0
  472. package/src/components/condition-builder/types.ts +6 -0
  473. package/src/components/icons.tsx +15 -0
  474. package/src/components/index.tsx +13 -13
  475. package/src/envOverwrite.ts +0 -1
  476. package/src/factory.tsx +31 -6
  477. package/src/hooks/index.ts +5 -0
  478. package/src/hooks/use-set-state.ts +19 -0
  479. package/src/hooks/use-touch.ts +100 -0
  480. package/src/hooks/use-update-effect.ts +16 -0
  481. package/src/icons/clock.svg +1 -0
  482. package/src/icons/loading-outline.svg +4 -0
  483. package/src/icons/status-close.svg +10 -0
  484. package/src/icons/status-fail.svg +10 -0
  485. package/src/icons/status-info.svg +8 -0
  486. package/src/icons/status-success.svg +10 -0
  487. package/src/icons/status-warning.svg +8 -0
  488. package/src/index.tsx +3 -0
  489. package/src/locale/de-DE.ts +5 -0
  490. package/src/locale/en-US.ts +6 -1
  491. package/src/locale/zh-CN.ts +9 -4
  492. package/src/renderers/Action.tsx +99 -15
  493. package/src/renderers/AnchorNav.tsx +4 -0
  494. package/src/renderers/Avatar.tsx +8 -4
  495. package/src/renderers/Breadcrumb.tsx +5 -1
  496. package/src/renderers/CRUD.tsx +70 -56
  497. package/src/renderers/Card.tsx +63 -34
  498. package/src/renderers/Chart.tsx +6 -2
  499. package/src/renderers/Collapse.tsx +9 -3
  500. package/src/renderers/Dialog.tsx +1 -5
  501. package/src/renderers/Drawer.tsx +0 -4
  502. package/src/renderers/DropDownButton.tsx +34 -12
  503. package/src/renderers/Form/Checkbox.tsx +8 -0
  504. package/src/renderers/Form/Combo.tsx +2 -3
  505. package/src/renderers/Form/Editor.tsx +19 -20
  506. package/src/renderers/Form/InputCity.tsx +4 -8
  507. package/src/renderers/Form/InputExcel.tsx +28 -3
  508. package/src/renderers/Form/InputFile.tsx +30 -20
  509. package/src/renderers/Form/InputImage.tsx +39 -13
  510. package/src/renderers/Form/InputTable.tsx +88 -9
  511. package/src/renderers/Form/Item.tsx +1 -1
  512. package/src/renderers/Form/Options.tsx +32 -7
  513. package/src/renderers/Form/Picker.tsx +3 -2
  514. package/src/renderers/Form/Select.tsx +144 -21
  515. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  516. package/src/renderers/Form/Transfer.tsx +3 -2
  517. package/src/renderers/Form/TransferPicker.tsx +123 -0
  518. package/src/renderers/Form/TreeSelect.tsx +25 -0
  519. package/src/renderers/Form/index.tsx +1 -1
  520. package/src/renderers/Form/wrapControl.tsx +28 -3
  521. package/src/renderers/IFrame.tsx +4 -5
  522. package/src/renderers/Image.tsx +10 -0
  523. package/src/renderers/Json.tsx +19 -10
  524. package/src/renderers/Link.tsx +53 -14
  525. package/src/renderers/List.tsx +1 -1
  526. package/src/renderers/Log.tsx +16 -3
  527. package/src/renderers/Mapping.tsx +27 -11
  528. package/src/renderers/Nav.tsx +392 -60
  529. package/src/renderers/Page.tsx +3 -1
  530. package/src/renderers/Portlet.tsx +423 -0
  531. package/src/renderers/Property.tsx +3 -2
  532. package/src/renderers/SearchBox.tsx +23 -4
  533. package/src/renderers/Service.tsx +101 -3
  534. package/src/renderers/SparkLine.tsx +5 -0
  535. package/src/renderers/Steps.tsx +12 -9
  536. package/src/renderers/Table/ColumnToggler.tsx +544 -0
  537. package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
  538. package/src/renderers/Table/TableBody.tsx +1 -1
  539. package/src/renderers/Table/TableCell.tsx +16 -1
  540. package/src/renderers/Table/TableContent.tsx +41 -3
  541. package/src/renderers/Table/index.tsx +318 -92
  542. package/src/renderers/Tabs.tsx +9 -1
  543. package/src/renderers/WebComponent.tsx +2 -2
  544. package/src/store/crud.ts +3 -8
  545. package/src/store/form.ts +5 -10
  546. package/src/store/modal.ts +4 -0
  547. package/src/store/service.ts +5 -23
  548. package/src/store/table.ts +103 -4
  549. package/src/types.ts +57 -0
  550. package/src/utils/api.ts +63 -23
  551. package/src/utils/attachmentAdpator.ts +90 -0
  552. package/src/utils/dom.tsx +12 -0
  553. package/src/utils/handleAction.ts +41 -0
  554. package/src/utils/helper.ts +12 -3
  555. package/src/utils/icon.tsx +4 -0
  556. package/src/utils/tpl-builtin.ts +48 -17
  557. package/src/utils/validations.ts +80 -12
  558. package/dump.rdb +0 -0
  559. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  560. package/lib/components/AssociatedCheckboxes.js +0 -90
  561. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  562. package/lib/components/ChainedCheckboxes.js.map +0 -13
  563. package/lib/components/Checkboxes.js +0 -101
  564. package/lib/components/Checkboxes.js.map +0 -13
  565. package/lib/components/ListCheckboxes.d.ts +0 -739
  566. package/lib/components/ListCheckboxes.js +0 -48
  567. package/lib/components/ListCheckboxes.js.map +0 -13
  568. package/lib/components/ListRadios.d.ts +0 -763
  569. package/lib/components/ListRadios.js +0 -86
  570. package/lib/components/ListRadios.js.map +0 -13
  571. package/lib/components/TableCheckboxes.js.map +0 -13
  572. package/lib/components/TreeCheckboxes.js.map +0 -13
  573. package/lib/components/TreeRadios.d.ts +0 -838
  574. package/lib/components/TreeRadios.js +0 -116
  575. package/lib/components/TreeRadios.js.map +0 -13
  576. package/src/components/ListRadios.tsx +0 -159
  577. package/src/components/TreeRadios.tsx +0 -202
package/src/Schema.ts CHANGED
@@ -39,6 +39,7 @@ import {QRCodeSchema} from './renderers/QRCode';
39
39
  import {ServiceSchema} from './renderers/Service';
40
40
  import {StatusSchema} from './renderers/Status';
41
41
  import {TabsSchema} from './renderers/Tabs';
42
+ import {PortletSchema} from './renderers/Portlet';
42
43
  import {TasksSchema} from './renderers/Tasks';
43
44
  import {VBoxSchema} from './renderers/VBox';
44
45
  import {VideoSchema} from './renderers/Video';
@@ -109,6 +110,8 @@ import {TransferControlSchema} from './renderers/Form/Transfer';
109
110
  import {TreeSelectControlSchema} from './renderers/Form/TreeSelect';
110
111
  import {UUIDControlSchema} from './renderers/Form/UUID';
111
112
  import {FormControlSchema} from './renderers/Form/Control';
113
+ import {TransferPickerControlSchema} from './renderers/Form/TransferPicker';
114
+ import {TabsTransferPickerControlSchema} from './renderers/Form/TabsTransferPicker';
112
115
 
113
116
  // 每加个类型,这补充一下。
114
117
  export type SchemaType =
@@ -308,9 +311,12 @@ export type SchemaType =
308
311
  | 'multi-select'
309
312
  | 'textarea'
310
313
  | 'transfer'
314
+ | 'transfer-picker'
315
+ | 'tabs-transfer-picker'
311
316
  | 'input-tree'
312
317
  | 'tree-select'
313
318
  | 'table-view'
319
+ | 'portlet'
314
320
 
315
321
  // 原生 input 类型
316
322
  | 'native-date'
@@ -375,6 +381,7 @@ export type SchemaObject =
375
381
  | FormSchema
376
382
  | AnchorNavSchema
377
383
  | StepsSchema
384
+ | PortletSchema
378
385
 
379
386
  // 表单项
380
387
  | FormControlSchema
@@ -429,6 +436,8 @@ export type SchemaObject =
429
436
  | TextControlSchema
430
437
  | TextareaControlSchema
431
438
  | TransferControlSchema
439
+ | TransferPickerControlSchema
440
+ | TabsTransferPickerControlSchema
432
441
  | TreeControlSchema
433
442
  | TreeSelectControlSchema;
434
443
 
@@ -492,6 +501,24 @@ export interface SchemaApiObject {
492
501
  [propName: string]: any;
493
502
  };
494
503
 
504
+ /**
505
+ * 默认数据映射中的key如果带点,或者带大括号,会转成对象比如:
506
+ *
507
+ * {
508
+ * 'a.b': '123'
509
+ * }
510
+ *
511
+ * 经过数据映射后变成
512
+ * {
513
+ * a: {
514
+ * b: '123
515
+ * }
516
+ * }
517
+ *
518
+ * 如果想要关闭此功能,请设置 convertKeyToPath 为 false
519
+ */
520
+ convertKeyToPath?: boolean;
521
+
495
522
  /**
496
523
  * 用来做接口返回的数据映射。
497
524
  */
@@ -705,6 +732,11 @@ export interface BaseSchema {
705
732
  * 是否显示表达式
706
733
  */
707
734
  visibleOn?: SchemaExpression;
735
+
736
+ /**
737
+ * 是否使用移动端交互
738
+ */
739
+ useMobileUI?: boolean;
708
740
  }
709
741
 
710
742
  export interface Option {
@@ -113,7 +113,9 @@ export class Alert extends React.Component<AlertProps, AlertState> {
113
113
 
114
114
  this.setState(
115
115
  {
116
- show: false
116
+ show: false,
117
+ prompt: false,
118
+ confirm: false
117
119
  },
118
120
  isConfirm ? () => this._resolve(confirmed) /*this._reject()*/ : undefined
119
121
  );
@@ -46,6 +46,7 @@ export interface AnchorNavProps extends ThemeProps {
46
46
  props?: AnchorNavProps
47
47
  ) => JSX.Element; // 锚点区域渲染器
48
48
  onSelect?: (key: string | number) => void; // 选中回调方法
49
+ direction?: 'vertical' | 'horizontal'; // 导航方向
49
50
  }
50
51
 
51
52
  export interface AnchorNavState {
@@ -56,10 +57,11 @@ export interface AnchorNavState {
56
57
  export class AnchorNav extends React.Component<AnchorNavProps, AnchorNavState> {
57
58
  static defaultProps: Pick<
58
59
  AnchorNavProps,
59
- 'linkClassName' | 'sectionClassName'
60
+ 'linkClassName' | 'sectionClassName' | 'direction'
60
61
  > = {
61
62
  linkClassName: '',
62
- sectionClassName: ''
63
+ sectionClassName: '',
64
+ direction: 'vertical'
63
65
  };
64
66
 
65
67
  // 滚动区域DOM
@@ -214,7 +216,8 @@ export class AnchorNav extends React.Component<AnchorNavProps, AnchorNavState> {
214
216
  className,
215
217
  linkClassName,
216
218
  sectionClassName,
217
- children
219
+ children,
220
+ direction
218
221
  } = this.props;
219
222
 
220
223
  if (!Array.isArray(children)) {
@@ -222,7 +225,15 @@ export class AnchorNav extends React.Component<AnchorNavProps, AnchorNavState> {
222
225
  }
223
226
 
224
227
  return (
225
- <div className={cx(`AnchorNav`, className)}>
228
+ <div
229
+ className={cx(
230
+ 'AnchorNav',
231
+ {
232
+ [`AnchorNav--${direction}`]: direction
233
+ },
234
+ className
235
+ )}
236
+ >
226
237
  <ul
227
238
  className={cx('AnchorNav-link-wrap', linkClassName)}
228
239
  role="anchorlist"
@@ -5,27 +5,24 @@
5
5
  */
6
6
 
7
7
  import React from 'react';
8
- import {BaseCheckboxesProps, BaseCheckboxes} from './Checkboxes';
8
+ import {BaseSelectionProps, BaseSelection} from './Selection';
9
9
  import {Options, Option} from './Select';
10
- import ListMenu from './ListMenu';
11
10
  import {autobind} from '../utils/helper';
12
- import ListRadios from './ListRadios';
13
11
  import {themeable} from '../theme';
14
12
  import {uncontrollable} from 'uncontrollable';
15
- import ListCheckboxes from './ListCheckboxes';
16
- import TableCheckboxes from './TableCheckboxes';
17
- import TreeCheckboxes from './TreeCheckboxes';
18
- import ChainedCheckboxes from './ChainedCheckboxes';
19
- import Spinner from './Spinner';
20
- import TreeRadios from './TreeRadios';
13
+ import GroupedSelection from './GroupedSelection';
14
+ import TableSelection from './TableSelection';
15
+ import TreeSelection from './TreeSelection';
16
+ import GroupedSelecton from './GroupedSelection';
17
+ import ChainedSelection from './ChainedSelection';
21
18
  import {Icon} from './icons';
22
19
  import {localeable} from '../locale';
23
20
 
24
- export interface AssociatedCheckboxesProps extends BaseCheckboxesProps {
21
+ export interface AssociatedSelectionProps extends BaseSelectionProps {
25
22
  leftOptions: Options;
26
23
  leftDefaultValue?: any;
27
- leftMode?: 'tree' | 'list';
28
- rightMode?: 'table' | 'list' | 'tree' | 'chained';
24
+ leftMode?: 'tree' | 'list' | 'group';
25
+ rightMode?: 'table' | 'list' | 'group' | 'tree' | 'chained';
29
26
  columns?: Array<any>;
30
27
  cellRender?: (
31
28
  column: {
@@ -39,15 +36,15 @@ export interface AssociatedCheckboxesProps extends BaseCheckboxesProps {
39
36
  ) => JSX.Element;
40
37
  }
41
38
 
42
- export interface AssociatedCheckboxesState {
39
+ export interface AssociatedSelectionState {
43
40
  leftValue?: Option;
44
41
  }
45
42
 
46
- export class AssociatedCheckboxes extends BaseCheckboxes<
47
- AssociatedCheckboxesProps,
48
- AssociatedCheckboxesState
43
+ export class AssociatedSelection extends BaseSelection<
44
+ AssociatedSelectionProps,
45
+ AssociatedSelectionState
49
46
  > {
50
- state: AssociatedCheckboxesState = {
47
+ state: AssociatedSelectionState = {
51
48
  leftValue: this.props.leftDefaultValue
52
49
  };
53
50
 
@@ -56,7 +53,7 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
56
53
  const {options, onDeferLoad} = this.props;
57
54
 
58
55
  if (leftValue) {
59
- const selectdOption = ListRadios.resolveSelected(
56
+ const selectdOption = BaseSelection.resolveSelected(
60
57
  leftValue,
61
58
  options,
62
59
  (option: Option) => option.ref
@@ -78,7 +75,7 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
78
75
  const {options, onDeferLoad} = this.props;
79
76
  this.setState({leftValue: value});
80
77
 
81
- const selectdOption = ListRadios.resolveSelected(
78
+ const selectdOption = BaseSelection.resolveSelected(
82
79
  value,
83
80
  options,
84
81
  (option: Option) => option.ref
@@ -107,10 +104,11 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
107
104
  value,
108
105
  disabled,
109
106
  leftMode,
110
- cellRender
107
+ cellRender,
108
+ multiple
111
109
  } = this.props;
112
110
 
113
- const selectdOption = ListRadios.resolveSelected(
111
+ const selectdOption = BaseSelection.resolveSelected(
114
112
  this.state.leftValue,
115
113
  options,
116
114
  (option: Option) => option.ref
@@ -118,36 +116,38 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
118
116
  const __ = this.props.translate;
119
117
 
120
118
  return (
121
- <div className={cx('AssociatedCheckboxes', className)}>
122
- <div className={cx('AssociatedCheckboxes-left')}>
119
+ <div className={cx('AssociatedSelection', className)}>
120
+ <div className={cx('AssociatedSelection-left')}>
123
121
  {leftMode === 'tree' ? (
124
- <TreeRadios
122
+ <TreeSelection
125
123
  option2value={this.leftOption2Value}
126
124
  options={leftOptions}
127
125
  value={this.state.leftValue}
128
126
  disabled={disabled}
129
127
  onChange={this.handleLeftSelect}
130
- showRadio={false}
128
+ multiple={false}
129
+ clearable={false}
131
130
  />
132
131
  ) : (
133
- <ListRadios
132
+ <GroupedSelecton
134
133
  option2value={this.leftOption2Value}
135
134
  options={leftOptions}
136
135
  value={this.state.leftValue}
137
136
  disabled={disabled}
138
137
  onChange={this.handleLeftSelect}
139
- showRadio={false}
138
+ multiple={false}
139
+ clearable={false}
140
140
  />
141
141
  )}
142
142
  </div>
143
- <div className={cx('AssociatedCheckboxes-right')}>
143
+ <div className={cx('AssociatedSelection-right')}>
144
144
  {this.state.leftValue ? (
145
145
  selectdOption ? (
146
146
  selectdOption.defer && !selectdOption.loaded ? (
147
- <div className={cx('AssociatedCheckboxes-box')}>
147
+ <div className={cx('AssociatedSelection-box')}>
148
148
  <div
149
149
  className={cx(
150
- 'AssociatedCheckboxes-reload',
150
+ 'AssociatedSelection-reload',
151
151
  selectdOption.loading ? 'is-spin' : 'is-clickable'
152
152
  )}
153
153
  onClick={
@@ -166,7 +166,7 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
166
166
  )}
167
167
  </div>
168
168
  ) : rightMode === 'table' ? (
169
- <TableCheckboxes
169
+ <TableSelection
170
170
  columns={columns!}
171
171
  value={value}
172
172
  disabled={disabled}
@@ -174,39 +174,43 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
174
174
  onChange={onChange}
175
175
  option2value={option2value}
176
176
  cellRender={cellRender}
177
+ multiple={multiple}
177
178
  />
178
179
  ) : rightMode === 'tree' ? (
179
- <TreeCheckboxes
180
+ <TreeSelection
180
181
  value={value}
181
182
  disabled={disabled}
182
183
  options={selectdOption.children || []}
183
184
  onChange={onChange}
184
185
  option2value={option2value}
186
+ multiple={multiple}
185
187
  />
186
188
  ) : rightMode === 'chained' ? (
187
- <ChainedCheckboxes
189
+ <ChainedSelection
188
190
  value={value}
189
191
  disabled={disabled}
190
192
  options={selectdOption.children || []}
191
193
  onChange={onChange}
192
194
  option2value={option2value}
195
+ multiple={multiple}
193
196
  />
194
197
  ) : (
195
- <ListCheckboxes
198
+ <GroupedSelection
196
199
  value={value}
197
200
  disabled={disabled}
198
201
  options={selectdOption.children || []}
199
202
  onChange={onChange}
200
203
  option2value={option2value}
204
+ multiple={multiple}
201
205
  />
202
206
  )
203
207
  ) : (
204
- <div className={cx('AssociatedCheckboxes-box')}>
208
+ <div className={cx('AssociatedSelection-box')}>
205
209
  {__('Transfer.configError')}
206
210
  </div>
207
211
  )
208
212
  ) : (
209
- <div className={cx('AssociatedCheckboxes-box')}>
213
+ <div className={cx('AssociatedSelection-box')}>
210
214
  {__('Transfer.selectFromLeft')}
211
215
  </div>
212
216
  )}
@@ -218,7 +222,7 @@ export class AssociatedCheckboxes extends BaseCheckboxes<
218
222
 
219
223
  export default themeable(
220
224
  localeable(
221
- uncontrollable(AssociatedCheckboxes, {
225
+ uncontrollable(AssociatedSelection, {
222
226
  value: 'onChange'
223
227
  })
224
228
  )
@@ -6,18 +6,18 @@ import React from 'react';
6
6
  import hoistNonReactStatic from 'hoist-non-react-statics';
7
7
  import {BaseSchema, SchemaExpression} from '../Schema';
8
8
  import {evalExpression} from '../utils/tpl';
9
- import {resolveVariable} from '../utils/tpl-builtin';
9
+ import {resolveVariable, resolveVariableAndFilter} from '../utils/tpl-builtin';
10
10
  import {ClassNamesFn} from '../theme';
11
11
 
12
12
  /**
13
13
  * Badge 角标。
14
14
  * 文档:https://baidu.gitee.io/amis/docs/components/badge
15
15
  */
16
- export interface BadgeSchema extends BaseSchema {
16
+ export interface BadgeSchema extends Omit<BaseSchema, 'type'> {
17
17
  /**
18
18
  * 文本内容
19
19
  */
20
- text?: string;
20
+ text?: string | number;
21
21
 
22
22
  /**
23
23
  * 大小
@@ -27,13 +27,23 @@ export interface BadgeSchema extends BaseSchema {
27
27
  /**
28
28
  * 角标类型
29
29
  */
30
- mode?: 'text' | 'dot';
30
+ mode?: 'text' | 'dot' | 'ribbon';
31
+
32
+ /**
33
+ * 角标位置,优先级大于position
34
+ */
35
+ offset?: [number | string, number | string];
31
36
 
32
37
  /**
33
38
  * 角标位置
34
39
  */
35
40
  position?: 'top-right' | 'top-left' | 'bottom-right' | 'bottom-left';
36
41
 
42
+ /**
43
+ * 封顶的数字值
44
+ */
45
+ overflowCount?: number;
46
+
37
47
  /**
38
48
  * 动态控制是否显示
39
49
  */
@@ -50,6 +60,11 @@ export interface BadgeSchema extends BaseSchema {
50
60
  style?: {
51
61
  [propName: string]: any;
52
62
  };
63
+
64
+ /**
65
+ * 提示类型
66
+ */
67
+ level?: 'info' | 'warning' | 'success' | 'danger' | SchemaExpression;
53
68
  }
54
69
 
55
70
  export interface BadgeProps {
@@ -65,6 +80,70 @@ export class Badge extends React.Component<BadgeProps, object> {
65
80
  super(props);
66
81
  }
67
82
 
83
+ renderBadge(
84
+ text: any,
85
+ size: number,
86
+ position: any,
87
+ offsetStyle: any,
88
+ sizeStyle: any,
89
+ animationElement: any
90
+ ) {
91
+ const {classnames: cx, badge, data} = this.props;
92
+ let {mode = 'dot', level = 'danger', style} = badge as BadgeSchema;
93
+
94
+ if (typeof level === 'string' && level[0] === '$') {
95
+ level = resolveVariableAndFilter(level, data);
96
+ }
97
+
98
+ switch (mode) {
99
+ case 'dot':
100
+ return (
101
+ <span
102
+ className={cx('Badge-dot', `Badge--${position}`, `Badge--${level}`)}
103
+ style={{...offsetStyle, ...sizeStyle, ...style}}
104
+ >
105
+ {animationElement}
106
+ </span>
107
+ );
108
+ case 'text':
109
+ return (
110
+ <span
111
+ className={cx(
112
+ 'Badge-text',
113
+ `Badge--${position}`,
114
+ `Badge--${level}`
115
+ )}
116
+ style={{...offsetStyle, ...sizeStyle, ...style}}
117
+ >
118
+ {text}
119
+ {animationElement}
120
+ </span>
121
+ );
122
+ case 'ribbon':
123
+ const outSize = size * Math.sqrt(2) + 5;
124
+ return (
125
+ <div
126
+ className={cx('Badge-ribbon-out', `Badge-ribbon-out--${position}`)}
127
+ style={{width: outSize, height: outSize}}
128
+ >
129
+ <span
130
+ className={cx(
131
+ 'Badge-ribbon',
132
+ `Badge-ribbon--${position}`,
133
+ `Badge--${level}`
134
+ )}
135
+ style={{...sizeStyle, ...style}}
136
+ >
137
+ {text}
138
+ {animationElement}
139
+ </span>
140
+ </div>
141
+ );
142
+ default:
143
+ return null;
144
+ }
145
+ }
146
+
68
147
  render() {
69
148
  const badge = this.props.badge;
70
149
  if (!badge) {
@@ -79,9 +158,12 @@ export class Badge extends React.Component<BadgeProps, object> {
79
158
  let {
80
159
  mode = 'dot',
81
160
  text,
161
+ level,
82
162
  size,
83
163
  style,
164
+ offset,
84
165
  position = 'top-right',
166
+ overflowCount = 99,
85
167
  visibleOn,
86
168
  className,
87
169
  animation
@@ -92,13 +174,15 @@ export class Badge extends React.Component<BadgeProps, object> {
92
174
  }
93
175
 
94
176
  if (typeof text === 'string' && text[0] === '$') {
95
- text = resolveVariable(text, data);
177
+ text = resolveVariableAndFilter(text, data);
96
178
  }
97
179
 
98
180
  // 设置默认值
99
181
  if (typeof size === 'undefined') {
100
182
  if (mode === 'dot') {
101
183
  size = 6;
184
+ } else if (mode === 'ribbon') {
185
+ size = 12;
102
186
  } else {
103
187
  size = 16;
104
188
  }
@@ -111,6 +195,14 @@ export class Badge extends React.Component<BadgeProps, object> {
111
195
  height: size,
112
196
  lineHeight: size + 'px'
113
197
  };
198
+ // 当text、overflowCount都为number类型时,进行封顶值处理
199
+ if (typeof text === 'number' && typeof overflowCount === 'number') {
200
+ text = (
201
+ (text as number) > (overflowCount as number)
202
+ ? `${overflowCount}+`
203
+ : text
204
+ ) as string | number;
205
+ }
114
206
 
115
207
  if (!text) {
116
208
  isDisplay = false;
@@ -121,6 +213,25 @@ export class Badge extends React.Component<BadgeProps, object> {
121
213
  sizeStyle = {width: size, height: size};
122
214
  }
123
215
 
216
+ if (mode === 'ribbon') {
217
+ sizeStyle = {
218
+ height: size,
219
+ lineHeight: size + 'px',
220
+ fontSize: size
221
+ };
222
+ }
223
+
224
+ let offsetStyle = {};
225
+ // 如果设置了offset属性,offset在position为'top-right'的基础上进行translate定位
226
+ if (offset && offset.length) {
227
+ position = 'top-right';
228
+ const left = `calc(50% + ${parseInt(offset[0] as string, 10)}px)`;
229
+ const right = `calc(-50% + ${parseInt(offset[1] as string, 10)}px)`;
230
+ offsetStyle = {
231
+ transform: `translate(${left}, ${right})`
232
+ };
233
+ }
234
+
124
235
  let animationBackground = 'var(--danger)';
125
236
 
126
237
  if (style && style.background) {
@@ -145,24 +256,16 @@ export class Badge extends React.Component<BadgeProps, object> {
145
256
  return (
146
257
  <div className={cx('Badge', className)}>
147
258
  {children}
148
- {isDisplay ? (
149
- mode === 'dot' ? (
150
- <span
151
- className={cx('Badge-dot', `Badge--${position}`)}
152
- style={{...sizeStyle, ...style}}
153
- >
154
- {animationElement}
155
- </span>
156
- ) : (
157
- <span
158
- className={cx('Badge-text', `Badge--${position}`)}
159
- style={{...sizeStyle, ...style}}
160
- >
161
- {text}
162
- {animationElement}
163
- </span>
164
- )
165
- ) : null}
259
+ {isDisplay
260
+ ? this.renderBadge(
261
+ text,
262
+ size,
263
+ position,
264
+ offsetStyle,
265
+ sizeStyle,
266
+ animationElement
267
+ )
268
+ : null}
166
269
  </div>
167
270
  );
168
271
  }
@@ -7,7 +7,7 @@ import React from 'react';
7
7
  import TooltipWrapper, {TooltipObject, Trigger} from './TooltipWrapper';
8
8
  import {pickEventsProps} from '../utils/helper';
9
9
  import {ClassNamesFn, themeable} from '../theme';
10
-
10
+ import {Icon} from './icons';
11
11
  interface ButtonProps extends React.DOMAttributes<HTMLButtonElement> {
12
12
  id?: string;
13
13
  className?: string;
@@ -16,7 +16,7 @@ interface ButtonProps extends React.DOMAttributes<HTMLButtonElement> {
16
16
  type: 'button' | 'reset' | 'submit';
17
17
  level: string; // 'link' | 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger' | 'light' | 'dark' | 'default';
18
18
  tooltip?: string | TooltipObject;
19
- placement: 'top' | 'right' | 'bottom' | 'left';
19
+ tooltipPlacement: 'top' | 'right' | 'bottom' | 'left';
20
20
  tooltipContainer?: any;
21
21
  tooltipTrigger: Trigger | Array<Trigger>;
22
22
  tooltipRootClose: boolean;
@@ -29,6 +29,8 @@ interface ButtonProps extends React.DOMAttributes<HTMLButtonElement> {
29
29
  classnames: ClassNamesFn;
30
30
  componentClass: React.ReactType;
31
31
  overrideClassName?: boolean;
32
+ loading?: boolean;
33
+ loadingClassName?: string;
32
34
  }
33
35
 
34
36
  export class Button extends React.Component<ButtonProps> {
@@ -37,14 +39,14 @@ export class Button extends React.Component<ButtonProps> {
37
39
  | 'componentClass'
38
40
  | 'level'
39
41
  | 'type'
40
- | 'placement'
42
+ | 'tooltipPlacement'
41
43
  | 'tooltipTrigger'
42
44
  | 'tooltipRootClose'
43
45
  > = {
44
46
  componentClass: 'button',
45
47
  level: 'default',
46
48
  type: 'button',
47
- placement: 'top',
49
+ tooltipPlacement: 'top',
48
50
  tooltipTrigger: ['hover', 'focus'],
49
51
  tooltipRootClose: false
50
52
  };
@@ -64,13 +66,15 @@ export class Button extends React.Component<ButtonProps> {
64
66
  active,
65
67
  iconOnly,
66
68
  href,
69
+ loading,
70
+ loadingClassName,
67
71
  overrideClassName,
68
72
  ...rest
69
73
  } = this.props;
70
74
 
71
75
  if (href) {
72
76
  Comp = 'a';
73
- } else if (Comp === 'button' && disabled) {
77
+ } else if ((Comp === 'button' && disabled) || loading) {
74
78
  Comp = 'div';
75
79
  }
76
80
 
@@ -95,6 +99,18 @@ export class Button extends React.Component<ButtonProps> {
95
99
  )}
96
100
  disabled={disabled}
97
101
  >
102
+ {loading && !disabled ? (
103
+ <span
104
+ className={cx(
105
+ overrideClassName
106
+ ? ''
107
+ : {[`Button--loading Button--loading--${level}`]: level},
108
+ loadingClassName
109
+ )}
110
+ >
111
+ <Icon icon="loading-outline" className="icon" />
112
+ </span>
113
+ ) : null}
98
114
  {children}
99
115
  </Comp>
100
116
  );
@@ -103,7 +119,7 @@ export class Button extends React.Component<ButtonProps> {
103
119
  render() {
104
120
  const {
105
121
  tooltip,
106
- placement,
122
+ tooltipPlacement,
107
123
  tooltipContainer,
108
124
  tooltipTrigger,
109
125
  tooltipRootClose,
@@ -114,7 +130,7 @@ export class Button extends React.Component<ButtonProps> {
114
130
 
115
131
  return (
116
132
  <TooltipWrapper
117
- placement={placement}
133
+ placement={tooltipPlacement}
118
134
  tooltip={disabled ? disabledTip : tooltip}
119
135
  container={tooltipContainer}
120
136
  trigger={tooltipTrigger}