UNPKG

ken-form-design

Version:

基于vue、ant-design-vue的表单设计器,可视化开发表单

1,689 lines (1,413 loc) 173 kB
((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