ken-form-design
Version:
基于vue、ant-design-vue的表单设计器,可视化开发表单
1,689 lines (1,413 loc) • 173 kB
JavaScript
((typeof self !== 'undefined' ? self : this)["webpackJsonpken_form_design"] = (typeof self !== 'undefined' ? self : this)["webpackJsonpken_form_design"] || []).push([[2,22],{
/***/ "0025":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.formatDate = formatDate;
function formatDate(value, format) {
if (!value) {
return '';
}
if (Array.isArray(format)) {
format = format[0];
}
if (typeof format === 'function') {
var result = format(value);
if (typeof result === 'string') {
return result;
} else {
throw new Error('The function of format does not return a string');
}
}
return value.format(format);
}
/***/ }),
/***/ "0e42":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = __webpack_require__("6042");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _propsUtil = __webpack_require__("73c8");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var ROW = 4;
var COL = 3;
function noop() {}
function goYear(direction) {
var value = this.sValue.clone();
value.add(direction, 'year');
this.setState({
sValue: value
});
}
function chooseYear(year) {
var value = this.sValue.clone();
value.year(year);
value.month(this.sValue.month());
this.sValue = value;
this.__emit('select', value);
}
exports['default'] = {
mixins: [_BaseMixin2['default']],
props: {
rootPrefixCls: _vueTypes2['default'].string,
value: _vueTypes2['default'].object,
defaultValue: _vueTypes2['default'].object,
locale: _vueTypes2['default'].object,
renderFooter: _vueTypes2['default'].func,
disabledDate: _vueTypes2['default'].func
},
data: function data() {
this.nextDecade = goYear.bind(this, 10);
this.previousDecade = goYear.bind(this, -10);
return {
sValue: this.value || this.defaultValue
};
},
watch: {
value: function value(val) {
this.sValue = val;
}
},
methods: {
years: function years() {
var value = this.sValue;
var currentYear = value.year();
var startYear = parseInt(currentYear / 10, 10) * 10;
var previousYear = startYear - 1;
var years = [];
var index = 0;
for (var rowIndex = 0; rowIndex < ROW; rowIndex++) {
years[rowIndex] = [];
for (var colIndex = 0; colIndex < COL; colIndex++) {
var year = previousYear + index;
var content = String(year);
years[rowIndex][colIndex] = {
content: content,
year: year,
title: content
};
index++;
}
}
return years;
}
},
render: function render() {
var _this = this;
var h = arguments[0];
var value = this.sValue,
locale = this.locale,
renderFooter = this.renderFooter,
$props = this.$props;
var decadePanelShow = (0, _propsUtil.getListeners)(this).decadePanelShow || noop;
var years = this.years();
var currentYear = value.year();
var startYear = parseInt(currentYear / 10, 10) * 10;
var endYear = startYear + 9;
var prefixCls = this.rootPrefixCls + '-year-panel';
var disabledDate = $props.disabledDate;
var yeasEls = years.map(function (row, index) {
var tds = row.map(function (yearData) {
var _classNameMap;
var disabled = false;
if (disabledDate) {
var testValue = value.clone();
testValue.year(yearData.year);
disabled = disabledDate(testValue);
}
var classNameMap = (_classNameMap = {}, (0, _defineProperty3['default'])(_classNameMap, prefixCls + '-cell', 1), (0, _defineProperty3['default'])(_classNameMap, prefixCls + '-cell-disabled', disabled), (0, _defineProperty3['default'])(_classNameMap, prefixCls + '-selected-cell', yearData.year === currentYear), (0, _defineProperty3['default'])(_classNameMap, prefixCls + '-last-decade-cell', yearData.year < startYear), (0, _defineProperty3['default'])(_classNameMap, prefixCls + '-next-decade-cell', yearData.year > endYear), _classNameMap);
var clickHandler = noop;
if (yearData.year < startYear) {
clickHandler = _this.previousDecade;
} else if (yearData.year > endYear) {
clickHandler = _this.nextDecade;
} else {
clickHandler = chooseYear.bind(_this, yearData.year);
}
return h(
'td',
{
attrs: {
role: 'gridcell',
title: yearData.title
},
key: yearData.content,
on: {
'click': disabled ? noop : clickHandler
},
'class': classNameMap
},
[h(
'a',
{ 'class': prefixCls + '-year' },
[yearData.content]
)]
);
});
return h(
'tr',
{ key: index, attrs: { role: 'row' }
},
[tds]
);
});
var footer = renderFooter && renderFooter('year');
return h(
'div',
{ 'class': prefixCls },
[h('div', [h(
'div',
{ 'class': prefixCls + '-header' },
[h('a', {
'class': prefixCls + '-prev-decade-btn',
attrs: { role: 'button',
title: locale.previousDecade
},
on: {
'click': this.previousDecade
}
}), h(
'a',
{
'class': prefixCls + '-decade-select',
attrs: { role: 'button',
title: locale.decadeSelect
},
on: {
'click': decadePanelShow
}
},
[h(
'span',
{ 'class': prefixCls + '-decade-select-content' },
[startYear, '-', endYear]
), h(
'span',
{ 'class': prefixCls + '-decade-select-arrow' },
['x']
)]
), h('a', {
'class': prefixCls + '-next-decade-btn',
attrs: { role: 'button',
title: locale.nextDecade
},
on: {
'click': this.nextDecade
}
})]
), h(
'div',
{ 'class': prefixCls + '-body' },
[h(
'table',
{ 'class': prefixCls + '-table', attrs: { cellSpacing: '0', role: 'grid' }
},
[h(
'tbody',
{ 'class': prefixCls + '-tbody' },
[yeasEls]
)]
)]
), footer && h(
'div',
{ 'class': prefixCls + '-footer' },
[footer]
)])]
);
}
};
/***/ }),
/***/ "1178":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _Event = __webpack_require__("e098");
var _Event2 = _interopRequireDefault(_Event);
var _raf = __webpack_require__("ab92");
var _raf2 = _interopRequireDefault(_raf);
var _configConsumerProps = __webpack_require__("bad7");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var styleForPesudo = void 0;
// Where el is the DOM element you'd like to test for visibility
function isHidden(element) {
if (false) {}
return !element || element.offsetParent === null;
}
function isNotGrey(color) {
// eslint-disable-next-line no-useless-escape
var match = (color || '').match(/rgba?\((\d*), (\d*), (\d*)(, [\.\d]*)?\)/);
if (match && match[1] && match[2] && match[3]) {
return !(match[1] === match[2] && match[2] === match[3]);
}
return true;
}
exports['default'] = {
name: 'Wave',
props: ['insertExtraNode'],
mounted: function mounted() {
var _this = this;
this.$nextTick(function () {
var node = _this.$el;
if (node.nodeType !== 1) {
return;
}
_this.instance = _this.bindAnimationEvent(node);
});
},
inject: {
configProvider: { 'default': function _default() {
return _configConsumerProps.ConfigConsumerProps;
} }
},
beforeDestroy: function beforeDestroy() {
if (this.instance) {
this.instance.cancel();
}
if (this.clickWaveTimeoutId) {
clearTimeout(this.clickWaveTimeoutId);
}
this.destroy = true;
},
methods: {
onClick: function onClick(node, waveColor) {
if (!node || isHidden(node) || node.className.indexOf('-leave') >= 0) {
return;
}
var insertExtraNode = this.$props.insertExtraNode;
this.extraNode = document.createElement('div');
var extraNode = this.extraNode;
extraNode.className = 'ant-click-animating-node';
var attributeName = this.getAttributeName();
node.removeAttribute(attributeName);
node.setAttribute(attributeName, 'true');
// Not white or transparent or grey
styleForPesudo = styleForPesudo || document.createElement('style');
if (waveColor && waveColor !== '#ffffff' && waveColor !== 'rgb(255, 255, 255)' && isNotGrey(waveColor) && !/rgba\(\d*, \d*, \d*, 0\)/.test(waveColor) && // any transparent rgba color
waveColor !== 'transparent') {
// Add nonce if CSP exist
if (this.csp && this.csp.nonce) {
styleForPesudo.nonce = this.csp.nonce;
}
extraNode.style.borderColor = waveColor;
styleForPesudo.innerHTML = '\n [ant-click-animating-without-extra-node=\'true\']::after, .ant-click-animating-node {\n --antd-wave-shadow-color: ' + waveColor + ';\n }';
if (!document.body.contains(styleForPesudo)) {
document.body.appendChild(styleForPesudo);
}
}
if (insertExtraNode) {
node.appendChild(extraNode);
}
_Event2['default'].addStartEventListener(node, this.onTransitionStart);
_Event2['default'].addEndEventListener(node, this.onTransitionEnd);
},
onTransitionStart: function onTransitionStart(e) {
if (this.destroy) return;
var node = this.$el;
if (!e || e.target !== node) {
return;
}
if (!this.animationStart) {
this.resetEffect(node);
}
},
onTransitionEnd: function onTransitionEnd(e) {
if (!e || e.animationName !== 'fadeEffect') {
return;
}
this.resetEffect(e.target);
},
getAttributeName: function getAttributeName() {
var insertExtraNode = this.$props.insertExtraNode;
return insertExtraNode ? 'ant-click-animating' : 'ant-click-animating-without-extra-node';
},
bindAnimationEvent: function bindAnimationEvent(node) {
var _this2 = this;
if (!node || !node.getAttribute || node.getAttribute('disabled') || node.className.indexOf('disabled') >= 0) {
return;
}
var onClick = function onClick(e) {
// Fix radio button click twice
if (e.target.tagName === 'INPUT' || isHidden(e.target)) {
return;
}
_this2.resetEffect(node);
// Get wave color from target
var waveColor = getComputedStyle(node).getPropertyValue('border-top-color') || // Firefox Compatible
getComputedStyle(node).getPropertyValue('border-color') || getComputedStyle(node).getPropertyValue('background-color');
_this2.clickWaveTimeoutId = window.setTimeout(function () {
return _this2.onClick(node, waveColor);
}, 0);
_raf2['default'].cancel(_this2.animationStartId);
_this2.animationStart = true;
// Render to trigger transition event cost 3 frames. Let's delay 10 frames to reset this.
_this2.animationStartId = (0, _raf2['default'])(function () {
_this2.animationStart = false;
}, 10);
};
node.addEventListener('click', onClick, true);
return {
cancel: function cancel() {
node.removeEventListener('click', onClick, true);
}
};
},
resetEffect: function resetEffect(node) {
if (!node || node === this.extraNode || !(node instanceof Element)) {
return;
}
var insertExtraNode = this.$props.insertExtraNode;
var attributeName = this.getAttributeName();
node.setAttribute(attributeName, 'false'); // edge has bug on `removeAttribute` #14466
if (styleForPesudo) {
styleForPesudo.innerHTML = '';
}
if (insertExtraNode && this.extraNode && node.contains(this.extraNode)) {
node.removeChild(this.extraNode);
}
_Event2['default'].removeStartEventListener(node, this.onTransitionStart);
_Event2['default'].removeEndEventListener(node, this.onTransitionEnd);
}
},
render: function render() {
if (this.configProvider.csp) {
this.csp = this.configProvider.csp;
}
return this.$slots['default'] && this.$slots['default'][0];
}
};
/***/ }),
/***/ "11a8":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = __webpack_require__("6042");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function noop() {}
exports["default"] = {
functional: true,
render: function render(h, context) {
var _className;
var props = context.props,
_context$listeners = context.listeners,
listeners = _context$listeners === undefined ? {} : _context$listeners;
var prefixCls = props.prefixCls,
locale = props.locale,
showTimePicker = props.showTimePicker,
timePickerDisabled = props.timePickerDisabled;
var _listeners$closeTimeP = listeners.closeTimePicker,
closeTimePicker = _listeners$closeTimeP === undefined ? noop : _listeners$closeTimeP,
_listeners$openTimePi = listeners.openTimePicker,
openTimePicker = _listeners$openTimePi === undefined ? noop : _listeners$openTimePi;
var className = (_className = {}, (0, _defineProperty3["default"])(_className, prefixCls + "-time-picker-btn", true), (0, _defineProperty3["default"])(_className, prefixCls + "-time-picker-btn-disabled", timePickerDisabled), _className);
var onClick = noop;
if (!timePickerDisabled) {
onClick = showTimePicker ? closeTimePicker : openTimePicker;
}
return h(
"a",
{ "class": className, attrs: { role: "button" },
on: {
"click": onClick
}
},
[showTimePicker ? locale.dateSelect : locale.timeSelect]
);
}
};
/***/ }),
/***/ "133a":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.svgBaseProps = undefined;
exports.getThemeFromTypeName = getThemeFromTypeName;
exports.removeTypeTheme = removeTypeTheme;
exports.withThemeSuffix = withThemeSuffix;
exports.alias = alias;
var _warning = __webpack_require__("a7e2");
var _warning2 = _interopRequireDefault(_warning);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
// These props make sure that the SVG behaviours like general text.
// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4
var svgBaseProps = exports.svgBaseProps = {
width: '1em',
height: '1em',
fill: 'currentColor',
'aria-hidden': 'true',
focusable: 'false'
};
var fillTester = /-fill$/;
var outlineTester = /-o$/;
var twoToneTester = /-twotone$/;
function getThemeFromTypeName(type) {
var result = null;
if (fillTester.test(type)) {
result = 'filled';
} else if (outlineTester.test(type)) {
result = 'outlined';
} else if (twoToneTester.test(type)) {
result = 'twoTone';
}
return result;
}
function removeTypeTheme(type) {
return type.replace(fillTester, '').replace(outlineTester, '').replace(twoToneTester, '');
}
function withThemeSuffix(type, theme) {
var result = type;
if (theme === 'filled') {
result += '-fill';
} else if (theme === 'outlined') {
result += '-o';
} else if (theme === 'twoTone') {
result += '-twotone';
} else {
(0, _warning2['default'])(false, 'Icon', 'This icon \'' + type + '\' has unknown theme \'' + theme + '\'');
}
return result;
}
// For alias or compatibility
function alias(type) {
var newType = type;
switch (type) {
case 'cross':
newType = 'close';
break;
// https://github.com/ant-design/ant-design/issues/13007
case 'interation':
newType = 'interaction';
break;
// https://github.com/ant-design/ant-design/issues/16810
case 'canlendar':
newType = 'calendar';
break;
// https://github.com/ant-design/ant-design/issues/17448
case 'colum-height':
newType = 'column-height';
break;
default:
}
(0, _warning2['default'])(newType === type, 'Icon', 'Icon \'' + type + '\' was a typo and is now deprecated, please use \'' + newType + '\' instead.');
return newType;
}
/***/ }),
/***/ "2768":
/***/ (function(module, exports) {
/**
* Checks if `value` is `null` or `undefined`.
*
* @static
* @memberOf _
* @since 4.0.0
* @category Lang
* @param {*} value The value to check.
* @returns {boolean} Returns `true` if `value` is nullish, else `false`.
* @example
*
* _.isNil(null);
* // => true
*
* _.isNil(void 0);
* // => true
*
* _.isNil(NaN);
* // => false
*/
function isNil(value) {
return value == null;
}
module.exports = isNil;
/***/ }),
/***/ "3ea4":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _babelHelperVueJsxMergeProps = __webpack_require__("92fa");
var _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps);
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 _util = __webpack_require__("c021");
var _KeyCode = __webpack_require__("af09");
var _KeyCode2 = _interopRequireDefault(_KeyCode);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
var cachedSelectionStart = void 0;
var cachedSelectionEnd = void 0;
var dateInputInstance = void 0;
var DateInput = {
mixins: [_BaseMixin2['default']],
props: {
prefixCls: _vueTypes2['default'].string,
timePicker: _vueTypes2['default'].object,
value: _vueTypes2['default'].object,
disabledTime: _vueTypes2['default'].any,
format: _vueTypes2['default'].oneOfType([_vueTypes2['default'].string, _vueTypes2['default'].arrayOf(_vueTypes2['default'].string), _vueTypes2['default'].func]),
locale: _vueTypes2['default'].object,
disabledDate: _vueTypes2['default'].func,
// onChange: PropTypes.func,
// onClear: PropTypes.func,
placeholder: _vueTypes2['default'].string,
// onSelect: PropTypes.func,
selectedValue: _vueTypes2['default'].object,
clearIcon: _vueTypes2['default'].any,
inputMode: _vueTypes2['default'].string,
inputReadOnly: _vueTypes2['default'].bool
},
data: function data() {
var selectedValue = this.selectedValue;
return {
str: (0, _util.formatDate)(selectedValue, this.format),
invalid: false,
hasFocus: false
};
},
watch: {
selectedValue: function selectedValue() {
this.setState();
},
format: function format() {
this.setState();
}
},
updated: function updated() {
var _this = this;
this.$nextTick(function () {
if (dateInputInstance && _this.$data.hasFocus && !_this.invalid && !(cachedSelectionStart === 0 && cachedSelectionEnd === 0)) {
dateInputInstance.setSelectionRange(cachedSelectionStart, cachedSelectionEnd);
}
});
},
getInstance: function getInstance() {
return dateInputInstance;
},
methods: {
getDerivedStateFromProps: function getDerivedStateFromProps(nextProps, state) {
var newState = {};
if (dateInputInstance) {
cachedSelectionStart = dateInputInstance.selectionStart;
cachedSelectionEnd = dateInputInstance.selectionEnd;
}
// when popup show, click body will call this, bug!
var selectedValue = nextProps.selectedValue;
if (!state.hasFocus) {
newState = {
str: (0, _util.formatDate)(selectedValue, this.format),
invalid: false
};
}
return newState;
},
onClear: function onClear() {
this.setState({
str: ''
});
this.__emit('clear', null);
},
onInputChange: function onInputChange(e) {
var _e$target = e.target,
str = _e$target.value,
composing = _e$target.composing;
var _str = this.str,
oldStr = _str === undefined ? '' : _str;
if (e.isComposing || composing || oldStr === str) return;
var _$props = this.$props,
disabledDate = _$props.disabledDate,
format = _$props.format,
selectedValue = _$props.selectedValue;
// 没有内容,合法并直接退出
if (!str) {
this.__emit('change', null);
this.setState({
invalid: false,
str: str
});
return;
}
// 不合法直接退出
var parsed = (0, _moment2['default'])(str, format, true);
if (!parsed.isValid()) {
this.setState({
invalid: true,
str: str
});
return;
}
var value = this.value.clone();
value.year(parsed.year()).month(parsed.month()).date(parsed.date()).hour(parsed.hour()).minute(parsed.minute()).second(parsed.second());
if (!value || disabledDate && disabledDate(value)) {
this.setState({
invalid: true,
str: str
});
return;
}
if (selectedValue !== value || selectedValue && value && !selectedValue.isSame(value)) {
this.setState({
invalid: false,
str: str
});
this.__emit('change', value);
}
},
onFocus: function onFocus() {
this.setState({ hasFocus: true });
},
onBlur: function onBlur() {
this.setState(function (prevState, prevProps) {
return {
hasFocus: false,
str: (0, _util.formatDate)(prevProps.value, prevProps.format)
};
});
},
onKeyDown: function onKeyDown(event) {
var keyCode = event.keyCode;
var _$props2 = this.$props,
value = _$props2.value,
disabledDate = _$props2.disabledDate;
if (keyCode === _KeyCode2['default'].ENTER) {
var validateDate = !disabledDate || !disabledDate(value);
if (validateDate) {
this.__emit('select', value.clone());
}
event.preventDefault();
}
},
getRootDOMNode: function getRootDOMNode() {
return this.$el;
},
focus: function focus() {
if (dateInputInstance) {
dateInputInstance.focus();
}
},
saveDateInput: function saveDateInput(dateInput) {
dateInputInstance = dateInput;
}
},
render: function render() {
var h = arguments[0];
var invalid = this.invalid,
str = this.str,
locale = this.locale,
prefixCls = this.prefixCls,
placeholder = this.placeholder,
disabled = this.disabled,
showClear = this.showClear,
inputMode = this.inputMode,
inputReadOnly = this.inputReadOnly;
var clearIcon = (0, _propsUtil.getComponentFromProp)(this, 'clearIcon');
var invalidClass = invalid ? prefixCls + '-input-invalid' : '';
return h(
'div',
{ 'class': prefixCls + '-input-wrap' },
[h(
'div',
{ 'class': prefixCls + '-date-input-wrap' },
[h('input', (0, _babelHelperVueJsxMergeProps2['default'])([{
directives: [{
name: 'ant-ref',
value: this.saveDateInput
}, {
name: 'ant-input'
}]
}, {
'class': prefixCls + '-input ' + invalidClass,
domProps: {
'value': str
},
attrs: {
disabled: disabled,
placeholder: placeholder,
inputMode: inputMode,
readOnly: inputReadOnly
},
on: {
'input': this.onInputChange,
'keydown': this.onKeyDown,
'focus': this.onFocus,
'blur': this.onBlur
}
}]))]
), showClear ? h(
'a',
{
attrs: { role: 'button', title: locale.clear },
on: {
'click': this.onClear
}
},
[clearIcon || h('span', { 'class': prefixCls + '-clear-btn' })]
) : null]
);
}
};
exports['default'] = DateInput;
/***/ }),
/***/ "4046":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _defineProperty2 = __webpack_require__("6042");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _configConsumerProps = __webpack_require__("bad7");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
exports['default'] = {
name: 'ACheckableTag',
model: {
prop: 'checked'
},
props: {
prefixCls: _vueTypes2['default'].string,
checked: Boolean
},
inject: {
configProvider: { 'default': function _default() {
return _configConsumerProps.ConfigConsumerProps;
} }
},
computed: {
classes: function classes() {
var _ref;
var checked = this.checked,
customizePrefixCls = this.prefixCls;
var getPrefixCls = this.configProvider.getPrefixCls;
var prefixCls = getPrefixCls('tag', customizePrefixCls);
return _ref = {}, (0, _defineProperty3['default'])(_ref, '' + prefixCls, true), (0, _defineProperty3['default'])(_ref, prefixCls + '-checkable', true), (0, _defineProperty3['default'])(_ref, prefixCls + '-checkable-checked', checked), _ref;
}
},
methods: {
handleClick: function handleClick() {
var checked = this.checked;
this.$emit('input', !checked);
this.$emit('change', !checked);
}
},
render: function render() {
var h = arguments[0];
var classes = this.classes,
handleClick = this.handleClick,
$slots = this.$slots;
return h(
'div',
{ 'class': classes, on: {
'click': handleClick
}
},
[$slots['default']]
);
}
};
/***/ }),
/***/ "4b93":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.momentToString = exports.stringToMoment = exports.TimeOrTimesType = exports.TimesType = exports.TimeType = undefined;
exports.checkValidate = checkValidate;
var _interopDefault = __webpack_require__("8716");
var _interopDefault2 = _interopRequireDefault(_interopDefault);
var _moment = __webpack_require__("c1df");
var moment = _interopRequireWildcard(_moment);
var _warning = __webpack_require__("a7e2");
var _warning2 = _interopRequireDefault(_warning);
var _isNil = __webpack_require__("2768");
var _isNil2 = _interopRequireDefault(_isNil);
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 }; }
var TimeType = exports.TimeType = {
validator: function validator(value) {
return typeof value === 'string' || (0, _isNil2['default'])(value) || moment.isMoment(value);
}
};
var TimesType = exports.TimesType = {
validator: function validator(value) {
if (Array.isArray(value)) {
return value.length === 0 || value.findIndex(function (val) {
return typeof val !== 'string';
}) === -1 || value.findIndex(function (val) {
return !(0, _isNil2['default'])(val) && !moment.isMoment(val);
}) === -1;
}
return false;
}
};
var TimeOrTimesType = exports.TimeOrTimesType = {
validator: function validator(value) {
if (Array.isArray(value)) {
return value.length === 0 || value.findIndex(function (val) {
return typeof val !== 'string';
}) === -1 || value.findIndex(function (val) {
return !(0, _isNil2['default'])(val) && !moment.isMoment(val);
}) === -1;
} else {
return typeof value === 'string' || (0, _isNil2['default'])(value) || moment.isMoment(value);
}
}
};
function checkValidate(componentName, value, propName, valueFormat) {
var values = Array.isArray(value) ? value : [value];
values.forEach(function (val) {
if (!val) return;
valueFormat && (0, _warning2['default'])((0, _interopDefault2['default'])(moment)(val, valueFormat).isValid(), componentName, 'When set `valueFormat`, `' + propName + '` should provides invalidate string time. ');
!valueFormat && (0, _warning2['default'])((0, _interopDefault2['default'])(moment).isMoment(val) && val.isValid(), componentName, '`' + propName + '` provides invalidate moment time. If you want to set empty value, use `null` instead.');
});
}
var stringToMoment = exports.stringToMoment = function stringToMoment(value, valueFormat) {
if (Array.isArray(value)) {
return value.map(function (val) {
return typeof val === 'string' && val ? (0, _interopDefault2['default'])(moment)(val, valueFormat) : val || null;
});
} else {
return typeof value === 'string' && value ? (0, _interopDefault2['default'])(moment)(value, valueFormat) : value || null;
}
};
var momentToString = exports.momentToString = function momentToString(value, valueFormat) {
if (Array.isArray(value)) {
return value.map(function (val) {
return (0, _interopDefault2['default'])(moment).isMoment(val) ? val.format(valueFormat) : val;
});
} else {
return (0, _interopDefault2['default'])(moment).isMoment(value) ? value.format(valueFormat) : value;
}
};
/***/ }),
/***/ "50f6":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _babelHelperVueJsxMergeProps = __webpack_require__("92fa");
var _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps);
var _extends2 = __webpack_require__("41b2");
var _extends3 = _interopRequireDefault(_extends2);
var _defineProperty2 = __webpack_require__("6042");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _toConsumableArray2 = __webpack_require__("9b57");
var _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);
var _classnames = __webpack_require__("4d26");
var _classnames2 = _interopRequireDefault(_classnames);
var _dist = __webpack_require__("3a9b");
var allIcons = _interopRequireWildcard(_dist);
var _iconsVue = __webpack_require__("8520");
var _iconsVue2 = _interopRequireDefault(_iconsVue);
var _vueTypes = __webpack_require__("7b44");
var _vueTypes2 = _interopRequireDefault(_vueTypes);
var _IconFont = __webpack_require__("bbf5");
var _IconFont2 = _interopRequireDefault(_IconFont);
var _utils = __webpack_require__("133a");
var _warning = __webpack_require__("a7e2");
var _warning2 = _interopRequireDefault(_warning);
var _LocaleReceiver = __webpack_require__("3f5f");
var _LocaleReceiver2 = _interopRequireDefault(_LocaleReceiver);
var _twoTonePrimaryColor = __webpack_require__("f3dc");
var _propsUtil = __webpack_require__("73c8");
var _base = __webpack_require__("baff");
var _base2 = _interopRequireDefault(_base);
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 }; }
// Initial setting
// https://github.com/vueComponent/ant-design-vue/issues/2745
_iconsVue2['default'].add.apply(_iconsVue2['default'], (0, _toConsumableArray3['default'])(Object.keys(allIcons).filter(function (key) {
return key !== 'default';
}).map(function (key) {
return allIcons[key];
})));
(0, _twoTonePrimaryColor.setTwoToneColor)('#1890ff');
var defaultTheme = 'outlined';
var dangerousTheme = void 0;
function renderIcon(h, locale, context) {
var _classNames;
var props = context.$props,
$slots = context.$slots;
var listeners = (0, _propsUtil.getListeners)(context);
var type = props.type,
Component = props.component,
viewBox = props.viewBox,
spin = props.spin,
theme = props.theme,
twoToneColor = props.twoToneColor,
rotate = props.rotate,
tabIndex = props.tabIndex;
var children = (0, _propsUtil.filterEmpty)($slots['default']);
children = children.length === 0 ? undefined : children;
(0, _warning2['default'])(Boolean(type || Component || children), 'Icon', 'Icon should have `type` prop or `component` prop or `children`.');
var classString = (0, _classnames2['default'])((_classNames = {}, (0, _defineProperty3['default'])(_classNames, 'anticon', true), (0, _defineProperty3['default'])(_classNames, 'anticon-' + type, !!type), _classNames));
var svgClassString = (0, _classnames2['default'])((0, _defineProperty3['default'])({}, 'anticon-spin', !!spin || type === 'loading'));
var svgStyle = rotate ? {
msTransform: 'rotate(' + rotate + 'deg)',
transform: 'rotate(' + rotate + 'deg)'
} : undefined;
var innerSvgProps = {
attrs: (0, _extends3['default'])({}, _utils.svgBaseProps, {
viewBox: viewBox
}),
'class': svgClassString,
style: svgStyle
};
if (!viewBox) {
delete innerSvgProps.attrs.viewBox;
}
var renderInnerNode = function renderInnerNode() {
// component > children > type
if (Component) {
return h(
Component,
innerSvgProps,
[children]
);
}
if (children) {
(0, _warning2['default'])(Boolean(viewBox) || children.length === 1 && children[0].tag === 'use', 'Icon', 'Make sure that you provide correct `viewBox`' + ' prop (default `0 0 1024 1024`) to the icon.');
var _innerSvgProps = {
attrs: (0, _extends3['default'])({}, _utils.svgBaseProps),
'class': svgClassString,
style: svgStyle
};
return h(
'svg',
(0, _babelHelperVueJsxMergeProps2['default'])([_innerSvgProps, {
attrs: { viewBox: viewBox }
}]),
[children]
);
}
if (typeof type === 'string') {
var computedType = type;
if (theme) {
var themeInName = (0, _utils.getThemeFromTypeName)(type);
(0, _warning2['default'])(!themeInName || theme === themeInName, 'Icon', 'The icon name \'' + type + '\' already specify a theme \'' + themeInName + '\',' + (' the \'theme\' prop \'' + theme + '\' will be ignored.'));
}
computedType = (0, _utils.withThemeSuffix)((0, _utils.removeTypeTheme)((0, _utils.alias)(computedType)), dangerousTheme || theme || defaultTheme);
return h(_iconsVue2['default'], {
attrs: {
focusable: 'false',
type: computedType,
primaryColor: twoToneColor
},
'class': svgClassString, style: svgStyle
});
}
};
var iconTabIndex = tabIndex;
if (iconTabIndex === undefined && 'click' in listeners) {
iconTabIndex = -1;
}
// functional component not support nativeOn,https://github.com/vuejs/vue/issues/7526
var iProps = {
attrs: {
'aria-label': type && locale.icon + ': ' + type,
tabIndex: iconTabIndex
},
on: listeners,
'class': classString,
staticClass: ''
};
return h(
'i',
iProps,
[renderInnerNode()]
);
}
var Icon = {
name: 'AIcon',
props: {
tabIndex: _vueTypes2['default'].number,
type: _vueTypes2['default'].string,
component: _vueTypes2['default'].any,
viewBox: _vueTypes2['default'].any,
spin: _vueTypes2['default'].bool.def(false),
rotate: _vueTypes2['default'].number,
theme: _vueTypes2['default'].oneOf(['filled', 'outlined', 'twoTone']),
twoToneColor: _vueTypes2['default'].string,
role: _vueTypes2['default'].string
},
render: function render(h) {
var _this = this;
return h(_LocaleReceiver2['default'], {
attrs: {
componentName: 'Icon'
},
scopedSlots: { 'default': function _default(locale) {
return renderIcon(h, locale, _this);
} }
});
}
};
Icon.createFromIconfontCN = _IconFont2['default'];
Icon.getTwoToneColor = _twoTonePrimaryColor.getTwoToneColor;
Icon.setTwoToneColor = _twoTonePrimaryColor.setTwoToneColor;
/* istanbul ignore next */
Icon.install = function (Vue) {
Vue.use(_base2['default']);
Vue.component(Icon.name, Icon);
};
exports['default'] = Icon;
/***/ }),
/***/ "51f8":
/***/ (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);
var _slicedToArray2 = __webpack_require__("b24f");
var _slicedToArray3 = _interopRequireDefault(_slicedToArray2);
var _moment = __webpack_require__("c1df");
var moment = _interopRequireWildcard(_moment);
var _RangeCalendar = __webpack_require__("d1bc");
var _RangeCalendar2 = _interopRequireDefault(_RangeCalendar);
var _Picker = __webpack_require__("5b4e4");
var _Picker2 = _interopRequireDefault(_Picker);
var _classnames = __webpack_require__("4d26");
var _classnames2 = _interopRequireDefault(_classnames);
var _shallowequal = __webpack_require__("1b2b");
var _shallowequal2 = _interopRequireDefault(_shallowequal);
var _icon = __webpack_require__("50f6");
var _icon2 = _interopRequireDefault(_icon);
var _tag = __webpack_require__("880b");
var _tag2 = _interopRequireDefault(_tag);
var _configConsumerProps = __webpack_require__("bad7");
var _interopDefault = __webpack_require__("8716");
var _interopDefault2 = _interopRequireDefault(_interopDefault);
var _interface = __webpack_require__("68aa");
var _propsUtil = __webpack_require__("73c8");
var _BaseMixin = __webpack_require__("48bb");
var _BaseMixin2 = _interopRequireDefault(_BaseMixin);
var _utils = __webpack_require__("0025");
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 noop() {}
function getShowDateFromValue(value, mode) {
var _value = (0, _slicedToArray3['default'])(value, 2),
start = _value[0],
end = _value[1];
// value could be an empty array, then we should not reset showDate
if (!start && !end) {
return;
}
if (mode && mode[0] === 'month') {
return [start, end];
}
var newEnd = end && end.isSame(start, 'month') ? end.clone().add(1, 'month') : end;
return [start, newEnd];
}
function pickerValueAdapter(value) {
if (!value) {
return;
}
if (Array.isArray(value)) {
return value;
}
return [value, value.clone().add(1, 'month')];
}
function isEmptyArray(arr) {
if (Array.isArray(arr)) {
return arr.length === 0 || arr.every(function (i) {
return !i;
});
}
return false;
}
function fixLocale(value, localeCode) {
if (!localeCode) {
return;
}
if (!value || value.length === 0) {
return;
}
var _value2 = (0, _slicedToArray3['default'])(value, 2),
start = _value2[0],
end = _value2[1];
if (start) {
start.locale(localeCode);
}
if (end) {
end.locale(localeCode);
}
}
exports['default'] = {
name: 'ARangePicker',
mixins: [_BaseMixin2['default']],
model: {
prop: 'value',
event: 'change'
},
props: (0, _propsUtil.initDefaultProps)((0, _interface.RangePickerProps)(), {
allowClear: true,
showToday: false,
separator: '~'
}),
inject: {
configProvider: { 'default': function _default() {
return _configConsumerProps.ConfigConsumerProps;
} }
},
data: function data() {
var value = this.value || this.defaultValue || [];
var _value3 = (0, _slicedToArray3['default'])(value, 2),
start = _value3[0],
end = _value3[1];
if (start && !(0, _interopDefault2['default'])(moment).isMoment(start) || end && !(0, _interopDefault2['default'])(moment).isMoment(end)) {
throw new Error('The value/defaultValue of RangePicker must be a moment object array after `antd@2.0`, ' + 'see: https://u.ant.design/date-picker-value');
}
var pickerValue = !value || isEmptyArray(value) ? this.defaultPickerValue : value;
return {
sValue: value,
sShowDate: pickerValueAdapter(pickerValue || (0, _interopDefault2['default'])(moment)()),
sOpen: this.open,
sHoverValue: []
};
},
watch: {
value: function value(val) {
var value = val || [];
var state = { sValue: value };
if (!(0, _shallowequal2['default'])(val, this.sValue)) {
state = (0, _extends3['default'])({}, state, {
sShowDate: getShowDateFromValue(value, this.mode) || this.sShowDate
});
}
this.setState(state);
},
open: function open(val) {
var state = { sOpen: val };
this.setState(state);
},
sOpen: function sOpen(val, oldVal) {
var _this = this;
this.$nextTick(function () {
if (!(0, _propsUtil.hasProp)(_this, 'open') && oldVal && !val) {
_this.focus();
}
});
}
},
methods: {
setValue: function setValue(value, hidePanel) {
this.handleChange(value);
if ((hidePanel || !this.showTime) && !(0, _propsUtil.hasProp)(this, 'open')) {
this.setState({ sOpen: false });
}
},
clearSelection: function clearSelection(e) {
e.preventDefault();
e.stopPropagation();
this.setState({ sValue: [] });
this.handleChange([]);
},
clearHoverValue: function clearHoverValue() {
this.setState({ sHoverValue: [] });
},
handleChange: function handleChange(value) {
if (!(0, _propsUtil.hasProp)(this, 'value')) {
this.setState(function (_ref) {
var sShowDate = _ref.sShowDate;
return {
sValue: value,
sShowDate: getShowDateFromValue(value) || sShowDate
};
});
}
if (value[0] && value[1] && value[0].diff(value[1]) > 0) {
value[1] = undefined;
}
var _value4 = (0, _slicedToArray3['default'])(value, 2),
start = _value4[0],
end = _value4[1];
this.$emit('change', value, [(0, _utils.formatDate)(start, this.format), (0, _utils.formatDate)(end, this.format)]);
},
handleOpenChange: function handleOpenChange(open) {
if (!(0, _propsUtil.hasProp)(this, 'open')) {
this.setState({ sOpen: open });
}
if (open === false) {
this.clearHoverValue();
}
this.$emit('openChange', open);
},
handleShowDateChange: function handleShowDateChange(showDate) {
this.setState({ sShowDate: showDate });
},
handleHoverChange: function handleHoverChange(hoverValue) {
this.setState({ sHoverValue: hoverValue });
},
handleRangeMouseLeave: function handleRangeMouseLeave() {
if (this.sOpen) {
this.clearHoverValue();
}
},
handleCalendarInputSelect: function handleCalendarInputSelect(value) {
var _value5 = (0, _slicedToArray3['default'])(value, 1),
start = _value5[0];
if (!start) {
return;
}
this.setState(function (_ref2) {
var sShowDate = _ref2.sShowDate;
return {
sValue: value,
sShowDate: getShowDateFromValue(value) || sShowDate
};
});
},
handleRangeClick: function handleRangeClick(value) {
if (typeof value === 'function') {
value = value();
}
this.setValue(value, true);
this.$emit('ok', value);
this.$emit('openChange', false);
},
onMouseEnter: function onMouseEnter(e) {
this.$emit('mouseenter', e);
},
onMouseLeave: function onMouseLeave(e) {
this.$emit('mouseleave', e);
},
focus: function focus() {
this.$refs.picker.focus();
},
blur: function blur() {
this.$refs.picker.blur();
},
renderFooter: function renderFooter() {
var _this2 = this;
var h = this.$createElement;
var ranges = this.ranges,
$scopedSlots = this.$scopedSlots,
$slots = this.$slots;
var prefixCls = this._prefixCls,
tagPrefixCls = this._tagPrefixCls;
var renderExtraFooter = this.renderExtraFooter || $scopedSlots.renderExtraFooter || $slots.renderExtraFooter;
if (!ranges && !renderExtraFooter) {
return null;
}
var customFooter = renderExtraFooter ? h(
'div',
{ 'class': prefixCls + '-footer-extra', key: 'extra' },
[typeof renderExtraFooter === 'function' ? renderExtraFooter() : renderExtraFooter]
) : null;
var operations = ranges && Object.keys(ranges).map(function (range) {
var value = ranges[range];
var hoverValue = typeof value === 'function' ? value.call(_this2) : value;
return h(
_tag2['default'],
{
key: range,
attrs: { prefixCls: tagPrefixCls,
color: 'blue'
},
on: {
'click': function click() {
return _this2.handleRangeClick(value);
},
'mouseenter': function mouseenter() {
return _this2.setState({ sHoverValue: hoverValue });
},
'mouseleave': _this2.handleRangeMouseLeave
}
},
[range]
);
});
var rangeNode = operations && operations.length > 0 ? h(
'div',
{ 'class': prefixCls + '-footer-extra ' + prefixCls + '-range-quick-selector', key: 'range' },
[operations]
) : null;
return [rangeNode, customFooter];
}
},
render: function render() {
var _classNames,
_this3 = this;
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 value = this.sValue,
showDate = this.sShowDate,
hoverValue = this.sHoverValue,
open = this.sOpen,
$scopedSlots = this.$scopedSlots;
var listeners = (0, _propsUtil.getListeners)(this);
var _listeners$calendarCh = listeners.calendarChange,
calendarChange = _listeners$calendarCh === undefined ? noop : _listeners$calendarCh,
_listeners$ok = listeners.ok,
ok = _listeners$ok === undefined ? noop : _listeners$ok,
_listeners$focus = listeners.focus,
focus = _listeners$focus === undefined ? noop : _listeners$focus,
_listeners$blur = listeners.blur,
blur = _listeners$blur === undefined ? noop : _listeners$blur,
_listeners$panelChang = listeners.panelChange,
panelChange = _listeners$panelChang === undefined ? noop : _listeners$panelChang;
var customizePrefixCls = props.prefixCls,
customizeTagPrefixCls = props.tagPrefixCls,
popupStyle = props.popupStyle,
disabledDate = props.disabledDate,
disabledTime = props.disabledTime,
showTime = props.showTime,
showToday = props.showToday,
ranges = props.ranges,
locale = props.locale,
localeCode = props.localeCode,
format = props.format,
separator = props.separator,
inputReadOnly = props.inputReadOnly;
var getPrefixCls = this.configProvider.getPrefixCls;
var prefixCls = getPrefixCls('calendar', customizePrefixCls);
var tagPrefixCls = getPrefixCls('tag', customizeTagPrefixCls);
this._prefixCls = prefixCls;
this._tagPrefixCls = tagPrefixCls;
var dateRender = props.dateRender || $scopedSlots.dateRender;
fixLocale(value, localeCode);
fixLocale(showDate, localeCode);
var calendarClassName = (0, _classnames2['default'])((_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls + '-time', showTime), (0, _defineProperty3['default'])(_classNames, prefixCls + '-range-with-ranges', ranges), _classNames));
// 需要选择时间时,点击 ok 时才触发 onChange
var pickerChangeHandler = {
on: {
change: this.handleChange
}
};
var calendarProps = {
on: {
ok: this.handleChange
},
props: {}
};
if (prop