@cardenelabs/cdl 0.40.0 → 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 +45 -1
- package/dist/index.cjs +74 -11
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +74 -11
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +74 -11
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +74 -11
- 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 +36 -8
- package/src/kinds/label-stack.ts +77 -0
package/dist/index.js
CHANGED
|
@@ -24356,6 +24356,38 @@ function interpolateColor(template, stateValues, fallback) {
|
|
|
24356
24356
|
if (!template) return fallback;
|
|
24357
24357
|
return interpolate(template, stateValues);
|
|
24358
24358
|
}
|
|
24359
|
+
|
|
24360
|
+
// src/kinds/label-stack.ts
|
|
24361
|
+
function \u540D\u672D\u306E\u6BB5\u3092\u307B\u3069\u304F(\u771F\u306Ey, \u9593\u9694, \u4E0A\u9650, \u4E0B\u9650) {
|
|
24362
|
+
const \u4EF6\u6570 = \u771F\u306Ey.length;
|
|
24363
|
+
if (\u4EF6\u6570 === 0) return [];
|
|
24364
|
+
const \u4E26\u3073 = \u771F\u306Ey.map((y, i) => ({ y, i })).sort((a, b) => a.y - b.y || a.i - b.i);
|
|
24365
|
+
const \u7D50\u679C = new Array(\u4EF6\u6570);
|
|
24366
|
+
if (\u9593\u9694 * (\u4EF6\u6570 - 1) > \u4E0B\u9650 - \u4E0A\u9650) {
|
|
24367
|
+
\u4E26\u3073.forEach((e, k) => {
|
|
24368
|
+
\u7D50\u679C[e.i] = \u4EF6\u6570 > 1 ? \u4E0A\u9650 + (\u4E0B\u9650 - \u4E0A\u9650) / (\u4EF6\u6570 - 1) * k : (\u4E0A\u9650 + \u4E0B\u9650) / 2;
|
|
24369
|
+
});
|
|
24370
|
+
return \u7D50\u679C;
|
|
24371
|
+
}
|
|
24372
|
+
const \u584A\u305F\u3061 = [];
|
|
24373
|
+
\u4E26\u3073.forEach((e, k) => {
|
|
24374
|
+
\u584A\u305F\u3061.push({ \u5408\u8A08: e.y - \u9593\u9694 * k, \u4EF6\u6570: 1 });
|
|
24375
|
+
while (\u584A\u305F\u3061.length >= 2) {
|
|
24376
|
+
const \u5F8C = \u584A\u305F\u3061[\u584A\u305F\u3061.length - 1];
|
|
24377
|
+
const \u524D = \u584A\u305F\u3061[\u584A\u305F\u3061.length - 2];
|
|
24378
|
+
if (\u524D.\u5408\u8A08 / \u524D.\u4EF6\u6570 <= \u5F8C.\u5408\u8A08 / \u5F8C.\u4EF6\u6570) break;
|
|
24379
|
+
\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 });
|
|
24380
|
+
}
|
|
24381
|
+
});
|
|
24382
|
+
const \u307B\u3069\u3044\u305F = [];
|
|
24383
|
+
\u584A\u305F\u3061.forEach((\u584A) => {
|
|
24384
|
+
const \u5E73\u5747 = \u584A.\u5408\u8A08 / \u584A.\u4EF6\u6570;
|
|
24385
|
+
for (let j = 0; j < \u584A.\u4EF6\u6570; j++) \u307B\u3069\u3044\u305F.push(\u5E73\u5747 + \u9593\u9694 * \u307B\u3069\u3044\u305F.length);
|
|
24386
|
+
});
|
|
24387
|
+
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);
|
|
24388
|
+
\u4E26\u3073.forEach((e, k) => \u7D50\u679C[e.i] = \u307B\u3069\u3044\u305F[k] + \u305A\u308C);
|
|
24389
|
+
return \u7D50\u679C;
|
|
24390
|
+
}
|
|
24359
24391
|
function \u6247\u5F62\u306E\u5207\u308A\u629C\u304D(cx, cy, r, \u958B\u304D, \u8D77\u70B9 = -Math.PI / 2, \u5168\u5468 = Math.PI * 2) {
|
|
24360
24392
|
if (\u958B\u304D <= 0) return null;
|
|
24361
24393
|
if (\u958B\u304D >= 1 && \u5168\u5468 >= Math.PI * 2) return /* @__PURE__ */ jsx("circle", { cx, cy, r });
|
|
@@ -24436,6 +24468,26 @@ function ChartPieNode({
|
|
|
24436
24468
|
const \u5207\u308A\u629C\u304Did = `cdl-pie-draw-${instanceId}`;
|
|
24437
24469
|
const \u5F71id = `cdl-pie-shadow-${instanceId}`;
|
|
24438
24470
|
const \u958B\u304D\u59CB\u3081\u305F = (startFrac) => !drawing || \u958B\u304D > startFrac;
|
|
24471
|
+
const \u540D\u672D\u306E\u884C = \u5272\u5408\u306E\u7D1A + \u540D\u524D\u306E\u7D1A + 3;
|
|
24472
|
+
const \u540D\u672D\u306E\u5074 = slices.map((s) => Math.cos(s.\u4E2D\u592E\u89D2) >= 0);
|
|
24473
|
+
const \u540D\u672D\u306E\u771F\u306Ey = slices.map((s) => cy + (radius + \u5F15\u304D\u51FA\u3057) * Math.sin(s.\u4E2D\u592E\u89D2));
|
|
24474
|
+
const \u540D\u672D\u306Ey = (() => {
|
|
24475
|
+
const \u51FA\u3059 = [...\u540D\u672D\u306E\u771F\u306Ey];
|
|
24476
|
+
for (const \u5074 of [true, false]) {
|
|
24477
|
+
const \u756A\u53F7 = \u540D\u672D\u306E\u5074.flatMap((\u53F3, i) => \u53F3 === \u5074 ? [i] : []);
|
|
24478
|
+
if (\u756A\u53F7.length === 0) continue;
|
|
24479
|
+
const \u76F4\u3057\u305F = \u540D\u672D\u306E\u6BB5\u3092\u307B\u3069\u304F(
|
|
24480
|
+
\u756A\u53F7.map((i) => \u540D\u672D\u306E\u771F\u306Ey[i]),
|
|
24481
|
+
\u540D\u672D\u306E\u884C,
|
|
24482
|
+
PAD_TOP2 + \u540D\u672D\u306E\u7E26\u306E\u5F35\u308A\u51FA\u3057,
|
|
24483
|
+
node.h - PAD_BOTTOM2 - \u540D\u672D\u306E\u7E26\u306E\u5F35\u308A\u51FA\u3057
|
|
24484
|
+
);
|
|
24485
|
+
\u756A\u53F7.forEach((i, k) => \u51FA\u3059[i] = \u76F4\u3057\u305F[k]);
|
|
24486
|
+
}
|
|
24487
|
+
return \u51FA\u3059;
|
|
24488
|
+
})();
|
|
24489
|
+
const \u8098\u306Ex = (\u53F3) => cx + (\u53F3 ? 1 : -1) * (radius + \u5F15\u304D\u51FA\u3057);
|
|
24490
|
+
const \u5B57\u306Ex = (\u53F3) => \u8098\u306Ex(\u53F3) + (\u53F3 ? \u5B57\u307E\u3067\u306E\u9593 : -\u5B57\u307E\u3067\u306E\u9593);
|
|
24439
24491
|
return /* @__PURE__ */ jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
|
|
24440
24492
|
/* @__PURE__ */ jsx(
|
|
24441
24493
|
"rect",
|
|
@@ -24508,12 +24560,12 @@ function ChartPieNode({
|
|
|
24508
24560
|
),
|
|
24509
24561
|
slices.map((s, idx) => {
|
|
24510
24562
|
if (!\u958B\u304D\u59CB\u3081\u305F(s.startFrac)) return null;
|
|
24511
|
-
const \u53F3 =
|
|
24563
|
+
const \u53F3 = \u540D\u672D\u306E\u5074[idx];
|
|
24512
24564
|
const \u7E01x = cx + radius * Math.cos(s.\u4E2D\u592E\u89D2);
|
|
24513
24565
|
const \u7E01y = cy + radius * Math.sin(s.\u4E2D\u592E\u89D2);
|
|
24514
|
-
const \u6298\u308Cx =
|
|
24515
|
-
const \u6298\u308Cy =
|
|
24516
|
-
const \u5B57x = \
|
|
24566
|
+
const \u6298\u308Cx = \u8098\u306Ex(\u53F3);
|
|
24567
|
+
const \u6298\u308Cy = \u540D\u672D\u306Ey[idx];
|
|
24568
|
+
const \u5B57x = \u5B57\u306Ex(\u53F3);
|
|
24517
24569
|
return /* @__PURE__ */ jsxs("g", { children: [
|
|
24518
24570
|
/* @__PURE__ */ jsx(
|
|
24519
24571
|
"path",
|
|
@@ -25591,6 +25643,15 @@ function ChartSlopeNode({
|
|
|
25591
25643
|
const \u53F3\u8EF8x = \u524D\u3042\u308A ? Math.min(node.w - PAD, Math.max(node.w - PAD - \u53F3\u306E\u4F59\u767D, node.w / 2 + \u7DDA\u306E\u6700\u5C0F\u5E45 / 2)) : \u5DE6\u8EF8x;
|
|
25592
25644
|
const \u4F38\u3073 = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
|
|
25593
25645
|
const \u53F3\u3092\u51FA\u3059 = !drawing || \u4F38\u3073 >= 1;
|
|
25646
|
+
const \u5DE6\u306E\u70B9y = \u7CFB\u5217\u305F\u3061.map(
|
|
25647
|
+
(s, i) => \u5F62 === "rank" ? \u6BB5\u306Ey\u3092\u53D6\u308B(\u524D\u306E\u9806\u4F4D[i]) : y\u3092\u53D6\u308B(s.\u524D)
|
|
25648
|
+
);
|
|
25649
|
+
const \u53F3\u306E\u70B9y = \u7CFB\u5217\u305F\u3061.map(
|
|
25650
|
+
(s, i) => \u5F62 === "rank" ? \u6BB5\u306Ey\u3092\u53D6\u308B(\u4ECA\u306E\u9806\u4F4D[i]) : y\u3092\u53D6\u308B(s.\u4ECA)
|
|
25651
|
+
);
|
|
25652
|
+
const \u540D\u672D\u306E\u884C = Math.max(\u5024\u306E\u7D1A, \u540D\u524D\u306E\u7D1A) + 4;
|
|
25653
|
+
const \u5DE6\u306E\u540D\u672Dy = \u524D\u3042\u308A ? \u540D\u672D\u306E\u6BB5\u3092\u307B\u3069\u304F(\u5DE6\u306E\u70B9y, \u540D\u672D\u306E\u884C, \u4E0A\u7AEF, \u4E0B\u7AEF) : \u5DE6\u306E\u70B9y;
|
|
25654
|
+
const \u53F3\u306E\u540D\u672Dy = \u540D\u672D\u306E\u6BB5\u3092\u307B\u3069\u304F(\u53F3\u306E\u70B9y, \u540D\u672D\u306E\u884C, \u4E0A\u7AEF, \u4E0B\u7AEF);
|
|
25594
25655
|
return /* @__PURE__ */ jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
|
|
25595
25656
|
/* @__PURE__ */ jsx(
|
|
25596
25657
|
"rect",
|
|
@@ -25648,8 +25709,10 @@ function ChartSlopeNode({
|
|
|
25648
25709
|
)
|
|
25649
25710
|
] }),
|
|
25650
25711
|
\u7CFB\u5217\u305F\u3061.map((s, i) => {
|
|
25651
|
-
const \u5DE6y = \
|
|
25652
|
-
const \u53F3y = \
|
|
25712
|
+
const \u5DE6y = \u5DE6\u306E\u70B9y[i];
|
|
25713
|
+
const \u53F3y = \u53F3\u306E\u70B9y[i];
|
|
25714
|
+
const \u5DE6\u672Dy = \u5DE6\u306E\u540D\u672Dy[i];
|
|
25715
|
+
const \u53F3\u672Dy = \u53F3\u306E\u540D\u672Dy[i];
|
|
25653
25716
|
const \u672A\u89E3\u6C7A = s.\u672A\u89E3\u6C7A ? "true" : void 0;
|
|
25654
25717
|
return /* @__PURE__ */ jsxs("g", { children: [
|
|
25655
25718
|
\u524D\u3042\u308A && /* @__PURE__ */ jsx(
|
|
@@ -25693,7 +25756,7 @@ function ChartSlopeNode({
|
|
|
25693
25756
|
{
|
|
25694
25757
|
"data-cdl-role": "chart-slope-value",
|
|
25695
25758
|
x: \u5DE6\u8EF8x - \u8EF8\u304B\u3089\u5024\u307E\u3067,
|
|
25696
|
-
y: \
|
|
25759
|
+
y: \u5DE6\u672Dy + 5,
|
|
25697
25760
|
textAnchor: "end",
|
|
25698
25761
|
fontSize: \u5024\u306E\u7D1A,
|
|
25699
25762
|
fontWeight: 600,
|
|
@@ -25706,7 +25769,7 @@ function ChartSlopeNode({
|
|
|
25706
25769
|
{
|
|
25707
25770
|
"data-cdl-role": "chart-slope-name",
|
|
25708
25771
|
x: \u5DE6\u8EF8x - \u8EF8\u304B\u3089\u5024\u307E\u3067 - \u5DE6\u5024\u5E45 - \u5024\u304B\u3089\u540D\u524D\u307E\u3067,
|
|
25709
|
-
y: \
|
|
25772
|
+
y: \u5DE6\u672Dy + 5,
|
|
25710
25773
|
textAnchor: "end",
|
|
25711
25774
|
fontSize: \u540D\u524D\u306E\u7D1A,
|
|
25712
25775
|
fill: s.\u8272,
|
|
@@ -25718,7 +25781,7 @@ function ChartSlopeNode({
|
|
|
25718
25781
|
{
|
|
25719
25782
|
"data-cdl-role": "chart-slope-name",
|
|
25720
25783
|
x: \u5DE6\u8EF8x - \u8EF8\u304B\u3089\u5024\u307E\u3067,
|
|
25721
|
-
y: \
|
|
25784
|
+
y: \u53F3\u672Dy + 5,
|
|
25722
25785
|
textAnchor: "end",
|
|
25723
25786
|
fontSize: \u540D\u524D\u306E\u7D1A,
|
|
25724
25787
|
fill: s.\u8272,
|
|
@@ -25731,7 +25794,7 @@ function ChartSlopeNode({
|
|
|
25731
25794
|
{
|
|
25732
25795
|
"data-cdl-role": \u5F62 === "delta" ? "chart-slope-delta" : "chart-slope-value",
|
|
25733
25796
|
x: \u53F3\u8EF8x + \u8EF8\u304B\u3089\u5024\u307E\u3067,
|
|
25734
|
-
y: \
|
|
25797
|
+
y: \u53F3\u672Dy + 5,
|
|
25735
25798
|
fontSize: \u5024\u306E\u7D1A,
|
|
25736
25799
|
fontWeight: 600,
|
|
25737
25800
|
fill: "var(--cdl-text, #1a1f2a)",
|
|
@@ -25743,7 +25806,7 @@ function ChartSlopeNode({
|
|
|
25743
25806
|
{
|
|
25744
25807
|
"data-cdl-role": "chart-slope-name",
|
|
25745
25808
|
x: \u53F3\u8EF8x + \u8EF8\u304B\u3089\u5024\u307E\u3067 + \u53F3\u5024\u5E45 + \u5024\u304B\u3089\u540D\u524D\u307E\u3067,
|
|
25746
|
-
y: \
|
|
25809
|
+
y: \u53F3\u672Dy + 5,
|
|
25747
25810
|
fontSize: \u540D\u524D\u306E\u7D1A,
|
|
25748
25811
|
fill: s.\u8272,
|
|
25749
25812
|
children: s.\u540D\u524D
|