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
@@ -15,7 +15,7 @@ import {ClassNamesFn, themeable, ThemeProps} from '../theme';
15
15
  import {PlainObject} from '../types';
16
16
  import Calendar from './calendar/Calendar';
17
17
  import 'react-datetime/css/react-datetime.css';
18
- import { localeable, LocaleProps, TranslateFn } from '../locale';
18
+ import {localeable, LocaleProps, TranslateFn} from '../locale';
19
19
  import {isMobile, ucFirst} from '../utils/helper';
20
20
 
21
21
  const availableShortcuts: {[propName: string]: any} = {
@@ -280,10 +280,10 @@ export interface DateProps extends LocaleProps, ThemeProps {
280
280
  // 是否为内嵌模式,如果开启就不是 picker 了,直接页面点选。
281
281
  embed?: boolean;
282
282
  schedules?: Array<{
283
- startTime: Date,
284
- endTime: Date,
285
- content: any,
286
- className?: string
283
+ startTime: Date;
284
+ endTime: Date;
285
+ content: any;
286
+ className?: string;
287
287
  }>;
288
288
  scheduleClassNames?: Array<string>;
289
289
  largeMode?: boolean;
@@ -315,7 +315,13 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
315
315
  shortcuts: '',
316
316
  closeOnSelect: true,
317
317
  overlayPlacement: 'auto',
318
- scheduleClassNames: ['bg-warning', 'bg-danger', 'bg-success', 'bg-info', 'bg-secondary']
318
+ scheduleClassNames: [
319
+ 'bg-warning',
320
+ 'bg-danger',
321
+ 'bg-success',
322
+ 'bg-info',
323
+ 'bg-secondary'
324
+ ]
319
325
  };
320
326
  state: DatePickerState = {
321
327
  isOpened: false,
@@ -561,6 +567,7 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
561
567
  embed,
562
568
  minDate,
563
569
  useMobileUI,
570
+ maxDate,
564
571
  schedules,
565
572
  largeMode,
566
573
  scheduleClassNames,
@@ -571,7 +578,6 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
571
578
  const isOpened = this.state.isOpened;
572
579
  let date: moment.Moment | undefined = this.state.value;
573
580
 
574
-
575
581
  if (embed) {
576
582
  let schedulesData: DateProps['schedules'] = undefined;
577
583
  if (schedules && Array.isArray(schedules)) {
@@ -617,6 +623,7 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
617
623
  onClose={this.close}
618
624
  locale={locale}
619
625
  minDate={minDate}
626
+ maxDate={maxDate}
620
627
  // utc={utc}
621
628
  schedules={schedulesData}
622
629
  largeMode={largeMode}
@@ -695,39 +702,38 @@ export class DatePicker extends React.Component<DateProps, DatePickerState> {
695
702
  onClose={this.close}
696
703
  locale={locale}
697
704
  minDate={minDate}
705
+ maxDate={maxDate}
698
706
  // utc={utc}
699
707
  />
700
708
  </PopOver>
701
709
  </Overlay>
702
710
  ) : null}
703
- {
704
- useMobileUI && isMobile() ? (
705
- <PopUp
706
- className={cx(`${ns}DatePicker-popup`)}
707
- isShow={isOpened}
708
- onHide={this.handleClick}
709
- >
710
- {this.renderShortCuts(shortcuts)}
711
-
712
- <Calendar
713
- value={date}
714
- onChange={this.handleChange}
715
- requiredConfirm={!!(dateFormat && timeFormat)}
716
- dateFormat={dateFormat}
717
- inputFormat={inputFormat}
718
- timeFormat={timeFormat}
719
- isValidDate={this.checkIsValidDate}
720
- viewMode={viewMode}
721
- timeConstraints={timeConstraints}
722
- input={false}
723
- onClose={this.close}
724
- locale={locale}
725
- minDate={minDate}
726
- // utc={utc}
727
- />
728
- </PopUp>
729
- ) : null
730
- }
711
+ {useMobileUI && isMobile() ? (
712
+ <PopUp
713
+ className={cx(`${ns}DatePicker-popup`)}
714
+ isShow={isOpened}
715
+ onHide={this.handleClick}
716
+ >
717
+ {this.renderShortCuts(shortcuts)}
718
+
719
+ <Calendar
720
+ value={date}
721
+ onChange={this.handleChange}
722
+ requiredConfirm={!!(dateFormat && timeFormat)}
723
+ dateFormat={dateFormat}
724
+ inputFormat={inputFormat}
725
+ timeFormat={timeFormat}
726
+ isValidDate={this.checkIsValidDate}
727
+ viewMode={viewMode}
728
+ timeConstraints={timeConstraints}
729
+ input={false}
730
+ onClose={this.close}
731
+ locale={locale}
732
+ minDate={minDate}
733
+ // utc={utc}
734
+ />
735
+ </PopUp>
736
+ ) : null}
731
737
  </div>
732
738
  );
733
739
  }
@@ -18,6 +18,7 @@ import {ClassNamesFn, themeable, ThemeProps} from '../theme';
18
18
  import {PlainObject} from '../types';
19
19
  import {isMobile, noop, ucFirst} from '../utils/helper';
20
20
  import {LocaleProps, localeable} from '../locale';
21
+ import CalendarMobile from './CalendarMobile';
21
22
 
22
23
  export interface DateRangePickerProps extends ThemeProps, LocaleProps {
23
24
  className?: string;
@@ -287,6 +288,7 @@ export class DateRangePicker extends React.Component<
287
288
  this.handlePopOverClick = this.handlePopOverClick.bind(this);
288
289
  this.renderDay = this.renderDay.bind(this);
289
290
  this.renderQuarter = this.renderQuarter.bind(this);
291
+ this.handleMobileChange = this.handleMobileChange.bind(this);
290
292
  const {format, joinValues, delimiter, value} = this.props;
291
293
 
292
294
  this.state = {
@@ -499,6 +501,16 @@ export class DateRangePicker extends React.Component<
499
501
  );
500
502
  }
501
503
 
504
+ handleMobileChange(data: any, callback?: () => void) {
505
+ this.setState(
506
+ {
507
+ startDate: data.startDate,
508
+ endDate: data.endDate
509
+ },
510
+ callback
511
+ );
512
+ }
513
+
502
514
  selectRannge(range: PlainObject) {
503
515
  const {closeOnSelect, minDate, maxDate} = this.props;
504
516
  const now = moment();
@@ -763,10 +775,19 @@ export class DateRangePicker extends React.Component<
763
775
  embed,
764
776
  overlayPlacement,
765
777
  borderMode,
766
- useMobileUI
778
+ useMobileUI,
779
+ timeFormat,
780
+ minDate,
781
+ maxDate,
782
+ minDuration,
783
+ maxDuration,
784
+ dateFormat,
785
+ viewMode = 'days',
786
+ ranges
767
787
  } = this.props;
788
+ const useCalendarMobile = useMobileUI && isMobile() && ['days', 'months', 'quarters'].indexOf(viewMode) > -1;
768
789
 
769
- const {isOpened, isFocused} = this.state;
790
+ const {isOpened, isFocused, startDate, endDate} = this.state;
770
791
 
771
792
  const selectedDate = DateRangePicker.unFormatValue(
772
793
  value,
@@ -785,6 +806,25 @@ export class DateRangePicker extends React.Component<
785
806
  endViewValue && arr.push(endViewValue);
786
807
  const __ = this.props.translate;
787
808
 
809
+ const calendarMobile = <CalendarMobile
810
+ timeFormat={timeFormat}
811
+ inputFormat={inputFormat}
812
+ startDate={startDate}
813
+ endDate={endDate}
814
+ minDate={minDate}
815
+ maxDate={maxDate}
816
+ minDuration={minDuration}
817
+ maxDuration={maxDuration}
818
+ dateFormat={dateFormat}
819
+ embed={embed}
820
+ viewMode={viewMode}
821
+ close={this.close}
822
+ confirm={this.confirm}
823
+ onChange={this.handleMobileChange}
824
+ footerExtra={this.renderRanges(ranges)}
825
+ showViewMode={viewMode === 'quarters' || viewMode === 'months' ? 'years' : 'months'}
826
+ />;
827
+
788
828
  if (embed) {
789
829
  return (
790
830
  <div
@@ -796,11 +836,15 @@ export class DateRangePicker extends React.Component<
796
836
  className
797
837
  )}
798
838
  >
799
- {this.renderCalendar()}
839
+ {useCalendarMobile
840
+ ? calendarMobile
841
+ : this.renderCalendar()}
800
842
  </div>
801
843
  );
802
844
  }
803
845
 
846
+ const CalendarMobileTitle = <div className={`${ns}CalendarMobile-title`}>{__('Calendar.datepicker')}</div>;
847
+
804
848
  return (
805
849
  <div
806
850
  tabIndex={0}
@@ -839,8 +883,20 @@ export class DateRangePicker extends React.Component<
839
883
  <Icon icon="clock" className="icon" />
840
884
  </a>
841
885
 
842
- {!(useMobileUI && isMobile()) && isOpened ? (
843
- <Overlay
886
+ {isOpened ? (
887
+ useMobileUI && isMobile() ? (
888
+ <PopUp
889
+ isShow={isOpened}
890
+ className={cx(`${ns}CalendarMobile-pop`)}
891
+ onHide={this.close}
892
+ header={CalendarMobileTitle}
893
+ >
894
+ {useCalendarMobile
895
+ ? calendarMobile
896
+ : this.renderCalendar()}
897
+ </PopUp>
898
+ )
899
+ : <Overlay
844
900
  target={() => this.dom.current}
845
901
  onHide={this.close}
846
902
  container={popOverContainer || (() => findDOMNode(this))}
@@ -859,17 +915,6 @@ export class DateRangePicker extends React.Component<
859
915
  </PopOver>
860
916
  </Overlay>
861
917
  ) : null}
862
- {
863
- useMobileUI && isMobile() && (
864
- <PopUp
865
- isShow={isOpened}
866
- className={cx(`${ns}DateRangePicker-popup`)}
867
- onHide={this.handleClick}
868
- >
869
- {this.renderCalendar()}
870
- </PopUp>
871
- )
872
- }
873
918
  </div>
874
919
  );
875
920
  }
@@ -27,7 +27,13 @@ export class GroupedSelection extends BaseSelection {
27
27
  className={cx('GroupedSelection-group', option.className)}
28
28
  >
29
29
  <div className={cx('GroupedSelection-itemLabel')}>
30
- {itemRender(option)}
30
+ {itemRender(option, {
31
+ index: index,
32
+ multiple: multiple,
33
+ checked: false,
34
+ onChange: () => undefined,
35
+ disabled: disabled || option.disabled
36
+ })}
31
37
  </div>
32
38
 
33
39
  <div className={cx('GroupedSelection-items', option.className)}>
@@ -52,7 +58,13 @@ export class GroupedSelection extends BaseSelection {
52
58
  onClick={() => this.toggleOption(option)}
53
59
  >
54
60
  <div className={cx('GroupedSelection-itemLabel')}>
55
- {itemRender(option)}
61
+ {itemRender(option, {
62
+ index: index,
63
+ multiple: multiple,
64
+ checked: !!~valueArray.indexOf(option),
65
+ onChange: () => this.toggleOption(option),
66
+ disabled: disabled || option.disabled
67
+ })}
56
68
  </div>
57
69
 
58
70
  {multiple ? (
@@ -20,7 +20,8 @@ import {LocaleProps, localeable} from '../locale';
20
20
  import {DateRangePicker} from './DateRangePicker';
21
21
  import capitalize from 'lodash/capitalize';
22
22
  import {ShortCuts, ShortCutDateRange} from './DatePicker';
23
- import { availableRanges } from './DateRangePicker';
23
+ import {availableRanges} from './DateRangePicker';
24
+ import CalendarMobile from './CalendarMobile';
24
25
 
25
26
  export interface MonthRangePickerProps extends ThemeProps, LocaleProps {
26
27
  className?: string;
@@ -99,6 +100,7 @@ export class MonthRangePicker extends React.Component<
99
100
  this.handleKeyPress = this.handleKeyPress.bind(this);
100
101
  this.handlePopOverClick = this.handlePopOverClick.bind(this);
101
102
  this.renderMonth = this.renderMonth.bind(this);
103
+ this.handleMobileChange = this.handleMobileChange.bind(this);
102
104
  const {format, joinValues, delimiter, value} = this.props;
103
105
 
104
106
  this.state = {
@@ -280,6 +282,16 @@ export class MonthRangePicker extends React.Component<
280
282
  );
281
283
  }
282
284
 
285
+ handleMobileChange(data: any, callback?: () => void) {
286
+ this.setState(
287
+ {
288
+ startDate: data.startDate,
289
+ endDate: data.endDate
290
+ },
291
+ callback
292
+ );
293
+ }
294
+
283
295
  selectRannge(range: PlainObject) {
284
296
  const {closeOnSelect, minDate, maxDate} = this.props;
285
297
  this.setState(
@@ -531,10 +543,17 @@ export class MonthRangePicker extends React.Component<
531
543
  disabled,
532
544
  embed,
533
545
  overlayPlacement,
534
- useMobileUI
546
+ useMobileUI,
547
+ timeFormat,
548
+ minDate,
549
+ maxDate,
550
+ minDuration,
551
+ maxDuration,
552
+ ranges
535
553
  } = this.props;
554
+ const mobileUI = isMobile() && useMobileUI;
536
555
 
537
- const {isOpened, isFocused} = this.state;
556
+ const {isOpened, isFocused, startDate, endDate} = this.state;
538
557
 
539
558
  const selectedDate = DateRangePicker.unFormatValue(
540
559
  value,
@@ -553,6 +572,24 @@ export class MonthRangePicker extends React.Component<
553
572
  endViewValue && arr.push(endViewValue);
554
573
  const __ = this.props.translate;
555
574
 
575
+ const calendarMobile = <CalendarMobile
576
+ timeFormat={timeFormat}
577
+ inputFormat={inputFormat}
578
+ startDate={startDate}
579
+ endDate={endDate}
580
+ minDate={minDate}
581
+ maxDate={maxDate}
582
+ minDuration={minDuration}
583
+ maxDuration={maxDuration}
584
+ embed={embed}
585
+ viewMode="months"
586
+ close={this.close}
587
+ confirm={this.confirm}
588
+ onChange={this.handleMobileChange}
589
+ footerExtra={this.renderRanges(ranges)}
590
+ showViewMode="years"
591
+ />;
592
+
556
593
  if (embed) {
557
594
  return (
558
595
  <div
@@ -564,11 +601,15 @@ export class MonthRangePicker extends React.Component<
564
601
  className
565
602
  )}
566
603
  >
567
- {this.renderCalendar()}
604
+ {mobileUI
605
+ ? calendarMobile
606
+ : this.renderCalendar()}
568
607
  </div>
569
608
  );
570
609
  }
571
610
 
611
+ const CalendarMobileTitle = <div className={`${ns}CalendarMobile-title`}>{__('Calendar.datepicker')}</div>;
612
+
572
613
  return (
573
614
  <div
574
615
  tabIndex={0}
@@ -606,8 +647,18 @@ export class MonthRangePicker extends React.Component<
606
647
  <Icon icon="clock" className="icon" />
607
648
  </a>
608
649
 
609
- {!(useMobileUI && isMobile()) && isOpened ? (
610
- <Overlay
650
+ {isOpened ? (
651
+ mobileUI ? (
652
+ <PopUp
653
+ isShow={isOpened}
654
+ className={cx(`${ns}CalendarMobile-pop`)}
655
+ onHide={this.close}
656
+ header={CalendarMobileTitle}
657
+ >
658
+ {calendarMobile}
659
+ </PopUp>
660
+ )
661
+ : <Overlay
611
662
  target={() => this.dom.current}
612
663
  onHide={this.close}
613
664
  container={popOverContainer || (() => findDOMNode(this))}
@@ -626,17 +677,6 @@ export class MonthRangePicker extends React.Component<
626
677
  </PopOver>
627
678
  </Overlay>
628
679
  ) : null}
629
- {
630
- useMobileUI && isMobile() && (
631
- <PopUp
632
- className={cx(`${ns}DateRangePicker-popup`)}
633
- isShow={isOpened}
634
- onHide={this.handleClick}
635
- >
636
- {this.renderCalendar()}
637
- </PopUp>
638
- )
639
- }
640
680
  </div>
641
681
  );
642
682
  }
@@ -165,7 +165,7 @@ class Position extends React.Component<any, any> {
165
165
  interface OverlayProps {
166
166
  placement?: string;
167
167
  show?: boolean;
168
- transition?: React.ReactType;
168
+ transition?: React.ElementType;
169
169
  containerPadding?: number;
170
170
  shouldUpdatePosition?: boolean;
171
171
  rootClose?: boolean;
@@ -2,11 +2,7 @@
2
2
  * @file Picker
3
3
  * @description 移动端列滚动选择器
4
4
  */
5
- import React, {
6
- memo,
7
- ReactNode,
8
- useState
9
- } from 'react';
5
+ import React, {memo, ReactNode, useState, useEffect} from 'react';
10
6
  import {uncontrollable} from 'uncontrollable';
11
7
 
12
8
  import {themeable, ThemeProps} from '../theme';
@@ -18,7 +14,7 @@ import {PickerColumnItem, default as Column} from './PickerColumn';
18
14
  export type PickerValue = string | number;
19
15
 
20
16
  export interface PickerProps extends ThemeProps, LocaleProps {
21
- title?: String | ReactNode,
17
+ title?: String | ReactNode;
22
18
  labelField?: string;
23
19
  className?: string;
24
20
  showToolbar?: boolean;
@@ -28,17 +24,9 @@ export interface PickerProps extends ThemeProps, LocaleProps {
28
24
  visibleItemCount?: number;
29
25
  itemHeight?: number;
30
26
  columns: PickerColumnItem[] | PickerColumnItem;
31
- onChange?: (
32
- value?: PickerValue[],
33
- index?: number,
34
- confirm?: boolean
35
- ) => void;
36
- onClose?: (
37
- value?: PickerValue[]
38
- ) => void;
39
- onConfirm?: (
40
- value?: PickerValue[]
41
- ) => void;
27
+ onChange?: (value?: PickerValue[], index?: number, confirm?: boolean) => void;
28
+ onClose?: (value?: PickerValue[]) => void;
29
+ onConfirm?: (value?: PickerValue[]) => void;
42
30
  }
43
31
 
44
32
  function fixToArray(data: any) {
@@ -48,7 +36,7 @@ function fixToArray(data: any) {
48
36
  return data;
49
37
  }
50
38
 
51
- const Picker = memo<PickerProps>((props) => {
39
+ const Picker = memo<PickerProps>(props => {
52
40
  const {
53
41
  labelField,
54
42
  visibleItemCount = 5,
@@ -57,7 +45,7 @@ const Picker = memo<PickerProps>((props) => {
57
45
  columns = [],
58
46
  itemHeight = 30,
59
47
  showToolbar = true,
60
- className='',
48
+ className = '',
61
49
  classnames: cx,
62
50
  classPrefix: ns,
63
51
  translate: __
@@ -65,8 +53,11 @@ const Picker = memo<PickerProps>((props) => {
65
53
 
66
54
  const _columns = fixToArray(columns);
67
55
  const [innerValue, setInnerValue] = useState<PickerValue[]>(
68
- fixToArray(props.value === undefined ? props.defaultValue || [] : value )
56
+ fixToArray(props.value === undefined ? props.defaultValue || [] : value)
69
57
  );
58
+ useEffect(() => {
59
+ setInnerValue(value);
60
+ }, [value]);
70
61
 
71
62
  const close = () => {
72
63
  if (props.onClose) {
@@ -80,7 +71,11 @@ const Picker = memo<PickerProps>((props) => {
80
71
  }
81
72
  };
82
73
 
83
- const onChange = (itemValue: PickerValue, columnIndex: number, confirm?: boolean) => {
74
+ const onChange = (
75
+ itemValue: PickerValue,
76
+ columnIndex: number,
77
+ confirm?: boolean
78
+ ) => {
84
79
  const nextInnerValue = [...innerValue];
85
80
  nextInnerValue[columnIndex] = itemValue;
86
81
  setInnerValue(nextInnerValue);
@@ -103,7 +98,9 @@ const Picker = memo<PickerProps>((props) => {
103
98
  onChange={(val: string | number, i, confirm) => {
104
99
  onChange(val, index, confirm);
105
100
  }}
106
- />)
101
+ key={`column${index}`}
102
+ />
103
+ );
107
104
  };
108
105
 
109
106
  const wrapHeight = itemHeight * +visibleItemCount;
@@ -114,21 +111,29 @@ const Picker = memo<PickerProps>((props) => {
114
111
  };
115
112
 
116
113
  return (
117
- <div
118
- className={cx(className, 'PickerColumns', 'PickerColumns-popOver')}
119
- >
120
- {showToolbar && <div className={cx('PickerColumns-toolbar')}>
121
- <Button className="PickerColumns-cancel" level="default" onClick={close}>
122
- {__('cancel')}
123
- </Button>
124
- <Button className="PickerColumns-confirm" level="primary" onClick={confirm}>
125
- {__('confirm')}
126
- </Button>
127
- </div>}
114
+ <div className={cx(className, 'PickerColumns', 'PickerColumns-popOver')}>
115
+ {showToolbar && (
116
+ <div className={cx('PickerColumns-toolbar')}>
117
+ <Button
118
+ className="PickerColumns-cancel"
119
+ level="default"
120
+ onClick={close}
121
+ >
122
+ {__('cancel')}
123
+ </Button>
124
+ <Button
125
+ className="PickerColumns-confirm"
126
+ level="primary"
127
+ onClick={confirm}
128
+ >
129
+ {__('confirm')}
130
+ </Button>
131
+ </div>
132
+ )}
128
133
  <div className={cx('PickerColumns-columns')} style={columnsStyle}>
129
- {
130
- _columns.map((column: PickerColumnItem, index: number) => renderColumnItem(column, index))
131
- }
134
+ {_columns.map((column: PickerColumnItem, index: number) =>
135
+ renderColumnItem(column, index)
136
+ )}
132
137
  <div className={cx('PickerColumns-mask')} style={maskStyle}></div>
133
138
  <div className={cx('PickerColumns-frame')} style={frameStyle}></div>
134
139
  </div>
@@ -33,7 +33,7 @@ export interface PickerColumnItem {
33
33
  index?: number,
34
34
  confirm?: boolean
35
35
  ) => void;
36
- };
36
+ }
37
37
 
38
38
  export interface PickerColumnProps extends PickerColumnItem, ThemeProps {}
39
39
 
@@ -64,7 +64,7 @@ function getElementTranslateY(element: HTMLElement | null) {
64
64
  function isOptionDisabled(option: PickerOption) {
65
65
  return isObject(option) && option.disabled;
66
66
  }
67
-
67
+
68
68
  const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
69
69
  const {
70
70
  visibleItemCount = 5,
@@ -132,11 +132,9 @@ const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
132
132
  updateState({index});
133
133
 
134
134
  if (emitChange && props.onChange) {
135
- requestAnimationFrame(
136
- () => {
137
- props.onChange?.(options[index], index, confirm);
138
- }
139
- );
135
+ requestAnimationFrame(() => {
136
+ props.onChange?.(options[index], index, confirm);
137
+ });
140
138
  // setTimeout(() => {
141
139
  // props.onChange?.(options[index], index, confirm);
142
140
  // }, 0);
@@ -301,7 +299,7 @@ const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
301
299
  onClickItem(index);
302
300
  }
303
301
  };
304
-
302
+
305
303
  const childData = {
306
304
  className: 'text-ellipsis',
307
305
  children: text
@@ -357,23 +355,23 @@ const PickerColumn = forwardRef<{}, PickerColumnProps>((props, ref) => {
357
355
  transitionProperty: state.duration ? 'all' : 'none'
358
356
  };
359
357
  return (
360
- <div
361
- ref={root}
362
- className={props.classnames('PickerColumns', props.className)}
363
- onTouchStart={onTouchStart}
364
- onTouchMove={onTouchMove}
365
- onTouchEnd={onTouchEnd}
366
- onTouchCancel={onTouchEnd}
358
+ <div
359
+ ref={root}
360
+ className={props.classnames('PickerColumns', props.className)}
361
+ onTouchStart={onTouchStart}
362
+ onTouchMove={onTouchMove}
363
+ onTouchEnd={onTouchEnd}
364
+ onTouchCancel={onTouchEnd}
365
+ >
366
+ <ul
367
+ ref={wrapper}
368
+ style={wrapperStyle}
369
+ className={props.classnames('PickerColumns-columnWrapper')}
370
+ onTransitionEnd={stopMomentum}
367
371
  >
368
- <ul
369
- ref={wrapper}
370
- style={wrapperStyle}
371
- className={props.classnames('PickerColumns-columnWrapper')}
372
- onTransitionEnd={stopMomentum}
373
- >
374
- {renderOptions()}
375
- </ul>
376
- </div>
372
+ {renderOptions()}
373
+ </ul>
374
+ </div>
377
375
  );
378
376
  });
379
377
 
@@ -389,4 +387,3 @@ export default themeable(
389
387
  value: 'onChange'
390
388
  })
391
389
  );
392
-