UNPKG

k-form-design

Version:

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

1,722 lines (1,407 loc) 144 kB
((typeof self !== 'undefined' ? self : this)["webpackJsonpk_form_design"] = (typeof self !== 'undefined' ? self : this)["webpackJsonpk_form_design"] || []).push([[5],{ /***/ "0055": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.propTypes = exports.defaultProps = undefined; var _vueTypes = __webpack_require__("7b44"); var _vueTypes2 = _interopRequireDefault(_vueTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var defaultProps = exports.defaultProps = { // className: '', percent: 0, prefixCls: 'rc-progress', strokeColor: '#2db7f5', strokeLinecap: 'round', strokeWidth: 1, // style: {}, trailColor: '#D9D9D9', trailWidth: 1 }; var mixedType = _vueTypes2['default'].oneOfType([_vueTypes2['default'].number, _vueTypes2['default'].string]); var propTypes = exports.propTypes = { // className: PropTypes.string, percent: _vueTypes2['default'].oneOfType([mixedType, _vueTypes2['default'].arrayOf(mixedType)]), prefixCls: _vueTypes2['default'].string, strokeColor: _vueTypes2['default'].oneOfType([_vueTypes2['default'].string, _vueTypes2['default'].arrayOf(_vueTypes2['default'].oneOfType([_vueTypes2['default'].string, _vueTypes2['default'].object])), _vueTypes2['default'].object]), strokeLinecap: _vueTypes2['default'].oneOf(['butt', 'round', 'square']), strokeWidth: mixedType, // style: PropTypes.object, trailColor: _vueTypes2['default'].string, trailWidth: mixedType }; /***/ }), /***/ "02d7": /***/ (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 _vueTypes = __webpack_require__("7b44"); var _vueTypes2 = _interopRequireDefault(_vueTypes); var _BaseMixin = __webpack_require__("48bb"); var _BaseMixin2 = _interopRequireDefault(_BaseMixin); var _classnames = __webpack_require__("4d26"); var _classnames2 = _interopRequireDefault(_classnames); var _uid = __webpack_require__("5e22"); var _uid2 = _interopRequireDefault(_uid); var _warning = __webpack_require__("a7e2"); var _warning2 = _interopRequireDefault(_warning); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var IFRAME_STYLE = { position: 'absolute', top: 0, opacity: 0, filter: 'alpha(opacity=0)', left: 0, zIndex: 9999 }; // diferent from AjaxUpload, can only upload on at one time, serial seriously var IframeUploader = { mixins: [_BaseMixin2['default']], props: { componentTag: _vueTypes2['default'].string, // style: PropTypes.object, disabled: _vueTypes2['default'].bool, prefixCls: _vueTypes2['default'].string, // className: PropTypes.string, accept: _vueTypes2['default'].string, // onStart: PropTypes.func, multiple: _vueTypes2['default'].bool, // children: PropTypes.any, data: _vueTypes2['default'].oneOfType([_vueTypes2['default'].object, _vueTypes2['default'].func]), action: _vueTypes2['default'].oneOfType([_vueTypes2['default'].string, _vueTypes2['default'].func]), name: _vueTypes2['default'].string }, data: function data() { this.file = {}; return { uploading: false }; }, methods: { onLoad: function onLoad() { if (!this.uploading) { return; } var file = this.file; var response = void 0; try { var doc = this.getIframeDocument(); var script = doc.getElementsByTagName('script')[0]; if (script && script.parentNode === doc.body) { doc.body.removeChild(script); } response = doc.body.innerHTML; this.$emit('success', response, file); } catch (err) { (0, _warning2['default'])(false, 'cross domain error for Upload. Maybe server should return document.domain script. see Note from https://github.com/react-component/upload'); response = 'cross-domain'; this.$emit('error', err, null, file); } this.endUpload(); }, onChange: function onChange() { var _this = this; var target = this.getFormInputNode(); // ie8/9 don't support FileList Object // http://stackoverflow.com/questions/12830058/ie8-input-type-file-get-files var file = this.file = { uid: (0, _uid2['default'])(), name: target.value && target.value.substring(target.value.lastIndexOf('\\') + 1, target.value.length) }; this.startUpload(); var props = this.$props; if (!props.beforeUpload) { return this.post(file); } var before = props.beforeUpload(file); if (before && before.then) { before.then(function () { _this.post(file); }, function () { _this.endUpload(); }); } else if (before !== false) { this.post(file); } else { this.endUpload(); } }, getIframeNode: function getIframeNode() { return this.$refs.iframeRef; }, getIframeDocument: function getIframeDocument() { return this.getIframeNode().contentDocument; }, getFormNode: function getFormNode() { return this.getIframeDocument().getElementById('form'); }, getFormInputNode: function getFormInputNode() { return this.getIframeDocument().getElementById('input'); }, getFormDataNode: function getFormDataNode() { return this.getIframeDocument().getElementById('data'); }, getFileForMultiple: function getFileForMultiple(file) { return this.multiple ? [file] : file; }, getIframeHTML: function getIframeHTML(domain) { var domainScript = ''; var domainInput = ''; if (domain) { var script = 'script'; domainScript = '<' + script + '>document.domain="' + domain + '";</' + script + '>'; domainInput = '<input name="_documentDomain" value="' + domain + '" />'; } return '\n <!DOCTYPE html>\n <html>\n <head>\n <meta http-equiv="X-UA-Compatible" content="IE=edge" />\n <style>\n body,html {padding:0;margin:0;border:0;overflow:hidden;}\n </style>\n ' + domainScript + '\n </head>\n <body>\n <form method="post"\n encType="multipart/form-data"\n action="" id="form"\n style="display:block;height:9999px;position:relative;overflow:hidden;">\n <input id="input" type="file"\n name="' + this.name + '"\n style="position:absolute;top:0;right:0;height:9999px;font-size:9999px;cursor:pointer;"/>\n ' + domainInput + '\n <span id="data"></span>\n </form>\n </body>\n </html>\n '; }, initIframeSrc: function initIframeSrc() { if (this.domain) { this.getIframeNode().src = 'javascript:void((function(){\n var d = document;\n d.open();\n d.domain=\'' + this.domain + '\';\n d.write(\'\');\n d.close();\n })())'; } }, initIframe: function initIframe() { var iframeNode = this.getIframeNode(); var win = iframeNode.contentWindow; var doc = void 0; this.domain = this.domain || ''; this.initIframeSrc(); try { doc = win.document; } catch (e) { this.domain = document.domain; this.initIframeSrc(); win = iframeNode.contentWindow; doc = win.document; } doc.open('text/html', 'replace'); doc.write(this.getIframeHTML(this.domain)); doc.close(); this.getFormInputNode().onchange = this.onChange; }, endUpload: function endUpload() { if (this.uploading) { this.file = {}; // hack avoid batch this.uploading = false; this.setState({ uploading: false }); this.initIframe(); } }, startUpload: function startUpload() { if (!this.uploading) { this.uploading = true; this.setState({ uploading: true }); } }, updateIframeWH: function updateIframeWH() { var rootNode = this.$el; var iframeNode = this.getIframeNode(); iframeNode.style.height = rootNode.offsetHeight + 'px'; iframeNode.style.width = rootNode.offsetWidth + 'px'; }, abort: function abort(file) { if (file) { var uid = file; if (file && file.uid) { uid = file.uid; } if (uid === this.file.uid) { this.endUpload(); } } else { this.endUpload(); } }, post: function post(file) { var _this2 = this; var formNode = this.getFormNode(); var dataSpan = this.getFormDataNode(); var data = this.$props.data; if (typeof data === 'function') { data = data(file); } var inputs = document.createDocumentFragment(); for (var key in data) { if (data.hasOwnProperty(key)) { var input = document.createElement('input'); input.setAttribute('name', key); input.value = data[key]; inputs.appendChild(input); } } dataSpan.appendChild(inputs); new Promise(function (resolve) { var action = _this2.action; if (typeof action === 'function') { return resolve(action(file)); } resolve(action); }).then(function (action) { formNode.setAttribute('action', action); formNode.submit(); dataSpan.innerHTML = ''; _this2.$emit('start', file); }); } }, mounted: function mounted() { var _this3 = this; this.$nextTick(function () { _this3.updateIframeWH(); _this3.initIframe(); }); }, updated: function updated() { var _this4 = this; this.$nextTick(function () { _this4.updateIframeWH(); }); }, render: function render() { var _classNames; var h = arguments[0]; var _$props = this.$props, Tag = _$props.componentTag, disabled = _$props.disabled, prefixCls = _$props.prefixCls; var iframeStyle = (0, _extends3['default'])({}, IFRAME_STYLE, { display: this.uploading || disabled ? 'none' : '' }); var cls = (0, _classnames2['default'])((_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls, true), (0, _defineProperty3['default'])(_classNames, prefixCls + '-disabled', disabled), _classNames)); return h( Tag, { attrs: { className: cls }, style: { position: 'relative', zIndex: 0 } }, [h('iframe', { ref: 'iframeRef', on: { 'load': this.onLoad }, style: iframeStyle }), this.$slots['default']] ); } }; exports['default'] = IframeUploader; /***/ }), /***/ "0606": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _extends2 = __webpack_require__("41b2"); var _extends3 = _interopRequireDefault(_extends2); var _propsUtil = __webpack_require__("73c8"); var _Upload = __webpack_require__("eb7b"); var _Upload2 = _interopRequireDefault(_Upload); var _interface = __webpack_require__("80b9"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = { name: 'AUploadDragger', props: _interface.UploadProps, render: function render() { var h = arguments[0]; var props = (0, _propsUtil.getOptionProps)(this); var draggerProps = { props: (0, _extends3['default'])({}, props, { type: 'drag' }), on: (0, _propsUtil.getListeners)(this), style: { height: this.height } }; return h( _Upload2['default'], draggerProps, [this.$slots['default']] ); } }; /***/ }), /***/ "099a": /***/ (function(module, exports) { /** * A specialized version of `_.indexOf` which performs strict equality * comparisons of values, i.e. `===`. * * @private * @param {Array} array The array to inspect. * @param {*} value The value to search for. * @param {number} fromIndex The index to search from. * @returns {number} Returns the index of the matched value, else `-1`. */ function strictIndexOf(array, value, fromIndex) { var index = fromIndex - 1, length = array.length; while (++index < length) { if (array[index] === value) { return index; } } return -1; } module.exports = strictIndexOf; /***/ }), /***/ "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; } /***/ }), /***/ "1c87": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _babelHelperVueJsxMergeProps = __webpack_require__("92fa"); var _babelHelperVueJsxMergeProps2 = _interopRequireDefault(_babelHelperVueJsxMergeProps); var _objectWithoutProperties2 = __webpack_require__("8e8e"); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _vue = __webpack_require__("8bbf"); var _vue2 = _interopRequireDefault(_vue); var _vueRef = __webpack_require__("46cf"); var _vueRef2 = _interopRequireDefault(_vueRef); var _propsUtil = __webpack_require__("73c8"); var _enhancer = __webpack_require__("e988"); var _enhancer2 = _interopRequireDefault(_enhancer); var _types = __webpack_require__("0055"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } _vue2['default'].use(_vueRef2['default'], { name: 'ant-ref' }); var Line = { props: (0, _propsUtil.initDefaultProps)(_types.propTypes, _types.defaultProps), created: function created() { this.paths = {}; }, render: function render() { var _this = this; var h = arguments[0]; var _$props = this.$props, percent = _$props.percent, prefixCls = _$props.prefixCls, strokeColor = _$props.strokeColor, strokeLinecap = _$props.strokeLinecap, strokeWidth = _$props.strokeWidth, trailColor = _$props.trailColor, trailWidth = _$props.trailWidth, transition = _$props.transition, restProps = (0, _objectWithoutProperties3['default'])(_$props, ['percent', 'prefixCls', 'strokeColor', 'strokeLinecap', 'strokeWidth', 'trailColor', 'trailWidth', 'transition']); delete restProps.gapPosition; var percentList = Array.isArray(percent) ? percent : [percent]; var strokeColorList = Array.isArray(strokeColor) ? strokeColor : [strokeColor]; var center = strokeWidth / 2; var right = 100 - strokeWidth / 2; var pathString = 'M ' + (strokeLinecap === 'round' ? center : 0) + ',' + center + '\n L ' + (strokeLinecap === 'round' ? right : 100) + ',' + center; var viewBoxString = '0 0 100 ' + strokeWidth; var stackPtg = 0; var pathFirst = { attrs: { d: pathString, 'stroke-linecap': strokeLinecap, stroke: trailColor, 'stroke-width': trailWidth || strokeWidth, 'fill-opacity': '0' }, 'class': prefixCls + '-line-trail' }; return h( 'svg', (0, _babelHelperVueJsxMergeProps2['default'])([{ 'class': prefixCls + '-line', attrs: { viewBox: viewBoxString, preserveAspectRatio: 'none' } }, restProps]), [h('path', pathFirst), percentList.map(function (ptg, index) { var pathStyle = { strokeDasharray: ptg + 'px, 100px', strokeDashoffset: '-' + stackPtg + 'px', transition: transition || 'stroke-dashoffset 0.3s ease 0s, stroke-dasharray .3s ease 0s, stroke 0.3s linear' }; var color = strokeColorList[index] || strokeColorList[strokeColorList.length - 1]; stackPtg += ptg; var pathProps = { key: index, attrs: { d: pathString, 'stroke-linecap': strokeLinecap, stroke: color, 'stroke-width': strokeWidth, 'fill-opacity': '0' }, 'class': prefixCls + '-line-path', style: pathStyle, directives: [{ name: 'ant-ref', value: function value(c) { _this.paths[index] = c; } }] }; return h('path', pathProps); })] ); } }; exports['default'] = (0, _enhancer2['default'])(Line); /***/ }), /***/ "243f": /***/ (function(module, exports, __webpack_require__) { var baseEach = __webpack_require__("48a0"); /** * Aggregates elements of `collection` on `accumulator` with keys transformed * by `iteratee` and values set by `setter`. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} setter The function to set `accumulator` values. * @param {Function} iteratee The iteratee to transform keys. * @param {Object} accumulator The initial aggregated object. * @returns {Function} Returns `accumulator`. */ function baseAggregator(collection, setter, iteratee, accumulator) { baseEach(collection, function(value, key, collection) { setter(accumulator, value, iteratee(value), collection); }); return accumulator; } module.exports = baseAggregator; /***/ }), /***/ "25d7": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _vueTypes = __webpack_require__("7b44"); var _vueTypes2 = _interopRequireDefault(_vueTypes); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } exports['default'] = { props: { prefixCls: _vueTypes2['default'].string, overlay: _vueTypes2['default'].any, trigger: _vueTypes2['default'].any }, updated: function updated() { var trigger = this.trigger; if (trigger) { trigger.forcePopupAlign(); } }, render: function render() { var h = arguments[0]; var overlay = this.overlay, prefixCls = this.prefixCls; return h( 'div', { 'class': prefixCls + '-inner', attrs: { role: 'tooltip' } }, [typeof overlay === 'function' ? overlay() : overlay] ); } }; /***/ }), /***/ "260e": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.handleGradient = exports.sortGradient = undefined; var _extends2 = __webpack_require__("41b2"); var _extends3 = _interopRequireDefault(_extends2); var _objectWithoutProperties2 = __webpack_require__("8e8e"); var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2); var _slicedToArray2 = __webpack_require__("b24f"); var _slicedToArray3 = _interopRequireDefault(_slicedToArray2); var _utils = __webpack_require__("a74f"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } /** * { * '0%': '#afc163', * '75%': '#009900', * '50%': 'green', ====> '#afc163 0%, #66FF00 25%, #00CC00 50%, #009900 75%, #ffffff 100%' * '25%': '#66FF00', * '100%': '#ffffff' * } */ var sortGradient = exports.sortGradient = function sortGradient(gradients) { var tempArr = []; // eslint-disable-next-line no-restricted-syntax var _iteratorNormalCompletion = true; var _didIteratorError = false; var _iteratorError = undefined; try { for (var _iterator = Object.entries(gradients)[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { var _ref = _step.value; var _ref2 = (0, _slicedToArray3['default'])(_ref, 2); var key = _ref2[0]; var value = _ref2[1]; var formatKey = parseFloat(key.replace(/%/g, '')); if (isNaN(formatKey)) { return {}; } tempArr.push({ key: formatKey, value: value }); } } catch (err) { _didIteratorError = true; _iteratorError = err; } finally { try { if (!_iteratorNormalCompletion && _iterator['return']) { _iterator['return'](); } } finally { if (_didIteratorError) { throw _iteratorError; } } } tempArr = tempArr.sort(function (a, b) { return a.key - b.key; }); return tempArr.map(function (_ref3) { var key = _ref3.key, value = _ref3.value; return value + ' ' + key + '%'; }).join(', '); }; /** * { * '0%': '#afc163', * '25%': '#66FF00', * '50%': '#00CC00', ====> linear-gradient(to right, #afc163 0%, #66FF00 25%, * '75%': '#009900', #00CC00 50%, #009900 75%, #ffffff 100%) * '100%': '#ffffff' * } * * Then this man came to realize the truth: * Besides six pence, there is the moon. * Besides bread and butter, there is the bug. * And... * Besides women, there is the code. */ var handleGradient = function handleGradient(strokeColor) { var _strokeColor$from = strokeColor.from, from = _strokeColor$from === undefined ? '#1890ff' : _strokeColor$from, _strokeColor$to = strokeColor.to, to = _strokeColor$to === undefined ? '#1890ff' : _strokeColor$to, _strokeColor$directio = strokeColor.direction, direction = _strokeColor$directio === undefined ? 'to right' : _strokeColor$directio, rest = (0, _objectWithoutProperties3['default'])(strokeColor, ['from', 'to', 'direction']); if (Object.keys(rest).length !== 0) { var sortedGradients = sortGradient(rest); return { backgroundImage: 'linear-gradient(' + direction + ', ' + sortedGradients + ')' }; } return { backgroundImage: 'linear-gradient(' + direction + ', ' + from + ', ' + to + ')' }; }; exports.handleGradient = handleGradient; var Line = { functional: true, render: function render(h, context) { var props = context.props, children = context.children; var prefixCls = props.prefixCls, percent = props.percent, successPercent = props.successPercent, strokeWidth = props.strokeWidth, size = props.size, strokeColor = props.strokeColor, strokeLinecap = props.strokeLinecap; var backgroundProps = void 0; if (strokeColor && typeof strokeColor !== 'string') { backgroundProps = handleGradient(strokeColor); } else { backgroundProps = { background: strokeColor }; } var percentStyle = (0, _extends3['default'])({ width: (0, _utils.validProgress)(percent) + '%', height: (strokeWidth || (size === 'small' ? 6 : 8)) + 'px', background: strokeColor, borderRadius: strokeLinecap === 'square' ? 0 : '100px' }, backgroundProps); var successPercentStyle = { width: (0, _utils.validProgress)(successPercent) + '%', height: (strokeWidth || (size === 'small' ? 6 : 8)) + 'px', borderRadius: strokeLinecap === 'square' ? 0 : '' }; var successSegment = successPercent !== undefined ? h('div', { 'class': prefixCls + '-success-bg', style: successPercentStyle }) : null; return h('div', [h( 'div', { 'class': prefixCls + '-outer' }, [h( 'div', { 'class': prefixCls + '-inner' }, [h('div', { 'class': prefixCls + '-bg', style: percentStyle }), successSegment] )] ), children]); } }; exports['default'] = Line; /***/ }), /***/ "2c66": /***/ (function(module, exports, __webpack_require__) { var SetCache = __webpack_require__("d612"), arrayIncludes = __webpack_require__("8db3"), arrayIncludesWith = __webpack_require__("5edf"), cacheHas = __webpack_require__("c584"), createSet = __webpack_require__("750a"), setToArray = __webpack_require__("ac41"); /** Used as the size to enable large array optimizations. */ var LARGE_ARRAY_SIZE = 200; /** * The base implementation of `_.uniqBy` without support for iteratee shorthands. * * @private * @param {Array} array The array to inspect. * @param {Function} [iteratee] The iteratee invoked per element. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns the new duplicate free array. */ function baseUniq(array, iteratee, comparator) { var index = -1, includes = arrayIncludes, length = array.length, isCommon = true, result = [], seen = result; if (comparator) { isCommon = false; includes = arrayIncludesWith; } else if (length >= LARGE_ARRAY_SIZE) { var set = iteratee ? null : createSet(array); if (set) { return setToArray(set); } isCommon = false; includes = cacheHas; seen = new SetCache; } else { seen = iteratee ? [] : result; } outer: while (++index < length) { var value = array[index], computed = iteratee ? iteratee(value) : value; value = (comparator || value !== 0) ? value : 0; if (isCommon && computed === computed) { var seenIndex = seen.length; while (seenIndex--) { if (seen[seenIndex] === computed) { continue outer; } } if (iteratee) { seen.push(computed); } result.push(value); } else if (!includes(seen, computed, comparator)) { if (seen !== result) { seen.push(computed); } result.push(value); } } return result; } module.exports = baseUniq; /***/ }), /***/ "2d2a": /***/ (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 _propsUtil = __webpack_require__("73c8"); var _BaseMixin = __webpack_require__("48bb"); var _BaseMixin2 = _interopRequireDefault(_BaseMixin); var _AjaxUploader = __webpack_require__("7f91"); var _AjaxUploader2 = _interopRequireDefault(_AjaxUploader); var _IframeUploader = __webpack_require__("02d7"); var _IframeUploader2 = _interopRequireDefault(_IframeUploader); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } function empty() {} var uploadProps = { componentTag: _vueTypes2['default'].string, prefixCls: _vueTypes2['default'].string, action: _vueTypes2['default'].oneOfType([_vueTypes2['default'].string, _vueTypes2['default'].func]), name: _vueTypes2['default'].string, multipart: _vueTypes2['default'].bool, directory: _vueTypes2['default'].bool, // onError: PropTypes.func, // onSuccess: PropTypes.func, // onProgress: PropTypes.func, // onStart: PropTypes.func, data: _vueTypes2['default'].oneOfType([_vueTypes2['default'].object, _vueTypes2['default'].func]), headers: _vueTypes2['default'].object, accept: _vueTypes2['default'].string, multiple: _vueTypes2['default'].bool, disabled: _vueTypes2['default'].bool, beforeUpload: _vueTypes2['default'].func, customRequest: _vueTypes2['default'].func, // onReady: PropTypes.func, method: _vueTypes2['default'].string, withCredentials: _vueTypes2['default'].bool, supportServerRender: _vueTypes2['default'].bool, openFileDialogOnClick: _vueTypes2['default'].bool, transformFile: _vueTypes2['default'].func }; exports['default'] = { name: 'Upload', mixins: [_BaseMixin2['default']], inheritAttrs: false, props: (0, _propsUtil.initDefaultProps)(uploadProps, { componentTag: 'span', prefixCls: 'rc-upload', data: {}, headers: {}, name: 'file', multipart: false, // onReady: empty, // onStart: empty, // onError: empty, // onSuccess: empty, supportServerRender: false, multiple: false, beforeUpload: empty, withCredentials: false, openFileDialogOnClick: true }), data: function data() { return { Component: null }; }, mounted: function mounted() { var _this = this; this.$nextTick(function () { if (_this.supportServerRender) { _this.setState({ Component: _this.getComponent() }, function () { _this.$emit('ready'); }); } }); }, methods: { getComponent: function getComponent() { return typeof File !== 'undefined' ? _AjaxUploader2['default'] : _IframeUploader2['default']; }, abort: function abort(file) { this.$refs.uploaderRef.abort(file); } }, render: function render() { var h = arguments[0]; var componentProps = { props: (0, _extends3['default'])({}, this.$props), on: (0, _propsUtil.getListeners)(this), ref: 'uploaderRef', attrs: this.$attrs }; if (this.supportServerRender) { var _ComponentUploader = this.Component; if (_ComponentUploader) { return h( _ComponentUploader, componentProps, [this.$slots['default']] ); } return null; } var ComponentUploader = this.getComponent(); return h( ComponentUploader, componentProps, [this.$slots['default']] ); } }; /***/ }), /***/ "2e37": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _defineProperty2 = __webpack_require__("6042"); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _vcProgress = __webpack_require__("63f9"); var _utils = __webpack_require__("a74f"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var statusColorMap = { normal: '#108ee9', exception: '#ff5500', success: '#87d068' }; function getPercentage(_ref) { var percent = _ref.percent, successPercent = _ref.successPercent; var ptg = (0, _utils.validProgress)(percent); if (!successPercent) return ptg; var successPtg = (0, _utils.validProgress)(successPercent); return [successPercent, (0, _utils.validProgress)(ptg - successPtg)]; } function getStrokeColor(_ref2) { var progressStatus = _ref2.progressStatus, successPercent = _ref2.successPercent, strokeColor = _ref2.strokeColor; var color = strokeColor || statusColorMap[progressStatus]; if (!successPercent) return color; return [statusColorMap.success, color]; } var Circle = { functional: true, render: function render(h, context) { var _wrapperClassName; var props = context.props, children = context.children; var prefixCls = props.prefixCls, width = props.width, strokeWidth = props.strokeWidth, trailColor = props.trailColor, strokeLinecap = props.strokeLinecap, gapPosition = props.gapPosition, gapDegree = props.gapDegree, type = props.type; var circleSize = width || 120; var circleStyle = { width: typeof circleSize === 'number' ? circleSize + 'px' : circleSize, height: typeof circleSize === 'number' ? circleSize + 'px' : circleSize, fontSize: circleSize * 0.15 + 6 }; var circleWidth = strokeWidth || 6; var gapPos = gapPosition || type === 'dashboard' && 'bottom' || 'top'; var gapDeg = gapDegree || type === 'dashboard' && 75; var strokeColor = getStrokeColor(props); var isGradient = Object.prototype.toString.call(strokeColor) === '[object Object]'; var wrapperClassName = (_wrapperClassName = {}, (0, _defineProperty3['default'])(_wrapperClassName, prefixCls + '-inner', true), (0, _defineProperty3['default'])(_wrapperClassName, prefixCls + '-circle-gradient', isGradient), _wrapperClassName); return h( 'div', { 'class': wrapperClassName, style: circleStyle }, [h(_vcProgress.Circle, { attrs: { percent: getPercentage(props), strokeWidth: circleWidth, trailWidth: circleWidth, strokeColor: strokeColor, strokeLinecap: strokeLinecap, trailColor: trailColor, prefixCls: prefixCls, gapDegree: gapDeg, gapPosition: gapPos } }), children] ); } }; exports['default'] = Circle; /***/ }), /***/ "2ee4": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ProgressProps = exports.ProgressSize = exports.ProgressType = undefined; var _defineProperty2 = __webpack_require__("6042"); var _defineProperty3 = _interopRequireDefault(_defineProperty2); var _extends2 = __webpack_require__("41b2"); var _extends3 = _interopRequireDefault(_extends2); var _classnames = __webpack_require__("4d26"); var _classnames2 = _interopRequireDefault(_classnames); var _vueTypes = __webpack_require__("7b44"); var _vueTypes2 = _interopRequireDefault(_vueTypes); var _propsUtil = __webpack_require__("73c8"); var _configConsumerProps = __webpack_require__("bad7"); var _icon = __webpack_require__("50f6"); var _icon2 = _interopRequireDefault(_icon); var _line = __webpack_require__("260e"); var _line2 = _interopRequireDefault(_line); var _circle = __webpack_require__("2e37"); var _circle2 = _interopRequireDefault(_circle); var _utils = __webpack_require__("a74f"); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } var ProgressStatuses = ['normal', 'exception', 'active', 'success']; var ProgressType = exports.ProgressType = _vueTypes2['default'].oneOf(['line', 'circle', 'dashboard']); var ProgressSize = exports.ProgressSize = _vueTypes2['default'].oneOf(['default', 'small']); var ProgressProps = exports.ProgressProps = { prefixCls: _vueTypes2['default'].string, type: ProgressType, percent: _vueTypes2['default'].number, successPercent: _vueTypes2['default'].number, format: _vueTypes2['default'].func, status: _vueTypes2['default'].oneOf(ProgressStatuses), showInfo: _vueTypes2['default'].bool, strokeWidth: _vueTypes2['default'].number, strokeLinecap: _vueTypes2['default'].oneOf(['butt', 'round', 'square']), strokeColor: _vueTypes2['default'].oneOfType([_vueTypes2['default'].string, _vueTypes2['default'].object]), trailColor: _vueTypes2['default'].string, width: _vueTypes2['default'].number, gapDegree: _vueTypes2['default'].number, gapPosition: _vueTypes2['default'].oneOf(['top', 'bottom', 'left', 'right']), size: ProgressSize }; exports['default'] = { name: 'AProgress', props: (0, _propsUtil.initDefaultProps)(ProgressProps, { type: 'line', percent: 0, showInfo: true, trailColor: '#f3f3f3', size: 'default', gapDegree: 0, strokeLinecap: 'round' }), inject: { configProvider: { 'default': function _default() { return _configConsumerProps.ConfigConsumerProps; } } }, methods: { getPercentNumber: function getPercentNumber() { var _$props = this.$props, successPercent = _$props.successPercent, _$props$percent = _$props.percent, percent = _$props$percent === undefined ? 0 : _$props$percent; return parseInt(successPercent !== undefined ? successPercent.toString() : percent.toString(), 10); }, getProgressStatus: function getProgressStatus() { var status = this.$props.status; if (ProgressStatuses.indexOf(status) < 0 && this.getPercentNumber() >= 100) { return 'success'; } return status || 'normal'; }, renderProcessInfo: function renderProcessInfo(prefixCls, progressStatus) { var h = this.$createElement; var _$props2 = this.$props, showInfo = _$props2.showInfo, format = _$props2.format, type = _$props2.type, percent = _$props2.percent, successPercent = _$props2.successPercent; if (!showInfo) return null; var text = void 0; var textFormatter = format || this.$scopedSlots.format || function (percentNumber) { return percentNumber + '%'; }; var iconType = type === 'circle' || type === 'dashboard' ? '' : '-circle'; if (format || this.$scopedSlots.format || progressStatus !== 'exception' && progressStatus !== 'success') { text = textFormatter((0, _utils.validProgress)(percent), (0, _utils.validProgress)(successPercent)); } else if (progressStatus === 'exception') { text = h(_icon2['default'], { attrs: { type: 'close' + iconType, theme: type === 'line' ? 'filled' : 'outlined' } }); } else if (progressStatus === 'success') { text = h(_icon2['default'], { attrs: { type: 'check' + iconType, theme: type === 'line' ? 'filled' : 'outlined' } }); } return h( 'span', { 'class': prefixCls + '-text', attrs: { title: typeof text === 'string' ? text : undefined } }, [text] ); } }, render: function render() { var _classNames; var h = arguments[0]; var props = (0, _propsUtil.getOptionProps)(this); var customizePrefixCls = props.prefixCls, size = props.size, type = props.type, showInfo = props.showInfo; var getPrefixCls = this.configProvider.getPrefixCls; var prefixCls = getPrefixCls('progress', customizePrefixCls); var progressStatus = this.getProgressStatus(); var progressInfo = this.renderProcessInfo(prefixCls, progressStatus); var progress = void 0; // Render progress shape if (type === 'line') { var lineProps = { props: (0, _extends3['default'])({}, props, { prefixCls: prefixCls }) }; progress = h( _line2['default'], lineProps, [progressInfo] ); } else if (type === 'circle' || type === 'dashboard') { var circleProps = { props: (0, _extends3['default'])({}, props, { prefixCls: prefixCls, progressStatus: progressStatus }) }; progress = h( _circle2['default'], circleProps, [progressInfo] ); } var classString = (0, _classnames2['default'])(prefixCls, (_classNames = {}, (0, _defineProperty3['default'])(_classNames, prefixCls + '-' + (type === 'dashboard' && 'circle' || type), true), (0, _defineProperty3['default'])(_classNames, prefixCls + '-status-' + progressStatus, true), (0, _defineProperty3['default'])(_classNames, prefixCls + '-show-info', showInfo), (0, _defineProperty3['default'])(_classNames, prefixCls + '-' + size, size), _classNames)); var progressProps = { on: (0, _propsUtil.getListeners)(this), 'class': classString }; return h( 'div', progressProps, [progress] ); } }; /***/ }), /***/ "327d": /***/ (function(module, exports, __webpack_require__) { var createAggregator = __webpack_require__("50c6"); /** * Creates an array of elements split into two groups, the first of which * contains elements `predicate` returns truthy for, the second of which * contains elements `predicate` returns falsey for. The predicate is * invoked with one argument: (value). * * @static * @memberOf _ * @since 3.0.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @returns {Array} Returns the array of grouped elements. * @example * * var users = [ * { 'user': 'barney', 'age': 36, 'active': false }, * { 'user': 'fred', 'age': 40, 'active': true }, * { 'user': 'pebbles', 'age': 1, 'active': false } * ]; * * _.partition(users, function(o) { return o.active; }); * // => objects for [['fred'], ['barney', 'pebbles']] * * // The `_.matches` iteratee shorthand. * _.partition(users, { 'age': 1, 'active': false }); * // => objects for [['pebbles'], ['barney', 'fred']] * * // The `_.matchesProperty` iteratee shorthand. * _.partition(users, ['active', false]); * // => objects for [['barney', 'pebbles'], ['fred']] * * // The `_.property` iteratee shorthand. * _.partition(users, 'active'); * // => objects for [['fred'], ['barney', 'pebbles']] */ var partition = createAggregator(function(result, value, key) { result[key ? 0 : 1].push(value); }, function() { return [[], []]; }); module.exports = partition; /***/ }), /***/ "3432": /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var autoAdjustOverflow = { adjustX: 1, adjustY: 1 }; var targetOffset = [0, 0]; var placements = exports.placements = { left: { points: ['cr', 'cl'], overflow: autoAdjustOverflow, offset: [-4, 0], targetOffset: targetOffset }, right: { points: ['cl', 'cr'], overflow: autoAdjustOverflow, offset: [4, 0], targetOffset: targetOffset }, top: { points: ['bc', 'tc'], overflow: autoAdjustOverflow, offset: [0, -4], targetOffset: targetOffset }, bottom: { points: ['tc', 'bc'], overflow: autoAdjustOverflow, offset: [0, 4], targetOffset: targetOffset }, topLeft: { points: ['bl', 'tl'], overflow: autoAdjustOverflow, offset: [0, -4], targetOffset: targetOffset }, leftTop: { points: ['tr', 'tl'], overflow: autoAdjustOverflow, offset: [-4, 0], targetOffset: targetOffset }, topRight: { points: ['br', 'tr'], overflow: autoAdjustOverflow, offset: [0, -4], targetOffset: targetOffset }, rightTop: { points: ['tl', 'tr'], overflow: autoAdjustOverflow, offset: [4, 0], targetOffset: targetOffset }, bottomRight: { points: ['tr', 'br'], overflow: autoAdjustOverflow, offset: [0, 4], targetOffset: targetOffset }, rightBottom: { points: ['bl', 'br'], overflow: autoAdjustOverflow, offset: [4, 0], targetOffset: targetOffset }, bottomLeft: { points: ['tl', 'bl'], overflow: autoAdjustOverflow, offset: [0, 4], targetOffset: targetOffset }, leftBottom: { points: ['br', 'bl'], overflow: autoAdjustOverflow, offset: [-4, 0], targetOffset: targetOffset } }; exports['default'] = placements; /***/ }), /***/ "47f5": /***/ (function(module, exports, __webpack_require__) { var baseFindIndex = __webpack_require__("2b03"), baseIsNaN = __webpack_require__("d9a8"), strictIndexOf = __webpack_require__("099a"); /** * The base implementation of `_.indexOf` without `fromIndex` bounds checks. * * @private * @param {Array} array The array to inspect. * @param {*} value The value to search for. * @param {number} fromIndex The index to search from. * @returns {number} Returns the index of the matched value, else `-1`. */ function baseIndexOf(array, value, fromIndex) { return value === value ? strictIndexOf(array, value, fromIndex) : baseFindIndex(array, baseIsNaN, fromIndex); } module.exports = baseIndexOf; /***/ }), /***/ "48a0": /***/ (function(module, exports, __webpack_require__) { var baseForOwn = __webpack_require__("242e"), createBaseEach = __webpack_require__("950a"); /** * The base implementation of `_.forEach` without support for iteratee shorthands. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array|Object} Returns `collection`. */ var baseEach = createBaseEach(baseForOwn); module.exports = baseEach; /***/ }), /***/ "50c6": /***/ (function(module, exports, __webpack_require__) { var arrayAggregator = __webpack_require__("a0c4"), baseAggregator = __webpack_require__("243f"), baseIteratee = __webpack_require__("badf"), isArray = __webpack_require__("6747"); /** * Creates a function like `_.groupBy`. * * @private * @param {Function} setter The function to set accumulator values. * @param {Function} [initializer] The accumulator object initializer. * @returns {Function} Returns the new aggregator function. */ function createAggregator(setter, initializer) { return function(collection, iteratee) { var func = isArray(collection) ? arrayAggregator : baseAggregator, accumulator = initializer ? initializer() : {}; return func(collection, setter, baseIteratee(iteratee, 2), accumulator); }; } module.exports = createAggregator; /***/ }), /***/ "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['defaul