@cardenelabs/cdl 0.40.1 → 0.40.2
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 +24 -1
- package/dist/index.cjs +56 -34
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +56 -34
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +56 -34
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +56 -34
- package/dist/react.js.map +1 -1
- package/package.json +1 -1
- package/src/kinds/chart-pie.tsx +46 -4
- package/src/kinds/chart-slope.tsx +1 -65
- package/src/kinds/label-stack.ts +77 -0
package/dist/react.js
CHANGED
|
@@ -11857,6 +11857,38 @@ function interpolateColor(template, stateValues, fallback) {
|
|
|
11857
11857
|
if (!template) return fallback;
|
|
11858
11858
|
return interpolate(template, stateValues);
|
|
11859
11859
|
}
|
|
11860
|
+
|
|
11861
|
+
// src/kinds/label-stack.ts
|
|
11862
|
+
function \u540D\u672D\u306E\u6BB5\u3092\u307B\u3069\u304F(\u771F\u306Ey, \u9593\u9694, \u4E0A\u9650, \u4E0B\u9650) {
|
|
11863
|
+
const \u4EF6\u6570 = \u771F\u306Ey.length;
|
|
11864
|
+
if (\u4EF6\u6570 === 0) return [];
|
|
11865
|
+
const \u4E26\u3073 = \u771F\u306Ey.map((y, i) => ({ y, i })).sort((a, b) => a.y - b.y || a.i - b.i);
|
|
11866
|
+
const \u7D50\u679C = new Array(\u4EF6\u6570);
|
|
11867
|
+
if (\u9593\u9694 * (\u4EF6\u6570 - 1) > \u4E0B\u9650 - \u4E0A\u9650) {
|
|
11868
|
+
\u4E26\u3073.forEach((e, k) => {
|
|
11869
|
+
\u7D50\u679C[e.i] = \u4EF6\u6570 > 1 ? \u4E0A\u9650 + (\u4E0B\u9650 - \u4E0A\u9650) / (\u4EF6\u6570 - 1) * k : (\u4E0A\u9650 + \u4E0B\u9650) / 2;
|
|
11870
|
+
});
|
|
11871
|
+
return \u7D50\u679C;
|
|
11872
|
+
}
|
|
11873
|
+
const \u584A\u305F\u3061 = [];
|
|
11874
|
+
\u4E26\u3073.forEach((e, k) => {
|
|
11875
|
+
\u584A\u305F\u3061.push({ \u5408\u8A08: e.y - \u9593\u9694 * k, \u4EF6\u6570: 1 });
|
|
11876
|
+
while (\u584A\u305F\u3061.length >= 2) {
|
|
11877
|
+
const \u5F8C = \u584A\u305F\u3061[\u584A\u305F\u3061.length - 1];
|
|
11878
|
+
const \u524D = \u584A\u305F\u3061[\u584A\u305F\u3061.length - 2];
|
|
11879
|
+
if (\u524D.\u5408\u8A08 / \u524D.\u4EF6\u6570 <= \u5F8C.\u5408\u8A08 / \u5F8C.\u4EF6\u6570) break;
|
|
11880
|
+
\u584A\u305F\u3061.splice(\u584A\u305F\u3061.length - 2, 2, { \u5408\u8A08: \u524D.\u5408\u8A08 + \u5F8C.\u5408\u8A08, \u4EF6\u6570: \u524D.\u4EF6\u6570 + \u5F8C.\u4EF6\u6570 });
|
|
11881
|
+
}
|
|
11882
|
+
});
|
|
11883
|
+
const \u307B\u3069\u3044\u305F = [];
|
|
11884
|
+
\u584A\u305F\u3061.forEach((\u584A) => {
|
|
11885
|
+
const \u5E73\u5747 = \u584A.\u5408\u8A08 / \u584A.\u4EF6\u6570;
|
|
11886
|
+
for (let j = 0; j < \u584A.\u4EF6\u6570; j++) \u307B\u3069\u3044\u305F.push(\u5E73\u5747 + \u9593\u9694 * \u307B\u3069\u3044\u305F.length);
|
|
11887
|
+
});
|
|
11888
|
+
const \u305A\u308C = Math.max(0, \u4E0A\u9650 - \u307B\u3069\u3044\u305F[0]) - Math.max(0, \u307B\u3069\u3044\u305F[\u4EF6\u6570 - 1] - \u4E0B\u9650);
|
|
11889
|
+
\u4E26\u3073.forEach((e, k) => \u7D50\u679C[e.i] = \u307B\u3069\u3044\u305F[k] + \u305A\u308C);
|
|
11890
|
+
return \u7D50\u679C;
|
|
11891
|
+
}
|
|
11860
11892
|
function \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(cx, cy, r, \u958B\u304D, \u8D77\u70B9 = -Math.PI / 2, \u5168\u5468 = Math.PI * 2) {
|
|
11861
11893
|
if (\u958B\u304D <= 0) return null;
|
|
11862
11894
|
if (\u958B\u304D >= 1 && \u5168\u5468 >= Math.PI * 2) return /* @__PURE__ */ jsx("circle", { cx, cy, r });
|
|
@@ -11937,6 +11969,26 @@ function ChartPieNode({
|
|
|
11937
11969
|
const \u5207\u308A\u629C\u304Did = `cdl-pie-draw-${instanceId}`;
|
|
11938
11970
|
const \u5F71id = `cdl-pie-shadow-${instanceId}`;
|
|
11939
11971
|
const \u958B\u304D\u59CB\u3081\u305F = (startFrac) => !drawing || \u958B\u304D > startFrac;
|
|
11972
|
+
const \u540D\u672D\u306E\u884C = \u5272\u5408\u306E\u7D1A + \u540D\u524D\u306E\u7D1A + 3;
|
|
11973
|
+
const \u540D\u672D\u306E\u5074 = slices.map((s) => Math.cos(s.\u4E2D\u592E\u89D2) >= 0);
|
|
11974
|
+
const \u540D\u672D\u306E\u771F\u306Ey = slices.map((s) => cy + (radius + \u5F15\u304D\u51FA\u3057) * Math.sin(s.\u4E2D\u592E\u89D2));
|
|
11975
|
+
const \u540D\u672D\u306Ey = (() => {
|
|
11976
|
+
const \u51FA\u3059 = [...\u540D\u672D\u306E\u771F\u306Ey];
|
|
11977
|
+
for (const \u5074 of [true, false]) {
|
|
11978
|
+
const \u756A\u53F7 = \u540D\u672D\u306E\u5074.flatMap((\u53F3, i) => \u53F3 === \u5074 ? [i] : []);
|
|
11979
|
+
if (\u756A\u53F7.length === 0) continue;
|
|
11980
|
+
const \u76F4\u3057\u305F = \u540D\u672D\u306E\u6BB5\u3092\u307B\u3069\u304F(
|
|
11981
|
+
\u756A\u53F7.map((i) => \u540D\u672D\u306E\u771F\u306Ey[i]),
|
|
11982
|
+
\u540D\u672D\u306E\u884C,
|
|
11983
|
+
PAD_TOP2 + \u540D\u672D\u306E\u7E26\u306E\u5F35\u308A\u51FA\u3057,
|
|
11984
|
+
node.h - PAD_BOTTOM2 - \u540D\u672D\u306E\u7E26\u306E\u5F35\u308A\u51FA\u3057
|
|
11985
|
+
);
|
|
11986
|
+
\u756A\u53F7.forEach((i, k) => \u51FA\u3059[i] = \u76F4\u3057\u305F[k]);
|
|
11987
|
+
}
|
|
11988
|
+
return \u51FA\u3059;
|
|
11989
|
+
})();
|
|
11990
|
+
const \u8098\u306Ex = (\u53F3) => cx + (\u53F3 ? 1 : -1) * (radius + \u5F15\u304D\u51FA\u3057);
|
|
11991
|
+
const \u5B57\u306Ex = (\u53F3) => \u8098\u306Ex(\u53F3) + (\u53F3 ? \u5B57\u307E\u3067\u306E\u9593 : -\u5B57\u307E\u3067\u306E\u9593);
|
|
11940
11992
|
return /* @__PURE__ */ jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
|
|
11941
11993
|
/* @__PURE__ */ jsx(
|
|
11942
11994
|
"rect",
|
|
@@ -12009,12 +12061,12 @@ function ChartPieNode({
|
|
|
12009
12061
|
),
|
|
12010
12062
|
slices.map((s, idx) => {
|
|
12011
12063
|
if (!\u958B\u304D\u59CB\u3081\u305F(s.startFrac)) return null;
|
|
12012
|
-
const \u53F3 =
|
|
12064
|
+
const \u53F3 = \u540D\u672D\u306E\u5074[idx];
|
|
12013
12065
|
const \u7E01x = cx + radius * Math.cos(s.\u4E2D\u592E\u89D2);
|
|
12014
12066
|
const \u7E01y = cy + radius * Math.sin(s.\u4E2D\u592E\u89D2);
|
|
12015
|
-
const \u6298\u308Cx =
|
|
12016
|
-
const \u6298\u308Cy =
|
|
12017
|
-
const \u5B57x = \
|
|
12067
|
+
const \u6298\u308Cx = \u8098\u306Ex(\u53F3);
|
|
12068
|
+
const \u6298\u308Cy = \u540D\u672D\u306Ey[idx];
|
|
12069
|
+
const \u5B57x = \u5B57\u306Ex(\u53F3);
|
|
12018
12070
|
return /* @__PURE__ */ jsxs("g", { children: [
|
|
12019
12071
|
/* @__PURE__ */ jsx(
|
|
12020
12072
|
"path",
|
|
@@ -13027,36 +13079,6 @@ function \u4E00\u89A7\u306E\u4E26\u3073(data, \u5DE6, \u53F3\u7AEF, \u7D1A) {
|
|
|
13027
13079
|
return out;
|
|
13028
13080
|
}
|
|
13029
13081
|
var \u7DDA\u306E\u6700\u5C0F\u5E45 = 120;
|
|
13030
|
-
function \u540D\u672D\u306E\u6BB5\u3092\u307B\u3069\u304F(\u771F\u306Ey, \u9593\u9694, \u4E0A\u9650, \u4E0B\u9650) {
|
|
13031
|
-
const \u4EF6\u6570 = \u771F\u306Ey.length;
|
|
13032
|
-
if (\u4EF6\u6570 === 0) return [];
|
|
13033
|
-
const \u4E26\u3073 = \u771F\u306Ey.map((y, i) => ({ y, i })).sort((a, b) => a.y - b.y || a.i - b.i);
|
|
13034
|
-
const \u7D50\u679C = new Array(\u4EF6\u6570);
|
|
13035
|
-
if (\u9593\u9694 * (\u4EF6\u6570 - 1) > \u4E0B\u9650 - \u4E0A\u9650) {
|
|
13036
|
-
\u4E26\u3073.forEach((e, k) => {
|
|
13037
|
-
\u7D50\u679C[e.i] = \u4EF6\u6570 > 1 ? \u4E0A\u9650 + (\u4E0B\u9650 - \u4E0A\u9650) / (\u4EF6\u6570 - 1) * k : (\u4E0A\u9650 + \u4E0B\u9650) / 2;
|
|
13038
|
-
});
|
|
13039
|
-
return \u7D50\u679C;
|
|
13040
|
-
}
|
|
13041
|
-
const \u584A\u305F\u3061 = [];
|
|
13042
|
-
\u4E26\u3073.forEach((e, k) => {
|
|
13043
|
-
\u584A\u305F\u3061.push({ \u5408\u8A08: e.y - \u9593\u9694 * k, \u4EF6\u6570: 1 });
|
|
13044
|
-
while (\u584A\u305F\u3061.length >= 2) {
|
|
13045
|
-
const \u5F8C = \u584A\u305F\u3061[\u584A\u305F\u3061.length - 1];
|
|
13046
|
-
const \u524D = \u584A\u305F\u3061[\u584A\u305F\u3061.length - 2];
|
|
13047
|
-
if (\u524D.\u5408\u8A08 / \u524D.\u4EF6\u6570 <= \u5F8C.\u5408\u8A08 / \u5F8C.\u4EF6\u6570) break;
|
|
13048
|
-
\u584A\u305F\u3061.splice(\u584A\u305F\u3061.length - 2, 2, { \u5408\u8A08: \u524D.\u5408\u8A08 + \u5F8C.\u5408\u8A08, \u4EF6\u6570: \u524D.\u4EF6\u6570 + \u5F8C.\u4EF6\u6570 });
|
|
13049
|
-
}
|
|
13050
|
-
});
|
|
13051
|
-
const \u307B\u3069\u3044\u305F = [];
|
|
13052
|
-
\u584A\u305F\u3061.forEach((\u584A) => {
|
|
13053
|
-
const \u5E73\u5747 = \u584A.\u5408\u8A08 / \u584A.\u4EF6\u6570;
|
|
13054
|
-
for (let j = 0; j < \u584A.\u4EF6\u6570; j++) \u307B\u3069\u3044\u305F.push(\u5E73\u5747 + \u9593\u9694 * \u307B\u3069\u3044\u305F.length);
|
|
13055
|
-
});
|
|
13056
|
-
const \u305A\u308C = Math.max(0, \u4E0A\u9650 - \u307B\u3069\u3044\u305F[0]) - Math.max(0, \u307B\u3069\u3044\u305F[\u4EF6\u6570 - 1] - \u4E0B\u9650);
|
|
13057
|
-
\u4E26\u3073.forEach((e, k) => \u7D50\u679C[e.i] = \u307B\u3069\u3044\u305F[k] + \u305A\u308C);
|
|
13058
|
-
return \u7D50\u679C;
|
|
13059
|
-
}
|
|
13060
13082
|
function ChartSlopeNode({
|
|
13061
13083
|
node,
|
|
13062
13084
|
active,
|