amis 1.5.7 → 1.5.8-beta.2

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 (350) hide show
  1. package/.husky/pre-commit +1 -1
  2. package/lib/Schema.d.ts +3 -2
  3. package/lib/Schema.js.map +1 -1
  4. package/lib/components/AssociatedSelection.d.ts +84 -84
  5. package/lib/components/AssociatedSelection.js +2 -2
  6. package/lib/components/AssociatedSelection.js.map +2 -2
  7. package/lib/components/Avatar.d.ts +135 -0
  8. package/lib/components/Avatar.js +120 -0
  9. package/lib/components/Avatar.js.map +13 -0
  10. package/lib/components/BaiduMapPicker.js.map +2 -2
  11. package/lib/components/CalendarMobile.d.ts +547 -0
  12. package/lib/components/CalendarMobile.js +432 -0
  13. package/lib/components/CalendarMobile.js.map +13 -0
  14. package/lib/components/Card.d.ts +20 -20
  15. package/lib/components/ChainedSelection.d.ts +84 -84
  16. package/lib/components/ChainedSelection.js +15 -3
  17. package/lib/components/ChainedSelection.js.map +2 -2
  18. package/lib/components/ColorPicker.d.ts +84 -84
  19. package/lib/components/ColorPicker.js.map +2 -2
  20. package/lib/components/DatePicker.d.ts +84 -84
  21. package/lib/components/DatePicker.js +10 -4
  22. package/lib/components/DatePicker.js.map +2 -2
  23. package/lib/components/DateRangePicker.d.ts +85 -84
  24. package/lib/components/DateRangePicker.js +21 -6
  25. package/lib/components/DateRangePicker.js.map +2 -2
  26. package/lib/components/GroupedSelection.d.ts +84 -84
  27. package/lib/components/GroupedSelection.js +14 -2
  28. package/lib/components/GroupedSelection.js.map +2 -2
  29. package/lib/components/MonthRangePicker.d.ts +85 -84
  30. package/lib/components/MonthRangePicker.js +19 -6
  31. package/lib/components/MonthRangePicker.js.map +2 -2
  32. package/lib/components/Overlay.d.ts +1 -1
  33. package/lib/components/Overlay.js.map +1 -1
  34. package/lib/components/Picker.js +9 -4
  35. package/lib/components/Picker.js.map +2 -2
  36. package/lib/components/PickerColumn.js +0 -1
  37. package/lib/components/PickerColumn.js.map +2 -2
  38. package/lib/components/PickerContainer.d.ts +3 -0
  39. package/lib/components/PickerContainer.js +12 -5
  40. package/lib/components/PickerContainer.js.map +2 -2
  41. package/lib/components/PopUp.d.ts +1 -0
  42. package/lib/components/PopUp.js +5 -5
  43. package/lib/components/PopUp.js.map +2 -2
  44. package/lib/components/ResultBox.js +2 -1
  45. package/lib/components/ResultBox.js.map +2 -2
  46. package/lib/components/ResultList.d.ts +9 -2
  47. package/lib/components/ResultList.js +22 -2
  48. package/lib/components/ResultList.js.map +2 -2
  49. package/lib/components/Select.d.ts +237 -237
  50. package/lib/components/Select.js +1 -1
  51. package/lib/components/Select.js.map +1 -1
  52. package/lib/components/Selection.d.ts +94 -86
  53. package/lib/components/Selection.js +11 -2
  54. package/lib/components/Selection.js.map +2 -2
  55. package/lib/components/Steps.js.map +2 -2
  56. package/lib/components/TableSelection.d.ts +85 -85
  57. package/lib/components/TableSelection.js +1 -9
  58. package/lib/components/TableSelection.js.map +2 -2
  59. package/lib/components/Tabs.js +31 -33
  60. package/lib/components/Tabs.js.map +2 -2
  61. package/lib/components/TabsTransfer.d.ts +87 -256
  62. package/lib/components/TabsTransfer.js +52 -9
  63. package/lib/components/TabsTransfer.js.map +2 -2
  64. package/lib/components/TabsTransferPicker.d.ts +1 -1
  65. package/lib/components/TabsTransferPicker.js +20 -18
  66. package/lib/components/TabsTransferPicker.js.map +2 -2
  67. package/lib/components/Timeline.d.ts +69 -0
  68. package/lib/components/Timeline.js +16 -0
  69. package/lib/components/Timeline.js.map +13 -0
  70. package/lib/components/TimelineItem.d.ts +516 -0
  71. package/lib/components/TimelineItem.js +41 -0
  72. package/lib/components/TimelineItem.js.map +13 -0
  73. package/lib/components/Transfer.d.ts +100 -98
  74. package/lib/components/Transfer.js +2 -3
  75. package/lib/components/Transfer.js.map +2 -2
  76. package/lib/components/TransferDropDown.d.ts +84 -84
  77. package/lib/components/TransferDropDown.js +1 -5
  78. package/lib/components/TransferDropDown.js.map +2 -2
  79. package/lib/components/TransferPicker.d.ts +1 -0
  80. package/lib/components/TransferPicker.js +19 -4
  81. package/lib/components/TransferPicker.js.map +2 -2
  82. package/lib/components/TreeSelection.d.ts +85 -85
  83. package/lib/components/TreeSelection.js +7 -1
  84. package/lib/components/TreeSelection.js.map +2 -2
  85. package/lib/components/calendar/Calendar.d.ts +5 -0
  86. package/lib/components/calendar/Calendar.js +15 -2
  87. package/lib/components/calendar/Calendar.js.map +2 -2
  88. package/lib/components/calendar/DaysView.d.ts +1 -0
  89. package/lib/components/calendar/DaysView.js +25 -13
  90. package/lib/components/calendar/DaysView.js.map +2 -2
  91. package/lib/components/calendar/MonthsView.d.ts +28 -0
  92. package/lib/components/calendar/MonthsView.js +79 -3
  93. package/lib/components/calendar/MonthsView.js.map +2 -2
  94. package/lib/components/calendar/QuartersView.d.ts +1 -0
  95. package/lib/components/calendar/QuartersView.js +2 -2
  96. package/lib/components/calendar/QuartersView.js.map +2 -2
  97. package/lib/components/calendar/TimeView.d.ts +5 -0
  98. package/lib/components/calendar/TimeView.js +8 -5
  99. package/lib/components/calendar/TimeView.js.map +2 -2
  100. package/lib/components/calendar/YearsView.js +6 -4
  101. package/lib/components/calendar/YearsView.js.map +2 -2
  102. package/lib/components/condition-builder/Field.js +1 -4
  103. package/lib/components/condition-builder/Field.js.map +2 -2
  104. package/lib/components/condition-builder/Func.js +1 -1
  105. package/lib/components/condition-builder/Func.js.map +2 -2
  106. package/lib/components/formula/Editor.d.ts +3 -0
  107. package/lib/components/formula/Editor.js +3 -2
  108. package/lib/components/formula/Editor.js.map +2 -2
  109. package/lib/components/formula/FuncList.js +2 -1
  110. package/lib/components/formula/FuncList.js.map +2 -2
  111. package/lib/components/formula/Picker.js +1 -1
  112. package/lib/components/formula/Picker.js.map +2 -2
  113. package/lib/components/icons.js +2 -0
  114. package/lib/components/icons.js.map +2 -2
  115. package/lib/components/index.d.ts +2 -1
  116. package/lib/components/index.js +4 -2
  117. package/lib/components/index.js.map +2 -2
  118. package/lib/components/virtual-list/SizeAndPositionManager.js.map +2 -2
  119. package/lib/components/virtual-list/index.js +1 -2
  120. package/lib/components/virtual-list/index.js.map +2 -2
  121. package/lib/factory.js +5 -0
  122. package/lib/factory.js.map +2 -2
  123. package/lib/icons/tree-down.js +7 -0
  124. package/lib/index.d.ts +1 -0
  125. package/lib/index.js +2 -1
  126. package/lib/index.js.map +2 -2
  127. package/lib/locale/de-DE.js +13 -2
  128. package/lib/locale/de-DE.js.map +2 -2
  129. package/lib/locale/en-US.js +13 -2
  130. package/lib/locale/en-US.js.map +2 -2
  131. package/lib/locale/zh-CN.js +12 -1
  132. package/lib/locale/zh-CN.js.map +2 -2
  133. package/lib/renderers/Avatar.d.ts +35 -26
  134. package/lib/renderers/Avatar.js +14 -19
  135. package/lib/renderers/Avatar.js.map +2 -2
  136. package/lib/renderers/Card.js +6 -5
  137. package/lib/renderers/Card.js.map +2 -2
  138. package/lib/renderers/Custom.js.map +2 -2
  139. package/lib/renderers/Each.js +5 -2
  140. package/lib/renderers/Each.js.map +2 -2
  141. package/lib/renderers/Flex.js +1 -5
  142. package/lib/renderers/Flex.js.map +2 -2
  143. package/lib/renderers/Form/ChartRadios.js.map +2 -2
  144. package/lib/renderers/Form/Checkboxes.js.map +2 -2
  145. package/lib/renderers/Form/DiffEditor.js +2 -1
  146. package/lib/renderers/Form/DiffEditor.js.map +2 -2
  147. package/lib/renderers/Form/InputCity.d.ts +84 -84
  148. package/lib/renderers/Form/InputColor.d.ts +84 -84
  149. package/lib/renderers/Form/InputColor.js +1 -1
  150. package/lib/renderers/Form/InputColor.js.map +2 -2
  151. package/lib/renderers/Form/InputDate.js +6 -4
  152. package/lib/renderers/Form/InputDate.js.map +2 -2
  153. package/lib/renderers/Form/InputDateRange.js +1 -1
  154. package/lib/renderers/Form/InputDateRange.js.map +2 -2
  155. package/lib/renderers/Form/InputFormula.d.ts +4 -1
  156. package/lib/renderers/Form/InputFormula.js +2 -2
  157. package/lib/renderers/Form/InputFormula.js.map +2 -2
  158. package/lib/renderers/Form/InputImage.d.ts +1 -0
  159. package/lib/renderers/Form/InputImage.js +8 -4
  160. package/lib/renderers/Form/InputImage.js.map +2 -2
  161. package/lib/renderers/Form/InputMonthRange.js +1 -1
  162. package/lib/renderers/Form/InputMonthRange.js.map +2 -2
  163. package/lib/renderers/Form/InputQuarterRange.js +1 -1
  164. package/lib/renderers/Form/InputQuarterRange.js.map +2 -2
  165. package/lib/renderers/Form/InputYearRange.js +1 -1
  166. package/lib/renderers/Form/InputYearRange.js.map +2 -2
  167. package/lib/renderers/Form/Item.js +11 -4
  168. package/lib/renderers/Form/Item.js.map +2 -2
  169. package/lib/renderers/Form/NestedSelect.js +1 -1
  170. package/lib/renderers/Form/NestedSelect.js.map +2 -2
  171. package/lib/renderers/Form/Select.js +1 -1
  172. package/lib/renderers/Form/Select.js.map +2 -2
  173. package/lib/renderers/Form/TabsTransfer.d.ts +5 -32
  174. package/lib/renderers/Form/TabsTransfer.js +20 -1
  175. package/lib/renderers/Form/TabsTransfer.js.map +2 -2
  176. package/lib/renderers/Form/TabsTransferPicker.d.ts +5 -35
  177. package/lib/renderers/Form/TabsTransferPicker.js +21 -2
  178. package/lib/renderers/Form/TabsTransferPicker.js.map +2 -2
  179. package/lib/renderers/Form/Transfer.d.ts +15 -4
  180. package/lib/renderers/Form/Transfer.js +55 -18
  181. package/lib/renderers/Form/Transfer.js.map +2 -2
  182. package/lib/renderers/Form/TransferPicker.d.ts +3 -32
  183. package/lib/renderers/Form/TransferPicker.js +1 -1
  184. package/lib/renderers/Form/TransferPicker.js.map +2 -2
  185. package/lib/renderers/Form/TreeSelect.js.map +2 -2
  186. package/lib/renderers/IFrame.js +0 -2
  187. package/lib/renderers/IFrame.js.map +2 -2
  188. package/lib/renderers/Remark.d.ts +4 -0
  189. package/lib/renderers/Remark.js +38 -7
  190. package/lib/renderers/Remark.js.map +2 -2
  191. package/lib/renderers/Steps.js +5 -5
  192. package/lib/renderers/Steps.js.map +2 -2
  193. package/lib/renderers/Table/index.js +4 -1
  194. package/lib/renderers/Table/index.js.map +2 -2
  195. package/lib/renderers/Tabs.js +1 -1
  196. package/lib/renderers/Tabs.js.map +2 -2
  197. package/lib/renderers/Timeline.d.ts +65 -0
  198. package/lib/renderers/Timeline.js +54 -0
  199. package/lib/renderers/Timeline.js.map +13 -0
  200. package/lib/renderers/Video.js.map +2 -2
  201. package/lib/store/combo.js.map +2 -2
  202. package/lib/themes/ang-ie11.css +659 -25
  203. package/lib/themes/ang.css +659 -25
  204. package/lib/themes/ang.css.map +1 -1
  205. package/lib/themes/antd-ie11.css +694 -25
  206. package/lib/themes/antd.css +694 -25
  207. package/lib/themes/antd.css.map +1 -1
  208. package/lib/themes/cxd-ie11.css +696 -25
  209. package/lib/themes/cxd.css +696 -25
  210. package/lib/themes/cxd.css.map +1 -1
  211. package/lib/themes/dark-ie11.css +660 -25
  212. package/lib/themes/dark.css +660 -25
  213. package/lib/themes/dark.css.map +1 -1
  214. package/lib/themes/default.css +696 -25
  215. package/lib/themes/default.css.map +1 -1
  216. package/lib/utils/RootClose.js +3 -1
  217. package/lib/utils/RootClose.js.map +2 -2
  218. package/lib/utils/helper.d.ts +1 -1
  219. package/lib/utils/helper.js +1 -1
  220. package/lib/utils/helper.js.map +2 -2
  221. package/package.json +13 -6
  222. package/schema.json +1042 -541
  223. package/scss/_properties.scss +8 -0
  224. package/scss/components/_avatar.scss +27 -9
  225. package/scss/components/_calendar.scss +280 -0
  226. package/scss/components/_card.scss +1 -1
  227. package/scss/components/_collapse-group.scss +1 -3
  228. package/scss/components/_formula.scss +30 -6
  229. package/scss/components/_modal.scss +18 -0
  230. package/scss/components/_panel.scss +45 -0
  231. package/scss/components/_popup.scss +10 -6
  232. package/scss/components/_timeline.scss +198 -0
  233. package/scss/components/form/_form.scss +168 -0
  234. package/scss/components/form/_result-list.scss +2 -0
  235. package/scss/components/form/_selection.scss +5 -4
  236. package/scss/themes/_antd-variables.scss +42 -0
  237. package/scss/themes/_common.scss +1 -0
  238. package/scss/themes/_cxd-variables.scss +47 -0
  239. package/scss/themes/_dark-variables.scss +1 -0
  240. package/sdk/ang-ie11.css +782 -23
  241. package/sdk/ang.css +791 -26
  242. package/sdk/antd-ie11.css +782 -23
  243. package/sdk/antd.css +826 -26
  244. package/sdk/charts.js +17 -17
  245. package/sdk/codemirror.js +7 -7
  246. package/sdk/color-picker.js +65 -65
  247. package/sdk/cropperjs.js +3 -3
  248. package/sdk/cxd-ie11.css +782 -23
  249. package/sdk/cxd.css +828 -26
  250. package/sdk/dark-ie11.css +783 -24
  251. package/sdk/dark.css +792 -26
  252. package/sdk/exceljs.js +1 -1
  253. package/sdk/locale/de-DE.js +13 -2
  254. package/sdk/markdown.js +69 -69
  255. package/sdk/papaparse.js +1 -1
  256. package/sdk/renderers/Form/CityDB.js +1 -1
  257. package/sdk/rest.js +18 -18
  258. package/sdk/rich-text.js +62 -62
  259. package/sdk/sdk-ie11.css +782 -23
  260. package/sdk/sdk.css +828 -26
  261. package/sdk/sdk.js +1225 -1285
  262. package/sdk/thirds/hls.js/hls.js +18 -18
  263. package/sdk/thirds/mpegts.js/mpegts.js +2 -2
  264. package/sdk/tinymce.js +57 -57
  265. package/src/Schema.ts +3 -0
  266. package/src/components/AssociatedSelection.tsx +5 -1
  267. package/src/components/Avatar.tsx +253 -0
  268. package/src/components/BaiduMapPicker.tsx +19 -14
  269. package/src/components/CalendarMobile.tsx +563 -0
  270. package/src/components/ChainedSelection.tsx +16 -3
  271. package/src/components/ColorPicker.tsx +37 -39
  272. package/src/components/DatePicker.tsx +41 -35
  273. package/src/components/DateRangePicker.tsx +61 -16
  274. package/src/components/GroupedSelection.tsx +14 -2
  275. package/src/components/MonthRangePicker.tsx +57 -17
  276. package/src/components/Overlay.tsx +1 -1
  277. package/src/components/Picker.tsx +41 -36
  278. package/src/components/PickerColumn.tsx +22 -25
  279. package/src/components/PickerContainer.tsx +13 -1
  280. package/src/components/PopUp.tsx +34 -49
  281. package/src/components/ResultBox.tsx +4 -1
  282. package/src/components/ResultList.tsx +36 -6
  283. package/src/components/Select.tsx +1 -1
  284. package/src/components/Selection.tsx +21 -3
  285. package/src/components/Steps.tsx +23 -10
  286. package/src/components/TableSelection.tsx +1 -44
  287. package/src/components/Tabs.tsx +65 -54
  288. package/src/components/TabsTransfer.tsx +78 -9
  289. package/src/components/TabsTransferPicker.tsx +25 -13
  290. package/src/components/Timeline.tsx +31 -0
  291. package/src/components/TimelineItem.tsx +107 -0
  292. package/src/components/Transfer.tsx +11 -8
  293. package/src/components/TransferDropDown.tsx +1 -7
  294. package/src/components/TransferPicker.tsx +25 -4
  295. package/src/components/TreeSelection.tsx +7 -1
  296. package/src/components/calendar/Calendar.tsx +26 -6
  297. package/src/components/calendar/DaysView.tsx +79 -31
  298. package/src/components/calendar/MonthsView.tsx +116 -2
  299. package/src/components/calendar/QuartersView.tsx +3 -2
  300. package/src/components/calendar/TimeView.tsx +26 -16
  301. package/src/components/calendar/YearsView.tsx +14 -16
  302. package/src/components/condition-builder/Field.tsx +1 -3
  303. package/src/components/condition-builder/Func.tsx +1 -1
  304. package/src/components/formula/Editor.tsx +16 -11
  305. package/src/components/formula/FuncList.tsx +3 -1
  306. package/src/components/formula/Picker.tsx +2 -1
  307. package/src/components/icons.tsx +2 -0
  308. package/src/components/index.tsx +2 -0
  309. package/src/components/virtual-list/SizeAndPositionManager.ts +6 -3
  310. package/src/components/virtual-list/index.tsx +4 -6
  311. package/src/factory.tsx +6 -0
  312. package/src/icons/tree-down.svg +5 -0
  313. package/src/index.tsx +1 -0
  314. package/src/locale/de-DE.ts +13 -2
  315. package/src/locale/en-US.ts +13 -2
  316. package/src/locale/zh-CN.ts +12 -1
  317. package/src/renderers/Avatar.tsx +83 -74
  318. package/src/renderers/Card.tsx +10 -6
  319. package/src/renderers/Custom.tsx +6 -3
  320. package/src/renderers/Each.tsx +4 -4
  321. package/src/renderers/Flex.tsx +3 -7
  322. package/src/renderers/Form/ChartRadios.tsx +2 -7
  323. package/src/renderers/Form/Checkboxes.tsx +1 -1
  324. package/src/renderers/Form/DiffEditor.tsx +2 -3
  325. package/src/renderers/Form/InputColor.tsx +1 -1
  326. package/src/renderers/Form/InputDate.tsx +38 -19
  327. package/src/renderers/Form/InputDateRange.tsx +0 -1
  328. package/src/renderers/Form/InputFormula.tsx +9 -4
  329. package/src/renderers/Form/InputImage.tsx +9 -4
  330. package/src/renderers/Form/InputMonthRange.tsx +0 -1
  331. package/src/renderers/Form/InputQuarterRange.tsx +0 -1
  332. package/src/renderers/Form/InputYearRange.tsx +0 -1
  333. package/src/renderers/Form/Item.tsx +15 -4
  334. package/src/renderers/Form/NestedSelect.tsx +1 -1
  335. package/src/renderers/Form/Select.tsx +0 -1
  336. package/src/renderers/Form/TabsTransfer.tsx +28 -38
  337. package/src/renderers/Form/TabsTransferPicker.tsx +28 -46
  338. package/src/renderers/Form/Transfer.tsx +75 -24
  339. package/src/renderers/Form/TransferPicker.tsx +6 -38
  340. package/src/renderers/Form/TreeSelect.tsx +12 -14
  341. package/src/renderers/IFrame.tsx +0 -2
  342. package/src/renderers/Remark.tsx +67 -18
  343. package/src/renderers/Steps.tsx +11 -13
  344. package/src/renderers/Table/index.tsx +7 -1
  345. package/src/renderers/Tabs.tsx +6 -2
  346. package/src/renderers/Timeline.tsx +141 -0
  347. package/src/renderers/Video.tsx +4 -20
  348. package/src/store/combo.ts +1 -3
  349. package/src/utils/RootClose.ts +5 -1
  350. package/src/utils/helper.ts +1 -1
@@ -19,6 +19,8 @@ export interface PickerContainerProps extends ThemeProps, LocaleProps {
19
19
  onClose: () => void;
20
20
  value: any;
21
21
  onChange: (value: any) => void;
22
+ setState: (state: any) => void;
23
+ [propName: string]: any;
22
24
  }) => JSX.Element;
23
25
  value?: any;
24
26
  onConfirm?: (value?: any) => void;
@@ -83,6 +85,15 @@ export class PickerContainer extends React.Component<
83
85
  this.close(undefined, () => onConfirm?.(this.state.value));
84
86
  }
85
87
 
88
+ @autobind
89
+ updateState(state: any = {}) {
90
+ const {isOpened, ...rest} = state;
91
+ this.setState({
92
+ ...this.state,
93
+ ...rest
94
+ });
95
+ }
96
+
86
97
  render() {
87
98
  const {
88
99
  children,
@@ -112,8 +123,9 @@ export class PickerContainer extends React.Component<
112
123
  ) : null}
113
124
  <Modal.Body>
114
125
  {popOverRender({
126
+ ...(this.state as any),
127
+ setState: this.updateState,
115
128
  onClose: this.close,
116
- value: this.state.value,
117
129
  onChange: this.handleChange
118
130
  })}
119
131
  </Modal.Body>
@@ -13,8 +13,7 @@ import Transition, {
13
13
  ENTERING
14
14
  } from 'react-transition-group/Transition';
15
15
  import Portal from 'react-overlays/Portal';
16
- import { Icon } from './icons';
17
-
16
+ import {Icon} from './icons';
18
17
 
19
18
  export interface PopUpPorps {
20
19
  className?: string;
@@ -30,6 +29,7 @@ export interface PopUpPorps {
30
29
  container?: any;
31
30
  hideClose?: boolean;
32
31
  placement?: 'left' | 'center' | 'right';
32
+ header?: JSX.Element;
33
33
  }
34
34
 
35
35
  const fadeStyles: {
@@ -46,12 +46,10 @@ export class PopUp extends React.PureComponent<PopUpPorps> {
46
46
  overlay: true,
47
47
  isShow: false,
48
48
  container: document.body,
49
- hideClose: false,
49
+ hideClose: false
50
50
  };
51
51
 
52
- componentDidMount() {
53
-
54
- }
52
+ componentDidMount() {}
55
53
  handleClick(e: React.MouseEvent) {
56
54
  e.stopPropagation();
57
55
  }
@@ -68,65 +66,52 @@ export class PopUp extends React.PureComponent<PopUpPorps> {
68
66
  isShow,
69
67
  container,
70
68
  hideClose,
71
- placement='center',
69
+ header,
70
+ placement = 'center',
72
71
  ...rest
73
72
  } = this.props;
74
73
 
75
74
  const outerStyle: any = {
76
- ...style,
75
+ ...style
77
76
  };
78
77
  delete outerStyle.top;
79
78
  return (
80
79
  <Portal container={container}>
81
- <Transition
82
- mountOnEnter
83
- unmountOnExit
84
- in={isShow}
85
- timeout={500}
86
- appear
87
- >
80
+ <Transition mountOnEnter unmountOnExit in={isShow} timeout={500} appear>
88
81
  {(status: string) => {
89
- return (
90
- <div
91
- className={cx(
92
- `${ns}PopUp`,
93
- className,
94
- fadeStyles[status]
95
- )}
96
- style={outerStyle}
97
- {...rest}
98
- onClick={this.handleClick}
99
- >
100
- {overlay && (
101
- <div className={`${ns}PopUp-overlay`} onClick={onHide}/>
102
- )}
103
- <div className={cx(
104
- `${ns}PopUp-inner`
82
+ return (
83
+ <div
84
+ className={cx(`${ns}PopUp`, className, fadeStyles[status])}
85
+ style={outerStyle}
86
+ {...rest}
87
+ onClick={this.handleClick}
88
+ >
89
+ {overlay && (
90
+ <div className={`${ns}PopUp-overlay`} onClick={onHide} />
91
+ )}
92
+ <div className={cx(`${ns}PopUp-inner`)}>
93
+ {!hideClose && (
94
+ <div className={cx(`${ns}PopUp-closeWrap`)}>
95
+ {header}
96
+ <Icon
97
+ icon="close"
98
+ className={cx('icon', `${ns}PopUp-close`)}
99
+ onClick={onHide}
100
+ />
101
+ </div>
105
102
  )}
103
+ <div
104
+ className={cx(`${ns}PopUp-content`, `justify-${placement}`)}
106
105
  >
107
- {
108
- !hideClose && (
109
- <div className={cx(`${ns}PopUp-closeWrap`, 'text-right')}>
110
- <Icon
111
- icon="close"
112
- className={cx('icon', `${ns}PopUp-close`)}
113
- onClick={onHide}
114
- />
115
- </div>
116
- )
117
- }
118
- <div
119
- className={cx(`${ns}PopUp-content`, `justify-${placement}`)}
120
- >
121
- {children}
122
- </div>
106
+ {children}
123
107
  </div>
124
108
  </div>
125
- )
109
+ </div>
110
+ );
126
111
  }}
127
112
  </Transition>
128
113
  </Portal>
129
- )
114
+ );
130
115
  }
131
116
  }
132
117
 
@@ -6,6 +6,7 @@ import {Icon} from './icons';
6
6
  import Input from './Input';
7
7
  import {autobind, ucFirst} from '../utils/helper';
8
8
  import {LocaleProps, localeable} from '../locale';
9
+ import isPlainObject = require('lodash/isPlainObject');
9
10
 
10
11
  export interface ResultBoxProps
11
12
  extends ThemeProps,
@@ -147,7 +148,9 @@ export class ResultBox extends React.Component<ResultBoxProps> {
147
148
  </div>
148
149
  ))
149
150
  ) : result && !Array.isArray(result) ? (
150
- <span className={cx('ResultBox-singleValue')}>{result}</span>
151
+ <span className={cx('ResultBox-singleValue')}>
152
+ {isPlainObject(result) ? itemRender(result) : result}
153
+ </span>
151
154
  ) : allowInput && !disabled ? null : (
152
155
  <span className={cx('ResultBox-placeholder')}>
153
156
  {__(placeholder || 'placeholder.noData')}
@@ -13,21 +13,28 @@ import {LocaleProps, localeable} from '../locale';
13
13
  export interface ResultListProps extends ThemeProps, LocaleProps {
14
14
  className?: string;
15
15
  value?: Array<Option>;
16
- onChange?: (value: Array<Option>) => void;
16
+ onChange?: (value: Array<Option>, optionModified?: boolean) => void;
17
17
  sortable?: boolean;
18
18
  disabled?: boolean;
19
19
  title?: string;
20
20
  placeholder: string;
21
- itemRender: (option: Option) => JSX.Element;
21
+ itemRender: (option: Option, states: ItemRenderStates) => JSX.Element;
22
22
  itemClassName?: string;
23
23
  }
24
24
 
25
+ export interface ItemRenderStates {
26
+ index: number;
27
+ disabled?: boolean;
28
+ onChange: (value: any, name: string) => void;
29
+ }
30
+
25
31
  export class ResultList extends React.Component<ResultListProps> {
32
+ static itemRender(option: any) {
33
+ return <span>{`${option.scopeLabel || ''}${option.label}`}</span>;
34
+ }
26
35
  static defaultProps: Pick<ResultListProps, 'placeholder' | 'itemRender'> = {
27
36
  placeholder: 'placeholder.selectData',
28
- itemRender: (option: any) => (
29
- <span>{`${option.scopeLabel || ''}${option.label}`}</span>
30
- )
37
+ itemRender: ResultList.itemRender
31
38
  };
32
39
 
33
40
  id = guid();
@@ -114,6 +121,23 @@ export class ResultList extends React.Component<ResultListProps> {
114
121
  delete this.sortable;
115
122
  }
116
123
 
124
+ handleValueChange(index: number, value: any, name: string) {
125
+ if (typeof name !== 'string') {
126
+ return;
127
+ }
128
+ const {value: list, onChange} = this.props;
129
+
130
+ const result = Array.isArray(list) ? list.concat() : [];
131
+ if (!result[index]) {
132
+ return;
133
+ }
134
+ result.splice(index, 1, {
135
+ ...result[index],
136
+ [name]: value
137
+ });
138
+ onChange?.(result, true);
139
+ }
140
+
117
141
  render() {
118
142
  const {
119
143
  classnames: cx,
@@ -150,7 +174,13 @@ export class ResultList extends React.Component<ResultListProps> {
150
174
  />
151
175
  ) : null}
152
176
 
153
- <label>{itemRender(option)}</label>
177
+ <label>
178
+ {itemRender(option, {
179
+ index,
180
+ disabled,
181
+ onChange: this.handleValueChange.bind(this, index)
182
+ })}
183
+ </label>
154
184
 
155
185
  {!disabled ? (
156
186
  <a
@@ -926,7 +926,7 @@ export class Select extends React.Component<SelectProps, SelectState> {
926
926
  const menu = mobileUI ? (
927
927
  <Picker
928
928
  className={cx('PickerColumns-column', mobileClassName)}
929
- labelField='label'
929
+ labelField="label"
930
930
  value={value[0]}
931
931
  translate={this.props.translate}
932
932
  locale={this.props.locale}
@@ -29,18 +29,30 @@ export interface BaseSelectionProps extends ThemeProps, LocaleProps {
29
29
  labelClassName?: string;
30
30
  option2value?: (option: Option) => any;
31
31
  itemClassName?: string;
32
- itemRender: (option: Option) => JSX.Element;
32
+ itemRender: (option: Option, states: ItemRenderStates) => JSX.Element;
33
33
  disabled?: boolean;
34
34
  onClick?: (e: React.MouseEvent) => void;
35
35
  }
36
36
 
37
+ export interface ItemRenderStates {
38
+ index: number;
39
+ multiple?: boolean;
40
+ checked: boolean;
41
+ onChange: () => void;
42
+ disabled?: boolean;
43
+ }
44
+
37
45
  export class BaseSelection<
38
46
  T extends BaseSelectionProps = BaseSelectionProps,
39
47
  S = any
40
48
  > extends React.Component<T, S> {
49
+ static itemRender(option: Option, states: ItemRenderStates) {
50
+ return <span>{option.label}</span>;
51
+ }
52
+
41
53
  static defaultProps = {
42
54
  placeholder: 'placeholder.noOption',
43
- itemRender: (option: Option) => <span>{option.label}</span>,
55
+ itemRender: BaseSelection.itemRender,
44
56
  multiple: true,
45
57
  clearable: false
46
58
  };
@@ -182,7 +194,13 @@ export class BaseSelection<
182
194
  labelClassName={labelClassName}
183
195
  description={option.description}
184
196
  >
185
- {itemRender(option)}
197
+ {itemRender(option, {
198
+ index: key,
199
+ multiple: multiple,
200
+ checked: !!~valueArray.indexOf(option),
201
+ onChange: () => this.toggleOption(option),
202
+ disabled: disabled || option.disabled
203
+ })}
186
204
  </Checkbox>
187
205
  ));
188
206
  }
@@ -2,7 +2,7 @@ import React from 'react';
2
2
  import {themeable, ThemeProps} from '../theme';
3
3
  import {Icon} from './icons';
4
4
  import {BaseSchema} from '../Schema';
5
- import { isMobile } from '../utils/helper';
5
+ import {isMobile} from '../utils/helper';
6
6
 
7
7
  export enum StepStatus {
8
8
  wait = 'wait',
@@ -63,7 +63,7 @@ export interface StepsSchema extends BaseSchema {
63
63
  */
64
64
  name?: string;
65
65
 
66
- status: StepStatus
66
+ status: StepStatus;
67
67
 
68
68
  /**
69
69
  * 展示模式
@@ -75,9 +75,11 @@ export interface StepsProps extends ThemeProps {
75
75
  steps: StepSchema[];
76
76
  className: string;
77
77
  current: number;
78
- status?: StepStatus | {
79
- [propName: string]: StepStatus;
80
- };
78
+ status?:
79
+ | StepStatus
80
+ | {
81
+ [propName: string]: StepStatus;
82
+ };
81
83
  mode?: 'horizontal' | 'vertical';
82
84
  useMobileUI?: boolean;
83
85
  }
@@ -127,7 +129,14 @@ export function Steps(props: StepsProps) {
127
129
 
128
130
  const mobileUI = useMobileUI && isMobile();
129
131
  return (
130
- <ul className={cx('Steps', `Steps--${mode}`, mobileUI ? 'Steps-mobile' : '', className)}>
132
+ <ul
133
+ className={cx(
134
+ 'Steps',
135
+ `Steps--${mode}`,
136
+ mobileUI ? 'Steps-mobile' : '',
137
+ className
138
+ )}
139
+ >
131
140
  {stepsRow.map((step, i) => {
132
141
  const {stepStatus, icon} = getStepStatus(step, i);
133
142
 
@@ -137,8 +146,12 @@ export function Steps(props: StepsProps) {
137
146
  className={cx('StepsItem', `is-${stepStatus}`, step.className)}
138
147
  >
139
148
  <div className={cx('StepsItem-container')}>
140
- <div className={cx('StepsItem-containerIcon',
141
- i < current && 'is-success')}>
149
+ <div
150
+ className={cx(
151
+ 'StepsItem-containerIcon',
152
+ i < current && 'is-success'
153
+ )}
154
+ >
142
155
  <span className={cx('StepsItem-icon')}>
143
156
  {icon ? <Icon icon={icon} className="icon" /> : i + 1}
144
157
  </span>
@@ -166,7 +179,7 @@ export function Steps(props: StepsProps) {
166
179
  );
167
180
  })}
168
181
  </ul>
169
- )
182
+ );
170
183
  }
171
184
 
172
- export default themeable(Steps);
185
+ export default themeable(Steps);
@@ -153,50 +153,7 @@ export class TableSelection extends BaseSelection<TableSelectionProps> {
153
153
  }
154
154
 
155
155
  render() {
156
- const {
157
- value,
158
- options,
159
- className,
160
- labelClassName,
161
- disabled,
162
- classnames: cx,
163
- option2value,
164
- itemClassName,
165
- itemRender,
166
- multiple
167
- } = this.props;
168
-
169
- let valueArray = BaseSelection.value2array(value, options, option2value);
170
- let body: Array<React.ReactNode> = [];
171
-
172
- if (Array.isArray(options) && options.length) {
173
- body = options.map((option, key) => (
174
- <div
175
- key={key}
176
- className={cx(
177
- 'TableSelection-item',
178
- itemClassName,
179
- option.className,
180
- disabled || option.disabled ? 'is-disabled' : ''
181
- )}
182
- onClick={() => this.toggleOption(option)}
183
- >
184
- <div className={cx('TableSelection-itemLabel')}>
185
- {itemRender(option)}
186
- </div>
187
-
188
- {multiple ? (
189
- <Checkbox
190
- size="sm"
191
- checked={!!~valueArray.indexOf(option)}
192
- disabled={disabled || option.disabled}
193
- labelClassName={labelClassName}
194
- description={option.description}
195
- />
196
- ) : null}
197
- </div>
198
- ));
199
- }
156
+ const {className, classnames: cx} = this.props;
200
157
 
201
158
  return (
202
159
  <div className={cx('TableSelection', className)}>
@@ -96,7 +96,7 @@ export interface TabsProps extends ThemeProps {
96
96
  tabs?: Array<TabProps>;
97
97
  tabRender?: (tab: TabProps, props?: TabsProps) => JSX.Element;
98
98
  toolbar?: React.ReactNode;
99
- scrollable?: boolean // 是否支持溢出滚动
99
+ scrollable?: boolean; // 是否支持溢出滚动
100
100
  }
101
101
 
102
102
  export class Tabs extends React.Component<TabsProps, any> {
@@ -107,23 +107,25 @@ export class Tabs extends React.Component<TabsProps, any> {
107
107
 
108
108
  static Tab = Tab;
109
109
  navMain = React.createRef<HTMLDivElement>();
110
- scroll:boolean = false;
110
+ scroll: boolean = false;
111
111
 
112
112
  checkArrowStatus = debounce(
113
113
  () => {
114
- const {scrollLeft, scrollWidth, clientWidth} = this.navMain.current
115
- || {
116
- scrollLeft: 0,
117
- scrollWidth: 0,
118
- clientWidth: 0
119
- }
114
+ const {scrollLeft, scrollWidth, clientWidth} = this.navMain.current || {
115
+ scrollLeft: 0,
116
+ scrollWidth: 0,
117
+ clientWidth: 0
118
+ };
120
119
  const {arrowRightDisabled, arrowLeftDisabled} = this.state;
121
120
  if (scrollLeft === 0 && !arrowLeftDisabled) {
122
121
  this.setState({
123
122
  arrowRightDisabled: false,
124
123
  arrowLeftDisabled: true
125
124
  });
126
- } else if (scrollWidth === scrollLeft + clientWidth && !arrowRightDisabled) {
125
+ } else if (
126
+ scrollWidth === scrollLeft + clientWidth &&
127
+ !arrowRightDisabled
128
+ ) {
127
129
  this.setState({
128
130
  arrowRightDisabled: true,
129
131
  arrowLeftDisabled: false
@@ -132,7 +134,10 @@ export class Tabs extends React.Component<TabsProps, any> {
132
134
  this.setState({
133
135
  arrowLeftDisabled: false
134
136
  });
135
- } else if (scrollWidth !== scrollLeft + clientWidth && arrowRightDisabled) {
137
+ } else if (
138
+ scrollWidth !== scrollLeft + clientWidth &&
139
+ arrowRightDisabled
140
+ ) {
136
141
  this.setState({
137
142
  arrowRightDisabled: false
138
143
  });
@@ -143,21 +148,23 @@ export class Tabs extends React.Component<TabsProps, any> {
143
148
  trailing: true,
144
149
  leading: false
145
150
  }
146
- )
151
+ );
147
152
 
148
153
  constructor(props: TabsProps) {
149
154
  super(props);
150
155
  this.state = {
151
156
  isOverflow: false,
152
157
  arrowLeftDisabled: false,
153
- arrowRightDisabled: false,
158
+ arrowRightDisabled: false
154
159
  };
155
160
  }
156
161
 
157
162
  componentDidMount() {
158
163
  this.computedWidth();
159
164
  if (this.navMain) {
160
- this.navMain.current?.addEventListener('wheel', this.handleWheel, {passive: false});
165
+ this.navMain.current?.addEventListener('wheel', this.handleWheel, {
166
+ passive: false
167
+ });
161
168
  this.checkArrowStatus();
162
169
  }
163
170
  }
@@ -207,7 +214,9 @@ export class Tabs extends React.Component<TabsProps, any> {
207
214
  }
208
215
  const {activeKey, children} = this.props;
209
216
  const currentKey = key !== undefined ? key : activeKey;
210
- const currentIndex = (children as any[])?.findIndex((item: any) => item.props.eventKey === currentKey);
217
+ const currentIndex = (children as any[])?.findIndex(
218
+ (item: any) => item.props.eventKey === currentKey
219
+ );
211
220
  const li = this.navMain.current?.children[0]?.children || [];
212
221
  const currentLi = li[currentIndex] as HTMLElement;
213
222
  const liOffsetLeft = currentLi?.offsetLeft - 20;
@@ -241,12 +250,11 @@ export class Tabs extends React.Component<TabsProps, any> {
241
250
  }
242
251
 
243
252
  handleArrow(type: 'left' | 'right') {
244
- const {scrollLeft, scrollWidth, clientWidth} = this.navMain.current
245
- || {
246
- scrollLeft: 0,
247
- scrollWidth: 0,
248
- clientWidth: 0
249
- }
253
+ const {scrollLeft, scrollWidth, clientWidth} = this.navMain.current || {
254
+ scrollLeft: 0,
255
+ scrollWidth: 0,
256
+ clientWidth: 0
257
+ };
250
258
  if (type === 'left' && scrollLeft > 0) {
251
259
  this.navMain.current?.scrollTo({
252
260
  left: 0,
@@ -369,7 +377,7 @@ export class Tabs extends React.Component<TabsProps, any> {
369
377
  }
370
378
 
371
379
  renderArrow(type: 'left' | 'right') {
372
- const {mode: dMode, tabsMode,} = this.props;
380
+ const {mode: dMode, tabsMode} = this.props;
373
381
  const mode = tabsMode || dMode;
374
382
  if (mode === 'vertical') {
375
383
  return;
@@ -377,17 +385,18 @@ export class Tabs extends React.Component<TabsProps, any> {
377
385
  const {classnames: cx} = this.props;
378
386
  const {isOverflow, arrowLeftDisabled, arrowRightDisabled} = this.state;
379
387
  const disabled = type === 'left' ? arrowLeftDisabled : arrowRightDisabled;
380
- return (isOverflow
381
- ? (<div onClick={() => this.handleArrow(type)}
382
- className={cx(
383
- 'Tabs-linksContainer-arrow',
384
- 'Tabs-linksContainer-arrow--' + type,
385
- disabled && 'Tabs-linksContainer-arrow--disabled'
386
- )}>
387
- <i className={'iconfont icon-arrow-' + type} />
388
- </div>)
389
- : null
390
- )
388
+ return isOverflow ? (
389
+ <div
390
+ onClick={() => this.handleArrow(type)}
391
+ className={cx(
392
+ 'Tabs-linksContainer-arrow',
393
+ 'Tabs-linksContainer-arrow--' + type,
394
+ disabled && 'Tabs-linksContainer-arrow--disabled'
395
+ )}
396
+ >
397
+ <i className={'iconfont icon-arrow-' + type} />
398
+ </div>
399
+ ) : null;
391
400
  }
392
401
 
393
402
  render() {
@@ -421,28 +430,30 @@ export class Tabs extends React.Component<TabsProps, any> {
421
430
  className
422
431
  )}
423
432
  >
424
- {
425
- scrollable && !['vertical', 'chrome'].includes(mode) ?
426
- (<div className={cx('Tabs-linksContainer', isOverflow && 'Tabs-linksContainer--overflow')}>
427
- {this.renderArrow('left')}
428
- <div
429
- className={cx('Tabs-linksContainer-main')}
430
- ref={this.navMain}
431
- >
432
- <ul className={cx('Tabs-links', linksClassName)} role="tablist">
433
- {children.map((tab, index) => this.renderNav(tab, index))}
434
- {additionBtns}
435
- {toolbar}
436
- </ul>
437
- </div>
438
- {this.renderArrow('right')}
439
- </div>)
440
- : (<ul className={cx('Tabs-links', linksClassName)} role="tablist">
441
- {children.map((tab, index) => this.renderNav(tab, index))}
442
- {additionBtns}
443
- {toolbar}
444
- </ul>)
445
- }
433
+ {scrollable && !['vertical', 'chrome'].includes(mode) ? (
434
+ <div
435
+ className={cx(
436
+ 'Tabs-linksContainer',
437
+ isOverflow && 'Tabs-linksContainer--overflow'
438
+ )}
439
+ >
440
+ {this.renderArrow('left')}
441
+ <div className={cx('Tabs-linksContainer-main')} ref={this.navMain}>
442
+ <ul className={cx('Tabs-links', linksClassName)} role="tablist">
443
+ {children.map((tab, index) => this.renderNav(tab, index))}
444
+ {additionBtns}
445
+ {toolbar}
446
+ </ul>
447
+ </div>
448
+ {this.renderArrow('right')}
449
+ </div>
450
+ ) : (
451
+ <ul className={cx('Tabs-links', linksClassName)} role="tablist">
452
+ {children.map((tab, index) => this.renderNav(tab, index))}
453
+ {additionBtns}
454
+ {toolbar}
455
+ </ul>
456
+ )}
446
457
 
447
458
  <div className={cx('Tabs-content', contentClassName)}>
448
459
  {children.map((child, index) => {