ken-form-design
Version:
基于vue、ant-design-vue的表单设计器,可视化开发表单
1,648 lines (1,355 loc) • 60.2 kB
JavaScript
((typeof self !== 'undefined' ? self : this)["webpackJsonpken_form_design"] = (typeof self !== 'undefined' ? self : this)["webpackJsonpken_form_design"] || []).push([[8],{
/***/ "08e5":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = __webpack_require__("6042");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
exports.getNowByCurrentStateValue = getNowByCurrentStateValue;
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _propsUtil = __webpack_require__("73c8");
var _moment = __webpack_require__("c1df");
var _moment2 = _interopRequireDefault(_moment);
var _index = __webpack_require__("c021");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function noop() {}
function getNowByCurrentStateValue(value) {
var ret = void 0;
if (value) {
ret = (0, _index.getTodayTime)(value);
} else {
ret = (0, _moment2['default'])();
}
return ret;
}
function isMoment(value) {
if (Array.isArray(value)) {
return value.length === 0 || value.findIndex(function (val) {
return val === undefined || _moment2['default'].isMoment(val);
}) !== -1;
} else {
return value === undefined || _moment2['default'].isMoment(value);
}
}
var MomentType = _vueTypes2['default'].custom(isMoment);
var CalendarMixin = {
mixins: [_BaseMixin2['default']],
name: 'CalendarMixinWrapper',
props: {
value: MomentType,
defaultValue: MomentType
},
data: function data() {
var props = this.$props;
var sValue = props.value || props.defaultValue || getNowByCurrentStateValue();
return {
sValue: sValue,
sSelectedValue: props.selectedValue || props.defaultSelectedValue
};
},
watch: {
value: function value(val) {
var sValue = val || this.defaultValue || getNowByCurrentStateValue(this.sValue);
this.setState({
sValue: sValue
});
},
selectedValue: function selectedValue(val) {
this.setState({
sSelectedValue: val
});
}
},
methods: {
onSelect: function onSelect(value, cause) {
if (value) {
this.setValue(value);
}
this.setSelectedValue(value, cause);
},
renderRoot: function renderRoot(newProps) {
var _className;
var h = this.$createElement;
var props = this.$props;
var prefixCls = props.prefixCls;
var className = (_className = {}, (0, _defineProperty3['default'])(_className, prefixCls, 1), (0, _defineProperty3['default'])(_className, prefixCls + '-hidden', !props.visible), (0, _defineProperty3['default'])(_className, newProps['class'], !!newProps['class']), _className);
return h(
'div',
{
ref: 'rootInstance',
'class': className,
attrs: { tabIndex: '0'
},
on: {
'keydown': this.onKeyDown || noop,
'blur': this.onBlur || noop
}
},
[newProps.children]
);
},
setSelectedValue: function setSelectedValue(selectedValue, cause) {
// if (this.isAllowedDate(selectedValue)) {
if (!(0, _propsUtil.hasProp)(this, 'selectedValue')) {
this.setState({
sSelectedValue: selectedValue
});
}
this.__emit('select', selectedValue, cause);
// }
},
setValue: function setValue(value) {
var originalValue = this.sValue;
if (!(0, _propsUtil.hasProp)(this, 'value')) {
this.setState({
sValue: value
});
}
if (originalValue && value && !originalValue.isSame(value) || !originalValue && value || originalValue && !value) {
this.__emit('change', value);
}
},
isAllowedDate: function isAllowedDate(value) {
var disabledDate = this.disabledDate;
var disabledTime = this.disabledTime;
return (0, _index.isAllowedDate)(value, disabledDate, disabledTime);
}
}
};
exports['default'] = CalendarMixin;
/***/ }),
/***/ "1e31":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = __webpack_require__("41b2");
var _extends3 = _interopRequireDefault(_extends2);
var _moment = __webpack_require__("c1df");
var moment = _interopRequireWildcard(_moment);
var _vcCalendar = __webpack_require__("5ea9");
var _vcCalendar2 = _interopRequireDefault(_vcCalendar);
var _Picker = __webpack_require__("5b4e4");
var _Picker2 = _interopRequireDefault(_Picker);
var _icon = __webpack_require__("50f6");
var _icon2 = _interopRequireDefault(_icon);
var _configConsumerProps = __webpack_require__("bad7");
var _propsUtil = __webpack_require__("73c8");
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _interface = __webpack_require__("68aa");
var _interopDefault = __webpack_require__("8716");
var _interopDefault2 = _interopRequireDefault(_interopDefault);
var _InputIcon = __webpack_require__("5741");
var _InputIcon2 = _interopRequireDefault(_InputIcon);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
function formatValue(value, format) {
return value && value.format(format) || '';
}
function noop() {}
exports['default'] = {
// static defaultProps = {
// format: 'YYYY-wo',
// allowClear: true,
// };
// private input: any;
name: 'AWeekPicker',
mixins: [_BaseMixin2['default']],
model: {
prop: 'value',
event: 'change'
},
props: (0, _propsUtil.initDefaultProps)((0, _interface.WeekPickerProps)(), {
format: 'gggg-wo',
allowClear: true
}),
inject: {
configProvider: { 'default': function _default() {
return _configConsumerProps.ConfigConsumerProps;
} }
},
data: function data() {
var value = this.value || this.defaultValue;
if (value && !(0, _interopDefault2['default'])(moment).isMoment(value)) {
throw new Error('The value/defaultValue of WeekPicker or MonthPicker must be ' + 'a moment object');
}
return {
_value: value,
_open: this.open
};
},
watch: {
value: function value(val) {
var state = { _value: val };
this.setState(state);
this.prevState = (0, _extends3['default'])({}, this.$data, state);
},
open: function open(val) {
var state = { _open: val };
this.setState(state);
this.prevState = (0, _extends3['default'])({}, this.$data, state);
},
_open: function _open(val, oldVal) {
var _this = this;
this.$nextTick(function () {
if (!(0, _propsUtil.hasProp)(_this, 'open') && oldVal && !val) {
_this.focus();
}
});
}
},
mounted: function mounted() {
this.prevState = (0, _extends3['default'])({}, this.$data);
},
updated: function updated() {
var _this2 = this;
this.$nextTick(function () {
if (!(0, _propsUtil.hasProp)(_this2, 'open') && _this2.prevState._open && !_this2._open) {
_this2.focus();
}
});
},
methods: {
weekDateRender: function weekDateRender(current) {
var h = this.$createElement;
var selectedValue = this.$data._value;
var prefixCls = this._prefixCls,
$scopedSlots = this.$scopedSlots;
var dateRender = this.dateRender || $scopedSlots.dateRender;
var dateNode = dateRender ? dateRender(current) : current.date();
if (selectedValue && current.year() === selectedValue.year() && current.week() === selectedValue.week()) {
return h(
'div',
{ 'class': prefixCls + '-selected-day' },
[h(
'div',
{ 'class': prefixCls + '-date' },
[dateNode]
)]
);
}
return h(
'div',
{ 'class': prefixCls + '-date' },
[dateNode]
);
},
handleChange: function handleChange(value) {
if (!(0, _propsUtil.hasProp)(this, 'value')) {
this.setState({ _value: value });
}
this.$emit('change', value, formatValue(value, this.format));
},
handleOpenChange: function handleOpenChange(open) {
if (!(0, _propsUtil.hasProp)(this, 'open')) {
this.setState({ _open: open });
}
this.$emit('openChange', open);
},
clearSelection: function clearSelection(e) {
e.preventDefault();
e.stopPropagation();
this.handleChange(null);
},
focus: function focus() {
this.$refs.input.focus();
},
blur: function blur() {
this.$refs.input.blur();
},
renderFooter: function renderFooter() {
var h = this.$createElement;
var prefixCls = this._prefixCls,
$scopedSlots = this.$scopedSlots;
var renderExtraFooter = this.renderExtraFooter || $scopedSlots.renderExtraFooter;
return renderExtraFooter ? h(
'div',
{ 'class': prefixCls + '-footer-extra' },
[renderExtraFooter.apply(undefined, arguments)]
) : null;
}
},
render: function render() {
var h = arguments[0];
var props = (0, _propsUtil.getOptionProps)(this);
var suffixIcon = (0, _propsUtil.getComponentFromProp)(this, 'suffixIcon');
suffixIcon = Array.isArray(suffixIcon) ? suffixIcon[0] : suffixIcon;
var customizePrefixCls = this.prefixCls,
disabled = this.disabled,
pickerClass = this.pickerClass,
popupStyle = this.popupStyle,
pickerInputClass = this.pickerInputClass,
format = this.format,
allowClear = this.allowClear,
locale = this.locale,
localeCode = this.localeCode,
disabledDate = this.disabledDate,
defaultPickerValue = this.defaultPickerValue,
$data = this.$data,
$scopedSlots = this.$scopedSlots;
var listeners = (0, _propsUtil.getListeners)(this);
var getPrefixCls = this.configProvider.getPrefixCls;
var prefixCls = getPrefixCls('calendar', customizePrefixCls);
this._prefixCls = prefixCls;
var pickerValue = $data._value,
open = $data._open;
var _listeners$focus = listeners.focus,
focus = _listeners$focus === undefined ? noop : _listeners$focus,
_listeners$blur = listeners.blur,
blur = _listeners$blur === undefined ? noop : _listeners$blur;
if (pickerValue && localeCode) {
pickerValue.locale(localeCode);
}
var placeholder = (0, _propsUtil.hasProp)(this, 'placeholder') ? this.placeholder : locale.lang.placeholder;
var weekDateRender = this.dateRender || $scopedSlots.dateRender || this.weekDateRender;
var calendar = h(_vcCalendar2['default'], {
attrs: {
showWeekNumber: true,
dateRender: weekDateRender,
prefixCls: prefixCls,
format: format,
locale: locale.lang,
showDateInput: false,
showToday: false,
disabledDate: disabledDate,
renderFooter: this.renderFooter,
defaultValue: defaultPickerValue
}
});
var clearIcon = !disabled && allowClear && $data._value ? h(_icon2['default'], {
attrs: {
type: 'close-circle',
theme: 'filled'
},
'class': prefixCls + '-picker-clear',
on: {
'click': this.clearSelection
}
}) : null;
var inputIcon = h(_InputIcon2['default'], {
attrs: { suffixIcon: suffixIcon, prefixCls: prefixCls }
});
var input = function input(_ref) {
var value = _ref.value;
return h(
'span',
{ style: { display: 'inline-block', width: '100%' } },
[h('input', {
ref: 'input',
attrs: { disabled: disabled,
readOnly: true,
placeholder: placeholder
},
domProps: {
'value': value && value.format(format) || ''
},
'class': pickerInputClass,
on: {
'focus': focus,
'blur': blur
}
}), clearIcon, inputIcon]
);
};
var vcDatePickerProps = {
props: (0, _extends3['default'])({}, props, {
calendar: calendar,
prefixCls: prefixCls + '-picker-container',
value: pickerValue,
open: open
}),
on: (0, _extends3['default'])({}, listeners, {
change: this.handleChange,
openChange: this.handleOpenChange
}),
style: popupStyle,
scopedSlots: (0, _extends3['default'])({ 'default': input }, $scopedSlots)
};
return h(
'span',
{ 'class': pickerClass },
[h(_Picker2['default'], vcDatePickerProps)]
);
}
};
/***/ }),
/***/ "1edc":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = __webpack_require__("41b2");
var _extends3 = _interopRequireDefault(_extends2);
var _defineProperty2 = __webpack_require__("6042");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
exports['default'] = createPicker;
var _moment = __webpack_require__("c1df");
var moment = _interopRequireWildcard(_moment);
var _omit = __webpack_require__("3eea");
var _omit2 = _interopRequireDefault(_omit);
var _MonthCalendar = __webpack_require__("b782");
var _MonthCalendar2 = _interopRequireDefault(_MonthCalendar);
var _Picker = __webpack_require__("5b4e4");
var _Picker2 = _interopRequireDefault(_Picker);
var _classnames = __webpack_require__("4d26");
var _classnames2 = _interopRequireDefault(_classnames);
var _icon = __webpack_require__("50f6");
var _icon2 = _interopRequireDefault(_icon);
var _configConsumerProps = __webpack_require__("bad7");
var _interopDefault = __webpack_require__("8716");
var _interopDefault2 = _interopRequireDefault(_interopDefault);
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _propsUtil = __webpack_require__("73c8");
var _vnode = __webpack_require__("d2f9");
var _utils = __webpack_require__("0025");
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
// export const PickerProps = {
// value?: moment.Moment;
// prefixCls: string;
// }
function noop() {}
function createPicker(TheCalendar, props) {
return {
props: (0, _propsUtil.initDefaultProps)(props, {
allowClear: true,
showToday: true
}),
mixins: [_BaseMixin2['default']],
model: {
prop: 'value',
event: 'change'
},
inject: {
configProvider: { 'default': function _default() {
return _configConsumerProps.ConfigConsumerProps;
} }
},
data: function data() {
var value = this.value || this.defaultValue;
if (value && !(0, _interopDefault2['default'])(moment).isMoment(value)) {
throw new Error('The value/defaultValue of DatePicker or MonthPicker must be ' + 'a moment object');
}
return {
sValue: value,
showDate: value,
_open: !!this.open
};
},
watch: {
open: function open(val) {
var props = (0, _propsUtil.getOptionProps)(this);
var state = {};
state._open = val;
if ('value' in props && !val && props.value !== this.showDate) {
state.showDate = props.value;
}
this.setState(state);
},
value: function value(val) {
var state = {};
state.sValue = val;
if (val !== this.sValue) {
state.showDate = val;
}
this.setState(state);
},
_open: function _open(val, oldVal) {
var _this = this;
this.$nextTick(function () {
if (!(0, _propsUtil.hasProp)(_this, 'open') && oldVal && !val) {
_this.focus();
}
});
}
},
methods: {
clearSelection: function clearSelection(e) {
e.preventDefault();
e.stopPropagation();
this.handleChange(null);
},
handleChange: function handleChange(value) {
if (!(0, _propsUtil.hasProp)(this, 'value')) {
this.setState({
sValue: value,
showDate: value
});
}
this.$emit('change', value, (0, _utils.formatDate)(value, this.format));
},
handleCalendarChange: function handleCalendarChange(value) {
this.setState({ showDate: value });
},
handleOpenChange: function handleOpenChange(open) {
var props = (0, _propsUtil.getOptionProps)(this);
if (!('open' in props)) {
this.setState({ _open: open });
}
this.$emit('openChange', open);
},
focus: function focus() {
this.$refs.input.focus();
},
blur: function blur() {
this.$refs.input.blur();
},
renderFooter: function renderFooter() {
var h = this.$createElement;
var $scopedSlots = this.$scopedSlots,
$slots = this.$slots,
prefixCls = this._prefixCls;
var renderExtraFooter = this.renderExtraFooter || $scopedSlots.renderExtraFooter || $slots.renderExtraFooter;
return renderExtraFooter ? h(
'div',
{ 'class': prefixCls + '-footer-extra' },
[typeof renderExtraFooter === 'function' ? renderExtraFooter.apply(undefined, arguments) : renderExtraFooter]
) : null;
},
onMouseEnter: function onMouseEnter(e) {
this.$emit('mouseenter', e);
},
onMouseLeave: function onMouseLeave(e) {
this.$emit('mouseleave', e);
}
},
render: function render() {
var _classNames,
_this2 = this;
var h = arguments[0];
var $scopedSlots = this.$scopedSlots;
var _$data = this.$data,
value = _$data.sValue,
showDate = _$data.showDate,
open = _$data._open;
var suffixIcon = (0, _propsUtil.getComponentFromProp)(this, 'suffixIcon');
suffixIcon = Array.isArray(suffixIcon) ? suffixIcon[0] : suffixIcon;
var listeners = (0, _propsUtil.getListeners)(this);
var _listeners$panelChang = listeners.panelChange,
panelChange = _listeners$panelChang === undefined ? noop : _listeners$panelChang,
_listeners$focus = listeners.focus,
focus = _listeners$focus === undefined ? noop : _listeners$focus,
_listeners$blur = listeners.blur,
blur = _listeners$blur === undefined ? noop : _listeners$blur,
_listeners$ok = listeners.ok,
ok = _listeners$ok === undefined ? noop : _listeners$ok;
var props = (0, _propsUtil.getOptionProps)(this);
var customizePrefixCls = props.prefixCls,
locale = props.locale,
localeCode = props.localeCode,
inputReadOnly = props.inputReadOnly;
var getPrefixCls = this.configProvider.getPrefixCls;
var prefixCls = getPrefixCls('calendar', customizePrefixCls);
this._prefixCls = prefixCls;
var dateRender = props.dateRender || $scopedSlots.dateRender;
var monthCellContentRender = props.monthCellContentRender || $scopedSlots.monthCellContentRender;
var placeholder = 'placeholder' in props ? props.placeholder : locale.lang.placeholder;
var disabledTime = props.showTime ? props.disabledTime : null;
var calendarClassName = (0, _classnames2['default'])((_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls + '-time', props.showTime), (0, _defineProperty3['default'])(_classNames, prefixCls + '-month', _MonthCalendar2['default'] === TheCalendar), _classNames));
if (value && localeCode) {
value.locale(localeCode);
}
var pickerProps = { props: {}, on: {} };
var calendarProps = { props: {}, on: {} };
var pickerStyle = {};
if (props.showTime) {
// fix https://github.com/ant-design/ant-design/issues/1902
calendarProps.on.select = this.handleChange;
pickerStyle.minWidth = '195px';
} else {
pickerProps.on.change = this.handleChange;
}
if ('mode' in props) {
calendarProps.props.mode = props.mode;
}
var theCalendarProps = (0, _propsUtil.mergeProps)(calendarProps, {
props: {
disabledDate: props.disabledDate,
disabledTime: disabledTime,
locale: locale.lang,
timePicker: props.timePicker,
defaultValue: props.defaultPickerValue || (0, _interopDefault2['default'])(moment)(),
dateInputPlaceholder: placeholder,
prefixCls: prefixCls,
dateRender: dateRender,
format: props.format,
showToday: props.showToday,
monthCellContentRender: monthCellContentRender,
renderFooter: this.renderFooter,
value: showDate,
inputReadOnly: inputReadOnly
},
on: {
ok: ok,
panelChange: panelChange,
change: this.handleCalendarChange
},
'class': calendarClassName,
scopedSlots: $scopedSlots
});
var calendar = h(TheCalendar, theCalendarProps);
var clearIcon = !props.disabled && props.allowClear && value ? h(_icon2['default'], {
attrs: {
type: 'close-circle',
theme: 'filled'
},
'class': prefixCls + '-picker-clear',
on: {
'click': this.clearSelection
}
}) : null;
var inputIcon = suffixIcon && ((0, _propsUtil.isValidElement)(suffixIcon) ? (0, _vnode.cloneElement)(suffixIcon, {
'class': prefixCls + '-picker-icon'
}) : h(
'span',
{ 'class': prefixCls + '-picker-icon' },
[suffixIcon]
)) || h(_icon2['default'], {
attrs: { type: 'calendar' },
'class': prefixCls + '-picker-icon' });
var input = function input(_ref) {
var inputValue = _ref.value;
return h('div', [h('input', {
ref: 'input',
attrs: { disabled: props.disabled,
readOnly: true,
placeholder: placeholder,
tabIndex: props.tabIndex,
name: _this2.name
},
on: {
'focus': focus,
'blur': blur
},
domProps: {
'value': (0, _utils.formatDate)(inputValue, _this2.format)
},
'class': props.pickerInputClass }), clearIcon, inputIcon]);
};
var vcDatePickerProps = {
props: (0, _extends3['default'])({}, props, pickerProps.props, {
calendar: calendar,
value: value,
prefixCls: prefixCls + '-picker-container'
}),
on: (0, _extends3['default'])({}, (0, _omit2['default'])(listeners, 'change'), pickerProps.on, {
open: open,
onOpenChange: this.handleOpenChange
}),
style: props.popupStyle,
scopedSlots: (0, _extends3['default'])({ 'default': input }, $scopedSlots)
};
return h(
'span',
{
'class': props.pickerClass,
style: pickerStyle
// tabIndex={props.disabled ? -1 : 0}
// onFocus={focus}
// onBlur={blur}
, on: {
'mouseenter': this.onMouseEnter,
'mouseleave': this.onMouseLeave
}
},
[h(_Picker2['default'], vcDatePickerProps)]
);
}
};
}
/***/ }),
/***/ "2e76":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = __webpack_require__("6042");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _babelHelperVueJsxMergeProps = __webpack_require__("92fa");
var _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps);
var _extends2 = __webpack_require__("41b2");
var _extends3 = _interopRequireDefault(_extends2);
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _propsUtil = __webpack_require__("73c8");
var _TodayButton = __webpack_require__("f90e");
var _TodayButton2 = _interopRequireDefault(_TodayButton);
var _OkButton = __webpack_require__("a41b");
var _OkButton2 = _interopRequireDefault(_OkButton);
var _TimePickerButton = __webpack_require__("11a8");
var _TimePickerButton2 = _interopRequireDefault(_TimePickerButton);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var CalendarFooter = {
mixins: [_BaseMixin2['default']],
props: {
prefixCls: _vueTypes2['default'].string,
showDateInput: _vueTypes2['default'].bool,
disabledTime: _vueTypes2['default'].any,
timePicker: _vueTypes2['default'].any,
selectedValue: _vueTypes2['default'].any,
showOk: _vueTypes2['default'].bool,
// onSelect: PropTypes.func,
value: _vueTypes2['default'].object,
renderFooter: _vueTypes2['default'].func,
defaultValue: _vueTypes2['default'].object,
locale: _vueTypes2['default'].object,
showToday: _vueTypes2['default'].bool,
disabledDate: _vueTypes2['default'].func,
showTimePicker: _vueTypes2['default'].bool,
okDisabled: _vueTypes2['default'].bool,
mode: _vueTypes2['default'].string
},
methods: {
onSelect: function onSelect(value) {
this.__emit('select', value);
},
getRootDOMNode: function getRootDOMNode() {
return this.$el;
}
},
render: function render() {
var h = arguments[0];
var props = (0, _propsUtil.getOptionProps)(this);
var value = props.value,
prefixCls = props.prefixCls,
showOk = props.showOk,
timePicker = props.timePicker,
renderFooter = props.renderFooter,
showToday = props.showToday,
mode = props.mode;
var footerEl = null;
var extraFooter = renderFooter && renderFooter(mode);
if (showToday || timePicker || extraFooter) {
var _cls;
var btnProps = {
props: (0, _extends3['default'])({}, props, {
value: value
}),
on: (0, _propsUtil.getListeners)(this)
};
var nowEl = null;
if (showToday) {
nowEl = h(_TodayButton2['default'], (0, _babelHelperVueJsxMergeProps2['default'])([{ key: 'todayButton' }, btnProps]));
}
delete btnProps.props.value;
var okBtn = null;
if (showOk === true || showOk !== false && !!timePicker) {
okBtn = h(_OkButton2['default'], (0, _babelHelperVueJsxMergeProps2['default'])([{ key: 'okButton' }, btnProps]));
}
var timePickerBtn = null;
if (timePicker) {
timePickerBtn = h(_TimePickerButton2['default'], (0, _babelHelperVueJsxMergeProps2['default'])([{ key: 'timePickerButton' }, btnProps]));
}
var footerBtn = void 0;
if (nowEl || timePickerBtn || okBtn || extraFooter) {
footerBtn = h(
'span',
{ 'class': prefixCls + '-footer-btn' },
[extraFooter, nowEl, timePickerBtn, okBtn]
);
}
var cls = (_cls = {}, (0, _defineProperty3['default'])(_cls, prefixCls + '-footer', true), (0, _defineProperty3['default'])(_cls, prefixCls + '-footer-show-ok', !!okBtn), _cls);
footerEl = h(
'div',
{ 'class': cls },
[footerBtn]
);
}
return footerEl;
}
};
exports['default'] = CalendarFooter;
/***/ }),
/***/ "5a2f":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = __webpack_require__("6042");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _extends2 = __webpack_require__("41b2");
var _extends3 = _interopRequireDefault(_extends2);
exports['default'] = wrapPicker;
var _Panel = __webpack_require__("3962");
var _Panel2 = _interopRequireDefault(_Panel);
var _classnames = __webpack_require__("4d26");
var _classnames2 = _interopRequireDefault(_classnames);
var _LocaleReceiver = __webpack_require__("3f5f");
var _LocaleReceiver2 = _interopRequireDefault(_LocaleReceiver);
var _timePicker = __webpack_require__("afdf");
var _en_US = __webpack_require__("8726");
var _en_US2 = _interopRequireDefault(_en_US);
var _propsUtil = __webpack_require__("73c8");
var _configConsumerProps = __webpack_require__("bad7");
var _momentUtil = __webpack_require__("4b93");
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 }
});
}
};
}
/***/ }),
/***/ "5ea9":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _vue = __webpack_require__("8bbf");
var _vue2 = _interopRequireDefault(_vue);
var _vueRef = __webpack_require__("46cf");
var _vueRef2 = _interopRequireDefault(_vueRef);
var _src = __webpack_require__("bbde");
var _src2 = _interopRequireDefault(_src);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
_vue2['default'].use(_vueRef2['default'], { name: 'ant-ref' }); // based on rc-calendar 9.15.10
exports['default'] = _src2['default'];
/***/ }),
/***/ "b782":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _moment = __webpack_require__("c1df");
var _moment2 = _interopRequireDefault(_moment);
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _KeyCode = __webpack_require__("af09");
var _KeyCode2 = _interopRequireDefault(_KeyCode);
var _CalendarHeader = __webpack_require__("66ec");
var _CalendarHeader2 = _interopRequireDefault(_CalendarHeader);
var _CalendarFooter = __webpack_require__("2e76");
var _CalendarFooter2 = _interopRequireDefault(_CalendarFooter);
var _CalendarMixin = __webpack_require__("08e5");
var _CalendarMixin2 = _interopRequireDefault(_CalendarMixin);
var _CommonMixin = __webpack_require__("b986");
var _CommonMixin2 = _interopRequireDefault(_CommonMixin);
var _en_US = __webpack_require__("b655");
var _en_US2 = _interopRequireDefault(_en_US);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var MonthCalendar = {
name: 'MonthCalendar',
props: {
locale: _vueTypes2['default'].object.def(_en_US2['default']),
format: _vueTypes2['default'].string,
visible: _vueTypes2['default'].bool.def(true),
prefixCls: _vueTypes2['default'].string.def('rc-calendar'),
monthCellRender: _vueTypes2['default'].func,
value: _vueTypes2['default'].object,
defaultValue: _vueTypes2['default'].object,
selectedValue: _vueTypes2['default'].object,
defaultSelectedValue: _vueTypes2['default'].object,
disabledDate: _vueTypes2['default'].func,
monthCellContentRender: _vueTypes2['default'].func,
renderFooter: _vueTypes2['default'].func.def(function () {
return null;
}),
renderSidebar: _vueTypes2['default'].func.def(function () {
return null;
})
},
mixins: [_BaseMixin2['default'], _CommonMixin2['default'], _CalendarMixin2['default']],
data: function data() {
var props = this.$props;
return {
mode: 'month',
sValue: props.value || props.defaultValue || (0, _moment2['default'])(),
sSelectedValue: props.selectedValue || props.defaultSelectedValue
};
},
methods: {
onKeyDown: function onKeyDown(event) {
var keyCode = event.keyCode;
var ctrlKey = event.ctrlKey || event.metaKey;
var stateValue = this.sValue;
var disabledDate = this.disabledDate;
var value = stateValue;
switch (keyCode) {
case _KeyCode2['default'].DOWN:
value = stateValue.clone();
value.add(3, 'months');
break;
case _KeyCode2['default'].UP:
value = stateValue.clone();
value.add(-3, 'months');
break;
case _KeyCode2['default'].LEFT:
value = stateValue.clone();
if (ctrlKey) {
value.add(-1, 'years');
} else {
value.add(-1, 'months');
}
break;
case _KeyCode2['default'].RIGHT:
value = stateValue.clone();
if (ctrlKey) {
value.add(1, 'years');
} else {
value.add(1, 'months');
}
break;
case _KeyCode2['default'].ENTER:
if (!disabledDate || !disabledDate(stateValue)) {
this.onSelect(stateValue);
}
event.preventDefault();
return 1;
default:
return undefined;
}
if (value !== stateValue) {
this.setValue(value);
event.preventDefault();
return 1;
}
},
handlePanelChange: function handlePanelChange(_, mode) {
if (mode !== 'date') {
this.setState({ mode: mode });
}
}
},
render: function render() {
var h = arguments[0];
var mode = this.mode,
value = this.sValue,
props = this.$props,
$scopedSlots = this.$scopedSlots;
var prefixCls = props.prefixCls,
locale = props.locale,
disabledDate = props.disabledDate;
var monthCellRender = this.monthCellRender || $scopedSlots.monthCellRender;
var monthCellContentRender = this.monthCellContentRender || $scopedSlots.monthCellContentRender;
var renderFooter = this.renderFooter || $scopedSlots.renderFooter;
var children = h(
'div',
{ 'class': prefixCls + '-month-calendar-content' },
[h(
'div',
{ 'class': prefixCls + '-month-header-wrap' },
[h(_CalendarHeader2['default'], {
attrs: {
prefixCls: prefixCls,
mode: mode,
value: value,
locale: locale,
disabledMonth: disabledDate,
monthCellRender: monthCellRender,
monthCellContentRender: monthCellContentRender
},
on: {
'monthSelect': this.onSelect,
'valueChange': this.setValue,
'panelChange': this.handlePanelChange
}
})]
), h(_CalendarFooter2['default'], {
attrs: { prefixCls: prefixCls, renderFooter: renderFooter }
})]
);
return this.renderRoot({
'class': props.prefixCls + '-month-calendar',
children: children
});
}
};
exports['default'] = MonthCalendar;
/***/ }),
/***/ "bbde":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _Calendar = __webpack_require__("c236");
var _Calendar2 = _interopRequireDefault(_Calendar);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
exports['default'] = _Calendar2['default'];
/***/ }),
/***/ "c236":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends2 = __webpack_require__("41b2");
var _extends3 = _interopRequireDefault(_extends2);
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _propsUtil = __webpack_require__("73c8");
var _vnode = __webpack_require__("d2f9");
var _KeyCode = __webpack_require__("af09");
var _KeyCode2 = _interopRequireDefault(_KeyCode);
var _moment = __webpack_require__("c1df");
var _moment2 = _interopRequireDefault(_moment);
var _DateTable = __webpack_require__("b1cf");
var _DateTable2 = _interopRequireDefault(_DateTable);
var _CalendarHeader = __webpack_require__("66ec");
var _CalendarHeader2 = _interopRequireDefault(_CalendarHeader);
var _CalendarFooter = __webpack_require__("2e76");
var _CalendarFooter2 = _interopRequireDefault(_CalendarFooter);
var _CalendarMixin = __webpack_require__("08e5");
var _CalendarMixin2 = _interopRequireDefault(_CalendarMixin);
var _CommonMixin = __webpack_require__("b986");
var _CommonMixin2 = _interopRequireDefault(_CommonMixin);
var _DateInput = __webpack_require__("3ea4");
var _DateInput2 = _interopRequireDefault(_DateInput);
var _en_US = __webpack_require__("b655");
var _en_US2 = _interopRequireDefault(_en_US);
var _util = __webpack_require__("c021");
var _toTime = __webpack_require__("b542");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var getMomentObjectIfValid = function getMomentObjectIfValid(date) {
if (_moment2['default'].isMoment(date) && date.isValid()) {
return date;
}
return false;
};
var Calendar = {
name: 'Calendar',
props: {
locale: _vueTypes2['default'].object.def(_en_US2['default']),
format: _vueTypes2['default'].oneOfType([_vueTypes2['default'].string, _vueTypes2['default'].arrayOf(_vueTypes2['default'].string), _vueTypes2['default'].func]),
visible: _vueTypes2['default'].bool.def(true),
prefixCls: _vueTypes2['default'].string.def('rc-calendar'),
// prefixCls: PropTypes.string,
defaultValue: _vueTypes2['default'].object,
value: _vueTypes2['default'].object,
selectedValue: _vueTypes2['default'].object,
defaultSelectedValue: _vueTypes2['default'].object,
mode: _vueTypes2['default'].oneOf(['time', 'date', 'month', 'year', 'decade']),
// locale: PropTypes.object,
showDateInput: _vueTypes2['default'].bool.def(true),
showWeekNumber: _vueTypes2['default'].bool,
showToday: _vueTypes2['default'].bool.def(true),
showOk: _vueTypes2['default'].bool,
// onSelect: PropTypes.func,
// onOk: PropTypes.func,
// onKeyDown: PropTypes.func,
timePicker: _vueTypes2['default'].any,
dateInputPlaceholder: _vueTypes2['default'].any,
// onClear: PropTypes.func,
// onChange: PropTypes.func,
// onPanelChange: PropTypes.func,
disabledDate: _vueTypes2['default'].func,
disabledTime: _vueTypes2['default'].any,
dateRender: _vueTypes2['default'].func,
renderFooter: _vueTypes2['default'].func.def(function () {
return null;
}),
renderSidebar: _vueTypes2['default'].func.def(function () {
return null;
}),
clearIcon: _vueTypes2['default'].any,
focusablePanel: _vueTypes2['default'].bool.def(true),
inputMode: _vueTypes2['default'].string,
inputReadOnly: _vueTypes2['default'].bool
},
mixins: [_BaseMixin2['default'], _CommonMixin2['default'], _CalendarMixin2['default']],
data: function data() {
var props = this.$props;
return {
sMode: this.mode || 'date',
sValue: getMomentObjectIfValid(props.value) || getMomentObjectIfValid(props.defaultValue) || (0, _moment2['default'])(),
sSelectedValue: props.selectedValue || props.defaultSelectedValue
};
},
watch: {
mode: function mode(val) {
this.setState({ sMode: val });
},
value: function value(val) {
this.setState({
sValue: getMomentObjectIfValid(val) || getMomentObjectIfValid(this.defaultValue) || (0, _CalendarMixin.getNowByCurrentStateValue)(this.sValue)
});
},
selectedValue: function selectedValue(val) {
this.setState({
sSelectedValue: val
});
}
},
mounted: function mounted() {
var _this = this;
this.$nextTick(function () {
_this.saveFocusElement(_DateInput2['default'].getInstance());
});
},
methods: {
onPanelChange: function onPanelChange(value, mode) {
var sValue = this.sValue;
if (!(0, _propsUtil.hasProp)(this, 'mode')) {
this.setState({ sMode: mode });
}
this.__emit('panelChange', value || sValue, mode);
},
onKeyDown: function onKeyDown(event) {
if (event.target.nodeName.toLowerCase() === 'input') {
return undefined;
}
var keyCode = event.keyCode;
// mac
var ctrlKey = event.ctrlKey || event.metaKey;
var disabledDate = this.disabledDate,
value = this.sValue;
switch (keyCode) {
case _KeyCode2['default'].DOWN:
this.goTime(1, 'weeks');
event.preventDefault();
return 1;
case _KeyCode2['default'].UP:
this.goTime(-1, 'weeks');
event.preventDefault();
return 1;
case _KeyCode2['default'].LEFT:
if (ctrlKey) {
this.goTime(-1, 'years');
} else {
this.goTime(-1, 'days');
}
event.preventDefault();
return 1;
case _KeyCode2['default'].RIGHT:
if (ctrlKey) {
this.goTime(1, 'years');
} else {
this.goTime(1, 'days');
}
event.preventDefault();
return 1;
case _KeyCode2['default'].HOME:
this.setValue((0, _toTime.goStartMonth)(value));
event.preventDefault();
return 1;
case _KeyCode2['default'].END:
this.setValue((0, _toTime.goEndMonth)(value));
event.preventDefault();
return 1;