DemuMesDataV/dist/datav.map.vue.js

23076 lines
676 KiB
JavaScript
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(require('vue')) :
typeof define === 'function' && define.amd ? define(['vue'], factory) :
(global = global || self, factory(global.Vue));
}(this, (function (Vue) { 'use strict';
Vue = Vue && Vue.hasOwnProperty('default') ? Vue['default'] : Vue;
function randomExtend(minNum, maxNum) {
if (arguments.length === 1) {
return parseInt(Math.random() * minNum + 1, 10);
} else {
return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
}
}
function debounce(delay, callback) {
let lastTime;
return function () {
clearTimeout(lastTime);
const [that, args] = [this, arguments];
lastTime = setTimeout(() => {
callback.apply(that, args);
}, delay);
};
}
function observerDomResize(dom, callback) {
const MutationObserver = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
const observer = new MutationObserver(callback);
observer.observe(dom, {
attributes: true,
attributeFilter: ['style'],
attributeOldValue: true
});
return observer;
}
function getPointDistance(pointOne, pointTwo) {
const minusX = Math.abs(pointOne[0] - pointTwo[0]);
const minusY = Math.abs(pointOne[1] - pointTwo[1]);
return Math.sqrt(minusX * minusX + minusY * minusY);
}
var autoResize = {
data() {
return {
dom: '',
width: 0,
height: 0,
debounceInitWHFun: '',
domObserver: ''
};
},
methods: {
async autoResizeMixinInit() {
const {
initWH,
getDebounceInitWHFun,
bindDomResizeCallback,
afterAutoResizeMixinInit
} = this;
await initWH(false);
getDebounceInitWHFun();
bindDomResizeCallback();
if (typeof afterAutoResizeMixinInit === 'function') afterAutoResizeMixinInit();
},
initWH(resize = true) {
const {
$nextTick,
$refs,
ref,
onResize
} = this;
return new Promise(resolve => {
$nextTick(e => {
const dom = this.dom = $refs[ref];
this.width = dom.clientWidth;
this.height = dom.clientHeight;
if (typeof onResize === 'function' && resize) onResize();
resolve();
});
});
},
getDebounceInitWHFun() {
const {
initWH
} = this;
this.debounceInitWHFun = debounce(100, initWH);
},
bindDomResizeCallback() {
const {
dom,
debounceInitWHFun
} = this;
this.domObserver = observerDomResize(dom, debounceInitWHFun);
window.addEventListener('resize', debounceInitWHFun);
},
unbindDomResizeCallback() {
let {
domObserver,
debounceInitWHFun
} = this;
domObserver.disconnect();
domObserver.takeRecords();
domObserver = null;
window.removeEventListener('resize', debounceInitWHFun);
}
},
mounted() {
const {
autoResizeMixinInit
} = this;
autoResizeMixinInit();
},
beforeDestroy() {
const {
unbindDomResizeCallback
} = this;
unbindDomResizeCallback();
}
};
//
var script = {
name: 'DvFullScreenContainer',
mixins: [autoResize],
data() {
return {
ref: 'full-screen-container',
allWidth: 0,
scale: 0,
datavRoot: '',
ready: false
};
},
methods: {
afterAutoResizeMixinInit() {
const {
initConfig,
setAppScale
} = this;
initConfig();
setAppScale();
this.ready = true;
},
initConfig() {
const {
dom
} = this;
const {
width,
height
} = screen;
this.allWidth = width;
dom.style.width = `${width}px`;
dom.style.height = `${height}px`;
},
setAppScale() {
const {
allWidth,
dom
} = this;
const currentWidth = document.body.clientWidth;
dom.style.transform = `scale(${currentWidth / allWidth})`;
},
onResize() {
const {
setAppScale
} = this;
setAppScale();
}
}
};
function normalizeComponent(template, style, script, scopeId, isFunctionalTemplate, moduleIdentifier
/* server only */
, shadowMode, createInjector, createInjectorSSR, createInjectorShadow) {
if (typeof shadowMode !== 'boolean') {
createInjectorSSR = createInjector;
createInjector = shadowMode;
shadowMode = false;
} // Vue.extend constructor export interop.
var options = typeof script === 'function' ? script.options : script; // render functions
if (template && template.render) {
options.render = template.render;
options.staticRenderFns = template.staticRenderFns;
options._compiled = true; // functional template
if (isFunctionalTemplate) {
options.functional = true;
}
} // scopedId
if (scopeId) {
options._scopeId = scopeId;
}
var hook;
if (moduleIdentifier) {
// server build
hook = function hook(context) {
// 2.3 injection
context = context || // cached call
this.$vnode && this.$vnode.ssrContext || // stateful
this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext; // functional
// 2.2 with runInNewContext: true
if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {
context = __VUE_SSR_CONTEXT__;
} // inject component styles
if (style) {
style.call(this, createInjectorSSR(context));
} // register component module identifier for async chunk inference
if (context && context._registeredComponents) {
context._registeredComponents.add(moduleIdentifier);
}
}; // used by ssr in case component is cached and beforeCreate
// never gets called
options._ssrRegister = hook;
} else if (style) {
hook = shadowMode ? function () {
style.call(this, createInjectorShadow(this.$root.$options.shadowRoot));
} : function (context) {
style.call(this, createInjector(context));
};
}
if (hook) {
if (options.functional) {
// register for functional component in vue file
var originalRender = options.render;
options.render = function renderWithStyleInjection(h, context) {
hook.call(context);
return originalRender(h, context);
};
} else {
// inject component registration as beforeCreate hook
var existing = options.beforeCreate;
options.beforeCreate = existing ? [].concat(existing, hook) : [hook];
}
}
return script;
}
var normalizeComponent_1 = normalizeComponent;
var isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase());
function createInjector(context) {
return function (id, style) {
return addStyle(id, style);
};
}
var HEAD;
var styles = {};
function addStyle(id, css) {
var group = isOldIE ? css.media || 'default' : id;
var style = styles[group] || (styles[group] = {
ids: new Set(),
styles: []
});
if (!style.ids.has(id)) {
style.ids.add(id);
var code = css.source;
if (css.map) {
// https://developer.chrome.com/devtools/docs/javascript-debugging
// this makes source maps inside style tags work properly in Chrome
code += '\n/*# sourceURL=' + css.map.sources[0] + ' */'; // http://stackoverflow.com/a/26603875
code += '\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(css.map)))) + ' */';
}
if (!style.element) {
style.element = document.createElement('style');
style.element.type = 'text/css';
if (css.media) style.element.setAttribute('media', css.media);
if (HEAD === undefined) {
HEAD = document.head || document.getElementsByTagName('head')[0];
}
HEAD.appendChild(style.element);
}
if ('styleSheet' in style.element) {
style.styles.push(code);
style.element.styleSheet.cssText = style.styles.filter(Boolean).join('\n');
} else {
var index = style.ids.size - 1;
var textNode = document.createTextNode(code);
var nodes = style.element.childNodes;
if (nodes[index]) style.element.removeChild(nodes[index]);
if (nodes.length) style.element.insertBefore(textNode, nodes[index]);else style.element.appendChild(textNode);
}
}
}
var browser = createInjector;
/* script */
const __vue_script__ = script;
/* template */
var __vue_render__ = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c(
"div",
{ ref: _vm.ref, attrs: { id: "dv-full-screen-container" } },
[_vm.ready ? [_vm._t("default")] : _vm._e()],
2
)
};
var __vue_staticRenderFns__ = [];
__vue_render__._withStripped = true;
/* style */
const __vue_inject_styles__ = function (inject) {
if (!inject) return
inject("data-v-2da16e2c_0", { source: "#dv-full-screen-container {\n position: fixed;\n top: 0px;\n left: 0px;\n overflow: hidden;\n transform-origin: left top;\n z-index: 999;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,eAAe;EACf,QAAQ;EACR,SAAS;EACT,gBAAgB;EAChB,0BAA0B;EAC1B,YAAY;AACd","file":"main.vue","sourcesContent":["#dv-full-screen-container {\n position: fixed;\n top: 0px;\n left: 0px;\n overflow: hidden;\n transform-origin: left top;\n z-index: 999;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__ = undefined;
/* module identifier */
const __vue_module_identifier__ = undefined;
/* functional template */
const __vue_is_functional_template__ = false;
/* style inject SSR */
var FullScreenContainer = normalizeComponent_1(
{ render: __vue_render__, staticRenderFns: __vue_staticRenderFns__ },
__vue_inject_styles__,
__vue_script__,
__vue_scope_id__,
__vue_is_functional_template__,
__vue_module_identifier__,
browser,
undefined
);
function fullScreenContainer (Vue) {
Vue.component(FullScreenContainer.name, FullScreenContainer);
}
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$1 = {
name: 'DvLoading'
};
/* script */
const __vue_script__$1 = script$1;
/* template */
var __vue_render__$1 = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { staticClass: "dv-loading" }, [
_c("svg", { attrs: { width: "50px", height: "50px" } }, [
_c(
"circle",
{
attrs: {
cx: "25",
cy: "25",
r: "20",
fill: "transparent",
"stroke-width": "3",
"stroke-dasharray": "31.415, 31.415",
stroke: "#02bcfe",
"stroke-linecap": "round"
}
},
[
_c("animateTransform", {
attrs: {
attributeName: "transform",
type: "rotate",
values: "0, 25 25;360, 25 25",
dur: "1.5s",
repeatCount: "indefinite"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "stroke",
values: "#02bcfe;#3be6cb;#02bcfe",
dur: "3s",
repeatCount: "indefinite"
}
})
],
1
),
_vm._v(" "),
_c(
"circle",
{
attrs: {
cx: "25",
cy: "25",
r: "10",
fill: "transparent",
"stroke-width": "3",
"stroke-dasharray": "15.7, 15.7",
stroke: "#3be6cb",
"stroke-linecap": "round"
}
},
[
_c("animateTransform", {
attrs: {
attributeName: "transform",
type: "rotate",
values: "360, 25 25;0, 25 25",
dur: "1.5s",
repeatCount: "indefinite"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "stroke",
values: "#3be6cb;#02bcfe;#3be6cb",
dur: "3s",
repeatCount: "indefinite"
}
})
],
1
)
]),
_vm._v(" "),
_c("div", { staticClass: "loading-tip" }, [_vm._t("default")], 2)
])
};
var __vue_staticRenderFns__$1 = [];
__vue_render__$1._withStripped = true;
/* style */
const __vue_inject_styles__$1 = function (inject) {
if (!inject) return
inject("data-v-c8b3d976_0", { source: ".dv-loading {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.dv-loading .loading-tip {\n font-size: 15px;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,WAAW;EACX,YAAY;EACZ,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,eAAe;AACjB","file":"main.vue","sourcesContent":[".dv-loading {\n width: 100%;\n height: 100%;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.dv-loading .loading-tip {\n font-size: 15px;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$1 = undefined;
/* module identifier */
const __vue_module_identifier__$1 = undefined;
/* functional template */
const __vue_is_functional_template__$1 = false;
/* style inject SSR */
var Loading = normalizeComponent_1(
{ render: __vue_render__$1, staticRenderFns: __vue_staticRenderFns__$1 },
__vue_inject_styles__$1,
__vue_script__$1,
__vue_scope_id__$1,
__vue_is_functional_template__$1,
__vue_module_identifier__$1,
browser,
undefined
);
function loading (Vue) {
Vue.component(Loading.name, Loading);
}
function unwrapExports (x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
}
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var interopRequireDefault = createCommonjsModule(function (module) {
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
"default": obj
};
}
module.exports = _interopRequireDefault;
});
unwrapExports(interopRequireDefault);
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) {
arr2[i] = arr[i];
}
return arr2;
}
}
var arrayWithoutHoles = _arrayWithoutHoles;
function _iterableToArray(iter) {
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
}
var iterableToArray = _iterableToArray;
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance");
}
var nonIterableSpread = _nonIterableSpread;
function _toConsumableArray(arr) {
return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread();
}
var toConsumableArray = _toConsumableArray;
var _typeof_1 = createCommonjsModule(function (module) {
function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
function _typeof(obj) {
if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") {
module.exports = _typeof = function _typeof(obj) {
return _typeof2(obj);
};
} else {
module.exports = _typeof = function _typeof(obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj);
};
}
return _typeof(obj);
}
module.exports = _typeof;
});
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
var arrayWithHoles = _arrayWithHoles;
function _iterableToArrayLimit(arr, i) {
if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) {
return;
}
var _arr = [];
var _n = true;
var _d = false;
var _e = undefined;
try {
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"] != null) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
var iterableToArrayLimit = _iterableToArrayLimit;
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
var nonIterableRest = _nonIterableRest;
function _slicedToArray(arr, i) {
return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();
}
var slicedToArray = _slicedToArray;
var util = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.deepClone = deepClone;
exports.eliminateBlur = eliminateBlur;
exports.checkPointIsInCircle = checkPointIsInCircle;
exports.getTwoPointDistance = getTwoPointDistance;
exports.checkPointIsInPolygon = checkPointIsInPolygon;
exports.checkPointIsInSector = checkPointIsInSector;
exports.checkPointIsNearPolyline = checkPointIsNearPolyline;
exports.checkPointIsInRect = checkPointIsInRect;
exports.getRotatePointPos = getRotatePointPos;
exports.getScalePointPos = getScalePointPos;
exports.getTranslatePointPos = getTranslatePointPos;
exports.getDistanceBetweenPointAndLine = getDistanceBetweenPointAndLine;
exports.getCircleRadianPoint = getCircleRadianPoint;
exports.getRegularPolygonPoints = getRegularPolygonPoints;
exports["default"] = void 0;
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _typeof2 = interopRequireDefault(_typeof_1);
var abs = Math.abs,
sqrt = Math.sqrt,
sin = Math.sin,
cos = Math.cos,
max = Math.max,
min = Math.min,
PI = Math.PI;
/**
* @description Clone an object or array
* @param {Object|Array} object Cloned object
* @param {Boolean} recursion Whether to use recursive cloning
* @return {Object|Array} Clone object
*/
function deepClone(object) {
var recursion = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (!object) return object;
var parse = JSON.parse,
stringify = JSON.stringify;
if (!recursion) return parse(stringify(object));
var clonedObj = object instanceof Array ? [] : {};
if (object && (0, _typeof2["default"])(object) === 'object') {
for (var key in object) {
if (object.hasOwnProperty(key)) {
if (object[key] && (0, _typeof2["default"])(object[key]) === 'object') {
clonedObj[key] = deepClone(object[key], true);
} else {
clonedObj[key] = object[key];
}
}
}
}
return clonedObj;
}
/**
* @description Eliminate line blur due to 1px line width
* @param {Array} points Line points
* @return {Array} Line points after processed
*/
function eliminateBlur(points) {
return points.map(function (_ref) {
var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
x = _ref2[0],
y = _ref2[1];
return [parseInt(x) + 0.5, parseInt(y) + 0.5];
});
}
/**
* @description Check if the point is inside the circle
* @param {Array} point Postion of point
* @param {Number} rx Circle x coordinate
* @param {Number} ry Circle y coordinate
* @param {Number} r Circle radius
* @return {Boolean} Result of check
*/
function checkPointIsInCircle(point, rx, ry, r) {
return getTwoPointDistance(point, [rx, ry]) <= r;
}
/**
* @description Get the distance between two points
* @param {Array} point1 point1
* @param {Array} point2 point2
* @return {Number} Distance between two points
*/
function getTwoPointDistance(_ref3, _ref4) {
var _ref5 = (0, _slicedToArray2["default"])(_ref3, 2),
xa = _ref5[0],
ya = _ref5[1];
var _ref6 = (0, _slicedToArray2["default"])(_ref4, 2),
xb = _ref6[0],
yb = _ref6[1];
var minusX = abs(xa - xb);
var minusY = abs(ya - yb);
return sqrt(minusX * minusX + minusY * minusY);
}
/**
* @description Check if the point is inside the polygon
* @param {Array} point Postion of point
* @param {Array} points The points that makes up a polyline
* @return {Boolean} Result of check
*/
function checkPointIsInPolygon(point, polygon) {
var counter = 0;
var _point = (0, _slicedToArray2["default"])(point, 2),
x = _point[0],
y = _point[1];
var pointNum = polygon.length;
for (var i = 1, p1 = polygon[0]; i <= pointNum; i++) {
var p2 = polygon[i % pointNum];
if (x > min(p1[0], p2[0]) && x <= max(p1[0], p2[0])) {
if (y <= max(p1[1], p2[1])) {
if (p1[0] !== p2[0]) {
var xinters = (x - p1[0]) * (p2[1] - p1[1]) / (p2[0] - p1[0]) + p1[1];
if (p1[1] === p2[1] || y <= xinters) {
counter++;
}
}
}
}
p1 = p2;
}
return counter % 2 === 1;
}
/**
* @description Check if the point is inside the sector
* @param {Array} point Postion of point
* @param {Number} rx Sector x coordinate
* @param {Number} ry Sector y coordinate
* @param {Number} r Sector radius
* @param {Number} startAngle Sector start angle
* @param {Number} endAngle Sector end angle
* @param {Boolean} clockWise Whether the sector angle is clockwise
* @return {Boolean} Result of check
*/
function checkPointIsInSector(point, rx, ry, r, startAngle, endAngle, clockWise) {
if (!point) return false;
if (getTwoPointDistance(point, [rx, ry]) > r) return false;
if (!clockWise) {
var _deepClone = deepClone([endAngle, startAngle]);
var _deepClone2 = (0, _slicedToArray2["default"])(_deepClone, 2);
startAngle = _deepClone2[0];
endAngle = _deepClone2[1];
}
var reverseBE = startAngle > endAngle;
if (reverseBE) {
var _ref7 = [endAngle, startAngle];
startAngle = _ref7[0];
endAngle = _ref7[1];
}
var minus = endAngle - startAngle;
if (minus >= PI * 2) return true;
var _point2 = (0, _slicedToArray2["default"])(point, 2),
x = _point2[0],
y = _point2[1];
var _getCircleRadianPoint = getCircleRadianPoint(rx, ry, r, startAngle),
_getCircleRadianPoint2 = (0, _slicedToArray2["default"])(_getCircleRadianPoint, 2),
bx = _getCircleRadianPoint2[0],
by = _getCircleRadianPoint2[1];
var _getCircleRadianPoint3 = getCircleRadianPoint(rx, ry, r, endAngle),
_getCircleRadianPoint4 = (0, _slicedToArray2["default"])(_getCircleRadianPoint3, 2),
ex = _getCircleRadianPoint4[0],
ey = _getCircleRadianPoint4[1];
var vPoint = [x - rx, y - ry];
var vBArm = [bx - rx, by - ry];
var vEArm = [ex - rx, ey - ry];
var reverse = minus > PI;
if (reverse) {
var _deepClone3 = deepClone([vEArm, vBArm]);
var _deepClone4 = (0, _slicedToArray2["default"])(_deepClone3, 2);
vBArm = _deepClone4[0];
vEArm = _deepClone4[1];
}
var inSector = isClockWise(vBArm, vPoint) && !isClockWise(vEArm, vPoint);
if (reverse) inSector = !inSector;
if (reverseBE) inSector = !inSector;
return inSector;
}
/**
* @description Determine if the point is in the clockwise direction of the vector
* @param {Array} vArm Vector
* @param {Array} vPoint Point
* @return {Boolean} Result of check
*/
function isClockWise(vArm, vPoint) {
var _vArm = (0, _slicedToArray2["default"])(vArm, 2),
ax = _vArm[0],
ay = _vArm[1];
var _vPoint = (0, _slicedToArray2["default"])(vPoint, 2),
px = _vPoint[0],
py = _vPoint[1];
return -ay * px + ax * py > 0;
}
/**
* @description Check if the point is inside the polyline
* @param {Array} point Postion of point
* @param {Array} polyline The points that makes up a polyline
* @param {Number} lineWidth Polyline linewidth
* @return {Boolean} Result of check
*/
function checkPointIsNearPolyline(point, polyline, lineWidth) {
var halfLineWidth = lineWidth / 2;
var moveUpPolyline = polyline.map(function (_ref8) {
var _ref9 = (0, _slicedToArray2["default"])(_ref8, 2),
x = _ref9[0],
y = _ref9[1];
return [x, y - halfLineWidth];
});
var moveDownPolyline = polyline.map(function (_ref10) {
var _ref11 = (0, _slicedToArray2["default"])(_ref10, 2),
x = _ref11[0],
y = _ref11[1];
return [x, y + halfLineWidth];
});
var polygon = [].concat((0, _toConsumableArray2["default"])(moveUpPolyline), (0, _toConsumableArray2["default"])(moveDownPolyline.reverse()));
return checkPointIsInPolygon(point, polygon);
}
/**
* @description Check if the point is inside the rect
* @param {Array} point Postion of point
* @param {Number} x Rect start x coordinate
* @param {Number} y Rect start y coordinate
* @param {Number} width Rect width
* @param {Number} height Rect height
* @return {Boolean} Result of check
*/
function checkPointIsInRect(_ref12, x, y, width, height) {
var _ref13 = (0, _slicedToArray2["default"])(_ref12, 2),
px = _ref13[0],
py = _ref13[1];
if (px < x) return false;
if (py < y) return false;
if (px > x + width) return false;
if (py > y + height) return false;
return true;
}
/**
* @description Get the coordinates of the rotated point
* @param {Number} rotate Degree of rotation
* @param {Array} point Postion of point
* @param {Array} origin Rotation center
* @param {Array} origin Rotation center
* @return {Number} Coordinates after rotation
*/
function getRotatePointPos() {
var rotate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
var point = arguments.length > 1 ? arguments[1] : undefined;
var origin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [0, 0];
if (!point) return false;
if (rotate % 360 === 0) return point;
var _point3 = (0, _slicedToArray2["default"])(point, 2),
x = _point3[0],
y = _point3[1];
var _origin = (0, _slicedToArray2["default"])(origin, 2),
ox = _origin[0],
oy = _origin[1];
rotate *= PI / 180;
return [(x - ox) * cos(rotate) - (y - oy) * sin(rotate) + ox, (x - ox) * sin(rotate) + (y - oy) * cos(rotate) + oy];
}
/**
* @description Get the coordinates of the scaled point
* @param {Array} scale Scale factor
* @param {Array} point Postion of point
* @param {Array} origin Scale center
* @return {Number} Coordinates after scale
*/
function getScalePointPos() {
var scale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [1, 1];
var point = arguments.length > 1 ? arguments[1] : undefined;
var origin = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [0, 0];
if (!point) return false;
if (scale === 1) return point;
var _point4 = (0, _slicedToArray2["default"])(point, 2),
x = _point4[0],
y = _point4[1];
var _origin2 = (0, _slicedToArray2["default"])(origin, 2),
ox = _origin2[0],
oy = _origin2[1];
var _scale = (0, _slicedToArray2["default"])(scale, 2),
xs = _scale[0],
ys = _scale[1];
var relativePosX = x - ox;
var relativePosY = y - oy;
return [relativePosX * xs + ox, relativePosY * ys + oy];
}
/**
* @description Get the coordinates of the scaled point
* @param {Array} translate Translation distance
* @param {Array} point Postion of point
* @return {Number} Coordinates after translation
*/
function getTranslatePointPos(translate, point) {
if (!translate || !point) return false;
var _point5 = (0, _slicedToArray2["default"])(point, 2),
x = _point5[0],
y = _point5[1];
var _translate = (0, _slicedToArray2["default"])(translate, 2),
tx = _translate[0],
ty = _translate[1];
return [x + tx, y + ty];
}
/**
* @description Get the distance from the point to the line
* @param {Array} point Postion of point
* @param {Array} lineBegin Line start position
* @param {Array} lineEnd Line end position
* @return {Number} Distance between point and line
*/
function getDistanceBetweenPointAndLine(point, lineBegin, lineEnd) {
if (!point || !lineBegin || !lineEnd) return false;
var _point6 = (0, _slicedToArray2["default"])(point, 2),
x = _point6[0],
y = _point6[1];
var _lineBegin = (0, _slicedToArray2["default"])(lineBegin, 2),
x1 = _lineBegin[0],
y1 = _lineBegin[1];
var _lineEnd = (0, _slicedToArray2["default"])(lineEnd, 2),
x2 = _lineEnd[0],
y2 = _lineEnd[1];
var a = y2 - y1;
var b = x1 - x2;
var c = y1 * (x2 - x1) - x1 * (y2 - y1);
var molecule = abs(a * x + b * y + c);
var denominator = sqrt(a * a + b * b);
return molecule / denominator;
}
/**
* @description Get the coordinates of the specified radian on the circle
* @param {Number} x Circle x coordinate
* @param {Number} y Circle y coordinate
* @param {Number} radius Circle radius
* @param {Number} radian Specfied radian
* @return {Array} Postion of point
*/
function getCircleRadianPoint(x, y, radius, radian) {
return [x + cos(radian) * radius, y + sin(radian) * radius];
}
/**
* @description Get the points that make up a regular polygon
* @param {Number} x X coordinate of the polygon inscribed circle
* @param {Number} y Y coordinate of the polygon inscribed circle
* @param {Number} r Radius of the polygon inscribed circle
* @param {Number} side Side number
* @param {Number} minus Radian offset
* @return {Array} Points that make up a regular polygon
*/
function getRegularPolygonPoints(rx, ry, r, side) {
var minus = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : PI * -0.5;
var radianGap = PI * 2 / side;
var radians = new Array(side).fill('').map(function (t, i) {
return i * radianGap + minus;
});
return radians.map(function (radian) {
return getCircleRadianPoint(rx, ry, r, radian);
});
}
var _default = {
deepClone: deepClone,
eliminateBlur: eliminateBlur,
checkPointIsInCircle: checkPointIsInCircle,
checkPointIsInPolygon: checkPointIsInPolygon,
checkPointIsInSector: checkPointIsInSector,
checkPointIsNearPolyline: checkPointIsNearPolyline,
getTwoPointDistance: getTwoPointDistance,
getRotatePointPos: getRotatePointPos,
getScalePointPos: getScalePointPos,
getTranslatePointPos: getTranslatePointPos,
getCircleRadianPoint: getCircleRadianPoint,
getRegularPolygonPoints: getRegularPolygonPoints,
getDistanceBetweenPointAndLine: getDistanceBetweenPointAndLine
};
exports["default"] = _default;
});
unwrapExports(util);
var util_1 = util.deepClone;
var util_2 = util.eliminateBlur;
var util_3 = util.checkPointIsInCircle;
var util_4 = util.getTwoPointDistance;
var util_5 = util.checkPointIsInPolygon;
var util_6 = util.checkPointIsInSector;
var util_7 = util.checkPointIsNearPolyline;
var util_8 = util.checkPointIsInRect;
var util_9 = util.getRotatePointPos;
var util_10 = util.getScalePointPos;
var util_11 = util.getTranslatePointPos;
var util_12 = util.getDistanceBetweenPointAndLine;
var util_13 = util.getCircleRadianPoint;
var util_14 = util.getRegularPolygonPoints;
var util$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.filterNonNumber = filterNonNumber;
exports.deepMerge = deepMerge;
exports.mulAdd = mulAdd;
exports.mergeSameStackData = mergeSameStackData;
exports.getTwoPointDistance = getTwoPointDistance;
exports.getLinearGradientColor = getLinearGradientColor;
exports.getPolylineLength = getPolylineLength;
exports.getPointToLineDistance = getPointToLineDistance;
exports.initNeedSeries = initNeedSeries;
exports.radianToAngle = radianToAngle;
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
var _typeof2 = interopRequireDefault(_typeof_1);
function filterNonNumber(array) {
return array.filter(function (n) {
return typeof n === 'number';
});
}
function deepMerge(target, merged) {
for (var key in merged) {
target[key] = target[key] && (0, _typeof2["default"])(target[key]) === 'object' ? deepMerge(target[key], merged[key]) : target[key] = merged[key];
}
return target;
}
function mulAdd(nums) {
nums = filterNonNumber(nums);
return nums.reduce(function (all, num) {
return all + num;
}, 0);
}
function mergeSameStackData(item, series) {
var stack = item.stack;
if (!stack) return (0, _toConsumableArray2["default"])(item.data);
var stacks = series.filter(function (_ref) {
var s = _ref.stack;
return s === stack;
});
var index = stacks.findIndex(function (_ref2) {
var d = _ref2.data;
return d === item.data;
});
var datas = stacks.splice(0, index + 1).map(function (_ref3) {
var data = _ref3.data;
return data;
});
var dataLength = datas[0].length;
return new Array(dataLength).fill(0).map(function (foo, i) {
return mulAdd(datas.map(function (d) {
return d[i];
}));
});
}
function getTwoPointDistance(pointOne, pointTwo) {
var minusX = Math.abs(pointOne[0] - pointTwo[0]);
var minusY = Math.abs(pointOne[1] - pointTwo[1]);
return Math.sqrt(minusX * minusX + minusY * minusY);
}
function getLinearGradientColor(ctx, begin, end, color) {
if (!ctx || !begin || !end || !color.length) return;
var colors = color;
typeof colors === 'string' && (colors = [color, color]);
var linearGradientColor = ctx.createLinearGradient.apply(ctx, (0, _toConsumableArray2["default"])(begin).concat((0, _toConsumableArray2["default"])(end)));
var colorGap = 1 / (colors.length - 1);
colors.forEach(function (c, i) {
return linearGradientColor.addColorStop(colorGap * i, c);
});
return linearGradientColor;
}
function getPolylineLength(points) {
var lineSegments = new Array(points.length - 1).fill(0).map(function (foo, i) {
return [points[i], points[i + 1]];
});
var lengths = lineSegments.map(function (item) {
return getTwoPointDistance.apply(void 0, (0, _toConsumableArray2["default"])(item));
});
return mulAdd(lengths);
}
function getPointToLineDistance(point, linePointOne, linePointTwo) {
var a = getTwoPointDistance(point, linePointOne);
var b = getTwoPointDistance(point, linePointTwo);
var c = getTwoPointDistance(linePointOne, linePointTwo);
return 0.5 * Math.sqrt((a + b + c) * (a + b - c) * (a + c - b) * (b + c - a)) / c;
}
function initNeedSeries(series, config, type) {
series = series.filter(function (_ref4) {
var st = _ref4.type;
return st === type;
});
series = series.map(function (item) {
return deepMerge((0, util.deepClone)(config, true), item);
});
return series.filter(function (_ref5) {
var show = _ref5.show;
return show;
});
}
function radianToAngle(radian) {
return radian / Math.PI * 180;
}
});
unwrapExports(util$1);
var util_1$1 = util$1.filterNonNumber;
var util_2$1 = util$1.deepMerge;
var util_3$1 = util$1.mulAdd;
var util_4$1 = util$1.mergeSameStackData;
var util_5$1 = util$1.getTwoPointDistance;
var util_6$1 = util$1.getLinearGradientColor;
var util_7$1 = util$1.getPolylineLength;
var util_8$1 = util$1.getPointToLineDistance;
var util_9$1 = util$1.initNeedSeries;
var util_10$1 = util$1.radianToAngle;
//
var script$2 = {
name: 'DvBorderBox1',
props: {
color: {
type: Array,
default: () => []
}
},
data() {
return {
border: ['left-top', 'right-top', 'left-bottom', 'right-bottom'],
defaultColor: ['#4fd2dd', '#235fa7'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$2 = script$2;
/* template */
var __vue_render__$2 = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c(
"div",
{ staticClass: "dv-border-box-1" },
[
_vm._l(_vm.border, function(item) {
return _c(
"svg",
{
key: item,
class: item + " border",
attrs: { width: "150px", height: "150px" }
},
[
_c(
"polygon",
{
attrs: {
fill: _vm.mergedColor[0],
points:
"6,66 6,18 12,12 18,12 24,6 27,6 30,9 36,9 39,6 84,6 81,9 75,9 73.2,7 40.8,7 37.8,10.2 24,10.2 12,21 12,24 9,27 9,51 7.8,54 7.8,63"
}
},
[
_c("animate", {
attrs: {
attributeName: "fill",
values:
_vm.mergedColor[0] +
";" +
_vm.mergedColor[1] +
";" +
_vm.mergedColor[0],
dur: "0.5s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"polygon",
{
attrs: {
fill: _vm.mergedColor[1],
points:
"27.599999999999998,4.8 38.4,4.8 35.4,7.8 30.599999999999998,7.8"
}
},
[
_c("animate", {
attrs: {
attributeName: "fill",
values:
_vm.mergedColor[1] +
";" +
_vm.mergedColor[0] +
";" +
_vm.mergedColor[1],
dur: "0.5s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"polygon",
{
attrs: {
fill: _vm.mergedColor[0],
points:
"9,54 9,63 7.199999999999999,66 7.199999999999999,75 7.8,78 7.8,110 8.4,110 8.4,66 9.6,66 9.6,54"
}
},
[
_c("animate", {
attrs: {
attributeName: "fill",
values:
_vm.mergedColor[0] +
";" +
_vm.mergedColor[1] +
";transparent",
dur: "1s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
)
]
)
}),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
],
2
)
};
var __vue_staticRenderFns__$2 = [];
__vue_render__$2._withStripped = true;
/* style */
const __vue_inject_styles__$2 = function (inject) {
if (!inject) return
inject("data-v-5211ec6c_0", { source: ".dv-border-box-1 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-1 .border {\n position: absolute;\n display: block;\n}\n.dv-border-box-1 .right-top {\n right: 0px;\n transform: rotateY(180deg);\n}\n.dv-border-box-1 .left-bottom {\n bottom: 0px;\n transform: rotateX(180deg);\n}\n.dv-border-box-1 .right-bottom {\n right: 0px;\n bottom: 0px;\n transform: rotateX(180deg) rotateY(180deg);\n}\n.dv-border-box-1 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,cAAc;AAChB;AACA;EACE,UAAU;EACV,0BAA0B;AAC5B;AACA;EACE,WAAW;EACX,0BAA0B;AAC5B;AACA;EACE,UAAU;EACV,WAAW;EACX,0CAA0C;AAC5C;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-1 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-1 .border {\n position: absolute;\n display: block;\n}\n.dv-border-box-1 .right-top {\n right: 0px;\n transform: rotateY(180deg);\n}\n.dv-border-box-1 .left-bottom {\n bottom: 0px;\n transform: rotateX(180deg);\n}\n.dv-border-box-1 .right-bottom {\n right: 0px;\n bottom: 0px;\n transform: rotateX(180deg) rotateY(180deg);\n}\n.dv-border-box-1 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$2 = undefined;
/* module identifier */
const __vue_module_identifier__$2 = undefined;
/* functional template */
const __vue_is_functional_template__$2 = false;
/* style inject SSR */
var BorderBox1 = normalizeComponent_1(
{ render: __vue_render__$2, staticRenderFns: __vue_staticRenderFns__$2 },
__vue_inject_styles__$2,
__vue_script__$2,
__vue_scope_id__$2,
__vue_is_functional_template__$2,
__vue_module_identifier__$2,
browser,
undefined
);
function borderBox1 (Vue) {
Vue.component(BorderBox1.name, BorderBox1);
}
//
var script$3 = {
name: 'DvBorderBox2',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
return {
ref: 'border-box-2',
defaultColor: ['#fff', 'rgba(255, 255, 255, 0.6)'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$3 = script$3;
/* template */
var __vue_render__$3 = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-border-box-2" }, [
_c(
"svg",
{
staticClass: "dv-border-svg-container",
attrs: { width: _vm.width, height: _vm.height }
},
[
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
points:
"2, 2 " +
(_vm.width - 2) +
" ,2 " +
(_vm.width - 2) +
", " +
(_vm.height - 2) +
" 2, " +
(_vm.height - 2) +
" 2, 2"
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[1],
points:
"6, 6 " +
(_vm.width - 6) +
", 6 " +
(_vm.width - 6) +
", " +
(_vm.height - 6) +
" 6, " +
(_vm.height - 6) +
" 6, 6"
}
}),
_vm._v(" "),
_c("circle", {
attrs: { fill: _vm.mergedColor[0], cx: "11", cy: "11", r: "1" }
}),
_vm._v(" "),
_c("circle", {
attrs: {
fill: _vm.mergedColor[0],
cx: _vm.width - 11,
cy: "11",
r: "1"
}
}),
_vm._v(" "),
_c("circle", {
attrs: {
fill: _vm.mergedColor[0],
cx: _vm.width - 11,
cy: _vm.height - 11,
r: "1"
}
}),
_vm._v(" "),
_c("circle", {
attrs: {
fill: _vm.mergedColor[0],
cx: "11",
cy: _vm.height - 11,
r: "1"
}
})
]
),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
])
};
var __vue_staticRenderFns__$3 = [];
__vue_render__$3._withStripped = true;
/* style */
const __vue_inject_styles__$3 = function (inject) {
if (!inject) return
inject("data-v-7910df23_0", { source: ".dv-border-box-2 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-2 .dv-border-svg-container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-border-box-2 .dv-border-svg-container polyline {\n fill: none;\n stroke-width: 1;\n}\n.dv-border-box-2 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,QAAQ;EACR,SAAS;AACX;AACA;EACE,UAAU;EACV,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-2 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-2 .dv-border-svg-container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-border-box-2 .dv-border-svg-container polyline {\n fill: none;\n stroke-width: 1;\n}\n.dv-border-box-2 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$3 = undefined;
/* module identifier */
const __vue_module_identifier__$3 = undefined;
/* functional template */
const __vue_is_functional_template__$3 = false;
/* style inject SSR */
var BorderBox2 = normalizeComponent_1(
{ render: __vue_render__$3, staticRenderFns: __vue_staticRenderFns__$3 },
__vue_inject_styles__$3,
__vue_script__$3,
__vue_scope_id__$3,
__vue_is_functional_template__$3,
__vue_module_identifier__$3,
browser,
undefined
);
function borderBox2 (Vue) {
Vue.component(BorderBox2.name, BorderBox2);
}
//
var script$4 = {
name: 'DvBorderBox3',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
return {
ref: 'border-box-3',
defaultColor: ['#2862b7', '#2862b7'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$4 = script$4;
/* template */
var __vue_render__$4 = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-border-box-3" }, [
_c(
"svg",
{
staticClass: "dv-border-svg-container",
attrs: { width: _vm.width, height: _vm.height }
},
[
_c("polyline", {
staticClass: "dv-bb3-line1",
attrs: {
stroke: _vm.mergedColor[0],
points:
"4, 4 " +
(_vm.width - 22) +
" ,4 " +
(_vm.width - 22) +
", " +
(_vm.height - 22) +
" 4, " +
(_vm.height - 22) +
" 4, 4"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb3-line2",
attrs: {
stroke: _vm.mergedColor[1],
points:
"10, 10 " +
(_vm.width - 16) +
", 10 " +
(_vm.width - 16) +
", " +
(_vm.height - 16) +
" 10, " +
(_vm.height - 16) +
" 10, 10"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb3-line2",
attrs: {
stroke: _vm.mergedColor[1],
points:
"16, 16 " +
(_vm.width - 10) +
", 16 " +
(_vm.width - 10) +
", " +
(_vm.height - 10) +
" 16, " +
(_vm.height - 10) +
" 16, 16"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb3-line2",
attrs: {
stroke: _vm.mergedColor[1],
points:
"22, 22 " +
(_vm.width - 4) +
", 22 " +
(_vm.width - 4) +
", " +
(_vm.height - 4) +
" 22, " +
(_vm.height - 4) +
" 22, 22"
}
})
]
),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
])
};
var __vue_staticRenderFns__$4 = [];
__vue_render__$4._withStripped = true;
/* style */
const __vue_inject_styles__$4 = function (inject) {
if (!inject) return
inject("data-v-cb0f1cee_0", { source: ".dv-border-box-3 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-3 .dv-border-svg-container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-border-box-3 .dv-border-svg-container polyline {\n fill: none;\n}\n.dv-border-box-3 .dv-bb3-line1 {\n stroke-width: 3;\n}\n.dv-border-box-3 .dv-bb3-line2 {\n stroke-width: 1;\n}\n.dv-border-box-3 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,QAAQ;EACR,SAAS;AACX;AACA;EACE,UAAU;AACZ;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-3 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-3 .dv-border-svg-container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-border-box-3 .dv-border-svg-container polyline {\n fill: none;\n}\n.dv-border-box-3 .dv-bb3-line1 {\n stroke-width: 3;\n}\n.dv-border-box-3 .dv-bb3-line2 {\n stroke-width: 1;\n}\n.dv-border-box-3 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$4 = undefined;
/* module identifier */
const __vue_module_identifier__$4 = undefined;
/* functional template */
const __vue_is_functional_template__$4 = false;
/* style inject SSR */
var BorderBox3 = normalizeComponent_1(
{ render: __vue_render__$4, staticRenderFns: __vue_staticRenderFns__$4 },
__vue_inject_styles__$4,
__vue_script__$4,
__vue_scope_id__$4,
__vue_is_functional_template__$4,
__vue_module_identifier__$4,
browser,
undefined
);
function borderBox3 (Vue) {
Vue.component(BorderBox3.name, BorderBox3);
}
//
var script$5 = {
name: 'DvBorderBox4',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
},
reverse: {
type: Boolean,
default: false
}
},
data() {
return {
ref: 'border-box-4',
defaultColor: ['red', 'rgba(0,0,255,0.8)'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$5 = script$5;
/* template */
var __vue_render__$5 = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-border-box-4" }, [
_c(
"svg",
{
class: "dv-border-svg-container " + (_vm.reverse && "dv-reverse"),
attrs: { width: _vm.width, height: _vm.height }
},
[
_c("polyline", {
staticClass: "dv-bb4-line-1",
attrs: {
stroke: _vm.mergedColor[0],
points:
"145, " +
(_vm.height - 5) +
" 40, " +
(_vm.height - 5) +
" 10, " +
(_vm.height - 35) +
"\n 10, 40 40, 5 150, 5 170, 20 " +
(_vm.width - 15) +
", 20"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-2",
attrs: {
stroke: _vm.mergedColor[1],
points:
"245, " +
(_vm.height - 1) +
" 36, " +
(_vm.height - 1) +
" 14, " +
(_vm.height - 23) +
"\n 14, " +
(_vm.height - 100)
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-3",
attrs: {
stroke: _vm.mergedColor[0],
points: "7, " + (_vm.height - 40) + " 7, " + (_vm.height - 75)
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-4",
attrs: { stroke: _vm.mergedColor[0], points: "28, 24 13, 41 13, 64" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-5",
attrs: { stroke: _vm.mergedColor[0], points: "5, 45 5, 140" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-6",
attrs: { stroke: _vm.mergedColor[1], points: "14, 75 14, 180" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-7",
attrs: {
stroke: _vm.mergedColor[1],
points: "55, 11 147, 11 167, 26 250, 26"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-8",
attrs: { stroke: _vm.mergedColor[1], points: "158, 5 173, 16" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-9",
attrs: {
stroke: _vm.mergedColor[0],
points: "200, 17 " + (_vm.width - 10) + ", 17"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-10",
attrs: {
stroke: _vm.mergedColor[1],
points: "385, 17 " + (_vm.width - 10) + ", 17"
}
})
]
),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
])
};
var __vue_staticRenderFns__$5 = [];
__vue_render__$5._withStripped = true;
/* style */
const __vue_inject_styles__$5 = function (inject) {
if (!inject) return
inject("data-v-33ca6448_0", { source: ".dv-border-box-4 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-4 .dv-reverse {\n transform: rotate(180deg);\n}\n.dv-border-box-4 .dv-border-svg-container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-border-box-4 .dv-border-svg-container polyline {\n fill: none;\n}\n.dv-border-box-4 .sw1 {\n stroke-width: 1;\n}\n.dv-border-box-4 .sw3 {\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-1 {\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-2 {\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-3 {\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-4 {\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-5 {\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-6 {\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-7 {\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-8 {\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-9 {\n stroke-width: 3px;\n stroke-linecap: round;\n stroke-dasharray: 100 250;\n}\n.dv-border-box-4 .dv-bb4-line-10 {\n stroke-width: 1;\n stroke-dasharray: 80 270;\n}\n.dv-border-box-4 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,QAAQ;EACR,SAAS;AACX;AACA;EACE,UAAU;AACZ;AACA;EACE,eAAe;AACjB;AACA;EACE,iBAAiB;EACjB,qBAAqB;AACvB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,iBAAiB;EACjB,qBAAqB;AACvB;AACA;EACE,iBAAiB;EACjB,qBAAqB;AACvB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,iBAAiB;EACjB,qBAAqB;AACvB;AACA;EACE,iBAAiB;EACjB,qBAAqB;EACrB,yBAAyB;AAC3B;AACA;EACE,eAAe;EACf,wBAAwB;AAC1B;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-4 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-4 .dv-reverse {\n transform: rotate(180deg);\n}\n.dv-border-box-4 .dv-border-svg-container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-border-box-4 .dv-border-svg-container polyline {\n fill: none;\n}\n.dv-border-box-4 .sw1 {\n stroke-width: 1;\n}\n.dv-border-box-4 .sw3 {\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-1 {\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-2 {\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-3 {\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-4 {\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-5 {\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-6 {\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-7 {\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-8 {\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-9 {\n stroke-width: 3px;\n stroke-linecap: round;\n stroke-dasharray: 100 250;\n}\n.dv-border-box-4 .dv-bb4-line-10 {\n stroke-width: 1;\n stroke-dasharray: 80 270;\n}\n.dv-border-box-4 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$5 = undefined;
/* module identifier */
const __vue_module_identifier__$5 = undefined;
/* functional template */
const __vue_is_functional_template__$5 = false;
/* style inject SSR */
var BorderBox4 = normalizeComponent_1(
{ render: __vue_render__$5, staticRenderFns: __vue_staticRenderFns__$5 },
__vue_inject_styles__$5,
__vue_script__$5,
__vue_scope_id__$5,
__vue_is_functional_template__$5,
__vue_module_identifier__$5,
browser,
undefined
);
function borderBox4 (Vue) {
Vue.component(BorderBox4.name, BorderBox4);
}
//
var script$6 = {
name: 'DvBorderBox5',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
},
reverse: {
type: Boolean,
default: false
}
},
data() {
return {
ref: 'border-box-5',
defaultColor: ['rgba(255, 255, 255, 0.35)', 'rgba(255, 255, 255, 0.20)'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$6 = script$6;
/* template */
var __vue_render__$6 = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-border-box-5" }, [
_c(
"svg",
{
class: "dv-svg-container " + (_vm.reverse && "dv-reverse"),
attrs: { width: _vm.width, height: _vm.height }
},
[
_c("polyline", {
staticClass: "dv-bb5-line-1",
attrs: {
stroke: _vm.mergedColor[0],
points:
"8, 5 " +
(_vm.width - 5) +
", 5 " +
(_vm.width - 5) +
", " +
(_vm.height - 100) +
"\n " +
(_vm.width - 100) +
", " +
(_vm.height - 5) +
" 8, " +
(_vm.height - 5) +
" 8, 5"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb5-line-2",
attrs: {
stroke: _vm.mergedColor[1],
points:
"3, 5 " +
(_vm.width - 20) +
", 5 " +
(_vm.width - 20) +
", " +
(_vm.height - 60) +
"\n " +
(_vm.width - 74) +
", " +
(_vm.height - 5) +
" 3, " +
(_vm.height - 5) +
" 3, 5"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb5-line-3",
attrs: {
stroke: _vm.mergedColor[1],
points: "50, 13 " + (_vm.width - 35) + ", 13"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb5-line-4",
attrs: {
stroke: _vm.mergedColor[1],
points: "15, 20 " + (_vm.width - 35) + ", 20"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb5-line-5",
attrs: {
stroke: _vm.mergedColor[1],
points:
"15, " +
(_vm.height - 20) +
" " +
(_vm.width - 110) +
", " +
(_vm.height - 20)
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb5-line-6",
attrs: {
stroke: _vm.mergedColor[1],
points:
"15, " +
(_vm.height - 13) +
" " +
(_vm.width - 110) +
", " +
(_vm.height - 13)
}
})
]
),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
])
};
var __vue_staticRenderFns__$6 = [];
__vue_render__$6._withStripped = true;
/* style */
const __vue_inject_styles__$6 = function (inject) {
if (!inject) return
inject("data-v-811b04b4_0", { source: ".dv-border-box-5 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-5 .dv-reverse {\n transform: rotate(180deg);\n}\n.dv-border-box-5 .dv-svg-container {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-5 .dv-svg-container polyline {\n fill: none;\n}\n.dv-border-box-5 .dv-bb5-line-1,\n.dv-border-box-5 .dv-bb5-line-2 {\n stroke-width: 1;\n}\n.dv-border-box-5 .dv-bb5-line-3,\n.dv-border-box-5 .dv-bb5-line-6 {\n stroke-width: 5;\n}\n.dv-border-box-5 .dv-bb5-line-4,\n.dv-border-box-5 .dv-bb5-line-5 {\n stroke-width: 2;\n}\n.dv-border-box-5 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,yBAAyB;AAC3B;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,WAAW;EACX,YAAY;AACd;AACA;EACE,UAAU;AACZ;AACA;;EAEE,eAAe;AACjB;AACA;;EAEE,eAAe;AACjB;AACA;;EAEE,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-5 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-5 .dv-reverse {\n transform: rotate(180deg);\n}\n.dv-border-box-5 .dv-svg-container {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-5 .dv-svg-container polyline {\n fill: none;\n}\n.dv-border-box-5 .dv-bb5-line-1,\n.dv-border-box-5 .dv-bb5-line-2 {\n stroke-width: 1;\n}\n.dv-border-box-5 .dv-bb5-line-3,\n.dv-border-box-5 .dv-bb5-line-6 {\n stroke-width: 5;\n}\n.dv-border-box-5 .dv-bb5-line-4,\n.dv-border-box-5 .dv-bb5-line-5 {\n stroke-width: 2;\n}\n.dv-border-box-5 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$6 = undefined;
/* module identifier */
const __vue_module_identifier__$6 = undefined;
/* functional template */
const __vue_is_functional_template__$6 = false;
/* style inject SSR */
var BorderBox5 = normalizeComponent_1(
{ render: __vue_render__$6, staticRenderFns: __vue_staticRenderFns__$6 },
__vue_inject_styles__$6,
__vue_script__$6,
__vue_scope_id__$6,
__vue_is_functional_template__$6,
__vue_module_identifier__$6,
browser,
undefined
);
function borderBox5 (Vue) {
Vue.component(BorderBox5.name, BorderBox5);
}
//
var script$7 = {
name: 'DvBorderBox6',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
return {
ref: 'border-box-6',
defaultColor: ['rgba(255, 255, 255, 0.35)', 'gray'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$7 = script$7;
/* template */
var __vue_render__$7 = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-border-box-6" }, [
_c(
"svg",
{
staticClass: "dv-svg-container",
attrs: { width: _vm.width, height: _vm.height }
},
[
_c("circle", {
attrs: { fill: _vm.mergedColor[1], cx: "5", cy: "5", r: "2" }
}),
_vm._v(" "),
_c("circle", {
attrs: {
fill: _vm.mergedColor[1],
cx: _vm.width - 5,
cy: "5",
r: "2"
}
}),
_vm._v(" "),
_c("circle", {
attrs: {
fill: _vm.mergedColor[1],
cx: _vm.width - 5,
cy: _vm.height - 5,
r: "2"
}
}),
_vm._v(" "),
_c("circle", {
attrs: {
fill: _vm.mergedColor[1],
cx: "5",
cy: _vm.height - 5,
r: "2"
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
points: "10, 4 " + (_vm.width - 10) + ", 4"
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
points:
"10, " +
(_vm.height - 4) +
" " +
(_vm.width - 10) +
", " +
(_vm.height - 4)
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
points: "5, 70 5, " + (_vm.height - 70)
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
points:
_vm.width -
5 +
", 70 " +
(_vm.width - 5) +
", " +
(_vm.height - 70)
}
}),
_vm._v(" "),
_c("polyline", {
attrs: { stroke: _vm.mergedColor[0], points: "3, 10, 3, 50" }
}),
_vm._v(" "),
_c("polyline", {
attrs: { stroke: _vm.mergedColor[0], points: "7, 30 7, 80" }
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
points: _vm.width - 3 + ", 10 " + (_vm.width - 3) + ", 50"
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
points: _vm.width - 7 + ", 30 " + (_vm.width - 7) + ", 80"
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
points: "3, " + (_vm.height - 10) + " 3, " + (_vm.height - 50)
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
points: "7, " + (_vm.height - 30) + " 7, " + (_vm.height - 80)
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
points:
_vm.width -
3 +
", " +
(_vm.height - 10) +
" " +
(_vm.width - 3) +
", " +
(_vm.height - 50)
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
points:
_vm.width -
7 +
", " +
(_vm.height - 30) +
" " +
(_vm.width - 7) +
", " +
(_vm.height - 80)
}
})
]
),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
])
};
var __vue_staticRenderFns__$7 = [];
__vue_render__$7._withStripped = true;
/* style */
const __vue_inject_styles__$7 = function (inject) {
if (!inject) return
inject("data-v-1d73ce5d_0", { source: ".dv-border-box-6 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-6 .dv-svg-container {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-6 .dv-svg-container polyline {\n fill: none;\n stroke-width: 1;\n}\n.dv-border-box-6 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,WAAW;EACX,YAAY;AACd;AACA;EACE,UAAU;EACV,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-6 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-6 .dv-svg-container {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-6 .dv-svg-container polyline {\n fill: none;\n stroke-width: 1;\n}\n.dv-border-box-6 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$7 = undefined;
/* module identifier */
const __vue_module_identifier__$7 = undefined;
/* functional template */
const __vue_is_functional_template__$7 = false;
/* style inject SSR */
var BorderBox6 = normalizeComponent_1(
{ render: __vue_render__$7, staticRenderFns: __vue_staticRenderFns__$7 },
__vue_inject_styles__$7,
__vue_script__$7,
__vue_scope_id__$7,
__vue_is_functional_template__$7,
__vue_module_identifier__$7,
browser,
undefined
);
function borderBox6 (Vue) {
Vue.component(BorderBox6.name, BorderBox6);
}
//
var script$8 = {
name: 'DvBorderBox7',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
return {
ref: 'border-box-7',
defaultColor: ['rgba(128,128,128,0.3)', 'rgba(128,128,128,0.5)'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$8 = script$8;
/* template */
var __vue_render__$8 = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c(
"div",
{
ref: _vm.ref,
staticClass: "dv-border-box-7",
style:
"box-shadow: inset 0 0 40px " +
_vm.mergedColor[0] +
"; border: 1px solid " +
_vm.mergedColor[0]
},
[
_c(
"svg",
{
staticClass: "dv-svg-container",
attrs: { width: _vm.width, height: _vm.height }
},
[
_c("polyline", {
staticClass: "dv-bb7-line-width-2",
attrs: { stroke: _vm.mergedColor[0], points: "0, 25 0, 0 25, 0" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb7-line-width-2",
attrs: {
stroke: _vm.mergedColor[0],
points:
_vm.width -
25 +
", 0 " +
_vm.width +
", 0 " +
_vm.width +
", 25"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb7-line-width-2",
attrs: {
stroke: _vm.mergedColor[0],
points:
_vm.width -
25 +
", " +
_vm.height +
" " +
_vm.width +
", " +
_vm.height +
" " +
_vm.width +
", " +
(_vm.height - 25)
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb7-line-width-2",
attrs: {
stroke: _vm.mergedColor[0],
points:
"0, " +
(_vm.height - 25) +
" 0, " +
_vm.height +
" 25, " +
_vm.height
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb7-line-width-5",
attrs: { stroke: _vm.mergedColor[1], points: "0, 10 0, 0 10, 0" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb7-line-width-5",
attrs: {
stroke: _vm.mergedColor[1],
points:
_vm.width -
10 +
", 0 " +
_vm.width +
", 0 " +
_vm.width +
", 10"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb7-line-width-5",
attrs: {
stroke: _vm.mergedColor[1],
points:
_vm.width -
10 +
", " +
_vm.height +
" " +
_vm.width +
", " +
_vm.height +
" " +
_vm.width +
", " +
(_vm.height - 10)
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb7-line-width-5",
attrs: {
stroke: _vm.mergedColor[1],
points:
"0, " +
(_vm.height - 10) +
" 0, " +
_vm.height +
" 10, " +
_vm.height
}
})
]
),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
]
)
};
var __vue_staticRenderFns__$8 = [];
__vue_render__$8._withStripped = true;
/* style */
const __vue_inject_styles__$8 = function (inject) {
if (!inject) return
inject("data-v-7a4d3a16_0", { source: ".dv-border-box-7 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-7 .dv-svg-container {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-7 .dv-svg-container polyline {\n fill: none;\n stroke-linecap: round;\n}\n.dv-border-box-7 .dv-bb7-line-width-2 {\n stroke-width: 2;\n}\n.dv-border-box-7 .dv-bb7-line-width-5 {\n stroke-width: 5;\n}\n.dv-border-box-7 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,WAAW;EACX,YAAY;AACd;AACA;EACE,UAAU;EACV,qBAAqB;AACvB;AACA;EACE,eAAe;AACjB;AACA;EACE,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-7 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-7 .dv-svg-container {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-7 .dv-svg-container polyline {\n fill: none;\n stroke-linecap: round;\n}\n.dv-border-box-7 .dv-bb7-line-width-2 {\n stroke-width: 2;\n}\n.dv-border-box-7 .dv-bb7-line-width-5 {\n stroke-width: 5;\n}\n.dv-border-box-7 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$8 = undefined;
/* module identifier */
const __vue_module_identifier__$8 = undefined;
/* functional template */
const __vue_is_functional_template__$8 = false;
/* style inject SSR */
var BorderBox7 = normalizeComponent_1(
{ render: __vue_render__$8, staticRenderFns: __vue_staticRenderFns__$8 },
__vue_inject_styles__$8,
__vue_script__$8,
__vue_scope_id__$8,
__vue_is_functional_template__$8,
__vue_module_identifier__$8,
browser,
undefined
);
function borderBox7 (Vue) {
Vue.component(BorderBox7.name, BorderBox7);
}
//
var script$9 = {
name: 'DvBorderBox8',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
},
dur: {
type: Number,
default: 3
}
},
data() {
const timestamp = Date.now();
return {
ref: 'border-box-8',
path: `border-box-8-path-${timestamp}`,
gradient: `border-box-8-gradient-${timestamp}`,
mask: `border-box-8-mask-${timestamp}`,
defaultColor: ['#235fa7', '#4fd2dd'],
mergedColor: []
};
},
computed: {
length() {
const {
width,
height
} = this;
return (width + height - 5) * 2;
}
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$9 = script$9;
/* template */
var __vue_render__$9 = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-border-box-8" }, [
_c(
"svg",
{
staticClass: "dv-svg-container",
attrs: { width: _vm.width, height: _vm.height }
},
[
_c(
"defs",
[
_c("path", {
attrs: {
id: _vm.path,
d:
"M2.5, 2.5 L" +
(_vm.width - 2.5) +
", 2.5 L" +
(_vm.width - 2.5) +
", " +
(_vm.height - 2.5) +
" L2.5, " +
(_vm.height - 2.5) +
" L2.5, 2.5",
fill: "transparent"
}
}),
_vm._v(" "),
_c(
"radialGradient",
{ attrs: { id: _vm.gradient, cx: "50%", cy: "50%", r: "50%" } },
[
_c("stop", {
attrs: {
offset: "0%",
"stop-color": "#fff",
"stop-opacity": "1"
}
}),
_vm._v(" "),
_c("stop", {
attrs: {
offset: "100%",
"stop-color": "#fff",
"stop-opacity": "0"
}
})
],
1
),
_vm._v(" "),
_c("mask", { attrs: { id: _vm.mask } }, [
_c(
"circle",
{
attrs: {
cx: "0",
cy: "0",
r: "150",
fill: "url(#" + _vm.gradient + ")"
}
},
[
_c("animateMotion", {
attrs: {
dur: _vm.dur + "s",
path:
"M2.5, 2.5 L" +
(_vm.width - 2.5) +
", 2.5 L" +
(_vm.width - 2.5) +
", " +
(_vm.height - 2.5) +
" L2.5, " +
(_vm.height - 2.5) +
" L2.5, 2.5",
rotate: "auto",
repeatCount: "indefinite"
}
})
],
1
)
])
],
1
),
_vm._v(" "),
_c("use", {
attrs: {
stroke: _vm.mergedColor[0],
"stroke-width": "1",
"xlink:href": "#" + _vm.path
}
}),
_vm._v(" "),
_c(
"use",
{
attrs: {
stroke: _vm.mergedColor[1],
"stroke-width": "3",
"xlink:href": "#" + _vm.path,
mask: "url(#" + _vm.mask + ")"
}
},
[
_c("animate", {
attrs: {
attributeName: "stroke-dasharray",
from: "0, " + _vm.length,
to: _vm.length + ", 0",
dur: _vm.dur + "s",
repeatCount: "indefinite"
}
})
]
)
]
),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
])
};
var __vue_staticRenderFns__$9 = [];
__vue_render__$9._withStripped = true;
/* style */
const __vue_inject_styles__$9 = function (inject) {
if (!inject) return
inject("data-v-036f23b6_0", { source: ".dv-border-box-8 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-8 svg {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0px;\n top: 0px;\n}\n.dv-border-box-8 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,QAAQ;AACV;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-8 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-8 svg {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0px;\n top: 0px;\n}\n.dv-border-box-8 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$9 = undefined;
/* module identifier */
const __vue_module_identifier__$9 = undefined;
/* functional template */
const __vue_is_functional_template__$9 = false;
/* style inject SSR */
var BorderBox8 = normalizeComponent_1(
{ render: __vue_render__$9, staticRenderFns: __vue_staticRenderFns__$9 },
__vue_inject_styles__$9,
__vue_script__$9,
__vue_scope_id__$9,
__vue_is_functional_template__$9,
__vue_module_identifier__$9,
browser,
undefined
);
function borderBox8 (Vue) {
Vue.component(BorderBox8.name, BorderBox8);
}
//
var script$a = {
name: 'DvBorderBox9',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
const timestamp = Date.now();
return {
ref: 'border-box-9',
gradientId: `border-box-9-gradient-${timestamp}`,
maskId: `border-box-9-mask-${timestamp}`,
defaultColor: ['#11eefd', '#0078d2'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$a = script$a;
/* template */
var __vue_render__$a = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-border-box-9" }, [
_c(
"svg",
{
staticClass: "dv-svg-container",
attrs: { width: _vm.width, height: _vm.height }
},
[
_c(
"defs",
[
_c(
"linearGradient",
{
attrs: {
id: _vm.gradientId,
x1: "0%",
y1: "0%",
x2: "100%",
y2: "100%"
}
},
[
_c("animate", {
attrs: {
attributeName: "x1",
values: "0%;100%;0%",
dur: "10s",
begin: "0s",
repeatCount: "indefinite"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "x2",
values: "100%;0%;100%",
dur: "10s",
begin: "0s",
repeatCount: "indefinite"
}
}),
_vm._v(" "),
_c(
"stop",
{ attrs: { offset: "0%", "stop-color": _vm.mergedColor[0] } },
[
_c("animate", {
attrs: {
attributeName: "stop-color",
values:
_vm.mergedColor[0] +
";" +
_vm.mergedColor[1] +
";" +
_vm.mergedColor[0],
dur: "10s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"stop",
{
attrs: { offset: "100%", "stop-color": _vm.mergedColor[1] }
},
[
_c("animate", {
attrs: {
attributeName: "stop-color",
values:
_vm.mergedColor[1] +
";" +
_vm.mergedColor[0] +
";" +
_vm.mergedColor[1],
dur: "10s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
)
],
1
),
_vm._v(" "),
_c("mask", { attrs: { id: _vm.maskId } }, [
_c("polyline", {
attrs: {
stroke: "#fff",
"stroke-width": "3",
fill: "transparent",
points:
"8, " +
_vm.height * 0.4 +
" 8, 3, " +
(_vm.width * 0.4 + 7) +
", 3"
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
fill: "#fff",
points:
"8, " +
_vm.height * 0.15 +
" 8, 3, " +
(_vm.width * 0.1 + 7) +
", 3\n " +
_vm.width * 0.1 +
", 8 14, 8 14, " +
(_vm.height * 0.15 - 7) +
"\n "
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: "#fff",
"stroke-width": "3",
fill: "transparent",
points:
_vm.width * 0.5 +
", 3 " +
(_vm.width - 3) +
", 3, " +
(_vm.width - 3) +
", " +
_vm.height * 0.25
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
fill: "#fff",
points:
"\n " +
_vm.width * 0.52 +
", 3 " +
_vm.width * 0.58 +
", 3\n " +
(_vm.width * 0.58 - 7) +
", 9 " +
(_vm.width * 0.52 + 7) +
", 9\n "
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
fill: "#fff",
points:
"\n " +
_vm.width * 0.9 +
", 3 " +
(_vm.width - 3) +
", 3 " +
(_vm.width - 3) +
", " +
_vm.height * 0.1 +
"\n " +
(_vm.width - 9) +
", " +
(_vm.height * 0.1 - 7) +
" " +
(_vm.width - 9) +
", 9 " +
(_vm.width * 0.9 + 7) +
", 9\n "
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: "#fff",
"stroke-width": "3",
fill: "transparent",
points:
"8, " +
_vm.height * 0.5 +
" 8, " +
(_vm.height - 3) +
" " +
(_vm.width * 0.3 + 7) +
", " +
(_vm.height - 3)
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
fill: "#fff",
points:
"\n 8, " +
_vm.height * 0.55 +
" 8, " +
_vm.height * 0.7 +
"\n 2, " +
(_vm.height * 0.7 - 7) +
" 2, " +
(_vm.height * 0.55 + 7) +
"\n "
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: "#fff",
"stroke-width": "3",
fill: "transparent",
points:
_vm.width * 0.35 +
", " +
(_vm.height - 3) +
" " +
(_vm.width - 3) +
", " +
(_vm.height - 3) +
" " +
(_vm.width - 3) +
", " +
_vm.height * 0.35
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
fill: "#fff",
points:
"\n " +
_vm.width * 0.92 +
", " +
(_vm.height - 3) +
" " +
(_vm.width - 3) +
", " +
(_vm.height - 3) +
" " +
(_vm.width - 3) +
", " +
_vm.height * 0.8 +
"\n " +
(_vm.width - 9) +
", " +
(_vm.height * 0.8 + 7) +
" " +
(_vm.width - 9) +
", " +
(_vm.height - 9) +
" " +
(_vm.width * 0.92 + 7) +
", " +
(_vm.height - 9) +
"\n "
}
})
])
],
1
),
_vm._v(" "),
_c("rect", {
attrs: {
x: "0",
y: "0",
width: _vm.width,
height: _vm.height,
fill: "url(#" + _vm.gradientId + ")",
mask: "url(#" + _vm.maskId + ")"
}
})
]
),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
])
};
var __vue_staticRenderFns__$a = [];
__vue_render__$a._withStripped = true;
/* style */
const __vue_inject_styles__$a = function (inject) {
if (!inject) return
inject("data-v-56fea000_0", { source: ".dv-border-box-9 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-9 svg {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0px;\n top: 0px;\n}\n.dv-border-box-9 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,QAAQ;AACV;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-9 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-9 svg {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0px;\n top: 0px;\n}\n.dv-border-box-9 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$a = undefined;
/* module identifier */
const __vue_module_identifier__$a = undefined;
/* functional template */
const __vue_is_functional_template__$a = false;
/* style inject SSR */
var BorderBox9 = normalizeComponent_1(
{ render: __vue_render__$a, staticRenderFns: __vue_staticRenderFns__$a },
__vue_inject_styles__$a,
__vue_script__$a,
__vue_scope_id__$a,
__vue_is_functional_template__$a,
__vue_module_identifier__$a,
browser,
undefined
);
function borderBox9 (Vue) {
Vue.component(BorderBox9.name, BorderBox9);
}
//
var script$b = {
name: 'DvBorderBox10',
props: {
color: {
type: Array,
default: () => []
}
},
data() {
return {
border: ['left-top', 'right-top', 'left-bottom', 'right-bottom'],
defaultColor: ['#1d48c4', '#d3e1f8'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$b = script$b;
/* template */
var __vue_render__$b = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c(
"div",
{
staticClass: "dv-border-box-10",
style: "box-shadow: inset 0 0 25px 3px " + _vm.mergedColor[0]
},
[
_vm._l(_vm.border, function(item) {
return _c(
"svg",
{
key: item,
class: item + " border",
attrs: { width: "150px", height: "150px" }
},
[
_c("polygon", {
attrs: {
fill: _vm.mergedColor[1],
points: "40, 0 5, 0 0, 5 0, 16 3, 19 3, 7 7, 3 35, 3"
}
})
]
)
}),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
],
2
)
};
var __vue_staticRenderFns__$b = [];
__vue_render__$b._withStripped = true;
/* style */
const __vue_inject_styles__$b = function (inject) {
if (!inject) return
inject("data-v-88eb07d6_0", { source: ".dv-border-box-10 {\n position: relative;\n width: 100%;\n height: 100%;\n border-radius: 6px;\n}\n.dv-border-box-10 .border {\n position: absolute;\n display: block;\n}\n.dv-border-box-10 .right-top {\n right: 0px;\n transform: rotateY(180deg);\n}\n.dv-border-box-10 .left-bottom {\n bottom: 0px;\n transform: rotateX(180deg);\n}\n.dv-border-box-10 .right-bottom {\n right: 0px;\n bottom: 0px;\n transform: rotateX(180deg) rotateY(180deg);\n}\n.dv-border-box-10 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,cAAc;AAChB;AACA;EACE,UAAU;EACV,0BAA0B;AAC5B;AACA;EACE,WAAW;EACX,0BAA0B;AAC5B;AACA;EACE,UAAU;EACV,WAAW;EACX,0CAA0C;AAC5C;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-10 {\n position: relative;\n width: 100%;\n height: 100%;\n border-radius: 6px;\n}\n.dv-border-box-10 .border {\n position: absolute;\n display: block;\n}\n.dv-border-box-10 .right-top {\n right: 0px;\n transform: rotateY(180deg);\n}\n.dv-border-box-10 .left-bottom {\n bottom: 0px;\n transform: rotateX(180deg);\n}\n.dv-border-box-10 .right-bottom {\n right: 0px;\n bottom: 0px;\n transform: rotateX(180deg) rotateY(180deg);\n}\n.dv-border-box-10 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$b = undefined;
/* module identifier */
const __vue_module_identifier__$b = undefined;
/* functional template */
const __vue_is_functional_template__$b = false;
/* style inject SSR */
var BorderBox10 = normalizeComponent_1(
{ render: __vue_render__$b, staticRenderFns: __vue_staticRenderFns__$b },
__vue_inject_styles__$b,
__vue_script__$b,
__vue_scope_id__$b,
__vue_is_functional_template__$b,
__vue_module_identifier__$b,
browser,
undefined
);
function borderBox10 (Vue) {
Vue.component(BorderBox10.name, BorderBox10);
}
var keywords = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _default = new Map([['transparent', 'rgba(0,0,0,0)'], ['black', '#000000'], ['silver', '#C0C0C0'], ['gray', '#808080'], ['white', '#FFFFFF'], ['maroon', '#800000'], ['red', '#FF0000'], ['purple', '#800080'], ['fuchsia', '#FF00FF'], ['green', '#008000'], ['lime', '#00FF00'], ['olive', '#808000'], ['yellow', '#FFFF00'], ['navy', '#000080'], ['blue', '#0000FF'], ['teal', '#008080'], ['aqua', '#00FFFF'], ['aliceblue', '#f0f8ff'], ['antiquewhite', '#faebd7'], ['aquamarine', '#7fffd4'], ['azure', '#f0ffff'], ['beige', '#f5f5dc'], ['bisque', '#ffe4c4'], ['blanchedalmond', '#ffebcd'], ['blueviolet', '#8a2be2'], ['brown', '#a52a2a'], ['burlywood', '#deb887'], ['cadetblue', '#5f9ea0'], ['chartreuse', '#7fff00'], ['chocolate', '#d2691e'], ['coral', '#ff7f50'], ['cornflowerblue', '#6495ed'], ['cornsilk', '#fff8dc'], ['crimson', '#dc143c'], ['cyan', '#00ffff'], ['darkblue', '#00008b'], ['darkcyan', '#008b8b'], ['darkgoldenrod', '#b8860b'], ['darkgray', '#a9a9a9'], ['darkgreen', '#006400'], ['darkgrey', '#a9a9a9'], ['darkkhaki', '#bdb76b'], ['darkmagenta', '#8b008b'], ['darkolivegreen', '#556b2f'], ['darkorange', '#ff8c00'], ['darkorchid', '#9932cc'], ['darkred', '#8b0000'], ['darksalmon', '#e9967a'], ['darkseagreen', '#8fbc8f'], ['darkslateblue', '#483d8b'], ['darkslategray', '#2f4f4f'], ['darkslategrey', '#2f4f4f'], ['darkturquoise', '#00ced1'], ['darkviolet', '#9400d3'], ['deeppink', '#ff1493'], ['deepskyblue', '#00bfff'], ['dimgray', '#696969'], ['dimgrey', '#696969'], ['dodgerblue', '#1e90ff'], ['firebrick', '#b22222'], ['floralwhite', '#fffaf0'], ['forestgreen', '#228b22'], ['gainsboro', '#dcdcdc'], ['ghostwhite', '#f8f8ff'], ['gold', '#ffd700'], ['goldenrod', '#daa520'], ['greenyellow', '#adff2f'], ['grey', '#808080'], ['honeydew', '#f0fff0'], ['hotpink', '#ff69b4'], ['indianred', '#cd5c5c'], ['indigo', '#4b0082'], ['ivory', '#fffff0'], ['khaki', '#f0e68c'], ['lavender', '#e6e6fa'], ['lavenderblush', '#fff0f5'], ['lawngreen', '#7cfc00'], ['lemonchiffon', '#fffacd'], ['lightblue', '#add8e6'], ['lightcoral', '#f08080'], ['lightcyan', '#e0ffff'], ['lightgoldenrodyellow', '#fafad2'], ['lightgray', '#d3d3d3'], ['lightgreen', '#90ee90'], ['lightgrey', '#d3d3d3'], ['lightpink', '#ffb6c1'], ['lightsalmon', '#ffa07a'], ['lightseagreen', '#20b2aa'], ['lightskyblue', '#87cefa'], ['lightslategray', '#778899'], ['lightslategrey', '#778899'], ['lightsteelblue', '#b0c4de'], ['lightyellow', '#ffffe0'], ['limegreen', '#32cd32'], ['linen', '#faf0e6'], ['magenta', '#ff00ff'], ['mediumaquamarine', '#66cdaa'], ['mediumblue', '#0000cd'], ['mediumorchid', '#ba55d3'], ['mediumpurple', '#9370db'], ['mediumseagreen', '#3cb371'], ['mediumslateblue', '#7b68ee'], ['mediumspringgreen', '#00fa9a'], ['mediumturquoise', '#48d1cc'], ['mediumvioletred', '#c71585'], ['midnightblue', '#191970'], ['mintcream', '#f5fffa'], ['mistyrose', '#ffe4e1'], ['moccasin', '#ffe4b5'], ['navajowhite', '#ffdead'], ['oldlace', '#fdf5e6'], ['olivedrab', '#6b8e23'], ['orange', '#ffa500'], ['orangered', '#ff4500'], ['orchid', '#da70d6'], ['palegoldenrod', '#eee8aa'], ['palegreen', '#98fb98'], ['paleturquoise', '#afeeee'], ['palevioletred', '#db7093'], ['papayawhip', '#ffefd5'], ['peachpuff', '#ffdab9'], ['peru', '#cd853f'], ['pink', '#ffc0cb'], ['plum', '#dda0dd'], ['powderblue', '#b0e0e6'], ['rosybrown', '#bc8f8f'], ['royalblue', '#4169e1'], ['saddlebrown', '#8b4513'], ['salmon', '#fa8072'], ['sandybrown', '#f4a460'], ['seagreen', '#2e8b57'], ['seashell', '#fff5ee'], ['sienna', '#a0522d'], ['skyblue', '#87ceeb'], ['slateblue', '#6a5acd'], ['slategray', '#708090'], ['slategrey', '#708090'], ['snow', '#fffafa'], ['springgreen', '#00ff7f'], ['steelblue', '#4682b4'], ['tan', '#d2b48c'], ['thistle', '#d8bfd8'], ['tomato', '#ff6347'], ['turquoise', '#40e0d0'], ['violet', '#ee82ee'], ['wheat', '#f5deb3'], ['whitesmoke', '#f5f5f5'], ['yellowgreen', '#9acd32']]);
exports["default"] = _default;
});
unwrapExports(keywords);
var lib = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getRgbValue = getRgbValue;
exports.getRgbaValue = getRgbaValue;
exports.getOpacity = getOpacity;
exports.toRgb = toRgb;
exports.toHex = toHex;
exports.getColorFromRgbValue = getColorFromRgbValue;
exports.darken = darken;
exports.lighten = lighten;
exports.fade = fade;
exports["default"] = void 0;
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
var _keywords = interopRequireDefault(keywords);
var hexReg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
var rgbReg = /^(rgb|rgba|RGB|RGBA)/;
var rgbaReg = /^(rgba|RGBA)/;
/**
* @description Color validator
* @param {String} color Hex|Rgb|Rgba color or color keyword
* @return {String|Boolean} Valid color Or false
*/
function validator(color) {
var isHex = hexReg.test(color);
var isRgb = rgbReg.test(color);
if (isHex || isRgb) return color;
color = getColorByKeyword(color);
if (!color) {
console.error('Color: Invalid color!');
return false;
}
return color;
}
/**
* @description Get color by keyword
* @param {String} keyword Color keyword like red, green and etc.
* @return {String|Boolean} Hex or rgba color (Invalid keyword will return false)
*/
function getColorByKeyword(keyword) {
if (!keyword) {
console.error('getColorByKeywords: Missing parameters!');
return false;
}
if (!_keywords["default"].has(keyword)) return false;
return _keywords["default"].get(keyword);
}
/**
* @description Get the Rgb value of the color
* @param {String} color Hex|Rgb|Rgba color or color keyword
* @return {Array<Number>|Boolean} Rgb value of the color (Invalid input will return false)
*/
function getRgbValue(color) {
if (!color) {
console.error('getRgbValue: Missing parameters!');
return false;
}
color = validator(color);
if (!color) return false;
var isHex = hexReg.test(color);
var isRgb = rgbReg.test(color);
var lowerColor = color.toLowerCase();
if (isHex) return getRgbValueFromHex(lowerColor);
if (isRgb) return getRgbValueFromRgb(lowerColor);
}
/**
* @description Get the rgb value of the hex color
* @param {String} color Hex color
* @return {Array<Number>} Rgb value of the color
*/
function getRgbValueFromHex(color) {
color = color.replace('#', '');
if (color.length === 3) color = Array.from(color).map(function (hexNum) {
return hexNum + hexNum;
}).join('');
color = color.split('');
return new Array(3).fill(0).map(function (t, i) {
return parseInt("0x".concat(color[i * 2]).concat(color[i * 2 + 1]));
});
}
/**
* @description Get the rgb value of the rgb/rgba color
* @param {String} color Hex color
* @return {Array} Rgb value of the color
*/
function getRgbValueFromRgb(color) {
return color.replace(/rgb\(|rgba\(|\)/g, '').split(',').slice(0, 3).map(function (n) {
return parseInt(n);
});
}
/**
* @description Get the Rgba value of the color
* @param {String} color Hex|Rgb|Rgba color or color keyword
* @return {Array<Number>|Boolean} Rgba value of the color (Invalid input will return false)
*/
function getRgbaValue(color) {
if (!color) {
console.error('getRgbaValue: Missing parameters!');
return false;
}
var colorValue = getRgbValue(color);
if (!colorValue) return false;
colorValue.push(getOpacity(color));
return colorValue;
}
/**
* @description Get the opacity of color
* @param {String} color Hex|Rgb|Rgba color or color keyword
* @return {Number|Boolean} Color opacity (Invalid input will return false)
*/
function getOpacity(color) {
if (!color) {
console.error('getOpacity: Missing parameters!');
return false;
}
color = validator(color);
if (!color) return false;
var isRgba = rgbaReg.test(color);
if (!isRgba) return 1;
color = color.toLowerCase();
return Number(color.split(',').slice(-1)[0].replace(/[)|\s]/g, ''));
}
/**
* @description Convert color to Rgb|Rgba color
* @param {String} color Hex|Rgb|Rgba color or color keyword
* @param {Number} opacity The opacity of color
* @return {String|Boolean} Rgb|Rgba color (Invalid input will return false)
*/
function toRgb(color, opacity) {
if (!color) {
console.error('toRgb: Missing parameters!');
return false;
}
var rgbValue = getRgbValue(color);
if (!rgbValue) return false;
var addOpacity = typeof opacity === 'number';
if (addOpacity) return 'rgba(' + rgbValue.join(',') + ",".concat(opacity, ")");
return 'rgb(' + rgbValue.join(',') + ')';
}
/**
* @description Convert color to Hex color
* @param {String} color Hex|Rgb|Rgba color or color keyword
* @return {String|Boolean} Hex color (Invalid input will return false)
*/
function toHex(color) {
if (!color) {
console.error('toHex: Missing parameters!');
return false;
}
if (hexReg.test(color)) return color;
color = getRgbValue(color);
if (!color) return false;
return '#' + color.map(function (n) {
return Number(n).toString(16);
}).map(function (n) {
return n === '0' ? '00' : n;
}).join('');
}
/**
* @description Get Color from Rgb|Rgba value
* @param {Array<Number>} value Rgb|Rgba color value
* @return {String|Boolean} Rgb|Rgba color (Invalid input will return false)
*/
function getColorFromRgbValue(value) {
if (!value) {
console.error('getColorFromRgbValue: Missing parameters!');
return false;
}
var valueLength = value.length;
if (valueLength !== 3 && valueLength !== 4) {
console.error('getColorFromRgbValue: Value is illegal!');
return false;
}
var color = valueLength === 3 ? 'rgb(' : 'rgba(';
color += value.join(',') + ')';
return color;
}
/**
* @description Deepen color
* @param {String} color Hex|Rgb|Rgba color or color keyword
* @return {Number} Percent of Deepen (1-100)
* @return {String|Boolean} Rgba color (Invalid input will return false)
*/
function darken(color) {
var percent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
if (!color) {
console.error('darken: Missing parameters!');
return false;
}
var rgbaValue = getRgbaValue(color);
if (!rgbaValue) return false;
rgbaValue = rgbaValue.map(function (v, i) {
return i === 3 ? v : v - Math.ceil(2.55 * percent);
}).map(function (v) {
return v < 0 ? 0 : v;
});
return getColorFromRgbValue(rgbaValue);
}
/**
* @description Brighten color
* @param {String} color Hex|Rgb|Rgba color or color keyword
* @return {Number} Percent of brighten (1-100)
* @return {String|Boolean} Rgba color (Invalid input will return false)
*/
function lighten(color) {
var percent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
if (!color) {
console.error('lighten: Missing parameters!');
return false;
}
var rgbaValue = getRgbaValue(color);
if (!rgbaValue) return false;
rgbaValue = rgbaValue.map(function (v, i) {
return i === 3 ? v : v + Math.ceil(2.55 * percent);
}).map(function (v) {
return v > 255 ? 255 : v;
});
return getColorFromRgbValue(rgbaValue);
}
/**
* @description Adjust color opacity
* @param {String} color Hex|Rgb|Rgba color or color keyword
* @param {Number} Percent of opacity
* @return {String|Boolean} Rgba color (Invalid input will return false)
*/
function fade(color) {
var percent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
if (!color) {
console.error('fade: Missing parameters!');
return false;
}
var rgbValue = getRgbValue(color);
if (!rgbValue) return false;
var rgbaValue = [].concat((0, _toConsumableArray2["default"])(rgbValue), [percent / 100]);
return getColorFromRgbValue(rgbaValue);
}
var _default = {
fade: fade,
toHex: toHex,
toRgb: toRgb,
darken: darken,
lighten: lighten,
getOpacity: getOpacity,
getRgbValue: getRgbValue,
getRgbaValue: getRgbaValue,
getColorFromRgbValue: getColorFromRgbValue
};
exports["default"] = _default;
});
unwrapExports(lib);
var lib_1 = lib.getRgbValue;
var lib_2 = lib.getRgbaValue;
var lib_3 = lib.getOpacity;
var lib_4 = lib.toRgb;
var lib_5 = lib.toHex;
var lib_6 = lib.getColorFromRgbValue;
var lib_7 = lib.darken;
var lib_8 = lib.lighten;
var lib_9 = lib.fade;
//
var script$c = {
name: 'DvBorderBox11',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
},
titleWidth: {
type: Number,
default: 250
},
title: {
type: String,
default: ''
}
},
data() {
const timestamp = Date.now();
return {
ref: 'border-box-11',
filterId: `borderr-box-11-filterId-${timestamp}`,
defaultColor: ['#8aaafb', '#1f33a2'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
},
fade: lib_9
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$c = script$c;
/* template */
var __vue_render__$c = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-border-box-11" }, [
_c(
"svg",
{
staticClass: "dv-border-svg-container",
attrs: { width: _vm.width, height: _vm.height }
},
[
_c("defs", [
_c(
"filter",
{
attrs: {
id: _vm.filterId,
height: "150%",
width: "150%",
x: "-25%",
y: "-25%"
}
},
[
_c("feMorphology", {
attrs: {
operator: "dilate",
radius: "2",
in: "SourceAlpha",
result: "thicken"
}
}),
_vm._v(" "),
_c("feGaussianBlur", {
attrs: { in: "thicken", stdDeviation: "3", result: "blurred" }
}),
_vm._v(" "),
_c("feFlood", {
attrs: {
"flood-color": _vm.mergedColor[1],
result: "glowColor"
}
}),
_vm._v(" "),
_c("feComposite", {
attrs: {
in: "glowColor",
in2: "blurred",
operator: "in",
result: "softGlowColored"
}
}),
_vm._v(" "),
_c(
"feMerge",
[
_c("feMergeNode", { attrs: { in: "softGlowColored" } }),
_vm._v(" "),
_c("feMergeNode", { attrs: { in: "SourceGraphic" } })
],
1
)
],
1
)
]),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
filter: "url(#" + _vm.filterId + ")",
points:
"\n " +
(_vm.width - _vm.titleWidth) / 2 +
", 30\n 20, 30 7, 50 7, " +
(50 + (_vm.height - 167) / 2) +
"\n 13, " +
(55 + (_vm.height - 167) / 2) +
" 13, " +
(135 + (_vm.height - 167) / 2) +
"\n 7, " +
(140 + (_vm.height - 167) / 2) +
" 7, " +
(_vm.height - 27) +
"\n 20, " +
(_vm.height - 7) +
" " +
(_vm.width - 20) +
", " +
(_vm.height - 7) +
" " +
(_vm.width - 7) +
", " +
(_vm.height - 27) +
"\n " +
(_vm.width - 7) +
", " +
(140 + (_vm.height - 167) / 2) +
" " +
(_vm.width - 13) +
", " +
(135 + (_vm.height - 167) / 2) +
"\n " +
(_vm.width - 13) +
", " +
(55 + (_vm.height - 167) / 2) +
" " +
(_vm.width - 7) +
", " +
(50 + (_vm.height - 167) / 2) +
"\n " +
(_vm.width - 7) +
", 50 " +
(_vm.width - 20) +
", 30 " +
(_vm.width + _vm.titleWidth) / 2 +
", 30\n " +
((_vm.width + _vm.titleWidth) / 2 - 20) +
", 7 " +
((_vm.width - _vm.titleWidth) / 2 + 20) +
", 7\n " +
(_vm.width - _vm.titleWidth) / 2 +
", 30 " +
((_vm.width - _vm.titleWidth) / 2 + 20) +
", 52\n " +
((_vm.width + _vm.titleWidth) / 2 - 20) +
", 52 " +
(_vm.width + _vm.titleWidth) / 2 +
", 30\n "
}
}),
_vm._v(" "),
_c("polygon", {
attrs: {
stroke: _vm.mergedColor[0],
fill: "transparent",
points:
"\n " +
((_vm.width + _vm.titleWidth) / 2 - 5) +
", 30 " +
((_vm.width + _vm.titleWidth) / 2 - 21) +
", 11\n " +
((_vm.width + _vm.titleWidth) / 2 - 27) +
", 11 " +
((_vm.width + _vm.titleWidth) / 2 - 8) +
", 34\n "
}
}),
_vm._v(" "),
_c("polygon", {
attrs: {
stroke: _vm.mergedColor[0],
fill: "transparent",
points:
"\n " +
((_vm.width - _vm.titleWidth) / 2 + 5) +
", 30 " +
((_vm.width - _vm.titleWidth) / 2 + 22) +
", 49\n " +
((_vm.width - _vm.titleWidth) / 2 + 28) +
", 49 " +
((_vm.width - _vm.titleWidth) / 2 + 8) +
", 26\n "
}
}),
_vm._v(" "),
_c("polygon", {
attrs: {
stroke: _vm.mergedColor[0],
fill: _vm.fade(_vm.mergedColor[1] || _vm.defaultColor[1], 30),
filter: "url(#" + _vm.filterId + ")",
points:
"\n " +
((_vm.width + _vm.titleWidth) / 2 - 11) +
", 37 " +
((_vm.width + _vm.titleWidth) / 2 - 32) +
", 11\n " +
((_vm.width - _vm.titleWidth) / 2 + 23) +
", 11 " +
((_vm.width - _vm.titleWidth) / 2 + 11) +
", 23\n " +
((_vm.width - _vm.titleWidth) / 2 + 33) +
", 49 " +
((_vm.width + _vm.titleWidth) / 2 - 22) +
", 49\n "
}
}),
_vm._v(" "),
_c(
"polygon",
{
attrs: {
filter: "url(#" + _vm.filterId + ")",
fill: _vm.mergedColor[0],
opacity: "1",
points:
"\n " +
((_vm.width - _vm.titleWidth) / 2 - 10) +
", 37 " +
((_vm.width - _vm.titleWidth) / 2 - 31) +
", 37\n " +
((_vm.width - _vm.titleWidth) / 2 - 25) +
", 46 " +
((_vm.width - _vm.titleWidth) / 2 - 4) +
", 46\n "
}
},
[
_c("animate", {
attrs: {
attributeName: "opacity",
values: "1;0.7;1",
dur: "2s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"polygon",
{
attrs: {
filter: "url(#" + _vm.filterId + ")",
fill: _vm.mergedColor[0],
opacity: "0.7",
points:
"\n " +
((_vm.width - _vm.titleWidth) / 2 - 40) +
", 37 " +
((_vm.width - _vm.titleWidth) / 2 - 61) +
", 37\n " +
((_vm.width - _vm.titleWidth) / 2 - 55) +
", 46 " +
((_vm.width - _vm.titleWidth) / 2 - 34) +
", 46\n "
}
},
[
_c("animate", {
attrs: {
attributeName: "opacity",
values: "0.7;0.4;0.7",
dur: "2s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"polygon",
{
attrs: {
filter: "url(#" + _vm.filterId + ")",
fill: _vm.mergedColor[0],
opacity: "0.5",
points:
"\n " +
((_vm.width - _vm.titleWidth) / 2 - 70) +
", 37 " +
((_vm.width - _vm.titleWidth) / 2 - 91) +
", 37\n " +
((_vm.width - _vm.titleWidth) / 2 - 85) +
", 46 " +
((_vm.width - _vm.titleWidth) / 2 - 64) +
", 46\n "
}
},
[
_c("animate", {
attrs: {
attributeName: "opacity",
values: "0.5;0.2;0.5",
dur: "2s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"polygon",
{
attrs: {
filter: "url(#" + _vm.filterId + ")",
fill: _vm.mergedColor[0],
opacity: "1",
points:
"\n " +
((_vm.width + _vm.titleWidth) / 2 + 30) +
", 37 " +
((_vm.width + _vm.titleWidth) / 2 + 9) +
", 37\n " +
((_vm.width + _vm.titleWidth) / 2 + 3) +
", 46 " +
((_vm.width + _vm.titleWidth) / 2 + 24) +
", 46\n "
}
},
[
_c("animate", {
attrs: {
attributeName: "opacity",
values: "1;0.7;1",
dur: "2s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"polygon",
{
attrs: {
filter: "url(#" + _vm.filterId + ")",
fill: _vm.mergedColor[0],
opacity: "0.7",
points:
"\n " +
((_vm.width + _vm.titleWidth) / 2 + 60) +
", 37 " +
((_vm.width + _vm.titleWidth) / 2 + 39) +
", 37\n " +
((_vm.width + _vm.titleWidth) / 2 + 33) +
", 46 " +
((_vm.width + _vm.titleWidth) / 2 + 54) +
", 46\n "
}
},
[
_c("animate", {
attrs: {
attributeName: "opacity",
values: "0.7;0.4;0.7",
dur: "2s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"polygon",
{
attrs: {
filter: "url(#" + _vm.filterId + ")",
fill: _vm.mergedColor[0],
opacity: "0.5",
points:
"\n " +
((_vm.width + _vm.titleWidth) / 2 + 90) +
", 37 " +
((_vm.width + _vm.titleWidth) / 2 + 69) +
", 37\n " +
((_vm.width + _vm.titleWidth) / 2 + 63) +
", 46 " +
((_vm.width + _vm.titleWidth) / 2 + 84) +
", 46\n "
}
},
[
_c("animate", {
attrs: {
attributeName: "opacity",
values: "0.5;0.2;0.5",
dur: "2s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"text",
{
staticClass: "dv-border-box-11-title",
attrs: {
x: "" + _vm.width / 2,
y: "32",
fill: "#fff",
"font-size": "18",
"text-anchor": "middle",
"dominant-baseline": "middle"
}
},
[_vm._v("\n " + _vm._s(_vm.title) + "\n ")]
),
_vm._v(" "),
_c("polygon", {
attrs: {
fill: _vm.mergedColor[0],
filter: "url(#" + _vm.filterId + ")",
points:
"\n 7, " +
(53 + (_vm.height - 167) / 2) +
" 11, " +
(57 + (_vm.height - 167) / 2) +
"\n 11, " +
(133 + (_vm.height - 167) / 2) +
" 7, " +
(137 + (_vm.height - 167) / 2) +
"\n "
}
}),
_vm._v(" "),
_c("polygon", {
attrs: {
fill: _vm.mergedColor[0],
filter: "url(#" + _vm.filterId + ")",
points:
"\n " +
(_vm.width - 7) +
", " +
(53 + (_vm.height - 167) / 2) +
" " +
(_vm.width - 11) +
", " +
(57 + (_vm.height - 167) / 2) +
"\n " +
(_vm.width - 11) +
", " +
(133 + (_vm.height - 167) / 2) +
" " +
(_vm.width - 7) +
", " +
(137 + (_vm.height - 167) / 2) +
"\n "
}
})
]
),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
])
};
var __vue_staticRenderFns__$c = [];
__vue_render__$c._withStripped = true;
/* style */
const __vue_inject_styles__$c = function (inject) {
if (!inject) return
inject("data-v-35a67b46_0", { source: ".dv-border-box-11 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-11 .dv-border-svg-container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-border-box-11 .dv-border-svg-container polyline {\n fill: none;\n stroke-width: 1;\n}\n.dv-border-box-11 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,QAAQ;EACR,SAAS;AACX;AACA;EACE,UAAU;EACV,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-11 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-11 .dv-border-svg-container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-border-box-11 .dv-border-svg-container polyline {\n fill: none;\n stroke-width: 1;\n}\n.dv-border-box-11 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$c = undefined;
/* module identifier */
const __vue_module_identifier__$c = undefined;
/* functional template */
const __vue_is_functional_template__$c = false;
/* style inject SSR */
var BorderBox11 = normalizeComponent_1(
{ render: __vue_render__$c, staticRenderFns: __vue_staticRenderFns__$c },
__vue_inject_styles__$c,
__vue_script__$c,
__vue_scope_id__$c,
__vue_is_functional_template__$c,
__vue_module_identifier__$c,
browser,
undefined
);
function borderBox11 (Vue) {
Vue.component(BorderBox11.name, BorderBox11);
}
//
var script$d = {
name: 'DvBorderBox12',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
const timestamp = +new Date();
return {
ref: 'border-box-12',
filterId: `borderr-box-12-filterId-${timestamp}`,
defaultColor: ['#2e6099', '#7ce7fd'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
},
fade: lib_9
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$d = script$d;
/* template */
var __vue_render__$d = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-border-box-12" }, [
_c(
"svg",
{
staticClass: "dv-border-svg-container",
attrs: { width: _vm.width, height: _vm.height }
},
[
_c("defs", [
_c(
"filter",
{
attrs: {
id: _vm.filterId,
height: "150%",
width: "150%",
x: "-25%",
y: "-25%"
}
},
[
_c("feMorphology", {
attrs: {
operator: "dilate",
radius: "1",
in: "SourceAlpha",
result: "thicken"
}
}),
_vm._v(" "),
_c("feGaussianBlur", {
attrs: { in: "thicken", stdDeviation: "2", result: "blurred" }
}),
_vm._v(" "),
_c(
"feFlood",
{
attrs: {
"flood-color": _vm.fade(
_vm.mergedColor[1] || _vm.defaultColor[1],
70
),
result: "glowColor"
}
},
[
_c("animate", {
attrs: {
attributeName: "flood-color",
values:
"\n " +
_vm.fade(
_vm.mergedColor[1] || _vm.defaultColor[1],
70
) +
";\n " +
_vm.fade(
_vm.mergedColor[1] || _vm.defaultColor[1],
30
) +
";\n " +
_vm.fade(
_vm.mergedColor[1] || _vm.defaultColor[1],
70
) +
";\n ",
dur: "3s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c("feComposite", {
attrs: {
in: "glowColor",
in2: "blurred",
operator: "in",
result: "softGlowColored"
}
}),
_vm._v(" "),
_c(
"feMerge",
[
_c("feMergeNode", { attrs: { in: "softGlowColored" } }),
_vm._v(" "),
_c("feMergeNode", { attrs: { in: "SourceGraphic" } })
],
1
)
],
1
)
]),
_vm._v(" "),
_vm.width && _vm.height
? _c("path", {
attrs: {
fill: "transparent",
"stroke-width": "2",
stroke: _vm.mergedColor[0],
d:
"\n M15 5 L " +
(_vm.width - 15) +
" 5 Q " +
(_vm.width - 5) +
" 5, " +
(_vm.width - 5) +
" 15\n L " +
(_vm.width - 5) +
" " +
(_vm.height - 15) +
" Q " +
(_vm.width - 5) +
" " +
(_vm.height - 5) +
", " +
(_vm.width - 15) +
" " +
(_vm.height - 5) +
"\n L 15, " +
(_vm.height - 5) +
" Q 5 " +
(_vm.height - 5) +
" 5 " +
(_vm.height - 15) +
" L 5 15\n Q 5 5 15 5\n "
}
})
: _vm._e(),
_vm._v(" "),
_c("path", {
attrs: {
"stroke-width": "2",
fill: "transparent",
"stroke-linecap": "round",
filter: "url(#" + _vm.filterId + ")",
stroke: _vm.mergedColor[1],
d: "M 20 5 L 15 5 Q 5 5 5 15 L 5 20"
}
}),
_vm._v(" "),
_c("path", {
attrs: {
"stroke-width": "2",
fill: "transparent",
"stroke-linecap": "round",
filter: "url(#" + _vm.filterId + ")",
stroke: _vm.mergedColor[1],
d:
"M " +
(_vm.width - 20) +
" 5 L " +
(_vm.width - 15) +
" 5 Q " +
(_vm.width - 5) +
" 5 " +
(_vm.width - 5) +
" 15 L " +
(_vm.width - 5) +
" 20"
}
}),
_vm._v(" "),
_c("path", {
attrs: {
"stroke-width": "2",
fill: "transparent",
"stroke-linecap": "round",
filter: "url(#" + _vm.filterId + ")",
stroke: _vm.mergedColor[1],
d:
"\n M " +
(_vm.width - 20) +
" " +
(_vm.height - 5) +
" L " +
(_vm.width - 15) +
" " +
(_vm.height - 5) +
"\n Q " +
(_vm.width - 5) +
" " +
(_vm.height - 5) +
" " +
(_vm.width - 5) +
" " +
(_vm.height - 15) +
"\n L " +
(_vm.width - 5) +
" " +
(_vm.height - 20) +
"\n "
}
}),
_vm._v(" "),
_c("path", {
attrs: {
"stroke-width": "2",
fill: "transparent",
"stroke-linecap": "round",
filter: "url(#" + _vm.filterId + ")",
stroke: _vm.mergedColor[1],
d:
"\n M 20 " +
(_vm.height - 5) +
" L 15 " +
(_vm.height - 5) +
"\n Q 5 " +
(_vm.height - 5) +
" 5 " +
(_vm.height - 15) +
"\n L 5 " +
(_vm.height - 20) +
"\n "
}
})
]
),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
])
};
var __vue_staticRenderFns__$d = [];
__vue_render__$d._withStripped = true;
/* style */
const __vue_inject_styles__$d = function (inject) {
if (!inject) return
inject("data-v-e77d64a4_0", { source: ".dv-border-box-12 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-12 .dv-border-svg-container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-border-box-12 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,QAAQ;EACR,SAAS;AACX;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-12 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-12 .dv-border-svg-container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-border-box-12 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$d = undefined;
/* module identifier */
const __vue_module_identifier__$d = undefined;
/* functional template */
const __vue_is_functional_template__$d = false;
/* style inject SSR */
var BorderBox12 = normalizeComponent_1(
{ render: __vue_render__$d, staticRenderFns: __vue_staticRenderFns__$d },
__vue_inject_styles__$d,
__vue_script__$d,
__vue_scope_id__$d,
__vue_is_functional_template__$d,
__vue_module_identifier__$d,
browser,
undefined
);
function borderBox12 (Vue) {
Vue.component(BorderBox12.name, BorderBox12);
}
//
var script$e = {
name: 'DvBorderBox13',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
return {
ref: 'border-box-13',
defaultColor: ['#6586ec', '#2cf7fe'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$e = script$e;
/* template */
var __vue_render__$e = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-border-box-13" }, [
_c(
"svg",
{
staticClass: "dv-border-svg-container",
attrs: { width: _vm.width, height: _vm.height }
},
[
_c("path", {
attrs: {
fill: "transparent",
stroke: _vm.mergedColor[0],
d:
"\n M 5 20 L 5 10 L 12 3 L 60 3 L 68 10\n L " +
(_vm.width - 20) +
" 10 L " +
(_vm.width - 5) +
" 25\n L " +
(_vm.width - 5) +
" " +
(_vm.height - 5) +
" L 20 " +
(_vm.height - 5) +
"\n L 5 " +
(_vm.height - 20) +
" L 5 20\n "
}
}),
_vm._v(" "),
_c("path", {
attrs: {
fill: "transparent",
"stroke-width": "3",
"stroke-linecap": "round",
"stroke-dasharray": "10, 5",
stroke: _vm.mergedColor[0],
d: "M 16 9 L 61 9"
}
}),
_vm._v(" "),
_c("path", {
attrs: {
fill: "transparent",
stroke: _vm.mergedColor[1],
d: "M 5 20 L 5 10 L 12 3 L 60 3 L 68 10"
}
}),
_vm._v(" "),
_c("path", {
attrs: {
fill: "transparent",
stroke: _vm.mergedColor[1],
d:
"M " +
(_vm.width - 5) +
" " +
(_vm.height - 30) +
" L " +
(_vm.width - 5) +
" " +
(_vm.height - 5) +
" L " +
(_vm.width - 30) +
" " +
(_vm.height - 5)
}
})
]
),
_vm._v(" "),
_c("div", { staticClass: "border-box-content" }, [_vm._t("default")], 2)
])
};
var __vue_staticRenderFns__$e = [];
__vue_render__$e._withStripped = true;
/* style */
const __vue_inject_styles__$e = function (inject) {
if (!inject) return
inject("data-v-29fc19bd_0", { source: ".dv-border-box-13 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-13 .dv-border-svg-container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-border-box-13 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,QAAQ;EACR,SAAS;AACX;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-border-box-13 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-border-box-13 .dv-border-svg-container {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-border-box-13 .border-box-content {\n position: relative;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$e = undefined;
/* module identifier */
const __vue_module_identifier__$e = undefined;
/* functional template */
const __vue_is_functional_template__$e = false;
/* style inject SSR */
var BorderBox13 = normalizeComponent_1(
{ render: __vue_render__$e, staticRenderFns: __vue_staticRenderFns__$e },
__vue_inject_styles__$e,
__vue_script__$e,
__vue_scope_id__$e,
__vue_is_functional_template__$e,
__vue_module_identifier__$e,
browser,
undefined
);
function borderBox13 (Vue) {
Vue.component(BorderBox13.name, BorderBox13);
}
//
var script$f = {
name: 'DvDecoration1',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
const pointSideLength = 2.5;
return {
ref: 'decoration-1',
svgWH: [200, 50],
svgScale: [1, 1],
rowNum: 4,
rowPoints: 20,
pointSideLength,
halfPointSideLength: pointSideLength / 2,
points: [],
rects: [],
defaultColor: ['#fff', '#0de7c2'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
afterAutoResizeMixinInit() {
const {
calcSVGData
} = this;
calcSVGData();
},
calcSVGData() {
const {
calcPointsPosition,
calcRectsPosition,
calcScale
} = this;
calcPointsPosition();
calcRectsPosition();
calcScale();
},
calcPointsPosition() {
const {
svgWH,
rowNum,
rowPoints
} = this;
const [w, h] = svgWH;
const horizontalGap = w / (rowPoints + 1);
const verticalGap = h / (rowNum + 1);
let points = new Array(rowNum).fill(0).map((foo, i) => new Array(rowPoints).fill(0).map((foo, j) => [horizontalGap * (j + 1), verticalGap * (i + 1)]));
this.points = points.reduce((all, item) => [...all, ...item], []);
},
calcRectsPosition() {
const {
points,
rowPoints
} = this;
const rect1 = points[rowPoints * 2 - 1];
const rect2 = points[rowPoints * 2 - 3];
this.rects = [rect1, rect2];
},
calcScale() {
const {
width,
height,
svgWH
} = this;
const [w, h] = svgWH;
this.svgScale = [width / w, height / h];
},
onResize() {
const {
calcSVGData
} = this;
calcSVGData();
},
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$f = script$f;
/* template */
var __vue_render__$f = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-decoration-1" }, [
_c(
"svg",
{
style:
"transform:scale(" + _vm.svgScale[0] + "," + _vm.svgScale[1] + ");",
attrs: { width: _vm.svgWH[0] + "px", height: _vm.svgWH[1] + "px" }
},
[
_vm._l(_vm.points, function(point, i) {
return [
Math.random() > 0.6
? _c(
"rect",
{
key: i,
attrs: {
fill: _vm.mergedColor[0],
x: point[0] - _vm.halfPointSideLength,
y: point[1] - _vm.halfPointSideLength,
width: _vm.pointSideLength,
height: _vm.pointSideLength
}
},
[
Math.random() > 0.6
? _c("animate", {
attrs: {
attributeName: "fill",
values: _vm.mergedColor[0] + ";transparent",
dur: "1s",
begin: Math.random() * 2,
repeatCount: "indefinite"
}
})
: _vm._e()
]
)
: _vm._e()
]
}),
_vm._v(" "),
_vm.rects[0]
? _c(
"rect",
{
attrs: {
fill: _vm.mergedColor[1],
x: _vm.rects[0][0] - _vm.pointSideLength,
y: _vm.rects[0][1] - _vm.pointSideLength,
width: _vm.pointSideLength * 2,
height: _vm.pointSideLength * 2
}
},
[
_c("animate", {
attrs: {
attributeName: "width",
values: "0;" + _vm.pointSideLength * 2,
dur: "2s",
repeatCount: "indefinite"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "height",
values: "0;" + _vm.pointSideLength * 2,
dur: "2s",
repeatCount: "indefinite"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "x",
values:
_vm.rects[0][0] +
";" +
(_vm.rects[0][0] - _vm.pointSideLength),
dur: "2s",
repeatCount: "indefinite"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "y",
values:
_vm.rects[0][1] +
";" +
(_vm.rects[0][1] - _vm.pointSideLength),
dur: "2s",
repeatCount: "indefinite"
}
})
]
)
: _vm._e(),
_vm._v(" "),
_vm.rects[1]
? _c(
"rect",
{
attrs: {
fill: _vm.mergedColor[1],
x: _vm.rects[1][0] - 40,
y: _vm.rects[1][1] - _vm.pointSideLength,
width: 40,
height: _vm.pointSideLength * 2
}
},
[
_c("animate", {
attrs: {
attributeName: "width",
values: "0;40;0",
dur: "2s",
repeatCount: "indefinite"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "x",
values:
_vm.rects[1][0] +
";" +
(_vm.rects[1][0] - 40) +
";" +
_vm.rects[1][0],
dur: "2s",
repeatCount: "indefinite"
}
})
]
)
: _vm._e()
],
2
)
])
};
var __vue_staticRenderFns__$f = [];
__vue_render__$f._withStripped = true;
/* style */
const __vue_inject_styles__$f = function (inject) {
if (!inject) return
inject("data-v-69241e60_0", { source: ".dv-decoration-1 {\n width: 100%;\n height: 100%;\n}\n.dv-decoration-1 svg {\n transform-origin: left top;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,0BAA0B;AAC5B","file":"main.vue","sourcesContent":[".dv-decoration-1 {\n width: 100%;\n height: 100%;\n}\n.dv-decoration-1 svg {\n transform-origin: left top;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$f = undefined;
/* module identifier */
const __vue_module_identifier__$f = undefined;
/* functional template */
const __vue_is_functional_template__$f = false;
/* style inject SSR */
var Decoration1 = normalizeComponent_1(
{ render: __vue_render__$f, staticRenderFns: __vue_staticRenderFns__$f },
__vue_inject_styles__$f,
__vue_script__$f,
__vue_scope_id__$f,
__vue_is_functional_template__$f,
__vue_module_identifier__$f,
browser,
undefined
);
function decoration1 (Vue) {
Vue.component(Decoration1.name, Decoration1);
}
//
var script$g = {
name: 'DvDecoration2',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
},
reverse: {
type: Boolean,
default: false
}
},
data() {
return {
ref: 'decoration-2',
x: 0,
y: 0,
w: 0,
h: 0,
defaultColor: ['#3faacb', '#fff'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
},
reverse() {
const {
calcSVGData
} = this;
calcSVGData();
}
},
methods: {
afterAutoResizeMixinInit() {
const {
calcSVGData
} = this;
calcSVGData();
},
calcSVGData() {
const {
reverse,
width,
height
} = this;
if (reverse) {
this.w = 1;
this.h = height;
this.x = width / 2;
this.y = 0;
} else {
this.w = width;
this.h = 1;
this.x = 0;
this.y = height / 2;
}
},
onResize() {
const {
calcSVGData
} = this;
calcSVGData();
},
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$g = script$g;
/* template */
var __vue_render__$g = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-decoration-2" }, [
_c(
"svg",
{ attrs: { width: _vm.width + "px", height: _vm.height + "px" } },
[
_c(
"rect",
{
attrs: {
x: _vm.x,
y: _vm.y,
width: _vm.w,
height: _vm.h,
fill: _vm.mergedColor[0]
}
},
[
_c("animate", {
attrs: {
attributeName: _vm.reverse ? "height" : "width",
from: "0",
to: _vm.reverse ? _vm.height : _vm.width,
dur: "6s",
calcMode: "spline",
keyTimes: "0;1",
keySplines: ".42,0,.58,1",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"rect",
{
attrs: {
x: _vm.x,
y: _vm.y,
width: "1",
height: "1",
fill: _vm.mergedColor[1]
}
},
[
_c("animate", {
attrs: {
attributeName: _vm.reverse ? "y" : "x",
from: "0",
to: _vm.reverse ? _vm.height : _vm.width,
dur: "6s",
calcMode: "spline",
keyTimes: "0;1",
keySplines: "0.42,0,0.58,1",
repeatCount: "indefinite"
}
})
]
)
]
)
])
};
var __vue_staticRenderFns__$g = [];
__vue_render__$g._withStripped = true;
/* style */
const __vue_inject_styles__$g = function (inject) {
if (!inject) return
inject("data-v-a2b21eaa_0", { source: ".dv-decoration-2 {\n display: flex;\n width: 100%;\n height: 100%;\n justify-content: center;\n align-items: center;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,aAAa;EACb,WAAW;EACX,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;AACrB","file":"main.vue","sourcesContent":[".dv-decoration-2 {\n display: flex;\n width: 100%;\n height: 100%;\n justify-content: center;\n align-items: center;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$g = undefined;
/* module identifier */
const __vue_module_identifier__$g = undefined;
/* functional template */
const __vue_is_functional_template__$g = false;
/* style inject SSR */
var Decoration2 = normalizeComponent_1(
{ render: __vue_render__$g, staticRenderFns: __vue_staticRenderFns__$g },
__vue_inject_styles__$g,
__vue_script__$g,
__vue_scope_id__$g,
__vue_is_functional_template__$g,
__vue_module_identifier__$g,
browser,
undefined
);
function decoration2 (Vue) {
Vue.component(Decoration2.name, Decoration2);
}
//
var script$h = {
name: 'DvDecoration3',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
const pointSideLength = 7;
return {
ref: 'decoration-3',
svgWH: [300, 35],
svgScale: [1, 1],
rowNum: 2,
rowPoints: 25,
pointSideLength,
halfPointSideLength: pointSideLength / 2,
points: [],
defaultColor: ['#7acaec', 'transparent'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
afterAutoResizeMixinInit() {
const {
calcSVGData
} = this;
calcSVGData();
},
calcSVGData() {
const {
calcPointsPosition,
calcScale
} = this;
calcPointsPosition();
calcScale();
},
calcPointsPosition() {
const {
svgWH,
rowNum,
rowPoints
} = this;
const [w, h] = svgWH;
const horizontalGap = w / (rowPoints + 1);
const verticalGap = h / (rowNum + 1);
let points = new Array(rowNum).fill(0).map((foo, i) => new Array(rowPoints).fill(0).map((foo, j) => [horizontalGap * (j + 1), verticalGap * (i + 1)]));
this.points = points.reduce((all, item) => [...all, ...item], []);
},
calcScale() {
const {
width,
height,
svgWH
} = this;
const [w, h] = svgWH;
this.svgScale = [width / w, height / h];
},
onResize() {
const {
calcSVGData
} = this;
calcSVGData();
},
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$h = script$h;
/* template */
var __vue_render__$h = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-decoration-3" }, [
_c(
"svg",
{
style:
"transform:scale(" + _vm.svgScale[0] + "," + _vm.svgScale[1] + ");",
attrs: { width: _vm.svgWH[0] + "px", height: _vm.svgWH[1] + "px" }
},
[
_vm._l(_vm.points, function(point, i) {
return [
_c(
"rect",
{
key: i,
attrs: {
fill: _vm.mergedColor[0],
x: point[0] - _vm.halfPointSideLength,
y: point[1] - _vm.halfPointSideLength,
width: _vm.pointSideLength,
height: _vm.pointSideLength
}
},
[
Math.random() > 0.6
? _c("animate", {
attrs: {
attributeName: "fill",
values: "" + _vm.mergedColor.join(";"),
dur: Math.random() + 1 + "s",
begin: Math.random() * 2,
repeatCount: "indefinite"
}
})
: _vm._e()
]
)
]
})
],
2
)
])
};
var __vue_staticRenderFns__$h = [];
__vue_render__$h._withStripped = true;
/* style */
const __vue_inject_styles__$h = function (inject) {
if (!inject) return
inject("data-v-2cd3ac93_0", { source: ".dv-decoration-3 {\n width: 100%;\n height: 100%;\n}\n.dv-decoration-3 svg {\n transform-origin: left top;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,0BAA0B;AAC5B","file":"main.vue","sourcesContent":[".dv-decoration-3 {\n width: 100%;\n height: 100%;\n}\n.dv-decoration-3 svg {\n transform-origin: left top;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$h = undefined;
/* module identifier */
const __vue_module_identifier__$h = undefined;
/* functional template */
const __vue_is_functional_template__$h = false;
/* style inject SSR */
var Decoration3 = normalizeComponent_1(
{ render: __vue_render__$h, staticRenderFns: __vue_staticRenderFns__$h },
__vue_inject_styles__$h,
__vue_script__$h,
__vue_scope_id__$h,
__vue_is_functional_template__$h,
__vue_module_identifier__$h,
browser,
undefined
);
function decoration3 (Vue) {
Vue.component(Decoration3.name, Decoration3);
}
//
var script$i = {
name: 'DvDecoration4',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
},
reverse: {
type: Boolean,
default: false
}
},
data() {
return {
ref: 'decoration-4',
defaultColor: ['rgba(255, 255, 255, 0.3)', 'rgba(255, 255, 255, 0.3)'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$i = script$i;
/* template */
var __vue_render__$i = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-decoration-4" }, [
_c(
"div",
{
class: "container " + (_vm.reverse ? "reverse" : "normal"),
style: _vm.reverse
? "width:" + _vm.width + "px;height:5px"
: "width:5px;height:" + _vm.height + "px;"
},
[
_c(
"svg",
{
attrs: {
width: _vm.reverse ? _vm.width : 5,
height: _vm.reverse ? 5 : _vm.height
}
},
[
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
points: _vm.reverse
? "0, 2.5 " + _vm.width + ", 2.5"
: "2.5, 0 2.5, " + _vm.height
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "bold-line",
attrs: {
stroke: _vm.mergedColor[1],
"stroke-width": "3",
"stroke-dasharray": "20, 80",
"stroke-dashoffset": "-30",
points: _vm.reverse
? "0, 2.5 " + _vm.width + ", 2.5"
: "2.5, 0 2.5, " + _vm.height
}
})
]
)
]
)
])
};
var __vue_staticRenderFns__$i = [];
__vue_render__$i._withStripped = true;
/* style */
const __vue_inject_styles__$i = function (inject) {
if (!inject) return
inject("data-v-41fd2a74_0", { source: ".dv-decoration-4 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-decoration-4 .container {\n display: flex;\n overflow: hidden;\n position: absolute;\n}\n.dv-decoration-4 .normal {\n height: 0% !important;\n animation: ani-height 3s ease-in-out infinite;\n left: 50%;\n margin-left: -2px;\n}\n.dv-decoration-4 .reverse {\n width: 0% !important;\n animation: ani-width 3s ease-in-out infinite;\n top: 50%;\n margin-top: -2px;\n}\n@keyframes ani-height {\n70% {\n height: 100%;\n}\n100% {\n height: 100%;\n}\n}\n@keyframes ani-width {\n70% {\n width: 100%;\n}\n100% {\n width: 100%;\n}\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,aAAa;EACb,gBAAgB;EAChB,kBAAkB;AACpB;AACA;EACE,qBAAqB;EACrB,6CAA6C;EAC7C,SAAS;EACT,iBAAiB;AACnB;AACA;EACE,oBAAoB;EACpB,4CAA4C;EAC5C,QAAQ;EACR,gBAAgB;AAClB;AACA;AACE;IACE,YAAY;AACd;AACA;IACE,YAAY;AACd;AACF;AACA;AACE;IACE,WAAW;AACb;AACA;IACE,WAAW;AACb;AACF","file":"main.vue","sourcesContent":[".dv-decoration-4 {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-decoration-4 .container {\n display: flex;\n overflow: hidden;\n position: absolute;\n}\n.dv-decoration-4 .normal {\n height: 0% !important;\n animation: ani-height 3s ease-in-out infinite;\n left: 50%;\n margin-left: -2px;\n}\n.dv-decoration-4 .reverse {\n width: 0% !important;\n animation: ani-width 3s ease-in-out infinite;\n top: 50%;\n margin-top: -2px;\n}\n@keyframes ani-height {\n 70% {\n height: 100%;\n }\n 100% {\n height: 100%;\n }\n}\n@keyframes ani-width {\n 70% {\n width: 100%;\n }\n 100% {\n width: 100%;\n }\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$i = undefined;
/* module identifier */
const __vue_module_identifier__$i = undefined;
/* functional template */
const __vue_is_functional_template__$i = false;
/* style inject SSR */
var Decoration4 = normalizeComponent_1(
{ render: __vue_render__$i, staticRenderFns: __vue_staticRenderFns__$i },
__vue_inject_styles__$i,
__vue_script__$i,
__vue_scope_id__$i,
__vue_is_functional_template__$i,
__vue_module_identifier__$i,
browser,
undefined
);
function decoration4 (Vue) {
Vue.component(Decoration4.name, Decoration4);
}
//
var script$j = {
name: 'DvDecoration5',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
return {
ref: 'decoration-5',
line1Points: '',
line2Points: '',
line1Length: 0,
line2Length: 0,
defaultColor: ['#3f96a5', '#3f96a5'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
afterAutoResizeMixinInit() {
const {
calcSVGData
} = this;
calcSVGData();
},
calcSVGData() {
const {
width,
height
} = this;
let line1Points = [[0, height * 0.2], [width * 0.18, height * 0.2], [width * 0.2, height * 0.4], [width * 0.25, height * 0.4], [width * 0.27, height * 0.6], [width * 0.72, height * 0.6], [width * 0.75, height * 0.4], [width * 0.8, height * 0.4], [width * 0.82, height * 0.2], [width, height * 0.2]];
let line2Points = [[width * 0.3, height * 0.8], [width * 0.7, height * 0.8]];
const line1Length = util_7$1(line1Points);
const line2Length = util_7$1(line2Points);
line1Points = line1Points.map(point => point.join(',')).join(' ');
line2Points = line2Points.map(point => point.join(',')).join(' ');
this.line1Points = line1Points;
this.line2Points = line2Points;
this.line1Length = line1Length;
this.line2Length = line2Length;
},
onResize() {
const {
calcSVGData
} = this;
calcSVGData();
},
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$j = script$j;
/* template */
var __vue_render__$j = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-decoration-5" }, [
_c("svg", { attrs: { width: _vm.width, height: _vm.height } }, [
_c(
"polyline",
{
attrs: {
fill: "transparent",
stroke: _vm.mergedColor[0],
"stroke-width": "3",
points: _vm.line1Points
}
},
[
_c("animate", {
attrs: {
attributeName: "stroke-dasharray",
attributeType: "XML",
from: "0, " + _vm.line1Length / 2 + ", 0, " + _vm.line1Length / 2,
to: "0, 0, " + _vm.line1Length + ", 0",
dur: "1.2s",
begin: "0s",
calcMode: "spline",
keyTimes: "0;1",
keySplines: "0.4,1,0.49,0.98",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"polyline",
{
attrs: {
fill: "transparent",
stroke: _vm.mergedColor[1],
"stroke-width": "2",
points: _vm.line2Points
}
},
[
_c("animate", {
attrs: {
attributeName: "stroke-dasharray",
attributeType: "XML",
from: "0, " + _vm.line2Length / 2 + ", 0, " + _vm.line2Length / 2,
to: "0, 0, " + _vm.line2Length + ", 0",
dur: "1.2s",
begin: "0s",
calcMode: "spline",
keyTimes: "0;1",
keySplines: ".4,1,.49,.98",
repeatCount: "indefinite"
}
})
]
)
])
])
};
var __vue_staticRenderFns__$j = [];
__vue_render__$j._withStripped = true;
/* style */
const __vue_inject_styles__$j = function (inject) {
if (!inject) return
inject("data-v-301d5bb4_0", { source: ".dv-decoration-5 {\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-decoration-5 {\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$j = undefined;
/* module identifier */
const __vue_module_identifier__$j = undefined;
/* functional template */
const __vue_is_functional_template__$j = false;
/* style inject SSR */
var Decoration5 = normalizeComponent_1(
{ render: __vue_render__$j, staticRenderFns: __vue_staticRenderFns__$j },
__vue_inject_styles__$j,
__vue_script__$j,
__vue_scope_id__$j,
__vue_is_functional_template__$j,
__vue_module_identifier__$j,
browser,
undefined
);
function decoration5 (Vue) {
Vue.component(Decoration5.name, Decoration5);
}
//
var script$k = {
name: 'DvDecoration6',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
const rectWidth = 7;
return {
ref: 'decoration-6',
svgWH: [300, 35],
svgScale: [1, 1],
rowNum: 1,
rowPoints: 40,
rectWidth,
halfRectWidth: rectWidth / 2,
points: [],
heights: [],
minHeights: [],
randoms: [],
defaultColor: ['#7acaec', '#7acaec'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
afterAutoResizeMixinInit() {
const {
calcSVGData
} = this;
calcSVGData();
},
calcSVGData() {
const {
calcPointsPosition,
calcScale
} = this;
calcPointsPosition();
calcScale();
},
calcPointsPosition() {
const {
svgWH,
rowNum,
rowPoints
} = this;
const [w, h] = svgWH;
const horizontalGap = w / (rowPoints + 1);
const verticalGap = h / (rowNum + 1);
let points = new Array(rowNum).fill(0).map((foo, i) => new Array(rowPoints).fill(0).map((foo, j) => [horizontalGap * (j + 1), verticalGap * (i + 1)]));
this.points = points.reduce((all, item) => [...all, ...item], []);
const heights = this.heights = new Array(rowNum * rowPoints).fill(0).map(foo => Math.random() > 0.8 ? randomExtend(0.7 * h, h) : randomExtend(0.2 * h, 0.5 * h));
this.minHeights = new Array(rowNum * rowPoints).fill(0).map((foo, i) => heights[i] * Math.random());
this.randoms = new Array(rowNum * rowPoints).fill(0).map(foo => Math.random() + 1.5);
},
calcScale() {
const {
width,
height,
svgWH
} = this;
const [w, h] = svgWH;
this.svgScale = [width / w, height / h];
},
onResize() {
const {
calcSVGData
} = this;
calcSVGData();
},
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$k = script$k;
/* template */
var __vue_render__$k = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-decoration-6" }, [
_c(
"svg",
{
style:
"transform:scale(" + _vm.svgScale[0] + "," + _vm.svgScale[1] + ");",
attrs: { width: _vm.svgWH[0] + "px", height: _vm.svgWH[1] + "px" }
},
[
_vm._l(_vm.points, function(point, i) {
return [
_c(
"rect",
{
key: i,
attrs: {
fill: _vm.mergedColor[Math.random() > 0.5 ? 0 : 1],
x: point[0] - _vm.halfRectWidth,
y: point[1] - _vm.heights[i] / 2,
width: _vm.rectWidth,
height: _vm.heights[i]
}
},
[
_c("animate", {
attrs: {
attributeName: "y",
values:
point[1] -
_vm.minHeights[i] / 2 +
";" +
(point[1] - _vm.heights[i] / 2) +
";" +
(point[1] - _vm.minHeights[i] / 2),
dur: _vm.randoms[i] + "s",
keyTimes: "0;0.5;1",
calcMode: "spline",
keySplines: "0.42,0,0.58,1;0.42,0,0.58,1",
begin: "0s",
repeatCount: "indefinite"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "height",
values:
_vm.minHeights[i] +
";" +
_vm.heights[i] +
";" +
_vm.minHeights[i],
dur: _vm.randoms[i] + "s",
keyTimes: "0;0.5;1",
calcMode: "spline",
keySplines: "0.42,0,0.58,1;0.42,0,0.58,1",
begin: "0s",
repeatCount: "indefinite"
}
})
]
)
]
})
],
2
)
])
};
var __vue_staticRenderFns__$k = [];
__vue_render__$k._withStripped = true;
/* style */
const __vue_inject_styles__$k = function (inject) {
if (!inject) return
inject("data-v-a29c4fc2_0", { source: ".dv-decoration-6 {\n width: 100%;\n height: 100%;\n}\n.dv-decoration-6 svg {\n transform-origin: left top;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,0BAA0B;AAC5B","file":"main.vue","sourcesContent":[".dv-decoration-6 {\n width: 100%;\n height: 100%;\n}\n.dv-decoration-6 svg {\n transform-origin: left top;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$k = undefined;
/* module identifier */
const __vue_module_identifier__$k = undefined;
/* functional template */
const __vue_is_functional_template__$k = false;
/* style inject SSR */
var Decoration6 = normalizeComponent_1(
{ render: __vue_render__$k, staticRenderFns: __vue_staticRenderFns__$k },
__vue_inject_styles__$k,
__vue_script__$k,
__vue_scope_id__$k,
__vue_is_functional_template__$k,
__vue_module_identifier__$k,
browser,
undefined
);
function decoration6 (Vue) {
Vue.component(Decoration6.name, Decoration6);
}
//
var script$l = {
name: 'DvDecoration7',
props: {
color: {
type: Array,
default: () => []
}
},
data() {
return {
defaultColor: ['#1dc1f5', '#1dc1f5'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$l = script$l;
/* template */
var __vue_render__$l = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c(
"div",
{ staticClass: "dv-decoration-7" },
[
_c("svg", { attrs: { width: "21px", height: "20px" } }, [
_c("polyline", {
attrs: {
"stroke-width": "4",
fill: "transparent",
stroke: _vm.mergedColor[0],
points: "10, 0 19, 10 10, 20"
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
"stroke-width": "2",
fill: "transparent",
stroke: _vm.mergedColor[1],
points: "2, 0 11, 10 2, 20"
}
})
]),
_vm._v(" "),
_vm._t("default"),
_vm._v(" "),
_c("svg", { attrs: { width: "21px", height: "20px" } }, [
_c("polyline", {
attrs: {
"stroke-width": "4",
fill: "transparent",
stroke: _vm.mergedColor[0],
points: "11, 0 2, 10 11, 20"
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
"stroke-width": "2",
fill: "transparent",
stroke: _vm.mergedColor[1],
points: "19, 0 10, 10 19, 20"
}
})
])
],
2
)
};
var __vue_staticRenderFns__$l = [];
__vue_render__$l._withStripped = true;
/* style */
const __vue_inject_styles__$l = function (inject) {
if (!inject) return
inject("data-v-b84d1f12_0", { source: ".dv-decoration-7 {\n display: flex;\n width: 100%;\n height: 100%;\n justify-content: center;\n align-items: center;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,aAAa;EACb,WAAW;EACX,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;AACrB","file":"main.vue","sourcesContent":[".dv-decoration-7 {\n display: flex;\n width: 100%;\n height: 100%;\n justify-content: center;\n align-items: center;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$l = undefined;
/* module identifier */
const __vue_module_identifier__$l = undefined;
/* functional template */
const __vue_is_functional_template__$l = false;
/* style inject SSR */
var Decoration7 = normalizeComponent_1(
{ render: __vue_render__$l, staticRenderFns: __vue_staticRenderFns__$l },
__vue_inject_styles__$l,
__vue_script__$l,
__vue_scope_id__$l,
__vue_is_functional_template__$l,
__vue_module_identifier__$l,
browser,
undefined
);
function decoration7 (Vue) {
Vue.component(Decoration7.name, Decoration7);
}
//
var script$m = {
name: 'DvDecoration8',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
},
reverse: {
type: Boolean,
default: false
}
},
data() {
return {
ref: 'decoration-8',
defaultColor: ['#3f96a5', '#3f96a5'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
xPos(pos) {
const {
reverse,
width
} = this;
if (!reverse) return pos;
return width - pos;
},
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$m = script$m;
/* template */
var __vue_render__$m = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-decoration-8" }, [
_c("svg", { attrs: { width: _vm.width, height: _vm.height } }, [
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
"stroke-width": "2",
fill: "transparent",
points: _vm.xPos(0) + ", 0 " + _vm.xPos(30) + ", " + _vm.height / 2
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[0],
"stroke-width": "2",
fill: "transparent",
points:
_vm.xPos(20) +
", 0 " +
_vm.xPos(50) +
", " +
_vm.height / 2 +
" " +
_vm.xPos(_vm.width) +
", " +
_vm.height / 2
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[1],
fill: "transparent",
"stroke-width": "3",
points:
_vm.xPos(0) +
", " +
(_vm.height - 3) +
", " +
_vm.xPos(200) +
", " +
(_vm.height - 3)
}
})
])
])
};
var __vue_staticRenderFns__$m = [];
__vue_render__$m._withStripped = true;
/* style */
const __vue_inject_styles__$m = function (inject) {
if (!inject) return
inject("data-v-53cf43a5_0", { source: ".dv-decoration-8 {\n display: flex;\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,aAAa;EACb,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-decoration-8 {\n display: flex;\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$m = undefined;
/* module identifier */
const __vue_module_identifier__$m = undefined;
/* functional template */
const __vue_is_functional_template__$m = false;
/* style inject SSR */
var Decoration8 = normalizeComponent_1(
{ render: __vue_render__$m, staticRenderFns: __vue_staticRenderFns__$m },
__vue_inject_styles__$m,
__vue_script__$m,
__vue_scope_id__$m,
__vue_is_functional_template__$m,
__vue_module_identifier__$m,
browser,
undefined
);
function decoration8 (Vue) {
Vue.component(Decoration8.name, Decoration8);
}
//
var script$n = {
name: 'DvDecoration9',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
},
dur: {
type: Number,
default: 3
}
},
data() {
const timestamp = Date.now();
return {
ref: 'decoration-9',
polygonId: `decoration-9-polygon-${timestamp}`,
svgWH: [100, 100],
svgScale: [1, 1],
defaultColor: ['rgba(3, 166, 224, 0.8)', 'rgba(3, 166, 224, 0.5)'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
afterAutoResizeMixinInit() {
const {
calcScale
} = this;
calcScale();
},
calcScale() {
const {
width,
height,
svgWH
} = this;
const [w, h] = svgWH;
this.svgScale = [width / w, height / h];
},
onResize() {
const {
calcScale
} = this;
calcScale();
},
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
},
fade: lib_9
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$n = script$n;
/* template */
var __vue_render__$n = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c(
"div",
{ ref: _vm.ref, staticClass: "dv-decoration-9" },
[
_c(
"svg",
{
style:
"transform:scale(" + _vm.svgScale[0] + "," + _vm.svgScale[1] + ");",
attrs: { width: _vm.svgWH[0] + "px", height: _vm.svgWH[1] + "px" }
},
[
_c("defs", [
_c("polygon", {
attrs: {
id: _vm.polygonId,
points: "15, 46.5, 21, 47.5, 21, 52.5, 15, 53.5"
}
})
]),
_vm._v(" "),
_c(
"circle",
{
attrs: {
cx: "50",
cy: "50",
r: "45",
fill: "transparent",
stroke: _vm.mergedColor[1],
"stroke-width": "10",
"stroke-dasharray": "80, 100, 30, 100"
}
},
[
_c("animateTransform", {
attrs: {
attributeName: "transform",
type: "rotate",
values: "0 50 50;360 50 50",
dur: _vm.dur + "s",
repeatCount: "indefinite"
}
})
],
1
),
_vm._v(" "),
_c(
"circle",
{
attrs: {
cx: "50",
cy: "50",
r: "45",
fill: "transparent",
stroke: _vm.mergedColor[0],
"stroke-width": "6",
"stroke-dasharray": "50, 66, 100, 66"
}
},
[
_c("animateTransform", {
attrs: {
attributeName: "transform",
type: "rotate",
values: "0 50 50;-360 50 50",
dur: _vm.dur + "s",
repeatCount: "indefinite"
}
})
],
1
),
_vm._v(" "),
_c("circle", {
attrs: {
cx: "50",
cy: "50",
r: "38",
fill: "transparent",
stroke: _vm.fade(_vm.mergedColor[1] || _vm.defaultColor[1], 30),
"stroke-width": "1",
"stroke-dasharray": "5, 1"
}
}),
_vm._v(" "),
_vm._l(new Array(20).fill(0), function(foo, i) {
return _c(
"use",
{
key: i,
attrs: {
"xlink:href": "#" + _vm.polygonId,
stroke: _vm.mergedColor[1],
fill: Math.random() > 0.4 ? "transparent" : _vm.mergedColor[0]
}
},
[
_c("animateTransform", {
attrs: {
attributeName: "transform",
type: "rotate",
values: "0 50 50;360 50 50",
dur: _vm.dur + "s",
begin: (i * _vm.dur) / 20 + "s",
repeatCount: "indefinite"
}
})
],
1
)
}),
_vm._v(" "),
_c("circle", {
attrs: {
cx: "50",
cy: "50",
r: "26",
fill: "transparent",
stroke: _vm.fade(_vm.mergedColor[1] || _vm.defaultColor[1], 30),
"stroke-width": "1",
"stroke-dasharray": "5, 1"
}
})
],
2
),
_vm._v(" "),
_vm._t("default")
],
2
)
};
var __vue_staticRenderFns__$n = [];
__vue_render__$n._withStripped = true;
/* style */
const __vue_inject_styles__$n = function (inject) {
if (!inject) return
inject("data-v-06b2e4f5_0", { source: ".dv-decoration-9 {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.dv-decoration-9 svg {\n position: absolute;\n left: 0px;\n top: 0px;\n transform-origin: left top;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,QAAQ;EACR,0BAA0B;AAC5B","file":"main.vue","sourcesContent":[".dv-decoration-9 {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.dv-decoration-9 svg {\n position: absolute;\n left: 0px;\n top: 0px;\n transform-origin: left top;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$n = undefined;
/* module identifier */
const __vue_module_identifier__$n = undefined;
/* functional template */
const __vue_is_functional_template__$n = false;
/* style inject SSR */
var Decoration9 = normalizeComponent_1(
{ render: __vue_render__$n, staticRenderFns: __vue_staticRenderFns__$n },
__vue_inject_styles__$n,
__vue_script__$n,
__vue_scope_id__$n,
__vue_is_functional_template__$n,
__vue_module_identifier__$n,
browser,
undefined
);
function decoration9 (Vue) {
Vue.component(Decoration9.name, Decoration9);
}
//
var script$o = {
name: 'DvDecoration10',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
const timestamp = Date.now();
return {
ref: 'decoration-10',
animationId1: `d10ani1${timestamp}`,
animationId2: `d10ani2${timestamp}`,
animationId3: `d10ani3${timestamp}`,
animationId4: `d10ani4${timestamp}`,
animationId5: `d10ani5${timestamp}`,
animationId6: `d10ani6${timestamp}`,
animationId7: `d10ani7${timestamp}`,
defaultColor: ['#00c2ff', 'rgba(0, 194, 255, 0.3)'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
}
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$o = script$o;
/* template */
var __vue_render__$o = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-decoration-10" }, [
_c("svg", { attrs: { width: _vm.width, height: _vm.height } }, [
_c("polyline", {
attrs: {
stroke: _vm.mergedColor[1],
"stroke-width": "2",
points:
"0, " + _vm.height / 2 + " " + _vm.width + ", " + _vm.height / 2
}
}),
_vm._v(" "),
_c(
"polyline",
{
attrs: {
stroke: _vm.mergedColor[0],
"stroke-width": "2",
points:
"5, " +
_vm.height / 2 +
" " +
(_vm.width * 0.2 - 3) +
", " +
_vm.height / 2,
"stroke-dasharray": "0, " + _vm.width * 0.2,
fill: "freeze"
}
},
[
_c("animate", {
attrs: {
id: _vm.animationId2,
attributeName: "stroke-dasharray",
values: "0, " + _vm.width * 0.2 + ";" + _vm.width * 0.2 + ", 0;",
dur: "3s",
begin: _vm.animationId1 + ".end",
fill: "freeze"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "stroke-dasharray",
values: _vm.width * 0.2 + ", 0;0, " + _vm.width * 0.2,
dur: "0.01s",
begin: _vm.animationId7 + ".end",
fill: "freeze"
}
})
]
),
_vm._v(" "),
_c(
"polyline",
{
attrs: {
stroke: _vm.mergedColor[0],
"stroke-width": "2",
points:
_vm.width * 0.2 +
3 +
", " +
_vm.height / 2 +
" " +
(_vm.width * 0.8 - 3) +
", " +
_vm.height / 2,
"stroke-dasharray": "0, " + _vm.width * 0.6
}
},
[
_c("animate", {
attrs: {
id: _vm.animationId4,
attributeName: "stroke-dasharray",
values: "0, " + _vm.width * 0.6 + ";" + _vm.width * 0.6 + ", 0",
dur: "3s",
begin: _vm.animationId3 + ".end + 1s",
fill: "freeze"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "stroke-dasharray",
values: _vm.width * 0.6 + ", 0;0, " + _vm.width * 0.6,
dur: "0.01s",
begin: _vm.animationId7 + ".end",
fill: "freeze"
}
})
]
),
_vm._v(" "),
_c(
"polyline",
{
attrs: {
stroke: _vm.mergedColor[0],
"stroke-width": "2",
points:
_vm.width * 0.8 +
3 +
", " +
_vm.height / 2 +
" " +
(_vm.width - 5) +
", " +
_vm.height / 2,
"stroke-dasharray": "0, " + _vm.width * 0.2
}
},
[
_c("animate", {
attrs: {
id: _vm.animationId6,
attributeName: "stroke-dasharray",
values: "0, " + _vm.width * 0.2 + ";" + _vm.width * 0.2 + ", 0",
dur: "3s",
begin: _vm.animationId5 + ".end + 1s",
fill: "freeze"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "stroke-dasharray",
values: _vm.width * 0.2 + ", 0;0, " + _vm.width * 0.3,
dur: "0.01s",
begin: _vm.animationId7 + ".end",
fill: "freeze"
}
})
]
),
_vm._v(" "),
_c(
"circle",
{
attrs: {
cx: "2",
cy: _vm.height / 2,
r: "2",
fill: _vm.mergedColor[1]
}
},
[
_c("animate", {
attrs: {
id: _vm.animationId1,
attributeName: "fill",
values: _vm.mergedColor[1] + ";" + _vm.mergedColor[0],
begin: "0s;" + _vm.animationId7 + ".end",
dur: "0.3s",
fill: "freeze"
}
})
]
),
_vm._v(" "),
_c(
"circle",
{
attrs: {
cx: _vm.width * 0.2,
cy: _vm.height / 2,
r: "2",
fill: _vm.mergedColor[1]
}
},
[
_c("animate", {
attrs: {
id: _vm.animationId3,
attributeName: "fill",
values: _vm.mergedColor[1] + ";" + _vm.mergedColor[0],
begin: _vm.animationId2 + ".end",
dur: "0.3s",
fill: "freeze"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "fill",
values: _vm.mergedColor[1] + ";" + _vm.mergedColor[1],
dur: "0.01s",
begin: _vm.animationId7 + ".end",
fill: "freeze"
}
})
]
),
_vm._v(" "),
_c(
"circle",
{
attrs: {
cx: _vm.width * 0.8,
cy: _vm.height / 2,
r: "2",
fill: _vm.mergedColor[1]
}
},
[
_c("animate", {
attrs: {
id: _vm.animationId5,
attributeName: "fill",
values: _vm.mergedColor[1] + ";" + _vm.mergedColor[0],
begin: _vm.animationId4 + ".end",
dur: "0.3s",
fill: "freeze"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "fill",
values: _vm.mergedColor[1] + ";" + _vm.mergedColor[1],
dur: "0.01s",
begin: _vm.animationId7 + ".end",
fill: "freeze"
}
})
]
),
_vm._v(" "),
_c(
"circle",
{
attrs: {
cx: _vm.width - 2,
cy: _vm.height / 2,
r: "2",
fill: _vm.mergedColor[1]
}
},
[
_c("animate", {
attrs: {
id: _vm.animationId7,
attributeName: "fill",
values: _vm.mergedColor[1] + ";" + _vm.mergedColor[0],
begin: _vm.animationId6 + ".end",
dur: "0.3s",
fill: "freeze"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "fill",
values: _vm.mergedColor[1] + ";" + _vm.mergedColor[1],
dur: "0.01s",
begin: _vm.animationId7 + ".end",
fill: "freeze"
}
})
]
)
])
])
};
var __vue_staticRenderFns__$o = [];
__vue_render__$o._withStripped = true;
/* style */
const __vue_inject_styles__$o = function (inject) {
if (!inject) return
inject("data-v-39f9e4a4_0", { source: ".dv-decoration-10 {\n width: 100%;\n height: 100%;\n display: flex;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,WAAW;EACX,YAAY;EACZ,aAAa;AACf","file":"main.vue","sourcesContent":[".dv-decoration-10 {\n width: 100%;\n height: 100%;\n display: flex;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$o = undefined;
/* module identifier */
const __vue_module_identifier__$o = undefined;
/* functional template */
const __vue_is_functional_template__$o = false;
/* style inject SSR */
var Decoration10 = normalizeComponent_1(
{ render: __vue_render__$o, staticRenderFns: __vue_staticRenderFns__$o },
__vue_inject_styles__$o,
__vue_script__$o,
__vue_scope_id__$o,
__vue_is_functional_template__$o,
__vue_module_identifier__$o,
browser,
undefined
);
function decoration10 (Vue) {
Vue.component(Decoration10.name, Decoration10);
}
//
var script$p = {
name: 'DvDecoration11',
mixins: [autoResize],
props: {
color: {
type: Array,
default: () => []
}
},
data() {
return {
ref: 'decoration-11',
defaultColor: ['#1a98fc', '#2cf7fe'],
mergedColor: []
};
},
watch: {
color() {
const {
mergeColor
} = this;
mergeColor();
}
},
methods: {
mergeColor() {
const {
color,
defaultColor
} = this;
this.mergedColor = util_2$1(util_1(defaultColor, true), color || []);
},
fade: lib_9
},
mounted() {
const {
mergeColor
} = this;
mergeColor();
}
};
/* script */
const __vue_script__$p = script$p;
/* template */
var __vue_render__$p = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-decoration-11" }, [
_c("svg", { attrs: { width: _vm.width, height: _vm.height } }, [
_c("polygon", {
attrs: {
fill: _vm.fade(_vm.mergedColor[1] || _vm.defaultColor[1], 10),
stroke: _vm.mergedColor[1],
points: "20 10, 25 4, 55 4 60 10"
}
}),
_vm._v(" "),
_c("polygon", {
attrs: {
fill: _vm.fade(_vm.mergedColor[1] || _vm.defaultColor[1], 10),
stroke: _vm.mergedColor[1],
points:
"20 " +
(_vm.height - 10) +
", 25 " +
(_vm.height - 4) +
", 55 " +
(_vm.height - 4) +
" 60 " +
(_vm.height - 10)
}
}),
_vm._v(" "),
_c("polygon", {
attrs: {
fill: _vm.fade(_vm.mergedColor[1] || _vm.defaultColor[1], 10),
stroke: _vm.mergedColor[1],
points:
_vm.width -
20 +
" 10, " +
(_vm.width - 25) +
" 4, " +
(_vm.width - 55) +
" 4 " +
(_vm.width - 60) +
" 10"
}
}),
_vm._v(" "),
_c("polygon", {
attrs: {
fill: _vm.fade(_vm.mergedColor[1] || _vm.defaultColor[1], 10),
stroke: _vm.mergedColor[1],
points:
_vm.width -
20 +
" " +
(_vm.height - 10) +
", " +
(_vm.width - 25) +
" " +
(_vm.height - 4) +
", " +
(_vm.width - 55) +
" " +
(_vm.height - 4) +
" " +
(_vm.width - 60) +
" " +
(_vm.height - 10)
}
}),
_vm._v(" "),
_c("polygon", {
attrs: {
fill: _vm.fade(_vm.mergedColor[0] || _vm.defaultColor[0], 20),
stroke: _vm.mergedColor[0],
points:
"\n 20 10, 5 " +
_vm.height / 2 +
" 20 " +
(_vm.height - 10) +
"\n " +
(_vm.width - 20) +
" " +
(_vm.height - 10) +
" " +
(_vm.width - 5) +
" " +
_vm.height / 2 +
" " +
(_vm.width - 20) +
" 10\n "
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
fill: "transparent",
stroke: _vm.fade(_vm.mergedColor[0] || _vm.defaultColor[0], 70),
points: "25 18, 15 " + _vm.height / 2 + " 25 " + (_vm.height - 18)
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
fill: "transparent",
stroke: _vm.fade(_vm.mergedColor[0] || _vm.defaultColor[0], 70),
points:
_vm.width -
25 +
" 18, " +
(_vm.width - 15) +
" " +
_vm.height / 2 +
" " +
(_vm.width - 25) +
" " +
(_vm.height - 18)
}
})
]),
_vm._v(" "),
_c("div", { staticClass: "decoration-content" }, [_vm._t("default")], 2)
])
};
var __vue_staticRenderFns__$p = [];
__vue_render__$p._withStripped = true;
/* style */
const __vue_inject_styles__$p = function (inject) {
if (!inject) return
inject("data-v-70e8e39a_0", { source: ".dv-decoration-11 {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n}\n.dv-decoration-11 .decoration-content {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,aAAa;AACf;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,WAAW;EACX,YAAY;EACZ,aAAa;EACb,mBAAmB;EACnB,uBAAuB;AACzB","file":"main.vue","sourcesContent":[".dv-decoration-11 {\n position: relative;\n width: 100%;\n height: 100%;\n display: flex;\n}\n.dv-decoration-11 .decoration-content {\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$p = undefined;
/* module identifier */
const __vue_module_identifier__$p = undefined;
/* functional template */
const __vue_is_functional_template__$p = false;
/* style inject SSR */
var Decoration11 = normalizeComponent_1(
{ render: __vue_render__$p, staticRenderFns: __vue_staticRenderFns__$p },
__vue_inject_styles__$p,
__vue_script__$p,
__vue_scope_id__$p,
__vue_is_functional_template__$p,
__vue_module_identifier__$p,
browser,
undefined
);
function decoration11 (Vue) {
Vue.component(Decoration11.name, Decoration11);
}
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
var classCallCheck = _classCallCheck;
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
var defineProperty = _defineProperty;
var bezierCurveToPolyline_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.bezierCurveToPolyline = bezierCurveToPolyline;
exports.getBezierCurveLength = getBezierCurveLength;
exports["default"] = void 0;
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
var sqrt = Math.sqrt,
pow = Math.pow,
ceil = Math.ceil,
abs = Math.abs; // Initialize the number of points per curve
var defaultSegmentPointsNum = 50;
/**
* @example data structure of bezierCurve
* bezierCurve = [
* // Starting point of the curve
* [10, 10],
* // BezierCurve segment data (controlPoint1, controlPoint2, endPoint)
* [
* [20, 20], [40, 20], [50, 10]
* ],
* ...
* ]
*/
/**
* @description Abstract the curve as a polyline consisting of N points
* @param {Array} bezierCurve bezierCurve data
* @param {Number} precision calculation accuracy. Recommended for 1-20. Default = 5
* @return {Object} Calculation results and related data
* @return {Array} Option.segmentPoints Point data that constitutes a polyline after calculation
* @return {Number} Option.cycles Number of iterations
* @return {Number} Option.rounds The number of recursions for the last iteration
*/
function abstractBezierCurveToPolyline(bezierCurve) {
var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
var segmentsNum = bezierCurve.length - 1;
var startPoint = bezierCurve[0];
var endPoint = bezierCurve[segmentsNum][2];
var segments = bezierCurve.slice(1);
var getSegmentTPointFuns = segments.map(function (seg, i) {
var beginPoint = i === 0 ? startPoint : segments[i - 1][2];
return createGetBezierCurveTPointFun.apply(void 0, [beginPoint].concat((0, _toConsumableArray2["default"])(seg)));
}); // Initialize the curve to a polyline
var segmentPointsNum = new Array(segmentsNum).fill(defaultSegmentPointsNum);
var segmentPoints = getSegmentPointsByNum(getSegmentTPointFuns, segmentPointsNum); // Calculate uniformly distributed points by iteratively
var result = calcUniformPointsByIteration(segmentPoints, getSegmentTPointFuns, segments, precision);
result.segmentPoints.push(endPoint);
return result;
}
/**
* @description Generate a method for obtaining corresponding point by t according to curve data
* @param {Array} beginPoint BezierCurve begin point. [x, y]
* @param {Array} controlPoint1 BezierCurve controlPoint1. [x, y]
* @param {Array} controlPoint2 BezierCurve controlPoint2. [x, y]
* @param {Array} endPoint BezierCurve end point. [x, y]
* @return {Function} Expected function
*/
function createGetBezierCurveTPointFun(beginPoint, controlPoint1, controlPoint2, endPoint) {
return function (t) {
var tSubed1 = 1 - t;
var tSubed1Pow3 = pow(tSubed1, 3);
var tSubed1Pow2 = pow(tSubed1, 2);
var tPow3 = pow(t, 3);
var tPow2 = pow(t, 2);
return [beginPoint[0] * tSubed1Pow3 + 3 * controlPoint1[0] * t * tSubed1Pow2 + 3 * controlPoint2[0] * tPow2 * tSubed1 + endPoint[0] * tPow3, beginPoint[1] * tSubed1Pow3 + 3 * controlPoint1[1] * t * tSubed1Pow2 + 3 * controlPoint2[1] * tPow2 * tSubed1 + endPoint[1] * tPow3];
};
}
/**
* @description Get the distance between two points
* @param {Array} point1 BezierCurve begin point. [x, y]
* @param {Array} point2 BezierCurve controlPoint1. [x, y]
* @return {Number} Expected distance
*/
function getTwoPointDistance(_ref, _ref2) {
var _ref3 = (0, _slicedToArray2["default"])(_ref, 2),
ax = _ref3[0],
ay = _ref3[1];
var _ref4 = (0, _slicedToArray2["default"])(_ref2, 2),
bx = _ref4[0],
by = _ref4[1];
return sqrt(pow(ax - bx, 2) + pow(ay - by, 2));
}
/**
* @description Get the sum of the array of numbers
* @param {Array} nums An array of numbers
* @return {Number} Expected sum
*/
function getNumsSum(nums) {
return nums.reduce(function (sum, num) {
return sum + num;
}, 0);
}
/**
* @description Get the distance of multiple sets of points
* @param {Array} segmentPoints Multiple sets of point data
* @return {Array} Distance of multiple sets of point data
*/
function getSegmentPointsDistance(segmentPoints) {
return segmentPoints.map(function (points, i) {
return new Array(points.length - 1).fill(0).map(function (temp, j) {
return getTwoPointDistance(points[j], points[j + 1]);
});
});
}
/**
* @description Get the distance of multiple sets of points
* @param {Array} segmentPoints Multiple sets of point data
* @return {Array} Distance of multiple sets of point data
*/
function getSegmentPointsByNum(getSegmentTPointFuns, segmentPointsNum) {
return getSegmentTPointFuns.map(function (getSegmentTPointFun, i) {
var tGap = 1 / segmentPointsNum[i];
return new Array(segmentPointsNum[i]).fill('').map(function (foo, j) {
return getSegmentTPointFun(j * tGap);
});
});
}
/**
* @description Get the sum of deviations between line segment and the average length
* @param {Array} segmentPointsDistance Segment length of polyline
* @param {Number} avgLength Average length of the line segment
* @return {Number} Deviations
*/
function getAllDeviations(segmentPointsDistance, avgLength) {
return segmentPointsDistance.map(function (seg) {
return seg.map(function (s) {
return abs(s - avgLength);
});
}).map(function (seg) {
return getNumsSum(seg);
}).reduce(function (total, v) {
return total + v;
}, 0);
}
/**
* @description Calculate uniformly distributed points by iteratively
* @param {Array} segmentPoints Multiple setd of points that make up a polyline
* @param {Array} getSegmentTPointFuns Functions of get a point on the curve with t
* @param {Array} segments BezierCurve data
* @param {Number} precision Calculation accuracy
* @return {Object} Calculation results and related data
* @return {Array} Option.segmentPoints Point data that constitutes a polyline after calculation
* @return {Number} Option.cycles Number of iterations
* @return {Number} Option.rounds The number of recursions for the last iteration
*/
function calcUniformPointsByIteration(segmentPoints, getSegmentTPointFuns, segments, precision) {
// The number of loops for the current iteration
var rounds = 4; // Number of iterations
var cycles = 1;
var _loop = function _loop() {
// Recalculate the number of points per curve based on the last iteration data
var totalPointsNum = segmentPoints.reduce(function (total, seg) {
return total + seg.length;
}, 0); // Add last points of segment to calc exact segment length
segmentPoints.forEach(function (seg, i) {
return seg.push(segments[i][2]);
});
var segmentPointsDistance = getSegmentPointsDistance(segmentPoints);
var lineSegmentNum = segmentPointsDistance.reduce(function (total, seg) {
return total + seg.length;
}, 0);
var segmentlength = segmentPointsDistance.map(function (seg) {
return getNumsSum(seg);
});
var totalLength = getNumsSum(segmentlength);
var avgLength = totalLength / lineSegmentNum; // Check if precision is reached
var allDeviations = getAllDeviations(segmentPointsDistance, avgLength);
if (allDeviations <= precision) return "break";
totalPointsNum = ceil(avgLength / precision * totalPointsNum * 1.1);
var segmentPointsNum = segmentlength.map(function (length) {
return ceil(length / totalLength * totalPointsNum);
}); // Calculate the points after redistribution
segmentPoints = getSegmentPointsByNum(getSegmentTPointFuns, segmentPointsNum);
totalPointsNum = segmentPoints.reduce(function (total, seg) {
return total + seg.length;
}, 0);
var segmentPointsForLength = JSON.parse(JSON.stringify(segmentPoints));
segmentPointsForLength.forEach(function (seg, i) {
return seg.push(segments[i][2]);
});
segmentPointsDistance = getSegmentPointsDistance(segmentPointsForLength);
lineSegmentNum = segmentPointsDistance.reduce(function (total, seg) {
return total + seg.length;
}, 0);
segmentlength = segmentPointsDistance.map(function (seg) {
return getNumsSum(seg);
});
totalLength = getNumsSum(segmentlength);
avgLength = totalLength / lineSegmentNum;
var stepSize = 1 / totalPointsNum / 10; // Recursively for each segment of the polyline
getSegmentTPointFuns.forEach(function (getSegmentTPointFun, i) {
var currentSegmentPointsNum = segmentPointsNum[i];
var t = new Array(currentSegmentPointsNum).fill('').map(function (foo, j) {
return j / segmentPointsNum[i];
}); // Repeated recursive offset
for (var r = 0; r < rounds; r++) {
var distance = getSegmentPointsDistance([segmentPoints[i]])[0];
var deviations = distance.map(function (d) {
return d - avgLength;
});
var offset = 0;
for (var j = 0; j < currentSegmentPointsNum; j++) {
if (j === 0) return;
offset += deviations[j - 1];
t[j] -= stepSize * offset;
if (t[j] > 1) t[j] = 1;
if (t[j] < 0) t[j] = 0;
segmentPoints[i][j] = getSegmentTPointFun(t[j]);
}
}
});
rounds *= 4;
cycles++;
};
do {
var _ret = _loop();
if (_ret === "break") break;
} while (rounds <= 1025);
segmentPoints = segmentPoints.reduce(function (all, seg) {
return all.concat(seg);
}, []);
return {
segmentPoints: segmentPoints,
cycles: cycles,
rounds: rounds
};
}
/**
* @description Get the polyline corresponding to the Bezier curve
* @param {Array} bezierCurve BezierCurve data
* @param {Number} precision Calculation accuracy. Recommended for 1-20. Default = 5
* @return {Array|Boolean} Point data that constitutes a polyline after calculation (Invalid input will return false)
*/
function bezierCurveToPolyline(bezierCurve) {
var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
if (!bezierCurve) {
console.error('bezierCurveToPolyline: Missing parameters!');
return false;
}
if (!(bezierCurve instanceof Array)) {
console.error('bezierCurveToPolyline: Parameter bezierCurve must be an array!');
return false;
}
if (typeof precision !== 'number') {
console.error('bezierCurveToPolyline: Parameter precision must be a number!');
return false;
}
var _abstractBezierCurveT = abstractBezierCurveToPolyline(bezierCurve, precision),
segmentPoints = _abstractBezierCurveT.segmentPoints;
return segmentPoints;
}
/**
* @description Get the bezier curve length
* @param {Array} bezierCurve bezierCurve data
* @param {Number} precision calculation accuracy. Recommended for 5-10. Default = 5
* @return {Number|Boolean} BezierCurve length (Invalid input will return false)
*/
function getBezierCurveLength(bezierCurve) {
var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5;
if (!bezierCurve) {
console.error('getBezierCurveLength: Missing parameters!');
return false;
}
if (!(bezierCurve instanceof Array)) {
console.error('getBezierCurveLength: Parameter bezierCurve must be an array!');
return false;
}
if (typeof precision !== 'number') {
console.error('getBezierCurveLength: Parameter precision must be a number!');
return false;
}
var _abstractBezierCurveT2 = abstractBezierCurveToPolyline(bezierCurve, precision),
segmentPoints = _abstractBezierCurveT2.segmentPoints; // Calculate the total length of the points that make up the polyline
var pointsDistance = getSegmentPointsDistance([segmentPoints])[0];
var length = getNumsSum(pointsDistance);
return length;
}
var _default = bezierCurveToPolyline;
exports["default"] = _default;
});
unwrapExports(bezierCurveToPolyline_1);
var bezierCurveToPolyline_2 = bezierCurveToPolyline_1.bezierCurveToPolyline;
var bezierCurveToPolyline_3 = bezierCurveToPolyline_1.getBezierCurveLength;
var polylineToBezierCurve_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
/**
* @description Abstract the polyline formed by N points into a set of bezier curve
* @param {Array} polyline A set of points that make up a polyline
* @param {Boolean} close Closed curve
* @param {Number} offsetA Smoothness
* @param {Number} offsetB Smoothness
* @return {Array|Boolean} A set of bezier curve (Invalid input will return false)
*/
function polylineToBezierCurve(polyline) {
var close = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var offsetA = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0.25;
var offsetB = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.25;
if (!(polyline instanceof Array)) {
console.error('polylineToBezierCurve: Parameter polyline must be an array!');
return false;
}
if (polyline.length <= 2) {
console.error('polylineToBezierCurve: Converting to a curve requires at least 3 points!');
return false;
}
var startPoint = polyline[0];
var bezierCurveLineNum = polyline.length - 1;
var bezierCurvePoints = new Array(bezierCurveLineNum).fill(0).map(function (foo, i) {
return [].concat((0, _toConsumableArray2["default"])(getBezierCurveLineControlPoints(polyline, i, close, offsetA, offsetB)), [polyline[i + 1]]);
});
if (close) closeBezierCurve(bezierCurvePoints, startPoint);
bezierCurvePoints.unshift(polyline[0]);
return bezierCurvePoints;
}
/**
* @description Get the control points of the Bezier curve
* @param {Array} polyline A set of points that make up a polyline
* @param {Number} index The index of which get controls points's point in polyline
* @param {Boolean} close Closed curve
* @param {Number} offsetA Smoothness
* @param {Number} offsetB Smoothness
* @return {Array} Control points
*/
function getBezierCurveLineControlPoints(polyline, index) {
var close = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var offsetA = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.25;
var offsetB = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0.25;
var pointNum = polyline.length;
if (pointNum < 3 || index >= pointNum) return;
var beforePointIndex = index - 1;
if (beforePointIndex < 0) beforePointIndex = close ? pointNum + beforePointIndex : 0;
var afterPointIndex = index + 1;
if (afterPointIndex >= pointNum) afterPointIndex = close ? afterPointIndex - pointNum : pointNum - 1;
var afterNextPointIndex = index + 2;
if (afterNextPointIndex >= pointNum) afterNextPointIndex = close ? afterNextPointIndex - pointNum : pointNum - 1;
var pointBefore = polyline[beforePointIndex];
var pointMiddle = polyline[index];
var pointAfter = polyline[afterPointIndex];
var pointAfterNext = polyline[afterNextPointIndex];
return [[pointMiddle[0] + offsetA * (pointAfter[0] - pointBefore[0]), pointMiddle[1] + offsetA * (pointAfter[1] - pointBefore[1])], [pointAfter[0] - offsetB * (pointAfterNext[0] - pointMiddle[0]), pointAfter[1] - offsetB * (pointAfterNext[1] - pointMiddle[1])]];
}
/**
* @description Get the last curve of the closure
* @param {Array} bezierCurve A set of sub-curve
* @param {Array} startPoint Start point
* @return {Array} The last curve for closure
*/
function closeBezierCurve(bezierCurve, startPoint) {
var firstSubCurve = bezierCurve[0];
var lastSubCurve = bezierCurve.slice(-1)[0];
bezierCurve.push([getSymmetryPoint(lastSubCurve[1], lastSubCurve[2]), getSymmetryPoint(firstSubCurve[0], startPoint), startPoint]);
return bezierCurve;
}
/**
* @description Get the symmetry point
* @param {Array} point Symmetric point
* @param {Array} centerPoint Symmetric center
* @return {Array} Symmetric point
*/
function getSymmetryPoint(point, centerPoint) {
var _point = (0, _slicedToArray2["default"])(point, 2),
px = _point[0],
py = _point[1];
var _centerPoint = (0, _slicedToArray2["default"])(centerPoint, 2),
cx = _centerPoint[0],
cy = _centerPoint[1];
var minusX = cx - px;
var minusY = cy - py;
return [cx + minusX, cy + minusY];
}
var _default = polylineToBezierCurve;
exports["default"] = _default;
});
unwrapExports(polylineToBezierCurve_1);
var lib$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "bezierCurveToPolyline", {
enumerable: true,
get: function get() {
return bezierCurveToPolyline_1.bezierCurveToPolyline;
}
});
Object.defineProperty(exports, "getBezierCurveLength", {
enumerable: true,
get: function get() {
return bezierCurveToPolyline_1.getBezierCurveLength;
}
});
Object.defineProperty(exports, "polylineToBezierCurve", {
enumerable: true,
get: function get() {
return _polylineToBezierCurve["default"];
}
});
exports["default"] = void 0;
var _polylineToBezierCurve = interopRequireDefault(polylineToBezierCurve_1);
var _default = {
bezierCurveToPolyline: bezierCurveToPolyline_1.bezierCurveToPolyline,
getBezierCurveLength: bezierCurveToPolyline_1.getBezierCurveLength,
polylineToBezierCurve: _polylineToBezierCurve["default"]
};
exports["default"] = _default;
});
unwrapExports(lib$1);
var canvas = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.drawPolylinePath = drawPolylinePath;
exports.drawBezierCurvePath = drawBezierCurvePath;
exports["default"] = void 0;
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
/**
* @description Draw a polyline path
* @param {Object} ctx Canvas 2d context
* @param {Array} points The points that makes up a polyline
* @param {Boolean} beginPath Whether to execute beginPath
* @param {Boolean} closePath Whether to execute closePath
* @return {Undefined} Void
*/
function drawPolylinePath(ctx, points) {
var beginPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var closePath = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
if (!ctx || points.length < 2) return false;
if (beginPath) ctx.beginPath();
points.forEach(function (point, i) {
return point && (i === 0 ? ctx.moveTo.apply(ctx, (0, _toConsumableArray2["default"])(point)) : ctx.lineTo.apply(ctx, (0, _toConsumableArray2["default"])(point)));
});
if (closePath) ctx.closePath();
}
/**
* @description Draw a bezier curve path
* @param {Object} ctx Canvas 2d context
* @param {Array} points The points that makes up a bezier curve
* @param {Array} moveTo The point need to excute moveTo
* @param {Boolean} beginPath Whether to execute beginPath
* @param {Boolean} closePath Whether to execute closePath
* @return {Undefined} Void
*/
function drawBezierCurvePath(ctx, points) {
var moveTo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var beginPath = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
var closePath = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
if (!ctx || !points) return false;
if (beginPath) ctx.beginPath();
if (moveTo) ctx.moveTo.apply(ctx, (0, _toConsumableArray2["default"])(moveTo));
points.forEach(function (item) {
return item && ctx.bezierCurveTo.apply(ctx, (0, _toConsumableArray2["default"])(item[0]).concat((0, _toConsumableArray2["default"])(item[1]), (0, _toConsumableArray2["default"])(item[2])));
});
if (closePath) ctx.closePath();
}
var _default = {
drawPolylinePath: drawPolylinePath,
drawBezierCurvePath: drawBezierCurvePath
};
exports["default"] = _default;
});
unwrapExports(canvas);
var canvas_1 = canvas.drawPolylinePath;
var canvas_2 = canvas.drawBezierCurvePath;
var graphs_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.extendNewGraph = extendNewGraph;
exports["default"] = exports.text = exports.bezierCurve = exports.smoothline = exports.polyline = exports.regPolygon = exports.sector = exports.arc = exports.ring = exports.rect = exports.ellipse = exports.circle = void 0;
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _bezierCurve2 = interopRequireDefault(lib$1);
var polylineToBezierCurve = _bezierCurve2["default"].polylineToBezierCurve,
bezierCurveToPolyline = _bezierCurve2["default"].bezierCurveToPolyline;
var circle = {
shape: {
rx: 0,
ry: 0,
r: 0
},
validator: function validator(_ref) {
var shape = _ref.shape;
var rx = shape.rx,
ry = shape.ry,
r = shape.r;
if (typeof rx !== 'number' || typeof ry !== 'number' || typeof r !== 'number') {
console.error('Circle shape configuration is abnormal!');
return false;
}
return true;
},
draw: function draw(_ref2, _ref3) {
var ctx = _ref2.ctx;
var shape = _ref3.shape;
ctx.beginPath();
var rx = shape.rx,
ry = shape.ry,
r = shape.r;
ctx.arc(rx, ry, r > 0 ? r : 0.01, 0, Math.PI * 2);
ctx.fill();
ctx.stroke();
ctx.closePath();
},
hoverCheck: function hoverCheck(position, _ref4) {
var shape = _ref4.shape;
var rx = shape.rx,
ry = shape.ry,
r = shape.r;
return (0, util.checkPointIsInCircle)(position, rx, ry, r);
},
setGraphCenter: function setGraphCenter(e, _ref5) {
var shape = _ref5.shape,
style = _ref5.style;
var rx = shape.rx,
ry = shape.ry;
style.graphCenter = [rx, ry];
},
move: function move(_ref6, _ref7) {
var movementX = _ref6.movementX,
movementY = _ref6.movementY;
var shape = _ref7.shape;
this.attr('shape', {
rx: shape.rx + movementX,
ry: shape.ry + movementY
});
}
};
exports.circle = circle;
var ellipse = {
shape: {
rx: 0,
ry: 0,
hr: 0,
vr: 0
},
validator: function validator(_ref8) {
var shape = _ref8.shape;
var rx = shape.rx,
ry = shape.ry,
hr = shape.hr,
vr = shape.vr;
if (typeof rx !== 'number' || typeof ry !== 'number' || typeof hr !== 'number' || typeof vr !== 'number') {
console.error('Ellipse shape configuration is abnormal!');
return false;
}
return true;
},
draw: function draw(_ref9, _ref10) {
var ctx = _ref9.ctx;
var shape = _ref10.shape;
ctx.beginPath();
var rx = shape.rx,
ry = shape.ry,
hr = shape.hr,
vr = shape.vr;
ctx.ellipse(rx, ry, hr > 0 ? hr : 0.01, vr > 0 ? vr : 0.01, 0, 0, Math.PI * 2);
ctx.fill();
ctx.stroke();
ctx.closePath();
},
hoverCheck: function hoverCheck(position, _ref11) {
var shape = _ref11.shape;
var rx = shape.rx,
ry = shape.ry,
hr = shape.hr,
vr = shape.vr;
var a = Math.max(hr, vr);
var b = Math.min(hr, vr);
var c = Math.sqrt(a * a - b * b);
var leftFocusPoint = [rx - c, ry];
var rightFocusPoint = [rx + c, ry];
var distance = (0, util.getTwoPointDistance)(position, leftFocusPoint) + (0, util.getTwoPointDistance)(position, rightFocusPoint);
return distance <= 2 * a;
},
setGraphCenter: function setGraphCenter(e, _ref12) {
var shape = _ref12.shape,
style = _ref12.style;
var rx = shape.rx,
ry = shape.ry;
style.graphCenter = [rx, ry];
},
move: function move(_ref13, _ref14) {
var movementX = _ref13.movementX,
movementY = _ref13.movementY;
var shape = _ref14.shape;
this.attr('shape', {
rx: shape.rx + movementX,
ry: shape.ry + movementY
});
}
};
exports.ellipse = ellipse;
var rect = {
shape: {
x: 0,
y: 0,
w: 0,
h: 0
},
validator: function validator(_ref15) {
var shape = _ref15.shape;
var x = shape.x,
y = shape.y,
w = shape.w,
h = shape.h;
if (typeof x !== 'number' || typeof y !== 'number' || typeof w !== 'number' || typeof h !== 'number') {
console.error('Rect shape configuration is abnormal!');
return false;
}
return true;
},
draw: function draw(_ref16, _ref17) {
var ctx = _ref16.ctx;
var shape = _ref17.shape;
ctx.beginPath();
var x = shape.x,
y = shape.y,
w = shape.w,
h = shape.h;
ctx.rect(x, y, w, h);
ctx.fill();
ctx.stroke();
ctx.closePath();
},
hoverCheck: function hoverCheck(position, _ref18) {
var shape = _ref18.shape;
var x = shape.x,
y = shape.y,
w = shape.w,
h = shape.h;
return (0, util.checkPointIsInRect)(position, x, y, w, h);
},
setGraphCenter: function setGraphCenter(e, _ref19) {
var shape = _ref19.shape,
style = _ref19.style;
var x = shape.x,
y = shape.y,
w = shape.w,
h = shape.h;
style.graphCenter = [x + w / 2, y + h / 2];
},
move: function move(_ref20, _ref21) {
var movementX = _ref20.movementX,
movementY = _ref20.movementY;
var shape = _ref21.shape;
this.attr('shape', {
x: shape.x + movementX,
y: shape.y + movementY
});
}
};
exports.rect = rect;
var ring = {
shape: {
rx: 0,
ry: 0,
r: 0
},
validator: function validator(_ref22) {
var shape = _ref22.shape;
var rx = shape.rx,
ry = shape.ry,
r = shape.r;
if (typeof rx !== 'number' || typeof ry !== 'number' || typeof r !== 'number') {
console.error('Ring shape configuration is abnormal!');
return false;
}
return true;
},
draw: function draw(_ref23, _ref24) {
var ctx = _ref23.ctx;
var shape = _ref24.shape;
ctx.beginPath();
var rx = shape.rx,
ry = shape.ry,
r = shape.r;
ctx.arc(rx, ry, r > 0 ? r : 0.01, 0, Math.PI * 2);
ctx.stroke();
ctx.closePath();
},
hoverCheck: function hoverCheck(position, _ref25) {
var shape = _ref25.shape,
style = _ref25.style;
var rx = shape.rx,
ry = shape.ry,
r = shape.r;
var lineWidth = style.lineWidth;
var halfLineWidth = lineWidth / 2;
var minDistance = r - halfLineWidth;
var maxDistance = r + halfLineWidth;
var distance = (0, util.getTwoPointDistance)(position, [rx, ry]);
return distance >= minDistance && distance <= maxDistance;
},
setGraphCenter: function setGraphCenter(e, _ref26) {
var shape = _ref26.shape,
style = _ref26.style;
var rx = shape.rx,
ry = shape.ry;
style.graphCenter = [rx, ry];
},
move: function move(_ref27, _ref28) {
var movementX = _ref27.movementX,
movementY = _ref27.movementY;
var shape = _ref28.shape;
this.attr('shape', {
rx: shape.rx + movementX,
ry: shape.ry + movementY
});
}
};
exports.ring = ring;
var arc = {
shape: {
rx: 0,
ry: 0,
r: 0,
startAngle: 0,
endAngle: 0,
clockWise: true
},
validator: function validator(_ref29) {
var shape = _ref29.shape;
var keys = ['rx', 'ry', 'r', 'startAngle', 'endAngle'];
if (keys.find(function (key) {
return typeof shape[key] !== 'number';
})) {
console.error('Arc shape configuration is abnormal!');
return false;
}
return true;
},
draw: function draw(_ref30, _ref31) {
var ctx = _ref30.ctx;
var shape = _ref31.shape;
ctx.beginPath();
var rx = shape.rx,
ry = shape.ry,
r = shape.r,
startAngle = shape.startAngle,
endAngle = shape.endAngle,
clockWise = shape.clockWise;
ctx.arc(rx, ry, r > 0 ? r : 0.001, startAngle, endAngle, !clockWise);
ctx.stroke();
ctx.closePath();
},
hoverCheck: function hoverCheck(position, _ref32) {
var shape = _ref32.shape,
style = _ref32.style;
var rx = shape.rx,
ry = shape.ry,
r = shape.r,
startAngle = shape.startAngle,
endAngle = shape.endAngle,
clockWise = shape.clockWise;
var lineWidth = style.lineWidth;
var halfLineWidth = lineWidth / 2;
var insideRadius = r - halfLineWidth;
var outsideRadius = r + halfLineWidth;
return !(0, util.checkPointIsInSector)(position, rx, ry, insideRadius, startAngle, endAngle, clockWise) && (0, util.checkPointIsInSector)(position, rx, ry, outsideRadius, startAngle, endAngle, clockWise);
},
setGraphCenter: function setGraphCenter(e, _ref33) {
var shape = _ref33.shape,
style = _ref33.style;
var rx = shape.rx,
ry = shape.ry;
style.graphCenter = [rx, ry];
},
move: function move(_ref34, _ref35) {
var movementX = _ref34.movementX,
movementY = _ref34.movementY;
var shape = _ref35.shape;
this.attr('shape', {
rx: shape.rx + movementX,
ry: shape.ry + movementY
});
}
};
exports.arc = arc;
var sector = {
shape: {
rx: 0,
ry: 0,
r: 0,
startAngle: 0,
endAngle: 0,
clockWise: true
},
validator: function validator(_ref36) {
var shape = _ref36.shape;
var keys = ['rx', 'ry', 'r', 'startAngle', 'endAngle'];
if (keys.find(function (key) {
return typeof shape[key] !== 'number';
})) {
console.error('Sector shape configuration is abnormal!');
return false;
}
return true;
},
draw: function draw(_ref37, _ref38) {
var ctx = _ref37.ctx;
var shape = _ref38.shape;
ctx.beginPath();
var rx = shape.rx,
ry = shape.ry,
r = shape.r,
startAngle = shape.startAngle,
endAngle = shape.endAngle,
clockWise = shape.clockWise;
ctx.arc(rx, ry, r > 0 ? r : 0.01, startAngle, endAngle, !clockWise);
ctx.lineTo(rx, ry);
ctx.closePath();
ctx.stroke();
ctx.fill();
},
hoverCheck: function hoverCheck(position, _ref39) {
var shape = _ref39.shape;
var rx = shape.rx,
ry = shape.ry,
r = shape.r,
startAngle = shape.startAngle,
endAngle = shape.endAngle,
clockWise = shape.clockWise;
return (0, util.checkPointIsInSector)(position, rx, ry, r, startAngle, endAngle, clockWise);
},
setGraphCenter: function setGraphCenter(e, _ref40) {
var shape = _ref40.shape,
style = _ref40.style;
var rx = shape.rx,
ry = shape.ry;
style.graphCenter = [rx, ry];
},
move: function move(_ref41, _ref42) {
var movementX = _ref41.movementX,
movementY = _ref41.movementY;
var shape = _ref42.shape;
var rx = shape.rx,
ry = shape.ry;
this.attr('shape', {
rx: rx + movementX,
ry: ry + movementY
});
}
};
exports.sector = sector;
var regPolygon = {
shape: {
rx: 0,
ry: 0,
r: 0,
side: 0
},
validator: function validator(_ref43) {
var shape = _ref43.shape;
var side = shape.side;
var keys = ['rx', 'ry', 'r', 'side'];
if (keys.find(function (key) {
return typeof shape[key] !== 'number';
})) {
console.error('RegPolygon shape configuration is abnormal!');
return false;
}
if (side < 3) {
console.error('RegPolygon at least trigon!');
return false;
}
return true;
},
draw: function draw(_ref44, _ref45) {
var ctx = _ref44.ctx;
var shape = _ref45.shape,
cache = _ref45.cache;
ctx.beginPath();
var rx = shape.rx,
ry = shape.ry,
r = shape.r,
side = shape.side;
if (!cache.points || cache.rx !== rx || cache.ry !== ry || cache.r !== r || cache.side !== side) {
var _points = (0, util.getRegularPolygonPoints)(rx, ry, r, side);
Object.assign(cache, {
points: _points,
rx: rx,
ry: ry,
r: r,
side: side
});
}
var points = cache.points;
(0, canvas.drawPolylinePath)(ctx, points);
ctx.closePath();
ctx.stroke();
ctx.fill();
},
hoverCheck: function hoverCheck(position, _ref46) {
var cache = _ref46.cache;
var points = cache.points;
return (0, util.checkPointIsInPolygon)(position, points);
},
setGraphCenter: function setGraphCenter(e, _ref47) {
var shape = _ref47.shape,
style = _ref47.style;
var rx = shape.rx,
ry = shape.ry;
style.graphCenter = [rx, ry];
},
move: function move(_ref48, _ref49) {
var movementX = _ref48.movementX,
movementY = _ref48.movementY;
var shape = _ref49.shape,
cache = _ref49.cache;
var rx = shape.rx,
ry = shape.ry;
cache.rx += movementX;
cache.ry += movementY;
this.attr('shape', {
rx: rx + movementX,
ry: ry + movementY
});
cache.points = cache.points.map(function (_ref50) {
var _ref51 = (0, _slicedToArray2["default"])(_ref50, 2),
x = _ref51[0],
y = _ref51[1];
return [x + movementX, y + movementY];
});
}
};
exports.regPolygon = regPolygon;
var polyline = {
shape: {
points: [],
close: false
},
validator: function validator(_ref52) {
var shape = _ref52.shape;
var points = shape.points;
if (!(points instanceof Array)) {
console.error('Polyline points should be an array!');
return false;
}
return true;
},
draw: function draw(_ref53, _ref54) {
var ctx = _ref53.ctx;
var shape = _ref54.shape,
lineWidth = _ref54.style.lineWidth;
ctx.beginPath();
var points = shape.points,
close = shape.close;
if (lineWidth === 1) points = (0, util.eliminateBlur)(points);
(0, canvas.drawPolylinePath)(ctx, points);
if (close) {
ctx.closePath();
ctx.fill();
ctx.stroke();
} else {
ctx.stroke();
}
},
hoverCheck: function hoverCheck(position, _ref55) {
var shape = _ref55.shape,
style = _ref55.style;
var points = shape.points,
close = shape.close;
var lineWidth = style.lineWidth;
if (close) {
return (0, util.checkPointIsInPolygon)(position, points);
} else {
return (0, util.checkPointIsNearPolyline)(position, points, lineWidth);
}
},
setGraphCenter: function setGraphCenter(e, _ref56) {
var shape = _ref56.shape,
style = _ref56.style;
var points = shape.points;
style.graphCenter = points[0];
},
move: function move(_ref57, _ref58) {
var movementX = _ref57.movementX,
movementY = _ref57.movementY;
var shape = _ref58.shape;
var points = shape.points;
var moveAfterPoints = points.map(function (_ref59) {
var _ref60 = (0, _slicedToArray2["default"])(_ref59, 2),
x = _ref60[0],
y = _ref60[1];
return [x + movementX, y + movementY];
});
this.attr('shape', {
points: moveAfterPoints
});
}
};
exports.polyline = polyline;
var smoothline = {
shape: {
points: [],
close: false
},
validator: function validator(_ref61) {
var shape = _ref61.shape;
var points = shape.points;
if (!(points instanceof Array)) {
console.error('Smoothline points should be an array!');
return false;
}
return true;
},
draw: function draw(_ref62, _ref63) {
var ctx = _ref62.ctx;
var shape = _ref63.shape,
cache = _ref63.cache;
var points = shape.points,
close = shape.close;
if (!cache.points || cache.points.toString() !== points.toString()) {
var _bezierCurve = polylineToBezierCurve(points, close);
var hoverPoints = bezierCurveToPolyline(_bezierCurve);
Object.assign(cache, {
points: (0, util.deepClone)(points, true),
bezierCurve: _bezierCurve,
hoverPoints: hoverPoints
});
}
var bezierCurve = cache.bezierCurve;
ctx.beginPath();
(0, canvas.drawBezierCurvePath)(ctx, bezierCurve.slice(1), bezierCurve[0]);
if (close) {
ctx.closePath();
ctx.fill();
ctx.stroke();
} else {
ctx.stroke();
}
},
hoverCheck: function hoverCheck(position, _ref64) {
var cache = _ref64.cache,
shape = _ref64.shape,
style = _ref64.style;
var hoverPoints = cache.hoverPoints;
var close = shape.close;
var lineWidth = style.lineWidth;
if (close) {
return (0, util.checkPointIsInPolygon)(position, hoverPoints);
} else {
return (0, util.checkPointIsNearPolyline)(position, hoverPoints, lineWidth);
}
},
setGraphCenter: function setGraphCenter(e, _ref65) {
var shape = _ref65.shape,
style = _ref65.style;
var points = shape.points;
style.graphCenter = points[0];
},
move: function move(_ref66, _ref67) {
var movementX = _ref66.movementX,
movementY = _ref66.movementY;
var shape = _ref67.shape,
cache = _ref67.cache;
var points = shape.points;
var moveAfterPoints = points.map(function (_ref68) {
var _ref69 = (0, _slicedToArray2["default"])(_ref68, 2),
x = _ref69[0],
y = _ref69[1];
return [x + movementX, y + movementY];
});
cache.points = moveAfterPoints;
var _cache$bezierCurve$ = (0, _slicedToArray2["default"])(cache.bezierCurve[0], 2),
fx = _cache$bezierCurve$[0],
fy = _cache$bezierCurve$[1];
var curves = cache.bezierCurve.slice(1);
cache.bezierCurve = [[fx + movementX, fy + movementY]].concat((0, _toConsumableArray2["default"])(curves.map(function (curve) {
return curve.map(function (_ref70) {
var _ref71 = (0, _slicedToArray2["default"])(_ref70, 2),
x = _ref71[0],
y = _ref71[1];
return [x + movementX, y + movementY];
});
})));
cache.hoverPoints = cache.hoverPoints.map(function (_ref72) {
var _ref73 = (0, _slicedToArray2["default"])(_ref72, 2),
x = _ref73[0],
y = _ref73[1];
return [x + movementX, y + movementY];
});
this.attr('shape', {
points: moveAfterPoints
});
}
};
exports.smoothline = smoothline;
var bezierCurve = {
shape: {
points: [],
close: false
},
validator: function validator(_ref74) {
var shape = _ref74.shape;
var points = shape.points;
if (!(points instanceof Array)) {
console.error('BezierCurve points should be an array!');
return false;
}
return true;
},
draw: function draw(_ref75, _ref76) {
var ctx = _ref75.ctx;
var shape = _ref76.shape,
cache = _ref76.cache;
var points = shape.points,
close = shape.close;
if (!cache.points || cache.points.toString() !== points.toString()) {
var hoverPoints = bezierCurveToPolyline(points, 20);
Object.assign(cache, {
points: (0, util.deepClone)(points, true),
hoverPoints: hoverPoints
});
}
ctx.beginPath();
(0, canvas.drawBezierCurvePath)(ctx, points.slice(1), points[0]);
if (close) {
ctx.closePath();
ctx.fill();
ctx.stroke();
} else {
ctx.stroke();
}
},
hoverCheck: function hoverCheck(position, _ref77) {
var cache = _ref77.cache,
shape = _ref77.shape,
style = _ref77.style;
var hoverPoints = cache.hoverPoints;
var close = shape.close;
var lineWidth = style.lineWidth;
if (close) {
return (0, util.checkPointIsInPolygon)(position, hoverPoints);
} else {
return (0, util.checkPointIsNearPolyline)(position, hoverPoints, lineWidth);
}
},
setGraphCenter: function setGraphCenter(e, _ref78) {
var shape = _ref78.shape,
style = _ref78.style;
var points = shape.points;
style.graphCenter = points[0];
},
move: function move(_ref79, _ref80) {
var movementX = _ref79.movementX,
movementY = _ref79.movementY;
var shape = _ref80.shape,
cache = _ref80.cache;
var points = shape.points;
var _points$ = (0, _slicedToArray2["default"])(points[0], 2),
fx = _points$[0],
fy = _points$[1];
var curves = points.slice(1);
var bezierCurve = [[fx + movementX, fy + movementY]].concat((0, _toConsumableArray2["default"])(curves.map(function (curve) {
return curve.map(function (_ref81) {
var _ref82 = (0, _slicedToArray2["default"])(_ref81, 2),
x = _ref82[0],
y = _ref82[1];
return [x + movementX, y + movementY];
});
})));
cache.points = bezierCurve;
cache.hoverPoints = cache.hoverPoints.map(function (_ref83) {
var _ref84 = (0, _slicedToArray2["default"])(_ref83, 2),
x = _ref84[0],
y = _ref84[1];
return [x + movementX, y + movementY];
});
this.attr('shape', {
points: bezierCurve
});
}
};
exports.bezierCurve = bezierCurve;
var text = {
shape: {
content: '',
position: [],
maxWidth: undefined,
rowGap: 0
},
validator: function validator(_ref85) {
var shape = _ref85.shape;
var content = shape.content,
position = shape.position,
rowGap = shape.rowGap;
if (typeof content !== 'string') {
console.error('Text content should be a string!');
return false;
}
if (!(position instanceof Array)) {
console.error('Text position should be an array!');
return false;
}
if (typeof rowGap !== 'number') {
console.error('Text rowGap should be a number!');
return false;
}
return true;
},
draw: function draw(_ref86, _ref87) {
var ctx = _ref86.ctx;
var shape = _ref87.shape;
var content = shape.content,
position = shape.position,
maxWidth = shape.maxWidth,
rowGap = shape.rowGap;
var textBaseline = ctx.textBaseline,
font = ctx.font;
var fontSize = parseInt(font.replace(/\D/g, ''));
var _position = position,
_position2 = (0, _slicedToArray2["default"])(_position, 2),
x = _position2[0],
y = _position2[1];
content = content.split('\n');
var rowNum = content.length;
var lineHeight = fontSize + rowGap;
var allHeight = rowNum * lineHeight - rowGap;
var offset = 0;
if (textBaseline === 'middle') {
offset = allHeight / 2;
y += fontSize / 2;
}
if (textBaseline === 'bottom') {
offset = allHeight;
y += fontSize;
}
position = new Array(rowNum).fill(0).map(function (foo, i) {
return [x, y + i * lineHeight - offset];
});
ctx.beginPath();
content.forEach(function (text, i) {
ctx.fillText.apply(ctx, [text].concat((0, _toConsumableArray2["default"])(position[i]), [maxWidth]));
ctx.strokeText.apply(ctx, [text].concat((0, _toConsumableArray2["default"])(position[i]), [maxWidth]));
});
ctx.closePath();
},
hoverCheck: function hoverCheck(position, _ref88) {
var shape = _ref88.shape,
style = _ref88.style;
return false;
},
setGraphCenter: function setGraphCenter(e, _ref89) {
var shape = _ref89.shape,
style = _ref89.style;
var position = shape.position;
style.graphCenter = (0, _toConsumableArray2["default"])(position);
},
move: function move(_ref90, _ref91) {
var movementX = _ref90.movementX,
movementY = _ref90.movementY;
var shape = _ref91.shape;
var _shape$position = (0, _slicedToArray2["default"])(shape.position, 2),
x = _shape$position[0],
y = _shape$position[1];
this.attr('shape', {
position: [x + movementX, y + movementY]
});
}
};
exports.text = text;
var graphs = new Map([['circle', circle], ['ellipse', ellipse], ['rect', rect], ['ring', ring], ['arc', arc], ['sector', sector], ['regPolygon', regPolygon], ['polyline', polyline], ['smoothline', smoothline], ['bezierCurve', bezierCurve], ['text', text]]);
var _default = graphs;
/**
* @description Extend new graph
* @param {String} name Name of Graph
* @param {Object} config Configuration of Graph
* @return {Undefined} Void
*/
exports["default"] = _default;
function extendNewGraph(name, config) {
if (!name || !config) {
console.error('ExtendNewGraph Missing Parameters!');
return;
}
if (!config.shape) {
console.error('Required attribute of shape to extendNewGraph!');
return;
}
if (!config.validator) {
console.error('Required function of validator to extendNewGraph!');
return;
}
if (!config.draw) {
console.error('Required function of draw to extendNewGraph!');
return;
}
graphs.set(name, config);
}
});
unwrapExports(graphs_1);
var graphs_2 = graphs_1.extendNewGraph;
var graphs_3 = graphs_1.text;
var graphs_4 = graphs_1.bezierCurve;
var graphs_5 = graphs_1.smoothline;
var graphs_6 = graphs_1.polyline;
var graphs_7 = graphs_1.regPolygon;
var graphs_8 = graphs_1.sector;
var graphs_9 = graphs_1.arc;
var graphs_10 = graphs_1.ring;
var graphs_11 = graphs_1.rect;
var graphs_12 = graphs_1.ellipse;
var graphs_13 = graphs_1.circle;
var runtime_1 = createCommonjsModule(function (module) {
/**
* Copyright (c) 2014-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var runtime = (function (exports) {
var Op = Object.prototype;
var hasOwn = Op.hasOwnProperty;
var undefined$1; // More compressible than void 0.
var $Symbol = typeof Symbol === "function" ? Symbol : {};
var iteratorSymbol = $Symbol.iterator || "@@iterator";
var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
function wrap(innerFn, outerFn, self, tryLocsList) {
// If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
var generator = Object.create(protoGenerator.prototype);
var context = new Context(tryLocsList || []);
// The ._invoke method unifies the implementations of the .next,
// .throw, and .return methods.
generator._invoke = makeInvokeMethod(innerFn, self, context);
return generator;
}
exports.wrap = wrap;
// Try/catch helper to minimize deoptimizations. Returns a completion
// record like context.tryEntries[i].completion. This interface could
// have been (and was previously) designed to take a closure to be
// invoked without arguments, but in all the cases we care about we
// already have an existing method we want to call, so there's no need
// to create a new function object. We can even get away with assuming
// the method takes exactly one argument, since that happens to be true
// in every case, so we don't have to touch the arguments object. The
// only additional allocation required is the completion record, which
// has a stable shape and so hopefully should be cheap to allocate.
function tryCatch(fn, obj, arg) {
try {
return { type: "normal", arg: fn.call(obj, arg) };
} catch (err) {
return { type: "throw", arg: err };
}
}
var GenStateSuspendedStart = "suspendedStart";
var GenStateSuspendedYield = "suspendedYield";
var GenStateExecuting = "executing";
var GenStateCompleted = "completed";
// Returning this object from the innerFn has the same effect as
// breaking out of the dispatch switch statement.
var ContinueSentinel = {};
// Dummy constructor functions that we use as the .constructor and
// .constructor.prototype properties for functions that return Generator
// objects. For full spec compliance, you may wish to configure your
// minifier not to mangle the names of these two functions.
function Generator() {}
function GeneratorFunction() {}
function GeneratorFunctionPrototype() {}
// This is a polyfill for %IteratorPrototype% for environments that
// don't natively support it.
var IteratorPrototype = {};
IteratorPrototype[iteratorSymbol] = function () {
return this;
};
var getProto = Object.getPrototypeOf;
var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
if (NativeIteratorPrototype &&
NativeIteratorPrototype !== Op &&
hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
// This environment has a native %IteratorPrototype%; use it instead
// of the polyfill.
IteratorPrototype = NativeIteratorPrototype;
}
var Gp = GeneratorFunctionPrototype.prototype =
Generator.prototype = Object.create(IteratorPrototype);
GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
GeneratorFunctionPrototype.constructor = GeneratorFunction;
GeneratorFunctionPrototype[toStringTagSymbol] =
GeneratorFunction.displayName = "GeneratorFunction";
// Helper for defining the .next, .throw, and .return methods of the
// Iterator interface in terms of a single ._invoke method.
function defineIteratorMethods(prototype) {
["next", "throw", "return"].forEach(function(method) {
prototype[method] = function(arg) {
return this._invoke(method, arg);
};
});
}
exports.isGeneratorFunction = function(genFun) {
var ctor = typeof genFun === "function" && genFun.constructor;
return ctor
? ctor === GeneratorFunction ||
// For the native GeneratorFunction constructor, the best we can
// do is to check its .name property.
(ctor.displayName || ctor.name) === "GeneratorFunction"
: false;
};
exports.mark = function(genFun) {
if (Object.setPrototypeOf) {
Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
} else {
genFun.__proto__ = GeneratorFunctionPrototype;
if (!(toStringTagSymbol in genFun)) {
genFun[toStringTagSymbol] = "GeneratorFunction";
}
}
genFun.prototype = Object.create(Gp);
return genFun;
};
// Within the body of any async function, `await x` is transformed to
// `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
// `hasOwn.call(value, "__await")` to determine if the yielded value is
// meant to be awaited.
exports.awrap = function(arg) {
return { __await: arg };
};
function AsyncIterator(generator) {
function invoke(method, arg, resolve, reject) {
var record = tryCatch(generator[method], generator, arg);
if (record.type === "throw") {
reject(record.arg);
} else {
var result = record.arg;
var value = result.value;
if (value &&
typeof value === "object" &&
hasOwn.call(value, "__await")) {
return Promise.resolve(value.__await).then(function(value) {
invoke("next", value, resolve, reject);
}, function(err) {
invoke("throw", err, resolve, reject);
});
}
return Promise.resolve(value).then(function(unwrapped) {
// When a yielded Promise is resolved, its final value becomes
// the .value of the Promise<{value,done}> result for the
// current iteration.
result.value = unwrapped;
resolve(result);
}, function(error) {
// If a rejected Promise was yielded, throw the rejection back
// into the async generator function so it can be handled there.
return invoke("throw", error, resolve, reject);
});
}
}
var previousPromise;
function enqueue(method, arg) {
function callInvokeWithMethodAndArg() {
return new Promise(function(resolve, reject) {
invoke(method, arg, resolve, reject);
});
}
return previousPromise =
// If enqueue has been called before, then we want to wait until
// all previous Promises have been resolved before calling invoke,
// so that results are always delivered in the correct order. If
// enqueue has not been called before, then it is important to
// call invoke immediately, without waiting on a callback to fire,
// so that the async generator function has the opportunity to do
// any necessary setup in a predictable way. This predictability
// is why the Promise constructor synchronously invokes its
// executor callback, and why async functions synchronously
// execute code before the first await. Since we implement simple
// async functions in terms of async generators, it is especially
// important to get this right, even though it requires care.
previousPromise ? previousPromise.then(
callInvokeWithMethodAndArg,
// Avoid propagating failures to Promises returned by later
// invocations of the iterator.
callInvokeWithMethodAndArg
) : callInvokeWithMethodAndArg();
}
// Define the unified helper method that is used to implement .next,
// .throw, and .return (see defineIteratorMethods).
this._invoke = enqueue;
}
defineIteratorMethods(AsyncIterator.prototype);
AsyncIterator.prototype[asyncIteratorSymbol] = function () {
return this;
};
exports.AsyncIterator = AsyncIterator;
// Note that simple async functions are implemented on top of
// AsyncIterator objects; they just return a Promise for the value of
// the final result produced by the iterator.
exports.async = function(innerFn, outerFn, self, tryLocsList) {
var iter = new AsyncIterator(
wrap(innerFn, outerFn, self, tryLocsList)
);
return exports.isGeneratorFunction(outerFn)
? iter // If outerFn is a generator, return the full iterator.
: iter.next().then(function(result) {
return result.done ? result.value : iter.next();
});
};
function makeInvokeMethod(innerFn, self, context) {
var state = GenStateSuspendedStart;
return function invoke(method, arg) {
if (state === GenStateExecuting) {
throw new Error("Generator is already running");
}
if (state === GenStateCompleted) {
if (method === "throw") {
throw arg;
}
// Be forgiving, per 25.3.3.3.3 of the spec:
// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
return doneResult();
}
context.method = method;
context.arg = arg;
while (true) {
var delegate = context.delegate;
if (delegate) {
var delegateResult = maybeInvokeDelegate(delegate, context);
if (delegateResult) {
if (delegateResult === ContinueSentinel) continue;
return delegateResult;
}
}
if (context.method === "next") {
// Setting context._sent for legacy support of Babel's
// function.sent implementation.
context.sent = context._sent = context.arg;
} else if (context.method === "throw") {
if (state === GenStateSuspendedStart) {
state = GenStateCompleted;
throw context.arg;
}
context.dispatchException(context.arg);
} else if (context.method === "return") {
context.abrupt("return", context.arg);
}
state = GenStateExecuting;
var record = tryCatch(innerFn, self, context);
if (record.type === "normal") {
// If an exception is thrown from innerFn, we leave state ===
// GenStateExecuting and loop back for another invocation.
state = context.done
? GenStateCompleted
: GenStateSuspendedYield;
if (record.arg === ContinueSentinel) {
continue;
}
return {
value: record.arg,
done: context.done
};
} else if (record.type === "throw") {
state = GenStateCompleted;
// Dispatch the exception by looping back around to the
// context.dispatchException(context.arg) call above.
context.method = "throw";
context.arg = record.arg;
}
}
};
}
// Call delegate.iterator[context.method](context.arg) and handle the
// result, either by returning a { value, done } result from the
// delegate iterator, or by modifying context.method and context.arg,
// setting context.delegate to null, and returning the ContinueSentinel.
function maybeInvokeDelegate(delegate, context) {
var method = delegate.iterator[context.method];
if (method === undefined$1) {
// A .throw or .return when the delegate iterator has no .throw
// method always terminates the yield* loop.
context.delegate = null;
if (context.method === "throw") {
// Note: ["return"] must be used for ES3 parsing compatibility.
if (delegate.iterator["return"]) {
// If the delegate iterator has a return method, give it a
// chance to clean up.
context.method = "return";
context.arg = undefined$1;
maybeInvokeDelegate(delegate, context);
if (context.method === "throw") {
// If maybeInvokeDelegate(context) changed context.method from
// "return" to "throw", let that override the TypeError below.
return ContinueSentinel;
}
}
context.method = "throw";
context.arg = new TypeError(
"The iterator does not provide a 'throw' method");
}
return ContinueSentinel;
}
var record = tryCatch(method, delegate.iterator, context.arg);
if (record.type === "throw") {
context.method = "throw";
context.arg = record.arg;
context.delegate = null;
return ContinueSentinel;
}
var info = record.arg;
if (! info) {
context.method = "throw";
context.arg = new TypeError("iterator result is not an object");
context.delegate = null;
return ContinueSentinel;
}
if (info.done) {
// Assign the result of the finished delegate to the temporary
// variable specified by delegate.resultName (see delegateYield).
context[delegate.resultName] = info.value;
// Resume execution at the desired location (see delegateYield).
context.next = delegate.nextLoc;
// If context.method was "throw" but the delegate handled the
// exception, let the outer generator proceed normally. If
// context.method was "next", forget context.arg since it has been
// "consumed" by the delegate iterator. If context.method was
// "return", allow the original .return call to continue in the
// outer generator.
if (context.method !== "return") {
context.method = "next";
context.arg = undefined$1;
}
} else {
// Re-yield the result returned by the delegate method.
return info;
}
// The delegate iterator is finished, so forget it and continue with
// the outer generator.
context.delegate = null;
return ContinueSentinel;
}
// Define Generator.prototype.{next,throw,return} in terms of the
// unified ._invoke helper method.
defineIteratorMethods(Gp);
Gp[toStringTagSymbol] = "Generator";
// A Generator should always return itself as the iterator object when the
// @@iterator function is called on it. Some browsers' implementations of the
// iterator prototype chain incorrectly implement this, causing the Generator
// object to not be returned from this call. This ensures that doesn't happen.
// See https://github.com/facebook/regenerator/issues/274 for more details.
Gp[iteratorSymbol] = function() {
return this;
};
Gp.toString = function() {
return "[object Generator]";
};
function pushTryEntry(locs) {
var entry = { tryLoc: locs[0] };
if (1 in locs) {
entry.catchLoc = locs[1];
}
if (2 in locs) {
entry.finallyLoc = locs[2];
entry.afterLoc = locs[3];
}
this.tryEntries.push(entry);
}
function resetTryEntry(entry) {
var record = entry.completion || {};
record.type = "normal";
delete record.arg;
entry.completion = record;
}
function Context(tryLocsList) {
// The root entry object (effectively a try statement without a catch
// or a finally block) gives us a place to store values thrown from
// locations where there is no enclosing try statement.
this.tryEntries = [{ tryLoc: "root" }];
tryLocsList.forEach(pushTryEntry, this);
this.reset(true);
}
exports.keys = function(object) {
var keys = [];
for (var key in object) {
keys.push(key);
}
keys.reverse();
// Rather than returning an object with a next method, we keep
// things simple and return the next function itself.
return function next() {
while (keys.length) {
var key = keys.pop();
if (key in object) {
next.value = key;
next.done = false;
return next;
}
}
// To avoid creating an additional object, we just hang the .value
// and .done properties off the next function object itself. This
// also ensures that the minifier will not anonymize the function.
next.done = true;
return next;
};
};
function values(iterable) {
if (iterable) {
var iteratorMethod = iterable[iteratorSymbol];
if (iteratorMethod) {
return iteratorMethod.call(iterable);
}
if (typeof iterable.next === "function") {
return iterable;
}
if (!isNaN(iterable.length)) {
var i = -1, next = function next() {
while (++i < iterable.length) {
if (hasOwn.call(iterable, i)) {
next.value = iterable[i];
next.done = false;
return next;
}
}
next.value = undefined$1;
next.done = true;
return next;
};
return next.next = next;
}
}
// Return an iterator with no values.
return { next: doneResult };
}
exports.values = values;
function doneResult() {
return { value: undefined$1, done: true };
}
Context.prototype = {
constructor: Context,
reset: function(skipTempReset) {
this.prev = 0;
this.next = 0;
// Resetting context._sent for legacy support of Babel's
// function.sent implementation.
this.sent = this._sent = undefined$1;
this.done = false;
this.delegate = null;
this.method = "next";
this.arg = undefined$1;
this.tryEntries.forEach(resetTryEntry);
if (!skipTempReset) {
for (var name in this) {
// Not sure about the optimal order of these conditions:
if (name.charAt(0) === "t" &&
hasOwn.call(this, name) &&
!isNaN(+name.slice(1))) {
this[name] = undefined$1;
}
}
}
},
stop: function() {
this.done = true;
var rootEntry = this.tryEntries[0];
var rootRecord = rootEntry.completion;
if (rootRecord.type === "throw") {
throw rootRecord.arg;
}
return this.rval;
},
dispatchException: function(exception) {
if (this.done) {
throw exception;
}
var context = this;
function handle(loc, caught) {
record.type = "throw";
record.arg = exception;
context.next = loc;
if (caught) {
// If the dispatched exception was caught by a catch block,
// then let that catch block handle the exception normally.
context.method = "next";
context.arg = undefined$1;
}
return !! caught;
}
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
var record = entry.completion;
if (entry.tryLoc === "root") {
// Exception thrown outside of any try block that could handle
// it, so set the completion value of the entire function to
// throw the exception.
return handle("end");
}
if (entry.tryLoc <= this.prev) {
var hasCatch = hasOwn.call(entry, "catchLoc");
var hasFinally = hasOwn.call(entry, "finallyLoc");
if (hasCatch && hasFinally) {
if (this.prev < entry.catchLoc) {
return handle(entry.catchLoc, true);
} else if (this.prev < entry.finallyLoc) {
return handle(entry.finallyLoc);
}
} else if (hasCatch) {
if (this.prev < entry.catchLoc) {
return handle(entry.catchLoc, true);
}
} else if (hasFinally) {
if (this.prev < entry.finallyLoc) {
return handle(entry.finallyLoc);
}
} else {
throw new Error("try statement without catch or finally");
}
}
}
},
abrupt: function(type, arg) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.tryLoc <= this.prev &&
hasOwn.call(entry, "finallyLoc") &&
this.prev < entry.finallyLoc) {
var finallyEntry = entry;
break;
}
}
if (finallyEntry &&
(type === "break" ||
type === "continue") &&
finallyEntry.tryLoc <= arg &&
arg <= finallyEntry.finallyLoc) {
// Ignore the finally entry if control is not jumping to a
// location outside the try/catch block.
finallyEntry = null;
}
var record = finallyEntry ? finallyEntry.completion : {};
record.type = type;
record.arg = arg;
if (finallyEntry) {
this.method = "next";
this.next = finallyEntry.finallyLoc;
return ContinueSentinel;
}
return this.complete(record);
},
complete: function(record, afterLoc) {
if (record.type === "throw") {
throw record.arg;
}
if (record.type === "break" ||
record.type === "continue") {
this.next = record.arg;
} else if (record.type === "return") {
this.rval = this.arg = record.arg;
this.method = "return";
this.next = "end";
} else if (record.type === "normal" && afterLoc) {
this.next = afterLoc;
}
return ContinueSentinel;
},
finish: function(finallyLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.finallyLoc === finallyLoc) {
this.complete(entry.completion, entry.afterLoc);
resetTryEntry(entry);
return ContinueSentinel;
}
}
},
"catch": function(tryLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.tryLoc === tryLoc) {
var record = entry.completion;
if (record.type === "throw") {
var thrown = record.arg;
resetTryEntry(entry);
}
return thrown;
}
}
// The context.catch method must only be called with a location
// argument that corresponds to a known catch block.
throw new Error("illegal catch attempt");
},
delegateYield: function(iterable, resultName, nextLoc) {
this.delegate = {
iterator: values(iterable),
resultName: resultName,
nextLoc: nextLoc
};
if (this.method === "next") {
// Deliberately forget the last sent value so that we don't
// accidentally pass it on to the delegate.
this.arg = undefined$1;
}
return ContinueSentinel;
}
};
// Regardless of whether this script is executing as a CommonJS module
// or not, return the runtime object so that we can declare the variable
// regeneratorRuntime in the outer scope, which allows this module to be
// injected easily by `bin/regenerator --include-runtime script.js`.
return exports;
}(
// If this script is executing as a CommonJS module, use module.exports
// as the regeneratorRuntime namespace. Otherwise create a new empty
// object. Either way, the resulting object will be used to initialize
// the regeneratorRuntime variable at the top of this file.
module.exports
));
try {
regeneratorRuntime = runtime;
} catch (accidentalStrictMode) {
// This module should not be running in strict mode, so the above
// assignment should always work unless something is misconfigured. Just
// in case runtime.js accidentally runs in strict mode, we can escape
// strict mode using a global Function call. This could conceivably fail
// if a Content Security Policy forbids using Function, but in that case
// the proper solution is to fix the accidental strict mode problem. If
// you've misconfigured your bundler to force strict mode and applied a
// CSP to forbid Function, and you're not willing to fix either of those
// problems, please detail your unique predicament in a GitHub issue.
Function("r", "regeneratorRuntime = r")(runtime);
}
});
var regenerator = runtime_1;
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
try {
var info = gen[key](arg);
var value = info.value;
} catch (error) {
reject(error);
return;
}
if (info.done) {
resolve(value);
} else {
Promise.resolve(value).then(_next, _throw);
}
}
function _asyncToGenerator(fn) {
return function () {
var self = this,
args = arguments;
return new Promise(function (resolve, reject) {
var gen = fn.apply(self, args);
function _next(value) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
}
function _throw(err) {
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
}
_next(undefined);
});
};
}
var asyncToGenerator = _asyncToGenerator;
var style_class = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
var _classCallCheck2 = interopRequireDefault(classCallCheck);
/**
* @description Class Style
* @param {Object} style Style configuration
* @return {Style} Instance of Style
*/
var Style = function Style(style) {
(0, _classCallCheck2["default"])(this, Style);
this.colorProcessor(style);
var defaultStyle = {
/**
* @description Rgba value of graph fill color
* @type {Array}
* @default fill = [0, 0, 0, 1]
*/
fill: [0, 0, 0, 1],
/**
* @description Rgba value of graph stroke color
* @type {Array}
* @default stroke = [0, 0, 0, 1]
*/
stroke: [0, 0, 0, 0],
/**
* @description Opacity of graph
* @type {Number}
* @default opacity = 1
*/
opacity: 1,
/**
* @description LineCap of Ctx
* @type {String}
* @default lineCap = null
* @example lineCap = 'butt'|'round'|'square'
*/
lineCap: null,
/**
* @description Linejoin of Ctx
* @type {String}
* @default lineJoin = null
* @example lineJoin = 'round'|'bevel'|'miter'
*/
lineJoin: null,
/**
* @description LineDash of Ctx
* @type {Array}
* @default lineDash = null
* @example lineDash = [10, 10]
*/
lineDash: null,
/**
* @description LineDashOffset of Ctx
* @type {Number}
* @default lineDashOffset = null
* @example lineDashOffset = 10
*/
lineDashOffset: null,
/**
* @description ShadowBlur of Ctx
* @type {Number}
* @default shadowBlur = 0
*/
shadowBlur: 0,
/**
* @description Rgba value of graph shadow color
* @type {Array}
* @default shadowColor = [0, 0, 0, 0]
*/
shadowColor: [0, 0, 0, 0],
/**
* @description ShadowOffsetX of Ctx
* @type {Number}
* @default shadowOffsetX = 0
*/
shadowOffsetX: 0,
/**
* @description ShadowOffsetY of Ctx
* @type {Number}
* @default shadowOffsetY = 0
*/
shadowOffsetY: 0,
/**
* @description LineWidth of Ctx
* @type {Number}
* @default lineWidth = 0
*/
lineWidth: 0,
/**
* @description Center point of the graph
* @type {Array}
* @default graphCenter = null
* @example graphCenter = [10, 10]
*/
graphCenter: null,
/**
* @description Graph scale
* @type {Array}
* @default scale = null
* @example scale = [1.5, 1.5]
*/
scale: null,
/**
* @description Graph rotation degree
* @type {Number}
* @default rotate = null
* @example rotate = 10
*/
rotate: null,
/**
* @description Graph translate distance
* @type {Array}
* @default translate = null
* @example translate = [10, 10]
*/
translate: null,
/**
* @description Cursor status when hover
* @type {String}
* @default hoverCursor = 'pointer'
* @example hoverCursor = 'default'|'pointer'|'auto'|'crosshair'|'move'|'wait'|...
*/
hoverCursor: 'pointer',
/**
* @description Font style of Ctx
* @type {String}
* @default fontStyle = 'normal'
* @example fontStyle = 'normal'|'italic'|'oblique'
*/
fontStyle: 'normal',
/**
* @description Font varient of Ctx
* @type {String}
* @default fontVarient = 'normal'
* @example fontVarient = 'normal'|'small-caps'
*/
fontVarient: 'normal',
/**
* @description Font weight of Ctx
* @type {String|Number}
* @default fontWeight = 'normal'
* @example fontWeight = 'normal'|'bold'|'bolder'|'lighter'|Number
*/
fontWeight: 'normal',
/**
* @description Font size of Ctx
* @type {Number}
* @default fontSize = 10
*/
fontSize: 10,
/**
* @description Font family of Ctx
* @type {String}
* @default fontFamily = 'Arial'
*/
fontFamily: 'Arial',
/**
* @description TextAlign of Ctx
* @type {String}
* @default textAlign = 'center'
* @example textAlign = 'start'|'end'|'left'|'right'|'center'
*/
textAlign: 'center',
/**
* @description TextBaseline of Ctx
* @type {String}
* @default textBaseline = 'middle'
* @example textBaseline = 'top'|'bottom'|'middle'|'alphabetic'|'hanging'
*/
textBaseline: 'middle',
/**
* @description The color used to create the gradient
* @type {Array}
* @default gradientColor = null
* @example gradientColor = ['#000', '#111', '#222']
*/
gradientColor: null,
/**
* @description Gradient type
* @type {String}
* @default gradientType = 'linear'
* @example gradientType = 'linear' | 'radial'
*/
gradientType: 'linear',
/**
* @description Gradient params
* @type {Array}
* @default gradientParams = null
* @example gradientParams = [x0, y0, x1, y1] (Linear Gradient)
* @example gradientParams = [x0, y0, r0, x1, y1, r1] (Radial Gradient)
*/
gradientParams: null,
/**
* @description When to use gradients
* @type {String}
* @default gradientWith = 'stroke'
* @example gradientWith = 'stroke' | 'fill'
*/
gradientWith: 'stroke',
/**
* @description Gradient color stops
* @type {String}
* @default gradientStops = 'auto'
* @example gradientStops = 'auto' | [0, .2, .3, 1]
*/
gradientStops: 'auto',
/**
* @description Extended color that supports animation transition
* @type {Array|Object}
* @default colors = null
* @example colors = ['#000', '#111', '#222', 'red' ]
* @example colors = { a: '#000', b: '#111' }
*/
colors: null
};
Object.assign(this, defaultStyle, style);
};
/**
* @description Set colors to rgba value
* @param {Object} style style config
* @param {Boolean} reverse Whether to perform reverse operation
* @return {Undefined} Void
*/
exports["default"] = Style;
Style.prototype.colorProcessor = function (style) {
var reverse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var processor = reverse ? lib.getColorFromRgbValue : lib.getRgbaValue;
var colorProcessorKeys = ['fill', 'stroke', 'shadowColor'];
var allKeys = Object.keys(style);
var colorKeys = allKeys.filter(function (key) {
return colorProcessorKeys.find(function (k) {
return k === key;
});
});
colorKeys.forEach(function (key) {
return style[key] = processor(style[key]);
});
var gradientColor = style.gradientColor,
colors = style.colors;
if (gradientColor) style.gradientColor = gradientColor.map(function (c) {
return processor(c);
});
if (colors) {
var colorsKeys = Object.keys(colors);
colorsKeys.forEach(function (key) {
return colors[key] = processor(colors[key]);
});
}
};
/**
* @description Init graph style
* @param {Object} ctx Context of canvas
* @return {Undefined} Void
*/
Style.prototype.initStyle = function (ctx) {
initTransform(ctx, this);
initGraphStyle(ctx, this);
initGradient(ctx, this);
};
/**
* @description Init canvas transform
* @param {Object} ctx Context of canvas
* @param {Style} style Instance of Style
* @return {Undefined} Void
*/
function initTransform(ctx, style) {
ctx.save();
var graphCenter = style.graphCenter,
rotate = style.rotate,
scale = style.scale,
translate = style.translate;
if (!(graphCenter instanceof Array)) return;
ctx.translate.apply(ctx, (0, _toConsumableArray2["default"])(graphCenter));
if (rotate) ctx.rotate(rotate * Math.PI / 180);
if (scale instanceof Array) ctx.scale.apply(ctx, (0, _toConsumableArray2["default"])(scale));
if (translate) ctx.translate.apply(ctx, (0, _toConsumableArray2["default"])(translate));
ctx.translate(-graphCenter[0], -graphCenter[1]);
}
var autoSetStyleKeys = ['lineCap', 'lineJoin', 'lineDashOffset', 'shadowOffsetX', 'shadowOffsetY', 'lineWidth', 'textAlign', 'textBaseline'];
/**
* @description Set the style of canvas ctx
* @param {Object} ctx Context of canvas
* @param {Style} style Instance of Style
* @return {Undefined} Void
*/
function initGraphStyle(ctx, style) {
var fill = style.fill,
stroke = style.stroke,
shadowColor = style.shadowColor,
opacity = style.opacity;
autoSetStyleKeys.forEach(function (key) {
if (key || typeof key === 'number') ctx[key] = style[key];
});
fill = (0, _toConsumableArray2["default"])(fill);
stroke = (0, _toConsumableArray2["default"])(stroke);
shadowColor = (0, _toConsumableArray2["default"])(shadowColor);
fill[3] *= opacity;
stroke[3] *= opacity;
shadowColor[3] *= opacity;
ctx.fillStyle = (0, lib.getColorFromRgbValue)(fill);
ctx.strokeStyle = (0, lib.getColorFromRgbValue)(stroke);
ctx.shadowColor = (0, lib.getColorFromRgbValue)(shadowColor);
var lineDash = style.lineDash,
shadowBlur = style.shadowBlur;
if (lineDash) {
lineDash = lineDash.map(function (v) {
return v >= 0 ? v : 0;
});
ctx.setLineDash(lineDash);
}
if (typeof shadowBlur === 'number') ctx.shadowBlur = shadowBlur > 0 ? shadowBlur : 0.001;
var fontStyle = style.fontStyle,
fontVarient = style.fontVarient,
fontWeight = style.fontWeight,
fontSize = style.fontSize,
fontFamily = style.fontFamily;
ctx.font = fontStyle + ' ' + fontVarient + ' ' + fontWeight + ' ' + fontSize + 'px' + ' ' + fontFamily;
}
/**
* @description Set the gradient color of canvas ctx
* @param {Object} ctx Context of canvas
* @param {Style} style Instance of Style
* @return {Undefined} Void
*/
function initGradient(ctx, style) {
if (!gradientValidator(style)) return;
var gradientColor = style.gradientColor,
gradientParams = style.gradientParams,
gradientType = style.gradientType,
gradientWith = style.gradientWith,
gradientStops = style.gradientStops,
opacity = style.opacity;
gradientColor = gradientColor.map(function (color) {
var colorOpacity = color[3] * opacity;
var clonedColor = (0, _toConsumableArray2["default"])(color);
clonedColor[3] = colorOpacity;
return clonedColor;
});
gradientColor = gradientColor.map(function (c) {
return (0, lib.getColorFromRgbValue)(c);
});
if (gradientStops === 'auto') gradientStops = getAutoColorStops(gradientColor);
var gradient = ctx["create".concat(gradientType.slice(0, 1).toUpperCase() + gradientType.slice(1), "Gradient")].apply(ctx, (0, _toConsumableArray2["default"])(gradientParams));
gradientStops.forEach(function (stop, i) {
return gradient.addColorStop(stop, gradientColor[i]);
});
ctx["".concat(gradientWith, "Style")] = gradient;
}
/**
* @description Check if the gradient configuration is legal
* @param {Style} style Instance of Style
* @return {Boolean} Check Result
*/
function gradientValidator(style) {
var gradientColor = style.gradientColor,
gradientParams = style.gradientParams,
gradientType = style.gradientType,
gradientWith = style.gradientWith,
gradientStops = style.gradientStops;
if (!gradientColor || !gradientParams) return false;
if (gradientColor.length === 1) {
console.warn('The gradient needs to provide at least two colors');
return false;
}
if (gradientType !== 'linear' && gradientType !== 'radial') {
console.warn('GradientType only supports linear or radial, current value is ' + gradientType);
return false;
}
var gradientParamsLength = gradientParams.length;
if (gradientType === 'linear' && gradientParamsLength !== 4 || gradientType === 'radial' && gradientParamsLength !== 6) {
console.warn('The expected length of gradientParams is ' + (gradientType === 'linear' ? '4' : '6'));
return false;
}
if (gradientWith !== 'fill' && gradientWith !== 'stroke') {
console.warn('GradientWith only supports fill or stroke, current value is ' + gradientWith);
return false;
}
if (gradientStops !== 'auto' && !(gradientStops instanceof Array)) {
console.warn("gradientStops only supports 'auto' or Number Array ([0, .5, 1]), current value is " + gradientStops);
return false;
}
return true;
}
/**
* @description Get a uniform gradient color stop
* @param {Array} color Gradient color
* @return {Array} Gradient color stop
*/
function getAutoColorStops(color) {
var stopGap = 1 / (color.length - 1);
return color.map(function (foo, i) {
return stopGap * i;
});
}
/**
* @description Restore canvas ctx transform
* @param {Object} ctx Context of canvas
* @return {Undefined} Void
*/
Style.prototype.restoreTransform = function (ctx) {
ctx.restore();
};
/**
* @description Update style data
* @param {Object} change Changed data
* @return {Undefined} Void
*/
Style.prototype.update = function (change) {
this.colorProcessor(change);
Object.assign(this, change);
};
/**
* @description Get the current style configuration
* @return {Object} Style configuration
*/
Style.prototype.getStyle = function () {
var clonedStyle = (0, util.deepClone)(this, true);
this.colorProcessor(clonedStyle, true);
return clonedStyle;
};
});
unwrapExports(style_class);
var curves = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = exports.easeInOutBounce = exports.easeOutBounce = exports.easeInBounce = exports.easeInOutElastic = exports.easeOutElastic = exports.easeInElastic = exports.easeInOutBack = exports.easeOutBack = exports.easeInBack = exports.easeInOutQuint = exports.easeOutQuint = exports.easeInQuint = exports.easeInOutQuart = exports.easeOutQuart = exports.easeInQuart = exports.easeInOutCubic = exports.easeOutCubic = exports.easeInCubic = exports.easeInOutQuad = exports.easeOutQuad = exports.easeInQuad = exports.easeInOutSine = exports.easeOutSine = exports.easeInSine = exports.linear = void 0;
var linear = [[[0, 1], '', [0.33, 0.67]], [[1, 0], [0.67, 0.33]]];
/**
* @description Sine
*/
exports.linear = linear;
var easeInSine = [[[0, 1]], [[0.538, 0.564], [0.169, 0.912], [0.880, 0.196]], [[1, 0]]];
exports.easeInSine = easeInSine;
var easeOutSine = [[[0, 1]], [[0.444, 0.448], [0.169, 0.736], [0.718, 0.16]], [[1, 0]]];
exports.easeOutSine = easeOutSine;
var easeInOutSine = [[[0, 1]], [[0.5, 0.5], [0.2, 1], [0.8, 0]], [[1, 0]]];
/**
* @description Quad
*/
exports.easeInOutSine = easeInOutSine;
var easeInQuad = [[[0, 1]], [[0.550, 0.584], [0.231, 0.904], [0.868, 0.264]], [[1, 0]]];
exports.easeInQuad = easeInQuad;
var easeOutQuad = [[[0, 1]], [[0.413, 0.428], [0.065, 0.816], [0.760, 0.04]], [[1, 0]]];
exports.easeOutQuad = easeOutQuad;
var easeInOutQuad = [[[0, 1]], [[0.5, 0.5], [0.3, 0.9], [0.7, 0.1]], [[1, 0]]];
/**
* @description Cubic
*/
exports.easeInOutQuad = easeInOutQuad;
var easeInCubic = [[[0, 1]], [[0.679, 0.688], [0.366, 0.992], [0.992, 0.384]], [[1, 0]]];
exports.easeInCubic = easeInCubic;
var easeOutCubic = [[[0, 1]], [[0.321, 0.312], [0.008, 0.616], [0.634, 0.008]], [[1, 0]]];
exports.easeOutCubic = easeOutCubic;
var easeInOutCubic = [[[0, 1]], [[0.5, 0.5], [0.3, 1], [0.7, 0]], [[1, 0]]];
/**
* @description Quart
*/
exports.easeInOutCubic = easeInOutCubic;
var easeInQuart = [[[0, 1]], [[0.812, 0.74], [0.611, 0.988], [1.013, 0.492]], [[1, 0]]];
exports.easeInQuart = easeInQuart;
var easeOutQuart = [[[0, 1]], [[0.152, 0.244], [0.001, 0.448], [0.285, -0.02]], [[1, 0]]];
exports.easeOutQuart = easeOutQuart;
var easeInOutQuart = [[[0, 1]], [[0.5, 0.5], [0.4, 1], [0.6, 0]], [[1, 0]]];
/**
* @description Quint
*/
exports.easeInOutQuart = easeInOutQuart;
var easeInQuint = [[[0, 1]], [[0.857, 0.856], [0.714, 1], [1, 0.712]], [[1, 0]]];
exports.easeInQuint = easeInQuint;
var easeOutQuint = [[[0, 1]], [[0.108, 0.2], [0.001, 0.4], [0.214, -0.012]], [[1, 0]]];
exports.easeOutQuint = easeOutQuint;
var easeInOutQuint = [[[0, 1]], [[0.5, 0.5], [0.5, 1], [0.5, 0]], [[1, 0]]];
/**
* @description Back
*/
exports.easeInOutQuint = easeInOutQuint;
var easeInBack = [[[0, 1]], [[0.667, 0.896], [0.380, 1.184], [0.955, 0.616]], [[1, 0]]];
exports.easeInBack = easeInBack;
var easeOutBack = [[[0, 1]], [[0.335, 0.028], [0.061, 0.22], [0.631, -0.18]], [[1, 0]]];
exports.easeOutBack = easeOutBack;
var easeInOutBack = [[[0, 1]], [[0.5, 0.5], [0.4, 1.4], [0.6, -0.4]], [[1, 0]]];
/**
* @description Elastic
*/
exports.easeInOutBack = easeInOutBack;
var easeInElastic = [[[0, 1]], [[0.474, 0.964], [0.382, 0.988], [0.557, 0.952]], [[0.619, 1.076], [0.565, 1.088], [0.669, 1.08]], [[0.770, 0.916], [0.712, 0.924], [0.847, 0.904]], [[0.911, 1.304], [0.872, 1.316], [0.961, 1.34]], [[1, 0]]];
exports.easeInElastic = easeInElastic;
var easeOutElastic = [[[0, 1]], [[0.073, -0.32], [0.034, -0.328], [0.104, -0.344]], [[0.191, 0.092], [0.110, 0.06], [0.256, 0.08]], [[0.310, -0.076], [0.260, -0.068], [0.357, -0.076]], [[0.432, 0.032], [0.362, 0.028], [0.683, -0.004]], [[1, 0]]];
exports.easeOutElastic = easeOutElastic;
var easeInOutElastic = [[[0, 1]], [[0.210, 0.94], [0.167, 0.884], [0.252, 0.98]], [[0.299, 1.104], [0.256, 1.092], [0.347, 1.108]], [[0.5, 0.496], [0.451, 0.672], [0.548, 0.324]], [[0.696, -0.108], [0.652, -0.112], [0.741, -0.124]], [[0.805, 0.064], [0.756, 0.012], [0.866, 0.096]], [[1, 0]]];
/**
* @description Bounce
*/
exports.easeInOutElastic = easeInOutElastic;
var easeInBounce = [[[0, 1]], [[0.148, 1], [0.075, 0.868], [0.193, 0.848]], [[0.326, 1], [0.276, 0.836], [0.405, 0.712]], [[0.600, 1], [0.511, 0.708], [0.671, 0.348]], [[1, 0]]];
exports.easeInBounce = easeInBounce;
var easeOutBounce = [[[0, 1]], [[0.357, 0.004], [0.270, 0.592], [0.376, 0.252]], [[0.604, -0.004], [0.548, 0.312], [0.669, 0.184]], [[0.820, 0], [0.749, 0.184], [0.905, 0.132]], [[1, 0]]];
exports.easeOutBounce = easeOutBounce;
var easeInOutBounce = [[[0, 1]], [[0.102, 1], [0.050, 0.864], [0.117, 0.86]], [[0.216, 0.996], [0.208, 0.844], [0.227, 0.808]], [[0.347, 0.996], [0.343, 0.8], [0.480, 0.292]], [[0.635, 0.004], [0.511, 0.676], [0.656, 0.208]], [[0.787, 0], [0.760, 0.2], [0.795, 0.144]], [[0.905, -0.004], [0.899, 0.164], [0.944, 0.144]], [[1, 0]]];
exports.easeInOutBounce = easeInOutBounce;
var _default = new Map([['linear', linear], ['easeInSine', easeInSine], ['easeOutSine', easeOutSine], ['easeInOutSine', easeInOutSine], ['easeInQuad', easeInQuad], ['easeOutQuad', easeOutQuad], ['easeInOutQuad', easeInOutQuad], ['easeInCubic', easeInCubic], ['easeOutCubic', easeOutCubic], ['easeInOutCubic', easeInOutCubic], ['easeInQuart', easeInQuart], ['easeOutQuart', easeOutQuart], ['easeInOutQuart', easeInOutQuart], ['easeInQuint', easeInQuint], ['easeOutQuint', easeOutQuint], ['easeInOutQuint', easeInOutQuint], ['easeInBack', easeInBack], ['easeOutBack', easeOutBack], ['easeInOutBack', easeInOutBack], ['easeInElastic', easeInElastic], ['easeOutElastic', easeOutElastic], ['easeInOutElastic', easeInOutElastic], ['easeInBounce', easeInBounce], ['easeOutBounce', easeOutBounce], ['easeInOutBounce', easeInOutBounce]]);
exports["default"] = _default;
});
unwrapExports(curves);
var curves_1 = curves.easeInOutBounce;
var curves_2 = curves.easeOutBounce;
var curves_3 = curves.easeInBounce;
var curves_4 = curves.easeInOutElastic;
var curves_5 = curves.easeOutElastic;
var curves_6 = curves.easeInElastic;
var curves_7 = curves.easeInOutBack;
var curves_8 = curves.easeOutBack;
var curves_9 = curves.easeInBack;
var curves_10 = curves.easeInOutQuint;
var curves_11 = curves.easeOutQuint;
var curves_12 = curves.easeInQuint;
var curves_13 = curves.easeInOutQuart;
var curves_14 = curves.easeOutQuart;
var curves_15 = curves.easeInQuart;
var curves_16 = curves.easeInOutCubic;
var curves_17 = curves.easeOutCubic;
var curves_18 = curves.easeInCubic;
var curves_19 = curves.easeInOutQuad;
var curves_20 = curves.easeOutQuad;
var curves_21 = curves.easeInQuad;
var curves_22 = curves.easeInOutSine;
var curves_23 = curves.easeOutSine;
var curves_24 = curves.easeInSine;
var curves_25 = curves.linear;
var lib$2 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.transition = transition;
exports.injectNewCurve = injectNewCurve;
exports["default"] = void 0;
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _typeof2 = interopRequireDefault(_typeof_1);
var _curves = interopRequireDefault(curves);
var defaultTransitionBC = 'linear';
/**
* @description Get the N-frame animation state by the start and end state
* of the animation and the easing curve
* @param {String|Array} tBC Easing curve name or data
* @param {Number|Array|Object} startState Animation start state
* @param {Number|Array|Object} endState Animation end state
* @param {Number} frameNum Number of Animation frames
* @param {Boolean} deep Whether to use recursive mode
* @return {Array|Boolean} State of each frame of the animation (Invalid input will return false)
*/
function transition(tBC) {
var startState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
var endState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;
var frameNum = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 30;
var deep = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
if (!checkParams.apply(void 0, arguments)) return false;
try {
// Get the transition bezier curve
var bezierCurve = getBezierCurve(tBC); // Get the progress of each frame state
var frameStateProgress = getFrameStateProgress(bezierCurve, frameNum); // If the recursion mode is not enabled or the state type is Number, the shallow state calculation is performed directly.
if (!deep || typeof endState === 'number') return getTransitionState(startState, endState, frameStateProgress);
return recursionTransitionState(startState, endState, frameStateProgress);
} catch (_unused) {
console.warn('Transition parameter may be abnormal!');
return [endState];
}
}
/**
* @description Check if the parameters are legal
* @param {String} tBC Name of transition bezier curve
* @param {Any} startState Transition start state
* @param {Any} endState Transition end state
* @param {Number} frameNum Number of transition frames
* @return {Boolean} Is the parameter legal
*/
function checkParams(tBC) {
var startState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var endState = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var frameNum = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 30;
if (!tBC || startState === false || endState === false || !frameNum) {
console.error('transition: Missing Parameters!');
return false;
}
if ((0, _typeof2["default"])(startState) !== (0, _typeof2["default"])(endState)) {
console.error('transition: Inconsistent Status Types!');
return false;
}
var stateType = (0, _typeof2["default"])(endState);
if (stateType === 'string' || stateType === 'boolean' || !tBC.length) {
console.error('transition: Unsupported Data Type of State!');
return false;
}
if (!_curves["default"].has(tBC) && !(tBC instanceof Array)) {
console.warn('transition: Transition curve not found, default curve will be used!');
}
return true;
}
/**
* @description Get the transition bezier curve
* @param {String} tBC Name of transition bezier curve
* @return {Array} Bezier curve data
*/
function getBezierCurve(tBC) {
var bezierCurve = '';
if (_curves["default"].has(tBC)) {
bezierCurve = _curves["default"].get(tBC);
} else if (tBC instanceof Array) {
bezierCurve = tBC;
} else {
bezierCurve = _curves["default"].get(defaultTransitionBC);
}
return bezierCurve;
}
/**
* @description Get the progress of each frame state
* @param {Array} bezierCurve Transition bezier curve
* @param {Number} frameNum Number of transition frames
* @return {Array} Progress of each frame state
*/
function getFrameStateProgress(bezierCurve, frameNum) {
var tMinus = 1 / (frameNum - 1);
var tState = new Array(frameNum).fill(0).map(function (t, i) {
return i * tMinus;
});
var frameState = tState.map(function (t) {
return getFrameStateFromT(bezierCurve, t);
});
return frameState;
}
/**
* @description Get the progress of the corresponding frame according to t
* @param {Array} bezierCurve Transition bezier curve
* @param {Number} t Current frame t
* @return {Number} Progress of current frame
*/
function getFrameStateFromT(bezierCurve, t) {
var tBezierCurvePoint = getBezierCurvePointFromT(bezierCurve, t);
var bezierCurvePointT = getBezierCurvePointTFromReT(tBezierCurvePoint, t);
return getBezierCurveTState(tBezierCurvePoint, bezierCurvePointT);
}
/**
* @description Get the corresponding sub-curve according to t
* @param {Array} bezierCurve Transition bezier curve
* @param {Number} t Current frame t
* @return {Array} Sub-curve of t
*/
function getBezierCurvePointFromT(bezierCurve, t) {
var lastIndex = bezierCurve.length - 1;
var begin = '',
end = '';
bezierCurve.findIndex(function (item, i) {
if (i === lastIndex) return;
begin = item;
end = bezierCurve[i + 1];
var currentMainPointX = begin[0][0];
var nextMainPointX = end[0][0];
return t >= currentMainPointX && t < nextMainPointX;
});
var p0 = begin[0];
var p1 = begin[2] || begin[0];
var p2 = end[1] || end[0];
var p3 = end[0];
return [p0, p1, p2, p3];
}
/**
* @description Get local t based on t and sub-curve
* @param {Array} bezierCurve Sub-curve
* @param {Number} t Current frame t
* @return {Number} local t of sub-curve
*/
function getBezierCurvePointTFromReT(bezierCurve, t) {
var reBeginX = bezierCurve[0][0];
var reEndX = bezierCurve[3][0];
var xMinus = reEndX - reBeginX;
var tMinus = t - reBeginX;
return tMinus / xMinus;
}
/**
* @description Get the curve progress of t
* @param {Array} bezierCurve Sub-curve
* @param {Number} t Current frame t
* @return {Number} Progress of current frame
*/
function getBezierCurveTState(_ref, t) {
var _ref2 = (0, _slicedToArray2["default"])(_ref, 4),
_ref2$ = (0, _slicedToArray2["default"])(_ref2[0], 2),
p0 = _ref2$[1],
_ref2$2 = (0, _slicedToArray2["default"])(_ref2[1], 2),
p1 = _ref2$2[1],
_ref2$3 = (0, _slicedToArray2["default"])(_ref2[2], 2),
p2 = _ref2$3[1],
_ref2$4 = (0, _slicedToArray2["default"])(_ref2[3], 2),
p3 = _ref2$4[1];
var pow = Math.pow;
var tMinus = 1 - t;
var result1 = p0 * pow(tMinus, 3);
var result2 = 3 * p1 * t * pow(tMinus, 2);
var result3 = 3 * p2 * pow(t, 2) * tMinus;
var result4 = p3 * pow(t, 3);
return 1 - (result1 + result2 + result3 + result4);
}
/**
* @description Get transition state according to frame progress
* @param {Any} startState Transition start state
* @param {Any} endState Transition end state
* @param {Array} frameState Frame state progress
* @return {Array} Transition frame state
*/
function getTransitionState(begin, end, frameState) {
var stateType = 'object';
if (typeof begin === 'number') stateType = 'number';
if (begin instanceof Array) stateType = 'array';
if (stateType === 'number') return getNumberTransitionState(begin, end, frameState);
if (stateType === 'array') return getArrayTransitionState(begin, end, frameState);
if (stateType === 'object') return getObjectTransitionState(begin, end, frameState);
return frameState.map(function (t) {
return end;
});
}
/**
* @description Get the transition data of the number type
* @param {Number} startState Transition start state
* @param {Number} endState Transition end state
* @param {Array} frameState Frame state progress
* @return {Array} Transition frame state
*/
function getNumberTransitionState(begin, end, frameState) {
var minus = end - begin;
return frameState.map(function (s) {
return begin + minus * s;
});
}
/**
* @description Get the transition data of the array type
* @param {Array} startState Transition start state
* @param {Array} endState Transition end state
* @param {Array} frameState Frame state progress
* @return {Array} Transition frame state
*/
function getArrayTransitionState(begin, end, frameState) {
var minus = end.map(function (v, i) {
if (typeof v !== 'number') return false;
return v - begin[i];
});
return frameState.map(function (s) {
return minus.map(function (v, i) {
if (v === false) return end[i];
return begin[i] + v * s;
});
});
}
/**
* @description Get the transition data of the object type
* @param {Object} startState Transition start state
* @param {Object} endState Transition end state
* @param {Array} frameState Frame state progress
* @return {Array} Transition frame state
*/
function getObjectTransitionState(begin, end, frameState) {
var keys = Object.keys(end);
var beginValue = keys.map(function (k) {
return begin[k];
});
var endValue = keys.map(function (k) {
return end[k];
});
var arrayState = getArrayTransitionState(beginValue, endValue, frameState);
return arrayState.map(function (item) {
var frameData = {};
item.forEach(function (v, i) {
return frameData[keys[i]] = v;
});
return frameData;
});
}
/**
* @description Get the transition state data by recursion
* @param {Array|Object} startState Transition start state
* @param {Array|Object} endState Transition end state
* @param {Array} frameState Frame state progress
* @return {Array} Transition frame state
*/
function recursionTransitionState(begin, end, frameState) {
var state = getTransitionState(begin, end, frameState);
var _loop = function _loop(key) {
var bTemp = begin[key];
var eTemp = end[key];
if ((0, _typeof2["default"])(eTemp) !== 'object') return "continue";
var data = recursionTransitionState(bTemp, eTemp, frameState);
state.forEach(function (fs, i) {
return fs[key] = data[i];
});
};
for (var key in end) {
var _ret = _loop(key);
if (_ret === "continue") continue;
}
return state;
}
/**
* @description Inject new curve into curves as config
* @param {Any} key The key of curve
* @param {Array} curve Bezier curve data
* @return {Undefined} No return
*/
function injectNewCurve(key, curve) {
if (!key || !curve) {
console.error('InjectNewCurve Missing Parameters!');
return;
}
_curves["default"].set(key, curve);
}
var _default = transition;
exports["default"] = _default;
});
unwrapExports(lib$2);
var lib_1$1 = lib$2.transition;
var lib_2$1 = lib$2.injectNewCurve;
var graph_class = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _regenerator = interopRequireDefault(regenerator);
var _asyncToGenerator2 = interopRequireDefault(asyncToGenerator);
var _typeof2 = interopRequireDefault(_typeof_1);
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
var _classCallCheck2 = interopRequireDefault(classCallCheck);
var _style = interopRequireDefault(style_class);
var _transition = interopRequireDefault(lib$2);
/**
* @description Class Graph
* @param {Object} graph Graph default configuration
* @param {Object} config Graph config
* @return {Graph} Instance of Graph
*/
var Graph = function Graph(graph, config) {
(0, _classCallCheck2["default"])(this, Graph);
config = (0, util.deepClone)(config, true);
var defaultConfig = {
/**
* @description Weather to render graph
* @type {Boolean}
* @default visible = true
*/
visible: true,
/**
* @description Whether to enable drag
* @type {Boolean}
* @default drag = false
*/
drag: false,
/**
* @description Whether to enable hover
* @type {Boolean}
* @default hover = false
*/
hover: false,
/**
* @description Graph rendering index
* Give priority to index high graph in rendering
* @type {Number}
* @example index = 1
*/
index: 1,
/**
* @description Animation delay time(ms)
* @type {Number}
* @default animationDelay = 0
*/
animationDelay: 0,
/**
* @description Number of animation frames
* @type {Number}
* @default animationFrame = 30
*/
animationFrame: 30,
/**
* @description Animation dynamic curve (Supported by transition)
* @type {String}
* @default animationCurve = 'linear'
* @link https://github.com/jiaming743/Transition
*/
animationCurve: 'linear',
/**
* @description Weather to pause graph animation
* @type {Boolean}
* @default animationPause = false
*/
animationPause: false,
/**
* @description Rectangular hover detection zone
* Use this method for hover detection first
* @type {Null|Array}
* @default hoverRect = null
* @example hoverRect = [0, 0, 100, 100] // [Rect start x, y, Rect width, height]
*/
hoverRect: null,
/**
* @description Mouse enter event handler
* @type {Function|Null}
* @default mouseEnter = null
*/
mouseEnter: null,
/**
* @description Mouse outer event handler
* @type {Function|Null}
* @default mouseOuter = null
*/
mouseOuter: null,
/**
* @description Mouse click event handler
* @type {Function|Null}
* @default click = null
*/
click: null
};
var configAbleNot = {
status: 'static',
animationRoot: [],
animationKeys: [],
animationFrameState: [],
cache: {}
};
if (!config.shape) config.shape = {};
if (!config.style) config.style = {};
var shape = Object.assign({}, graph.shape, config.shape);
Object.assign(defaultConfig, config, configAbleNot);
Object.assign(this, graph, defaultConfig);
this.shape = shape;
this.style = new _style["default"](config.style);
this.addedProcessor();
};
/**
* @description Processor of added
* @return {Undefined} Void
*/
exports["default"] = Graph;
Graph.prototype.addedProcessor = function () {
if (typeof this.setGraphCenter === 'function') this.setGraphCenter(null, this); // The life cycle 'added"
if (typeof this.added === 'function') this.added(this);
};
/**
* @description Processor of draw
* @param {CRender} render Instance of CRender
* @param {Graph} graph Instance of Graph
* @return {Undefined} Void
*/
Graph.prototype.drawProcessor = function (render, graph) {
var ctx = render.ctx;
graph.style.initStyle(ctx);
if (typeof this.beforeDraw === 'function') this.beforeDraw(this, render);
graph.draw(render, graph);
if (typeof this.drawed === 'function') this.drawed(this, render);
graph.style.restoreTransform(ctx);
};
/**
* @description Processor of hover check
* @param {Array} position Mouse Position
* @param {Graph} graph Instance of Graph
* @return {Boolean} Result of hover check
*/
Graph.prototype.hoverCheckProcessor = function (position, _ref) {
var hoverRect = _ref.hoverRect,
style = _ref.style,
hoverCheck = _ref.hoverCheck;
var graphCenter = style.graphCenter,
rotate = style.rotate,
scale = style.scale,
translate = style.translate;
if (graphCenter) {
if (rotate) position = (0, util.getRotatePointPos)(-rotate, position, graphCenter);
if (scale) position = (0, util.getScalePointPos)(scale.map(function (s) {
return 1 / s;
}), position, graphCenter);
if (translate) position = (0, util.getTranslatePointPos)(translate.map(function (v) {
return v * -1;
}), position);
}
if (hoverRect) return util.checkPointIsInRect.apply(void 0, [position].concat((0, _toConsumableArray2["default"])(hoverRect)));
return hoverCheck(position, this);
};
/**
* @description Processor of move
* @param {Event} e Mouse movement event
* @return {Undefined} Void
*/
Graph.prototype.moveProcessor = function (e) {
this.move(e, this);
if (typeof this.beforeMove === 'function') this.beforeMove(e, this);
if (typeof this.setGraphCenter === 'function') this.setGraphCenter(e, this);
if (typeof this.moved === 'function') this.moved(e, this);
};
/**
* @description Update graph state
* @param {String} attrName Updated attribute name
* @param {Any} change Updated value
* @return {Undefined} Void
*/
Graph.prototype.attr = function (attrName) {
var change = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
if (!attrName || change === undefined) return false;
var isObject = (0, _typeof2["default"])(this[attrName]) === 'object';
if (isObject) change = (0, util.deepClone)(change, true);
var render = this.render;
if (attrName === 'style') {
this.style.update(change);
} else if (isObject) {
Object.assign(this[attrName], change);
} else {
this[attrName] = change;
}
if (attrName === 'index') render.sortGraphsByIndex();
render.drawAllGraph();
};
/**
* @description Update graphics state (with animation)
* Only shape and style attributes are supported
* @param {String} attrName Updated attribute name
* @param {Any} change Updated value
* @param {Boolean} wait Whether to store the animation waiting
* for the next animation request
* @return {Promise} Animation Promise
*/
Graph.prototype.animation =
/*#__PURE__*/
function () {
var _ref2 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regenerator["default"].mark(function _callee2(attrName, change) {
var wait,
changeRoot,
changeKeys,
beforeState,
animationFrame,
animationCurve,
animationDelay,
animationFrameState,
render,
_args2 = arguments;
return _regenerator["default"].wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
wait = _args2.length > 2 && _args2[2] !== undefined ? _args2[2] : false;
if (!(attrName !== 'shape' && attrName !== 'style')) {
_context2.next = 4;
break;
}
console.error('Only supported shape and style animation!');
return _context2.abrupt("return");
case 4:
change = (0, util.deepClone)(change, true);
if (attrName === 'style') this.style.colorProcessor(change);
changeRoot = this[attrName];
changeKeys = Object.keys(change);
beforeState = {};
changeKeys.forEach(function (key) {
return beforeState[key] = changeRoot[key];
});
animationFrame = this.animationFrame, animationCurve = this.animationCurve, animationDelay = this.animationDelay;
animationFrameState = (0, _transition["default"])(animationCurve, beforeState, change, animationFrame, true);
this.animationRoot.push(changeRoot);
this.animationKeys.push(changeKeys);
this.animationFrameState.push(animationFrameState);
if (!wait) {
_context2.next = 17;
break;
}
return _context2.abrupt("return");
case 17:
if (!(animationDelay > 0)) {
_context2.next = 20;
break;
}
_context2.next = 20;
return delay(animationDelay);
case 20:
render = this.render;
return _context2.abrupt("return", new Promise(
/*#__PURE__*/
function () {
var _ref3 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regenerator["default"].mark(function _callee(resolve) {
return _regenerator["default"].wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
_context.next = 2;
return render.launchAnimation();
case 2:
resolve();
case 3:
case "end":
return _context.stop();
}
}
}, _callee);
}));
return function (_x3) {
return _ref3.apply(this, arguments);
};
}()));
case 22:
case "end":
return _context2.stop();
}
}
}, _callee2, this);
}));
return function (_x, _x2) {
return _ref2.apply(this, arguments);
};
}();
/**
* @description Extract the next frame of data from the animation queue
* and update the graph state
* @return {Undefined} Void
*/
Graph.prototype.turnNextAnimationFrame = function (timeStamp) {
var animationDelay = this.animationDelay,
animationRoot = this.animationRoot,
animationKeys = this.animationKeys,
animationFrameState = this.animationFrameState,
animationPause = this.animationPause;
if (animationPause) return;
if (Date.now() - timeStamp < animationDelay) return;
animationRoot.forEach(function (root, i) {
animationKeys[i].forEach(function (key) {
root[key] = animationFrameState[i][0][key];
});
});
animationFrameState.forEach(function (stateItem, i) {
stateItem.shift();
var noFrame = stateItem.length === 0;
if (noFrame) animationRoot[i] = null;
if (noFrame) animationKeys[i] = null;
});
this.animationFrameState = animationFrameState.filter(function (state) {
return state.length;
});
this.animationRoot = animationRoot.filter(function (root) {
return root;
});
this.animationKeys = animationKeys.filter(function (keys) {
return keys;
});
};
/**
* @description Skip to the last frame of animation
* @return {Undefined} Void
*/
Graph.prototype.animationEnd = function () {
var animationFrameState = this.animationFrameState,
animationKeys = this.animationKeys,
animationRoot = this.animationRoot,
render = this.render;
animationRoot.forEach(function (root, i) {
var currentKeys = animationKeys[i];
var lastState = animationFrameState[i].pop();
currentKeys.forEach(function (key) {
return root[key] = lastState[key];
});
});
this.animationFrameState = [];
this.animationKeys = [];
this.animationRoot = [];
return render.drawAllGraph();
};
/**
* @description Pause animation behavior
* @return {Undefined} Void
*/
Graph.prototype.pauseAnimation = function () {
this.attr('animationPause', true);
};
/**
* @description Try animation behavior
* @return {Undefined} Void
*/
Graph.prototype.playAnimation = function () {
var render = this.render;
this.attr('animationPause', false);
return new Promise(
/*#__PURE__*/
function () {
var _ref4 = (0, _asyncToGenerator2["default"])(
/*#__PURE__*/
_regenerator["default"].mark(function _callee3(resolve) {
return _regenerator["default"].wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
_context3.next = 2;
return render.launchAnimation();
case 2:
resolve();
case 3:
case "end":
return _context3.stop();
}
}
}, _callee3);
}));
return function (_x4) {
return _ref4.apply(this, arguments);
};
}());
};
/**
* @description Processor of delete
* @param {CRender} render Instance of CRender
* @return {Undefined} Void
*/
Graph.prototype.delProcessor = function (render) {
var _this = this;
var graphs = render.graphs;
var index = graphs.findIndex(function (graph) {
return graph === _this;
});
if (index === -1) return;
if (typeof this.beforeDelete === 'function') this.beforeDelete(this);
graphs.splice(index, 1, null);
if (typeof this.deleted === 'function') this.deleted(this);
};
/**
* @description Return a timed release Promise
* @param {Number} time Release time
* @return {Promise} A timed release Promise
*/
function delay(time) {
return new Promise(function (resolve) {
setTimeout(resolve, time);
});
}
});
unwrapExports(graph_class);
var crender_class = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _defineProperty2 = interopRequireDefault(defineProperty);
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
var _classCallCheck2 = interopRequireDefault(classCallCheck);
var _color = interopRequireDefault(lib);
var _bezierCurve = interopRequireDefault(lib$1);
var _graphs = interopRequireDefault(graphs_1);
var _graph = interopRequireDefault(graph_class);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
/**
* @description Class of CRender
* @param {Object} canvas Canvas DOM
* @return {CRender} Instance of CRender
*/
var CRender = function CRender(canvas) {
(0, _classCallCheck2["default"])(this, CRender);
if (!canvas) {
console.error('CRender Missing parameters!');
return;
}
var ctx = canvas.getContext('2d');
var clientWidth = canvas.clientWidth,
clientHeight = canvas.clientHeight;
var area = [clientWidth, clientHeight];
canvas.setAttribute('width', clientWidth);
canvas.setAttribute('height', clientHeight);
/**
* @description Context of the canvas
* @type {Object}
* @example ctx = canvas.getContext('2d')
*/
this.ctx = ctx;
/**
* @description Width and height of the canvas
* @type {Array}
* @example area = [300100]
*/
this.area = area;
/**
* @description Whether render is in animation rendering
* @type {Boolean}
* @example animationStatus = true|false
*/
this.animationStatus = false;
/**
* @description Added graph
* @type {[Graph]}
* @example graphs = [Graph, Graph, ...]
*/
this.graphs = [];
/**
* @description Color plugin
* @type {Object}
* @link https://github.com/jiaming743/color
*/
this.color = _color["default"];
/**
* @description Bezier Curve plugin
* @type {Object}
* @link https://github.com/jiaming743/BezierCurve
*/
this.bezierCurve = _bezierCurve["default"]; // bind event handler
canvas.addEventListener('mousedown', mouseDown.bind(this));
canvas.addEventListener('mousemove', mouseMove.bind(this));
canvas.addEventListener('mouseup', mouseUp.bind(this));
};
/**
* @description Clear canvas drawing area
* @return {Undefined} Void
*/
exports["default"] = CRender;
CRender.prototype.clearArea = function () {
var _this$ctx;
var area = this.area;
(_this$ctx = this.ctx).clearRect.apply(_this$ctx, [0, 0].concat((0, _toConsumableArray2["default"])(area)));
};
/**
* @description Add graph to render
* @param {Object} config Graph configuration
* @return {Graph} Graph instance
*/
CRender.prototype.add = function () {
var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
var name = config.name;
if (!name) {
console.error('add Missing parameters!');
return;
}
var graphConfig = _graphs["default"].get(name);
if (!graphConfig) {
console.warn('No corresponding graph configuration found!');
return;
}
var graph = new _graph["default"](graphConfig, config);
if (!graph.validator(graph)) return;
graph.render = this;
this.graphs.push(graph);
this.sortGraphsByIndex();
this.drawAllGraph();
return graph;
};
/**
* @description Sort the graph by index
* @return {Undefined} Void
*/
CRender.prototype.sortGraphsByIndex = function () {
var graphs = this.graphs;
graphs.sort(function (a, b) {
if (a.index > b.index) return 1;
if (a.index === b.index) return 0;
if (a.index < b.index) return -1;
});
};
/**
* @description Delete graph in render
* @param {Graph} graph The graph to be deleted
* @return {Undefined} Void
*/
CRender.prototype.delGraph = function (graph) {
if (typeof graph.delProcessor !== 'function') return;
graph.delProcessor(this);
this.graphs = this.graphs.filter(function (graph) {
return graph;
});
this.drawAllGraph();
};
/**
* @description Delete all graph in render
* @return {Undefined} Void
*/
CRender.prototype.delAllGraph = function () {
var _this = this;
this.graphs.forEach(function (graph) {
return graph.delProcessor(_this);
});
this.graphs = this.graphs.filter(function (graph) {
return graph;
});
this.drawAllGraph();
};
/**
* @description Draw all the graphs in the render
* @return {Undefined} Void
*/
CRender.prototype.drawAllGraph = function () {
var _this2 = this;
this.clearArea();
this.graphs.filter(function (graph) {
return graph && graph.visible;
}).forEach(function (graph) {
return graph.drawProcessor(_this2, graph);
});
};
/**
* @description Animate the graph whose animation queue is not empty
* and the animationPause is equal to false
* @return {Promise} Animation Promise
*/
CRender.prototype.launchAnimation = function () {
var _this3 = this;
var animationStatus = this.animationStatus;
if (animationStatus) return;
this.animationStatus = true;
return new Promise(function (resolve) {
animation.call(_this3, function () {
_this3.animationStatus = false;
resolve();
}, Date.now());
});
};
/**
* @description Try to animate every graph
* @param {Function} callback Callback in animation end
* @param {Number} timeStamp Time stamp of animation start
* @return {Undefined} Void
*/
function animation(callback, timeStamp) {
var graphs = this.graphs;
if (!animationAble(graphs)) {
callback();
return;
}
graphs.forEach(function (graph) {
return graph.turnNextAnimationFrame(timeStamp);
});
this.drawAllGraph();
requestAnimationFrame(animation.bind(this, callback, timeStamp));
}
/**
* @description Find if there are graph that can be animated
* @param {[Graph]} graphs
* @return {Boolean}
*/
function animationAble(graphs) {
return graphs.find(function (graph) {
return !graph.animationPause && graph.animationFrameState.length;
});
}
/**
* @description Handler of CRender mousedown event
* @return {Undefined} Void
*/
function mouseDown(e) {
var graphs = this.graphs;
var hoverGraph = graphs.find(function (graph) {
return graph.status === 'hover';
});
if (!hoverGraph) return;
hoverGraph.status = 'active';
}
/**
* @description Handler of CRender mousemove event
* @return {Undefined} Void
*/
function mouseMove(e) {
var offsetX = e.offsetX,
offsetY = e.offsetY;
var position = [offsetX, offsetY];
var graphs = this.graphs;
var activeGraph = graphs.find(function (graph) {
return graph.status === 'active' || graph.status === 'drag';
});
if (activeGraph) {
if (!activeGraph.drag) return;
if (typeof activeGraph.move !== 'function') {
console.error('No move method is provided, cannot be dragged!');
return;
}
activeGraph.moveProcessor(e);
activeGraph.status = 'drag';
return;
}
var hoverGraph = graphs.find(function (graph) {
return graph.status === 'hover';
});
var hoverAbleGraphs = graphs.filter(function (graph) {
return graph.hover && (typeof graph.hoverCheck === 'function' || graph.hoverRect);
});
var hoveredGraph = hoverAbleGraphs.find(function (graph) {
return graph.hoverCheckProcessor(position, graph);
});
if (hoveredGraph) {
document.body.style.cursor = hoveredGraph.style.hoverCursor;
} else {
document.body.style.cursor = 'default';
}
var hoverGraphMouseOuterIsFun = false,
hoveredGraphMouseEnterIsFun = false;
if (hoverGraph) hoverGraphMouseOuterIsFun = typeof hoverGraph.mouseOuter === 'function';
if (hoveredGraph) hoveredGraphMouseEnterIsFun = typeof hoveredGraph.mouseEnter === 'function';
if (!hoveredGraph && !hoverGraph) return;
if (!hoveredGraph && hoverGraph) {
if (hoverGraphMouseOuterIsFun) hoverGraph.mouseOuter(e, hoverGraph);
hoverGraph.status = 'static';
return;
}
if (hoveredGraph && hoveredGraph === hoverGraph) return;
if (hoveredGraph && !hoverGraph) {
if (hoveredGraphMouseEnterIsFun) hoveredGraph.mouseEnter(e, hoveredGraph);
hoveredGraph.status = 'hover';
return;
}
if (hoveredGraph && hoverGraph && hoveredGraph !== hoverGraph) {
if (hoverGraphMouseOuterIsFun) hoverGraph.mouseOuter(e, hoverGraph);
hoverGraph.status = 'static';
if (hoveredGraphMouseEnterIsFun) hoveredGraph.mouseEnter(e, hoveredGraph);
hoveredGraph.status = 'hover';
}
}
/**
* @description Handler of CRender mouseup event
* @return {Undefined} Void
*/
function mouseUp(e) {
var graphs = this.graphs;
var activeGraph = graphs.find(function (graph) {
return graph.status === 'active';
});
var dragGraph = graphs.find(function (graph) {
return graph.status === 'drag';
});
if (activeGraph && typeof activeGraph.click === 'function') activeGraph.click(e, activeGraph);
graphs.forEach(function (graph) {
return graph && (graph.status = 'static');
});
if (activeGraph) activeGraph.status = 'hover';
if (dragGraph) dragGraph.status = 'hover';
}
/**
* @description Clone Graph
* @param {Graph} graph The target to be cloned
* @return {Graph} Cloned graph
*/
CRender.prototype.clone = function (graph) {
var style = graph.style.getStyle();
var clonedGraph = _objectSpread({}, graph, {
style: style
});
delete clonedGraph.render;
clonedGraph = (0, util.deepClone)(clonedGraph, true);
return this.add(clonedGraph);
};
});
unwrapExports(crender_class);
var lib$3 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "CRender", {
enumerable: true,
get: function get() {
return _crender["default"];
}
});
Object.defineProperty(exports, "extendNewGraph", {
enumerable: true,
get: function get() {
return graphs_1.extendNewGraph;
}
});
exports["default"] = void 0;
var _crender = interopRequireDefault(crender_class);
var _default = _crender["default"];
exports["default"] = _default;
});
var CRender = unwrapExports(lib$3);
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
var pie = {
shape: {
rx: 0,
ry: 0,
ir: 0,
or: 0,
startAngle: 0,
endAngle: 0,
clockWise: true
},
validator: function validator(_ref) {
var shape = _ref.shape;
var keys = ['rx', 'ry', 'ir', 'or', 'startAngle', 'endAngle'];
if (keys.find(function (key) {
return typeof shape[key] !== 'number';
})) {
console.error('Pie shape configuration is abnormal!');
return false;
}
return true;
},
draw: function draw(_ref2, _ref3) {
var ctx = _ref2.ctx;
var shape = _ref3.shape;
ctx.beginPath();
var rx = shape.rx,
ry = shape.ry,
ir = shape.ir,
or = shape.or,
startAngle = shape.startAngle,
endAngle = shape.endAngle,
clockWise = shape.clockWise;
rx = parseInt(rx) + 0.5;
ry = parseInt(ry) + 0.5;
ctx.arc(rx, ry, ir > 0 ? ir : 0, startAngle, endAngle, !clockWise);
var connectPoint1 = (0, util.getCircleRadianPoint)(rx, ry, or, endAngle).map(function (p) {
return parseInt(p) + 0.5;
});
var connectPoint2 = (0, util.getCircleRadianPoint)(rx, ry, ir, startAngle).map(function (p) {
return parseInt(p) + 0.5;
});
ctx.lineTo.apply(ctx, (0, _toConsumableArray2["default"])(connectPoint1));
ctx.arc(rx, ry, or > 0 ? or : 0, endAngle, startAngle, clockWise);
ctx.lineTo.apply(ctx, (0, _toConsumableArray2["default"])(connectPoint2));
ctx.closePath();
ctx.stroke();
ctx.fill();
}
};
var agArc = {
shape: {
rx: 0,
ry: 0,
r: 0,
startAngle: 0,
endAngle: 0,
gradientStartAngle: null,
gradientEndAngle: null
},
validator: function validator(_ref4) {
var shape = _ref4.shape;
var keys = ['rx', 'ry', 'r', 'startAngle', 'endAngle'];
if (keys.find(function (key) {
return typeof shape[key] !== 'number';
})) {
console.error('AgArc shape configuration is abnormal!');
return false;
}
return true;
},
draw: function draw(_ref5, _ref6) {
var ctx = _ref5.ctx;
var shape = _ref6.shape,
style = _ref6.style;
var gradient = style.gradient;
gradient = gradient.map(function (cv) {
return (0, lib.getColorFromRgbValue)(cv);
});
if (gradient.length === 1) {
gradient = [gradient[0], gradient[0]];
}
var gradientArcNum = gradient.length - 1;
var gradientStartAngle = shape.gradientStartAngle,
gradientEndAngle = shape.gradientEndAngle,
startAngle = shape.startAngle,
endAngle = shape.endAngle,
r = shape.r,
rx = shape.rx,
ry = shape.ry;
if (gradientStartAngle === null) gradientStartAngle = startAngle;
if (gradientEndAngle === null) gradientEndAngle = endAngle;
var angleGap = (gradientEndAngle - gradientStartAngle) / gradientArcNum;
if (angleGap === Math.PI * 2) angleGap = Math.PI * 2 - 0.001;
for (var i = 0; i < gradientArcNum; i++) {
ctx.beginPath();
var startPoint = (0, util.getCircleRadianPoint)(rx, ry, r, startAngle + angleGap * i);
var endPoint = (0, util.getCircleRadianPoint)(rx, ry, r, startAngle + angleGap * (i + 1));
var color = (0, util$1.getLinearGradientColor)(ctx, startPoint, endPoint, [gradient[i], gradient[i + 1]]);
var arcStartAngle = startAngle + angleGap * i;
var arcEndAngle = startAngle + angleGap * (i + 1);
var doBreak = false;
if (arcEndAngle > endAngle) {
arcEndAngle = endAngle;
doBreak = true;
}
ctx.arc(rx, ry, r, arcStartAngle, arcEndAngle);
ctx.strokeStyle = color;
ctx.stroke();
if (doBreak) break;
}
}
};
var numberText = {
shape: {
number: [],
content: '',
position: [0, 0],
toFixed: 0
},
validator: function validator(_ref7) {
var shape = _ref7.shape;
var number = shape.number,
content = shape.content,
position = shape.position;
if (!(number instanceof Array) || typeof content !== 'string' || !(position instanceof Array)) {
console.error('NumberText shape configuration is abnormal!');
return false;
}
return true;
},
draw: function draw(_ref8, _ref9) {
var ctx = _ref8.ctx;
var shape = _ref9.shape;
ctx.beginPath();
var number = shape.number,
content = shape.content,
position = shape.position,
toFixed = shape.toFixed;
var textSegments = content.split('{nt}');
var lastSegmentIndex = textSegments.length - 1;
var textString = '';
textSegments.forEach(function (t, i) {
var currentNumber = number[i];
if (i === lastSegmentIndex) currentNumber = '';
if (typeof currentNumber === 'number') currentNumber = currentNumber.toFixed(toFixed);
textString += t + (currentNumber || '');
});
ctx.closePath();
ctx.strokeText.apply(ctx, [textString].concat((0, _toConsumableArray2["default"])(position)));
ctx.fillText.apply(ctx, [textString].concat((0, _toConsumableArray2["default"])(position)));
}
};
var lineIcon = {
shape: {
x: 0,
y: 0,
w: 0,
h: 0
},
validator: function validator(_ref10) {
var shape = _ref10.shape;
var x = shape.x,
y = shape.y,
w = shape.w,
h = shape.h;
if (typeof x !== 'number' || typeof y !== 'number' || typeof w !== 'number' || typeof h !== 'number') {
console.error('lineIcon shape configuration is abnormal!');
return false;
}
return true;
},
draw: function draw(_ref11, _ref12) {
var ctx = _ref11.ctx;
var shape = _ref12.shape;
ctx.beginPath();
var x = shape.x,
y = shape.y,
w = shape.w,
h = shape.h;
var halfH = h / 2;
ctx.strokeStyle = ctx.fillStyle;
ctx.moveTo(x, y + halfH);
ctx.lineTo(x + w, y + halfH);
ctx.lineWidth = 1;
ctx.stroke();
ctx.beginPath();
var radius = halfH - 5 * 2;
if (radius <= 0) radius = 3;
ctx.arc(x + w / 2, y + halfH, radius, 0, Math.PI * 2);
ctx.lineWidth = 5;
ctx.stroke();
ctx.fillStyle = '#fff';
ctx.fill();
},
hoverCheck: function hoverCheck(position, _ref13) {
var shape = _ref13.shape;
var x = shape.x,
y = shape.y,
w = shape.w,
h = shape.h;
return (0, util.checkPointIsInRect)(position, x, y, w, h);
},
setGraphCenter: function setGraphCenter(e, _ref14) {
var shape = _ref14.shape,
style = _ref14.style;
var x = shape.x,
y = shape.y,
w = shape.w,
h = shape.h;
style.graphCenter = [x + w / 2, y + h / 2];
}
};
(0, lib$3.extendNewGraph)('pie', pie);
(0, lib$3.extendNewGraph)('agArc', agArc);
(0, lib$3.extendNewGraph)('numberText', numberText);
(0, lib$3.extendNewGraph)('lineIcon', lineIcon);
var color = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.colorConfig = void 0;
var colorConfig = ['#37a2da', '#32c5e9', '#67e0e3', '#9fe6b8', '#ffdb5c', '#ff9f7f', '#fb7293', '#e062ae', '#e690d1', '#e7bcf3', '#9d96f5', '#8378ea', '#96bfff'];
exports.colorConfig = colorConfig;
});
unwrapExports(color);
var color_1 = color.colorConfig;
var grid = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.gridConfig = void 0;
var gridConfig = {
/**
* @description Grid left margin
* @type {String|Number}
* @default left = '10%'
* @example left = '10%' | 10
*/
left: '10%',
/**
* @description Grid right margin
* @type {String|Number}
* @default right = '10%'
* @example right = '10%' | 10
*/
right: '10%',
/**
* @description Grid top margin
* @type {String|Number}
* @default top = 60
* @example top = '10%' | 60
*/
top: 60,
/**
* @description Grid bottom margin
* @type {String|Number}
* @default bottom = 60
* @example bottom = '10%' | 60
*/
bottom: 60,
/**
* @description Grid default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fill: 'rgba(0, 0, 0, 0)'
},
/**
* @description Grid render level
* Priority rendering high level
* @type {Number}
* @default rLevel = -30
*/
rLevel: -30,
/**
* @description Grid animation curve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description Grid animation frame
* @type {Number}
* @default animationFrame = 50
*/
animationFrame: 30
};
exports.gridConfig = gridConfig;
});
unwrapExports(grid);
var grid_1 = grid.gridConfig;
var axis = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.yAxisConfig = exports.xAxisConfig = void 0;
var xAxisConfig = {
/**
* @description Axis name
* @type {String}
* @default name = ''
*/
name: '',
/**
* @description Whether to display this axis
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Axis position
* @type {String}
* @default position = 'bottom'
* @example position = 'bottom' | 'top'
*/
position: 'bottom',
/**
* @description Name gap
* @type {Number}
* @default nameGap = 15
*/
nameGap: 15,
/**
* @description Name location
* @type {String}
* @default nameLocation = 'end'
* @example nameLocation = 'end' | 'center' | 'start'
*/
nameLocation: 'end',
/**
* @description Name default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
nameTextStyle: {
fill: '#333',
fontSize: 10
},
/**
* @description Axis min value
* @type {String|Number}
* @default min = '20%'
* @example min = '20%' | 0
*/
min: '20%',
/**
* @description Axis max value
* @type {String|Number}
* @default max = '20%'
* @example max = '20%' | 0
*/
max: '20%',
/**
* @description Axis value interval
* @type {Number}
* @default interval = null
* @example interval = 100
*/
interval: null,
/**
* @description Min interval
* @type {Number}
* @default minInterval = null
* @example minInterval = 1
*/
minInterval: null,
/**
* @description Max interval
* @type {Number}
* @default maxInterval = null
* @example maxInterval = 100
*/
maxInterval: null,
/**
* @description Boundary gap
* @type {Boolean}
* @default boundaryGap = null
* @example boundaryGap = true
*/
boundaryGap: null,
/**
* @description Axis split number
* @type {Number}
* @default splitNumber = 5
*/
splitNumber: 5,
/**
* @description Axis line configuration
* @type {Object}
*/
axisLine: {
/**
* @description Whether to display axis line
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Axis line default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
stroke: '#333',
lineWidth: 1
}
},
/**
* @description Axis tick configuration
* @type {Object}
*/
axisTick: {
/**
* @description Whether to display axis tick
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Axis tick default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
stroke: '#333',
lineWidth: 1
}
},
/**
* @description Axis label configuration
* @type {Object}
*/
axisLabel: {
/**
* @description Whether to display axis label
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Axis label formatter
* @type {String|Function}
* @default formatter = null
* @example formatter = '{value}件'
* @example formatter = (dataItem) => (dataItem.value)
*/
formatter: null,
/**
* @description Axis label default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fill: '#333',
fontSize: 10,
rotate: 0
}
},
/**
* @description Axis split line configuration
* @type {Object}
*/
splitLine: {
/**
* @description Whether to display axis split line
* @type {Boolean}
* @default show = false
*/
show: false,
/**
* @description Axis split line default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
stroke: '#d4d4d4',
lineWidth: 1
}
},
/**
* @description X axis render level
* Priority rendering high level
* @type {Number}
* @default rLevel = -20
*/
rLevel: -20,
/**
* @description X axis animation curve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description X axis animation frame
* @type {Number}
* @default animationFrame = 50
*/
animationFrame: 50
};
exports.xAxisConfig = xAxisConfig;
var yAxisConfig = {
/**
* @description Axis name
* @type {String}
* @default name = ''
*/
name: '',
/**
* @description Whether to display this axis
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Axis position
* @type {String}
* @default position = 'left'
* @example position = 'left' | 'right'
*/
position: 'left',
/**
* @description Name gap
* @type {Number}
* @default nameGap = 15
*/
nameGap: 15,
/**
* @description Name location
* @type {String}
* @default nameLocation = 'end'
* @example nameLocation = 'end' | 'center' | 'start'
*/
nameLocation: 'end',
/**
* @description name default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
nameTextStyle: {
fill: '#333',
fontSize: 10
},
/**
* @description Axis min value
* @type {String|Number}
* @default min = '20%'
* @example min = '20%' | 0
*/
min: '20%',
/**
* @description Axis max value
* @type {String|Number}
* @default max = '20%'
* @example max = '20%' | 0
*/
max: '20%',
/**
* @description Axis value interval
* @type {Number}
* @default interval = null
* @example interval = 100
*/
interval: null,
/**
* @description Min interval
* @type {Number}
* @default minInterval = null
* @example minInterval = 1
*/
minInterval: null,
/**
* @description Max interval
* @type {Number}
* @default maxInterval = null
* @example maxInterval = 100
*/
maxInterval: null,
/**
* @description Boundary gap
* @type {Boolean}
* @default boundaryGap = null
* @example boundaryGap = true
*/
boundaryGap: null,
/**
* @description Axis split number
* @type {Number}
* @default splitNumber = 5
*/
splitNumber: 5,
/**
* @description Axis line configuration
* @type {Object}
*/
axisLine: {
/**
* @description Whether to display axis line
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Axis line default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
stroke: '#333',
lineWidth: 1
}
},
/**
* @description Axis tick configuration
* @type {Object}
*/
axisTick: {
/**
* @description Whether to display axis tick
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Axis tick default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
stroke: '#333',
lineWidth: 1
}
},
/**
* @description Axis label configuration
* @type {Object}
*/
axisLabel: {
/**
* @description Whether to display axis label
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Axis label formatter
* @type {String|Function}
* @default formatter = null
* @example formatter = '{value}件'
* @example formatter = (dataItem) => (dataItem.value)
*/
formatter: null,
/**
* @description Axis label default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fill: '#333',
fontSize: 10,
rotate: 0
}
},
/**
* @description Axis split line configuration
* @type {Object}
*/
splitLine: {
/**
* @description Whether to display axis split line
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Axis split line default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
stroke: '#d4d4d4',
lineWidth: 1
}
},
/**
* @description Y axis render level
* Priority rendering high level
* @type {Number}
* @default rLevel = -20
*/
rLevel: -20,
/**
* @description Y axis animation curve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description Y axis animation frame
* @type {Number}
* @default animationFrame = 50
*/
animationFrame: 50
};
exports.yAxisConfig = yAxisConfig;
});
unwrapExports(axis);
var axis_1 = axis.yAxisConfig;
var axis_2 = axis.xAxisConfig;
var title = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.titleConfig = void 0;
var titleConfig = {
/**
* @description Whether to display title
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Title text
* @type {String}
* @default text = ''
*/
text: '',
/**
* @description Title offset
* @type {Array}
* @default offset = [0, -20]
*/
offset: [0, -20],
/**
* @description Title default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fill: '#333',
fontSize: 17,
fontWeight: 'bold',
textAlign: 'center',
textBaseline: 'bottom'
},
/**
* @description Title render level
* Priority rendering high level
* @type {Number}
* @default rLevel = 20
*/
rLevel: 20,
/**
* @description Title animation curve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description Title animation frame
* @type {Number}
* @default animationFrame = 50
*/
animationFrame: 50
};
exports.titleConfig = titleConfig;
});
unwrapExports(title);
var title_1 = title.titleConfig;
var line = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.lineConfig = void 0;
var lineConfig = {
/**
* @description Whether to display this line chart
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Legend name
* @type {String}
* @default name = ''
*/
name: '',
/**
* @description Data stacking
* The data value of the series element of the same stack
* will be superimposed (the latter value will be superimposed on the previous value)
* @type {String}
* @default stack = ''
*/
stack: '',
/**
* @description Smooth line
* @type {Boolean}
* @default smooth = false
*/
smooth: false,
/**
* @description Line x axis index
* @type {Number}
* @default xAxisIndex = 0
* @example xAxisIndex = 0 | 1
*/
xAxisIndex: 0,
/**
* @description Line y axis index
* @type {Number}
* @default yAxisIndex = 0
* @example yAxisIndex = 0 | 1
*/
yAxisIndex: 0,
/**
* @description Line chart data
* @type {Array}
* @default data = []
* @example data = [100, 200, 300]
*/
data: [],
/**
* @description Line default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
lineStyle: {
lineWidth: 1
},
/**
* @description Line point configuration
* @type {Object}
*/
linePoint: {
/**
* @description Whether to display line point
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Line point radius
* @type {Number}
* @default radius = 2
*/
radius: 2,
/**
* @description Line point default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fill: '#fff',
lineWidth: 1
}
},
/**
* @description Line area configuration
* @type {Object}
*/
lineArea: {
/**
* @description Whether to display line area
* @type {Boolean}
* @default show = false
*/
show: false,
/**
* @description Line area gradient color (Hex|rgb|rgba)
* @type {Array}
* @default gradient = []
*/
gradient: [],
/**
* @description Line area style default configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
opacity: 0.5
}
},
/**
* @description Line label configuration
* @type {Object}
*/
label: {
/**
* @description Whether to display line label
* @type {Boolean}
* @default show = false
*/
show: false,
/**
* @description Line label position
* @type {String}
* @default position = 'top'
* @example position = 'top' | 'center' | 'bottom'
*/
position: 'top',
/**
* @description Line label offset
* @type {Array}
* @default offset = [0, -10]
*/
offset: [0, -10],
/**
* @description Line label formatter
* @type {String|Function}
* @default formatter = null
* @example formatter = '{value}件'
* @example formatter = (dataItem) => (dataItem.value)
*/
formatter: null,
/**
* @description Line label default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fontSize: 10
}
},
/**
* @description Line chart render level
* Priority rendering high level
* @type {Number}
* @default rLevel = 10
*/
rLevel: 10,
/**
* @description Line animation curve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description Line animation frame
* @type {Number}
* @default animationFrame = 50
*/
animationFrame: 50
};
exports.lineConfig = lineConfig;
});
unwrapExports(line);
var line_1 = line.lineConfig;
var bar = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.barConfig = void 0;
var barConfig = {
/**
* @description Whether to display this bar chart
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Legend name
* @type {String}
* @default name = ''
*/
name: '',
/**
* @description Data stacking
* The data value of the series element of the same stack
* will be superimposed (the latter value will be superimposed on the previous value)
* @type {String}
* @default stack = ''
*/
stack: '',
/**
* @description Bar shape type
* @type {String}
* @default shapeType = 'normal'
* @example shapeType = 'normal' | 'leftEchelon' | 'rightEchelon'
*/
shapeType: 'normal',
/**
* @description Echelon bar sharpness offset
* @type {Number}
* @default echelonOffset = 10
*/
echelonOffset: 10,
/**
* @description Bar width
* This property should be set on the last 'bar' series
* in this coordinate system to take effect and will be in effect
* for all 'bar' series in this coordinate system
* @type {String|Number}
* @default barWidth = 'auto'
* @example barWidth = 'auto' | '10%' | 20
*/
barWidth: 'auto',
/**
* @description Bar gap
* This property should be set on the last 'bar' series
* in this coordinate system to take effect and will be in effect
* for all 'bar' series in this coordinate system
* @type {String|Number}
* @default barGap = '30%'
* @example barGap = '30%' | 30
*/
barGap: '30%',
/**
* @description Bar category gap
* This property should be set on the last 'bar' series
* in this coordinate system to take effect and will be in effect
* for all 'bar' series in this coordinate system
* @type {String|Number}
* @default barCategoryGap = '20%'
* @example barCategoryGap = '20%' | 20
*/
barCategoryGap: '20%',
/**
* @description Bar x axis index
* @type {Number}
* @default xAxisIndex = 0
* @example xAxisIndex = 0 | 1
*/
xAxisIndex: 0,
/**
* @description Bar y axis index
* @type {Number}
* @default yAxisIndex = 0
* @example yAxisIndex = 0 | 1
*/
yAxisIndex: 0,
/**
* @description Bar chart data
* @type {Array}
* @default data = []
* @example data = [100, 200, 300]
*/
data: [],
/**
* @description Background bar configuration
* @type {Object}
*/
backgroundBar: {
/**
* @description Whether to display background bar
* @type {Boolean}
* @default show = false
*/
show: false,
/**
* @description Background bar width
* @type {String|Number}
* @default width = 'auto'
* @example width = 'auto' | '30%' | 30
*/
width: 'auto',
/**
* @description Background bar default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fill: 'rgba(200, 200, 200, .4)'
}
},
/**
* @description Bar label configuration
* @type {Object}
*/
label: {
/**
* @description Whether to display bar label
* @type {Boolean}
* @default show = false
*/
show: false,
/**
* @description Bar label position
* @type {String}
* @default position = 'top'
* @example position = 'top' | 'center' | 'bottom'
*/
position: 'top',
/**
* @description Bar label offset
* @type {Array}
* @default offset = [0, -10]
*/
offset: [0, -10],
/**
* @description Bar label formatter
* @type {String|Function}
* @default formatter = null
* @example formatter = '{value}件'
* @example formatter = (dataItem) => (dataItem.value)
*/
formatter: null,
/**
* @description Bar label default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fontSize: 10
}
},
/**
* @description Bar gradient configuration
* @type {Object}
*/
gradient: {
/**
* @description Gradient color (Hex|rgb|rgba)
* @type {Array}
* @default color = []
*/
color: [],
/**
* @description Local gradient
* @type {Boolean}
* @default local = true
*/
local: true
},
/**
* @description Bar style default configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
barStyle: {},
/**
* @description Bar chart render level
* Priority rendering high level
* @type {Number}
* @default rLevel = 0
*/
rLevel: 0,
/**
* @description Bar animation curve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description Bar animation frame
* @type {Number}
* @default animationFrame = 50
*/
animationFrame: 50
};
exports.barConfig = barConfig;
});
unwrapExports(bar);
var bar_1 = bar.barConfig;
var pie$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.pieConfig = void 0;
var pieConfig = {
/**
* @description Whether to display this pie chart
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Legend name
* @type {String}
* @default name = ''
*/
name: '',
/**
* @description Radius of pie
* @type {String|Number}
* @default radius = '50%'
* @example radius = '50%' | 100
*/
radius: '50%',
/**
* @description Center point of pie
* @type {Array}
* @default center = ['50%','50%']
* @example center = ['50%','50%'] | [100, 100]
*/
center: ['50%', '50%'],
/**
* @description Pie chart start angle
* @type {Number}
* @default startAngle = -Math.PI / 2
* @example startAngle = -Math.PI
*/
startAngle: -Math.PI / 2,
/**
* @description Whether to enable rose type
* @type {Boolean}
* @default roseType = false
*/
roseType: false,
/**
* @description Automatic sorting in rose type
* @type {Boolean}
* @default roseSort = true
*/
roseSort: true,
/**
* @description Rose radius increasing
* @type {String|Number}
* @default roseIncrement = 'auto'
* @example roseIncrement = 'auto' | '10%' | 10
*/
roseIncrement: 'auto',
/**
* @description Pie chart data
* @type {Array}
* @default data = []
*/
data: [],
/**
* @description Pie inside label configuration
* @type {Object}
*/
insideLabel: {
/**
* @description Whether to display inside label
* @type {Boolean}
* @default show = false
*/
show: false,
/**
* @description Label formatter
* @type {String|Function}
* @default formatter = '{percent}%'
* @example formatter = '${name}-{value}-{percent}%'
* @example formatter = (dataItem) => (dataItem.name)
*/
formatter: '{percent}%',
/**
* @description Label default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fontSize: 10,
fill: '#fff',
textAlign: 'center',
textBaseline: 'middle'
}
},
/**
* @description Pie Outside label configuration
* @type {Object}
*/
outsideLabel: {
/**
* @description Whether to display outside label
* @type {Boolean}
* @default show = false
*/
show: true,
/**
* @description Label formatter
* @type {String|Function}
* @default formatter = '{name}'
* @example formatter = '${name}-{value}-{percent}%'
* @example formatter = (dataItem) => (dataItem.name)
*/
formatter: '{name}',
/**
* @description Label default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fontSize: 11
},
/**
* @description Gap beteen label line bended place and pie
* @type {String|Number}
* @default labelLineBendGap = '20%'
* @example labelLineBendGap = '20%' | 20
*/
labelLineBendGap: '20%',
/**
* @description Label line end length
* @type {Number}
* @default labelLineEndLength = 50
*/
labelLineEndLength: 50,
/**
* @description Label line default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
labelLineStyle: {
lineWidth: 1
}
},
/**
* @description Pie default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
pieStyle: {},
/**
* @description Percentage fractional precision
* @type {Number}
* @default percentToFixed = 0
*/
percentToFixed: 0,
/**
* @description Pie chart render level
* Priority rendering high level
* @type {Number}
* @default rLevel = 10
*/
rLevel: 10,
/**
* @description Animation delay gap
* @type {Number}
* @default animationDelayGap = 60
*/
animationDelayGap: 60,
/**
* @description Pie animation curve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description Pie start animation curve
* @type {String}
* @default startAnimationCurve = 'easeOutBack'
*/
startAnimationCurve: 'easeOutBack',
/**
* @description Pie animation frame
* @type {Number}
* @default animationFrame = 50
*/
animationFrame: 50
};
exports.pieConfig = pieConfig;
});
unwrapExports(pie$1);
var pie_1 = pie$1.pieConfig;
var radarAxis = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.radarAxisConfig = void 0;
var radarAxisConfig = {
/**
* @description Whether to display this radar axis
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Center point of radar axis
* @type {Array}
* @default center = ['50%','50%']
* @example center = ['50%','50%'] | [100, 100]
*/
center: ['50%', '50%'],
/**
* @description Radius of radar axis
* @type {String|Number}
* @default radius = '65%'
* @example radius = '65%' | 100
*/
radius: '65%',
/**
* @description Radar axis start angle
* @type {Number}
* @default startAngle = -Math.PI / 2
* @example startAngle = -Math.PI
*/
startAngle: -Math.PI / 2,
/**
* @description Radar axis split number
* @type {Number}
* @default splitNum = 5
*/
splitNum: 5,
/**
* @description Whether to enable polygon radar axis
* @type {Boolean}
* @default polygon = false
*/
polygon: false,
/**
* @description Axis label configuration
* @type {Object}
*/
axisLabel: {
/**
* @description Whether to display axis label
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Label gap between label and radar axis
* @type {Number}
* @default labelGap = 15
*/
labelGap: 15,
/**
* @description Label color (Hex|rgb|rgba), will cover style.fill
* @type {Array}
* @default color = []
*/
color: [],
/**
* @description Axis label default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fill: '#333'
}
},
/**
* @description Axis line configuration
* @type {Object}
*/
axisLine: {
/**
* @description Whether to display axis line
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Line color (Hex|rgb|rgba), will cover style.stroke
* @type {Array}
* @default color = []
*/
color: [],
/**
* @description Axis label default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
stroke: '#999',
lineWidth: 1
}
},
/**
* @description Split line configuration
* @type {Object}
*/
splitLine: {
/**
* @description Whether to display split line
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Line color (Hex|rgb|rgba), will cover style.stroke
* @type {Array}
* @default color = []
*/
color: [],
/**
* @description Split line default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
stroke: '#d4d4d4',
lineWidth: 1
}
},
/**
* @description Split area configuration
* @type {Object}
*/
splitArea: {
/**
* @description Whether to display split area
* @type {Boolean}
* @default show = false
*/
show: false,
/**
* @description Area color (Hex|rgb|rgba), will cover style.stroke
* @type {Array}
* @default color = []
*/
color: ['#f5f5f5', '#e6e6e6'],
/**
* @description Split area default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {}
},
/**
* @description Bar chart render level
* Priority rendering high level
* @type {Number}
* @default rLevel = -10
*/
rLevel: -10,
/**
* @description Radar axis animation curve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description Radar axis animation frame
* @type {Number}
* @default animationFrame = 50
*/
animationFrane: 50
};
exports.radarAxisConfig = radarAxisConfig;
});
unwrapExports(radarAxis);
var radarAxis_1 = radarAxis.radarAxisConfig;
var radar = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.radarConfig = void 0;
var radarConfig = {
/**
* @description Whether to display this radar
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Legend name
* @type {String}
* @default name = ''
*/
name: '',
/**
* @description Radar chart data
* @type {Array}
* @default data = []
* @example data = [100, 200, 300]
*/
data: [],
/**
* @description Radar default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
radarStyle: {
lineWidth: 1
},
/**
* @description Radar point configuration
* @type {Object}
*/
point: {
/**
* @description Whether to display radar point
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Point radius
* @type {Number}
* @default radius = 2
*/
radius: 2,
/**
* @description Radar point default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fill: '#fff'
}
},
/**
* @description Radar label configuration
* @type {Object}
*/
label: {
/**
* @description Whether to display radar label
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Label position offset
* @type {Array}
* @default offset = [0, 0]
*/
offset: [0, 0],
/**
* @description Label gap between label and radar
* @type {Number}
* @default labelGap = 5
*/
labelGap: 5,
/**
* @description Label formatter
* @type {String|Function}
* @default formatter = null
* @example formatter = 'Score-{value}'
* @example formatter = (label) => (label)
*/
formatter: null,
/**
* @description Radar label default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fontSize: 10
}
},
/**
* @description Radar chart render level
* Priority rendering high level
* @type {Number}
* @default rLevel = 10
*/
rLevel: 10,
/**
* @description Radar animation curve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description Radar animation frame
* @type {Number}
* @default animationFrame = 50
*/
animationFrane: 50
};
exports.radarConfig = radarConfig;
});
unwrapExports(radar);
var radar_1 = radar.radarConfig;
var gauge = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.gaugeConfig = void 0;
var gaugeConfig = {
/**
* @description Whether to display this gauge
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Legend name
* @type {String}
* @default name = ''
*/
name: '',
/**
* @description Radius of gauge
* @type {String|Number}
* @default radius = '60%'
* @example radius = '60%' | 100
*/
radius: '60%',
/**
* @description Center point of gauge
* @type {Array}
* @default center = ['50%','50%']
* @example center = ['50%','50%'] | [100, 100]
*/
center: ['50%', '50%'],
/**
* @description Gauge start angle
* @type {Number}
* @default startAngle = -(Math.PI / 4) * 5
* @example startAngle = -Math.PI
*/
startAngle: -(Math.PI / 4) * 5,
/**
* @description Gauge end angle
* @type {Number}
* @default endAngle = Math.PI / 4
* @example endAngle = 0
*/
endAngle: Math.PI / 4,
/**
* @description Gauge min value
* @type {Number}
* @default min = 0
*/
min: 0,
/**
* @description Gauge max value
* @type {Number}
* @default max = 100
*/
max: 100,
/**
* @description Gauge split number
* @type {Number}
* @default splitNum = 5
*/
splitNum: 5,
/**
* @description Gauge arc line width
* @type {Number}
* @default arcLineWidth = 15
*/
arcLineWidth: 15,
/**
* @description Gauge chart data
* @type {Array}
* @default data = []
*/
data: [],
/**
* @description Data item arc default style configuration
* @type {Object}
* @default dataItemStyle = {Configuration Of Class Style}
*/
dataItemStyle: {},
/**
* @description Axis tick configuration
* @type {Object}
*/
axisTick: {
/**
* @description Whether to display axis tick
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Axis tick length
* @type {Number}
* @default tickLength = 6
*/
tickLength: 6,
/**
* @description Axis tick default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
stroke: '#999',
lineWidth: 1
}
},
/**
* @description Axis label configuration
* @type {Object}
*/
axisLabel: {
/**
* @description Whether to display axis label
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Axis label data (Can be calculated automatically)
* @type {Array}
* @default data = [Number...]
*/
data: [],
/**
* @description Axis label formatter
* @type {String|Function}
* @default formatter = null
* @example formatter = '{value}%'
* @example formatter = (labelItem) => (labelItem.value)
*/
formatter: null,
/**
* @description Axis label gap between label and axis tick
* @type {String|Function}
* @default labelGap = 5
*/
labelGap: 5,
/**
* @description Axis label default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {}
},
/**
* @description Gauge pointer configuration
* @type {Object}
*/
pointer: {
/**
* @description Whether to display pointer
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Pointer value index of data
* @type {Number}
* @default valueIndex = 0 (pointer.value = data[0].value)
*/
valueIndex: 0,
/**
* @description Pointer default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
scale: [1, 1],
fill: '#fb7293'
}
},
/**
* @description Data item arc detail configuration
* @type {Object}
*/
details: {
/**
* @description Whether to display details
* @type {Boolean}
* @default show = false
*/
show: false,
/**
* @description Details formatter
* @type {String|Function}
* @default formatter = null
* @example formatter = '{value}%'
* @example formatter = '{name}%'
* @example formatter = (dataItem) => (dataItem.value)
*/
formatter: null,
/**
* @description Details position offset
* @type {Array}
* @default offset = [0, 0]
* @example offset = [10, 10]
*/
offset: [0, 0],
/**
* @description Value fractional precision
* @type {Number}
* @default valueToFixed = 0
*/
valueToFixed: 0,
/**
* @description Details position
* @type {String}
* @default position = 'center'
* @example position = 'start' | 'center' | 'end'
*/
position: 'center',
/**
* @description Details default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
fontSize: 20,
fontWeight: 'bold',
textAlign: 'center',
textBaseline: 'middle'
}
},
/**
* @description Gauge background arc configuration
* @type {Object}
*/
backgroundArc: {
/**
* @description Whether to display background arc
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Background arc default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
style: {
stroke: '#e0e0e0'
}
},
/**
* @description Gauge chart render level
* Priority rendering high level
* @type {Number}
* @default rLevel = 10
*/
rLevel: 10,
/**
* @description Gauge animation curve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description Gauge animation frame
* @type {Number}
* @default animationFrame = 50
*/
animationFrame: 50
};
exports.gaugeConfig = gaugeConfig;
});
unwrapExports(gauge);
var gauge_1 = gauge.gaugeConfig;
var legend = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.legendConfig = void 0;
var legendConfig = {
/**
* @description Whether to display legend
* @type {Boolean}
* @default show = true
*/
show: true,
/**
* @description Legend orient
* @type {String}
* @default orient = 'horizontal'
* @example orient = 'horizontal' | 'vertical'
*/
orient: 'horizontal',
/**
* @description Legend left
* @type {String|Number}
* @default left = 'auto'
* @example left = 'auto' | '10%' | 10
*/
left: 'auto',
/**
* @description Legend right
* @type {String|Number}
* @default right = 'auto'
* @example right = 'auto' | '10%' | 10
*/
right: 'auto',
/**
* @description Legend top
* @type {String|Number}
* @default top = 'auto'
* @example top = 'auto' | '10%' | 10
*/
top: 'auto',
/**
* @description Legend bottom
* @type {String|Number}
* @default bottom = 'auto'
* @example bottom = 'auto' | '10%' | 10
*/
bottom: 'auto',
/**
* @description Legend item gap
* @type {Number}
* @default itemGap = 10
*/
itemGap: 10,
/**
* @description Icon width
* @type {Number}
* @default iconWidth = 25
*/
iconWidth: 25,
/**
* @description Icon height
* @type {Number}
* @default iconHeight = 10
*/
iconHeight: 10,
/**
* @description Whether legend is optional
* @type {Boolean}
* @default selectAble = true
*/
selectAble: true,
/**
* @description Legend data
* @type {Array}
* @default data = []
*/
data: [],
/**
* @description Legend text default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
textStyle: {
fontFamily: 'Arial',
fontSize: 13,
fill: '#000'
},
/**
* @description Legend icon default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
iconStyle: {},
/**
* @description Legend text unselected default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
textUnselectedStyle: {
fontFamily: 'Arial',
fontSize: 13,
fill: '#999'
},
/**
* @description Legend icon unselected default style configuration
* @type {Object}
* @default style = {Configuration Of Class Style}
*/
iconUnselectedStyle: {
fill: '#999'
},
/**
* @description Legend render level
* Priority rendering high level
* @type {Number}
* @default rLevel = 20
*/
rLevel: 20,
/**
* @description Legend animation curve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description Legend animation frame
* @type {Number}
* @default animationFrame = 50
*/
animationFrame: 50
};
exports.legendConfig = legendConfig;
});
unwrapExports(legend);
var legend_1 = legend.legendConfig;
var config = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.changeDefaultConfig = changeDefaultConfig;
Object.defineProperty(exports, "colorConfig", {
enumerable: true,
get: function get() {
return color.colorConfig;
}
});
Object.defineProperty(exports, "gridConfig", {
enumerable: true,
get: function get() {
return grid.gridConfig;
}
});
Object.defineProperty(exports, "xAxisConfig", {
enumerable: true,
get: function get() {
return axis.xAxisConfig;
}
});
Object.defineProperty(exports, "yAxisConfig", {
enumerable: true,
get: function get() {
return axis.yAxisConfig;
}
});
Object.defineProperty(exports, "titleConfig", {
enumerable: true,
get: function get() {
return title.titleConfig;
}
});
Object.defineProperty(exports, "lineConfig", {
enumerable: true,
get: function get() {
return line.lineConfig;
}
});
Object.defineProperty(exports, "barConfig", {
enumerable: true,
get: function get() {
return bar.barConfig;
}
});
Object.defineProperty(exports, "pieConfig", {
enumerable: true,
get: function get() {
return pie$1.pieConfig;
}
});
Object.defineProperty(exports, "radarAxisConfig", {
enumerable: true,
get: function get() {
return radarAxis.radarAxisConfig;
}
});
Object.defineProperty(exports, "radarConfig", {
enumerable: true,
get: function get() {
return radar.radarConfig;
}
});
Object.defineProperty(exports, "gaugeConfig", {
enumerable: true,
get: function get() {
return gauge.gaugeConfig;
}
});
Object.defineProperty(exports, "legendConfig", {
enumerable: true,
get: function get() {
return legend.legendConfig;
}
});
exports.keys = void 0;
var allConfig = {
colorConfig: color.colorConfig,
gridConfig: grid.gridConfig,
xAxisConfig: axis.xAxisConfig,
yAxisConfig: axis.yAxisConfig,
titleConfig: title.titleConfig,
lineConfig: line.lineConfig,
barConfig: bar.barConfig,
pieConfig: pie$1.pieConfig,
radarAxisConfig: radarAxis.radarAxisConfig,
radarConfig: radar.radarConfig,
gaugeConfig: gauge.gaugeConfig,
legendConfig: legend.legendConfig
/**
* @description Change default configuration
* @param {String} key Configuration key
* @param {Object|Array} config Your config
* @return {Undefined} No return
*/
};
function changeDefaultConfig(key, config) {
if (!allConfig["".concat(key, "Config")]) {
console.warn('Change default config Error - Invalid key!');
return;
}
(0, util$1.deepMerge)(allConfig["".concat(key, "Config")], config);
}
var keys = ['color', 'title', 'legend', 'xAxis', 'yAxis', 'grid', 'radarAxis', 'line', 'bar', 'pie', 'radar', 'gauge'];
exports.keys = keys;
});
unwrapExports(config);
var config_1 = config.changeDefaultConfig;
var config_2 = config.keys;
var mergeColor_1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.mergeColor = mergeColor;
function mergeColor(chart) {
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var defaultColor = (0, util.deepClone)(config.colorConfig, true);
var color = option.color,
series = option.series;
if (!series) series = [];
if (!color) color = [];
option.color = color = (0, util$1.deepMerge)(defaultColor, color);
if (!series.length) return;
var colorNum = color.length;
series.forEach(function (item, i) {
if (item.color) return;
item.color = color[i % colorNum];
});
var pies = series.filter(function (_ref) {
var type = _ref.type;
return type === 'pie';
});
pies.forEach(function (pie) {
return pie.data.forEach(function (di, i) {
return di.color = color[i % colorNum];
});
});
var gauges = series.filter(function (_ref2) {
var type = _ref2.type;
return type === 'gauge';
});
gauges.forEach(function (gauge) {
return gauge.data.forEach(function (di, i) {
return di.color = color[i % colorNum];
});
});
}
});
unwrapExports(mergeColor_1);
var mergeColor_2 = mergeColor_1.mergeColor;
var updater_class = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.doUpdate = doUpdate;
exports.Updater = void 0;
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
var _typeof2 = interopRequireDefault(_typeof_1);
var _classCallCheck2 = interopRequireDefault(classCallCheck);
var Updater = function Updater(config, series) {
(0, _classCallCheck2["default"])(this, Updater);
var chart = config.chart,
key = config.key,
getGraphConfig = config.getGraphConfig;
if (typeof getGraphConfig !== 'function') {
console.warn('Updater need function getGraphConfig!');
return;
}
if (!chart[key]) this.graphs = chart[key] = [];
Object.assign(this, config);
this.update(series);
};
exports.Updater = Updater;
Updater.prototype.update = function (series) {
var _this = this;
var graphs = this.graphs,
beforeUpdate = this.beforeUpdate;
delRedundanceGraph(this, series);
if (!series.length) return;
var beforeUpdateType = (0, _typeof2["default"])(beforeUpdate);
series.forEach(function (seriesItem, i) {
if (beforeUpdateType === 'function') beforeUpdate(graphs, seriesItem, i, _this);
var cache = graphs[i];
if (cache) {
changeGraphs(cache, seriesItem, i, _this);
} else {
addGraphs(graphs, seriesItem, i, _this);
}
});
};
function delRedundanceGraph(updater, series) {
var graphs = updater.graphs,
render = updater.chart.render;
var cacheGraphNum = graphs.length;
var needGraphNum = series.length;
if (cacheGraphNum > needGraphNum) {
var needDelGraphs = graphs.splice(needGraphNum);
needDelGraphs.forEach(function (item) {
return item.forEach(function (g) {
return render.delGraph(g);
});
});
}
}
function changeGraphs(cache, seriesItem, i, updater) {
var getGraphConfig = updater.getGraphConfig,
render = updater.chart.render,
beforeChange = updater.beforeChange;
var configs = getGraphConfig(seriesItem, updater);
balanceGraphsNum(cache, configs, render);
cache.forEach(function (graph, j) {
var config = configs[j];
if (typeof beforeChange === 'function') beforeChange(graph, config);
updateGraphConfigByKey(graph, config);
});
}
function balanceGraphsNum(graphs, graphConfig, render) {
var cacheGraphNum = graphs.length;
var needGraphNum = graphConfig.length;
if (needGraphNum > cacheGraphNum) {
var lastCacheGraph = graphs.slice(-1)[0];
var needAddGraphNum = needGraphNum - cacheGraphNum;
var needAddGraphs = new Array(needAddGraphNum).fill(0).map(function (foo) {
return render.clone(lastCacheGraph);
});
graphs.push.apply(graphs, (0, _toConsumableArray2["default"])(needAddGraphs));
} else if (needGraphNum < cacheGraphNum) {
var needDelCache = graphs.splice(needGraphNum);
needDelCache.forEach(function (g) {
return render.delGraph(g);
});
}
}
function addGraphs(graphs, seriesItem, i, updater) {
var getGraphConfig = updater.getGraphConfig,
getStartGraphConfig = updater.getStartGraphConfig,
chart = updater.chart;
var render = chart.render;
var startConfigs = null;
if (typeof getStartGraphConfig === 'function') startConfigs = getStartGraphConfig(seriesItem, updater);
var configs = getGraphConfig(seriesItem, updater);
if (!configs.length) return;
if (startConfigs) {
graphs[i] = startConfigs.map(function (config) {
return render.add(config);
});
graphs[i].forEach(function (graph, i) {
var config = configs[i];
updateGraphConfigByKey(graph, config);
});
} else {
graphs[i] = configs.map(function (config) {
return render.add(config);
});
}
var afterAddGraph = updater.afterAddGraph;
if (typeof afterAddGraph === 'function') afterAddGraph(graphs[i]);
}
function updateGraphConfigByKey(graph, config) {
var keys = Object.keys(config);
keys.forEach(function (key) {
if (key === 'shape' || key === 'style') {
graph.animation(key, config[key], true);
} else {
graph[key] = config[key];
}
});
}
function doUpdate() {
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
chart = _ref.chart,
series = _ref.series,
key = _ref.key,
getGraphConfig = _ref.getGraphConfig,
getStartGraphConfig = _ref.getStartGraphConfig,
beforeChange = _ref.beforeChange,
beforeUpdate = _ref.beforeUpdate,
afterAddGraph = _ref.afterAddGraph;
if (chart[key]) {
chart[key].update(series);
} else {
chart[key] = new Updater({
chart: chart,
key: key,
getGraphConfig: getGraphConfig,
getStartGraphConfig: getStartGraphConfig,
beforeChange: beforeChange,
beforeUpdate: beforeUpdate,
afterAddGraph: afterAddGraph
}, series);
}
}
});
unwrapExports(updater_class);
var updater_class_1 = updater_class.doUpdate;
var updater_class_2 = updater_class.Updater;
var title_1$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.title = title;
var _slicedToArray2 = interopRequireDefault(slicedToArray);
function title(chart) {
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var title = [];
if (option.title) {
title[0] = (0, util$1.deepMerge)((0, util.deepClone)(config.titleConfig, true), option.title);
}
(0, updater_class.doUpdate)({
chart: chart,
series: title,
key: 'title',
getGraphConfig: getTitleConfig
});
}
function getTitleConfig(titleItem, updater) {
var animationCurve = config.titleConfig.animationCurve,
animationFrame = config.titleConfig.animationFrame,
rLevel = config.titleConfig.rLevel;
var shape = getTitleShape(titleItem, updater);
var style = getTitleStyle(titleItem);
return [{
name: 'text',
index: rLevel,
visible: titleItem.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: shape,
style: style
}];
}
function getTitleShape(titleItem, updater) {
var offset = titleItem.offset,
text = titleItem.text;
var _updater$chart$gridAr = updater.chart.gridArea,
x = _updater$chart$gridAr.x,
y = _updater$chart$gridAr.y,
w = _updater$chart$gridAr.w;
var _offset = (0, _slicedToArray2["default"])(offset, 2),
ox = _offset[0],
oy = _offset[1];
return {
content: text,
position: [x + w / 2 + ox, y + oy]
};
}
function getTitleStyle(titleItem) {
var style = titleItem.style;
return style;
}
});
unwrapExports(title_1$1);
var title_2 = title_1$1.title;
var grid_1$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.grid = grid;
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _defineProperty2 = interopRequireDefault(defineProperty);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function grid(chart) {
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var grid = option.grid;
grid = (0, util$1.deepMerge)((0, util.deepClone)(config.gridConfig, true), grid || {});
(0, updater_class.doUpdate)({
chart: chart,
series: [grid],
key: 'grid',
getGraphConfig: getGridConfig
});
}
function getGridConfig(gridItem, updater) {
var animationCurve = gridItem.animationCurve,
animationFrame = gridItem.animationFrame,
rLevel = gridItem.rLevel;
var shape = getGridShape(gridItem, updater);
var style = getGridStyle(gridItem);
updater.chart.gridArea = _objectSpread({}, shape);
return [{
name: 'rect',
index: rLevel,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: shape,
style: style
}];
}
function getGridShape(gridItem, updater) {
var _updater$chart$render = (0, _slicedToArray2["default"])(updater.chart.render.area, 2),
w = _updater$chart$render[0],
h = _updater$chart$render[1];
var left = getNumberValue(gridItem.left, w);
var right = getNumberValue(gridItem.right, w);
var top = getNumberValue(gridItem.top, h);
var bottom = getNumberValue(gridItem.bottom, h);
var width = w - left - right;
var height = h - top - bottom;
return {
x: left,
y: top,
w: width,
h: height
};
}
function getNumberValue(val, all) {
if (typeof val === 'number') return val;
if (typeof val !== 'string') return 0;
return all * parseInt(val) / 100;
}
function getGridStyle(gridItem) {
var style = gridItem.style;
return style;
}
});
unwrapExports(grid_1$1);
var grid_2 = grid_1$1.grid;
var axis_1$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.axis = axis;
var _typeof2 = interopRequireDefault(_typeof_1);
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _defineProperty2 = interopRequireDefault(defineProperty);
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var axisConfig = {
xAxisConfig: config.xAxisConfig,
yAxisConfig: config.yAxisConfig
};
var abs = Math.abs,
pow = Math.pow;
function axis(chart) {
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var xAxis = option.xAxis,
yAxis = option.yAxis,
series = option.series;
var allAxis = [];
if (xAxis && yAxis && series) {
allAxis = getAllAxis(xAxis, yAxis);
allAxis = mergeDefaultAxisConfig(allAxis);
allAxis = allAxis.filter(function (_ref) {
var show = _ref.show;
return show;
});
allAxis = mergeDefaultBoundaryGap(allAxis);
allAxis = calcAxisLabelData(allAxis, series);
allAxis = setAxisPosition(allAxis);
allAxis = calcAxisLinePosition(allAxis, chart);
allAxis = calcAxisTickPosition(allAxis);
allAxis = calcAxisNamePosition(allAxis);
allAxis = calcSplitLinePosition(allAxis, chart);
}
(0, updater_class.doUpdate)({
chart: chart,
series: allAxis,
key: 'axisLine',
getGraphConfig: getLineConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: allAxis,
key: 'axisTick',
getGraphConfig: getTickConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: allAxis,
key: 'axisLabel',
getGraphConfig: getLabelConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: allAxis,
key: 'axisName',
getGraphConfig: getNameConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: allAxis,
key: 'splitLine',
getGraphConfig: getSplitLineConfig
});
chart.axisData = allAxis;
}
function getAllAxis(xAxis, yAxis) {
var allXAxis = [],
allYAxis = [];
if (xAxis instanceof Array) {
var _allXAxis;
(_allXAxis = allXAxis).push.apply(_allXAxis, (0, _toConsumableArray2["default"])(xAxis));
} else {
allXAxis.push(xAxis);
}
if (yAxis instanceof Array) {
var _allYAxis;
(_allYAxis = allYAxis).push.apply(_allYAxis, (0, _toConsumableArray2["default"])(yAxis));
} else {
allYAxis.push(yAxis);
}
allXAxis.splice(2);
allYAxis.splice(2);
allXAxis = allXAxis.map(function (axis, i) {
return _objectSpread({}, axis, {
index: i,
axis: 'x'
});
});
allYAxis = allYAxis.map(function (axis, i) {
return _objectSpread({}, axis, {
index: i,
axis: 'y'
});
});
return [].concat((0, _toConsumableArray2["default"])(allXAxis), (0, _toConsumableArray2["default"])(allYAxis));
}
function mergeDefaultAxisConfig(allAxis) {
var xAxis = allAxis.filter(function (_ref2) {
var axis = _ref2.axis;
return axis === 'x';
});
var yAxis = allAxis.filter(function (_ref3) {
var axis = _ref3.axis;
return axis === 'y';
});
xAxis = xAxis.map(function (axis) {
return (0, util$1.deepMerge)((0, util.deepClone)(config.xAxisConfig), axis);
});
yAxis = yAxis.map(function (axis) {
return (0, util$1.deepMerge)((0, util.deepClone)(config.yAxisConfig), axis);
});
return [].concat((0, _toConsumableArray2["default"])(xAxis), (0, _toConsumableArray2["default"])(yAxis));
}
function mergeDefaultBoundaryGap(allAxis) {
var valueAxis = allAxis.filter(function (_ref4) {
var data = _ref4.data;
return data === 'value';
});
var labelAxis = allAxis.filter(function (_ref5) {
var data = _ref5.data;
return data !== 'value';
});
valueAxis.forEach(function (axis) {
if (typeof axis.boundaryGap === 'boolean') return;
axis.boundaryGap = false;
});
labelAxis.forEach(function (axis) {
if (typeof axis.boundaryGap === 'boolean') return;
axis.boundaryGap = true;
});
return [].concat((0, _toConsumableArray2["default"])(valueAxis), (0, _toConsumableArray2["default"])(labelAxis));
}
function calcAxisLabelData(allAxis, series) {
var valueAxis = allAxis.filter(function (_ref6) {
var data = _ref6.data;
return data === 'value';
});
var labelAxis = allAxis.filter(function (_ref7) {
var data = _ref7.data;
return data instanceof Array;
});
valueAxis = calcValueAxisLabelData(valueAxis, series);
labelAxis = calcLabelAxisLabelData(labelAxis);
return [].concat((0, _toConsumableArray2["default"])(valueAxis), (0, _toConsumableArray2["default"])(labelAxis));
}
function calcValueAxisLabelData(valueAxis, series) {
return valueAxis.map(function (axis) {
var minMaxValue = getValueAxisMaxMinValue(axis, series);
var _getTrueMinMax = getTrueMinMax(axis, minMaxValue),
_getTrueMinMax2 = (0, _slicedToArray2["default"])(_getTrueMinMax, 2),
min = _getTrueMinMax2[0],
max = _getTrueMinMax2[1];
var interval = getValueInterval(min, max, axis);
var formatter = axis.axisLabel.formatter;
var label = [];
if (minMaxValue[0] === minMaxValue[1]) {
label = minMaxValue;
} else if (min < 0 && max > 0) {
label = getValueAxisLabelFromZero(min, max, interval);
} else {
label = getValueAxisLabelFromMin(min, max, interval);
}
label = label.map(function (l) {
return parseFloat(l.toFixed(2));
});
return _objectSpread({}, axis, {
maxValue: label.slice(-1)[0],
minValue: label[0],
label: getAfterFormatterLabel(label, formatter)
});
});
}
function getValueAxisMaxMinValue(axis, series) {
series = series.filter(function (_ref8) {
var show = _ref8.show,
type = _ref8.type;
if (show === false) return false;
if (type === 'pie') return false;
return true;
});
if (series.length === 0) return [0, 0];
var index = axis.index,
axisType = axis.axis;
series = mergeStackData(series);
var axisName = axisType + 'Axis';
var valueSeries = series.filter(function (s) {
return s[axisName] === index;
});
if (!valueSeries.length) valueSeries = series;
return getSeriesMinMaxValue(valueSeries);
}
function getSeriesMinMaxValue(series) {
if (!series) return;
var minValue = Math.min.apply(Math, (0, _toConsumableArray2["default"])(series.map(function (_ref9) {
var data = _ref9.data;
return Math.min.apply(Math, (0, _toConsumableArray2["default"])((0, util$1.filterNonNumber)(data)));
})));
var maxValue = Math.max.apply(Math, (0, _toConsumableArray2["default"])(series.map(function (_ref10) {
var data = _ref10.data;
return Math.max.apply(Math, (0, _toConsumableArray2["default"])((0, util$1.filterNonNumber)(data)));
})));
return [minValue, maxValue];
}
function mergeStackData(series) {
var seriesCloned = (0, util.deepClone)(series, true);
series.forEach(function (item, i) {
var data = (0, util$1.mergeSameStackData)(item, series);
seriesCloned[i].data = data;
});
return seriesCloned;
}
function getTrueMinMax(_ref11, _ref12) {
var min = _ref11.min,
max = _ref11.max,
axis = _ref11.axis;
var _ref13 = (0, _slicedToArray2["default"])(_ref12, 2),
minValue = _ref13[0],
maxValue = _ref13[1];
var minType = (0, _typeof2["default"])(min),
maxType = (0, _typeof2["default"])(max);
if (!testMinMaxType(min)) {
min = axisConfig[axis + 'AxisConfig'].min;
minType = 'string';
}
if (!testMinMaxType(max)) {
max = axisConfig[axis + 'AxisConfig'].max;
maxType = 'string';
}
if (minType === 'string') {
min = parseInt(minValue - abs(minValue * parseFloat(min) / 100));
var lever = getValueLever(min);
min = parseFloat((min / lever - 0.1).toFixed(1)) * lever;
}
if (maxType === 'string') {
max = parseInt(maxValue + abs(maxValue * parseFloat(max) / 100));
var _lever = getValueLever(max);
max = parseFloat((max / _lever + 0.1).toFixed(1)) * _lever;
}
return [min, max];
}
function getValueLever(value) {
var valueString = abs(value).toString();
var valueLength = valueString.length;
var firstZeroIndex = valueString.replace(/0*$/g, '').indexOf('0');
var pow10Num = valueLength - 1;
if (firstZeroIndex !== -1) pow10Num -= firstZeroIndex;
return pow(10, pow10Num);
}
function testMinMaxType(val) {
var valType = (0, _typeof2["default"])(val);
var isValidString = valType === 'string' && /^\d+%$/.test(val);
var isValidNumber = valType === 'number';
return isValidString || isValidNumber;
}
function getValueAxisLabelFromZero(min, max, interval) {
var negative = [],
positive = [];
var currentNegative = 0,
currentPositive = 0;
do {
negative.push(currentNegative -= interval);
} while (currentNegative > min);
do {
positive.push(currentPositive += interval);
} while (currentPositive < max);
return [].concat((0, _toConsumableArray2["default"])(negative.reverse()), [0], (0, _toConsumableArray2["default"])(positive));
}
function getValueAxisLabelFromMin(min, max, interval) {
var label = [min],
currentValue = min;
do {
label.push(currentValue += interval);
} while (currentValue < max);
return label;
}
function getAfterFormatterLabel(label, formatter) {
if (!formatter) return label;
if (typeof formatter === 'string') label = label.map(function (l) {
return formatter.replace('{value}', l);
});
if (typeof formatter === 'function') label = label.map(function (value, index) {
return formatter({
value: value,
index: index
});
});
return label;
}
function calcLabelAxisLabelData(labelAxis) {
return labelAxis.map(function (axis) {
var data = axis.data,
formatter = axis.axisLabel.formatter;
return _objectSpread({}, axis, {
label: getAfterFormatterLabel(data, formatter)
});
});
}
function getValueInterval(min, max, axis) {
var interval = axis.interval,
minInterval = axis.minInterval,
maxInterval = axis.maxInterval,
splitNumber = axis.splitNumber,
axisType = axis.axis;
var config = axisConfig[axisType + 'AxisConfig'];
if (typeof interval !== 'number') interval = config.interval;
if (typeof minInterval !== 'number') minInterval = config.minInterval;
if (typeof maxInterval !== 'number') maxInterval = config.maxInterval;
if (typeof splitNumber !== 'number') splitNumber = config.splitNumber;
if (typeof interval === 'number') return interval;
var valueInterval = parseInt((max - min) / (splitNumber - 1));
if (valueInterval.toString().length > 1) valueInterval = parseInt(valueInterval.toString().replace(/\d$/, '0'));
if (valueInterval === 0) valueInterval = 1;
if (typeof minInterval === 'number' && valueInterval < minInterval) return minInterval;
if (typeof maxInterval === 'number' && valueInterval > maxInterval) return maxInterval;
return valueInterval;
}
function setAxisPosition(allAxis) {
var xAxis = allAxis.filter(function (_ref14) {
var axis = _ref14.axis;
return axis === 'x';
});
var yAxis = allAxis.filter(function (_ref15) {
var axis = _ref15.axis;
return axis === 'y';
});
if (xAxis[0] && !xAxis[0].position) xAxis[0].position = config.xAxisConfig.position;
if (xAxis[1] && !xAxis[1].position) {
xAxis[1].position = xAxis[0].position === 'bottom' ? 'top' : 'bottom';
}
if (yAxis[0] && !yAxis[0].position) yAxis[0].position = config.yAxisConfig.position;
if (yAxis[1] && !yAxis[1].position) {
yAxis[1].position = yAxis[0].position === 'left' ? 'right' : 'left';
}
return [].concat((0, _toConsumableArray2["default"])(xAxis), (0, _toConsumableArray2["default"])(yAxis));
}
function calcAxisLinePosition(allAxis, chart) {
var _chart$gridArea = chart.gridArea,
x = _chart$gridArea.x,
y = _chart$gridArea.y,
w = _chart$gridArea.w,
h = _chart$gridArea.h;
allAxis = allAxis.map(function (axis) {
var position = axis.position;
var linePosition = [];
if (position === 'left') {
linePosition = [[x, y], [x, y + h]].reverse();
} else if (position === 'right') {
linePosition = [[x + w, y], [x + w, y + h]].reverse();
} else if (position === 'top') {
linePosition = [[x, y], [x + w, y]];
} else if (position === 'bottom') {
linePosition = [[x, y + h], [x + w, y + h]];
}
return _objectSpread({}, axis, {
linePosition: linePosition
});
});
return allAxis;
}
function calcAxisTickPosition(allAxis, chart) {
return allAxis.map(function (axisItem) {
var axis = axisItem.axis,
linePosition = axisItem.linePosition,
position = axisItem.position,
label = axisItem.label,
boundaryGap = axisItem.boundaryGap;
if (typeof boundaryGap !== 'boolean') boundaryGap = axisConfig[axis + 'AxisConfig'].boundaryGap;
var labelNum = label.length;
var _linePosition = (0, _slicedToArray2["default"])(linePosition, 2),
_linePosition$ = (0, _slicedToArray2["default"])(_linePosition[0], 2),
startX = _linePosition$[0],
startY = _linePosition$[1],
_linePosition$2 = (0, _slicedToArray2["default"])(_linePosition[1], 2),
endX = _linePosition$2[0],
endY = _linePosition$2[1];
var gapLength = axis === 'x' ? endX - startX : endY - startY;
var gap = gapLength / (boundaryGap ? labelNum : labelNum - 1);
var tickPosition = new Array(labelNum).fill(0).map(function (foo, i) {
if (axis === 'x') {
return [startX + gap * (boundaryGap ? i + 0.5 : i), startY];
}
return [startX, startY + gap * (boundaryGap ? i + 0.5 : i)];
});
var tickLinePosition = getTickLinePosition(axis, boundaryGap, position, tickPosition, gap);
return _objectSpread({}, axisItem, {
tickPosition: tickPosition,
tickLinePosition: tickLinePosition,
tickGap: gap
});
});
}
function getTickLinePosition(axisType, boundaryGap, position, tickPosition, gap) {
var index = axisType === 'x' ? 1 : 0;
var plus = 5;
if (axisType === 'x' && position === 'top') plus = -5;
if (axisType === 'y' && position === 'left') plus = -5;
var tickLinePosition = tickPosition.map(function (lineStart) {
var lineEnd = (0, util.deepClone)(lineStart);
lineEnd[index] += plus;
return [(0, util.deepClone)(lineStart), lineEnd];
});
if (!boundaryGap) return tickLinePosition;
index = axisType === 'x' ? 0 : 1;
plus = gap / 2;
tickLinePosition.forEach(function (_ref16) {
var _ref17 = (0, _slicedToArray2["default"])(_ref16, 2),
lineStart = _ref17[0],
lineEnd = _ref17[1];
lineStart[index] += plus;
lineEnd[index] += plus;
});
return tickLinePosition;
}
function calcAxisNamePosition(allAxis, chart) {
return allAxis.map(function (axisItem) {
var nameGap = axisItem.nameGap,
nameLocation = axisItem.nameLocation,
position = axisItem.position,
linePosition = axisItem.linePosition;
var _linePosition2 = (0, _slicedToArray2["default"])(linePosition, 2),
lineStart = _linePosition2[0],
lineEnd = _linePosition2[1];
var namePosition = (0, _toConsumableArray2["default"])(lineStart);
if (nameLocation === 'end') namePosition = (0, _toConsumableArray2["default"])(lineEnd);
if (nameLocation === 'center') {
namePosition[0] = (lineStart[0] + lineEnd[0]) / 2;
namePosition[1] = (lineStart[1] + lineEnd[1]) / 2;
}
var index = 0;
if (position === 'top' && nameLocation === 'center') index = 1;
if (position === 'bottom' && nameLocation === 'center') index = 1;
if (position === 'left' && nameLocation !== 'center') index = 1;
if (position === 'right' && nameLocation !== 'center') index = 1;
var plus = nameGap;
if (position === 'top' && nameLocation !== 'end') plus *= -1;
if (position === 'left' && nameLocation !== 'start') plus *= -1;
if (position === 'bottom' && nameLocation === 'start') plus *= -1;
if (position === 'right' && nameLocation === 'end') plus *= -1;
namePosition[index] += plus;
return _objectSpread({}, axisItem, {
namePosition: namePosition
});
});
}
function calcSplitLinePosition(allAxis, chart) {
var _chart$gridArea2 = chart.gridArea,
w = _chart$gridArea2.w,
h = _chart$gridArea2.h;
return allAxis.map(function (axisItem) {
var tickLinePosition = axisItem.tickLinePosition,
position = axisItem.position,
boundaryGap = axisItem.boundaryGap;
var index = 0,
plus = w;
if (position === 'top' || position === 'bottom') index = 1;
if (position === 'top' || position === 'bottom') plus = h;
if (position === 'right' || position === 'bottom') plus *= -1;
var splitLinePosition = tickLinePosition.map(function (_ref18) {
var _ref19 = (0, _slicedToArray2["default"])(_ref18, 1),
startPoint = _ref19[0];
var endPoint = (0, _toConsumableArray2["default"])(startPoint);
endPoint[index] += plus;
return [(0, _toConsumableArray2["default"])(startPoint), endPoint];
});
if (!boundaryGap) splitLinePosition.shift();
return _objectSpread({}, axisItem, {
splitLinePosition: splitLinePosition
});
});
}
function getLineConfig(axisItem) {
var animationCurve = axisItem.animationCurve,
animationFrame = axisItem.animationFrame,
rLevel = axisItem.rLevel;
return [{
name: 'polyline',
index: rLevel,
visible: axisItem.axisLine.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getLineShape(axisItem),
style: getLineStyle(axisItem)
}];
}
function getLineShape(axisItem) {
var linePosition = axisItem.linePosition;
return {
points: linePosition
};
}
function getLineStyle(axisItem) {
return axisItem.axisLine.style;
}
function getTickConfig(axisItem) {
var animationCurve = axisItem.animationCurve,
animationFrame = axisItem.animationFrame,
rLevel = axisItem.rLevel;
var shapes = getTickShapes(axisItem);
var style = getTickStyle(axisItem);
return shapes.map(function (shape) {
return {
name: 'polyline',
index: rLevel,
visible: axisItem.axisTick.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: shape,
style: style
};
});
}
function getTickShapes(axisItem) {
var tickLinePosition = axisItem.tickLinePosition;
return tickLinePosition.map(function (points) {
return {
points: points
};
});
}
function getTickStyle(axisItem) {
return axisItem.axisTick.style;
}
function getLabelConfig(axisItem) {
var animationCurve = axisItem.animationCurve,
animationFrame = axisItem.animationFrame,
rLevel = axisItem.rLevel;
var shapes = getLabelShapes(axisItem);
var styles = getLabelStyle(axisItem, shapes);
return shapes.map(function (shape, i) {
return {
name: 'text',
index: rLevel,
visible: axisItem.axisLabel.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: shape,
style: styles[i],
setGraphCenter: function setGraphCenter() {
return void 0;
}
};
});
}
function getLabelShapes(axisItem) {
var label = axisItem.label,
tickPosition = axisItem.tickPosition,
position = axisItem.position;
return tickPosition.map(function (point, i) {
return {
position: getLabelRealPosition(point, position),
content: label[i].toString()
};
});
}
function getLabelRealPosition(points, position) {
var index = 0,
plus = 10;
if (position === 'top' || position === 'bottom') index = 1;
if (position === 'top' || position === 'left') plus = -10;
points = (0, util.deepClone)(points);
points[index] += plus;
return points;
}
function getLabelStyle(axisItem, shapes) {
var position = axisItem.position;
var style = axisItem.axisLabel.style;
var align = getAxisLabelRealAlign(position);
style = (0, util$1.deepMerge)(align, style);
var styles = shapes.map(function (_ref20) {
var position = _ref20.position;
return _objectSpread({}, style, {
graphCenter: position
});
});
return styles;
}
function getAxisLabelRealAlign(position) {
if (position === 'left') return {
textAlign: 'right',
textBaseline: 'middle'
};
if (position === 'right') return {
textAlign: 'left',
textBaseline: 'middle'
};
if (position === 'top') return {
textAlign: 'center',
textBaseline: 'bottom'
};
if (position === 'bottom') return {
textAlign: 'center',
textBaseline: 'top'
};
}
function getNameConfig(axisItem) {
var animationCurve = axisItem.animationCurve,
animationFrame = axisItem.animationFrame,
rLevel = axisItem.rLevel;
return [{
name: 'text',
index: rLevel,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getNameShape(axisItem),
style: getNameStyle(axisItem)
}];
}
function getNameShape(axisItem) {
var name = axisItem.name,
namePosition = axisItem.namePosition;
return {
content: name,
position: namePosition
};
}
function getNameStyle(axisItem) {
var nameLocation = axisItem.nameLocation,
position = axisItem.position,
style = axisItem.nameTextStyle;
var align = getNameRealAlign(position, nameLocation);
return (0, util$1.deepMerge)(align, style);
}
function getNameRealAlign(position, location) {
if (position === 'top' && location === 'start' || position === 'bottom' && location === 'start' || position === 'left' && location === 'center') return {
textAlign: 'right',
textBaseline: 'middle'
};
if (position === 'top' && location === 'end' || position === 'bottom' && location === 'end' || position === 'right' && location === 'center') return {
textAlign: 'left',
textBaseline: 'middle'
};
if (position === 'top' && location === 'center' || position === 'left' && location === 'end' || position === 'right' && location === 'end') return {
textAlign: 'center',
textBaseline: 'bottom'
};
if (position === 'bottom' && location === 'center' || position === 'left' && location === 'start' || position === 'right' && location === 'start') return {
textAlign: 'center',
textBaseline: 'top'
};
}
function getSplitLineConfig(axisItem) {
var animationCurve = axisItem.animationCurve,
animationFrame = axisItem.animationFrame,
rLevel = axisItem.rLevel;
var shapes = getSplitLineShapes(axisItem);
var style = getSplitLineStyle(axisItem);
return shapes.map(function (shape) {
return {
name: 'polyline',
index: rLevel,
visible: axisItem.splitLine.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: shape,
style: style
};
});
}
function getSplitLineShapes(axisItem) {
var splitLinePosition = axisItem.splitLinePosition;
return splitLinePosition.map(function (points) {
return {
points: points
};
});
}
function getSplitLineStyle(axisItem) {
return axisItem.splitLine.style;
}
});
unwrapExports(axis_1$1);
var axis_2$1 = axis_1$1.axis;
var line_1$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.line = line;
var _typeof2 = interopRequireDefault(_typeof_1);
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
var _defineProperty2 = interopRequireDefault(defineProperty);
var _bezierCurve = interopRequireDefault(lib$1);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var polylineToBezierCurve = _bezierCurve["default"].polylineToBezierCurve,
getBezierCurveLength = _bezierCurve["default"].getBezierCurveLength;
function line(chart) {
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var xAxis = option.xAxis,
yAxis = option.yAxis,
series = option.series;
var lines = [];
if (xAxis && yAxis && series) {
lines = (0, util$1.initNeedSeries)(series, config.lineConfig, 'line');
lines = calcLinesPosition(lines, chart);
}
(0, updater_class.doUpdate)({
chart: chart,
series: lines,
key: 'lineArea',
getGraphConfig: getLineAreaConfig,
getStartGraphConfig: getStartLineAreaConfig,
beforeUpdate: beforeUpdateLineAndArea,
beforeChange: beforeChangeLineAndArea
});
(0, updater_class.doUpdate)({
chart: chart,
series: lines,
key: 'line',
getGraphConfig: getLineConfig,
getStartGraphConfig: getStartLineConfig,
beforeUpdate: beforeUpdateLineAndArea,
beforeChange: beforeChangeLineAndArea
});
(0, updater_class.doUpdate)({
chart: chart,
series: lines,
key: 'linePoint',
getGraphConfig: getPointConfig,
getStartGraphConfig: getStartPointConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: lines,
key: 'lineLabel',
getGraphConfig: getLabelConfig
});
}
function calcLinesPosition(lines, chart) {
var axisData = chart.axisData;
return lines.map(function (lineItem) {
var lineData = (0, util$1.mergeSameStackData)(lineItem, lines);
lineData = mergeNonNumber(lineItem, lineData);
var lineAxis = getLineAxis(lineItem, axisData);
var linePosition = getLinePosition(lineData, lineAxis);
var lineFillBottomPos = getLineFillBottomPos(lineAxis);
return _objectSpread({}, lineItem, {
linePosition: linePosition.filter(function (p) {
return p;
}),
lineFillBottomPos: lineFillBottomPos
});
});
}
function mergeNonNumber(lineItem, lineData) {
var data = lineItem.data;
return lineData.map(function (v, i) {
return typeof data[i] === 'number' ? v : null;
});
}
function getLineAxis(line, axisData) {
var xAxisIndex = line.xAxisIndex,
yAxisIndex = line.yAxisIndex;
var xAxis = axisData.find(function (_ref) {
var axis = _ref.axis,
index = _ref.index;
return axis === 'x' && index === xAxisIndex;
});
var yAxis = axisData.find(function (_ref2) {
var axis = _ref2.axis,
index = _ref2.index;
return axis === 'y' && index === yAxisIndex;
});
return [xAxis, yAxis];
}
function getLinePosition(lineData, lineAxis) {
var valueAxisIndex = lineAxis.findIndex(function (_ref3) {
var data = _ref3.data;
return data === 'value';
});
var valueAxis = lineAxis[valueAxisIndex];
var labelAxis = lineAxis[1 - valueAxisIndex];
var linePosition = valueAxis.linePosition,
axis = valueAxis.axis;
var tickPosition = labelAxis.tickPosition;
var tickNum = tickPosition.length;
var valueAxisPosIndex = axis === 'x' ? 0 : 1;
var valueAxisStartPos = linePosition[0][valueAxisPosIndex];
var valueAxisEndPos = linePosition[1][valueAxisPosIndex];
var valueAxisPosMinus = valueAxisEndPos - valueAxisStartPos;
var maxValue = valueAxis.maxValue,
minValue = valueAxis.minValue;
var valueMinus = maxValue - minValue;
var position = new Array(tickNum).fill(0).map(function (foo, i) {
var v = lineData[i];
if (typeof v !== 'number') return null;
var valuePercent = (v - minValue) / valueMinus;
if (valueMinus === 0) valuePercent = 0;
return valuePercent * valueAxisPosMinus + valueAxisStartPos;
});
return position.map(function (vPos, i) {
if (i >= tickNum || typeof vPos !== 'number') return null;
var pos = [vPos, tickPosition[i][1 - valueAxisPosIndex]];
if (valueAxisPosIndex === 0) return pos;
pos.reverse();
return pos;
});
}
function getLineFillBottomPos(lineAxis) {
var valueAxis = lineAxis.find(function (_ref4) {
var data = _ref4.data;
return data === 'value';
});
var axis = valueAxis.axis,
linePosition = valueAxis.linePosition,
minValue = valueAxis.minValue,
maxValue = valueAxis.maxValue;
var changeIndex = axis === 'x' ? 0 : 1;
var changeValue = linePosition[0][changeIndex];
if (minValue < 0 && maxValue > 0) {
var valueMinus = maxValue - minValue;
var posMinus = Math.abs(linePosition[0][changeIndex] - linePosition[1][changeIndex]);
var offset = Math.abs(minValue) / valueMinus * posMinus;
if (axis === 'y') offset *= -1;
changeValue += offset;
}
return {
changeIndex: changeIndex,
changeValue: changeValue
};
}
function getLineAreaConfig(lineItem) {
var animationCurve = lineItem.animationCurve,
animationFrame = lineItem.animationFrame,
lineFillBottomPos = lineItem.lineFillBottomPos,
rLevel = lineItem.rLevel;
return [{
name: getLineGraphName(lineItem),
index: rLevel,
animationCurve: animationCurve,
animationFrame: animationFrame,
visible: lineItem.lineArea.show,
lineFillBottomPos: lineFillBottomPos,
shape: getLineAndAreaShape(lineItem),
style: getLineAreaStyle(lineItem),
drawed: lineAreaDrawed
}];
}
function getLineAndAreaShape(lineItem) {
var linePosition = lineItem.linePosition;
return {
points: linePosition
};
}
function getLineAreaStyle(lineItem) {
var lineArea = lineItem.lineArea,
color = lineItem.color;
var gradient = lineArea.gradient,
style = lineArea.style;
var fillColor = [style.fill || color];
var gradientColor = (0, util$1.deepMerge)(fillColor, gradient);
if (gradientColor.length === 1) gradientColor.push(gradientColor[0]);
var gradientParams = getGradientParams(lineItem);
style = _objectSpread({}, style, {
stroke: 'rgba(0, 0, 0, 0)'
});
return (0, util$1.deepMerge)({
gradientColor: gradientColor,
gradientParams: gradientParams,
gradientType: 'linear',
gradientWith: 'fill'
}, style);
}
function getGradientParams(lineItem) {
var lineFillBottomPos = lineItem.lineFillBottomPos,
linePosition = lineItem.linePosition;
var changeIndex = lineFillBottomPos.changeIndex,
changeValue = lineFillBottomPos.changeValue;
var mainPos = linePosition.map(function (p) {
return p[changeIndex];
});
var maxPos = Math.max.apply(Math, (0, _toConsumableArray2["default"])(mainPos));
var minPos = Math.min.apply(Math, (0, _toConsumableArray2["default"])(mainPos));
var beginPos = maxPos;
if (changeIndex === 1) beginPos = minPos;
if (changeIndex === 1) {
return [0, beginPos, 0, changeValue];
} else {
return [beginPos, 0, changeValue, 0];
}
}
function lineAreaDrawed(_ref5, _ref6) {
var lineFillBottomPos = _ref5.lineFillBottomPos,
shape = _ref5.shape;
var ctx = _ref6.ctx;
var points = shape.points;
var changeIndex = lineFillBottomPos.changeIndex,
changeValue = lineFillBottomPos.changeValue;
var linePoint1 = (0, _toConsumableArray2["default"])(points[points.length - 1]);
var linePoint2 = (0, _toConsumableArray2["default"])(points[0]);
linePoint1[changeIndex] = changeValue;
linePoint2[changeIndex] = changeValue;
ctx.lineTo.apply(ctx, (0, _toConsumableArray2["default"])(linePoint1));
ctx.lineTo.apply(ctx, (0, _toConsumableArray2["default"])(linePoint2));
ctx.closePath();
ctx.fill();
}
function getStartLineAreaConfig(lineItem) {
var config = getLineAreaConfig(lineItem)[0];
var style = _objectSpread({}, config.style);
style.opacity = 0;
config.style = style;
return [config];
}
function beforeUpdateLineAndArea(graphs, lineItem, i, updater) {
var cache = graphs[i];
if (!cache) return;
var currentName = getLineGraphName(lineItem);
var render = updater.chart.render;
var name = cache[0].name;
var delAll = currentName !== name;
if (!delAll) return;
cache.forEach(function (g) {
return render.delGraph(g);
});
graphs[i] = null;
}
function beforeChangeLineAndArea(graph, config) {
var points = config.shape.points;
var graphPoints = graph.shape.points;
var graphPointsNum = graphPoints.length;
var pointsNum = points.length;
if (pointsNum > graphPointsNum) {
var lastPoint = graphPoints.slice(-1)[0];
var newAddPoints = new Array(pointsNum - graphPointsNum).fill(0).map(function (foo) {
return (0, _toConsumableArray2["default"])(lastPoint);
});
graphPoints.push.apply(graphPoints, (0, _toConsumableArray2["default"])(newAddPoints));
} else if (pointsNum < graphPointsNum) {
graphPoints.splice(pointsNum);
}
}
function getLineConfig(lineItem) {
var animationCurve = lineItem.animationCurve,
animationFrame = lineItem.animationFrame,
rLevel = lineItem.rLevel;
return [{
name: getLineGraphName(lineItem),
index: rLevel + 1,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getLineAndAreaShape(lineItem),
style: getLineStyle(lineItem)
}];
}
function getLineGraphName(lineItem) {
var smooth = lineItem.smooth;
return smooth ? 'smoothline' : 'polyline';
}
function getLineStyle(lineItem) {
var lineStyle = lineItem.lineStyle,
color = lineItem.color,
smooth = lineItem.smooth,
linePosition = lineItem.linePosition;
var lineLength = getLineLength(linePosition, smooth);
return (0, util$1.deepMerge)({
stroke: color,
lineDash: [lineLength, 0]
}, lineStyle);
}
function getLineLength(points) {
var smooth = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (!smooth) return (0, util$1.getPolylineLength)(points);
var curve = polylineToBezierCurve(points);
return getBezierCurveLength(curve);
}
function getStartLineConfig(lineItem) {
var lineDash = lineItem.lineStyle.lineDash;
var config = getLineConfig(lineItem)[0];
var realLineDash = config.style.lineDash;
if (lineDash) {
realLineDash = [0, 0];
} else {
realLineDash = (0, _toConsumableArray2["default"])(realLineDash).reverse();
}
config.style.lineDash = realLineDash;
return [config];
}
function getPointConfig(lineItem) {
var animationCurve = lineItem.animationCurve,
animationFrame = lineItem.animationFrame,
rLevel = lineItem.rLevel;
var shapes = getPointShapes(lineItem);
var style = getPointStyle(lineItem);
return shapes.map(function (shape) {
return {
name: 'circle',
index: rLevel + 2,
visible: lineItem.linePoint.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: shape,
style: style
};
});
}
function getPointShapes(lineItem) {
var linePosition = lineItem.linePosition,
radius = lineItem.linePoint.radius;
return linePosition.map(function (_ref7) {
var _ref8 = (0, _slicedToArray2["default"])(_ref7, 2),
rx = _ref8[0],
ry = _ref8[1];
return {
r: radius,
rx: rx,
ry: ry
};
});
}
function getPointStyle(lineItem) {
var color = lineItem.color,
style = lineItem.linePoint.style;
return (0, util$1.deepMerge)({
stroke: color
}, style);
}
function getStartPointConfig(lineItem) {
var configs = getPointConfig(lineItem);
configs.forEach(function (config) {
config.shape.r = 0.1;
});
return configs;
}
function getLabelConfig(lineItem) {
var animationCurve = lineItem.animationCurve,
animationFrame = lineItem.animationFrame,
rLevel = lineItem.rLevel;
var shapes = getLabelShapes(lineItem);
var style = getLabelStyle(lineItem);
return shapes.map(function (shape, i) {
return {
name: 'text',
index: rLevel + 3,
visible: lineItem.label.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: shape,
style: style
};
});
}
function getLabelShapes(lineItem) {
var contents = formatterLabel(lineItem);
var position = getLabelPosition(lineItem);
return contents.map(function (content, i) {
return {
content: content,
position: position[i]
};
});
}
function getLabelPosition(lineItem) {
var linePosition = lineItem.linePosition,
lineFillBottomPos = lineItem.lineFillBottomPos,
label = lineItem.label;
var position = label.position,
offset = label.offset;
var changeIndex = lineFillBottomPos.changeIndex,
changeValue = lineFillBottomPos.changeValue;
return linePosition.map(function (pos) {
if (position === 'bottom') {
pos = (0, _toConsumableArray2["default"])(pos);
pos[changeIndex] = changeValue;
}
if (position === 'center') {
var bottom = (0, _toConsumableArray2["default"])(pos);
bottom[changeIndex] = changeValue;
pos = getCenterLabelPoint(pos, bottom);
}
return getOffsetedPoint(pos, offset);
});
}
function getOffsetedPoint(_ref9, _ref10) {
var _ref11 = (0, _slicedToArray2["default"])(_ref9, 2),
x = _ref11[0],
y = _ref11[1];
var _ref12 = (0, _slicedToArray2["default"])(_ref10, 2),
ox = _ref12[0],
oy = _ref12[1];
return [x + ox, y + oy];
}
function getCenterLabelPoint(_ref13, _ref14) {
var _ref15 = (0, _slicedToArray2["default"])(_ref13, 2),
ax = _ref15[0],
ay = _ref15[1];
var _ref16 = (0, _slicedToArray2["default"])(_ref14, 2),
bx = _ref16[0],
by = _ref16[1];
return [(ax + bx) / 2, (ay + by) / 2];
}
function formatterLabel(lineItem) {
var data = lineItem.data,
formatter = lineItem.label.formatter;
data = data.filter(function (d) {
return typeof d === 'number';
}).map(function (d) {
return d.toString();
});
if (!formatter) return data;
var type = (0, _typeof2["default"])(formatter);
if (type === 'string') return data.map(function (d) {
return formatter.replace('{value}', d);
});
if (type === 'function') return data.map(function (value, index) {
return formatter({
value: value,
index: index
});
});
return data;
}
function getLabelStyle(lineItem) {
var color = lineItem.color,
style = lineItem.label.style;
return (0, util$1.deepMerge)({
fill: color
}, style);
}
});
unwrapExports(line_1$1);
var line_2 = line_1$1.line;
var bar_1$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.bar = bar;
var _typeof2 = interopRequireDefault(_typeof_1);
var _defineProperty2 = interopRequireDefault(defineProperty);
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function bar(chart) {
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var xAxis = option.xAxis,
yAxis = option.yAxis,
series = option.series;
var bars = [];
if (xAxis && yAxis && series) {
bars = (0, util$1.initNeedSeries)(series, config.barConfig, 'bar');
bars = setBarAxis(bars, chart);
bars = setBarPositionData(bars);
bars = calcBarsPosition(bars);
}
(0, updater_class.doUpdate)({
chart: chart,
series: bars.slice(-1),
key: 'backgroundBar',
getGraphConfig: getBackgroundBarConfig
});
bars.reverse();
(0, updater_class.doUpdate)({
chart: chart,
series: bars,
key: 'bar',
getGraphConfig: getBarConfig,
getStartGraphConfig: getStartBarConfig,
beforeUpdate: beforeUpdateBar
});
(0, updater_class.doUpdate)({
chart: chart,
series: bars,
key: 'barLabel',
getGraphConfig: getLabelConfig
});
}
function setBarAxis(bars, chart) {
var axisData = chart.axisData;
bars.forEach(function (bar) {
var xAxisIndex = bar.xAxisIndex,
yAxisIndex = bar.yAxisIndex;
if (typeof xAxisIndex !== 'number') xAxisIndex = 0;
if (typeof yAxisIndex !== 'number') yAxisIndex = 0;
var xAxis = axisData.find(function (_ref) {
var axis = _ref.axis,
index = _ref.index;
return "".concat(axis).concat(index) === "x".concat(xAxisIndex);
});
var yAxis = axisData.find(function (_ref2) {
var axis = _ref2.axis,
index = _ref2.index;
return "".concat(axis).concat(index) === "y".concat(yAxisIndex);
});
var axis = [xAxis, yAxis];
var valueAxisIndex = axis.findIndex(function (_ref3) {
var data = _ref3.data;
return data === 'value';
});
bar.valueAxis = axis[valueAxisIndex];
bar.labelAxis = axis[1 - valueAxisIndex];
});
return bars;
}
function setBarPositionData(bars, chart) {
var labelBarGroup = groupBarByLabelAxis(bars);
labelBarGroup.forEach(function (group) {
setBarIndex(group);
setBarNum(group);
setBarCategoryWidth(group);
setBarWidthAndGap(group);
setBarAllWidthAndGap(group);
});
return bars;
}
function setBarIndex(bars) {
var stacks = getBarStack(bars);
stacks = stacks.map(function (stack) {
return {
stack: stack,
index: -1
};
});
var currentIndex = 0;
bars.forEach(function (bar) {
var stack = bar.stack;
if (!stack) {
bar.barIndex = currentIndex;
currentIndex++;
} else {
var stackData = stacks.find(function (_ref4) {
var s = _ref4.stack;
return s === stack;
});
if (stackData.index === -1) {
stackData.index = currentIndex;
currentIndex++;
}
bar.barIndex = stackData.index;
}
});
}
function groupBarByLabelAxis(bars) {
var labelAxis = bars.map(function (_ref5) {
var _ref5$labelAxis = _ref5.labelAxis,
axis = _ref5$labelAxis.axis,
index = _ref5$labelAxis.index;
return axis + index;
});
labelAxis = (0, _toConsumableArray2["default"])(new Set(labelAxis));
return labelAxis.map(function (axisIndex) {
return bars.filter(function (_ref6) {
var _ref6$labelAxis = _ref6.labelAxis,
axis = _ref6$labelAxis.axis,
index = _ref6$labelAxis.index;
return axis + index === axisIndex;
});
});
}
function getBarStack(bars) {
var stacks = [];
bars.forEach(function (_ref7) {
var stack = _ref7.stack;
if (stack) stacks.push(stack);
});
return (0, _toConsumableArray2["default"])(new Set(stacks));
}
function setBarNum(bars) {
var barNum = (0, _toConsumableArray2["default"])(new Set(bars.map(function (_ref8) {
var barIndex = _ref8.barIndex;
return barIndex;
}))).length;
bars.forEach(function (bar) {
return bar.barNum = barNum;
});
}
function setBarCategoryWidth(bars) {
var lastBar = bars.slice(-1)[0];
var barCategoryGap = lastBar.barCategoryGap,
tickGap = lastBar.labelAxis.tickGap;
var barCategoryWidth = 0;
if (typeof barCategoryGap === 'number') {
barCategoryWidth = barCategoryGap;
} else {
barCategoryWidth = (1 - parseInt(barCategoryGap) / 100) * tickGap;
}
bars.forEach(function (bar) {
return bar.barCategoryWidth = barCategoryWidth;
});
}
function setBarWidthAndGap(bars) {
var _bars$slice$ = bars.slice(-1)[0],
barCategoryWidth = _bars$slice$.barCategoryWidth,
barWidth = _bars$slice$.barWidth,
barGap = _bars$slice$.barGap,
barNum = _bars$slice$.barNum;
var widthAndGap = [];
if (typeof barWidth === 'number' || barWidth !== 'auto') {
widthAndGap = getBarWidthAndGapWithPercentOrNumber(barCategoryWidth, barWidth, barGap);
} else if (barWidth === 'auto') {
widthAndGap = getBarWidthAndGapWidthAuto(barCategoryWidth, barWidth, barGap, barNum);
}
var _widthAndGap = widthAndGap,
_widthAndGap2 = (0, _slicedToArray2["default"])(_widthAndGap, 2),
width = _widthAndGap2[0],
gap = _widthAndGap2[1];
bars.forEach(function (bar) {
bar.barWidth = width;
bar.barGap = gap;
});
}
function getBarWidthAndGapWithPercentOrNumber(barCategoryWidth, barWidth, barGap) {
var width = 0,
gap = 0;
if (typeof barWidth === 'number') {
width = barWidth;
} else {
width = parseInt(barWidth) / 100 * barCategoryWidth;
}
if (typeof barGap === 'number') {
gap = barGap;
} else {
gap = parseInt(barGap) / 100 * width;
}
return [width, gap];
}
function getBarWidthAndGapWidthAuto(barCategoryWidth, barWidth, barGap, barNum) {
var width = 0,
gap = 0;
var barItemWidth = barCategoryWidth / barNum;
if (typeof barGap === 'number') {
gap = barGap;
width = barItemWidth - gap;
} else {
var percent = 10 + parseInt(barGap) / 10;
if (percent === 0) {
width = barItemWidth * 2;
gap = -width;
} else {
width = barItemWidth / percent * 10;
gap = barItemWidth - width;
}
}
return [width, gap];
}
function setBarAllWidthAndGap(bars) {
var _bars$slice$2 = bars.slice(-1)[0],
barGap = _bars$slice$2.barGap,
barWidth = _bars$slice$2.barWidth,
barNum = _bars$slice$2.barNum;
var barAllWidthAndGap = (barGap + barWidth) * barNum - barGap;
bars.forEach(function (bar) {
return bar.barAllWidthAndGap = barAllWidthAndGap;
});
}
function calcBarsPosition(bars, chart) {
bars = calcBarValueAxisCoordinate(bars);
bars = calcBarLabelAxisCoordinate(bars);
bars = eliminateNullBarLabelAxis(bars);
bars = keepSameNumBetweenBarAndData(bars);
return bars;
}
function calcBarLabelAxisCoordinate(bars) {
return bars.map(function (bar) {
var labelAxis = bar.labelAxis,
barAllWidthAndGap = bar.barAllWidthAndGap,
barGap = bar.barGap,
barWidth = bar.barWidth,
barIndex = bar.barIndex;
var tickGap = labelAxis.tickGap,
tickPosition = labelAxis.tickPosition,
axis = labelAxis.axis;
var coordinateIndex = axis === 'x' ? 0 : 1;
var barLabelAxisPos = tickPosition.map(function (tick, i) {
var barCategoryStartPos = tickPosition[i][coordinateIndex] - tickGap / 2;
var barItemsStartPos = barCategoryStartPos + (tickGap - barAllWidthAndGap) / 2;
return barItemsStartPos + (barIndex + 0.5) * barWidth + barIndex * barGap;
});
return _objectSpread({}, bar, {
barLabelAxisPos: barLabelAxisPos
});
});
}
function calcBarValueAxisCoordinate(bars) {
return bars.map(function (bar) {
var data = (0, util$1.mergeSameStackData)(bar, bars);
data = eliminateNonNumberData(bar, data);
var _bar$valueAxis = bar.valueAxis,
axis = _bar$valueAxis.axis,
minValue = _bar$valueAxis.minValue,
maxValue = _bar$valueAxis.maxValue,
linePosition = _bar$valueAxis.linePosition;
var startPos = getValuePos(minValue, maxValue, minValue < 0 ? 0 : minValue, linePosition, axis);
var endPos = data.map(function (v) {
return getValuePos(minValue, maxValue, v, linePosition, axis);
});
var barValueAxisPos = endPos.map(function (p) {
return [startPos, p];
});
return _objectSpread({}, bar, {
barValueAxisPos: barValueAxisPos
});
});
}
function eliminateNonNumberData(barItem, barData) {
var data = barItem.data;
return barData.map(function (v, i) {
return typeof data[i] === 'number' ? v : null;
}).filter(function (d) {
return d !== null;
});
}
function eliminateNullBarLabelAxis(bars) {
return bars.map(function (bar) {
var barLabelAxisPos = bar.barLabelAxisPos,
data = bar.data;
data.forEach(function (d, i) {
if (typeof d === 'number') return;
barLabelAxisPos[i] = null;
});
return _objectSpread({}, bar, {
barLabelAxisPos: barLabelAxisPos.filter(function (p) {
return p !== null;
})
});
});
}
function keepSameNumBetweenBarAndData(bars) {
bars.forEach(function (bar) {
var data = bar.data,
barLabelAxisPos = bar.barLabelAxisPos,
barValueAxisPos = bar.barValueAxisPos;
var dataNum = data.filter(function (d) {
return typeof d === 'number';
}).length;
var axisPosNum = barLabelAxisPos.length;
if (axisPosNum > dataNum) {
barLabelAxisPos.splice(dataNum);
barValueAxisPos.splice(dataNum);
}
});
return bars;
}
function getValuePos(min, max, value, linePosition, axis) {
if (typeof value !== 'number') return null;
var valueMinus = max - min;
var coordinateIndex = axis === 'x' ? 0 : 1;
var posMinus = linePosition[1][coordinateIndex] - linePosition[0][coordinateIndex];
var percent = (value - min) / valueMinus;
if (valueMinus === 0) percent = 0;
var pos = percent * posMinus;
return pos + linePosition[0][coordinateIndex];
}
function getBackgroundBarConfig(barItem) {
var animationCurve = barItem.animationCurve,
animationFrame = barItem.animationFrame,
rLevel = barItem.rLevel;
var shapes = getBackgroundBarShapes(barItem);
var style = getBackgroundBarStyle(barItem);
return shapes.map(function (shape) {
return {
name: 'rect',
index: rLevel,
visible: barItem.backgroundBar.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: shape,
style: style
};
});
}
function getBackgroundBarShapes(barItem) {
var labelAxis = barItem.labelAxis,
valueAxis = barItem.valueAxis;
var tickPosition = labelAxis.tickPosition;
var axis = valueAxis.axis,
linePosition = valueAxis.linePosition;
var width = getBackgroundBarWidth(barItem);
var haltWidth = width / 2;
var posIndex = axis === 'x' ? 0 : 1;
var centerPos = tickPosition.map(function (p) {
return p[1 - posIndex];
});
var _ref9 = [linePosition[0][posIndex], linePosition[1][posIndex]],
start = _ref9[0],
end = _ref9[1];
return centerPos.map(function (center) {
if (axis === 'x') {
return {
x: start,
y: center - haltWidth,
w: end - start,
h: width
};
} else {
return {
x: center - haltWidth,
y: end,
w: width,
h: start - end
};
}
});
}
function getBackgroundBarWidth(barItem) {
var barAllWidthAndGap = barItem.barAllWidthAndGap,
barCategoryWidth = barItem.barCategoryWidth,
backgroundBar = barItem.backgroundBar;
var width = backgroundBar.width;
if (typeof width === 'number') return width;
if (width === 'auto') return barAllWidthAndGap;
return parseInt(width) / 100 * barCategoryWidth;
}
function getBackgroundBarStyle(barItem) {
return barItem.backgroundBar.style;
}
function getBarConfig(barItem) {
var barLabelAxisPos = barItem.barLabelAxisPos,
animationCurve = barItem.animationCurve,
animationFrame = barItem.animationFrame,
rLevel = barItem.rLevel;
var name = getBarName(barItem);
return barLabelAxisPos.map(function (foo, i) {
return {
name: name,
index: rLevel,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getBarShape(barItem, i),
style: getBarStyle(barItem, i)
};
});
}
function getBarName(barItem) {
var shapeType = barItem.shapeType;
if (shapeType === 'leftEchelon' || shapeType === 'rightEchelon') return 'polyline';
return 'rect';
}
function getBarShape(barItem, i) {
var shapeType = barItem.shapeType;
if (shapeType === 'leftEchelon') {
return getLeftEchelonShape(barItem, i);
} else if (shapeType === 'rightEchelon') {
return getRightEchelonShape(barItem, i);
} else {
return getNormalBarShape(barItem, i);
}
}
function getLeftEchelonShape(barItem, i) {
var barValueAxisPos = barItem.barValueAxisPos,
barLabelAxisPos = barItem.barLabelAxisPos,
barWidth = barItem.barWidth,
echelonOffset = barItem.echelonOffset;
var _barValueAxisPos$i = (0, _slicedToArray2["default"])(barValueAxisPos[i], 2),
start = _barValueAxisPos$i[0],
end = _barValueAxisPos$i[1];
var labelAxisPos = barLabelAxisPos[i];
var halfWidth = barWidth / 2;
var valueAxis = barItem.valueAxis.axis;
var points = [];
if (valueAxis === 'x') {
points[0] = [end, labelAxisPos - halfWidth];
points[1] = [end, labelAxisPos + halfWidth];
points[2] = [start, labelAxisPos + halfWidth];
points[3] = [start + echelonOffset, labelAxisPos - halfWidth];
if (end - start < echelonOffset) points.splice(3, 1);
} else {
points[0] = [labelAxisPos - halfWidth, end];
points[1] = [labelAxisPos + halfWidth, end];
points[2] = [labelAxisPos + halfWidth, start];
points[3] = [labelAxisPos - halfWidth, start - echelonOffset];
if (start - end < echelonOffset) points.splice(3, 1);
}
return {
points: points,
close: true
};
}
function getRightEchelonShape(barItem, i) {
var barValueAxisPos = barItem.barValueAxisPos,
barLabelAxisPos = barItem.barLabelAxisPos,
barWidth = barItem.barWidth,
echelonOffset = barItem.echelonOffset;
var _barValueAxisPos$i2 = (0, _slicedToArray2["default"])(barValueAxisPos[i], 2),
start = _barValueAxisPos$i2[0],
end = _barValueAxisPos$i2[1];
var labelAxisPos = barLabelAxisPos[i];
var halfWidth = barWidth / 2;
var valueAxis = barItem.valueAxis.axis;
var points = [];
if (valueAxis === 'x') {
points[0] = [end, labelAxisPos + halfWidth];
points[1] = [end, labelAxisPos - halfWidth];
points[2] = [start, labelAxisPos - halfWidth];
points[3] = [start + echelonOffset, labelAxisPos + halfWidth];
if (end - start < echelonOffset) points.splice(2, 1);
} else {
points[0] = [labelAxisPos + halfWidth, end];
points[1] = [labelAxisPos - halfWidth, end];
points[2] = [labelAxisPos - halfWidth, start];
points[3] = [labelAxisPos + halfWidth, start - echelonOffset];
if (start - end < echelonOffset) points.splice(2, 1);
}
return {
points: points,
close: true
};
}
function getNormalBarShape(barItem, i) {
var barValueAxisPos = barItem.barValueAxisPos,
barLabelAxisPos = barItem.barLabelAxisPos,
barWidth = barItem.barWidth;
var _barValueAxisPos$i3 = (0, _slicedToArray2["default"])(barValueAxisPos[i], 2),
start = _barValueAxisPos$i3[0],
end = _barValueAxisPos$i3[1];
var labelAxisPos = barLabelAxisPos[i];
var valueAxis = barItem.valueAxis.axis;
var shape = {};
if (valueAxis === 'x') {
shape.x = start;
shape.y = labelAxisPos - barWidth / 2;
shape.w = end - start;
shape.h = barWidth;
} else {
shape.x = labelAxisPos - barWidth / 2;
shape.y = end;
shape.w = barWidth;
shape.h = start - end;
}
return shape;
}
function getBarStyle(barItem, i) {
var barStyle = barItem.barStyle,
gradient = barItem.gradient,
color = barItem.color;
var fillColor = [barStyle.fill || color];
var gradientColor = (0, util$1.deepMerge)(fillColor, gradient.color);
if (gradientColor.length === 1) gradientColor.push(gradientColor[0]);
var gradientParams = getGradientParams(barItem, i);
return (0, util$1.deepMerge)({
gradientColor: gradientColor,
gradientParams: gradientParams,
gradientType: 'linear',
gradientWith: 'fill'
}, barStyle);
}
function getGradientParams(barItem, i) {
var barValueAxisPos = barItem.barValueAxisPos,
barLabelAxisPos = barItem.barLabelAxisPos,
data = barItem.data;
var _barItem$valueAxis = barItem.valueAxis,
linePosition = _barItem$valueAxis.linePosition,
axis = _barItem$valueAxis.axis;
var _barValueAxisPos$i4 = (0, _slicedToArray2["default"])(barValueAxisPos[i], 2),
start = _barValueAxisPos$i4[0],
end = _barValueAxisPos$i4[1];
var labelAxisPos = barLabelAxisPos[i];
var value = data[i];
var _linePosition = (0, _slicedToArray2["default"])(linePosition, 2),
lineStart = _linePosition[0],
lineEnd = _linePosition[1];
var valueAxisIndex = axis === 'x' ? 0 : 1;
var endPos = end;
if (!barItem.gradient.local) {
endPos = value < 0 ? lineStart[valueAxisIndex] : lineEnd[valueAxisIndex];
}
if (axis === 'y') {
return [labelAxisPos, endPos, labelAxisPos, start];
} else {
return [endPos, labelAxisPos, start, labelAxisPos];
}
}
function getStartBarConfig(barItem) {
var configs = getBarConfig(barItem);
var shapeType = barItem.shapeType;
configs.forEach(function (config) {
var shape = config.shape;
if (shapeType === 'leftEchelon') {
shape = getStartLeftEchelonShape(shape, barItem);
} else if (shapeType === 'rightEchelon') {
shape = getStartRightEchelonShape(shape, barItem);
} else {
shape = getStartNormalBarShape(shape, barItem);
}
config.shape = shape;
});
return configs;
}
function getStartLeftEchelonShape(shape, barItem) {
var axis = barItem.valueAxis.axis;
shape = (0, util.deepClone)(shape);
var _shape = shape,
points = _shape.points;
var index = axis === 'x' ? 0 : 1;
var start = points[2][index];
points.forEach(function (point) {
return point[index] = start;
});
return shape;
}
function getStartRightEchelonShape(shape, barItem) {
var axis = barItem.valueAxis.axis;
shape = (0, util.deepClone)(shape);
var _shape2 = shape,
points = _shape2.points;
var index = axis === 'x' ? 0 : 1;
var start = points[2][index];
points.forEach(function (point) {
return point[index] = start;
});
return shape;
}
function getStartNormalBarShape(shape, barItem) {
var axis = barItem.valueAxis.axis;
var x = shape.x,
y = shape.y,
w = shape.w,
h = shape.h;
if (axis === 'x') {
w = 0;
} else {
y = y + h;
h = 0;
}
return {
x: x,
y: y,
w: w,
h: h
};
}
function beforeUpdateBar(graphs, barItem, i, updater) {
var render = updater.chart.render;
var name = getBarName(barItem);
if (graphs[i] && graphs[i][0].name !== name) {
graphs[i].forEach(function (g) {
return render.delGraph(g);
});
graphs[i] = null;
}
}
function getLabelConfig(barItem) {
var animationCurve = barItem.animationCurve,
animationFrame = barItem.animationFrame,
rLevel = barItem.rLevel;
var shapes = getLabelShapes(barItem);
var style = getLabelStyle(barItem);
return shapes.map(function (shape) {
return {
name: 'text',
index: rLevel,
visible: barItem.label.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: shape,
style: style
};
});
}
function getLabelShapes(barItem) {
var contents = getFormatterLabels(barItem);
var position = getLabelsPosition(barItem);
return position.map(function (pos, i) {
return {
position: pos,
content: contents[i]
};
});
}
function getFormatterLabels(barItem) {
var data = barItem.data,
label = barItem.label;
var formatter = label.formatter;
data = data.filter(function (d) {
return typeof d === 'number';
}).map(function (d) {
return d.toString();
});
if (!formatter) return data;
var type = (0, _typeof2["default"])(formatter);
if (type === 'string') return data.map(function (d) {
return formatter.replace('{value}', d);
});
if (type === 'function') return data.map(function (d, i) {
return formatter({
value: d,
index: i
});
});
return data;
}
function getLabelsPosition(barItem) {
var label = barItem.label,
barValueAxisPos = barItem.barValueAxisPos,
barLabelAxisPos = barItem.barLabelAxisPos;
var position = label.position,
offset = label.offset;
var axis = barItem.valueAxis.axis;
return barValueAxisPos.map(function (_ref10, i) {
var _ref11 = (0, _slicedToArray2["default"])(_ref10, 2),
start = _ref11[0],
end = _ref11[1];
var labelAxisPos = barLabelAxisPos[i];
var pos = [end, labelAxisPos];
if (position === 'bottom') {
pos = [start, labelAxisPos];
}
if (position === 'center') {
pos = [(start + end) / 2, labelAxisPos];
}
if (axis === 'y') pos.reverse();
return getOffsetedPoint(pos, offset);
});
}
function getOffsetedPoint(_ref12, _ref13) {
var _ref14 = (0, _slicedToArray2["default"])(_ref12, 2),
x = _ref14[0],
y = _ref14[1];
var _ref15 = (0, _slicedToArray2["default"])(_ref13, 2),
ox = _ref15[0],
oy = _ref15[1];
return [x + ox, y + oy];
}
function getLabelStyle(barItem) {
var color = barItem.color,
style = barItem.label.style,
gc = barItem.gradient.color;
if (gc.length) color = gc[0];
style = (0, util$1.deepMerge)({
fill: color
}, style);
return style;
}
});
unwrapExports(bar_1$1);
var bar_2 = bar_1$1.bar;
var pie_1$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.pie = pie;
var _defineProperty2 = interopRequireDefault(defineProperty);
var _typeof2 = interopRequireDefault(_typeof_1);
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function pie(chart) {
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var series = option.series;
if (!series) series = [];
var pies = (0, util$1.initNeedSeries)(series, pie$1.pieConfig, 'pie');
pies = calcPiesCenter(pies, chart);
pies = calcPiesRadius(pies, chart);
pies = calcRosePiesRadius(pies);
pies = calcPiesPercent(pies);
pies = calcPiesAngle(pies);
pies = calcPiesInsideLabelPos(pies);
pies = calcPiesEdgeCenterPos(pies);
pies = calcPiesOutSideLabelPos(pies);
(0, updater_class.doUpdate)({
chart: chart,
series: pies,
key: 'pie',
getGraphConfig: getPieConfig,
getStartGraphConfig: getStartPieConfig,
beforeChange: beforeChangePie
});
(0, updater_class.doUpdate)({
chart: chart,
series: pies,
key: 'pieInsideLabel',
getGraphConfig: getInsideLabelConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: pies,
key: 'pieOutsideLabelLine',
getGraphConfig: getOutsideLabelLineConfig,
getStartGraphConfig: getStartOutsideLabelLineConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: pies,
key: 'pieOutsideLabel',
getGraphConfig: getOutsideLabelConfig,
getStartGraphConfig: getStartOutsideLabelConfig
});
}
function calcPiesCenter(pies, chart) {
var area = chart.render.area;
pies.forEach(function (pie) {
var center = pie.center;
center = center.map(function (pos, i) {
if (typeof pos === 'number') return pos;
return parseInt(pos) / 100 * area[i];
});
pie.center = center;
});
return pies;
}
function calcPiesRadius(pies, chart) {
var maxRadius = Math.min.apply(Math, (0, _toConsumableArray2["default"])(chart.render.area)) / 2;
pies.forEach(function (pie) {
var radius = pie.radius,
data = pie.data;
radius = getNumberRadius(radius, maxRadius);
data.forEach(function (item) {
var itemRadius = item.radius;
if (!itemRadius) itemRadius = radius;
itemRadius = getNumberRadius(itemRadius, maxRadius);
item.radius = itemRadius;
});
pie.radius = radius;
});
return pies;
}
function getNumberRadius(radius, maxRadius) {
if (!(radius instanceof Array)) radius = [0, radius];
radius = radius.map(function (r) {
if (typeof r === 'number') return r;
return parseInt(r) / 100 * maxRadius;
});
return radius;
}
function calcRosePiesRadius(pies, chart) {
var rosePie = pies.filter(function (_ref) {
var roseType = _ref.roseType;
return roseType;
});
rosePie.forEach(function (pie) {
var radius = pie.radius,
data = pie.data,
roseSort = pie.roseSort;
var roseIncrement = getRoseIncrement(pie);
var dataCopy = (0, _toConsumableArray2["default"])(data);
data = sortData(data);
data.forEach(function (item, i) {
item.radius[1] = radius[1] - roseIncrement * i;
});
if (roseSort) {
data.reverse();
} else {
pie.data = dataCopy;
}
pie.roseIncrement = roseIncrement;
});
return pies;
}
function sortData(data) {
return data.sort(function (_ref2, _ref3) {
var a = _ref2.value;
var b = _ref3.value;
if (a === b) return 0;
if (a > b) return -1;
if (a < b) return 1;
});
}
function getRoseIncrement(pie) {
var radius = pie.radius,
roseIncrement = pie.roseIncrement;
if (typeof roseIncrement === 'number') return roseIncrement;
if (roseIncrement === 'auto') {
var data = pie.data;
var allRadius = data.reduce(function (all, _ref4) {
var radius = _ref4.radius;
return [].concat((0, _toConsumableArray2["default"])(all), (0, _toConsumableArray2["default"])(radius));
}, []);
var minRadius = Math.min.apply(Math, (0, _toConsumableArray2["default"])(allRadius));
var maxRadius = Math.max.apply(Math, (0, _toConsumableArray2["default"])(allRadius));
return (maxRadius - minRadius) * 0.6 / (data.length - 1 || 1);
}
return parseInt(roseIncrement) / 100 * radius[1];
}
function calcPiesPercent(pies) {
pies.forEach(function (pie) {
var data = pie.data,
percentToFixed = pie.percentToFixed;
var sum = getDataSum(data);
data.forEach(function (item) {
var value = item.value;
item.percent = parseFloat((value / sum * 100).toFixed(percentToFixed));
});
var percentSumNoLast = (0, util$1.mulAdd)(data.slice(0, -1).map(function (_ref5) {
var percent = _ref5.percent;
return percent;
}));
data.slice(-1)[0].percent = 100 - percentSumNoLast;
});
return pies;
}
function getDataSum(data) {
return (0, util$1.mulAdd)(data.map(function (_ref6) {
var value = _ref6.value;
return value;
}));
}
function calcPiesAngle(pies) {
pies.forEach(function (pie) {
var start = pie.startAngle,
data = pie.data;
data.forEach(function (item, i) {
var _getDataAngle = getDataAngle(data, i),
_getDataAngle2 = (0, _slicedToArray2["default"])(_getDataAngle, 2),
startAngle = _getDataAngle2[0],
endAngle = _getDataAngle2[1];
item.startAngle = start + startAngle;
item.endAngle = start + endAngle;
});
});
return pies;
}
function getDataAngle(data, i) {
var fullAngle = Math.PI * 2;
var needAddData = data.slice(0, i + 1);
var percentSum = (0, util$1.mulAdd)(needAddData.map(function (_ref7) {
var percent = _ref7.percent;
return percent;
}));
var percent = data[i].percent;
var startPercent = percentSum - percent;
return [fullAngle * startPercent / 100, fullAngle * percentSum / 100];
}
function calcPiesInsideLabelPos(pies) {
pies.forEach(function (pieItem) {
var data = pieItem.data;
data.forEach(function (item) {
item.insideLabelPos = getPieInsideLabelPos(pieItem, item);
});
});
return pies;
}
function getPieInsideLabelPos(pieItem, dataItem) {
var center = pieItem.center;
var startAngle = dataItem.startAngle,
endAngle = dataItem.endAngle,
_dataItem$radius = (0, _slicedToArray2["default"])(dataItem.radius, 2),
ir = _dataItem$radius[0],
or = _dataItem$radius[1];
var radius = (ir + or) / 2;
var angle = (startAngle + endAngle) / 2;
return util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([radius, angle]));
}
function calcPiesEdgeCenterPos(pies) {
pies.forEach(function (pie) {
var data = pie.data,
center = pie.center;
data.forEach(function (item) {
var startAngle = item.startAngle,
endAngle = item.endAngle,
radius = item.radius;
var centerAngle = (startAngle + endAngle) / 2;
var pos = util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([radius[1], centerAngle]));
item.edgeCenterPos = pos;
});
});
return pies;
}
function calcPiesOutSideLabelPos(pies) {
pies.forEach(function (pieItem) {
var leftPieDataItems = getLeftOrRightPieDataItems(pieItem);
var rightPieDataItems = getLeftOrRightPieDataItems(pieItem, false);
leftPieDataItems = sortPiesFromTopToBottom(leftPieDataItems);
rightPieDataItems = sortPiesFromTopToBottom(rightPieDataItems);
addLabelLineAndAlign(leftPieDataItems, pieItem);
addLabelLineAndAlign(rightPieDataItems, pieItem, false);
});
return pies;
}
function getLabelLineBendRadius(pieItem) {
var labelLineBendGap = pieItem.outsideLabel.labelLineBendGap;
var maxRadius = getPieMaxRadius(pieItem);
if (typeof labelLineBendGap !== 'number') {
labelLineBendGap = parseInt(labelLineBendGap) / 100 * maxRadius;
}
return labelLineBendGap + maxRadius;
}
function getPieMaxRadius(pieItem) {
var data = pieItem.data;
var radius = data.map(function (_ref8) {
var _ref8$radius = (0, _slicedToArray2["default"])(_ref8.radius, 2),
foo = _ref8$radius[0],
r = _ref8$radius[1];
return r;
});
return Math.max.apply(Math, (0, _toConsumableArray2["default"])(radius));
}
function getLeftOrRightPieDataItems(pieItem) {
var left = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
var data = pieItem.data,
center = pieItem.center;
var centerXPos = center[0];
return data.filter(function (_ref9) {
var edgeCenterPos = _ref9.edgeCenterPos;
var xPos = edgeCenterPos[0];
if (left) return xPos <= centerXPos;
return xPos > centerXPos;
});
}
function sortPiesFromTopToBottom(dataItem) {
dataItem.sort(function (_ref10, _ref11) {
var _ref10$edgeCenterPos = (0, _slicedToArray2["default"])(_ref10.edgeCenterPos, 2),
t = _ref10$edgeCenterPos[0],
ay = _ref10$edgeCenterPos[1];
var _ref11$edgeCenterPos = (0, _slicedToArray2["default"])(_ref11.edgeCenterPos, 2),
tt = _ref11$edgeCenterPos[0],
by = _ref11$edgeCenterPos[1];
if (ay > by) return 1;
if (ay < by) return -1;
if (ay === by) return 0;
});
return dataItem;
}
function addLabelLineAndAlign(dataItem, pieItem) {
var left = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
var center = pieItem.center,
outsideLabel = pieItem.outsideLabel;
var radius = getLabelLineBendRadius(pieItem);
dataItem.forEach(function (item) {
var edgeCenterPos = item.edgeCenterPos,
startAngle = item.startAngle,
endAngle = item.endAngle;
var labelLineEndLength = outsideLabel.labelLineEndLength;
var angle = (startAngle + endAngle) / 2;
var bendPoint = util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([radius, angle]));
var endPoint = (0, _toConsumableArray2["default"])(bendPoint);
endPoint[0] += labelLineEndLength * (left ? -1 : 1);
item.labelLine = [edgeCenterPos, bendPoint, endPoint];
item.labelLineLength = (0, util$1.getPolylineLength)(item.labelLine);
item.align = {
textAlign: 'left',
textBaseline: 'middle'
};
if (left) item.align.textAlign = 'right';
});
}
function getPieConfig(pieItem) {
var data = pieItem.data,
animationCurve = pieItem.animationCurve,
animationFrame = pieItem.animationFrame,
rLevel = pieItem.rLevel;
return data.map(function (foo, i) {
return {
name: 'pie',
index: rLevel,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getPieShape(pieItem, i),
style: getPieStyle(pieItem, i)
};
});
}
function getStartPieConfig(pieItem) {
var animationDelayGap = pieItem.animationDelayGap,
startAnimationCurve = pieItem.startAnimationCurve;
var configs = getPieConfig(pieItem);
configs.forEach(function (config, i) {
config.animationCurve = startAnimationCurve;
config.animationDelay = i * animationDelayGap;
config.shape.or = config.shape.ir;
});
return configs;
}
function beforeChangePie(graph) {
graph.animationDelay = 0;
}
function getPieShape(pieItem, i) {
var center = pieItem.center,
data = pieItem.data;
var dataItem = data[i];
var radius = dataItem.radius,
startAngle = dataItem.startAngle,
endAngle = dataItem.endAngle;
return {
startAngle: startAngle,
endAngle: endAngle,
ir: radius[0],
or: radius[1],
rx: center[0],
ry: center[1]
};
}
function getPieStyle(pieItem, i) {
var pieStyle = pieItem.pieStyle,
data = pieItem.data;
var dataItem = data[i];
var color = dataItem.color;
return (0, util$1.deepMerge)({
fill: color
}, pieStyle);
}
function getInsideLabelConfig(pieItem) {
var animationCurve = pieItem.animationCurve,
animationFrame = pieItem.animationFrame,
data = pieItem.data,
rLevel = pieItem.rLevel;
return data.map(function (foo, i) {
return {
name: 'text',
index: rLevel,
visible: pieItem.insideLabel.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getInsideLabelShape(pieItem, i),
style: getInsideLabelStyle(pieItem)
};
});
}
function getInsideLabelShape(pieItem, i) {
var insideLabel = pieItem.insideLabel,
data = pieItem.data;
var formatter = insideLabel.formatter;
var dataItem = data[i];
var formatterType = (0, _typeof2["default"])(formatter);
var label = '';
if (formatterType === 'string') {
label = formatter.replace('{name}', dataItem.name);
label = label.replace('{percent}', dataItem.percent);
label = label.replace('{value}', dataItem.value);
}
if (formatterType === 'function') {
label = formatter(dataItem);
}
return {
content: label,
position: dataItem.insideLabelPos
};
}
function getInsideLabelStyle(pieItem, i) {
var style = pieItem.insideLabel.style;
return style;
}
function getOutsideLabelLineConfig(pieItem) {
var animationCurve = pieItem.animationCurve,
animationFrame = pieItem.animationFrame,
data = pieItem.data,
rLevel = pieItem.rLevel;
return data.map(function (foo, i) {
return {
name: 'polyline',
index: rLevel,
visible: pieItem.outsideLabel.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getOutsideLabelLineShape(pieItem, i),
style: getOutsideLabelLineStyle(pieItem, i)
};
});
}
function getStartOutsideLabelLineConfig(pieItem) {
var data = pieItem.data;
var configs = getOutsideLabelLineConfig(pieItem);
configs.forEach(function (config, i) {
config.style.lineDash = [0, data[i].labelLineLength];
});
return configs;
}
function getOutsideLabelLineShape(pieItem, i) {
var data = pieItem.data;
var dataItem = data[i];
return {
points: dataItem.labelLine
};
}
function getOutsideLabelLineStyle(pieItem, i) {
var outsideLabel = pieItem.outsideLabel,
data = pieItem.data;
var labelLineStyle = outsideLabel.labelLineStyle;
var color = data[i].color;
return (0, util$1.deepMerge)({
stroke: color,
lineDash: [data[i].labelLineLength, 0]
}, labelLineStyle);
}
function getOutsideLabelConfig(pieItem) {
var animationCurve = pieItem.animationCurve,
animationFrame = pieItem.animationFrame,
data = pieItem.data,
rLevel = pieItem.rLevel;
return data.map(function (foo, i) {
return {
name: 'text',
index: rLevel,
visible: pieItem.outsideLabel.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getOutsideLabelShape(pieItem, i),
style: getOutsideLabelStyle(pieItem, i)
};
});
}
function getStartOutsideLabelConfig(pieItem) {
var data = pieItem.data;
var configs = getOutsideLabelConfig(pieItem);
configs.forEach(function (config, i) {
config.shape.position = data[i].labelLine[1];
});
return configs;
}
function getOutsideLabelShape(pieItem, i) {
var outsideLabel = pieItem.outsideLabel,
data = pieItem.data;
var formatter = outsideLabel.formatter;
var _data$i = data[i],
labelLine = _data$i.labelLine,
name = _data$i.name,
percent = _data$i.percent,
value = _data$i.value;
var formatterType = (0, _typeof2["default"])(formatter);
var label = '';
if (formatterType === 'string') {
label = formatter.replace('{name}', name);
label = label.replace('{percent}', percent);
label = label.replace('{value}', value);
}
if (formatterType === 'function') {
label = formatter(data[i]);
}
return {
content: label,
position: labelLine[2]
};
}
function getOutsideLabelStyle(pieItem, i) {
var outsideLabel = pieItem.outsideLabel,
data = pieItem.data;
var _data$i2 = data[i],
color = _data$i2.color,
align = _data$i2.align;
var style = outsideLabel.style;
return (0, util$1.deepMerge)(_objectSpread({
fill: color
}, align), style);
}
});
unwrapExports(pie_1$1);
var pie_2 = pie_1$1.pie;
var radarAxis_1$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.radarAxis = radarAxis;
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _defineProperty2 = interopRequireDefault(defineProperty);
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function radarAxis(chart) {
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var radar = option.radar;
var radarAxis = [];
if (radar) {
radarAxis = mergeRadarAxisDefaultConfig(radar);
radarAxis = calcRadarAxisCenter(radarAxis, chart);
radarAxis = calcRadarAxisRingRadius(radarAxis, chart);
radarAxis = calcRadarAxisLinePosition(radarAxis);
radarAxis = calcRadarAxisAreaRadius(radarAxis);
radarAxis = calcRadarAxisLabelPosition(radarAxis);
radarAxis = [radarAxis];
}
var radarAxisForUpdate = radarAxis;
if (radarAxis.length && !radarAxis[0].show) radarAxisForUpdate = [];
(0, updater_class.doUpdate)({
chart: chart,
series: radarAxisForUpdate,
key: 'radarAxisSplitArea',
getGraphConfig: getSplitAreaConfig,
beforeUpdate: beforeUpdateSplitArea,
beforeChange: beforeChangeSplitArea
});
(0, updater_class.doUpdate)({
chart: chart,
series: radarAxisForUpdate,
key: 'radarAxisSplitLine',
getGraphConfig: getSplitLineConfig,
beforeUpdate: beforeUpdateSplitLine,
beforeChange: beforeChangeSplitLine
});
(0, updater_class.doUpdate)({
chart: chart,
series: radarAxisForUpdate,
key: 'radarAxisLine',
getGraphConfig: getAxisLineConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: radarAxisForUpdate,
key: 'radarAxisLable',
getGraphConfig: getAxisLabelConfig
});
chart.radarAxis = radarAxis[0];
}
function mergeRadarAxisDefaultConfig(radar) {
return (0, util$1.deepMerge)((0, util.deepClone)(config.radarAxisConfig), radar);
}
function calcRadarAxisCenter(radarAxis, chart) {
var area = chart.render.area;
var center = radarAxis.center;
radarAxis.centerPos = center.map(function (v, i) {
if (typeof v === 'number') return v;
return parseInt(v) / 100 * area[i];
});
return radarAxis;
}
function calcRadarAxisRingRadius(radarAxis, chart) {
var area = chart.render.area;
var splitNum = radarAxis.splitNum,
radius = radarAxis.radius;
var maxRadius = Math.min.apply(Math, (0, _toConsumableArray2["default"])(area)) / 2;
if (typeof radius !== 'number') radius = parseInt(radius) / 100 * maxRadius;
var splitGap = radius / splitNum;
radarAxis.ringRadius = new Array(splitNum).fill(0).map(function (foo, i) {
return splitGap * (i + 1);
});
radarAxis.radius = radius;
return radarAxis;
}
function calcRadarAxisLinePosition(radarAxis) {
var indicator = radarAxis.indicator,
centerPos = radarAxis.centerPos,
radius = radarAxis.radius,
startAngle = radarAxis.startAngle;
var fullAngle = Math.PI * 2;
var indicatorNum = indicator.length;
var indicatorGap = fullAngle / indicatorNum;
var angles = new Array(indicatorNum).fill(0).map(function (foo, i) {
return indicatorGap * i + startAngle;
});
radarAxis.axisLineAngles = angles;
radarAxis.axisLinePosition = angles.map(function (g) {
return util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(centerPos).concat([radius, g]));
});
return radarAxis;
}
function calcRadarAxisAreaRadius(radarAxis) {
var ringRadius = radarAxis.ringRadius;
var subRadius = ringRadius[0] / 2;
radarAxis.areaRadius = ringRadius.map(function (r) {
return r - subRadius;
});
return radarAxis;
}
function calcRadarAxisLabelPosition(radarAxis) {
var axisLineAngles = radarAxis.axisLineAngles,
centerPos = radarAxis.centerPos,
radius = radarAxis.radius,
axisLabel = radarAxis.axisLabel;
radius += axisLabel.labelGap;
radarAxis.axisLabelPosition = axisLineAngles.map(function (angle) {
return util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(centerPos).concat([radius, angle]));
});
return radarAxis;
}
function getSplitAreaConfig(radarAxis) {
var areaRadius = radarAxis.areaRadius,
polygon = radarAxis.polygon,
animationCurve = radarAxis.animationCurve,
animationFrame = radarAxis.animationFrame,
rLevel = radarAxis.rLevel;
var name = polygon ? 'regPolygon' : 'ring';
return areaRadius.map(function (foo, i) {
return {
name: name,
index: rLevel,
visible: radarAxis.splitArea.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getSplitAreaShape(radarAxis, i),
style: getSplitAreaStyle(radarAxis, i)
};
});
}
function getSplitAreaShape(radarAxis, i) {
var polygon = radarAxis.polygon,
areaRadius = radarAxis.areaRadius,
indicator = radarAxis.indicator,
centerPos = radarAxis.centerPos;
var indicatorNum = indicator.length;
var shape = {
rx: centerPos[0],
ry: centerPos[1],
r: areaRadius[i]
};
if (polygon) shape.side = indicatorNum;
return shape;
}
function getSplitAreaStyle(radarAxis, i) {
var splitArea = radarAxis.splitArea,
ringRadius = radarAxis.ringRadius,
axisLineAngles = radarAxis.axisLineAngles,
polygon = radarAxis.polygon,
centerPos = radarAxis.centerPos;
var color = splitArea.color,
style = splitArea.style;
style = _objectSpread({
fill: 'rgba(0, 0, 0, 0)'
}, style);
var lineWidth = ringRadius[0] - 0;
if (polygon) {
var point1 = util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(centerPos).concat([ringRadius[0], axisLineAngles[0]]));
var point2 = util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(centerPos).concat([ringRadius[0], axisLineAngles[1]]));
lineWidth = (0, util$1.getPointToLineDistance)(centerPos, point1, point2);
}
style = (0, util$1.deepMerge)((0, util.deepClone)(style, true), {
lineWidth: lineWidth
});
if (!color.length) return style;
var colorNum = color.length;
return (0, util$1.deepMerge)(style, {
stroke: color[i % colorNum]
});
}
function beforeUpdateSplitArea(graphs, radarAxis, i, updater) {
var cache = graphs[i];
if (!cache) return;
var render = updater.chart.render;
var polygon = radarAxis.polygon;
var name = cache[0].name;
var currentName = polygon ? 'regPolygon' : 'ring';
var delAll = currentName !== name;
if (!delAll) return;
cache.forEach(function (g) {
return render.delGraph(g);
});
graphs[i] = null;
}
function beforeChangeSplitArea(graph, config) {
var side = config.shape.side;
if (typeof side !== 'number') return;
graph.shape.side = side;
}
function getSplitLineConfig(radarAxis) {
var ringRadius = radarAxis.ringRadius,
polygon = radarAxis.polygon,
animationCurve = radarAxis.animationCurve,
animationFrame = radarAxis.animationFrame,
rLevel = radarAxis.rLevel;
var name = polygon ? 'regPolygon' : 'ring';
return ringRadius.map(function (foo, i) {
return {
name: name,
index: rLevel,
animationCurve: animationCurve,
animationFrame: animationFrame,
visible: radarAxis.splitLine.show,
shape: getSplitLineShape(radarAxis, i),
style: getSplitLineStyle(radarAxis, i)
};
});
}
function getSplitLineShape(radarAxis, i) {
var ringRadius = radarAxis.ringRadius,
centerPos = radarAxis.centerPos,
indicator = radarAxis.indicator,
polygon = radarAxis.polygon;
var shape = {
rx: centerPos[0],
ry: centerPos[1],
r: ringRadius[i]
};
var indicatorNum = indicator.length;
if (polygon) shape.side = indicatorNum;
return shape;
}
function getSplitLineStyle(radarAxis, i) {
var splitLine = radarAxis.splitLine;
var color = splitLine.color,
style = splitLine.style;
style = _objectSpread({
fill: 'rgba(0, 0, 0, 0)'
}, style);
if (!color.length) return style;
var colorNum = color.length;
return (0, util$1.deepMerge)(style, {
stroke: color[i % colorNum]
});
}
function beforeUpdateSplitLine(graphs, radarAxis, i, updater) {
var cache = graphs[i];
if (!cache) return;
var render = updater.chart.render;
var polygon = radarAxis.polygon;
var name = cache[0].name;
var currenName = polygon ? 'regPolygon' : 'ring';
var delAll = currenName !== name;
if (!delAll) return;
cache.forEach(function (g) {
return render.delGraph(g);
});
graphs[i] = null;
}
function beforeChangeSplitLine(graph, config) {
var side = config.shape.side;
if (typeof side !== 'number') return;
graph.shape.side = side;
}
function getAxisLineConfig(radarAxis) {
var axisLinePosition = radarAxis.axisLinePosition,
animationCurve = radarAxis.animationCurve,
animationFrame = radarAxis.animationFrame,
rLevel = radarAxis.rLevel;
return axisLinePosition.map(function (foo, i) {
return {
name: 'polyline',
index: rLevel,
visible: radarAxis.axisLine.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getAxisLineShape(radarAxis, i),
style: getAxisLineStyle(radarAxis, i)
};
});
}
function getAxisLineShape(radarAxis, i) {
var centerPos = radarAxis.centerPos,
axisLinePosition = radarAxis.axisLinePosition;
var points = [centerPos, axisLinePosition[i]];
return {
points: points
};
}
function getAxisLineStyle(radarAxis, i) {
var axisLine = radarAxis.axisLine;
var color = axisLine.color,
style = axisLine.style;
if (!color.length) return style;
var colorNum = color.length;
return (0, util$1.deepMerge)(style, {
stroke: color[i % colorNum]
});
}
function getAxisLabelConfig(radarAxis) {
var axisLabelPosition = radarAxis.axisLabelPosition,
animationCurve = radarAxis.animationCurve,
animationFrame = radarAxis.animationFrame,
rLevel = radarAxis.rLevel;
return axisLabelPosition.map(function (foo, i) {
return {
name: 'text',
index: rLevel,
visible: radarAxis.axisLabel.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getAxisLableShape(radarAxis, i),
style: getAxisLableStyle(radarAxis, i)
};
});
}
function getAxisLableShape(radarAxis, i) {
var axisLabelPosition = radarAxis.axisLabelPosition,
indicator = radarAxis.indicator;
return {
content: indicator[i].name,
position: axisLabelPosition[i]
};
}
function getAxisLableStyle(radarAxis, i) {
var axisLabel = radarAxis.axisLabel,
_radarAxis$centerPos = (0, _slicedToArray2["default"])(radarAxis.centerPos, 2),
x = _radarAxis$centerPos[0],
y = _radarAxis$centerPos[1],
axisLabelPosition = radarAxis.axisLabelPosition;
var color = axisLabel.color,
style = axisLabel.style;
var _axisLabelPosition$i = (0, _slicedToArray2["default"])(axisLabelPosition[i], 2),
labelXpos = _axisLabelPosition$i[0],
labelYPos = _axisLabelPosition$i[1];
var textAlign = labelXpos > x ? 'left' : 'right';
var textBaseline = labelYPos > y ? 'top' : 'bottom';
style = (0, util$1.deepMerge)({
textAlign: textAlign,
textBaseline: textBaseline
}, style);
if (!color.length) return style;
var colorNum = color.length;
return (0, util$1.deepMerge)(style, {
fill: color[i % colorNum]
});
}
});
unwrapExports(radarAxis_1$1);
var radarAxis_2 = radarAxis_1$1.radarAxis;
var radar_1$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.radar = radar;
var _defineProperty2 = interopRequireDefault(defineProperty);
var _typeof2 = interopRequireDefault(_typeof_1);
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function radar(chart) {
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var series = option.series;
if (!series) series = [];
var radars = (0, util$1.initNeedSeries)(series, config.radarConfig, 'radar');
radars = calcRadarPosition(radars, chart);
radars = calcRadarLabelPosition(radars, chart);
radars = calcRadarLabelAlign(radars, chart);
(0, updater_class.doUpdate)({
chart: chart,
series: radars,
key: 'radar',
getGraphConfig: getRadarConfig,
getStartGraphConfig: getStartRadarConfig,
beforeChange: beforeChangeRadar
});
(0, updater_class.doUpdate)({
chart: chart,
series: radars,
key: 'radarPoint',
getGraphConfig: getPointConfig,
getStartGraphConfig: getStartPointConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: radars,
key: 'radarLabel',
getGraphConfig: getLabelConfig
});
}
function calcRadarPosition(radars, chart) {
var radarAxis = chart.radarAxis;
if (!radarAxis) return [];
var indicator = radarAxis.indicator,
axisLineAngles = radarAxis.axisLineAngles,
radius = radarAxis.radius,
centerPos = radarAxis.centerPos;
radars.forEach(function (radarItem) {
var data = radarItem.data;
radarItem.dataRadius = [];
radarItem.radarPosition = indicator.map(function (_ref, i) {
var max = _ref.max,
min = _ref.min;
var v = data[i];
if (typeof max !== 'number') max = v;
if (typeof min !== 'number') min = 0;
if (typeof v !== 'number') v = min;
var dataRadius = (v - min) / (max - min) * radius;
radarItem.dataRadius[i] = dataRadius;
return util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(centerPos).concat([dataRadius, axisLineAngles[i]]));
});
});
return radars;
}
function calcRadarLabelPosition(radars, chart) {
var radarAxis = chart.radarAxis;
if (!radarAxis) return [];
var centerPos = radarAxis.centerPos,
axisLineAngles = radarAxis.axisLineAngles;
radars.forEach(function (radarItem) {
var dataRadius = radarItem.dataRadius,
label = radarItem.label;
var labelGap = label.labelGap;
radarItem.labelPosition = dataRadius.map(function (r, i) {
return util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(centerPos).concat([r + labelGap, axisLineAngles[i]]));
});
});
return radars;
}
function calcRadarLabelAlign(radars, chart) {
var radarAxis = chart.radarAxis;
if (!radarAxis) return [];
var _radarAxis$centerPos = (0, _slicedToArray2["default"])(radarAxis.centerPos, 2),
x = _radarAxis$centerPos[0],
y = _radarAxis$centerPos[1];
radars.forEach(function (radarItem) {
var labelPosition = radarItem.labelPosition;
var labelAlign = labelPosition.map(function (_ref2) {
var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
lx = _ref3[0],
ly = _ref3[1];
var textAlign = lx > x ? 'left' : 'right';
var textBaseline = ly > y ? 'top' : 'bottom';
return {
textAlign: textAlign,
textBaseline: textBaseline
};
});
radarItem.labelAlign = labelAlign;
});
return radars;
}
function getRadarConfig(radarItem) {
var animationCurve = radarItem.animationCurve,
animationFrame = radarItem.animationFrame,
rLevel = radarItem.rLevel;
return [{
name: 'polyline',
index: rLevel,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getRadarShape(radarItem),
style: getRadarStyle(radarItem)
}];
}
function getStartRadarConfig(radarItem, updater) {
var centerPos = updater.chart.radarAxis.centerPos;
var config = getRadarConfig(radarItem)[0];
var pointNum = config.shape.points.length;
var points = new Array(pointNum).fill(0).map(function (foo) {
return (0, _toConsumableArray2["default"])(centerPos);
});
config.shape.points = points;
return [config];
}
function getRadarShape(radarItem) {
var radarPosition = radarItem.radarPosition;
return {
points: radarPosition,
close: true
};
}
function getRadarStyle(radarItem) {
var radarStyle = radarItem.radarStyle,
color = radarItem.color;
var colorRgbaValue = (0, lib.getRgbaValue)(color);
colorRgbaValue[3] = 0.5;
var radarDefaultColor = {
stroke: color,
fill: (0, lib.getColorFromRgbValue)(colorRgbaValue)
};
return (0, util$1.deepMerge)(radarDefaultColor, radarStyle);
}
function beforeChangeRadar(graph, _ref4) {
var shape = _ref4.shape;
var graphPoints = graph.shape.points;
var graphPointsNum = graphPoints.length;
var pointsNum = shape.points.length;
if (pointsNum > graphPointsNum) {
var lastPoint = graphPoints.slice(-1)[0];
var newAddPoints = new Array(pointsNum - graphPointsNum).fill(0).map(function (foo) {
return (0, _toConsumableArray2["default"])(lastPoint);
});
graphPoints.push.apply(graphPoints, (0, _toConsumableArray2["default"])(newAddPoints));
} else if (pointsNum < graphPointsNum) {
graphPoints.splice(pointsNum);
}
}
function getPointConfig(radarItem) {
var radarPosition = radarItem.radarPosition,
animationCurve = radarItem.animationCurve,
animationFrame = radarItem.animationFrame,
rLevel = radarItem.rLevel;
return radarPosition.map(function (foo, i) {
return {
name: 'circle',
index: rLevel,
animationCurve: animationCurve,
animationFrame: animationFrame,
visible: radarItem.point.show,
shape: getPointShape(radarItem, i),
style: getPointStyle(radarItem)
};
});
}
function getStartPointConfig(radarItem) {
var configs = getPointConfig(radarItem);
configs.forEach(function (config) {
return config.shape.r = 0.01;
});
return configs;
}
function getPointShape(radarItem, i) {
var radarPosition = radarItem.radarPosition,
point = radarItem.point;
var radius = point.radius;
var position = radarPosition[i];
return {
rx: position[0],
ry: position[1],
r: radius
};
}
function getPointStyle(radarItem, i) {
var point = radarItem.point,
color = radarItem.color;
var style = point.style;
return (0, util$1.deepMerge)({
stroke: color
}, style);
}
function getLabelConfig(radarItem) {
var labelPosition = radarItem.labelPosition,
animationCurve = radarItem.animationCurve,
animationFrame = radarItem.animationFrame,
rLevel = radarItem.rLevel;
return labelPosition.map(function (foo, i) {
return {
name: 'text',
index: rLevel,
visible: radarItem.label.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getLabelShape(radarItem, i),
style: getLabelStyle(radarItem, i)
};
});
}
function getLabelShape(radarItem, i) {
var labelPosition = radarItem.labelPosition,
label = radarItem.label,
data = radarItem.data;
var offset = label.offset,
formatter = label.formatter;
var position = mergePointOffset(labelPosition[i], offset);
var labelText = data[i] ? data[i].toString() : '0';
var formatterType = (0, _typeof2["default"])(formatter);
if (formatterType === 'string') labelText = formatter.replace('{value}', labelText);
if (formatterType === 'function') labelText = formatter(labelText);
return {
content: labelText,
position: position
};
}
function mergePointOffset(_ref5, _ref6) {
var _ref7 = (0, _slicedToArray2["default"])(_ref5, 2),
x = _ref7[0],
y = _ref7[1];
var _ref8 = (0, _slicedToArray2["default"])(_ref6, 2),
ox = _ref8[0],
oy = _ref8[1];
return [x + ox, y + oy];
}
function getLabelStyle(radarItem, i) {
var label = radarItem.label,
color = radarItem.color,
labelAlign = radarItem.labelAlign;
var style = label.style;
var defaultColorAndAlign = _objectSpread({
fill: color
}, labelAlign[i]);
return (0, util$1.deepMerge)(defaultColorAndAlign, style);
}
});
unwrapExports(radar_1$1);
var radar_2 = radar_1$1.radar;
var gauge_1$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.gauge = gauge$1;
var _defineProperty2 = interopRequireDefault(defineProperty);
var _typeof2 = interopRequireDefault(_typeof_1);
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _toConsumableArray2 = interopRequireDefault(toConsumableArray);
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
function gauge$1(chart) {
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var series = option.series;
if (!series) series = [];
var gauges = (0, util$1.initNeedSeries)(series, gauge.gaugeConfig, 'gauge');
gauges = calcGaugesCenter(gauges, chart);
gauges = calcGaugesRadius(gauges, chart);
gauges = calcGaugesDataRadiusAndLineWidth(gauges, chart);
gauges = calcGaugesDataAngles(gauges);
gauges = calcGaugesDataGradient(gauges);
gauges = calcGaugesAxisTickPosition(gauges);
gauges = calcGaugesLabelPositionAndAlign(gauges);
gauges = calcGaugesLabelData(gauges);
gauges = calcGaugesDetailsPosition(gauges);
gauges = calcGaugesDetailsContent(gauges);
(0, updater_class.doUpdate)({
chart: chart,
series: gauges,
key: 'gaugeAxisTick',
getGraphConfig: getAxisTickConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: gauges,
key: 'gaugeAxisLabel',
getGraphConfig: getAxisLabelConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: gauges,
key: 'gaugeBackgroundArc',
getGraphConfig: getBackgroundArcConfig,
getStartGraphConfig: getStartBackgroundArcConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: gauges,
key: 'gaugeArc',
getGraphConfig: getArcConfig,
getStartGraphConfig: getStartArcConfig,
beforeChange: beforeChangeArc
});
(0, updater_class.doUpdate)({
chart: chart,
series: gauges,
key: 'gaugePointer',
getGraphConfig: getPointerConfig,
getStartGraphConfig: getStartPointerConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: gauges,
key: 'gaugeDetails',
getGraphConfig: getDetailsConfig
});
}
function calcGaugesCenter(gauges, chart) {
var area = chart.render.area;
gauges.forEach(function (gaugeItem) {
var center = gaugeItem.center;
center = center.map(function (pos, i) {
if (typeof pos === 'number') return pos;
return parseInt(pos) / 100 * area[i];
});
gaugeItem.center = center;
});
return gauges;
}
function calcGaugesRadius(gauges, chart) {
var area = chart.render.area;
var maxRadius = Math.min.apply(Math, (0, _toConsumableArray2["default"])(area)) / 2;
gauges.forEach(function (gaugeItem) {
var radius = gaugeItem.radius;
if (typeof radius !== 'number') {
radius = parseInt(radius) / 100 * maxRadius;
}
gaugeItem.radius = radius;
});
return gauges;
}
function calcGaugesDataRadiusAndLineWidth(gauges, chart) {
var area = chart.render.area;
var maxRadius = Math.min.apply(Math, (0, _toConsumableArray2["default"])(area)) / 2;
gauges.forEach(function (gaugeItem) {
var radius = gaugeItem.radius,
data = gaugeItem.data,
arcLineWidth = gaugeItem.arcLineWidth;
data.forEach(function (item) {
var arcRadius = item.radius,
lineWidth = item.lineWidth;
if (!arcRadius) arcRadius = radius;
if (typeof arcRadius !== 'number') arcRadius = parseInt(arcRadius) / 100 * maxRadius;
item.radius = arcRadius;
if (!lineWidth) lineWidth = arcLineWidth;
item.lineWidth = lineWidth;
});
});
return gauges;
}
function calcGaugesDataAngles(gauges, chart) {
gauges.forEach(function (gaugeItem) {
var startAngle = gaugeItem.startAngle,
endAngle = gaugeItem.endAngle,
data = gaugeItem.data,
min = gaugeItem.min,
max = gaugeItem.max;
var angleMinus = endAngle - startAngle;
var valueMinus = max - min;
data.forEach(function (item) {
var value = item.value;
var itemAngle = Math.abs((value - min) / valueMinus * angleMinus);
item.startAngle = startAngle;
item.endAngle = startAngle + itemAngle;
});
});
return gauges;
}
function calcGaugesDataGradient(gauges, chart) {
gauges.forEach(function (gaugeItem) {
var data = gaugeItem.data;
data.forEach(function (item) {
var color = item.color,
gradient = item.gradient;
if (!gradient || !gradient.length) gradient = color;
if (!(gradient instanceof Array)) gradient = [gradient];
item.gradient = gradient;
});
});
return gauges;
}
function calcGaugesAxisTickPosition(gauges, chart) {
gauges.forEach(function (gaugeItem) {
var startAngle = gaugeItem.startAngle,
endAngle = gaugeItem.endAngle,
splitNum = gaugeItem.splitNum,
center = gaugeItem.center,
radius = gaugeItem.radius,
arcLineWidth = gaugeItem.arcLineWidth,
axisTick = gaugeItem.axisTick;
var tickLength = axisTick.tickLength,
lineWidth = axisTick.style.lineWidth;
var angles = endAngle - startAngle;
var outerRadius = radius - arcLineWidth / 2;
var innerRadius = outerRadius - tickLength;
var angleGap = angles / (splitNum - 1);
var arcLength = 2 * Math.PI * radius * angles / (Math.PI * 2);
var offset = Math.ceil(lineWidth / 2) / arcLength * angles;
gaugeItem.tickAngles = [];
gaugeItem.tickInnerRadius = [];
gaugeItem.tickPosition = new Array(splitNum).fill(0).map(function (foo, i) {
var angle = startAngle + angleGap * i;
if (i === 0) angle += offset;
if (i === splitNum - 1) angle -= offset;
gaugeItem.tickAngles[i] = angle;
gaugeItem.tickInnerRadius[i] = innerRadius;
return [util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([outerRadius, angle])), util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([innerRadius, angle]))];
});
});
return gauges;
}
function calcGaugesLabelPositionAndAlign(gauges, chart) {
gauges.forEach(function (gaugeItem) {
var center = gaugeItem.center,
tickInnerRadius = gaugeItem.tickInnerRadius,
tickAngles = gaugeItem.tickAngles,
labelGap = gaugeItem.axisLabel.labelGap;
var position = tickAngles.map(function (angle, i) {
return util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([tickInnerRadius[i] - labelGap, tickAngles[i]]));
});
var align = position.map(function (_ref) {
var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
x = _ref2[0],
y = _ref2[1];
return {
textAlign: x > center[0] ? 'right' : 'left',
textBaseline: y > center[1] ? 'bottom' : 'top'
};
});
gaugeItem.labelPosition = position;
gaugeItem.labelAlign = align;
});
return gauges;
}
function calcGaugesLabelData(gauges, chart) {
gauges.forEach(function (gaugeItem) {
var axisLabel = gaugeItem.axisLabel,
min = gaugeItem.min,
max = gaugeItem.max,
splitNum = gaugeItem.splitNum;
var data = axisLabel.data,
formatter = axisLabel.formatter;
var valueGap = (max - min) / (splitNum - 1);
var value = new Array(splitNum).fill(0).map(function (foo, i) {
return parseInt(min + valueGap * i);
});
var formatterType = (0, _typeof2["default"])(formatter);
data = (0, util$1.deepMerge)(value, data).map(function (v, i) {
var label = v;
if (formatterType === 'string') {
label = formatter.replace('{value}', v);
}
if (formatterType === 'function') {
label = formatter({
value: v,
index: i
});
}
return label;
});
axisLabel.data = data;
});
return gauges;
}
function calcGaugesDetailsPosition(gauges, chart) {
gauges.forEach(function (gaugeItem) {
var data = gaugeItem.data,
details = gaugeItem.details,
center = gaugeItem.center;
var position = details.position,
offset = details.offset;
var detailsPosition = data.map(function (_ref3) {
var startAngle = _ref3.startAngle,
endAngle = _ref3.endAngle,
radius = _ref3.radius;
var point = null;
if (position === 'center') {
point = center;
} else if (position === 'start') {
point = util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([radius, startAngle]));
} else if (position === 'end') {
point = util.getCircleRadianPoint.apply(void 0, (0, _toConsumableArray2["default"])(center).concat([radius, endAngle]));
}
return getOffsetedPoint(point, offset);
});
gaugeItem.detailsPosition = detailsPosition;
});
return gauges;
}
function calcGaugesDetailsContent(gauges, chart) {
gauges.forEach(function (gaugeItem) {
var data = gaugeItem.data,
details = gaugeItem.details;
var formatter = details.formatter;
var formatterType = (0, _typeof2["default"])(formatter);
var contents = data.map(function (dataItem) {
var content = dataItem.value;
if (formatterType === 'string') {
content = formatter.replace('{value}', '{nt}');
content = content.replace('{name}', dataItem.name);
}
if (formatterType === 'function') content = formatter(dataItem);
return content.toString();
});
gaugeItem.detailsContent = contents;
});
return gauges;
}
function getOffsetedPoint(_ref4, _ref5) {
var _ref6 = (0, _slicedToArray2["default"])(_ref4, 2),
x = _ref6[0],
y = _ref6[1];
var _ref7 = (0, _slicedToArray2["default"])(_ref5, 2),
ox = _ref7[0],
oy = _ref7[1];
return [x + ox, y + oy];
}
function getAxisTickConfig(gaugeItem) {
var tickPosition = gaugeItem.tickPosition,
animationCurve = gaugeItem.animationCurve,
animationFrame = gaugeItem.animationFrame,
rLevel = gaugeItem.rLevel;
return tickPosition.map(function (foo, i) {
return {
name: 'polyline',
index: rLevel,
visible: gaugeItem.axisTick.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getAxisTickShape(gaugeItem, i),
style: getAxisTickStyle(gaugeItem)
};
});
}
function getAxisTickShape(gaugeItem, i) {
var tickPosition = gaugeItem.tickPosition;
return {
points: tickPosition[i]
};
}
function getAxisTickStyle(gaugeItem, i) {
var style = gaugeItem.axisTick.style;
return style;
}
function getAxisLabelConfig(gaugeItem) {
var labelPosition = gaugeItem.labelPosition,
animationCurve = gaugeItem.animationCurve,
animationFrame = gaugeItem.animationFrame,
rLevel = gaugeItem.rLevel;
return labelPosition.map(function (foo, i) {
return {
name: 'text',
index: rLevel,
visible: gaugeItem.axisLabel.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getAxisLabelShape(gaugeItem, i),
style: getAxisLabelStyle(gaugeItem, i)
};
});
}
function getAxisLabelShape(gaugeItem, i) {
var labelPosition = gaugeItem.labelPosition,
data = gaugeItem.axisLabel.data;
return {
content: data[i].toString(),
position: labelPosition[i]
};
}
function getAxisLabelStyle(gaugeItem, i) {
var labelAlign = gaugeItem.labelAlign,
axisLabel = gaugeItem.axisLabel;
var style = axisLabel.style;
return (0, util$1.deepMerge)(_objectSpread({}, labelAlign[i]), style);
}
function getBackgroundArcConfig(gaugeItem) {
var animationCurve = gaugeItem.animationCurve,
animationFrame = gaugeItem.animationFrame,
rLevel = gaugeItem.rLevel;
return [{
name: 'arc',
index: rLevel,
visible: gaugeItem.backgroundArc.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getGaugeBackgroundArcShape(gaugeItem),
style: getGaugeBackgroundArcStyle(gaugeItem)
}];
}
function getGaugeBackgroundArcShape(gaugeItem) {
var startAngle = gaugeItem.startAngle,
endAngle = gaugeItem.endAngle,
center = gaugeItem.center,
radius = gaugeItem.radius;
return {
rx: center[0],
ry: center[1],
r: radius,
startAngle: startAngle,
endAngle: endAngle
};
}
function getGaugeBackgroundArcStyle(gaugeItem) {
var backgroundArc = gaugeItem.backgroundArc,
arcLineWidth = gaugeItem.arcLineWidth;
var style = backgroundArc.style;
return (0, util$1.deepMerge)({
lineWidth: arcLineWidth
}, style);
}
function getStartBackgroundArcConfig(gaugeItem) {
var config = getBackgroundArcConfig(gaugeItem)[0];
var shape = _objectSpread({}, config.shape);
shape.endAngle = config.shape.startAngle;
config.shape = shape;
return [config];
}
function getArcConfig(gaugeItem) {
var data = gaugeItem.data,
animationCurve = gaugeItem.animationCurve,
animationFrame = gaugeItem.animationFrame,
rLevel = gaugeItem.rLevel;
return data.map(function (foo, i) {
return {
name: 'agArc',
index: rLevel,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getGaugeArcShape(gaugeItem, i),
style: getGaugeArcStyle(gaugeItem, i)
};
});
}
function getGaugeArcShape(gaugeItem, i) {
var data = gaugeItem.data,
center = gaugeItem.center,
gradientEndAngle = gaugeItem.endAngle;
var _data$i = data[i],
radius = _data$i.radius,
startAngle = _data$i.startAngle,
endAngle = _data$i.endAngle,
localGradient = _data$i.localGradient;
if (localGradient) gradientEndAngle = endAngle;
return {
rx: center[0],
ry: center[1],
r: radius,
startAngle: startAngle,
endAngle: endAngle,
gradientEndAngle: gradientEndAngle
};
}
function getGaugeArcStyle(gaugeItem, i) {
var data = gaugeItem.data,
dataItemStyle = gaugeItem.dataItemStyle;
var _data$i2 = data[i],
lineWidth = _data$i2.lineWidth,
gradient = _data$i2.gradient;
gradient = gradient.map(function (c) {
return (0, lib.getRgbaValue)(c);
});
return (0, util$1.deepMerge)({
lineWidth: lineWidth,
gradient: gradient
}, dataItemStyle);
}
function getStartArcConfig(gaugeItem) {
var configs = getArcConfig(gaugeItem);
configs.map(function (config) {
var shape = _objectSpread({}, config.shape);
shape.endAngle = config.shape.startAngle;
config.shape = shape;
});
return configs;
}
function beforeChangeArc(graph, config) {
var graphGradient = graph.style.gradient;
var cacheNum = graphGradient.length;
var needNum = config.style.gradient.length;
if (cacheNum > needNum) {
graphGradient.splice(needNum);
} else {
var last = graphGradient.slice(-1)[0];
graphGradient.push.apply(graphGradient, (0, _toConsumableArray2["default"])(new Array(needNum - cacheNum).fill(0).map(function (foo) {
return (0, _toConsumableArray2["default"])(last);
})));
}
}
function getPointerConfig(gaugeItem) {
var animationCurve = gaugeItem.animationCurve,
animationFrame = gaugeItem.animationFrame,
center = gaugeItem.center,
rLevel = gaugeItem.rLevel;
return [{
name: 'polyline',
index: rLevel,
visible: gaugeItem.pointer.show,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getPointerShape(gaugeItem),
style: getPointerStyle(gaugeItem),
setGraphCenter: function setGraphCenter(foo, graph) {
graph.style.graphCenter = center;
}
}];
}
function getPointerShape(gaugeItem) {
var center = gaugeItem.center;
return {
points: getPointerPoints(center),
close: true
};
}
function getPointerStyle(gaugeItem) {
var startAngle = gaugeItem.startAngle,
endAngle = gaugeItem.endAngle,
min = gaugeItem.min,
max = gaugeItem.max,
data = gaugeItem.data,
pointer = gaugeItem.pointer,
center = gaugeItem.center;
var valueIndex = pointer.valueIndex,
style = pointer.style;
var value = data[valueIndex] ? data[valueIndex].value : 0;
var angle = (value - min) / (max - min) * (endAngle - startAngle) + startAngle + Math.PI / 2;
return (0, util$1.deepMerge)({
rotate: (0, util$1.radianToAngle)(angle),
scale: [1, 1],
graphCenter: center
}, style);
}
function getPointerPoints(_ref8) {
var _ref9 = (0, _slicedToArray2["default"])(_ref8, 2),
x = _ref9[0],
y = _ref9[1];
var point1 = [x, y - 40];
var point2 = [x + 5, y];
var point3 = [x, y + 10];
var point4 = [x - 5, y];
return [point1, point2, point3, point4];
}
function getStartPointerConfig(gaugeItem) {
var startAngle = gaugeItem.startAngle;
var config = getPointerConfig(gaugeItem)[0];
config.style.rotate = (0, util$1.radianToAngle)(startAngle + Math.PI / 2);
return [config];
}
function getDetailsConfig(gaugeItem) {
var detailsPosition = gaugeItem.detailsPosition,
animationCurve = gaugeItem.animationCurve,
animationFrame = gaugeItem.animationFrame,
rLevel = gaugeItem.rLevel;
var visible = gaugeItem.details.show;
return detailsPosition.map(function (foo, i) {
return {
name: 'numberText',
index: rLevel,
visible: visible,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getDetailsShape(gaugeItem, i),
style: getDetailsStyle(gaugeItem, i)
};
});
}
function getDetailsShape(gaugeItem, i) {
var detailsPosition = gaugeItem.detailsPosition,
detailsContent = gaugeItem.detailsContent,
data = gaugeItem.data,
details = gaugeItem.details;
var position = detailsPosition[i];
var content = detailsContent[i];
var dataValue = data[i].value;
var toFixed = details.valueToFixed;
return {
number: [dataValue],
content: content,
position: position,
toFixed: toFixed
};
}
function getDetailsStyle(gaugeItem, i) {
var details = gaugeItem.details,
data = gaugeItem.data;
var style = details.style;
var color = data[i].color;
return (0, util$1.deepMerge)({
fill: color
}, style);
}
});
unwrapExports(gauge_1$1);
var gauge_2 = gauge_1$1.gauge;
var legend_1$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.legend = legend;
var _defineProperty2 = interopRequireDefault(defineProperty);
var _slicedToArray2 = interopRequireDefault(slicedToArray);
var _typeof2 = interopRequireDefault(_typeof_1);
function legend(chart) {
var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var legend = option.legend;
if (legend) {
legend = (0, util$1.deepMerge)((0, util.deepClone)(config.legendConfig, true), legend);
legend = initLegendData(legend);
legend = filterInvalidData(legend, option, chart);
legend = calcLegendTextWidth(legend, chart);
legend = calcLegendPosition(legend, chart);
legend = [legend];
} else {
legend = [];
}
(0, updater_class.doUpdate)({
chart: chart,
series: legend,
key: 'legendIcon',
getGraphConfig: getIconConfig
});
(0, updater_class.doUpdate)({
chart: chart,
series: legend,
key: 'legendText',
getGraphConfig: getTextConfig
});
}
function initLegendData(legend) {
var data = legend.data;
legend.data = data.map(function (item) {
var itemType = (0, _typeof2["default"])(item);
if (itemType === 'string') {
return {
name: item
};
} else if (itemType === 'object') {
return item;
}
return {
name: ''
};
});
return legend;
}
function filterInvalidData(legend, option, chart) {
var series = option.series;
var legendStatus = chart.legendStatus;
var data = legend.data.filter(function (item) {
var name = item.name;
var result = series.find(function (_ref) {
var sn = _ref.name;
return name === sn;
});
if (!result) return false;
if (!item.color) item.color = result.color;
if (!item.icon) item.icon = result.type;
return item;
});
if (!legendStatus || legendStatus.length !== legend.data.length) legendStatus = new Array(legend.data.length).fill(true);
data.forEach(function (item, i) {
return item.status = legendStatus[i];
});
legend.data = data;
chart.legendStatus = legendStatus;
return legend;
}
function calcLegendTextWidth(legend, chart) {
var ctx = chart.render.ctx;
var data = legend.data,
textStyle = legend.textStyle,
textUnselectedStyle = legend.textUnselectedStyle;
data.forEach(function (item) {
var status = item.status,
name = item.name;
item.textWidth = getTextWidth(ctx, name, status ? textStyle : textUnselectedStyle);
});
return legend;
}
function getTextWidth(ctx, text, style) {
ctx.font = getFontConfig(style);
return ctx.measureText(text).width;
}
function getFontConfig(style) {
var fontFamily = style.fontFamily,
fontSize = style.fontSize;
return "".concat(fontSize, "px ").concat(fontFamily);
}
function calcLegendPosition(legend, chart) {
var orient = legend.orient;
if (orient === 'vertical') {
calcVerticalPosition(legend, chart);
} else {
calcHorizontalPosition(legend, chart);
}
return legend;
}
function calcHorizontalPosition(legend, chart) {
var iconHeight = legend.iconHeight,
itemGap = legend.itemGap;
var lines = calcDefaultHorizontalPosition(legend, chart);
var xOffsets = lines.map(function (line) {
return getHorizontalXOffset(line, legend, chart);
});
var yOffset = getHorizontalYOffset(legend, chart);
var align = {
textAlign: 'left',
textBaseline: 'middle'
};
lines.forEach(function (line, i) {
return line.forEach(function (item) {
var iconPosition = item.iconPosition,
textPosition = item.textPosition;
var xOffset = xOffsets[i];
var realYOffset = yOffset + i * (itemGap + iconHeight);
item.iconPosition = mergeOffset(iconPosition, [xOffset, realYOffset]);
item.textPosition = mergeOffset(textPosition, [xOffset, realYOffset]);
item.align = align;
});
});
}
function calcDefaultHorizontalPosition(legend, chart) {
var data = legend.data,
iconWidth = legend.iconWidth;
var w = chart.render.area[0];
var startIndex = 0;
var lines = [[]];
data.forEach(function (item, i) {
var beforeWidth = getBeforeWidth(startIndex, i, legend);
var endXPos = beforeWidth + iconWidth + 5 + item.textWidth;
if (endXPos >= w) {
startIndex = i;
beforeWidth = getBeforeWidth(startIndex, i, legend);
lines.push([]);
}
item.iconPosition = [beforeWidth, 0];
item.textPosition = [beforeWidth + iconWidth + 5, 0];
lines.slice(-1)[0].push(item);
});
return lines;
}
function getBeforeWidth(startIndex, currentIndex, legend) {
var data = legend.data,
iconWidth = legend.iconWidth,
itemGap = legend.itemGap;
var beforeItem = data.slice(startIndex, currentIndex);
return (0, util$1.mulAdd)(beforeItem.map(function (_ref2) {
var textWidth = _ref2.textWidth;
return textWidth;
})) + (currentIndex - startIndex) * (itemGap + 5 + iconWidth);
}
function getHorizontalXOffset(data, legend, chart) {
var left = legend.left,
right = legend.right,
iconWidth = legend.iconWidth,
itemGap = legend.itemGap;
var w = chart.render.area[0];
var dataNum = data.length;
var allWidth = (0, util$1.mulAdd)(data.map(function (_ref3) {
var textWidth = _ref3.textWidth;
return textWidth;
})) + dataNum * (5 + iconWidth) + (dataNum - 1) * itemGap;
var horizontal = [left, right].findIndex(function (pos) {
return pos !== 'auto';
});
if (horizontal === -1) {
return (w - allWidth) / 2;
} else if (horizontal === 0) {
if (typeof left === 'number') return left;
return parseInt(left) / 100 * w;
} else {
if (typeof right !== 'number') right = parseInt(right) / 100 * w;
return w - (allWidth + right);
}
}
function getHorizontalYOffset(legend, chart) {
var top = legend.top,
bottom = legend.bottom,
iconHeight = legend.iconHeight;
var h = chart.render.area[1];
var vertical = [top, bottom].findIndex(function (pos) {
return pos !== 'auto';
});
var halfIconHeight = iconHeight / 2;
if (vertical === -1) {
var _chart$gridArea = chart.gridArea,
y = _chart$gridArea.y,
height = _chart$gridArea.h;
return y + height + 45 - halfIconHeight;
} else if (vertical === 0) {
if (typeof top === 'number') return top - halfIconHeight;
return parseInt(top) / 100 * h - halfIconHeight;
} else {
if (typeof bottom !== 'number') bottom = parseInt(bottom) / 100 * h;
return h - bottom - halfIconHeight;
}
}
function mergeOffset(_ref4, _ref5) {
var _ref6 = (0, _slicedToArray2["default"])(_ref4, 2),
x = _ref6[0],
y = _ref6[1];
var _ref7 = (0, _slicedToArray2["default"])(_ref5, 2),
ox = _ref7[0],
oy = _ref7[1];
return [x + ox, y + oy];
}
function calcVerticalPosition(legend, chart) {
var _getVerticalXOffset = getVerticalXOffset(legend, chart),
_getVerticalXOffset2 = (0, _slicedToArray2["default"])(_getVerticalXOffset, 2),
isRight = _getVerticalXOffset2[0],
xOffset = _getVerticalXOffset2[1];
var yOffset = getVerticalYOffset(legend, chart);
calcDefaultVerticalPosition(legend, isRight);
var align = {
textAlign: 'left',
textBaseline: 'middle'
};
legend.data.forEach(function (item) {
var textPosition = item.textPosition,
iconPosition = item.iconPosition;
item.textPosition = mergeOffset(textPosition, [xOffset, yOffset]);
item.iconPosition = mergeOffset(iconPosition, [xOffset, yOffset]);
item.align = align;
});
}
function getVerticalXOffset(legend, chart) {
var left = legend.left,
right = legend.right;
var w = chart.render.area[0];
var horizontal = [left, right].findIndex(function (pos) {
return pos !== 'auto';
});
if (horizontal === -1) {
return [true, w - 10];
} else {
var offset = [left, right][horizontal];
if (typeof offset !== 'number') offset = parseInt(offset) / 100 * w;
return [Boolean(horizontal), offset];
}
}
function getVerticalYOffset(legend, chart) {
var iconHeight = legend.iconHeight,
itemGap = legend.itemGap,
data = legend.data,
top = legend.top,
bottom = legend.bottom;
var h = chart.render.area[1];
var dataNum = data.length;
var allHeight = dataNum * iconHeight + (dataNum - 1) * itemGap;
var vertical = [top, bottom].findIndex(function (pos) {
return pos !== 'auto';
});
if (vertical === -1) {
return (h - allHeight) / 2;
} else {
var offset = [top, bottom][vertical];
if (typeof offset !== 'number') offset = parseInt(offset) / 100 * h;
if (vertical === 1) offset = h - offset - allHeight;
return offset;
}
}
function calcDefaultVerticalPosition(legend, isRight) {
var data = legend.data,
iconWidth = legend.iconWidth,
iconHeight = legend.iconHeight,
itemGap = legend.itemGap;
var halfIconHeight = iconHeight / 2;
data.forEach(function (item, i) {
var textWidth = item.textWidth;
var yPos = (iconHeight + itemGap) * i + halfIconHeight;
var iconXPos = isRight ? 0 - iconWidth : 0;
var textXpos = isRight ? iconXPos - 5 - textWidth : iconWidth + 5;
item.iconPosition = [iconXPos, yPos];
item.textPosition = [textXpos, yPos];
});
}
function getIconConfig(legendItem, updater) {
var data = legendItem.data,
selectAble = legendItem.selectAble,
animationCurve = legendItem.animationCurve,
animationFrame = legendItem.animationFrame,
rLevel = legendItem.rLevel;
return data.map(function (item, i) {
return (0, _defineProperty2["default"])({
name: item.icon === 'line' ? 'lineIcon' : 'rect',
index: rLevel,
visible: legendItem.show,
hover: selectAble,
click: selectAble,
animationCurve: animationCurve,
animationFrame: animationFrame,
shape: getIconShape(legendItem, i),
style: getIconStyle(legendItem, i)
}, "click", createClickCallBack(legendItem, i, updater));
});
}
function getIconShape(legendItem, i) {
var data = legendItem.data,
iconWidth = legendItem.iconWidth,
iconHeight = legendItem.iconHeight;
var _data$i$iconPosition = (0, _slicedToArray2["default"])(data[i].iconPosition, 2),
x = _data$i$iconPosition[0],
y = _data$i$iconPosition[1];
var halfIconHeight = iconHeight / 2;
return {
x: x,
y: y - halfIconHeight,
w: iconWidth,
h: iconHeight
};
}
function getIconStyle(legendItem, i) {
var data = legendItem.data,
iconStyle = legendItem.iconStyle,
iconUnselectedStyle = legendItem.iconUnselectedStyle;
var _data$i = data[i],
status = _data$i.status,
color = _data$i.color;
var style = status ? iconStyle : iconUnselectedStyle;
return (0, util$1.deepMerge)({
fill: color
}, style);
}
function getTextConfig(legendItem, updater) {
var data = legendItem.data,
selectAble = legendItem.selectAble,
animationCurve = legendItem.animationCurve,
animationFrame = legendItem.animationFrame,
rLevel = legendItem.rLevel;
return data.map(function (foo, i) {
return {
name: 'text',
index: rLevel,
visible: legendItem.show,
hover: selectAble,
animationCurve: animationCurve,
animationFrame: animationFrame,
hoverRect: getTextHoverRect(legendItem, i),
shape: getTextShape(legendItem, i),
style: getTextStyle(legendItem, i),
click: createClickCallBack(legendItem, i, updater)
};
});
}
function getTextShape(legendItem, i) {
var _legendItem$data$i = legendItem.data[i],
textPosition = _legendItem$data$i.textPosition,
name = _legendItem$data$i.name;
return {
content: name,
position: textPosition
};
}
function getTextStyle(legendItem, i) {
var textStyle = legendItem.textStyle,
textUnselectedStyle = legendItem.textUnselectedStyle;
var _legendItem$data$i2 = legendItem.data[i],
status = _legendItem$data$i2.status,
align = _legendItem$data$i2.align;
var style = status ? textStyle : textUnselectedStyle;
return (0, util$1.deepMerge)((0, util.deepClone)(style, true), align);
}
function getTextHoverRect(legendItem, i) {
var textStyle = legendItem.textStyle,
textUnselectedStyle = legendItem.textUnselectedStyle;
var _legendItem$data$i3 = legendItem.data[i],
status = _legendItem$data$i3.status,
_legendItem$data$i3$t = (0, _slicedToArray2["default"])(_legendItem$data$i3.textPosition, 2),
x = _legendItem$data$i3$t[0],
y = _legendItem$data$i3$t[1],
textWidth = _legendItem$data$i3.textWidth;
var style = status ? textStyle : textUnselectedStyle;
var fontSize = style.fontSize;
return [x, y - fontSize / 2, textWidth, fontSize];
}
function createClickCallBack(legendItem, index, updater) {
var name = legendItem.data[index].name;
return function () {
var _updater$chart = updater.chart,
legendStatus = _updater$chart.legendStatus,
option = _updater$chart.option;
var status = !legendStatus[index];
var change = option.series.find(function (_ref9) {
var sn = _ref9.name;
return sn === name;
});
change.show = status;
legendStatus[index] = status;
updater.chart.setOption(option);
};
}
});
unwrapExports(legend_1$1);
var legend_2 = legend_1$1.legend;
var core = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "mergeColor", {
enumerable: true,
get: function get() {
return mergeColor_1.mergeColor;
}
});
Object.defineProperty(exports, "title", {
enumerable: true,
get: function get() {
return title_1$1.title;
}
});
Object.defineProperty(exports, "grid", {
enumerable: true,
get: function get() {
return grid_1$1.grid;
}
});
Object.defineProperty(exports, "axis", {
enumerable: true,
get: function get() {
return axis_1$1.axis;
}
});
Object.defineProperty(exports, "line", {
enumerable: true,
get: function get() {
return line_1$1.line;
}
});
Object.defineProperty(exports, "bar", {
enumerable: true,
get: function get() {
return bar_1$1.bar;
}
});
Object.defineProperty(exports, "pie", {
enumerable: true,
get: function get() {
return pie_1$1.pie;
}
});
Object.defineProperty(exports, "radarAxis", {
enumerable: true,
get: function get() {
return radarAxis_1$1.radarAxis;
}
});
Object.defineProperty(exports, "radar", {
enumerable: true,
get: function get() {
return radar_1$1.radar;
}
});
Object.defineProperty(exports, "gauge", {
enumerable: true,
get: function get() {
return gauge_1$1.gauge;
}
});
Object.defineProperty(exports, "legend", {
enumerable: true,
get: function get() {
return legend_1$1.legend;
}
});
});
unwrapExports(core);
var charts_class = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _typeof2 = interopRequireDefault(_typeof_1);
var _classCallCheck2 = interopRequireDefault(classCallCheck);
var _cRender = interopRequireDefault(lib$3);
var Charts = function Charts(dom) {
(0, _classCallCheck2["default"])(this, Charts);
if (!dom) {
console.error('Charts Missing parameters!');
return false;
}
var clientWidth = dom.clientWidth,
clientHeight = dom.clientHeight;
var canvas = document.createElement('canvas');
canvas.setAttribute('width', clientWidth);
canvas.setAttribute('height', clientHeight);
dom.appendChild(canvas);
var attribute = {
container: dom,
canvas: canvas,
render: new _cRender["default"](canvas),
option: null
};
Object.assign(this, attribute);
};
/**
* @description Set chart option
* @param {Object} option Chart option
* @param {Boolean} animationEnd Execute animationEnd
* @return {Undefined} No return
*/
exports["default"] = Charts;
Charts.prototype.setOption = function (option) {
var animationEnd = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (!option || (0, _typeof2["default"])(option) !== 'object') {
console.error('setOption Missing parameters!');
return false;
}
if (animationEnd) this.render.graphs.forEach(function (graph) {
return graph.animationEnd();
});
var optionCloned = (0, util.deepClone)(option, true);
(0, core.mergeColor)(this, optionCloned);
(0, core.grid)(this, optionCloned);
(0, core.axis)(this, optionCloned);
(0, core.radarAxis)(this, optionCloned);
(0, core.title)(this, optionCloned);
(0, core.bar)(this, optionCloned);
(0, core.line)(this, optionCloned);
(0, core.pie)(this, optionCloned);
(0, core.radar)(this, optionCloned);
(0, core.gauge)(this, optionCloned);
(0, core.legend)(this, optionCloned);
this.option = option;
this.render.launchAnimation(); // console.warn(this)
};
/**
* @description Resize chart
* @return {Undefined} No return
*/
Charts.prototype.resize = function () {
var container = this.container,
canvas = this.canvas,
render = this.render,
option = this.option;
var clientWidth = container.clientWidth,
clientHeight = container.clientHeight;
canvas.setAttribute('width', clientWidth);
canvas.setAttribute('height', clientHeight);
render.area = [clientWidth, clientHeight];
this.setOption(option);
};
});
unwrapExports(charts_class);
var lib$4 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "changeDefaultConfig", {
enumerable: true,
get: function get() {
return config.changeDefaultConfig;
}
});
exports["default"] = void 0;
var _charts = interopRequireDefault(charts_class);
var _default = _charts["default"];
exports["default"] = _default;
});
var Charts = unwrapExports(lib$4);
//
var script$q = {
name: 'DvCharts',
mixins: [autoResize],
props: {
option: {
type: Object,
default: () => ({})
}
},
data() {
const timestamp = Date.now();
return {
ref: `charts-container-${timestamp}`,
chartRef: `chart-${timestamp}`,
chart: null
};
},
watch: {
option() {
let {
chart,
option
} = this;
if (!chart) return;
if (!option) option = {};
chart.setOption(option, true);
}
},
methods: {
afterAutoResizeMixinInit() {
const {
initChart
} = this;
initChart();
},
initChart() {
const {
$refs,
chartRef,
option
} = this;
const chart = this.chart = new Charts($refs[chartRef]);
if (!option) return;
chart.setOption(option);
},
onResize() {
const {
chart
} = this;
if (!chart) return;
chart.resize();
}
}
};
/* script */
const __vue_script__$q = script$q;
/* template */
var __vue_render__$q = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-charts-container" }, [
_c("div", { ref: _vm.chartRef, staticClass: "charts-canvas-container" })
])
};
var __vue_staticRenderFns__$q = [];
__vue_render__$q._withStripped = true;
/* style */
const __vue_inject_styles__$q = function (inject) {
if (!inject) return
inject("data-v-5e36f670_0", { source: ".dv-charts-container {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-charts-container .charts-canvas-container {\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;AACd;AACA;EACE,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-charts-container {\n position: relative;\n width: 100%;\n height: 100%;\n}\n.dv-charts-container .charts-canvas-container {\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$q = undefined;
/* module identifier */
const __vue_module_identifier__$q = undefined;
/* functional template */
const __vue_is_functional_template__$q = false;
/* style inject SSR */
var Charts$1 = normalizeComponent_1(
{ render: __vue_render__$q, staticRenderFns: __vue_staticRenderFns__$q },
__vue_inject_styles__$q,
__vue_script__$q,
__vue_scope_id__$q,
__vue_is_functional_template__$q,
__vue_module_identifier__$q,
browser,
undefined
);
function charts (Vue) {
Vue.component(Charts$1.name, Charts$1);
}
//
var script$r = {
name: 'DvDigitalFlop',
props: {
config: {
type: Object,
default: () => ({})
}
},
data() {
return {
renderer: null,
defaultConfig: {
/**
* @description Number for digital flop
* @type {Array<Number>}
* @default number = []
* @example number = [10]
*/
number: [],
/**
* @description Content formatter
* @type {String}
* @default content = ''
* @example content = '{nt}个'
*/
content: '',
/**
* @description Number toFixed
* @type {Number}
* @default toFixed = 0
*/
toFixed: 0,
/**
* @description Text align
* @type {String}
* @default textAlign = 'center'
* @example textAlign = 'center' | 'left' | 'right'
*/
textAlign: 'center',
/**
* @description Text style configuration
* @type {Object} {CRender Class Style}
*/
style: {
fontSize: 30,
fill: '#3de7c9'
},
/**
* @description CRender animationCurve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description CRender animationFrame
* @type {String}
* @default animationFrame = 50
*/
animationFrame: 50
},
mergedConfig: null,
graph: null
};
},
watch: {
config() {
const {
update
} = this;
update();
}
},
methods: {
init() {
const {
initRender,
mergeConfig,
initGraph
} = this;
initRender();
mergeConfig();
initGraph();
},
initRender() {
const {
$refs
} = this;
this.renderer = new CRender($refs['digital-flop']);
},
mergeConfig() {
const {
defaultConfig,
config
} = this;
this.mergedConfig = util_2$1(util_1(defaultConfig, true), config || {});
},
initGraph() {
const {
getShape,
getStyle,
renderer,
mergedConfig
} = this;
const {
animationCurve,
animationFrame
} = mergedConfig;
const shape = getShape();
const style = getStyle();
this.graph = renderer.add({
name: 'numberText',
animationCurve,
animationFrame,
shape,
style
});
},
getShape() {
const {
number,
content,
toFixed,
textAlign
} = this.mergedConfig;
const [w, h] = this.renderer.area;
const position = [w / 2, h / 2];
if (textAlign === 'left') position[0] = 0;
if (textAlign === 'right') position[0] = w;
return {
number,
content,
toFixed,
position
};
},
getStyle() {
const {
style,
textAlign
} = this.mergedConfig;
return util_2$1(style, {
textAlign,
textBaseline: 'middle'
});
},
update() {
const {
mergeConfig,
mergeShape,
getShape,
getStyle,
graph,
mergedConfig
} = this;
graph.animationEnd();
mergeConfig();
if (!graph) return;
const {
animationCurve,
animationFrame
} = mergedConfig;
const shape = getShape();
const style = getStyle();
mergeShape(graph, shape);
graph.animationCurve = animationCurve;
graph.animationFrame = animationFrame;
graph.animation('style', style, true);
graph.animation('shape', shape);
},
mergeShape(graph, shape) {
const cacheNum = graph.shape.number.length;
const shapeNum = shape.number.length;
if (cacheNum !== shapeNum) graph.shape.number = shape.number;
}
},
mounted() {
const {
init
} = this;
init();
}
};
/* script */
const __vue_script__$r = script$r;
/* template */
var __vue_render__$r = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { staticClass: "dv-digital-flop" }, [
_c("canvas", { ref: "digital-flop" })
])
};
var __vue_staticRenderFns__$r = [];
__vue_render__$r._withStripped = true;
/* style */
const __vue_inject_styles__$r = function (inject) {
if (!inject) return
inject("data-v-2cf25a2e_0", { source: ".dv-digital-flop canvas {\n width: 100%;\n height: 100%;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,WAAW;EACX,YAAY;AACd","file":"main.vue","sourcesContent":[".dv-digital-flop canvas {\n width: 100%;\n height: 100%;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$r = undefined;
/* module identifier */
const __vue_module_identifier__$r = undefined;
/* functional template */
const __vue_is_functional_template__$r = false;
/* style inject SSR */
var DigitalFlop = normalizeComponent_1(
{ render: __vue_render__$r, staticRenderFns: __vue_staticRenderFns__$r },
__vue_inject_styles__$r,
__vue_script__$r,
__vue_scope_id__$r,
__vue_is_functional_template__$r,
__vue_module_identifier__$r,
browser,
undefined
);
//
var script$s = {
name: 'DvActiveRingChart',
components: {
dvDigitalFlop: DigitalFlop
},
props: {
config: {
type: Object,
default: () => ({})
}
},
data() {
return {
defaultConfig: {
/**
* @description Ring radius
* @type {String|Number}
* @default radius = '50%'
* @example radius = '50%' | 100
*/
radius: '50%',
/**
* @description Active ring radius
* @type {String|Number}
* @default activeRadius = '55%'
* @example activeRadius = '55%' | 110
*/
activeRadius: '55%',
/**
* @description Ring data
* @type {Array<Object>}
* @default data = [{ name: '', value: 0 }]
*/
data: [{
name: '',
value: 0
}],
/**
* @description Ring line width
* @type {Number}
* @default lineWidth = 20
*/
lineWidth: 20,
/**
* @description Active time gap (ms)
* @type {Number}
* @default activeTimeGap = 3000
*/
activeTimeGap: 3000,
/**
* @description Ring color (hex|rgb|rgba|color keywords)
* @type {Array<String>}
* @default color = [Charts Default Color]
* @example color = ['#000', 'rgb(0, 0, 0)', 'rgba(0, 0, 0, 1)', 'red']
*/
color: [],
/**
* @description Digital flop style
* @type {Object}
*/
digitalFlopStyle: {
fontSize: 25,
fill: '#fff'
},
/**
* @description CRender animationCurve
* @type {String}
* @default animationCurve = 'easeOutCubic'
*/
animationCurve: 'easeOutCubic',
/**
* @description CRender animationFrame
* @type {String}
* @default animationFrame = 50
*/
animationFrame: 50
},
mergedConfig: null,
chart: null,
activeIndex: 0,
animationHandler: ''
};
},
computed: {
digitalFlop() {
const {
mergedConfig,
activeIndex
} = this;
if (!mergedConfig) return {};
const {
digitalFlopStyle,
data
} = mergedConfig;
const value = data.map(({
value
}) => value);
const sum = value.reduce((all, v) => all + v, 0);
const percent = parseInt(value[activeIndex] / sum * 100) || 0;
return {
content: '{nt}%',
number: [percent],
style: digitalFlopStyle
};
},
ringName() {
const {
mergedConfig,
activeIndex
} = this;
if (!mergedConfig) return '';
return mergedConfig.data[activeIndex].name;
},
fontSize() {
const {
mergedConfig
} = this;
if (!mergedConfig) return '';
return `font-size: ${mergedConfig.digitalFlopStyle.fontSize}px;`;
}
},
watch: {
config() {
const {
animationHandler,
mergeConfig,
setRingOption
} = this;
clearTimeout(animationHandler);
this.activeIndex = 0;
mergeConfig();
setRingOption();
}
},
methods: {
init() {
const {
initChart,
mergeConfig,
setRingOption
} = this;
initChart();
mergeConfig();
setRingOption();
},
initChart() {
const {
$refs
} = this;
this.chart = new Charts($refs['active-ring-chart']);
},
mergeConfig() {
const {
defaultConfig,
config
} = this;
this.mergedConfig = util_2$1(util_1(defaultConfig, true), config || {});
},
setRingOption() {
const {
getRingOption,
chart,
ringAnimation
} = this;
const option = getRingOption();
chart.setOption(option, true);
ringAnimation();
},
getRingOption() {
const {
mergedConfig,
getRealRadius
} = this;
const radius = getRealRadius();
mergedConfig.data.forEach(dataItem => {
dataItem.radius = radius;
});
return {
series: [{
type: 'pie',
...mergedConfig,
outsideLabel: {
show: false
}
}],
color: mergedConfig.color
};
},
getRealRadius(active = false) {
const {
mergedConfig,
chart
} = this;
const {
radius,
activeRadius,
lineWidth
} = mergedConfig;
const maxRadius = Math.min(...chart.render.area) / 2;
const halfLineWidth = lineWidth / 2;
let realRadius = active ? activeRadius : radius;
if (typeof realRadius !== 'number') realRadius = parseInt(realRadius) / 100 * maxRadius;
const insideRadius = realRadius - halfLineWidth;
const outSideRadius = realRadius + halfLineWidth;
return [insideRadius, outSideRadius];
},
ringAnimation() {
let {
activeIndex,
getRingOption,
chart,
getRealRadius
} = this;
const radius = getRealRadius();
const active = getRealRadius(true);
const option = getRingOption();
const {
data
} = option.series[0];
data.forEach((dataItem, i) => {
if (i === activeIndex) {
dataItem.radius = active;
} else {
dataItem.radius = radius;
}
});
chart.setOption(option, true);
const {
activeTimeGap
} = option.series[0];
this.animationHandler = setTimeout(foo => {
activeIndex += 1;
if (activeIndex >= data.length) activeIndex = 0;
this.activeIndex = activeIndex;
this.ringAnimation();
}, activeTimeGap);
}
},
mounted() {
const {
init
} = this;
init();
},
beforeDestroy() {
const {
animationHandler
} = this;
clearTimeout(animationHandler);
}
};
/* script */
const __vue_script__$s = script$s;
/* template */
var __vue_render__$s = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { staticClass: "dv-active-ring-chart" }, [
_c("div", {
ref: "active-ring-chart",
staticClass: "active-ring-chart-container"
}),
_vm._v(" "),
_c(
"div",
{ staticClass: "active-ring-info" },
[
_c("dv-digital-flop", { attrs: { config: _vm.digitalFlop } }),
_vm._v(" "),
_c("div", { staticClass: "active-ring-name", style: _vm.fontSize }, [
_vm._v(_vm._s(_vm.ringName))
])
],
1
)
])
};
var __vue_staticRenderFns__$s = [];
__vue_render__$s._withStripped = true;
/* style */
const __vue_inject_styles__$s = function (inject) {
if (!inject) return
inject("data-v-784c5a14_0", { source: ".dv-active-ring-chart {\n position: relative;\n}\n.dv-active-ring-chart .active-ring-chart-container {\n width: 100%;\n height: 100%;\n}\n.dv-active-ring-chart .active-ring-info {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0px;\n top: 0px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.dv-active-ring-chart .active-ring-info .dv-digital-flop {\n width: 100px;\n height: 30px;\n}\n.dv-active-ring-chart .active-ring-info .active-ring-name {\n width: 100px;\n height: 30px;\n color: #fff;\n text-align: center;\n vertical-align: middle;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;AACpB;AACA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,SAAS;EACT,QAAQ;EACR,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,mBAAmB;AACrB;AACA;EACE,YAAY;EACZ,YAAY;AACd;AACA;EACE,YAAY;EACZ,YAAY;EACZ,WAAW;EACX,kBAAkB;EAClB,sBAAsB;EACtB,uBAAuB;EACvB,gBAAgB;EAChB,mBAAmB;AACrB","file":"main.vue","sourcesContent":[".dv-active-ring-chart {\n position: relative;\n}\n.dv-active-ring-chart .active-ring-chart-container {\n width: 100%;\n height: 100%;\n}\n.dv-active-ring-chart .active-ring-info {\n position: absolute;\n width: 100%;\n height: 100%;\n left: 0px;\n top: 0px;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.dv-active-ring-chart .active-ring-info .dv-digital-flop {\n width: 100px;\n height: 30px;\n}\n.dv-active-ring-chart .active-ring-info .active-ring-name {\n width: 100px;\n height: 30px;\n color: #fff;\n text-align: center;\n vertical-align: middle;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$s = undefined;
/* module identifier */
const __vue_module_identifier__$s = undefined;
/* functional template */
const __vue_is_functional_template__$s = false;
/* style inject SSR */
var ActiveRingChart = normalizeComponent_1(
{ render: __vue_render__$s, staticRenderFns: __vue_staticRenderFns__$s },
__vue_inject_styles__$s,
__vue_script__$s,
__vue_scope_id__$s,
__vue_is_functional_template__$s,
__vue_module_identifier__$s,
browser,
undefined
);
function activeRingChart (Vue) {
Vue.component(ActiveRingChart.name, ActiveRingChart);
}
//
var script$t = {
name: 'DvCapsuleChart',
props: {
config: {
type: Object,
default: () => ({})
}
},
data() {
return {
defaultConfig: {
/**
* @description Capsule chart data
* @type {Array<Object>}
* @default data = []
* @example data = [{ name: 'foo1', value: 100 }, { name: 'foo2', value: 100 }]
*/
data: [],
/**
* @description Colors (hex|rgb|rgba|color keywords)
* @type {Array<String>}
* @default color = ['#37a2da', '#32c5e9', '#67e0e3', '#9fe6b8', '#ffdb5c', '#ff9f7f', '#fb7293']
* @example color = ['#000', 'rgb(0, 0, 0)', 'rgba(0, 0, 0, 1)', 'red']
*/
colors: ['#37a2da', '#32c5e9', '#67e0e3', '#9fe6b8', '#ffdb5c', '#ff9f7f', '#fb7293'],
/**
* @description Chart unit
* @type {String}
* @default unit = ''
*/
unit: ''
},
mergedConfig: null,
capsuleLength: [],
labelData: []
};
},
watch: {
config() {
const {
calcData
} = this;
calcData();
}
},
methods: {
calcData() {
const {
mergeConfig,
calcCapsuleLengthAndLabelData
} = this;
mergeConfig();
calcCapsuleLengthAndLabelData();
},
mergeConfig() {
let {
config,
defaultConfig
} = this;
this.mergedConfig = util_2$1(util_1(defaultConfig, true), config || {});
},
calcCapsuleLengthAndLabelData() {
const {
data
} = this.mergedConfig;
if (!data.length) return;
const capsuleValue = data.map(({
value
}) => value);
const maxValue = Math.max(...capsuleValue);
this.capsuleLength = capsuleValue.map(v => maxValue ? v / maxValue : 0);
const oneFifth = maxValue / 5;
this.labelData = new Array(6).fill(0).map((v, i) => Math.ceil(i * oneFifth));
}
},
mounted() {
const {
calcData
} = this;
calcData();
}
};
/* script */
const __vue_script__$t = script$t;
/* template */
var __vue_render__$t = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c(
"div",
{ staticClass: "dv-capsule-chart" },
[
_vm.mergedConfig
? [
_c(
"div",
{ staticClass: "label-column" },
[
_vm._l(_vm.mergedConfig.data, function(item) {
return _c("div", { key: item.name }, [
_vm._v(_vm._s(item.name))
])
}),
_vm._v(" "),
_c("div", [_vm._v(" ")])
],
2
),
_vm._v(" "),
_c(
"div",
{ staticClass: "capsule-container" },
[
_vm._l(_vm.capsuleLength, function(capsule, index) {
return _c(
"div",
{ key: index, staticClass: "capsule-item" },
[
_c("div", {
style:
"width: " +
capsule * 100 +
"%; background-color: " +
_vm.mergedConfig.colors[
index % _vm.mergedConfig.colors.length
] +
";"
})
]
)
}),
_vm._v(" "),
_c(
"div",
{ staticClass: "unit-label" },
_vm._l(_vm.labelData, function(label, index) {
return _c("div", { key: label + index }, [
_vm._v(_vm._s(label))
])
}),
0
)
],
2
),
_vm._v(" "),
_vm.mergedConfig.unit
? _c("div", { staticClass: "unit-text" }, [
_vm._v(_vm._s(_vm.mergedConfig.unit))
])
: _vm._e()
]
: _vm._e()
],
2
)
};
var __vue_staticRenderFns__$t = [];
__vue_render__$t._withStripped = true;
/* style */
const __vue_inject_styles__$t = function (inject) {
if (!inject) return
inject("data-v-99dd88f2_0", { source: ".dv-capsule-chart {\n position: relative;\n display: flex;\n flex-direction: row;\n box-sizing: border-box;\n padding: 10px;\n color: #fff;\n}\n.dv-capsule-chart .label-column {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n box-sizing: border-box;\n padding-right: 10px;\n text-align: right;\n font-size: 12px;\n}\n.dv-capsule-chart .label-column div {\n height: 20px;\n line-height: 20px;\n}\n.dv-capsule-chart .capsule-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n.dv-capsule-chart .capsule-item {\n box-shadow: 0 0 3px #999;\n height: 10px;\n margin: 5px 0px;\n border-radius: 5px;\n}\n.dv-capsule-chart .capsule-item div {\n height: 8px;\n margin-top: 1px;\n border-radius: 5px;\n transition: all 0.3s;\n}\n.dv-capsule-chart .unit-label {\n height: 20px;\n font-size: 12px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n}\n.dv-capsule-chart .unit-text {\n text-align: right;\n display: flex;\n align-items: flex-end;\n font-size: 12px;\n line-height: 20px;\n margin-left: 10px;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,aAAa;EACb,mBAAmB;EACnB,sBAAsB;EACtB,aAAa;EACb,WAAW;AACb;AACA;EACE,aAAa;EACb,sBAAsB;EACtB,8BAA8B;EAC9B,sBAAsB;EACtB,mBAAmB;EACnB,iBAAiB;EACjB,eAAe;AACjB;AACA;EACE,YAAY;EACZ,iBAAiB;AACnB;AACA;EACE,OAAO;EACP,aAAa;EACb,sBAAsB;EACtB,8BAA8B;AAChC;AACA;EACE,wBAAwB;EACxB,YAAY;EACZ,eAAe;EACf,kBAAkB;AACpB;AACA;EACE,WAAW;EACX,eAAe;EACf,kBAAkB;EAClB,oBAAoB;AACtB;AACA;EACE,YAAY;EACZ,eAAe;EACf,aAAa;EACb,mBAAmB;EACnB,mBAAmB;EACnB,8BAA8B;AAChC;AACA;EACE,iBAAiB;EACjB,aAAa;EACb,qBAAqB;EACrB,eAAe;EACf,iBAAiB;EACjB,iBAAiB;AACnB","file":"main.vue","sourcesContent":[".dv-capsule-chart {\n position: relative;\n display: flex;\n flex-direction: row;\n box-sizing: border-box;\n padding: 10px;\n color: #fff;\n}\n.dv-capsule-chart .label-column {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n box-sizing: border-box;\n padding-right: 10px;\n text-align: right;\n font-size: 12px;\n}\n.dv-capsule-chart .label-column div {\n height: 20px;\n line-height: 20px;\n}\n.dv-capsule-chart .capsule-container {\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n}\n.dv-capsule-chart .capsule-item {\n box-shadow: 0 0 3px #999;\n height: 10px;\n margin: 5px 0px;\n border-radius: 5px;\n}\n.dv-capsule-chart .capsule-item div {\n height: 8px;\n margin-top: 1px;\n border-radius: 5px;\n transition: all 0.3s;\n}\n.dv-capsule-chart .unit-label {\n height: 20px;\n font-size: 12px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n}\n.dv-capsule-chart .unit-text {\n text-align: right;\n display: flex;\n align-items: flex-end;\n font-size: 12px;\n line-height: 20px;\n margin-left: 10px;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$t = undefined;
/* module identifier */
const __vue_module_identifier__$t = undefined;
/* functional template */
const __vue_is_functional_template__$t = false;
/* style inject SSR */
var CapsuleChart = normalizeComponent_1(
{ render: __vue_render__$t, staticRenderFns: __vue_staticRenderFns__$t },
__vue_inject_styles__$t,
__vue_script__$t,
__vue_scope_id__$t,
__vue_is_functional_template__$t,
__vue_module_identifier__$t,
browser,
undefined
);
function capsuleChart (Vue) {
Vue.component(CapsuleChart.name, CapsuleChart);
}
//
var script$u = {
name: 'DvWaterLevelPond',
props: {
config: Object,
default: () => ({})
},
data() {
const timestamp = Date.now();
return {
gradientId: `water-level-pond-${timestamp}`,
defaultConfig: {
/**
* @description Data
* @type {Array<Number>}
* @default data = []
* @example data = [60, 40]
*/
data: [],
/**
* @description Shape of wanter level pond
* @type {String}
* @default shape = 'rect'
* @example shape = 'rect' | 'roundRect' | 'round'
*/
shape: 'rect',
/**
* @description Water wave number
* @type {Number}
* @default waveNum = 3
*/
waveNum: 3,
/**
* @description Water wave height (px)
* @type {Number}
* @default waveHeight = 40
*/
waveHeight: 40,
/**
* @description Wave opacity
* @type {Number}
* @default waveOpacity = 0.4
*/
waveOpacity: 0.4,
/**
* @description Colors (hex|rgb|rgba|color keywords)
* @type {Array<String>}
* @default colors = ['#00BAFF', '#3DE7C9']
* @example colors = ['#000', 'rgb(0, 0, 0)', 'rgba(0, 0, 0, 1)', 'red']
*/
colors: ['#3DE7C9', '#00BAFF'],
/**
* @description Formatter
* @type {String}
* @default formatter = '{value}%'
*/
formatter: '{value}%'
},
mergedConfig: {},
renderer: null,
svgBorderGradient: [],
details: '',
waves: [],
animation: false
};
},
computed: {
radius() {
const {
shape
} = this.mergedConfig;
if (shape === 'round') return '50%';
if (shape === 'rect') return '0';
if (shape === 'roundRect') return '10px';
return '0';
},
shape() {
const {
shape
} = this.mergedConfig;
if (!shape) return 'rect';
return shape;
}
},
watch: {
config() {
const {
calcData,
renderer
} = this;
renderer.delAllGraph();
this.waves = [];
setTimeout(calcData, 0);
}
},
methods: {
init() {
const {
initRender,
config,
calcData
} = this;
initRender();
if (!config) return;
calcData();
},
initRender() {
const {
$refs
} = this;
this.renderer = new CRender($refs['water-pond-level']);
},
calcData() {
const {
mergeConfig,
calcSvgBorderGradient,
calcDetails
} = this;
mergeConfig();
calcSvgBorderGradient();
calcDetails();
const {
addWave,
animationWave
} = this;
addWave();
animationWave();
},
mergeConfig() {
const {
config,
defaultConfig
} = this;
this.mergedConfig = util_2$1(util_1(defaultConfig, true), config);
},
calcSvgBorderGradient() {
const {
colors
} = this.mergedConfig;
const colorNum = colors.length;
const colorOffsetGap = 100 / (colorNum - 1);
this.svgBorderGradient = colors.map((c, i) => [colorOffsetGap * i, c]);
},
calcDetails() {
const {
data,
formatter
} = this.mergedConfig;
if (!data.length) {
this.details = '';
return;
}
const maxValue = Math.max(...data);
this.details = formatter.replace('{value}', maxValue);
},
addWave() {
const {
renderer,
getWaveShapes,
getWaveStyle,
drawed
} = this;
const shapes = getWaveShapes();
const style = getWaveStyle();
this.waves = shapes.map(shape => renderer.add({
name: 'smoothline',
animationFrame: 300,
shape,
style,
drawed
}));
},
getWaveShapes() {
const {
mergedConfig,
renderer,
mergeOffset
} = this;
const {
waveNum,
waveHeight,
data
} = mergedConfig;
const [w, h] = renderer.area;
const pointsNum = waveNum * 4 + 4;
const pointXGap = w / waveNum / 2;
return data.map(v => {
let points = new Array(pointsNum).fill(0).map((foo, j) => {
const x = w - pointXGap * j;
const startY = (1 - v / 100) * h;
const y = j % 2 === 0 ? startY : startY - waveHeight;
return [x, y];
});
points = points.map(p => mergeOffset(p, [pointXGap * 2, 0]));
return {
points
};
});
},
mergeOffset([x, y], [ox, oy]) {
return [x + ox, y + oy];
},
getWaveStyle() {
const {
renderer,
mergedConfig
} = this;
const h = renderer.area[1];
return {
gradientColor: mergedConfig.colors,
gradientType: 'linear',
gradientParams: [0, 0, 0, h],
gradientWith: 'fill',
opacity: mergedConfig.waveOpacity,
translate: [0, 0]
};
},
drawed({
shape: {
points
}
}, {
ctx,
area
}) {
const firstPoint = points[0];
const lastPoint = points.slice(-1)[0];
const h = area[1];
ctx.lineTo(lastPoint[0], h);
ctx.lineTo(firstPoint[0], h);
ctx.closePath();
ctx.fill();
},
async animationWave(repeat = 1) {
const {
waves,
renderer,
animation
} = this;
if (animation) return;
this.animation = true;
const w = renderer.area[0];
waves.forEach(graph => {
graph.attr('style', {
translate: [0, 0]
});
graph.animation('style', {
translate: [w, 0]
}, true);
});
await renderer.launchAnimation();
this.animation = false;
if (!renderer.graphs.length) return;
this.animationWave(repeat + 1);
}
},
mounted() {
const {
init
} = this;
init();
},
beforeDestroy() {
const {
renderer
} = this;
renderer.delAllGraph();
this.waves = [];
}
};
/* script */
const __vue_script__$u = script$u;
/* template */
var __vue_render__$u = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { staticClass: "dv-water-pond-level" }, [
_vm.renderer
? _c("svg", [
_c(
"defs",
[
_c(
"linearGradient",
{
attrs: {
id: _vm.gradientId,
x1: "0%",
y1: "0%",
x2: "0%",
y2: "100%"
}
},
_vm._l(_vm.svgBorderGradient, function(lc) {
return _c("stop", {
key: lc[0],
attrs: { offset: lc[0], "stop-color": lc[1] }
})
}),
1
)
],
1
),
_vm._v(" "),
_vm.renderer
? _c(
"text",
{
attrs: {
stroke: "url(#" + _vm.gradientId + ")",
fill: "url(#" + _vm.gradientId + ")",
x: _vm.renderer.area[0] / 2 + 8,
y: _vm.renderer.area[1] / 2 + 8
}
},
[_vm._v("\n " + _vm._s(_vm.details) + "\n ")]
)
: _vm._e(),
_vm._v(" "),
!_vm.shape || _vm.shape === "round"
? _c("ellipse", {
attrs: {
cx: _vm.renderer.area[0] / 2 + 8,
cy: _vm.renderer.area[1] / 2 + 8,
rx: _vm.renderer.area[0] / 2 + 5,
ry: _vm.renderer.area[1] / 2 + 5,
stroke: "url(#" + _vm.gradientId + ")"
}
})
: _c("rect", {
attrs: {
x: "2",
y: "2",
rx: _vm.shape === "roundRect" ? 10 : 0,
ry: _vm.shape === "roundRect" ? 10 : 0,
width: _vm.renderer.area[0] + 12,
height: _vm.renderer.area[1] + 12,
stroke: "url(#" + _vm.gradientId + ")"
}
})
])
: _vm._e(),
_vm._v(" "),
_c("canvas", {
ref: "water-pond-level",
style: "border-radius: " + _vm.radius + ";"
})
])
};
var __vue_staticRenderFns__$u = [];
__vue_render__$u._withStripped = true;
/* style */
const __vue_inject_styles__$u = function (inject) {
if (!inject) return
inject("data-v-48b03636_0", { source: ".dv-water-pond-level {\n position: relative;\n}\n.dv-water-pond-level svg {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-water-pond-level text {\n font-size: 25px;\n font-weight: bold;\n text-anchor: middle;\n dominant-baseline: middle;\n}\n.dv-water-pond-level ellipse,\n.dv-water-pond-level rect {\n fill: none;\n stroke-width: 3;\n}\n.dv-water-pond-level canvas {\n margin-top: 8px;\n margin-left: 8px;\n width: calc(100% - 16px);\n height: calc(100% - 16px);\n box-sizing: border-box;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;AACpB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,QAAQ;EACR,SAAS;AACX;AACA;EACE,eAAe;EACf,iBAAiB;EACjB,mBAAmB;EACnB,yBAAyB;AAC3B;AACA;;EAEE,UAAU;EACV,eAAe;AACjB;AACA;EACE,eAAe;EACf,gBAAgB;EAChB,wBAAwB;EACxB,yBAAyB;EACzB,sBAAsB;AACxB","file":"main.vue","sourcesContent":[".dv-water-pond-level {\n position: relative;\n}\n.dv-water-pond-level svg {\n position: absolute;\n width: 100%;\n height: 100%;\n top: 0px;\n left: 0px;\n}\n.dv-water-pond-level text {\n font-size: 25px;\n font-weight: bold;\n text-anchor: middle;\n dominant-baseline: middle;\n}\n.dv-water-pond-level ellipse,\n.dv-water-pond-level rect {\n fill: none;\n stroke-width: 3;\n}\n.dv-water-pond-level canvas {\n margin-top: 8px;\n margin-left: 8px;\n width: calc(100% - 16px);\n height: calc(100% - 16px);\n box-sizing: border-box;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$u = undefined;
/* module identifier */
const __vue_module_identifier__$u = undefined;
/* functional template */
const __vue_is_functional_template__$u = false;
/* style inject SSR */
var WaterLevelPond = normalizeComponent_1(
{ render: __vue_render__$u, staticRenderFns: __vue_staticRenderFns__$u },
__vue_inject_styles__$u,
__vue_script__$u,
__vue_scope_id__$u,
__vue_is_functional_template__$u,
__vue_module_identifier__$u,
browser,
undefined
);
function waterLevelPond (Vue) {
Vue.component(WaterLevelPond.name, WaterLevelPond);
}
//
var script$v = {
name: 'DvPercentPond',
props: {
config: {
type: Object,
default: () => ({})
}
},
data() {
const timestamp = Date.now();
return {
gradientId1: `percent-pond-gradientId1-${timestamp}`,
gradientId2: `percent-pond-gradientId2-${timestamp}`,
width: 0,
height: 0,
defaultConfig: {
/**
* @description Value
* @type {Number}
* @default value = 0
*/
value: 0,
/**
* @description Colors (hex|rgb|rgba|color keywords)
* @type {Array<String>}
* @default colors = ['#00BAFF', '#3DE7C9']
* @example colors = ['#000', 'rgb(0, 0, 0)', 'rgba(0, 0, 0, 1)', 'red']
*/
colors: ['#3DE7C9', '#00BAFF'],
/**
* @description Border width
* @type {Number}
* @default borderWidth = 3
*/
borderWidth: 3,
/**
* @description Gap between border and pond
* @type {Number}
* @default borderGap = 3
*/
borderGap: 3,
/**
* @description Line dash
* @type {Array<Number>}
* @default lineDash = [5, 1]
*/
lineDash: [5, 1],
/**
* @description Text color
* @type {String}
* @default textColor = '#fff'
*/
textColor: '#fff',
/**
* @description Border radius
* @type {Number}
* @default borderRadius = 5
*/
borderRadius: 5,
/**
* @description Local Gradient
* @type {Boolean}
* @default localGradient = false
* @example localGradient = false | true
*/
localGradient: false,
/**
* @description Formatter
* @type {String}
* @default formatter = '{value}%'
*/
formatter: '{value}%'
},
mergedConfig: null
};
},
computed: {
rectWidth() {
const {
mergedConfig,
width
} = this;
if (!mergedConfig) return 0;
const {
borderWidth
} = mergedConfig;
return width - borderWidth;
},
rectHeight() {
const {
mergedConfig,
height
} = this;
if (!mergedConfig) return 0;
const {
borderWidth
} = mergedConfig;
return height - borderWidth;
},
points() {
const {
mergedConfig,
width,
height
} = this;
const halfHeight = height / 2;
if (!mergedConfig) return `0, ${halfHeight} 0, ${halfHeight}`;
const {
borderWidth,
borderGap,
value
} = mergedConfig;
const polylineLength = (width - (borderWidth + borderGap) * 2) / 100 * value;
return `
${borderWidth + borderGap}, ${halfHeight}
${borderWidth + borderGap + polylineLength}, ${halfHeight + 0.001}
`;
},
polylineWidth() {
const {
mergedConfig,
height
} = this;
if (!mergedConfig) return 0;
const {
borderWidth,
borderGap
} = mergedConfig;
return height - (borderWidth + borderGap) * 2;
},
linearGradient() {
const {
mergedConfig
} = this;
if (!mergedConfig) return [];
const {
colors
} = mergedConfig;
const colorNum = colors.length;
const colorOffsetGap = 100 / (colorNum - 1);
return colors.map((c, i) => [colorOffsetGap * i, c]);
},
polylineGradient() {
const {
gradientId1,
gradientId2,
mergedConfig
} = this;
if (!mergedConfig) return gradientId2;
if (mergedConfig.localGradient) return gradientId1;
return gradientId2;
},
gradient2XPos() {
const {
mergedConfig
} = this;
if (!mergedConfig) return '100%';
const {
value
} = mergedConfig;
return `${200 - value}%`;
},
details() {
const {
mergedConfig
} = this;
if (!mergedConfig) return '';
const {
value,
formatter
} = mergedConfig;
return formatter.replace('{value}', value);
}
},
watch: {
config() {
const {
mergeConfig
} = this;
mergeConfig();
}
},
methods: {
async init() {
const {
initWH,
config,
mergeConfig
} = this;
await initWH();
if (!config) return;
mergeConfig();
},
async initWH() {
const {
$nextTick,
$refs
} = this;
await $nextTick();
const dom = $refs['percent-pond'];
this.width = dom.clientWidth;
this.height = dom.clientHeight;
},
mergeConfig() {
const {
config,
defaultConfig
} = this;
this.mergedConfig = util_2$1(util_1(defaultConfig, true), config || {});
}
},
mounted() {
const {
init
} = this;
init();
}
};
/* script */
const __vue_script__$v = script$v;
/* template */
var __vue_render__$v = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: "percent-pond", staticClass: "dv-percent-pond" }, [
_c("svg", [
_c(
"defs",
[
_c(
"linearGradient",
{
attrs: {
id: _vm.gradientId1,
x1: "0%",
y1: "0%",
x2: "100%",
y2: "0%"
}
},
_vm._l(_vm.linearGradient, function(lc) {
return _c("stop", {
key: lc[0],
attrs: { offset: lc[0] + "%", "stop-color": lc[1] }
})
}),
1
),
_vm._v(" "),
_c(
"linearGradient",
{
attrs: {
id: _vm.gradientId2,
x1: "0%",
y1: "0%",
x2: _vm.gradient2XPos,
y2: "0%"
}
},
_vm._l(_vm.linearGradient, function(lc) {
return _c("stop", {
key: lc[0],
attrs: { offset: lc[0] + "%", "stop-color": lc[1] }
})
}),
1
)
],
1
),
_vm._v(" "),
_c("rect", {
attrs: {
x: _vm.mergedConfig ? _vm.mergedConfig.borderWidth / 2 : "0",
y: _vm.mergedConfig ? _vm.mergedConfig.borderWidth / 2 : "0",
rx: _vm.mergedConfig ? _vm.mergedConfig.borderRadius : "0",
ry: _vm.mergedConfig ? _vm.mergedConfig.borderRadius : "0",
fill: "transparent",
"stroke-width": _vm.mergedConfig ? _vm.mergedConfig.borderWidth : "0",
stroke: "url(#" + _vm.gradientId1 + ")",
width: _vm.rectWidth > 0 ? _vm.rectWidth : 0,
height: _vm.rectHeight > 0 ? _vm.rectHeight : 0
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
"stroke-width": _vm.polylineWidth,
"stroke-dasharray": _vm.mergedConfig
? _vm.mergedConfig.lineDash.join(",")
: "0",
stroke: "url(#" + _vm.polylineGradient + ")",
points: _vm.points
}
}),
_vm._v(" "),
_c(
"text",
{
attrs: {
stroke: _vm.mergedConfig ? _vm.mergedConfig.textColor : "#fff",
fill: _vm.mergedConfig ? _vm.mergedConfig.textColor : "#fff",
x: _vm.width / 2,
y: _vm.height / 2
}
},
[_vm._v("\n " + _vm._s(_vm.details) + "\n ")]
)
])
])
};
var __vue_staticRenderFns__$v = [];
__vue_render__$v._withStripped = true;
/* style */
const __vue_inject_styles__$v = function (inject) {
if (!inject) return
inject("data-v-67d721de_0", { source: ".dv-percent-pond {\n position: relative;\n display: flex;\n flex-direction: column;\n}\n.dv-percent-pond svg {\n position: absolute;\n left: 0px;\n top: 0px;\n width: 100%;\n height: 100%;\n}\n.dv-percent-pond polyline {\n transition: all 0.3s;\n}\n.dv-percent-pond text {\n font-size: 25px;\n font-weight: bold;\n text-anchor: middle;\n dominant-baseline: middle;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,aAAa;EACb,sBAAsB;AACxB;AACA;EACE,kBAAkB;EAClB,SAAS;EACT,QAAQ;EACR,WAAW;EACX,YAAY;AACd;AACA;EACE,oBAAoB;AACtB;AACA;EACE,eAAe;EACf,iBAAiB;EACjB,mBAAmB;EACnB,yBAAyB;AAC3B","file":"main.vue","sourcesContent":[".dv-percent-pond {\n position: relative;\n display: flex;\n flex-direction: column;\n}\n.dv-percent-pond svg {\n position: absolute;\n left: 0px;\n top: 0px;\n width: 100%;\n height: 100%;\n}\n.dv-percent-pond polyline {\n transition: all 0.3s;\n}\n.dv-percent-pond text {\n font-size: 25px;\n font-weight: bold;\n text-anchor: middle;\n dominant-baseline: middle;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$v = undefined;
/* module identifier */
const __vue_module_identifier__$v = undefined;
/* functional template */
const __vue_is_functional_template__$v = false;
/* style inject SSR */
var PercentPond = normalizeComponent_1(
{ render: __vue_render__$v, staticRenderFns: __vue_staticRenderFns__$v },
__vue_inject_styles__$v,
__vue_script__$v,
__vue_scope_id__$v,
__vue_is_functional_template__$v,
__vue_module_identifier__$v,
browser,
undefined
);
function percentPond (Vue) {
Vue.component(PercentPond.name, PercentPond);
}
//
var script$w = {
name: 'DvFlylineChart',
mixins: [autoResize],
props: {
config: {
type: Object,
default: () => ({})
},
dev: {
type: Boolean,
default: false
}
},
data() {
const timestamp = Date.now();
return {
ref: 'dv-flyline-chart',
unique: Math.random(),
maskId: `flyline-mask-id-${timestamp}`,
maskCircleId: `mask-circle-id-${timestamp}`,
gradientId: `gradient-id-${timestamp}`,
gradient2Id: `gradient2-id-${timestamp}`,
defaultConfig: {
/**
* @description Flyline chart center point
* @type {Array<Number>}
* @default centerPoint = [0, 0]
*/
centerPoint: [0, 0],
/**
* @description Flyline start points
* @type {Array<Array<Number>>}
* @default points = []
* @example points = [[10, 10], [100, 100]]
*/
points: [],
/**
* @description Flyline width
* @type {Number}
* @default lineWidth = 1
*/
lineWidth: 1,
/**
* @description Orbit color
* @type {String}
* @default orbitColor = 'rgba(103, 224, 227, .2)'
*/
orbitColor: 'rgba(103, 224, 227, .2)',
/**
* @description Flyline color
* @type {String}
* @default orbitColor = '#ffde93'
*/
flylineColor: '#ffde93',
/**
* @description K value
* @type {Number}
* @default k = -0.5
* @example k = -1 ~ 1
*/
k: -0.5,
/**
* @description Flyline curvature
* @type {Number}
* @default curvature = 5
*/
curvature: 5,
/**
* @description Flyline radius
* @type {Number}
* @default flylineRadius = 100
*/
flylineRadius: 100,
/**
* @description Flyline animation duration
* @type {Array<Number>}
* @default duration = [20, 30]
*/
duration: [20, 30],
/**
* @description Relative points position
* @type {Boolean}
* @default relative = true
*/
relative: true,
/**
* @description Back ground image url
* @type {String}
* @default bgImgUrl = ''
* @example bgImgUrl = './img/bg.jpg'
*/
bgImgUrl: '',
/**
* @description Text configuration
* @type {Object}
*/
text: {
/**
* @description Text offset
* @type {Array<Number>}
* @default offset = [0, 15]
*/
offset: [0, 15],
/**
* @description Text color
* @type {String}
* @default color = '#ffdb5c'
*/
color: '#ffdb5c',
/**
* @description Text font size
* @type {Number}
* @default fontSize = 12
*/
fontSize: 12
},
/**
* @description Halo configuration
* @type {Object}
*/
halo: {
/**
* @description Weather to show halo
* @type {Boolean}
* @default show = true
* @example show = true | false
*/
show: true,
/**
* @description Halo animation duration (10 = 1s)
* @type {Number}
* @default duration = 30
*/
duration: 30,
/**
* @description Halo color
* @type {String}
* @default color = '#fb7293'
*/
color: '#fb7293',
/**
* @description Halo max radius
* @type {Number}
* @default radius = 120
*/
radius: 120
},
/**
* @description Center point img configuration
* @type {Object}
*/
centerPointImg: {
/**
* @description Center point img width
* @type {Number}
* @default width = 40
*/
width: 40,
/**
* @description Center point img height
* @type {Number}
* @default height = 40
*/
height: 40,
/**
* @description Center point img url
* @type {String}
* @default url = ''
*/
url: ''
},
/**
* @description Points img configuration
* @type {Object}
* @default radius = 120
*/
pointsImg: {
/**
* @description Points img width
* @type {Number}
* @default width = 15
*/
width: 15,
/**
* @description Points img height
* @type {Number}
* @default height = 15
*/
height: 15,
/**
* @description Points img url
* @type {String}
* @default url = ''
*/
url: ''
}
},
mergedConfig: null,
paths: [],
lengths: [],
times: [],
texts: []
};
},
watch: {
config() {
const {
calcData
} = this;
calcData();
}
},
methods: {
afterAutoResizeMixinInit() {
const {
calcData
} = this;
calcData();
},
onResize() {
const {
calcData
} = this;
calcData();
},
async calcData() {
const {
mergeConfig,
createFlylinePaths,
calcLineLengths
} = this;
mergeConfig();
createFlylinePaths();
await calcLineLengths();
const {
calcTimes,
calcTexts
} = this;
calcTimes();
calcTexts();
},
mergeConfig() {
let {
config,
defaultConfig
} = this;
const mergedConfig = util_2$1(util_1(defaultConfig, true), config || {});
const {
points
} = mergedConfig;
mergedConfig.points = points.map(item => {
if (item instanceof Array) {
return {
position: item,
text: ''
};
}
return item;
});
this.mergedConfig = mergedConfig;
},
createFlylinePaths() {
const {
getPath,
mergedConfig,
width,
height
} = this;
let {
centerPoint,
points,
relative
} = mergedConfig;
points = points.map(({
position
}) => position);
if (relative) {
centerPoint = [width * centerPoint[0], height * centerPoint[1]];
points = points.map(([x, y]) => [width * x, height * y]);
}
this.paths = points.map(point => getPath(centerPoint, point));
},
getPath(center, point) {
const {
getControlPoint
} = this;
const controlPoint = getControlPoint(center, point);
return [point, controlPoint, center];
},
getControlPoint([sx, sy], [ex, ey]) {
const {
getKLinePointByx,
mergedConfig
} = this;
const {
curvature,
k
} = mergedConfig;
const [mx, my] = [(sx + ex) / 2, (sy + ey) / 2];
const distance = getPointDistance([sx, sy], [ex, ey]);
const targetLength = distance / curvature;
const disDived = targetLength / 2;
let [dx, dy] = [mx, my];
do {
dx += disDived;
dy = getKLinePointByx(k, [mx, my], dx)[1];
} while (getPointDistance([mx, my], [dx, dy]) < targetLength);
return [dx, dy];
},
getKLinePointByx(k, [lx, ly], x) {
const y = ly - k * lx + k * x;
return [x, y];
},
async calcLineLengths() {
const {
$nextTick,
paths,
$refs
} = this;
await $nextTick();
this.lengths = paths.map((foo, i) => $refs[`path${i}`][0].getTotalLength());
},
calcTimes() {
const {
duration,
points
} = this.mergedConfig;
this.times = points.map(foo => randomExtend(...duration) / 10);
},
calcTexts() {
const {
points
} = this.mergedConfig;
this.texts = points.map(({
text
}) => text);
},
consoleClickPos({
offsetX,
offsetY
}) {
const {
width,
height,
dev
} = this;
if (!dev) return;
const relativeX = (offsetX / width).toFixed(2);
const relativeY = (offsetY / height).toFixed(2);
console.warn(`dv-flyline-chart DEV: \n Click Position is [${offsetX}, ${offsetY}] \n Relative Position is [${relativeX}, ${relativeY}]`);
}
}
};
/* script */
const __vue_script__$w = script$w;
/* template */
var __vue_render__$w = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c(
"div",
{
ref: "dv-flyline-chart",
staticClass: "dv-flyline-chart",
style:
"background-image: url(" +
(_vm.mergedConfig ? _vm.mergedConfig.bgImgUrl : "") +
")",
on: { click: _vm.consoleClickPos }
},
[
_vm.mergedConfig
? _c(
"svg",
{ attrs: { width: _vm.width, height: _vm.height } },
[
_c(
"defs",
[
_c(
"radialGradient",
{
attrs: {
id: _vm.gradientId,
cx: "50%",
cy: "50%",
r: "50%"
}
},
[
_c("stop", {
attrs: {
offset: "0%",
"stop-color": "#fff",
"stop-opacity": "1"
}
}),
_vm._v(" "),
_c("stop", {
attrs: {
offset: "100%",
"stop-color": "#fff",
"stop-opacity": "0"
}
})
],
1
),
_vm._v(" "),
_c(
"radialGradient",
{
attrs: {
id: _vm.gradient2Id,
cx: "50%",
cy: "50%",
r: "50%"
}
},
[
_c("stop", {
attrs: {
offset: "0%",
"stop-color": "#fff",
"stop-opacity": "0"
}
}),
_vm._v(" "),
_c("stop", {
attrs: {
offset: "100%",
"stop-color": "#fff",
"stop-opacity": "1"
}
})
],
1
),
_vm._v(" "),
_vm.paths[0]
? _c(
"circle",
{
attrs: {
id: "circle" + _vm.paths[0].toString(),
cx: _vm.paths[0][2][0],
cy: _vm.paths[0][2][1]
}
},
[
_c("animate", {
attrs: {
attributeName: "r",
values: "1;" + _vm.mergedConfig.halo.radius,
dur: _vm.mergedConfig.halo.duration / 10 + "s",
repeatCount: "indefinite"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "opacity",
values: "1;0",
dur: _vm.mergedConfig.halo.duration / 10 + "s",
repeatCount: "indefinite"
}
})
]
)
: _vm._e()
],
1
),
_vm._v(" "),
_vm.paths[0]
? _c("image", {
attrs: {
"xlink:href": _vm.mergedConfig.centerPointImg.url,
width: _vm.mergedConfig.centerPointImg.width,
height: _vm.mergedConfig.centerPointImg.height,
x:
_vm.paths[0][2][0] -
_vm.mergedConfig.centerPointImg.width / 2,
y:
_vm.paths[0][2][1] -
_vm.mergedConfig.centerPointImg.height / 2
}
})
: _vm._e(),
_vm._v(" "),
_c(
"mask",
{ attrs: { id: "maskhalo" + _vm.paths[0].toString() } },
[
_vm.paths[0]
? _c("use", {
attrs: {
"xlink:href": "#circle" + _vm.paths[0].toString(),
fill: "url(#" + _vm.gradient2Id + ")"
}
})
: _vm._e()
]
),
_vm._v(" "),
_vm.paths[0] && _vm.mergedConfig.halo.show
? _c("use", {
attrs: {
"xlink:href": "#circle" + _vm.paths[0].toString(),
fill: _vm.mergedConfig.halo.color,
mask: "url(#maskhalo" + _vm.paths[0].toString() + ")"
}
})
: _vm._e(),
_vm._v(" "),
_vm._l(_vm.paths, function(path, i) {
return _c("g", { key: i }, [
_c("defs", [
_c("path", {
ref: "path" + i,
refInFor: true,
attrs: {
id: "path" + path.toString(),
d:
"M" +
path[0].toString() +
" Q" +
path[1].toString() +
" " +
path[2].toString(),
fill: "transparent"
}
})
]),
_vm._v(" "),
_c("use", {
attrs: {
"xlink:href": "#path" + path.toString(),
"stroke-width": _vm.mergedConfig.lineWidth,
stroke: _vm.mergedConfig.orbitColor
}
}),
_vm._v(" "),
_vm.lengths[i]
? _c(
"use",
{
attrs: {
"xlink:href": "#path" + path.toString(),
"stroke-width": _vm.mergedConfig.lineWidth,
stroke: _vm.mergedConfig.flylineColor,
mask:
"url(#mask" + _vm.unique + path.toString() + ")"
}
},
[
_c("animate", {
attrs: {
attributeName: "stroke-dasharray",
from: "0, " + _vm.lengths[i],
to: _vm.lengths[i] + ", 0",
dur: _vm.times[i] || 0,
repeatCount: "indefinite"
}
})
]
)
: _vm._e(),
_vm._v(" "),
_c(
"mask",
{ attrs: { id: "mask" + _vm.unique + path.toString() } },
[
_c(
"circle",
{
attrs: {
cx: "0",
cy: "0",
r: _vm.mergedConfig.flylineRadius,
fill: "url(#" + _vm.gradientId + ")"
}
},
[
_c("animateMotion", {
attrs: {
dur: _vm.times[i] || 0,
path:
"M" +
path[0].toString() +
" Q" +
path[1].toString() +
" " +
path[2].toString(),
rotate: "auto",
repeatCount: "indefinite"
}
})
],
1
)
]
),
_vm._v(" "),
_c("image", {
attrs: {
"xlink:href": _vm.mergedConfig.pointsImg.url,
width: _vm.mergedConfig.pointsImg.width,
height: _vm.mergedConfig.pointsImg.height,
x: path[0][0] - _vm.mergedConfig.pointsImg.width / 2,
y: path[0][1] - _vm.mergedConfig.pointsImg.height / 2
}
}),
_vm._v(" "),
_c(
"text",
{
style:
"fontSize:" + _vm.mergedConfig.text.fontSize + "px;",
attrs: {
fill: _vm.mergedConfig.text.color,
x: path[0][0] + _vm.mergedConfig.text.offset[0],
y: path[0][1] + _vm.mergedConfig.text.offset[1]
}
},
[_vm._v("\n " + _vm._s(_vm.texts[i]) + "\n ")]
)
])
})
],
2
)
: _vm._e()
]
)
};
var __vue_staticRenderFns__$w = [];
__vue_render__$w._withStripped = true;
/* style */
const __vue_inject_styles__$w = function (inject) {
if (!inject) return
inject("data-v-e406698c_0", { source: ".dv-flyline-chart {\n display: flex;\n flex-direction: column;\n background-size: 100% 100%;\n}\n.dv-flyline-chart polyline {\n transition: all 0.3s;\n}\n.dv-flyline-chart text {\n text-anchor: middle;\n dominant-baseline: middle;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,aAAa;EACb,sBAAsB;EACtB,0BAA0B;AAC5B;AACA;EACE,oBAAoB;AACtB;AACA;EACE,mBAAmB;EACnB,yBAAyB;AAC3B","file":"main.vue","sourcesContent":[".dv-flyline-chart {\n display: flex;\n flex-direction: column;\n background-size: 100% 100%;\n}\n.dv-flyline-chart polyline {\n transition: all 0.3s;\n}\n.dv-flyline-chart text {\n text-anchor: middle;\n dominant-baseline: middle;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$w = undefined;
/* module identifier */
const __vue_module_identifier__$w = undefined;
/* functional template */
const __vue_is_functional_template__$w = false;
/* style inject SSR */
var FlylineChart = normalizeComponent_1(
{ render: __vue_render__$w, staticRenderFns: __vue_staticRenderFns__$w },
__vue_inject_styles__$w,
__vue_script__$w,
__vue_scope_id__$w,
__vue_is_functional_template__$w,
__vue_module_identifier__$w,
browser,
undefined
);
function flylineChart (Vue) {
Vue.component(FlylineChart.name, FlylineChart);
}
//
var script$x = {
name: 'DvFlylineChartEnhanced',
mixins: [autoResize],
props: {
config: {
type: Object,
default: () => ({})
},
dev: {
type: Boolean,
default: false
}
},
data() {
const timestamp = Date.now();
return {
ref: 'dv-flyline-chart-enhanced',
unique: Math.random(),
flylineGradientId: `flyline-gradient-id-${timestamp}`,
haloGradientId: `halo-gradient-id-${timestamp}`,
/**
* @description Type Declaration
*
* interface Halo {
* show?: boolean
* duration?: [number, number]
* color?: string
* radius?: number
* }
*
* interface Text {
* show?: boolean
* offset?: [number, number]
* color?: string
* fontSize?: number
* }
*
* interface Icon {
* show?: boolean
* src?: string
* width?: number
* height?: number
* }
*
* interface Point {
* name: string
* coordinate: [number, number]
* halo?: Halo
* text?: Text
* icon?: Icon
* }
*
* interface Line {
* width?: number
* color?: string
* orbitColor?: string
* duration?: [number, number]
* radius?: string
* }
*
* interface Flyline extends Line {
* source: string
* target: string
* }
*
* interface FlylineWithPath extends Flyline {
* d: string
* path: [[number, number], [number, number], [number, number]]
* key: string
* }
*/
defaultConfig: {
/**
* @description Flyline chart points
* @type {Point[]}
* @default points = []
*/
points: [],
/**
* @description Lines
* @type {Flyline[]}
* @default lines = []
*/
lines: [],
/**
* @description Global halo configuration
* @type {Halo}
*/
halo: {
/**
* @description Whether to show halo
* @type {Boolean}
* @default show = false
*/
show: false,
/**
* @description Halo animation duration (1s = 10)
* @type {[number, number]}
*/
duration: [20, 30],
/**
* @description Halo color
* @type {String}
* @default color = '#fb7293'
*/
color: '#fb7293',
/**
* @description Halo radius
* @type {Number}
* @default radius = 120
*/
radius: 120
},
/**
* @description Global text configuration
* @type {Text}
*/
text: {
/**
* @description Whether to show text
* @type {Boolean}
* @default show = false
*/
show: false,
/**
* @description Text offset
* @type {[number, number]}
* @default offset = [0, 15]
*/
offset: [0, 15],
/**
* @description Text color
* @type {String}
* @default color = '#ffdb5c'
*/
color: '#ffdb5c',
/**
* @description Text font size
* @type {Number}
* @default fontSize = 12
*/
fontSize: 12
},
/**
* @description Global icon configuration
* @type {Icon}
*/
icon: {
/**
* @description Whether to show icon
* @type {Boolean}
* @default show = false
*/
show: false,
/**
* @description Icon src
* @type {String}
* @default src = ''
*/
src: '',
/**
* @description Icon width
* @type {Number}
* @default width = 15
*/
width: 15,
/**
* @description Icon height
* @type {Number}
* @default width = 15
*/
height: 15
},
/**
* @description Global line configuration
* @type {Line}
*/
line: {
/**
* @description Line width
* @type {Number}
* @default width = 1
*/
width: 1,
/**
* @description Flyline color
* @type {String}
* @default color = '#ffde93'
*/
color: '#ffde93',
/**
* @description Orbit color
* @type {String}
* @default orbitColor = 'rgba(103, 224, 227, .2)'
*/
orbitColor: 'rgba(103, 224, 227, .2)',
/**
* @description Flyline animation duration
* @type {[number, number]}
* @default duration = [20, 30]
*/
duration: [20, 30],
/**
* @description Flyline radius
* @type {Number}
* @default radius = 100
*/
radius: 100
},
/**
* @description Back ground image url
* @type {String}
* @default bgImgSrc = ''
*/
bgImgSrc: '',
/**
* @description K value
* @type {Number}
* @default k = -0.5
* @example k = -1 ~ 1
*/
k: -0.5,
/**
* @description Flyline curvature
* @type {Number}
* @default curvature = 5
*/
curvature: 5,
/**
* @description Relative points position
* @type {Boolean}
* @default relative = true
*/
relative: true
},
/**
* @description Fly line data
* @type {FlylineWithPath[]}
* @default flylines = []
*/
flylines: [],
/**
* @description Fly line lengths
* @type {Number[]}
* @default flylineLengths = []
*/
flylineLengths: [],
/**
* @description Fly line points
* @default flylinePoints = []
*/
flylinePoints: [],
mergedConfig: null
};
},
watch: {
config() {
const {
calcData
} = this;
calcData();
}
},
methods: {
afterAutoResizeMixinInit() {
const {
calcData
} = this;
calcData();
},
onResize() {
const {
calcData
} = this;
calcData();
},
async calcData() {
const {
mergeConfig,
calcflylinePoints,
calcLinePaths
} = this;
mergeConfig();
calcflylinePoints();
calcLinePaths();
const {
calcLineLengths
} = this;
await calcLineLengths();
},
mergeConfig() {
let {
config,
defaultConfig
} = this;
const mergedConfig = util_2$1(util_1(defaultConfig, true), config || {});
const {
points,
lines,
halo,
text,
icon,
line
} = mergedConfig;
mergedConfig.points = points.map(item => {
item.halo = util_2$1(util_1(halo, true), item.halo || {});
item.text = util_2$1(util_1(text, true), item.text || {});
item.icon = util_2$1(util_1(icon, true), item.icon || {});
return item;
});
mergedConfig.lines = lines.map(item => {
return util_2$1(util_1(line, true), item);
});
this.mergedConfig = mergedConfig;
},
calcflylinePoints() {
const {
mergedConfig,
width,
height
} = this;
const {
relative,
points
} = mergedConfig;
if (!relative) return;
this.flylinePoints = points.map((item, i) => {
const {
coordinate: [x, y],
halo,
icon,
text
} = item;
if (relative) item.coordinate = [x * width, y * height];
item.halo.time = randomExtend(...halo.duration) / 10;
const {
width: iw,
height: ih
} = icon;
item.icon.x = item.coordinate[0] - iw / 2;
item.icon.y = item.coordinate[1] - ih / 2;
const [ox, oy] = text.offset;
item.text.x = item.coordinate[0] + ox;
item.text.y = item.coordinate[1] + oy;
item.key = `${item.coordinate.toString()}${i}`;
return item;
});
},
calcLinePaths() {
const {
getPath,
mergedConfig
} = this;
const {
points,
lines
} = mergedConfig;
this.flylines = lines.map(item => {
const {
source,
target,
duration
} = item;
const sourcePoint = points.find(({
name
}) => name === source).coordinate;
const targetPoint = points.find(({
name
}) => name === target).coordinate;
const path = getPath(sourcePoint, targetPoint).map(item => item.map(v => parseFloat(v.toFixed(10))));
const d = `M${path[0].toString()} Q${path[1].toString()} ${path[2].toString()}`;
const key = `path${path.toString()}`;
const time = randomExtend(...duration) / 10;
return { ...item,
path,
key,
d,
time
};
});
},
getPath(start, end) {
const {
getControlPoint
} = this;
const controlPoint = getControlPoint(start, end);
return [start, controlPoint, end];
},
getControlPoint([sx, sy], [ex, ey]) {
const {
getKLinePointByx,
mergedConfig
} = this;
const {
curvature,
k
} = mergedConfig;
const [mx, my] = [(sx + ex) / 2, (sy + ey) / 2];
const distance = getPointDistance([sx, sy], [ex, ey]);
const targetLength = distance / curvature;
const disDived = targetLength / 2;
let [dx, dy] = [mx, my];
do {
dx += disDived;
dy = getKLinePointByx(k, [mx, my], dx)[1];
} while (getPointDistance([mx, my], [dx, dy]) < targetLength);
return [dx, dy];
},
getKLinePointByx(k, [lx, ly], x) {
const y = ly - k * lx + k * x;
return [x, y];
},
async calcLineLengths() {
const {
$nextTick,
flylines,
$refs
} = this;
await $nextTick();
this.flylineLengths = flylines.map(({
key
}) => $refs[key][0].getTotalLength());
},
consoleClickPos({
offsetX,
offsetY
}) {
const {
width,
height,
dev
} = this;
if (!dev) return;
const relativeX = (offsetX / width).toFixed(2);
const relativeY = (offsetY / height).toFixed(2);
console.warn(`dv-flyline-chart-enhanced DEV: \n Click Position is [${offsetX}, ${offsetY}] \n Relative Position is [${relativeX}, ${relativeY}]`);
}
}
};
/* script */
const __vue_script__$x = script$x;
/* template */
var __vue_render__$x = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c(
"div",
{
ref: _vm.ref,
staticClass: "dv-flyline-chart-enhanced",
style:
"background-image: url(" +
(_vm.mergedConfig ? _vm.mergedConfig.bgImgSrc : "") +
")",
on: { click: _vm.consoleClickPos }
},
[
_vm.flylines.length
? _c(
"svg",
{ attrs: { width: _vm.width, height: _vm.height } },
[
_c(
"defs",
[
_c(
"radialGradient",
{
attrs: {
id: _vm.flylineGradientId,
cx: "50%",
cy: "50%",
r: "50%"
}
},
[
_c("stop", {
attrs: {
offset: "0%",
"stop-color": "#fff",
"stop-opacity": "1"
}
}),
_vm._v(" "),
_c("stop", {
attrs: {
offset: "100%",
"stop-color": "#fff",
"stop-opacity": "0"
}
})
],
1
),
_vm._v(" "),
_c(
"radialGradient",
{
attrs: {
id: _vm.haloGradientId,
cx: "50%",
cy: "50%",
r: "50%"
}
},
[
_c("stop", {
attrs: {
offset: "0%",
"stop-color": "#fff",
"stop-opacity": "0"
}
}),
_vm._v(" "),
_c("stop", {
attrs: {
offset: "100%",
"stop-color": "#fff",
"stop-opacity": "1"
}
})
],
1
)
],
1
),
_vm._v(" "),
_vm._l(_vm.flylinePoints, function(point) {
return _c("g", { key: point.key + Math.random() }, [
_c("defs", [
point.halo.show
? _c(
"circle",
{
attrs: {
id: "halo" + _vm.unique + point.key,
cx: point.coordinate[0],
cy: point.coordinate[1]
}
},
[
_c("animate", {
attrs: {
attributeName: "r",
values: "1;" + point.halo.radius,
dur: point.halo.time + "s",
repeatCount: "indefinite"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "opacity",
values: "1;0",
dur: point.halo.time + "s",
repeatCount: "indefinite"
}
})
]
)
: _vm._e()
]),
_vm._v(" "),
_c(
"mask",
{ attrs: { id: "mask" + _vm.unique + point.key } },
[
point.halo.show
? _c("use", {
attrs: {
"xlink:href": "#halo" + _vm.unique + point.key,
fill: "url(#" + _vm.haloGradientId + ")"
}
})
: _vm._e()
]
),
_vm._v(" "),
point.halo.show
? _c("use", {
attrs: {
"xlink:href": "#halo" + _vm.unique + point.key,
fill: point.halo.color,
mask: "url(#mask" + _vm.unique + point.key + ")"
}
})
: _vm._e(),
_vm._v(" "),
point.icon.show
? _c("image", {
attrs: {
"xlink:href": point.icon.src,
width: point.icon.width,
height: point.icon.height,
x: point.icon.x,
y: point.icon.y
}
})
: _vm._e(),
_vm._v(" "),
point.text.show
? _c(
"text",
{
style:
"fontSize:" +
point.text.fontSize +
"px;color:" +
point.text.color,
attrs: {
fill: point.text.color,
x: point.text.x,
y: point.text.y
}
},
[_vm._v("\n " + _vm._s(point.name) + "\n ")]
)
: _vm._e()
])
}),
_vm._v(" "),
_vm._l(_vm.flylines, function(line, i) {
return _c("g", { key: line.key + Math.random() }, [
_c("defs", [
_c("path", {
ref: line.key,
refInFor: true,
attrs: { id: line.key, d: line.d, fill: "transparent" }
})
]),
_vm._v(" "),
_c("use", {
attrs: {
"xlink:href": "#" + line.key,
"stroke-width": line.width,
stroke: line.orbitColor
}
}),
_vm._v(" "),
_c(
"mask",
{ attrs: { id: "mask" + _vm.unique + line.key } },
[
_c(
"circle",
{
attrs: {
cx: "0",
cy: "0",
r: line.radius,
fill: "url(#" + _vm.flylineGradientId + ")"
}
},
[
_c("animateMotion", {
attrs: {
dur: line.time,
path: line.d,
rotate: "auto",
repeatCount: "indefinite"
}
})
],
1
)
]
),
_vm._v(" "),
_vm.flylineLengths[i]
? _c(
"use",
{
attrs: {
"xlink:href": "#" + line.key,
"stroke-width": line.width,
stroke: line.color,
mask: "url(#mask" + _vm.unique + line.key + ")"
}
},
[
_c("animate", {
attrs: {
attributeName: "stroke-dasharray",
from: "0, " + _vm.flylineLengths[i],
to: _vm.flylineLengths[i] + ", 0",
dur: line.time,
repeatCount: "indefinite"
}
})
]
)
: _vm._e()
])
})
],
2
)
: _vm._e()
]
)
};
var __vue_staticRenderFns__$x = [];
__vue_render__$x._withStripped = true;
/* style */
const __vue_inject_styles__$x = function (inject) {
if (!inject) return
inject("data-v-185fc66c_0", { source: ".dv-flyline-chart-enhanced {\n display: flex;\n flex-direction: column;\n background-size: 100% 100%;\n}\n.dv-flyline-chart-enhanced text {\n text-anchor: middle;\n dominant-baseline: middle;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,aAAa;EACb,sBAAsB;EACtB,0BAA0B;AAC5B;AACA;EACE,mBAAmB;EACnB,yBAAyB;AAC3B","file":"main.vue","sourcesContent":[".dv-flyline-chart-enhanced {\n display: flex;\n flex-direction: column;\n background-size: 100% 100%;\n}\n.dv-flyline-chart-enhanced text {\n text-anchor: middle;\n dominant-baseline: middle;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$x = undefined;
/* module identifier */
const __vue_module_identifier__$x = undefined;
/* functional template */
const __vue_is_functional_template__$x = false;
/* style inject SSR */
var FlylineChartEnhanced = normalizeComponent_1(
{ render: __vue_render__$x, staticRenderFns: __vue_staticRenderFns__$x },
__vue_inject_styles__$x,
__vue_script__$x,
__vue_scope_id__$x,
__vue_is_functional_template__$x,
__vue_module_identifier__$x,
browser,
undefined
);
function flylineChartEnhanced (Vue) {
Vue.component(FlylineChartEnhanced.name, FlylineChartEnhanced);
}
//
var script$y = {
name: 'DvConicalColumnChart',
mixins: [autoResize],
props: {
config: {
type: Object,
default: () => ({})
}
},
data() {
return {
ref: 'conical-column-chart',
defaultConfig: {
/**
* @description Chart data
* @type {Array<Object>}
* @default data = []
*/
data: [],
/**
* @description Chart img
* @type {Array<String>}
* @default img = []
*/
img: [],
/**
* @description Chart font size
* @type {Number}
* @default fontSize = 12
*/
fontSize: 12,
/**
* @description Img side length
* @type {Number}
* @default imgSideLength = 30
*/
imgSideLength: 30,
/**
* @description Column color
* @type {String}
* @default columnColor = 'rgba(0, 194, 255, 0.4)'
*/
columnColor: 'rgba(0, 194, 255, 0.4)',
/**
* @description Text color
* @type {String}
* @default textColor = '#fff'
*/
textColor: '#fff',
/**
* @description Show value
* @type {Boolean}
* @default showValue = false
*/
showValue: false
},
mergedConfig: null,
column: []
};
},
watch: {
config() {
const {
calcData
} = this;
calcData();
}
},
methods: {
afterAutoResizeMixinInit() {
const {
calcData
} = this;
calcData();
},
onResize() {
const {
calcData
} = this;
calcData();
},
calcData() {
const {
mergeConfig,
initData,
calcSVGPath
} = this;
mergeConfig();
initData();
calcSVGPath();
},
mergeConfig() {
const {
defaultConfig,
config
} = this;
this.mergedConfig = util_2$1(util_1(defaultConfig, true), config || {});
},
initData() {
const {
mergedConfig
} = this;
let {
data
} = mergedConfig;
data = util_1(data, true);
data.sort(({
value: a
}, {
value: b
}) => {
if (a > b) return -1;
if (a < b) return 1;
if (a === b) return 0;
});
const max = data[0] ? data[0].value : 10;
data = data.map(item => ({ ...item,
percent: item.value / max
}));
mergedConfig.data = data;
},
calcSVGPath() {
const {
mergedConfig,
width,
height
} = this;
const {
imgSideLength,
fontSize,
data
} = mergedConfig;
const itemNum = data.length;
const gap = width / (itemNum + 1);
const useAbleHeight = height - imgSideLength - fontSize - 5;
const svgBottom = height - fontSize - 5;
this.column = data.map((item, i) => {
const {
percent
} = item;
const middleXPos = gap * (i + 1);
const leftXPos = gap * i;
const rightXpos = gap * (i + 2);
const middleYPos = svgBottom - useAbleHeight * percent;
const controlYPos = useAbleHeight * percent * 0.6 + middleYPos;
const d = `
M${leftXPos}, ${svgBottom}
Q${middleXPos}, ${controlYPos} ${middleXPos},${middleYPos}
M${middleXPos},${middleYPos}
Q${middleXPos}, ${controlYPos} ${rightXpos},${svgBottom}
L${leftXPos}, ${svgBottom}
Z
`;
const textY = (svgBottom + middleYPos) / 2 + fontSize / 2;
return { ...item,
d,
x: middleXPos,
y: middleYPos,
textY
};
});
}
}
};
/* script */
const __vue_script__$y = script$y;
/* template */
var __vue_render__$y = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-conical-column-chart" }, [
_c(
"svg",
{ attrs: { width: _vm.width, height: _vm.height } },
_vm._l(_vm.column, function(item, i) {
return _c("g", { key: i }, [
_c("path", {
attrs: { d: item.d, fill: _vm.mergedConfig.columnColor }
}),
_vm._v(" "),
_c(
"text",
{
style: "fontSize:" + _vm.mergedConfig.fontSize + "px",
attrs: {
fill: _vm.mergedConfig.textColor,
x: item.x,
y: _vm.height - 4
}
},
[_vm._v("\n " + _vm._s(item.name) + "\n ")]
),
_vm._v(" "),
_vm.mergedConfig.img.length
? _c("image", {
attrs: {
"xlink:href":
_vm.mergedConfig.img[i % _vm.mergedConfig.img.length],
width: _vm.mergedConfig.imgSideLength,
height: _vm.mergedConfig.imgSideLength,
x: item.x - _vm.mergedConfig.imgSideLength / 2,
y: item.y - _vm.mergedConfig.imgSideLength
}
})
: _vm._e(),
_vm._v(" "),
_vm.mergedConfig.showValue
? _c(
"text",
{
style: "fontSize:" + _vm.mergedConfig.fontSize + "px",
attrs: {
fill: _vm.mergedConfig.textColor,
x: item.x,
y: item.textY
}
},
[_vm._v("\n " + _vm._s(item.value) + "\n ")]
)
: _vm._e()
])
}),
0
)
])
};
var __vue_staticRenderFns__$y = [];
__vue_render__$y._withStripped = true;
/* style */
const __vue_inject_styles__$y = function (inject) {
if (!inject) return
inject("data-v-382f06c7_0", { source: ".dv-conical-column-chart {\n width: 100%;\n height: 100%;\n}\n.dv-conical-column-chart text {\n text-anchor: middle;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,WAAW;EACX,YAAY;AACd;AACA;EACE,mBAAmB;AACrB","file":"main.vue","sourcesContent":[".dv-conical-column-chart {\n width: 100%;\n height: 100%;\n}\n.dv-conical-column-chart text {\n text-anchor: middle;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$y = undefined;
/* module identifier */
const __vue_module_identifier__$y = undefined;
/* functional template */
const __vue_is_functional_template__$y = false;
/* style inject SSR */
var ConicalColumnChart = normalizeComponent_1(
{ render: __vue_render__$y, staticRenderFns: __vue_staticRenderFns__$y },
__vue_inject_styles__$y,
__vue_script__$y,
__vue_scope_id__$y,
__vue_is_functional_template__$y,
__vue_module_identifier__$y,
browser,
undefined
);
function conicalColumnChart (Vue) {
Vue.component(ConicalColumnChart.name, ConicalColumnChart);
}
function digitalFlop (Vue) {
Vue.component(DigitalFlop.name, DigitalFlop);
}
//
var script$z = {
name: 'DvScrollBoard',
mixins: [autoResize],
props: {
config: {
type: Object,
default: () => ({})
}
},
data() {
return {
ref: 'scroll-board',
defaultConfig: {
/**
* @description Board header
* @type {Array<String>}
* @default header = []
* @example header = ['column1', 'column2', 'column3']
*/
header: [],
/**
* @description Board data
* @type {Array<Array>}
* @default data = []
*/
data: [],
/**
* @description Row num
* @type {Number}
* @default rowNum = 5
*/
rowNum: 5,
/**
* @description Header background color
* @type {String}
* @default headerBGC = '#00BAFF'
*/
headerBGC: '#00BAFF',
/**
* @description Odd row background color
* @type {String}
* @default oddRowBGC = '#003B51'
*/
oddRowBGC: '#003B51',
/**
* @description Even row background color
* @type {String}
* @default evenRowBGC = '#003B51'
*/
evenRowBGC: '#0A2732',
/**
* @description Scroll wait time
* @type {Number}
* @default waitTime = 2000
*/
waitTime: 2000,
/**
* @description Header height
* @type {Number}
* @default headerHeight = 35
*/
headerHeight: 35,
/**
* @description Column width
* @type {Array<Number>}
* @default columnWidth = []
*/
columnWidth: [],
/**
* @description Column align
* @type {Array<String>}
* @default align = []
* @example align = ['left', 'center', 'right']
*/
align: [],
/**
* @description Show index
* @type {Boolean}
* @default index = false
*/
index: false,
/**
* @description index Header
* @type {String}
* @default indexHeader = '#'
*/
indexHeader: '#',
/**
* @description Carousel type
* @type {String}
* @default carousel = 'single'
* @example carousel = 'single' | 'page'
*/
carousel: 'single'
},
mergedConfig: null,
header: [],
rowsData: [],
rows: [],
widths: [],
heights: [],
avgHeight: 0,
aligns: [],
animationIndex: 0,
animationHandler: '',
updater: 0
};
},
watch: {
config() {
const {
stopAnimation,
calcData
} = this;
stopAnimation();
calcData();
}
},
methods: {
afterAutoResizeMixinInit() {
const {
calcData
} = this;
calcData();
},
onResize() {
const {
mergedConfig,
calcWidths,
calcHeights
} = this;
if (!mergedConfig) return;
calcWidths();
calcHeights();
},
calcData() {
const {
mergeConfig,
calcHeaderData,
calcRowsData
} = this;
mergeConfig();
calcHeaderData();
calcRowsData();
const {
calcWidths,
calcHeights,
calcAligns
} = this;
calcWidths();
calcHeights();
calcAligns();
const {
animation
} = this;
animation(true);
},
mergeConfig() {
let {
config,
defaultConfig
} = this;
this.mergedConfig = util_2$1(util_1(defaultConfig, true), config || {});
},
calcHeaderData() {
let {
header,
index,
indexHeader
} = this.mergedConfig;
if (!header.length) {
this.header = [];
return;
}
header = [...header];
if (index) header.unshift(indexHeader);
this.header = header;
},
calcRowsData() {
let {
data,
index,
headerBGC,
rowNum
} = this.mergedConfig;
if (index) {
data = data.map((row, i) => {
row = [...row];
const indexTag = `<span class="index" style="background-color: ${headerBGC};">${i + 1}</span>`;
row.unshift(indexTag);
return row;
});
}
data = data.map((ceils, i) => ({
ceils,
rowIndex: i
}));
const rowLength = data.length;
if (rowLength > rowNum && rowLength < 2 * rowNum) {
data = [...data, ...data];
}
data = data.map((d, i) => ({ ...d,
scroll: i
}));
this.rowsData = data;
this.rows = data;
},
calcWidths() {
const {
width,
mergedConfig,
rowsData
} = this;
const {
columnWidth,
header
} = mergedConfig;
const usedWidth = columnWidth.reduce((all, w) => all + w, 0);
let columnNum = 0;
if (rowsData[0]) {
columnNum = rowsData[0].ceils.length;
} else if (header.length) {
columnNum = header.length;
}
const avgWidth = (width - usedWidth) / (columnNum - columnWidth.length);
const widths = new Array(columnNum).fill(avgWidth);
this.widths = util_2$1(widths, columnWidth);
},
calcHeights(onresize = false) {
const {
height,
mergedConfig,
header
} = this;
const {
headerHeight,
rowNum,
data
} = mergedConfig;
let allHeight = height;
if (header.length) allHeight -= headerHeight;
const avgHeight = allHeight / rowNum;
this.avgHeight = avgHeight;
if (!onresize) this.heights = new Array(data.length).fill(avgHeight);
},
calcAligns() {
const {
header,
mergedConfig
} = this;
const columnNum = header.length;
let aligns = new Array(columnNum).fill('left');
const {
align
} = mergedConfig;
this.aligns = util_2$1(aligns, align);
},
async animation(start = false) {
let {
avgHeight,
animationIndex,
mergedConfig,
rowsData,
animation,
updater
} = this;
const {
waitTime,
carousel,
rowNum
} = mergedConfig;
const rowLength = rowsData.length;
if (rowNum >= rowLength) return;
if (start) {
await new Promise(resolve => setTimeout(resolve, waitTime));
if (updater !== this.updater) return;
}
const animationNum = carousel === 'single' ? 1 : rowNum;
let rows = rowsData.slice(animationIndex);
rows.push(...rowsData.slice(0, animationIndex));
this.rows = rows;
this.heights = new Array(rowLength).fill(avgHeight);
await new Promise(resolve => setTimeout(resolve, 300));
if (updater !== this.updater) return;
this.heights.splice(0, animationNum, ...new Array(animationNum).fill(0));
animationIndex += animationNum;
const back = animationIndex - rowLength;
if (back >= 0) animationIndex = back;
this.animationIndex = animationIndex;
this.animationHandler = setTimeout(animation, waitTime - 300);
},
stopAnimation() {
const {
animationHandler,
updater
} = this;
this.updater = (updater + 1) % 999999;
if (!animationHandler) return;
clearTimeout(animationHandler);
},
emitEvent(ri, ci, row, ceil) {
const {
ceils,
rowIndex
} = row;
this.$emit('click', {
row: ceils,
ceil,
rowIndex,
columnIndex: ci
});
}
},
destroyed() {
const {
stopAnimation
} = this;
stopAnimation();
}
};
/* script */
const __vue_script__$z = script$z;
/* template */
var __vue_render__$z = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c("div", { ref: _vm.ref, staticClass: "dv-scroll-board" }, [
_vm.header.length && _vm.mergedConfig
? _c(
"div",
{
staticClass: "header",
style: "background-color: " + _vm.mergedConfig.headerBGC + ";"
},
_vm._l(_vm.header, function(headerItem, i) {
return _c("div", {
key: headerItem + i,
staticClass: "header-item",
style:
"\n height: " +
_vm.mergedConfig.headerHeight +
"px;\n line-height: " +
_vm.mergedConfig.headerHeight +
"px;\n width: " +
_vm.widths[i] +
"px;\n ",
attrs: { align: _vm.aligns[i] },
domProps: { innerHTML: _vm._s(headerItem) }
})
}),
0
)
: _vm._e(),
_vm._v(" "),
_vm.mergedConfig
? _c(
"div",
{
staticClass: "rows",
style:
"height: " +
(_vm.height -
(_vm.header.length ? _vm.mergedConfig.headerHeight : 0)) +
"px;"
},
_vm._l(_vm.rows, function(row, ri) {
return _c(
"div",
{
key: row.toString() + row.scroll,
staticClass: "row-item",
style:
"\n height: " +
_vm.heights[ri] +
"px;\n line-height: " +
_vm.heights[ri] +
"px;\n background-color: " +
_vm.mergedConfig[
row.rowIndex % 2 === 0 ? "evenRowBGC" : "oddRowBGC"
] +
";\n "
},
_vm._l(row.ceils, function(ceil, ci) {
return _c("div", {
key: ceil + ri + ci,
staticClass: "ceil",
style: "width: " + _vm.widths[ci] + "px;",
attrs: { align: _vm.aligns[ci] },
domProps: { innerHTML: _vm._s(ceil) },
on: {
click: function($event) {
return _vm.emitEvent(ri, ci, row, ceil)
}
}
})
}),
0
)
}),
0
)
: _vm._e()
])
};
var __vue_staticRenderFns__$z = [];
__vue_render__$z._withStripped = true;
/* style */
const __vue_inject_styles__$z = function (inject) {
if (!inject) return
inject("data-v-1aad958a_0", { source: ".dv-scroll-board {\n position: relative;\n width: 100%;\n height: 100%;\n color: #fff;\n}\n.dv-scroll-board .text {\n padding: 0 10px;\n box-sizing: border-box;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.dv-scroll-board .header {\n display: flex;\n flex-direction: row;\n font-size: 15px;\n}\n.dv-scroll-board .header .header-item {\n padding: 0 10px;\n box-sizing: border-box;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: all 0.3s;\n}\n.dv-scroll-board .rows {\n overflow: hidden;\n}\n.dv-scroll-board .rows .row-item {\n display: flex;\n font-size: 14px;\n transition: all 0.3s;\n}\n.dv-scroll-board .rows .ceil {\n padding: 0 10px;\n box-sizing: border-box;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.dv-scroll-board .rows .index {\n border-radius: 3px;\n padding: 0px 3px;\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,kBAAkB;EAClB,WAAW;EACX,YAAY;EACZ,WAAW;AACb;AACA;EACE,eAAe;EACf,sBAAsB;EACtB,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,aAAa;EACb,mBAAmB;EACnB,eAAe;AACjB;AACA;EACE,eAAe;EACf,sBAAsB;EACtB,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,oBAAoB;AACtB;AACA;EACE,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,eAAe;EACf,oBAAoB;AACtB;AACA;EACE,eAAe;EACf,sBAAsB;EACtB,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;AACzB;AACA;EACE,kBAAkB;EAClB,gBAAgB;AAClB","file":"main.vue","sourcesContent":[".dv-scroll-board {\n position: relative;\n width: 100%;\n height: 100%;\n color: #fff;\n}\n.dv-scroll-board .text {\n padding: 0 10px;\n box-sizing: border-box;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.dv-scroll-board .header {\n display: flex;\n flex-direction: row;\n font-size: 15px;\n}\n.dv-scroll-board .header .header-item {\n padding: 0 10px;\n box-sizing: border-box;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n transition: all 0.3s;\n}\n.dv-scroll-board .rows {\n overflow: hidden;\n}\n.dv-scroll-board .rows .row-item {\n display: flex;\n font-size: 14px;\n transition: all 0.3s;\n}\n.dv-scroll-board .rows .ceil {\n padding: 0 10px;\n box-sizing: border-box;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.dv-scroll-board .rows .index {\n border-radius: 3px;\n padding: 0px 3px;\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$z = undefined;
/* module identifier */
const __vue_module_identifier__$z = undefined;
/* functional template */
const __vue_is_functional_template__$z = false;
/* style inject SSR */
var ScrollBoard = normalizeComponent_1(
{ render: __vue_render__$z, staticRenderFns: __vue_staticRenderFns__$z },
__vue_inject_styles__$z,
__vue_script__$z,
__vue_scope_id__$z,
__vue_is_functional_template__$z,
__vue_module_identifier__$z,
browser,
undefined
);
function scrollBoard (Vue) {
Vue.component(ScrollBoard.name, ScrollBoard);
}
//
var script$A = {
name: 'DvScrollRankingBoard',
mixins: [autoResize],
props: {
config: {
type: Object,
default: () => ({})
}
},
data() {
return {
ref: 'scroll-ranking-board',
defaultConfig: {
/**
* @description Board data
* @type {Array<Object>}
* @default data = []
*/
data: [],
/**
* @description Row num
* @type {Number}
* @default rowNum = 5
*/
rowNum: 5,
/**
* @description Scroll wait time
* @type {Number}
* @default waitTime = 2000
*/
waitTime: 2000,
/**
* @description Carousel type
* @type {String}
* @default carousel = 'single'
* @example carousel = 'single' | 'page'
*/
carousel: 'single',
/**
* @description Value unit
* @type {String}
* @default unit = ''
* @example unit = 'ton'
*/
unit: '',
/**
* @description Auto sort by value
* @type {Boolean}
* @default sort = true
*/
sort: true
},
mergedConfig: null,
rowsData: [],
rows: [],
heights: [],
animationIndex: 0,
animationHandler: '',
updater: 0
};
},
watch: {
config() {
const {
stopAnimation,
calcData
} = this;
stopAnimation();
calcData();
}
},
methods: {
afterAutoResizeMixinInit() {
const {
calcData
} = this;
calcData();
},
onResize() {
const {
mergedConfig,
calcHeights
} = this;
if (!mergedConfig) return;
calcHeights(true);
},
calcData() {
const {
mergeConfig,
calcRowsData
} = this;
mergeConfig();
calcRowsData();
const {
calcHeights
} = this;
calcHeights();
const {
animation
} = this;
animation(true);
},
mergeConfig() {
let {
config,
defaultConfig
} = this;
this.mergedConfig = util_2$1(util_1(defaultConfig, true), config || {});
},
calcRowsData() {
let {
data,
rowNum,
sort
} = this.mergedConfig;
sort && data.sort(({
value: a
}, {
value: b
}) => {
if (a > b) return -1;
if (a < b) return 1;
if (a === b) return 0;
});
const value = data.map(({
value
}) => value);
const max = Math.max(...value) || 0;
data = data.map((row, i) => ({ ...row,
ranking: i + 1,
percent: row.value / max * 100
}));
const rowLength = data.length;
if (rowLength > rowNum && rowLength < 2 * rowNum) {
data = [...data, ...data];
}
data = data.map((d, i) => ({ ...d,
scroll: i
}));
this.rowsData = data;
this.rows = data;
},
calcHeights(onresize = false) {
const {
height,
mergedConfig
} = this;
const {
rowNum,
data
} = mergedConfig;
const avgHeight = height / rowNum;
this.avgHeight = avgHeight;
if (!onresize) this.heights = new Array(data.length).fill(avgHeight);
},
async animation(start = false) {
let {
avgHeight,
animationIndex,
mergedConfig,
rowsData,
animation,
updater
} = this;
const {
waitTime,
carousel,
rowNum
} = mergedConfig;
const rowLength = rowsData.length;
if (rowNum >= rowLength) return;
if (start) {
await new Promise(resolve => setTimeout(resolve, waitTime));
if (updater !== this.updater) return;
}
const animationNum = carousel === 'single' ? 1 : rowNum;
let rows = rowsData.slice(animationIndex);
rows.push(...rowsData.slice(0, animationIndex));
this.rows = rows;
this.heights = new Array(rowLength).fill(avgHeight);
await new Promise(resolve => setTimeout(resolve, 300));
if (updater !== this.updater) return;
this.heights.splice(0, animationNum, ...new Array(animationNum).fill(0));
animationIndex += animationNum;
const back = animationIndex - rowLength;
if (back >= 0) animationIndex = back;
this.animationIndex = animationIndex;
this.animationHandler = setTimeout(animation, waitTime - 300);
},
stopAnimation() {
const {
animationHandler,
updater
} = this;
this.updater = (updater + 1) % 999999;
if (!animationHandler) return;
clearTimeout(animationHandler);
}
},
destroyed() {
const {
stopAnimation
} = this;
stopAnimation();
}
};
/* script */
const __vue_script__$A = script$A;
/* template */
var __vue_render__$A = function() {
var _vm = this;
var _h = _vm.$createElement;
var _c = _vm._self._c || _h;
return _c(
"div",
{ ref: _vm.ref, staticClass: "dv-scroll-ranking-board" },
_vm._l(_vm.rows, function(item, i) {
return _c(
"div",
{
key: item.toString() + item.scroll,
staticClass: "row-item",
style: "height: " + _vm.heights[i] + "px;"
},
[
_c("div", { staticClass: "ranking-info" }, [
_c("div", { staticClass: "rank" }, [
_vm._v("No." + _vm._s(item.ranking))
]),
_vm._v(" "),
_c("div", {
staticClass: "info-name",
domProps: { innerHTML: _vm._s(item.name) }
}),
_vm._v(" "),
_c("div", { staticClass: "ranking-value" }, [
_vm._v(_vm._s(item.value + _vm.mergedConfig.unit))
])
]),
_vm._v(" "),
_c("div", { staticClass: "ranking-column" }, [
_c(
"div",
{
staticClass: "inside-column",
style: "width: " + item.percent + "%;"
},
[_c("div", { staticClass: "shine" })]
)
])
]
)
}),
0
)
};
var __vue_staticRenderFns__$A = [];
__vue_render__$A._withStripped = true;
/* style */
const __vue_inject_styles__$A = function (inject) {
if (!inject) return
inject("data-v-4fe9e817_0", { source: ".dv-scroll-ranking-board {\n width: 100%;\n height: 100%;\n color: #fff;\n overflow: hidden;\n}\n.dv-scroll-ranking-board .row-item {\n transition: all 0.3s;\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n}\n.dv-scroll-ranking-board .ranking-info {\n display: flex;\n width: 100%;\n font-size: 13px;\n}\n.dv-scroll-ranking-board .ranking-info .rank {\n width: 40px;\n color: #1370fb;\n}\n.dv-scroll-ranking-board .ranking-info .info-name {\n flex: 1;\n}\n.dv-scroll-ranking-board .ranking-column {\n border-bottom: 2px solid rgba(19, 112, 251, 0.5);\n margin-top: 5px;\n}\n.dv-scroll-ranking-board .ranking-column .inside-column {\n position: relative;\n height: 6px;\n background-color: #1370fb;\n margin-bottom: 2px;\n border-radius: 1px;\n overflow: hidden;\n}\n.dv-scroll-ranking-board .ranking-column .shine {\n position: absolute;\n left: 0%;\n top: 2px;\n height: 2px;\n width: 50px;\n transform: translateX(-100%);\n background: radial-gradient(#28f8ff 5%, transparent 80%);\n animation: shine 3s ease-in-out infinite alternate;\n}\n@keyframes shine {\n80% {\n left: 0%;\n transform: translateX(-100%);\n}\n100% {\n left: 100%;\n transform: translateX(0%);\n}\n}\n", map: {"version":3,"sources":["main.vue"],"names":[],"mappings":"AAAA;EACE,WAAW;EACX,YAAY;EACZ,WAAW;EACX,gBAAgB;AAClB;AACA;EACE,oBAAoB;EACpB,aAAa;EACb,sBAAsB;EACtB,uBAAuB;EACvB,gBAAgB;AAClB;AACA;EACE,aAAa;EACb,WAAW;EACX,eAAe;AACjB;AACA;EACE,WAAW;EACX,cAAc;AAChB;AACA;EACE,OAAO;AACT;AACA;EACE,gDAAgD;EAChD,eAAe;AACjB;AACA;EACE,kBAAkB;EAClB,WAAW;EACX,yBAAyB;EACzB,kBAAkB;EAClB,kBAAkB;EAClB,gBAAgB;AAClB;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,QAAQ;EACR,WAAW;EACX,WAAW;EACX,4BAA4B;EAC5B,wDAAwD;EACxD,kDAAkD;AACpD;AACA;AACE;IACE,QAAQ;IACR,4BAA4B;AAC9B;AACA;IACE,UAAU;IACV,yBAAyB;AAC3B;AACF","file":"main.vue","sourcesContent":[".dv-scroll-ranking-board {\n width: 100%;\n height: 100%;\n color: #fff;\n overflow: hidden;\n}\n.dv-scroll-ranking-board .row-item {\n transition: all 0.3s;\n display: flex;\n flex-direction: column;\n justify-content: center;\n overflow: hidden;\n}\n.dv-scroll-ranking-board .ranking-info {\n display: flex;\n width: 100%;\n font-size: 13px;\n}\n.dv-scroll-ranking-board .ranking-info .rank {\n width: 40px;\n color: #1370fb;\n}\n.dv-scroll-ranking-board .ranking-info .info-name {\n flex: 1;\n}\n.dv-scroll-ranking-board .ranking-column {\n border-bottom: 2px solid rgba(19, 112, 251, 0.5);\n margin-top: 5px;\n}\n.dv-scroll-ranking-board .ranking-column .inside-column {\n position: relative;\n height: 6px;\n background-color: #1370fb;\n margin-bottom: 2px;\n border-radius: 1px;\n overflow: hidden;\n}\n.dv-scroll-ranking-board .ranking-column .shine {\n position: absolute;\n left: 0%;\n top: 2px;\n height: 2px;\n width: 50px;\n transform: translateX(-100%);\n background: radial-gradient(#28f8ff 5%, transparent 80%);\n animation: shine 3s ease-in-out infinite alternate;\n}\n@keyframes shine {\n 80% {\n left: 0%;\n transform: translateX(-100%);\n }\n 100% {\n left: 100%;\n transform: translateX(0%);\n }\n}\n"]}, media: undefined });
};
/* scoped */
const __vue_scope_id__$A = undefined;
/* module identifier */
const __vue_module_identifier__$A = undefined;
/* functional template */
const __vue_is_functional_template__$A = false;
/* style inject SSR */
var ScrollRankingBoard = normalizeComponent_1(
{ render: __vue_render__$A, staticRenderFns: __vue_staticRenderFns__$A },
__vue_inject_styles__$A,
__vue_script__$A,
__vue_scope_id__$A,
__vue_is_functional_template__$A,
__vue_module_identifier__$A,
browser,
undefined
);
function scrollRankingBoard (Vue) {
Vue.component(ScrollRankingBoard.name, ScrollRankingBoard);
}
/**
* IMPORT COMPONENTS
*/
/**
* USE COMPONENTS
*/
function datav (Vue) {
Vue.use(fullScreenContainer);
Vue.use(loading); // border box
Vue.use(borderBox1);
Vue.use(borderBox2);
Vue.use(borderBox3);
Vue.use(borderBox4);
Vue.use(borderBox5);
Vue.use(borderBox6);
Vue.use(borderBox7);
Vue.use(borderBox8);
Vue.use(borderBox9);
Vue.use(borderBox10);
Vue.use(borderBox11);
Vue.use(borderBox12);
Vue.use(borderBox13); // decoration
Vue.use(decoration1);
Vue.use(decoration2);
Vue.use(decoration3);
Vue.use(decoration4);
Vue.use(decoration5);
Vue.use(decoration6);
Vue.use(decoration7);
Vue.use(decoration8);
Vue.use(decoration9);
Vue.use(decoration10);
Vue.use(decoration11); // charts
Vue.use(charts);
Vue.use(activeRingChart);
Vue.use(capsuleChart);
Vue.use(waterLevelPond);
Vue.use(percentPond);
Vue.use(flylineChart);
Vue.use(flylineChartEnhanced);
Vue.use(conicalColumnChart);
Vue.use(digitalFlop);
Vue.use(scrollBoard);
Vue.use(scrollRankingBoard);
}
Vue.use(datav);
})));