@weoil/datav-vue3
Version:
Datav for vue3+vite
1,233 lines • 519 kB
JavaScript
import './style.css';
var __defProp = Object.defineProperty;
var __defProps = Object.defineProperties;
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
import { ref, nextTick, onMounted, onUnmounted, reactive, watch, openBlock, createElementBlock, unref, Fragment, renderList, createElementVNode, normalizeStyle, toDisplayString, createCommentVNode, computed, onBeforeUnmount, renderSlot, createStaticVNode, getCurrentInstance, createVNode, defineComponent, normalizeClass } from "vue";
function randomExtend(minNum, maxNum) {
if (arguments.length === 1)
return parseInt((Math.random() * minNum + 1).toString(), 10);
else
return parseInt((Math.random() * (maxNum - minNum + 1) + minNum).toString(), 10);
}
function debounce(delay, callback, vm) {
let lastTime;
return function() {
clearTimeout(lastTime);
lastTime = setTimeout(() => {
callback.call(vm, ...arguments);
}, delay);
};
}
function observerDomResize(dom, callback) {
const MutationObserver = window.MutationObserver;
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);
}
function getCircleRadianPoint(x, y, radius, radian) {
return [x + Math.cos(radian) * radius, y + Math.sin(radian) * radius];
}
function filterNonNumber$1(array) {
return array.filter((n) => {
return typeof n === "number";
});
}
function mulAdd$1(nums) {
nums = filterNonNumber$1(nums);
return nums.reduce((all, num) => {
return all + num;
}, 0);
}
function getTwoPointDistance$1(pointOne, pointTwo) {
const minusX = Math.abs(pointOne.x - pointTwo.x);
const minusY = Math.abs(pointOne.y - pointTwo.y);
return Math.sqrt(minusX * minusX + minusY * minusY);
}
function getPolylineLength$1(points) {
const lineSegments = new Array(points.length - 1).fill(0).map((foo, i) => {
return [points[i], points[i + 1]];
});
const lengths = lineSegments.map((item) => {
return getTwoPointDistance$1(item[0], item[1]);
});
return mulAdd$1(lengths);
}
function PointToString(point) {
return `${point.x},${point.y}`;
}
function PointsToString(points) {
return points.map(PointToString).join(" ");
}
function uuid(hasHyphen) {
return (hasHyphen ? "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx" : "xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx").replace(/[xy]/g, (c) => {
const r = Math.random() * 16 | 0;
const v = c === "x" ? r : r & 3 | 8;
return v.toString(16);
});
}
function deepMerge$1(target, merged) {
for (const key in merged) {
if (target[key] && typeof target[key] === "object") {
deepMerge$1(target[key], merged[key]);
continue;
}
if (typeof merged[key] === "object") {
target[key] = deepClone(merged[key], true);
continue;
}
target[key] = merged[key];
}
return target;
}
function deepClone(object, recursion) {
if (!object)
return object;
const { parse, stringify } = JSON;
if (!recursion)
return parse(stringify(object));
const clonedObj = object instanceof Array ? [] : {};
if (object && typeof object === "object") {
for (const key in object) {
if (Object.prototype.hasOwnProperty.call(object, key)) {
if (object[key] && typeof object[key] === "object")
clonedObj[key] = deepClone(object[key], true);
else
clonedObj[key] = object[key];
}
}
}
return clonedObj;
}
const autoResize = (dom, onResize, afterAutoResizeMixinInit) => {
const width = ref(0);
const height = ref(0);
let debounceInitWHFun;
let domObserver = null;
let domHtml = null;
const initWH = (resize = true) => {
return new Promise((resolve) => {
nextTick(() => {
domHtml = dom.value;
width.value = dom.value ? dom.value.clientWidth : 0;
height.value = dom.value ? dom.value.clientHeight : 0;
if (!dom.value)
console.warn("DataV: Failed to get dom node, component rendering may be abnormal!");
else if (!width.value || !height.value)
console.warn("DataV: Component width or height is 0px, rendering abnormality may occur!");
if (typeof onResize === "function" && resize)
onResize();
resolve(true);
});
});
};
const getDebounceInitWHFun = () => {
debounceInitWHFun = debounce(100, initWH, globalThis);
};
const bindDomResizeCallback = () => {
domObserver = observerDomResize(domHtml, debounceInitWHFun);
window.addEventListener("resize", debounceInitWHFun);
};
const unbindDomResizeCallback = () => {
if (!domObserver)
return;
domObserver.disconnect();
domObserver.takeRecords();
domObserver = null;
window.removeEventListener("resize", debounceInitWHFun);
};
const autoResizeMixinInit = async () => {
await initWH(false);
getDebounceInitWHFun();
bindDomResizeCallback();
if (typeof afterAutoResizeMixinInit === "function")
afterAutoResizeMixinInit();
};
onMounted(() => {
autoResizeMixinInit();
});
onUnmounted(() => {
unbindDomResizeCallback();
});
return {
width,
height,
initWH
};
};
var index_vue_vue_type_style_index_0_lang$B = /* @__PURE__ */ (() => ".dv-conical-column-chart{width:100%;height:100%}.dv-conical-column-chart text{text-anchor:middle}\n")();
const _hoisted_1$z = ["width", "height"];
const _hoisted_2$y = ["d", "fill"];
const _hoisted_3$w = ["fill", "x", "y"];
const _hoisted_4$t = ["xlink:href", "width", "height", "x", "y"];
const _hoisted_5$q = ["fill", "x", "y"];
const _sfc_main$B = {
__name: "index",
props: {
config: {
type: Object,
default: () => ({})
}
},
setup(__props) {
const props = __props;
const conicalColumnChart = ref(null);
const { width, height } = autoResize(conicalColumnChart, onResize, afterAutoResizeMixinInit);
const state = reactive({
defaultConfig: {
data: [],
img: [],
fontSize: 12,
imgSideLength: 30,
columnColor: "rgba(0, 194, 255, 0.4)",
textColor: "#fff",
showValue: false
},
mergedConfig: null,
column: []
});
watch(() => props.config, () => {
calcData();
}, {
deep: true
});
function afterAutoResizeMixinInit() {
calcData();
}
function onResize() {
calcData();
}
function calcData() {
mergeConfig();
initData();
calcSVGPath();
}
function mergeConfig() {
state.mergedConfig = deepMerge$1(deepClone(state.defaultConfig, true), props.config || {});
}
function initData() {
let { data } = state.mergedConfig;
data = deepClone(data, true);
data.sort(({ value: a }, { value: b }) => {
if (a > b)
return -1;
else if (a < b)
return 1;
else
return 0;
});
const max = data[0] ? data[0].value : 10;
data = data.map((item) => __spreadProps(__spreadValues({}, item), {
percent: item.value / max
}));
state.mergedConfig.data = data;
}
function calcSVGPath() {
const { imgSideLength, fontSize, data } = state.mergedConfig;
const itemNum = data.length;
const gap = width.value / (itemNum + 1);
const useAbleHeight = height.value - imgSideLength - fontSize - 5;
const svgBottom = height.value - fontSize - 5;
state.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 __spreadProps(__spreadValues({}, item), {
d,
x: middleXPos,
y: middleYPos,
textY
});
});
}
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", {
ref_key: "conicalColumnChart",
ref: conicalColumnChart,
class: "dv-conical-column-chart"
}, [
(openBlock(), createElementBlock("svg", {
width: unref(width),
height: unref(height)
}, [
(openBlock(true), createElementBlock(Fragment, null, renderList(state.column, (item, i) => {
return openBlock(), createElementBlock("g", { key: i }, [
createElementVNode("path", {
d: item.d,
fill: state.mergedConfig.columnColor
}, null, 8, _hoisted_2$y),
createElementVNode("text", {
style: normalizeStyle(`fontSize:${state.mergedConfig.fontSize}px`),
fill: state.mergedConfig.textColor,
x: item.x,
y: unref(height) - 4
}, toDisplayString(item.name), 13, _hoisted_3$w),
state.mergedConfig.img.length ? (openBlock(), createElementBlock("image", {
key: 0,
"xlink:href": state.mergedConfig.img[i % state.mergedConfig.img.length],
width: state.mergedConfig.imgSideLength,
height: state.mergedConfig.imgSideLength,
x: item.x - state.mergedConfig.imgSideLength / 2,
y: item.y - state.mergedConfig.imgSideLength
}, null, 8, _hoisted_4$t)) : createCommentVNode("", true),
state.mergedConfig.showValue ? (openBlock(), createElementBlock("text", {
key: 1,
style: normalizeStyle(`fontSize:${state.mergedConfig.fontSize}px`),
fill: state.mergedConfig.textColor,
x: item.x,
y: item.textY
}, toDisplayString(item.value), 13, _hoisted_5$q)) : createCommentVNode("", true)
]);
}), 128))
], 8, _hoisted_1$z))
], 512);
};
}
};
const ConicalColumnChartPlugin = {
install(app) {
app.component("DvConicalColumnChart", _sfc_main$B);
}
};
var index_vue_vue_type_style_index_0_lang$A = /* @__PURE__ */ (() => ".dv-percent-pond{position:relative;display:flex;flex-direction:column}.dv-percent-pond svg{position:absolute;left:0px;top:0px;width:100%;height:100%}.dv-percent-pond polyline{transition:all .3s}.dv-percent-pond text{font-size:25px;font-weight:700;text-anchor:middle;dominant-baseline:middle}\n")();
const _hoisted_1$y = ["id"];
const _hoisted_2$x = ["offset", "stop-color"];
const _hoisted_3$v = ["id", "x2"];
const _hoisted_4$s = ["offset", "stop-color"];
const _hoisted_5$p = ["x", "y", "rx", "ry", "stroke-width", "stroke", "width", "height"];
const _hoisted_6$n = ["stroke-width", "stroke-dasharray", "stroke", "points"];
const _hoisted_7$m = ["stroke", "fill", "x", "y"];
const _sfc_main$A = {
__name: "index",
props: {
config: {
type: Object,
default: () => ({})
}
},
setup(__props) {
const props = __props;
const id = uuid();
const percentPond = ref(null);
const state = reactive({
gradientId1: `percent-pond-gradientId1-${id}`,
gradientId2: `percent-pond-gradientId2-${id}`,
width: 0,
height: 0,
defaultConfig: {
value: 0,
colors: ["#3DE7C9", "#00BAFF"],
borderWidth: 3,
borderGap: 3,
lineDash: [5, 1],
textColor: "#fff",
borderRadius: 5,
localGradient: false,
formatter: "{value}%"
},
mergedConfig: null
});
const rectWidth = computed(() => {
if (!state.mergedConfig)
return 0;
const { borderWidth } = state.mergedConfig;
return state.width - borderWidth;
});
const rectHeight = computed(() => {
if (!state.mergedConfig)
return 0;
const { borderWidth } = state.mergedConfig;
return state.height - borderWidth;
});
const points = computed(() => {
const halfHeight = state.height / 2;
if (!state.mergedConfig)
return `0, ${halfHeight} 0, ${halfHeight}`;
const { borderWidth, borderGap, value } = state.mergedConfig;
const polylineLength = (state.width - (borderWidth + borderGap) * 2) / 100 * value;
return `
${borderWidth + borderGap}, ${halfHeight}
${borderWidth + borderGap + polylineLength}, ${halfHeight + 1e-3}
`;
});
const polylineWidth = computed(() => {
if (!state.mergedConfig)
return 0;
const { borderWidth, borderGap } = state.mergedConfig;
return state.height - (borderWidth + borderGap) * 2;
});
const linearGradient = computed(() => {
if (!state.mergedConfig)
return [];
const { colors } = state.mergedConfig;
const colorNum = colors.length;
const colorOffsetGap = 100 / (colorNum - 1);
return colors.map((c, i) => [colorOffsetGap * i, c]);
});
const polylineGradient = computed(() => {
if (!state.mergedConfig)
return state.gradientId2;
if (state.mergedConfig.localGradient)
return state.gradientId1;
return state.gradientId2;
});
const gradient2XPos = computed(() => {
if (!state.mergedConfig)
return "100%";
const { value } = state.mergedConfig;
return `${200 - value}%`;
});
const details = computed(() => {
if (!state.mergedConfig)
return "";
const { value, formatter } = state.mergedConfig;
return formatter.replace("{value}", value);
});
watch(() => props.config, () => {
mergeConfig();
}, {
deep: true
});
onMounted(() => {
init();
});
async function init() {
await initWH();
if (!props.config)
return;
mergeConfig();
}
async function initWH() {
await nextTick();
const { clientWidth, clientHeight } = percentPond.value;
state.width = clientWidth;
state.height = clientHeight;
}
function mergeConfig() {
state.mergedConfig = deepMerge$1(deepClone(state.defaultConfig, true), props.config || {});
}
return (_ctx, _cache) => {
return openBlock(), createElementBlock("div", {
ref_key: "percentPond",
ref: percentPond,
class: "dv-percent-pond"
}, [
(openBlock(), createElementBlock("svg", null, [
createElementVNode("defs", null, [
createElementVNode("linearGradient", {
id: state.gradientId1,
x1: "0%",
y1: "0%",
x2: "100%",
y2: "0%"
}, [
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(linearGradient), (lc) => {
return openBlock(), createElementBlock("stop", {
key: lc[0],
offset: `${lc[0]}%`,
"stop-color": lc[1]
}, null, 8, _hoisted_2$x);
}), 128))
], 8, _hoisted_1$y),
createElementVNode("linearGradient", {
id: state.gradientId2,
x1: "0%",
y1: "0%",
x2: unref(gradient2XPos),
y2: "0%"
}, [
(openBlock(true), createElementBlock(Fragment, null, renderList(unref(linearGradient), (lc) => {
return openBlock(), createElementBlock("stop", {
key: lc[0],
offset: `${lc[0]}%`,
"stop-color": lc[1]
}, null, 8, _hoisted_4$s);
}), 128))
], 8, _hoisted_3$v)
]),
createElementVNode("rect", {
x: state.mergedConfig ? state.mergedConfig.borderWidth / 2 : "0",
y: state.mergedConfig ? state.mergedConfig.borderWidth / 2 : "0",
rx: state.mergedConfig ? state.mergedConfig.borderRadius : "0",
ry: state.mergedConfig ? state.mergedConfig.borderRadius : "0",
fill: "transparent",
"stroke-width": state.mergedConfig ? state.mergedConfig.borderWidth : "0",
stroke: `url(#${state.gradientId1})`,
width: unref(rectWidth) > 0 ? unref(rectWidth) : 0,
height: unref(rectHeight) > 0 ? unref(rectHeight) : 0
}, null, 8, _hoisted_5$p),
createElementVNode("polyline", {
"stroke-width": unref(polylineWidth),
"stroke-dasharray": state.mergedConfig ? state.mergedConfig.lineDash.join(",") : "0",
stroke: `url(#${unref(polylineGradient)})`,
points: unref(points)
}, null, 8, _hoisted_6$n),
createElementVNode("text", {
stroke: state.mergedConfig ? state.mergedConfig.textColor : "#fff",
fill: state.mergedConfig ? state.mergedConfig.textColor : "#fff",
x: state.width / 2,
y: state.height / 2
}, toDisplayString(unref(details)), 9, _hoisted_7$m)
]))
], 512);
};
}
};
const PercentPondPlugin = {
install(app) {
app.component("DvPercentPond", _sfc_main$A);
}
};
function getDefaultExportFromCjs(x) {
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
}
var lib$4 = {};
var interopRequireDefault = { exports: {} };
(function(module) {
function _interopRequireDefault2(obj) {
return obj && obj.__esModule ? obj : {
"default": obj
};
}
module.exports = _interopRequireDefault2, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(interopRequireDefault);
var crender_class = {};
var defineProperty = { exports: {} };
(function(module) {
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
module.exports = _defineProperty, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(defineProperty);
var toConsumableArray = { exports: {} };
var arrayWithoutHoles = { exports: {} };
var arrayLikeToArray = { exports: {} };
(function(module) {
function _arrayLikeToArray(arr, len) {
if (len == null || len > arr.length)
len = arr.length;
for (var i = 0, arr2 = new Array(len); i < len; i++) {
arr2[i] = arr[i];
}
return arr2;
}
module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(arrayLikeToArray);
(function(module) {
var arrayLikeToArray$1 = arrayLikeToArray.exports;
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr))
return arrayLikeToArray$1(arr);
}
module.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(arrayWithoutHoles);
var iterableToArray = { exports: {} };
(function(module) {
function _iterableToArray(iter) {
if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null)
return Array.from(iter);
}
module.exports = _iterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(iterableToArray);
var unsupportedIterableToArray = { exports: {} };
(function(module) {
var arrayLikeToArray$1 = arrayLikeToArray.exports;
function _unsupportedIterableToArray(o, minLen) {
if (!o)
return;
if (typeof o === "string")
return arrayLikeToArray$1(o, minLen);
var n = Object.prototype.toString.call(o).slice(8, -1);
if (n === "Object" && o.constructor)
n = o.constructor.name;
if (n === "Map" || n === "Set")
return Array.from(o);
if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))
return arrayLikeToArray$1(o, minLen);
}
module.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(unsupportedIterableToArray);
var nonIterableSpread = { exports: {} };
(function(module) {
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
module.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(nonIterableSpread);
(function(module) {
var arrayWithoutHoles$1 = arrayWithoutHoles.exports;
var iterableToArray$1 = iterableToArray.exports;
var unsupportedIterableToArray$1 = unsupportedIterableToArray.exports;
var nonIterableSpread$1 = nonIterableSpread.exports;
function _toConsumableArray(arr) {
return arrayWithoutHoles$1(arr) || iterableToArray$1(arr) || unsupportedIterableToArray$1(arr) || nonIterableSpread$1();
}
module.exports = _toConsumableArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(toConsumableArray);
var classCallCheck = { exports: {} };
(function(module) {
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
module.exports = _classCallCheck, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(classCallCheck);
var lib$3 = {};
var keywords = {};
(function(exports) {
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _default = /* @__PURE__ */ 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;
})(keywords);
(function(exports) {
var _interopRequireDefault2 = interopRequireDefault.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 _toConsumableArray22 = _interopRequireDefault2(toConsumableArray.exports);
var _keywords = _interopRequireDefault2(keywords);
var hexReg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/;
var rgbReg = /^(rgb|rgba|RGB|RGBA)/;
var rgbaReg = /^(rgba|RGBA)/;
function validator5(color2) {
var isHex = hexReg.test(color2);
var isRgb = rgbReg.test(color2);
if (isHex || isRgb)
return color2;
color2 = getColorByKeyword(color2);
if (!color2) {
console.error("Color: Invalid color!");
return false;
}
return color2;
}
function getColorByKeyword(keyword) {
if (!keyword) {
console.error("getColorByKeywords: Missing parameters!");
return false;
}
if (!_keywords["default"].has(keyword))
return false;
return _keywords["default"].get(keyword);
}
function getRgbValue(color2) {
if (!color2) {
console.error("getRgbValue: Missing parameters!");
return false;
}
color2 = validator5(color2);
if (!color2)
return false;
var isHex = hexReg.test(color2);
var isRgb = rgbReg.test(color2);
var lowerColor = color2.toLowerCase();
if (isHex)
return getRgbValueFromHex(lowerColor);
if (isRgb)
return getRgbValueFromRgb(lowerColor);
}
function getRgbValueFromHex(color2) {
color2 = color2.replace("#", "");
if (color2.length === 3)
color2 = Array.from(color2).map(function(hexNum) {
return hexNum + hexNum;
}).join("");
color2 = color2.split("");
return new Array(3).fill(0).map(function(t, i) {
return parseInt("0x".concat(color2[i * 2]).concat(color2[i * 2 + 1]));
});
}
function getRgbValueFromRgb(color2) {
return color2.replace(/rgb\(|rgba\(|\)/g, "").split(",").slice(0, 3).map(function(n) {
return parseInt(n);
});
}
function getRgbaValue(color2) {
if (!color2) {
console.error("getRgbaValue: Missing parameters!");
return false;
}
var colorValue = getRgbValue(color2);
if (!colorValue)
return false;
colorValue.push(getOpacity(color2));
return colorValue;
}
function getOpacity(color2) {
if (!color2) {
console.error("getOpacity: Missing parameters!");
return false;
}
color2 = validator5(color2);
if (!color2)
return false;
var isRgba = rgbaReg.test(color2);
if (!isRgba)
return 1;
color2 = color2.toLowerCase();
return Number(color2.split(",").slice(-1)[0].replace(/[)|\s]/g, ""));
}
function toRgb(color2, opacity) {
if (!color2) {
console.error("toRgb: Missing parameters!");
return false;
}
var rgbValue = getRgbValue(color2);
if (!rgbValue)
return false;
var addOpacity = typeof opacity === "number";
if (addOpacity)
return "rgba(" + rgbValue.join(",") + ",".concat(opacity, ")");
return "rgb(" + rgbValue.join(",") + ")";
}
function toHex(color2) {
if (!color2) {
console.error("toHex: Missing parameters!");
return false;
}
if (hexReg.test(color2))
return color2;
color2 = getRgbValue(color2);
if (!color2)
return false;
return "#" + color2.map(function(n) {
return Number(n).toString(16);
}).map(function(n) {
return n === "0" ? "00" : n;
}).join("");
}
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 color2 = valueLength === 3 ? "rgb(" : "rgba(";
color2 += value.join(",") + ")";
return color2;
}
function darken(color2) {
var percent = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
if (!color2) {
console.error("darken: Missing parameters!");
return false;
}
var rgbaValue = getRgbaValue(color2);
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);
}
function lighten(color2) {
var percent = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 0;
if (!color2) {
console.error("lighten: Missing parameters!");
return false;
}
var rgbaValue = getRgbaValue(color2);
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);
}
function fade(color2) {
var percent = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : 100;
if (!color2) {
console.error("fade: Missing parameters!");
return false;
}
var rgbValue = getRgbValue(color2);
if (!rgbValue)
return false;
var rgbaValue = [].concat((0, _toConsumableArray22["default"])(rgbValue), [percent / 100]);
return getColorFromRgbValue(rgbaValue);
}
var _default = {
fade,
toHex,
toRgb,
darken,
lighten,
getOpacity,
getRgbValue,
getRgbaValue,
getColorFromRgbValue
};
exports["default"] = _default;
})(lib$3);
var lib$2 = {};
var bezierCurveToPolyline = {};
var slicedToArray = { exports: {} };
var arrayWithHoles = { exports: {} };
(function(module) {
function _arrayWithHoles(arr) {
if (Array.isArray(arr))
return arr;
}
module.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(arrayWithHoles);
var iterableToArrayLimit = { exports: {} };
(function(module) {
function _iterableToArrayLimit(arr, i) {
var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"];
if (_i == null)
return;
var _arr = [];
var _n = true;
var _d = false;
var _s, _e;
try {
for (_i = _i.call(arr); !(_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;
}
module.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(iterableToArrayLimit);
var nonIterableRest = { exports: {} };
(function(module) {
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
}
module.exports = _nonIterableRest, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(nonIterableRest);
(function(module) {
var arrayWithHoles$1 = arrayWithHoles.exports;
var iterableToArrayLimit$1 = iterableToArrayLimit.exports;
var unsupportedIterableToArray$1 = unsupportedIterableToArray.exports;
var nonIterableRest$1 = nonIterableRest.exports;
function _slicedToArray(arr, i) {
return arrayWithHoles$1(arr) || iterableToArrayLimit$1(arr, i) || unsupportedIterableToArray$1(arr, i) || nonIterableRest$1();
}
module.exports = _slicedToArray, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(slicedToArray);
(function(exports) {
var _interopRequireDefault2 = interopRequireDefault.exports;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.bezierCurveToPolyline = bezierCurveToPolyline2;
exports.getBezierCurveLength = getBezierCurveLength2;
exports["default"] = void 0;
var _slicedToArray22 = _interopRequireDefault2(slicedToArray.exports);
var _toConsumableArray22 = _interopRequireDefault2(toConsumableArray.exports);
var sqrt = Math.sqrt, pow2 = Math.pow, ceil = Math.ceil, abs2 = Math.abs;
var defaultSegmentPointsNum = 50;
function abstractBezierCurveToPolyline(bezierCurve) {
var precision = arguments.length > 1 && arguments[1] !== void 0 ? 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, _toConsumableArray22["default"])(seg)));
});
var segmentPointsNum = new Array(segmentsNum).fill(defaultSegmentPointsNum);
var segmentPoints = getSegmentPointsByNum(getSegmentTPointFuns, segmentPointsNum);
var result = calcUniformPointsByIteration(segmentPoints, getSegmentTPointFuns, segments, precision);
result.segmentPoints.push(endPoint);
return result;
}
function createGetBezierCurveTPointFun(beginPoint, controlPoint1, controlPoint2, endPoint) {
return function(t) {
var tSubed1 = 1 - t;
var tSubed1Pow3 = pow2(tSubed1, 3);
var tSubed1Pow2 = pow2(tSubed1, 2);
var tPow3 = pow2(t, 3);
var tPow2 = pow2(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];
};
}
function getTwoPointDistance2(_ref, _ref2) {
var _ref3 = (0, _slicedToArray22["default"])(_ref, 2), ax = _ref3[0], ay = _ref3[1];
var _ref4 = (0, _slicedToArray22["default"])(_ref2, 2), bx = _ref4[0], by = _ref4[1];
return sqrt(pow2(ax - bx, 2) + pow2(ay - by, 2));
}
function getNumsSum(nums) {
return nums.reduce(function(sum, num) {
return sum + num;
}, 0);
}
function getSegmentPointsDistance(segmentPoints) {
return segmentPoints.map(function(points, i) {
return new Array(points.length - 1).fill(0).map(function(temp, j) {
return getTwoPointDistance2(points[j], points[j + 1]);
});
});
}
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);
});
});
}
function getAllDeviations(segmentPointsDistance, avgLength) {
return segmentPointsDistance.map(function(seg) {
return seg.map(function(s) {
return abs2(s - avgLength);
});
}).map(function(seg) {
return getNumsSum(seg);
}).reduce(function(total, v) {
return total + v;
}, 0);
}
function calcUniformPointsByIteration(segmentPoints, getSegmentTPointFuns, segments, precision) {
var rounds = 4;
var cycles = 1;
var _loop = function _loop2() {
var totalPointsNum = segmentPoints.reduce(function(total, seg) {
return total + seg.length;
}, 0);
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;
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);
});
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;
getSegmentTPointFuns.forEach(function(getSegmentTPointFun, i) {
var currentSegmentPointsNum = segmentPointsNum[i];
var t = new Array(currentSegmentPointsNum).fill("").map(function(foo, j2) {
return j2 / segmentPointsNum[i];
});
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,
cycles,
rounds
};
}
function bezierCurveToPolyline2(bezierCurve) {
var precision = arguments.length > 1 && arguments[1] !== void 0 ? 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;
}
function getBezierCurveLength2(bezierCurve) {
var precision = arguments.length > 1 && arguments[1] !== void 0 ? 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;
var pointsDistance = getSegmentPointsDistance([segmentPoints])[0];
var length = getNumsSum(pointsDistance);
return length;
}
var _default = bezierCurveToPolyline2;
exports["default"] = _default;
})(bezierCurveToPolyline);
var polylineToBezierCurve$1 = {};
(function(exports) {
var _interopRequireDefault2 = interopRequireDefault.exports;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = void 0;
var _slicedToArray22 = _interopRequireDefault2(slicedToArray.exports);
var _toConsumableArray22 = _interopRequireDefault2(toConsumableArray.exports);
function polylineToBezierCurve2(polyline) {
var close = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
var offsetA = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0.25;
var offsetB = arguments.length > 3 && arguments[3] !== void 0 ? 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, _toConsumableArray22["default"])(getBezierCurveLineControlPoints(polyline, i, close, offsetA, offsetB)), [polyline[i + 1]]);
});
if (close)
closeBezierCurve(bezierCurvePoints, startPoint);
bezierCurvePoints.unshift(polyline[0]);
return bezierCurvePoints;
}
function getBezierCurveLineControlPoints(polyline, index) {
var close = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : false;
var offsetA = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : 0.25;
var offsetB = arguments.length > 4 && arguments[4] !== void 0 ? 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])]];
}
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;
}
function getSymmetryPoint(point, centerPoint) {
var _point = (0, _slicedToArray22["default"])(point, 2), px = _point[0], py = _point[1];
var _centerPoint = (0, _slicedToArray22["default"])(centerPoint, 2), cx = _centerPoint[0], cy = _centerPoint[1];
var minusX = cx - px;
var minusY = cy - py;
return [cx + minusX, cy + minusY];
}
var _default = polylineToBezierCurve2;
exports["default"] = _default;
})(polylineToBezierCurve$1);
(function(exports) {
var _interopRequireDefault2 = interopRequireDefault.exports;
Object.defineProperty(exports, "__esModule", {
value: true
});
Object.defineProperty(exports, "bezierCurveToPolyline", {
enumerable: true,
get: function get() {
return _bezierCurveToPolyline.bezierCurveToPolyline;
}
});
Object.defineProperty(exports, "getBezierCurveLength", {
enumerable: true,
get: function get() {
return _bezierCurveToPolyline.getBezierCurveLength;
}
});
Object.defineProperty(exports, "polylineToBezierCurve", {
enumerable: true,
get: function get() {
return _polylineToBezierCurve["default"];
}
});
exports["default"] = void 0;
var _bezierCurveToPolyline = bezierCurveToPolyline;
var _polylineToBezierCurve = _interopRequireDefault2(polylineToBezierCurve$1);
var _default = {
bezierCurveToPolyline: _bezierCurveToPolyline.bezierCurveToPolyline,
getBezierCurveLength: _bezierCurveToPolyline.getBezierCurveLength,
polylineToBezierCurve: _polylineToBezierCurve["default"]
};
exports["default"] = _default;
})(lib$2);
var util$1 = {};
var _typeof = { exports: {} };
(function(module) {
function _typeof3(obj) {
"@babel/helpers - typeof";
return module.exports = _typeof3 = typeof Symbol == "function" && typeof Symbol.iterator == "symbol" ? function(obj2) {
return typeof obj2;
} : function(obj2) {
return obj2 && typeof Symbol == "function" && obj2.constructor === Symbol && obj2 !== Symbol.prototype ? "symbol" : typeof obj2;
}, module.exports.__esModule = true, module.exports["default"] = module.exports, _typeof3(obj);
}
module.exports = _typeof3, module.exports.__esModule = true, module.exports["default"] = module.exports;
})(_typeof);
(function(exports) {
var _interopRequireDefault2 = interopRequireDefault.exports;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.deepClone = deepClone2;
exports.eliminateBlur = eliminateBlur;
exports.checkPointIsInCircle = checkPointIsInCircle;
exports.getTwoPointDistance = getTwoPointDistance2;
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 = getCircleRadianPoint2;
exports.getRegularPolygonPoints = getRegularPolygonPoints;
exports["default"] = void 0;
var _toConsumableArray22 = _interopRequireDefault2(toConsumableArray.exports);
var _slicedToArray22 = _interopRequireDefault2(slicedToArray.exports);
var _typeof22 = _interopRequireDefault2(_typeof.exports);
var abs2 = Math.abs, sqrt = Math.sqrt, sin = Math.sin, cos = Math.cos, max = Math.max, min = Math.min, PI = Math.PI;
function deepClone2(object) {
var recursion = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : false;
if (!object)
return object;
var parse = JSON.parse, stringify = JSON.stringify;
if (!recursion)
return parse(stringify(object));
var clonedObj = object instanceof Array ? [] : {};
if (object && (0, _typeof22["default"])(object) === "object") {
for (var key in object) {
if (object.hasOwnProperty(key))