k-form-design
Version:
基于vue、ant-design-vue的表单设计器,可视化开发表单
1,722 lines (1,407 loc) • 144 kB
JavaScript
((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