cy-element-ui 1.0.8 → 1.0.10
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.
- package/lib/alert.js +2 -2
- package/lib/aside.js +76 -76
- package/lib/autocomplete.js +61 -75
- package/lib/avatar.js +2 -2
- package/lib/backtop.js +109 -109
- package/lib/badge.js +2 -2
- package/lib/breadcrumb-item.js +4 -4
- package/lib/breadcrumb.js +2 -2
- package/lib/button-group.js +2 -2
- package/lib/calendar.js +391 -452
- package/lib/card.js +2 -2
- package/lib/carousel-item.js +9 -9
- package/lib/carousel.js +25 -25
- package/lib/cascader-panel.js +30 -34
- package/lib/cascader.js +101 -116
- package/lib/checkbox-button.js +4 -4
- package/lib/checkbox-group.js +2 -2
- package/lib/col.js +2 -2
- package/lib/collapse-item.js +936 -851
- package/lib/collapse.js +2 -2
- package/lib/color-picker.js +62 -76
- package/lib/container.js +2 -2
- package/lib/date-picker.js +450 -474
- package/lib/descriptions-item.js +2 -2
- package/lib/descriptions.js +4 -4
- package/lib/dialog.js +5 -9
- package/lib/divider.js +105 -105
- package/lib/drawer.js +109 -109
- package/lib/dropdown-item.js +2 -2
- package/lib/dropdown-menu.js +65 -65
- package/lib/dropdown.js +1206 -1112
- package/lib/element-ui.common.js +43826 -48176
- package/lib/empty.js +6 -20
- package/lib/fileUpload.js +62 -77
- package/lib/footer.js +76 -76
- package/lib/form-item.js +7 -21
- package/lib/form.js +11 -11
- package/lib/header.js +2 -2
- package/lib/icon.js +2 -2
- package/lib/image.js +22 -36
- package/lib/index.js +1 -1
- package/lib/infinite-scroll.js +8 -8
- package/lib/input-number.js +5 -9
- package/lib/link.js +2 -2
- package/lib/loading.js +33 -33
- package/lib/main.js +65 -65
- package/lib/menu-item-group.js +2 -2
- package/lib/menu-item.js +63 -78
- package/lib/menu.js +2 -16
- package/lib/message-box.js +22 -36
- package/lib/message.js +8 -22
- package/lib/notification.js +8 -22
- package/lib/option-group.js +2 -2
- package/lib/option.js +14 -18
- package/lib/page-header.js +109 -109
- package/lib/pagination.js +100 -114
- package/lib/popconfirm.js +59 -74
- package/lib/popover.js +52 -56
- package/lib/progress.js +4 -4
- package/lib/radio-button.js +4 -4
- package/lib/radio-group.js +4 -4
- package/lib/radio.js +2 -2
- package/lib/rate.js +18 -18
- package/lib/result.js +2 -2
- package/lib/row.js +2 -2
- package/lib/scrollbar.js +6 -6
- package/lib/select.js +82 -86
- package/lib/skeleton-item.js +2 -2
- package/lib/skeleton.js +107 -107
- package/lib/slider.js +72 -86
- package/lib/spinner.js +2 -2
- package/lib/step.js +2 -2
- package/lib/steps.js +9 -9
- package/lib/subTitle.js +91 -91
- package/lib/submenu.js +250 -250
- package/lib/switch.js +883 -811
- package/lib/tab-pane.js +2 -2
- package/lib/tabDialog.js +19 -33
- package/lib/table-column.js +13 -13
- package/lib/table.js +96 -110
- package/lib/tabs.js +8 -22
- package/lib/tag.js +2 -2
- package/lib/theme-chalk/src/index.scss +0 -1
- package/lib/time-picker.js +450 -474
- package/lib/time-select.js +437 -461
- package/lib/timeline-item.js +107 -107
- package/lib/timeline.js +2 -2
- package/lib/tooltip.js +54 -55
- package/lib/transfer.js +15 -29
- package/lib/tree.js +22 -36
- package/lib/treeSelect.js +58 -73
- package/lib/upload.js +28 -32
- package/lib/utils/date.js +10 -3
- package/lib/utils/date_source.js +290 -304
- package/lib/utils/lodash_source.js +9290 -9290
- package/package.json +1 -1
- package/packages/theme-chalk/src/index.scss +0 -1
- package/src/index.js +1 -4
- package/src/utils/date.js +2 -2
- package/src/utils/date_source.js +305 -321
- package/src/utils/lodash_source.js +18079 -18064
- package/lib/statistic.js +0 -10484
- package/lib/theme-chalk/src/statistic.scss +0 -38
- package/packages/statistic/index.js +0 -8
- package/packages/statistic/src/main.vue +0 -203
- package/packages/theme-chalk/src/statistic.scss +0 -38
- package/types/statistic.d.ts +0 -37
package/lib/utils/date_source.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.default = void 0;
|
|
3
5
|
/* Modified from https://github.com/taylorhakes/fecha
|
|
4
6
|
*
|
|
5
7
|
* The MIT License (MIT)
|
|
@@ -27,323 +29,307 @@
|
|
|
27
29
|
|
|
28
30
|
/*eslint-disable*/
|
|
29
31
|
// 把 YYYY-MM-DD 改成了 yyyy-MM-dd
|
|
30
|
-
(function (main) {
|
|
31
|
-
'use strict';
|
|
32
32
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
33
|
+
/**
|
|
34
|
+
* Parse or format dates
|
|
35
|
+
* @class fecha
|
|
36
|
+
*/
|
|
37
|
+
var fecha = {};
|
|
38
|
+
var token = /d{1,4}|M{1,4}|yy(?:yy)?|S{1,3}|Do|ZZ|([HhMsDm])\1?|[aA]|"[^"]*"|'[^']*'/g;
|
|
39
|
+
var twoDigits = '\\d\\d?';
|
|
40
|
+
var threeDigits = '\\d{3}';
|
|
41
|
+
var fourDigits = '\\d{4}';
|
|
42
|
+
var word = '[^\\s]+';
|
|
43
|
+
var literal = /\[([^]*?)\]/gm;
|
|
44
|
+
var noop = function noop() {};
|
|
45
|
+
function regexEscape(str) {
|
|
46
|
+
return str.replace(/[|\\{()[^$+*?.-]/g, '\\$&');
|
|
47
|
+
}
|
|
48
|
+
function shorten(arr, sLen) {
|
|
49
|
+
var newArr = [];
|
|
50
|
+
for (var i = 0, len = arr.length; i < len; i++) {
|
|
51
|
+
newArr.push(arr[i].substr(0, sLen));
|
|
47
52
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
53
|
+
return newArr;
|
|
54
|
+
}
|
|
55
|
+
function monthUpdate(arrName) {
|
|
56
|
+
return function (d, v, i18n) {
|
|
57
|
+
var index = i18n[arrName].indexOf(v.charAt(0).toUpperCase() + v.substr(1).toLowerCase());
|
|
58
|
+
if (~index) {
|
|
59
|
+
d.month = index;
|
|
52
60
|
}
|
|
53
|
-
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
function pad(val, len) {
|
|
64
|
+
val = String(val);
|
|
65
|
+
len = len || 2;
|
|
66
|
+
while (val.length < len) {
|
|
67
|
+
val = '0' + val;
|
|
54
68
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
69
|
+
return val;
|
|
70
|
+
}
|
|
71
|
+
var dayNames = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
|
|
72
|
+
var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
|
|
73
|
+
var monthNamesShort = shorten(monthNames, 3);
|
|
74
|
+
var dayNamesShort = shorten(dayNames, 3);
|
|
75
|
+
fecha.i18n = {
|
|
76
|
+
dayNamesShort: dayNamesShort,
|
|
77
|
+
dayNames: dayNames,
|
|
78
|
+
monthNamesShort: monthNamesShort,
|
|
79
|
+
monthNames: monthNames,
|
|
80
|
+
amPm: ['am', 'pm'],
|
|
81
|
+
DoFn: function DoFn(D) {
|
|
82
|
+
return D + ['th', 'st', 'nd', 'rd'][D % 10 > 3 ? 0 : (D - D % 10 !== 10) * D % 10];
|
|
62
83
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return
|
|
84
|
+
};
|
|
85
|
+
var formatFlags = {
|
|
86
|
+
D: function D(dateObj) {
|
|
87
|
+
return dateObj.getDay();
|
|
88
|
+
},
|
|
89
|
+
DD: function DD(dateObj) {
|
|
90
|
+
return pad(dateObj.getDay());
|
|
91
|
+
},
|
|
92
|
+
Do: function Do(dateObj, i18n) {
|
|
93
|
+
return i18n.DoFn(dateObj.getDate());
|
|
94
|
+
},
|
|
95
|
+
d: function d(dateObj) {
|
|
96
|
+
return dateObj.getDate();
|
|
97
|
+
},
|
|
98
|
+
dd: function dd(dateObj) {
|
|
99
|
+
return pad(dateObj.getDate());
|
|
100
|
+
},
|
|
101
|
+
ddd: function ddd(dateObj, i18n) {
|
|
102
|
+
return i18n.dayNamesShort[dateObj.getDay()];
|
|
103
|
+
},
|
|
104
|
+
dddd: function dddd(dateObj, i18n) {
|
|
105
|
+
return i18n.dayNames[dateObj.getDay()];
|
|
106
|
+
},
|
|
107
|
+
M: function M(dateObj) {
|
|
108
|
+
return dateObj.getMonth() + 1;
|
|
109
|
+
},
|
|
110
|
+
MM: function MM(dateObj) {
|
|
111
|
+
return pad(dateObj.getMonth() + 1);
|
|
112
|
+
},
|
|
113
|
+
MMM: function MMM(dateObj, i18n) {
|
|
114
|
+
return i18n.monthNamesShort[dateObj.getMonth()];
|
|
115
|
+
},
|
|
116
|
+
MMMM: function MMMM(dateObj, i18n) {
|
|
117
|
+
return i18n.monthNames[dateObj.getMonth()];
|
|
118
|
+
},
|
|
119
|
+
yy: function yy(dateObj) {
|
|
120
|
+
return pad(String(dateObj.getFullYear()), 4).substr(2);
|
|
121
|
+
},
|
|
122
|
+
yyyy: function yyyy(dateObj) {
|
|
123
|
+
return pad(dateObj.getFullYear(), 4);
|
|
124
|
+
},
|
|
125
|
+
h: function h(dateObj) {
|
|
126
|
+
return dateObj.getHours() % 12 || 12;
|
|
127
|
+
},
|
|
128
|
+
hh: function hh(dateObj) {
|
|
129
|
+
return pad(dateObj.getHours() % 12 || 12);
|
|
130
|
+
},
|
|
131
|
+
H: function H(dateObj) {
|
|
132
|
+
return dateObj.getHours();
|
|
133
|
+
},
|
|
134
|
+
HH: function HH(dateObj) {
|
|
135
|
+
return pad(dateObj.getHours());
|
|
136
|
+
},
|
|
137
|
+
m: function m(dateObj) {
|
|
138
|
+
return dateObj.getMinutes();
|
|
139
|
+
},
|
|
140
|
+
mm: function mm(dateObj) {
|
|
141
|
+
return pad(dateObj.getMinutes());
|
|
142
|
+
},
|
|
143
|
+
s: function s(dateObj) {
|
|
144
|
+
return dateObj.getSeconds();
|
|
145
|
+
},
|
|
146
|
+
ss: function ss(dateObj) {
|
|
147
|
+
return pad(dateObj.getSeconds());
|
|
148
|
+
},
|
|
149
|
+
S: function S(dateObj) {
|
|
150
|
+
return Math.round(dateObj.getMilliseconds() / 100);
|
|
151
|
+
},
|
|
152
|
+
SS: function SS(dateObj) {
|
|
153
|
+
return pad(Math.round(dateObj.getMilliseconds() / 10), 2);
|
|
154
|
+
},
|
|
155
|
+
SSS: function SSS(dateObj) {
|
|
156
|
+
return pad(dateObj.getMilliseconds(), 3);
|
|
157
|
+
},
|
|
158
|
+
a: function a(dateObj, i18n) {
|
|
159
|
+
return dateObj.getHours() < 12 ? i18n.amPm[0] : i18n.amPm[1];
|
|
160
|
+
},
|
|
161
|
+
A: function A(dateObj, i18n) {
|
|
162
|
+
return dateObj.getHours() < 12 ? i18n.amPm[0].toUpperCase() : i18n.amPm[1].toUpperCase();
|
|
163
|
+
},
|
|
164
|
+
ZZ: function ZZ(dateObj) {
|
|
165
|
+
var o = dateObj.getTimezoneOffset();
|
|
166
|
+
return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4);
|
|
70
167
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
168
|
+
};
|
|
169
|
+
var parseFlags = {
|
|
170
|
+
d: [twoDigits, function (d, v) {
|
|
171
|
+
d.day = v;
|
|
172
|
+
}],
|
|
173
|
+
Do: [twoDigits + word, function (d, v) {
|
|
174
|
+
d.day = parseInt(v, 10);
|
|
175
|
+
}],
|
|
176
|
+
M: [twoDigits, function (d, v) {
|
|
177
|
+
d.month = v - 1;
|
|
178
|
+
}],
|
|
179
|
+
yy: [twoDigits, function (d, v) {
|
|
180
|
+
var da = new Date(),
|
|
181
|
+
cent = +('' + da.getFullYear()).substr(0, 2);
|
|
182
|
+
d.year = '' + (v > 68 ? cent - 1 : cent) + v;
|
|
183
|
+
}],
|
|
184
|
+
h: [twoDigits, function (d, v) {
|
|
185
|
+
d.hour = v;
|
|
186
|
+
}],
|
|
187
|
+
m: [twoDigits, function (d, v) {
|
|
188
|
+
d.minute = v;
|
|
189
|
+
}],
|
|
190
|
+
s: [twoDigits, function (d, v) {
|
|
191
|
+
d.second = v;
|
|
192
|
+
}],
|
|
193
|
+
yyyy: [fourDigits, function (d, v) {
|
|
194
|
+
d.year = v;
|
|
195
|
+
}],
|
|
196
|
+
S: ['\\d', function (d, v) {
|
|
197
|
+
d.millisecond = v * 100;
|
|
198
|
+
}],
|
|
199
|
+
SS: ['\\d{2}', function (d, v) {
|
|
200
|
+
d.millisecond = v * 10;
|
|
201
|
+
}],
|
|
202
|
+
SSS: [threeDigits, function (d, v) {
|
|
203
|
+
d.millisecond = v;
|
|
204
|
+
}],
|
|
205
|
+
D: [twoDigits, noop],
|
|
206
|
+
ddd: [word, noop],
|
|
207
|
+
MMM: [word, monthUpdate('monthNamesShort')],
|
|
208
|
+
MMMM: [word, monthUpdate('monthNames')],
|
|
209
|
+
a: [word, function (d, v, i18n) {
|
|
210
|
+
var val = v.toLowerCase();
|
|
211
|
+
if (val === i18n.amPm[0]) {
|
|
212
|
+
d.isPm = false;
|
|
213
|
+
} else if (val === i18n.amPm[1]) {
|
|
214
|
+
d.isPm = true;
|
|
83
215
|
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
},
|
|
92
|
-
Do: function Do(dateObj, i18n) {
|
|
93
|
-
return i18n.DoFn(dateObj.getDate());
|
|
94
|
-
},
|
|
95
|
-
d: function d(dateObj) {
|
|
96
|
-
return dateObj.getDate();
|
|
97
|
-
},
|
|
98
|
-
dd: function dd(dateObj) {
|
|
99
|
-
return pad(dateObj.getDate());
|
|
100
|
-
},
|
|
101
|
-
ddd: function ddd(dateObj, i18n) {
|
|
102
|
-
return i18n.dayNamesShort[dateObj.getDay()];
|
|
103
|
-
},
|
|
104
|
-
dddd: function dddd(dateObj, i18n) {
|
|
105
|
-
return i18n.dayNames[dateObj.getDay()];
|
|
106
|
-
},
|
|
107
|
-
M: function M(dateObj) {
|
|
108
|
-
return dateObj.getMonth() + 1;
|
|
109
|
-
},
|
|
110
|
-
MM: function MM(dateObj) {
|
|
111
|
-
return pad(dateObj.getMonth() + 1);
|
|
112
|
-
},
|
|
113
|
-
MMM: function MMM(dateObj, i18n) {
|
|
114
|
-
return i18n.monthNamesShort[dateObj.getMonth()];
|
|
115
|
-
},
|
|
116
|
-
MMMM: function MMMM(dateObj, i18n) {
|
|
117
|
-
return i18n.monthNames[dateObj.getMonth()];
|
|
118
|
-
},
|
|
119
|
-
yy: function yy(dateObj) {
|
|
120
|
-
return pad(String(dateObj.getFullYear()), 4).substr(2);
|
|
121
|
-
},
|
|
122
|
-
yyyy: function yyyy(dateObj) {
|
|
123
|
-
return pad(dateObj.getFullYear(), 4);
|
|
124
|
-
},
|
|
125
|
-
h: function h(dateObj) {
|
|
126
|
-
return dateObj.getHours() % 12 || 12;
|
|
127
|
-
},
|
|
128
|
-
hh: function hh(dateObj) {
|
|
129
|
-
return pad(dateObj.getHours() % 12 || 12);
|
|
130
|
-
},
|
|
131
|
-
H: function H(dateObj) {
|
|
132
|
-
return dateObj.getHours();
|
|
133
|
-
},
|
|
134
|
-
HH: function HH(dateObj) {
|
|
135
|
-
return pad(dateObj.getHours());
|
|
136
|
-
},
|
|
137
|
-
m: function m(dateObj) {
|
|
138
|
-
return dateObj.getMinutes();
|
|
139
|
-
},
|
|
140
|
-
mm: function mm(dateObj) {
|
|
141
|
-
return pad(dateObj.getMinutes());
|
|
142
|
-
},
|
|
143
|
-
s: function s(dateObj) {
|
|
144
|
-
return dateObj.getSeconds();
|
|
145
|
-
},
|
|
146
|
-
ss: function ss(dateObj) {
|
|
147
|
-
return pad(dateObj.getSeconds());
|
|
148
|
-
},
|
|
149
|
-
S: function S(dateObj) {
|
|
150
|
-
return Math.round(dateObj.getMilliseconds() / 100);
|
|
151
|
-
},
|
|
152
|
-
SS: function SS(dateObj) {
|
|
153
|
-
return pad(Math.round(dateObj.getMilliseconds() / 10), 2);
|
|
154
|
-
},
|
|
155
|
-
SSS: function SSS(dateObj) {
|
|
156
|
-
return pad(dateObj.getMilliseconds(), 3);
|
|
157
|
-
},
|
|
158
|
-
a: function a(dateObj, i18n) {
|
|
159
|
-
return dateObj.getHours() < 12 ? i18n.amPm[0] : i18n.amPm[1];
|
|
160
|
-
},
|
|
161
|
-
A: function A(dateObj, i18n) {
|
|
162
|
-
return dateObj.getHours() < 12 ? i18n.amPm[0].toUpperCase() : i18n.amPm[1].toUpperCase();
|
|
163
|
-
},
|
|
164
|
-
ZZ: function ZZ(dateObj) {
|
|
165
|
-
var o = dateObj.getTimezoneOffset();
|
|
166
|
-
return (o > 0 ? '-' : '+') + pad(Math.floor(Math.abs(o) / 60) * 100 + Math.abs(o) % 60, 4);
|
|
216
|
+
}],
|
|
217
|
+
ZZ: ['[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z', function (d, v) {
|
|
218
|
+
var parts = (v + '').match(/([+-]|\d\d)/gi),
|
|
219
|
+
minutes;
|
|
220
|
+
if (parts) {
|
|
221
|
+
minutes = +(parts[1] * 60) + parseInt(parts[2], 10);
|
|
222
|
+
d.timezoneOffset = parts[0] === '+' ? minutes : -minutes;
|
|
167
223
|
}
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
}],
|
|
179
|
-
yy: [twoDigits, function (d, v) {
|
|
180
|
-
var da = new Date(),
|
|
181
|
-
cent = +('' + da.getFullYear()).substr(0, 2);
|
|
182
|
-
d.year = '' + (v > 68 ? cent - 1 : cent) + v;
|
|
183
|
-
}],
|
|
184
|
-
h: [twoDigits, function (d, v) {
|
|
185
|
-
d.hour = v;
|
|
186
|
-
}],
|
|
187
|
-
m: [twoDigits, function (d, v) {
|
|
188
|
-
d.minute = v;
|
|
189
|
-
}],
|
|
190
|
-
s: [twoDigits, function (d, v) {
|
|
191
|
-
d.second = v;
|
|
192
|
-
}],
|
|
193
|
-
yyyy: [fourDigits, function (d, v) {
|
|
194
|
-
d.year = v;
|
|
195
|
-
}],
|
|
196
|
-
S: ['\\d', function (d, v) {
|
|
197
|
-
d.millisecond = v * 100;
|
|
198
|
-
}],
|
|
199
|
-
SS: ['\\d{2}', function (d, v) {
|
|
200
|
-
d.millisecond = v * 10;
|
|
201
|
-
}],
|
|
202
|
-
SSS: [threeDigits, function (d, v) {
|
|
203
|
-
d.millisecond = v;
|
|
204
|
-
}],
|
|
205
|
-
D: [twoDigits, noop],
|
|
206
|
-
ddd: [word, noop],
|
|
207
|
-
MMM: [word, monthUpdate('monthNamesShort')],
|
|
208
|
-
MMMM: [word, monthUpdate('monthNames')],
|
|
209
|
-
a: [word, function (d, v, i18n) {
|
|
210
|
-
var val = v.toLowerCase();
|
|
211
|
-
if (val === i18n.amPm[0]) {
|
|
212
|
-
d.isPm = false;
|
|
213
|
-
} else if (val === i18n.amPm[1]) {
|
|
214
|
-
d.isPm = true;
|
|
215
|
-
}
|
|
216
|
-
}],
|
|
217
|
-
ZZ: ['[^\\s]*?[\\+\\-]\\d\\d:?\\d\\d|[^\\s]*?Z', function (d, v) {
|
|
218
|
-
var parts = (v + '').match(/([+-]|\d\d)/gi),
|
|
219
|
-
minutes;
|
|
220
|
-
if (parts) {
|
|
221
|
-
minutes = +(parts[1] * 60) + parseInt(parts[2], 10);
|
|
222
|
-
d.timezoneOffset = parts[0] === '+' ? minutes : -minutes;
|
|
223
|
-
}
|
|
224
|
-
}]
|
|
225
|
-
};
|
|
226
|
-
parseFlags.dd = parseFlags.d;
|
|
227
|
-
parseFlags.dddd = parseFlags.ddd;
|
|
228
|
-
parseFlags.DD = parseFlags.D;
|
|
229
|
-
parseFlags.mm = parseFlags.m;
|
|
230
|
-
parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;
|
|
231
|
-
parseFlags.MM = parseFlags.M;
|
|
232
|
-
parseFlags.ss = parseFlags.s;
|
|
233
|
-
parseFlags.A = parseFlags.a;
|
|
224
|
+
}]
|
|
225
|
+
};
|
|
226
|
+
parseFlags.dd = parseFlags.d;
|
|
227
|
+
parseFlags.dddd = parseFlags.ddd;
|
|
228
|
+
parseFlags.DD = parseFlags.D;
|
|
229
|
+
parseFlags.mm = parseFlags.m;
|
|
230
|
+
parseFlags.hh = parseFlags.H = parseFlags.HH = parseFlags.h;
|
|
231
|
+
parseFlags.MM = parseFlags.M;
|
|
232
|
+
parseFlags.ss = parseFlags.s;
|
|
233
|
+
parseFlags.A = parseFlags.a;
|
|
234
234
|
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
235
|
+
// Some common format strings
|
|
236
|
+
fecha.masks = {
|
|
237
|
+
default: 'ddd MMM dd yyyy HH:mm:ss',
|
|
238
|
+
shortDate: 'M/D/yy',
|
|
239
|
+
mediumDate: 'MMM d, yyyy',
|
|
240
|
+
longDate: 'MMMM d, yyyy',
|
|
241
|
+
fullDate: 'dddd, MMMM d, yyyy',
|
|
242
|
+
shortTime: 'HH:mm',
|
|
243
|
+
mediumTime: 'HH:mm:ss',
|
|
244
|
+
longTime: 'HH:mm:ss.SSS'
|
|
245
|
+
};
|
|
246
246
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
247
|
+
/***
|
|
248
|
+
* Format a date
|
|
249
|
+
* @method format
|
|
250
|
+
* @param {Date|number} dateObj
|
|
251
|
+
* @param {string} mask Format of the date, i.e. 'mm-dd-yy' or 'shortDate'
|
|
252
|
+
*/
|
|
253
|
+
fecha.format = function (dateObj, mask, i18nSettings) {
|
|
254
|
+
var i18n = i18nSettings || fecha.i18n;
|
|
255
|
+
if (typeof dateObj === 'number') {
|
|
256
|
+
dateObj = new Date(dateObj);
|
|
257
|
+
}
|
|
258
|
+
if (Object.prototype.toString.call(dateObj) !== '[object Date]' || isNaN(dateObj.getTime())) {
|
|
259
|
+
throw new Error('Invalid Date in fecha.format');
|
|
260
|
+
}
|
|
261
|
+
mask = fecha.masks[mask] || mask || fecha.masks['default'];
|
|
262
|
+
var literals = [];
|
|
263
263
|
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
264
|
+
// Make literals inactive by replacing them with ??
|
|
265
|
+
mask = mask.replace(literal, function ($0, $1) {
|
|
266
|
+
literals.push($1);
|
|
267
|
+
return '@@@';
|
|
268
|
+
});
|
|
269
|
+
// Apply formatting rules
|
|
270
|
+
mask = mask.replace(token, function ($0) {
|
|
271
|
+
return $0 in formatFlags ? formatFlags[$0](dateObj, i18n) : $0.slice(1, $0.length - 1);
|
|
272
|
+
});
|
|
273
|
+
// Inline literal values back into the formatted value
|
|
274
|
+
return mask.replace(/@@@/g, function () {
|
|
275
|
+
return literals.shift();
|
|
276
|
+
});
|
|
277
|
+
};
|
|
278
278
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
279
|
+
/**
|
|
280
|
+
* Parse a date string into an object, changes - into /
|
|
281
|
+
* @method parse
|
|
282
|
+
* @param {string} dateStr Date string
|
|
283
|
+
* @param {string} format Date parse format
|
|
284
|
+
* @returns {Date|boolean}
|
|
285
|
+
*/
|
|
286
|
+
fecha.parse = function (dateStr, format, i18nSettings) {
|
|
287
|
+
var i18n = i18nSettings || fecha.i18n;
|
|
288
|
+
if (typeof format !== 'string') {
|
|
289
|
+
throw new Error('Invalid format in fecha.parse');
|
|
290
|
+
}
|
|
291
|
+
format = fecha.masks[format] || format;
|
|
292
292
|
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
}
|
|
311
|
-
return $0;
|
|
312
|
-
});
|
|
313
|
-
newFormat = newFormat.replace(/@@@/g, function () {
|
|
314
|
-
return literals.shift();
|
|
315
|
-
});
|
|
316
|
-
var matches = dateStr.match(new RegExp(newFormat, 'i'));
|
|
317
|
-
if (!matches) {
|
|
318
|
-
return null;
|
|
319
|
-
}
|
|
320
|
-
for (var i = 1; i < matches.length; i++) {
|
|
321
|
-
parseInfo[i - 1](dateInfo, matches[i], i18n);
|
|
322
|
-
}
|
|
323
|
-
var today = new Date();
|
|
324
|
-
if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) {
|
|
325
|
-
dateInfo.hour = +dateInfo.hour + 12;
|
|
326
|
-
} else if (dateInfo.isPm === false && +dateInfo.hour === 12) {
|
|
327
|
-
dateInfo.hour = 0;
|
|
328
|
-
}
|
|
329
|
-
var date;
|
|
330
|
-
if (dateInfo.timezoneOffset != null) {
|
|
331
|
-
dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset;
|
|
332
|
-
date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0));
|
|
333
|
-
} else {
|
|
334
|
-
date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0);
|
|
293
|
+
// Avoid regular expression denial of service, fail early for really long strings
|
|
294
|
+
// https://www.owasp.org/index.php/Regular_expression_Denial_of_Service_-_ReDoS
|
|
295
|
+
if (dateStr.length > 1000) {
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
298
|
+
var dateInfo = {};
|
|
299
|
+
var parseInfo = [];
|
|
300
|
+
var literals = [];
|
|
301
|
+
format = format.replace(literal, function ($0, $1) {
|
|
302
|
+
literals.push($1);
|
|
303
|
+
return '@@@';
|
|
304
|
+
});
|
|
305
|
+
var newFormat = regexEscape(format).replace(token, function ($0) {
|
|
306
|
+
if (parseFlags[$0]) {
|
|
307
|
+
var info = parseFlags[$0];
|
|
308
|
+
parseInfo.push(info[1]);
|
|
309
|
+
return '(' + info[0] + ')';
|
|
335
310
|
}
|
|
336
|
-
return
|
|
337
|
-
};
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
311
|
+
return $0;
|
|
312
|
+
});
|
|
313
|
+
var matches = dateStr.match(new RegExp(newFormat, 'i'));
|
|
314
|
+
if (!matches) {
|
|
315
|
+
return null;
|
|
316
|
+
}
|
|
317
|
+
for (var i = 1; i < matches.length; i++) {
|
|
318
|
+
parseInfo[i - 1](dateInfo, matches[i], i18n);
|
|
319
|
+
}
|
|
320
|
+
var today = new Date();
|
|
321
|
+
if (dateInfo.isPm === true && dateInfo.hour != null && +dateInfo.hour !== 12) {
|
|
322
|
+
dateInfo.hour = +dateInfo.hour + 12;
|
|
323
|
+
} else if (dateInfo.isPm === false && +dateInfo.hour === 12) {
|
|
324
|
+
dateInfo.hour = 0;
|
|
325
|
+
}
|
|
326
|
+
var date;
|
|
327
|
+
if (dateInfo.timezoneOffset != null) {
|
|
328
|
+
dateInfo.minute = +(dateInfo.minute || 0) - +dateInfo.timezoneOffset;
|
|
329
|
+
date = new Date(Date.UTC(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0));
|
|
346
330
|
} else {
|
|
347
|
-
|
|
331
|
+
date = new Date(dateInfo.year || today.getFullYear(), dateInfo.month || 0, dateInfo.day || 1, dateInfo.hour || 0, dateInfo.minute || 0, dateInfo.second || 0, dateInfo.millisecond || 0);
|
|
348
332
|
}
|
|
349
|
-
|
|
333
|
+
return date;
|
|
334
|
+
};
|
|
335
|
+
var _default = exports.default = fecha;
|