DemuMesDataV/dist/datav.map.js

23686 lines
707 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-39d8efee_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-b0e29178_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);
}
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$2 = {
name: 'DvBorderBox1',
data() {
return {
border: ['left-top', 'right-top', 'left-bottom', 'right-bottom']
};
}
};
/* 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: "#4fd2dd",
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: "#4fd2dd;#235fa7;#4fd2dd",
dur: "0.5s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"polygon",
{
attrs: {
fill: "#235fa7",
points:
"27.599999999999998,4.8 38.4,4.8 35.4,7.8 30.599999999999998,7.8"
}
},
[
_c("animate", {
attrs: {
attributeName: "fill",
values: "#235fa7;#4fd2dd;#235fa7",
dur: "0.5s",
begin: "0s",
repeatCount: "indefinite"
}
})
]
),
_vm._v(" "),
_c(
"polygon",
{
attrs: {
fill: "#4fd2dd",
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: "#4fd2dd;#235fa7;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-53e01884_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],
data() {
return {
ref: 'border-box-2'
};
}
};
/* 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", {
staticClass: "dv-bb2-line1",
attrs: {
points:
"2, 2 " +
(_vm.width - 2) +
" ,2 " +
(_vm.width - 2) +
", " +
(_vm.height - 2) +
" 2, " +
(_vm.height - 2) +
" 2, 2"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb2-line2",
attrs: {
points:
"6, 6 " +
(_vm.width - 6) +
", 6 " +
(_vm.width - 6) +
", " +
(_vm.height - 6) +
" 6, " +
(_vm.height - 6) +
" 6, 6"
}
}),
_vm._v(" "),
_c("circle", { attrs: { cx: "11", cy: "11", r: "1" } }),
_vm._v(" "),
_c("circle", { attrs: { cx: _vm.width - 11, cy: "11", r: "1" } }),
_vm._v(" "),
_c("circle", {
attrs: { cx: _vm.width - 11, cy: _vm.height - 11, r: "1" }
}),
_vm._v(" "),
_c("circle", { attrs: { 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-2c14f4ac_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 .dv-border-svg-container circle {\n fill: #fff;\n}\n.dv-border-box-2 .dv-bb2-line1 {\n stroke: #fff;\n}\n.dv-border-box-2 .dv-bb2-line2 {\n stroke: rgba(255, 255, 255, 0.6);\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,UAAU;AACZ;AACA;EACE,YAAY;AACd;AACA;EACE,gCAAgC;AAClC;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 .dv-border-svg-container circle {\n fill: #fff;\n}\n.dv-border-box-2 .dv-bb2-line1 {\n stroke: #fff;\n}\n.dv-border-box-2 .dv-bb2-line2 {\n stroke: rgba(255, 255, 255, 0.6);\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],
data() {
return {
ref: 'border-box-3'
};
}
};
/* 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: {
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: {
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: {
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: {
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-f2ff245a_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 stroke: #2862b7;\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;EACV,eAAe;AACjB;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 stroke: #2862b7;\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],
data() {
return {
ref: 'border-box-4'
};
},
props: {
reverse: {
type: Boolean,
default: false
}
}
};
/* 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: {
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: {
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: {
points: "7, " + (_vm.height - 40) + " 7, " + (_vm.height - 75)
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-4",
attrs: { points: "28, 24 13, 41 13, 64" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-5",
attrs: { points: "5, 45 5, 140" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-6",
attrs: { points: "14, 75 14, 180" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-7",
attrs: { points: "55, 11 147, 11 167, 26 250, 26" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-8",
attrs: { points: "158, 5 173, 16" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-9",
attrs: { points: "200, 17 " + (_vm.width - 10) + ", 17" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb4-line-10",
attrs: { 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-3e5643ee_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 .sred {\n stroke: red;\n}\n.dv-border-box-4 .sblue {\n stroke: rgba(0, 0, 255, 0.8);\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: red;\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-2 {\n stroke: rgba(0, 0, 255, 0.8);\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-3 {\n stroke: red;\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-4 {\n stroke: red;\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-5 {\n stroke: red;\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-6 {\n stroke: rgba(0, 0, 255, 0.8);\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-7 {\n stroke: rgba(0, 0, 255, 0.8);\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-8 {\n stroke: rgba(0, 0, 255, 0.8);\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-9 {\n stroke: red;\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: rgba(0, 0, 255, 0.8);\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","E:\\Project\\A_MIT_LICENSE\\DataV\\src\\components\\borderBox4\\src\\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,WAAW;AACb;AACA;EACE,4BAA4B;AAC9B;AACA;EACE,eAAe;AACjB;AACA;EACE,iBAAiB;EACjB,qBAAqB;AACvB;AACA;EACE,WAAW;EACX,eAAe;AACjB;AACA;EACE,4BAA4B;EAC5B,eAAe;AACjB;AACA;EACE,WAAW;EACX,iBAAiB;EACjB,qBAAqB;AACvB;ACCA;EACA,WAAA;EACA,iBAAA;EACA,qBAAA;ADCA;ACCA;EACA,WAAA;EACA,eAAA;ADCA;ACCA;EACA,4BAAA;EACA,eAAA;AACA;AACA;EACA,4BAAA;EDCE,eAAe;ACCjB;AACA;EACA,4BAAA;EACA,iBAAA;EDCE,qBAAqB;ACCvB;AACA;EACA,WAAA;EDCE,iBAAiB;ECCnB,qBAAA;EACA,yBAAA;AACA;ADCA;ECCA,4BAAA;EACA,eAAA;EACA,wBAAA;ADCA;ACCA;EACA,kBAAA;EACA,WAAA;EACA,YAAA;ADCA","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 .sred {\n stroke: red;\n}\n.dv-border-box-4 .sblue {\n stroke: rgba(0, 0, 255, 0.8);\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: red;\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-2 {\n stroke: rgba(0, 0, 255, 0.8);\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-3 {\n stroke: red;\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-4 {\n stroke: red;\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-5 {\n stroke: red;\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-6 {\n stroke: rgba(0, 0, 255, 0.8);\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-7 {\n stroke: rgba(0, 0, 255, 0.8);\n stroke-width: 1;\n}\n.dv-border-box-4 .dv-bb4-line-8 {\n stroke: rgba(0, 0, 255, 0.8);\n stroke-width: 3px;\n stroke-linecap: round;\n}\n.dv-border-box-4 .dv-bb4-line-9 {\n stroke: red;\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: rgba(0, 0, 255, 0.8);\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","<template>\r\n <div class=\"dv-border-box-4\" :ref=\"ref\">\r\n <svg :class=\"`dv-border-svg-container ${reverse && 'dv-reverse'}`\" :width=\"width\" :height=\"height\">\r\n <polyline class=\"dv-bb4-line-1\" :points=\"`145, ${height - 5} 40, ${height - 5} 10, ${height - 35}\r\n 10, 40 40, 5 150, 5 170, 20 ${width - 15}, 20`\"/>\r\n <polyline class=\"dv-bb4-line-2\" :points=\"`245, ${height - 1} 36, ${height - 1} 14, ${height - 23}\r\n 14, ${height - 100}`\" />\r\n <polyline class=\"dv-bb4-line-3\" :points=\"`7, ${height - 40} 7, ${height - 75}`\" />\r\n <polyline class=\"dv-bb4-line-4\" :points=\"`28, 24 13, 41 13, 64`\" />\r\n <polyline class=\"dv-bb4-line-5\" :points=\"`5, 45 5, 140`\" />\r\n <polyline class=\"dv-bb4-line-6\" :points=\"`14, 75 14, 180`\" />\r\n <polyline class=\"dv-bb4-line-7\" :points=\"`55, 11 147, 11 167, 26 250, 26`\" />\r\n <polyline class=\"dv-bb4-line-8\" :points=\"`158, 5 173, 16`\" />\r\n <polyline class=\"dv-bb4-line-9\" :points=\"`200, 17 ${width - 10}, 17`\" />\r\n <polyline class=\"dv-bb4-line-10\" :points=\"`385, 17 ${width - 10}, 17`\" />\r\n </svg>\r\n\r\n <div class=\"border-box-content\">\r\n <slot></slot>\r\n </div>\r\n </div>\r\n</template>\r\n\r\n<script>\r\nimport autoResize from '../../../mixin/autoResize'\r\n\r\nexport default {\r\n name: 'DvBorderBox4',\r\n mixins: [autoResize],\r\n data () {\r\n return {\r\n ref: 'border-box-4'\r\n }\r\n },\r\n props: {\r\n reverse: {\r\n type: Boolean,\r\n default: false\r\n }\r\n }\r\n}\r\n</script>\r\n\r\n<style lang=\"less\">\r\n.dv-border-box-4 {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n\r\n .dv-reverse {\r\n transform: rotate(180deg);\r\n }\r\n\r\n .dv-border-svg-container {\r\n position: absolute;\r\n width: 100%;\r\n height: 100%;\r\n top: 0px;\r\n left: 0px;\r\n\r\n polyline {\r\n fill: none;\r\n }\r\n }\r\n\r\n .sred {\r\n stroke: red;\r\n }\r\n\r\n .sblue {\r\n stroke: fade(blue, 80);\r\n }\r\n\r\n .sw1 {\r\n stroke-width: 1;\r\n }\r\n\r\n .sw3 {\r\n stroke-width: 3px;\r\n stroke-linecap: round;\r\n }\r\n\r\n .dv-bb4-line-1 {\r\n .sred;\r\n .sw1;\r\n }\r\n\r\n .dv-bb4-line-2 {\r\n .sblue;\r\n .sw1;\r\n }\r\n\r\n .dv-bb4-line-3 {\r\n .sred;\r\n .sw3;\r\n }\r\n\r\n .dv-bb4-line-4 {\r\n .sred;\r\n .sw3;\r\n }\r\n\r\n .dv-bb4-line-5 {\r\n .sred;\r\n .sw1;\r\n }\r\n\r\n .dv-bb4-line-6 {\r\n .sblue;\r\n .sw1;\r\n }\r\n\r\n .dv-bb4-line-7 {\r\n .sblue;\r\n .sw1;\r\n }\r\n\r\n .dv-bb4-line-8 {\r\n .sblue;\r\n .sw3;\r\n }\r\n\r\n .dv-bb4-line-9 {\r\n .sred;\r\n .sw3;\r\n stroke-dasharray: 100 250;\r\n }\r\n\r\n .dv-bb4-line-10 {\r\n .sblue;\r\n .sw1;\r\n stroke-dasharray: 80 270;\r\n }\r\n\r\n .border-box-content {\r\n position: relative;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n}\r\n</style>\r\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],
data() {
return {
ref: 'border-box-5'
};
},
props: {
reverse: {
type: Boolean,
default: false
}
}
};
/* 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: {
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: {
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: { points: "50, 13 " + (_vm.width - 35) + ", 13" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb5-line-4",
attrs: { points: "15, 20 " + (_vm.width - 35) + ", 20" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb5-line-5",
attrs: {
points:
"15, " +
(_vm.height - 20) +
" " +
(_vm.width - 110) +
", " +
(_vm.height - 20)
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb5-line-6",
attrs: {
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-775fac1b_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 stroke-width: 1;\n stroke: rgba(255, 255, 255, 0.35);\n}\n.dv-border-box-5 .dv-bb5-line-2 {\n stroke: rgba(255, 255, 255, 0.2);\n}\n.dv-border-box-5 .dv-bb5-line-3,\n.dv-border-box-5 .dv-bb5-line-6 {\n stroke-width: 5;\n stroke: rgba(255, 255, 255, 0.15);\n}\n.dv-border-box-5 .dv-bb5-line-4,\n.dv-border-box-5 .dv-bb5-line-5 {\n stroke-width: 2;\n stroke: rgba(255, 255, 255, 0.15);\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;EACE,eAAe;EACf,iCAAiC;AACnC;AACA;EACE,gCAAgC;AAClC;AACA;;EAEE,eAAe;EACf,iCAAiC;AACnC;AACA;;EAEE,eAAe;EACf,iCAAiC;AACnC;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 stroke-width: 1;\n stroke: rgba(255, 255, 255, 0.35);\n}\n.dv-border-box-5 .dv-bb5-line-2 {\n stroke: rgba(255, 255, 255, 0.2);\n}\n.dv-border-box-5 .dv-bb5-line-3,\n.dv-border-box-5 .dv-bb5-line-6 {\n stroke-width: 5;\n stroke: rgba(255, 255, 255, 0.15);\n}\n.dv-border-box-5 .dv-bb5-line-4,\n.dv-border-box-5 .dv-bb5-line-5 {\n stroke-width: 2;\n stroke: rgba(255, 255, 255, 0.15);\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],
data() {
return {
ref: 'border-box-6'
};
}
};
/* 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: { cx: "5", cy: "5", r: "2" } }),
_vm._v(" "),
_c("circle", { attrs: { cx: _vm.width - 5, cy: "5", r: "2" } }),
_vm._v(" "),
_c("circle", {
attrs: { cx: _vm.width - 5, cy: _vm.height - 5, r: "2" }
}),
_vm._v(" "),
_c("circle", { attrs: { cx: "5", cy: _vm.height - 5, r: "2" } }),
_vm._v(" "),
_c("polyline", {
attrs: { points: "10, 4 " + (_vm.width - 10) + ", 4" }
}),
_vm._v(" "),
_c("polyline", {
attrs: {
points:
"10, " +
(_vm.height - 4) +
" " +
(_vm.width - 10) +
", " +
(_vm.height - 4)
}
}),
_vm._v(" "),
_c("polyline", { attrs: { points: "5, 70 5, " + (_vm.height - 70) } }),
_vm._v(" "),
_c("polyline", {
attrs: {
points:
_vm.width -
5 +
", 70 " +
(_vm.width - 5) +
", " +
(_vm.height - 70)
}
}),
_vm._v(" "),
_c("polyline", { attrs: { points: "3, 10, 3, 50" } }),
_vm._v(" "),
_c("polyline", { attrs: { points: "7, 30 7, 80" } }),
_vm._v(" "),
_c("polyline", {
attrs: { points: _vm.width - 3 + ", 10 " + (_vm.width - 3) + ", 50" }
}),
_vm._v(" "),
_c("polyline", {
attrs: { points: _vm.width - 7 + ", 30 " + (_vm.width - 7) + ", 80" }
}),
_vm._v(" "),
_c("polyline", {
attrs: {
points: "3, " + (_vm.height - 10) + " 3, " + (_vm.height - 50)
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
points: "7, " + (_vm.height - 30) + " 7, " + (_vm.height - 80)
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
points:
_vm.width -
3 +
", " +
(_vm.height - 10) +
" " +
(_vm.width - 3) +
", " +
(_vm.height - 50)
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
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-a61b75b4_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 circle {\n fill: gray;\n}\n.dv-border-box-6 .dv-svg-container polyline {\n fill: none;\n stroke-width: 1;\n stroke: rgba(255, 255, 255, 0.35);\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;AACZ;AACA;EACE,UAAU;EACV,eAAe;EACf,iCAAiC;AACnC;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 circle {\n fill: gray;\n}\n.dv-border-box-6 .dv-svg-container polyline {\n fill: none;\n stroke-width: 1;\n stroke: rgba(255, 255, 255, 0.35);\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],
data() {
return {
ref: 'border-box-7'
};
}
};
/* 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" }, [
_c(
"svg",
{
staticClass: "dv-svg-container",
attrs: { width: _vm.width, height: _vm.height }
},
[
_c("polyline", {
staticClass: "dv-bb7-line-width-2",
attrs: { points: "0, 25 0, 0 25, 0" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb7-line-width-2",
attrs: {
points:
_vm.width - 25 + ", 0 " + _vm.width + ", 0 " + _vm.width + ", 25"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb7-line-width-2",
attrs: {
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: {
points:
"0, " +
(_vm.height - 25) +
" 0, " +
_vm.height +
" 25, " +
_vm.height
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb7-line-width-5",
attrs: { points: "0, 10 0, 0 10, 0" }
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb7-line-width-5",
attrs: {
points:
_vm.width - 10 + ", 0 " + _vm.width + ", 0 " + _vm.width + ", 10"
}
}),
_vm._v(" "),
_c("polyline", {
staticClass: "dv-bb7-line-width-5",
attrs: {
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: {
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-4407270e_0", { source: ".dv-border-box-7 {\n position: relative;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 0 40px rgba(128, 128, 128, 0.3);\n border: 1px solid rgba(128, 128, 128, 0.3);\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: rgba(128, 128, 128, 0.3);\n stroke-width: 2;\n}\n.dv-border-box-7 .dv-bb7-line-width-5 {\n stroke: rgba(128, 128, 128, 0.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;EACZ,mDAAmD;EACnD,0CAA0C;AAC5C;AACA;EACE,kBAAkB;EAClB,QAAQ;EACR,SAAS;EACT,WAAW;EACX,YAAY;AACd;AACA;EACE,UAAU;EACV,qBAAqB;AACvB;AACA;EACE,gCAAgC;EAChC,eAAe;AACjB;AACA;EACE,gCAAgC;EAChC,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 box-shadow: inset 0 0 40px rgba(128, 128, 128, 0.3);\n border: 1px solid rgba(128, 128, 128, 0.3);\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: rgba(128, 128, 128, 0.3);\n stroke-width: 2;\n}\n.dv-border-box-7 .dv-bb7-line-width-5 {\n stroke: rgba(128, 128, 128, 0.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],
data() {
return {
ref: 'border-box-8',
path: `border-box-8-path-${new Date().getTime()}`,
gradient: `border-box-8-gradient-${new Date().getTime()}`,
mask: `border-box-8-mask-${new Date().getTime()}`
};
},
computed: {
length() {
const {
width,
height
} = this;
return (width + height - 5) * 2;
}
}
};
/* 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: "3s",
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: "#235fa7",
"stroke-width": "1",
"xlink:href": "#" + _vm.path
}
}),
_vm._v(" "),
_c(
"use",
{
attrs: {
stroke: "#4fd2dd",
"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: "3s",
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-ab8dc534_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],
data() {
return {
ref: 'border-box-9',
gradientId: `border-box-9-gradient-${new Date().getTime()}`,
maskId: `border-box-9-mask-${new Date().getTime()}`
};
}
};
/* 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("stop", {
attrs: { offset: "0%", "stop-color": "#11eefd" }
}),
_vm._v(" "),
_c("stop", {
attrs: { offset: "100%", "stop-color": "#0078d2" }
})
],
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-3ccfbea8_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',
data() {
return {
border: ['left-top', 'right-top', 'left-bottom', 'right-bottom']
};
}
};
/* 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" },
[
_vm._l(_vm.border, function(item) {
return _c(
"svg",
{
key: item,
class: item + " border",
attrs: { width: "150px", height: "150px" }
},
[
_c("polygon", {
attrs: {
fill: "#d3e1f8",
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-4ca6df50_0", { source: ".dv-border-box-10 {\n position: relative;\n width: 100%;\n height: 100%;\n box-shadow: inset 0 0 25px 3px #1d48c4;\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,sCAAsC;EACtC,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 box-shadow: inset 0 0 25px 3px #1d48c4;\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 script$c = {
name: 'DvDecoration1',
mixins: [autoResize],
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: []
};
},
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();
}
}
};
/* 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-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: "#fff",
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: "#fff;transparent",
dur: "1s",
begin: Math.random() * 2,
repeatCount: "indefinite"
}
})
: _vm._e()
]
)
: _vm._e()
]
}),
_vm._v(" "),
_vm.rects[0]
? _c(
"rect",
{
attrs: {
fill: "#0de7c2",
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: "#0de7c2",
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__$c = [];
__vue_render__$c._withStripped = true;
/* style */
const __vue_inject_styles__$c = function (inject) {
if (!inject) return
inject("data-v-37b4d8de_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__$c = undefined;
/* module identifier */
const __vue_module_identifier__$c = undefined;
/* functional template */
const __vue_is_functional_template__$c = false;
/* style inject SSR */
var Decoration1 = 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 decoration1 (Vue) {
Vue.component(Decoration1.name, Decoration1);
}
//
var script$d = {
name: 'DvDecoration2',
mixins: [autoResize],
props: {
reverse: {
type: Boolean,
default: false
}
},
data() {
return {
ref: 'decoration-2',
x: 0,
y: 0,
w: 0,
h: 0
};
},
watch: {
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();
}
}
};
/* 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-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: "#3faacb"
}
},
[
_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: "#fff" }
},
[
_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__$d = [];
__vue_render__$d._withStripped = true;
/* style */
const __vue_inject_styles__$d = function (inject) {
if (!inject) return
inject("data-v-830db22e_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__$d = undefined;
/* module identifier */
const __vue_module_identifier__$d = undefined;
/* functional template */
const __vue_is_functional_template__$d = false;
/* style inject SSR */
var Decoration2 = 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 decoration2 (Vue) {
Vue.component(Decoration2.name, Decoration2);
}
//
var script$e = {
name: 'DvDecoration3',
mixins: [autoResize],
data() {
const pointSideLength = 7;
return {
ref: 'decoration-3',
svgWH: [300, 35],
svgScale: [1, 1],
rowNum: 2,
rowPoints: 25,
pointSideLength,
halfPointSideLength: pointSideLength / 2,
points: []
};
},
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();
}
}
};
/* 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-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: "#7acaec",
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: "#7acaec;transparent",
dur: Math.random() + 1 + "s",
begin: Math.random() * 2,
repeatCount: "indefinite"
}
})
: _vm._e()
]
)
]
})
],
2
)
])
};
var __vue_staticRenderFns__$e = [];
__vue_render__$e._withStripped = true;
/* style */
const __vue_inject_styles__$e = function (inject) {
if (!inject) return
inject("data-v-557fdf18_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__$e = undefined;
/* module identifier */
const __vue_module_identifier__$e = undefined;
/* functional template */
const __vue_is_functional_template__$e = false;
/* style inject SSR */
var Decoration3 = 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 decoration3 (Vue) {
Vue.component(Decoration3.name, Decoration3);
}
//
var script$f = {
name: 'DvDecoration4',
mixins: [autoResize],
props: ['reverse'],
data() {
return {
ref: 'decoration-4'
};
}
};
/* 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-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: "rgba(255, 255, 255, 0.3)",
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: "rgba(255, 255, 255, 0.3)",
"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__$f = [];
__vue_render__$f._withStripped = true;
/* style */
const __vue_inject_styles__$f = function (inject) {
if (!inject) return
inject("data-v-15cdd0b4_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__$f = undefined;
/* module identifier */
const __vue_module_identifier__$f = undefined;
/* functional template */
const __vue_is_functional_template__$f = false;
/* style inject SSR */
var Decoration4 = 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 decoration4 (Vue) {
Vue.component(Decoration4.name, Decoration4);
}
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 _global = createCommonjsModule(function (module) {
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
? window : typeof self != 'undefined' && self.Math == Math ? self
// eslint-disable-next-line no-new-func
: Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
});
var _core = createCommonjsModule(function (module) {
var core = module.exports = { version: '2.6.9' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
});
var _core_1 = _core.version;
var _isObject = function (it) {
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
var _anObject = function (it) {
if (!_isObject(it)) throw TypeError(it + ' is not an object!');
return it;
};
var _fails = function (exec) {
try {
return !!exec();
} catch (e) {
return true;
}
};
// Thank's IE8 for his funny defineProperty
var _descriptors = !_fails(function () {
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});
var document$1 = _global.document;
// typeof document.createElement is 'object' in old IE
var is = _isObject(document$1) && _isObject(document$1.createElement);
var _domCreate = function (it) {
return is ? document$1.createElement(it) : {};
};
var _ie8DomDefine = !_descriptors && !_fails(function () {
return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;
});
// 7.1.1 ToPrimitive(input [, PreferredType])
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
var _toPrimitive = function (it, S) {
if (!_isObject(it)) return it;
var fn, val;
if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) return val;
if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
throw TypeError("Can't convert object to primitive value");
};
var dP = Object.defineProperty;
var f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
_anObject(O);
P = _toPrimitive(P, true);
_anObject(Attributes);
if (_ie8DomDefine) try {
return dP(O, P, Attributes);
} catch (e) { /* empty */ }
if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
if ('value' in Attributes) O[P] = Attributes.value;
return O;
};
var _objectDp = {
f: f
};
var _propertyDesc = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
var _hide = _descriptors ? function (object, key, value) {
return _objectDp.f(object, key, _propertyDesc(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
var hasOwnProperty = {}.hasOwnProperty;
var _has = function (it, key) {
return hasOwnProperty.call(it, key);
};
var id = 0;
var px = Math.random();
var _uid = function (key) {
return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};
var _library = false;
var _shared = createCommonjsModule(function (module) {
var SHARED = '__core-js_shared__';
var store = _global[SHARED] || (_global[SHARED] = {});
(module.exports = function (key, value) {
return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
version: _core.version,
mode: 'global',
copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
});
});
var _functionToString = _shared('native-function-to-string', Function.toString);
var _redefine = createCommonjsModule(function (module) {
var SRC = _uid('src');
var TO_STRING = 'toString';
var TPL = ('' + _functionToString).split(TO_STRING);
_core.inspectSource = function (it) {
return _functionToString.call(it);
};
(module.exports = function (O, key, val, safe) {
var isFunction = typeof val == 'function';
if (isFunction) _has(val, 'name') || _hide(val, 'name', key);
if (O[key] === val) return;
if (isFunction) _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
if (O === _global) {
O[key] = val;
} else if (!safe) {
delete O[key];
_hide(O, key, val);
} else if (O[key]) {
O[key] = val;
} else {
_hide(O, key, val);
}
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString() {
return typeof this == 'function' && this[SRC] || _functionToString.call(this);
});
});
var _aFunction = function (it) {
if (typeof it != 'function') throw TypeError(it + ' is not a function!');
return it;
};
// optional / simple context binding
var _ctx = function (fn, that, length) {
_aFunction(fn);
if (that === undefined) return fn;
switch (length) {
case 1: return function (a) {
return fn.call(that, a);
};
case 2: return function (a, b) {
return fn.call(that, a, b);
};
case 3: return function (a, b, c) {
return fn.call(that, a, b, c);
};
}
return function (/* ...args */) {
return fn.apply(that, arguments);
};
};
var PROTOTYPE = 'prototype';
var $export = function (type, name, source) {
var IS_FORCED = type & $export.F;
var IS_GLOBAL = type & $export.G;
var IS_STATIC = type & $export.S;
var IS_PROTO = type & $export.P;
var IS_BIND = type & $export.B;
var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE];
var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});
var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
var key, own, out, exp;
if (IS_GLOBAL) source = name;
for (key in source) {
// contains in native
own = !IS_FORCED && target && target[key] !== undefined;
// export native or passed
out = (own ? target : source)[key];
// bind timers to global for call from export context
exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;
// extend global
if (target) _redefine(target, key, out, type & $export.U);
// export
if (exports[key] != out) _hide(exports, key, exp);
if (IS_PROTO && expProto[key] != out) expProto[key] = out;
}
};
_global.core = _core;
// type bitmap
$export.F = 1; // forced
$export.G = 2; // global
$export.S = 4; // static
$export.P = 8; // proto
$export.B = 16; // bind
$export.W = 32; // wrap
$export.U = 64; // safe
$export.R = 128; // real proto method for `library`
var _export = $export;
// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)
_export(_export.S + _export.F * !_descriptors, 'Object', { defineProperty: _objectDp.f });
// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
var _toInteger = function (it) {
return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};
// 7.2.1 RequireObjectCoercible(argument)
var _defined = function (it) {
if (it == undefined) throw TypeError("Can't call method on " + it);
return it;
};
// true -> String#at
// false -> String#codePointAt
var _stringAt = function (TO_STRING) {
return function (that, pos) {
var s = String(_defined(that));
var i = _toInteger(pos);
var l = s.length;
var a, b;
if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
a = s.charCodeAt(i);
return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
? TO_STRING ? s.charAt(i) : a
: TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
};
};
var _iterators = {};
var toString = {}.toString;
var _cof = function (it) {
return toString.call(it).slice(8, -1);
};
// fallback for non-array-like ES3 and non-enumerable old V8 strings
// eslint-disable-next-line no-prototype-builtins
var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
return _cof(it) == 'String' ? it.split('') : Object(it);
};
// to indexed object, toObject with fallback for non-array-like ES3 strings
var _toIobject = function (it) {
return _iobject(_defined(it));
};
// 7.1.15 ToLength
var min = Math.min;
var _toLength = function (it) {
return it > 0 ? min(_toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};
var max = Math.max;
var min$1 = Math.min;
var _toAbsoluteIndex = function (index, length) {
index = _toInteger(index);
return index < 0 ? max(index + length, 0) : min$1(index, length);
};
// false -> Array#indexOf
// true -> Array#includes
var _arrayIncludes = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = _toIobject($this);
var length = _toLength(O.length);
var index = _toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++];
// eslint-disable-next-line no-self-compare
if (value != value) return true;
// Array#indexOf ignores holes, Array#includes - not
} else for (;length > index; index++) if (IS_INCLUDES || index in O) {
if (O[index] === el) return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
var shared = _shared('keys');
var _sharedKey = function (key) {
return shared[key] || (shared[key] = _uid(key));
};
var arrayIndexOf = _arrayIncludes(false);
var IE_PROTO = _sharedKey('IE_PROTO');
var _objectKeysInternal = function (object, names) {
var O = _toIobject(object);
var i = 0;
var result = [];
var key;
for (key in O) if (key != IE_PROTO) _has(O, key) && result.push(key);
// Don't enum bug & hidden keys
while (names.length > i) if (_has(O, key = names[i++])) {
~arrayIndexOf(result, key) || result.push(key);
}
return result;
};
// IE 8- don't enum bug keys
var _enumBugKeys = (
'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');
// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var _objectKeys = Object.keys || function keys(O) {
return _objectKeysInternal(O, _enumBugKeys);
};
var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
_anObject(O);
var keys = _objectKeys(Properties);
var length = keys.length;
var i = 0;
var P;
while (length > i) _objectDp.f(O, P = keys[i++], Properties[P]);
return O;
};
var document$2 = _global.document;
var _html = document$2 && document$2.documentElement;
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var IE_PROTO$1 = _sharedKey('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE$1 = 'prototype';
// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
// Thrash, waste and sodomy: IE GC bug
var iframe = _domCreate('iframe');
var i = _enumBugKeys.length;
var lt = '<';
var gt = '>';
var iframeDocument;
iframe.style.display = 'none';
_html.appendChild(iframe);
iframe.src = 'javascript:'; // eslint-disable-line no-script-url
// createDict = iframe.contentWindow.Object;
// html.removeChild(iframe);
iframeDocument = iframe.contentWindow.document;
iframeDocument.open();
iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
iframeDocument.close();
createDict = iframeDocument.F;
while (i--) delete createDict[PROTOTYPE$1][_enumBugKeys[i]];
return createDict();
};
var _objectCreate = Object.create || function create(O, Properties) {
var result;
if (O !== null) {
Empty[PROTOTYPE$1] = _anObject(O);
result = new Empty();
Empty[PROTOTYPE$1] = null;
// add "__proto__" for Object.getPrototypeOf polyfill
result[IE_PROTO$1] = O;
} else result = createDict();
return Properties === undefined ? result : _objectDps(result, Properties);
};
var _wks = createCommonjsModule(function (module) {
var store = _shared('wks');
var Symbol = _global.Symbol;
var USE_SYMBOL = typeof Symbol == 'function';
var $exports = module.exports = function (name) {
return store[name] || (store[name] =
USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : _uid)('Symbol.' + name));
};
$exports.store = store;
});
var def = _objectDp.f;
var TAG = _wks('toStringTag');
var _setToStringTag = function (it, tag, stat) {
if (it && !_has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};
var IteratorPrototype = {};
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
_hide(IteratorPrototype, _wks('iterator'), function () { return this; });
var _iterCreate = function (Constructor, NAME, next) {
Constructor.prototype = _objectCreate(IteratorPrototype, { next: _propertyDesc(1, next) });
_setToStringTag(Constructor, NAME + ' Iterator');
};
// 7.1.13 ToObject(argument)
var _toObject = function (it) {
return Object(_defined(it));
};
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var IE_PROTO$2 = _sharedKey('IE_PROTO');
var ObjectProto = Object.prototype;
var _objectGpo = Object.getPrototypeOf || function (O) {
O = _toObject(O);
if (_has(O, IE_PROTO$2)) return O[IE_PROTO$2];
if (typeof O.constructor == 'function' && O instanceof O.constructor) {
return O.constructor.prototype;
} return O instanceof Object ? ObjectProto : null;
};
var ITERATOR = _wks('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
var VALUES = 'values';
var returnThis = function () { return this; };
var _iterDefine = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
_iterCreate(Constructor, NAME, next);
var getMethod = function (kind) {
if (!BUGGY && kind in proto) return proto[kind];
switch (kind) {
case KEYS: return function keys() { return new Constructor(this, kind); };
case VALUES: return function values() { return new Constructor(this, kind); };
} return function entries() { return new Constructor(this, kind); };
};
var TAG = NAME + ' Iterator';
var DEF_VALUES = DEFAULT == VALUES;
var VALUES_BUG = false;
var proto = Base.prototype;
var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
var $default = $native || getMethod(DEFAULT);
var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
var methods, key, IteratorPrototype;
// Fix native
if ($anyNative) {
IteratorPrototype = _objectGpo($anyNative.call(new Base()));
if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
// Set @@toStringTag to native iterators
_setToStringTag(IteratorPrototype, TAG, true);
// fix for some old engines
if ( typeof IteratorPrototype[ITERATOR] != 'function') _hide(IteratorPrototype, ITERATOR, returnThis);
}
}
// fix Array#{values, @@iterator}.name in V8 / FF
if (DEF_VALUES && $native && $native.name !== VALUES) {
VALUES_BUG = true;
$default = function values() { return $native.call(this); };
}
// Define iterator
if ( (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
_hide(proto, ITERATOR, $default);
}
// Plug for library
_iterators[NAME] = $default;
_iterators[TAG] = returnThis;
if (DEFAULT) {
methods = {
values: DEF_VALUES ? $default : getMethod(VALUES),
keys: IS_SET ? $default : getMethod(KEYS),
entries: $entries
};
if (FORCED) for (key in methods) {
if (!(key in proto)) _redefine(proto, key, methods[key]);
} else _export(_export.P + _export.F * (BUGGY || VALUES_BUG), NAME, methods);
}
return methods;
};
var $at = _stringAt(true);
// 21.1.3.27 String.prototype[@@iterator]()
_iterDefine(String, 'String', function (iterated) {
this._t = String(iterated); // target
this._i = 0; // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function () {
var O = this._t;
var index = this._i;
var point;
if (index >= O.length) return { value: undefined, done: true };
point = $at(O, index);
this._i += point.length;
return { value: point, done: false };
});
// call something on iterator step with safe closing on error
var _iterCall = function (iterator, fn, value, entries) {
try {
return entries ? fn(_anObject(value)[0], value[1]) : fn(value);
// 7.4.6 IteratorClose(iterator, completion)
} catch (e) {
var ret = iterator['return'];
if (ret !== undefined) _anObject(ret.call(iterator));
throw e;
}
};
// check on default Array iterator
var ITERATOR$1 = _wks('iterator');
var ArrayProto = Array.prototype;
var _isArrayIter = function (it) {
return it !== undefined && (_iterators.Array === it || ArrayProto[ITERATOR$1] === it);
};
var _createProperty = function (object, index, value) {
if (index in object) _objectDp.f(object, index, _propertyDesc(0, value));
else object[index] = value;
};
// getting tag from 19.1.3.6 Object.prototype.toString()
var TAG$1 = _wks('toStringTag');
// ES3 wrong here
var ARG = _cof(function () { return arguments; }()) == 'Arguments';
// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
try {
return it[key];
} catch (e) { /* empty */ }
};
var _classof = function (it) {
var O, T, B;
return it === undefined ? 'Undefined' : it === null ? 'Null'
// @@toStringTag case
: typeof (T = tryGet(O = Object(it), TAG$1)) == 'string' ? T
// builtinTag case
: ARG ? _cof(O)
// ES3 arguments fallback
: (B = _cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};
var ITERATOR$2 = _wks('iterator');
var core_getIteratorMethod = _core.getIteratorMethod = function (it) {
if (it != undefined) return it[ITERATOR$2]
|| it['@@iterator']
|| _iterators[_classof(it)];
};
var ITERATOR$3 = _wks('iterator');
var SAFE_CLOSING = false;
try {
var riter = [7][ITERATOR$3]();
riter['return'] = function () { SAFE_CLOSING = true; };
// eslint-disable-next-line no-throw-literal
Array.from(riter, function () { throw 2; });
} catch (e) { /* empty */ }
var _iterDetect = function (exec, skipClosing) {
if (!skipClosing && !SAFE_CLOSING) return false;
var safe = false;
try {
var arr = [7];
var iter = arr[ITERATOR$3]();
iter.next = function () { return { done: safe = true }; };
arr[ITERATOR$3] = function () { return iter; };
exec(arr);
} catch (e) { /* empty */ }
return safe;
};
_export(_export.S + _export.F * !_iterDetect(function (iter) { Array.from(iter); }), 'Array', {
// 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
var O = _toObject(arrayLike);
var C = typeof this == 'function' ? this : Array;
var aLen = arguments.length;
var mapfn = aLen > 1 ? arguments[1] : undefined;
var mapping = mapfn !== undefined;
var index = 0;
var iterFn = core_getIteratorMethod(O);
var length, result, step, iterator;
if (mapping) mapfn = _ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
// if object isn't iterable or it's array with default iterator - use simple case
if (iterFn != undefined && !(C == Array && _isArrayIter(iterFn))) {
for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
_createProperty(result, index, mapping ? _iterCall(iterator, mapfn, [step.value, index], true) : step.value);
}
} else {
length = _toLength(O.length);
for (result = new C(length); length > index; index++) {
_createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
}
}
result.length = index;
return result;
}
});
var f$1 = _wks;
var _wksExt = {
f: f$1
};
var defineProperty = _objectDp.f;
var _wksDefine = function (name) {
var $Symbol = _core.Symbol || (_core.Symbol = _global.Symbol || {});
if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: _wksExt.f(name) });
};
_wksDefine('asyncIterator');
var _meta = createCommonjsModule(function (module) {
var META = _uid('meta');
var setDesc = _objectDp.f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
return true;
};
var FREEZE = !_fails(function () {
return isExtensible(Object.preventExtensions({}));
});
var setMeta = function (it) {
setDesc(it, META, { value: {
i: 'O' + ++id, // object ID
w: {} // weak collections IDs
} });
};
var fastKey = function (it, create) {
// return primitive with prefix
if (!_isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
if (!_has(it, META)) {
// can't set metadata to uncaught frozen object
if (!isExtensible(it)) return 'F';
// not necessary to add metadata
if (!create) return 'E';
// add missing metadata
setMeta(it);
// return object ID
} return it[META].i;
};
var getWeak = function (it, create) {
if (!_has(it, META)) {
// can't set metadata to uncaught frozen object
if (!isExtensible(it)) return true;
// not necessary to add metadata
if (!create) return false;
// add missing metadata
setMeta(it);
// return hash weak collections IDs
} return it[META].w;
};
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
if (FREEZE && meta.NEED && isExtensible(it) && !_has(it, META)) setMeta(it);
return it;
};
var meta = module.exports = {
KEY: META,
NEED: false,
fastKey: fastKey,
getWeak: getWeak,
onFreeze: onFreeze
};
});
var _meta_1 = _meta.KEY;
var _meta_2 = _meta.NEED;
var _meta_3 = _meta.fastKey;
var _meta_4 = _meta.getWeak;
var _meta_5 = _meta.onFreeze;
var f$2 = Object.getOwnPropertySymbols;
var _objectGops = {
f: f$2
};
var f$3 = {}.propertyIsEnumerable;
var _objectPie = {
f: f$3
};
// all enumerable object keys, includes symbols
var _enumKeys = function (it) {
var result = _objectKeys(it);
var getSymbols = _objectGops.f;
if (getSymbols) {
var symbols = getSymbols(it);
var isEnum = _objectPie.f;
var i = 0;
var key;
while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
} return result;
};
// 7.2.2 IsArray(argument)
var _isArray = Array.isArray || function isArray(arg) {
return _cof(arg) == 'Array';
};
// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var hiddenKeys = _enumBugKeys.concat('length', 'prototype');
var f$4 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return _objectKeysInternal(O, hiddenKeys);
};
var _objectGopn = {
f: f$4
};
// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var gOPN = _objectGopn.f;
var toString$1 = {}.toString;
var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
? Object.getOwnPropertyNames(window) : [];
var getWindowNames = function (it) {
try {
return gOPN(it);
} catch (e) {
return windowNames.slice();
}
};
var f$5 = function getOwnPropertyNames(it) {
return windowNames && toString$1.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(_toIobject(it));
};
var _objectGopnExt = {
f: f$5
};
var gOPD = Object.getOwnPropertyDescriptor;
var f$6 = _descriptors ? gOPD : function getOwnPropertyDescriptor(O, P) {
O = _toIobject(O);
P = _toPrimitive(P, true);
if (_ie8DomDefine) try {
return gOPD(O, P);
} catch (e) { /* empty */ }
if (_has(O, P)) return _propertyDesc(!_objectPie.f.call(O, P), O[P]);
};
var _objectGopd = {
f: f$6
};
// ECMAScript 6 symbols shim
var META = _meta.KEY;
var gOPD$1 = _objectGopd.f;
var dP$1 = _objectDp.f;
var gOPN$1 = _objectGopnExt.f;
var $Symbol = _global.Symbol;
var $JSON = _global.JSON;
var _stringify = $JSON && $JSON.stringify;
var PROTOTYPE$2 = 'prototype';
var HIDDEN = _wks('_hidden');
var TO_PRIMITIVE = _wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
var SymbolRegistry = _shared('symbol-registry');
var AllSymbols = _shared('symbols');
var OPSymbols = _shared('op-symbols');
var ObjectProto$1 = Object[PROTOTYPE$2];
var USE_NATIVE = typeof $Symbol == 'function' && !!_objectGops.f;
var QObject = _global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter = !QObject || !QObject[PROTOTYPE$2] || !QObject[PROTOTYPE$2].findChild;
// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = _descriptors && _fails(function () {
return _objectCreate(dP$1({}, 'a', {
get: function () { return dP$1(this, 'a', { value: 7 }).a; }
})).a != 7;
}) ? function (it, key, D) {
var protoDesc = gOPD$1(ObjectProto$1, key);
if (protoDesc) delete ObjectProto$1[key];
dP$1(it, key, D);
if (protoDesc && it !== ObjectProto$1) dP$1(ObjectProto$1, key, protoDesc);
} : dP$1;
var wrap = function (tag) {
var sym = AllSymbols[tag] = _objectCreate($Symbol[PROTOTYPE$2]);
sym._k = tag;
return sym;
};
var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {
return typeof it == 'symbol';
} : function (it) {
return it instanceof $Symbol;
};
var $defineProperty = function defineProperty(it, key, D) {
if (it === ObjectProto$1) $defineProperty(OPSymbols, key, D);
_anObject(it);
key = _toPrimitive(key, true);
_anObject(D);
if (_has(AllSymbols, key)) {
if (!D.enumerable) {
if (!_has(it, HIDDEN)) dP$1(it, HIDDEN, _propertyDesc(1, {}));
it[HIDDEN][key] = true;
} else {
if (_has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
D = _objectCreate(D, { enumerable: _propertyDesc(0, false) });
} return setSymbolDesc(it, key, D);
} return dP$1(it, key, D);
};
var $defineProperties = function defineProperties(it, P) {
_anObject(it);
var keys = _enumKeys(P = _toIobject(P));
var i = 0;
var l = keys.length;
var key;
while (l > i) $defineProperty(it, key = keys[i++], P[key]);
return it;
};
var $create = function create(it, P) {
return P === undefined ? _objectCreate(it) : $defineProperties(_objectCreate(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key) {
var E = isEnum.call(this, key = _toPrimitive(key, true));
if (this === ObjectProto$1 && _has(AllSymbols, key) && !_has(OPSymbols, key)) return false;
return E || !_has(this, key) || !_has(AllSymbols, key) || _has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
it = _toIobject(it);
key = _toPrimitive(key, true);
if (it === ObjectProto$1 && _has(AllSymbols, key) && !_has(OPSymbols, key)) return;
var D = gOPD$1(it, key);
if (D && _has(AllSymbols, key) && !(_has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it) {
var names = gOPN$1(_toIobject(it));
var result = [];
var i = 0;
var key;
while (names.length > i) {
if (!_has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
} return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
var IS_OP = it === ObjectProto$1;
var names = gOPN$1(IS_OP ? OPSymbols : _toIobject(it));
var result = [];
var i = 0;
var key;
while (names.length > i) {
if (_has(AllSymbols, key = names[i++]) && (IS_OP ? _has(ObjectProto$1, key) : true)) result.push(AllSymbols[key]);
} return result;
};
// 19.4.1.1 Symbol([description])
if (!USE_NATIVE) {
$Symbol = function Symbol() {
if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
var tag = _uid(arguments.length > 0 ? arguments[0] : undefined);
var $set = function (value) {
if (this === ObjectProto$1) $set.call(OPSymbols, value);
if (_has(this, HIDDEN) && _has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
setSymbolDesc(this, tag, _propertyDesc(1, value));
};
if (_descriptors && setter) setSymbolDesc(ObjectProto$1, tag, { configurable: true, set: $set });
return wrap(tag);
};
_redefine($Symbol[PROTOTYPE$2], 'toString', function toString() {
return this._k;
});
_objectGopd.f = $getOwnPropertyDescriptor;
_objectDp.f = $defineProperty;
_objectGopn.f = _objectGopnExt.f = $getOwnPropertyNames;
_objectPie.f = $propertyIsEnumerable;
_objectGops.f = $getOwnPropertySymbols;
if (_descriptors && !_library) {
_redefine(ObjectProto$1, 'propertyIsEnumerable', $propertyIsEnumerable, true);
}
_wksExt.f = function (name) {
return wrap(_wks(name));
};
}
_export(_export.G + _export.W + _export.F * !USE_NATIVE, { Symbol: $Symbol });
for (var es6Symbols = (
// 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
).split(','), j = 0; es6Symbols.length > j;)_wks(es6Symbols[j++]);
for (var wellKnownSymbols = _objectKeys(_wks.store), k = 0; wellKnownSymbols.length > k;) _wksDefine(wellKnownSymbols[k++]);
_export(_export.S + _export.F * !USE_NATIVE, 'Symbol', {
// 19.4.2.1 Symbol.for(key)
'for': function (key) {
return _has(SymbolRegistry, key += '')
? SymbolRegistry[key]
: SymbolRegistry[key] = $Symbol(key);
},
// 19.4.2.5 Symbol.keyFor(sym)
keyFor: function keyFor(sym) {
if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;
},
useSetter: function () { setter = true; },
useSimple: function () { setter = false; }
});
_export(_export.S + _export.F * !USE_NATIVE, 'Object', {
// 19.1.2.2 Object.create(O [, Properties])
create: $create,
// 19.1.2.4 Object.defineProperty(O, P, Attributes)
defineProperty: $defineProperty,
// 19.1.2.3 Object.defineProperties(O, Properties)
defineProperties: $defineProperties,
// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
// 19.1.2.7 Object.getOwnPropertyNames(O)
getOwnPropertyNames: $getOwnPropertyNames,
// 19.1.2.8 Object.getOwnPropertySymbols(O)
getOwnPropertySymbols: $getOwnPropertySymbols
});
// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives
// https://bugs.chromium.org/p/v8/issues/detail?id=3443
var FAILS_ON_PRIMITIVES = _fails(function () { _objectGops.f(1); });
_export(_export.S + _export.F * FAILS_ON_PRIMITIVES, 'Object', {
getOwnPropertySymbols: function getOwnPropertySymbols(it) {
return _objectGops.f(_toObject(it));
}
});
// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && _export(_export.S + _export.F * (!USE_NATIVE || _fails(function () {
var S = $Symbol();
// MS Edge converts symbol values to JSON as {}
// WebKit converts symbol values to JSON as null
// V8 throws on boxed symbols
return _stringify([S]) != '[null]' || _stringify({ a: S }) != '{}' || _stringify(Object(S)) != '{}';
})), 'JSON', {
stringify: function stringify(it) {
var args = [it];
var i = 1;
var replacer, $replacer;
while (arguments.length > i) args.push(arguments[i++]);
$replacer = replacer = args[1];
if (!_isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
if (!_isArray(replacer)) replacer = function (key, value) {
if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
if (!isSymbol(value)) return value;
};
args[1] = replacer;
return _stringify.apply($JSON, args);
}
});
// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
$Symbol[PROTOTYPE$2][TO_PRIMITIVE] || _hide($Symbol[PROTOTYPE$2], TO_PRIMITIVE, $Symbol[PROTOTYPE$2].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
_setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
_setToStringTag(Math, 'Math', true);
// 24.3.3 JSON[@@toStringTag]
_setToStringTag(_global.JSON, 'JSON', true);
// 22.1.3.31 Array.prototype[@@unscopables]
var UNSCOPABLES = _wks('unscopables');
var ArrayProto$1 = Array.prototype;
if (ArrayProto$1[UNSCOPABLES] == undefined) _hide(ArrayProto$1, UNSCOPABLES, {});
var _addToUnscopables = function (key) {
ArrayProto$1[UNSCOPABLES][key] = true;
};
var _iterStep = function (done, value) {
return { value: value, done: !!done };
};
// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
var es6_array_iterator = _iterDefine(Array, 'Array', function (iterated, kind) {
this._t = _toIobject(iterated); // target
this._i = 0; // next index
this._k = kind; // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function () {
var O = this._t;
var kind = this._k;
var index = this._i++;
if (!O || index >= O.length) {
this._t = undefined;
return _iterStep(1);
}
if (kind == 'keys') return _iterStep(0, index);
if (kind == 'values') return _iterStep(0, O[index]);
return _iterStep(0, [index, O[index]]);
}, 'values');
// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
_iterators.Arguments = _iterators.Array;
_addToUnscopables('keys');
_addToUnscopables('values');
_addToUnscopables('entries');
var ITERATOR$4 = _wks('iterator');
var TO_STRING_TAG = _wks('toStringTag');
var ArrayValues = _iterators.Array;
var DOMIterables = {
CSSRuleList: true, // TODO: Not spec compliant, should be false.
CSSStyleDeclaration: false,
CSSValueList: false,
ClientRectList: false,
DOMRectList: false,
DOMStringList: false,
DOMTokenList: true,
DataTransferItemList: false,
FileList: false,
HTMLAllCollection: false,
HTMLCollection: false,
HTMLFormElement: false,
HTMLSelectElement: false,
MediaList: true, // TODO: Not spec compliant, should be false.
MimeTypeArray: false,
NamedNodeMap: false,
NodeList: true,
PaintRequestList: false,
Plugin: false,
PluginArray: false,
SVGLengthList: false,
SVGNumberList: false,
SVGPathSegList: false,
SVGPointList: false,
SVGStringList: false,
SVGTransformList: false,
SourceBufferList: false,
StyleSheetList: true, // TODO: Not spec compliant, should be false.
TextTrackCueList: false,
TextTrackList: false,
TouchList: false
};
for (var collections = _objectKeys(DOMIterables), i = 0; i < collections.length; i++) {
var NAME = collections[i];
var explicit = DOMIterables[NAME];
var Collection = _global[NAME];
var proto = Collection && Collection.prototype;
var key;
if (proto) {
if (!proto[ITERATOR$4]) _hide(proto, ITERATOR$4, ArrayValues);
if (!proto[TO_STRING_TAG]) _hide(proto, TO_STRING_TAG, NAME);
_iterators[NAME] = ArrayValues;
if (explicit) for (key in es6_array_iterator) if (!proto[key]) _redefine(proto, key, es6_array_iterator[key], true);
}
}
// 22.1.2.2 / 15.4.3.2 Array.isArray(arg)
_export(_export.S, 'Array', { isArray: _isArray });
var SPECIES = _wks('species');
var _arraySpeciesConstructor = function (original) {
var C;
if (_isArray(original)) {
C = original.constructor;
// cross-realm fallback
if (typeof C == 'function' && (C === Array || _isArray(C.prototype))) C = undefined;
if (_isObject(C)) {
C = C[SPECIES];
if (C === null) C = undefined;
}
} return C === undefined ? Array : C;
};
// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var _arraySpeciesCreate = function (original, length) {
return new (_arraySpeciesConstructor(original))(length);
};
// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var _arrayMethods = function (TYPE, $create) {
var IS_MAP = TYPE == 1;
var IS_FILTER = TYPE == 2;
var IS_SOME = TYPE == 3;
var IS_EVERY = TYPE == 4;
var IS_FIND_INDEX = TYPE == 6;
var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
var create = $create || _arraySpeciesCreate;
return function ($this, callbackfn, that) {
var O = _toObject($this);
var self = _iobject(O);
var f = _ctx(callbackfn, that, 3);
var length = _toLength(self.length);
var index = 0;
var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
var val, res;
for (;length > index; index++) if (NO_HOLES || index in self) {
val = self[index];
res = f(val, index, O);
if (TYPE) {
if (IS_MAP) result[index] = res; // map
else if (res) switch (TYPE) {
case 3: return true; // some
case 5: return val; // find
case 6: return index; // findIndex
case 2: result.push(val); // filter
} else if (IS_EVERY) return false; // every
}
}
return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
};
};
var _strictMethod = function (method, arg) {
return !!method && _fails(function () {
// eslint-disable-next-line no-useless-call
arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null);
});
};
var $forEach = _arrayMethods(0);
var STRICT = _strictMethod([].forEach, true);
_export(_export.P + _export.F * !STRICT, 'Array', {
// 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
forEach: function forEach(callbackfn /* , thisArg */) {
return $forEach(this, callbackfn, arguments[1]);
}
});
var _arrayFill = function fill(value /* , start = 0, end = @length */) {
var O = _toObject(this);
var length = _toLength(O.length);
var aLen = arguments.length;
var index = _toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);
var end = aLen > 2 ? arguments[2] : undefined;
var endPos = end === undefined ? length : _toAbsoluteIndex(end, length);
while (endPos > index) O[index++] = value;
return O;
};
// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
_export(_export.P, 'Array', { fill: _arrayFill });
_addToUnscopables('fill');
var $map = _arrayMethods(1);
_export(_export.P + _export.F * !_strictMethod([].map, true), 'Array', {
// 22.1.3.15 / 15.4.4.19 Array.prototype.map(callbackfn [, thisArg])
map: function map(callbackfn /* , thisArg */) {
return $map(this, callbackfn, arguments[1]);
}
});
// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
var $find = _arrayMethods(6);
var KEY = 'findIndex';
var forced = true;
// Shouldn't skip holes
if (KEY in []) Array(1)[KEY](function () { forced = false; });
_export(_export.P + _export.F * forced, 'Array', {
findIndex: function findIndex(callbackfn /* , that = undefined */) {
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
_addToUnscopables(KEY);
var _arrayReduce = function (that, callbackfn, aLen, memo, isRight) {
_aFunction(callbackfn);
var O = _toObject(that);
var self = _iobject(O);
var length = _toLength(O.length);
var index = isRight ? length - 1 : 0;
var i = isRight ? -1 : 1;
if (aLen < 2) for (;;) {
if (index in self) {
memo = self[index];
index += i;
break;
}
index += i;
if (isRight ? index < 0 : length <= index) {
throw TypeError('Reduce of empty array with no initial value');
}
}
for (;isRight ? index >= 0 : length > index; index += i) if (index in self) {
memo = callbackfn(memo, self[index], index, O);
}
return memo;
};
_export(_export.P + _export.F * !_strictMethod([].reduce, true), 'Array', {
// 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
reduce: function reduce(callbackfn /* , initialValue */) {
return _arrayReduce(this, callbackfn, arguments.length, arguments[1], false);
}
});
// 21.2.5.3 get RegExp.prototype.flags
var _flags = function () {
var that = _anObject(this);
var result = '';
if (that.global) result += 'g';
if (that.ignoreCase) result += 'i';
if (that.multiline) result += 'm';
if (that.unicode) result += 'u';
if (that.sticky) result += 'y';
return result;
};
// 21.2.5.3 get RegExp.prototype.flags()
if (_descriptors && /./g.flags != 'g') _objectDp.f(RegExp.prototype, 'flags', {
configurable: true,
get: _flags
});
var TO_STRING = 'toString';
var $toString = /./[TO_STRING];
var define = function (fn) {
_redefine(RegExp.prototype, TO_STRING, fn, true);
};
// 21.2.5.14 RegExp.prototype.toString()
if (_fails(function () { return $toString.call({ source: 'a', flags: 'b' }) != '/a/b'; })) {
define(function toString() {
var R = _anObject(this);
return '/'.concat(R.source, '/',
'flags' in R ? R.flags : !_descriptors && R instanceof RegExp ? _flags.call(R) : undefined);
});
// FF44- RegExp#toString has a wrong name
} else if ($toString.name != TO_STRING) {
define(function toString() {
return $toString.call(this);
});
}
var DateProto = Date.prototype;
var INVALID_DATE = 'Invalid Date';
var TO_STRING$1 = 'toString';
var $toString$1 = DateProto[TO_STRING$1];
var getTime = DateProto.getTime;
if (new Date(NaN) + '' != INVALID_DATE) {
_redefine(DateProto, TO_STRING$1, function toString() {
var value = getTime.call(this);
// eslint-disable-next-line no-self-compare
return value === value ? $toString$1.call(this) : INVALID_DATE;
});
}
// 19.1.3.6 Object.prototype.toString()
var test = {};
test[_wks('toStringTag')] = 'z';
if (test + '' != '[object z]') {
_redefine(Object.prototype, 'toString', function toString() {
return '[object ' + _classof(this) + ']';
}, true);
}
var $filter = _arrayMethods(2);
_export(_export.P + _export.F * !_strictMethod([].filter, true), 'Array', {
// 22.1.3.7 / 15.4.4.20 Array.prototype.filter(callbackfn [, thisArg])
filter: function filter(callbackfn /* , thisArg */) {
return $filter(this, callbackfn, arguments[1]);
}
});
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.filterNull = filterNull;
exports["default"] = void 0;
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { 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; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
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;
var parse = JSON.parse,
stringify = JSON.stringify;
if (!recursion) return parse(stringify(object));
var clonedObj = object instanceof Array ? [] : {};
if (object && _typeof(object) === 'object') {
for (var key in object) {
if (object.hasOwnProperty(key)) {
if (object[key] && _typeof(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 = _slicedToArray(_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 = _slicedToArray(_ref3, 2),
xa = _ref5[0],
ya = _ref5[1];
var _ref6 = _slicedToArray(_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 = _slicedToArray(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 = _slicedToArray(_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 = _slicedToArray(point, 2),
x = _point2[0],
y = _point2[1];
var _getCircleRadianPoint = getCircleRadianPoint(rx, ry, r, startAngle),
_getCircleRadianPoint2 = _slicedToArray(_getCircleRadianPoint, 2),
bx = _getCircleRadianPoint2[0],
by = _getCircleRadianPoint2[1];
var _getCircleRadianPoint3 = getCircleRadianPoint(rx, ry, r, endAngle),
_getCircleRadianPoint4 = _slicedToArray(_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 = _slicedToArray(_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 = _slicedToArray(vArm, 2),
ax = _vArm[0],
ay = _vArm[1];
var _vPoint = _slicedToArray(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 = _slicedToArray(_ref8, 2),
x = _ref9[0],
y = _ref9[1];
return [x, y - halfLineWidth];
});
var moveDownPolyline = polyline.map(function (_ref10) {
var _ref11 = _slicedToArray(_ref10, 2),
x = _ref11[0],
y = _ref11[1];
return [x, y + halfLineWidth];
});
var polygon = [].concat(_toConsumableArray(moveUpPolyline), _toConsumableArray(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 = _slicedToArray(_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 = _slicedToArray(point, 2),
x = _point3[0],
y = _point3[1];
var _origin = _slicedToArray(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 = _slicedToArray(point, 2),
x = _point4[0],
y = _point4[1];
var _origin2 = _slicedToArray(origin, 2),
ox = _origin2[0],
oy = _origin2[1];
var _scale = _slicedToArray(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 = _slicedToArray(point, 2),
x = _point5[0],
y = _point5[1];
var _translate = _slicedToArray(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 = _slicedToArray(point, 2),
x = _point6[0],
y = _point6[1];
var _lineBegin = _slicedToArray(lineBegin, 2),
x1 = _lineBegin[0],
y1 = _lineBegin[1];
var _lineEnd = _slicedToArray(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);
});
}
/**
* @description Filter array nulls (''|false|null|undefined)
* @param {Array} arr The array to be filtered
* @return {Array} Filtered array
*/
function filterNull(arr) {
return arr.filter(function (v) {
return v || v === 0;
});
}
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_15 = util.filterNull;
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;
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
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] && target[key].toString() === "[object 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 _toConsumableArray(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, _toConsumableArray(begin).concat(_toConsumableArray(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, _toConsumableArray(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$g = {
name: 'DvDecoration5',
mixins: [autoResize],
data() {
return {
ref: 'decoration-5',
line1Points: '',
line2Points: '',
line1Length: 0,
line2Length: 0
};
},
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();
}
}
};
/* 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-5" }, [
_c("svg", { attrs: { width: _vm.width, height: _vm.height } }, [
_c(
"polyline",
{
attrs: {
fill: "transparent",
stroke: "#3f96a5",
"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: "#3f96a5",
"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__$g = [];
__vue_render__$g._withStripped = true;
/* style */
const __vue_inject_styles__$g = function (inject) {
if (!inject) return
inject("data-v-77cc82b8_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__$g = undefined;
/* module identifier */
const __vue_module_identifier__$g = undefined;
/* functional template */
const __vue_is_functional_template__$g = false;
/* style inject SSR */
var Decoration5 = 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 decoration5 (Vue) {
Vue.component(Decoration5.name, Decoration5);
}
//
var script$h = {
name: 'DvDecoration6',
mixins: [autoResize],
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: []
};
},
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();
}
}
};
/* 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-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: "#7acaec",
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__$h = [];
__vue_render__$h._withStripped = true;
/* style */
const __vue_inject_styles__$h = function (inject) {
if (!inject) return
inject("data-v-0c456aa4_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__$h = undefined;
/* module identifier */
const __vue_module_identifier__$h = undefined;
/* functional template */
const __vue_is_functional_template__$h = false;
/* style inject SSR */
var Decoration6 = 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 decoration6 (Vue) {
Vue.component(Decoration6.name, Decoration6);
}
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var script$i = {
name: 'DvDecoration7'
};
/* 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",
{ staticClass: "dv-decoration-7" },
[
_c("svg", { attrs: { width: "21px", height: "20px" } }, [
_c("polyline", {
attrs: {
"stroke-width": "4",
fill: "transparent",
stroke: "#1dc1f5",
points: "10, 0 19, 10 10, 20"
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
"stroke-width": "2",
fill: "transparent",
stroke: "#1dc1f5",
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: "#1dc1f5",
points: "11, 0 2, 10 11, 20"
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
"stroke-width": "2",
fill: "transparent",
stroke: "#1dc1f5",
points: "19, 0 10, 10 19, 20"
}
})
])
],
2
)
};
var __vue_staticRenderFns__$i = [];
__vue_render__$i._withStripped = true;
/* style */
const __vue_inject_styles__$i = function (inject) {
if (!inject) return
inject("data-v-284b76c6_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__$i = undefined;
/* module identifier */
const __vue_module_identifier__$i = undefined;
/* functional template */
const __vue_is_functional_template__$i = false;
/* style inject SSR */
var Decoration7 = 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 decoration7 (Vue) {
Vue.component(Decoration7.name, Decoration7);
}
//
var script$j = {
name: 'DvDecoration8',
mixins: [autoResize],
props: {
reverse: {
type: Boolean,
default: false
}
},
data() {
return {
ref: 'decoration-8'
};
},
methods: {
xPos(pos) {
const {
reverse,
width
} = this;
if (!reverse) return pos;
return width - pos;
}
}
};
/* 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-8" }, [
_c("svg", { attrs: { width: _vm.width, height: _vm.height } }, [
_c("polyline", {
attrs: {
stroke: "#3f96a5",
"stroke-width": "2",
fill: "transparent",
points: _vm.xPos(0) + ", 0 " + _vm.xPos(30) + ", " + _vm.height / 2
}
}),
_vm._v(" "),
_c("polyline", {
attrs: {
stroke: "#3f96a5",
"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: "#3f96a5",
fill: "transparent",
"stroke-width": "3",
points:
_vm.xPos(0) +
", " +
(_vm.height - 3) +
", " +
_vm.xPos(200) +
", " +
(_vm.height - 3)
}
})
])
])
};
var __vue_staticRenderFns__$j = [];
__vue_render__$j._withStripped = true;
/* style */
const __vue_inject_styles__$j = function (inject) {
if (!inject) return
inject("data-v-75375dbc_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__$j = undefined;
/* module identifier */
const __vue_module_identifier__$j = undefined;
/* functional template */
const __vue_is_functional_template__$j = false;
/* style inject SSR */
var Decoration8 = 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 decoration8 (Vue) {
Vue.component(Decoration8.name, Decoration8);
}
//
var script$k = {
name: 'DvDecoration9',
mixins: [autoResize],
data() {
return {
ref: 'decoration-9',
polygonId: `decoration-9-polygon-${new Date().getTime()}`,
svgWH: [100, 100],
svgScale: [1, 1]
};
},
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();
}
}
};
/* 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-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: "rgba(3, 166, 224, 0.5)",
"stroke-width": "10",
"stroke-dasharray": "80, 100, 30, 100"
}
},
[
_c("animateTransform", {
attrs: {
attributeName: "transform",
type: "rotate",
values: "0 50 50;360 50 50",
dur: "3s",
repeatCount: "indefinite"
}
})
],
1
),
_vm._v(" "),
_c(
"circle",
{
attrs: {
cx: "50",
cy: "50",
r: "45",
fill: "transparent",
stroke: "rgba(3, 166, 224, 0.8)",
"stroke-width": "6",
"stroke-dasharray": "50, 66, 100, 66"
}
},
[
_c("animateTransform", {
attrs: {
attributeName: "transform",
type: "rotate",
values: "0 50 50;-360 50 50",
dur: "3s",
repeatCount: "indefinite"
}
})
],
1
),
_vm._v(" "),
_c("circle", {
attrs: {
cx: "50",
cy: "50",
r: "38",
fill: "transparent",
stroke: "rgba(3, 166, 224, 0.2)",
"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: "rgba(3, 166, 224, 0.6)",
fill:
Math.random() > 0.4
? "transparent"
: "rgba(3, 166, 224, 0.8)"
}
},
[
_c("animateTransform", {
attrs: {
attributeName: "transform",
type: "rotate",
values: "0 50 50;360 50 50",
dur: "3s",
begin: i * 0.15 + "s",
repeatCount: "indefinite"
}
})
],
1
)
}),
_vm._v(" "),
_c("circle", {
attrs: {
cx: "50",
cy: "50",
r: "26",
fill: "transparent",
stroke: "rgba(3, 166, 224, 0.2)",
"stroke-width": "1",
"stroke-dasharray": "5, 1"
}
})
],
2
),
_vm._v(" "),
_vm._t("default")
],
2
)
};
var __vue_staticRenderFns__$k = [];
__vue_render__$k._withStripped = true;
/* style */
const __vue_inject_styles__$k = function (inject) {
if (!inject) return
inject("data-v-fd6bf3c2_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__$k = undefined;
/* module identifier */
const __vue_module_identifier__$k = undefined;
/* functional template */
const __vue_is_functional_template__$k = false;
/* style inject SSR */
var Decoration9 = 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 decoration9 (Vue) {
Vue.component(Decoration9.name, Decoration9);
}
//
var script$l = {
name: 'DvDecoration10',
mixins: [autoResize],
data() {
return {
ref: 'decoration-10',
animationId1: `d10ani1${new Date().getTime()}`,
animationId2: `d10ani2${new Date().getTime()}`,
animationId3: `d10ani3${new Date().getTime()}`,
animationId4: `d10ani4${new Date().getTime()}`,
animationId5: `d10ani5${new Date().getTime()}`,
animationId6: `d10ani6${new Date().getTime()}`,
animationId7: `d10ani7${new Date().getTime()}`
};
}
};
/* 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", { ref: _vm.ref, staticClass: "dv-decoration-10" }, [
_c("svg", { attrs: { width: _vm.width, height: _vm.height } }, [
_c("polyline", {
attrs: {
stroke: "rgba(0, 194, 255, 0.3)",
"stroke-width": "2",
points:
"0, " + _vm.height / 2 + " " + _vm.width + ", " + _vm.height / 2
}
}),
_vm._v(" "),
_c(
"polyline",
{
attrs: {
stroke: "rgba(0, 194, 255, 1)",
"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: "rgba(0, 194, 255, 1)",
"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: "rgba(0, 194, 255, 1)",
"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: "#03709f" } },
[
_c("animate", {
attrs: {
id: _vm.animationId1,
attributeName: "fill",
values: "#03709f;#00c2ff",
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: "#03709f"
}
},
[
_c("animate", {
attrs: {
id: _vm.animationId3,
attributeName: "fill",
values: "#03709f;#00c2ff",
begin: _vm.animationId2 + ".end",
dur: "0.3s",
fill: "freeze"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "fill",
values: "#03709f;#03709f",
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: "#03709f"
}
},
[
_c("animate", {
attrs: {
id: _vm.animationId5,
attributeName: "fill",
values: "#03709f;#00c2ff",
begin: _vm.animationId4 + ".end",
dur: "0.3s",
fill: "freeze"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "fill",
values: "#03709f;#03709f",
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: "#03709f"
}
},
[
_c("animate", {
attrs: {
id: _vm.animationId7,
attributeName: "fill",
values: "#03709f;#00c2ff",
begin: _vm.animationId6 + ".end",
dur: "0.3s",
fill: "freeze"
}
}),
_vm._v(" "),
_c("animate", {
attrs: {
attributeName: "fill",
values: "#03709f;#03709f",
dur: "0.01s",
begin: _vm.animationId7 + ".end",
fill: "freeze"
}
})
]
)
])
])
};
var __vue_staticRenderFns__$l = [];
__vue_render__$l._withStripped = true;
/* style */
const __vue_inject_styles__$l = function (inject) {
if (!inject) return
inject("data-v-223a3e5b_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__$l = undefined;
/* module identifier */
const __vue_module_identifier__$l = undefined;
/* functional template */
const __vue_is_functional_template__$l = false;
/* style inject SSR */
var Decoration10 = 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 decoration10 (Vue) {
Vue.component(Decoration10.name, Decoration10);
}
// 19.1.2.1 Object.assign(target, source, ...)
var $assign = Object.assign;
// should work with symbols and should have deterministic property order (V8 bug)
var _objectAssign = !$assign || _fails(function () {
var A = {};
var B = {};
// eslint-disable-next-line no-undef
var S = Symbol();
var K = 'abcdefghijklmnopqrst';
A[S] = 7;
K.split('').forEach(function (k) { B[k] = k; });
return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
var T = _toObject(target);
var aLen = arguments.length;
var index = 1;
var getSymbols = _objectGops.f;
var isEnum = _objectPie.f;
while (aLen > index) {
var S = _iobject(arguments[index++]);
var keys = getSymbols ? _objectKeys(S).concat(getSymbols(S)) : _objectKeys(S);
var length = keys.length;
var j = 0;
var key;
while (length > j) {
key = keys[j++];
if (!_descriptors || isEnum.call(S, key)) T[key] = S[key];
}
} return T;
} : $assign;
// 19.1.3.1 Object.assign(target, source)
_export(_export.S + _export.F, 'Object', { assign: _objectAssign });
// 7.2.8 IsRegExp(argument)
var MATCH = _wks('match');
var _isRegexp = function (it) {
var isRegExp;
return _isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : _cof(it) == 'RegExp');
};
// 7.3.20 SpeciesConstructor(O, defaultConstructor)
var SPECIES$1 = _wks('species');
var _speciesConstructor = function (O, D) {
var C = _anObject(O).constructor;
var S;
return C === undefined || (S = _anObject(C)[SPECIES$1]) == undefined ? D : _aFunction(S);
};
var at = _stringAt(true);
// `AdvanceStringIndex` abstract operation
// https://tc39.github.io/ecma262/#sec-advancestringindex
var _advanceStringIndex = function (S, index, unicode) {
return index + (unicode ? at(S, index).length : 1);
};
var builtinExec = RegExp.prototype.exec;
// `RegExpExec` abstract operation
// https://tc39.github.io/ecma262/#sec-regexpexec
var _regexpExecAbstract = function (R, S) {
var exec = R.exec;
if (typeof exec === 'function') {
var result = exec.call(R, S);
if (typeof result !== 'object') {
throw new TypeError('RegExp exec method returned something other than an Object or null');
}
return result;
}
if (_classof(R) !== 'RegExp') {
throw new TypeError('RegExp#exec called on incompatible receiver');
}
return builtinExec.call(R, S);
};
var nativeExec = RegExp.prototype.exec;
// This always refers to the native implementation, because the
// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,
// which loads this file before patching the method.
var nativeReplace = String.prototype.replace;
var patchedExec = nativeExec;
var LAST_INDEX = 'lastIndex';
var UPDATES_LAST_INDEX_WRONG = (function () {
var re1 = /a/,
re2 = /b*/g;
nativeExec.call(re1, 'a');
nativeExec.call(re2, 'a');
return re1[LAST_INDEX] !== 0 || re2[LAST_INDEX] !== 0;
})();
// nonparticipating capturing group, copied from es5-shim's String#split patch.
var NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;
var PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED;
if (PATCH) {
patchedExec = function exec(str) {
var re = this;
var lastIndex, reCopy, match, i;
if (NPCG_INCLUDED) {
reCopy = new RegExp('^' + re.source + '$(?!\\s)', _flags.call(re));
}
if (UPDATES_LAST_INDEX_WRONG) lastIndex = re[LAST_INDEX];
match = nativeExec.call(re, str);
if (UPDATES_LAST_INDEX_WRONG && match) {
re[LAST_INDEX] = re.global ? match.index + match[0].length : lastIndex;
}
if (NPCG_INCLUDED && match && match.length > 1) {
// Fix browsers whose `exec` methods don't consistently return `undefined`
// for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/
// eslint-disable-next-line no-loop-func
nativeReplace.call(match[0], reCopy, function () {
for (i = 1; i < arguments.length - 2; i++) {
if (arguments[i] === undefined) match[i] = undefined;
}
});
}
return match;
};
}
var _regexpExec = patchedExec;
_export({
target: 'RegExp',
proto: true,
forced: _regexpExec !== /./.exec
}, {
exec: _regexpExec
});
var SPECIES$2 = _wks('species');
var REPLACE_SUPPORTS_NAMED_GROUPS = !_fails(function () {
// #replace needs built-in support for named groups.
// #match works fine because it just return the exec results, even if it has
// a "grops" property.
var re = /./;
re.exec = function () {
var result = [];
result.groups = { a: '7' };
return result;
};
return ''.replace(re, '$<a>') !== '7';
});
var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () {
// Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec
var re = /(?:)/;
var originalExec = re.exec;
re.exec = function () { return originalExec.apply(this, arguments); };
var result = 'ab'.split(re);
return result.length === 2 && result[0] === 'a' && result[1] === 'b';
})();
var _fixReWks = function (KEY, length, exec) {
var SYMBOL = _wks(KEY);
var DELEGATES_TO_SYMBOL = !_fails(function () {
// String methods call symbol-named RegEp methods
var O = {};
O[SYMBOL] = function () { return 7; };
return ''[KEY](O) != 7;
});
var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !_fails(function () {
// Symbol-named RegExp methods call .exec
var execCalled = false;
var re = /a/;
re.exec = function () { execCalled = true; return null; };
if (KEY === 'split') {
// RegExp[@@split] doesn't call the regex's exec method, but first creates
// a new one. We need to return the patched regex when creating the new one.
re.constructor = {};
re.constructor[SPECIES$2] = function () { return re; };
}
re[SYMBOL]('');
return !execCalled;
}) : undefined;
if (
!DELEGATES_TO_SYMBOL ||
!DELEGATES_TO_EXEC ||
(KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) ||
(KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)
) {
var nativeRegExpMethod = /./[SYMBOL];
var fns = exec(
_defined,
SYMBOL,
''[KEY],
function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) {
if (regexp.exec === _regexpExec) {
if (DELEGATES_TO_SYMBOL && !forceStringMethod) {
// The native String method already delegates to @@method (this
// polyfilled function), leasing to infinite recursion.
// We avoid it by directly calling the native @@method method.
return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };
}
return { done: true, value: nativeMethod.call(str, regexp, arg2) };
}
return { done: false };
}
);
var strfn = fns[0];
var rxfn = fns[1];
_redefine(String.prototype, KEY, strfn);
_hide(RegExp.prototype, SYMBOL, length == 2
// 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
// 21.2.5.11 RegExp.prototype[@@split](string, limit)
? function (string, arg) { return rxfn.call(string, this, arg); }
// 21.2.5.6 RegExp.prototype[@@match](string)
// 21.2.5.9 RegExp.prototype[@@search](string)
: function (string) { return rxfn.call(string, this); }
);
}
};
var $min = Math.min;
var $push = [].push;
var $SPLIT = 'split';
var LENGTH = 'length';
var LAST_INDEX$1 = 'lastIndex';
var MAX_UINT32 = 0xffffffff;
// babel-minify transpiles RegExp('x', 'y') -> /x/y and it causes SyntaxError
var SUPPORTS_Y = !_fails(function () { RegExp(MAX_UINT32, 'y'); });
// @@split logic
_fixReWks('split', 2, function (defined, SPLIT, $split, maybeCallNative) {
var internalSplit;
if (
'abbc'[$SPLIT](/(b)*/)[1] == 'c' ||
'test'[$SPLIT](/(?:)/, -1)[LENGTH] != 4 ||
'ab'[$SPLIT](/(?:ab)*/)[LENGTH] != 2 ||
'.'[$SPLIT](/(.?)(.?)/)[LENGTH] != 4 ||
'.'[$SPLIT](/()()/)[LENGTH] > 1 ||
''[$SPLIT](/.?/)[LENGTH]
) {
// based on es5-shim implementation, need to rework it
internalSplit = function (separator, limit) {
var string = String(this);
if (separator === undefined && limit === 0) return [];
// If `separator` is not a regex, use native split
if (!_isRegexp(separator)) return $split.call(string, separator, limit);
var output = [];
var flags = (separator.ignoreCase ? 'i' : '') +
(separator.multiline ? 'm' : '') +
(separator.unicode ? 'u' : '') +
(separator.sticky ? 'y' : '');
var lastLastIndex = 0;
var splitLimit = limit === undefined ? MAX_UINT32 : limit >>> 0;
// Make `global` and avoid `lastIndex` issues by working with a copy
var separatorCopy = new RegExp(separator.source, flags + 'g');
var match, lastIndex, lastLength;
while (match = _regexpExec.call(separatorCopy, string)) {
lastIndex = separatorCopy[LAST_INDEX$1];
if (lastIndex > lastLastIndex) {
output.push(string.slice(lastLastIndex, match.index));
if (match[LENGTH] > 1 && match.index < string[LENGTH]) $push.apply(output, match.slice(1));
lastLength = match[0][LENGTH];
lastLastIndex = lastIndex;
if (output[LENGTH] >= splitLimit) break;
}
if (separatorCopy[LAST_INDEX$1] === match.index) separatorCopy[LAST_INDEX$1]++; // Avoid an infinite loop
}
if (lastLastIndex === string[LENGTH]) {
if (lastLength || !separatorCopy.test('')) output.push('');
} else output.push(string.slice(lastLastIndex));
return output[LENGTH] > splitLimit ? output.slice(0, splitLimit) : output;
};
// Chakra, V8
} else if ('0'[$SPLIT](undefined, 0)[LENGTH]) {
internalSplit = function (separator, limit) {
return separator === undefined && limit === 0 ? [] : $split.call(this, separator, limit);
};
} else {
internalSplit = $split;
}
return [
// `String.prototype.split` method
// https://tc39.github.io/ecma262/#sec-string.prototype.split
function split(separator, limit) {
var O = defined(this);
var splitter = separator == undefined ? undefined : separator[SPLIT];
return splitter !== undefined
? splitter.call(separator, O, limit)
: internalSplit.call(String(O), separator, limit);
},
// `RegExp.prototype[@@split]` method
// https://tc39.github.io/ecma262/#sec-regexp.prototype-@@split
//
// NOTE: This cannot be properly polyfilled in engines that don't support
// the 'y' flag.
function (regexp, limit) {
var res = maybeCallNative(internalSplit, regexp, this, limit, internalSplit !== $split);
if (res.done) return res.value;
var rx = _anObject(regexp);
var S = String(this);
var C = _speciesConstructor(rx, RegExp);
var unicodeMatching = rx.unicode;
var flags = (rx.ignoreCase ? 'i' : '') +
(rx.multiline ? 'm' : '') +
(rx.unicode ? 'u' : '') +
(SUPPORTS_Y ? 'y' : 'g');
// ^(? + rx + ) is needed, in combination with some S slicing, to
// simulate the 'y' flag.
var splitter = new C(SUPPORTS_Y ? rx : '^(?:' + rx.source + ')', flags);
var lim = limit === undefined ? MAX_UINT32 : limit >>> 0;
if (lim === 0) return [];
if (S.length === 0) return _regexpExecAbstract(splitter, S) === null ? [S] : [];
var p = 0;
var q = 0;
var A = [];
while (q < S.length) {
splitter.lastIndex = SUPPORTS_Y ? q : 0;
var z = _regexpExecAbstract(splitter, SUPPORTS_Y ? S : S.slice(q));
var e;
if (
z === null ||
(e = $min(_toLength(splitter.lastIndex + (SUPPORTS_Y ? 0 : q)), S.length)) === p
) {
q = _advanceStringIndex(S, q, unicodeMatching);
} else {
A.push(S.slice(p, q));
if (A.length === lim) return A;
for (var i = 1; i <= z.length - 1; i++) {
A.push(z[i]);
if (A.length === lim) return A;
}
q = p = e;
}
}
A.push(S.slice(p));
return A;
}
];
});
// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
var $find$1 = _arrayMethods(5);
var KEY$1 = 'find';
var forced$1 = true;
// Shouldn't skip holes
if (KEY$1 in []) Array(1)[KEY$1](function () { forced$1 = false; });
_export(_export.P + _export.F * forced$1, 'Array', {
find: function find(callbackfn /* , that = undefined */) {
return $find$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
_addToUnscopables(KEY$1);
// most Object methods by ES6 should accept primitives
var _objectSap = function (KEY, exec) {
var fn = (_core.Object || {})[KEY] || Object[KEY];
var exp = {};
exp[KEY] = exec(fn);
_export(_export.S + _export.F * _fails(function () { fn(1); }), 'Object', exp);
};
// 19.1.2.14 Object.keys(O)
_objectSap('keys', function () {
return function keys(it) {
return _objectKeys(_toObject(it));
};
});
// 20.3.3.1 / 15.9.4.4 Date.now()
_export(_export.S, 'Date', { now: function () { return new Date().getTime(); } });
var _anInstance = function (it, Constructor, name, forbiddenField) {
if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
throw TypeError(name + ': incorrect invocation!');
} return it;
};
var _forOf = createCommonjsModule(function (module) {
var BREAK = {};
var RETURN = {};
var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
var iterFn = ITERATOR ? function () { return iterable; } : core_getIteratorMethod(iterable);
var f = _ctx(fn, that, entries ? 2 : 1);
var index = 0;
var length, step, iterator, result;
if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
// fast case for arrays with default iterator
if (_isArrayIter(iterFn)) for (length = _toLength(iterable.length); length > index; index++) {
result = entries ? f(_anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
if (result === BREAK || result === RETURN) return result;
} else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
result = _iterCall(iterator, f, step.value, entries);
if (result === BREAK || result === RETURN) return result;
}
};
exports.BREAK = BREAK;
exports.RETURN = RETURN;
});
// fast apply, http://jsperf.lnkit.com/fast-apply/5
var _invoke = function (fn, args, that) {
var un = that === undefined;
switch (args.length) {
case 0: return un ? fn()
: fn.call(that);
case 1: return un ? fn(args[0])
: fn.call(that, args[0]);
case 2: return un ? fn(args[0], args[1])
: fn.call(that, args[0], args[1]);
case 3: return un ? fn(args[0], args[1], args[2])
: fn.call(that, args[0], args[1], args[2]);
case 4: return un ? fn(args[0], args[1], args[2], args[3])
: fn.call(that, args[0], args[1], args[2], args[3]);
} return fn.apply(that, args);
};
var process = _global.process;
var setTask = _global.setImmediate;
var clearTask = _global.clearImmediate;
var MessageChannel = _global.MessageChannel;
var Dispatch = _global.Dispatch;
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
var defer, channel, port;
var run = function () {
var id = +this;
// eslint-disable-next-line no-prototype-builtins
if (queue.hasOwnProperty(id)) {
var fn = queue[id];
delete queue[id];
fn();
}
};
var listener = function (event) {
run.call(event.data);
};
// Node.js 0.9+ & IE10+ has setImmediate, otherwise:
if (!setTask || !clearTask) {
setTask = function setImmediate(fn) {
var args = [];
var i = 1;
while (arguments.length > i) args.push(arguments[i++]);
queue[++counter] = function () {
// eslint-disable-next-line no-new-func
_invoke(typeof fn == 'function' ? fn : Function(fn), args);
};
defer(counter);
return counter;
};
clearTask = function clearImmediate(id) {
delete queue[id];
};
// Node.js 0.8-
if (_cof(process) == 'process') {
defer = function (id) {
process.nextTick(_ctx(run, id, 1));
};
// Sphere (JS game engine) Dispatch API
} else if (Dispatch && Dispatch.now) {
defer = function (id) {
Dispatch.now(_ctx(run, id, 1));
};
// Browsers with MessageChannel, includes WebWorkers
} else if (MessageChannel) {
channel = new MessageChannel();
port = channel.port2;
channel.port1.onmessage = listener;
defer = _ctx(port.postMessage, port, 1);
// Browsers with postMessage, skip WebWorkers
// IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
} else if (_global.addEventListener && typeof postMessage == 'function' && !_global.importScripts) {
defer = function (id) {
_global.postMessage(id + '', '*');
};
_global.addEventListener('message', listener, false);
// IE8-
} else if (ONREADYSTATECHANGE in _domCreate('script')) {
defer = function (id) {
_html.appendChild(_domCreate('script'))[ONREADYSTATECHANGE] = function () {
_html.removeChild(this);
run.call(id);
};
};
// Rest old browsers
} else {
defer = function (id) {
setTimeout(_ctx(run, id, 1), 0);
};
}
}
var _task = {
set: setTask,
clear: clearTask
};
var macrotask = _task.set;
var Observer = _global.MutationObserver || _global.WebKitMutationObserver;
var process$1 = _global.process;
var Promise$1 = _global.Promise;
var isNode = _cof(process$1) == 'process';
var _microtask = function () {
var head, last, notify;
var flush = function () {
var parent, fn;
if (isNode && (parent = process$1.domain)) parent.exit();
while (head) {
fn = head.fn;
head = head.next;
try {
fn();
} catch (e) {
if (head) notify();
else last = undefined;
throw e;
}
} last = undefined;
if (parent) parent.enter();
};
// Node.js
if (isNode) {
notify = function () {
process$1.nextTick(flush);
};
// browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
} else if (Observer && !(_global.navigator && _global.navigator.standalone)) {
var toggle = true;
var node = document.createTextNode('');
new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
notify = function () {
node.data = toggle = !toggle;
};
// environments with maybe non-completely correct, but existent Promise
} else if (Promise$1 && Promise$1.resolve) {
// Promise.resolve without an argument throws an error in LG WebOS 2
var promise = Promise$1.resolve(undefined);
notify = function () {
promise.then(flush);
};
// for other environments - macrotask based on:
// - setImmediate
// - MessageChannel
// - window.postMessag
// - onreadystatechange
// - setTimeout
} else {
notify = function () {
// strange IE + webpack dev server bug - use .call(global)
macrotask.call(_global, flush);
};
}
return function (fn) {
var task = { fn: fn, next: undefined };
if (last) last.next = task;
if (!head) {
head = task;
notify();
} last = task;
};
};
// 25.4.1.5 NewPromiseCapability(C)
function PromiseCapability(C) {
var resolve, reject;
this.promise = new C(function ($$resolve, $$reject) {
if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
resolve = $$resolve;
reject = $$reject;
});
this.resolve = _aFunction(resolve);
this.reject = _aFunction(reject);
}
var f$7 = function (C) {
return new PromiseCapability(C);
};
var _newPromiseCapability = {
f: f$7
};
var _perform = function (exec) {
try {
return { e: false, v: exec() };
} catch (e) {
return { e: true, v: e };
}
};
var navigator$1 = _global.navigator;
var _userAgent = navigator$1 && navigator$1.userAgent || '';
var _promiseResolve = function (C, x) {
_anObject(C);
if (_isObject(x) && x.constructor === C) return x;
var promiseCapability = _newPromiseCapability.f(C);
var resolve = promiseCapability.resolve;
resolve(x);
return promiseCapability.promise;
};
var _redefineAll = function (target, src, safe) {
for (var key in src) _redefine(target, key, src[key], safe);
return target;
};
var SPECIES$3 = _wks('species');
var _setSpecies = function (KEY) {
var C = _global[KEY];
if (_descriptors && C && !C[SPECIES$3]) _objectDp.f(C, SPECIES$3, {
configurable: true,
get: function () { return this; }
});
};
var task = _task.set;
var microtask = _microtask();
var PROMISE = 'Promise';
var TypeError$1 = _global.TypeError;
var process$2 = _global.process;
var versions = process$2 && process$2.versions;
var v8 = versions && versions.v8 || '';
var $Promise = _global[PROMISE];
var isNode$1 = _classof(process$2) == 'process';
var empty = function () { /* empty */ };
var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
var newPromiseCapability = newGenericPromiseCapability = _newPromiseCapability.f;
var USE_NATIVE$1 = !!function () {
try {
// correct subclassing with @@species support
var promise = $Promise.resolve(1);
var FakePromise = (promise.constructor = {})[_wks('species')] = function (exec) {
exec(empty, empty);
};
// unhandled rejections tracking support, NodeJS Promise without it fails @@species test
return (isNode$1 || typeof PromiseRejectionEvent == 'function')
&& promise.then(empty) instanceof FakePromise
// v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables
// https://bugs.chromium.org/p/chromium/issues/detail?id=830565
// we can't detect it synchronously, so just check versions
&& v8.indexOf('6.6') !== 0
&& _userAgent.indexOf('Chrome/66') === -1;
} catch (e) { /* empty */ }
}();
// helpers
var isThenable = function (it) {
var then;
return _isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
var notify = function (promise, isReject) {
if (promise._n) return;
promise._n = true;
var chain = promise._c;
microtask(function () {
var value = promise._v;
var ok = promise._s == 1;
var i = 0;
var run = function (reaction) {
var handler = ok ? reaction.ok : reaction.fail;
var resolve = reaction.resolve;
var reject = reaction.reject;
var domain = reaction.domain;
var result, then, exited;
try {
if (handler) {
if (!ok) {
if (promise._h == 2) onHandleUnhandled(promise);
promise._h = 1;
}
if (handler === true) result = value;
else {
if (domain) domain.enter();
result = handler(value); // may throw
if (domain) {
domain.exit();
exited = true;
}
}
if (result === reaction.promise) {
reject(TypeError$1('Promise-chain cycle'));
} else if (then = isThenable(result)) {
then.call(result, resolve, reject);
} else resolve(result);
} else reject(value);
} catch (e) {
if (domain && !exited) domain.exit();
reject(e);
}
};
while (chain.length > i) run(chain[i++]); // variable length - can't use forEach
promise._c = [];
promise._n = false;
if (isReject && !promise._h) onUnhandled(promise);
});
};
var onUnhandled = function (promise) {
task.call(_global, function () {
var value = promise._v;
var unhandled = isUnhandled(promise);
var result, handler, console;
if (unhandled) {
result = _perform(function () {
if (isNode$1) {
process$2.emit('unhandledRejection', value, promise);
} else if (handler = _global.onunhandledrejection) {
handler({ promise: promise, reason: value });
} else if ((console = _global.console) && console.error) {
console.error('Unhandled promise rejection', value);
}
});
// Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should
promise._h = isNode$1 || isUnhandled(promise) ? 2 : 1;
} promise._a = undefined;
if (unhandled && result.e) throw result.v;
});
};
var isUnhandled = function (promise) {
return promise._h !== 1 && (promise._a || promise._c).length === 0;
};
var onHandleUnhandled = function (promise) {
task.call(_global, function () {
var handler;
if (isNode$1) {
process$2.emit('rejectionHandled', promise);
} else if (handler = _global.onrejectionhandled) {
handler({ promise: promise, reason: promise._v });
}
});
};
var $reject = function (value) {
var promise = this;
if (promise._d) return;
promise._d = true;
promise = promise._w || promise; // unwrap
promise._v = value;
promise._s = 2;
if (!promise._a) promise._a = promise._c.slice();
notify(promise, true);
};
var $resolve = function (value) {
var promise = this;
var then;
if (promise._d) return;
promise._d = true;
promise = promise._w || promise; // unwrap
try {
if (promise === value) throw TypeError$1("Promise can't be resolved itself");
if (then = isThenable(value)) {
microtask(function () {
var wrapper = { _w: promise, _d: false }; // wrap
try {
then.call(value, _ctx($resolve, wrapper, 1), _ctx($reject, wrapper, 1));
} catch (e) {
$reject.call(wrapper, e);
}
});
} else {
promise._v = value;
promise._s = 1;
notify(promise, false);
}
} catch (e) {
$reject.call({ _w: promise, _d: false }, e); // wrap
}
};
// constructor polyfill
if (!USE_NATIVE$1) {
// 25.4.3.1 Promise(executor)
$Promise = function Promise(executor) {
_anInstance(this, $Promise, PROMISE, '_h');
_aFunction(executor);
Internal.call(this);
try {
executor(_ctx($resolve, this, 1), _ctx($reject, this, 1));
} catch (err) {
$reject.call(this, err);
}
};
// eslint-disable-next-line no-unused-vars
Internal = function Promise(executor) {
this._c = []; // <- awaiting reactions
this._a = undefined; // <- checked in isUnhandled reactions
this._s = 0; // <- state
this._d = false; // <- done
this._v = undefined; // <- value
this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
this._n = false; // <- notify
};
Internal.prototype = _redefineAll($Promise.prototype, {
// 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
then: function then(onFulfilled, onRejected) {
var reaction = newPromiseCapability(_speciesConstructor(this, $Promise));
reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
reaction.fail = typeof onRejected == 'function' && onRejected;
reaction.domain = isNode$1 ? process$2.domain : undefined;
this._c.push(reaction);
if (this._a) this._a.push(reaction);
if (this._s) notify(this, false);
return reaction.promise;
},
// 25.4.5.1 Promise.prototype.catch(onRejected)
'catch': function (onRejected) {
return this.then(undefined, onRejected);
}
});
OwnPromiseCapability = function () {
var promise = new Internal();
this.promise = promise;
this.resolve = _ctx($resolve, promise, 1);
this.reject = _ctx($reject, promise, 1);
};
_newPromiseCapability.f = newPromiseCapability = function (C) {
return C === $Promise || C === Wrapper
? new OwnPromiseCapability(C)
: newGenericPromiseCapability(C);
};
}
_export(_export.G + _export.W + _export.F * !USE_NATIVE$1, { Promise: $Promise });
_setToStringTag($Promise, PROMISE);
_setSpecies(PROMISE);
Wrapper = _core[PROMISE];
// statics
_export(_export.S + _export.F * !USE_NATIVE$1, PROMISE, {
// 25.4.4.5 Promise.reject(r)
reject: function reject(r) {
var capability = newPromiseCapability(this);
var $$reject = capability.reject;
$$reject(r);
return capability.promise;
}
});
_export(_export.S + _export.F * ( !USE_NATIVE$1), PROMISE, {
// 25.4.4.6 Promise.resolve(x)
resolve: function resolve(x) {
return _promiseResolve( this, x);
}
});
_export(_export.S + _export.F * !(USE_NATIVE$1 && _iterDetect(function (iter) {
$Promise.all(iter)['catch'](empty);
})), PROMISE, {
// 25.4.4.1 Promise.all(iterable)
all: function all(iterable) {
var C = this;
var capability = newPromiseCapability(C);
var resolve = capability.resolve;
var reject = capability.reject;
var result = _perform(function () {
var values = [];
var index = 0;
var remaining = 1;
_forOf(iterable, false, function (promise) {
var $index = index++;
var alreadyCalled = false;
values.push(undefined);
remaining++;
C.resolve(promise).then(function (value) {
if (alreadyCalled) return;
alreadyCalled = true;
values[$index] = value;
--remaining || resolve(values);
}, reject);
});
--remaining || resolve(values);
});
if (result.e) reject(result.v);
return capability.promise;
},
// 25.4.4.4 Promise.race(iterable)
race: function race(iterable) {
var C = this;
var capability = newPromiseCapability(C);
var reject = capability.reject;
var result = _perform(function () {
_forOf(iterable, false, function (promise) {
C.resolve(promise).then(capability.resolve, reject);
});
});
if (result.e) reject(result.v);
return capability.promise;
}
});
var $sort = [].sort;
var test$1 = [1, 2, 3];
_export(_export.P + _export.F * (_fails(function () {
// IE8-
test$1.sort(undefined);
}) || !_fails(function () {
// V8 bug
test$1.sort(null);
// Old WebKit
}) || !_strictMethod($sort)), 'Array', {
// 22.1.3.25 Array.prototype.sort(comparefn)
sort: function sort(comparefn) {
return comparefn === undefined
? $sort.call(_toObject(this))
: $sort.call(_toObject(this), _aFunction(comparefn));
}
});
var dP$2 = _objectDp.f;
var FProto = Function.prototype;
var nameRE = /^\s*function ([^ (]*)/;
var NAME$1 = 'name';
// 19.2.4.2 name
NAME$1 in FProto || _descriptors && dP$2(FProto, NAME$1, {
configurable: true,
get: function () {
try {
return ('' + this).match(nameRE)[1];
} catch (e) {
return '';
}
}
});
var arraySlice = [].slice;
var factories = {};
var construct = function (F, len, args) {
if (!(len in factories)) {
for (var n = [], i = 0; i < len; i++) n[i] = 'a[' + i + ']';
// eslint-disable-next-line no-new-func
factories[len] = Function('F,a', 'return new F(' + n.join(',') + ')');
} return factories[len](F, args);
};
var _bind = Function.bind || function bind(that /* , ...args */) {
var fn = _aFunction(this);
var partArgs = arraySlice.call(arguments, 1);
var bound = function (/* args... */) {
var args = partArgs.concat(arraySlice.call(arguments));
return this instanceof bound ? construct(fn, args.length, args) : _invoke(fn, args, that);
};
if (_isObject(fn.prototype)) bound.prototype = fn.prototype;
return bound;
};
// 19.2.3.2 / 15.3.4.5 Function.prototype.bind(thisArg, args...)
_export(_export.P, 'Function', { bind: _bind });
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 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;
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
var arrayWithHoles = _arrayWithHoles;
function _iterableToArrayLimit(arr, i) {
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 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 _validateCollection = function (it, TYPE) {
if (!_isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
return it;
};
var dP$3 = _objectDp.f;
var fastKey = _meta.fastKey;
var SIZE = _descriptors ? '_s' : 'size';
var getEntry = function (that, key) {
// fast case
var index = fastKey(key);
var entry;
if (index !== 'F') return that._i[index];
// frozen object case
for (entry = that._f; entry; entry = entry.n) {
if (entry.k == key) return entry;
}
};
var _collectionStrong = {
getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
var C = wrapper(function (that, iterable) {
_anInstance(that, C, NAME, '_i');
that._t = NAME; // collection type
that._i = _objectCreate(null); // index
that._f = undefined; // first entry
that._l = undefined; // last entry
that[SIZE] = 0; // size
if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
});
_redefineAll(C.prototype, {
// 23.1.3.1 Map.prototype.clear()
// 23.2.3.2 Set.prototype.clear()
clear: function clear() {
for (var that = _validateCollection(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
entry.r = true;
if (entry.p) entry.p = entry.p.n = undefined;
delete data[entry.i];
}
that._f = that._l = undefined;
that[SIZE] = 0;
},
// 23.1.3.3 Map.prototype.delete(key)
// 23.2.3.4 Set.prototype.delete(value)
'delete': function (key) {
var that = _validateCollection(this, NAME);
var entry = getEntry(that, key);
if (entry) {
var next = entry.n;
var prev = entry.p;
delete that._i[entry.i];
entry.r = true;
if (prev) prev.n = next;
if (next) next.p = prev;
if (that._f == entry) that._f = next;
if (that._l == entry) that._l = prev;
that[SIZE]--;
} return !!entry;
},
// 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
// 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
forEach: function forEach(callbackfn /* , that = undefined */) {
_validateCollection(this, NAME);
var f = _ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
var entry;
while (entry = entry ? entry.n : this._f) {
f(entry.v, entry.k, this);
// revert to the last existing entry
while (entry && entry.r) entry = entry.p;
}
},
// 23.1.3.7 Map.prototype.has(key)
// 23.2.3.7 Set.prototype.has(value)
has: function has(key) {
return !!getEntry(_validateCollection(this, NAME), key);
}
});
if (_descriptors) dP$3(C.prototype, 'size', {
get: function () {
return _validateCollection(this, NAME)[SIZE];
}
});
return C;
},
def: function (that, key, value) {
var entry = getEntry(that, key);
var prev, index;
// change existing entry
if (entry) {
entry.v = value;
// create new entry
} else {
that._l = entry = {
i: index = fastKey(key, true), // <- index
k: key, // <- key
v: value, // <- value
p: prev = that._l, // <- previous entry
n: undefined, // <- next entry
r: false // <- removed
};
if (!that._f) that._f = entry;
if (prev) prev.n = entry;
that[SIZE]++;
// add to index
if (index !== 'F') that._i[index] = entry;
} return that;
},
getEntry: getEntry,
setStrong: function (C, NAME, IS_MAP) {
// add .keys, .values, .entries, [@@iterator]
// 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
_iterDefine(C, NAME, function (iterated, kind) {
this._t = _validateCollection(iterated, NAME); // target
this._k = kind; // kind
this._l = undefined; // previous
}, function () {
var that = this;
var kind = that._k;
var entry = that._l;
// revert to the last existing entry
while (entry && entry.r) entry = entry.p;
// get next entry
if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
// or finish the iteration
that._t = undefined;
return _iterStep(1);
}
// return step by kind
if (kind == 'keys') return _iterStep(0, entry.k);
if (kind == 'values') return _iterStep(0, entry.v);
return _iterStep(0, [entry.k, entry.v]);
}, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
// add [@@species], 23.1.2.2, 23.2.2.2
_setSpecies(NAME);
}
};
// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var check = function (O, proto) {
_anObject(O);
if (!_isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
var _setProto = {
set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
function (test, buggy, set) {
try {
set = _ctx(Function.call, _objectGopd.f(Object.prototype, '__proto__').set, 2);
set(test, []);
buggy = !(test instanceof Array);
} catch (e) { buggy = true; }
return function setPrototypeOf(O, proto) {
check(O, proto);
if (buggy) O.__proto__ = proto;
else set(O, proto);
return O;
};
}({}, false) : undefined),
check: check
};
var setPrototypeOf = _setProto.set;
var _inheritIfRequired = function (that, target, C) {
var S = target.constructor;
var P;
if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && _isObject(P) && setPrototypeOf) {
setPrototypeOf(that, P);
} return that;
};
var _collection = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
var Base = _global[NAME];
var C = Base;
var ADDER = IS_MAP ? 'set' : 'add';
var proto = C && C.prototype;
var O = {};
var fixMethod = function (KEY) {
var fn = proto[KEY];
_redefine(proto, KEY,
KEY == 'delete' ? function (a) {
return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
} : KEY == 'has' ? function has(a) {
return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
} : KEY == 'get' ? function get(a) {
return IS_WEAK && !_isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
} : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
: function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
);
};
if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !_fails(function () {
new C().entries().next();
}))) {
// create collection constructor
C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
_redefineAll(C.prototype, methods);
_meta.NEED = true;
} else {
var instance = new C();
// early implementations not supports chaining
var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
// V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
var THROWS_ON_PRIMITIVES = _fails(function () { instance.has(1); });
// most early implementations doesn't supports iterables, most modern - not close it correctly
var ACCEPT_ITERABLES = _iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
// for early implementations -0 and +0 not the same
var BUGGY_ZERO = !IS_WEAK && _fails(function () {
// V8 ~ Chromium 42- fails only with 5+ elements
var $instance = new C();
var index = 5;
while (index--) $instance[ADDER](index, index);
return !$instance.has(-0);
});
if (!ACCEPT_ITERABLES) {
C = wrapper(function (target, iterable) {
_anInstance(target, C, NAME);
var that = _inheritIfRequired(new Base(), target, C);
if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
return that;
});
C.prototype = proto;
proto.constructor = C;
}
if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
fixMethod('delete');
fixMethod('has');
IS_MAP && fixMethod('get');
}
if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
// weak collections should not contains .clear method
if (IS_WEAK && proto.clear) delete proto.clear;
}
_setToStringTag(C, NAME);
O[NAME] = C;
_export(_export.G + _export.W + _export.F * (C != Base), O);
if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
return C;
};
var MAP = 'Map';
// 23.1 Map Objects
var es6_map = _collection(MAP, function (get) {
return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.1.3.6 Map.prototype.get(key)
get: function get(key) {
var entry = _collectionStrong.getEntry(_validateCollection(this, MAP), key);
return entry && entry.v;
},
// 23.1.3.9 Map.prototype.set(key, value)
set: function set(key, value) {
return _collectionStrong.def(_validateCollection(this, MAP), key === 0 ? 0 : key, value);
}
}, _collectionStrong, true);
var max$1 = Math.max;
var min$2 = Math.min;
var floor$1 = Math.floor;
var SUBSTITUTION_SYMBOLS = /\$([$&`']|\d\d?|<[^>]*>)/g;
var SUBSTITUTION_SYMBOLS_NO_NAMED = /\$([$&`']|\d\d?)/g;
var maybeToString = function (it) {
return it === undefined ? it : String(it);
};
// @@replace logic
_fixReWks('replace', 2, function (defined, REPLACE, $replace, maybeCallNative) {
return [
// `String.prototype.replace` method
// https://tc39.github.io/ecma262/#sec-string.prototype.replace
function replace(searchValue, replaceValue) {
var O = defined(this);
var fn = searchValue == undefined ? undefined : searchValue[REPLACE];
return fn !== undefined
? fn.call(searchValue, O, replaceValue)
: $replace.call(String(O), searchValue, replaceValue);
},
// `RegExp.prototype[@@replace]` method
// https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace
function (regexp, replaceValue) {
var res = maybeCallNative($replace, regexp, this, replaceValue);
if (res.done) return res.value;
var rx = _anObject(regexp);
var S = String(this);
var functionalReplace = typeof replaceValue === 'function';
if (!functionalReplace) replaceValue = String(replaceValue);
var global = rx.global;
if (global) {
var fullUnicode = rx.unicode;
rx.lastIndex = 0;
}
var results = [];
while (true) {
var result = _regexpExecAbstract(rx, S);
if (result === null) break;
results.push(result);
if (!global) break;
var matchStr = String(result[0]);
if (matchStr === '') rx.lastIndex = _advanceStringIndex(S, _toLength(rx.lastIndex), fullUnicode);
}
var accumulatedResult = '';
var nextSourcePosition = 0;
for (var i = 0; i < results.length; i++) {
result = results[i];
var matched = String(result[0]);
var position = max$1(min$2(_toInteger(result.index), S.length), 0);
var captures = [];
// NOTE: This is equivalent to
// captures = result.slice(1).map(maybeToString)
// but for some reason `nativeSlice.call(result, 1, result.length)` (called in
// the slice polyfill when slicing native arrays) "doesn't work" in safari 9 and
// causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.
for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));
var namedCaptures = result.groups;
if (functionalReplace) {
var replacerArgs = [matched].concat(captures, position, S);
if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);
var replacement = String(replaceValue.apply(undefined, replacerArgs));
} else {
replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);
}
if (position >= nextSourcePosition) {
accumulatedResult += S.slice(nextSourcePosition, position) + replacement;
nextSourcePosition = position + matched.length;
}
}
return accumulatedResult + S.slice(nextSourcePosition);
}
];
// https://tc39.github.io/ecma262/#sec-getsubstitution
function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {
var tailPos = position + matched.length;
var m = captures.length;
var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;
if (namedCaptures !== undefined) {
namedCaptures = _toObject(namedCaptures);
symbols = SUBSTITUTION_SYMBOLS;
}
return $replace.call(replacement, symbols, function (match, ch) {
var capture;
switch (ch.charAt(0)) {
case '$': return '$';
case '&': return matched;
case '`': return str.slice(0, position);
case "'": return str.slice(tailPos);
case '<':
capture = namedCaptures[ch.slice(1, -1)];
break;
default: // \d\d?
var n = +ch;
if (n === 0) return match;
if (n > m) {
var f = floor$1(n / 10);
if (f === 0) return match;
if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);
return match;
}
capture = captures[n - 1];
}
return capture === undefined ? '' : capture;
});
}
});
var canvas = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.drawPolylinePath = drawPolylinePath;
exports.drawBezierCurvePath = drawBezierCurvePath;
exports["default"] = void 0;
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
/**
* @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, _toConsumableArray(point)) : ctx.lineTo.apply(ctx, _toConsumableArray(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, _toConsumableArray(moveTo));
points.forEach(function (item) {
return item && ctx.bezierCurveTo.apply(ctx, _toConsumableArray(item[0]).concat(_toConsumableArray(item[1]), _toConsumableArray(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 _bezierCurve2 = _interopRequireDefault(lib$1);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { 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; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
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 = _slicedToArray(_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 = _slicedToArray(_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 = _slicedToArray(_ref68, 2),
x = _ref69[0],
y = _ref69[1];
return [x + movementX, y + movementY];
});
cache.points = moveAfterPoints;
var _cache$bezierCurve$ = _slicedToArray(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(_toConsumableArray(curves.map(function (curve) {
return curve.map(function (_ref70) {
var _ref71 = _slicedToArray(_ref70, 2),
x = _ref71[0],
y = _ref71[1];
return [x + movementX, y + movementY];
});
})));
cache.hoverPoints = cache.hoverPoints.map(function (_ref72) {
var _ref73 = _slicedToArray(_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$ = _slicedToArray(points[0], 2),
fx = _points$[0],
fy = _points$[1];
var curves = points.slice(1);
var bezierCurve = [[fx + movementX, fy + movementY]].concat(_toConsumableArray(curves.map(function (curve) {
return curve.map(function (_ref81) {
var _ref82 = _slicedToArray(_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 = _slicedToArray(_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 = _slicedToArray(_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(_toConsumableArray(position[i]), [maxWidth]));
ctx.strokeText.apply(ctx, [text].concat(_toConsumableArray(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 = _toConsumableArray(position);
},
move: function move(_ref90, _ref91) {
var movementX = _ref90.movementX,
movementY = _ref90.movementY;
var shape = _ref91.shape;
var _shape$position = _slicedToArray(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 style_class = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/**
* @description Class Style
* @param {Object} style Style configuration
* @return {Style} Instance of Style
*/
var Style = function Style(style) {
_classCallCheck(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 Stroke width is not scaled
* @type {Boolean}
* @default strokeNoScale = false
*/
strokeNoScale: false,
/**
* @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']
* @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, _toConsumableArray(graphCenter));
if (rotate) ctx.rotate(rotate * Math.PI / 180);
if (scale instanceof Array) ctx.scale.apply(ctx, _toConsumableArray(scale));
if (translate) ctx.translate.apply(ctx, _toConsumableArray(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 = _toConsumableArray(fill);
stroke = _toConsumableArray(stroke);
shadowColor = _toConsumableArray(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 = _toConsumableArray(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, _toConsumableArray(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 _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;
});
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 _style = _interopRequireDefault(style_class);
var _transition = _interopRequireDefault(lib$2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
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); }); }; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/**
* @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) {
_classCallCheck(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(_toConsumableArray(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 = _typeof(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 = _asyncToGenerator(
/*#__PURE__*/
regeneratorRuntime.mark(function _callee2(attrName, change) {
var wait,
changeRoot,
changeKeys,
beforeState,
animationFrame,
animationCurve,
animationDelay,
animationFrameState,
render,
_args2 = arguments;
return regeneratorRuntime.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 = _asyncToGenerator(
/*#__PURE__*/
regeneratorRuntime.mark(function _callee(resolve) {
return regeneratorRuntime.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 = _asyncToGenerator(
/*#__PURE__*/
regeneratorRuntime.mark(function _callee3(resolve) {
return regeneratorRuntime.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 _color = _interopRequireDefault(lib);
var _bezierCurve = _interopRequireDefault(lib$1);
var _graphs = _interopRequireDefault(graphs_1);
var _graph = _interopRequireDefault(graph_class);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
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; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/**
* @description Class of CRender
* @param {Object} canvas Canvas DOM
* @return {CRender} Instance of CRender
*/
var CRender = function CRender(canvas) {
_classCallCheck(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(_toConsumableArray(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, "extendNewGraph", {
enumerable: true,
get: function get() {
return graphs_1.extendNewGraph;
}
});
Object.defineProperty(exports, "injectNewCurve", {
enumerable: true,
get: function get() {
return lib$2.injectNewCurve;
}
});
exports["default"] = void 0;
var _crender = _interopRequireDefault(crender_class);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var _default = _crender["default"];
exports["default"] = _default;
});
var CRender = unwrapExports(lib$3);
function _toConsumableArray$1(arr) { return _arrayWithoutHoles$1(arr) || _iterableToArray$1(arr) || _nonIterableSpread$1(); }
function _nonIterableSpread$1() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray$1(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
function _arrayWithoutHoles$1(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 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, _toConsumableArray$1(connectPoint1));
ctx.arc(rx, ry, or > 0 ? or : 0, endAngle, startAngle, clockWise);
ctx.lineTo.apply(ctx, _toConsumableArray$1(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(_toConsumableArray$1(position)));
ctx.fillText.apply(ctx, [textString].concat(_toConsumableArray$1(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 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 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;
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Updater = function Updater(config, series) {
_classCallCheck(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 = _typeof(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, _toConsumableArray(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;
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { 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; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
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 = _slicedToArray(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;
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { 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; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
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; }
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 = _slicedToArray(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 $indexOf = _arrayIncludes(false);
var $native = [].indexOf;
var NEGATIVE_ZERO = !!$native && 1 / [1].indexOf(1, -0) < 0;
_export(_export.P + _export.F * (NEGATIVE_ZERO || !_strictMethod($native)), 'Array', {
// 22.1.3.11 / 15.4.4.14 Array.prototype.indexOf(searchElement [, fromIndex])
indexOf: function indexOf(searchElement /* , fromIndex = 0 */) {
return NEGATIVE_ZERO
// convert -0 to +0
? $native.apply(this, arguments) || 0
: $indexOf(this, searchElement, arguments[1]);
}
});
var axis_1$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.axis = axis;
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { 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; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
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; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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 axisConfig = {
xAxisConfig: config.xAxisConfig,
yAxisConfig: config.yAxisConfig
};
var min = Math.min,
max = Math.max,
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, _toConsumableArray(xAxis));
} else {
allXAxis.push(xAxis);
}
if (yAxis instanceof Array) {
var _allYAxis;
(_allYAxis = allYAxis).push.apply(_allYAxis, _toConsumableArray(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(_toConsumableArray(allXAxis), _toConsumableArray(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(_toConsumableArray(xAxis), _toConsumableArray(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(_toConsumableArray(valueAxis), _toConsumableArray(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(_toConsumableArray(valueAxis), _toConsumableArray(labelAxis));
}
function calcValueAxisLabelData(valueAxis, series) {
return valueAxis.map(function (axis) {
var minMaxValue = getValueAxisMaxMinValue(axis, series);
var _getTrueMinMax = getTrueMinMax(axis, minMaxValue),
_getTrueMinMax2 = _slicedToArray(_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 = min.apply(void 0, _toConsumableArray(series.map(function (_ref9) {
var data = _ref9.data;
return min.apply(void 0, _toConsumableArray((0, util$1.filterNonNumber)(data)));
})));
var maxValue = max.apply(void 0, _toConsumableArray(series.map(function (_ref10) {
var data = _ref10.data;
return max.apply(void 0, _toConsumableArray((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 = _slicedToArray(_ref12, 2),
minValue = _ref13[0],
maxValue = _ref13[1];
var minType = _typeof(min),
maxType = _typeof(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 = _typeof(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(_toConsumableArray(negative.reverse()), [0], _toConsumableArray(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(_toConsumableArray(xAxis), _toConsumableArray(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 = _slicedToArray(linePosition, 2),
_linePosition$ = _slicedToArray(_linePosition[0], 2),
startX = _linePosition$[0],
startY = _linePosition$[1],
_linePosition$2 = _slicedToArray(_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 = _slicedToArray(_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 = _slicedToArray(linePosition, 2),
lineStart = _linePosition2[0],
lineEnd = _linePosition2[1];
var namePosition = _toConsumableArray(lineStart);
if (nameLocation === 'end') namePosition = _toConsumableArray(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 = _slicedToArray(_ref18, 1),
startPoint = _ref19[0];
var endPoint = _toConsumableArray(startPoint);
endPoint[index] += plus;
return [_toConsumableArray(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 _bezierCurve = _interopRequireDefault(lib$1);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { 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; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
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 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, _toConsumableArray(mainPos));
var minPos = Math.min.apply(Math, _toConsumableArray(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 = _toConsumableArray(points[points.length - 1]);
var linePoint2 = _toConsumableArray(points[0]);
linePoint1[changeIndex] = changeValue;
linePoint2[changeIndex] = changeValue;
ctx.lineTo.apply(ctx, _toConsumableArray(linePoint1));
ctx.lineTo.apply(ctx, _toConsumableArray(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 _toConsumableArray(lastPoint);
});
graphPoints.push.apply(graphPoints, _toConsumableArray(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 = _toConsumableArray(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 = _slicedToArray(_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 = _toConsumableArray(pos);
pos[changeIndex] = changeValue;
}
if (position === 'center') {
var bottom = _toConsumableArray(pos);
bottom[changeIndex] = changeValue;
pos = getCenterLabelPoint(pos, bottom);
}
return getOffsetedPoint(pos, offset);
});
}
function getOffsetedPoint(_ref9, _ref10) {
var _ref11 = _slicedToArray(_ref9, 2),
x = _ref11[0],
y = _ref11[1];
var _ref12 = _slicedToArray(_ref10, 2),
ox = _ref12[0],
oy = _ref12[1];
return [x + ox, y + oy];
}
function getCenterLabelPoint(_ref13, _ref14) {
var _ref15 = _slicedToArray(_ref13, 2),
ax = _ref15[0],
ay = _ref15[1];
var _ref16 = _slicedToArray(_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 = _typeof(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 SET = 'Set';
// 23.2 Set Objects
var es6_set = _collection(SET, function (get) {
return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.2.3.1 Set.prototype.add(value)
add: function add(value) {
return _collectionStrong.def(_validateCollection(this, SET), value = value === 0 ? 0 : value, value);
}
}, _collectionStrong);
var bar_1$1 = createCommonjsModule(function (module, exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.bar = bar;
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
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; }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { 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; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
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 = _toConsumableArray(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 _toConsumableArray(new Set(stacks));
}
function setBarNum(bars) {
var barNum = _toConsumableArray(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 = _slicedToArray(_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 = _slicedToArray(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 = _slicedToArray(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 = _slicedToArray(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 = _slicedToArray(barValueAxisPos[i], 2),
start = _barValueAxisPos$i4[0],
end = _barValueAxisPos$i4[1];
var labelAxisPos = barLabelAxisPos[i];
var value = data[i];
var _linePosition = _slicedToArray(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 = _typeof(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 = _slicedToArray(_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 = _slicedToArray(_ref12, 2),
x = _ref14[0],
y = _ref14[1];
var _ref15 = _slicedToArray(_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;
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
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; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { 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; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
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, _toConsumableArray(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 = _toConsumableArray(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(_toConsumableArray(all), _toConsumableArray(radius));
}, []);
var minRadius = Math.min.apply(Math, _toConsumableArray(allRadius));
var maxRadius = Math.max.apply(Math, _toConsumableArray(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 = _slicedToArray(_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 = _slicedToArray(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, _toConsumableArray(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, _toConsumableArray(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 = _slicedToArray(_ref8.radius, 2),
foo = _ref8$radius[0],
r = _ref8$radius[1];
return r;
});
return Math.max.apply(Math, _toConsumableArray(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 = _slicedToArray(_ref10.edgeCenterPos, 2),
t = _ref10$edgeCenterPos[0],
ay = _ref10$edgeCenterPos[1];
var _ref11$edgeCenterPos = _slicedToArray(_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, _toConsumableArray(center).concat([radius, angle]));
var endPoint = _toConsumableArray(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 = _typeof(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 = _typeof(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;
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { 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; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
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; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
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, _toConsumableArray(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, _toConsumableArray(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, _toConsumableArray(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, _toConsumableArray(centerPos).concat([ringRadius[0], axisLineAngles[0]]));
var point2 = util.getCircleRadianPoint.apply(void 0, _toConsumableArray(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 = _slicedToArray(radarAxis.centerPos, 2),
x = _radarAxis$centerPos[0],
y = _radarAxis$centerPos[1],
axisLabelPosition = radarAxis.axisLabelPosition;
var color = axisLabel.color,
style = axisLabel.style;
var _axisLabelPosition$i = _slicedToArray(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;
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
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; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { 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; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
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, _toConsumableArray(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, _toConsumableArray(centerPos).concat([r + labelGap, axisLineAngles[i]]));
});
});
return radars;
}
function calcRadarLabelAlign(radars, chart) {
var radarAxis = chart.radarAxis;
if (!radarAxis) return [];
var _radarAxis$centerPos = _slicedToArray(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 = _slicedToArray(_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 _toConsumableArray(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 _toConsumableArray(lastPoint);
});
graphPoints.push.apply(graphPoints, _toConsumableArray(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 = _typeof(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 = _slicedToArray(_ref5, 2),
x = _ref7[0],
y = _ref7[1];
var _ref8 = _slicedToArray(_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;
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }
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; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { 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; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
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; } }
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, _toConsumableArray(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, _toConsumableArray(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, _toConsumableArray(center).concat([outerRadius, angle])), util.getCircleRadianPoint.apply(void 0, _toConsumableArray(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, _toConsumableArray(center).concat([tickInnerRadius[i] - labelGap, tickAngles[i]]));
});
var align = position.map(function (_ref) {
var _ref2 = _slicedToArray(_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 = _typeof(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, _toConsumableArray(center).concat([radius, startAngle]));
} else if (position === 'end') {
point = util.getCircleRadianPoint.apply(void 0, _toConsumableArray(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 = _typeof(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 = _slicedToArray(_ref4, 2),
x = _ref6[0],
y = _ref6[1];
var _ref7 = _slicedToArray(_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, _toConsumableArray(new Array(needNum - cacheNum).fill(0).map(function (foo) {
return _toConsumableArray(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 = _slicedToArray(_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;
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; }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
function _iterableToArrayLimit(arr, i) { 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; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
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 = _typeof(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 = _slicedToArray(_ref4, 2),
x = _ref6[0],
y = _ref6[1];
var _ref7 = _slicedToArray(_ref5, 2),
ox = _ref7[0],
oy = _ref7[1];
return [x + ox, y + oy];
}
function calcVerticalPosition(legend, chart) {
var _getVerticalXOffset = getVerticalXOffset(legend, chart),
_getVerticalXOffset2 = _slicedToArray(_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 _defineProperty({
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 = _slicedToArray(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 = _slicedToArray(_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 _cRender = _interopRequireDefault(lib$3);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Charts = function Charts(dom) {
_classCallCheck(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
* @return {Undefined} No return
*/
exports["default"] = Charts;
Charts.prototype.setOption = function (option) {
if (!option || _typeof(option) !== 'object') {
console.error('setOption Missing parameters!');
return false;
}
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);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var _default = _charts["default"];
exports["default"] = _default;
});
var Charts = unwrapExports(lib$4);
//
var script$m = {
name: 'DvCharts',
mixins: [autoResize],
props: {
option: {
type: Object,
default: () => ({})
}
},
data() {
return {
ref: `charts-container-${new Date().getTime()}`,
chartRef: `chart-${new Date().getTime()}`,
chart: null
};
},
watch: {
option() {
let {
chart,
option
} = this;
if (!chart) return;
if (!option) option = {};
chart.setOption(option);
}
},
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__$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-charts-container" }, [
_c("div", { ref: _vm.chartRef, staticClass: "charts-canvas-container" })
])
};
var __vue_staticRenderFns__$m = [];
__vue_render__$m._withStripped = true;
/* style */
const __vue_inject_styles__$m = function (inject) {
if (!inject) return
inject("data-v-8a293874_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__$m = undefined;
/* module identifier */
const __vue_module_identifier__$m = undefined;
/* functional template */
const __vue_is_functional_template__$m = false;
/* style inject SSR */
var Charts$1 = 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 charts (Vue) {
Vue.component(Charts$1.name, Charts$1);
}
//
var script$n = {
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;
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__$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", { staticClass: "dv-digital-flop" }, [
_c("canvas", { ref: "digital-flop" })
])
};
var __vue_staticRenderFns__$n = [];
__vue_render__$n._withStripped = true;
/* style */
const __vue_inject_styles__$n = function (inject) {
if (!inject) return
inject("data-v-ba7262c4_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__$n = undefined;
/* module identifier */
const __vue_module_identifier__$n = undefined;
/* functional template */
const __vue_is_functional_template__$n = false;
/* style inject SSR */
var DigitalFlop = 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
);
//
var script$o = {
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);
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);
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);
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__$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", { 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__$o = [];
__vue_render__$o._withStripped = true;
/* style */
const __vue_inject_styles__$o = function (inject) {
if (!inject) return
inject("data-v-fce58c90_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__$o = undefined;
/* module identifier */
const __vue_module_identifier__$o = undefined;
/* functional template */
const __vue_is_functional_template__$o = false;
/* style inject SSR */
var ActiveRingChart = 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 activeRingChart (Vue) {
Vue.component(ActiveRingChart.name, ActiveRingChart);
}
//
var script$p = {
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__$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",
{ 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__$p = [];
__vue_render__$p._withStripped = true;
/* style */
const __vue_inject_styles__$p = function (inject) {
if (!inject) return
inject("data-v-7421b956_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__$p = undefined;
/* module identifier */
const __vue_module_identifier__$p = undefined;
/* functional template */
const __vue_is_functional_template__$p = false;
/* style inject SSR */
var CapsuleChart = 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 capsuleChart (Vue) {
Vue.component(CapsuleChart.name, CapsuleChart);
}
//
var script$q = {
name: 'DvWaterLevelPond',
props: {
config: Object,
default: () => ({})
},
data() {
return {
gradientId: `water-level-pond-${new Date().getTime()}`,
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__$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", { 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__$q = [];
__vue_render__$q._withStripped = true;
/* style */
const __vue_inject_styles__$q = function (inject) {
if (!inject) return
inject("data-v-4101c79a_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__$q = undefined;
/* module identifier */
const __vue_module_identifier__$q = undefined;
/* functional template */
const __vue_is_functional_template__$q = false;
/* style inject SSR */
var WaterLevelPond = 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 waterLevelPond (Vue) {
Vue.component(WaterLevelPond.name, WaterLevelPond);
}
//
var script$r = {
name: 'DvPercentPond',
props: {
config: {
type: Object,
default: () => ({})
}
},
data() {
return {
gradientId1: `percent-pond-gradientId1-${new Date().getTime()}`,
gradientId2: `percent-pond-gradientId2-${new Date().getTime()}`,
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() {
let {
config,
defaultConfig
} = this;
this.mergedConfig = util_2$1(util_1(defaultConfig, true), config || {});
}
},
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", { 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__$r = [];
__vue_render__$r._withStripped = true;
/* style */
const __vue_inject_styles__$r = function (inject) {
if (!inject) return
inject("data-v-7801b40e_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__$r = undefined;
/* module identifier */
const __vue_module_identifier__$r = undefined;
/* functional template */
const __vue_is_functional_template__$r = false;
/* style inject SSR */
var PercentPond = 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
);
function percentPond (Vue) {
Vue.component(PercentPond.name, PercentPond);
}
//
var script$s = {
name: 'DvFlylineChart',
mixins: [autoResize],
props: {
config: {
type: Object,
default: () => ({})
},
dev: {
type: Boolean,
default: false
}
},
data() {
return {
ref: 'dv-flyline-chart',
unique: Math.random(),
maskId: `flyline-mask-id-${new Date().getTime()}`,
maskCircleId: `mask-circle-id-${new Date().getTime()}`,
gradientId: `gradient-id-${new Date().getTime()}`,
gradient2Id: `gradient2-id-${new Date().getTime()}`,
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__$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",
{
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__$s = [];
__vue_render__$s._withStripped = true;
/* style */
const __vue_inject_styles__$s = function (inject) {
if (!inject) return
inject("data-v-65ea4c14_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__$s = undefined;
/* module identifier */
const __vue_module_identifier__$s = undefined;
/* functional template */
const __vue_is_functional_template__$s = false;
/* style inject SSR */
var FlylineChart = 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 flylineChart (Vue) {
Vue.component(FlylineChart.name, FlylineChart);
}
//
var script$t = {
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__$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", { 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__$t = [];
__vue_render__$t._withStripped = true;
/* style */
const __vue_inject_styles__$t = function (inject) {
if (!inject) return
inject("data-v-774de7d0_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__$t = undefined;
/* module identifier */
const __vue_module_identifier__$t = undefined;
/* functional template */
const __vue_is_functional_template__$t = false;
/* style inject SSR */
var ConicalColumnChart = 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 conicalColumnChart (Vue) {
Vue.component(ConicalColumnChart.name, ConicalColumnChart);
}
function digitalFlop (Vue) {
Vue.component(DigitalFlop.name, DigitalFlop);
}
//
var script$u = {
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 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: ''
};
},
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
} = this.mergedConfig;
if (!header.length) {
this.header = [];
return;
}
header = [...header];
if (index) header.unshift('#');
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}</spand>`;
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
} = mergedConfig;
const usedWidth = columnWidth.reduce((all, w) => all + w, 0);
const columnNum = rowsData[0] ? rowsData[0].ceils.length : 0;
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
} = this;
const {
waitTime,
carousel,
rowNum
} = mergedConfig;
const rowLength = rowsData.length;
if (rowNum >= rowLength) return;
if (start) await new Promise(resolve => setTimeout(resolve, waitTime));
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));
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
} = this;
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__$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", { 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__$u = [];
__vue_render__$u._withStripped = true;
/* style */
const __vue_inject_styles__$u = function (inject) {
if (!inject) return
inject("data-v-87495252_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__$u = undefined;
/* module identifier */
const __vue_module_identifier__$u = undefined;
/* functional template */
const __vue_is_functional_template__$u = false;
/* style inject SSR */
var ScrollBoard = 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 scrollBoard (Vue) {
Vue.component(ScrollBoard.name, ScrollBoard);
}
//
var script$v = {
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'
},
mergedConfig: null,
rowsData: [],
rows: [],
heights: [],
animationIndex: 0,
animationHandler: ''
};
},
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
} = this.mergedConfig;
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
} = this;
const {
waitTime,
carousel,
rowNum
} = mergedConfig;
const rowLength = rowsData.length;
if (rowNum >= rowLength) return;
if (start) await new Promise(resolve => setTimeout(resolve, waitTime));
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));
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
} = this;
if (!animationHandler) return;
clearTimeout(animationHandler);
}
},
destroyed() {
const {
stopAnimation
} = this;
stopAnimation();
}
};
/* 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: _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" }, [
_vm._v(_vm._s(item.name))
]),
_vm._v(" "),
_c("div", { staticClass: "ranking-value" }, [
_vm._v(_vm._s(item.value))
])
]),
_vm._v(" "),
_c("div", { staticClass: "ranking-column" }, [
_c(
"div",
{
staticClass: "inside-column",
style: "width: " + item.percent + "%;"
},
[_c("div", { staticClass: "shine" })]
)
])
]
)
}),
0
)
};
var __vue_staticRenderFns__$v = [];
__vue_render__$v._withStripped = true;
/* style */
const __vue_inject_styles__$v = function (inject) {
if (!inject) return
inject("data-v-7a8c5f54_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__$v = undefined;
/* module identifier */
const __vue_module_identifier__$v = undefined;
/* functional template */
const __vue_is_functional_template__$v = false;
/* style inject SSR */
var ScrollRankingBoard = 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 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); // 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); // charts
Vue.use(charts);
Vue.use(activeRingChart);
Vue.use(capsuleChart);
Vue.use(waterLevelPond);
Vue.use(percentPond);
Vue.use(flylineChart);
Vue.use(conicalColumnChart);
Vue.use(digitalFlop);
Vue.use(scrollBoard);
Vue.use(scrollRankingBoard);
}
Vue.use(datav);
}));