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
@@ -0,0 +1,432 @@
1
+ "use strict";
2
+ /**
3
+ * @file CalendarMobile
4
+ * @description 移动端日历组件
5
+ * @author hongyang03
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.CalendarMobile = void 0;
9
+ var tslib_1 = require("tslib");
10
+ var react_1 = (0, tslib_1.__importDefault)(require("react"));
11
+ var moment_1 = (0, tslib_1.__importDefault)(require("moment"));
12
+ var Calendar_1 = (0, tslib_1.__importDefault)(require("./calendar/Calendar"));
13
+ var theme_1 = require("../theme");
14
+ var locale_1 = require("../locale");
15
+ var helper_1 = require("../utils/helper");
16
+ var CalendarMobile = /** @class */ (function (_super) {
17
+ (0, tslib_1.__extends)(CalendarMobile, _super);
18
+ function CalendarMobile(props) {
19
+ var _this = _super.call(this, props) || this;
20
+ _this.mobileBody = react_1.default.createRef();
21
+ _this.mobileHeader = react_1.default.createRef();
22
+ var _a = _this.props, startDate = _a.startDate, endDate = _a.endDate, viewMode = _a.viewMode;
23
+ _this.state = {
24
+ startDate: startDate,
25
+ endDate: endDate,
26
+ showToast: false,
27
+ currentDate: (0, moment_1.default)(),
28
+ isScrollToBottom: false,
29
+ dateTime: endDate ? [endDate.hour(), endDate.minute()] : [0, 0]
30
+ };
31
+ return _this;
32
+ }
33
+ CalendarMobile.prototype.componentDidMount = function () {
34
+ this.initMonths();
35
+ };
36
+ CalendarMobile.prototype.componentDidUpdate = function (prevProps) {
37
+ var props = this.props;
38
+ if (prevProps.minDate !== props.minDate || prevProps.maxDate !== props.maxDate) {
39
+ this.initMonths();
40
+ }
41
+ };
42
+ CalendarMobile.prototype.componentWillUnmount = function () {
43
+ this.setState({ showToast: false });
44
+ clearTimeout(this.timer);
45
+ };
46
+ CalendarMobile.prototype.initMonths = function () {
47
+ if (this.mobileBody.current) {
48
+ var header = this.mobileHeader.current;
49
+ var monthHeights = [];
50
+ var monthCollection = this.mobileBody.current.children;
51
+ for (var i = 0; i < monthCollection.length; i++) {
52
+ monthHeights[i] = monthCollection[i].offsetTop - header.clientHeight;
53
+ }
54
+ this.setState({
55
+ monthHeights: monthHeights
56
+ });
57
+ this.scollToDate((0, moment_1.default)());
58
+ }
59
+ };
60
+ CalendarMobile.prototype.scollToDate = function (date) {
61
+ var _a = this.props, minDate = _a.minDate, showViewMode = _a.showViewMode;
62
+ var index = date.diff(minDate, showViewMode);
63
+ var currentEl = this.mobileBody.current.children[index];
64
+ var header = this.mobileHeader.current;
65
+ this.mobileBody.current.scrollBy(0, currentEl.offsetTop - this.mobileBody.current.scrollTop - header.clientHeight);
66
+ };
67
+ CalendarMobile.prototype.onMobileBodyScroll = function (e) {
68
+ var _a, _b;
69
+ var showViewMode = this.props.showViewMode;
70
+ var monthHeights = this.state.monthHeights;
71
+ var minDate = (_a = this.props.minDate) === null || _a === void 0 ? void 0 : _a.clone();
72
+ if (!((_b = this.mobileBody) === null || _b === void 0 ? void 0 : _b.current) || !monthHeights || !minDate) {
73
+ return;
74
+ }
75
+ var scrollTop = this.mobileBody.current.scrollTop;
76
+ var clientHeight = this.mobileBody.current.clientHeight;
77
+ var scrollHeight = this.mobileBody.current.scrollHeight;
78
+ var i = 0;
79
+ for (i; i < monthHeights.length; i++) {
80
+ if (scrollTop < monthHeights[i]) {
81
+ break;
82
+ }
83
+ }
84
+ i--;
85
+ i < 0 && (i = 0);
86
+ var currentDate = minDate.add(i, showViewMode);
87
+ this.setState({
88
+ currentDate: currentDate,
89
+ isScrollToBottom: scrollTop + clientHeight === scrollHeight
90
+ });
91
+ };
92
+ CalendarMobile.prototype.scrollPreYear = function () {
93
+ if (!this.state.currentDate) {
94
+ return;
95
+ }
96
+ var minDate = this.props.minDate;
97
+ var currentDate = this.state.currentDate;
98
+ currentDate = currentDate.clone().subtract(1, 'years');
99
+ if (minDate && currentDate.isBefore(minDate)) {
100
+ currentDate = minDate;
101
+ }
102
+ this.setState({
103
+ currentDate: currentDate
104
+ });
105
+ this.scollToDate(currentDate);
106
+ };
107
+ CalendarMobile.prototype.scrollAfterYear = function () {
108
+ if (!this.state.currentDate) {
109
+ return;
110
+ }
111
+ var maxDate = this.props.maxDate;
112
+ var currentDate = this.state.currentDate;
113
+ currentDate = currentDate.clone().add(1, 'years');
114
+ if (maxDate && currentDate.isAfter(maxDate)) {
115
+ currentDate = maxDate;
116
+ }
117
+ this.setState({
118
+ currentDate: currentDate
119
+ });
120
+ this.scollToDate(currentDate);
121
+ };
122
+ CalendarMobile.prototype.getDaysOfWeek = function () {
123
+ var locale = (0, moment_1.default)().localeData();
124
+ var days = locale.weekdaysMin();
125
+ var first = locale.firstDayOfWeek();
126
+ var dow = [];
127
+ var i = 0;
128
+ days.forEach(function (day) {
129
+ dow[(7 + (i++) - first) % 7] = day;
130
+ });
131
+ return dow;
132
+ };
133
+ CalendarMobile.prototype.handleCalendarClick = function (isDisabled) {
134
+ var _this = this;
135
+ if (isDisabled) {
136
+ this.setState({ showToast: true });
137
+ this.timer = setTimeout(function () {
138
+ _this.setState({ showToast: false });
139
+ }, 2000);
140
+ }
141
+ };
142
+ CalendarMobile.prototype.getRenderProps = function (props, currentDate) {
143
+ var _a = this.state, startDate = _a.startDate, endDate = _a.endDate;
144
+ var _b = this.props, __ = _b.translate, viewMode = _b.viewMode;
145
+ var precision = viewMode === 'time' ? 'hours' : viewMode || 'day';
146
+ var footerText = '';
147
+ if (startDate &&
148
+ endDate &&
149
+ currentDate.isBetween(startDate, endDate, precision, '()')) {
150
+ props.className += ' rdtBetween';
151
+ }
152
+ else if (startDate
153
+ && endDate
154
+ && startDate.isSame(endDate, precision)
155
+ && currentDate.isSame(startDate, precision)) {
156
+ props.className += ' rdtRangeStart';
157
+ footerText = __('Calendar.beginAndEnd');
158
+ }
159
+ else if (startDate && currentDate.isSame(startDate, precision)) {
160
+ props.className += ' rdtRangeStart';
161
+ footerText = __('Calendar.begin');
162
+ if (endDate) {
163
+ props.className += ' rdtRangeHasEnd';
164
+ }
165
+ }
166
+ else if (endDate && currentDate.isSame(endDate, precision)) {
167
+ props.className += ' rdtRangeEnd';
168
+ footerText = __('Calendar.end');
169
+ }
170
+ if (precision === 'day' && currentDate.date() === 1 && currentDate.day() === 1) {
171
+ props.className += ' rdtOldNone';
172
+ }
173
+ var rdtDisabled = props.className.indexOf('rdtDisabled') > -1;
174
+ return {
175
+ props: props,
176
+ footerText: footerText,
177
+ rdtDisabled: rdtDisabled
178
+ };
179
+ };
180
+ CalendarMobile.prototype.handleTimeChange = function (newTime) {
181
+ var _this = this;
182
+ if (!newTime) {
183
+ return;
184
+ }
185
+ var onChange = this.props.onChange;
186
+ var _a = this.state, startDate = _a.startDate, endDate = _a.endDate;
187
+ if (startDate) {
188
+ var obj = {
189
+ dateTime: newTime,
190
+ startDate: endDate ? startDate : startDate === null || startDate === void 0 ? void 0 : startDate.clone().set({ hour: newTime[0], minute: newTime[1], second: 0 }),
191
+ endDate: !endDate ? endDate : endDate === null || endDate === void 0 ? void 0 : endDate.clone().set({ hour: newTime[0], minute: newTime[1], second: 0 })
192
+ };
193
+ this.setState(obj, function () {
194
+ onChange && onChange(_this.state);
195
+ });
196
+ }
197
+ };
198
+ CalendarMobile.prototype.checkIsValidDate = function (currentDate) {
199
+ var _a = this.props, minDate = _a.minDate, maxDate = _a.maxDate;
200
+ var _b = this.state, startDate = _b.startDate, endDate = _b.endDate;
201
+ var _c = this.props, minDuration = _c.minDuration, maxDuration = _c.maxDuration, viewMode = _c.viewMode;
202
+ var precision = viewMode === 'time' ? 'hours' : viewMode || 'day';
203
+ if (minDate && currentDate.isBefore(minDate, precision)) {
204
+ return false;
205
+ }
206
+ else if (maxDate && currentDate.isAfter(maxDate, precision)) {
207
+ return false;
208
+ }
209
+ else if (startDate && !endDate) {
210
+ if (minDuration
211
+ && currentDate.isBefore(startDate.clone().add(minDuration))
212
+ && currentDate.isSameOrAfter(startDate)) {
213
+ return false;
214
+ }
215
+ else if (maxDuration && currentDate.isAfter(startDate.clone().add(maxDuration))) {
216
+ return false;
217
+ }
218
+ }
219
+ return true;
220
+ };
221
+ CalendarMobile.prototype.renderMobileDay = function (props, currentDate) {
222
+ var _this = this;
223
+ var cx = this.props.classnames;
224
+ var renderProps = this.getRenderProps(props, currentDate);
225
+ return react_1.default.createElement("td", (0, tslib_1.__assign)({}, renderProps.props),
226
+ react_1.default.createElement("div", { className: "calendar-wrap", onClick: function () { return _this.handleCalendarClick(renderProps.rdtDisabled); } },
227
+ currentDate.date(),
228
+ react_1.default.createElement("div", { className: cx('CalendarMobile-range-text') }, renderProps.footerText)));
229
+ };
230
+ CalendarMobile.prototype.renderMonth = function (props, month, year) {
231
+ var _this = this;
232
+ var cx = this.props.classnames;
233
+ var currentDate = (0, moment_1.default)().year(year).month(month);
234
+ var monthStr = currentDate
235
+ .localeData()
236
+ .monthsShort(currentDate.month(month));
237
+ var strLength = 3;
238
+ var monthStrFixedLength = monthStr.substring(0, strLength);
239
+ var renderProps = this.getRenderProps(props, currentDate);
240
+ return (react_1.default.createElement("td", (0, tslib_1.__assign)({}, renderProps.props),
241
+ react_1.default.createElement("div", { className: "calendar-wrap", onClick: function () { return _this.handleCalendarClick(renderProps.rdtDisabled); } },
242
+ monthStrFixedLength,
243
+ react_1.default.createElement("div", { className: cx('CalendarMobile-range-text') }, renderProps.footerText))));
244
+ };
245
+ CalendarMobile.prototype.renderQuarter = function (props, quarter, year) {
246
+ var _this = this;
247
+ var cx = this.props.classnames;
248
+ var currentDate = (0, moment_1.default)().year(year).quarter(quarter);
249
+ var renderProps = this.getRenderProps(props, currentDate);
250
+ return (react_1.default.createElement("td", (0, tslib_1.__assign)({}, props),
251
+ react_1.default.createElement("div", { className: "calendar-wrap", onClick: function () { return _this.handleCalendarClick(renderProps.rdtDisabled); } },
252
+ "Q",
253
+ quarter,
254
+ react_1.default.createElement("div", { className: cx('CalendarMobile-range-text') }, renderProps.footerText))));
255
+ };
256
+ CalendarMobile.prototype.handleMobileChange = function (newValue) {
257
+ var _this = this;
258
+ var _a = this.props, embed = _a.embed, minDuration = _a.minDuration, maxDuration = _a.maxDuration, confirm = _a.confirm, onChange = _a.onChange, viewMode = _a.viewMode, minDate = _a.minDate, maxDate = _a.maxDate;
259
+ var _b = this.state, startDate = _b.startDate, endDate = _b.endDate, dateTime = _b.dateTime;
260
+ var precision = viewMode === 'time' ? 'hours' : viewMode || 'day';
261
+ if (minDate && newValue && newValue.isBefore(minDate, 'second')) {
262
+ newValue = minDate;
263
+ }
264
+ if (maxDate && newValue && newValue.isAfter(maxDate, 'second')) {
265
+ newValue = maxDate;
266
+ }
267
+ if (startDate &&
268
+ !endDate &&
269
+ newValue.isSameOrAfter(startDate) &&
270
+ (!minDuration || newValue.isSameOrAfter(startDate.clone().add(minDuration))) &&
271
+ (!maxDuration || newValue.isSameOrBefore(startDate.clone().add(maxDuration)))) {
272
+ return this.setState({
273
+ endDate: newValue.clone().endOf(precision).set({ hour: dateTime[0], minute: dateTime[1], second: 0 })
274
+ }, function () {
275
+ onChange && onChange(_this.state, function () { return embed && confirm && confirm(); });
276
+ });
277
+ }
278
+ this.setState({
279
+ startDate: newValue.clone().startOf(precision).set({ hour: dateTime[0], minute: dateTime[1], second: 0 }),
280
+ endDate: undefined
281
+ }, function () {
282
+ onChange && onChange(_this.state);
283
+ });
284
+ };
285
+ CalendarMobile.prototype.renderMobileCalendarBody = function () {
286
+ var _this = this;
287
+ var _a = this.props, cx = _a.classnames, dateFormat = _a.dateFormat, timeFormat = _a.timeFormat, inputFormat = _a.inputFormat, locale = _a.locale, _b = _a.viewMode, viewMode = _b === void 0 ? 'days' : _b, close = _a.close;
288
+ var __ = this.props.translate;
289
+ var _c = this.props, minDate = _c.minDate, maxDate = _c.maxDate, showViewMode = _c.showViewMode;
290
+ if (!minDate || !maxDate) {
291
+ return;
292
+ }
293
+ var calendarDates = [];
294
+ for (var minDateClone = minDate.clone(); minDateClone.isSameOrBefore(maxDate); minDateClone.add(1, showViewMode)) {
295
+ calendarDates.push(minDateClone.clone());
296
+ }
297
+ return (react_1.default.createElement("div", { className: cx('CalendarMobile-body'), ref: this.mobileBody, onScroll: this.onMobileBodyScroll }, calendarDates.map(function (calendarDate, index) {
298
+ var rdtOldNone = showViewMode === 'months'
299
+ && calendarDate.clone().startOf('month').day() === 1
300
+ ? 'rdtOldNone' : '';
301
+ return react_1.default.createElement("div", { className: cx('CalendarMobile-calendar-wrap', rdtOldNone), key: 'calendar-wrap' + index },
302
+ showViewMode === 'months' && react_1.default.createElement("div", { className: cx('CalendarMobile-calendar-mark'), key: 'calendar-mark' + index }, calendarDate.month() + 1),
303
+ react_1.default.createElement("div", { className: cx('CalendarMobile-calendar-header') },
304
+ react_1.default.createElement("span", { className: "rdtSwitch" }, calendarDate.format(__('dateformat.year'))),
305
+ showViewMode === 'months' && react_1.default.createElement("span", { className: "rdtSwitch" }, calendarDate.format(__('MMM')))),
306
+ react_1.default.createElement(Calendar_1.default, { className: cx('CalendarMobile-calendar', rdtOldNone), viewDate: calendarDate, value: calendarDate, onChange: _this.handleMobileChange, requiredConfirm: false, dateFormat: dateFormat, inputFormat: inputFormat, timeFormat: '', isValidDate: _this.checkIsValidDate, viewMode: viewMode, input: false, onClose: close, renderDay: _this.renderMobileDay, renderMonth: _this.renderMonth, renderQuarter: _this.renderQuarter, locale: locale, hideHeader: true, updateOn: viewMode, key: 'calendar' + index }));
307
+ })));
308
+ };
309
+ CalendarMobile.prototype.renderMobileTimePicker = function () {
310
+ var _a = this.props, cx = _a.classnames, timeFormat = _a.timeFormat, locale = _a.locale, close = _a.close;
311
+ var __ = this.props.translate;
312
+ var _b = this.state, startDate = _b.startDate, endDate = _b.endDate, dateTime = _b.dateTime;
313
+ return (react_1.default.createElement("div", { className: cx('CalendarMobile-time') },
314
+ react_1.default.createElement("div", { className: cx('CalendarMobile-time-title') }, startDate && endDate ? __('Calendar.endPick') : __('Calendar.startPick')),
315
+ react_1.default.createElement(Calendar_1.default, { className: cx('CalendarMobile-time-calendar'), onChange: this.handleTimeChange, requiredConfirm: false, timeFormat: timeFormat, viewMode: "time", input: false, onClose: close, locale: locale, useMobileUI: true, showToolbar: false, viewDate: (0, moment_1.default)().set({ hour: dateTime[0], minute: dateTime[1], second: 0 }) })));
316
+ };
317
+ CalendarMobile.prototype.render = function () {
318
+ var _a = this.props, className = _a.className, cx = _a.classnames, embed = _a.embed, confirm = _a.confirm, footerExtra = _a.footerExtra, timeFormat = _a.timeFormat, minDate = _a.minDate, maxDate = _a.maxDate, showViewMode = _a.showViewMode;
319
+ var __ = this.props.translate;
320
+ var _b = this.state, startDate = _b.startDate, endDate = _b.endDate, currentDate = _b.currentDate, showToast = _b.showToast, isScrollToBottom = _b.isScrollToBottom;
321
+ var dateNow = currentDate
322
+ ? currentDate.format(__("Calendar." + (showViewMode === 'months' ? 'yearmonth' : 'year')))
323
+ : (0, moment_1.default)().format(__("Calendar." + (showViewMode === 'months' ? 'yearmonth' : 'year')));
324
+ var header = (react_1.default.createElement("div", { className: cx('CalendarMobile-header'), ref: this.mobileHeader },
325
+ react_1.default.createElement("div", { className: cx('CalendarMobile-subtitle') },
326
+ react_1.default.createElement("span", { className: "subtitle-text" },
327
+ currentDate && currentDate.isSameOrBefore(minDate, showViewMode)
328
+ ? null
329
+ : react_1.default.createElement("a", { className: "rdtPrev", onClick: this.scrollPreYear }, "\u2039"),
330
+ dateNow,
331
+ currentDate && currentDate.isSameOrAfter(maxDate, showViewMode) || isScrollToBottom
332
+ ? null
333
+ : react_1.default.createElement("a", { className: "rdtNext", onClick: this.scrollAfterYear }, "\u203A"))),
334
+ showViewMode === 'months' ? react_1.default.createElement("div", { className: cx('CalendarMobile-weekdays') }, this.getDaysOfWeek().map(function (day, index) { return (react_1.default.createElement("span", { key: day + index, className: "weekday" }, day)); })) : null));
335
+ var footer = (react_1.default.createElement("div", { className: cx('CalendarMobile-footer') },
336
+ timeFormat && startDate && this.renderMobileTimePicker(),
337
+ react_1.default.createElement("div", { className: cx('CalendarMobile-footer-toolbar') },
338
+ react_1.default.createElement("div", { className: cx('CalendarMobile-footer-ranges') }, footerExtra),
339
+ confirm && !embed && react_1.default.createElement("a", { className: cx('Button', 'Button--primary', 'date-range-confirm', {
340
+ 'is-disabled': !startDate || !endDate
341
+ }), onClick: confirm }, __('confirm')))));
342
+ return (react_1.default.createElement("div", { className: cx('CalendarMobile', embed ? 'CalendarMobile-embed' : '', className) },
343
+ react_1.default.createElement("div", { className: cx('CalendarMobile-wrap') },
344
+ header,
345
+ this.renderMobileCalendarBody(),
346
+ footer),
347
+ showToast ? react_1.default.createElement("div", { className: cx('CalendarMobile-toast') }, __('Calendar.toast')) : null));
348
+ };
349
+ var _a, _b, _c;
350
+ CalendarMobile.defaultProps = {
351
+ showViewMode: 'months',
352
+ minDate: (0, moment_1.default)().subtract(1, 'year').startOf('months'),
353
+ maxDate: (0, moment_1.default)().add(1, 'year').endOf('months'),
354
+ };
355
+ (0, tslib_1.__decorate)([
356
+ helper_1.autobind,
357
+ (0, tslib_1.__metadata)("design:type", Function),
358
+ (0, tslib_1.__metadata)("design:paramtypes", [Object]),
359
+ (0, tslib_1.__metadata)("design:returntype", void 0)
360
+ ], CalendarMobile.prototype, "onMobileBodyScroll", null);
361
+ (0, tslib_1.__decorate)([
362
+ helper_1.autobind,
363
+ (0, tslib_1.__metadata)("design:type", Function),
364
+ (0, tslib_1.__metadata)("design:paramtypes", []),
365
+ (0, tslib_1.__metadata)("design:returntype", void 0)
366
+ ], CalendarMobile.prototype, "scrollPreYear", null);
367
+ (0, tslib_1.__decorate)([
368
+ helper_1.autobind,
369
+ (0, tslib_1.__metadata)("design:type", Function),
370
+ (0, tslib_1.__metadata)("design:paramtypes", []),
371
+ (0, tslib_1.__metadata)("design:returntype", void 0)
372
+ ], CalendarMobile.prototype, "scrollAfterYear", null);
373
+ (0, tslib_1.__decorate)([
374
+ helper_1.autobind,
375
+ (0, tslib_1.__metadata)("design:type", Function),
376
+ (0, tslib_1.__metadata)("design:paramtypes", [Boolean]),
377
+ (0, tslib_1.__metadata)("design:returntype", void 0)
378
+ ], CalendarMobile.prototype, "handleCalendarClick", null);
379
+ (0, tslib_1.__decorate)([
380
+ helper_1.autobind,
381
+ (0, tslib_1.__metadata)("design:type", Function),
382
+ (0, tslib_1.__metadata)("design:paramtypes", [Object]),
383
+ (0, tslib_1.__metadata)("design:returntype", void 0)
384
+ ], CalendarMobile.prototype, "handleTimeChange", null);
385
+ (0, tslib_1.__decorate)([
386
+ helper_1.autobind,
387
+ (0, tslib_1.__metadata)("design:type", Function),
388
+ (0, tslib_1.__metadata)("design:paramtypes", [typeof (_a = typeof moment_1.default !== "undefined" && moment_1.default.Moment) === "function" ? _a : Object]),
389
+ (0, tslib_1.__metadata)("design:returntype", void 0)
390
+ ], CalendarMobile.prototype, "checkIsValidDate", null);
391
+ (0, tslib_1.__decorate)([
392
+ helper_1.autobind,
393
+ (0, tslib_1.__metadata)("design:type", Function),
394
+ (0, tslib_1.__metadata)("design:paramtypes", [Object, typeof (_b = typeof moment_1.default !== "undefined" && moment_1.default.Moment) === "function" ? _b : Object]),
395
+ (0, tslib_1.__metadata)("design:returntype", void 0)
396
+ ], CalendarMobile.prototype, "renderMobileDay", null);
397
+ (0, tslib_1.__decorate)([
398
+ helper_1.autobind,
399
+ (0, tslib_1.__metadata)("design:type", Function),
400
+ (0, tslib_1.__metadata)("design:paramtypes", [Object, Number, Number]),
401
+ (0, tslib_1.__metadata)("design:returntype", void 0)
402
+ ], CalendarMobile.prototype, "renderMonth", null);
403
+ (0, tslib_1.__decorate)([
404
+ helper_1.autobind,
405
+ (0, tslib_1.__metadata)("design:type", Function),
406
+ (0, tslib_1.__metadata)("design:paramtypes", [Object, Number, Number]),
407
+ (0, tslib_1.__metadata)("design:returntype", void 0)
408
+ ], CalendarMobile.prototype, "renderQuarter", null);
409
+ (0, tslib_1.__decorate)([
410
+ helper_1.autobind,
411
+ (0, tslib_1.__metadata)("design:type", Function),
412
+ (0, tslib_1.__metadata)("design:paramtypes", [typeof (_c = typeof moment_1.default !== "undefined" && moment_1.default.Moment) === "function" ? _c : Object]),
413
+ (0, tslib_1.__metadata)("design:returntype", void 0)
414
+ ], CalendarMobile.prototype, "handleMobileChange", null);
415
+ (0, tslib_1.__decorate)([
416
+ helper_1.autobind,
417
+ (0, tslib_1.__metadata)("design:type", Function),
418
+ (0, tslib_1.__metadata)("design:paramtypes", []),
419
+ (0, tslib_1.__metadata)("design:returntype", void 0)
420
+ ], CalendarMobile.prototype, "renderMobileCalendarBody", null);
421
+ (0, tslib_1.__decorate)([
422
+ helper_1.autobind,
423
+ (0, tslib_1.__metadata)("design:type", Function),
424
+ (0, tslib_1.__metadata)("design:paramtypes", []),
425
+ (0, tslib_1.__metadata)("design:returntype", void 0)
426
+ ], CalendarMobile.prototype, "renderMobileTimePicker", null);
427
+ return CalendarMobile;
428
+ }(react_1.default.Component));
429
+ exports.CalendarMobile = CalendarMobile;
430
+ ;
431
+ exports.default = (0, theme_1.themeable)((0, locale_1.localeable)(CalendarMobile));
432
+ //# sourceMappingURL=./components/CalendarMobile.js.map
@@ -0,0 +1,13 @@
1
+ {
2
+ "version": 3,
3
+ "file": "CalendarMobile.js",
4
+ "sourceRoot": "",
5
+ "sources": [
6
+ "/src/components/CalendarMobile.tsx"
7
+ ],
8
+ "names": [],
9
+ "mappings": "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",
10
+ "sourcesContent": [
11
+ "/**\n * @file CalendarMobile\n * @description 移动端日历组件\n * @author hongyang03\n */\n\nimport React from 'react';\nimport moment from 'moment';\nimport Calendar from './calendar/Calendar';\nimport {themeable, ThemeProps} from '../theme';\nimport {LocaleProps, localeable} from '../locale';\nimport {autobind} from '../utils/helper';\n\nexport interface CalendarMobileProps extends ThemeProps, LocaleProps {\n className?: string;\n timeFormat?: string;\n inputFormat?: string;\n startDate?: moment.Moment;\n endDate?: moment.Moment;\n minDate?: moment.Moment;\n maxDate?: moment.Moment;\n minDuration?: moment.Duration;\n maxDuration?: moment.Duration;\n dateFormat?: string;\n embed?: boolean;\n viewMode?: 'days' | 'months' | 'years' | 'time' | 'quarters';\n close?: () => void;\n confirm?: () => void;\n onChange?: (data: any, callback?: () => void) => void;\n footerExtra?: JSX.Element | null;\n showViewMode?: 'years' | 'months';\n}\n\nexport interface CalendarMobileState {\n startDate?: moment.Moment;\n endDate?: moment.Moment;\n monthHeights?: number[];\n currentDate: moment.Moment;\n showToast: boolean;\n isScrollToBottom: boolean;\n dateTime: any;\n}\n\nexport class CalendarMobile extends React.Component<\n CalendarMobileProps,\n CalendarMobileState\n> {\n\n mobileBody: any;\n mobileHeader: any;\n timer: any;\n\n static defaultProps: Pick<CalendarMobileProps, 'showViewMode' | 'minDate' | 'maxDate'> = {\n showViewMode: 'months',\n minDate: moment().subtract(1, 'year').startOf('months'),\n maxDate: moment().add(1, 'year').endOf('months'),\n };\n\n constructor(props: CalendarMobileProps) {\n super(props);\n\n this.mobileBody = React.createRef();\n this.mobileHeader = React.createRef();\n\n const {startDate, endDate, viewMode} = this.props;\n\n this.state = {\n startDate,\n endDate,\n showToast: false,\n currentDate: moment(),\n isScrollToBottom: false,\n dateTime: endDate ? [endDate.hour(), endDate.minute()] : [0, 0]\n };\n }\n\n componentDidMount() {\n this.initMonths();\n }\n\n componentDidUpdate(prevProps: CalendarMobileProps) {\n const props = this.props;\n\n if (prevProps.minDate !== props.minDate || prevProps.maxDate !== props.maxDate) {\n this.initMonths();\n }\n }\n\n componentWillUnmount() {\n this.setState({showToast: false});\n clearTimeout(this.timer);\n }\n\n initMonths() {\n if (this.mobileBody.current) {\n const header = this.mobileHeader.current;\n let monthHeights: number[] = [];\n const monthCollection = this.mobileBody.current.children;\n for (let i = 0; i < monthCollection.length; i++) {\n monthHeights[i] = monthCollection[i].offsetTop - header.clientHeight;\n }\n this.setState({\n monthHeights\n });\n this.scollToDate(moment());\n }\n }\n\n scollToDate(date: moment.Moment) {\n const {minDate, showViewMode} = this.props;\n const index = date.diff(minDate, showViewMode);\n const currentEl = this.mobileBody.current.children[index];\n const header = this.mobileHeader.current;\n this.mobileBody.current.scrollBy(0, currentEl.offsetTop - this.mobileBody.current.scrollTop - header.clientHeight);\n }\n\n @autobind\n onMobileBodyScroll(e: any) {\n const {showViewMode} = this.props;\n const {monthHeights} = this.state;\n let minDate = this.props.minDate?.clone();\n if (!this.mobileBody?.current || !monthHeights || !minDate) {\n return;\n }\n const scrollTop = this.mobileBody.current.scrollTop;\n const clientHeight = this.mobileBody.current.clientHeight;\n const scrollHeight = this.mobileBody.current.scrollHeight;\n \n let i = 0;\n for(i; i < monthHeights.length; i++) {\n if (scrollTop < monthHeights[i]) {\n break;\n }\n }\n i--;\n i < 0 && (i = 0);\n const currentDate = minDate.add(i, showViewMode);\n this.setState({\n currentDate,\n isScrollToBottom: scrollTop + clientHeight === scrollHeight\n });\n }\n\n @autobind\n scrollPreYear() {\n if (!this.state.currentDate) {\n return;\n }\n const {minDate} = this.props;\n let {currentDate} = this.state;\n currentDate = currentDate.clone().subtract(1, 'years');\n if (minDate && currentDate.isBefore(minDate)) {\n currentDate = minDate;\n }\n this.setState({\n currentDate\n });\n this.scollToDate(currentDate);\n }\n\n @autobind\n scrollAfterYear() {\n if (!this.state.currentDate) {\n return;\n }\n const {maxDate} = this.props;\n let {currentDate} = this.state;\n currentDate = currentDate.clone().add(1, 'years');\n if (maxDate && currentDate.isAfter(maxDate)) {\n currentDate = maxDate;\n }\n this.setState({\n currentDate\n });\n this.scollToDate(currentDate);\n }\n\n getDaysOfWeek() {\n const locale = moment().localeData();\n const days = locale.weekdaysMin();\n const first = locale.firstDayOfWeek();\n const\tdow: string[] = [];\n let\ti = 0;\n\n days.forEach((day: string) => {\n dow[ (7 + ( i++ ) - first) % 7 ] = day;\n });\n\n return dow;\n }\n\n @autobind\n handleCalendarClick(isDisabled: boolean) {\n if (isDisabled) {\n this.setState({showToast: true});\n this.timer = setTimeout(() => {\n this.setState({showToast: false});\n }, 2000);\n }\n }\n\n getRenderProps(props: any, currentDate: moment.Moment) {\n let {startDate, endDate} = this.state;\n const {translate: __, viewMode} = this.props;\n const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';\n let footerText = '';\n\n if (startDate &&\n endDate &&\n currentDate.isBetween(startDate, endDate, precision, '()')) {\n props.className += ' rdtBetween';\n }\n else if (startDate\n && endDate\n && startDate.isSame(endDate, precision)\n && currentDate.isSame(startDate, precision)) {\n props.className += ' rdtRangeStart';\n footerText = __('Calendar.beginAndEnd');\n }\n else if (startDate && currentDate.isSame(startDate, precision)) {\n props.className += ' rdtRangeStart';\n footerText = __('Calendar.begin');\n if (endDate) {\n props.className += ' rdtRangeHasEnd';\n }\n }\n else if (endDate && currentDate.isSame(endDate, precision)) {\n props.className += ' rdtRangeEnd';\n footerText = __('Calendar.end');\n }\n\n if (precision === 'day' && currentDate.date() === 1 && currentDate.day() === 1) {\n props.className += ' rdtOldNone';\n }\n\n const rdtDisabled = props.className.indexOf('rdtDisabled') > -1;\n\n return {\n props,\n footerText,\n rdtDisabled\n };\n }\n\n @autobind\n handleTimeChange(newTime: any) {\n if (!newTime) {\n return;\n }\n const {onChange} = this.props;\n let {startDate, endDate} = this.state;\n if (startDate) {\n let obj = {\n dateTime: newTime,\n startDate: endDate ? startDate : startDate?.clone().set({hour: newTime[0], minute: newTime[1], second: 0}),\n endDate: !endDate ? endDate : endDate?.clone().set({hour: newTime[0], minute: newTime[1], second: 0})\n };\n this.setState(obj, () => {\n onChange && onChange(this.state);\n });\n }\n }\n\n @autobind\n checkIsValidDate(currentDate: moment.Moment) {\n const {minDate, maxDate} = this.props;\n let {startDate, endDate} = this.state;\n let {minDuration, maxDuration, viewMode} = this.props;\n const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';\n\n if (minDate && currentDate.isBefore(minDate, precision)) {\n return false;\n }\n else if (maxDate && currentDate.isAfter(maxDate, precision)) {\n return false;\n }\n else if (startDate && !endDate) {\n if (minDuration\n && currentDate.isBefore(startDate.clone().add(minDuration))\n && currentDate.isSameOrAfter(startDate)) {\n return false;\n }\n else if (maxDuration && currentDate.isAfter(startDate.clone().add(maxDuration))) {\n return false;\n }\n }\n\n return true;\n }\n\n @autobind\n renderMobileDay(props: any, currentDate: moment.Moment) {\n const cx = this.props.classnames;\n const renderProps = this.getRenderProps(props, currentDate);\n\n return <td {...renderProps.props}>\n <div className=\"calendar-wrap\" onClick={() => this.handleCalendarClick(renderProps.rdtDisabled)}>\n {currentDate.date()}\n <div className={cx('CalendarMobile-range-text')}>{renderProps.footerText}</div>\n </div>\n </td>;\n }\n\n @autobind\n renderMonth(props: any, month: number, year: number) {\n const cx = this.props.classnames;\n const currentDate = moment().year(year).month(month);\n const monthStr = currentDate\n .localeData()\n .monthsShort(currentDate.month(month));\n const strLength = 3;\n const monthStrFixedLength = monthStr.substring(0, strLength);\n const renderProps = this.getRenderProps(props, currentDate);\n\n return (\n <td {...renderProps.props}>\n <div className=\"calendar-wrap\" onClick={() => this.handleCalendarClick(renderProps.rdtDisabled)}>\n {monthStrFixedLength}\n <div className={cx('CalendarMobile-range-text')}>{renderProps.footerText}</div>\n </div>\n </td>\n );\n }\n\n @autobind\n renderQuarter(props: any, quarter: number, year: number) {\n const cx = this.props.classnames;\n const currentDate = moment().year(year).quarter(quarter);\n const renderProps = this.getRenderProps(props, currentDate);\n\n return (\n <td {...props}>\n <div className=\"calendar-wrap\" onClick={() => this.handleCalendarClick(renderProps.rdtDisabled)}>\n Q{quarter}\n <div className={cx('CalendarMobile-range-text')}>{renderProps.footerText}</div>\n </div>\n </td>\n );\n }\n\n @autobind\n handleMobileChange(newValue: moment.Moment) {\n const {embed, minDuration, maxDuration, confirm, onChange, viewMode, minDate, maxDate} = this.props;\n const {startDate, endDate, dateTime} = this.state;\n const precision = viewMode === 'time' ? 'hours' : viewMode || 'day';\n\n if (minDate && newValue && newValue.isBefore(minDate, 'second')) {\n newValue = minDate;\n }\n\n if (maxDate && newValue && newValue.isAfter(maxDate, 'second')) {\n newValue = maxDate;\n }\n\n if (\n startDate &&\n !endDate &&\n newValue.isSameOrAfter(startDate) &&\n (!minDuration || newValue.isSameOrAfter(startDate.clone().add(minDuration))) &&\n (!maxDuration || newValue.isSameOrBefore(startDate.clone().add(maxDuration)))\n ) {\n return this.setState(\n {\n endDate: newValue.clone().endOf(precision).set({hour: dateTime[0], minute: dateTime[1], second: 0})\n },\n () => {\n onChange && onChange(this.state, () => embed && confirm && confirm());\n }\n );\n }\n\n this.setState(\n {\n startDate: newValue.clone().startOf(precision).set({hour: dateTime[0], minute: dateTime[1], second: 0}),\n endDate: undefined\n },\n () => {\n onChange && onChange(this.state);\n }\n );\n }\n\n @autobind\n renderMobileCalendarBody() {\n const {\n classnames: cx,\n dateFormat,\n timeFormat,\n inputFormat,\n locale,\n viewMode = 'days',\n close\n } = this.props;\n const __ = this.props.translate;\n\n const {minDate, maxDate, showViewMode} = this.props;\n if (!minDate || !maxDate) {\n return;\n }\n let calendarDates: moment.Moment[] = [];\n for(let minDateClone = minDate.clone(); minDateClone.isSameOrBefore(maxDate); minDateClone.add(1, showViewMode)) {\n calendarDates.push(minDateClone.clone());\n }\n\n return (\n <div className={cx('CalendarMobile-body')} ref={this.mobileBody}\n onScroll={this.onMobileBodyScroll}>\n {calendarDates.map((calendarDate: moment.Moment, index: number) => {\n const rdtOldNone = showViewMode === 'months'\n && calendarDate.clone().startOf('month').day() === 1\n ? 'rdtOldNone' : '';\n\n return <div className={cx('CalendarMobile-calendar-wrap', rdtOldNone)} key={'calendar-wrap' + index}>\n {showViewMode === 'months' && <div className={cx('CalendarMobile-calendar-mark')} key={'calendar-mark' + index}>\n {calendarDate.month() + 1}\n </div>}\n <div className={cx('CalendarMobile-calendar-header')}>\n <span className=\"rdtSwitch\">\n {calendarDate.format(__('dateformat.year'))}\n </span>\n {showViewMode === 'months' && <span className=\"rdtSwitch\">\n {calendarDate.format(__('MMM'))}\n </span>}\n </div>\n <Calendar\n className={cx('CalendarMobile-calendar', rdtOldNone)}\n viewDate={calendarDate}\n value={calendarDate}\n onChange={this.handleMobileChange}\n requiredConfirm={false}\n dateFormat={dateFormat}\n inputFormat={inputFormat}\n timeFormat=''\n isValidDate={this.checkIsValidDate}\n viewMode={viewMode}\n input={false}\n onClose={close}\n renderDay={this.renderMobileDay}\n renderMonth={this.renderMonth}\n renderQuarter={this.renderQuarter}\n locale={locale}\n hideHeader={true}\n updateOn={viewMode}\n key={'calendar' + index}\n />\n </div>\n })}\n </div>\n );\n }\n\n @autobind\n renderMobileTimePicker() {\n const {\n classnames: cx,\n timeFormat,\n locale,\n close\n } = this.props;\n const __ = this.props.translate;\n\n const {startDate, endDate, dateTime} = this.state;\n\n return (\n <div className={cx('CalendarMobile-time')}>\n <div className={cx('CalendarMobile-time-title')}>\n {startDate && endDate ? __('Calendar.endPick') : __('Calendar.startPick')}\n </div>\n <Calendar\n className={cx('CalendarMobile-time-calendar')}\n onChange={this.handleTimeChange}\n requiredConfirm={false}\n timeFormat={timeFormat}\n viewMode=\"time\"\n input={false}\n onClose={close}\n locale={locale}\n useMobileUI={true}\n showToolbar={false}\n viewDate={moment().set({hour: dateTime[0], minute: dateTime[1], second: 0})}\n />\n </div>\n );\n }\n\n\n render() {\n const {\n className,\n classnames: cx,\n embed,\n confirm,\n footerExtra,\n timeFormat,\n minDate,\n maxDate,\n showViewMode\n } = this.props;\n const __ = this.props.translate;\n\n const {startDate, endDate, currentDate, showToast, isScrollToBottom} = this.state;\n let dateNow = currentDate\n ? currentDate.format(__(`Calendar.${showViewMode === 'months' ? 'yearmonth' : 'year'}`))\n : moment().format(__(`Calendar.${showViewMode === 'months' ? 'yearmonth' : 'year'}`));\n\n const header = (\n <div className={cx('CalendarMobile-header')} ref={this.mobileHeader}>\n <div className={cx('CalendarMobile-subtitle')}>\n <span className=\"subtitle-text\">\n {currentDate && currentDate.isSameOrBefore(minDate, showViewMode)\n ? null\n : <a className=\"rdtPrev\" onClick={this.scrollPreYear}>&lsaquo;</a>}\n {dateNow}\n {currentDate && currentDate.isSameOrAfter(maxDate, showViewMode) || isScrollToBottom\n ? null\n : <a className=\"rdtNext\" onClick={this.scrollAfterYear}>&rsaquo;</a>}\n </span>\n </div>\n {showViewMode === 'months' ? <div className={cx('CalendarMobile-weekdays')}>\n {this.getDaysOfWeek().map((day: string, index: number) => (\n <span key={day + index} className=\"weekday\">\n {day}\n </span>\n ))}\n </div> : null}\n </div>\n );\n\n const footer = (\n <div className={cx('CalendarMobile-footer')}>\n {timeFormat && startDate && this.renderMobileTimePicker()}\n <div className={cx('CalendarMobile-footer-toolbar')}>\n <div className={cx('CalendarMobile-footer-ranges')}>\n {footerExtra}\n </div>\n {confirm && !embed && <a\n className={cx('Button', 'Button--primary', 'date-range-confirm', {\n 'is-disabled': !startDate || !endDate\n })}\n onClick={confirm}\n >\n {__('confirm')}\n </a>}\n </div>\n </div>\n );\n\n return (\n <div className={cx('CalendarMobile',\n embed ? 'CalendarMobile-embed' : '',\n className)}>\n <div className={cx('CalendarMobile-wrap')}>\n {header}\n {this.renderMobileCalendarBody()}\n {footer}\n </div>\n {showToast? <div className={cx('CalendarMobile-toast')}>{__('Calendar.toast')}</div> : null}\n </div>\n );\n }\n};\n\nexport default themeable(localeable(CalendarMobile));"
12
+ ]
13
+ }