NuclearDispersionSystem/ant-design-vue-jeecg/node_modules/ant-design-vue/lib/date-picker/wrapPicker.js

272 lines
9.0 KiB
JavaScript
Raw Normal View History

2023-09-14 14:47:11 +08:00
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = require('babel-runtime/helpers/defineProperty');
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
exports['default'] = wrapPicker;
var _Panel = require('../vc-time-picker/Panel');
var _Panel2 = _interopRequireDefault(_Panel);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _LocaleReceiver = require('../locale-provider/LocaleReceiver');
var _LocaleReceiver2 = _interopRequireDefault(_LocaleReceiver);
var _timePicker = require('../time-picker');
var _en_US = require('./locale/en_US');
var _en_US2 = _interopRequireDefault(_en_US);
var _propsUtil = require('../_util/props-util');
var _configConsumerProps = require('../config-provider/configConsumerProps');
var _momentUtil = require('../_util/moment-util');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var DEFAULT_FORMAT = {
date: 'YYYY-MM-DD',
dateTime: 'YYYY-MM-DD HH:mm:ss',
week: 'gggg-wo',
month: 'YYYY-MM'
};
var LOCALE_FORMAT_MAPPING = {
date: 'dateFormat',
dateTime: 'dateTimeFormat',
week: 'weekFormat',
month: 'monthFormat'
};
function getColumns(_ref) {
var showHour = _ref.showHour,
showMinute = _ref.showMinute,
showSecond = _ref.showSecond,
use12Hours = _ref.use12Hours;
var column = 0;
if (showHour) {
column += 1;
}
if (showMinute) {
column += 1;
}
if (showSecond) {
column += 1;
}
if (use12Hours) {
column += 1;
}
return column;
}
function wrapPicker(Picker, props, pickerType) {
return {
name: Picker.name,
props: (0, _propsUtil.initDefaultProps)(props, {
transitionName: 'slide-up',
popupStyle: {},
locale: {}
}),
model: {
prop: 'value',
event: 'change'
},
inject: {
configProvider: { 'default': function _default() {
return _configConsumerProps.ConfigConsumerProps;
} }
},
provide: function provide() {
return {
savePopupRef: this.savePopupRef
};
},
mounted: function mounted() {
var _this = this;
var autoFocus = this.autoFocus,
disabled = this.disabled,
value = this.value,
defaultValue = this.defaultValue,
valueFormat = this.valueFormat;
(0, _momentUtil.checkValidate)('DatePicker', defaultValue, 'defaultValue', valueFormat);
(0, _momentUtil.checkValidate)('DatePicker', value, 'value', valueFormat);
if (autoFocus && !disabled) {
this.$nextTick(function () {
_this.focus();
});
}
},
watch: {
value: function value(val) {
(0, _momentUtil.checkValidate)('DatePicker', val, 'value', this.valueFormat);
}
},
methods: {
getDefaultLocale: function getDefaultLocale() {
var result = (0, _extends3['default'])({}, _en_US2['default'], this.locale);
result.lang = (0, _extends3['default'])({}, result.lang, (this.locale || {}).lang);
return result;
},
savePopupRef: function savePopupRef(ref) {
this.popupRef = ref;
},
handleOpenChange: function handleOpenChange(open) {
this.$emit('openChange', open);
},
handleFocus: function handleFocus(e) {
this.$emit('focus', e);
},
handleBlur: function handleBlur(e) {
this.$emit('blur', e);
},
handleMouseEnter: function handleMouseEnter(e) {
this.$emit('mouseenter', e);
},
handleMouseLeave: function handleMouseLeave(e) {
this.$emit('mouseleave', e);
},
handleChange: function handleChange(date, dateString) {
this.$emit('change', this.valueFormat ? (0, _momentUtil.momentToString)(date, this.valueFormat) : date, dateString);
},
handleOk: function handleOk(val) {
this.$emit('ok', this.valueFormat ? (0, _momentUtil.momentToString)(val, this.valueFormat) : val);
},
handleCalendarChange: function handleCalendarChange(date, dateString) {
this.$emit('calendarChange', this.valueFormat ? (0, _momentUtil.momentToString)(date, this.valueFormat) : date, dateString);
},
focus: function focus() {
this.$refs.picker.focus();
},
blur: function blur() {
this.$refs.picker.blur();
},
transformValue: function transformValue(props) {
if ('value' in props) {
props.value = (0, _momentUtil.stringToMoment)(props.value, this.valueFormat);
}
if ('defaultValue' in props) {
props.defaultValue = (0, _momentUtil.stringToMoment)(props.defaultValue, this.valueFormat);
}
if ('defaultPickerValue' in props) {
props.defaultPickerValue = (0, _momentUtil.stringToMoment)(props.defaultPickerValue, this.valueFormat);
}
},
renderPicker: function renderPicker(locale, localeCode) {
var _classNames2,
_this2 = this;
var h = this.$createElement;
var props = (0, _propsUtil.getOptionProps)(this);
this.transformValue(props);
var customizePrefixCls = props.prefixCls,
customizeInputPrefixCls = props.inputPrefixCls,
getCalendarContainer = props.getCalendarContainer,
size = props.size,
showTime = props.showTime,
disabled = props.disabled,
format = props.format;
var mergedPickerType = showTime ? pickerType + 'Time' : pickerType;
var mergedFormat = format || locale[LOCALE_FORMAT_MAPPING[mergedPickerType]] || DEFAULT_FORMAT[mergedPickerType];
var _configProvider = this.configProvider,
getPrefixCls = _configProvider.getPrefixCls,
getContextPopupContainer = _configProvider.getPopupContainer;
var getPopupContainer = getCalendarContainer || getContextPopupContainer;
var prefixCls = getPrefixCls('calendar', customizePrefixCls);
var inputPrefixCls = getPrefixCls('input', customizeInputPrefixCls);
var pickerClass = (0, _classnames2['default'])(prefixCls + '-picker', (0, _defineProperty3['default'])({}, prefixCls + '-picker-' + size, !!size));
var pickerInputClass = (0, _classnames2['default'])(prefixCls + '-picker-input', inputPrefixCls, (_classNames2 = {}, (0, _defineProperty3['default'])(_classNames2, inputPrefixCls + '-lg', size === 'large'), (0, _defineProperty3['default'])(_classNames2, inputPrefixCls + '-sm', size === 'small'), (0, _defineProperty3['default'])(_classNames2, inputPrefixCls + '-disabled', disabled), _classNames2));
var timeFormat = showTime && showTime.format || 'HH:mm:ss';
var vcTimePickerProps = (0, _extends3['default'])({}, (0, _timePicker.generateShowHourMinuteSecond)(timeFormat), {
format: timeFormat,
use12Hours: showTime && showTime.use12Hours
});
var columns = getColumns(vcTimePickerProps);
var timePickerCls = prefixCls + '-time-picker-column-' + columns;
var timePickerPanelProps = {
props: (0, _extends3['default'])({}, vcTimePickerProps, showTime, {
prefixCls: prefixCls + '-time-picker',
placeholder: locale.timePickerLocale.placeholder,
transitionName: 'slide-up'
}),
'class': timePickerCls,
on: {
esc: function esc() {}
}
};
var timePicker = showTime ? h(_Panel2['default'], timePickerPanelProps) : null;
var pickerProps = {
props: (0, _extends3['default'])({}, props, {
getCalendarContainer: getPopupContainer,
format: mergedFormat,
pickerClass: pickerClass,
pickerInputClass: pickerInputClass,
locale: locale,
localeCode: localeCode,
timePicker: timePicker
}),
on: (0, _extends3['default'])({}, (0, _propsUtil.getListeners)(this), {
openChange: this.handleOpenChange,
focus: this.handleFocus,
blur: this.handleBlur,
mouseenter: this.handleMouseEnter,
mouseleave: this.handleMouseLeave,
change: this.handleChange,
ok: this.handleOk,
calendarChange: this.handleCalendarChange
}),
ref: 'picker',
scopedSlots: this.$scopedSlots || {}
};
return h(
Picker,
pickerProps,
[this.$slots && Object.keys(this.$slots).map(function (key) {
return h(
'template',
{ slot: key, key: key },
[_this2.$slots[key]]
);
})]
);
}
},
render: function render() {
var h = arguments[0];
return h(_LocaleReceiver2['default'], {
attrs: {
componentName: 'DatePicker',
defaultLocale: this.getDefaultLocale
},
scopedSlots: { 'default': this.renderPicker }
});
}
};
}