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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (577) hide show
  1. package/README.md +1 -1
  2. package/lib/Schema.d.ts +26 -2
  3. package/lib/Schema.js.map +1 -1
  4. package/lib/components/Alert.js +3 -1
  5. package/lib/components/Alert.js.map +2 -2
  6. package/lib/components/AnchorNav.d.ts +22 -21
  7. package/lib/components/AnchorNav.js +7 -3
  8. package/lib/components/AnchorNav.js.map +2 -2
  9. package/lib/components/ArrayInput.d.ts +84 -84
  10. package/lib/components/AssociatedSelection.d.ts +930 -0
  11. package/lib/components/AssociatedSelection.js +89 -0
  12. package/lib/components/AssociatedSelection.js.map +13 -0
  13. package/lib/components/Badge.d.ts +16 -3
  14. package/lib/components/Badge.js +54 -5
  15. package/lib/components/Badge.js.map +2 -2
  16. package/lib/components/Button.d.ts +24 -22
  17. package/lib/components/Button.js +13 -7
  18. package/lib/components/Button.js.map +2 -2
  19. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  20. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  21. package/lib/components/ChainedSelection.js.map +13 -0
  22. package/lib/components/Checkbox.d.ts +1 -1
  23. package/lib/components/Checkbox.js +1 -1
  24. package/lib/components/Checkbox.js.map +2 -2
  25. package/lib/components/Collapse.js +1 -1
  26. package/lib/components/Collapse.js.map +2 -2
  27. package/lib/components/ColorPicker.d.ts +84 -84
  28. package/lib/components/DatePicker.d.ts +84 -84
  29. package/lib/components/DatePicker.js +1 -1
  30. package/lib/components/DatePicker.js.map +2 -2
  31. package/lib/components/DateRangePicker.d.ts +84 -84
  32. package/lib/components/DateRangePicker.js +1 -1
  33. package/lib/components/DateRangePicker.js.map +2 -2
  34. package/lib/components/Drawer.js +1 -1
  35. package/lib/components/Drawer.js.map +2 -2
  36. package/lib/components/Editor.d.ts +84 -84
  37. package/lib/components/GroupedSelection.d.ts +907 -0
  38. package/lib/components/GroupedSelection.js +48 -0
  39. package/lib/components/GroupedSelection.js.map +13 -0
  40. package/lib/components/InputBox.js +1 -1
  41. package/lib/components/InputBox.js.map +2 -2
  42. package/lib/components/Link.d.ts +84 -0
  43. package/lib/components/Link.js +43 -0
  44. package/lib/components/Link.js.map +13 -0
  45. package/lib/components/ListGroup.d.ts +21 -21
  46. package/lib/components/Modal.js +1 -1
  47. package/lib/components/Modal.js.map +2 -2
  48. package/lib/components/ModalManager.js +1 -1
  49. package/lib/components/ModalManager.js.map +2 -2
  50. package/lib/components/MonthRangePicker.d.ts +84 -84
  51. package/lib/components/MonthRangePicker.js +1 -1
  52. package/lib/components/MonthRangePicker.js.map +2 -2
  53. package/lib/components/NumberInput.d.ts +20 -20
  54. package/lib/components/PickerColumn.d.ts +514 -0
  55. package/lib/components/PickerColumn.js +279 -0
  56. package/lib/components/PickerColumn.js.map +13 -0
  57. package/lib/components/PickerContainer.d.ts +513 -0
  58. package/lib/components/PickerContainer.js +96 -0
  59. package/lib/components/PickerContainer.js.map +13 -0
  60. package/lib/components/Radios.d.ts +22 -21
  61. package/lib/components/Radios.js +1 -0
  62. package/lib/components/Radios.js.map +2 -2
  63. package/lib/components/Rating.d.ts +21 -21
  64. package/lib/components/ResultBox.d.ts +84 -84
  65. package/lib/components/RichText.d.ts +6 -1
  66. package/lib/components/RichText.js +207 -8
  67. package/lib/components/RichText.js.map +2 -2
  68. package/lib/components/SearchBox.d.ts +84 -84
  69. package/lib/components/SearchBox.js +4 -4
  70. package/lib/components/SearchBox.js.map +2 -2
  71. package/lib/components/Select.d.ts +252 -237
  72. package/lib/components/Select.js +28 -4
  73. package/lib/components/Select.js.map +2 -2
  74. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  75. package/lib/components/Selection.js +134 -0
  76. package/lib/components/Selection.js.map +13 -0
  77. package/lib/components/SparkLine.d.ts +85 -84
  78. package/lib/components/SparkLine.js +2 -2
  79. package/lib/components/SparkLine.js.map +2 -2
  80. package/lib/components/Steps.d.ts +3 -3
  81. package/lib/components/Steps.js.map +1 -1
  82. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  83. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  84. package/lib/components/TableSelection.js.map +13 -0
  85. package/lib/components/Tabs.d.ts +20 -20
  86. package/lib/components/TabsTransfer.d.ts +84 -84
  87. package/lib/components/TabsTransfer.js +9 -9
  88. package/lib/components/TabsTransfer.js.map +2 -2
  89. package/lib/components/TabsTransferPicker.d.ts +489 -0
  90. package/lib/components/TabsTransferPicker.js +60 -0
  91. package/lib/components/TabsTransferPicker.js.map +13 -0
  92. package/lib/components/Toast.js +2 -2
  93. package/lib/components/Toast.js.map +2 -2
  94. package/lib/components/Transfer.d.ts +908 -274
  95. package/lib/components/Transfer.js +31 -24
  96. package/lib/components/Transfer.js.map +2 -2
  97. package/lib/components/TransferDropDown.d.ts +487 -0
  98. package/lib/components/TransferDropDown.js +59 -0
  99. package/lib/components/TransferDropDown.js.map +13 -0
  100. package/lib/components/TransferPicker.d.ts +489 -0
  101. package/lib/components/TransferPicker.js +60 -0
  102. package/lib/components/TransferPicker.js.map +13 -0
  103. package/lib/components/Tree.d.ts +84 -84
  104. package/lib/components/Tree.js +5 -3
  105. package/lib/components/Tree.js.map +2 -2
  106. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  107. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  108. package/lib/components/TreeSelection.js.map +13 -0
  109. package/lib/components/WithRemoteConfig.d.ts +8 -0
  110. package/lib/components/WithRemoteConfig.js +29 -3
  111. package/lib/components/WithRemoteConfig.js.map +2 -2
  112. package/lib/components/calendar/DaysView.js +2 -2
  113. package/lib/components/calendar/DaysView.js.map +2 -2
  114. package/lib/components/condition-builder/Field.js +5 -3
  115. package/lib/components/condition-builder/Field.js.map +2 -2
  116. package/lib/components/condition-builder/Func.js +2 -2
  117. package/lib/components/condition-builder/Func.js.map +2 -2
  118. package/lib/components/condition-builder/InputSwitch.js +2 -2
  119. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  120. package/lib/components/condition-builder/Item.js +3 -3
  121. package/lib/components/condition-builder/Item.js.map +2 -2
  122. package/lib/components/condition-builder/Value.js +2 -1
  123. package/lib/components/condition-builder/Value.js.map +2 -2
  124. package/lib/components/condition-builder/types.d.ts +5 -0
  125. package/lib/components/condition-builder/types.js.map +1 -1
  126. package/lib/components/icons.js +14 -0
  127. package/lib/components/icons.js.map +2 -2
  128. package/lib/components/index.d.ts +8 -8
  129. package/lib/components/index.js +16 -16
  130. package/lib/components/index.js.map +2 -2
  131. package/lib/envOverwrite.js.map +2 -2
  132. package/lib/factory.d.ts +9 -1
  133. package/lib/factory.js +13 -6
  134. package/lib/factory.js.map +2 -2
  135. package/lib/helper.css.map +1 -1
  136. package/lib/hooks/index.d.ts +5 -0
  137. package/lib/hooks/index.js +14 -0
  138. package/lib/hooks/index.js.map +13 -0
  139. package/lib/hooks/use-set-state.d.ts +2 -0
  140. package/lib/hooks/use-set-state.js +15 -0
  141. package/lib/hooks/use-set-state.js.map +13 -0
  142. package/lib/hooks/use-touch.d.ts +16 -0
  143. package/lib/hooks/use-touch.js +73 -0
  144. package/lib/hooks/use-touch.js.map +13 -0
  145. package/lib/hooks/use-update-effect.d.ts +3 -0
  146. package/lib/hooks/use-update-effect.js +17 -0
  147. package/lib/hooks/use-update-effect.js.map +13 -0
  148. package/lib/icons/clock.js +10 -0
  149. package/lib/icons/loading-outline.js +7 -0
  150. package/lib/icons/status-close.js +11 -0
  151. package/lib/icons/status-fail.js +11 -0
  152. package/lib/icons/status-info.js +10 -0
  153. package/lib/icons/status-success.js +11 -0
  154. package/lib/icons/status-warning.js +10 -0
  155. package/lib/index.d.ts +3 -0
  156. package/lib/index.js +4 -1
  157. package/lib/index.js.map +2 -2
  158. package/lib/locale/de-DE.js +5 -0
  159. package/lib/locale/de-DE.js.map +2 -2
  160. package/lib/locale/en-US.js +6 -1
  161. package/lib/locale/en-US.js.map +2 -2
  162. package/lib/locale/zh-CN.js +9 -4
  163. package/lib/locale/zh-CN.js.map +2 -2
  164. package/lib/renderers/Action.d.ts +17 -1
  165. package/lib/renderers/Action.js +21 -8
  166. package/lib/renderers/Action.js.map +2 -2
  167. package/lib/renderers/AnchorNav.d.ts +1 -0
  168. package/lib/renderers/AnchorNav.js +2 -2
  169. package/lib/renderers/AnchorNav.js.map +2 -2
  170. package/lib/renderers/Avatar.js +3 -3
  171. package/lib/renderers/Avatar.js.map +2 -2
  172. package/lib/renderers/Breadcrumb.js +1 -1
  173. package/lib/renderers/Breadcrumb.js.map +2 -2
  174. package/lib/renderers/CRUD.d.ts +9 -0
  175. package/lib/renderers/CRUD.js +48 -23
  176. package/lib/renderers/CRUD.js.map +2 -2
  177. package/lib/renderers/Card.d.ts +4 -0
  178. package/lib/renderers/Card.js +29 -23
  179. package/lib/renderers/Card.js.map +2 -2
  180. package/lib/renderers/Chart.js +1 -1
  181. package/lib/renderers/Chart.js.map +2 -2
  182. package/lib/renderers/Collapse.d.ts +1 -1
  183. package/lib/renderers/Collapse.js +8 -3
  184. package/lib/renderers/Collapse.js.map +2 -2
  185. package/lib/renderers/Dialog.d.ts +0 -252
  186. package/lib/renderers/Dialog.js +1 -4
  187. package/lib/renderers/Dialog.js.map +2 -2
  188. package/lib/renderers/Drawer.js +0 -3
  189. package/lib/renderers/Drawer.js.map +2 -2
  190. package/lib/renderers/DropDownButton.d.ts +13 -1
  191. package/lib/renderers/DropDownButton.js +9 -5
  192. package/lib/renderers/DropDownButton.js.map +2 -2
  193. package/lib/renderers/Form/Checkbox.d.ts +5 -0
  194. package/lib/renderers/Form/Checkbox.js +4 -0
  195. package/lib/renderers/Form/Checkbox.js.map +2 -2
  196. package/lib/renderers/Form/Combo.js +2 -2
  197. package/lib/renderers/Form/Combo.js.map +2 -2
  198. package/lib/renderers/Form/DiffEditor.d.ts +4 -5
  199. package/lib/renderers/Form/Editor.d.ts +3 -4
  200. package/lib/renderers/Form/Editor.js +1 -1
  201. package/lib/renderers/Form/Editor.js.map +2 -2
  202. package/lib/renderers/Form/InputCity.d.ts +84 -84
  203. package/lib/renderers/Form/InputCity.js +7 -6
  204. package/lib/renderers/Form/InputCity.js.map +2 -2
  205. package/lib/renderers/Form/InputColor.d.ts +84 -84
  206. package/lib/renderers/Form/InputExcel.d.ts +5 -0
  207. package/lib/renderers/Form/InputExcel.js +24 -3
  208. package/lib/renderers/Form/InputExcel.js.map +2 -2
  209. package/lib/renderers/Form/InputFile.js +12 -6
  210. package/lib/renderers/Form/InputFile.js.map +2 -2
  211. package/lib/renderers/Form/InputImage.d.ts +8 -0
  212. package/lib/renderers/Form/InputImage.js +18 -8
  213. package/lib/renderers/Form/InputImage.js.map +2 -2
  214. package/lib/renderers/Form/InputTable.d.ts +23 -5
  215. package/lib/renderers/Form/InputTable.js +32 -3
  216. package/lib/renderers/Form/InputTable.js.map +2 -2
  217. package/lib/renderers/Form/Item.d.ts +1 -1
  218. package/lib/renderers/Form/Item.js.map +1 -1
  219. package/lib/renderers/Form/Options.js +19 -6
  220. package/lib/renderers/Form/Options.js.map +2 -2
  221. package/lib/renderers/Form/Picker.js +2 -2
  222. package/lib/renderers/Form/Picker.js.map +2 -2
  223. package/lib/renderers/Form/Select.d.ts +41 -4
  224. package/lib/renderers/Form/Select.js +23 -3
  225. package/lib/renderers/Form/Select.js.map +2 -2
  226. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  227. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  228. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  229. package/lib/renderers/Form/Transfer.js +3 -2
  230. package/lib/renderers/Form/Transfer.js.map +2 -2
  231. package/lib/renderers/Form/TransferPicker.d.ts +48 -0
  232. package/lib/renderers/Form/TransferPicker.js +29 -0
  233. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  234. package/lib/renderers/Form/TreeSelect.js +2 -2
  235. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  236. package/lib/renderers/Form/index.js +1 -1
  237. package/lib/renderers/Form/index.js.map +2 -2
  238. package/lib/renderers/Form/wrapControl.js +15 -3
  239. package/lib/renderers/Form/wrapControl.js.map +2 -2
  240. package/lib/renderers/IFrame.js +3 -5
  241. package/lib/renderers/IFrame.js.map +2 -2
  242. package/lib/renderers/Image.d.ts +1 -0
  243. package/lib/renderers/Image.js +15 -1
  244. package/lib/renderers/Image.js.map +2 -2
  245. package/lib/renderers/Json.d.ts +4 -0
  246. package/lib/renderers/Json.js +7 -12
  247. package/lib/renderers/Json.js.map +2 -2
  248. package/lib/renderers/Link.d.ts +18 -3
  249. package/lib/renderers/Link.js +27 -15
  250. package/lib/renderers/Link.js.map +2 -2
  251. package/lib/renderers/List.js +1 -1
  252. package/lib/renderers/List.js.map +2 -2
  253. package/lib/renderers/Log.d.ts +2 -2
  254. package/lib/renderers/Log.js +7 -1
  255. package/lib/renderers/Log.js.map +2 -2
  256. package/lib/renderers/Mapping.d.ts +9 -2
  257. package/lib/renderers/Mapping.js +18 -6
  258. package/lib/renderers/Mapping.js.map +2 -2
  259. package/lib/renderers/Nav.d.ts +81 -25
  260. package/lib/renderers/Nav.js +292 -31
  261. package/lib/renderers/Nav.js.map +2 -2
  262. package/lib/renderers/Page.js +4 -1
  263. package/lib/renderers/Page.js.map +2 -2
  264. package/lib/renderers/Portlet.d.ts +125 -0
  265. package/lib/renderers/Portlet.js +156 -0
  266. package/lib/renderers/Portlet.js.map +13 -0
  267. package/lib/renderers/Property.js +2 -1
  268. package/lib/renderers/Property.js.map +2 -2
  269. package/lib/renderers/SearchBox.d.ts +6 -1
  270. package/lib/renderers/SearchBox.js +19 -5
  271. package/lib/renderers/SearchBox.js.map +2 -2
  272. package/lib/renderers/Service.d.ts +10 -1
  273. package/lib/renderers/Service.js +85 -3
  274. package/lib/renderers/Service.js.map +2 -2
  275. package/lib/renderers/SparkLine.d.ts +4 -0
  276. package/lib/renderers/SparkLine.js.map +2 -2
  277. package/lib/renderers/Steps.d.ts +4 -4
  278. package/lib/renderers/Steps.js +5 -2
  279. package/lib/renderers/Steps.js.map +2 -2
  280. package/lib/renderers/Table/ColumnToggler.d.ts +113 -0
  281. package/lib/renderers/Table/ColumnToggler.js +216 -0
  282. package/lib/renderers/Table/ColumnToggler.js.map +13 -0
  283. package/lib/renderers/Table/ItemActionsWrapper.d.ts +11 -0
  284. package/lib/renderers/Table/ItemActionsWrapper.js +31 -0
  285. package/lib/renderers/Table/ItemActionsWrapper.js.map +13 -0
  286. package/lib/renderers/Table/TableBody.d.ts +5 -1
  287. package/lib/renderers/Table/TableBody.js.map +1 -1
  288. package/lib/renderers/Table/TableCell.js +3 -1
  289. package/lib/renderers/Table/TableCell.js.map +2 -2
  290. package/lib/renderers/Table/TableContent.d.ts +5 -2
  291. package/lib/renderers/Table/TableContent.js +21 -1
  292. package/lib/renderers/Table/TableContent.js.map +2 -2
  293. package/lib/renderers/Table/index.d.ts +27 -5
  294. package/lib/renderers/Table/index.js +251 -101
  295. package/lib/renderers/Table/index.js.map +2 -2
  296. package/lib/renderers/Tabs.js +9 -1
  297. package/lib/renderers/Tabs.js.map +2 -2
  298. package/lib/renderers/WebComponent.js +1 -1
  299. package/lib/renderers/WebComponent.js.map +2 -2
  300. package/lib/store/app.d.ts +0 -1
  301. package/lib/store/combo.d.ts +2 -18
  302. package/lib/store/crud.d.ts +0 -1
  303. package/lib/store/crud.js +3 -7
  304. package/lib/store/crud.js.map +2 -2
  305. package/lib/store/form.d.ts +1 -2
  306. package/lib/store/form.js +5 -6
  307. package/lib/store/form.js.map +2 -2
  308. package/lib/store/modal.d.ts +1 -1
  309. package/lib/store/modal.js +4 -0
  310. package/lib/store/modal.js.map +2 -2
  311. package/lib/store/root.d.ts +0 -1
  312. package/lib/store/service.d.ts +0 -1
  313. package/lib/store/service.js +5 -17
  314. package/lib/store/service.js.map +2 -2
  315. package/lib/store/table.d.ts +260 -5
  316. package/lib/store/table.js +83 -7
  317. package/lib/store/table.js.map +2 -2
  318. package/lib/themes/ang-ie11.css +1360 -244
  319. package/lib/themes/ang.css +1360 -244
  320. package/lib/themes/ang.css.map +1 -1
  321. package/lib/themes/antd-ie11.css +1360 -244
  322. package/lib/themes/antd.css +1360 -244
  323. package/lib/themes/antd.css.map +1 -1
  324. package/lib/themes/cxd-ie11.css +1960 -517
  325. package/lib/themes/cxd.css +1960 -517
  326. package/lib/themes/cxd.css.map +1 -1
  327. package/lib/themes/dark-ie11.css +1360 -244
  328. package/lib/themes/dark.css +1360 -244
  329. package/lib/themes/dark.css.map +1 -1
  330. package/lib/themes/default.css +1960 -517
  331. package/lib/themes/default.css.map +1 -1
  332. package/lib/types.d.ts +37 -0
  333. package/lib/types.js +0 -5
  334. package/lib/types.js.map +2 -2
  335. package/lib/utils/api.d.ts +3 -2
  336. package/lib/utils/api.js +43 -15
  337. package/lib/utils/api.js.map +2 -2
  338. package/lib/utils/attachmentAdpator.d.ts +7 -0
  339. package/lib/utils/attachmentAdpator.js +82 -0
  340. package/lib/utils/attachmentAdpator.js.map +13 -0
  341. package/lib/utils/dom.d.ts +4 -0
  342. package/lib/utils/dom.js +11 -1
  343. package/lib/utils/dom.js.map +2 -2
  344. package/lib/utils/handleAction.d.ts +7 -0
  345. package/lib/utils/handleAction.js +30 -0
  346. package/lib/utils/handleAction.js.map +13 -0
  347. package/lib/utils/helper.d.ts +3 -1
  348. package/lib/utils/helper.js +14 -5
  349. package/lib/utils/helper.js.map +2 -2
  350. package/lib/utils/icon.js +3 -0
  351. package/lib/utils/icon.js.map +2 -2
  352. package/lib/utils/tpl-builtin.d.ts +1 -1
  353. package/lib/utils/tpl-builtin.js +25 -15
  354. package/lib/utils/tpl-builtin.js.map +2 -2
  355. package/lib/utils/validations.js +62 -5
  356. package/lib/utils/validations.js.map +2 -2
  357. package/package.json +1 -2
  358. package/schema.json +3638 -1030
  359. package/scss/_mixins.scss +27 -0
  360. package/scss/_properties.scss +88 -13
  361. package/scss/_utilities.scss +4 -0
  362. package/scss/base/_normalize.scss +2 -0
  363. package/scss/components/_anchor-nav.scss +88 -29
  364. package/scss/components/_badge.scss +67 -2
  365. package/scss/components/_button.scss +34 -3
  366. package/scss/components/_card.scss +8 -14
  367. package/scss/components/_collapse.scss +41 -8
  368. package/scss/components/_column-toggler.scss +234 -0
  369. package/scss/components/_dropdown.scss +2 -1
  370. package/scss/components/_image-gallery.scss +1 -1
  371. package/scss/components/_images.scss +2 -1
  372. package/scss/components/_link.scss +6 -0
  373. package/scss/components/_mapping.scss +6 -0
  374. package/scss/components/_markdown.scss +266 -0
  375. package/scss/components/_nav.scss +236 -154
  376. package/scss/components/_page.scss +5 -4
  377. package/scss/components/_picker-columns.scss +123 -0
  378. package/scss/components/_popover.scss +17 -0
  379. package/scss/components/_portlet.scss +51 -0
  380. package/scss/components/_progress.scss +2 -0
  381. package/scss/components/_spinner.scss +6 -2
  382. package/scss/components/_status.scss +1 -1
  383. package/scss/components/_steps.scss +1 -1
  384. package/scss/components/_table.scss +51 -1
  385. package/scss/components/form/_checks.scss +0 -351
  386. package/scss/components/form/_color.scss +1 -0
  387. package/scss/components/form/_date-range.scss +2 -0
  388. package/scss/components/form/_date.scss +2 -0
  389. package/scss/components/form/_fieldset.scss +6 -3
  390. package/scss/components/form/_file.scss +5 -4
  391. package/scss/components/form/_group.scss +4 -0
  392. package/scss/components/form/_image.scss +7 -2
  393. package/scss/components/form/_list.scss +1 -0
  394. package/scss/components/form/_location.scss +1 -1
  395. package/scss/components/form/_selection.scss +354 -0
  396. package/scss/components/form/_text.scss +13 -0
  397. package/scss/components/form/_textarea.scss +10 -0
  398. package/scss/components/form/_transfer.scss +77 -18
  399. package/scss/themes/_common.scss +7 -0
  400. package/scss/themes/_cxd-colors.scss +56 -0
  401. package/scss/themes/_cxd-variables.scss +219 -91
  402. package/scss/themes/cxd.scss +370 -0
  403. package/sdk/ang-ie11.css +1752 -431
  404. package/sdk/ang.css +1706 -323
  405. package/sdk/antd-ie11.css +1739 -420
  406. package/sdk/antd.css +1706 -323
  407. package/sdk/charts.js +13 -13
  408. package/sdk/color-picker.js +65 -69
  409. package/sdk/cropperjs.js +2 -2
  410. package/sdk/cxd-ie11.css +3015 -1397
  411. package/sdk/cxd.css +2402 -651
  412. package/sdk/dark-ie11.css +1750 -429
  413. package/sdk/dark.css +1706 -323
  414. package/sdk/exceljs.js +1 -1
  415. package/sdk/helper.css.map +1 -1
  416. package/sdk/ie11-patch.css +1 -0
  417. package/sdk/locale/de-DE.js +5 -0
  418. package/sdk/markdown.js +69 -69
  419. package/sdk/papaparse.js +1 -1
  420. package/sdk/renderers/Form/CityDB.js +1 -1
  421. package/sdk/rest.js +20 -30
  422. package/sdk/rich-text.js +62 -64
  423. package/sdk/sdk-ie11.css +3015 -1397
  424. package/sdk/sdk.css +2402 -651
  425. package/sdk/sdk.js +1278 -1220
  426. package/sdk/thirds/hls.js/hls.js +1 -1
  427. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  428. package/sdk/tinymce.js +57 -57
  429. package/src/Schema.ts +32 -0
  430. package/src/components/Alert.tsx +3 -1
  431. package/src/components/AnchorNav.tsx +15 -4
  432. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
  433. package/src/components/Badge.tsx +126 -23
  434. package/src/components/Button.tsx +23 -7
  435. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  436. package/src/components/Checkbox.tsx +5 -2
  437. package/src/components/Collapse.tsx +14 -9
  438. package/src/components/DatePicker.tsx +1 -1
  439. package/src/components/DateRangePicker.tsx +23 -11
  440. package/src/components/Drawer.tsx +3 -2
  441. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  442. package/src/components/InputBox.tsx +1 -1
  443. package/src/components/Link.tsx +85 -0
  444. package/src/components/Modal.tsx +3 -2
  445. package/src/components/ModalManager.ts +1 -1
  446. package/src/components/MonthRangePicker.tsx +10 -2
  447. package/src/components/PickerColumn.tsx +429 -0
  448. package/src/components/PickerContainer.tsx +128 -0
  449. package/src/components/Radios.tsx +3 -8
  450. package/src/components/RichText.tsx +244 -3
  451. package/src/components/SearchBox.tsx +4 -5
  452. package/src/components/Select.tsx +61 -5
  453. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  454. package/src/components/SparkLine.tsx +4 -1
  455. package/src/components/Steps.tsx +3 -3
  456. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  457. package/src/components/TabsTransfer.tsx +13 -7
  458. package/src/components/TabsTransferPicker.tsx +85 -0
  459. package/src/components/Toast.tsx +5 -5
  460. package/src/components/Transfer.tsx +71 -50
  461. package/src/components/TransferDropDown.tsx +117 -0
  462. package/src/components/TransferPicker.tsx +84 -0
  463. package/src/components/Tree.tsx +6 -8
  464. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  465. package/src/components/WithRemoteConfig.tsx +44 -4
  466. package/src/components/calendar/DaysView.tsx +2 -2
  467. package/src/components/condition-builder/Field.tsx +6 -7
  468. package/src/components/condition-builder/Func.tsx +3 -3
  469. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  470. package/src/components/condition-builder/Item.tsx +5 -12
  471. package/src/components/condition-builder/Value.tsx +3 -0
  472. package/src/components/condition-builder/types.ts +6 -0
  473. package/src/components/icons.tsx +15 -0
  474. package/src/components/index.tsx +13 -13
  475. package/src/envOverwrite.ts +0 -1
  476. package/src/factory.tsx +31 -6
  477. package/src/hooks/index.ts +5 -0
  478. package/src/hooks/use-set-state.ts +19 -0
  479. package/src/hooks/use-touch.ts +100 -0
  480. package/src/hooks/use-update-effect.ts +16 -0
  481. package/src/icons/clock.svg +1 -0
  482. package/src/icons/loading-outline.svg +4 -0
  483. package/src/icons/status-close.svg +10 -0
  484. package/src/icons/status-fail.svg +10 -0
  485. package/src/icons/status-info.svg +8 -0
  486. package/src/icons/status-success.svg +10 -0
  487. package/src/icons/status-warning.svg +8 -0
  488. package/src/index.tsx +3 -0
  489. package/src/locale/de-DE.ts +5 -0
  490. package/src/locale/en-US.ts +6 -1
  491. package/src/locale/zh-CN.ts +9 -4
  492. package/src/renderers/Action.tsx +99 -15
  493. package/src/renderers/AnchorNav.tsx +4 -0
  494. package/src/renderers/Avatar.tsx +8 -4
  495. package/src/renderers/Breadcrumb.tsx +5 -1
  496. package/src/renderers/CRUD.tsx +70 -56
  497. package/src/renderers/Card.tsx +63 -34
  498. package/src/renderers/Chart.tsx +6 -2
  499. package/src/renderers/Collapse.tsx +9 -3
  500. package/src/renderers/Dialog.tsx +1 -5
  501. package/src/renderers/Drawer.tsx +0 -4
  502. package/src/renderers/DropDownButton.tsx +34 -12
  503. package/src/renderers/Form/Checkbox.tsx +8 -0
  504. package/src/renderers/Form/Combo.tsx +2 -3
  505. package/src/renderers/Form/Editor.tsx +19 -20
  506. package/src/renderers/Form/InputCity.tsx +4 -8
  507. package/src/renderers/Form/InputExcel.tsx +28 -3
  508. package/src/renderers/Form/InputFile.tsx +30 -20
  509. package/src/renderers/Form/InputImage.tsx +39 -13
  510. package/src/renderers/Form/InputTable.tsx +88 -9
  511. package/src/renderers/Form/Item.tsx +1 -1
  512. package/src/renderers/Form/Options.tsx +32 -7
  513. package/src/renderers/Form/Picker.tsx +3 -2
  514. package/src/renderers/Form/Select.tsx +144 -21
  515. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  516. package/src/renderers/Form/Transfer.tsx +3 -2
  517. package/src/renderers/Form/TransferPicker.tsx +123 -0
  518. package/src/renderers/Form/TreeSelect.tsx +25 -0
  519. package/src/renderers/Form/index.tsx +1 -1
  520. package/src/renderers/Form/wrapControl.tsx +28 -3
  521. package/src/renderers/IFrame.tsx +4 -5
  522. package/src/renderers/Image.tsx +10 -0
  523. package/src/renderers/Json.tsx +19 -10
  524. package/src/renderers/Link.tsx +53 -14
  525. package/src/renderers/List.tsx +1 -1
  526. package/src/renderers/Log.tsx +16 -3
  527. package/src/renderers/Mapping.tsx +27 -11
  528. package/src/renderers/Nav.tsx +392 -60
  529. package/src/renderers/Page.tsx +3 -1
  530. package/src/renderers/Portlet.tsx +423 -0
  531. package/src/renderers/Property.tsx +3 -2
  532. package/src/renderers/SearchBox.tsx +23 -4
  533. package/src/renderers/Service.tsx +101 -3
  534. package/src/renderers/SparkLine.tsx +5 -0
  535. package/src/renderers/Steps.tsx +12 -9
  536. package/src/renderers/Table/ColumnToggler.tsx +544 -0
  537. package/src/renderers/Table/ItemActionsWrapper.tsx +44 -0
  538. package/src/renderers/Table/TableBody.tsx +1 -1
  539. package/src/renderers/Table/TableCell.tsx +16 -1
  540. package/src/renderers/Table/TableContent.tsx +41 -3
  541. package/src/renderers/Table/index.tsx +318 -92
  542. package/src/renderers/Tabs.tsx +9 -1
  543. package/src/renderers/WebComponent.tsx +2 -2
  544. package/src/store/crud.ts +3 -8
  545. package/src/store/form.ts +5 -10
  546. package/src/store/modal.ts +4 -0
  547. package/src/store/service.ts +5 -23
  548. package/src/store/table.ts +103 -4
  549. package/src/types.ts +57 -0
  550. package/src/utils/api.ts +63 -23
  551. package/src/utils/attachmentAdpator.ts +90 -0
  552. package/src/utils/dom.tsx +12 -0
  553. package/src/utils/handleAction.ts +41 -0
  554. package/src/utils/helper.ts +12 -3
  555. package/src/utils/icon.tsx +4 -0
  556. package/src/utils/tpl-builtin.ts +48 -17
  557. package/src/utils/validations.ts +80 -12
  558. package/dump.rdb +0 -0
  559. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  560. package/lib/components/AssociatedCheckboxes.js +0 -90
  561. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  562. package/lib/components/ChainedCheckboxes.js.map +0 -13
  563. package/lib/components/Checkboxes.js +0 -101
  564. package/lib/components/Checkboxes.js.map +0 -13
  565. package/lib/components/ListCheckboxes.d.ts +0 -739
  566. package/lib/components/ListCheckboxes.js +0 -48
  567. package/lib/components/ListCheckboxes.js.map +0 -13
  568. package/lib/components/ListRadios.d.ts +0 -763
  569. package/lib/components/ListRadios.js +0 -86
  570. package/lib/components/ListRadios.js.map +0 -13
  571. package/lib/components/TableCheckboxes.js.map +0 -13
  572. package/lib/components/TreeCheckboxes.js.map +0 -13
  573. package/lib/components/TreeRadios.d.ts +0 -838
  574. package/lib/components/TreeRadios.js +0 -116
  575. package/lib/components/TreeRadios.js.map +0 -13
  576. package/src/components/ListRadios.tsx +0 -159
  577. package/src/components/TreeRadios.tsx +0 -202
@@ -8,9 +8,16 @@ var SearchBox_1 = (0, tslib_1.__importDefault)(require("../components/SearchBox"
8
8
  var helper_1 = require("../utils/helper");
9
9
  var SearchBoxRenderer = /** @class */ (function (_super) {
10
10
  (0, tslib_1.__extends)(SearchBoxRenderer, _super);
11
- function SearchBoxRenderer() {
12
- return _super !== null && _super.apply(this, arguments) || this;
11
+ function SearchBoxRenderer(props) {
12
+ var _this = _super.call(this, props) || this;
13
+ _this.state = {
14
+ value: (0, helper_1.getPropValue)(props) || ''
15
+ };
16
+ return _this;
13
17
  }
18
+ SearchBoxRenderer.prototype.handleChange = function (value) {
19
+ this.setState({ value: value });
20
+ };
14
21
  SearchBoxRenderer.prototype.handleCancel = function () {
15
22
  var name = this.props.name;
16
23
  var onQuery = this.props.onQuery;
@@ -29,8 +36,8 @@ var SearchBoxRenderer = /** @class */ (function (_super) {
29
36
  };
30
37
  SearchBoxRenderer.prototype.render = function () {
31
38
  var _a = this.props, data = _a.data, name = _a.name, onQuery = _a.onQuery, mini = _a.mini, searchImediately = _a.searchImediately, placeholder = _a.placeholder, onChange = _a.onChange, className = _a.className;
32
- var value = (0, helper_1.getPropValue)(this.props);
33
- return (react_1.default.createElement(SearchBox_1.default, { className: className, name: name, disabled: !onQuery, defaultActive: !!value, defaultValue: onChange ? undefined : value, value: onChange ? value : undefined, mini: mini, searchImediately: searchImediately, onSearch: this.handleSearch, onCancel: this.handleCancel, placeholder: placeholder, onChange: onChange }));
39
+ var value = this.state.value;
40
+ return (react_1.default.createElement(SearchBox_1.default, { className: className, name: name, disabled: !onQuery, defaultActive: !!value, defaultValue: onChange ? undefined : value, value: value, mini: mini, searchImediately: searchImediately, onSearch: this.handleSearch, onCancel: this.handleCancel, placeholder: placeholder, onChange: this.handleChange }));
34
41
  };
35
42
  SearchBoxRenderer.defaultProps = {
36
43
  name: 'keywords',
@@ -38,6 +45,12 @@ var SearchBoxRenderer = /** @class */ (function (_super) {
38
45
  searchImediately: false
39
46
  };
40
47
  SearchBoxRenderer.propsList = ['mini', 'searchImediately'];
48
+ (0, tslib_1.__decorate)([
49
+ helper_1.autobind,
50
+ (0, tslib_1.__metadata)("design:type", Function),
51
+ (0, tslib_1.__metadata)("design:paramtypes", [String]),
52
+ (0, tslib_1.__metadata)("design:returntype", void 0)
53
+ ], SearchBoxRenderer.prototype, "handleChange", null);
41
54
  (0, tslib_1.__decorate)([
42
55
  helper_1.autobind,
43
56
  (0, tslib_1.__metadata)("design:type", Function),
@@ -53,7 +66,8 @@ var SearchBoxRenderer = /** @class */ (function (_super) {
53
66
  SearchBoxRenderer = (0, tslib_1.__decorate)([
54
67
  (0, factory_1.Renderer)({
55
68
  type: 'search-box'
56
- })
69
+ }),
70
+ (0, tslib_1.__metadata)("design:paramtypes", [Object])
57
71
  ], SearchBoxRenderer);
58
72
  return SearchBoxRenderer;
59
73
  }(react_1.default.Component));
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/SearchBox.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";;;;AACA,sCAAmD;AACnD,6DAA0B;AAE1B,mFAAgD;AAChD,0CAKyB;AAmDzB;IAAuC,kDAA+B;IAAtE;;IA4DA,CAAC;IAlDC,wCAAY,GAAZ;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,IAAM,KAAK,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,EAAE,EAAE;YAChB,IAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,CAAC;SACjB;IACH,CAAC;IAGD,wCAAY,GAAZ,UAAa,IAAY;QACjB,IAAA,KAA2B,IAAI,CAAC,KAAK,EAApC,IAAI,UAAA,EAAW,OAAO,aAAc,CAAC;QAC5C,IAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,kCAAM,GAAN;QACQ,IAAA,KASF,IAAI,CAAC,KAAK,EARZ,IAAI,UAAA,EACJ,IAAI,UAAA,EACK,OAAO,aAAA,EAChB,IAAI,UAAA,EACJ,gBAAgB,sBAAA,EAChB,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,SAAS,eACG,CAAC;QAEf,IAAM,KAAK,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEvC,OAAO,CACL,8BAAC,mBAAS,IACR,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,OAAO,EAClB,aAAa,EAAE,CAAC,CAAC,KAAK,EACtB,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAC1C,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,EACnC,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC;IACJ,CAAC;IA1DM,8BAAY,GAAG;QACpB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,KAAK;QACX,gBAAgB,EAAE,KAAK;KACxB,CAAC;IAEK,2BAAS,GAAkB,CAAC,MAAM,EAAE,kBAAkB,CAAE,CAAA;IAG/D;QADC,iBAAQ;;;;yDAUR;IAGD;QADC,iBAAQ;;;;yDAMR;IA3BU,iBAAiB;QAH7B,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,YAAY;SACnB,CAAC;OACW,iBAAiB,CA4D7B;IAAD,wBAAC;CAAA,AA5DD,CAAuC,eAAK,CAAC,SAAS,GA4DrD;AA5DY,8CAAiB",
9
+ "mappings": ";;;;AACA,sCAAmD;AACnD,6DAA0B;AAE1B,mFAAgD;AAChD,0CAKyB;AAuDzB;IAAuC,kDAGtC;IASC,2BAAY,KAAqB;QAAjC,YACE,kBAAM,KAAK,CAAC,SAIb;QAHC,KAAI,CAAC,KAAK,GAAG;YACX,KAAK,EAAE,IAAA,qBAAY,EAAC,KAAK,CAAC,IAAI,EAAE;SACjC,CAAC;;IACJ,CAAC;IAGD,wCAAY,GAAZ,UAAa,KAAa;QACxB,IAAI,CAAC,QAAQ,CAAC,EAAC,KAAK,OAAA,EAAC,CAAC,CAAC;IACzB,CAAC;IAGD,wCAAY,GAAZ;QACE,IAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;QAC7B,IAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;QACnC,IAAM,KAAK,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvC,IAAI,KAAK,KAAK,EAAE,EAAE;YAChB,IAAM,IAAI,GAAQ,EAAE,CAAC;YACrB,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YAC5B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,CAAC;SACjB;IACH,CAAC;IAGD,wCAAY,GAAZ,UAAa,IAAY;QACjB,IAAA,KAA2B,IAAI,CAAC,KAAK,EAApC,IAAI,UAAA,EAAW,OAAO,aAAc,CAAC;QAC5C,IAAM,IAAI,GAAQ,EAAE,CAAC;QACrB,IAAA,oBAAW,EAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;QAC9B,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAG,IAAI,CAAC,CAAC;IAClB,CAAC;IAED,kCAAM,GAAN;QACQ,IAAA,KASF,IAAI,CAAC,KAAK,EARZ,IAAI,UAAA,EACJ,IAAI,UAAA,EACK,OAAO,aAAA,EAChB,IAAI,UAAA,EACJ,gBAAgB,sBAAA,EAChB,WAAW,iBAAA,EACX,QAAQ,cAAA,EACR,SAAS,eACG,CAAC;QAEf,IAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QAE/B,OAAO,CACL,8BAAC,mBAAS,IACR,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,CAAC,OAAO,EAClB,aAAa,EAAE,CAAC,CAAC,KAAK,EACtB,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,EAC1C,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,IAAI,EACV,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,QAAQ,EAAE,IAAI,CAAC,YAAY,EAC3B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,IAAI,CAAC,YAAY,GAC3B,CACH,CAAC;IACJ,CAAC;IAtEM,8BAAY,GAAG;QACpB,IAAI,EAAE,UAAU;QAChB,IAAI,EAAE,KAAK;QACX,gBAAgB,EAAE,KAAK;KACxB,CAAC;IAEK,2BAAS,GAAkB,CAAC,MAAM,EAAE,kBAAkB,CAAE,CAAA;IAU/D;QADC,iBAAQ;;;;yDAGR;IAGD;QADC,iBAAQ;;;;yDAUR;IAGD;QADC,iBAAQ;;;;yDAMR;IA1CU,iBAAiB;QAH7B,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,YAAY;SACnB,CAAC;;OACW,iBAAiB,CA2E7B;IAAD,wBAAC;CAAA,AA3ED,CAAuC,eAAK,CAAC,SAAS,GA2ErD;AA3EY,8CAAiB",
10
10
  "sourcesContent": [
11
- "import Spinner from '../components/Spinner';\nimport {Renderer, RendererProps} from '../factory';\nimport React from 'react';\nimport {BaseSchema, SchemaClassName} from '../Schema';\nimport SearchBox from '../components/SearchBox';\nimport {\n autobind,\n getPropValue,\n getVariable,\n setVariable\n} from '../utils/helper';\n\n/**\n * 搜索框渲染器\n */\nexport interface SearchBoxSchema extends BaseSchema {\n /**\n * 指定为搜索框。\n *\n * 文档:https://baidu.gitee.io/amis/docs/components/search-box\n */\n type: 'search-box';\n\n /**\n * 外层 css 类名\n */\n className?: SchemaClassName;\n\n /**\n * 关键字名字。\n *\n * @default keywords\n */\n name?: string;\n\n /**\n * 占位符\n */\n placeholder?: string;\n\n /**\n * 是否为 Mini 样式。\n */\n mini?: boolean;\n\n /**\n * 是否立马搜索。\n */\n searchImediately?: boolean;\n}\n\ninterface SearchBoxProps\n extends RendererProps,\n Omit<SearchBoxSchema, 'type' | 'className'> {\n name: string;\n onQuery?: (query: {[propName: string]: string}) => void;\n}\n\n@Renderer({\n type: 'search-box'\n})\nexport class SearchBoxRenderer extends React.Component<SearchBoxProps> {\n static defaultProps = {\n name: 'keywords',\n mini: false,\n searchImediately: false\n };\n\n static propsList: Array<string> = ['mini', 'searchImediately'];\n\n @autobind\n handleCancel() {\n const name = this.props.name;\n const onQuery = this.props.onQuery;\n const value = getPropValue(this.props);\n if (value !== '') {\n const data: any = {};\n setVariable(data, name, '');\n onQuery?.(data);\n }\n }\n\n @autobind\n handleSearch(text: string) {\n const {name, onQuery: onQuery} = this.props;\n const data: any = {};\n setVariable(data, name, text);\n onQuery?.(data);\n }\n\n render() {\n const {\n data,\n name,\n onQuery: onQuery,\n mini,\n searchImediately,\n placeholder,\n onChange,\n className\n } = this.props;\n\n const value = getPropValue(this.props);\n\n return (\n <SearchBox\n className={className}\n name={name}\n disabled={!onQuery}\n defaultActive={!!value}\n defaultValue={onChange ? undefined : value}\n value={onChange ? value : undefined}\n mini={mini}\n searchImediately={searchImediately}\n onSearch={this.handleSearch}\n onCancel={this.handleCancel}\n placeholder={placeholder}\n onChange={onChange}\n />\n );\n }\n}\n"
11
+ "import Spinner from '../components/Spinner';\nimport {Renderer, RendererProps} from '../factory';\nimport React from 'react';\nimport {BaseSchema, SchemaClassName} from '../Schema';\nimport SearchBox from '../components/SearchBox';\nimport {\n autobind,\n getPropValue,\n getVariable,\n setVariable\n} from '../utils/helper';\n\n/**\n * 搜索框渲染器\n */\nexport interface SearchBoxSchema extends BaseSchema {\n /**\n * 指定为搜索框。\n *\n * 文档:https://baidu.gitee.io/amis/docs/components/search-box\n */\n type: 'search-box';\n\n /**\n * 外层 css 类名\n */\n className?: SchemaClassName;\n\n /**\n * 关键字名字。\n *\n * @default keywords\n */\n name?: string;\n\n /**\n * 占位符\n */\n placeholder?: string;\n\n /**\n * 是否为 Mini 样式。\n */\n mini?: boolean;\n\n /**\n * 是否立马搜索。\n */\n searchImediately?: boolean;\n}\n\ninterface SearchBoxProps\n extends RendererProps,\n Omit<SearchBoxSchema, 'type' | 'className'> {\n name: string;\n onQuery?: (query: {[propName: string]: string}) => void;\n}\n\nexport interface SearchBoxState {\n value: string;\n}\n\n@Renderer({\n type: 'search-box'\n})\nexport class SearchBoxRenderer extends React.Component<\n SearchBoxProps,\n SearchBoxState\n> {\n static defaultProps = {\n name: 'keywords',\n mini: false,\n searchImediately: false\n };\n\n static propsList: Array<string> = ['mini', 'searchImediately'];\n\n constructor(props: SearchBoxProps) {\n super(props);\n this.state = {\n value: getPropValue(props) || ''\n };\n }\n\n @autobind\n handleChange(value: string) {\n this.setState({value});\n }\n\n @autobind\n handleCancel() {\n const name = this.props.name;\n const onQuery = this.props.onQuery;\n const value = getPropValue(this.props);\n if (value !== '') {\n const data: any = {};\n setVariable(data, name, '');\n onQuery?.(data);\n }\n }\n\n @autobind\n handleSearch(text: string) {\n const {name, onQuery: onQuery} = this.props;\n const data: any = {};\n setVariable(data, name, text);\n onQuery?.(data);\n }\n\n render() {\n const {\n data,\n name,\n onQuery: onQuery,\n mini,\n searchImediately,\n placeholder,\n onChange,\n className\n } = this.props;\n\n const value = this.state.value;\n\n return (\n <SearchBox\n className={className}\n name={name}\n disabled={!onQuery}\n defaultActive={!!value}\n defaultValue={onChange ? undefined : value}\n value={value}\n mini={mini}\n searchImediately={searchImediately}\n onSearch={this.handleSearch}\n onCancel={this.handleCancel}\n placeholder={placeholder}\n onChange={this.handleChange}\n />\n );\n }\n}\n"
12
12
  ]
13
13
  }
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import { RendererProps } from '../factory';
3
3
  import { IServiceStore } from '../store/service';
4
- import { RendererData, Action } from '../types';
4
+ import { Api, RendererData, Action } from '../types';
5
5
  import { IScopedContext } from '../Scoped';
6
6
  import { BaseSchema, SchemaApi, SchemaCollection, SchemaExpression, SchemaMessage, SchemaName } from '../Schema';
7
7
  /**
@@ -21,6 +21,10 @@ export interface ServiceSchema extends BaseSchema {
21
21
  * WebScocket 地址,用于实时获取数据
22
22
  */
23
23
  ws?: string;
24
+ /**
25
+ * 通过调用外部函数来获取数据
26
+ */
27
+ dataProvider?: string | Function;
24
28
  /**
25
29
  * 内容区域
26
30
  */
@@ -75,6 +79,7 @@ export default class Service extends React.Component<ServiceProps> {
75
79
  timer: ReturnType<typeof setTimeout>;
76
80
  mounted: boolean;
77
81
  socket: any;
82
+ dataProviderUnsubscribe?: Function;
78
83
  static defaultProps: Partial<ServiceProps>;
79
84
  static propsList: Array<string>;
80
85
  constructor(props: ServiceProps);
@@ -82,6 +87,10 @@ export default class Service extends React.Component<ServiceProps> {
82
87
  componentDidUpdate(prevProps: ServiceProps): void;
83
88
  componentWillUnmount(): void;
84
89
  initFetch(): void;
90
+ runDataProvider(): Promise<void>;
91
+ runDataProviderUnsubscribe(): void;
92
+ dataProviderSetData(data: any): void;
93
+ fetchWSData(ws: string | Api, data: any): void;
85
94
  afterDataFetch(result: any): void;
86
95
  afterSchemaFetch(schema: any): void;
87
96
  initInterval(value: any): any;
@@ -22,6 +22,8 @@ var Service = /** @class */ (function (_super) {
22
22
  _this.initInterval = _this.initInterval.bind(_this);
23
23
  _this.afterDataFetch = _this.afterDataFetch.bind(_this);
24
24
  _this.afterSchemaFetch = _this.afterSchemaFetch.bind(_this);
25
+ _this.runDataProvider = _this.runDataProvider.bind(_this);
26
+ _this.dataProviderSetData = _this.dataProviderSetData.bind(_this);
25
27
  return _this;
26
28
  }
27
29
  Service.prototype.componentDidMount = function () {
@@ -50,18 +52,25 @@ var Service = /** @class */ (function (_super) {
50
52
  if (this.socket) {
51
53
  this.socket.close();
52
54
  }
53
- this.socket = store.fetchWSData(props.ws, this.afterDataFetch);
55
+ this.socket = this.fetchWSData(props.ws, store.data);
56
+ }
57
+ if (props.defaultData !== prevProps.defaultData) {
58
+ store.reInitData(props.defaultData);
59
+ }
60
+ if (props.dataProvider !== prevProps.dataProvider) {
61
+ this.runDataProvider();
54
62
  }
55
63
  };
56
64
  Service.prototype.componentWillUnmount = function () {
57
65
  this.mounted = false;
66
+ this.runDataProviderUnsubscribe();
58
67
  clearTimeout(this.timer);
59
68
  if (this.socket && this.socket.close) {
60
69
  this.socket.close();
61
70
  }
62
71
  };
63
72
  Service.prototype.initFetch = function () {
64
- var _a = this.props, schemaApi = _a.schemaApi, initFetchSchema = _a.initFetchSchema, api = _a.api, ws = _a.ws, initFetch = _a.initFetch, initFetchOn = _a.initFetchOn, store = _a.store, _b = _a.messages, fetchSuccess = _b.fetchSuccess, fetchFailed = _b.fetchFailed;
73
+ var _a = this.props, schemaApi = _a.schemaApi, initFetchSchema = _a.initFetchSchema, api = _a.api, ws = _a.ws, initFetch = _a.initFetch, initFetchOn = _a.initFetchOn, dataProvider = _a.dataProvider, store = _a.store, _b = _a.messages, fetchSuccess = _b.fetchSuccess, fetchFailed = _b.fetchFailed;
65
74
  if ((0, api_1.isEffectiveApi)(schemaApi, store.data, initFetchSchema)) {
66
75
  store
67
76
  .fetchSchema(schemaApi, store.data, {
@@ -79,9 +88,82 @@ var Service = /** @class */ (function (_super) {
79
88
  .then(this.afterDataFetch);
80
89
  }
81
90
  if (ws) {
82
- this.socket = store.fetchWSData(ws, this.afterDataFetch);
91
+ this.socket = this.fetchWSData(ws, store.data);
92
+ }
93
+ if (dataProvider) {
94
+ this.runDataProvider();
95
+ }
96
+ };
97
+ // 使用外部函数获取数据
98
+ Service.prototype.runDataProvider = function () {
99
+ return (0, tslib_1.__awaiter)(this, void 0, void 0, function () {
100
+ var _a, dataProvider, store, dataProviderFunc, unsubscribe;
101
+ return (0, tslib_1.__generator)(this, function (_b) {
102
+ switch (_b.label) {
103
+ case 0:
104
+ this.runDataProviderUnsubscribe();
105
+ _a = this.props, dataProvider = _a.dataProvider, store = _a.store;
106
+ dataProviderFunc = dataProvider;
107
+ if (typeof dataProvider === 'string' && dataProvider) {
108
+ dataProviderFunc = (0, api_1.str2AsyncFunction)(dataProvider, 'data', 'setData');
109
+ }
110
+ if (!(typeof dataProviderFunc === 'function')) return [3 /*break*/, 2];
111
+ return [4 /*yield*/, dataProviderFunc(store.data, this.dataProviderSetData)];
112
+ case 1:
113
+ unsubscribe = _b.sent();
114
+ if (typeof unsubscribe === 'function') {
115
+ this.dataProviderUnsubscribe = unsubscribe;
116
+ }
117
+ _b.label = 2;
118
+ case 2: return [2 /*return*/];
119
+ }
120
+ });
121
+ });
122
+ };
123
+ // 运行销毁外部函数的方法
124
+ Service.prototype.runDataProviderUnsubscribe = function () {
125
+ if (typeof this.dataProviderUnsubscribe === 'function') {
126
+ try {
127
+ this.dataProviderUnsubscribe();
128
+ }
129
+ catch (error) {
130
+ console.error(error);
131
+ }
83
132
  }
84
133
  };
134
+ // 外部函数回调更新数据
135
+ Service.prototype.dataProviderSetData = function (data) {
136
+ if (!this.mounted) {
137
+ return;
138
+ }
139
+ var store = this.props.store;
140
+ store.updateData(data, undefined, false);
141
+ store.setHasRemoteData();
142
+ };
143
+ // 使用 websocket 获取使用,因为有异步所以放这里而不是 store 实现
144
+ Service.prototype.fetchWSData = function (ws, data) {
145
+ var _this = this;
146
+ var _a = this.props, env = _a.env, store = _a.store;
147
+ var wsApi = (0, api_1.buildApi)(ws, data);
148
+ env.wsFetcher(wsApi, function (data) {
149
+ var returndata = data;
150
+ if ('status' in data && 'data' in data) {
151
+ returndata = data.data;
152
+ if (data.status !== 0) {
153
+ store.updateMessage(data.msg, true);
154
+ env.notify('error', data.msg);
155
+ return;
156
+ }
157
+ }
158
+ store.updateData(returndata, undefined, false);
159
+ store.setHasRemoteData();
160
+ // 因为 WebSocket 只会获取纯数据,所以没有 msg 之类的
161
+ _this.afterDataFetch({ ok: true, data: returndata });
162
+ }, function (error) {
163
+ store.updateMessage(error, true);
164
+ env.notify('error', error);
165
+ });
166
+ };
85
167
  Service.prototype.afterDataFetch = function (result) {
86
168
  // todo 应该统一这块
87
169
  // 初始化接口返回的是整个 response,
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Service.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": "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",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Renderer, RendererProps} from '../factory';\nimport {ServiceStore, IServiceStore} from '../store/service';\nimport {Api, SchemaNode, ApiObject, RendererData, Action} from '../types';\nimport {filter, evalExpression} from '../utils/tpl';\nimport cx from 'classnames';\nimport Scoped, {ScopedContext, IScopedContext} from '../Scoped';\nimport {observer} from 'mobx-react';\nimport {isApiOutdated, isEffectiveApi} from '../utils/api';\nimport {Spinner} from '../components';\nimport {autobind, isEmpty, isVisible, qsstringify} from '../utils/helper';\nimport {\n BaseSchema,\n SchemaApi,\n SchemaCollection,\n SchemaExpression,\n SchemaMessage,\n SchemaName\n} from '../Schema';\nimport {IIRendererStore} from '../store';\n\n/**\n * Service 服务类控件。\n * 文档:https://baidu.gitee.io/amis/docs/components/service\n */\nexport interface ServiceSchema extends BaseSchema {\n /**\n * 指定为 Service 数据拉取控件。\n */\n type: 'service';\n\n /**\n * 页面初始化的时候,可以设置一个 API 让其取拉取,发送数据会携带当前 data 数据(包含地址栏参数),获取得数据会合并到 data 中,供组件内使用。\n */\n api?: SchemaApi;\n\n /**\n * WebScocket 地址,用于实时获取数据\n */\n ws?: string;\n\n /**\n * 内容区域\n */\n body?: SchemaCollection;\n\n /**\n * @deprecated 改成 api 的 sendOn。\n */\n fetchOn?: SchemaExpression;\n\n /**\n * 是否默认就拉取?\n */\n initFetch?: boolean;\n\n /**\n * 是否默认就拉取?通过表达式来决定.\n *\n * @deprecated 改成 api 的 sendOn。\n */\n initFetchOn?: SchemaExpression;\n\n /**\n * 用来获取远程 Schema 的 api\n */\n schemaApi?: SchemaApi;\n\n /**\n * 是否默认加载 schemaApi\n */\n initFetchSchema?: boolean;\n\n /**\n * 用表达式来配置。\n * @deprecated 改成 api 的 sendOn。\n */\n initFetchSchemaOn?: SchemaExpression;\n\n /**\n * 是否轮询拉取\n */\n interval?: number;\n\n /**\n * 是否静默拉取\n */\n silentPolling?: boolean;\n\n /**\n * 关闭轮询的条件。\n */\n stopAutoRefreshWhen?: SchemaExpression;\n\n messages?: SchemaMessage;\n\n name?: SchemaName;\n}\n\nexport interface ServiceProps\n extends RendererProps,\n Omit<ServiceSchema, 'type' | 'className'> {\n store: IServiceStore;\n messages: SchemaMessage;\n}\nexport default class Service extends React.Component<ServiceProps> {\n timer: ReturnType<typeof setTimeout>;\n mounted: boolean;\n\n // 主要是用于关闭 socket\n socket: any;\n\n static defaultProps: Partial<ServiceProps> = {\n messages: {\n fetchFailed: 'fetchFailed'\n }\n };\n\n static propsList: Array<string> = [];\n\n constructor(props: ServiceProps) {\n super(props);\n\n this.handleQuery = this.handleQuery.bind(this);\n this.handleAction = this.handleAction.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.reload = this.reload.bind(this);\n this.silentReload = this.silentReload.bind(this);\n this.initInterval = this.initInterval.bind(this);\n this.afterDataFetch = this.afterDataFetch.bind(this);\n this.afterSchemaFetch = this.afterSchemaFetch.bind(this);\n }\n\n componentDidMount() {\n this.mounted = true;\n this.initFetch();\n }\n\n componentDidUpdate(prevProps: ServiceProps) {\n const props = this.props;\n const store = props.store;\n\n const {fetchSuccess, fetchFailed} = props.messages!;\n\n isApiOutdated(prevProps.api, props.api, prevProps.data, props.data) &&\n store\n .fetchData(props.api as Api, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n })\n .then(this.afterDataFetch);\n\n isApiOutdated(\n prevProps.schemaApi,\n props.schemaApi,\n prevProps.data,\n props.data\n ) &&\n store\n .fetchSchema(props.schemaApi as Api, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n })\n .then(this.afterSchemaFetch);\n\n if (props.ws && prevProps.ws !== props.ws) {\n if (this.socket) {\n this.socket.close();\n }\n this.socket = store.fetchWSData(props.ws, this.afterDataFetch);\n }\n }\n\n componentWillUnmount() {\n this.mounted = false;\n clearTimeout(this.timer);\n if (this.socket && this.socket.close) {\n this.socket.close();\n }\n }\n\n @autobind\n initFetch() {\n const {\n schemaApi,\n initFetchSchema,\n api,\n ws,\n initFetch,\n initFetchOn,\n store,\n messages: {fetchSuccess, fetchFailed}\n } = this.props;\n\n if (isEffectiveApi(schemaApi, store.data, initFetchSchema)) {\n store\n .fetchSchema(schemaApi, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n })\n .then(this.afterSchemaFetch);\n }\n\n if (isEffectiveApi(api, store.data, initFetch, initFetchOn)) {\n store\n .fetchInitData(api, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n })\n .then(this.afterDataFetch);\n }\n\n if (ws) {\n this.socket = store.fetchWSData(ws, this.afterDataFetch);\n }\n }\n\n afterDataFetch(result: any) {\n // todo 应该统一这块\n // 初始化接口返回的是整个 response,\n // 保存 ajax 请求的时候返回时数据部分。\n const data = result?.hasOwnProperty('ok') ? result.data : result;\n const {onBulkChange, formStore} = this.props;\n if (formStore && !isEmpty(data) && onBulkChange) {\n onBulkChange(data);\n }\n\n this.initInterval(data);\n }\n\n afterSchemaFetch(schema: any) {\n const {onBulkChange, formStore} = this.props;\n if (formStore && schema?.data && onBulkChange) {\n onBulkChange && onBulkChange(schema.data);\n }\n\n this.initInterval(schema);\n }\n\n initInterval(value: any) {\n const {interval, silentPolling, stopAutoRefreshWhen, data} = this.props;\n\n clearTimeout(this.timer);\n\n interval &&\n this.mounted &&\n (!stopAutoRefreshWhen || !evalExpression(stopAutoRefreshWhen, data)) &&\n (this.timer = setTimeout(\n silentPolling ? this.silentReload : this.reload,\n Math.max(interval, 1000)\n ));\n return value;\n }\n\n reload(subpath?: string, query?: any, ctx?: RendererData, silent?: boolean) {\n if (query) {\n return this.receive(query);\n }\n\n const {\n schemaApi,\n initFetchSchema,\n api,\n initFetch,\n initFetchOn,\n store,\n messages: {fetchSuccess, fetchFailed}\n } = this.props;\n\n clearTimeout(this.timer);\n\n if (isEffectiveApi(schemaApi, store.data)) {\n store\n .fetchSchema(schemaApi, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n })\n .then(this.afterSchemaFetch);\n }\n\n if (isEffectiveApi(api, store.data)) {\n store\n .fetchData(api, store.data, {\n silent,\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n })\n .then(this.afterDataFetch);\n }\n }\n\n silentReload(target?: string, query?: any) {\n this.reload(target, query, undefined, true);\n }\n\n receive(values: object) {\n const {store} = this.props;\n\n store.updateData(values);\n this.reload();\n }\n\n handleQuery(query: any) {\n if (this.props.api || this.props.schemaApi) {\n this.receive(query);\n } else {\n this.props.onQuery?.(query);\n }\n }\n\n reloadTarget(target: string, data?: any) {\n // 会被覆写\n }\n\n openFeedback(dialog: any, ctx: any) {\n return new Promise(resolve => {\n const {store} = this.props;\n const parentStore = store.parentStore;\n\n // 暂时自己不支持弹出 dialog\n if (parentStore && parentStore.openDialog) {\n store.setCurrentAction({\n type: 'button',\n actionType: 'dialog',\n dialog: dialog\n });\n store.openDialog(ctx, undefined, confirmed => {\n resolve(confirmed);\n });\n }\n });\n }\n\n handleAction(\n e: React.UIEvent<any> | void,\n action: Action,\n data: object,\n throwErrors: boolean = false,\n delegate?: IScopedContext\n ) {\n const {onAction, store, env, api, translate: __} = this.props;\n\n if (api && action.actionType === 'ajax') {\n store.setCurrentAction(action);\n store\n .saveRemote(action.api as string, data, {\n successMessage: __(action.messages && action.messages.success),\n errorMessage: __(action.messages && action.messages.failed)\n })\n .then(async (payload: any) => {\n this.afterDataFetch(payload);\n\n if (action.feedback && isVisible(action.feedback, store.data)) {\n await this.openFeedback(action.feedback, store.data);\n }\n\n const redirect =\n action.redirect && filter(action.redirect, store.data);\n redirect && env.jumpTo(redirect, action);\n action.reload && this.reloadTarget(action.reload, store.data);\n })\n .catch(() => {});\n } else {\n onAction(e, action, data, throwErrors, delegate || this.context);\n }\n }\n\n handleChange(\n value: any,\n name: string,\n submit?: boolean,\n changePristine?: boolean\n ) {\n const {store, formStore, onChange} = this.props;\n\n // form 触发的 onChange,直接忽略\n if (typeof name !== 'string') {\n return;\n }\n\n (store as IIRendererStore).changeValue?.(name, value);\n\n // 如果在form底下,则继续向上派送。\n formStore && onChange?.(value, name, submit, changePristine);\n }\n\n renderBody() {\n const {render, store, body: schema, classnames: cx} = this.props;\n\n return (\n <div className={cx('Service-body')}>\n {\n render('body', store.schema || schema, {\n key: store.schemaKey || 'body',\n onQuery: this.handleQuery,\n onAction: this.handleAction,\n onChange: this.handleChange\n }) as JSX.Element\n }\n </div>\n );\n }\n\n render() {\n const {\n className,\n store,\n render,\n classPrefix: ns,\n classnames: cx\n } = this.props;\n\n return (\n <div className={cx(`${ns}Service`, className)}>\n {store.error ? (\n <div className={cx(`Alert Alert--danger`)}>\n <button\n className={cx('Alert-close')}\n onClick={() => store.updateMessage('')}\n type=\"button\"\n >\n <span>×</span>\n </button>\n {store.msg}\n </div>\n ) : null}\n\n {this.renderBody()}\n\n <Spinner size=\"lg\" overlay key=\"info\" show={store.loading} />\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'service',\n storeType: ServiceStore.name,\n isolateScope: true,\n storeExtendsData: (props: any) => (props.formStore ? false : true)\n})\nexport class ServiceRenderer extends Service {\n static contextType = ScopedContext;\n\n constructor(props: ServiceProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n reload(subpath?: string, query?: any, ctx?: any, silent?: boolean) {\n const scoped = this.context as IScopedContext;\n if (subpath) {\n return scoped.reload(\n query ? `${subpath}?${qsstringify(query)}` : subpath,\n ctx\n );\n }\n\n return super.reload(subpath, query, ctx, silent);\n }\n\n receive(values: any, subPath?: string) {\n const scoped = this.context as IScopedContext;\n if (subPath) {\n return scoped.send(subPath, values);\n }\n\n return super.receive(values);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n }\n\n reloadTarget(target: string, data?: any) {\n const scoped = this.context as IScopedContext;\n scoped.reload(target, data);\n }\n}\n"
11
+ "import React from 'react';\nimport PropTypes from 'prop-types';\nimport {Renderer, RendererProps} from '../factory';\nimport {ServiceStore, IServiceStore} from '../store/service';\nimport {Api, SchemaNode, ApiObject, RendererData, Action} from '../types';\nimport {filter, evalExpression} from '../utils/tpl';\nimport cx from 'classnames';\nimport Scoped, {ScopedContext, IScopedContext} from '../Scoped';\nimport {observer} from 'mobx-react';\nimport {\n buildApi,\n isApiOutdated,\n isEffectiveApi,\n str2AsyncFunction\n} from '../utils/api';\nimport {Spinner} from '../components';\nimport {autobind, isEmpty, isVisible, qsstringify} from '../utils/helper';\nimport {\n BaseSchema,\n SchemaApi,\n SchemaCollection,\n SchemaExpression,\n SchemaMessage,\n SchemaName\n} from '../Schema';\nimport {IIRendererStore} from '../store';\n\n/**\n * Service 服务类控件。\n * 文档:https://baidu.gitee.io/amis/docs/components/service\n */\nexport interface ServiceSchema extends BaseSchema {\n /**\n * 指定为 Service 数据拉取控件。\n */\n type: 'service';\n\n /**\n * 页面初始化的时候,可以设置一个 API 让其取拉取,发送数据会携带当前 data 数据(包含地址栏参数),获取得数据会合并到 data 中,供组件内使用。\n */\n api?: SchemaApi;\n\n /**\n * WebScocket 地址,用于实时获取数据\n */\n ws?: string;\n\n /**\n * 通过调用外部函数来获取数据\n */\n dataProvider?: string | Function;\n\n /**\n * 内容区域\n */\n body?: SchemaCollection;\n\n /**\n * @deprecated 改成 api 的 sendOn。\n */\n fetchOn?: SchemaExpression;\n\n /**\n * 是否默认就拉取?\n */\n initFetch?: boolean;\n\n /**\n * 是否默认就拉取?通过表达式来决定.\n *\n * @deprecated 改成 api 的 sendOn。\n */\n initFetchOn?: SchemaExpression;\n\n /**\n * 用来获取远程 Schema 的 api\n */\n schemaApi?: SchemaApi;\n\n /**\n * 是否默认加载 schemaApi\n */\n initFetchSchema?: boolean;\n\n /**\n * 用表达式来配置。\n * @deprecated 改成 api 的 sendOn。\n */\n initFetchSchemaOn?: SchemaExpression;\n\n /**\n * 是否轮询拉取\n */\n interval?: number;\n\n /**\n * 是否静默拉取\n */\n silentPolling?: boolean;\n\n /**\n * 关闭轮询的条件。\n */\n stopAutoRefreshWhen?: SchemaExpression;\n\n messages?: SchemaMessage;\n\n name?: SchemaName;\n}\n\nexport interface ServiceProps\n extends RendererProps,\n Omit<ServiceSchema, 'type' | 'className'> {\n store: IServiceStore;\n messages: SchemaMessage;\n}\nexport default class Service extends React.Component<ServiceProps> {\n timer: ReturnType<typeof setTimeout>;\n mounted: boolean;\n\n // 主要是用于关闭 socket\n socket: any;\n\n dataProviderUnsubscribe?: Function;\n\n static defaultProps: Partial<ServiceProps> = {\n messages: {\n fetchFailed: 'fetchFailed'\n }\n };\n\n static propsList: Array<string> = [];\n\n constructor(props: ServiceProps) {\n super(props);\n\n this.handleQuery = this.handleQuery.bind(this);\n this.handleAction = this.handleAction.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.reload = this.reload.bind(this);\n this.silentReload = this.silentReload.bind(this);\n this.initInterval = this.initInterval.bind(this);\n this.afterDataFetch = this.afterDataFetch.bind(this);\n this.afterSchemaFetch = this.afterSchemaFetch.bind(this);\n this.runDataProvider = this.runDataProvider.bind(this);\n this.dataProviderSetData = this.dataProviderSetData.bind(this);\n }\n\n componentDidMount() {\n this.mounted = true;\n this.initFetch();\n }\n\n componentDidUpdate(prevProps: ServiceProps) {\n const props = this.props;\n const store = props.store;\n\n const {fetchSuccess, fetchFailed} = props.messages!;\n\n isApiOutdated(prevProps.api, props.api, prevProps.data, props.data) &&\n store\n .fetchData(props.api as Api, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n })\n .then(this.afterDataFetch);\n\n isApiOutdated(\n prevProps.schemaApi,\n props.schemaApi,\n prevProps.data,\n props.data\n ) &&\n store\n .fetchSchema(props.schemaApi as Api, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n })\n .then(this.afterSchemaFetch);\n\n if (props.ws && prevProps.ws !== props.ws) {\n if (this.socket) {\n this.socket.close();\n }\n this.socket = this.fetchWSData(props.ws, store.data);\n }\n\n if (props.defaultData !== prevProps.defaultData) {\n store.reInitData(props.defaultData);\n }\n\n if (props.dataProvider !== prevProps.dataProvider) {\n this.runDataProvider();\n }\n }\n\n componentWillUnmount() {\n this.mounted = false;\n this.runDataProviderUnsubscribe();\n clearTimeout(this.timer);\n if (this.socket && this.socket.close) {\n this.socket.close();\n }\n }\n\n @autobind\n initFetch() {\n const {\n schemaApi,\n initFetchSchema,\n api,\n ws,\n initFetch,\n initFetchOn,\n dataProvider,\n store,\n messages: {fetchSuccess, fetchFailed}\n } = this.props;\n\n if (isEffectiveApi(schemaApi, store.data, initFetchSchema)) {\n store\n .fetchSchema(schemaApi, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n })\n .then(this.afterSchemaFetch);\n }\n\n if (isEffectiveApi(api, store.data, initFetch, initFetchOn)) {\n store\n .fetchInitData(api, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n })\n .then(this.afterDataFetch);\n }\n\n if (ws) {\n this.socket = this.fetchWSData(ws, store.data);\n }\n\n if (dataProvider) {\n this.runDataProvider();\n }\n }\n\n // 使用外部函数获取数据\n async runDataProvider() {\n this.runDataProviderUnsubscribe();\n const {dataProvider, store} = this.props;\n let dataProviderFunc = dataProvider;\n\n if (typeof dataProvider === 'string' && dataProvider) {\n dataProviderFunc = str2AsyncFunction(dataProvider, 'data', 'setData')!;\n }\n if (typeof dataProviderFunc === 'function') {\n const unsubscribe = await dataProviderFunc(\n store.data,\n this.dataProviderSetData\n );\n if (typeof unsubscribe === 'function') {\n this.dataProviderUnsubscribe = unsubscribe;\n }\n }\n }\n\n // 运行销毁外部函数的方法\n runDataProviderUnsubscribe() {\n if (typeof this.dataProviderUnsubscribe === 'function') {\n try {\n this.dataProviderUnsubscribe();\n } catch (error) {\n console.error(error);\n }\n }\n }\n\n // 外部函数回调更新数据\n dataProviderSetData(data: any) {\n if (!this.mounted) {\n return;\n }\n const {store} = this.props;\n store.updateData(data, undefined, false);\n store.setHasRemoteData();\n }\n\n // 使用 websocket 获取使用,因为有异步所以放这里而不是 store 实现\n fetchWSData(ws: string | Api, data: any) {\n const {env, store} = this.props;\n const wsApi = buildApi(ws, data);\n\n env.wsFetcher(\n wsApi,\n (data: any) => {\n let returndata = data;\n if ('status' in data && 'data' in data) {\n returndata = data.data;\n if (data.status !== 0) {\n store.updateMessage(data.msg, true);\n env.notify('error', data.msg);\n return;\n }\n }\n store.updateData(returndata, undefined, false);\n store.setHasRemoteData();\n // 因为 WebSocket 只会获取纯数据,所以没有 msg 之类的\n this.afterDataFetch({ok: true, data: returndata});\n },\n (error: any) => {\n store.updateMessage(error, true);\n env.notify('error', error);\n }\n );\n }\n\n afterDataFetch(result: any) {\n // todo 应该统一这块\n // 初始化接口返回的是整个 response,\n // 保存 ajax 请求的时候返回时数据部分。\n const data = result?.hasOwnProperty('ok') ? result.data : result;\n const {onBulkChange, formStore} = this.props;\n if (formStore && !isEmpty(data) && onBulkChange) {\n onBulkChange(data);\n }\n\n this.initInterval(data);\n }\n\n afterSchemaFetch(schema: any) {\n const {onBulkChange, formStore} = this.props;\n if (formStore && schema?.data && onBulkChange) {\n onBulkChange && onBulkChange(schema.data);\n }\n\n this.initInterval(schema);\n }\n\n initInterval(value: any) {\n const {interval, silentPolling, stopAutoRefreshWhen, data} = this.props;\n\n clearTimeout(this.timer);\n\n interval &&\n this.mounted &&\n (!stopAutoRefreshWhen || !evalExpression(stopAutoRefreshWhen, data)) &&\n (this.timer = setTimeout(\n silentPolling ? this.silentReload : this.reload,\n Math.max(interval, 1000)\n ));\n return value;\n }\n\n reload(subpath?: string, query?: any, ctx?: RendererData, silent?: boolean) {\n if (query) {\n return this.receive(query);\n }\n\n const {\n schemaApi,\n initFetchSchema,\n api,\n initFetch,\n initFetchOn,\n store,\n messages: {fetchSuccess, fetchFailed}\n } = this.props;\n\n clearTimeout(this.timer);\n\n if (isEffectiveApi(schemaApi, store.data)) {\n store\n .fetchSchema(schemaApi, store.data, {\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n })\n .then(this.afterSchemaFetch);\n }\n\n if (isEffectiveApi(api, store.data)) {\n store\n .fetchData(api, store.data, {\n silent,\n successMessage: fetchSuccess,\n errorMessage: fetchFailed\n })\n .then(this.afterDataFetch);\n }\n }\n\n silentReload(target?: string, query?: any) {\n this.reload(target, query, undefined, true);\n }\n\n receive(values: object) {\n const {store} = this.props;\n\n store.updateData(values);\n this.reload();\n }\n\n handleQuery(query: any) {\n if (this.props.api || this.props.schemaApi) {\n this.receive(query);\n } else {\n this.props.onQuery?.(query);\n }\n }\n\n reloadTarget(target: string, data?: any) {\n // 会被覆写\n }\n\n openFeedback(dialog: any, ctx: any) {\n return new Promise(resolve => {\n const {store} = this.props;\n const parentStore = store.parentStore;\n\n // 暂时自己不支持弹出 dialog\n if (parentStore && parentStore.openDialog) {\n store.setCurrentAction({\n type: 'button',\n actionType: 'dialog',\n dialog: dialog\n });\n store.openDialog(ctx, undefined, confirmed => {\n resolve(confirmed);\n });\n }\n });\n }\n\n handleAction(\n e: React.UIEvent<any> | void,\n action: Action,\n data: object,\n throwErrors: boolean = false,\n delegate?: IScopedContext\n ) {\n const {onAction, store, env, api, translate: __} = this.props;\n\n if (api && action.actionType === 'ajax') {\n store.setCurrentAction(action);\n store\n .saveRemote(action.api as string, data, {\n successMessage: __(action.messages && action.messages.success),\n errorMessage: __(action.messages && action.messages.failed)\n })\n .then(async (payload: any) => {\n this.afterDataFetch(payload);\n\n if (action.feedback && isVisible(action.feedback, store.data)) {\n await this.openFeedback(action.feedback, store.data);\n }\n\n const redirect =\n action.redirect && filter(action.redirect, store.data);\n redirect && env.jumpTo(redirect, action);\n action.reload && this.reloadTarget(action.reload, store.data);\n })\n .catch(() => {});\n } else {\n onAction(e, action, data, throwErrors, delegate || this.context);\n }\n }\n\n handleChange(\n value: any,\n name: string,\n submit?: boolean,\n changePristine?: boolean\n ) {\n const {store, formStore, onChange} = this.props;\n\n // form 触发的 onChange,直接忽略\n if (typeof name !== 'string') {\n return;\n }\n\n (store as IIRendererStore).changeValue?.(name, value);\n\n // 如果在form底下,则继续向上派送。\n formStore && onChange?.(value, name, submit, changePristine);\n }\n\n renderBody() {\n const {render, store, body: schema, classnames: cx} = this.props;\n\n return (\n <div className={cx('Service-body')}>\n {\n render('body', store.schema || schema, {\n key: store.schemaKey || 'body',\n onQuery: this.handleQuery,\n onAction: this.handleAction,\n onChange: this.handleChange\n }) as JSX.Element\n }\n </div>\n );\n }\n\n render() {\n const {\n className,\n store,\n render,\n classPrefix: ns,\n classnames: cx\n } = this.props;\n\n return (\n <div className={cx(`${ns}Service`, className)}>\n {store.error ? (\n <div className={cx(`Alert Alert--danger`)}>\n <button\n className={cx('Alert-close')}\n onClick={() => store.updateMessage('')}\n type=\"button\"\n >\n <span>×</span>\n </button>\n {store.msg}\n </div>\n ) : null}\n\n {this.renderBody()}\n\n <Spinner size=\"lg\" overlay key=\"info\" show={store.loading} />\n </div>\n );\n }\n}\n\n@Renderer({\n type: 'service',\n storeType: ServiceStore.name,\n isolateScope: true,\n storeExtendsData: (props: any) => (props.formStore ? false : true)\n})\nexport class ServiceRenderer extends Service {\n static contextType = ScopedContext;\n\n constructor(props: ServiceProps, context: IScopedContext) {\n super(props);\n\n const scoped = context;\n scoped.registerComponent(this);\n }\n\n reload(subpath?: string, query?: any, ctx?: any, silent?: boolean) {\n const scoped = this.context as IScopedContext;\n if (subpath) {\n return scoped.reload(\n query ? `${subpath}?${qsstringify(query)}` : subpath,\n ctx\n );\n }\n\n return super.reload(subpath, query, ctx, silent);\n }\n\n receive(values: any, subPath?: string) {\n const scoped = this.context as IScopedContext;\n if (subPath) {\n return scoped.send(subPath, values);\n }\n\n return super.receive(values);\n }\n\n componentWillUnmount() {\n super.componentWillUnmount();\n const scoped = this.context as IScopedContext;\n scoped.unRegisterComponent(this);\n }\n\n reloadTarget(target: string, data?: any) {\n const scoped = this.context as IScopedContext;\n scoped.reload(target, data);\n }\n}\n"
12
12
  ]
13
13
  }
@@ -26,6 +26,10 @@ export interface SparkLineSchema extends BaseSchema {
26
26
  * 点击行为
27
27
  */
28
28
  clickAction?: ActionSchema;
29
+ /**
30
+ * 空数据时显示的内容
31
+ */
32
+ placeholder?: string;
29
33
  value?: Array<number | {
30
34
  value: number;
31
35
  label?: string;
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/SparkLine.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";;;;AAAA,mFAAkE;AAClE,sCAAmD;AACnD,6DAA0B;AAI1B,0CAAqE;AA0ErE;IAAuC,kDAAmC;IAA1E;;IAuBA,CAAC;IArBC,uCAAW,GAAX,UAAY,CAAmB,EAAE,GAAQ;QACjC,IAAA,KAA0C,IAAI,CAAC,KAAK,EAAnD,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,WAAW,iBAAA,EAAE,IAAI,UAAc,CAAC;QAC3D,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;YAClD,OAAO;SACR;QAED,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,IAAA,qBAAY,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,kCAAM,GAAN;QACQ,IAAA,KAAmC,IAAI,CAAC,KAAK,EAA5C,KAAK,WAAA,EAAE,IAAI,UAAA,EAAE,IAAI,UAAA,EAAE,WAAW,iBAAc,CAAC;QACpD,IAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtD,OAAO,CACL,8BAAC,mBAAS,0BACR,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IAC/C,IAAI,CAAC,KAAK,IACd,KAAK,EAAE,UAAU,IACjB,CACH,CAAC;IACJ,CAAC;;IApBD;QADC,iBAAQ;;0EACM,eAAK,oBAAL,eAAK,CAAC,UAAU;;wDAO9B;IATU,iBAAiB;QAH7B,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,WAAW;SAClB,CAAC;OACW,iBAAiB,CAuB7B;IAAD,wBAAC;CAAA,AAvBD,CAAuC,eAAK,CAAC,SAAS,GAuBrD;AAvBY,8CAAiB",
9
+ "mappings": ";;;;AAAA,mFAAkE;AAClE,sCAAmD;AACnD,6DAA0B;AAI1B,0CAAqE;AA+ErE;IAAuC,kDAAmC;IAA1E;;IAuBA,CAAC;IArBC,uCAAW,GAAX,UAAY,CAAmB,EAAE,GAAQ;QACjC,IAAA,KAA0C,IAAI,CAAC,KAAK,EAAnD,QAAQ,cAAA,EAAE,QAAQ,cAAA,EAAE,WAAW,iBAAA,EAAE,IAAI,UAAc,CAAC;QAC3D,IAAI,CAAC,CAAC,gBAAgB,IAAI,CAAC,WAAW,IAAI,QAAQ,EAAE;YAClD,OAAO;SACR;QAED,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAG,IAAI,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,IAAA,qBAAY,EAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IACtE,CAAC;IAED,kCAAM,GAAN;QACQ,IAAA,KAAmC,IAAI,CAAC,KAAK,EAA5C,KAAK,WAAA,EAAE,IAAI,UAAA,EAAE,IAAI,UAAA,EAAE,WAAW,iBAAc,CAAC;QACpD,IAAM,UAAU,GAAG,IAAA,qBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtD,OAAO,CACL,8BAAC,mBAAS,0BACR,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,IAC/C,IAAI,CAAC,KAAK,IACd,KAAK,EAAE,UAAU,IACjB,CACH,CAAC;IACJ,CAAC;;IApBD;QADC,iBAAQ;;0EACM,eAAK,oBAAL,eAAK,CAAC,UAAU;;wDAO9B;IATU,iBAAiB;QAH7B,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,WAAW;SAClB,CAAC;OACW,iBAAiB,CAuB7B;IAAD,wBAAC;CAAA,AAvBD,CAAuC,eAAK,CAAC,SAAS,GAuBrD;AAvBY,8CAAiB",
10
10
  "sourcesContent": [
11
- "import SparkLine, {SparkLineProps} from '../components/SparkLine';\nimport {Renderer, RendererProps} from '../factory';\nimport React from 'react';\nimport {resolveVariableAndFilter} from '../utils/tpl-builtin';\nimport {BaseSchema, SchemaClassName} from '../Schema';\nimport {ActionSchema} from './Action';\nimport {autobind, createObject, getPropValue} from '../utils/helper';\n\nexport interface SparkLineSchema extends BaseSchema {\n type: 'sparkline';\n\n /**\n * css 类名\n */\n className?: SchemaClassName;\n\n /**\n * 关联数据变量。\n */\n name?: string;\n\n /**\n * 宽度\n * @default 100\n */\n width?: number;\n\n /**\n * 高度\n * @default 50\n */\n height?: number;\n\n /**\n * 点击行为\n */\n clickAction?: ActionSchema;\n\n // /**\n // * 线的转折是否要有圆角。默认为 2\n // */\n // lineRadius?: number;\n\n // /**\n // * 默认为2,线的宽度。\n // */\n // lineWidth?: number;\n\n // /**\n // * 线的颜色,默认为 primaryColor\n // */\n // lineColor?: string;\n\n // /**\n // * 下面堆积区域的颜色。\n // */\n // areaColor?: string;\n\n // /**\n // * 光标移动上来的点的颜色值\n // */\n // cursorColor?: number;\n\n // 如果有 label 就有 hover 效果,如果没有没有鼠标hover 交互。\n value?: Array<\n | number\n | {\n value: number;\n label?: string;\n }\n >;\n}\n\ninterface SparkLineRendProps\n extends RendererProps,\n Omit<SparkLineSchema, 'type' | 'className'> {}\n\n@Renderer({\n type: 'sparkline'\n})\nexport class SparkLineRenderer extends React.Component<SparkLineRendProps> {\n @autobind\n handleClick(e: React.MouseEvent, ctx: any) {\n const {disabled, onAction, clickAction, data} = this.props;\n if (e.defaultPrevented || !clickAction || disabled) {\n return;\n }\n\n onAction?.(null, clickAction, ctx ? createObject(data, ctx) : data);\n }\n\n render() {\n const {value, name, data, clickAction} = this.props;\n const finalValue = getPropValue(this.props) || [1, 1];\n\n return (\n <SparkLine\n onClick={clickAction ? this.handleClick : undefined}\n {...this.props}\n value={finalValue}\n />\n );\n }\n}\n"
11
+ "import SparkLine, {SparkLineProps} from '../components/SparkLine';\nimport {Renderer, RendererProps} from '../factory';\nimport React from 'react';\nimport {resolveVariableAndFilter} from '../utils/tpl-builtin';\nimport {BaseSchema, SchemaClassName} from '../Schema';\nimport {ActionSchema} from './Action';\nimport {autobind, createObject, getPropValue} from '../utils/helper';\n\nexport interface SparkLineSchema extends BaseSchema {\n type: 'sparkline';\n\n /**\n * css 类名\n */\n className?: SchemaClassName;\n\n /**\n * 关联数据变量。\n */\n name?: string;\n\n /**\n * 宽度\n * @default 100\n */\n width?: number;\n\n /**\n * 高度\n * @default 50\n */\n height?: number;\n\n /**\n * 点击行为\n */\n clickAction?: ActionSchema;\n\n /**\n * 空数据时显示的内容\n */\n placeholder?: string;\n\n // /**\n // * 线的转折是否要有圆角。默认为 2\n // */\n // lineRadius?: number;\n\n // /**\n // * 默认为2,线的宽度。\n // */\n // lineWidth?: number;\n\n // /**\n // * 线的颜色,默认为 primaryColor\n // */\n // lineColor?: string;\n\n // /**\n // * 下面堆积区域的颜色。\n // */\n // areaColor?: string;\n\n // /**\n // * 光标移动上来的点的颜色值\n // */\n // cursorColor?: number;\n\n // 如果有 label 就有 hover 效果,如果没有没有鼠标hover 交互。\n value?: Array<\n | number\n | {\n value: number;\n label?: string;\n }\n >;\n}\n\ninterface SparkLineRendProps\n extends RendererProps,\n Omit<SparkLineSchema, 'type' | 'className'> {}\n\n@Renderer({\n type: 'sparkline'\n})\nexport class SparkLineRenderer extends React.Component<SparkLineRendProps> {\n @autobind\n handleClick(e: React.MouseEvent, ctx: any) {\n const {disabled, onAction, clickAction, data} = this.props;\n if (e.defaultPrevented || !clickAction || disabled) {\n return;\n }\n\n onAction?.(null, clickAction, ctx ? createObject(data, ctx) : data);\n }\n\n render() {\n const {value, name, data, clickAction} = this.props;\n const finalValue = getPropValue(this.props) || [1, 1];\n\n return (\n <SparkLine\n onClick={clickAction ? this.handleClick : undefined}\n {...this.props}\n value={finalValue}\n />\n );\n }\n}\n"
12
12
  ]
13
13
  }
@@ -1,16 +1,16 @@
1
1
  import React from 'react';
2
2
  import { RendererProps } from '../factory';
3
- import { BaseSchema } from '../Schema';
3
+ import { BaseSchema, SchemaCollection } from '../Schema';
4
4
  import { StepStatus } from '../components/Steps';
5
5
  export declare type StepSchema = {
6
6
  /**
7
7
  * 标题
8
8
  */
9
- title: string;
9
+ title: string | SchemaCollection;
10
10
  /**
11
11
  * 子标题
12
12
  */
13
- subTitle?: string;
13
+ subTitle?: string | SchemaCollection;
14
14
  /**
15
15
  * 图标
16
16
  */
@@ -19,7 +19,7 @@ export declare type StepSchema = {
19
19
  /**
20
20
  * 描述
21
21
  */
22
- description?: string;
22
+ description?: string | SchemaCollection;
23
23
  } & Omit<BaseSchema, 'type'>;
24
24
  export interface StepsSchema extends BaseSchema {
25
25
  /**
@@ -11,11 +11,14 @@ var tpl_1 = require("../utils/tpl");
11
11
  var helper_1 = require("../utils/helper");
12
12
  function StepsCmpt(props) {
13
13
  var _a;
14
- var className = props.className, steps = props.steps, status = props.status, mode = props.mode, data = props.data, source = props.source, config = props.config;
14
+ var className = props.className, steps = props.steps, status = props.status, mode = props.mode, data = props.data, source = props.source, config = props.config, render = props.render;
15
15
  var stepsRow = (0, tpl_builtin_1.resolveVariable)(source, data) ||
16
16
  config ||
17
17
  steps ||
18
18
  [];
19
+ var resolveRender = function (val) { return typeof val === 'string'
20
+ ? (0, tpl_1.filter)(val, data)
21
+ : val && render('inner', val); };
19
22
  var value = (_a = (0, helper_1.getPropValue)(props)) !== null && _a !== void 0 ? _a : 0;
20
23
  var resolveValue = typeof value === 'string' && isNaN(+value)
21
24
  ? +(0, tpl_builtin_1.resolveVariable)(value, data) || +value
@@ -24,7 +27,7 @@ function StepsCmpt(props) {
24
27
  var currentValue = valueIndex !== -1 ? valueIndex : resolveValue;
25
28
  var resolveSteps = stepsRow.map(function (step, i) {
26
29
  var stepStatus = getStepStatus(step, i);
27
- return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, step), { status: stepStatus, title: (0, tpl_1.filter)(step.title, data), subTitle: (0, tpl_1.filter)(step.subTitle || step.value, data), description: (0, tpl_1.filter)(step.description, data) });
30
+ return (0, tslib_1.__assign)((0, tslib_1.__assign)({}, step), { status: stepStatus, title: resolveRender(step.title), subTitle: resolveRender(step.subTitle), description: resolveRender(step.description) });
28
31
  });
29
32
  function getStepStatus(step, i) {
30
33
  var stepStatus;
@@ -6,8 +6,8 @@
6
6
  "/src/renderers/Steps.tsx"
7
7
  ],
8
8
  "names": [],
9
- "mappings": ";;;;AAAA,6DAA0B;AAC1B,sCAAmD;AAEnD,wEAAsD;AACtD,mEAGwC;AACxC,oDAAqD;AACrD,oCAAoC;AACpC,0CAA6C;AAkE7C,SAAgB,SAAS,CAAC,KAAiB;;IAEvC,IAAA,SAAS,GAOP,KAAK,UAPE,EACT,KAAK,GAMH,KAAK,MANF,EACL,MAAM,GAKJ,KAAK,OALD,EACN,IAAI,GAIF,KAAK,KAJH,EACJ,IAAI,GAGF,KAAK,KAHH,EACJ,MAAM,GAEJ,KAAK,OAFD,EACN,MAAM,GACJ,KAAK,OADD,CACE;IAEV,IAAM,QAAQ,GACX,IAAA,6BAAe,EAAC,MAAM,EAAE,IAAI,CAAuB;QACpD,MAAM;QACN,KAAK;QACL,EAAE,CAAC;IAEL,IAAM,KAAK,GAAG,MAAA,IAAA,qBAAY,EAAC,KAAK,CAAC,mCAAI,CAAC,CAAC;IACvC,IAAM,YAAY,GAChB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,CAAC,KAAK,CAAC;QACxC,CAAC,CAAC,CAAE,IAAA,6BAAe,EAAC,KAAK,EAAE,IAAI,CAAY,IAAI,CAAC,KAAK;QACrD,CAAC,CAAC,CAAC,KAAK,CAAC;IACb,IAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CACnC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,YAAY,EAAzC,CAAyC,CAClD,CAAC;IACF,IAAM,YAAY,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC;IACnE,IAAM,YAAY,GAAG,QAAQ,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,CAAC;QACxC,IAAM,UAAU,GAAG,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAC1C,uDACK,IAAI,KACP,MAAM,EAAE,UAAU,EAClB,KAAK,EAAE,IAAA,YAAM,EAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EAC/B,QAAQ,EAAE,IAAA,YAAM,EAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,EACnD,WAAW,EAAE,IAAA,YAAM,EAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,IAC5C;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,aAAa,CACpB,IAAgB,EAChB,CAAS;QAET,IAAI,UAAU,CAAC;QAEf,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,KAAK,YAAY,EAAE;gBACtB,IAAM,aAAa,GAAG,IAAA,6BAAe,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACpD,UAAU,GAAG,aAAa,IAAI,MAAM,IAAI,kBAAU,CAAC,OAAO,CAAC;aAC5D;SACF;aAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;YACrC,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;YACvB,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;SAClD;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,OAAO,CACL,8BAAC,eAAK,IACJ,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,IAAI,GACH,CACV,CAAC;AACJ,CAAC;AAjED,8BAiEC;AAED,IAAM,qBAAqB,GAAG,IAAA,mCAAgB,EAAC;IAC7C,OAAO,EAAE,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,KAAK,IAAI,IAAI,EAAlB,CAAkB;CACpC,CAAC;IACc,wCAEb;IAFD;;IAOA,CAAC;IAJC,wBAAM,GAAN;QACE,IAAM,KAAsD,IAAI,CAAC,KAAK,EAA/D,MAAM,YAAA,EAAE,SAAS,eAAA,EAAE,OAAO,aAAA,EAAE,YAAY,kBAAA,EAAK,IAAI,2BAAlD,kDAAmD,CAAa,CAAC;QACvE,OAAO,8BAAC,SAAS,0BAAC,MAAM,EAAE,MAAM,IAAM,IAAI,EAAI,CAAC;IACjD,CAAC;IACH,cAAC;AAAD,CAAC,AAPD,CAAc,eAAK,CAAC,SAAS,GAQ9B,CAAC;AAKF;IAAmC,8CAA2B;IAA9D;;IAIA,CAAC;IAHC,8BAAM,GAAN;QACE,OAAO,8BAAC,qBAAqB,4BAAK,IAAI,CAAC,KAAK,EAAI,CAAC;IACnD,CAAC;IAHU,aAAa;QAHzB,IAAA,kBAAQ,EAAC;YACR,IAAI,EAAE,OAAO;SACd,CAAC;OACW,aAAa,CAIzB;IAAD,oBAAC;CAAA,AAJD,CAAmC,eAAK,CAAC,SAAS,GAIjD;AAJY,sCAAa",
9
+ "mappings": "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",
10
10
  "sourcesContent": [
11
- "import React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {BaseSchema} from '../Schema';\nimport Steps, {StepStatus} from '../components/Steps';\nimport {\n RemoteOptionsProps,\n withRemoteConfig\n} from '../components/WithRemoteConfig';\nimport {resolveVariable} from '../utils/tpl-builtin';\nimport {filter} from '../utils/tpl';\nimport {getPropValue} from '../utils/helper';\n\nexport type StepSchema = {\n /**\n * 标题\n */\n title: string;\n\n /**\n * 子标题\n */\n subTitle?: string;\n\n /**\n * 图标\n */\n icon?: string;\n\n value?: string | number;\n\n /**\n * 描述\n */\n description?: string;\n} & Omit<BaseSchema, 'type'>;\n\nexport interface StepsSchema extends BaseSchema {\n /**\n * 指定为 Steps 步骤条渲染器\n */\n type: 'steps';\n\n /**\n * 步骤\n */\n steps?: Array<StepSchema>;\n\n /**\n * API 或 数据映射\n */\n source?: string;\n\n /**\n * 指定当前步骤\n */\n value?: number | string;\n\n /**\n * 变量映射\n */\n name?: string;\n\n status?: StepStatus | {\n [propName: string]: StepStatus;\n };\n\n /**\n * 展示模式\n */\n mode?: 'horizontal' | 'vertical';\n}\n\nexport interface StepsProps\n extends RendererProps,\n Omit<StepsSchema, 'className'> {}\n\nexport function StepsCmpt(props: StepsProps) {\n const {\n className,\n steps,\n status,\n mode,\n data,\n source,\n config\n } = props;\n \n const stepsRow =\n (resolveVariable(source, data) as Array<StepSchema>) ||\n config ||\n steps ||\n [];\n\n const value = getPropValue(props) ?? 0;\n const resolveValue =\n typeof value === 'string' && isNaN(+value)\n ? +(resolveVariable(value, data) as string) || +value\n : +value;\n const valueIndex = stepsRow.findIndex(\n item => item.value && item.value === resolveValue\n );\n const currentValue = valueIndex !== -1 ? valueIndex : resolveValue;\n const resolveSteps = stepsRow.map((step, i) => {\n const stepStatus = getStepStatus(step, i);\n return {\n ...step,\n status: stepStatus,\n title: filter(step.title, data),\n subTitle: filter(step.subTitle || step.value, data),\n description: filter(step.description, data)\n }\n });\n\n function getStepStatus(\n step: StepSchema,\n i: number\n ): StepStatus {\n let stepStatus;\n\n if (typeof status === 'string') {\n if (i === currentValue) {\n const resolveStatus = resolveVariable(status, data);\n stepStatus = resolveStatus || status || StepStatus.process;\n }\n } else if (typeof status === 'object') {\n const key = step.value;\n key && status[key] && (stepStatus = status[key]);\n }\n\n return stepStatus;\n }\n\n return (\n <Steps\n current={currentValue}\n steps={resolveSteps}\n className={className}\n status={status}\n mode={mode}\n ></Steps>\n );\n}\n\nconst StepsWithRemoteConfig = withRemoteConfig({\n adaptor: data => data.steps || data\n})(\n class extends React.Component<\n RemoteOptionsProps & React.ComponentProps<typeof StepsCmpt>\n > {\n render() {\n const {config, deferLoad, loading, updateConfig, ...rest} = this.props;\n return <StepsCmpt config={config} {...rest} />;\n }\n }\n);\n\n@Renderer({\n type: 'steps'\n})\nexport class StepsRenderer extends React.Component<StepsProps> {\n render() {\n return <StepsWithRemoteConfig {...this.props} />;\n }\n}\n"
11
+ "import React from 'react';\nimport {Renderer, RendererProps} from '../factory';\nimport {BaseSchema, SchemaCollection} from '../Schema';\nimport Steps, {StepStatus} from '../components/Steps';\nimport {\n RemoteOptionsProps,\n withRemoteConfig\n} from '../components/WithRemoteConfig';\nimport {resolveVariable} from '../utils/tpl-builtin';\nimport {filter} from '../utils/tpl';\nimport {getPropValue} from '../utils/helper';\n\nexport type StepSchema = {\n /**\n * 标题\n */\n title: string | SchemaCollection;\n\n /**\n * 子标题\n */\n subTitle?: string | SchemaCollection;\n\n /**\n * 图标\n */\n icon?: string;\n\n value?: string | number;\n\n /**\n * 描述\n */\n description?: string | SchemaCollection;\n} & Omit<BaseSchema, 'type'>;\n\nexport interface StepsSchema extends BaseSchema {\n /**\n * 指定为 Steps 步骤条渲染器\n */\n type: 'steps';\n\n /**\n * 步骤\n */\n steps?: Array<StepSchema>;\n\n /**\n * API 或 数据映射\n */\n source?: string;\n\n /**\n * 指定当前步骤\n */\n value?: number | string;\n\n /**\n * 变量映射\n */\n name?: string;\n\n status?: StepStatus | {\n [propName: string]: StepStatus;\n };\n\n /**\n * 展示模式\n */\n mode?: 'horizontal' | 'vertical';\n}\n\nexport interface StepsProps\n extends RendererProps,\n Omit<StepsSchema, 'className'> {}\n\nexport function StepsCmpt(props: StepsProps) {\n const {\n className,\n steps,\n status,\n mode,\n data,\n source,\n config,\n render\n } = props;\n \n const stepsRow =\n (resolveVariable(source, data) as Array<StepSchema>) ||\n config ||\n steps ||\n [];\n const resolveRender = (val?: string | SchemaCollection) => typeof val === 'string'\n ? filter(val, data)\n : val && render('inner', val);\n const value = getPropValue(props) ?? 0;\n const resolveValue =\n typeof value === 'string' && isNaN(+value)\n ? +(resolveVariable(value, data) as string) || +value\n : +value;\n const valueIndex = stepsRow.findIndex(\n item => item.value && item.value === resolveValue\n );\n const currentValue = valueIndex !== -1 ? valueIndex : resolveValue;\n const resolveSteps = stepsRow.map((step, i) => {\n const stepStatus = getStepStatus(step, i);\n return {\n ...step,\n status: stepStatus,\n title: resolveRender(step.title),\n subTitle: resolveRender(step.subTitle),\n description: resolveRender(step.description)\n }\n });\n\n function getStepStatus(\n step: StepSchema,\n i: number\n ): StepStatus {\n let stepStatus;\n\n if (typeof status === 'string') {\n if (i === currentValue) {\n const resolveStatus = resolveVariable(status, data);\n stepStatus = resolveStatus || status || StepStatus.process;\n }\n } else if (typeof status === 'object') {\n const key = step.value;\n key && status[key] && (stepStatus = status[key]);\n }\n\n return stepStatus;\n }\n\n return (\n <Steps\n current={currentValue}\n steps={resolveSteps}\n className={className}\n status={status}\n mode={mode}\n ></Steps>\n );\n}\n\nconst StepsWithRemoteConfig = withRemoteConfig({\n adaptor: data => data.steps || data\n})(\n class extends React.Component<\n RemoteOptionsProps & React.ComponentProps<typeof StepsCmpt>\n > {\n render() {\n const {config, deferLoad, loading, updateConfig, ...rest} = this.props;\n return <StepsCmpt config={config} {...rest} />;\n }\n }\n);\n\n@Renderer({\n type: 'steps'\n})\nexport class StepsRenderer extends React.Component<StepsProps> {\n render() {\n return <StepsWithRemoteConfig {...this.props} />;\n }\n}\n"
12
12
  ]
13
13
  }
@@ -0,0 +1,113 @@
1
+ import React from 'react';
2
+ import Sortable from 'sortablejs';
3
+ import { RendererProps } from '../../factory';
4
+ import type { TooltipObject } from '../../components/TooltipWrapper';
5
+ import { IColumn } from '../../store/table';
6
+ export interface ColumnTogglerProps extends RendererProps {
7
+ /**
8
+ * 按钮文字
9
+ */
10
+ label?: string | React.ReactNode;
11
+ /**
12
+ * 按钮提示文字,hover focus 时显示
13
+ */
14
+ tooltip?: string | TooltipObject;
15
+ /**
16
+ * 禁用状态下的提示
17
+ */
18
+ disabledTip?: string | TooltipObject;
19
+ /**
20
+ * 点击外部是否关闭
21
+ */
22
+ closeOnOutside?: boolean;
23
+ /**
24
+ * 点击内容是否关闭
25
+ */
26
+ closeOnClick?: boolean;
27
+ /**
28
+ * 下拉菜单对齐方式
29
+ */
30
+ align?: 'left' | 'right';
31
+ /**
32
+ * ColumnToggler的CSS类名
33
+ */
34
+ className?: string;
35
+ /**
36
+ * 按钮的CSS类名
37
+ */
38
+ btnClassName?: string;
39
+ /**
40
+ * 按钮大小
41
+ */
42
+ size?: 'xs' | 'sm' | 'md' | 'lg';
43
+ /**
44
+ * 按钮级别,样式
45
+ */
46
+ level?: 'info' | 'success' | 'danger' | 'warning' | 'primary' | 'link';
47
+ /**
48
+ * 是否独占一行 `display: block`
49
+ */
50
+ block?: boolean;
51
+ /**
52
+ * 是否可通过拖拽排序
53
+ */
54
+ draggable?: boolean;
55
+ /**
56
+ * 默认是否展开
57
+ */
58
+ defaultIsOpened?: boolean;
59
+ /**
60
+ * 激活状态
61
+ */
62
+ isActived?: boolean;
63
+ /**
64
+ * ICON名称
65
+ */
66
+ icon?: string | React.ReactNode;
67
+ /**
68
+ * 是否只显示图标。
69
+ */
70
+ iconOnly?: boolean;
71
+ /**
72
+ * 是否隐藏展开的Icon
73
+ */
74
+ hideExpandIcon?: boolean;
75
+ /**
76
+ * 是否显示遮罩层
77
+ */
78
+ overlay?: boolean;
79
+ /**
80
+ * 列数据
81
+ */
82
+ columns: Array<IColumn>;
83
+ onColumnToggle: (columns: Array<IColumn>) => void;
84
+ modalContainer?: () => HTMLElement;
85
+ }
86
+ export interface ColumnTogglerState {
87
+ isOpened: boolean;
88
+ enableSorting: boolean;
89
+ tempColumns: any[];
90
+ }
91
+ export default class ColumnToggler extends React.Component<ColumnTogglerProps, ColumnTogglerState> {
92
+ state: ColumnTogglerState;
93
+ static defaultProps: Pick<ColumnTogglerProps, 'placement' | 'tooltipTrigger' | 'tooltipRootClose' | 'draggable'>;
94
+ target: any;
95
+ sortable?: Sortable;
96
+ dragRefDOM: HTMLElement;
97
+ constructor(props: ColumnTogglerProps);
98
+ componentDidMount(): void;
99
+ componentWillUnmount(): void;
100
+ domRef(ref: any): void;
101
+ toggle(e: React.MouseEvent<any>): void;
102
+ open(): void;
103
+ close(): void;
104
+ swapColumnPosition(oldIndex: number, newIndex: number): void;
105
+ updateToggledColumn(column: IColumn, index: number, value: any, shift?: boolean): void;
106
+ dragRef(ref: any): void;
107
+ initDragging(): void;
108
+ destroyDragging(): void;
109
+ onConfirm(): void;
110
+ renderOuter(): JSX.Element;
111
+ renderModal(): JSX.Element;
112
+ render(): JSX.Element;
113
+ }