- 머리 단추 차례 … [새로고침] [초기화] [삭제] [저장] — 새 Main_Actions(쓰기 권한 있는 층만 보임) - [삭제] = 735 경고 창(쓰는 곳 표 · 키) → 나무 지우기 → 목록으로 · 쓰는 곳 없음 = 한 줄 물음 - [초기화] = 서버 -reset 미리 보기(걷힐 고침 수 · 뺀 줄 되살림 수) → 물음 → 그 층에 씀 → 다시 그림 · 저장 안 한 고침은 먼저 물음 · 옵션 · 기본정보 그대로 - 출처 꼬리표(본뜬) — 순수 logic/M02_Born_Tag · 단가산출 = 이름 옆 글 꼬리표(공용 Ho 꼬리표 칸을 이름 줄 안으로 · 첫 줄 보임 · 둘째 줄 풍선) · 일위대가표 격자 = 비고 칸 글 + 풍선 · 줄 표 = 이름 끝 - 시험: 새 test_740_2 · 낡은 시험 4 고침(test_727 · 717_2b · 704_3 · 704_4 — 모델 · 격자 파일을 이어 붙여 도는 시험이라 새 꼬리표 글 파일을 목록에 더함) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
38 lines
1.6 KiB
TypeScript
38 lines
1.6 KiB
TypeScript
/* =============================================================================
|
|
* M02_MasterTemplete_Labor_Born.ts
|
|
* 일위대가 상세 출처 꼬리표(740-2) — 넣어 펼친 줄 · 자재의 `본뜬` 을 짧은 글로(풍선 = 키 · 이름 · 층 · 때).
|
|
* 일위대가표 격자 = 비고 칸 글 `bornNote` + 풍선 `tipBorn`(칸 폭 · 줄 높이 안 바뀜)
|
|
* 줄 표(`Labor_Rows` · `Labor_MatTable`) = 이름 글 끝 `bornSpan`(같은 줄 · 넘치면 말줄임)
|
|
* 색 단추 아님 · 셈에 안 씀.
|
|
* ========================================================================== */
|
|
|
|
import { el } from "@ui/ui_template_elements";
|
|
import { bornText } from "./logic/M02_Born_Tag";
|
|
|
|
const SPLIT = "\n"; // 글 첫 줄 = 보임 · 나머지 = 풍선
|
|
|
|
/** 일위대가표 격자 비고 칸 풍선 — `at` = 격자 줄 → 일위대가 줄 번호(담은 로직 뒤 자재) */
|
|
export function tipBorn(
|
|
root: HTMLElement,
|
|
at: (row: number) => number | null,
|
|
born: (n: number) => unknown,
|
|
): void {
|
|
root.querySelectorAll<HTMLElement>("tr[data-i]").forEach((tr) => {
|
|
const n = at(Number(tr.dataset.i));
|
|
const [, ...tip] = n === null ? [] : bornText(born(n)).split(SPLIT);
|
|
if (tip.length)
|
|
tr.querySelector<HTMLElement>("td:nth-last-child(2)")?.setAttribute("title", tip.join(" "));
|
|
});
|
|
}
|
|
|
|
/** 줄 표 이름 끝 꼬리표 — `본뜬` 이 없으면 null */
|
|
export function bornSpan(born: unknown): HTMLElement | null {
|
|
const [shown, ...tip] = bornText(born).split(SPLIT);
|
|
if (!shown) return null;
|
|
return el("span", {
|
|
className: "m02-labrow__born",
|
|
text: ` ${shown}`,
|
|
attrs: { title: tip.join(" "), "data-born": "" },
|
|
});
|
|
}
|