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
@@ -5,9 +5,9 @@ var tslib_1 = require("tslib");
5
5
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
6
6
  var Options_1 = require("./Options");
7
7
  var Checkbox_1 = (0, tslib_1.__importDefault)(require("../../components/Checkbox"));
8
- var chunk_1 = (0, tslib_1.__importDefault)(require("lodash/chunk"));
9
8
  var icons_1 = require("../../components/icons");
10
9
  var helper_1 = require("../../utils/helper");
10
+ var columnsSplit_1 = require("../../utils/columnsSplit");
11
11
  var CheckboxesControl = /** @class */ (function (_super) {
12
12
  (0, tslib_1.__extends)(CheckboxesControl, _super);
13
13
  function CheckboxesControl() {
@@ -33,6 +33,92 @@ var CheckboxesControl = /** @class */ (function (_super) {
33
33
  e.stopPropagation();
34
34
  onDelete && onDelete(item);
35
35
  };
36
+ CheckboxesControl.prototype.componentDidMount = function () {
37
+ this.updateBorderStyle();
38
+ window.addEventListener('resize', this.updateBorderStyle);
39
+ };
40
+ CheckboxesControl.prototype.componentWillMount = function () {
41
+ window.removeEventListener('resize', this.updateBorderStyle);
42
+ };
43
+ CheckboxesControl.prototype.updateBorderStyle = function () {
44
+ if (this.props.optionType !== 'button') {
45
+ return;
46
+ }
47
+ var wrapDom = this.refs.checkboxRef;
48
+ var wrapWidth = wrapDom.clientWidth;
49
+ var childs = Array.from(wrapDom.children);
50
+ childs.forEach(function (child) {
51
+ child.style.borderRadius = '0';
52
+ child.style.borderLeftWidth = '1px';
53
+ child.style.borderTopWidth = '1px';
54
+ });
55
+ var childTotalWidth = childs.reduce(function (pre, next) {
56
+ return pre + next.clientWidth;
57
+ }, 0);
58
+ if (childTotalWidth <= wrapWidth) {
59
+ if (childs.length === 1) {
60
+ childs[0].style.borderRadius = "4px";
61
+ }
62
+ else {
63
+ childs[0].style.borderRadius = "4px 0 0 4px";
64
+ childs[childs.length - 1].style.borderRadius = "0 4px 4px 0";
65
+ childs.forEach(function (child, idx) {
66
+ idx !== 0 && (child.style.borderLeftWidth = '0');
67
+ });
68
+ }
69
+ }
70
+ else {
71
+ var curRowWidth_1 = 0;
72
+ var curRow_1 = 0;
73
+ var rowNum_1 = Math.floor(childTotalWidth / wrapWidth);
74
+ var rowColArr_1 = [];
75
+ for (var i = 0; i <= rowNum_1; i++) {
76
+ var arr = [];
77
+ rowColArr_1[i] = arr;
78
+ }
79
+ childs.forEach(function (child, idx) {
80
+ curRowWidth_1 += child.clientWidth;
81
+ if (curRowWidth_1 > wrapWidth) {
82
+ curRowWidth_1 = child.clientWidth;
83
+ curRow_1++;
84
+ }
85
+ if (curRow_1 > rowNum_1) {
86
+ return;
87
+ }
88
+ rowColArr_1[curRow_1].push(child);
89
+ });
90
+ rowColArr_1.forEach(function (row, rowIdx) {
91
+ if (rowIdx === 0) {
92
+ row.forEach(function (r, colIdx) {
93
+ r.style.borderRadius = '0';
94
+ colIdx !== 0 && (r.style.borderLeftWidth = '0');
95
+ row.length > rowColArr_1[rowIdx + 1].length
96
+ && (row[row.length - 1].style.borderBottomRightRadius = "4px");
97
+ });
98
+ row[0].style.borderTopLeftRadius = "4px";
99
+ row[row.length - 1].style.borderTopRightRadius = "4px";
100
+ }
101
+ else if (rowIdx === rowNum_1) {
102
+ row.forEach(function (r, colIdx) {
103
+ r.style.borderRadius = '0';
104
+ colIdx !== 0 && (r.style.borderLeftWidth = '0');
105
+ r.style.borderTopWidth = '0';
106
+ row[0].style.borderBottomLeftRadius = "4px";
107
+ row[row.length - 1].style.borderBottomRightRadius = "4px";
108
+ });
109
+ }
110
+ else {
111
+ row.forEach(function (r, colIdx) {
112
+ r.style.borderRadius = '0';
113
+ colIdx !== 0 && (r.style.borderLeftWidth = '0');
114
+ r.style.borderTopWidth = '0';
115
+ row.length > rowColArr_1[rowIdx + 1].length
116
+ && (row[row.length - 1].style.borderBottomRightRadius = "4px");
117
+ });
118
+ }
119
+ });
120
+ }
121
+ };
36
122
  CheckboxesControl.prototype.renderGroup = function (option, index) {
37
123
  var _this = this;
38
124
  var _a;
@@ -49,8 +135,8 @@ var CheckboxesControl = /** @class */ (function (_super) {
49
135
  if (option.children) {
50
136
  return this.renderGroup(option, index);
51
137
  }
52
- var _a = this.props, itemClassName = _a.itemClassName, onToggle = _a.onToggle, selectedOptions = _a.selectedOptions, disabled = _a.disabled, inline = _a.inline, labelClassName = _a.labelClassName, labelField = _a.labelField, removable = _a.removable, editable = _a.editable, __ = _a.translate;
53
- return (react_1.default.createElement(Checkbox_1.default, { className: itemClassName, key: index, onChange: function () { return onToggle(option); }, checked: !!~selectedOptions.indexOf(option), disabled: disabled || option.disabled, inline: inline, labelClassName: labelClassName, description: option.description },
138
+ var _a = this.props, itemClassName = _a.itemClassName, onToggle = _a.onToggle, selectedOptions = _a.selectedOptions, disabled = _a.disabled, inline = _a.inline, labelClassName = _a.labelClassName, labelField = _a.labelField, removable = _a.removable, editable = _a.editable, __ = _a.translate, optionType = _a.optionType;
139
+ return (react_1.default.createElement(Checkbox_1.default, { className: itemClassName, key: index, onChange: function () { return onToggle(option); }, checked: !!~selectedOptions.indexOf(option), disabled: disabled || option.disabled, inline: inline, labelClassName: labelClassName, description: option.description, optionType: optionType },
54
140
  String(option[labelField || 'label']),
55
141
  removable && (0, helper_1.hasAbility)(option, 'removable') ? (react_1.default.createElement("a", { "data-tooltip": __('Select.clear'), "data-position": "left" },
56
142
  react_1.default.createElement(icons_1.Icon, { icon: "minus", className: "icon", onClick: function (e) { return _this.handleDeleteClick(e, option); } }))) : null,
@@ -59,21 +145,17 @@ var CheckboxesControl = /** @class */ (function (_super) {
59
145
  };
60
146
  CheckboxesControl.prototype.render = function () {
61
147
  var _this = this;
62
- var _a = this.props, className = _a.className, disabled = _a.disabled, placeholder = _a.placeholder, options = _a.options, inline = _a.inline, columnsCount = _a.columnsCount, selectedOptions = _a.selectedOptions, onToggle = _a.onToggle, onToggleAll = _a.onToggleAll, checkAll = _a.checkAll, cx = _a.classnames, itemClassName = _a.itemClassName, labelClassName = _a.labelClassName, creatable = _a.creatable, addApi = _a.addApi, createBtnLabel = _a.createBtnLabel, __ = _a.translate;
148
+ var _a = this.props, className = _a.className, disabled = _a.disabled, placeholder = _a.placeholder, options = _a.options, inline = _a.inline, columnsCount = _a.columnsCount, selectedOptions = _a.selectedOptions, onToggle = _a.onToggle, onToggleAll = _a.onToggleAll, checkAll = _a.checkAll, cx = _a.classnames, itemClassName = _a.itemClassName, labelClassName = _a.labelClassName, creatable = _a.creatable, addApi = _a.addApi, createBtnLabel = _a.createBtnLabel, __ = _a.translate, optionType = _a.optionType;
63
149
  var body = [];
64
150
  if (options && options.length) {
65
151
  body = options.map(function (option, key) { return _this.renderItem(option, key); });
66
152
  }
67
- if (checkAll && body.length) {
153
+ if (checkAll && body.length && optionType === 'default') {
68
154
  body.unshift(react_1.default.createElement(Checkbox_1.default, { key: "checkall", className: itemClassName, onChange: onToggleAll, checked: !!selectedOptions.length, partial: !!(selectedOptions.length &&
69
155
  selectedOptions.length !== options.length), disabled: disabled, inline: inline, labelClassName: labelClassName }, __('Checkboxes.selectAll')));
70
156
  }
71
- if (columnsCount > 1) {
72
- var weight = 12 / columnsCount;
73
- var cellClassName_1 = "Grid-col--sm".concat(weight === Math.round(weight) ? weight : '');
74
- body = (0, chunk_1.default)(body, columnsCount).map(function (group, groupIndex) { return (react_1.default.createElement("div", { className: cx('Grid'), key: groupIndex }, Array.from({ length: columnsCount }).map(function (_, index) { return (react_1.default.createElement("div", { key: index, className: cx(cellClassName_1) }, group[index])); }))); });
75
- }
76
- return (react_1.default.createElement("div", { className: cx("CheckboxesControl", className) },
157
+ body = (0, columnsSplit_1.columnsSplit)(body, cx, columnsCount);
158
+ return (react_1.default.createElement("div", { className: cx("CheckboxesControl", className), ref: "checkboxRef" },
77
159
  body && body.length ? (body) : (react_1.default.createElement("span", { className: "Form-placeholder" }, __(placeholder))),
78
160
  (creatable || addApi) && !disabled ? (react_1.default.createElement("a", { className: cx('Checkboxes-addBtn'), onClick: this.handleAddClick },
79
161
  react_1.default.createElement(icons_1.Icon, { icon: "plus", className: "icon" }),
@@ -86,7 +168,8 @@ var CheckboxesControl = /** @class */ (function (_super) {
86
168
  placeholder: 'placeholder.noOption',
87
169
  creatable: false,
88
170
  inline: true,
89
- createBtnLabel: 'Select.createLabel'
171
+ createBtnLabel: 'Select.createLabel',
172
+ optionType: 'default'
90
173
  };
91
174
  (0, tslib_1.__decorate)([
92
175
  helper_1.autobind,
@@ -106,6 +189,12 @@ var CheckboxesControl = /** @class */ (function (_super) {
106
189
  (0, tslib_1.__metadata)("design:paramtypes", [typeof (_b = typeof Event !== "undefined" && Event) === "function" ? _b : Object, Object]),
107
190
  (0, tslib_1.__metadata)("design:returntype", void 0)
108
191
  ], CheckboxesControl.prototype, "handleDeleteClick", null);
192
+ (0, tslib_1.__decorate)([
193
+ helper_1.autobind,
194
+ (0, tslib_1.__metadata)("design:type", Function),
195
+ (0, tslib_1.__metadata)("design:paramtypes", []),
196
+ (0, tslib_1.__metadata)("design:returntype", void 0)
197
+ ], CheckboxesControl.prototype, "updateBorderStyle", null);
109
198
  return CheckboxesControl;
110
199
  }(react_1.default.Component));
111
200
  exports.default = CheckboxesControl;
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Form/Checkboxes.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";;;;AAAA,6DAA0B;AAC1B,qCAKmB;AAEnB,oFAAiD;AACjD,oEAAiC;AACjC,gDAA4C;AAE5C,6CAAwD;AA+CxD;IAA+C,kDAG9C;IAHD;;IAqMA,CAAC;IAxLC,kCAAM,GAAN;QACE,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC;QACxC,MAAM,IAAI,MAAM,EAAE,CAAC;IACrB,CAAC;IAGD,0CAAc,GAAd;QACS,IAAA,KAAK,GAAI,IAAI,CAAC,KAAK,MAAd,CAAe;QAC3B,KAAK,IAAI,KAAK,EAAE,CAAC;IACnB,CAAC;IAGD,2CAAe,GAAf,UAAgB,CAAQ,EAAE,IAAS;QAC1B,IAAA,MAAM,GAAI,IAAI,CAAC,KAAK,OAAd,CAAe;QAC5B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAGD,6CAAiB,GAAjB,UAAkB,CAAQ,EAAE,IAAS;QAC5B,IAAA,QAAQ,GAAI,IAAI,CAAC,KAAK,SAAd,CAAe;QAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,QAAQ,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;IAED,uCAAW,GAAX,UAAY,MAAc,EAAE,KAAa;QAAzC,iBAqBC;;QApBO,IAAA,KAA+B,IAAI,CAAC,KAAK,EAA5B,EAAE,gBAAA,EAAE,UAAU,gBAAc,CAAC;QAEhD,IAAI,CAAC,CAAA,MAAA,MAAM,CAAC,QAAQ,0CAAE,MAAM,CAAA,EAAE;YAC5B,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,uCACE,GAAG,EAAE,KAAK,EACV,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,MAAM,CAAC,SAAS,CAAC;YAE1D,yCACE,SAAS,EAAE,EAAE,CAAC,8BAA8B,EAAE,MAAM,CAAC,cAAc,CAAC,IAEnE,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,CACxB;YAEP,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,KAAK,IAAK,OAAA,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,EAA9B,CAA8B,CAAC,CACnE,CACP,CAAC;IACJ,CAAC;IAED,sCAAU,GAAV,UAAW,MAAc,EAAE,KAAa;QAAxC,iBAkDC;QAjDC,IAAI,MAAM,CAAC,QAAQ,EAAE;YACnB,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SACxC;QAEK,IAAA,KAWF,IAAI,CAAC,KAAK,EAVZ,aAAa,mBAAA,EACb,QAAQ,cAAA,EACR,eAAe,qBAAA,EACf,QAAQ,cAAA,EACR,MAAM,YAAA,EACN,cAAc,oBAAA,EACd,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,QAAQ,cAAA,EACG,EAAE,eACD,CAAC;QAEf,OAAO,CACL,8BAAC,kBAAQ,IACP,SAAS,EAAE,aAAa,EACxB,GAAG,EAAE,KAAK,EACV,QAAQ,EAAE,cAAM,OAAA,QAAQ,CAAC,MAAM,CAAC,EAAhB,CAAgB,EAChC,OAAO,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAC3C,QAAQ,EAAE,QAAQ,IAAI,MAAM,CAAC,QAAQ,EACrC,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,MAAM,CAAC,WAAW;YAE9B,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,OAAO,CAAC,CAAC;YACrC,SAAS,IAAI,IAAA,mBAAU,EAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAC9C,qDAAiB,EAAE,CAAC,cAAc,CAAC,mBAAgB,MAAM;gBACvD,8BAAC,YAAI,IACH,IAAI,EAAC,OAAO,EACZ,SAAS,EAAC,MAAM,EAChB,OAAO,EAAE,UAAC,CAAM,IAAK,OAAA,KAAI,CAAC,iBAAiB,CAAC,CAAC,EAAE,MAAM,CAAC,EAAjC,CAAiC,GACtD,CACA,CACL,CAAC,CAAC,CAAC,IAAI;YACP,QAAQ,IAAI,IAAA,mBAAU,EAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAC5C,qDAAgB,cAAI,mBAAe,MAAM;gBACvC,8BAAC,YAAI,IACH,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,MAAM,EAChB,OAAO,EAAE,UAAC,CAAM,IAAK,OAAA,KAAI,CAAC,eAAe,CAAC,CAAC,EAAE,MAAM,CAAC,EAA/B,CAA+B,GACpD,CACA,CACL,CAAC,CAAC,CAAC,IAAI,CACC,CACZ,CAAC;IACJ,CAAC;IAED,kCAAM,GAAN;QAAA,iBAiFC;QAhFO,IAAA,KAkBF,IAAI,CAAC,KAAK,EAjBZ,SAAS,eAAA,EACT,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,OAAO,aAAA,EACP,MAAM,YAAA,EACN,YAAY,kBAAA,EACZ,eAAe,qBAAA,EACf,QAAQ,cAAA,EACR,WAAW,iBAAA,EACX,QAAQ,cAAA,EACI,EAAE,gBAAA,EACd,aAAa,mBAAA,EACb,cAAc,oBAAA,EACd,SAAS,eAAA,EACT,MAAM,YAAA,EACN,cAAc,oBAAA,EACH,EAAE,eACD,CAAC;QAEf,IAAI,IAAI,GAA2B,EAAE,CAAC;QAEtC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,EAAE;YAC7B,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,GAAG,IAAK,OAAA,KAAI,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,EAA5B,CAA4B,CAAC,CAAC;SACnE;QAED,IAAI,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE;YAC3B,IAAI,CAAC,OAAO,CACV,8BAAC,kBAAQ,IACP,GAAG,EAAC,UAAU,EACd,SAAS,EAAE,aAAa,EACxB,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,CAAC,CAAC,eAAe,CAAC,MAAM,EACjC,OAAO,EACL,CAAC,CAAC,CACA,eAAe,CAAC,MAAM;oBACtB,eAAe,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAC1C,EAEH,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,IAE7B,EAAE,CAAC,sBAAsB,CAAC,CAClB,CACZ,CAAC;SACH;QAED,IAAK,YAAuB,GAAG,CAAC,EAAE;YAChC,IAAI,MAAM,GAAG,EAAE,GAAI,YAAuB,CAAC;YAC3C,IAAI,eAAa,GAAG,sBAClB,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAC3C,CAAC;YACH,IAAI,GAAG,IAAA,eAAK,EAAC,IAAI,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,UAAC,KAAK,EAAE,UAAU,IAAK,OAAA,CAC1D,uCAAK,SAAS,EAAE,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,UAAU,IACxC,KAAK,CAAC,IAAI,CAAC,EAAC,MAAM,EAAE,YAAsB,EAAC,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,EAAE,KAAK,IAAK,OAAA,CAC9D,uCAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,CAAC,eAAa,CAAC,IAC1C,KAAK,CAAC,KAAK,CAAC,CACT,CACP,EAJ+D,CAI/D,CAAC,CACE,CACP,EAR2D,CAQ3D,CAAC,CAAC;SACJ;QAED,OAAO,CACL,uCAAK,SAAS,EAAE,EAAE,CAAC,mBAAmB,EAAE,SAAS,CAAC;YAC/C,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CACrB,IAAI,CACL,CAAC,CAAC,CAAC,CACF,wCAAM,SAAS,EAAE,kBAAkB,IAAG,EAAE,CAAC,WAAW,CAAC,CAAQ,CAC9D;YAEA,CAAC,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CACpC,qCAAG,SAAS,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,cAAc;gBACjE,8BAAC,YAAI,IAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,GAAG;gBACpC,EAAE,CAAC,cAAc,CAAC,CACjB,CACL,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAC;IACJ,CAAC;;IAhMM,8BAAY,GAAG;QACpB,YAAY,EAAE,CAAC;QACf,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,sBAAsB;QACnC,SAAS,EAAE,KAAK;QAChB,MAAM,EAAE,IAAI;QACZ,cAAc,EAAE,oBAAoB;KACrC,CAAC;IAQF;QADC,iBAAQ;;;;2DAIR;IAGD;QADC,iBAAQ;;0EACU,KAAK,oBAAL,KAAK;;4DAKvB;IAGD;QADC,iBAAQ;;0EACY,KAAK,oBAAL,KAAK;;8DAKzB;IA+JH,wBAAC;CAAA,AArMD,CAA+C,eAAK,CAAC,SAAS,GAqM7D;kBArMoB,iBAAiB;AA2MtC;IAA+C,0DAAiB;IAAhE;;IAAkE,CAAC;IAAtD,yBAAyB;QAJrC,IAAA,wBAAc,EAAC;YACd,IAAI,EAAE,YAAY;YAClB,WAAW,EAAE,KAAK;SACnB,CAAC;OACW,yBAAyB,CAA6B;IAAD,gCAAC;CAAA,AAAnE,CAA+C,iBAAiB,GAAG;AAAtD,8DAAyB",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport {\n OptionsControl,\n OptionsControlProps,\n Option,\n FormOptionsControl\n} from './Options';\nimport cx from 'classnames';\nimport Checkbox from '../../components/Checkbox';\nimport chunk from 'lodash/chunk';\nimport {Icon} from '../../components/icons';\nimport {Api} from '../../types';\nimport {autobind, hasAbility} from '../../utils/helper';\n\n/**\n * 复选框\n * 文档:https://baidu.gitee.io/amis/docs/components/form/checkboxes\n */\nexport interface CheckboxesControlSchema extends FormOptionsControl {\n type: 'checkboxes';\n\n /**\n * 是否开启全选功能\n */\n checkAll?: boolean;\n\n /**\n * 是否默认全选\n */\n defaultCheckAll?: boolean;\n\n /**\n * 每行显示多少个\n */\n columnsCount?: number;\n}\n\nexport interface CheckboxesProps\n extends OptionsControlProps,\n Omit<\n CheckboxesControlSchema,\n | 'options'\n | 'type'\n | 'className'\n | 'descriptionClassName'\n | 'inputClassName'\n > {\n placeholder?: any;\n itemClassName?: string;\n columnsCount?: number;\n labelClassName?: string;\n onAdd?: () => void;\n addApi?: Api;\n creatable: boolean;\n createBtnLabel: string;\n editable?: boolean;\n removable?: boolean;\n}\n\nexport default class CheckboxesControl extends React.Component<\n CheckboxesProps,\n any\n> {\n static defaultProps = {\n columnsCount: 1,\n multiple: true,\n placeholder: 'placeholder.noOption',\n creatable: false,\n inline: true,\n createBtnLabel: 'Select.createLabel'\n };\n\n reload() {\n const reload = this.props.reloadOptions;\n reload && reload();\n }\n\n @autobind\n handleAddClick() {\n const {onAdd} = this.props;\n onAdd && onAdd();\n }\n\n @autobind\n handleEditClick(e: Event, item: any) {\n const {onEdit} = this.props;\n e.preventDefault();\n e.stopPropagation();\n onEdit && onEdit(item);\n }\n\n @autobind\n handleDeleteClick(e: Event, item: any) {\n const {onDelete} = this.props;\n e.preventDefault();\n e.stopPropagation();\n onDelete && onDelete(item);\n }\n\n renderGroup(option: Option, index: number) {\n const {classnames: cx, labelField} = this.props;\n\n if (!option.children?.length) {\n return null;\n }\n\n return (\n <div\n key={index}\n className={cx('CheckboxesControl-group', option.className)}\n >\n <label\n className={cx('CheckboxesControl-groupLabel', option.labelClassName)}\n >\n {option[labelField || 'label']}\n </label>\n\n {option.children.map((option, index) => this.renderItem(option, index))}\n </div>\n );\n }\n\n renderItem(option: Option, index: number) {\n if (option.children) {\n return this.renderGroup(option, index);\n }\n\n const {\n itemClassName,\n onToggle,\n selectedOptions,\n disabled,\n inline,\n labelClassName,\n labelField,\n removable,\n editable,\n translate: __\n } = this.props;\n\n return (\n <Checkbox\n className={itemClassName}\n key={index}\n onChange={() => onToggle(option)}\n checked={!!~selectedOptions.indexOf(option)}\n disabled={disabled || option.disabled}\n inline={inline}\n labelClassName={labelClassName}\n description={option.description}\n >\n {String(option[labelField || 'label'])}\n {removable && hasAbility(option, 'removable') ? (\n <a data-tooltip={__('Select.clear')} data-position=\"left\">\n <Icon\n icon=\"minus\"\n className=\"icon\"\n onClick={(e: any) => this.handleDeleteClick(e, option)}\n />\n </a>\n ) : null}\n {editable && hasAbility(option, 'editable') ? (\n <a data-tooltip=\"编辑\" data-position=\"left\">\n <Icon\n icon=\"pencil\"\n className=\"icon\"\n onClick={(e: any) => this.handleEditClick(e, option)}\n />\n </a>\n ) : null}\n </Checkbox>\n );\n }\n\n render() {\n const {\n className,\n disabled,\n placeholder,\n options,\n inline,\n columnsCount,\n selectedOptions,\n onToggle,\n onToggleAll,\n checkAll,\n classnames: cx,\n itemClassName,\n labelClassName,\n creatable,\n addApi,\n createBtnLabel,\n translate: __\n } = this.props;\n\n let body: Array<React.ReactNode> = [];\n\n if (options && options.length) {\n body = options.map((option, key) => this.renderItem(option, key));\n }\n\n if (checkAll && body.length) {\n body.unshift(\n <Checkbox\n key=\"checkall\"\n className={itemClassName}\n onChange={onToggleAll}\n checked={!!selectedOptions.length}\n partial={\n !!(\n selectedOptions.length &&\n selectedOptions.length !== options.length\n )\n }\n disabled={disabled}\n inline={inline}\n labelClassName={labelClassName}\n >\n {__('Checkboxes.selectAll')}\n </Checkbox>\n );\n }\n\n if ((columnsCount as number) > 1) {\n let weight = 12 / (columnsCount as number);\n let cellClassName = `Grid-col--sm${\n weight === Math.round(weight) ? weight : ''\n }`;\n body = chunk(body, columnsCount).map((group, groupIndex) => (\n <div className={cx('Grid')} key={groupIndex}>\n {Array.from({length: columnsCount as number}).map((_, index) => (\n <div key={index} className={cx(cellClassName)}>\n {group[index]}\n </div>\n ))}\n </div>\n ));\n }\n\n return (\n <div className={cx(`CheckboxesControl`, className)}>\n {body && body.length ? (\n body\n ) : (\n <span className={`Form-placeholder`}>{__(placeholder)}</span>\n )}\n\n {(creatable || addApi) && !disabled ? (\n <a className={cx('Checkboxes-addBtn')} onClick={this.handleAddClick}>\n <Icon icon=\"plus\" className=\"icon\" />\n {__(createBtnLabel)}\n </a>\n ) : null}\n </div>\n );\n }\n}\n\n@OptionsControl({\n type: 'checkboxes',\n sizeMutable: false\n})\nexport class CheckboxesControlRenderer extends CheckboxesControl {}\n"
11
+ "import React from 'react';\nimport {\n OptionsControl,\n OptionsControlProps,\n Option,\n FormOptionsControl\n} from './Options';\nimport cx from 'classnames';\nimport Checkbox from '../../components/Checkbox';\n\nimport {Icon} from '../../components/icons';\nimport {Api} from '../../types';\nimport {autobind, hasAbility} from '../../utils/helper';\nimport {columnsSplit} from '../../utils/columnsSplit';\n\n/**\n * 复选框\n * 文档:https://baidu.gitee.io/amis/docs/components/form/checkboxes\n */\nexport interface CheckboxesControlSchema extends FormOptionsControl {\n type: 'checkboxes';\n\n /**\n * 是否开启全选功能\n */\n checkAll?: boolean;\n\n /**\n * 是否默认全选\n */\n defaultCheckAll?: boolean;\n\n /**\n * 每行显示多少个\n */\n columnsCount?: number | number[];\n}\n\nexport interface CheckboxesProps\n extends OptionsControlProps,\n Omit<\n CheckboxesControlSchema,\n | 'options'\n | 'type'\n | 'className'\n | 'descriptionClassName'\n | 'inputClassName'\n > {\n placeholder?: any;\n itemClassName?: string;\n columnsCount?: number | number[];\n labelClassName?: string;\n onAdd?: () => void;\n addApi?: Api;\n creatable: boolean;\n createBtnLabel: string;\n editable?: boolean;\n removable?: boolean;\n optionType?: 'default' | 'button'\n}\n\nexport default class CheckboxesControl extends React.Component<\n CheckboxesProps,\n any\n> {\n static defaultProps = {\n columnsCount: 1,\n multiple: true,\n placeholder: 'placeholder.noOption',\n creatable: false,\n inline: true,\n createBtnLabel: 'Select.createLabel',\n optionType: 'default'\n };\n\n reload() {\n const reload = this.props.reloadOptions;\n reload && reload();\n }\n\n @autobind\n handleAddClick() {\n const {onAdd} = this.props;\n onAdd && onAdd();\n }\n\n @autobind\n handleEditClick(e: Event, item: any) {\n const {onEdit} = this.props;\n e.preventDefault();\n e.stopPropagation();\n onEdit && onEdit(item);\n }\n\n @autobind\n handleDeleteClick(e: Event, item: any) {\n const {onDelete} = this.props;\n e.preventDefault();\n e.stopPropagation();\n onDelete && onDelete(item);\n }\n\n componentDidMount() {\n this.updateBorderStyle();\n window.addEventListener('resize', this.updateBorderStyle);\n }\n\n componentWillMount() {\n window.removeEventListener('resize', this.updateBorderStyle);\n }\n\n @autobind\n updateBorderStyle() {\n if (this.props.optionType !== 'button') {\n return;\n }\n const wrapDom = this.refs.checkboxRef as HTMLElement;\n const wrapWidth = wrapDom.clientWidth;\n const childs = Array.from(wrapDom.children) as HTMLElement[];\n \n childs.forEach(child => {\n child.style.borderRadius = '0';\n child.style.borderLeftWidth = '1px';\n child.style.borderTopWidth = '1px';\n });\n const childTotalWidth = childs.reduce((pre, next) =>\n pre + next.clientWidth, 0);\n if (childTotalWidth <= wrapWidth) {\n if (childs.length === 1) {\n childs[0].style.borderRadius = \"4px\";\n }\n else {\n childs[0].style.borderRadius = \"4px 0 0 4px\";\n childs[childs.length - 1].style.borderRadius = \"0 4px 4px 0\";\n childs.forEach((child, idx) => {\n idx !== 0 && (child.style.borderLeftWidth = '0');\n });\n }\n }\n else {\n let curRowWidth = 0;\n let curRow = 0;\n const rowNum = Math.floor(childTotalWidth / wrapWidth);\n const rowColArr: any[] = [];\n for (let i = 0; i <= rowNum; i++) {\n const arr: HTMLElement[] = [];\n rowColArr[i] = arr;\n }\n childs.forEach((child: HTMLElement, idx: number) => {\n curRowWidth += child.clientWidth;\n if (curRowWidth > wrapWidth) {\n curRowWidth = child.clientWidth;\n curRow++;\n }\n if (curRow > rowNum) {\n return;\n }\n rowColArr[curRow].push(child);\n });\n \n rowColArr.forEach((row: HTMLElement[], rowIdx: number) => {\n if (rowIdx === 0) {\n row.forEach((r: HTMLElement, colIdx: number) => {\n r.style.borderRadius = '0';\n colIdx !== 0 && (r.style.borderLeftWidth = '0');\n row.length > rowColArr[rowIdx + 1].length\n && (row[row.length - 1].style.borderBottomRightRadius = \"4px\");\n });\n row[0].style.borderTopLeftRadius = \"4px\";\n row[row.length - 1].style.borderTopRightRadius = \"4px\";\n }\n else if (rowIdx === rowNum) {\n row.forEach((r: HTMLElement, colIdx: number) => {\n r.style.borderRadius = '0';\n colIdx !== 0 && (r.style.borderLeftWidth = '0');\n r.style.borderTopWidth = '0';\n row[0].style.borderBottomLeftRadius = \"4px\";\n row[row.length - 1].style.borderBottomRightRadius = \"4px\";\n });\n }\n else {\n row.forEach((r: HTMLElement, colIdx: number) => {\n r.style.borderRadius = '0';\n colIdx !== 0 && (r.style.borderLeftWidth = '0');\n r.style.borderTopWidth = '0';\n row.length > rowColArr[rowIdx + 1].length\n && (row[row.length - 1].style.borderBottomRightRadius = \"4px\");\n });\n }\n });\n }\n }\n\n renderGroup(option: Option, index: number) {\n const {classnames: cx, labelField} = this.props;\n\n if (!option.children?.length) {\n return null;\n }\n\n return (\n <div\n key={index}\n className={cx('CheckboxesControl-group', option.className)}\n >\n <label\n className={cx('CheckboxesControl-groupLabel', option.labelClassName)}\n >\n {option[labelField || 'label']}\n </label>\n\n {option.children.map((option, index) => this.renderItem(option, index))}\n </div>\n );\n }\n\n renderItem(option: Option, index: number) {\n if (option.children) {\n return this.renderGroup(option, index);\n }\n\n const {\n itemClassName,\n onToggle,\n selectedOptions,\n disabled,\n inline,\n labelClassName,\n labelField,\n removable,\n editable,\n translate: __,\n optionType\n } = this.props;\n\n return (\n <Checkbox\n className={itemClassName}\n key={index}\n onChange={() => onToggle(option)}\n checked={!!~selectedOptions.indexOf(option)}\n disabled={disabled || option.disabled}\n inline={inline}\n labelClassName={labelClassName}\n description={option.description}\n optionType={optionType}\n >\n {String(option[labelField || 'label'])}\n {removable && hasAbility(option, 'removable') ? (\n <a data-tooltip={__('Select.clear')} data-position=\"left\">\n <Icon\n icon=\"minus\"\n className=\"icon\"\n onClick={(e: any) => this.handleDeleteClick(e, option)}\n />\n </a>\n ) : null}\n {editable && hasAbility(option, 'editable') ? (\n <a data-tooltip=\"编辑\" data-position=\"left\">\n <Icon\n icon=\"pencil\"\n className=\"icon\"\n onClick={(e: any) => this.handleEditClick(e, option)}\n />\n </a>\n ) : null}\n </Checkbox>\n );\n }\n\n render() {\n const {\n className,\n disabled,\n placeholder,\n options,\n inline,\n columnsCount,\n selectedOptions,\n onToggle,\n onToggleAll,\n checkAll,\n classnames: cx,\n itemClassName,\n labelClassName,\n creatable,\n addApi,\n createBtnLabel,\n translate: __,\n optionType\n } = this.props;\n\n let body: Array<React.ReactNode> = [];\n\n if (options && options.length) {\n body = options.map((option, key) => this.renderItem(option, key));\n }\n\n if (checkAll && body.length && optionType === 'default') {\n body.unshift(\n <Checkbox\n key=\"checkall\"\n className={itemClassName}\n onChange={onToggleAll}\n checked={!!selectedOptions.length}\n partial={\n !!(\n selectedOptions.length &&\n selectedOptions.length !== options.length\n )\n }\n disabled={disabled}\n inline={inline}\n labelClassName={labelClassName}\n >\n {__('Checkboxes.selectAll')}\n </Checkbox>\n );\n }\n\n body = columnsSplit(body, cx, columnsCount);\n\n return (\n <div className={cx(`CheckboxesControl`, className)} ref=\"checkboxRef\">\n {body && body.length ? (\n body\n ) : (\n <span className={`Form-placeholder`}>{__(placeholder)}</span>\n )}\n\n {(creatable || addApi) && !disabled ? (\n <a className={cx('Checkboxes-addBtn')} onClick={this.handleAddClick}>\n <Icon icon=\"plus\" className=\"icon\" />\n {__(createBtnLabel)}\n </a>\n ) : null}\n </div>\n );\n }\n}\n\n@OptionsControl({\n type: 'checkboxes',\n sizeMutable: false\n})\nexport class CheckboxesControlRenderer extends CheckboxesControl {}\n"
12
12
  ]
13
13
  }
@@ -184,12 +184,13 @@ export interface ComboControlSchema extends FormBaseControl {
184
184
  maxLengthValidateFailed?: string;
185
185
  };
186
186
  }
187
+ export declare type ComboRendererEvent = 'add' | 'delete' | 'tabsChange';
187
188
  export interface ComboProps extends FormControlProps, Omit<ComboControlSchema, 'type' | 'className' | 'descriptionClassName' | 'inputClassName'> {
188
189
  store: IComboStore;
189
190
  changeImmediately?: boolean;
190
191
  }
191
192
  export default class ComboControl extends React.Component<ComboProps> {
192
- static defaultProps: Pick<ComboProps, 'minLength' | 'maxLength' | 'multiple' | 'multiLine' | 'addButtonClassName' | 'formClassName' | 'subFormMode' | 'draggableTip' | 'addButtonText' | 'canAccessSuperData' | 'addIcon' | 'dragIcon' | 'deleteIcon' | 'tabsMode' | 'tabsStyle' | 'placeholder'>;
193
+ static defaultProps: Pick<ComboProps, 'minLength' | 'maxLength' | 'multiple' | 'multiLine' | 'addButtonClassName' | 'formClassName' | 'subFormMode' | 'draggableTip' | 'addButtonText' | 'canAccessSuperData' | 'addIcon' | 'dragIcon' | 'deleteIcon' | 'tabsMode' | 'tabsStyle' | 'placeholder' | 'itemClassName' | 'itemsWrapperClassName'>;
193
194
  static propsList: Array<string>;
194
195
  subForms: Array<any>;
195
196
  subFormDefaultValues: Array<{
@@ -210,8 +211,8 @@ export default class ComboControl extends React.Component<ComboProps> {
210
211
  children?: React.ReactNode;
211
212
  }>): any;
212
213
  addItemWith(condition: ComboCondition): void;
213
- addItem(): void;
214
- removeItem(key: number): Promise<void>;
214
+ addItem(): Promise<void>;
215
+ deleteItem(key: number): Promise<void>;
215
216
  handleChange(values: any, diff: any, { index }: any): void;
216
217
  handleSingleFormChange(values: object): void;
217
218
  handleFormInit(values: any, { index }: any): void;
@@ -231,10 +232,11 @@ export default class ComboControl extends React.Component<ComboProps> {
231
232
  formatValue(value: any, index?: number): object;
232
233
  pickCondition(value: any): ComboCondition | null;
233
234
  handleComboTypeChange(index: number, selection: any): void;
234
- handleTabSelect(key: number): void;
235
+ handleTabSelect(key: number): Promise<void>;
235
236
  setNull(e: React.MouseEvent): void;
236
237
  renderPlaceholder(): JSX.Element;
237
238
  renderTabsMode(): JSX.Element;
239
+ renderDelBtn(value: any, index: number): JSX.Element | null;
238
240
  renderMultipe(): JSX.Element;
239
241
  renderSingle(): JSX.Element;
240
242
  render(): JSX.Element | null;
@@ -4,9 +4,11 @@ exports.KVControlRenderer = exports.ComboControlRenderer = void 0;
4
4
  var tslib_1 = require("tslib");
5
5
  var react_1 = (0, tslib_1.__importDefault)(require("react"));
6
6
  var react_dom_1 = require("react-dom");
7
+ var cloneDeep_1 = (0, tslib_1.__importDefault)(require("lodash/cloneDeep"));
7
8
  var Item_1 = require("./Item");
8
9
  var combo_1 = require("../../store/combo");
9
10
  var Tabs_1 = tslib_1.__importStar(require("../../components/Tabs"));
11
+ var Button_1 = (0, tslib_1.__importDefault)(require("../../components/Button"));
10
12
  var helper_1 = require("../../utils/helper");
11
13
  var sortablejs_1 = (0, tslib_1.__importDefault)(require("sortablejs"));
12
14
  var tpl_1 = require("../../utils/tpl");
@@ -50,7 +52,7 @@ var ComboControl = /** @class */ (function (_super) {
50
52
  _this.handleFormInit = _this.handleFormInit.bind(_this);
51
53
  _this.handleAction = _this.handleAction.bind(_this);
52
54
  _this.addItem = _this.addItem.bind(_this);
53
- _this.removeItem = _this.removeItem.bind(_this);
55
+ _this.deleteItem = _this.deleteItem.bind(_this);
54
56
  _this.dragTipRef = _this.dragTipRef.bind(_this);
55
57
  _this.flush = _this.flush.bind(_this);
56
58
  _this.handleComboTypeChange = _this.handleComboTypeChange.bind(_this);
@@ -131,49 +133,75 @@ var ComboControl = /** @class */ (function (_super) {
131
133
  this.props.onChange(value, submitOnChange, true);
132
134
  };
133
135
  ComboControl.prototype.addItem = function () {
134
- var _a = this.props, flat = _a.flat, joinValues = _a.joinValues, delimiter = _a.delimiter, scaffold = _a.scaffold, disabled = _a.disabled, submitOnChange = _a.submitOnChange;
135
- if (disabled) {
136
- return;
137
- }
138
- var value = this.getValueAsArray();
139
- value.push(flat
140
- ? scaffold || ''
141
- : (0, tslib_1.__assign)({}, scaffold));
142
- this.keys.push((0, helper_1.guid)());
143
- if (flat && joinValues) {
144
- value = value.join(delimiter || ',');
145
- }
146
- this.props.onChange(value, submitOnChange, true);
136
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
137
+ var _a, flat, joinValues, delimiter, scaffold, disabled, submitOnChange, data, dispatchEvent, value, rendererEvent;
138
+ return (0, tslib_1.__generator)(this, function (_b) {
139
+ switch (_b.label) {
140
+ case 0:
141
+ _a = this.props, flat = _a.flat, joinValues = _a.joinValues, delimiter = _a.delimiter, scaffold = _a.scaffold, disabled = _a.disabled, submitOnChange = _a.submitOnChange, data = _a.data, dispatchEvent = _a.dispatchEvent;
142
+ if (disabled) {
143
+ return [2 /*return*/];
144
+ }
145
+ value = this.getValueAsArray();
146
+ return [4 /*yield*/, dispatchEvent('add', (0, helper_1.createObject)(data, {
147
+ value: flat && joinValues ? value.join(delimiter || ',') : (0, cloneDeep_1.default)(value)
148
+ }))];
149
+ case 1:
150
+ rendererEvent = _b.sent();
151
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
152
+ return [2 /*return*/];
153
+ }
154
+ value.push(flat
155
+ ? scaffold || ''
156
+ : (0, tslib_1.__assign)({}, scaffold));
157
+ this.keys.push((0, helper_1.guid)());
158
+ if (flat && joinValues) {
159
+ value = value.join(delimiter || ',');
160
+ }
161
+ this.props.onChange(value, submitOnChange, true);
162
+ return [2 /*return*/];
163
+ }
164
+ });
165
+ });
147
166
  };
148
- ComboControl.prototype.removeItem = function (key) {
167
+ ComboControl.prototype.deleteItem = function (key) {
149
168
  return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
150
- var _a, flat, joinValues, delimiter, disabled, deleteApi, deleteConfirmText, data, env, __, value, ctx, confirmed, result;
169
+ var _a, flat, joinValues, delimiter, disabled, deleteApi, deleteConfirmText, data, env, __, dispatchEvent, value, ctx, rendererEvent, confirmed, result;
151
170
  return (0, tslib_1.__generator)(this, function (_b) {
152
171
  switch (_b.label) {
153
172
  case 0:
154
- _a = this.props, flat = _a.flat, joinValues = _a.joinValues, delimiter = _a.delimiter, disabled = _a.disabled, deleteApi = _a.deleteApi, deleteConfirmText = _a.deleteConfirmText, data = _a.data, env = _a.env, __ = _a.translate;
173
+ _a = this.props, flat = _a.flat, joinValues = _a.joinValues, delimiter = _a.delimiter, disabled = _a.disabled, deleteApi = _a.deleteApi, deleteConfirmText = _a.deleteConfirmText, data = _a.data, env = _a.env, __ = _a.translate, dispatchEvent = _a.dispatchEvent;
155
174
  if (disabled) {
156
175
  return [2 /*return*/];
157
176
  }
158
177
  value = this.getValueAsArray();
159
178
  ctx = (0, helper_1.createObject)(data, value[key]);
160
- if (!(0, api_1.isEffectiveApi)(deleteApi, ctx)) return [3 /*break*/, 3];
161
- return [4 /*yield*/, env.confirm(deleteConfirmText ? (0, tpl_1.filter)(deleteConfirmText, ctx) : __('deleteConfirm'))];
179
+ return [4 /*yield*/, dispatchEvent('delete', (0, helper_1.createObject)(data, {
180
+ key: key,
181
+ value: flat && joinValues ? value.join(delimiter || ',') : (0, cloneDeep_1.default)(value)
182
+ }))];
162
183
  case 1:
184
+ rendererEvent = _b.sent();
185
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
186
+ return [2 /*return*/];
187
+ }
188
+ if (!(0, api_1.isEffectiveApi)(deleteApi, ctx)) return [3 /*break*/, 4];
189
+ return [4 /*yield*/, env.confirm(deleteConfirmText ? (0, tpl_1.filter)(deleteConfirmText, ctx) : __('deleteConfirm'))];
190
+ case 2:
163
191
  confirmed = _b.sent();
164
192
  if (!confirmed) {
165
193
  // 如果不确认,则跳过!
166
194
  return [2 /*return*/];
167
195
  }
168
196
  return [4 /*yield*/, env.fetcher(deleteApi, ctx)];
169
- case 2:
197
+ case 3:
170
198
  result = _b.sent();
171
199
  if (!result.ok) {
172
200
  env.notify('error', __('deleteFailed'));
173
201
  return [2 /*return*/];
174
202
  }
175
- _b.label = 3;
176
- case 3:
203
+ _b.label = 4;
204
+ case 4:
177
205
  value.splice(key, 1);
178
206
  this.keys.splice(key, 1);
179
207
  if (flat && joinValues) {
@@ -214,7 +242,8 @@ var ComboControl = /** @class */ (function (_super) {
214
242
  setted: false
215
243
  });
216
244
  if (syncDefaultValue === false ||
217
- this.subFormDefaultValues.length !== this.subForms.length) {
245
+ this.subFormDefaultValues.length !==
246
+ this.subForms.filter(function (item) { return item !== undefined; }).length) {
218
247
  return;
219
248
  }
220
249
  var value = this.getValueAsArray();
@@ -254,7 +283,7 @@ var ComboControl = /** @class */ (function (_super) {
254
283
  ComboControl.prototype.handleAction = function (action) {
255
284
  var onAction = this.props.onAction;
256
285
  if (action.actionType === 'delete') {
257
- action.index !== void 0 && this.removeItem(action.index);
286
+ action.index !== void 0 && this.deleteItem(action.index);
258
287
  return;
259
288
  }
260
289
  onAction && onAction.apply(null, arguments);
@@ -378,8 +407,25 @@ var ComboControl = /** @class */ (function (_super) {
378
407
  }
379
408
  };
380
409
  ComboControl.prototype.handleTabSelect = function (key) {
381
- var store = this.props.store;
382
- store.setActiveKey(key);
410
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
411
+ var _a, store, data, dispatchEvent, rendererEvent;
412
+ return (0, tslib_1.__generator)(this, function (_b) {
413
+ switch (_b.label) {
414
+ case 0:
415
+ _a = this.props, store = _a.store, data = _a.data, dispatchEvent = _a.dispatchEvent;
416
+ return [4 /*yield*/, dispatchEvent('tabsChange', (0, helper_1.createObject)(data, {
417
+ key: key
418
+ }))];
419
+ case 1:
420
+ rendererEvent = _b.sent();
421
+ if (rendererEvent === null || rendererEvent === void 0 ? void 0 : rendererEvent.prevented) {
422
+ return [2 /*return*/];
423
+ }
424
+ store.setActiveKey(key);
425
+ return [2 /*return*/];
426
+ }
427
+ });
428
+ });
383
429
  };
384
430
  ComboControl.prototype.setNull = function (e) {
385
431
  e.preventDefault();
@@ -433,7 +479,7 @@ var ComboControl = /** @class */ (function (_super) {
433
479
  if (finnalRemovable && // 表达式判断单条是否可删除
434
480
  (!itemRemovableOn ||
435
481
  (0, tpl_1.evalExpression)(itemRemovableOn, value) !== false)) {
436
- toolbar = (react_1.default.createElement("div", { onClick: _this.removeItem.bind(_this, index), key: "remove", className: cx("Combo-tab-delBtn ".concat(!store.removable ? 'is-disabled' : '')), "data-tooltip": __('delete'), "data-position": "bottom" }, deleteIcon ? (react_1.default.createElement("i", { className: deleteIcon })) : (react_1.default.createElement(icons_1.Icon, { icon: "status-close", className: "icon" }))));
482
+ toolbar = (react_1.default.createElement("div", { onClick: _this.deleteItem.bind(_this, index), key: "delete", className: cx("Combo-tab-delBtn ".concat(!store.removable ? 'is-disabled' : '')), "data-tooltip": __('delete'), "data-position": "bottom" }, deleteIcon ? (react_1.default.createElement("i", { className: deleteIcon })) : (react_1.default.createElement(icons_1.Icon, { icon: "status-close", className: "icon" }))));
437
483
  }
438
484
  if (Array.isArray(conditions) && conditions.length) {
439
485
  condition = _this.pickCondition(data);
@@ -480,30 +526,67 @@ var ComboControl = /** @class */ (function (_super) {
480
526
  })) : (react_1.default.createElement(components_1.Alert2, { level: "warning", className: "m-b-none" }, __('Combo.invalidData'))))));
481
527
  })));
482
528
  };
529
+ ComboControl.prototype.renderDelBtn = function (value, index) {
530
+ var _this = this;
531
+ var _a = this.props, ns = _a.classPrefix, cx = _a.classnames, render = _a.render, store = _a.store, deleteIcon = _a.deleteIcon, __ = _a.translate, itemRemovableOn = _a.itemRemovableOn, disabled = _a.disabled, removable = _a.removable, deleteBtn = _a.deleteBtn;
532
+ var finnalRemovable = store.removable !== false && // minLength ?
533
+ !disabled && // 控件自身是否禁用
534
+ removable !== false; // 是否可以删除
535
+ if (!(finnalRemovable && // 表达式判断单条是否可删除
536
+ (!itemRemovableOn || (0, tpl_1.evalExpression)(itemRemovableOn, value) !== false))) {
537
+ // 不符合删除条件,则不渲染删除按钮
538
+ return null;
539
+ }
540
+ // deleteBtn是对象,则根据自定义配置渲染按钮
541
+ if ((0, helper_1.isObject)(deleteBtn)) {
542
+ return render('delete-btn', (0, tslib_1.__assign)((0, tslib_1.__assign)({}, deleteBtn), { type: 'button', className: cx('Combo-delController', deleteBtn ? deleteBtn.classname : ''), onClick: function (e) {
543
+ if (!deleteBtn.onClick) {
544
+ _this.deleteItem(index);
545
+ return;
546
+ }
547
+ var originClickHandler = deleteBtn.onClick;
548
+ if (typeof originClickHandler === 'string') {
549
+ originClickHandler = (0, api_1.str2AsyncFunction)(deleteBtn.onClick, 'e', 'index', 'props');
550
+ }
551
+ var result = originClickHandler(e, index, _this.props);
552
+ if (result && result.then) {
553
+ result.then(function () {
554
+ _this.deleteItem(index);
555
+ });
556
+ }
557
+ else {
558
+ _this.deleteItem(index);
559
+ }
560
+ } }));
561
+ }
562
+ // deleteBtn是string,则渲染按钮文本
563
+ if (typeof deleteBtn === 'string') {
564
+ return render('delete-btn', {
565
+ type: 'button',
566
+ className: cx('Combo-delController'),
567
+ label: deleteBtn,
568
+ onClick: this.deleteItem.bind(this, index)
569
+ });
570
+ }
571
+ // 如果上述按钮不满足,则渲染默认按钮
572
+ return (react_1.default.createElement("a", { onClick: this.deleteItem.bind(this, index), key: "delete", className: cx("Combo-delBtn ".concat(!store.removable ? 'is-disabled' : '')), "data-tooltip": __('delete'), "data-position": "bottom" }, deleteIcon ? (react_1.default.createElement("i", { className: deleteIcon })) : (react_1.default.createElement(icons_1.Icon, { icon: "status-close", className: "icon" }))));
573
+ };
483
574
  ComboControl.prototype.renderMultipe = function () {
484
575
  var _this = this;
485
576
  if (this.props.tabsMode) {
486
577
  return this.renderTabsMode();
487
578
  }
488
- var _a = this.props, ns = _a.classPrefix, cx = _a.classnames, formClassName = _a.formClassName, render = _a.render, multiLine = _a.multiLine, addButtonClassName = _a.addButtonClassName, disabled = _a.disabled, store = _a.store, flat = _a.flat, subFormMode = _a.subFormMode, draggable = _a.draggable, draggableTip = _a.draggableTip, addButtonText = _a.addButtonText, addable = _a.addable, removable = _a.removable, typeSwitchable = _a.typeSwitchable, itemRemovableOn = _a.itemRemovableOn, delimiter = _a.delimiter, canAccessSuperData = _a.canAccessSuperData, addIcon = _a.addIcon, dragIcon = _a.dragIcon, deleteIcon = _a.deleteIcon, noBorder = _a.noBorder, conditions = _a.conditions, lazyLoad = _a.lazyLoad, changeImmediately = _a.changeImmediately, placeholder = _a.placeholder, __ = _a.translate;
579
+ var _a = this.props, ns = _a.classPrefix, cx = _a.classnames, formClassName = _a.formClassName, render = _a.render, multiLine = _a.multiLine, addButtonClassName = _a.addButtonClassName, disabled = _a.disabled, store = _a.store, flat = _a.flat, subFormMode = _a.subFormMode, draggable = _a.draggable, draggableTip = _a.draggableTip, addButtonText = _a.addButtonText, addable = _a.addable, removable = _a.removable, typeSwitchable = _a.typeSwitchable, delimiter = _a.delimiter, canAccessSuperData = _a.canAccessSuperData, addIcon = _a.addIcon, dragIcon = _a.dragIcon, noBorder = _a.noBorder, conditions = _a.conditions, lazyLoad = _a.lazyLoad, changeImmediately = _a.changeImmediately, placeholder = _a.placeholder, __ = _a.translate, itemClassName = _a.itemClassName, itemsWrapperClassName = _a.itemsWrapperClassName;
489
580
  var items = this.props.items;
490
581
  var value = this.props.value;
491
582
  if (flat && typeof value === 'string') {
492
583
  value = value.split(delimiter || ',');
493
584
  }
494
- var finnalRemovable = store.removable !== false && // minLength ?
495
- !disabled && // 控件自身是否禁用
496
- removable !== false; // 是否可以删除
497
585
  return (react_1.default.createElement("div", { className: cx("Combo Combo--multi", multiLine ? "Combo--ver" : "Combo--hor", noBorder ? "Combo--noBorder" : '', disabled ? 'is-disabled' : '', !disabled && draggable && Array.isArray(value) && value.length > 1
498
586
  ? 'is-draggable'
499
587
  : '') },
500
- react_1.default.createElement("div", { className: cx("Combo-items") }, Array.isArray(value) && value.length ? (value.map(function (value, index, thelist) {
501
- var delBtn = null;
502
- if (finnalRemovable && // 表达式判断单条是否可删除
503
- (!itemRemovableOn ||
504
- (0, tpl_1.evalExpression)(itemRemovableOn, value) !== false)) {
505
- delBtn = (react_1.default.createElement("a", { onClick: _this.removeItem.bind(_this, index), key: "remove", className: cx("Combo-delBtn ".concat(!store.removable ? 'is-disabled' : '')), "data-tooltip": __('delete'), "data-position": "bottom" }, deleteIcon ? (react_1.default.createElement("i", { className: deleteIcon })) : (react_1.default.createElement(icons_1.Icon, { icon: "status-close", className: "icon" }))));
506
- }
588
+ react_1.default.createElement("div", { className: cx("Combo-items", itemsWrapperClassName) }, Array.isArray(value) && value.length ? (value.map(function (value, index, thelist) {
589
+ var delBtn = _this.renderDelBtn(value, index);
507
590
  var data = _this.formatValue(value, index);
508
591
  var condition = null;
509
592
  if (Array.isArray(conditions) && conditions.length) {
@@ -515,7 +598,7 @@ var ComboControl = /** @class */ (function (_super) {
515
598
  (0, tslib_1.__assign)((0, tslib_1.__assign)({}, (items && items[0])), { name: 'flat' })
516
599
  ]
517
600
  : items;
518
- return (react_1.default.createElement("div", { className: cx("Combo-item"), key: _this.keys[index] || (_this.keys[index] = (0, helper_1.guid)()) },
601
+ return (react_1.default.createElement("div", { className: cx("Combo-item", itemClassName), key: _this.keys[index] || (_this.keys[index] = (0, helper_1.guid)()) },
519
602
  !disabled && draggable && thelist.length > 1 ? (react_1.default.createElement("div", { className: cx('Combo-itemDrager') },
520
603
  react_1.default.createElement("a", { key: "drag", "data-tooltip": __('Combo.dragDropSort'), "data-position": "bottom" }, dragIcon ? (react_1.default.createElement("i", { className: dragIcon })) : (react_1.default.createElement(icons_1.Icon, { icon: "drag-bar", className: "icon" }))))) : null,
521
604
  condition && typeSwitchable !== false ? (react_1.default.createElement("div", { className: cx('Combo-itemTag') },
@@ -564,7 +647,7 @@ var ComboControl = /** @class */ (function (_super) {
564
647
  return false;
565
648
  }
566
649
  }); })
567
- })) : (react_1.default.createElement("button", { type: "button", onClick: this.addItem, className: cx("Button Combo-addBtn", addButtonClassName), "data-tooltip": __('Combo.add') },
650
+ })) : (react_1.default.createElement(Button_1.default, { className: cx("Combo-addBtn", addButtonClassName), tooltip: __('Combo.add'), onClick: this.addItem },
568
651
  addIcon ? react_1.default.createElement(icons_1.Icon, { icon: "plus", className: "icon" }) : null,
569
652
  react_1.default.createElement("span", null, __(addButtonText || 'Combo.add'))))) : null,
570
653
  draggable ? (react_1.default.createElement("span", { className: cx("Combo-dragableTip"), ref: this.dragTipRef }, Array.isArray(value) && value.length > 1
@@ -572,7 +655,7 @@ var ComboControl = /** @class */ (function (_super) {
572
655
  : '')) : null)) : null));
573
656
  };
574
657
  ComboControl.prototype.renderSingle = function () {
575
- var _a = this.props, conditions = _a.conditions, cx = _a.classnames, render = _a.render, value = _a.value, multiLine = _a.multiLine, formClassName = _a.formClassName, canAccessSuperData = _a.canAccessSuperData, noBorder = _a.noBorder, disabled = _a.disabled, typeSwitchable = _a.typeSwitchable, nullable = _a.nullable, __ = _a.translate;
658
+ var _a = this.props, conditions = _a.conditions, cx = _a.classnames, render = _a.render, value = _a.value, multiLine = _a.multiLine, formClassName = _a.formClassName, canAccessSuperData = _a.canAccessSuperData, noBorder = _a.noBorder, disabled = _a.disabled, typeSwitchable = _a.typeSwitchable, nullable = _a.nullable, __ = _a.translate, itemClassName = _a.itemClassName;
576
659
  var items = this.props.items;
577
660
  var data = (0, helper_1.isObject)(value) ? this.formatValue(value) : this.defaultValue;
578
661
  var condition = null;
@@ -581,7 +664,7 @@ var ComboControl = /** @class */ (function (_super) {
581
664
  items = condition ? condition.items : undefined;
582
665
  }
583
666
  return (react_1.default.createElement("div", { className: cx("Combo Combo--single", multiLine ? "Combo--ver" : "Combo--hor", noBorder ? "Combo--noBorder" : '', disabled ? 'is-disabled' : '') },
584
- react_1.default.createElement("div", { className: cx("Combo-item") },
667
+ react_1.default.createElement("div", { className: cx("Combo-item", itemClassName) },
585
668
  condition && typeSwitchable !== false ? (react_1.default.createElement("div", { className: cx('Combo-itemTag') },
586
669
  react_1.default.createElement("label", null, __('Combo.type')),
587
670
  react_1.default.createElement(Select_1.default, { onChange: this.handleComboTypeChange.bind(this, 0), options: conditions.map(function (item) { return ({
@@ -627,7 +710,9 @@ var ComboControl = /** @class */ (function (_super) {
627
710
  deleteIcon: '',
628
711
  tabsMode: false,
629
712
  tabsStyle: '',
630
- placeholder: 'placeholder.empty'
713
+ placeholder: 'placeholder.empty',
714
+ itemClassName: '',
715
+ itemsWrapperClassName: ''
631
716
  };
632
717
  ComboControl.propsList = [
633
718
  'minLength',
@@ -654,13 +739,15 @@ var ComboControl = /** @class */ (function (_super) {
654
739
  'items',
655
740
  'conditions',
656
741
  'messages',
657
- 'formStore'
742
+ 'formStore',
743
+ 'itemClassName',
744
+ 'itemsWrapperClassName'
658
745
  ];
659
746
  (0, tslib_1.__decorate)([
660
747
  helper_1.autobind,
661
748
  (0, tslib_1.__metadata)("design:type", Function),
662
749
  (0, tslib_1.__metadata)("design:paramtypes", [Number]),
663
- (0, tslib_1.__metadata)("design:returntype", void 0)
750
+ (0, tslib_1.__metadata)("design:returntype", Promise)
664
751
  ], ComboControl.prototype, "handleTabSelect", null);
665
752
  (0, tslib_1.__decorate)([
666
753
  helper_1.autobind,