amis 1.9.0-beta.12 → 1.9.0-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 (365) hide show
  1. package/lib/Schema.d.ts +4 -2
  2. package/lib/Schema.js.map +1 -1
  3. package/lib/SchemaRenderer.d.ts +2 -2
  4. package/lib/SchemaRenderer.js +3 -3
  5. package/lib/SchemaRenderer.js.map +2 -2
  6. package/lib/actions/Action.d.ts +8 -6
  7. package/lib/actions/Action.js.map +2 -2
  8. package/lib/actions/AjaxAction.d.ts +10 -7
  9. package/lib/actions/AjaxAction.js +27 -21
  10. package/lib/actions/AjaxAction.js.map +2 -2
  11. package/lib/actions/BreakAction.d.ts +2 -2
  12. package/lib/actions/BreakAction.js.map +1 -1
  13. package/lib/actions/BroadcastAction.d.ts +3 -3
  14. package/lib/actions/BroadcastAction.js +3 -2
  15. package/lib/actions/BroadcastAction.js.map +2 -2
  16. package/lib/actions/CmptAction.d.ts +2 -2
  17. package/lib/actions/CmptAction.js +7 -9
  18. package/lib/actions/CmptAction.js.map +2 -2
  19. package/lib/actions/ContinueAction.d.ts +2 -2
  20. package/lib/actions/ContinueAction.js.map +1 -1
  21. package/lib/actions/CopyAction.d.ts +7 -4
  22. package/lib/actions/CopyAction.js +8 -6
  23. package/lib/actions/CopyAction.js.map +2 -2
  24. package/lib/actions/CustomAction.d.ts +2 -2
  25. package/lib/actions/CustomAction.js.map +1 -1
  26. package/lib/actions/DialogAction.d.ts +14 -8
  27. package/lib/actions/DialogAction.js +6 -6
  28. package/lib/actions/DialogAction.js.map +2 -2
  29. package/lib/actions/DrawerAction.d.ts +3 -3
  30. package/lib/actions/DrawerAction.js.map +1 -1
  31. package/lib/actions/EmailAction.d.ts +10 -7
  32. package/lib/actions/EmailAction.js +4 -5
  33. package/lib/actions/EmailAction.js.map +2 -2
  34. package/lib/actions/LinkAction.d.ts +19 -11
  35. package/lib/actions/LinkAction.js +6 -5
  36. package/lib/actions/LinkAction.js.map +2 -2
  37. package/lib/actions/LoopAction.d.ts +6 -3
  38. package/lib/actions/LoopAction.js +22 -20
  39. package/lib/actions/LoopAction.js.map +2 -2
  40. package/lib/actions/PageAction.d.ts +8 -5
  41. package/lib/actions/PageAction.js +3 -2
  42. package/lib/actions/PageAction.js.map +2 -2
  43. package/lib/actions/ParallelAction.d.ts +2 -2
  44. package/lib/actions/ParallelAction.js.map +1 -1
  45. package/lib/actions/SwitchAction.d.ts +2 -2
  46. package/lib/actions/SwitchAction.js.map +1 -1
  47. package/lib/actions/ToastAction.d.ts +2 -2
  48. package/lib/actions/ToastAction.js +6 -4
  49. package/lib/actions/ToastAction.js.map +2 -2
  50. package/lib/components/Editor.d.ts +84 -84
  51. package/lib/components/InputBox.js +1 -1
  52. package/lib/components/InputBox.js.map +2 -2
  53. package/lib/components/Pagination.d.ts +1175 -0
  54. package/lib/components/Pagination.js +274 -0
  55. package/lib/components/Pagination.js.map +13 -0
  56. package/lib/components/PickerContainer.d.ts +1 -0
  57. package/lib/components/PickerContainer.js +3 -2
  58. package/lib/components/PickerContainer.js.map +2 -2
  59. package/lib/components/Rating.js +11 -9
  60. package/lib/components/Rating.js.map +2 -2
  61. package/lib/components/Select.js +3 -3
  62. package/lib/components/Select.js.map +2 -2
  63. package/lib/components/Tag.d.ts +148 -0
  64. package/lib/components/Tag.js +96 -0
  65. package/lib/components/Tag.js.map +13 -0
  66. package/lib/components/TooltipWrapper.d.ts +25 -21
  67. package/lib/components/TooltipWrapper.js +11 -1
  68. package/lib/components/TooltipWrapper.js.map +2 -2
  69. package/lib/components/TransferDropDown.d.ts +85 -84
  70. package/lib/components/TransferDropDown.js +2 -2
  71. package/lib/components/TransferDropDown.js.map +2 -2
  72. package/lib/components/Tree.d.ts +84 -84
  73. package/lib/components/formula/VariableList.d.ts +1 -0
  74. package/lib/components/formula/VariableList.js.map +2 -2
  75. package/lib/components/icons.js +2 -0
  76. package/lib/components/icons.js.map +2 -2
  77. package/lib/components/index.d.ts +4 -1
  78. package/lib/components/index.js +7 -1
  79. package/lib/components/index.js.map +2 -2
  80. package/lib/components/schema-editor/Array.d.ts +11 -0
  81. package/lib/components/schema-editor/Array.js +66 -0
  82. package/lib/components/schema-editor/Array.js.map +13 -0
  83. package/lib/components/schema-editor/Common.d.ts +29 -0
  84. package/lib/components/schema-editor/Common.js +69 -0
  85. package/lib/components/schema-editor/Common.js.map +13 -0
  86. package/lib/components/schema-editor/Item.d.ts +9 -0
  87. package/lib/components/schema-editor/Item.js +31 -0
  88. package/lib/components/schema-editor/Item.js.map +13 -0
  89. package/lib/components/schema-editor/Object.d.ts +44 -0
  90. package/lib/components/schema-editor/Object.js +191 -0
  91. package/lib/components/schema-editor/Object.js.map +13 -0
  92. package/lib/components/schema-editor/SchemaVariableList.d.ts +316 -0
  93. package/lib/components/schema-editor/SchemaVariableList.js +74 -0
  94. package/lib/components/schema-editor/SchemaVariableList.js.map +13 -0
  95. package/lib/components/schema-editor/SchemaVariableListPicker.d.ts +305 -0
  96. package/lib/components/schema-editor/SchemaVariableListPicker.js +32 -0
  97. package/lib/components/schema-editor/SchemaVariableListPicker.js.map +13 -0
  98. package/lib/components/schema-editor/index.d.ts +520 -0
  99. package/lib/components/schema-editor/index.js +118 -0
  100. package/lib/components/schema-editor/index.js.map +13 -0
  101. package/lib/components/table/Cell.d.ts +930 -0
  102. package/lib/components/table/Cell.js +36 -0
  103. package/lib/components/table/Cell.js.map +13 -0
  104. package/lib/components/table/HeadCellDropDown.d.ts +514 -0
  105. package/lib/components/table/HeadCellDropDown.js +52 -0
  106. package/lib/components/table/HeadCellDropDown.js.map +13 -0
  107. package/lib/components/table/HeadCellFilter.d.ts +771 -0
  108. package/lib/components/table/HeadCellFilter.js +106 -0
  109. package/lib/components/table/HeadCellFilter.js.map +13 -0
  110. package/lib/components/table/HeadCellSelect.d.ts +672 -0
  111. package/lib/components/table/HeadCellSelect.js +46 -0
  112. package/lib/components/table/HeadCellSelect.js.map +13 -0
  113. package/lib/components/table/HeadCellSort.d.ts +498 -0
  114. package/lib/components/table/HeadCellSort.js +67 -0
  115. package/lib/components/table/HeadCellSort.js.map +13 -0
  116. package/lib/components/table/index.d.ts +1355 -0
  117. package/lib/components/table/index.js +1095 -0
  118. package/lib/components/table/index.js.map +13 -0
  119. package/lib/env.d.ts +2 -4
  120. package/lib/env.js.map +2 -2
  121. package/lib/factory.js +0 -95
  122. package/lib/factory.js.map +2 -2
  123. package/lib/icons/dot.js +11 -0
  124. package/lib/index.d.ts +6 -1
  125. package/lib/index.js +9 -2
  126. package/lib/index.js.map +2 -2
  127. package/lib/locale/de-DE.js +18 -1
  128. package/lib/locale/de-DE.js.map +2 -2
  129. package/lib/locale/en-US.js +18 -1
  130. package/lib/locale/en-US.js.map +2 -2
  131. package/lib/locale/zh-CN.js +20 -1
  132. package/lib/locale/zh-CN.js.map +2 -2
  133. package/lib/renderers/Action.js +0 -2
  134. package/lib/renderers/Action.js.map +2 -2
  135. package/lib/renderers/Carousel.d.ts +5 -1
  136. package/lib/renderers/Carousel.js +18 -5
  137. package/lib/renderers/Carousel.js.map +2 -2
  138. package/lib/renderers/Form/ButtonGroupSelect.d.ts +2 -0
  139. package/lib/renderers/Form/ButtonGroupSelect.js +7 -0
  140. package/lib/renderers/Form/ButtonGroupSelect.js.map +2 -2
  141. package/lib/renderers/Form/Checkbox.js +3 -4
  142. package/lib/renderers/Form/Checkbox.js.map +2 -2
  143. package/lib/renderers/Form/Checkboxes.d.ts +2 -1
  144. package/lib/renderers/Form/Checkboxes.js +19 -14
  145. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  146. package/lib/renderers/Form/Combo.js +23 -4
  147. package/lib/renderers/Form/Combo.js.map +2 -2
  148. package/lib/renderers/Form/DiffEditor.d.ts +126 -18
  149. package/lib/renderers/Form/Editor.d.ts +412 -112
  150. package/lib/renderers/Form/Editor.js +10 -1
  151. package/lib/renderers/Form/Editor.js.map +2 -2
  152. package/lib/renderers/Form/InputExcel.js +6 -1
  153. package/lib/renderers/Form/InputExcel.js.map +2 -2
  154. package/lib/renderers/Form/InputFile.js +1 -2
  155. package/lib/renderers/Form/InputFile.js.map +2 -2
  156. package/lib/renderers/Form/InputTree.js +1 -1
  157. package/lib/renderers/Form/InputTree.js.map +2 -2
  158. package/lib/renderers/Form/Item.d.ts +0 -6
  159. package/lib/renderers/Form/JSONSchemaEditor.d.ts +41 -0
  160. package/lib/renderers/Form/JSONSchemaEditor.js +33 -0
  161. package/lib/renderers/Form/JSONSchemaEditor.js.map +13 -0
  162. package/lib/renderers/Form/ListSelect.d.ts +2 -0
  163. package/lib/renderers/Form/ListSelect.js +7 -0
  164. package/lib/renderers/Form/ListSelect.js.map +2 -2
  165. package/lib/renderers/Form/Options.js +1 -0
  166. package/lib/renderers/Form/Options.js.map +2 -2
  167. package/lib/renderers/Form/Select.js +12 -1
  168. package/lib/renderers/Form/Select.js.map +2 -2
  169. package/lib/renderers/Form/TabsTransfer.d.ts +1 -1
  170. package/lib/renderers/Form/TabsTransfer.js +2 -2
  171. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  172. package/lib/renderers/Form/TreeSelect.d.ts +4 -0
  173. package/lib/renderers/Form/TreeSelect.js +2 -2
  174. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  175. package/lib/renderers/Form/wrapControl.js +10 -5
  176. package/lib/renderers/Form/wrapControl.js.map +2 -2
  177. package/lib/renderers/Pagination.d.ts +49 -30
  178. package/lib/renderers/Pagination.js +3 -132
  179. package/lib/renderers/Pagination.js.map +2 -2
  180. package/lib/renderers/Table/HeadCellSearchDropdown.js +0 -1
  181. package/lib/renderers/Table/HeadCellSearchDropdown.js.map +2 -2
  182. package/lib/renderers/Table-v2/HeadCellSearchDropdown.d.ts +29 -0
  183. package/lib/renderers/Table-v2/HeadCellSearchDropdown.js +158 -0
  184. package/lib/renderers/Table-v2/HeadCellSearchDropdown.js.map +13 -0
  185. package/lib/renderers/Table-v2/TableCell.d.ts +6 -0
  186. package/lib/renderers/Table-v2/TableCell.js +28 -0
  187. package/lib/renderers/Table-v2/TableCell.js.map +13 -0
  188. package/lib/renderers/Table-v2/index.d.ts +256 -0
  189. package/lib/renderers/Table-v2/index.js +548 -0
  190. package/lib/renderers/Table-v2/index.js.map +13 -0
  191. package/lib/renderers/Tabs.js +1 -1
  192. package/lib/renderers/Tabs.js.map +2 -2
  193. package/lib/renderers/Tag.d.ts +66 -0
  194. package/lib/renderers/Tag.js +53 -0
  195. package/lib/renderers/Tag.js.map +13 -0
  196. package/lib/renderers/Wizard.js +3 -3
  197. package/lib/renderers/Wizard.js.map +2 -2
  198. package/lib/schemaExtend.js +24 -30
  199. package/lib/schemaExtend.js.map +2 -2
  200. package/lib/store/combo.d.ts +140 -20
  201. package/lib/store/form.d.ts +56 -8
  202. package/lib/store/formItem.d.ts +3 -1
  203. package/lib/store/formItem.js +3 -1
  204. package/lib/store/formItem.js.map +2 -2
  205. package/lib/store/index.js +2 -0
  206. package/lib/store/index.js.map +2 -2
  207. package/lib/store/table-v2.d.ts +308 -0
  208. package/lib/store/table-v2.js +452 -0
  209. package/lib/store/table-v2.js.map +13 -0
  210. package/lib/store/table.d.ts +112 -16
  211. package/lib/store/table.js +1 -1
  212. package/lib/store/table.js.map +2 -2
  213. package/lib/themes/ang-ie11.css +1686 -120
  214. package/lib/themes/ang.css +1807 -208
  215. package/lib/themes/ang.css.map +1 -1
  216. package/lib/themes/antd-ie11.css +1667 -101
  217. package/lib/themes/antd.css +1789 -201
  218. package/lib/themes/antd.css.map +1 -1
  219. package/lib/themes/cxd-ie11.css +1662 -97
  220. package/lib/themes/cxd.css +1983 -394
  221. package/lib/themes/cxd.css.map +1 -1
  222. package/lib/themes/dark-ie11.css +1667 -101
  223. package/lib/themes/dark.css +1789 -201
  224. package/lib/themes/dark.css.map +1 -1
  225. package/lib/themes/default-ie11.css +1662 -97
  226. package/lib/themes/default.css +1983 -394
  227. package/lib/themes/default.css.map +1 -1
  228. package/lib/utils/DataSchema.d.ts +25 -0
  229. package/lib/utils/DataSchema.js +104 -0
  230. package/lib/utils/DataSchema.js.map +13 -0
  231. package/lib/utils/DataScope.d.ts +23 -0
  232. package/lib/utils/DataScope.js +140 -0
  233. package/lib/utils/DataScope.js.map +13 -0
  234. package/lib/utils/handleAction.js +1 -1
  235. package/lib/utils/handleAction.js.map +2 -2
  236. package/lib/utils/renderer-event.d.ts +8 -2
  237. package/lib/utils/renderer-event.js +102 -1
  238. package/lib/utils/renderer-event.js.map +2 -2
  239. package/package.json +3 -2
  240. package/schema.json +1476 -469
  241. package/scss/_properties.scss +69 -0
  242. package/scss/components/_button.scss +37 -39
  243. package/scss/components/_context-menu.scss +3 -18
  244. package/scss/components/_json-schema-editor.scss +126 -0
  245. package/scss/components/_pagination.scss +104 -23
  246. package/scss/components/_result-box.scss +2 -2
  247. package/scss/components/_table-v2.scss +912 -0
  248. package/scss/components/_tag.scss +177 -0
  249. package/scss/components/form/_selection.scss +1 -14
  250. package/scss/components/form/_text.scss +1 -1
  251. package/scss/themes/_antd-variables.scss +0 -13
  252. package/scss/themes/_common.scss +3 -0
  253. package/scss/themes/_cxd-variables.scss +7 -17
  254. package/scss/themes/_dark-variables.scss +0 -13
  255. package/scss/themes/cxd.scss +1 -1
  256. package/sdk/ang-ie11.css +2240 -227
  257. package/sdk/ang.css +2905 -859
  258. package/sdk/antd-ie11.css +2233 -220
  259. package/sdk/antd.css +2905 -870
  260. package/sdk/barcode.js +51 -51
  261. package/sdk/charts.js +14 -14
  262. package/sdk/codemirror.js +7 -7
  263. package/sdk/color-picker.js +65 -65
  264. package/sdk/cropperjs.js +2 -2
  265. package/sdk/cxd-ie11.css +2223 -211
  266. package/sdk/cxd.css +2911 -875
  267. package/sdk/dark-ie11.css +2233 -220
  268. package/sdk/dark.css +2905 -870
  269. package/sdk/exceljs.js +1 -1
  270. package/sdk/locale/de-DE.js +18 -1
  271. package/sdk/markdown.js +69 -69
  272. package/sdk/papaparse.js +1 -1
  273. package/sdk/renderers/Form/CityDB.js +1 -1
  274. package/sdk/rest.js +16 -16
  275. package/sdk/rich-text.js +62 -62
  276. package/sdk/sdk-ie11.css +2223 -211
  277. package/sdk/sdk.css +2911 -875
  278. package/sdk/sdk.js +1326 -1270
  279. package/sdk/thirds/hls.js/hls.js +1 -1
  280. package/sdk/thirds/mpegts.js/mpegts.js +1 -1
  281. package/sdk/tinymce.js +57 -57
  282. package/src/Schema.ts +7 -0
  283. package/src/SchemaRenderer.tsx +4 -5
  284. package/src/actions/Action.ts +7 -6
  285. package/src/actions/AjaxAction.ts +33 -24
  286. package/src/actions/BreakAction.ts +2 -2
  287. package/src/actions/BroadcastAction.ts +6 -5
  288. package/src/actions/CmptAction.ts +5 -6
  289. package/src/actions/ContinueAction.ts +2 -2
  290. package/src/actions/CopyAction.ts +14 -8
  291. package/src/actions/CustomAction.ts +2 -2
  292. package/src/actions/DialogAction.ts +16 -10
  293. package/src/actions/DrawerAction.ts +3 -3
  294. package/src/actions/EmailAction.ts +12 -12
  295. package/src/actions/LinkAction.ts +34 -14
  296. package/src/actions/LoopAction.ts +13 -8
  297. package/src/actions/PageAction.ts +9 -6
  298. package/src/actions/ParallelAction.ts +2 -2
  299. package/src/actions/SwitchAction.ts +2 -2
  300. package/src/actions/ToastAction.ts +9 -5
  301. package/src/components/InputBox.tsx +1 -0
  302. package/src/components/Pagination.tsx +446 -0
  303. package/src/components/PickerContainer.tsx +8 -5
  304. package/src/components/Rating.tsx +16 -9
  305. package/src/components/Select.tsx +3 -3
  306. package/src/components/Tag.tsx +179 -0
  307. package/src/components/TooltipWrapper.tsx +14 -1
  308. package/src/components/TransferDropDown.tsx +3 -0
  309. package/src/components/formula/VariableList.tsx +1 -0
  310. package/src/components/icons.tsx +2 -0
  311. package/src/components/index.tsx +7 -1
  312. package/src/components/schema-editor/Array.tsx +95 -0
  313. package/src/components/schema-editor/Common.tsx +138 -0
  314. package/src/components/schema-editor/Item.tsx +36 -0
  315. package/src/components/schema-editor/Object.tsx +299 -0
  316. package/src/components/schema-editor/SchemaVariableList.tsx +97 -0
  317. package/src/components/schema-editor/SchemaVariableListPicker.tsx +66 -0
  318. package/src/components/schema-editor/index.tsx +211 -0
  319. package/src/components/table/Cell.tsx +70 -0
  320. package/src/components/table/HeadCellDropDown.tsx +115 -0
  321. package/src/components/table/HeadCellFilter.tsx +193 -0
  322. package/src/components/table/HeadCellSelect.tsx +86 -0
  323. package/src/components/table/HeadCellSort.tsx +102 -0
  324. package/src/components/table/index.tsx +1681 -0
  325. package/src/env.tsx +7 -14
  326. package/src/factory.tsx +3 -106
  327. package/src/icons/dot.svg +11 -0
  328. package/src/index.tsx +8 -1
  329. package/src/locale/de-DE.ts +18 -1
  330. package/src/locale/en-US.ts +18 -1
  331. package/src/locale/zh-CN.ts +20 -1
  332. package/src/renderers/Action.tsx +1 -1
  333. package/src/renderers/Carousel.tsx +21 -6
  334. package/src/renderers/Form/ButtonGroupSelect.tsx +10 -1
  335. package/src/renderers/Form/Checkbox.tsx +4 -4
  336. package/src/renderers/Form/Checkboxes.tsx +31 -25
  337. package/src/renderers/Form/Combo.tsx +20 -4
  338. package/src/renderers/Form/Editor.tsx +15 -1
  339. package/src/renderers/Form/InputExcel.tsx +6 -1
  340. package/src/renderers/Form/InputFile.tsx +1 -2
  341. package/src/renderers/Form/InputTree.tsx +1 -1
  342. package/src/renderers/Form/JSONSchemaEditor.tsx +67 -0
  343. package/src/renderers/Form/ListSelect.tsx +9 -1
  344. package/src/renderers/Form/Options.tsx +1 -1
  345. package/src/renderers/Form/Select.tsx +7 -0
  346. package/src/renderers/Form/TabsTransfer.tsx +2 -2
  347. package/src/renderers/Form/TreeSelect.tsx +8 -1
  348. package/src/renderers/Form/wrapControl.tsx +11 -5
  349. package/src/renderers/Pagination.tsx +65 -253
  350. package/src/renderers/Table/HeadCellSearchDropdown.tsx +0 -1
  351. package/src/renderers/Table-v2/HeadCellSearchDropdown.tsx +244 -0
  352. package/src/renderers/Table-v2/TableCell.tsx +19 -0
  353. package/src/renderers/Table-v2/index.tsx +1140 -0
  354. package/src/renderers/Tabs.tsx +1 -1
  355. package/src/renderers/Tag.tsx +128 -0
  356. package/src/renderers/Wizard.tsx +3 -3
  357. package/src/schemaExtend.ts +24 -28
  358. package/src/store/formItem.ts +5 -1
  359. package/src/store/index.ts +2 -0
  360. package/src/store/table-v2.ts +646 -0
  361. package/src/store/table.ts +1 -1
  362. package/src/utils/DataSchema.ts +131 -0
  363. package/src/utils/DataScope.ts +190 -0
  364. package/src/utils/handleAction.ts +1 -1
  365. package/src/utils/renderer-event.ts +113 -2
@@ -9,6 +9,9 @@ import cx from 'classnames';
9
9
  import {ClassNamesFn, themeable} from '../theme';
10
10
 
11
11
  import {isObject} from '../utils/helper';
12
+ import {
13
+ validations
14
+ } from '../utils/validations';
12
15
  import {Icon} from './icons';
13
16
 
14
17
  export type textPositionType = 'left' | 'right';
@@ -112,7 +115,8 @@ export class Rating extends React.Component<RatingProps, any> {
112
115
  }
113
116
 
114
117
  sortKeys(map: {[propName: number]: string}) {
115
- return Object.keys(map).sort(
118
+ // 需验证 key 是否是数字,需要过滤掉非数字key,如 $$id
119
+ return Object.keys(map).filter(item => validations.isNumeric({}, item)).sort(
116
120
  (a: number | string, b: number | string) => Number(a) - Number(b)
117
121
  );
118
122
  }
@@ -137,10 +141,13 @@ export class Rating extends React.Component<RatingProps, any> {
137
141
  const showKey = keys.filter(item => Number(item) < value).length;
138
142
 
139
143
  const showColor = keys[showKey] !== undefined && colors[keys[showKey]];
140
- showColor &&
141
- this.setState({
142
- showColor
143
- });
144
+
145
+ // 取最大 key 的颜色,避免如下情况:colors 只设置了 1-4,value 为 5,导致取不到颜色而无法显示
146
+ const lastColor = keys.length && colors[keys[keys.length - 1]];
147
+
148
+ this.setState({
149
+ showColor: showColor || lastColor || ''
150
+ });
144
151
  } else if (colors && typeof colors === 'string') {
145
152
  this.setState({
146
153
  showColor: colors
@@ -153,10 +160,10 @@ export class Rating extends React.Component<RatingProps, any> {
153
160
  const showText =
154
161
  keys[showKey] !== undefined &&
155
162
  texts[keys[showKey] as keyof typeof texts];
156
- showText &&
157
- this.setState({
158
- showText
159
- });
163
+
164
+ this.setState({
165
+ showText: showText || ''
166
+ });
160
167
  }
161
168
  }
162
169
 
@@ -883,7 +883,7 @@ export class Select extends React.Component<SelectProps, SelectState> {
883
883
  ) : null}
884
884
 
885
885
  {renderMenu ? (
886
- checkAll || multiple ? (
886
+ multiple ? (
887
887
  <Checkbox
888
888
  checked={checked}
889
889
  trueValue={item.value}
@@ -913,7 +913,7 @@ export class Select extends React.Component<SelectProps, SelectState> {
913
913
  index
914
914
  })
915
915
  )
916
- ) : checkAll || multiple ? (
916
+ ) : multiple ? (
917
917
  <Checkbox
918
918
  checked={checked}
919
919
  trueValue={item.value}
@@ -1101,7 +1101,7 @@ export class Select extends React.Component<SelectProps, SelectState> {
1101
1101
  isOpen={this.state.isOpen}
1102
1102
  inputValue={inputValue}
1103
1103
  onChange={
1104
- /*展示 Checkbox 的时候,会出发多次 onChange 原因待查*/ multiple ||
1104
+ /*展示 Checkbox 的时候,会出发多次 onChange 原因待查*/ multiple &&
1105
1105
  checkAll
1106
1106
  ? noop
1107
1107
  : this.handleChange
@@ -0,0 +1,179 @@
1
+ /**
2
+ * @file Tag
3
+ */
4
+
5
+ import React from 'react';
6
+ import {themeable, ThemeProps} from '../theme';
7
+ import {Icon, getIcon} from './icons';
8
+ import {generateIcon} from '../utils/icon';
9
+ import {autobind, noop} from '../utils/helper';
10
+
11
+ export interface TagProps extends ThemeProps {
12
+ style: React.CSSProperties;
13
+ color?: string;
14
+ label?: string | React.ReactNode;
15
+ displayMode?: 'normal' | 'rounded' | 'status';
16
+ icon?: string | React.ReactNode;
17
+ closable?: boolean;
18
+ disabled?: boolean;
19
+ closeIcon?: string | React.ReactNode;
20
+ onClose?: (e: React.MouseEvent) => void;
21
+ }
22
+
23
+ export interface CheckableTagProps extends TagProps {
24
+ onClick?: (e: React.MouseEvent) => void;
25
+ onChange?: (checked: boolean) => void;
26
+ checked?: boolean;
27
+ }
28
+
29
+ export type TagLevel =
30
+ | 'inactive'
31
+ | 'active'
32
+ | 'success'
33
+ | 'processing'
34
+ | 'error'
35
+ | 'warning';
36
+
37
+ const PRESET_COLOR: TagLevel[] = [
38
+ 'inactive',
39
+ 'active',
40
+ 'success',
41
+ 'processing',
42
+ 'error',
43
+ 'warning'
44
+ ];
45
+
46
+ export class Tag extends React.Component<TagProps> {
47
+ static defaultProps: Partial<TagProps> = {
48
+ displayMode: 'normal'
49
+ };
50
+
51
+ renderCloseIcon() {
52
+ const {closeIcon, classnames: cx, closable} = this.props;
53
+
54
+ if (!closable) {
55
+ return null;
56
+ }
57
+
58
+ const icon =
59
+ typeof closeIcon === 'string' ? (
60
+ getIcon(closeIcon) ? (
61
+ <Icon icon={closeIcon} className="icon" />
62
+ ) : (
63
+ generateIcon(cx, closeIcon, 'Icon')
64
+ )
65
+ ) : React.isValidElement(closeIcon) ? (
66
+ closeIcon
67
+ ) : (
68
+ <Icon icon="close" className="icon" />
69
+ );
70
+
71
+ return (
72
+ <span className={cx(`Tag--close`)} onClick={this.handleClose}>
73
+ {icon}
74
+ </span>
75
+ );
76
+ }
77
+
78
+ @autobind
79
+ handleClose(e: React.MouseEvent<HTMLElement>) {
80
+ const {onClose} = this.props;
81
+ e.stopPropagation();
82
+ onClose?.(e);
83
+ }
84
+
85
+ render() {
86
+ const {
87
+ children,
88
+ classnames: cx,
89
+ className,
90
+ displayMode,
91
+ disabled,
92
+ color,
93
+ icon,
94
+ style,
95
+ label
96
+ } = this.props;
97
+
98
+ const isPresetColor =
99
+ color && PRESET_COLOR.indexOf(color as TagLevel) !== -1;
100
+
101
+ const customColor = color && !isPresetColor ? color : undefined;
102
+
103
+ const tagStyle = {
104
+ backgroundColor: displayMode === 'normal' ? customColor : undefined,
105
+ borderColor: displayMode === 'rounded' ? customColor : undefined,
106
+ color: displayMode === 'rounded' ? customColor : undefined,
107
+ ...style
108
+ };
109
+
110
+ const prevIcon = displayMode === 'status' && (
111
+ <span className={cx('Tag--prev')}>
112
+ {typeof icon === 'string' ? (
113
+ getIcon(icon) ? (
114
+ <Icon icon={icon} className="icon" />
115
+ ) : (
116
+ generateIcon(cx, icon, 'Icon')
117
+ )
118
+ ) : React.isValidElement(icon) ? (
119
+ icon
120
+ ) : (
121
+ <Icon icon="dot" className="icon" />
122
+ )}
123
+ </span>
124
+ );
125
+
126
+ return (
127
+ <span
128
+ className={cx('Tag', `Tag--${displayMode}`, className, {
129
+ [`Tag--${displayMode}--${color}`]: isPresetColor,
130
+ [`Tag--${displayMode}--hasColor`]: color,
131
+ [`Tag--disabled`]: disabled
132
+ })}
133
+ style={tagStyle}
134
+ >
135
+ {prevIcon}
136
+ {label || children}
137
+ {this.renderCloseIcon()}
138
+ </span>
139
+ );
140
+ }
141
+ }
142
+
143
+ class CheckableTagComp extends React.Component<CheckableTagProps> {
144
+ @autobind
145
+ handleClick(e: React.MouseEvent) {
146
+ const {onChange, onClick, checked} = this.props;
147
+
148
+ onChange?.(!checked);
149
+ onClick?.(e);
150
+ }
151
+
152
+ render() {
153
+ const {
154
+ classnames: cx,
155
+ className,
156
+ disabled,
157
+ label,
158
+ children,
159
+ checked,
160
+ style = {}
161
+ } = this.props;
162
+
163
+ return (
164
+ <span
165
+ className={cx(className, 'Tag', 'Tag--checkable', {
166
+ 'Tag--checkable--checked': checked,
167
+ 'Tag--checkable--disabled': disabled
168
+ })}
169
+ onClick={disabled ? noop : this.handleClick}
170
+ style={style}
171
+ >
172
+ {label || children}
173
+ </span>
174
+ );
175
+ }
176
+ }
177
+
178
+ export const CheckableTag = themeable(CheckableTagComp);
179
+ export default themeable(Tag);
@@ -92,9 +92,13 @@ export interface TooltipWrapperProps {
92
92
  rootClose: boolean;
93
93
  overlay?: any;
94
94
  delay: number;
95
- theme?: string;
95
+ tooltipTheme?: string;
96
96
  tooltipClassName?: string;
97
97
  style?: React.CSSProperties;
98
+ /**
99
+ * 显示&隐藏时触发
100
+ */
101
+ onVisibleChange?: (visible: boolean) => void;
98
102
  }
99
103
 
100
104
  interface TooltipWrapperState {
@@ -151,6 +155,10 @@ export class TooltipWrapper extends React.Component<
151
155
  show() {
152
156
  this.setState({
153
157
  show: true
158
+ }, () => {
159
+ if (this.props.onVisibleChange) {
160
+ this.props.onVisibleChange(true);
161
+ }
154
162
  });
155
163
  }
156
164
 
@@ -159,6 +167,10 @@ export class TooltipWrapper extends React.Component<
159
167
  this.moutned &&
160
168
  this.setState({
161
169
  show: false
170
+ }, () => {
171
+ if (this.props.onVisibleChange) {
172
+ this.props.onVisibleChange(false);
173
+ }
162
174
  });
163
175
  }
164
176
 
@@ -262,6 +274,7 @@ export class TooltipWrapper extends React.Component<
262
274
  tooltipClassName: props.tooltipClassName,
263
275
  style: props.style,
264
276
  mouseLeaveDelay: props.delay,
277
+ tooltipTheme: props.tooltipTheme as 'dark' | 'light',
265
278
  ...(typeof props.tooltip === 'string'
266
279
  ? {content: props.tooltip}
267
280
  : props.tooltip)
@@ -15,6 +15,7 @@ export interface TransferDropDownProps extends TransferProps {
15
15
  borderMode?: 'full' | 'half' | 'none';
16
16
  useMobileUI?: boolean;
17
17
  popOverContainer?: any;
18
+ itemRender: (value: any) => JSX.Element | string;
18
19
  }
19
20
 
20
21
  export class TransferDropDown extends Transfer<TransferDropDownProps> {
@@ -22,6 +23,7 @@ export class TransferDropDown extends Transfer<TransferDropDownProps> {
22
23
  const {
23
24
  classnames: cx,
24
25
  value,
26
+ itemRender,
25
27
  translate: __,
26
28
  disabled,
27
29
  clearable,
@@ -108,6 +110,7 @@ export class TransferDropDown extends Transfer<TransferDropDownProps> {
108
110
  disabled={disabled}
109
111
  clearable={clearable}
110
112
  ref={ref}
113
+ itemRender={itemRender}
111
114
  useMobileUI={useMobileUI}
112
115
  >
113
116
  {!mobileUI ? (
@@ -15,6 +15,7 @@ import type {TabsMode} from '../Tabs';
15
15
  export interface VariableListProps extends ThemeProps {
16
16
  className?: string;
17
17
  itemClassName?: string;
18
+ value?: any;
18
19
  data: Array<VariableItem>;
19
20
  selectMode?: 'list' | 'tree' | 'tabs';
20
21
  tabsMode?: TabsMode;
@@ -84,6 +84,7 @@ import FunctionIcon from '../icons/function.svg';
84
84
  import InputClearIcon from '../icons/input-clear.svg';
85
85
  import SliderHandleIcon from '../icons/slider-handle-icon.svg';
86
86
  import TrashIcon from '../icons/trash.svg';
87
+ import DotIcon from '../icons/dot.svg';
87
88
 
88
89
  // 兼容原来的用法,后续不直接试用。
89
90
 
@@ -194,6 +195,7 @@ registerIcon('cloud-upload', CloudUploadIcon);
194
195
  registerIcon('image', ImageIcon);
195
196
  registerIcon('refresh', RefreshIcon);
196
197
  registerIcon('trash', TrashIcon);
198
+ registerIcon('dot', DotIcon);
197
199
 
198
200
  export function Icon({
199
201
  icon,
@@ -58,6 +58,9 @@ import TableSelection from './TableSelection';
58
58
  import TreeSelection from './TreeSelection';
59
59
  import AssociatedSelection from './AssociatedSelection';
60
60
  import PullRefresh from './PullRefresh';
61
+ import Table from './table';
62
+ import SchemaVariableListPicker from './schema-editor/SchemaVariableListPicker';
63
+ import SchemaVariableList from './schema-editor/SchemaVariableList';
61
64
 
62
65
  export {
63
66
  NotFound,
@@ -119,5 +122,8 @@ export {
119
122
  NumberInput,
120
123
  ArrayInput,
121
124
  AnchorNav,
122
- PullRefresh
125
+ PullRefresh,
126
+ Table,
127
+ SchemaVariableListPicker,
128
+ SchemaVariableList
123
129
  };
@@ -0,0 +1,95 @@
1
+ import React from 'react';
2
+ import {autobind} from '../../utils/helper';
3
+ import {Icon} from '../icons';
4
+ import {SchemaEditorItemCommon} from './Common';
5
+ import {SchemaEditorItem} from './Item';
6
+
7
+ export class SchemaEditorItemArray extends SchemaEditorItemCommon {
8
+ state = {
9
+ collapsed: false
10
+ };
11
+
12
+ @autobind
13
+ toggleCollapsed() {
14
+ this.setState({
15
+ collapsed: !this.state.collapsed
16
+ });
17
+ }
18
+
19
+ @autobind
20
+ handleItemsChange(items: any) {
21
+ const value: any = {
22
+ ...this.props.value,
23
+ type: 'array',
24
+ items
25
+ };
26
+ this.props.onChange?.(value);
27
+ }
28
+
29
+ renderItems() {
30
+ const {
31
+ classnames: cx,
32
+ value,
33
+ renderExtraProps,
34
+ locale,
35
+ translate: __,
36
+ classPrefix,
37
+ disabled,
38
+ showInfo,
39
+ types,
40
+ onTypeChange
41
+ } = this.props;
42
+ const items = value?.items || {
43
+ type: 'string'
44
+ };
45
+
46
+ return (
47
+ <div
48
+ className={cx('SchemaEditorProps SchemaEditorArrayProps', {
49
+ 'SchemaEditorProps--depth': showInfo !== false
50
+ })}
51
+ >
52
+ <SchemaEditorItem
53
+ types={types}
54
+ onTypeChange={onTypeChange}
55
+ prefix={
56
+ <div className={cx('SchemaEditor-itemsLabel')}>
57
+ {__('JSONSchema.array_items')}
58
+ </div>
59
+ }
60
+ value={items as any}
61
+ onChange={this.handleItemsChange}
62
+ renderExtraProps={renderExtraProps}
63
+ locale={locale}
64
+ translate={__}
65
+ classnames={cx}
66
+ classPrefix={classPrefix}
67
+ disabled={disabled || !!(items as any)?.$ref}
68
+ />
69
+ </div>
70
+ );
71
+ }
72
+
73
+ render() {
74
+ const {classnames: cx, showInfo, disabled} = this.props;
75
+
76
+ return (
77
+ <div className={cx('SchemaEditorItem SchemaEditorArray')}>
78
+ {showInfo !== false ? (
79
+ <>
80
+ <a
81
+ className={cx('SchemaEditor-caret', {
82
+ 'is-collapsed': this.state.collapsed
83
+ })}
84
+ onClick={this.toggleCollapsed}
85
+ >
86
+ <Icon icon="caret" className="icon" />
87
+ </a>
88
+ {this.renderCommon()}
89
+ </>
90
+ ) : null}
91
+ {this.state.collapsed ? null : this.renderItems()}
92
+ </div>
93
+ );
94
+ }
95
+ }
@@ -0,0 +1,138 @@
1
+ import React from 'react';
2
+ import {LocaleProps} from '../../locale';
3
+ import {ThemeProps} from '../../theme';
4
+ import type {JSONSchema} from '../../utils/DataScope';
5
+ import {autobind} from '../../utils/helper';
6
+ import Checkbox from '../Checkbox';
7
+ import InputBox from '../InputBox';
8
+ import Select from '../Select';
9
+
10
+ export interface SchemaEditorItemCommonProps extends LocaleProps, ThemeProps {
11
+ value?: JSONSchema;
12
+ onChange: (value: JSONSchema) => void;
13
+ types: Array<{
14
+ label: string;
15
+ value: string;
16
+ [propName: string]: any;
17
+ }>;
18
+ onTypeChange?: (
19
+ type: string,
20
+ value: JSONSchema,
21
+ origin?: JSONSchema
22
+ ) => JSONSchema | void;
23
+ disabled?: boolean;
24
+ required?: boolean;
25
+ onRequiredChange?: (value: boolean) => void;
26
+ typeMutable?: boolean;
27
+ showInfo?: boolean;
28
+ renderExtraProps?: (
29
+ value: JSONSchema,
30
+ onChange: (value: JSONSchema) => void
31
+ ) => JSX.Element;
32
+ prefix?: JSX.Element;
33
+ affix?: JSX.Element;
34
+ }
35
+
36
+ export class SchemaEditorItemCommon<
37
+ P extends SchemaEditorItemCommonProps = SchemaEditorItemCommonProps,
38
+ S = any
39
+ > extends React.Component<P, S> {
40
+ @autobind
41
+ handleTypeChange(type: any) {
42
+ const {value, onChange, onTypeChange} = this.props;
43
+ let newValue: any = {
44
+ type
45
+ };
46
+
47
+ newValue = onTypeChange?.(type, newValue, value) ?? newValue;
48
+ onChange?.(newValue);
49
+ }
50
+
51
+ @autobind
52
+ handleDescriptionChange(description: string) {
53
+ const {value, onChange} = this.props;
54
+ onChange?.({
55
+ ...value,
56
+ description
57
+ });
58
+ }
59
+
60
+ @autobind
61
+ handleExtraPropsChange(newValue: JSONSchema) {
62
+ const {onChange} = this.props;
63
+ onChange?.({
64
+ ...newValue
65
+ });
66
+ }
67
+
68
+ // @autobind
69
+ // handleSettingClick() {}
70
+
71
+ renderCommon() {
72
+ const {
73
+ value,
74
+ translate: __,
75
+ typeMutable,
76
+ disabled,
77
+ classnames: cx,
78
+ required,
79
+ onRequiredChange,
80
+ renderExtraProps,
81
+ prefix,
82
+ affix,
83
+ types
84
+ } = this.props;
85
+
86
+ return (
87
+ <>
88
+ {prefix}
89
+
90
+ <Select
91
+ options={types}
92
+ className={cx('SchemaEditor-type')}
93
+ value={value?.$ref || value?.type || 'string'}
94
+ onChange={this.handleTypeChange}
95
+ clearable={false}
96
+ disabled={disabled || typeMutable === false}
97
+ simpleValue
98
+ />
99
+
100
+ {onRequiredChange ? (
101
+ <Checkbox
102
+ className={cx('SchemaEditor-required')}
103
+ label={__('Required')}
104
+ value={required}
105
+ onChange={onRequiredChange}
106
+ disabled={disabled || typeMutable === false}
107
+ />
108
+ ) : null}
109
+
110
+ <InputBox
111
+ className={cx('SchemaEditor-description')}
112
+ value={value?.description || ''}
113
+ onChange={this.handleDescriptionChange}
114
+ placeholder={__('JSONSchema.description')}
115
+ disabled={disabled}
116
+ />
117
+
118
+ {renderExtraProps?.(value!, this.handleExtraPropsChange)}
119
+
120
+ {/* todo 后面扩充详细配置
121
+ <Button
122
+ className={cx('SchemaEditor-btn')}
123
+ onClick={this.handleSettingClick}
124
+ iconOnly
125
+ >
126
+ <Icon icon="setting" className="icon" />
127
+ </Button> */}
128
+
129
+ {affix}
130
+ </>
131
+ );
132
+ }
133
+
134
+ render() {
135
+ const {classnames: cx} = this.props;
136
+ return <div className={cx('SchemaEditorItem')}>{this.renderCommon()}</div>;
137
+ }
138
+ }
@@ -0,0 +1,36 @@
1
+ import React from 'react';
2
+ import {LocaleProps} from '../../locale';
3
+ import {ThemeProps} from '../../theme';
4
+ import type {JSONSchema} from '../../utils/DataScope';
5
+ import {autobind} from '../../utils/helper';
6
+ import Checkbox from '../Checkbox';
7
+ import InputBox from '../InputBox';
8
+ import Select from '../Select';
9
+ import {SchemaEditorItemArray} from './Array';
10
+ import {SchemaEditorItemCommon, SchemaEditorItemCommonProps} from './Common';
11
+ import {SchemaEditorItemObject} from './Object';
12
+
13
+ export interface SchemaEditorItemProps
14
+ extends SchemaEditorItemCommonProps,
15
+ LocaleProps,
16
+ ThemeProps {}
17
+
18
+ export class SchemaEditorItem extends React.Component<SchemaEditorItemProps> {
19
+ render() {
20
+ const {value} = this.props;
21
+
22
+ // 动态Component要用大写开头的才会被识别
23
+ let Renderer = SchemaEditorItemCommon;
24
+ switch (value?.type) {
25
+ case 'object':
26
+ Renderer = SchemaEditorItemObject as any;
27
+ break;
28
+
29
+ case 'array':
30
+ Renderer = SchemaEditorItemArray as any;
31
+ break;
32
+ }
33
+
34
+ return <Renderer {...this.props} />;
35
+ }
36
+ }