@idux/charts-core 0.4.0 → 0.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/composables/useChart.d.ts +1 -1
- package/dist/index.js +121 -114
- package/dist/index.umd.cjs +1 -1
- package/dist/utils/index.d.ts +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,7 +2,7 @@ import { type Ref, type ShallowRef } from 'vue-demi';
|
|
|
2
2
|
import { type EChartsType } from 'echarts/core';
|
|
3
3
|
import { type ChartProps } from '../types';
|
|
4
4
|
export type MaybeRef<T> = T | Ref<T>;
|
|
5
|
-
export declare function useChart<U extends ChartProps>(options: MaybeRef<U>): {
|
|
5
|
+
export declare function useChart<U extends ChartProps>(options: MaybeRef<U>, listeners?: Record<string, Function>): {
|
|
6
6
|
containerRef: ShallowRef<HTMLDivElement | undefined>;
|
|
7
7
|
chartRef: ShallowRef<EChartsType | undefined>;
|
|
8
8
|
};
|
package/dist/index.js
CHANGED
|
@@ -1,81 +1,83 @@
|
|
|
1
|
-
import { DataZoomComponent as
|
|
2
|
-
import { LabelLayout as
|
|
3
|
-
import { SVGRenderer as
|
|
4
|
-
import { watch as
|
|
5
|
-
import { throttle as
|
|
6
|
-
import { isEqual as
|
|
7
|
-
function
|
|
8
|
-
let
|
|
9
|
-
|
|
10
|
-
[e, o,
|
|
11
|
-
([n, a
|
|
12
|
-
!
|
|
1
|
+
import { DataZoomComponent as G, LegendComponent as M, GridComponent as j, TitleComponent as N, TooltipComponent as V } from "echarts/components";
|
|
2
|
+
import { LabelLayout as H, UniversalTransition as P } from "echarts/features";
|
|
3
|
+
import { SVGRenderer as U } from "echarts/renderers";
|
|
4
|
+
import { watch as C, shallowRef as g, computed as p, unref as f, onMounted as Z, onBeforeUnmount as _, watchEffect as y, isVue2 as z, defineComponent as q, h as $ } from "vue-demi";
|
|
5
|
+
import { throttle as J, init as K, use as Q, registerTheme as X } from "echarts/core";
|
|
6
|
+
import { isEqual as Y, cloneDeep as R, isBoolean as k, isNil as ee } from "lodash-es";
|
|
7
|
+
function te(e, o, r) {
|
|
8
|
+
let t;
|
|
9
|
+
C(
|
|
10
|
+
[e, o, r],
|
|
11
|
+
([s, n, a], c, u) => {
|
|
12
|
+
!s || !n || (a ? (t ?? (t = J(() => n.resize(), 16)), oe(s, t)) : S(s, t), u(() => S(s, t)));
|
|
13
13
|
}
|
|
14
14
|
);
|
|
15
15
|
}
|
|
16
|
-
const
|
|
17
|
-
function
|
|
16
|
+
const h = /* @__PURE__ */ new Map();
|
|
17
|
+
function oe(e, o, r) {
|
|
18
18
|
if (!(!e || !o))
|
|
19
|
-
if (
|
|
20
|
-
|
|
19
|
+
if (h.has(e))
|
|
20
|
+
h.get(e).listeners.push(o);
|
|
21
21
|
else {
|
|
22
|
-
const
|
|
23
|
-
|
|
22
|
+
const t = [o], s = new ResizeObserver((n) => {
|
|
23
|
+
n.forEach((a) => t.forEach((c) => c(a)));
|
|
24
24
|
});
|
|
25
|
-
|
|
25
|
+
s.observe(e, r), h.set(e, { listeners: t, ro: s });
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
-
function
|
|
29
|
-
if (!e || !o || !
|
|
28
|
+
function S(e, o) {
|
|
29
|
+
if (!e || !o || !h.has(e))
|
|
30
30
|
return;
|
|
31
|
-
const { listeners:
|
|
32
|
-
|
|
31
|
+
const { listeners: r, ro: t } = h.get(e), s = r.indexOf(o);
|
|
32
|
+
s > -1 && (r.splice(s, 1), r.length === 0 && (t.disconnect(), h.delete(e)));
|
|
33
33
|
}
|
|
34
|
-
const
|
|
35
|
-
function
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
if (!
|
|
34
|
+
const w = { text: "加载中..." };
|
|
35
|
+
function ne(e, o) {
|
|
36
|
+
const r = g(), t = g(), s = g(), n = p(() => f(e).autoResize ?? !0), a = p(() => f(e).group), c = p(() => f(e).initOption), u = p(() => f(e).loading), d = p(() => f(e).setOptionOpts), x = p(() => f(e).theme ?? "seer"), v = () => {
|
|
37
|
+
const l = r.value;
|
|
38
|
+
if (!l)
|
|
39
39
|
return;
|
|
40
|
-
const
|
|
41
|
-
|
|
42
|
-
let
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}),
|
|
46
|
-
})
|
|
47
|
-
|
|
40
|
+
const i = K(l, x.value, c.value), F = f(e), { restOptions: D, events: T } = L(F, o, !1);
|
|
41
|
+
i.setOption(D, d.value), s.value = R(D), T.forEach(([E, A, W]) => {
|
|
42
|
+
let m = A;
|
|
43
|
+
W && (m = (...I) => {
|
|
44
|
+
A(...I), i.off(E, m);
|
|
45
|
+
}), i.on(E, m);
|
|
46
|
+
});
|
|
47
|
+
const b = F.onReady || (o == null ? void 0 : o.ready);
|
|
48
|
+
b && b(i), t.value = i;
|
|
49
|
+
}, O = () => {
|
|
48
50
|
t.value && (t.value.dispose(), t.value = void 0);
|
|
49
51
|
};
|
|
50
|
-
return
|
|
51
|
-
() =>
|
|
52
|
-
(
|
|
53
|
-
const
|
|
54
|
-
if (!
|
|
52
|
+
return Z(() => v()), _(() => O()), C(
|
|
53
|
+
() => f(e),
|
|
54
|
+
(l) => {
|
|
55
|
+
const i = t.value;
|
|
56
|
+
if (!i)
|
|
55
57
|
return;
|
|
56
|
-
const { restOptions:
|
|
57
|
-
|
|
58
|
+
const { restOptions: F } = L(l);
|
|
59
|
+
Y(F, s.value) || (i.setOption(F, d.value), s.value = R(F));
|
|
58
60
|
},
|
|
59
61
|
{
|
|
60
62
|
deep: !0
|
|
61
63
|
}
|
|
62
|
-
),
|
|
63
|
-
|
|
64
|
-
}),
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
}),
|
|
68
|
-
const
|
|
69
|
-
if (!
|
|
64
|
+
), C([x, c], () => {
|
|
65
|
+
O(), v();
|
|
66
|
+
}), y(() => {
|
|
67
|
+
const l = a.value;
|
|
68
|
+
l && t.value && (t.value.group = l);
|
|
69
|
+
}), y(() => {
|
|
70
|
+
const l = t.value;
|
|
71
|
+
if (!l)
|
|
70
72
|
return;
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
}),
|
|
73
|
+
const i = u.value;
|
|
74
|
+
i ? l.showLoading(k(i) ? w : { ...w, ...i }) : l.hideLoading();
|
|
75
|
+
}), te(r, t, n), { containerRef: r, chartRef: t };
|
|
74
76
|
}
|
|
75
|
-
function
|
|
77
|
+
function re(e) {
|
|
76
78
|
return /^on[^a-z]/.test(e);
|
|
77
79
|
}
|
|
78
|
-
const
|
|
80
|
+
const se = [
|
|
79
81
|
"class",
|
|
80
82
|
"style",
|
|
81
83
|
"autoResize",
|
|
@@ -85,25 +87,53 @@ const re = [
|
|
|
85
87
|
"theme",
|
|
86
88
|
"onReady"
|
|
87
89
|
];
|
|
88
|
-
function
|
|
89
|
-
const t = {},
|
|
90
|
+
function L(e, o = {}, r = !0) {
|
|
91
|
+
const t = {}, s = [];
|
|
90
92
|
return Object.keys(e).forEach((n) => {
|
|
91
|
-
if (!
|
|
92
|
-
if (
|
|
93
|
-
if (
|
|
93
|
+
if (!se.includes(n)) {
|
|
94
|
+
if (re(n)) {
|
|
95
|
+
if (r)
|
|
94
96
|
return;
|
|
95
97
|
const a = e[n];
|
|
96
98
|
if (a) {
|
|
97
|
-
const
|
|
98
|
-
|
|
99
|
+
const c = n.endsWith("Once"), u = c ? n.length - 4 : void 0, d = n.charAt(2).toLowerCase() + n.substring(3, u);
|
|
100
|
+
s.push([d, a, c]);
|
|
99
101
|
}
|
|
100
102
|
return;
|
|
101
103
|
}
|
|
102
104
|
t[n] = e[n];
|
|
103
105
|
}
|
|
104
|
-
}),
|
|
106
|
+
}), z && !r && Object.keys(o).forEach((n) => {
|
|
107
|
+
if (n !== "ready")
|
|
108
|
+
return;
|
|
109
|
+
const a = o[n];
|
|
110
|
+
if (a) {
|
|
111
|
+
const c = n.startsWith("~"), u = c ? 1 : 0, d = n.substring(u);
|
|
112
|
+
s.push([d, a, c]);
|
|
113
|
+
}
|
|
114
|
+
}), { restOptions: t, events: s };
|
|
105
115
|
}
|
|
106
|
-
const
|
|
116
|
+
const B = q({
|
|
117
|
+
name: "IxChart",
|
|
118
|
+
inheritAttrs: !1,
|
|
119
|
+
// @ts-ignore
|
|
120
|
+
setup(e, { attrs: o, listeners: r }) {
|
|
121
|
+
const { containerRef: t } = ne(o, r);
|
|
122
|
+
return { containerRef: t };
|
|
123
|
+
},
|
|
124
|
+
render() {
|
|
125
|
+
const { class: e, style: o } = this.$attrs;
|
|
126
|
+
return $("div", {
|
|
127
|
+
ref: "containerRef",
|
|
128
|
+
class: e,
|
|
129
|
+
style: {
|
|
130
|
+
width: "100%",
|
|
131
|
+
height: "100%",
|
|
132
|
+
...o
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
}), ie = [
|
|
107
137
|
"#458FFF",
|
|
108
138
|
"#45D9A3",
|
|
109
139
|
"#FFC145",
|
|
@@ -146,8 +176,8 @@ const se = [
|
|
|
146
176
|
"#689FFF",
|
|
147
177
|
"#45D9A3",
|
|
148
178
|
"#99ACD1"
|
|
149
|
-
],
|
|
150
|
-
color:
|
|
179
|
+
], ae = {
|
|
180
|
+
color: ie,
|
|
151
181
|
textStyle: {
|
|
152
182
|
color: "#2F3540",
|
|
153
183
|
fontSize: "12px"
|
|
@@ -268,66 +298,43 @@ const se = [
|
|
|
268
298
|
function ge(e) {
|
|
269
299
|
return !!(e && e.xAxis && e.xAxis.data);
|
|
270
300
|
}
|
|
271
|
-
function
|
|
272
|
-
|
|
273
|
-
...e,
|
|
274
|
-
...o
|
|
275
|
-
};
|
|
276
|
-
return U ? { attrs: t } : t;
|
|
301
|
+
function Ce(e, o) {
|
|
302
|
+
return z ? { attrs: { ...e }, on: { ...o } } : { ...e };
|
|
277
303
|
}
|
|
278
|
-
function
|
|
279
|
-
return Object.entries(e).reduce((o, [
|
|
304
|
+
function xe(e) {
|
|
305
|
+
return Object.entries(e).reduce((o, [r, t]) => (t !== void 0 && (o[r] = t), o), {});
|
|
280
306
|
}
|
|
281
307
|
function ve(e) {
|
|
282
|
-
return
|
|
308
|
+
return ee(e) ? [] : Array.isArray(e) ? e : [e];
|
|
283
309
|
}
|
|
284
|
-
function
|
|
285
|
-
|
|
286
|
-
const
|
|
287
|
-
|
|
310
|
+
function ce(e, o) {
|
|
311
|
+
Q(o), X("seer", ae);
|
|
312
|
+
const r = (t) => {
|
|
313
|
+
t.component(e.name, e);
|
|
288
314
|
};
|
|
289
|
-
e.install =
|
|
315
|
+
e.install = r;
|
|
290
316
|
}
|
|
291
|
-
|
|
292
|
-
name: "IxChart",
|
|
293
|
-
inheritAttrs: !1,
|
|
294
|
-
setup(e, { attrs: o }) {
|
|
295
|
-
const { containerRef: t } = oe(o);
|
|
296
|
-
return { containerRef: t };
|
|
297
|
-
},
|
|
298
|
-
render() {
|
|
299
|
-
const { class: e, style: o } = this.$attrs, t = ae({
|
|
300
|
-
class: e,
|
|
301
|
-
style: _({
|
|
302
|
-
width: "100%",
|
|
303
|
-
height: "100%",
|
|
304
|
-
...o
|
|
305
|
-
})
|
|
306
|
-
});
|
|
307
|
-
return q("div", { ref: "containerRef", ...t });
|
|
308
|
-
}
|
|
309
|
-
});
|
|
310
|
-
le(w, [
|
|
311
|
-
T,
|
|
312
|
-
W,
|
|
313
|
-
I,
|
|
317
|
+
ce(B, [
|
|
314
318
|
G,
|
|
315
319
|
M,
|
|
316
|
-
V,
|
|
317
320
|
j,
|
|
318
|
-
|
|
321
|
+
N,
|
|
322
|
+
V,
|
|
323
|
+
H,
|
|
324
|
+
P,
|
|
325
|
+
U
|
|
319
326
|
]);
|
|
320
|
-
const
|
|
327
|
+
const Oe = B;
|
|
321
328
|
export {
|
|
322
|
-
|
|
329
|
+
Oe as IxChart,
|
|
323
330
|
ve as convertArray,
|
|
324
|
-
|
|
325
|
-
|
|
331
|
+
ce as createInstall,
|
|
332
|
+
xe as filterEmptyProps,
|
|
326
333
|
ge as isVertical,
|
|
327
|
-
|
|
328
|
-
|
|
334
|
+
Ce as mergeAttrs,
|
|
335
|
+
ie as seerColors,
|
|
329
336
|
he as seerColorsForMore,
|
|
330
337
|
me as seerColorsForRisk,
|
|
331
|
-
|
|
332
|
-
|
|
338
|
+
ae as seerTheme,
|
|
339
|
+
ne as useChart
|
|
333
340
|
};
|
package/dist/index.umd.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(o,
|
|
1
|
+
(function(o,d){typeof exports=="object"&&typeof module<"u"?d(exports,require("echarts/components"),require("echarts/features"),require("echarts/renderers"),require("vue-demi"),require("echarts/core"),require("lodash-es")):typeof define=="function"&&define.amd?define(["exports","echarts/components","echarts/features","echarts/renderers","vue-demi","echarts/core","lodash-es"],d):(o=typeof globalThis<"u"?globalThis:o||self,d(o.IduxChartsCore={},o.echarts,o.echarts,o.echarts,o.VueDemi,o.echarts,o._))})(this,function(o,d,y,M,r,O,g){"use strict";function V(e,n,i){let t;r.watch([e,n,i],([a,s,l],f,h)=>{!a||!s||(l?(t??(t=O.throttle(()=>s.resize(),16)),j(a,t)):A(a,t),h(()=>A(a,t)))})}const F=new Map;function j(e,n,i){if(!(!e||!n))if(F.has(e))F.get(e).listeners.push(n);else{const t=[n],a=new ResizeObserver(s=>{s.forEach(l=>t.forEach(f=>f(l)))});a.observe(e,i),F.set(e,{listeners:t,ro:a})}}function A(e,n){if(!e||!n||!F.has(e))return;const{listeners:i,ro:t}=F.get(e),a=i.indexOf(n);a>-1&&(i.splice(a,1),i.length===0&&(t.disconnect(),F.delete(e)))}const w={text:"加载中..."};function E(e,n){const i=r.shallowRef(),t=r.shallowRef(),a=r.shallowRef(),s=r.computed(()=>r.unref(e).autoResize??!0),l=r.computed(()=>r.unref(e).group),f=r.computed(()=>r.unref(e).initOption),h=r.computed(()=>r.unref(e).loading),p=r.computed(()=>r.unref(e).setOptionOpts),z=r.computed(()=>r.unref(e).theme??"seer"),B=()=>{const u=i.value;if(!u)return;const c=O.init(u,z.value,f.value),C=r.unref(e),{restOptions:I,events:J}=R(C,n,!1);c.setOption(I,p.value),a.value=g.cloneDeep(I),J.forEach(([q,v,K])=>{let x=v;K&&(x=(...Q)=>{v(...Q),c.off(q,x)}),c.on(q,x)});const W=C.onReady||(n==null?void 0:n.ready);W&&W(c),t.value=c},T=()=>{t.value&&(t.value.dispose(),t.value=void 0)};return r.onMounted(()=>B()),r.onBeforeUnmount(()=>T()),r.watch(()=>r.unref(e),u=>{const c=t.value;if(!c)return;const{restOptions:C}=R(u);g.isEqual(C,a.value)||(c.setOption(C,p.value),a.value=g.cloneDeep(C))},{deep:!0}),r.watch([z,f],()=>{T(),B()}),r.watchEffect(()=>{const u=l.value;u&&t.value&&(t.value.group=u)}),r.watchEffect(()=>{const u=t.value;if(!u)return;const c=h.value;c?u.showLoading(g.isBoolean(c)?w:{...w,...c}):u.hideLoading()}),V(i,t,s),{containerRef:i,chartRef:t}}function G(e){return/^on[^a-z]/.test(e)}const P=["class","style","autoResize","group","loading","setOptionOpts","theme","onReady"];function R(e,n={},i=!0){const t={},a=[];return Object.keys(e).forEach(s=>{if(!P.includes(s)){if(G(s)){if(i)return;const l=e[s];if(l){const f=s.endsWith("Once"),h=f?s.length-4:void 0,p=s.charAt(2).toLowerCase()+s.substring(3,h);a.push([p,l,f])}return}t[s]=e[s]}}),r.isVue2&&!i&&Object.keys(n).forEach(s=>{if(s!=="ready")return;const l=n[s];if(l){const f=s.startsWith("~"),h=f?1:0,p=s.substring(h);a.push([p,l,f])}}),{restOptions:t,events:a}}const b=r.defineComponent({name:"IxChart",inheritAttrs:!1,setup(e,{attrs:n,listeners:i}){const{containerRef:t}=E(n,i);return{containerRef:t}},render(){const{class:e,style:n}=this.$attrs;return r.h("div",{ref:"containerRef",class:e,style:{width:"100%",height:"100%",...n}})}}),m=["#458FFF","#45D9A3","#FFC145","#F5654F","#6A6AFD","#6ED1FF","#008787","#FF9245","#F587B3","#8352CC","#65779B"],N=["#458FFF","#C8DEFF","#45D9A3","#C8F4E4","#FFC145","#FFEDC8","#F5654F","#FCD1CB","#6A6AFD","#D3D3FE","#6ED1FF","#D3D3FE","#008787","#B3DBDB","#FF9245","#FFDFC8","#F587B3","#FCDBE8","#8352CC","#FCDBE8","#65779B","#65779B"],_=["#8C1604","#DB4C35","#FF9245","#FFC145","#689FFF","#45D9A3","#99ACD1"],S={color:m,textStyle:{color:"#2F3540",fontSize:"12px"},bar:{barGap:.2,barWidth:10,label:{color:"#6F7785",position:"top"}},line:{label:{color:"#6F7785",position:"top"}},pie:{avoidLabelOverlap:!1,radius:["70%","80%"],itemStyle:{borderWidth:1,borderColor:"#fff"},label:{show:!1,color:"#2F3540",formatter:"{c}",position:"inside"}},legend:{itemWidth:12,itemHeight:12,textStyle:{color:"#6F7785",fontSize:"12px"}},title:{itemGap:4,textStyle:{color:"#2F3540",fontSize:"12px",fontWeight:500},subtextStyle:{color:"#6F7785",fontSize:"12px"}},tooltip:{borderWidth:0,padding:12,textStyle:{color:"#2F3540"},axisPointer:{z:1,lineStyle:{type:"solid",color:"#E1E5EB"}}},categoryAxis:{axisLine:{show:!0,lineStyle:{color:"#EDF1F7"}},axisTick:{show:!0,alignWithLabel:!0,lineStyle:{color:"#EDF1F7"}},axisLabel:{color:"#6F7785"},splitLine:{show:!1},splitArea:{show:!1}},valueAxis:{axisLine:{show:!1},axisTick:{show:!1},axisLabel:{color:"#6F7785"},splitLine:{lineStyle:{color:"#EDF1F7"}},splitArea:{show:!1},nameTextStyle:{color:"#6F7785",padding:[0,30,-4,0]}},dataZoom:{height:16}};function H(e){return!!(e&&e.xAxis&&e.xAxis.data)}function U(e,n){return r.isVue2?{attrs:{...e},on:{...n}}:{...e}}function Z(e){return Object.entries(e).reduce((n,[i,t])=>(t!==void 0&&(n[i]=t),n),{})}function D(e){return g.isNil(e)?[]:Array.isArray(e)?e:[e]}function L(e,n){O.use(n),O.registerTheme("seer",S);const i=t=>{t.component(e.name,e)};e.install=i}L(b,[d.DataZoomComponent,d.LegendComponent,d.GridComponent,d.TitleComponent,d.TooltipComponent,y.LabelLayout,y.UniversalTransition,M.SVGRenderer]);const $=b;o.IxChart=$,o.convertArray=D,o.createInstall=L,o.filterEmptyProps=Z,o.isVertical=H,o.mergeAttrs=U,o.seerColors=m,o.seerColorsForMore=N,o.seerColorsForRisk=_,o.seerTheme=S,o.useChart=E,Object.defineProperty(o,Symbol.toStringTag,{value:"Module"})});
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export type Writeable<T> = {
|
|
|
3
3
|
-readonly [P in keyof T]: T[P];
|
|
4
4
|
};
|
|
5
5
|
export declare function isVertical(option: any): boolean;
|
|
6
|
-
export declare function mergeAttrs(props: any,
|
|
6
|
+
export declare function mergeAttrs(props: any, listeners?: Record<string, Function>): any;
|
|
7
7
|
export declare function filterEmptyProps<T extends object>(props: T): T;
|
|
8
8
|
export declare function convertArray<T>(value: T | undefined | null | Array<T | undefined | null>): T[];
|
|
9
9
|
export declare function convertArray<T>(value: T | readonly T[]): readonly T[];
|