1 | 'use strict';
|
2 |
|
3 | exports.__esModule = true;
|
4 | exports.DEFAULT_TIME_FORMAT = exports.PANEL = undefined;
|
5 | exports.isFunction = isFunction;
|
6 | exports.resetValueTime = resetValueTime;
|
7 | exports.formatDateValue = formatDateValue;
|
8 | exports.checkDateValue = checkDateValue;
|
9 | exports.getDateTimeFormat = getDateTimeFormat;
|
10 | exports.extend = extend;
|
11 | exports.onDateKeydown = onDateKeydown;
|
12 | exports.onTimeKeydown = onTimeKeydown;
|
13 |
|
14 | var _moment = require('moment');
|
15 |
|
16 | var _moment2 = _interopRequireDefault(_moment);
|
17 |
|
18 | var _util = require('../../util');
|
19 |
|
20 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
21 |
|
22 | var PANEL = exports.PANEL = {
|
23 | TIME: 'time-panel',
|
24 | DATE: 'date-panel'
|
25 | };
|
26 |
|
27 | var DEFAULT_TIME_FORMAT = exports.DEFAULT_TIME_FORMAT = 'HH:mm:ss';
|
28 |
|
29 | function isFunction(obj) {
|
30 | return !!(obj && obj.constructor && obj.call && obj.apply);
|
31 | }
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 |
|
38 | function resetValueTime(source, target) {
|
39 | if (!_moment2.default.isMoment(source) || !_moment2.default.isMoment(target)) {
|
40 | return source;
|
41 | }
|
42 | return source.clone().hour(target.hour()).minute(target.minute()).second(target.second());
|
43 | }
|
44 |
|
45 | function formatDateValue(value, format) {
|
46 | var val = typeof value === 'string' ? (0, _moment2.default)(value, format, false) : value;
|
47 | if (val && _moment2.default.isMoment(val) && val.isValid()) {
|
48 | return val;
|
49 | }
|
50 |
|
51 | return null;
|
52 | }
|
53 |
|
54 | function checkDateValue(props, propName, componentName) {
|
55 |
|
56 | if (props[propName] && !_moment2.default.isMoment(props[propName]) && typeof props[propName] !== 'string') {
|
57 | return new Error('Invalid prop ' + propName + ' supplied to ' + componentName + '. Required a moment object or format date string!');
|
58 | }
|
59 | }
|
60 |
|
61 | function getDateTimeFormat(format, showTime, type) {
|
62 | if (!format && type) {
|
63 | format = {
|
64 | date: 'YYYY-MM-DD',
|
65 | month: 'YYYY-MM',
|
66 | year: 'YYYY',
|
67 | time: ''
|
68 | }[type];
|
69 | }
|
70 | var timeFormat = showTime ? showTime.format || DEFAULT_TIME_FORMAT : '';
|
71 | var dateTimeFormat = timeFormat ? format + ' ' + timeFormat : format;
|
72 | return {
|
73 | format: format,
|
74 | timeFormat: timeFormat,
|
75 | dateTimeFormat: dateTimeFormat
|
76 | };
|
77 | }
|
78 |
|
79 | function extend(source, target) {
|
80 | for (var key in source) {
|
81 | if (source.hasOwnProperty(key)) {
|
82 | target[key] = source[key];
|
83 | }
|
84 | }
|
85 | return target;
|
86 | }
|
87 |
|
88 |
|
89 |
|
90 |
|
91 |
|
92 |
|
93 |
|
94 | function onDateKeydown(e, _ref, type) {
|
95 | var format = _ref.format,
|
96 | dateInputStr = _ref.dateInputStr,
|
97 | value = _ref.value;
|
98 |
|
99 | if ([_util.KEYCODE.UP, _util.KEYCODE.DOWN, _util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1) {
|
100 | return;
|
101 | }
|
102 |
|
103 | if (e.altKey && [_util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1 || e.controlKey || e.shiftKey) {
|
104 | return;
|
105 | }
|
106 |
|
107 | var date = (0, _moment2.default)(dateInputStr, format, true);
|
108 |
|
109 | if (date.isValid()) {
|
110 | var stepUnit = e.altKey ? 'year' : 'month';
|
111 | switch (e.keyCode) {
|
112 | case _util.KEYCODE.UP:
|
113 | date.subtract(1, type);
|
114 | break;
|
115 | case _util.KEYCODE.DOWN:
|
116 | date.add(1, type);
|
117 | break;
|
118 | case _util.KEYCODE.PAGE_UP:
|
119 | date.subtract(1, stepUnit);
|
120 | break;
|
121 | case _util.KEYCODE.PAGE_DOWN:
|
122 | date.add(1, stepUnit);
|
123 | break;
|
124 | }
|
125 | } else if (value) {
|
126 | date = value.clone();
|
127 | } else {
|
128 | date = (0, _moment2.default)();
|
129 | }
|
130 |
|
131 | e.preventDefault();
|
132 | return date.format(format);
|
133 | }
|
134 |
|
135 |
|
136 |
|
137 |
|
138 |
|
139 |
|
140 |
|
141 | function onTimeKeydown(e, _ref2, type) {
|
142 | var format = _ref2.format,
|
143 | timeInputStr = _ref2.timeInputStr,
|
144 | steps = _ref2.steps,
|
145 | value = _ref2.value;
|
146 |
|
147 | if ([_util.KEYCODE.UP, _util.KEYCODE.DOWN, _util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1) return;
|
148 | if (e.altKey && [_util.KEYCODE.PAGE_UP, _util.KEYCODE.PAGE_DOWN].indexOf(e.keyCode) === -1 || e.controlKey || e.shiftKey) return;
|
149 |
|
150 | var time = (0, _moment2.default)(timeInputStr, format, true);
|
151 |
|
152 | if (time.isValid()) {
|
153 | var stepUnit = e.altKey ? 'hour' : 'minute';
|
154 | switch (e.keyCode) {
|
155 | case _util.KEYCODE.UP:
|
156 | time.subtract(steps[type], type);
|
157 | break;
|
158 | case _util.KEYCODE.DOWN:
|
159 | time.add(steps[type], type);
|
160 | break;
|
161 | case _util.KEYCODE.PAGE_UP:
|
162 | time.subtract(steps[stepUnit], stepUnit);
|
163 | break;
|
164 | case _util.KEYCODE.PAGE_DOWN:
|
165 | time.add(steps[stepUnit], stepUnit);
|
166 | break;
|
167 | }
|
168 | } else if (value) {
|
169 | time = value.clone();
|
170 | } else {
|
171 | time = (0, _moment2.default)().hours(0).minutes(0).seconds(0);
|
172 | }
|
173 |
|
174 | e.preventDefault();
|
175 | return time.format(format);
|
176 | } |
\ | No newline at end of file |