@cardenelabs/cdl 0.66.0 → 0.68.0

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.js CHANGED
@@ -14434,15 +14434,16 @@ function GanttNode({
14434
14434
  const x0 = node.cx - node.w / 2;
14435
14435
  const y0 = node.cy - node.h / 2;
14436
14436
  const tasks = resolveGanttData(node.ganttData ?? [], stateValues);
14437
- const PAD_TOP2 = 32;
14437
+ const PAD_TOP2 = 46;
14438
14438
  const PAD_RIGHT2 = 48;
14439
- const PAD_BOTTOM2 = 44;
14439
+ const PAD_BOTTOM2 = 26;
14440
14440
  const PAD_LEFT2 = 156;
14441
14441
  const canvasW = node.w - PAD_LEFT2 - PAD_RIGHT2;
14442
14442
  const canvasH = node.h - PAD_TOP2 - PAD_BOTTOM2;
14443
14443
  const rowGap = 20;
14444
14444
  const rowCount = tasks.length || 1;
14445
14445
  const rowH = Math.max(28, (canvasH - rowGap * (rowCount + 1)) / rowCount);
14446
+ const \u5E2F\u306E\u9AD8\u3055 = Math.min(rowH, 30);
14446
14447
  const \u4F4D\u7F6E\u306E\u4E0A\u9650 = 1e6;
14447
14448
  const \u53CE\u3081\u305F = tasks.map((t) => {
14448
14449
  const \u59CB = Math.min(\u4F4D\u7F6E\u306E\u4E0A\u9650, Math.max(0, Number.isFinite(t.startIdx) ? t.startIdx : 0));
@@ -14468,6 +14469,7 @@ function GanttNode({
14468
14469
  const \u76EE\u76DB\u308A\u306E\u672C\u6570 = Math.ceil(maxIdx / \u76EE\u76DB\u308A\u306E\u9593\u9694);
14469
14470
  const xAt = (idx) => PAD_LEFT2 + idx * cellW;
14470
14471
  const yAt = (row) => PAD_TOP2 + rowGap + row * (rowH + rowGap);
14472
+ const \u5E2F\u306E\u4E0A = (row) => yAt(row) + (rowH - \u5E2F\u306E\u9AD8\u3055) / 2;
14471
14473
  const \u540D\u524D = { \u6574\u6570\u306E\u958B\u59CB: /* @__PURE__ */ new Map(), \u6574\u6570\u306E\u7D42\u4E86: /* @__PURE__ */ new Map(), \u7AEF\u6570\u306E\u958B\u59CB: /* @__PURE__ */ new Map(), \u7AEF\u6570\u306E\u7D42\u4E86: /* @__PURE__ */ new Map() };
14472
14474
  const \u7F6E\u304F = (\u8868, \u4F4D\u7F6E, label) => {
14473
14475
  if (label !== "" && Number.isFinite(\u4F4D\u7F6E) && !\u8868.has(\u4F4D\u7F6E)) \u8868.set(\u4F4D\u7F6E, label);
@@ -14489,6 +14491,7 @@ function GanttNode({
14489
14491
  const \u5E2F\u306E\u5DE6 = (idx) => xAt(idx) + \u5E2F\u306E\u4F59\u767D / 2;
14490
14492
  const \u5E2F\u306E\u53F3 = (idx) => xAt(idx) + cellW - \u5E2F\u306E\u4F59\u767D / 2;
14491
14493
  const \u4F38\u3073 = \u9032\u307F\u3092\u7573\u3080(drawing, progress);
14494
+ const \u884C\u306E\u4F38\u3073 = (row) => \u6BB5\u306E\u4F38\u3073(\u4F38\u3073, row + 1, rowCount);
14492
14495
  const taskById = new Map(\u6574\u3048\u305F.map((t) => [t.id, t]));
14493
14496
  const rowOf = new Map(\u6574\u3048\u305F.map((t, i) => [t.id, i]));
14494
14497
  return /* @__PURE__ */ jsxs("g", { transform: `translate(${x0} ${y0})`, children: [
@@ -14506,6 +14509,43 @@ function GanttNode({
14506
14509
  strokeWidth: active ? 3 : 1.25
14507
14510
  }
14508
14511
  ),
14512
+ \u6574\u3048\u305F.map(
14513
+ (t, row) => row % 2 === 0 ? null : /* @__PURE__ */ jsx(
14514
+ "rect",
14515
+ {
14516
+ "data-cdl-role": "gantt-row",
14517
+ x: PAD_LEFT2,
14518
+ y: yAt(row) - rowGap / 2,
14519
+ width: canvasW,
14520
+ height: rowH + rowGap,
14521
+ fill: "var(--cdl-surface-sunken, #f4f2ed)",
14522
+ opacity: 0.55
14523
+ },
14524
+ `band-${t.id}`
14525
+ )
14526
+ ),
14527
+ /* @__PURE__ */ jsx(
14528
+ "line",
14529
+ {
14530
+ x1: PAD_LEFT2,
14531
+ y1: PAD_TOP2,
14532
+ x2: PAD_LEFT2 + canvasW,
14533
+ y2: PAD_TOP2,
14534
+ stroke: "var(--cdl-divider, #d4d4d8)",
14535
+ strokeWidth: 1
14536
+ }
14537
+ ),
14538
+ /* @__PURE__ */ jsx(
14539
+ "line",
14540
+ {
14541
+ x1: PAD_LEFT2,
14542
+ y1: PAD_TOP2,
14543
+ x2: PAD_LEFT2,
14544
+ y2: PAD_TOP2 + canvasH,
14545
+ stroke: "var(--cdl-divider, #d4d4d8)",
14546
+ strokeWidth: 1
14547
+ }
14548
+ ),
14509
14549
  gridLabels.map(({ \u4F4D\u7F6E: i, label }) => /* @__PURE__ */ jsxs("g", { children: [
14510
14550
  /* @__PURE__ */ jsx(
14511
14551
  "line",
@@ -14516,9 +14556,8 @@ function GanttNode({
14516
14556
  x2: xAt(i),
14517
14557
  y2: PAD_TOP2 + canvasH,
14518
14558
  stroke: "var(--cdl-divider, #d4d4d8)",
14519
- strokeWidth: 0.75,
14520
- strokeDasharray: "3 3",
14521
- opacity: 0.5
14559
+ strokeWidth: 1,
14560
+ opacity: 0.45
14522
14561
  }
14523
14562
  ),
14524
14563
  label === "" ? null : /* @__PURE__ */ jsx(
@@ -14526,7 +14565,7 @@ function GanttNode({
14526
14565
  {
14527
14566
  "data-cdl-role": "gantt-tick",
14528
14567
  x: xAt(i) + cellW / 2,
14529
- y: PAD_TOP2 + canvasH + 18,
14568
+ y: PAD_TOP2 - 16,
14530
14569
  fontSize: 11,
14531
14570
  textAnchor: "middle",
14532
14571
  fill: "var(--cdl-text-dim, #5a6270)",
@@ -14542,14 +14581,14 @@ function GanttNode({
14542
14581
  x2: xAt(maxIdx),
14543
14582
  y2: PAD_TOP2 + canvasH,
14544
14583
  stroke: "var(--cdl-divider, #d4d4d8)",
14545
- strokeWidth: 0.75,
14546
- opacity: 0.5
14584
+ strokeWidth: 1,
14585
+ opacity: 0.45
14547
14586
  }
14548
14587
  ),
14549
14588
  \u6574\u3048\u305F.map((t, row) => /* @__PURE__ */ jsx(
14550
14589
  "text",
14551
14590
  {
14552
- x: PAD_LEFT2 - 12,
14591
+ x: PAD_LEFT2 - 16,
14553
14592
  y: yAt(row) + rowH / 2 + 4,
14554
14593
  fontSize: 12,
14555
14594
  textAnchor: "end",
@@ -14561,89 +14600,85 @@ function GanttNode({
14561
14600
  )),
14562
14601
  \u6574\u3048\u305F.map((t, row) => {
14563
14602
  const bx = \u5E2F\u306E\u5DE6(t.startIdx);
14564
- const by = yAt(row);
14603
+ const by = \u5E2F\u306E\u4E0A(row);
14565
14604
  const bw = Math.max(0, \u5E2F\u306E\u53F3(t.endIdx) - bx);
14566
- return /* @__PURE__ */ jsxs(
14567
- "g",
14568
- {
14569
- ...drawing ? { transform: `translate(${bx} 0) scale(${\u4F38\u3073} 1) translate(${-bx} 0)` } : {},
14570
- children: [
14571
- /* @__PURE__ */ jsx(
14572
- "rect",
14573
- {
14574
- "data-cdl-role": "gantt-bar",
14575
- "data-cdl-unresolved": t.unresolved ? "true" : void 0,
14576
- "data-cdl-clipped": "clipped" in t && t.clipped ? "true" : void 0,
14577
- x: bx,
14578
- y: by,
14579
- width: bw,
14580
- height: rowH,
14581
- rx: 4,
14582
- fill: toneColor4(t.tone),
14583
- fillOpacity: 0.9
14584
- }
14585
- ),
14586
- t.owner && rowH >= 22 && /* @__PURE__ */ jsx(
14587
- "text",
14588
- {
14589
- x: bx + 8,
14590
- y: by + rowH / 2 + 4,
14591
- fontSize: 11,
14592
- fill: "var(--cdl-node-fill, #ffffff)",
14593
- fontWeight: 600,
14594
- children: t.owner
14595
- }
14596
- )
14597
- ]
14598
- },
14599
- `bar-${t.id}`
14600
- );
14605
+ const \u3053\u306E\u884C = \u884C\u306E\u4F38\u3073(row);
14606
+ const \u4ECA\u306E\u5E45 = drawing ? bw * \u3053\u306E\u884C : bw;
14607
+ return /* @__PURE__ */ jsxs("g", { children: [
14608
+ /* @__PURE__ */ jsx(
14609
+ "rect",
14610
+ {
14611
+ "data-cdl-role": "gantt-bar",
14612
+ "data-cdl-unresolved": t.unresolved ? "true" : void 0,
14613
+ "data-cdl-clipped": "clipped" in t && t.clipped ? "true" : void 0,
14614
+ x: bx,
14615
+ y: by,
14616
+ width: \u4ECA\u306E\u5E45,
14617
+ height: \u5E2F\u306E\u9AD8\u3055,
14618
+ rx: \u5E2F\u306E\u9AD8\u3055 / 2,
14619
+ ry: \u5E2F\u306E\u9AD8\u3055 / 2,
14620
+ fill: toneColor4(t.tone),
14621
+ fillOpacity: 0.9
14622
+ }
14623
+ ),
14624
+ t.owner && \u5E2F\u306E\u9AD8\u3055 >= 22 && \u3053\u306E\u884C >= 1 && /* @__PURE__ */ jsx(
14625
+ "text",
14626
+ {
14627
+ "data-cdl-role": "gantt-owner",
14628
+ x: bx + bw / 2,
14629
+ y: by + \u5E2F\u306E\u9AD8\u3055 / 2 + 4,
14630
+ fontSize: 11,
14631
+ textAnchor: "middle",
14632
+ fill: "var(--cdl-node-fill, #ffffff)",
14633
+ fontWeight: 600,
14634
+ children: t.owner
14635
+ }
14636
+ )
14637
+ ] }, `bar-${t.id}`);
14601
14638
  }),
14602
14639
  \u6574\u3048\u305F.filter((t) => t.dependsOn && taskById.has(t.dependsOn)).map((t) => {
14603
14640
  const parent = taskById.get(t.dependsOn);
14604
14641
  const parentRow = rowOf.get(parent.id);
14605
14642
  const childRow = rowOf.get(t.id);
14606
14643
  const parentBarRight = \u5E2F\u306E\u53F3(parent.endIdx);
14607
- const parentMidY = yAt(parentRow) + rowH / 2;
14608
14644
  const childBarLeft = \u5E2F\u306E\u5DE6(t.startIdx);
14609
- const childMidY = yAt(childRow) + rowH / 2;
14610
- const arrowHeadSize = 8;
14611
- const arrowHeadTipGap = 10;
14612
- const tipX = childBarLeft - arrowHeadTipGap - arrowHeadSize;
14613
- const tipY = childMidY;
14614
- const startX = parentBarRight + 4;
14615
- const elbowGap = 6;
14616
- const enterX = tipX - elbowGap;
14617
- const hasRoom = enterX - startX >= elbowGap;
14618
- const path = hasRoom ? `M ${startX} ${parentMidY} L ${enterX} ${parentMidY} L ${enterX} ${tipY} L ${tipX} ${tipY}` : `M ${startX} ${parentMidY} L ${startX + elbowGap} ${parentMidY} L ${startX + elbowGap} ${(parentMidY + tipY) / 2} L ${enterX} ${(parentMidY + tipY) / 2} L ${enterX} ${tipY} L ${tipX} ${tipY}`;
14619
- const arrowHeadPath = `M ${tipX + arrowHeadSize} ${tipY} L ${tipX} ${tipY - arrowHeadSize / 2} L ${tipX} ${tipY + arrowHeadSize / 2} Z`;
14620
- return (
14621
- // 矢印は両端の帯が出てから描く。 帯が無い場所へ矢印だけが伸びると、
14622
- // 指す先の無い線になる (cdl#521)
14623
- drawing && \u4F38\u3073 < 1 ? null : /* @__PURE__ */ jsxs("g", { "data-cdl-role": "gantt-arrow", children: [
14624
- /* @__PURE__ */ jsx(
14625
- "path",
14626
- {
14627
- d: path,
14628
- fill: "none",
14629
- stroke: "var(--cdl-text-mute, #8a8678)",
14630
- strokeWidth: 1.75,
14631
- strokeLinejoin: "round",
14632
- strokeLinecap: "round"
14633
- }
14634
- ),
14635
- /* @__PURE__ */ jsx(
14636
- "path",
14637
- {
14638
- d: arrowHeadPath,
14639
- fill: "var(--cdl-text-mute, #8a8678)",
14640
- stroke: "var(--cdl-text-mute, #8a8678)",
14641
- strokeWidth: 0.5,
14642
- strokeLinejoin: "round"
14643
- }
14644
- )
14645
- ] }, `dep-${parent.id}-${t.id}`)
14646
- );
14645
+ const \u77E2\u3058\u308A\u306E\u5E45 = 11;
14646
+ const \u77E2\u3058\u308A\u306E\u9AD8\u3055 = 7;
14647
+ const \u4E38\u307F = \u5E2F\u306E\u9AD8\u3055 / 2;
14648
+ const \u89AA\u306E\u5DE6 = \u5E2F\u306E\u5DE6(parent.startIdx);
14649
+ const \u5B50\u306E\u53F3 = \u5E2F\u306E\u53F3(t.endIdx);
14650
+ const \u5BC4\u305B = (\u5DE6, \u53F3) => Math.min(\u4E38\u307F, (\u53F3 - \u5DE6) / 2);
14651
+ const \u51FA\u767AX = parentBarRight - \u5BC4\u305B(\u89AA\u306E\u5DE6, parentBarRight);
14652
+ const \u51FA\u767AY = \u5E2F\u306E\u4E0A(parentRow) + \u5E2F\u306E\u9AD8\u3055;
14653
+ const \u7740\u5730X = childBarLeft + \u5BC4\u305B(childBarLeft, \u5B50\u306E\u53F3);
14654
+ const \u7740\u5730Y = \u5E2F\u306E\u4E0A(childRow);
14655
+ const \u7E26\u306E\u7D42\u308F\u308AY = \u7740\u5730Y - \u77E2\u3058\u308A\u306E\u9AD8\u3055;
14656
+ const \u624B = Math.max(6, (\u7E26\u306E\u7D42\u308F\u308AY - \u51FA\u767AY) * 0.55);
14657
+ const path = `M ${\u51FA\u767AX} ${\u51FA\u767AY} C ${\u51FA\u767AX} ${\u51FA\u767AY + \u624B}, ${\u7740\u5730X} ${\u7E26\u306E\u7D42\u308F\u308AY - \u624B}, ${\u7740\u5730X} ${\u7E26\u306E\u7D42\u308F\u308AY}`;
14658
+ const arrowHeadPath = `M ${\u7740\u5730X} ${\u7740\u5730Y} L ${\u7740\u5730X - \u77E2\u3058\u308A\u306E\u5E45 / 2} ${\u7E26\u306E\u7D42\u308F\u308AY} L ${\u7740\u5730X + \u77E2\u3058\u308A\u306E\u5E45 / 2} ${\u7E26\u306E\u7D42\u308F\u308AY} Z`;
14659
+ return drawing && !(\u884C\u306E\u4F38\u3073(parentRow) >= 1 && \u884C\u306E\u4F38\u3073(childRow) >= 1) ? null : /* @__PURE__ */ jsxs("g", { "data-cdl-role": "gantt-arrow", children: [
14660
+ /* @__PURE__ */ jsx(
14661
+ "path",
14662
+ {
14663
+ d: path,
14664
+ fill: "none",
14665
+ stroke: "var(--cdl-text-mute, #8a8678)",
14666
+ strokeWidth: 2.4,
14667
+ strokeLinejoin: "round",
14668
+ strokeLinecap: "round"
14669
+ }
14670
+ ),
14671
+ /* @__PURE__ */ jsx(
14672
+ "path",
14673
+ {
14674
+ d: arrowHeadPath,
14675
+ fill: "var(--cdl-text-mute, #8a8678)",
14676
+ stroke: "var(--cdl-text-mute, #8a8678)",
14677
+ strokeWidth: 0.5,
14678
+ strokeLinejoin: "round"
14679
+ }
14680
+ )
14681
+ ] }, `dep-${parent.id}-${t.id}`);
14647
14682
  })
14648
14683
  ] });
14649
14684
  }