Merge branch 'sub_laptop_3' of C:/Aislo_wt/sub_laptop_3 into main_laptop_1
This commit is contained in:
@@ -11,7 +11,8 @@
|
||||
* 셈 = 브라우저 계산기(`calcDoc`) 즉시 · 캐시에 없는 연결만 뒤에서 `POST {길}/preview`(옛 요청 끊음)
|
||||
* 고침 = 캐시(sessionStorage)에 쌓고 [저장] 한 번에 `POST {길}/save`(서버가 정본으로 다시 셈) · 자동저장 없음
|
||||
* M02 사본(`copy`) — 저장 몸 {문서, 끊음(받은 그대로), 판} · 판 바뀜(409)은 문서가 그대로면 새 판으로 한 번 더
|
||||
* 기계 줄 · 옵션 가로 기계 = 기계 창(827-1 · `line_stack_machine`) — 초안은 문서 칸(캐시) · [저장] 때 서버가 내 기계로
|
||||
* 기계 줄 · 옵션 가로 기계 = 기계 창(827-1 · 836-1 찾기 · 바꾸기만) · 기계 내부 값 = 왼쪽 기계 제어 구역(836-1 ·
|
||||
* `line_stack_machine_ctl` — 문서 칸 `기계덮음` · 캐시 · [저장] 때 서버가 다시 셈)
|
||||
* [단가 갱신] · [재생성] = 미리 셈 → 알림 → 저장(`formula_doc_copy.ts` · 고친 것 먼저 저장)
|
||||
* 저장 전 문서(`memory` · 836-5 · 불러오기 미리 보기) = 빈 키 + 서버에 문서째(`본`) 읽음 · 왼쪽 줄 쌓기는 보기만(inert) · 디스크 쓰기 0
|
||||
* ========================================================================== */
|
||||
@@ -57,7 +58,6 @@ import { addTaken, type Taken } from "../common_util/common_util_line_stack_copy
|
||||
import type { Layer } from "../M02_MasterTemplete/M02_MasterTemplete_Api_Fetch";
|
||||
import { buildEdit } from "./line_stack_edit";
|
||||
import { openMachineWindow, type CopyAnswer, type MachineCtx } from "./line_stack_machine";
|
||||
import { mt } from "../M02_MasterTemplete/M02_MyMachine_Text";
|
||||
import { buildOut } from "./line_stack_out";
|
||||
import { lt } from "./line_stack_text";
|
||||
import "./line_stack.css";
|
||||
@@ -283,18 +283,20 @@ export function createStackScreen(opt: StackScreenOptions) {
|
||||
|
||||
// ── 그림 ──
|
||||
const edit = (): boolean => opt.admin && (!!key || !cp);
|
||||
/** 827-1 기계 창 — 개인 층 M02 SK 만 [고쳐 쓰기] · M01 기초 = M01 기계만 · 사본 줄 = 수식 길 `/machine` */
|
||||
/** 827-1 기계 창(찾기 · 바꾸기) — M01 기초 = M01 기계만 · 사본 줄 = 수식 길 `/machine` */
|
||||
const machineCtx = (): MachineCtx => ({
|
||||
scope: cp && opt.scope ? opt.scope : null,
|
||||
canEdit: !!cp && !!key && opt.scope?.layer === "personal" && edit(),
|
||||
why: !cp ? mt("Why_M01") : opt.scope?.layer === "personal" ? "" : mt("Why_Company"),
|
||||
...(key ? { me: key } : {}),
|
||||
...(cp && key
|
||||
? { copyRow: (no: string) => call<CopyAnswer>(`/machine?no=${encodeURIComponent(no)}`) }
|
||||
: {}),
|
||||
});
|
||||
/** 초안 기계 셈 기록(서버 확인 길 · 요소 · 표 · 식 문서) → 계산기 캐시 — [확인] 직후 브라우저가 바로 셈 */
|
||||
const prime = (record: DocRecord): void => cache.merge(record);
|
||||
/** 836-1 기계 제어 구역 기본값 — 덮음 없이 그 기계 식 셈(캐시에 없는 연결 = 뒤에서 서버) */
|
||||
const calcSub = (d: FormulaDoc, g: Record<string, unknown>): DocAnswer => {
|
||||
const got = calcDoc(d, cache.links, g, [], new Map(), {});
|
||||
if (cache.takeMissing()) ask();
|
||||
return got;
|
||||
};
|
||||
const draw = (): void => {
|
||||
if (!doc || !answer) {
|
||||
[head, left, right, foot].forEach((x) => x.replaceChildren());
|
||||
@@ -372,7 +374,7 @@ export function createStackScreen(opt: StackScreenOptions) {
|
||||
pair: (loc) => pair(loc, "left"),
|
||||
take: takeCtx(),
|
||||
machine: machineCtx(),
|
||||
prime,
|
||||
calc: calcSub,
|
||||
before: saved ? lineMap(JSON.parse(saved) as StackDoc) : undefined,
|
||||
}),
|
||||
]
|
||||
@@ -391,6 +393,7 @@ export function createStackScreen(opt: StackScreenOptions) {
|
||||
},
|
||||
miss: ask,
|
||||
pair: (loc) => pair(loc, "right"),
|
||||
redraw: () => draw(),
|
||||
})
|
||||
: el("p", { className: "ui-text ui-text--muted", text: lt("Empty") }),
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user