amis 1.4.2-beta.1 → 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 (381) hide show
  1. package/lib/Schema.d.ts +9 -2
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/components/AnchorNav.d.ts +22 -21
  4. package/lib/components/AnchorNav.js +7 -3
  5. package/lib/components/AnchorNav.js.map +2 -2
  6. package/lib/components/ArrayInput.d.ts +84 -84
  7. package/lib/components/AssociatedSelection.d.ts +930 -0
  8. package/lib/components/AssociatedSelection.js +89 -0
  9. package/lib/components/AssociatedSelection.js.map +13 -0
  10. package/lib/components/Badge.js +2 -2
  11. package/lib/components/Badge.js.map +2 -2
  12. package/lib/components/{ChainedCheckboxes.d.ts → ChainedSelection.d.ts} +267 -98
  13. package/lib/components/{ChainedCheckboxes.js → ChainedSelection.js} +30 -24
  14. package/lib/components/ChainedSelection.js.map +13 -0
  15. package/lib/components/ColorPicker.d.ts +84 -84
  16. package/lib/components/DatePicker.d.ts +84 -84
  17. package/lib/components/DateRangePicker.d.ts +84 -84
  18. package/lib/components/Editor.d.ts +84 -84
  19. package/lib/components/GroupedSelection.d.ts +907 -0
  20. package/lib/components/GroupedSelection.js +48 -0
  21. package/lib/components/GroupedSelection.js.map +13 -0
  22. package/lib/components/Link.d.ts +29 -36
  23. package/lib/components/Link.js +14 -15
  24. package/lib/components/Link.js.map +2 -2
  25. package/lib/components/ListGroup.d.ts +21 -21
  26. package/lib/components/ModalManager.js +1 -1
  27. package/lib/components/ModalManager.js.map +2 -2
  28. package/lib/components/MonthRangePicker.d.ts +84 -84
  29. package/lib/components/NumberInput.d.ts +20 -20
  30. package/lib/components/PickerColumn.d.ts +514 -0
  31. package/lib/components/PickerColumn.js +279 -0
  32. package/lib/components/PickerColumn.js.map +13 -0
  33. package/lib/components/PickerContainer.d.ts +513 -0
  34. package/lib/components/PickerContainer.js +96 -0
  35. package/lib/components/PickerContainer.js.map +13 -0
  36. package/lib/components/Radios.d.ts +22 -21
  37. package/lib/components/Radios.js +1 -0
  38. package/lib/components/Radios.js.map +2 -2
  39. package/lib/components/Rating.d.ts +21 -21
  40. package/lib/components/ResultBox.d.ts +84 -84
  41. package/lib/components/SearchBox.d.ts +84 -84
  42. package/lib/components/SearchBox.js +4 -4
  43. package/lib/components/SearchBox.js.map +2 -2
  44. package/lib/components/Select.d.ts +245 -237
  45. package/lib/components/Select.js +25 -4
  46. package/lib/components/Select.js.map +2 -2
  47. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  48. package/lib/components/Selection.js +134 -0
  49. package/lib/components/Selection.js.map +13 -0
  50. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  51. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  52. package/lib/components/TableSelection.js.map +13 -0
  53. package/lib/components/Tabs.d.ts +20 -20
  54. package/lib/components/TabsTransfer.d.ts +84 -84
  55. package/lib/components/TabsTransfer.js +9 -9
  56. package/lib/components/TabsTransfer.js.map +2 -2
  57. package/lib/components/TabsTransferPicker.d.ts +489 -0
  58. package/lib/components/TabsTransferPicker.js +60 -0
  59. package/lib/components/TabsTransferPicker.js.map +13 -0
  60. package/lib/components/Transfer.d.ts +908 -274
  61. package/lib/components/Transfer.js +31 -24
  62. package/lib/components/Transfer.js.map +2 -2
  63. package/lib/components/TransferDropDown.d.ts +487 -0
  64. package/lib/components/TransferDropDown.js +59 -0
  65. package/lib/components/TransferDropDown.js.map +13 -0
  66. package/lib/components/TransferPicker.d.ts +489 -0
  67. package/lib/components/TransferPicker.js +60 -0
  68. package/lib/components/TransferPicker.js.map +13 -0
  69. package/lib/components/Tree.d.ts +84 -84
  70. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  71. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  72. package/lib/components/TreeSelection.js.map +13 -0
  73. package/lib/components/WithRemoteConfig.js +1 -1
  74. package/lib/components/WithRemoteConfig.js.map +2 -2
  75. package/lib/components/condition-builder/Field.js +5 -2
  76. package/lib/components/condition-builder/Field.js.map +2 -2
  77. package/lib/components/condition-builder/Func.js +2 -2
  78. package/lib/components/condition-builder/Func.js.map +2 -2
  79. package/lib/components/condition-builder/InputSwitch.js +2 -2
  80. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  81. package/lib/components/condition-builder/Item.js +3 -3
  82. package/lib/components/condition-builder/Item.js.map +2 -2
  83. package/lib/components/index.d.ts +8 -8
  84. package/lib/components/index.js +16 -16
  85. package/lib/components/index.js.map +2 -2
  86. package/lib/envOverwrite.js.map +2 -2
  87. package/lib/factory.d.ts +4 -0
  88. package/lib/factory.js +4 -2
  89. package/lib/factory.js.map +2 -2
  90. package/lib/helper.css.map +1 -1
  91. package/lib/hooks/index.d.ts +5 -0
  92. package/lib/hooks/index.js +14 -0
  93. package/lib/hooks/index.js.map +13 -0
  94. package/lib/hooks/use-set-state.d.ts +2 -0
  95. package/lib/hooks/use-set-state.js +15 -0
  96. package/lib/hooks/use-set-state.js.map +13 -0
  97. package/lib/hooks/use-touch.d.ts +16 -0
  98. package/lib/hooks/use-touch.js +73 -0
  99. package/lib/hooks/use-touch.js.map +13 -0
  100. package/lib/hooks/use-update-effect.d.ts +3 -0
  101. package/lib/hooks/use-update-effect.js +17 -0
  102. package/lib/hooks/use-update-effect.js.map +13 -0
  103. package/lib/index.d.ts +3 -0
  104. package/lib/index.js +4 -1
  105. package/lib/index.js.map +2 -2
  106. package/lib/locale/de-DE.js +2 -0
  107. package/lib/locale/de-DE.js.map +2 -2
  108. package/lib/locale/en-US.js +2 -0
  109. package/lib/locale/en-US.js.map +2 -2
  110. package/lib/locale/zh-CN.js +4 -2
  111. package/lib/locale/zh-CN.js.map +2 -2
  112. package/lib/renderers/Action.d.ts +4 -3
  113. package/lib/renderers/Action.js +17 -4
  114. package/lib/renderers/Action.js.map +2 -2
  115. package/lib/renderers/AnchorNav.d.ts +1 -0
  116. package/lib/renderers/AnchorNav.js +2 -2
  117. package/lib/renderers/AnchorNav.js.map +2 -2
  118. package/lib/renderers/Avatar.js +3 -3
  119. package/lib/renderers/Avatar.js.map +2 -2
  120. package/lib/renderers/Breadcrumb.js +1 -1
  121. package/lib/renderers/Breadcrumb.js.map +2 -2
  122. package/lib/renderers/CRUD.d.ts +9 -0
  123. package/lib/renderers/CRUD.js +24 -4
  124. package/lib/renderers/CRUD.js.map +2 -2
  125. package/lib/renderers/Card.d.ts +4 -0
  126. package/lib/renderers/Card.js +29 -23
  127. package/lib/renderers/Card.js.map +2 -2
  128. package/lib/renderers/Chart.js +1 -1
  129. package/lib/renderers/Chart.js.map +2 -2
  130. package/lib/renderers/Collapse.js +3 -2
  131. package/lib/renderers/Collapse.js.map +2 -2
  132. package/lib/renderers/DropDownButton.js +1 -1
  133. package/lib/renderers/DropDownButton.js.map +2 -2
  134. package/lib/renderers/Form/DiffEditor.d.ts +4 -3
  135. package/lib/renderers/Form/Editor.d.ts +3 -2
  136. package/lib/renderers/Form/InputCity.d.ts +84 -84
  137. package/lib/renderers/Form/InputCity.js +7 -6
  138. package/lib/renderers/Form/InputCity.js.map +2 -2
  139. package/lib/renderers/Form/InputColor.d.ts +84 -84
  140. package/lib/renderers/Form/InputFile.js +10 -4
  141. package/lib/renderers/Form/InputFile.js.map +2 -2
  142. package/lib/renderers/Form/InputImage.js +11 -4
  143. package/lib/renderers/Form/InputImage.js.map +2 -2
  144. package/lib/renderers/Form/Item.d.ts +1 -1
  145. package/lib/renderers/Form/Item.js.map +1 -1
  146. package/lib/renderers/Form/Options.js +13 -3
  147. package/lib/renderers/Form/Options.js.map +2 -2
  148. package/lib/renderers/Form/Select.d.ts +41 -4
  149. package/lib/renderers/Form/Select.js +23 -3
  150. package/lib/renderers/Form/Select.js.map +2 -2
  151. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  152. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  153. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  154. package/lib/renderers/Form/Transfer.js +3 -2
  155. package/lib/renderers/Form/Transfer.js.map +2 -2
  156. package/lib/renderers/Form/TransferPicker.d.ts +48 -0
  157. package/lib/renderers/Form/TransferPicker.js +29 -0
  158. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  159. package/lib/renderers/Form/TreeSelect.js +2 -2
  160. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  161. package/lib/renderers/Form/index.js +1 -1
  162. package/lib/renderers/Form/index.js.map +2 -2
  163. package/lib/renderers/Form/wrapControl.js +13 -1
  164. package/lib/renderers/Form/wrapControl.js.map +2 -2
  165. package/lib/renderers/IFrame.js +1 -3
  166. package/lib/renderers/IFrame.js.map +2 -2
  167. package/lib/renderers/Json.d.ts +4 -0
  168. package/lib/renderers/Json.js +4 -13
  169. package/lib/renderers/Json.js.map +2 -2
  170. package/lib/renderers/Link.d.ts +4 -2
  171. package/lib/renderers/Link.js +15 -6
  172. package/lib/renderers/Link.js.map +2 -2
  173. package/lib/renderers/List.js +1 -1
  174. package/lib/renderers/List.js.map +2 -2
  175. package/lib/renderers/Mapping.d.ts +9 -2
  176. package/lib/renderers/Mapping.js +18 -6
  177. package/lib/renderers/Mapping.js.map +2 -2
  178. package/lib/renderers/Nav.d.ts +21 -21
  179. package/lib/renderers/Nav.js +39 -21
  180. package/lib/renderers/Nav.js.map +2 -2
  181. package/lib/renderers/Portlet.d.ts +125 -0
  182. package/lib/renderers/Portlet.js +156 -0
  183. package/lib/renderers/Portlet.js.map +13 -0
  184. package/lib/renderers/Property.js +2 -1
  185. package/lib/renderers/Property.js.map +2 -2
  186. package/lib/renderers/SearchBox.d.ts +6 -1
  187. package/lib/renderers/SearchBox.js +19 -5
  188. package/lib/renderers/SearchBox.js.map +2 -2
  189. package/lib/renderers/Table/TableContent.d.ts +4 -1
  190. package/lib/renderers/Table/TableContent.js +21 -1
  191. package/lib/renderers/Table/TableContent.js.map +2 -2
  192. package/lib/renderers/Table/index.d.ts +5 -1
  193. package/lib/renderers/Table/index.js +64 -29
  194. package/lib/renderers/Table/index.js.map +2 -2
  195. package/lib/renderers/Tabs.js +9 -1
  196. package/lib/renderers/Tabs.js.map +2 -2
  197. package/lib/renderers/WebComponent.js +1 -1
  198. package/lib/renderers/WebComponent.js.map +2 -2
  199. package/lib/store/combo.d.ts +2 -16
  200. package/lib/store/crud.js +3 -7
  201. package/lib/store/crud.js.map +2 -2
  202. package/lib/store/form.d.ts +1 -1
  203. package/lib/store/form.js +5 -6
  204. package/lib/store/form.js.map +2 -2
  205. package/lib/store/service.js +5 -4
  206. package/lib/store/service.js.map +2 -2
  207. package/lib/store/table.d.ts +2 -2
  208. package/lib/themes/ang-ie11.css +422 -149
  209. package/lib/themes/ang.css +422 -149
  210. package/lib/themes/ang.css.map +1 -1
  211. package/lib/themes/antd-ie11.css +422 -149
  212. package/lib/themes/antd.css +422 -149
  213. package/lib/themes/antd.css.map +1 -1
  214. package/lib/themes/cxd-ie11.css +456 -182
  215. package/lib/themes/cxd.css +456 -182
  216. package/lib/themes/cxd.css.map +1 -1
  217. package/lib/themes/dark-ie11.css +422 -149
  218. package/lib/themes/dark.css +422 -149
  219. package/lib/themes/dark.css.map +1 -1
  220. package/lib/themes/default.css +456 -182
  221. package/lib/themes/default.css.map +1 -1
  222. package/lib/types.d.ts +37 -0
  223. package/lib/types.js +0 -5
  224. package/lib/types.js.map +2 -2
  225. package/lib/utils/api.d.ts +3 -2
  226. package/lib/utils/api.js +28 -12
  227. package/lib/utils/api.js.map +2 -2
  228. package/lib/utils/dom.d.ts +4 -0
  229. package/lib/utils/dom.js +11 -1
  230. package/lib/utils/dom.js.map +2 -2
  231. package/lib/utils/helper.d.ts +2 -0
  232. package/lib/utils/helper.js +11 -2
  233. package/lib/utils/helper.js.map +2 -2
  234. package/lib/utils/icon.js +3 -0
  235. package/lib/utils/icon.js.map +2 -2
  236. package/package.json +1 -1
  237. package/schema.json +3038 -790
  238. package/scss/_mixins.scss +1 -3
  239. package/scss/_properties.scss +25 -1
  240. package/scss/base/_normalize.scss +2 -0
  241. package/scss/components/_anchor-nav.scss +88 -29
  242. package/scss/components/_card.scss +8 -14
  243. package/scss/components/_collapse.scss +16 -1
  244. package/scss/components/_mapping.scss +6 -0
  245. package/scss/components/_nav.scss +1 -1
  246. package/scss/components/_picker-columns.scss +123 -0
  247. package/scss/components/_popover.scss +17 -0
  248. package/scss/components/_portlet.scss +51 -0
  249. package/scss/components/_status.scss +1 -1
  250. package/scss/components/_table.scss +26 -0
  251. package/scss/components/form/_checks.scss +0 -351
  252. package/scss/components/form/_fieldset.scss +5 -1
  253. package/scss/components/form/_selection.scss +354 -0
  254. package/scss/components/form/_transfer.scss +75 -18
  255. package/scss/themes/_common.scss +4 -0
  256. package/scss/themes/_cxd-variables.scss +4 -1
  257. package/scss/themes/cxd.scss +16 -12
  258. package/sdk/ang-ie11.css +457 -152
  259. package/sdk/ang.css +480 -154
  260. package/sdk/antd-ie11.css +456 -151
  261. package/sdk/antd.css +480 -154
  262. package/sdk/charts.js +13 -13
  263. package/sdk/color-picker.js +65 -69
  264. package/sdk/cropperjs.js +2 -2
  265. package/sdk/cxd-ie11.css +496 -194
  266. package/sdk/cxd.css +517 -190
  267. package/sdk/dark-ie11.css +457 -152
  268. package/sdk/dark.css +480 -154
  269. package/sdk/exceljs.js +1 -1
  270. package/sdk/helper.css.map +1 -1
  271. package/sdk/locale/de-DE.js +2 -0
  272. package/sdk/markdown.js +69 -69
  273. package/sdk/papaparse.js +1 -1
  274. package/sdk/renderers/Form/CityDB.js +1 -1
  275. package/sdk/rest.js +20 -28
  276. package/sdk/rich-text.js +62 -62
  277. package/sdk/sdk-ie11.css +496 -194
  278. package/sdk/sdk.css +517 -190
  279. package/sdk/sdk.js +1268 -1236
  280. package/sdk/thirds/hls.js/hls.js +1 -1
  281. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  282. package/sdk/tinymce.js +57 -57
  283. package/src/Schema.ts +14 -0
  284. package/src/components/AnchorNav.tsx +15 -4
  285. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +41 -37
  286. package/src/components/Badge.tsx +3 -3
  287. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  288. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  289. package/src/components/Link.tsx +28 -37
  290. package/src/components/ModalManager.ts +1 -1
  291. package/src/components/PickerColumn.tsx +429 -0
  292. package/src/components/PickerContainer.tsx +128 -0
  293. package/src/components/Radios.tsx +3 -8
  294. package/src/components/SearchBox.tsx +4 -5
  295. package/src/components/Select.tsx +57 -5
  296. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  297. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  298. package/src/components/TabsTransfer.tsx +13 -7
  299. package/src/components/TabsTransferPicker.tsx +85 -0
  300. package/src/components/Transfer.tsx +71 -50
  301. package/src/components/TransferDropDown.tsx +117 -0
  302. package/src/components/TransferPicker.tsx +84 -0
  303. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  304. package/src/components/WithRemoteConfig.tsx +7 -2
  305. package/src/components/condition-builder/Field.tsx +5 -5
  306. package/src/components/condition-builder/Func.tsx +3 -3
  307. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  308. package/src/components/condition-builder/Item.tsx +5 -12
  309. package/src/components/index.tsx +13 -13
  310. package/src/envOverwrite.ts +0 -1
  311. package/src/factory.tsx +18 -3
  312. package/src/hooks/index.ts +5 -0
  313. package/src/hooks/use-set-state.ts +19 -0
  314. package/src/hooks/use-touch.ts +100 -0
  315. package/src/hooks/use-update-effect.ts +16 -0
  316. package/src/index.tsx +3 -0
  317. package/src/locale/de-DE.ts +2 -0
  318. package/src/locale/en-US.ts +2 -0
  319. package/src/locale/zh-CN.ts +4 -2
  320. package/src/renderers/Action.tsx +28 -2
  321. package/src/renderers/AnchorNav.tsx +4 -0
  322. package/src/renderers/Avatar.tsx +8 -4
  323. package/src/renderers/Breadcrumb.tsx +5 -1
  324. package/src/renderers/CRUD.tsx +33 -3
  325. package/src/renderers/Card.tsx +63 -34
  326. package/src/renderers/Chart.tsx +6 -2
  327. package/src/renderers/Collapse.tsx +4 -2
  328. package/src/renderers/DropDownButton.tsx +1 -1
  329. package/src/renderers/Form/InputCity.tsx +4 -8
  330. package/src/renderers/Form/InputFile.tsx +29 -20
  331. package/src/renderers/Form/InputImage.tsx +11 -3
  332. package/src/renderers/Form/Item.tsx +1 -1
  333. package/src/renderers/Form/Options.tsx +16 -2
  334. package/src/renderers/Form/Select.tsx +144 -21
  335. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  336. package/src/renderers/Form/Transfer.tsx +3 -2
  337. package/src/renderers/Form/TransferPicker.tsx +123 -0
  338. package/src/renderers/Form/TreeSelect.tsx +25 -0
  339. package/src/renderers/Form/index.tsx +1 -1
  340. package/src/renderers/Form/wrapControl.tsx +26 -1
  341. package/src/renderers/IFrame.tsx +2 -4
  342. package/src/renderers/Json.tsx +9 -9
  343. package/src/renderers/Link.tsx +27 -13
  344. package/src/renderers/List.tsx +1 -1
  345. package/src/renderers/Mapping.tsx +27 -11
  346. package/src/renderers/Nav.tsx +108 -60
  347. package/src/renderers/Portlet.tsx +423 -0
  348. package/src/renderers/Property.tsx +3 -2
  349. package/src/renderers/SearchBox.tsx +23 -4
  350. package/src/renderers/Table/TableContent.tsx +40 -2
  351. package/src/renderers/Table/index.tsx +87 -41
  352. package/src/renderers/Tabs.tsx +9 -1
  353. package/src/renderers/WebComponent.tsx +2 -2
  354. package/src/store/crud.ts +3 -8
  355. package/src/store/form.ts +5 -10
  356. package/src/store/service.ts +5 -4
  357. package/src/types.ts +57 -0
  358. package/src/utils/api.ts +40 -20
  359. package/src/utils/dom.tsx +12 -0
  360. package/src/utils/helper.ts +8 -0
  361. package/src/utils/icon.tsx +4 -0
  362. package/dump.rdb +0 -0
  363. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  364. package/lib/components/AssociatedCheckboxes.js +0 -90
  365. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  366. package/lib/components/ChainedCheckboxes.js.map +0 -13
  367. package/lib/components/Checkboxes.js +0 -101
  368. package/lib/components/Checkboxes.js.map +0 -13
  369. package/lib/components/ListCheckboxes.d.ts +0 -739
  370. package/lib/components/ListCheckboxes.js +0 -48
  371. package/lib/components/ListCheckboxes.js.map +0 -13
  372. package/lib/components/ListRadios.d.ts +0 -763
  373. package/lib/components/ListRadios.js +0 -86
  374. package/lib/components/ListRadios.js.map +0 -13
  375. package/lib/components/TableCheckboxes.js.map +0 -13
  376. package/lib/components/TreeCheckboxes.js.map +0 -13
  377. package/lib/components/TreeRadios.d.ts +0 -838
  378. package/lib/components/TreeRadios.js +0 -116
  379. package/lib/components/TreeRadios.js.map +0 -13
  380. package/src/components/ListRadios.tsx +0 -159
  381. package/src/components/TreeRadios.tsx +0 -202
@@ -14,6 +14,9 @@ import {isEffectiveApi} from '../../utils/api';
14
14
  import {isEmpty, createObject, autobind} from '../../utils/helper';
15
15
  import {dataMapping} from '../../utils/tpl-builtin';
16
16
  import {SchemaApi} from '../../Schema';
17
+ import Spinner from '../../components/Spinner';
18
+ import {BaseTransferRenderer, TransferControlSchema} from './Transfer';
19
+ import TransferDropDown from '../../components/TransferDropDown';
17
20
 
18
21
  /**
19
22
  * Select 下拉选择框。
@@ -28,11 +31,6 @@ export interface SelectControlSchema extends FormOptionsControl {
28
31
  */
29
32
  autoComplete?: SchemaApi;
30
33
 
31
- /**
32
- * 是否可以搜索值
33
- */
34
- searchable?: boolean;
35
-
36
34
  /**
37
35
  * 可以自定义菜单展示。
38
36
  */
@@ -42,6 +40,51 @@ export interface SelectControlSchema extends FormOptionsControl {
42
40
  * 边框模式,全边框,还是半边框,或者没边框。
43
41
  */
44
42
  borderMode?: 'full' | 'half' | 'none';
43
+
44
+ /**
45
+ * 勾选展示模式
46
+ */
47
+ selectMode?: 'table' | 'group' | 'tree' | 'chained' | 'associated';
48
+
49
+ /**
50
+ * 当 selectMode 为 associated 时用来定义左侧的选项
51
+ */
52
+ leftOptions?: Array<Option>;
53
+
54
+ /**
55
+ * 当 selectMode 为 associated 时用来定义左侧的选择模式
56
+ */
57
+ leftMode?: 'tree' | 'list';
58
+
59
+ /**
60
+ * 当 selectMode 为 associated 时用来定义右侧的选择模式
61
+ */
62
+ rightMode?: 'table' | 'list' | 'tree' | 'chained';
63
+
64
+ /**
65
+ * 搜索结果展示模式
66
+ */
67
+ searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
68
+
69
+ /**
70
+ * 当 selectMode 为 table 时定义表格列信息。
71
+ */
72
+ columns?: Array<any>;
73
+
74
+ /**
75
+ * 当 searchResultMode 为 table 时定义表格列信息。
76
+ */
77
+ searchResultColumns?: Array<any>;
78
+
79
+ /**
80
+ * 可搜索?
81
+ */
82
+ searchable?: boolean;
83
+
84
+ /**
85
+ * 搜索 API
86
+ */
87
+ searchApi?: SchemaApi;
45
88
  }
46
89
 
47
90
  export interface SelectProps extends OptionsControlProps {
@@ -220,6 +263,18 @@ export default class SelectControl extends React.Component<SelectProps, any> {
220
263
  reload && reload();
221
264
  }
222
265
 
266
+ option2value() {}
267
+
268
+ renderOtherMode() {
269
+ const {selectMode, ...rest} = this.props;
270
+ return (
271
+ <TransferDropdownRenderer
272
+ {...rest}
273
+ selectMode={selectMode === 'group' ? 'list' : selectMode}
274
+ />
275
+ );
276
+ }
277
+
223
278
  render() {
224
279
  let {
225
280
  autoComplete,
@@ -241,6 +296,7 @@ export default class SelectControl extends React.Component<SelectProps, any> {
241
296
  render,
242
297
  menuTpl,
243
298
  borderMode,
299
+ selectMode,
244
300
  ...rest
245
301
  } = this.props;
246
302
 
@@ -250,25 +306,92 @@ export default class SelectControl extends React.Component<SelectProps, any> {
250
306
 
251
307
  return (
252
308
  <div className={cx(`${classPrefix}SelectControl`, className)}>
253
- <Select
254
- {...rest}
255
- borderMode={borderMode}
256
- placeholder={placeholder}
257
- multiple={multiple || multi}
258
- ref={this.inputRef}
309
+ {['table', 'list', 'group', 'tree', 'chained', 'associated'].includes(
310
+ selectMode
311
+ ) ? (
312
+ this.renderOtherMode()
313
+ ) : (
314
+ <Select
315
+ {...rest}
316
+ borderMode={borderMode}
317
+ placeholder={placeholder}
318
+ multiple={multiple || multi}
319
+ ref={this.inputRef}
320
+ value={selectedOptions}
321
+ options={options}
322
+ loadOptions={
323
+ isEffectiveApi(autoComplete) ? this.lazyloadRemote : undefined
324
+ }
325
+ creatable={creatable}
326
+ searchable={searchable || !!autoComplete}
327
+ onChange={this.changeValue}
328
+ loading={loading}
329
+ noResultsText={noResultsText}
330
+ renderMenu={menuTpl ? this.renderMenu : undefined}
331
+ />
332
+ )}
333
+ </div>
334
+ );
335
+ }
336
+ }
337
+
338
+ export interface TransferDropDownProps
339
+ extends OptionsControlProps,
340
+ Omit<
341
+ TransferControlSchema,
342
+ | 'type'
343
+ | 'options'
344
+ | 'inputClassName'
345
+ | 'className'
346
+ | 'descriptionClassName'
347
+ > {}
348
+
349
+ class TransferDropdownRenderer extends BaseTransferRenderer<TransferDropDownProps> {
350
+ render() {
351
+ const {
352
+ className,
353
+ classnames: cx,
354
+ options,
355
+ selectedOptions,
356
+ sortable,
357
+ loading,
358
+ searchable,
359
+ searchResultMode,
360
+ showArrow,
361
+ deferLoad,
362
+ disabled,
363
+ selectTitle,
364
+ selectMode,
365
+ multiple,
366
+ leftMode,
367
+ leftOptions,
368
+ columns
369
+ } = this.props;
370
+
371
+ return (
372
+ <>
373
+ <TransferDropDown
374
+ selectMode={selectMode}
375
+ className={className}
259
376
  value={selectedOptions}
377
+ disabled={disabled}
260
378
  options={options}
261
- loadOptions={
262
- isEffectiveApi(autoComplete) ? this.lazyloadRemote : undefined
263
- }
264
- creatable={creatable}
265
- searchable={searchable || !!autoComplete}
266
- onChange={this.changeValue}
267
- loading={loading}
268
- noResultsText={noResultsText}
269
- renderMenu={menuTpl ? this.renderMenu : undefined}
379
+ onChange={this.handleChange}
380
+ option2value={this.option2value}
381
+ sortable={sortable}
382
+ searchResultMode={searchResultMode}
383
+ onSearch={searchable ? this.handleSearch : undefined}
384
+ showArrow={showArrow}
385
+ onDeferLoad={deferLoad}
386
+ selectTitle={selectTitle}
387
+ multiple={multiple}
388
+ columns={columns}
389
+ leftMode={leftMode}
390
+ leftOptions={leftOptions}
270
391
  />
271
- </div>
392
+
393
+ <Spinner overlay key="info" show={loading} />
394
+ </>
272
395
  );
273
396
  }
274
397
  }
@@ -0,0 +1,123 @@
1
+ import {
2
+ OptionsControlProps,
3
+ OptionsControl,
4
+ FormOptionsControl
5
+ } from './Options';
6
+ import React from 'react';
7
+ import {Api} from '../../types';
8
+ import Spinner from '../../components/Spinner';
9
+ import {BaseTransferRenderer} from './Transfer';
10
+ import TabsTransfer from '../../components/TabsTransfer';
11
+ import {SchemaApi} from '../../Schema';
12
+ import TransferPicker from '../../components/TransferPicker';
13
+ import TabsTransferPicker from '../../components/TabsTransferPicker';
14
+
15
+ /**
16
+ * TabsTransferPicker 穿梭器的弹框形态
17
+ * 文档:https://baidu.gitee.io/amis/docs/components/form/tabs-transfer-picker
18
+ */
19
+ export interface TabsTransferPickerControlSchema extends FormOptionsControl {
20
+ type: 'tabs-transfer-picker';
21
+
22
+ /**
23
+ * 是否显示剪头
24
+ */
25
+ showArrow?: boolean;
26
+
27
+ /**
28
+ * 可排序?
29
+ */
30
+ sortable?: boolean;
31
+
32
+ /**
33
+ * 搜索结果展示模式
34
+ */
35
+ searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
36
+
37
+ /**
38
+ * 可搜索?
39
+ */
40
+ searchable?: boolean;
41
+
42
+ /**
43
+ * 搜索 API
44
+ */
45
+ searchApi?: SchemaApi;
46
+
47
+ /**
48
+ * 左侧的标题文字
49
+ */
50
+ selectTitle?: string;
51
+
52
+ /**
53
+ * 右侧结果的标题文字
54
+ */
55
+ resultTitle?: string;
56
+
57
+ /**
58
+ * 弹窗大小
59
+ */
60
+ pickerSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
61
+ }
62
+
63
+ export interface TabsTransferProps
64
+ extends OptionsControlProps,
65
+ Omit<
66
+ TabsTransferPickerControlSchema,
67
+ | 'type'
68
+ | 'options'
69
+ | 'inputClassName'
70
+ | 'className'
71
+ | 'descriptionClassName'
72
+ > {}
73
+
74
+ @OptionsControl({
75
+ type: 'tabs-transfer-picker'
76
+ })
77
+ export class TabsTransferPickerRenderer extends BaseTransferRenderer<TabsTransferProps> {
78
+ render() {
79
+ const {
80
+ className,
81
+ classnames: cx,
82
+ options,
83
+ selectedOptions,
84
+ sortable,
85
+ loading,
86
+ searchable,
87
+ searchResultMode,
88
+ showArrow,
89
+ deferLoad,
90
+ disabled,
91
+ selectTitle,
92
+ resultTitle,
93
+ pickerSize,
94
+ columns,
95
+ leftMode,
96
+ leftOptions
97
+ } = this.props;
98
+
99
+ return (
100
+ <div className={cx('TabsTransferControl', className)}>
101
+ <TabsTransferPicker
102
+ value={selectedOptions}
103
+ disabled={disabled}
104
+ options={options}
105
+ onChange={this.handleChange}
106
+ option2value={this.option2value}
107
+ sortable={sortable}
108
+ searchResultMode={searchResultMode}
109
+ onSearch={searchable ? this.handleSearch : undefined}
110
+ showArrow={showArrow}
111
+ onDeferLoad={deferLoad}
112
+ selectTitle={selectTitle}
113
+ resultTitle={resultTitle}
114
+ size={pickerSize}
115
+ leftMode={leftMode}
116
+ leftOptions={leftOptions}
117
+ />
118
+
119
+ <Spinner overlay key="info" show={loading} />
120
+ </div>
121
+ );
122
+ }
123
+ }
@@ -207,8 +207,9 @@ export class BaseTransferRenderer<
207
207
  (option: Option) => {
208
208
  return !!(
209
209
  (Array.isArray(option.children) && option.children.length) ||
210
- regexp.test(option[(labelField as string) || 'label']) ||
211
- regexp.test(option[(valueField as string) || 'value'])
210
+ (option[(valueField as string) || 'value'] &&
211
+ (regexp.test(option[(labelField as string) || 'label']) ||
212
+ regexp.test(option[(valueField as string) || 'value'])))
212
213
  );
213
214
  },
214
215
  0,
@@ -0,0 +1,123 @@
1
+ import {
2
+ OptionsControlProps,
3
+ OptionsControl,
4
+ FormOptionsControl
5
+ } from './Options';
6
+ import React from 'react';
7
+ import {Api} from '../../types';
8
+ import Spinner from '../../components/Spinner';
9
+ import {BaseTransferRenderer} from './Transfer';
10
+ import TabsTransfer from '../../components/TabsTransfer';
11
+ import {SchemaApi} from '../../Schema';
12
+ import TransferPicker from '../../components/TransferPicker';
13
+
14
+ /**
15
+ * TransferPicker 穿梭器的弹框形态
16
+ * 文档:https://baidu.gitee.io/amis/docs/components/form/transfer-picker
17
+ */
18
+ export interface TransferPickerControlSchema extends FormOptionsControl {
19
+ type: 'transfer-picker';
20
+
21
+ /**
22
+ * 是否显示剪头
23
+ */
24
+ showArrow?: boolean;
25
+
26
+ /**
27
+ * 可排序?
28
+ */
29
+ sortable?: boolean;
30
+
31
+ /**
32
+ * 搜索结果展示模式
33
+ */
34
+ searchResultMode?: 'table' | 'list' | 'tree' | 'chained';
35
+
36
+ /**
37
+ * 可搜索?
38
+ */
39
+ searchable?: boolean;
40
+
41
+ /**
42
+ * 搜索 API
43
+ */
44
+ searchApi?: SchemaApi;
45
+
46
+ /**
47
+ * 左侧的标题文字
48
+ */
49
+ selectTitle?: string;
50
+
51
+ /**
52
+ * 右侧结果的标题文字
53
+ */
54
+ resultTitle?: string;
55
+
56
+ /**
57
+ * 弹窗大小
58
+ */
59
+ pickerSize?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'full';
60
+ }
61
+
62
+ export interface TabsTransferProps
63
+ extends OptionsControlProps,
64
+ Omit<
65
+ TransferPickerControlSchema,
66
+ | 'type'
67
+ | 'options'
68
+ | 'inputClassName'
69
+ | 'className'
70
+ | 'descriptionClassName'
71
+ > {}
72
+
73
+ @OptionsControl({
74
+ type: 'transfer-picker'
75
+ })
76
+ export class TransferPickerRenderer extends BaseTransferRenderer<TabsTransferProps> {
77
+ render() {
78
+ const {
79
+ className,
80
+ classnames: cx,
81
+ options,
82
+ selectedOptions,
83
+ sortable,
84
+ loading,
85
+ searchable,
86
+ searchResultMode,
87
+ showArrow,
88
+ deferLoad,
89
+ disabled,
90
+ selectTitle,
91
+ resultTitle,
92
+ pickerSize,
93
+ columns,
94
+ leftMode,
95
+ leftOptions
96
+ } = this.props;
97
+
98
+ return (
99
+ <div className={cx('TabsTransferControl', className)}>
100
+ <TransferPicker
101
+ value={selectedOptions}
102
+ disabled={disabled}
103
+ options={options}
104
+ onChange={this.handleChange}
105
+ option2value={this.option2value}
106
+ sortable={sortable}
107
+ searchResultMode={searchResultMode}
108
+ onSearch={searchable ? this.handleSearch : undefined}
109
+ showArrow={showArrow}
110
+ onDeferLoad={deferLoad}
111
+ selectTitle={selectTitle}
112
+ resultTitle={resultTitle}
113
+ size={pickerSize}
114
+ columns={columns}
115
+ leftMode={leftMode}
116
+ leftOptions={leftOptions}
117
+ />
118
+
119
+ <Spinner overlay key="info" show={loading} />
120
+ </div>
121
+ );
122
+ }
123
+ }
@@ -478,6 +478,19 @@ export default class TreeSelectControl extends React.Component<
478
478
  minLength,
479
479
  labelField,
480
480
  nodePath,
481
+ onAdd,
482
+ creatable,
483
+ createTip,
484
+ addControls,
485
+ onEdit,
486
+ editable,
487
+ editTip,
488
+ editControls,
489
+ removable,
490
+ removeTip,
491
+ onDelete,
492
+ rootCreatable,
493
+ rootCreateTip,
481
494
  translate: __,
482
495
  deferLoad,
483
496
  expandTreeOptions
@@ -533,6 +546,18 @@ export default class TreeSelectControl extends React.Component<
533
546
  pathSeparator={pathSeparator}
534
547
  maxLength={maxLength}
535
548
  minLength={minLength}
549
+ onAdd={onAdd}
550
+ creatable={creatable}
551
+ createTip={createTip}
552
+ rootCreatable={rootCreatable}
553
+ rootCreateTip={rootCreateTip}
554
+ onEdit={onEdit}
555
+ editable={editable}
556
+ editTip={editTip}
557
+ removable={removable}
558
+ removeTip={removeTip}
559
+ onDelete={onDelete}
560
+ bultinCUD={!addControls && !editControls}
536
561
  onDeferLoad={deferLoad}
537
562
  onExpandTree={expandTreeOptions}
538
563
  />
@@ -827,7 +827,7 @@ export default class Form extends React.Component<FormProps, object> {
827
827
  );
828
828
  }
829
829
 
830
- if (store.persistData) {
830
+ if (store.persistData && store.inited) {
831
831
  store.setLocalPersistData();
832
832
  }
833
833
  }
@@ -479,8 +479,17 @@ export function wrapControl<
479
479
  const {
480
480
  formStore: form,
481
481
  onChange,
482
- $schema: {name, onChange: onFormItemChange, maxLength, minLength},
482
+ $schema: {
483
+ name,
484
+ id,
485
+ label,
486
+ type,
487
+ onChange: onFormItemChange,
488
+ maxLength,
489
+ minLength
490
+ },
483
491
  data,
492
+ env,
484
493
  validateOnChange,
485
494
  formSubmited
486
495
  } = this.props;
@@ -495,6 +504,22 @@ export function wrapControl<
495
504
  return;
496
505
  }
497
506
 
507
+ if (type !== 'input-password') {
508
+ env?.tracker(
509
+ {
510
+ eventType: 'formItemChange',
511
+ eventData: {
512
+ id,
513
+ name,
514
+ label,
515
+ type,
516
+ value
517
+ }
518
+ },
519
+ this.props
520
+ );
521
+ }
522
+
498
523
  this.model.changeEmitedValue(value);
499
524
  if (
500
525
  onFormItemChange?.(value, oldValue, this.model, form) === false
@@ -6,7 +6,7 @@ import {ScopedContext, IScopedContext} from '../Scoped';
6
6
  import {buildApi, isApiOutdated} from '../utils/api';
7
7
  import {BaseSchema, SchemaUrlPath} from '../Schema';
8
8
  import {ActionSchema} from './Action';
9
- import {isPureVariable, resolveVariableAndFilter} from '../utils/tpl-builtin';
9
+ import {dataMapping} from '../utils/tpl-builtin';
10
10
 
11
11
  /**
12
12
  * IFrame 渲染器
@@ -161,9 +161,7 @@ export default class IFrame extends React.Component<IFrameProps, object> {
161
161
  ...style
162
162
  };
163
163
 
164
- if (isPureVariable(src)) {
165
- src = resolveVariableAndFilter(src, data, '| raw');
166
- }
164
+ src = dataMapping(src, data);
167
165
 
168
166
  const finalSrc = src ? buildApi(src, data).url : undefined;
169
167
 
@@ -29,6 +29,11 @@ export interface JsonSchema extends BaseSchema {
29
29
  * 是否可修改
30
30
  */
31
31
  mutable?: boolean;
32
+
33
+ /**
34
+ * 是否显示数据类型
35
+ */
36
+ displayDataTypes?: boolean;
32
37
  }
33
38
 
34
39
  export interface JSONProps extends RendererProps, JsonSchema {
@@ -44,7 +49,8 @@ export class JSONField extends React.Component<JSONProps, object> {
44
49
  static defaultProps: Partial<JSONProps> = {
45
50
  placeholder: '-',
46
51
  levelExpand: 1,
47
- source: ''
52
+ source: '',
53
+ displayDataTypes: false
48
54
  };
49
55
 
50
56
  @autobind
@@ -79,6 +85,7 @@ export class JSONField extends React.Component<JSONProps, object> {
79
85
  source,
80
86
  levelExpand,
81
87
  mutable,
88
+ displayDataTypes,
82
89
  name
83
90
  } = this.props;
84
91
 
@@ -87,14 +94,6 @@ export class JSONField extends React.Component<JSONProps, object> {
87
94
  let data = value;
88
95
  if (source !== undefined && isPureVariable(source)) {
89
96
  data = resolveVariableAndFilter(source, this.props.data, '| raw');
90
- } else if (typeof value === 'string') {
91
- try {
92
- data = JSON.parse(value);
93
- } catch (e) {
94
- data = {
95
- error: e.message
96
- };
97
- }
98
97
  }
99
98
 
100
99
  let jsonThemeValue = jsonTheme;
@@ -124,6 +123,7 @@ export class JSONField extends React.Component<JSONProps, object> {
124
123
  theme={(jsonThemeValue as any) ?? 'rjv-default'}
125
124
  shouldCollapse={this.shouldExpandNode}
126
125
  enableClipboard={false}
126
+ displayDataTypes={displayDataTypes}
127
127
  iconStyle="square"
128
128
  onEdit={name && mutable ? this.emitChange : false}
129
129
  onDelete={name && mutable ? this.emitChange : false}