@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/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",
|
|
@@ -25526,36 +25578,6 @@ function \u4E00\u89A7\u306E\u4E26\u3073(data, \u5DE6, \u53F3\u7AEF, \u7D1A) {
|
|
|
25526
25578
|
return out;
|
|
25527
25579
|
}
|
|
25528
25580
|
var \u7DDA\u306E\u6700\u5C0F\u5E45 = 120;
|
|
25529
|
-
function \u540D\u672D\u306E\u6BB5\u3092\u307B\u3069\u304F(\u771F\u306Ey, \u9593\u9694, \u4E0A\u9650, \u4E0B\u9650) {
|
|
25530
|
-
const \u4EF6\u6570 = \u771F\u306Ey.length;
|
|
25531
|
-
if (\u4EF6\u6570 === 0) return [];
|
|
25532
|
-
const \u4E26\u3073 = \u771F\u306Ey.map((y, i) => ({ y, i })).sort((a, b) => a.y - b.y || a.i - b.i);
|
|
25533
|
-
const \u7D50\u679C = new Array(\u4EF6\u6570);
|
|
25534
|
-
if (\u9593\u9694 * (\u4EF6\u6570 - 1) > \u4E0B\u9650 - \u4E0A\u9650) {
|
|
25535
|
-
\u4E26\u3073.forEach((e, k) => {
|
|
25536
|
-
\u7D50\u679C[e.i] = \u4EF6\u6570 > 1 ? \u4E0A\u9650 + (\u4E0B\u9650 - \u4E0A\u9650) / (\u4EF6\u6570 - 1) * k : (\u4E0A\u9650 + \u4E0B\u9650) / 2;
|
|
25537
|
-
});
|
|
25538
|
-
return \u7D50\u679C;
|
|
25539
|
-
}
|
|
25540
|
-
const \u584A\u305F\u3061 = [];
|
|
25541
|
-
\u4E26\u3073.forEach((e, k) => {
|
|
25542
|
-
\u584A\u305F\u3061.push({ \u5408\u8A08: e.y - \u9593\u9694 * k, \u4EF6\u6570: 1 });
|
|
25543
|
-
while (\u584A\u305F\u3061.length >= 2) {
|
|
25544
|
-
const \u5F8C = \u584A\u305F\u3061[\u584A\u305F\u3061.length - 1];
|
|
25545
|
-
const \u524D = \u584A\u305F\u3061[\u584A\u305F\u3061.length - 2];
|
|
25546
|
-
if (\u524D.\u5408\u8A08 / \u524D.\u4EF6\u6570 <= \u5F8C.\u5408\u8A08 / \u5F8C.\u4EF6\u6570) break;
|
|
25547
|
-
\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 });
|
|
25548
|
-
}
|
|
25549
|
-
});
|
|
25550
|
-
const \u307B\u3069\u3044\u305F = [];
|
|
25551
|
-
\u584A\u305F\u3061.forEach((\u584A) => {
|
|
25552
|
-
const \u5E73\u5747 = \u584A.\u5408\u8A08 / \u584A.\u4EF6\u6570;
|
|
25553
|
-
for (let j = 0; j < \u584A.\u4EF6\u6570; j++) \u307B\u3069\u3044\u305F.push(\u5E73\u5747 + \u9593\u9694 * \u307B\u3069\u3044\u305F.length);
|
|
25554
|
-
});
|
|
25555
|
-
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);
|
|
25556
|
-
\u4E26\u3073.forEach((e, k) => \u7D50\u679C[e.i] = \u307B\u3069\u3044\u305F[k] + \u305A\u308C);
|
|
25557
|
-
return \u7D50\u679C;
|
|
25558
|
-
}
|
|
25559
25581
|
function ChartSlopeNode({
|
|
25560
25582
|
node,
|
|
25561
25583
|
active,
|