UNPKG

2.59 kBJavaScriptView Raw
1import _extends from 'babel-runtime/helpers/extends';
2import moment from 'moment';
3
4var defaultDisabledTime = {
5 disabledHours: function disabledHours() {
6 return [];
7 },
8 disabledMinutes: function disabledMinutes() {
9 return [];
10 },
11 disabledSeconds: function disabledSeconds() {
12 return [];
13 }
14};
15
16export function getTodayTime(value) {
17 var today = moment();
18 today.locale(value.locale()).utcOffset(value.utcOffset());
19 return today;
20}
21
22export function getTitleString(value) {
23 return value.format('LL');
24}
25
26export function getTodayTimeStr(value) {
27 var today = getTodayTime(value);
28 return getTitleString(today);
29}
30
31export function getMonthName(month) {
32 var locale = month.locale();
33 var localeData = month.localeData();
34 return localeData[locale === 'zh-cn' ? 'months' : 'monthsShort'](month);
35}
36
37export function syncTime(from, to) {
38 if (!moment.isMoment(from) || !moment.isMoment(to)) return;
39 to.hour(from.hour());
40 to.minute(from.minute());
41 to.second(from.second());
42 to.millisecond(from.millisecond());
43}
44
45export function getTimeConfig(value, disabledTime) {
46 var disabledTimeConfig = disabledTime ? disabledTime(value) : {};
47 disabledTimeConfig = _extends({}, defaultDisabledTime, disabledTimeConfig);
48 return disabledTimeConfig;
49}
50
51export function isTimeValidByConfig(value, disabledTimeConfig) {
52 var invalidTime = false;
53 if (value) {
54 var hour = value.hour();
55 var minutes = value.minute();
56 var seconds = value.second();
57 var disabledHours = disabledTimeConfig.disabledHours();
58 if (disabledHours.indexOf(hour) === -1) {
59 var disabledMinutes = disabledTimeConfig.disabledMinutes(hour);
60 if (disabledMinutes.indexOf(minutes) === -1) {
61 var disabledSeconds = disabledTimeConfig.disabledSeconds(hour, minutes);
62 invalidTime = disabledSeconds.indexOf(seconds) !== -1;
63 } else {
64 invalidTime = true;
65 }
66 } else {
67 invalidTime = true;
68 }
69 }
70 return !invalidTime;
71}
72
73export function isTimeValid(value, disabledTime) {
74 var disabledTimeConfig = getTimeConfig(value, disabledTime);
75 return isTimeValidByConfig(value, disabledTimeConfig);
76}
77
78export function isAllowedDate(value, disabledDate, disabledTime) {
79 if (disabledDate) {
80 if (disabledDate(value)) {
81 return false;
82 }
83 }
84 if (disabledTime) {
85 if (!isTimeValid(value, disabledTime)) {
86 return false;
87 }
88 }
89 return true;
90}
91
92export function formatDate(value, format) {
93 if (!value) {
94 return '';
95 }
96
97 if (Array.isArray(format)) {
98 format = format[0];
99 }
100
101 return value.format(format);
102}
\No newline at end of file