amis 1.4.2-beta.1 → 1.4.2-beta.15

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 (449) hide show
  1. package/lib/Schema.d.ts +11 -3
  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/Checkbox.d.ts +20 -20
  16. package/lib/components/Collapse.d.ts +51 -23
  17. package/lib/components/Collapse.js +69 -11
  18. package/lib/components/Collapse.js.map +2 -2
  19. package/lib/components/CollapseGroup.d.ts +88 -0
  20. package/lib/components/CollapseGroup.js +81 -0
  21. package/lib/components/CollapseGroup.js.map +13 -0
  22. package/lib/components/ColorPicker.d.ts +84 -84
  23. package/lib/components/DatePicker.d.ts +84 -84
  24. package/lib/components/DateRangePicker.d.ts +84 -84
  25. package/lib/components/Editor.d.ts +84 -84
  26. package/lib/components/GridNav.d.ts +52 -0
  27. package/lib/components/GridNav.js +123 -0
  28. package/lib/components/GridNav.js.map +13 -0
  29. package/lib/components/GroupedSelection.d.ts +907 -0
  30. package/lib/components/GroupedSelection.js +48 -0
  31. package/lib/components/GroupedSelection.js.map +13 -0
  32. package/lib/components/InputBox.d.ts +22 -21
  33. package/lib/components/InputBox.js +10 -2
  34. package/lib/components/InputBox.js.map +2 -2
  35. package/lib/components/Link.d.ts +29 -36
  36. package/lib/components/Link.js +14 -15
  37. package/lib/components/Link.js.map +2 -2
  38. package/lib/components/ListGroup.d.ts +21 -21
  39. package/lib/components/ModalManager.js +1 -1
  40. package/lib/components/ModalManager.js.map +2 -2
  41. package/lib/components/MonthRangePicker.d.ts +84 -84
  42. package/lib/components/NumberInput.d.ts +20 -20
  43. package/lib/components/PickerColumn.d.ts +514 -0
  44. package/lib/components/PickerColumn.js +279 -0
  45. package/lib/components/PickerColumn.js.map +13 -0
  46. package/lib/components/PickerContainer.d.ts +513 -0
  47. package/lib/components/PickerContainer.js +96 -0
  48. package/lib/components/PickerContainer.js.map +13 -0
  49. package/lib/components/Radios.d.ts +22 -21
  50. package/lib/components/Radios.js +1 -0
  51. package/lib/components/Radios.js.map +2 -2
  52. package/lib/components/Rating.d.ts +21 -21
  53. package/lib/components/ResultBox.d.ts +84 -84
  54. package/lib/components/ResultBox.js +10 -2
  55. package/lib/components/ResultBox.js.map +2 -2
  56. package/lib/components/SearchBox.d.ts +84 -84
  57. package/lib/components/SearchBox.js +4 -4
  58. package/lib/components/SearchBox.js.map +2 -2
  59. package/lib/components/Select.d.ts +245 -237
  60. package/lib/components/Select.js +25 -4
  61. package/lib/components/Select.js.map +2 -2
  62. package/lib/components/{Checkboxes.d.ts → Selection.d.ts} +273 -98
  63. package/lib/components/Selection.js +134 -0
  64. package/lib/components/Selection.js.map +13 -0
  65. package/lib/components/{TableCheckboxes.d.ts → TableSelection.d.ts} +266 -96
  66. package/lib/components/{TableCheckboxes.js → TableSelection.js} +30 -30
  67. package/lib/components/TableSelection.js.map +13 -0
  68. package/lib/components/Tabs.d.ts +20 -20
  69. package/lib/components/TabsTransfer.d.ts +84 -84
  70. package/lib/components/TabsTransfer.js +9 -9
  71. package/lib/components/TabsTransfer.js.map +2 -2
  72. package/lib/components/TabsTransferPicker.d.ts +489 -0
  73. package/lib/components/TabsTransferPicker.js +60 -0
  74. package/lib/components/TabsTransferPicker.js.map +13 -0
  75. package/lib/components/Toast.d.ts +86 -85
  76. package/lib/components/Toast.js +6 -3
  77. package/lib/components/Toast.js.map +2 -2
  78. package/lib/components/Transfer.d.ts +908 -274
  79. package/lib/components/Transfer.js +31 -24
  80. package/lib/components/Transfer.js.map +2 -2
  81. package/lib/components/TransferDropDown.d.ts +488 -0
  82. package/lib/components/TransferDropDown.js +59 -0
  83. package/lib/components/TransferDropDown.js.map +13 -0
  84. package/lib/components/TransferPicker.d.ts +493 -0
  85. package/lib/components/TransferPicker.js +60 -0
  86. package/lib/components/TransferPicker.js.map +13 -0
  87. package/lib/components/Tree.d.ts +115 -84
  88. package/lib/components/Tree.js +183 -30
  89. package/lib/components/Tree.js.map +2 -2
  90. package/lib/components/{TreeCheckboxes.d.ts → TreeSelection.d.ts} +269 -99
  91. package/lib/components/{TreeCheckboxes.js → TreeSelection.js} +36 -32
  92. package/lib/components/TreeSelection.js.map +13 -0
  93. package/lib/components/WithRemoteConfig.js +1 -1
  94. package/lib/components/WithRemoteConfig.js.map +2 -2
  95. package/lib/components/condition-builder/Field.js +5 -2
  96. package/lib/components/condition-builder/Field.js.map +2 -2
  97. package/lib/components/condition-builder/Func.js +2 -2
  98. package/lib/components/condition-builder/Func.js.map +2 -2
  99. package/lib/components/condition-builder/InputSwitch.js +2 -2
  100. package/lib/components/condition-builder/InputSwitch.js.map +2 -2
  101. package/lib/components/condition-builder/Item.js +3 -3
  102. package/lib/components/condition-builder/Item.js.map +2 -2
  103. package/lib/components/icons.js +2 -0
  104. package/lib/components/icons.js.map +2 -2
  105. package/lib/components/index.d.ts +8 -8
  106. package/lib/components/index.js +16 -16
  107. package/lib/components/index.js.map +2 -2
  108. package/lib/envOverwrite.d.ts +1 -1
  109. package/lib/envOverwrite.js +24 -9
  110. package/lib/envOverwrite.js.map +2 -2
  111. package/lib/factory.d.ts +15 -1
  112. package/lib/factory.js +35 -6
  113. package/lib/factory.js.map +2 -2
  114. package/lib/helper.css.map +1 -1
  115. package/lib/hooks/index.d.ts +5 -0
  116. package/lib/hooks/index.js +14 -0
  117. package/lib/hooks/index.js.map +13 -0
  118. package/lib/hooks/use-set-state.d.ts +2 -0
  119. package/lib/hooks/use-set-state.js +15 -0
  120. package/lib/hooks/use-set-state.js.map +13 -0
  121. package/lib/hooks/use-touch.d.ts +16 -0
  122. package/lib/hooks/use-touch.js +73 -0
  123. package/lib/hooks/use-touch.js.map +13 -0
  124. package/lib/hooks/use-update-effect.d.ts +3 -0
  125. package/lib/hooks/use-update-effect.js +17 -0
  126. package/lib/hooks/use-update-effect.js.map +13 -0
  127. package/lib/icons/download.js +7 -0
  128. package/lib/icons/drag-bar.js +10 -3
  129. package/lib/index.d.ts +5 -0
  130. package/lib/index.js +6 -1
  131. package/lib/index.js.map +2 -2
  132. package/lib/locale/de-DE.js +2 -0
  133. package/lib/locale/de-DE.js.map +2 -2
  134. package/lib/locale/en-US.js +3 -0
  135. package/lib/locale/en-US.js.map +2 -2
  136. package/lib/locale/zh-CN.js +5 -2
  137. package/lib/locale/zh-CN.js.map +2 -2
  138. package/lib/renderers/Action.d.ts +4 -3
  139. package/lib/renderers/Action.js +17 -4
  140. package/lib/renderers/Action.js.map +2 -2
  141. package/lib/renderers/AnchorNav.d.ts +1 -0
  142. package/lib/renderers/AnchorNav.js +2 -2
  143. package/lib/renderers/AnchorNav.js.map +2 -2
  144. package/lib/renderers/Avatar.js +3 -3
  145. package/lib/renderers/Avatar.js.map +2 -2
  146. package/lib/renderers/Breadcrumb.js +1 -1
  147. package/lib/renderers/Breadcrumb.js.map +2 -2
  148. package/lib/renderers/CRUD.d.ts +9 -0
  149. package/lib/renderers/CRUD.js +24 -4
  150. package/lib/renderers/CRUD.js.map +2 -2
  151. package/lib/renderers/Card.d.ts +4 -0
  152. package/lib/renderers/Card.js +29 -23
  153. package/lib/renderers/Card.js.map +2 -2
  154. package/lib/renderers/Chart.js +1 -1
  155. package/lib/renderers/Chart.js.map +2 -2
  156. package/lib/renderers/Collapse.d.ts +25 -20
  157. package/lib/renderers/Collapse.js +10 -72
  158. package/lib/renderers/Collapse.js.map +2 -2
  159. package/lib/renderers/CollapseGroup.d.ts +42 -0
  160. package/lib/renderers/CollapseGroup.js +33 -0
  161. package/lib/renderers/CollapseGroup.js.map +13 -0
  162. package/lib/renderers/DropDownButton.js +1 -1
  163. package/lib/renderers/DropDownButton.js.map +2 -2
  164. package/lib/renderers/Form/DiffEditor.d.ts +4 -3
  165. package/lib/renderers/Form/Editor.d.ts +3 -2
  166. package/lib/renderers/Form/InputCity.d.ts +84 -84
  167. package/lib/renderers/Form/InputCity.js +7 -6
  168. package/lib/renderers/Form/InputCity.js.map +2 -2
  169. package/lib/renderers/Form/InputColor.d.ts +84 -84
  170. package/lib/renderers/Form/InputFile.d.ts +6 -0
  171. package/lib/renderers/Form/InputFile.js +28 -8
  172. package/lib/renderers/Form/InputFile.js.map +2 -2
  173. package/lib/renderers/Form/InputImage.js +11 -4
  174. package/lib/renderers/Form/InputImage.js.map +2 -2
  175. package/lib/renderers/Form/Item.d.ts +1 -1
  176. package/lib/renderers/Form/Item.js +2 -1
  177. package/lib/renderers/Form/Item.js.map +2 -2
  178. package/lib/renderers/Form/Options.js +13 -3
  179. package/lib/renderers/Form/Options.js.map +2 -2
  180. package/lib/renderers/Form/Select.d.ts +42 -4
  181. package/lib/renderers/Form/Select.js +37 -3
  182. package/lib/renderers/Form/Select.js.map +2 -2
  183. package/lib/renderers/Form/TabsTransferPicker.d.ts +48 -0
  184. package/lib/renderers/Form/TabsTransferPicker.js +29 -0
  185. package/lib/renderers/Form/TabsTransferPicker.js.map +13 -0
  186. package/lib/renderers/Form/Transfer.js +18 -3
  187. package/lib/renderers/Form/Transfer.js.map +2 -2
  188. package/lib/renderers/Form/TransferPicker.d.ts +52 -0
  189. package/lib/renderers/Form/TransferPicker.js +43 -0
  190. package/lib/renderers/Form/TransferPicker.js.map +13 -0
  191. package/lib/renderers/Form/TreeSelect.js +2 -2
  192. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  193. package/lib/renderers/Form/index.d.ts +5 -0
  194. package/lib/renderers/Form/index.js +5 -3
  195. package/lib/renderers/Form/index.js.map +2 -2
  196. package/lib/renderers/Form/wrapControl.js +13 -1
  197. package/lib/renderers/Form/wrapControl.js.map +2 -2
  198. package/lib/renderers/GridNav.d.ts +99 -0
  199. package/lib/renderers/GridNav.js +82 -0
  200. package/lib/renderers/GridNav.js.map +13 -0
  201. package/lib/renderers/IFrame.js +1 -3
  202. package/lib/renderers/IFrame.js.map +2 -2
  203. package/lib/renderers/Json.d.ts +4 -0
  204. package/lib/renderers/Json.js +4 -13
  205. package/lib/renderers/Json.js.map +2 -2
  206. package/lib/renderers/Link.d.ts +4 -2
  207. package/lib/renderers/Link.js +15 -6
  208. package/lib/renderers/Link.js.map +2 -2
  209. package/lib/renderers/List.js +1 -1
  210. package/lib/renderers/List.js.map +2 -2
  211. package/lib/renderers/Mapping.d.ts +9 -2
  212. package/lib/renderers/Mapping.js +18 -6
  213. package/lib/renderers/Mapping.js.map +2 -2
  214. package/lib/renderers/Nav.d.ts +21 -21
  215. package/lib/renderers/Nav.js +39 -21
  216. package/lib/renderers/Nav.js.map +2 -2
  217. package/lib/renderers/Portlet.d.ts +125 -0
  218. package/lib/renderers/Portlet.js +156 -0
  219. package/lib/renderers/Portlet.js.map +13 -0
  220. package/lib/renderers/Property.js +2 -1
  221. package/lib/renderers/Property.js.map +2 -2
  222. package/lib/renderers/SearchBox.d.ts +6 -1
  223. package/lib/renderers/SearchBox.js +19 -5
  224. package/lib/renderers/SearchBox.js.map +2 -2
  225. package/lib/renderers/Table/TableContent.d.ts +4 -1
  226. package/lib/renderers/Table/TableContent.js +21 -1
  227. package/lib/renderers/Table/TableContent.js.map +2 -2
  228. package/lib/renderers/Table/index.d.ts +5 -1
  229. package/lib/renderers/Table/index.js +65 -30
  230. package/lib/renderers/Table/index.js.map +2 -2
  231. package/lib/renderers/Tabs.js +9 -1
  232. package/lib/renderers/Tabs.js.map +2 -2
  233. package/lib/renderers/WebComponent.js +1 -1
  234. package/lib/renderers/WebComponent.js.map +2 -2
  235. package/lib/store/combo.d.ts +2 -16
  236. package/lib/store/crud.js +3 -7
  237. package/lib/store/crud.js.map +2 -2
  238. package/lib/store/form.d.ts +1 -1
  239. package/lib/store/form.js +5 -6
  240. package/lib/store/form.js.map +2 -2
  241. package/lib/store/formItem.js +44 -4
  242. package/lib/store/formItem.js.map +2 -2
  243. package/lib/store/service.js +5 -4
  244. package/lib/store/service.js.map +2 -2
  245. package/lib/store/table.d.ts +3 -2
  246. package/lib/store/table.js +35 -12
  247. package/lib/store/table.js.map +2 -2
  248. package/lib/themes/ang-ie11.css +689 -175
  249. package/lib/themes/ang.css +689 -175
  250. package/lib/themes/ang.css.map +1 -1
  251. package/lib/themes/antd-ie11.css +689 -175
  252. package/lib/themes/antd.css +689 -175
  253. package/lib/themes/antd.css.map +1 -1
  254. package/lib/themes/cxd-ie11.css +728 -213
  255. package/lib/themes/cxd.css +728 -213
  256. package/lib/themes/cxd.css.map +1 -1
  257. package/lib/themes/dark-ie11.css +689 -175
  258. package/lib/themes/dark.css +689 -175
  259. package/lib/themes/dark.css.map +1 -1
  260. package/lib/themes/default.css +728 -213
  261. package/lib/themes/default.css.map +1 -1
  262. package/lib/types.d.ts +38 -1
  263. package/lib/types.js +0 -5
  264. package/lib/types.js.map +2 -2
  265. package/lib/utils/api.d.ts +4 -2
  266. package/lib/utils/api.js +104 -17
  267. package/lib/utils/api.js.map +2 -2
  268. package/lib/utils/dom.d.ts +4 -0
  269. package/lib/utils/dom.js +11 -1
  270. package/lib/utils/dom.js.map +2 -2
  271. package/lib/utils/helper.d.ts +8 -0
  272. package/lib/utils/helper.js +28 -2
  273. package/lib/utils/helper.js.map +2 -2
  274. package/lib/utils/icon.js +3 -0
  275. package/lib/utils/icon.js.map +2 -2
  276. package/package.json +1 -1
  277. package/schema.json +3326 -836
  278. package/scss/_mixins.scss +1 -3
  279. package/scss/_properties.scss +25 -1
  280. package/scss/base/_common.scss +3 -0
  281. package/scss/base/_normalize.scss +2 -0
  282. package/scss/components/_anchor-nav.scss +89 -29
  283. package/scss/components/_card.scss +8 -14
  284. package/scss/components/_collapse-group.scss +11 -0
  285. package/scss/components/_collapse.scss +48 -22
  286. package/scss/components/_grid-nav.scss +128 -0
  287. package/scss/components/_input-box.scss +1 -0
  288. package/scss/components/_mapping.scss +6 -0
  289. package/scss/components/_nav.scss +2 -2
  290. package/scss/components/_picker-columns.scss +124 -0
  291. package/scss/components/_popover.scss +13 -0
  292. package/scss/components/_portlet.scss +51 -0
  293. package/scss/components/_result-box.scss +1 -0
  294. package/scss/components/_spinner.scss +5 -4
  295. package/scss/components/_status.scss +1 -1
  296. package/scss/components/_table.scss +32 -0
  297. package/scss/components/form/_checks.scss +0 -351
  298. package/scss/components/form/_combo.scss +4 -0
  299. package/scss/components/form/_fieldset.scss +5 -1
  300. package/scss/components/form/_file.scss +11 -0
  301. package/scss/components/form/_form.scss +48 -0
  302. package/scss/components/form/_selection.scss +354 -0
  303. package/scss/components/form/_transfer.scss +75 -18
  304. package/scss/components/form/_tree.scss +42 -0
  305. package/scss/themes/_common.scss +7 -0
  306. package/scss/themes/_cxd-variables.scss +8 -6
  307. package/scss/themes/cxd.scss +17 -12
  308. package/sdk/ang-ie11.css +786 -196
  309. package/sdk/ang.css +820 -213
  310. package/sdk/antd-ie11.css +786 -196
  311. package/sdk/antd.css +820 -213
  312. package/sdk/charts.js +13 -13
  313. package/sdk/color-picker.js +65 -69
  314. package/sdk/cropperjs.js +2 -2
  315. package/sdk/cxd-ie11.css +825 -236
  316. package/sdk/cxd.css +862 -254
  317. package/sdk/dark-ie11.css +787 -197
  318. package/sdk/dark.css +820 -213
  319. package/sdk/exceljs.js +1 -1
  320. package/sdk/helper.css.map +1 -1
  321. package/sdk/iconfont.svg +2513 -0
  322. package/sdk/iconfont.ttf +0 -0
  323. package/sdk/iconfont.woff +0 -0
  324. package/sdk/locale/de-DE.js +2 -0
  325. package/sdk/markdown.js +69 -69
  326. package/sdk/papaparse.js +1 -1
  327. package/sdk/renderers/Form/CityDB.js +1 -1
  328. package/sdk/rest.js +20 -28
  329. package/sdk/rich-text.js +62 -62
  330. package/sdk/sdk-ie11.css +825 -236
  331. package/sdk/sdk.css +862 -254
  332. package/sdk/sdk.js +1243 -1175
  333. package/sdk/thirds/hls.js/hls.js +1 -1
  334. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  335. package/sdk/tinymce.js +57 -57
  336. package/src/Schema.ts +19 -1
  337. package/src/components/AnchorNav.tsx +15 -4
  338. package/src/components/{AssociatedCheckboxes.tsx → AssociatedSelection.tsx} +43 -37
  339. package/src/components/Badge.tsx +3 -3
  340. package/src/components/{ChainedCheckboxes.tsx → ChainedSelection.tsx} +57 -40
  341. package/src/components/Collapse.tsx +144 -20
  342. package/src/components/CollapseGroup.tsx +130 -0
  343. package/src/components/GridNav.tsx +233 -0
  344. package/src/components/{ListCheckboxes.tsx → GroupedSelection.tsx} +26 -21
  345. package/src/components/InputBox.tsx +10 -9
  346. package/src/components/Link.tsx +28 -37
  347. package/src/components/ModalManager.ts +1 -1
  348. package/src/components/PickerColumn.tsx +429 -0
  349. package/src/components/PickerContainer.tsx +128 -0
  350. package/src/components/Radios.tsx +3 -8
  351. package/src/components/ResultBox.tsx +9 -9
  352. package/src/components/SearchBox.tsx +4 -5
  353. package/src/components/Select.tsx +57 -5
  354. package/src/components/{Checkboxes.tsx → Selection.tsx} +75 -21
  355. package/src/components/{TableCheckboxes.tsx → TableSelection.tsx} +46 -25
  356. package/src/components/TabsTransfer.tsx +13 -7
  357. package/src/components/TabsTransferPicker.tsx +85 -0
  358. package/src/components/Toast.tsx +23 -16
  359. package/src/components/Transfer.tsx +71 -50
  360. package/src/components/TransferDropDown.tsx +120 -0
  361. package/src/components/TransferPicker.tsx +91 -0
  362. package/src/components/Tree.tsx +194 -8
  363. package/src/components/{TreeCheckboxes.tsx → TreeSelection.tsx} +33 -26
  364. package/src/components/WithRemoteConfig.tsx +7 -2
  365. package/src/components/condition-builder/Field.tsx +5 -5
  366. package/src/components/condition-builder/Func.tsx +3 -3
  367. package/src/components/condition-builder/InputSwitch.tsx +3 -3
  368. package/src/components/condition-builder/Item.tsx +5 -12
  369. package/src/components/icons.tsx +2 -0
  370. package/src/components/index.tsx +13 -13
  371. package/src/envOverwrite.ts +20 -8
  372. package/src/factory.tsx +70 -9
  373. package/src/hooks/index.ts +5 -0
  374. package/src/hooks/use-set-state.ts +19 -0
  375. package/src/hooks/use-touch.ts +100 -0
  376. package/src/hooks/use-update-effect.ts +16 -0
  377. package/src/icons/download.svg +4 -0
  378. package/src/icons/drag-bar.svg +12 -6
  379. package/src/index.tsx +5 -0
  380. package/src/locale/de-DE.ts +2 -0
  381. package/src/locale/en-US.ts +3 -0
  382. package/src/locale/zh-CN.ts +5 -2
  383. package/src/renderers/Action.tsx +28 -2
  384. package/src/renderers/AnchorNav.tsx +4 -0
  385. package/src/renderers/Avatar.tsx +8 -4
  386. package/src/renderers/Breadcrumb.tsx +5 -1
  387. package/src/renderers/CRUD.tsx +33 -3
  388. package/src/renderers/Card.tsx +63 -34
  389. package/src/renderers/Chart.tsx +6 -2
  390. package/src/renderers/Collapse.tsx +70 -115
  391. package/src/renderers/CollapseGroup.tsx +80 -0
  392. package/src/renderers/DropDownButton.tsx +1 -1
  393. package/src/renderers/Form/InputCity.tsx +4 -8
  394. package/src/renderers/Form/InputFile.tsx +65 -24
  395. package/src/renderers/Form/InputImage.tsx +11 -3
  396. package/src/renderers/Form/Item.tsx +3 -2
  397. package/src/renderers/Form/Options.tsx +16 -2
  398. package/src/renderers/Form/Select.tsx +162 -21
  399. package/src/renderers/Form/TabsTransferPicker.tsx +123 -0
  400. package/src/renderers/Form/Transfer.tsx +19 -4
  401. package/src/renderers/Form/TransferPicker.tsx +145 -0
  402. package/src/renderers/Form/TreeSelect.tsx +25 -0
  403. package/src/renderers/Form/index.tsx +15 -2
  404. package/src/renderers/Form/wrapControl.tsx +26 -1
  405. package/src/renderers/GridNav.tsx +204 -0
  406. package/src/renderers/IFrame.tsx +2 -4
  407. package/src/renderers/Json.tsx +9 -9
  408. package/src/renderers/Link.tsx +27 -13
  409. package/src/renderers/List.tsx +1 -1
  410. package/src/renderers/Mapping.tsx +27 -11
  411. package/src/renderers/Nav.tsx +108 -60
  412. package/src/renderers/Portlet.tsx +423 -0
  413. package/src/renderers/Property.tsx +3 -2
  414. package/src/renderers/SearchBox.tsx +23 -4
  415. package/src/renderers/Table/TableContent.tsx +40 -2
  416. package/src/renderers/Table/index.tsx +88 -43
  417. package/src/renderers/Tabs.tsx +9 -1
  418. package/src/renderers/WebComponent.tsx +2 -2
  419. package/src/store/crud.ts +3 -8
  420. package/src/store/form.ts +5 -10
  421. package/src/store/formItem.ts +94 -2
  422. package/src/store/service.ts +5 -4
  423. package/src/store/table.ts +55 -14
  424. package/src/types.ts +58 -1
  425. package/src/utils/api.ts +133 -26
  426. package/src/utils/dom.tsx +12 -0
  427. package/src/utils/helper.ts +27 -0
  428. package/src/utils/icon.tsx +4 -0
  429. package/tsconfig-for-declaration.json +1 -1
  430. package/dump.rdb +0 -0
  431. package/lib/components/AssociatedCheckboxes.d.ts +0 -762
  432. package/lib/components/AssociatedCheckboxes.js +0 -90
  433. package/lib/components/AssociatedCheckboxes.js.map +0 -13
  434. package/lib/components/ChainedCheckboxes.js.map +0 -13
  435. package/lib/components/Checkboxes.js +0 -101
  436. package/lib/components/Checkboxes.js.map +0 -13
  437. package/lib/components/ListCheckboxes.d.ts +0 -739
  438. package/lib/components/ListCheckboxes.js +0 -48
  439. package/lib/components/ListCheckboxes.js.map +0 -13
  440. package/lib/components/ListRadios.d.ts +0 -763
  441. package/lib/components/ListRadios.js +0 -86
  442. package/lib/components/ListRadios.js.map +0 -13
  443. package/lib/components/TableCheckboxes.js.map +0 -13
  444. package/lib/components/TreeCheckboxes.js.map +0 -13
  445. package/lib/components/TreeRadios.d.ts +0 -838
  446. package/lib/components/TreeRadios.js +0 -116
  447. package/lib/components/TreeRadios.js.map +0 -13
  448. package/src/components/ListRadios.tsx +0 -159
  449. package/src/components/TreeRadios.tsx +0 -202
@@ -4,19 +4,31 @@
4
4
 
5
5
  import {SchemaNode, Schema} from './types';
6
6
  import {RendererProps, RendererConfig, addSchemaFilter} from './factory';
7
-
7
+ import {findObjectsWithKey} from './utils/helper';
8
8
  const isMobile = (window as any).matchMedia?.('(max-width: 768px)').matches
9
9
  ? true
10
10
  : false;
11
11
 
12
- addSchemaFilter(function (schema: Schema, renderer, props?: any) {
13
- if (schema && schema.mobile && isMobile) {
14
- return {...schema, ...schema.mobile};
12
+ // 这里不能用 addSchemaFilter 是因为还需要更深层的替换,比如 select 里的 options
13
+ export const envOverwrite = (schema: any, locale?: string) => {
14
+ if (schema.mobile && isMobile) {
15
+ Object.assign(schema, schema.mobile);
16
+ delete schema.mobile;
15
17
  }
16
18
 
17
- if (props?.locale && schema[props.locale]) {
18
- return {...schema, ...schema[props.locale]};
19
+ if (locale) {
20
+ let schemaNodes = findObjectsWithKey(schema, locale);
21
+ for (let schemaNode of schemaNodes) {
22
+ Object.assign(schemaNode, schemaNode[locale]);
23
+ delete schemaNode[locale];
24
+ }
19
25
  }
20
26
 
21
- return schema;
22
- });
27
+ if (isMobile) {
28
+ let schemaNodes = findObjectsWithKey(schema, 'mobile');
29
+ for (let schemaNode of schemaNodes) {
30
+ Object.assign(schemaNode, schemaNode['mobile']);
31
+ delete schemaNode['mobile'];
32
+ }
33
+ }
34
+ };
package/src/factory.tsx CHANGED
@@ -3,8 +3,24 @@ import {RendererStore, IRendererStore, IIRendererStore} from './store/index';
3
3
  import {getEnv, destroy} from 'mobx-state-tree';
4
4
  import {wrapFetcher} from './utils/api';
5
5
  import {normalizeLink} from './utils/normalizeLink';
6
- import {findIndex, promisify, qsparse, string2regExp} from './utils/helper';
7
- import {Api, fetcherResult, Payload, SchemaNode, Schema, Action} from './types';
6
+ import {
7
+ findIndex,
8
+ isObject,
9
+ JSONTraverse,
10
+ promisify,
11
+ qsparse,
12
+ string2regExp
13
+ } from './utils/helper';
14
+ import {
15
+ Api,
16
+ fetcherResult,
17
+ Payload,
18
+ SchemaNode,
19
+ Schema,
20
+ Action,
21
+ EventTrack,
22
+ PlainObject
23
+ } from './types';
8
24
  import {observer} from 'mobx-react';
9
25
  import Scoped from './Scoped';
10
26
  import {getTheme, ThemeInstance, ThemeProps} from './theme';
@@ -16,6 +32,7 @@ import {getDefaultLocale, makeTranslator, LocaleProps} from './locale';
16
32
  import ScopedRootRenderer, {RootRenderProps} from './Root';
17
33
  import {HocStoreFactory} from './WithStore';
18
34
  import {EnvContext, RendererEnv} from './env';
35
+ import {envOverwrite} from './envOverwrite';
19
36
 
20
37
  export interface TestFunc {
21
38
  (
@@ -58,6 +75,10 @@ export interface RendererProps extends ThemeProps, LocaleProps {
58
75
  };
59
76
  defaultData?: object;
60
77
  className?: any;
78
+ /**
79
+ * 是否使用移动端交互
80
+ */
81
+ useMobileUI?: boolean;
61
82
  [propName: string]: any;
62
83
  }
63
84
 
@@ -114,12 +135,20 @@ export interface RenderOptions {
114
135
  affixOffsetTop?: number;
115
136
  affixOffsetBottom?: number;
116
137
  richTextToken?: string;
138
+ /**
139
+ * 替换文本,用于实现 URL 替换、语言替换等
140
+ */
141
+ replaceText?: {[propName: string]: any};
142
+ /**
143
+ * 文本替换的黑名单,因为属性太多了所以改成黑名单的 fangs
144
+ */
145
+ replaceTextIgnoreKeys?: String[];
117
146
  [propName: string]: any;
118
147
  }
119
148
 
120
149
  export interface fetcherConfig {
121
150
  url: string;
122
- method?: 'get' | 'post' | 'put' | 'patch' | 'delete';
151
+ method?: 'get' | 'post' | 'put' | 'patch' | 'delete' | 'jsonp';
123
152
  data?: any;
124
153
  config?: any;
125
154
  }
@@ -262,19 +291,19 @@ const defaultOptions: RenderOptions = {
262
291
  },
263
292
  isCancel() {
264
293
  console.error(
265
- 'Please implements this. see https://baidu.gitee.io/amis/docs/start/getting-started#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97'
294
+ 'Please implement isCancel. see https://baidu.gitee.io/amis/docs/start/getting-started#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97'
266
295
  );
267
296
  return false;
268
297
  },
269
298
  updateLocation() {
270
299
  console.error(
271
- 'Please implements this. see https://baidu.gitee.io/amis/docs/start/getting-started#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97'
300
+ 'Please implement updateLocation. see https://baidu.gitee.io/amis/docs/start/getting-started#%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97'
272
301
  );
273
302
  },
274
303
  alert,
275
304
  confirm,
276
305
  notify: (type, msg, conf) =>
277
- toast[type] ? toast[type](msg) : console.warn('[Notify]', type, msg),
306
+ toast[type] ? toast[type](msg, conf) : console.warn('[Notify]', type, msg),
278
307
 
279
308
  jumpTo: (to: string, action?: any) => {
280
309
  if (to === 'goBack') {
@@ -320,7 +349,17 @@ const defaultOptions: RenderOptions = {
320
349
  copy(contents: string) {
321
350
  console.error('copy contents', contents);
322
351
  },
323
- rendererResolver: resolveRenderer
352
+ // 用于跟踪用户在界面中的各种操作
353
+ tracker(eventTrack: EventTrack, props: PlainObject) {},
354
+ rendererResolver: resolveRenderer,
355
+ replaceTextIgnoreKeys: [
356
+ 'type',
357
+ 'name',
358
+ 'mode',
359
+ 'target',
360
+ 'reload',
361
+ 'persistData'
362
+ ]
324
363
  };
325
364
  let stores: {
326
365
  [propName: string]: IRendererStore;
@@ -340,12 +379,15 @@ export function render(
340
379
  const translate = props.translate || makeTranslator(locale);
341
380
  let store = stores[options.session || 'global'];
342
381
 
382
+ // 根据环境覆盖 schema,这个要在最前面做,不然就无法覆盖 validations
383
+ envOverwrite(schema, locale);
384
+
343
385
  if (!store) {
344
386
  options = {
345
387
  ...defaultOptions,
346
388
  ...options,
347
389
  fetcher: options.fetcher
348
- ? wrapFetcher(options.fetcher)
390
+ ? wrapFetcher(options.fetcher, options.tracker)
349
391
  : defaultOptions.fetcher,
350
392
  confirm: promisify(
351
393
  options.confirm || defaultOptions.confirm || window.confirm
@@ -372,6 +414,25 @@ export function render(
372
414
  env.locale = locale;
373
415
  }
374
416
 
417
+ // 进行文本替换
418
+ if (env.replaceText && isObject(env.replaceText)) {
419
+ const replaceKeys = Object.keys(env.replaceText);
420
+ replaceKeys.sort().reverse(); // 避免用户将短的放前面
421
+ const replaceTextIgnoreKeys = new Set(env.replaceTextIgnoreKeys || []);
422
+ JSONTraverse(schema, (value: any, key: string, object: any) => {
423
+ if (typeof value === 'string' && !replaceTextIgnoreKeys.has(key)) {
424
+ for (const replaceKey of replaceKeys) {
425
+ if (~value.indexOf(replaceKey)) {
426
+ object[key] = value.replaceAll(
427
+ replaceKey,
428
+ env.replaceText[replaceKey]
429
+ );
430
+ }
431
+ }
432
+ }
433
+ });
434
+ }
435
+
375
436
  return (
376
437
  <EnvContext.Provider value={env}>
377
438
  <ScopedRootRenderer
@@ -416,7 +477,7 @@ export function updateEnv(options: Partial<RenderOptions>, session = 'global') {
416
477
  };
417
478
 
418
479
  if (options.fetcher) {
419
- options.fetcher = wrapFetcher(options.fetcher) as any;
480
+ options.fetcher = wrapFetcher(options.fetcher, options.tracker) as any;
420
481
  }
421
482
 
422
483
  if (options.confirm) {
@@ -0,0 +1,5 @@
1
+ /**
2
+ * @file 常用 hooks
3
+ */
4
+ export {default as useSetState} from './use-set-state';
5
+ export {default as useUpdateEffect} from './use-update-effect';
@@ -0,0 +1,19 @@
1
+ import {useCallback, useState} from 'react';
2
+ import isFunction from 'lodash/isFunction';
3
+
4
+ const useSetState = <T extends object>(
5
+ initialState: T = {} as T
6
+ ): [T, (patch: Partial<T> | ((prevState: T) => Partial<T>)) => void] => {
7
+ const [state, setState] = useState<T>(initialState);
8
+
9
+ const setMergeState = useCallback(patch => {
10
+ setState(prevState => ({
11
+ ...prevState,
12
+ ...(isFunction(patch) ? patch(prevState) : patch)
13
+ }));
14
+ }, []);
15
+
16
+ return [state, setMergeState];
17
+ };
18
+
19
+ export default useSetState;
@@ -0,0 +1,100 @@
1
+ import {useCallback, useRef} from 'react';
2
+
3
+ const MIN_DISTANCE = 10;
4
+
5
+ type Direction = '' | 'vertical' | 'horizontal';
6
+
7
+ function getDirection(x: number, y: number) {
8
+ if (x > y && x > MIN_DISTANCE) {
9
+ return 'horizontal';
10
+ }
11
+ if (y > x && y > MIN_DISTANCE) {
12
+ return 'vertical';
13
+ }
14
+ return '';
15
+ }
16
+
17
+ const INITIAL_STATE = {
18
+ startX: 0,
19
+ startY: 0,
20
+ deltaX: 0,
21
+ deltaY: 0,
22
+ offsetX: 0,
23
+ offsetY: 0,
24
+ direction: '' as Direction
25
+ };
26
+
27
+ type StateType = Partial<typeof INITIAL_STATE>;
28
+ type StateFunctionType = (value: StateType) => typeof INITIAL_STATE;
29
+
30
+ const useTouch = () => {
31
+ const refState = useRef(INITIAL_STATE);
32
+ const innerState = refState.current;
33
+
34
+ const update = (value: StateType | StateFunctionType) => {
35
+ if (typeof value === 'function') {
36
+ value = value(refState.current);
37
+ }
38
+ Object.entries(value).forEach(([k, v]) => {
39
+ //@ts-ignore
40
+ refState.current[k] = v;
41
+ });
42
+ };
43
+
44
+ const isVertical = useCallback(
45
+ () => innerState.direction === 'vertical',
46
+ [innerState.direction]
47
+ );
48
+ const isHorizontal = useCallback(
49
+ () => innerState.direction === 'horizontal',
50
+ [innerState.direction]
51
+ );
52
+
53
+ const reset = () => {
54
+ update({
55
+ deltaX: 0,
56
+ deltaY: 0,
57
+ offsetX: 0,
58
+ offsetY: 0,
59
+ direction: ''
60
+ });
61
+ };
62
+
63
+ const start = ((event: TouchEvent) => {
64
+ reset();
65
+ update({
66
+ startX: event.touches[0].clientX,
67
+ startY: event.touches[0].clientY
68
+ });
69
+ }) as EventListener;
70
+
71
+ const move = ((event: TouchEvent) => {
72
+ const touch = event.touches[0];
73
+
74
+ update(value => {
75
+ // Fix: Safari back will set clientX to negative number
76
+ const newState = {...value} as typeof innerState;
77
+
78
+ newState.deltaX = touch.clientX < 0 ? 0 : touch.clientX - newState.startX;
79
+ newState.deltaY = touch.clientY - newState.startY;
80
+ newState.offsetX = Math.abs(newState.deltaX);
81
+ newState.offsetY = Math.abs(newState.deltaY);
82
+
83
+ if (!newState.direction) {
84
+ newState.direction = getDirection(newState.offsetX, newState.offsetY);
85
+ }
86
+ return newState;
87
+ });
88
+ }) as EventListener;
89
+
90
+ return {
91
+ ...innerState,
92
+ move,
93
+ start,
94
+ reset,
95
+ isVertical,
96
+ isHorizontal
97
+ };
98
+ };
99
+
100
+ export default useTouch;
@@ -0,0 +1,16 @@
1
+ import {useEffect, useRef} from 'react';
2
+
3
+ const useUpdateEffect: typeof useEffect = (effect, deps) => {
4
+ const isMounted = useRef(false);
5
+
6
+ useEffect(() => {
7
+ if (!isMounted.current) {
8
+ isMounted.current = true;
9
+ } else {
10
+ return effect();
11
+ }
12
+ return undefined;
13
+ }, deps);
14
+ };
15
+
16
+ export default useUpdateEffect;
@@ -0,0 +1,4 @@
1
+ <svg aria-hidden="true" focusable="false" data-prefix="fas" data-icon="download" class="svg-inline--fa fa-download fa-w-16" role="img"
2
+ xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
3
+ <path fill="currentColor" d="M216 0h80c13.3 0 24 10.7 24 24v168h87.7c17.8 0 26.7 21.5 14.1 34.1L269.7 378.3c-7.5 7.5-19.8 7.5-27.3 0L90.1 226.1c-12.6-12.6-3.7-34.1 14.1-34.1H192V24c0-13.3 10.7-24 24-24zm296 376v112c0 13.3-10.7 24-24 24H24c-13.3 0-24-10.7-24-24V376c0-13.3 10.7-24 24-24h146.7l49 49c20.1 20.1 52.5 20.1 72.6 0l49-49H488c13.3 0 24 10.7 24 24zm-124 88c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20zm64 0c0-11-9-20-20-20s-20 9-20 20 9 20 20 20 20-9 20-20z"></path>
4
+ </svg>
@@ -1,7 +1,13 @@
1
- <svg viewBox="0 0 428 684" version="1.1"
2
- xmlns="http://www.w3.org/2000/svg"
3
- xmlns:xlink="http://www.w3.org/1999/xlink">
4
- <g id="drag-bar" fill="currentColor" fill-rule="nonzero">
5
- <path d="M171.333333,86 C171.333333,133.128298 133.128298,171.333333 86,171.333333 C38.8717015,171.333333 0.666667,133.128298 0.666667,86 C0.666667,38.8717015 38.8717015,0.666667 86,0.666667 C133.128298,0.666667 171.333333,38.8717015 171.333333,86 L171.333333,86 Z M86,256.666667 C38.8717015,256.666667 0.666667,294.871702 0.666667,342 C0.666667,389.128298 38.8717015,427.333333 86,427.333333 C133.128298,427.333333 171.333333,389.128298 171.333333,342 C171.333333,294.871702 133.128298,256.666667 86,256.666667 L86,256.666667 Z M86,512.666667 C38.8717015,512.666667 0.666667,550.871702 0.666667,598 C0.666667,645.128298 38.8717015,683.333333 86,683.333333 C133.128298,683.333333 171.333333,645.128298 171.333333,598 C171.333333,550.871702 133.128298,512.666667 86,512.666667 L86,512.666667 Z M342,171.333333 C389.128298,171.333333 427.333333,133.128298 427.333333,86 C427.333333,38.8717015 389.128298,0.666667 342,0.666667 C294.871702,0.666667 256.666667,38.8717015 256.666667,86 C256.666667,133.128298 294.871702,171.333333 342,171.333333 L342,171.333333 Z M342,256.666667 C294.871702,256.666667 256.666667,294.871702 256.666667,342 C256.666667,389.128298 294.871702,427.333333 342,427.333333 C389.128298,427.333333 427.333333,389.128298 427.333333,342 C427.333333,294.871702 389.128298,256.666667 342,256.666667 L342,256.666667 Z M342,512.666667 C294.871702,512.666667 256.666667,550.871702 256.666667,598 C256.666667,645.128298 294.871702,683.333333 342,683.333333 C389.128298,683.333333 427.333333,645.128298 427.333333,598 C427.333333,575.368193 418.342883,553.663326 402.339778,537.660222 C386.336674,521.657117 364.631807,512.666667 342,512.666667 L342,512.666667 Z" id="形状"></path>
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg width="16px" height="16px" viewBox="0 0 16 16" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
3
+ <g transform="translate(5.000000, 1.000000)" stroke-width="1" stroke="currentColor">
4
+ <circle cx="1" cy="1" r="1"></circle>
5
+ <circle cx="5" cy="1" r="1"></circle>
6
+ <circle cx="1" cy="5" r="1"></circle>
7
+ <circle cx="5" cy="5" r="1"></circle>
8
+ <circle cx="1" cy="9" r="1"></circle>
9
+ <circle cx="5" cy="9" r="1"></circle>
10
+ <circle cx="1" cy="13" r="1"></circle>
11
+ <circle cx="5" cy="13" r="1"></circle>
6
12
  </g>
7
- </svg>
13
+ </svg>
package/src/index.tsx CHANGED
@@ -56,6 +56,7 @@ import './renderers/Form/ButtonToolbar';
56
56
  import './renderers/Breadcrumb';
57
57
  import './renderers/DropDownButton';
58
58
  import './renderers/Collapse';
59
+ import './renderers/CollapseGroup';
59
60
  import './renderers/Color';
60
61
  import './renderers/CRUD';
61
62
  import './renderers/Pagination';
@@ -111,12 +112,14 @@ import './renderers/Form/InputColor';
111
112
  import './renderers/Form/ChainedSelect';
112
113
  import './renderers/Form/NestedSelect';
113
114
  import './renderers/Form/Transfer';
115
+ import './renderers/Form/TransferPicker';
114
116
  import './renderers/Form/InputTable';
115
117
  import './renderers/Form/Picker';
116
118
  import './renderers/Form/IconPicker';
117
119
  import './renderers/Form/Formula';
118
120
  import './renderers/Form/FieldSet';
119
121
  import './renderers/Form/TabsTransfer';
122
+ import './renderers/Form/TabsTransferPicker';
120
123
  import './renderers/Form/Group';
121
124
  import './renderers/Form/InputGroup';
122
125
  import './renderers/Grid';
@@ -133,6 +136,7 @@ import './renderers/PaginationWrapper';
133
136
  import './renderers/Panel';
134
137
  import './renderers/Plain';
135
138
  import './renderers/Property';
139
+ import './renderers/Portlet';
136
140
  import './renderers/Spinner';
137
141
  import './renderers/Table/index';
138
142
  import './renderers/Tabs';
@@ -164,6 +168,7 @@ import './renderers/Markdown';
164
168
  import './renderers/TableView';
165
169
  import './renderers/Code';
166
170
  import './renderers/WebComponent';
171
+ import './renderers/GridNav';
167
172
 
168
173
  import Scoped, {ScopedContext} from './Scoped';
169
174
 
@@ -181,6 +181,7 @@ register('de-DE', {
181
181
  'Transfer.configError': 'Konfigurationsfehler',
182
182
  'Transfer.refreshIcon': 'Zum Aktualisieren klicken',
183
183
  'Transfer.searchKeyword': 'Stichwörter eingeben',
184
+ 'Transfer.available': 'Verfügbar',
184
185
  'Transfer.selectd': 'Ausgewählt',
185
186
  'Transfer.selectFromLeft': 'Von links auswählen',
186
187
  'Tree.addChild': 'Untergeordnetes Element hinzufügen',
@@ -222,6 +223,7 @@ register('de-DE', {
222
223
  'Wizard.saveAndNext': 'Speichern & Weiter',
223
224
  'year-to-year': '{{from}} - {{to}}',
224
225
  'Year.placeholder': 'Wählen Sie ein Jahr',
226
+ 'reload': 'Neu laden',
225
227
  'rotate': 'Drehen',
226
228
  'Editor.fullscreen': 'Schirmfüllend Modus',
227
229
  'Editor.exitFullscreen': 'Zurücktreten Schirmfüllend Modus',
@@ -85,6 +85,7 @@ register('en-US', {
85
85
  'Excel.placeholder': `Drag 'n' drop excel here, or click to select`,
86
86
  'fetchFailed': 'Fetch api failed',
87
87
  'File.continueAdd': 'Continue add',
88
+ 'File.downloadTpl': 'Download template',
88
89
  'File.dragDrop': `Drag 'n' drop some files here`,
89
90
  'File.errorRetry': 'File upload failed, please try again',
90
91
  'File.failed': 'Failed files.',
@@ -182,6 +183,7 @@ register('en-US', {
182
183
  'Transfer.configError': 'Config error',
183
184
  'Transfer.refreshIcon': 'Click to refresh',
184
185
  'Transfer.searchKeyword': 'Enter keywords',
186
+ 'Transfer.available': 'Available',
185
187
  'Transfer.selectd': 'Selected',
186
188
  'Transfer.selectFromLeft': 'Select from the left',
187
189
  'Tree.addChild': 'Add child',
@@ -223,6 +225,7 @@ register('en-US', {
223
225
  'Wizard.saveAndNext': 'Save & Next',
224
226
  'year-to-year': '{{from}} - {{to}}',
225
227
  'Year.placeholder': 'Select a Year',
228
+ 'reload': 'Reload',
226
229
  'rotate': 'Rotate',
227
230
  'Editor.fullscreen': 'full screen',
228
231
  'Editor.exitFullscreen': 'exit fullscreen mode',
@@ -87,6 +87,7 @@ register('zh-CN', {
87
87
  'Excel.placeholder': '拖拽 Excel 到这,或点击上传',
88
88
  'fetchFailed': '初始化失败',
89
89
  'File.continueAdd': '继续添加',
90
+ 'File.downloadTpl': '下载模板',
90
91
  'File.dragDrop': '将文件拖拽到此处',
91
92
  'File.errorRetry': '文件上传失败请重试',
92
93
  'File.failed': '失败文件',
@@ -186,8 +187,9 @@ register('zh-CN', {
186
187
  'Transfer.configError': '配置错误,选项无法与左侧选项对应',
187
188
  'Transfer.refreshIcon': '点击刷新重新加载',
188
189
  'Transfer.searchKeyword': '请输入关键字',
189
- 'Transfer.selectd': '当前选择',
190
- 'Transfer.selectFromLeft': '请从左侧选择数据',
190
+ 'Transfer.available': '可选项',
191
+ 'Transfer.selectd': '已选项',
192
+ 'Transfer.selectFromLeft': '请选择左侧数据',
191
193
  'Tree.addChild': '添加子节点',
192
194
  'Tree.addRoot': '添加一级节点',
193
195
  'Tree.editNode': '编辑该节点',
@@ -227,6 +229,7 @@ register('zh-CN', {
227
229
  'Wizard.saveAndNext': '保存并下一步',
228
230
  'year-to-year': '{{from}} 年 - {{to}} 年',
229
231
  'Year.placeholder': '请选择年',
232
+ 'reload': '刷新',
230
233
  'rotate': '旋转',
231
234
  'Editor.fullscreen': '全屏',
232
235
  'Editor.exitFullscreen': '退出全屏',
@@ -4,8 +4,14 @@ import {Renderer, RendererProps} from '../factory';
4
4
  import {filter} from '../utils/tpl';
5
5
  import Button from '../components/Button';
6
6
  import pick from 'lodash/pick';
7
+ import omit from 'lodash/omit';
7
8
 
8
9
  export interface ButtonSchema extends BaseSchema {
10
+ /**
11
+ * 主要用于用户行为跟踪里区分是哪个按钮
12
+ */
13
+ id?: string;
14
+
9
15
  /**
10
16
  * 是否为块状展示,默认为内联。
11
17
  */
@@ -332,6 +338,7 @@ export type ActionSchema =
332
338
  | VanillaAction;
333
339
 
334
340
  const ActionProps = [
341
+ 'id',
335
342
  'dialog',
336
343
  'drawer',
337
344
  'url',
@@ -570,7 +577,8 @@ export class Action extends React.Component<ActionProps, ActionState> {
570
577
 
571
578
  @autobind
572
579
  async handleAction(e: React.MouseEvent<any>) {
573
- const {onAction, disabled, countDown} = this.props;
580
+ const {onAction, disabled, countDown, env} = this.props;
581
+
574
582
  // https://reactjs.org/docs/legacy-event-pooling.html
575
583
  e.persist();
576
584
  let onClick = this.props.onClick;
@@ -592,9 +600,26 @@ export class Action extends React.Component<ActionProps, ActionState> {
592
600
 
593
601
  e.preventDefault();
594
602
  const action = pick(this.props, ActionProps) as ActionSchema;
603
+ const actionType = action.actionType;
604
+
605
+ // ajax 会在 wrapFetcher 里记录,这里再处理就重复了,因此去掉
606
+ // add 一般是 input-table 之类的,会触发 formItemChange,为了避免重复也去掉
607
+ if (
608
+ actionType !== 'ajax' &&
609
+ actionType !== 'download' &&
610
+ actionType !== 'add'
611
+ ) {
612
+ env?.tracker(
613
+ {
614
+ eventType: actionType || this.props.type || 'click',
615
+ eventData: omit(action, ['type', 'actionType', 'tooltipPlacement'])
616
+ },
617
+ this.props
618
+ );
619
+ }
595
620
 
596
621
  // download 是一种 ajax 的简写
597
- if (action.actionType === 'download') {
622
+ if (actionType === 'download') {
598
623
  action.actionType = 'ajax';
599
624
  const api = normalizeApi((action as AjaxActionSchema).api);
600
625
  api.responseType = 'blob';
@@ -798,6 +823,7 @@ export class ActionRenderer extends React.Component<
798
823
  return (
799
824
  <Action
800
825
  {...(rest as any)}
826
+ env={env}
801
827
  disabled={disabled || btnDisabled}
802
828
  onAction={this.handleAction}
803
829
  loading={loading}
@@ -65,6 +65,8 @@ export interface AnchorNavSchema extends BaseSchema {
65
65
  * 楼层样式名
66
66
  */
67
67
  sectionClassName?: SchemaClassName;
68
+
69
+ direction?: 'vertical' | 'horizontal';
68
70
  }
69
71
 
70
72
  export interface AnchorNavProps
@@ -148,6 +150,7 @@ export default class AnchorNav extends React.Component<
148
150
  className,
149
151
  linkClassName,
150
152
  sectionClassName,
153
+ direction,
151
154
  sectionRender,
152
155
  render,
153
156
  data
@@ -187,6 +190,7 @@ export default class AnchorNav extends React.Component<
187
190
  sectionClassName={sectionClassName}
188
191
  onSelect={this.handleSelect}
189
192
  active={this.state.active}
193
+ direction={direction}
190
194
  >
191
195
  {children}
192
196
  </CAnchorNav>
@@ -10,7 +10,11 @@ import {
10
10
  SchemaUrlPath
11
11
  } from '../Schema';
12
12
  import {BadgeSchema, withBadge} from '../components/Badge';
13
- import {isPureVariable, resolveVariable, resolveVariableAndFilter} from '../utils/tpl-builtin';
13
+ import {
14
+ isPureVariable,
15
+ resolveVariable,
16
+ resolveVariableAndFilter
17
+ } from '../utils/tpl-builtin';
14
18
 
15
19
  /**
16
20
  * Avatar 用户头像显示
@@ -102,15 +106,15 @@ export class AvatarField extends React.Component<AvatarProps, object> {
102
106
  };
103
107
 
104
108
  if (isPureVariable(text)) {
105
- text = resolveVariable(text, data);
109
+ text = resolveVariableAndFilter(text, data);
106
110
  }
107
111
 
108
112
  if (isPureVariable(src)) {
109
- src = resolveVariable(src, data);
113
+ src = resolveVariableAndFilter(src, data, '| raw');
110
114
  }
111
115
 
112
116
  if (isPureVariable(icon)) {
113
- icon = resolveVariable(icon, data);
117
+ icon = resolveVariableAndFilter(icon, data);
114
118
  }
115
119
 
116
120
  let avatar = <i className={icon} />;
@@ -77,7 +77,11 @@ export class BreadcrumbField extends React.Component<BreadcrumbProps, object> {
77
77
 
78
78
  const crumbItems = items
79
79
  ? items
80
- : (resolveVariable(source, data) as Array<BreadcrumbItemSchema>);
80
+ : (resolveVariableAndFilter(
81
+ source,
82
+ data,
83
+ '| raw'
84
+ ) as Array<BreadcrumbItemSchema>);
81
85
 
82
86
  const crumbs = crumbItems
83
87
  .map<React.ReactNode>((item, index) => (