shineout
Version:
Shein 前端组件库
147 lines (124 loc) • 4.44 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
exports.__esModule = true;
exports.default = void 0;
var _utils = _interopRequireDefault(require("./utils"));
var TIME_FORMAT = _utils.default.TIME_FORMAT,
compareAsc = _utils.default.compareAsc,
format = _utils.default.format;
var handleOnChangeParams = function handleOnChangeParams(type) {
return function (date, change, blur, isEnd, isQuickSelect) {
return [date, change, blur, isEnd, isQuickSelect, type];
};
};
var yearHandleChangeParams = handleOnChangeParams('year');
var monthHandleChangeParams = handleOnChangeParams('month');
var quarterHandleChangeParams = handleOnChangeParams('quarter');
var dayHandleChangeParams = handleOnChangeParams('day');
var weekHandleChangeParams = handleOnChangeParams('week');
var timeHandleChangeParams = handleOnChangeParams('time');
var quickHandleChangeParams = handleOnChangeParams('quick');
function handleTimeDisabled(date, disabledTime, options) {
if (typeof disabledTime === 'string') return format(date, TIME_FORMAT, options) === disabledTime;
if (typeof disabledTime === 'function') return disabledTime(format(date, TIME_FORMAT, options));
return undefined;
}
function handleDisabled(params) {
var date = params.date,
min = params.min,
max = params.max,
range = params.range,
disabled = params.disabled,
disabledTime = params.disabledTime,
options = params.options,
index = params.index,
rangeDate = params.rangeDate;
var isDisabled;
if (disabled && typeof disabled === 'function') isDisabled = disabled(date);
if (disabledTime) isDisabled = isDisabled || handleTimeDisabled(date, disabledTime);
if (isDisabled) return true;
if (!isDisabled && min) {
if (compareAsc(date, min) < 0) return true;
}
if (!isDisabled && max) {
if (compareAsc(date, max) > 0) return true;
}
if (!isDisabled && index === 1 && rangeDate && rangeDate[0]) {
if (typeof range === 'number' && _utils.default.compareAsc(date, _utils.default.addSeconds(rangeDate[0], range, options)) > 0) {
return true;
}
}
return false;
}
function judgeTimeByRange(params) {
var target = params.target,
value = params.value,
mode = params.mode,
min = params.min,
max = params.max,
range = params.range,
disabled = params.disabled,
disabledTime = params.disabledTime,
index = params.index,
rangeDate = params.rangeDate,
options = params.options;
var date = new Date(value.getTime());
switch (mode) {
case 'H':
date = _utils.default.changeDate(date, 'hour', target, options);
break;
case 'h':
if (_utils.default.getDateInfo(date, 'hour', options) >= 12) {
date = _utils.default.changeDate(date, 'hour', target + 12, options);
break;
}
date = _utils.default.changeDate(date, 'hour', target, options);
break;
case 'm':
case 'minute':
date = _utils.default.changeDate(date, 'minute', target, options);
break;
case 's':
case 'second':
date = _utils.default.changeDate(date, 'second', target, options);
break;
case 'ampm':
{
var hours = _utils.default.getDateInfo(date, 'hour', options);
if (target === 1 && hours < 12) {
date = _utils.default.changeDate(date, 'hour', hours + 12, options);
} else if (target === 0 && hours >= 12) {
date = _utils.default.changeDate(date, 'hour', hours - 12, options);
}
}
break;
default:
break;
}
var isDisabled = handleDisabled({
date: date,
min: min,
max: max,
range: range,
disabled: disabled,
disabledTime: disabledTime,
options: options,
index: index,
rangeDate: rangeDate
});
return [isDisabled, date];
}
var _default = {
handleOnChangeParams: handleOnChangeParams,
yearHandleChangeParams: yearHandleChangeParams,
monthHandleChangeParams: monthHandleChangeParams,
dayHandleChangeParams: dayHandleChangeParams,
timeHandleChangeParams: timeHandleChangeParams,
quickHandleChangeParams: quickHandleChangeParams,
weekHandleChangeParams: weekHandleChangeParams,
quarterHandleChangeParams: quarterHandleChangeParams,
judgeTimeByRange: judgeTimeByRange,
handleTimeDisabled: handleTimeDisabled,
handleDisabled: handleDisabled
};
exports.default = _default;