1 | 'use strict';
|
2 |
|
3 | exports.__esModule = true;
|
4 | exports.validateRangeInOneMonth = exports.extractTimeFormat = exports.extractDateFormat = exports.nextYear = exports.prevYear = exports.nextMonth = exports.prevMonth = exports.changeYearMonthAndClampDate = exports.timeWithinRange = exports.limitTimeRange = exports.clearMilliseconds = exports.clearTime = exports.modifyWithTimeString = exports.modifyTime = exports.modifyDate = exports.range = exports.getRangeMinutes = exports.getMonthDays = exports.getPrevMonthLastDays = exports.getRangeHours = exports.getWeekNumber = exports.getStartDateOfMonth = exports.nextDate = exports.prevDate = exports.getFirstDayOfMonth = exports.getDayCountOfYear = exports.getDayCountOfMonth = exports.parseDate = exports.formatDate = exports.isDateObject = exports.isDate = exports.toDate = exports.getI18nSettings = undefined;
|
5 |
|
6 | var _date = require('element-ui/lib/utils/date');
|
7 |
|
8 | var _date2 = _interopRequireDefault(_date);
|
9 |
|
10 | var _locale = require('element-ui/lib/locale');
|
11 |
|
12 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
13 |
|
14 | var weeks = ['sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat'];
|
15 | var months = ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec'];
|
16 |
|
17 | var newArray = function newArray(start, end) {
|
18 | var result = [];
|
19 | for (var i = start; i <= end; i++) {
|
20 | result.push(i);
|
21 | }
|
22 | return result;
|
23 | };
|
24 |
|
25 | var getI18nSettings = exports.getI18nSettings = function getI18nSettings() {
|
26 | return {
|
27 | dayNamesShort: weeks.map(function (week) {
|
28 | return (0, _locale.t)('el.datepicker.weeks.' + week);
|
29 | }),
|
30 | dayNames: weeks.map(function (week) {
|
31 | return (0, _locale.t)('el.datepicker.weeks.' + week);
|
32 | }),
|
33 | monthNamesShort: months.map(function (month) {
|
34 | return (0, _locale.t)('el.datepicker.months.' + month);
|
35 | }),
|
36 | monthNames: months.map(function (month, index) {
|
37 | return (0, _locale.t)('el.datepicker.month' + (index + 1));
|
38 | }),
|
39 | amPm: ['am', 'pm']
|
40 | };
|
41 | };
|
42 |
|
43 | var toDate = exports.toDate = function toDate(date) {
|
44 | return isDate(date) ? new Date(date) : null;
|
45 | };
|
46 |
|
47 | var isDate = exports.isDate = function isDate(date) {
|
48 | if (date === null || date === undefined) return false;
|
49 | if (isNaN(new Date(date).getTime())) return false;
|
50 | if (Array.isArray(date)) return false;
|
51 | return true;
|
52 | };
|
53 |
|
54 | var isDateObject = exports.isDateObject = function isDateObject(val) {
|
55 | return val instanceof Date;
|
56 | };
|
57 |
|
58 | var formatDate = exports.formatDate = function formatDate(date, format) {
|
59 | date = toDate(date);
|
60 | if (!date) return '';
|
61 | return _date2.default.format(date, format || 'yyyy-MM-dd', getI18nSettings());
|
62 | };
|
63 |
|
64 | var parseDate = exports.parseDate = function parseDate(string, format) {
|
65 | return _date2.default.parse(string, format || 'yyyy-MM-dd', getI18nSettings());
|
66 | };
|
67 |
|
68 | var getDayCountOfMonth = exports.getDayCountOfMonth = function getDayCountOfMonth(year, month) {
|
69 | if (month === 3 || month === 5 || month === 8 || month === 10) {
|
70 | return 30;
|
71 | }
|
72 |
|
73 | if (month === 1) {
|
74 | if (year % 4 === 0 && year % 100 !== 0 || year % 400 === 0) {
|
75 | return 29;
|
76 | } else {
|
77 | return 28;
|
78 | }
|
79 | }
|
80 |
|
81 | return 31;
|
82 | };
|
83 |
|
84 | var getDayCountOfYear = exports.getDayCountOfYear = function getDayCountOfYear(year) {
|
85 | var isLeapYear = year % 400 === 0 || year % 100 !== 0 && year % 4 === 0;
|
86 | return isLeapYear ? 366 : 365;
|
87 | };
|
88 |
|
89 | var getFirstDayOfMonth = exports.getFirstDayOfMonth = function getFirstDayOfMonth(date) {
|
90 | var temp = new Date(date.getTime());
|
91 | temp.setDate(1);
|
92 | return temp.getDay();
|
93 | };
|
94 |
|
95 |
|
96 |
|
97 |
|
98 | var prevDate = exports.prevDate = function prevDate(date) {
|
99 | var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
100 |
|
101 | return new Date(date.getFullYear(), date.getMonth(), date.getDate() - amount);
|
102 | };
|
103 |
|
104 | var nextDate = exports.nextDate = function nextDate(date) {
|
105 | var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
106 |
|
107 | return new Date(date.getFullYear(), date.getMonth(), date.getDate() + amount);
|
108 | };
|
109 |
|
110 | var getStartDateOfMonth = exports.getStartDateOfMonth = function getStartDateOfMonth(year, month) {
|
111 | var result = new Date(year, month, 1);
|
112 | var day = result.getDay();
|
113 |
|
114 | if (day === 0) {
|
115 | return prevDate(result, 7);
|
116 | } else {
|
117 | return prevDate(result, day);
|
118 | }
|
119 | };
|
120 |
|
121 | var getWeekNumber = exports.getWeekNumber = function getWeekNumber(src) {
|
122 | if (!isDate(src)) return null;
|
123 | var date = new Date(src.getTime());
|
124 | date.setHours(0, 0, 0, 0);
|
125 |
|
126 | date.setDate(date.getDate() + 3 - (date.getDay() + 6) % 7);
|
127 |
|
128 | var week1 = new Date(date.getFullYear(), 0, 4);
|
129 |
|
130 |
|
131 | return 1 + Math.round(((date.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7);
|
132 | };
|
133 |
|
134 | var getRangeHours = exports.getRangeHours = function getRangeHours(ranges) {
|
135 | var hours = [];
|
136 | var disabledHours = [];
|
137 |
|
138 | (ranges || []).forEach(function (range) {
|
139 | var value = range.map(function (date) {
|
140 | return date.getHours();
|
141 | });
|
142 |
|
143 | disabledHours = disabledHours.concat(newArray(value[0], value[1]));
|
144 | });
|
145 |
|
146 | if (disabledHours.length) {
|
147 | for (var i = 0; i < 24; i++) {
|
148 | hours[i] = disabledHours.indexOf(i) === -1;
|
149 | }
|
150 | } else {
|
151 | for (var _i = 0; _i < 24; _i++) {
|
152 | hours[_i] = false;
|
153 | }
|
154 | }
|
155 |
|
156 | return hours;
|
157 | };
|
158 |
|
159 | var getPrevMonthLastDays = exports.getPrevMonthLastDays = function getPrevMonthLastDays(date, amount) {
|
160 | if (amount <= 0) return [];
|
161 | var temp = new Date(date.getTime());
|
162 | temp.setDate(0);
|
163 | var lastDay = temp.getDate();
|
164 | return range(amount).map(function (_, index) {
|
165 | return lastDay - (amount - index - 1);
|
166 | });
|
167 | };
|
168 |
|
169 | var getMonthDays = exports.getMonthDays = function getMonthDays(date) {
|
170 | var temp = new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
171 | var days = temp.getDate();
|
172 | return range(days).map(function (_, index) {
|
173 | return index + 1;
|
174 | });
|
175 | };
|
176 |
|
177 | function setRangeData(arr, start, end, value) {
|
178 | for (var i = start; i < end; i++) {
|
179 | arr[i] = value;
|
180 | }
|
181 | }
|
182 |
|
183 | var getRangeMinutes = exports.getRangeMinutes = function getRangeMinutes(ranges, hour) {
|
184 | var minutes = new Array(60);
|
185 |
|
186 | if (ranges.length > 0) {
|
187 | ranges.forEach(function (range) {
|
188 | var start = range[0];
|
189 | var end = range[1];
|
190 | var startHour = start.getHours();
|
191 | var startMinute = start.getMinutes();
|
192 | var endHour = end.getHours();
|
193 | var endMinute = end.getMinutes();
|
194 | if (startHour === hour && endHour !== hour) {
|
195 | setRangeData(minutes, startMinute, 60, true);
|
196 | } else if (startHour === hour && endHour === hour) {
|
197 | setRangeData(minutes, startMinute, endMinute + 1, true);
|
198 | } else if (startHour !== hour && endHour === hour) {
|
199 | setRangeData(minutes, 0, endMinute + 1, true);
|
200 | } else if (startHour < hour && endHour > hour) {
|
201 | setRangeData(minutes, 0, 60, true);
|
202 | }
|
203 | });
|
204 | } else {
|
205 | setRangeData(minutes, 0, 60, true);
|
206 | }
|
207 | return minutes;
|
208 | };
|
209 |
|
210 | var range = exports.range = function range(n) {
|
211 |
|
212 | return Array.apply(null, { length: n }).map(function (_, n) {
|
213 | return n;
|
214 | });
|
215 | };
|
216 |
|
217 | var modifyDate = exports.modifyDate = function modifyDate(date, y, m, d) {
|
218 | return new Date(y, m, d, date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());
|
219 | };
|
220 |
|
221 | var modifyTime = exports.modifyTime = function modifyTime(date, h, m, s) {
|
222 | return new Date(date.getFullYear(), date.getMonth(), date.getDate(), h, m, s, date.getMilliseconds());
|
223 | };
|
224 |
|
225 | var modifyWithTimeString = exports.modifyWithTimeString = function modifyWithTimeString(date, time) {
|
226 | if (date == null || !time) {
|
227 | return date;
|
228 | }
|
229 | time = parseDate(time, 'HH:mm:ss');
|
230 | return modifyTime(date, time.getHours(), time.getMinutes(), time.getSeconds());
|
231 | };
|
232 |
|
233 | var clearTime = exports.clearTime = function clearTime(date) {
|
234 | return new Date(date.getFullYear(), date.getMonth(), date.getDate());
|
235 | };
|
236 |
|
237 | var clearMilliseconds = exports.clearMilliseconds = function clearMilliseconds(date) {
|
238 | return new Date(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), 0);
|
239 | };
|
240 |
|
241 | var limitTimeRange = exports.limitTimeRange = function limitTimeRange(date, ranges) {
|
242 | var format = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'HH:mm:ss';
|
243 |
|
244 |
|
245 | if (ranges.length === 0) return date;
|
246 | var normalizeDate = function normalizeDate(date) {
|
247 | return _date2.default.parse(_date2.default.format(date, format), format);
|
248 | };
|
249 | var ndate = normalizeDate(date);
|
250 | var nranges = ranges.map(function (range) {
|
251 | return range.map(normalizeDate);
|
252 | });
|
253 | if (nranges.some(function (nrange) {
|
254 | return ndate >= nrange[0] && ndate <= nrange[1];
|
255 | })) return date;
|
256 |
|
257 | var minDate = nranges[0][0];
|
258 | var maxDate = nranges[0][0];
|
259 |
|
260 | nranges.forEach(function (nrange) {
|
261 | minDate = new Date(Math.min(nrange[0], minDate));
|
262 | maxDate = new Date(Math.max(nrange[1], minDate));
|
263 | });
|
264 |
|
265 | var ret = ndate < minDate ? minDate : maxDate;
|
266 |
|
267 | return modifyDate(ret, date.getFullYear(), date.getMonth(), date.getDate());
|
268 | };
|
269 |
|
270 | var timeWithinRange = exports.timeWithinRange = function timeWithinRange(date, selectableRange, format) {
|
271 | var limitedDate = limitTimeRange(date, selectableRange, format);
|
272 | return limitedDate.getTime() === date.getTime();
|
273 | };
|
274 |
|
275 | var changeYearMonthAndClampDate = exports.changeYearMonthAndClampDate = function changeYearMonthAndClampDate(date, year, month) {
|
276 |
|
277 |
|
278 | var monthDate = Math.min(date.getDate(), getDayCountOfMonth(year, month));
|
279 | return modifyDate(date, year, month, monthDate);
|
280 | };
|
281 |
|
282 | var prevMonth = exports.prevMonth = function prevMonth(date) {
|
283 | var year = date.getFullYear();
|
284 | var month = date.getMonth();
|
285 | return month === 0 ? changeYearMonthAndClampDate(date, year - 1, 11) : changeYearMonthAndClampDate(date, year, month - 1);
|
286 | };
|
287 |
|
288 | var nextMonth = exports.nextMonth = function nextMonth(date) {
|
289 | var year = date.getFullYear();
|
290 | var month = date.getMonth();
|
291 | return month === 11 ? changeYearMonthAndClampDate(date, year + 1, 0) : changeYearMonthAndClampDate(date, year, month + 1);
|
292 | };
|
293 |
|
294 | var prevYear = exports.prevYear = function prevYear(date) {
|
295 | var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
296 |
|
297 | var year = date.getFullYear();
|
298 | var month = date.getMonth();
|
299 | return changeYearMonthAndClampDate(date, year - amount, month);
|
300 | };
|
301 |
|
302 | var nextYear = exports.nextYear = function nextYear(date) {
|
303 | var amount = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
|
304 |
|
305 | var year = date.getFullYear();
|
306 | var month = date.getMonth();
|
307 | return changeYearMonthAndClampDate(date, year + amount, month);
|
308 | };
|
309 |
|
310 | var extractDateFormat = exports.extractDateFormat = function extractDateFormat(format) {
|
311 | return format.replace(/\W?m{1,2}|\W?ZZ/g, '').replace(/\W?h{1,2}|\W?s{1,3}|\W?a/gi, '').trim();
|
312 | };
|
313 |
|
314 | var extractTimeFormat = exports.extractTimeFormat = function extractTimeFormat(format) {
|
315 | return format.replace(/\W?D{1,2}|\W?Do|\W?d{1,4}|\W?M{1,4}|\W?y{2,4}/g, '').trim();
|
316 | };
|
317 |
|
318 | var validateRangeInOneMonth = exports.validateRangeInOneMonth = function validateRangeInOneMonth(start, end) {
|
319 | return start.getMonth() === end.getMonth() && start.getFullYear() === end.getFullYear();
|
320 | }; |
\ | No newline at end of file |