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
@@ -11,12 +11,22 @@ import Transfer, {TransferProps} from './Transfer';
11
11
  import {themeable} from '../theme';
12
12
  import AssociatedCheckboxes from './AssociatedSelection';
13
13
  import {localeable} from '../locale';
14
+ import {ItemRenderStates} from './Selection';
14
15
 
15
16
  export interface TabsTransferProps
16
17
  extends Omit<
17
18
  TransferProps,
18
- 'selectMode' | 'columns' | 'selectRender' | 'statistics'
19
+ | 'selectMode'
20
+ | 'columns'
21
+ | 'selectRender'
22
+ | 'statistics'
23
+ | 'optionItemRender'
19
24
  > {
25
+ optionItemRender?: (
26
+ option: Option,
27
+ states: ItemRenderStates,
28
+ tab: Option
29
+ ) => JSX.Element;
20
30
  cellRender?: (
21
31
  column: {
22
32
  name: string;
@@ -30,10 +40,6 @@ export interface TabsTransferProps
30
40
  }
31
41
 
32
42
  export class TabsTransfer extends React.Component<TabsTransferProps> {
33
- static defaultProps = {
34
- itemRender: (option: Option) => <span>{option.label}</span>
35
- };
36
-
37
43
  renderSearchResult(searchResult: Options | null) {
38
44
  const {
39
45
  searchResultMode,
@@ -44,7 +50,8 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
44
50
  disabled,
45
51
  onChange,
46
52
  option2value,
47
- cellRender
53
+ cellRender,
54
+ optionItemRender
48
55
  } = this.props;
49
56
  const options = searchResult || [];
50
57
  const mode = searchResultMode;
@@ -70,6 +77,14 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
70
77
  disabled={disabled}
71
78
  onChange={onChange}
72
79
  option2value={option2value}
80
+ itemRender={
81
+ optionItemRender
82
+ ? (item: Option, states: ItemRenderStates) =>
83
+ optionItemRender(item, states, {
84
+ panel: 'result'
85
+ })
86
+ : undefined
87
+ }
73
88
  />
74
89
  ) : mode === 'chained' ? (
75
90
  <ChainedCheckboxes
@@ -80,6 +95,14 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
80
95
  disabled={disabled}
81
96
  onChange={onChange}
82
97
  option2value={option2value}
98
+ itemRender={
99
+ optionItemRender
100
+ ? (item: Option, states: ItemRenderStates) =>
101
+ optionItemRender(item, states, {
102
+ panel: 'result'
103
+ })
104
+ : undefined
105
+ }
83
106
  />
84
107
  ) : (
85
108
  <ListCheckboxes
@@ -90,6 +113,14 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
90
113
  disabled={disabled}
91
114
  onChange={onChange}
92
115
  option2value={option2value}
116
+ itemRender={
117
+ optionItemRender
118
+ ? (item: Option, states: ItemRenderStates) =>
119
+ optionItemRender(item, states, {
120
+ panel: 'result'
121
+ })
122
+ : undefined
123
+ }
93
124
  />
94
125
  );
95
126
  }
@@ -107,7 +138,8 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
107
138
  option2value,
108
139
  onDeferLoad,
109
140
  cellRender,
110
- translate: __
141
+ translate: __,
142
+ optionItemRender
111
143
  } = this.props;
112
144
 
113
145
  if (!Array.isArray(options) || !options.length) {
@@ -171,6 +203,15 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
171
203
  onChange={onChange}
172
204
  option2value={option2value}
173
205
  onDeferLoad={onDeferLoad}
206
+ itemRender={
207
+ optionItemRender
208
+ ? (item: Option, states: ItemRenderStates) =>
209
+ optionItemRender(item, states, {
210
+ panel: 'tab',
211
+ tag: option
212
+ })
213
+ : undefined
214
+ }
174
215
  />
175
216
  ) : option.selectMode === 'chained' ? (
176
217
  <ChainedCheckboxes
@@ -182,6 +223,15 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
182
223
  option2value={option2value}
183
224
  onDeferLoad={onDeferLoad}
184
225
  defaultSelectedIndex={option.defaultSelectedIndex}
226
+ itemRender={
227
+ optionItemRender
228
+ ? (item: Option, states: ItemRenderStates) =>
229
+ optionItemRender(item, states, {
230
+ panel: 'tab',
231
+ tag: option
232
+ })
233
+ : undefined
234
+ }
185
235
  />
186
236
  ) : option.selectMode === 'associated' ? (
187
237
  <AssociatedCheckboxes
@@ -195,6 +245,15 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
195
245
  leftMode={option.leftMode}
196
246
  leftOptions={option.leftOptions}
197
247
  leftDefaultValue={option.leftDefaultValue}
248
+ itemRender={
249
+ optionItemRender
250
+ ? (item: Option, states: ItemRenderStates) =>
251
+ optionItemRender(item, states, {
252
+ panel: 'tab',
253
+ tag: option
254
+ })
255
+ : undefined
256
+ }
198
257
  />
199
258
  ) : (
200
259
  <ListCheckboxes
@@ -205,6 +264,15 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
205
264
  onChange={onChange}
206
265
  option2value={option2value}
207
266
  onDeferLoad={onDeferLoad}
267
+ itemRender={
268
+ optionItemRender
269
+ ? (item: Option, states: ItemRenderStates) =>
270
+ optionItemRender(item, states, {
271
+ panel: 'tab',
272
+ tag: option
273
+ })
274
+ : undefined
275
+ }
208
276
  />
209
277
  )}
210
278
  </Tab>
@@ -214,12 +282,13 @@ export class TabsTransfer extends React.Component<TabsTransferProps> {
214
282
  }
215
283
 
216
284
  render() {
217
- const {className, classnames: cx} = this.props;
285
+ const {className, classnames: cx, optionItemRender, ...reset} = this.props;
218
286
 
219
287
  return (
220
288
  <Transfer
221
- {...this.props}
289
+ {...reset}
222
290
  statistics={false}
291
+ classnames={cx}
223
292
  className={cx('TabsTransfer', className)}
224
293
  selectRender={this.renderSelect}
225
294
  />
@@ -5,7 +5,7 @@ import React from 'react';
5
5
  import ResultBox from './ResultBox';
6
6
  import {Icon} from './icons';
7
7
  import PickerContainer from './PickerContainer';
8
- import {autobind} from '../utils/helper';
8
+ import {autobind, mapTree} from '../utils/helper';
9
9
  import TabsTransfer, {TabsTransferProps} from './TabsTransfer';
10
10
 
11
11
  export interface TabsTransferPickerProps
@@ -15,18 +15,12 @@ export interface TabsTransferPickerProps
15
15
  }
16
16
 
17
17
  export class TransferPicker extends React.Component<TabsTransferPickerProps> {
18
- @autobind
19
- handleClose() {
20
- this.setState({
21
- inputValue: '',
22
- searchResult: null
23
- });
24
- }
18
+ optionModified = false;
25
19
 
26
20
  @autobind
27
21
  handleConfirm(value: any) {
28
- this.props.onChange?.(value);
29
- this.handleClose();
22
+ this.props.onChange?.(value, this.optionModified);
23
+ this.optionModified = false;
30
24
  }
31
25
 
32
26
  render() {
@@ -44,12 +38,30 @@ export class TransferPicker extends React.Component<TabsTransferPickerProps> {
44
38
  return (
45
39
  <PickerContainer
46
40
  title={__('Select.placeholder')}
47
- bodyRender={({onClose, value, onChange}) => {
48
- return <TabsTransfer {...rest} value={value} onChange={onChange} />;
41
+ bodyRender={({onClose, value, onChange, setState, ...states}) => {
42
+ return (
43
+ <TabsTransfer
44
+ {...rest}
45
+ {...states}
46
+ value={value}
47
+ onChange={(value: any, optionModified) => {
48
+ if (optionModified) {
49
+ let options = mapTree(rest.options, item => {
50
+ return (
51
+ value.find((a: any) => a.value === item.value) || item
52
+ );
53
+ });
54
+ this.optionModified = true;
55
+ setState({options, value});
56
+ } else {
57
+ onChange(value);
58
+ }
59
+ }}
60
+ />
61
+ );
49
62
  }}
50
63
  value={value}
51
64
  onConfirm={this.handleConfirm}
52
- onCancel={this.handleClose}
53
65
  size={size}
54
66
  >
55
67
  {({onClick, isOpened}) => (
@@ -0,0 +1,31 @@
1
+ import React from 'react';
2
+ import {themeable, ThemeProps} from '../theme';
3
+ import TimelineItem, {TimelineItemProps} from './TimelineItem';
4
+
5
+ export interface TimelineProps extends ThemeProps {
6
+ items: Array<TimelineItemProps>;
7
+ direction?: 'vertical' | 'horizontal';
8
+ reverse?: boolean;
9
+ mode?: 'left' | 'right' | 'alternate';
10
+ }
11
+
12
+ export function Timeline(props: TimelineProps) {
13
+ const {
14
+ items,
15
+ classnames: cx,
16
+ direction = 'vertical',
17
+ reverse = false,
18
+ mode = 'right',
19
+ } = props;
20
+
21
+ const timelineDatasource = items?.slice();
22
+
23
+ reverse && timelineDatasource?.reverse();
24
+
25
+ return (
26
+ <div className={cx('Timeline', `Timeline-${direction}`, `Timeline-${mode}`)}>
27
+ {timelineDatasource?.map((item: TimelineItemProps) => <TimelineItem {...item} />)}
28
+ </div>)
29
+ }
30
+
31
+ export default themeable(Timeline);
@@ -0,0 +1,107 @@
1
+ import React, {ReactNode, useState} from 'react';
2
+ import {localeable, LocaleProps} from '../locale';
3
+ import {SchemaExpression} from '../Schema';
4
+ import {themeable, ThemeProps} from '../theme';
5
+ import {Icon} from './icons';
6
+
7
+ export interface TimelineItemProps {
8
+ /**
9
+ * 时间点
10
+ */
11
+ time: string;
12
+
13
+ /**
14
+ * 事件名称
15
+ */
16
+ title?: string| ReactNode;
17
+
18
+ /**
19
+ * 详细内容
20
+ */
21
+ detail?: string;
22
+
23
+ /**
24
+ * detail折叠时文案
25
+ */
26
+ detailCollapsedText?: string;
27
+
28
+ /**
29
+ * detail展开时文案
30
+ */
31
+ detailExpandedText?: string;
32
+
33
+ /**
34
+ * 时间点圆圈颜色,可传入英文/颜色值/level样式(info、success、warning、danger)
35
+ */
36
+ color?: SchemaExpression;
37
+
38
+ /**
39
+ * 图标
40
+ */
41
+ icon?: string | ReactNode;
42
+ }
43
+
44
+ export interface TimelineItem extends ThemeProps, LocaleProps, TimelineItemProps {}
45
+
46
+ export function TimelineItem(props: TimelineItem) {
47
+ const {
48
+ time,
49
+ title,
50
+ detail,
51
+ detailCollapsedText,
52
+ detailExpandedText,
53
+ color,
54
+ icon,
55
+ classnames: cx,
56
+ translate: __,
57
+ } = props;
58
+
59
+ const [detailVisible, setDetailVisible] = useState<boolean>(false);
60
+
61
+ const renderDetail = (detail: string, detailCollapsedText: string = __('Timeline.collapseText'), detailExpandedText: string = __('Timeline.expandText')) : ReactNode => {
62
+
63
+ return (
64
+ <>
65
+ <div className={cx('TimelineItem-detail-button')} onClick={() => setDetailVisible(!detailVisible)}>
66
+ {detailVisible ? detailExpandedText : detailCollapsedText}
67
+ <div className={cx('TimelineItem-detail-arrow', `${detailVisible && 'TimelineItem-detail-arrow-top'}`)}>
68
+ <Icon icon="tree-down"/>
69
+ </div>
70
+ </div>
71
+ <div className={cx(`${detailVisible ? 'TimelineItem-detail-visible' : 'TimelineItem-detail-invisible'}`)}>
72
+ {detail}
73
+ </div>
74
+ </>);
75
+ }
76
+
77
+ // 判断是否为颜色值
78
+ const isColorVal = color && /^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/.test(color);
79
+
80
+ // 取level级颜色
81
+ const levelColor = !isColorVal && color;
82
+
83
+ return (
84
+ <div className={cx('TimelineItem')}>
85
+ <div className={cx('TimelineItem-axle')}>
86
+ <div className={cx('TimelineItem-line')}></div>
87
+ {icon
88
+ ? <div className={cx('TimelineItem-icon')}>
89
+ <Icon icon={icon} className="icon"/>
90
+ </div>
91
+ : <div
92
+ className={cx('TimelineItem-round',
93
+ levelColor && `TimelineItem-round--${levelColor}`)}
94
+ style={isColorVal ? {backgroundColor: color} : undefined}
95
+ ></div>
96
+ }
97
+ </div>
98
+ <div className={cx('TimelineItem-content')}>
99
+ <div className={cx('TimelineItem-time')}>{time}</div>
100
+ <div className={cx('TimelineItem-title')}>{title}</div>
101
+ {detail
102
+ && <div className={cx('TimelineItem-detail')}>{renderDetail(detail, detailCollapsedText, detailExpandedText)}</div>}
103
+ </div>
104
+ </div>)
105
+ }
106
+
107
+ export default themeable(localeable(TimelineItem));
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import {ThemeProps, themeable} from '../theme';
3
- import {BaseSelectionProps, BaseSelection} from './Selection';
3
+ import {BaseSelectionProps, BaseSelection, ItemRenderStates} from './Selection';
4
4
  import {Options, Option} from './Select';
5
5
  import {uncontrollable} from 'uncontrollable';
6
6
  import ResultList from './ResultList';
@@ -14,11 +14,12 @@ import AssociatedSelection from './AssociatedSelection';
14
14
  import {LocaleProps, localeable} from '../locale';
15
15
  import GroupedSelection from './GroupedSelection';
16
16
  import ChainedSelection from './ChainedSelection';
17
+ import {ItemRenderStates as ResultItemRenderStates} from './ResultList';
17
18
 
18
19
  export interface TransferProps
19
20
  extends ThemeProps,
20
21
  LocaleProps,
21
- BaseSelectionProps {
22
+ Omit<BaseSelectionProps, 'itemRender'> {
22
23
  inline?: boolean;
23
24
  statistics?: boolean;
24
25
  showArrow?: boolean;
@@ -55,6 +56,7 @@ export interface TransferProps
55
56
  }>;
56
57
  searchPlaceholder?: string;
57
58
  noResultsText?: string;
59
+ onChange?: (value: Array<Option>, optionModified?: boolean) => void;
58
60
  onSearch?: (
59
61
  term: string,
60
62
  setCancel: (cancel: () => void) => void
@@ -70,8 +72,11 @@ export interface TransferProps
70
72
  ) => JSX.Element;
71
73
 
72
74
  resultTitle?: string;
73
- optionItemRender?: (option: Option) => JSX.Element;
74
- resultItemRender?: (option: Option) => JSX.Element;
75
+ optionItemRender?: (option: Option, states: ItemRenderStates) => JSX.Element;
76
+ resultItemRender?: (
77
+ option: Option,
78
+ states: ResultItemRenderStates
79
+ ) => JSX.Element;
75
80
  sortable?: boolean;
76
81
  }
77
82
 
@@ -83,9 +88,8 @@ export interface TransferState {
83
88
  export class Transfer<
84
89
  T extends TransferProps = TransferProps
85
90
  > extends React.Component<T, TransferState> {
86
- static defaultProps: Pick<TransferProps, 'itemRender' | 'multiple'> = {
87
- multiple: true,
88
- itemRender: (option: Option) => <span>{option.label}</span>
91
+ static defaultProps: Pick<TransferProps, 'multiple'> = {
92
+ multiple: true
89
93
  };
90
94
 
91
95
  state = {
@@ -382,7 +386,6 @@ export class Transfer<
382
386
  option2value={option2value}
383
387
  onDeferLoad={onDeferLoad}
384
388
  cellRender={cellRender}
385
- itemRender={optionItemRender}
386
389
  multiple={multiple}
387
390
  />
388
391
  ) : selectMode === 'tree' ? (
@@ -88,13 +88,7 @@ export class TransferDropDown extends Transfer<TransferDropDownProps> {
88
88
  )}
89
89
  borderMode={borderMode}
90
90
  allowInput={false}
91
- result={
92
- multiple
93
- ? value
94
- : value?.[0]
95
- ? this.props.itemRender(value[0])
96
- : null
97
- }
91
+ result={multiple ? value : value?.[0] ? value?.[0] : null}
98
92
  onResultChange={onChange}
99
93
  onResultClick={onClick}
100
94
  placeholder={__('Select.placeholder')}
@@ -6,7 +6,7 @@ import React from 'react';
6
6
  import ResultBox from './ResultBox';
7
7
  import {Icon} from './icons';
8
8
  import PickerContainer from './PickerContainer';
9
- import {autobind} from '../utils/helper';
9
+ import {autobind, mapTree} from '../utils/helper';
10
10
 
11
11
  export interface TransferPickerProps extends Omit<TransferProps, 'itemRender'> {
12
12
  // 新的属性?
@@ -19,9 +19,11 @@ export interface TransferPickerProps extends Omit<TransferProps, 'itemRender'> {
19
19
  }
20
20
 
21
21
  export class TransferPicker extends React.Component<TransferPickerProps> {
22
+ optionModified = false;
22
23
  @autobind
23
24
  handleConfirm(value: any) {
24
- this.props.onChange?.(value);
25
+ this.props.onChange?.(value, this.optionModified);
26
+ this.optionModified = false;
25
27
  }
26
28
 
27
29
  render() {
@@ -40,8 +42,27 @@ export class TransferPicker extends React.Component<TransferPickerProps> {
40
42
  return (
41
43
  <PickerContainer
42
44
  title={__('Select.placeholder')}
43
- bodyRender={({onClose, value, onChange}) => {
44
- return <Transfer {...rest} value={value} onChange={onChange} />;
45
+ bodyRender={({onClose, value, onChange, setState, ...states}) => {
46
+ return (
47
+ <Transfer
48
+ {...rest}
49
+ {...states}
50
+ value={value}
51
+ onChange={(value: any, optionModified) => {
52
+ if (optionModified) {
53
+ let options = mapTree(rest.options, item => {
54
+ return (
55
+ value.find((a: any) => a.value === item.value) || item
56
+ );
57
+ });
58
+ this.optionModified = true;
59
+ setState({options, value});
60
+ } else {
61
+ onChange(value);
62
+ }
63
+ }}
64
+ />
65
+ );
45
66
  }}
46
67
  value={value}
47
68
  onConfirm={this.handleConfirm}
@@ -239,7 +239,13 @@ export class TreeSelection extends BaseSelection<
239
239
  ) : null}
240
240
 
241
241
  <div className={cx('TreeSelection-itemLabel')}>
242
- {itemRender(option)}
242
+ {itemRender(option, {
243
+ index: index,
244
+ multiple: multiple,
245
+ checked: checked,
246
+ onChange: () => this.toggleOption(option),
247
+ disabled: disabled || option.disabled
248
+ })}
243
249
  </div>
244
250
 
245
251
  {option.defer && option.loading ? <Spinner show size="sm" /> : null}
@@ -7,7 +7,7 @@ import CustomCalendarContainer from './CalendarContainer';
7
7
  import cx from 'classnames';
8
8
  import moment from 'moment';
9
9
  import {themeable, ThemeOutterProps, ThemeProps} from '../../theme';
10
- import {convertDateArrayToDate} from "../../utils/helper";
10
+ import {convertDateArrayToDate} from '../../utils/helper';
11
11
 
12
12
  interface BaseDatePickerProps
13
13
  extends Omit<ReactDatePicker.DatetimepickerProps, 'viewMode'> {
@@ -18,6 +18,7 @@ interface BaseDatePickerProps
18
18
  onClose?: () => void;
19
19
  isEndDate?: boolean;
20
20
  minDate?: moment.Moment;
21
+ maxDate?: moment.Moment;
21
22
  renderDay?: (
22
23
  props: any,
23
24
  currentDate: moment.Moment,
@@ -37,6 +38,10 @@ interface BaseDatePickerProps
37
38
  }>;
38
39
  largeMode?: boolean;
39
40
  onScheduleClick?: (scheduleData: any) => void;
41
+ hideHeader?: boolean;
42
+ updateOn?: string;
43
+ useMobileUI?: boolean;
44
+ showToolbar?: boolean;
40
45
  }
41
46
 
42
47
  class BaseDatePicker extends ReactDatePicker {
@@ -92,9 +97,14 @@ class BaseDatePicker extends ReactDatePicker {
92
97
  'isEndDate',
93
98
  'classnames',
94
99
  'minDate',
100
+ 'maxDate',
95
101
  'schedules',
96
102
  'largeMode',
97
- 'onScheduleClick'
103
+ 'onScheduleClick',
104
+ 'hideHeader',
105
+ 'updateOn',
106
+ 'useMobileUI',
107
+ 'showToolbar'
98
108
  ].forEach(key => (props[key] = (this.props as any)[key]));
99
109
 
100
110
  return props;
@@ -193,8 +203,12 @@ class BaseDatePicker extends ReactDatePicker {
193
203
  };
194
204
 
195
205
  onConfirm = (value: number[], types: string[]) => {
196
- const currentDate = (this.state.selectedDate || this.state.viewDate || moment()).clone();
197
-
206
+ const currentDate = (
207
+ this.state.selectedDate ||
208
+ this.state.viewDate ||
209
+ moment()
210
+ ).clone();
211
+
198
212
  const date = convertDateArrayToDate(value, types, currentDate);
199
213
 
200
214
  if (!this.props.value) {
@@ -205,9 +219,8 @@ class BaseDatePicker extends ReactDatePicker {
205
219
  }
206
220
  this.props.onChange && this.props.onChange(date);
207
221
  this.props.onClose && this.props.onClose();
208
- }
222
+ };
209
223
 
210
-
211
224
  render() {
212
225
  const Component = CustomCalendarContainer as any;
213
226
  const viewProps = this.getComponentProps();
@@ -218,8 +231,15 @@ class BaseDatePicker extends ReactDatePicker {
218
231
  this.props.renderQuarter
219
232
  ];
220
233
  }
234
+ else if (this.props.viewMode === 'years') {
235
+ viewProps.updateOn = 'years';
236
+ }
237
+ else if (this.props.viewMode === 'months') {
238
+ viewProps.updateOn = 'months';
239
+ }
221
240
 
222
241
  viewProps.onConfirm = this.onConfirm;
242
+
223
243
  return (
224
244
  <div className={cx('rdt rdtStatic rdtOpen', this.props.className)}>
225
245
  <div key="dt" className="rdtPicker">