@takagaki/cortex-decisions-viewer 0.12.140 → 0.12.142

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.
Files changed (2) hide show
  1. package/dist/render.js +67 -23
  2. package/package.json +1 -1
package/dist/render.js CHANGED
@@ -4962,6 +4962,10 @@ button.site-icon[aria-busy="true"] .site-icon-plus { opacity: 0; }
4962
4962
  新しい見た目は作らず、.card:hover と同じ強調(アクセント色の枠)を使い回す */
4963
4963
  .card.is-returned-to { border-color: var(--accent); }
4964
4964
  .card-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-size: 12.5px; color: var(--muted); margin-bottom: 6px; }
4965
+ .card-facet { overflow-wrap: anywhere; min-width: 0; }
4966
+ .card-facet-yomi { font-size: 11.5px; }
4967
+ .card-titlerow { display: flex; align-items: baseline; gap: 12px; margin: 0 0 6px; }
4968
+ .card-titlerow .card-title { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; margin: 2px 0 0; }
4965
4969
  /* card-title はカードの見出し(#1 新しいタブでも開けるよう <a> にした)。見た目は元の <div> と揃える */
4966
4970
  .card-title { display: block; font-size: 16px; font-weight: 650; margin: 2px 0 6px; color: var(--text); }
4967
4971
  .card-summary { color: #3b424c; font-size: 14px; margin: 0; }
@@ -8538,6 +8542,60 @@ ${calendarAddUrl.toString()}
8538
8542
  return !ev.defaultPrevented && ev.button === 0 && !ev.metaKey && !ev.ctrlKey && !ev.shiftKey && !ev.altKey;
8539
8543
  }
8540
8544
 
8545
+ /** 一覧カードの頭(上の段 + 題)を組む。左側の中身(札・日付・エラーの札)が 1 つも無いときは
8546
+ * 空の .card-meta を作らず、「🕸 つながり」を題の行の右端に置く(#1094)。 */
8547
+ function cardHead(rec, leftNodes, titleExtra) {
8548
+ var trace = el("a", { class: "mc-trace", href: "?tab=graph", text: "🕸 つながり" });
8549
+ trace.addEventListener("click", function (ev) { ev.preventDefault(); ev.stopPropagation(); openExplorerFor(rec); });
8550
+ var meta = el("div", { class: "card-meta" }, leftNodes);
8551
+ var eb = fmErrorBadge(rec);
8552
+ if (eb) meta.appendChild(eb);
8553
+ var title = cardTitleLink(rec, titleExtra);
8554
+ if (!meta.childNodes.length) return [el("div", { class: "card-titlerow" }, [title, trace])];
8555
+ meta.appendChild(trace);
8556
+ return [meta, title];
8557
+ }
8558
+
8559
+ /**
8560
+ * 一覧カードの上の段(左側)に出す、記録に既にある中身(#1094・オーナー決定 10/14)。
8561
+ * 用語=別名(synonyms)・ルール=いつからか(derived_from の決定の日付)・関係者=読み仮名(yomi)と所属(org)。
8562
+ * 無い記録は空の配列を返す(段そのものを作らない)。ID・メールアドレスは出さない。
8563
+ */
8564
+ function cardFacets(rec) {
8565
+ var fm = rec.fm || {};
8566
+ var sec = rec._section;
8567
+ var out = [];
8568
+ function strs(v) {
8569
+ return (Array.isArray(v) ? v : []).map(function (x) { return typeof x === "string" ? x.trim() : ""; }).filter(Boolean);
8570
+ }
8571
+ if (rec.rtype === "term" || sec === "Glossary" || sec === "用語集") {
8572
+ var syn = strs(fm.synonyms);
8573
+ if (syn.length) {
8574
+ var shown = syn.slice(0, 3).join("・") + (syn.length > 3 ? " ほか " + (syn.length - 3) : "");
8575
+ out.push(el("span", { class: "card-facet card-facet-alias", text: "別名 " + shown }));
8576
+ }
8577
+ } else if (rec.rtype === "rule" || sec === "Rules" || sec === "ルール") {
8578
+ var days = [];
8579
+ (rec.relations || []).forEach(function (rl) {
8580
+ if (!rl || rl.rel !== "derived_from") return;
8581
+ var d = byId[rl.target];
8582
+ var m = d && d._kind === "decision" && typeof d.date === "string" ? d.date.match(/^\\d{4}-(\\d{2})-(\\d{2})$/) : null;
8583
+ if (m) days.push(d.date);
8584
+ });
8585
+ if (days.length) {
8586
+ days.sort();
8587
+ var p = days[0].split("-");
8588
+ out.push(el("span", { class: "card-facet card-facet-since", text: parseInt(p[1], 10) + "/" + parseInt(p[2], 10) + " の決定から" }));
8589
+ }
8590
+ } else if (isMemberRec(rec)) {
8591
+ var yomi = typeof fm.yomi === "string" ? fm.yomi.trim() : "";
8592
+ var org = typeof fm.org === "string" ? fm.org.trim() : "";
8593
+ if (yomi) out.push(el("span", { class: "card-facet card-facet-yomi", text: yomi }));
8594
+ if (org) out.push(el("span", { class: "card-facet card-facet-org", text: org }));
8595
+ }
8596
+ return out;
8597
+ }
8598
+
8541
8599
  /**
8542
8600
  * 一覧カードの見出し(#1)。普通の a href="?id=..." にして、中クリック・
8543
8601
  * Ctrl/Cmd クリックで新しいタブでも開けるようにする(opsTabLink と同じ型)。
@@ -19738,25 +19796,18 @@ ${calendarAddUrl.toString()}
19738
19796
  (pg.pages > 1 ? "(" + pg.page + "/" + pg.pages + "ページ)" : "");
19739
19797
 
19740
19798
  pg.slice.forEach(function (d) {
19741
- var meta = el("div", { class: "card-meta" }, [
19799
+ var head = cardHead(d, [
19742
19800
  draftBadge(d),
19743
19801
  retiredBadge(d),
19744
19802
  latestBadge(d),
19745
19803
  el("span", { class: "mono", text: d.date || "----" }),
19746
19804
  firmnessBadge(d),
19747
19805
  topicBadge(d),
19748
- ]);
19749
- var eb = fmErrorBadge(d);
19750
- if (eb) meta.appendChild(eb);
19751
- var traceD = el("a", { class: "mc-trace", href: "?tab=graph", text: "🕸 つながり" });
19752
- traceD.addEventListener("click", function (ev) { ev.preventDefault(); ev.stopPropagation(); openExplorerFor(d); });
19753
- meta.appendChild(traceD);
19754
- var card = el("div", { class: "card", title: d.id, "data-record-id": d.id }, [
19755
- meta,
19756
- // 消したレコードは一覧でも取り消し線(次のビルドまで一覧には残る)
19757
- cardTitleLink(d, d.deleted ? " is-deleted" : ""),
19806
+ ], d.deleted ? " is-deleted" : "");
19807
+ // 消したレコードは一覧でも取り消し線(次のビルドまで一覧には残る)
19808
+ var card = el("div", { class: "card", title: d.id, "data-record-id": d.id }, head.concat([
19758
19809
  d.summary ? el("p", { class: "card-summary", text: d.summary }) : null,
19759
- ]);
19810
+ ]));
19760
19811
  card.addEventListener("click", function () { go(d.id); });
19761
19812
  wrap.appendChild(card);
19762
19813
  });
@@ -19804,22 +19855,15 @@ ${calendarAddUrl.toString()}
19804
19855
  shown.length + " / " + items.length + " 件" +
19805
19856
  (pg.pages > 1 ? "(" + pg.page + "/" + pg.pages + "ページ)" : "");
19806
19857
  pg.slice.forEach(function (r) {
19807
- var meta = el("div", { class: "card-meta" }, [
19858
+ var head = cardHead(r, [
19808
19859
  draftBadge(r),
19809
19860
  retractedBadge(r),
19810
19861
  latestBadge(r),
19811
19862
  r.date ? el("span", { class: "mono", text: r.date }) : null,
19812
- ]);
19813
- var ebr = fmErrorBadge(r);
19814
- if (ebr) meta.appendChild(ebr);
19815
- var traceR = el("a", { class: "mc-trace", href: "?tab=graph", text: "🕸 つながり" });
19816
- traceR.addEventListener("click", function (ev) { ev.preventDefault(); ev.stopPropagation(); openExplorerFor(r); });
19817
- meta.appendChild(traceR);
19818
- var card = el("div", { class: "card" + retractedFadedClass(r), title: r.id, "data-record-id": r.id }, [
19819
- meta,
19820
- cardTitleLink(r, r.deleted ? " is-deleted" : ""),
19863
+ ].concat(cardFacets(r)), r.deleted ? " is-deleted" : "");
19864
+ var card = el("div", { class: "card" + retractedFadedClass(r), title: r.id, "data-record-id": r.id }, head.concat([
19821
19865
  r.summary ? el("p", { class: "card-summary", text: r.summary }) : null,
19822
- ]);
19866
+ ]));
19823
19867
  card.addEventListener("click", function () { go(r.id); });
19824
19868
  listWrap.appendChild(card);
19825
19869
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@takagaki/cortex-decisions-viewer",
3
- "version": "0.12.140",
3
+ "version": "0.12.142",
4
4
  "description": "Cortexの意思決定記録(Decisions/*.md)を静的サイトにビルドして閲覧する。各レコードに「Edit on GitHub」リンクを付与する。",
5
5
  "license": "UNLICENSED",
6
6
  "private": false,