amis 1.7.0 → 1.8.0-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 (469) hide show
  1. package/lib/Schema.d.ts +10 -2
  2. package/lib/Schema.js +0 -1
  3. package/lib/Schema.js.map +2 -2
  4. package/lib/SchemaRenderer.js +19 -3
  5. package/lib/SchemaRenderer.js.map +2 -2
  6. package/lib/WithRootStore.d.ts +18 -0
  7. package/lib/WithStore.js +2 -1
  8. package/lib/WithStore.js.map +2 -2
  9. package/lib/actions/CmptAction.js +26 -4
  10. package/lib/actions/CmptAction.js.map +2 -2
  11. package/lib/actions/PageAction.d.ts +32 -0
  12. package/lib/actions/PageAction.js +72 -0
  13. package/lib/actions/PageAction.js.map +13 -0
  14. package/lib/actions/index.d.ts +1 -0
  15. package/lib/actions/index.js +1 -0
  16. package/lib/actions/index.js.map +2 -2
  17. package/lib/components/Alert2.js +4 -2
  18. package/lib/components/Alert2.js.map +2 -2
  19. package/lib/components/AssociatedSelection.js +9 -2
  20. package/lib/components/AssociatedSelection.js.map +2 -2
  21. package/lib/components/Avatar.d.ts +20 -20
  22. package/lib/components/BarCode.js +1 -1
  23. package/lib/components/BarCode.js.map +2 -2
  24. package/lib/components/CalendarMobile.d.ts +84 -84
  25. package/lib/components/Card.d.ts +20 -20
  26. package/lib/components/Cascader.d.ts +2 -0
  27. package/lib/components/Cascader.js +28 -12
  28. package/lib/components/Cascader.js.map +2 -2
  29. package/lib/components/Checkbox.d.ts +24 -23
  30. package/lib/components/Checkbox.js +5 -1
  31. package/lib/components/Checkbox.js.map +2 -2
  32. package/lib/components/CityArea.js +3 -0
  33. package/lib/components/CityArea.js.map +2 -2
  34. package/lib/components/Collapse.d.ts +20 -20
  35. package/lib/components/DatePicker.d.ts +87 -84
  36. package/lib/components/DatePicker.js +48 -11
  37. package/lib/components/DatePicker.js.map +2 -2
  38. package/lib/components/DateRangePicker.d.ts +285 -171
  39. package/lib/components/DateRangePicker.js +471 -66
  40. package/lib/components/DateRangePicker.js.map +2 -2
  41. package/lib/components/Drawer.js +1 -1
  42. package/lib/components/Drawer.js.map +2 -2
  43. package/lib/components/ListGroup.d.ts +21 -21
  44. package/lib/components/Modal.js +1 -1
  45. package/lib/components/Modal.js.map +2 -2
  46. package/lib/components/MonthRangePicker.d.ts +84 -84
  47. package/lib/components/Overlay.d.ts +1 -0
  48. package/lib/components/Overlay.js +4 -3
  49. package/lib/components/Overlay.js.map +2 -2
  50. package/lib/components/Progress.d.ts +29 -24
  51. package/lib/components/Progress.js +52 -21
  52. package/lib/components/Progress.js.map +2 -2
  53. package/lib/components/PullRefresh.d.ts +86 -0
  54. package/lib/components/PullRefresh.js +135 -0
  55. package/lib/components/PullRefresh.js.map +13 -0
  56. package/lib/components/Radios.d.ts +22 -22
  57. package/lib/components/Radios.js +3 -5
  58. package/lib/components/Radios.js.map +2 -2
  59. package/lib/components/Range.d.ts +2 -2
  60. package/lib/components/Range.js +24 -11
  61. package/lib/components/Range.js.map +2 -2
  62. package/lib/components/Spinner.d.ts +200 -107
  63. package/lib/components/Spinner.js +30 -26
  64. package/lib/components/Spinner.js.map +2 -2
  65. package/lib/components/Steps.d.ts +6 -0
  66. package/lib/components/Steps.js +13 -9
  67. package/lib/components/Steps.js.map +2 -2
  68. package/lib/components/Tabs.d.ts +27 -23
  69. package/lib/components/Tabs.js +37 -22
  70. package/lib/components/Tabs.js.map +2 -2
  71. package/lib/components/Tooltip.d.ts +4 -0
  72. package/lib/components/Tooltip.js +6 -4
  73. package/lib/components/Tooltip.js.map +2 -2
  74. package/lib/components/TooltipWrapper.d.ts +87 -24
  75. package/lib/components/TooltipWrapper.js +40 -8
  76. package/lib/components/TooltipWrapper.js.map +2 -2
  77. package/lib/components/Transfer.d.ts +84 -84
  78. package/lib/components/TransferDropDown.d.ts +84 -84
  79. package/lib/components/Tree.d.ts +87 -85
  80. package/lib/components/Tree.js +13 -5
  81. package/lib/components/Tree.js.map +2 -2
  82. package/lib/components/TreeSelection.d.ts +84 -84
  83. package/lib/components/calendar/Calendar.js +3 -12
  84. package/lib/components/calendar/Calendar.js.map +2 -2
  85. package/lib/components/calendar/TimeView.d.ts +1 -0
  86. package/lib/components/calendar/TimeView.js +7 -0
  87. package/lib/components/calendar/TimeView.js.map +2 -2
  88. package/lib/components/calendar/YearsView.js +3 -3
  89. package/lib/components/calendar/YearsView.js.map +2 -2
  90. package/lib/components/condition-builder/Expression.d.ts +1 -0
  91. package/lib/components/condition-builder/Expression.js +4 -4
  92. package/lib/components/condition-builder/Expression.js.map +2 -2
  93. package/lib/components/condition-builder/Field.d.ts +1 -0
  94. package/lib/components/condition-builder/Field.js +3 -2
  95. package/lib/components/condition-builder/Field.js.map +2 -2
  96. package/lib/components/condition-builder/Group.d.ts +1 -0
  97. package/lib/components/condition-builder/Group.js +2 -2
  98. package/lib/components/condition-builder/Group.js.map +2 -2
  99. package/lib/components/condition-builder/GroupOrItem.d.ts +1 -0
  100. package/lib/components/condition-builder/GroupOrItem.js +2 -2
  101. package/lib/components/condition-builder/GroupOrItem.js.map +2 -2
  102. package/lib/components/condition-builder/InputSwitch.d.ts +2 -1
  103. package/lib/components/condition-builder/InputSwitch.js +2 -2
  104. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  105. package/lib/components/condition-builder/Item.d.ts +1 -0
  106. package/lib/components/condition-builder/Item.js +9 -8
  107. package/lib/components/condition-builder/Item.js.map +2 -2
  108. package/lib/components/condition-builder/Value.d.ts +1 -0
  109. package/lib/components/condition-builder/Value.js +5 -5
  110. package/lib/components/condition-builder/Value.js.map +2 -2
  111. package/lib/components/condition-builder/index.d.ts +1 -0
  112. package/lib/components/condition-builder/index.js +2 -2
  113. package/lib/components/condition-builder/index.js.map +2 -2
  114. package/lib/components/formula/Editor.d.ts +90 -86
  115. package/lib/components/formula/Editor.js +26 -4
  116. package/lib/components/formula/Editor.js.map +2 -2
  117. package/lib/components/formula/Picker.d.ts +5 -0
  118. package/lib/components/formula/Picker.js +21 -4
  119. package/lib/components/formula/Picker.js.map +2 -2
  120. package/lib/components/icons.js +2 -0
  121. package/lib/components/icons.js.map +2 -2
  122. package/lib/factory.d.ts +5 -0
  123. package/lib/factory.js +24 -3
  124. package/lib/factory.js.map +2 -2
  125. package/lib/icons/trash.js +10 -0
  126. package/lib/index.d.ts +1 -0
  127. package/lib/index.js +2 -1
  128. package/lib/index.js.map +2 -2
  129. package/lib/locale/de-DE.js +18 -1
  130. package/lib/locale/de-DE.js.map +2 -2
  131. package/lib/locale/en-US.js +18 -1
  132. package/lib/locale/en-US.js.map +2 -2
  133. package/lib/locale/zh-CN.js +18 -1
  134. package/lib/locale/zh-CN.js.map +2 -2
  135. package/lib/renderers/Action.d.ts +3 -1
  136. package/lib/renderers/Action.js +23 -5
  137. package/lib/renderers/Action.js.map +2 -2
  138. package/lib/renderers/App.d.ts +1 -0
  139. package/lib/renderers/App.js +3 -0
  140. package/lib/renderers/App.js.map +2 -2
  141. package/lib/renderers/ButtonGroup.d.ts +2 -2
  142. package/lib/renderers/ButtonGroup.js.map +1 -1
  143. package/lib/renderers/CRUD.d.ts +8 -0
  144. package/lib/renderers/CRUD.js +12 -5
  145. package/lib/renderers/CRUD.js.map +2 -2
  146. package/lib/renderers/Carousel.d.ts +1 -0
  147. package/lib/renderers/Carousel.js +13 -1
  148. package/lib/renderers/Carousel.js.map +2 -2
  149. package/lib/renderers/Chart.d.ts +1 -0
  150. package/lib/renderers/Chart.js +3 -0
  151. package/lib/renderers/Chart.js.map +2 -2
  152. package/lib/renderers/Dialog.d.ts +5 -0
  153. package/lib/renderers/Dialog.js +7 -3
  154. package/lib/renderers/Dialog.js.map +2 -2
  155. package/lib/renderers/Drawer.d.ts +1 -0
  156. package/lib/renderers/Drawer.js +6 -1
  157. package/lib/renderers/Drawer.js.map +2 -2
  158. package/lib/renderers/DropDownButton.d.ts +2 -0
  159. package/lib/renderers/DropDownButton.js +13 -4
  160. package/lib/renderers/DropDownButton.js.map +2 -2
  161. package/lib/renderers/Form/Checkbox.d.ts +5 -2
  162. package/lib/renderers/Form/Checkbox.js +2 -2
  163. package/lib/renderers/Form/Checkbox.js.map +2 -2
  164. package/lib/renderers/Form/Checkboxes.d.ts +7 -2
  165. package/lib/renderers/Form/Checkboxes.js +101 -12
  166. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  167. package/lib/renderers/Form/Combo.d.ts +6 -4
  168. package/lib/renderers/Form/Combo.js +132 -45
  169. package/lib/renderers/Form/Combo.js.map +2 -2
  170. package/lib/renderers/Form/DiffEditor.d.ts +3 -2
  171. package/lib/renderers/Form/Editor.d.ts +2 -2
  172. package/lib/renderers/Form/InputCity.d.ts +87 -84
  173. package/lib/renderers/Form/InputCity.js +48 -3
  174. package/lib/renderers/Form/InputCity.js.map +2 -2
  175. package/lib/renderers/Form/InputDate.js +10 -3
  176. package/lib/renderers/Form/InputDate.js.map +2 -2
  177. package/lib/renderers/Form/InputDateRange.d.ts +5 -0
  178. package/lib/renderers/Form/InputDateRange.js +12 -3
  179. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  180. package/lib/renderers/Form/InputFile.js +19 -8
  181. package/lib/renderers/Form/InputFile.js.map +2 -2
  182. package/lib/renderers/Form/InputFormula.d.ts +4 -0
  183. package/lib/renderers/Form/InputFormula.js +2 -2
  184. package/lib/renderers/Form/InputFormula.js.map +2 -2
  185. package/lib/renderers/Form/InputImage.js +18 -7
  186. package/lib/renderers/Form/InputImage.js.map +2 -2
  187. package/lib/renderers/Form/InputMonthRange.js +5 -1
  188. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  189. package/lib/renderers/Form/InputRange.d.ts +2 -2
  190. package/lib/renderers/Form/InputRange.js +13 -14
  191. package/lib/renderers/Form/InputRange.js.map +2 -2
  192. package/lib/renderers/Form/InputTable.js +4 -2
  193. package/lib/renderers/Form/InputTable.js.map +2 -2
  194. package/lib/renderers/Form/InputText.d.ts +1 -1
  195. package/lib/renderers/Form/InputText.js +8 -10
  196. package/lib/renderers/Form/InputText.js.map +2 -2
  197. package/lib/renderers/Form/InputTree.d.ts +5 -0
  198. package/lib/renderers/Form/InputTree.js +51 -2
  199. package/lib/renderers/Form/InputTree.js.map +2 -2
  200. package/lib/renderers/Form/Item.d.ts +79 -76
  201. package/lib/renderers/Form/Item.js +3 -1
  202. package/lib/renderers/Form/Item.js.map +2 -2
  203. package/lib/renderers/Form/NestedSelect.d.ts +4 -0
  204. package/lib/renderers/Form/NestedSelect.js +14 -5
  205. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  206. package/lib/renderers/Form/Options.js +61 -27
  207. package/lib/renderers/Form/Options.js.map +2 -2
  208. package/lib/renderers/Form/Select.js +4 -2
  209. package/lib/renderers/Form/Select.js.map +2 -2
  210. package/lib/renderers/Form/Textarea.js +2 -1
  211. package/lib/renderers/Form/Textarea.js.map +2 -2
  212. package/lib/renderers/Form/TreeSelect.d.ts +11 -2
  213. package/lib/renderers/Form/TreeSelect.js +56 -10
  214. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  215. package/lib/renderers/Form/index.d.ts +3 -0
  216. package/lib/renderers/Form/index.js +53 -16
  217. package/lib/renderers/Form/index.js.map +2 -2
  218. package/lib/renderers/Form/wrapControl.d.ts +10 -0
  219. package/lib/renderers/Form/wrapControl.js +41 -19
  220. package/lib/renderers/Form/wrapControl.js.map +2 -2
  221. package/lib/renderers/Nav.d.ts +82 -67
  222. package/lib/renderers/Nav.js +49 -13
  223. package/lib/renderers/Nav.js.map +2 -2
  224. package/lib/renderers/Page.d.ts +21 -0
  225. package/lib/renderers/Page.js +56 -17
  226. package/lib/renderers/Page.js.map +2 -2
  227. package/lib/renderers/Progress.d.ts +4 -7
  228. package/lib/renderers/Progress.js +3 -3
  229. package/lib/renderers/Progress.js.map +2 -2
  230. package/lib/renderers/Service.d.ts +3 -0
  231. package/lib/renderers/Service.js +55 -20
  232. package/lib/renderers/Service.js.map +2 -2
  233. package/lib/renderers/Spinner.d.ts +58 -2
  234. package/lib/renderers/Spinner.js +8 -1
  235. package/lib/renderers/Spinner.js.map +2 -2
  236. package/lib/renderers/Steps.d.ts +8 -0
  237. package/lib/renderers/Steps.js +2 -2
  238. package/lib/renderers/Steps.js.map +2 -2
  239. package/lib/renderers/Table/ColumnToggler.d.ts +4 -0
  240. package/lib/renderers/Table/ColumnToggler.js +11 -6
  241. package/lib/renderers/Table/ColumnToggler.js.map +2 -2
  242. package/lib/renderers/Table/TableCell.js +27 -1
  243. package/lib/renderers/Table/TableCell.js.map +2 -2
  244. package/lib/renderers/Table/TableRow.js +1 -1
  245. package/lib/renderers/Table/TableRow.js.map +2 -2
  246. package/lib/renderers/Table/index.d.ts +2 -0
  247. package/lib/renderers/Table/index.js +23 -10
  248. package/lib/renderers/Table/index.js.map +2 -2
  249. package/lib/renderers/Tabs.d.ts +14 -2
  250. package/lib/renderers/Tabs.js +24 -8
  251. package/lib/renderers/Tabs.js.map +2 -2
  252. package/lib/renderers/TooltipWrapper.d.ts +133 -0
  253. package/lib/renderers/TooltipWrapper.js +70 -0
  254. package/lib/renderers/TooltipWrapper.js.map +13 -0
  255. package/lib/renderers/Wizard.d.ts +7 -3
  256. package/lib/renderers/Wizard.js +269 -152
  257. package/lib/renderers/Wizard.js.map +2 -2
  258. package/lib/store/combo.d.ts +2 -2
  259. package/lib/store/crud.d.ts +1 -0
  260. package/lib/store/crud.js +55 -19
  261. package/lib/store/crud.js.map +2 -2
  262. package/lib/store/form.d.ts +1 -1
  263. package/lib/store/form.js +5 -1
  264. package/lib/store/form.js.map +2 -2
  265. package/lib/store/formItem.js +1 -1
  266. package/lib/store/formItem.js.map +2 -2
  267. package/lib/store/index.d.ts +5 -0
  268. package/lib/store/index.js +14 -0
  269. package/lib/store/index.js.map +2 -2
  270. package/lib/store/table.d.ts +2 -2
  271. package/lib/store/table.js +4 -4
  272. package/lib/store/table.js.map +2 -2
  273. package/lib/themes/ang-ie11.css +965 -210
  274. package/lib/themes/ang.css +955 -175
  275. package/lib/themes/ang.css.map +1 -1
  276. package/lib/themes/antd-ie11.css +1080 -325
  277. package/lib/themes/antd.css +956 -176
  278. package/lib/themes/antd.css.map +1 -1
  279. package/lib/themes/cxd-ie11.css +1048 -293
  280. package/lib/themes/cxd.css +961 -180
  281. package/lib/themes/cxd.css.map +1 -1
  282. package/lib/themes/dark-ie11.css +965 -210
  283. package/lib/themes/dark.css +955 -175
  284. package/lib/themes/dark.css.map +1 -1
  285. package/lib/themes/default-ie11.css +1048 -293
  286. package/lib/themes/default.css +961 -180
  287. package/lib/themes/default.css.map +1 -1
  288. package/lib/types.d.ts +3 -1
  289. package/lib/types.js.map +1 -1
  290. package/lib/utils/ColorScale.d.ts +19 -0
  291. package/lib/utils/ColorScale.js +104 -0
  292. package/lib/utils/ColorScale.js.map +13 -0
  293. package/lib/utils/api.js +20 -4
  294. package/lib/utils/api.js.map +2 -2
  295. package/lib/utils/columnsSplit.d.ts +1 -0
  296. package/lib/utils/columnsSplit.js +40 -0
  297. package/lib/utils/columnsSplit.js.map +13 -0
  298. package/lib/utils/debug.d.ts +1 -1
  299. package/lib/utils/debug.js +16 -22
  300. package/lib/utils/debug.js.map +2 -2
  301. package/lib/utils/dom.d.ts +1 -1
  302. package/lib/utils/dom.js +7 -5
  303. package/lib/utils/dom.js.map +2 -2
  304. package/lib/utils/position.js +0 -1
  305. package/lib/utils/position.js.map +2 -2
  306. package/lib/utils/scrollPosition.d.ts +6 -0
  307. package/lib/utils/scrollPosition.js +31 -0
  308. package/lib/utils/scrollPosition.js.map +13 -0
  309. package/package.json +3 -2
  310. package/schema.json +30213 -29222
  311. package/scss/_properties.scss +67 -25
  312. package/scss/components/_alert.scss +1 -1
  313. package/scss/components/_barcode.scss +1 -1
  314. package/scss/components/_button-group.scss +15 -0
  315. package/scss/components/_carousel.scss +1 -0
  316. package/scss/components/_column-toggler.scss +21 -11
  317. package/scss/components/_debug.scss +3 -3
  318. package/scss/components/_formula.scss +19 -1
  319. package/scss/components/_nav.scss +51 -6
  320. package/scss/components/_progress.scss +7 -14
  321. package/scss/components/_pull-refresh.scss +25 -0
  322. package/scss/components/_spinner.scss +134 -56
  323. package/scss/components/_steps.scss +199 -8
  324. package/scss/components/_tabs.scss +145 -13
  325. package/scss/components/_tooltip.scss +76 -9
  326. package/scss/components/form/_checks.scss +125 -2
  327. package/scss/components/form/_combo.scss +13 -1
  328. package/scss/components/form/_date-range.scss +27 -2
  329. package/scss/components/form/_date.scss +25 -0
  330. package/scss/components/form/_editor.scss +2 -1
  331. package/scss/components/form/_file.scss +4 -0
  332. package/scss/components/form/_form.scss +31 -8
  333. package/scss/components/form/_number.scss +5 -2
  334. package/scss/components/form/_select.scss +0 -1
  335. package/scss/components/form/_textarea.scss +1 -23
  336. package/scss/components/form/_transfer.scss +3 -2
  337. package/scss/themes/_antd-variables.scss +1 -1
  338. package/scss/themes/_common.scss +1 -0
  339. package/scss/themes/_cxd-variables.scss +6 -5
  340. package/sdk/ang-ie11.css +1059 -198
  341. package/sdk/ang.css +1050 -164
  342. package/sdk/antd-ie11.css +1167 -306
  343. package/sdk/antd.css +1051 -165
  344. package/sdk/barcode.js +51 -51
  345. package/sdk/charts.js +14 -14
  346. package/sdk/codemirror.js +7 -7
  347. package/sdk/color-picker.js +65 -65
  348. package/sdk/cropperjs.js +2 -2
  349. package/sdk/cxd-ie11.css +1145 -284
  350. package/sdk/cxd.css +1056 -169
  351. package/sdk/dark-ie11.css +1056 -195
  352. package/sdk/dark.css +1050 -164
  353. package/sdk/exceljs.js +1 -1
  354. package/sdk/locale/de-DE.js +18 -1
  355. package/sdk/markdown.js +69 -69
  356. package/sdk/papaparse.js +1 -1
  357. package/sdk/renderers/Form/CityDB.js +1 -1
  358. package/sdk/rest.js +17 -17
  359. package/sdk/rich-text.js +62 -62
  360. package/sdk/sdk-ie11.css +1145 -284
  361. package/sdk/sdk.css +1056 -169
  362. package/sdk/sdk.js +1321 -1273
  363. package/sdk/thirds/hls.js/hls.js +1 -1
  364. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  365. package/sdk/tinymce.js +57 -57
  366. package/src/Schema.ts +15 -2
  367. package/src/SchemaRenderer.tsx +32 -14
  368. package/src/WithStore.tsx +3 -1
  369. package/src/actions/CmptAction.ts +28 -0
  370. package/src/actions/PageAction.ts +62 -0
  371. package/src/actions/index.ts +1 -0
  372. package/src/components/Alert2.tsx +9 -3
  373. package/src/components/AssociatedSelection.tsx +9 -3
  374. package/src/components/BarCode.tsx +2 -2
  375. package/src/components/Cascader.tsx +37 -11
  376. package/src/components/Checkbox.tsx +11 -5
  377. package/src/components/CityArea.tsx +3 -0
  378. package/src/components/DatePicker.tsx +68 -22
  379. package/src/components/DateRangePicker.tsx +551 -88
  380. package/src/components/Drawer.tsx +1 -0
  381. package/src/components/Modal.tsx +1 -0
  382. package/src/components/Overlay.tsx +6 -3
  383. package/src/components/Progress.tsx +64 -33
  384. package/src/components/PullRefresh.tsx +197 -0
  385. package/src/components/Radios.tsx +6 -17
  386. package/src/components/Range.tsx +26 -12
  387. package/src/components/Spinner.tsx +77 -42
  388. package/src/components/Steps.tsx +28 -27
  389. package/src/components/Tabs.tsx +51 -21
  390. package/src/components/Tooltip.tsx +12 -3
  391. package/src/components/TooltipWrapper.tsx +140 -33
  392. package/src/components/Tree.tsx +19 -5
  393. package/src/components/calendar/Calendar.tsx +4 -13
  394. package/src/components/calendar/TimeView.tsx +12 -0
  395. package/src/components/calendar/YearsView.tsx +3 -4
  396. package/src/components/condition-builder/Expression.tsx +6 -1
  397. package/src/components/condition-builder/Field.tsx +5 -1
  398. package/src/components/condition-builder/Group.tsx +4 -1
  399. package/src/components/condition-builder/GroupOrItem.tsx +4 -1
  400. package/src/components/condition-builder/InputSwitch.tsx +4 -1
  401. package/src/components/condition-builder/Item.tsx +28 -4
  402. package/src/components/condition-builder/Value.tsx +7 -1
  403. package/src/components/condition-builder/index.tsx +4 -2
  404. package/src/components/formula/Editor.tsx +46 -10
  405. package/src/components/formula/Picker.tsx +32 -1
  406. package/src/components/icons.tsx +2 -0
  407. package/src/factory.tsx +31 -3
  408. package/src/icons/trash.svg +8 -0
  409. package/src/index.tsx +1 -0
  410. package/src/locale/de-DE.ts +18 -1
  411. package/src/locale/en-US.ts +18 -1
  412. package/src/locale/zh-CN.ts +18 -1
  413. package/src/renderers/Action.tsx +24 -2
  414. package/src/renderers/App.tsx +4 -0
  415. package/src/renderers/ButtonGroup.tsx +2 -2
  416. package/src/renderers/CRUD.tsx +23 -5
  417. package/src/renderers/Carousel.tsx +8 -0
  418. package/src/renderers/Chart.tsx +4 -0
  419. package/src/renderers/Dialog.tsx +21 -3
  420. package/src/renderers/Drawer.tsx +14 -2
  421. package/src/renderers/DropDownButton.tsx +14 -3
  422. package/src/renderers/Form/Checkbox.tsx +11 -2
  423. package/src/renderers/Form/Checkboxes.tsx +106 -23
  424. package/src/renderers/Form/Combo.tsx +179 -66
  425. package/src/renderers/Form/InputCity.tsx +46 -5
  426. package/src/renderers/Form/InputDate.tsx +18 -4
  427. package/src/renderers/Form/InputDateRange.tsx +27 -3
  428. package/src/renderers/Form/InputFile.tsx +23 -7
  429. package/src/renderers/Form/InputFormula.tsx +7 -0
  430. package/src/renderers/Form/InputImage.tsx +22 -6
  431. package/src/renderers/Form/InputMonthRange.tsx +7 -1
  432. package/src/renderers/Form/InputRange.tsx +20 -22
  433. package/src/renderers/Form/InputTable.tsx +6 -2
  434. package/src/renderers/Form/InputText.tsx +14 -4
  435. package/src/renderers/Form/InputTree.tsx +40 -2
  436. package/src/renderers/Form/Item.tsx +7 -0
  437. package/src/renderers/Form/NestedSelect.tsx +23 -4
  438. package/src/renderers/Form/Options.tsx +26 -7
  439. package/src/renderers/Form/Select.tsx +5 -3
  440. package/src/renderers/Form/Textarea.tsx +3 -1
  441. package/src/renderers/Form/TreeSelect.tsx +47 -9
  442. package/src/renderers/Form/index.tsx +56 -25
  443. package/src/renderers/Form/wrapControl.tsx +23 -12
  444. package/src/renderers/Nav.tsx +231 -33
  445. package/src/renderers/Page.tsx +97 -35
  446. package/src/renderers/Progress.tsx +9 -11
  447. package/src/renderers/Service.tsx +66 -27
  448. package/src/renderers/Spinner.tsx +85 -3
  449. package/src/renderers/Steps.tsx +14 -0
  450. package/src/renderers/Table/ColumnToggler.tsx +36 -11
  451. package/src/renderers/Table/TableCell.tsx +39 -1
  452. package/src/renderers/Table/TableRow.tsx +1 -1
  453. package/src/renderers/Table/index.tsx +43 -19
  454. package/src/renderers/Tabs.tsx +90 -31
  455. package/src/renderers/TooltipWrapper.tsx +262 -0
  456. package/src/renderers/Wizard.tsx +169 -93
  457. package/src/store/crud.ts +50 -5
  458. package/src/store/form.ts +8 -3
  459. package/src/store/formItem.ts +1 -2
  460. package/src/store/index.ts +20 -0
  461. package/src/store/table.ts +4 -4
  462. package/src/types.ts +8 -1
  463. package/src/utils/ColorScale.ts +138 -0
  464. package/src/utils/api.ts +26 -4
  465. package/src/utils/columnsSplit.tsx +57 -0
  466. package/src/utils/debug.tsx +17 -24
  467. package/src/utils/dom.tsx +7 -6
  468. package/src/utils/position.ts +0 -1
  469. package/src/utils/scrollPosition.ts +29 -0
@@ -55,6 +55,11 @@ export interface InputFormulaControlSchema extends FormBaseControl {
55
55
  */
56
56
  inputMode?: 'button' | 'input-button';
57
57
 
58
+ /**
59
+ * 外层input是否允许输入,否需要点击fx在弹窗中输入
60
+ */
61
+ allowInput?: boolean;
62
+
58
63
  /**
59
64
  * 按钮图标
60
65
  */
@@ -139,6 +144,7 @@ export class InputFormulaRenderer extends React.Component<InputFormulaProps> {
139
144
  className,
140
145
  classPrefix: ns,
141
146
  classnames: cx,
147
+ allowInput = true,
142
148
  borderMode,
143
149
  placeholder,
144
150
  inputMode,
@@ -156,6 +162,7 @@ export class InputFormulaRenderer extends React.Component<InputFormulaProps> {
156
162
  className={className}
157
163
  value={value}
158
164
  disabled={disabled}
165
+ allowInput={allowInput}
159
166
  onChange={onChange}
160
167
  evalMode={evalMode}
161
168
  variables={variables}
@@ -31,6 +31,7 @@ import {
31
31
  import {filter} from '../../utils/tpl';
32
32
  import isPlainObject from 'lodash/isPlainObject';
33
33
  import merge from 'lodash/merge';
34
+ import omit from 'lodash/omit';
34
35
 
35
36
  /**
36
37
  * Image 图片上传控件
@@ -817,13 +818,16 @@ export default class ImageControl extends React.Component<
817
818
  }
818
819
 
819
820
  syncAutoFill() {
820
- const {autoFill, multiple, onBulkChange, data} = this.props;
821
- if (!isEmpty(autoFill) && onBulkChange && this.initAutoFill) {
821
+ const {autoFill, multiple, onBulkChange, data, name} = this.props;
822
+ // 排除自身的字段,否则会无限更新state
823
+ const excludeSelfAutoFill = omit(autoFill, name || '');
824
+
825
+ if (!isEmpty(excludeSelfAutoFill) && onBulkChange && this.initAutoFill) {
822
826
  const files = this.state.files.filter(
823
827
  file => ~['uploaded', 'init', 'ready'].indexOf(file.state as string)
824
828
  );
825
829
  const toSync = dataMapping(
826
- autoFill,
830
+ excludeSelfAutoFill,
827
831
  multiple
828
832
  ? {
829
833
  items: files
@@ -1077,7 +1081,11 @@ export default class ImageControl extends React.Component<
1077
1081
  };
1078
1082
  obj.value = obj.value || obj.url;
1079
1083
 
1080
- const dispatcher = await this.dispatchEvent('success', obj);
1084
+ const dispatcher = await this.dispatchEvent('success', {
1085
+ ...file,
1086
+ value: obj.value,
1087
+ state: 'uploaded'
1088
+ });
1081
1089
  if (dispatcher?.prevented) {
1082
1090
  return;
1083
1091
  }
@@ -1248,8 +1256,16 @@ export default class ImageControl extends React.Component<
1248
1256
 
1249
1257
  async dispatchEvent(e: string, data?: Record<string, any>) {
1250
1258
  const {dispatchEvent} = this.props;
1251
- data = data ? data : this.files;
1252
- return dispatchEvent(e, createObject(this.props.data, {file: data}));
1259
+ const getEventData = (item: Record<string, any>) => ({
1260
+ name: item.path || item.name,
1261
+ value: item.value,
1262
+ state: item.state,
1263
+ error: item.error
1264
+ });
1265
+ const value = data
1266
+ ? getEventData(data)
1267
+ : this.files.map(item => getEventData(item));
1268
+ return dispatchEvent(e, createObject(this.props.data, {file: value}));
1253
1269
  }
1254
1270
 
1255
1271
  // 动作
@@ -170,8 +170,14 @@ export default class MonthRangeControl extends React.Component<MonthRangeProps>
170
170
  // 动作
171
171
  doAction(action: Action, data: object, throwErrors: boolean) {
172
172
  const {resetValue, onChange} = this.props;
173
+
173
174
  if (action.actionType === 'clear') {
174
- onChange(resetValue ?? '');
175
+ onChange('');
176
+ return;
177
+ }
178
+
179
+ if (action.actionType === 'reset' && resetValue) {
180
+ onChange(resetValue);
175
181
  }
176
182
  }
177
183
 
@@ -22,12 +22,8 @@ import {Action} from '../../types';
22
22
  export type Value = string | MultipleValue | number | [number, number];
23
23
  export type FormatValue = MultipleValue | number;
24
24
  export type TooltipPosType = 'auto' | 'top' | 'right' | 'bottom' | 'left';
25
- export type InputTextRendererEvent =
26
- | 'change'
27
- | 'afterChange'
28
- | 'blur'
29
- | 'focus';
30
- export type InputTextRendererAction = 'clear';
25
+ export type InputRangeRendererEvent = 'change' | 'blur' | 'focus';
26
+ export type InputRangeRendererAction = 'clear';
31
27
  export interface RangeControlSchema extends FormBaseControl {
32
28
  type: 'input-range';
33
29
 
@@ -275,7 +271,7 @@ export function formatValue(
275
271
  max: max === undefined || max > props.max ? props.max : max
276
272
  };
277
273
  }
278
- return +value ?? props.min;
274
+ return +value < props.min ? props.min : Math.min(+value, props.max);
279
275
  }
280
276
 
281
277
  /**
@@ -288,11 +284,13 @@ export class Input extends React.Component<RangeItemProps, any> {
288
284
  */
289
285
  @autobind
290
286
  onChange(value: number) {
291
- const {multiple, value: originValue, type} = this.props;
287
+ const {multiple, value: originValue, type, min} = this.props;
292
288
  const _value = this.getValue(value, type);
293
289
 
294
290
  this.props.updateValue(
295
- multiple ? {...(originValue as MultipleValue), [type]: _value} : value
291
+ multiple
292
+ ? {...(originValue as MultipleValue), [type]: _value}
293
+ : value ?? min
296
294
  );
297
295
  }
298
296
 
@@ -338,7 +336,8 @@ export class Input extends React.Component<RangeItemProps, any> {
338
336
  */
339
337
  getValue(value: string | number, type?: string) {
340
338
  const {max, min, step, value: stateValue} = this.props as RangeItemProps;
341
-
339
+ // value为null、undefined时,取对应的min/max
340
+ value = value ?? (type === 'min' ? min : max);
342
341
  // 校正value为step的倍数
343
342
  let _value = Math.round(parseFloat(value + '') / step) * step;
344
343
  // 同步value与步长小数位数
@@ -461,21 +460,26 @@ export default class RangeControl extends React.PureComponent<
461
460
  }
462
461
 
463
462
  componentDidUpdate(prevProps: RangeProps) {
464
- const {value} = prevProps;
463
+ const {value, min, max} = prevProps;
465
464
  const {
466
465
  value: nextPropsValue,
467
466
  multiple,
468
467
  delimiter,
469
- min,
470
- max,
468
+ min: nextPropsMin,
469
+ max: nextPropsMax,
471
470
  onChange
472
471
  } = this.props;
473
- if (value !== nextPropsValue) {
472
+
473
+ if (
474
+ value !== nextPropsValue ||
475
+ min !== nextPropsMin ||
476
+ max !== nextPropsMax
477
+ ) {
474
478
  const value = formatValue(nextPropsValue, {
475
479
  multiple,
476
480
  delimiter,
477
- min,
478
- max
481
+ min: nextPropsMin,
482
+ max: nextPropsMax
479
483
  });
480
484
  this.setState({
481
485
  value: this.getValue(value)
@@ -588,12 +592,6 @@ export default class RangeControl extends React.PureComponent<
588
592
  region
589
593
  } = props;
590
594
 
591
- // 指定parts -> 重新计算步长
592
- if (parts > 1) {
593
- props.step = (props.max - props.min) / props.parts;
594
- props.showSteps = true;
595
- }
596
-
597
595
  // 处理自定义json配置
598
596
  let renderMarks:
599
597
  | MarksType
@@ -1082,7 +1082,9 @@ export default class FormTable extends React.Component<TableProps, TableState> {
1082
1082
  prefixRow,
1083
1083
  formInited,
1084
1084
  perPage,
1085
- classnames: cx
1085
+ classnames: cx,
1086
+ rowClassName,
1087
+ rowClassNameExpr
1086
1088
  } = this.props;
1087
1089
 
1088
1090
  if (formInited === false) {
@@ -1131,7 +1133,9 @@ export default class FormTable extends React.Component<TableProps, TableState> {
1131
1133
  expandConfig,
1132
1134
  canAccessSuperData,
1133
1135
  reUseRow: false,
1134
- offset
1136
+ offset,
1137
+ rowClassName,
1138
+ rowClassNameExpr
1135
1139
  }
1136
1140
  )}
1137
1141
  {(addable && showAddBtn !== false) || showPager ? (
@@ -93,7 +93,6 @@ export type InputTextRendererEvent =
93
93
  | 'focus'
94
94
  | 'click'
95
95
  | 'change'
96
- | 'clear'
97
96
  | 'enter';
98
97
 
99
98
  export interface TextProps extends OptionsControlProps {
@@ -179,7 +178,7 @@ export default class TextControl extends React.PureComponent<
179
178
  term: ''
180
179
  })
181
180
  );
182
- } else {
181
+ } else if (addHook) {
183
182
  this.unHook = addHook(async (data: any) => {
184
183
  await formItem.loadOptions(
185
184
  autoComplete,
@@ -239,7 +238,6 @@ export default class TextControl extends React.PureComponent<
239
238
  len && this.input.setSelectionRange(len, len);
240
239
  }
241
240
 
242
- @bindRendererEvent<TextProps, InputTextRendererEvent>('clear')
243
241
  clearValue() {
244
242
  const {onChange, resetValue} = this.props;
245
243
 
@@ -546,6 +544,8 @@ export default class TextControl extends React.PureComponent<
546
544
  multiple,
547
545
  creatable,
548
546
  borderMode,
547
+ showCounter,
548
+ maxLength,
549
549
  translate: __
550
550
  } = this.props;
551
551
  let type = this.props.type?.replace(/^(?:native|input)\-/, '');
@@ -664,6 +664,16 @@ export default class TextControl extends React.PureComponent<
664
664
  </a>
665
665
  ) : null}
666
666
 
667
+ {showCounter ? (
668
+ <span className={cx('TextControl-counter')}>
669
+ {`${this.valueToString(value)?.length}${
670
+ typeof maxLength === 'number' && maxLength
671
+ ? `/${maxLength}`
672
+ : ''
673
+ }`}
674
+ </span>
675
+ ) : null}
676
+
667
677
  {loading ? (
668
678
  <Spinner
669
679
  show
@@ -832,8 +842,8 @@ export default class TextControl extends React.PureComponent<
832
842
  </div>
833
843
  ) : (
834
844
  <div className={cx(`${ns}TextControl-addOn`, addOn.className)}>
835
- {addOn.label ? filter(addOn.label, data) : null}
836
845
  {iconElement}
846
+ {addOn.label ? filter(addOn.label, data) : null}
837
847
  </div>
838
848
  )
839
849
  ) : null;
@@ -8,6 +8,8 @@ import {
8
8
  } from './Options';
9
9
  import {Spinner} from '../../components';
10
10
  import {SchemaApi} from '../../Schema';
11
+ import {autobind, createObject} from '../../utils/helper';
12
+ import {Action} from '../../types';
11
13
 
12
14
  /**
13
15
  * Tree 下拉选择框。
@@ -98,12 +100,48 @@ export default class TreeControl extends React.Component<TreeProps> {
98
100
  enableNodePath: false,
99
101
  pathSeparator: '/'
100
102
  };
103
+ treeRef: any
101
104
 
102
105
  reload() {
103
106
  const reload = this.props.reloadOptions;
104
107
  reload && reload();
105
108
  }
106
109
 
110
+ doAction(action: Action, data: any, throwErrors: boolean) {
111
+ const {resetValue, onChange, options} = this.props;
112
+ if (action.actionType && ['clear', 'reset'].includes(action.actionType)) {
113
+ onChange && onChange(resetValue ?? '');
114
+ }
115
+ if (action.actionType === 'expand') {
116
+ this.treeRef.syncUnFolded(this.props, action.openLevel);
117
+ }
118
+ if (action.actionType === 'collapse') {
119
+ this.treeRef.syncUnFolded(this.props, 0);
120
+ }
121
+ }
122
+
123
+
124
+
125
+ @autobind
126
+ async handleChange(value: any) {
127
+ const {onChange, dispatchEvent, data} = this.props;
128
+
129
+ const rendererEvent = await dispatchEvent('change', createObject(data, {
130
+ value
131
+ }));
132
+
133
+ if (rendererEvent?.prevented) {
134
+ return;
135
+ }
136
+
137
+ onChange && onChange(value);
138
+ }
139
+
140
+ @autobind
141
+ domRef(ref: any) {
142
+ this.treeRef = ref;
143
+ }
144
+
107
145
  render() {
108
146
  const {
109
147
  className,
@@ -112,7 +150,6 @@ export default class TreeControl extends React.Component<TreeProps> {
112
150
  value,
113
151
  enableNodePath,
114
152
  pathSeparator = '/',
115
- onChange,
116
153
  disabled,
117
154
  joinValues,
118
155
  extractValue,
@@ -162,11 +199,12 @@ export default class TreeControl extends React.Component<TreeProps> {
162
199
  {loading ? null : (
163
200
  <TreeSelector
164
201
  classPrefix={ns}
202
+ onRef={this.domRef}
165
203
  labelField={labelField}
166
204
  valueField={valueField}
167
205
  iconField={iconField}
168
206
  disabled={disabled}
169
- onChange={onChange}
207
+ onChange={this.handleChange}
170
208
  joinValues={joinValues}
171
209
  extractValue={extractValue}
172
210
  delimiter={delimiter}
@@ -25,6 +25,7 @@ import {
25
25
  BaseSchema,
26
26
  SchemaApi,
27
27
  SchemaClassName,
28
+ SchemaExpression,
28
29
  SchemaObject,
29
30
  SchemaType
30
31
  } from '../../Schema';
@@ -87,6 +88,11 @@ export interface FormBaseControl
87
88
  */
88
89
  readOnly?: boolean;
89
90
 
91
+ /**
92
+ * 只读条件
93
+ */
94
+ readOnlyOn?: SchemaExpression;
95
+
90
96
  /**
91
97
  * 不设置时,当表单提交过后表单项每次修改都会触发重新验证,
92
98
  * 如果设置了,则由此配置项来决定要不要每次修改都触发验证。
@@ -552,6 +558,7 @@ export class FormItemWrap extends React.Component<FormItemProps> {
552
558
  `Form-item Form-item--horizontal`,
553
559
  className,
554
560
  {
561
+ 'Form-item--horizontal-justify': horizontal.justify,
555
562
  [`is-error`]: model && !model.valid,
556
563
  [`is-required`]: required
557
564
  },
@@ -61,6 +61,11 @@ export interface NestedSelectControlSchema extends FormOptionsControl {
61
61
  */
62
62
  onlyChildren?: boolean;
63
63
 
64
+ /**
65
+ * 单选时只允许选择叶子节点
66
+ */
67
+ onlyLeaf?: boolean;
68
+
64
69
  /**
65
70
  * 是否隐藏选择框中已选中节点的祖先节点的文本信息
66
71
  */
@@ -91,6 +96,7 @@ export default class NestedSelectControl extends React.Component<
91
96
  cascade: false,
92
97
  withChildren: false,
93
98
  onlyChildren: false,
99
+ onlyLeaf: false,
94
100
  searchPromptText: 'Select.searchPromptText',
95
101
  noResultsText: 'noResult',
96
102
  checkAll: true,
@@ -241,7 +247,7 @@ export default class NestedSelectControl extends React.Component<
241
247
  );
242
248
  })
243
249
  : label}
244
- {!isEnd && '>'}
250
+ {!isEnd && ' > '}
245
251
  </span>
246
252
  );
247
253
  })
@@ -252,7 +258,7 @@ export default class NestedSelectControl extends React.Component<
252
258
 
253
259
  @autobind
254
260
  async handleOptionClick(option: Option) {
255
- const {multiple, onChange, joinValues, extractValue, valueField} =
261
+ const {multiple, onChange, joinValues, extractValue, valueField, onlyLeaf} =
256
262
  this.props;
257
263
 
258
264
  if (multiple) {
@@ -265,10 +271,21 @@ export default class NestedSelectControl extends React.Component<
265
271
  ? option[valueField || 'value']
266
272
  : option;
267
273
 
274
+ if (value === undefined) {
275
+ return;
276
+ }
277
+
278
+ if (onlyLeaf && option.children) {
279
+ return;
280
+ }
281
+
268
282
  const isPrevented = await this.dispatchEvent('change', {
269
283
  value
270
284
  });
271
285
  isPrevented || onChange(value);
286
+
287
+ isPrevented || this.handleResultClear();
288
+
272
289
  !multiple && this.close();
273
290
  }
274
291
 
@@ -383,6 +400,8 @@ export default class NestedSelectControl extends React.Component<
383
400
  value: newValue
384
401
  });
385
402
  isPrevented || onChange(newValue);
403
+
404
+ isPrevented || this.handleResultClear();
386
405
  }
387
406
 
388
407
  allChecked(options: Options): boolean {
@@ -421,7 +440,7 @@ export default class NestedSelectControl extends React.Component<
421
440
  });
422
441
 
423
442
  const isPrevented = await this.dispatchEvent('focus', e);
424
- isPrevented || onFocus && onFocus(e);
443
+ isPrevented || (onFocus && onFocus(e));
425
444
  }
426
445
  }
427
446
 
@@ -434,7 +453,7 @@ export default class NestedSelectControl extends React.Component<
434
453
  });
435
454
 
436
455
  const isPrevented = await this.dispatchEvent('blur', e);
437
- isPrevented || onBlur && onBlur(e);
456
+ isPrevented || (onBlur && onBlur(e));
438
457
  }
439
458
 
440
459
  @autobind
@@ -454,10 +454,10 @@ export function registerOptionsControl(config: OptionsConfig) {
454
454
  this.toDispose = [];
455
455
  }
456
456
 
457
- async dispatchChangeEvent(eventData: any = '') {
457
+ async dispatchOptionEvent(eventName: string, eventData: any = '') {
458
458
  const {dispatchEvent, options, data} = this.props;
459
459
  const rendererEvent = await dispatchEvent(
460
- 'change',
460
+ eventName,
461
461
  createObject(data, {
462
462
  value: eventData,
463
463
  options,
@@ -599,7 +599,7 @@ export function registerOptionsControl(config: OptionsConfig) {
599
599
  value
600
600
  );
601
601
 
602
- const isPrevented = await this.dispatchChangeEvent(newValue);
602
+ const isPrevented = await this.dispatchOptionEvent('change', newValue);
603
603
  isPrevented || (onChange && onChange(newValue, submitOnChange, changeImmediately));
604
604
  }
605
605
 
@@ -667,7 +667,7 @@ export function registerOptionsControl(config: OptionsConfig) {
667
667
  ? []
668
668
  : formItem.filteredOptions.concat();
669
669
  const newValue = this.formatValueArray(valueArray);
670
- const isPrevented = await this.dispatchChangeEvent(newValue);
670
+ const isPrevented = await this.dispatchOptionEvent('change', newValue);
671
671
  isPrevented || (onChange && onChange(newValue));
672
672
  }
673
673
 
@@ -767,7 +767,7 @@ export function registerOptionsControl(config: OptionsConfig) {
767
767
  }
768
768
 
769
769
  @autobind
770
- deferLoad(option: Option) {
770
+ async deferLoad(option: Option) {
771
771
  const {deferApi, source, env, formItem, data} = this.props;
772
772
  const api = option.deferApi || deferApi || source;
773
773
 
@@ -779,7 +779,9 @@ export function registerOptionsControl(config: OptionsConfig) {
779
779
  return;
780
780
  }
781
781
 
782
- formItem?.deferLoadOptions(option, api, createObject(data, option));
782
+ const json = await formItem?.deferLoadOptions(option, api, createObject(data, option));
783
+ // 触发事件通知,加载完成
784
+ this.dispatchOptionEvent('loadFinished',json);
783
785
  }
784
786
 
785
787
  @autobind
@@ -992,10 +994,15 @@ export function registerOptionsControl(config: OptionsConfig) {
992
994
  [valueField || 'value']: result[labelField || 'label']
993
995
  };
994
996
  }
997
+ // 触发事件通知
998
+ const isPrevented = await this.dispatchOptionEvent('add', {...result, idx});
999
+ if (isPrevented) {
1000
+ return;
1001
+ }
995
1002
 
996
1003
  // 如果是懒加载的,只懒加载当前节点。
997
1004
  if (parent?.defer) {
998
- this.deferLoad(parent);
1005
+ await this.deferLoad(parent);
999
1006
  } else if (source && addApi) {
1000
1007
  // 如果配置了 source 且配置了 addApi 直接重新拉取接口就够了
1001
1008
  // 不能不判断 addApi 就刷新,因为有些场景就是临时添加的。
@@ -1095,6 +1102,12 @@ export function registerOptionsControl(config: OptionsConfig) {
1095
1102
  return;
1096
1103
  }
1097
1104
 
1105
+ // 触发事件通知
1106
+ const isPrevented = await this.dispatchOptionEvent('edit', result);
1107
+ if (isPrevented) {
1108
+ return;
1109
+ }
1110
+
1098
1111
  if (source && editApi) {
1099
1112
  this.reload();
1100
1113
  } else {
@@ -1141,6 +1154,12 @@ export function registerOptionsControl(config: OptionsConfig) {
1141
1154
  return;
1142
1155
  }
1143
1156
 
1157
+ // 触发事件通知
1158
+ const isPrevented = await this.dispatchOptionEvent('delete', ctx);
1159
+ if (isPrevented) {
1160
+ return;
1161
+ }
1162
+
1144
1163
  // 通过 deleteApi 删除。
1145
1164
  try {
1146
1165
  if (!deleteApi) {
@@ -228,7 +228,7 @@ export default class SelectControl extends React.Component<SelectProps, any> {
228
228
  'change',
229
229
  createObject(data, {
230
230
  value: newValue,
231
- options,
231
+ options
232
232
  })
233
233
  );
234
234
  if (rendererEvent?.prevented) {
@@ -409,8 +409,10 @@ export default class SelectControl extends React.Component<SelectProps, any> {
409
409
  onBlur={(e: any) => this.dispatchEvent('blur', e)}
410
410
  onFocus={(e: any) => this.dispatchEvent('focus', e)}
411
411
  onAdd={() => this.dispatchEvent('add')}
412
- onEdit={(item: any) => this.dispatchEvent('edit', item)}
413
- onDelete={(item: any) => this.dispatchEvent('delete', item)}
412
+ onEdit={(item: any) => this.dispatchEvent('edit', {value: item})}
413
+ onDelete={(item: any) =>
414
+ this.dispatchEvent('delete', {value: item})
415
+ }
414
416
  loading={loading}
415
417
  noResultsText={noResultsText}
416
418
  renderMenu={menuTpl ? this.renderMenu : undefined}
@@ -211,12 +211,14 @@ export default class TextAreaControl extends React.Component<
211
211
  `TextareaControl`,
212
212
  {
213
213
  [`TextareaControl--border${ucFirst(borderMode)}`]: borderMode,
214
- 'is-focused': this.state.focused
214
+ 'is-focused': this.state.focused,
215
+ 'is-disabled': disabled
215
216
  },
216
217
  className
217
218
  )}
218
219
  >
219
220
  <Textarea
221
+ className={cx(`TextareaControl-input`)}
220
222
  autoComplete="off"
221
223
  ref={this.inputRef}
222
224
  name={name}