@cardenelabs/cdl 0.40.4 → 0.40.5

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/dist/react.cjs CHANGED
@@ -12393,13 +12393,46 @@ function ChartGaugeNode({
12393
12393
  const \u5F27\u3068\u5185\u8A33\u306E\u9593 = 16;
12394
12394
  const \u5370\u306E\u5E452 = 30;
12395
12395
  const \u533A\u753B\u306E\u9593 = 12;
12396
- const \u5185\u8A33\u306E\u6570\u5024 = data.map((d) => `${\u5B9F\u5024\u8868\u8A18(d.value)} ${\u5272\u5408\u8868\u8A18(d.value / total)}`);
12397
- const \u4EF6\u306B\u8981\u308B\u5E45 = Math.max(\u5370\u306E\u5E452, ...\u5185\u8A33\u306E\u6570\u5024.map((t) => textWidth(t, \u6570\u5024\u306E\u7D1A))) + \u533A\u753B\u306E\u9593;
12398
- const \u884C\u306E\u4EF6\u6570 = Math.min(
12399
- Math.max(1, Math.floor(\u4F7F\u3048\u308B\u5E452 / Math.max(\u4EF6\u306B\u8981\u308B\u5E45, 1))),
12400
- Math.max(data.length, 1)
12396
+ const \u6570\u5024\u306E\u884C = (d) => `${\u5B9F\u5024\u8868\u8A18(d.value)} ${\u5272\u5408\u8868\u8A18(d.value / total)}`;
12397
+ const \u5272\u308A\u4ED8\u3051\u308B = (\u4EF6\u305F\u3061) => {
12398
+ const \u5E45 = Math.max(\u5370\u306E\u5E452, ...\u4EF6\u305F\u3061.map((d) => textWidth(\u6570\u5024\u306E\u884C(d), \u6570\u5024\u306E\u7D1A))) + \u533A\u753B\u306E\u9593;
12399
+ const \u884C\u306E\u4EF6\u65702 = Math.min(
12400
+ Math.max(1, Math.floor(\u4F7F\u3048\u308B\u5E452 / Math.max(\u5E45, 1))),
12401
+ Math.max(\u4EF6\u305F\u3061.length, 1)
12402
+ );
12403
+ return { \u884C\u306E\u4EF6\u6570: \u884C\u306E\u4EF6\u65702, \u6BB5\u6570: Math.ceil(Math.max(\u4EF6\u305F\u3061.length, 1) / \u884C\u306E\u4EF6\u65702) };
12404
+ };
12405
+ const \u5F27\u306B\u6B8B\u3059\u9AD8\u3055 = 48;
12406
+ const \u7F6E\u3051\u308B\u6BB5\u6570 = Math.max(
12407
+ 1,
12408
+ Math.floor((\u4F7F\u3048\u308B\u9AD8\u3055 - \u5F27\u306B\u6B8B\u3059\u9AD8\u3055 - \u5F27\u3068\u5185\u8A33\u306E\u9593) / \u6BB5\u306E\u9AD8\u3055)
12401
12409
  );
12402
- const \u5185\u8A33\u306E\u6BB5\u6570 = Math.ceil(Math.max(data.length, 1) / \u884C\u306E\u4EF6\u6570);
12410
+ const \u7573\u3080 = (\u6B8B\u3059\u4EF6\u6570) => {
12411
+ if (\u6B8B\u3059\u4EF6\u6570 >= data.length) return data;
12412
+ const \u524D = data.slice(0, Math.max(0, \u6B8B\u3059\u4EF6\u6570 - 1));
12413
+ const \u6B8B\u308A = data.slice(Math.max(0, \u6B8B\u3059\u4EF6\u6570 - 1));
12414
+ const \u5024 = \u6B8B\u308A.reduce((acc, d) => acc + d.value, 0);
12415
+ const \u8AAD\u3081\u306A\u3044 = \u6B8B\u308A.some((d) => d.unresolved);
12416
+ const \u7573\u3093\u3060 = {
12417
+ ...\u6B8B\u308A[0],
12418
+ label: "\u305D\u306E\u4ED6",
12419
+ value: \u5024,
12420
+ previous: void 0,
12421
+ ...\u8AAD\u3081\u306A\u3044 ? { unresolved: true } : { unresolved: void 0 }
12422
+ };
12423
+ return [...\u524D, \u7573\u3093\u3060];
12424
+ };
12425
+ const \u51FA\u3059\u4EF6\u305F\u3061 = (() => {
12426
+ let \u4EF6\u305F\u3061 = data;
12427
+ for (let i = 0; i < 4; i++) {
12428
+ const { \u884C\u306E\u4EF6\u6570: \u884C\u306E\u4EF6\u65702, \u6BB5\u6570 } = \u5272\u308A\u4ED8\u3051\u308B(\u4EF6\u305F\u3061);
12429
+ if (\u6BB5\u6570 <= \u7F6E\u3051\u308B\u6BB5\u6570) return \u4EF6\u305F\u3061;
12430
+ \u4EF6\u305F\u3061 = \u7573\u3080(Math.max(1, \u7F6E\u3051\u308B\u6BB5\u6570 * \u884C\u306E\u4EF6\u65702));
12431
+ }
12432
+ return \u4EF6\u305F\u3061;
12433
+ })();
12434
+ const \u5185\u8A33\u306E\u6570\u5024 = \u51FA\u3059\u4EF6\u305F\u3061.map((d) => \u6570\u5024\u306E\u884C(d));
12435
+ const { \u884C\u306E\u4EF6\u6570, \u6BB5\u6570: \u5185\u8A33\u306E\u6BB5\u6570 } = \u5272\u308A\u4ED8\u3051\u308B(\u51FA\u3059\u4EF6\u305F\u3061);
12403
12436
  const \u5185\u8A33\u306E\u9AD8\u3055 = \u6BB5\u306E\u9AD8\u3055 * \u5185\u8A33\u306E\u6BB5\u6570;
12404
12437
  const \u5F27\u306B\u4F7F\u3048\u308B\u9AD8\u3055 = \u4F7F\u3048\u308B\u9AD8\u3055 - \u5185\u8A33\u306E\u9AD8\u3055 - \u5F27\u3068\u5185\u8A33\u306E\u9593;
12405
12438
  const radius = Math.max(24, Math.min(\u5F27\u306B\u4F7F\u3048\u308B\u9AD8\u3055, \u4F7F\u3048\u308B\u5E452 / 2));
@@ -12407,7 +12440,7 @@ function ChartGaugeNode({
12407
12440
  const cx = node.w / 2;
12408
12441
  const cy = PAD_TOP2 + radius;
12409
12442
  let cumFrac = 0;
12410
- const slices = data.map((d) => {
12443
+ const slices = \u51FA\u3059\u4EF6\u305F\u3061.map((d) => {
12411
12444
  const frac = d.value / total;
12412
12445
  const a0 = Math.PI + cumFrac * Math.PI;
12413
12446
  const a1 = a0 + frac * Math.PI;
@@ -12420,10 +12453,10 @@ function ChartGaugeNode({
12420
12453
  return { d, frac, path };
12421
12454
  });
12422
12455
  const \u5408\u8A08\u306E\u6587\u5B57 = \u5B9F\u5024\u8868\u8A18(Math.round(total));
12423
- const \u6A2A\u306E\u4E0A\u9650 = \u5185\u534A\u5F84 * 2 * 0.86;
12456
+ const \u5358\u4F4D\u5E45 = Math.max(textWidth(\u5408\u8A08\u306E\u6587\u5B57, 100), 1) / 100;
12424
12457
  const \u7D1A\u306E\u5019\u88DC = Math.min(
12425
- // 横 = 実際の字幅から逆算する
12426
- \u6A2A\u306E\u4E0A\u9650 / Math.max(textWidth(\u5408\u8A08\u306E\u6587\u5B57, 100), 1) * 100,
12458
+ // 横 = 字の上の角が内側の円に入る大きさ
12459
+ \u5185\u534A\u5F84 / Math.sqrt((\u5358\u4F4D\u5E45 / 2) ** 2 + 1.25 ** 2),
12427
12460
  // 縦 = 合計 1 行 + 見出し 1 行が内側の高さに収まる比
12428
12461
  \u5185\u534A\u5F84 * 0.52
12429
12462
  );
@@ -12486,7 +12519,7 @@ function ChartGaugeNode({
12486
12519
  children: "\u5408\u8A08"
12487
12520
  }
12488
12521
  ),
12489
- data.map((d, idx) => {
12522
+ \u51FA\u3059\u4EF6\u305F\u3061.map((d, idx) => {
12490
12523
  const \u5217 = idx % \u884C\u306E\u4EF6\u6570;
12491
12524
  const \u6BB5 = Math.floor(idx / \u884C\u306E\u4EF6\u6570);
12492
12525
  const x = PAD_SIDE + \u5185\u8A33\u306E\u5E45 * \u5217;