asdfg
This commit is contained in:
parent
f6d7412744
commit
091afc2b5c
77 changed files with 4405 additions and 8223 deletions
|
|
@ -16,10 +16,34 @@
|
|||
dialog.id = id;
|
||||
dialog.className = className;
|
||||
dialog.innerHTML = html;
|
||||
const panel = dialog.querySelector('[role="dialog"], [role="alertdialog"]');
|
||||
dialog.setAttribute("role", panel?.getAttribute("role") || "dialog");
|
||||
dialog.setAttribute("aria-modal", panel?.getAttribute("aria-modal") || "true");
|
||||
const labelledBy = panel?.getAttribute("aria-labelledby");
|
||||
const describedBy = panel?.getAttribute("aria-describedby");
|
||||
if (labelledBy) dialog.setAttribute("aria-labelledby", labelledBy);
|
||||
if (describedBy) dialog.setAttribute("aria-describedby", describedBy);
|
||||
panel?.removeAttribute("role");
|
||||
panel?.removeAttribute("aria-modal");
|
||||
panel?.removeAttribute("aria-labelledby");
|
||||
panel?.removeAttribute("aria-describedby");
|
||||
dialog.setAttribute("aria-hidden", dialog.classList.contains("hidden") ? "true" : "false");
|
||||
document.body.appendChild(dialog);
|
||||
return dialog;
|
||||
}
|
||||
|
||||
function showEditorDialog(dialog, opener = document.activeElement) {
|
||||
if (!dialog) return;
|
||||
if (global.TarinaiManagedDialogs?.open) global.TarinaiManagedDialogs.open(dialog, opener);
|
||||
else { dialog.classList.remove("hidden"); dialog.setAttribute("aria-hidden", "false"); }
|
||||
}
|
||||
|
||||
function hideEditorDialog(dialog) {
|
||||
if (!dialog) return;
|
||||
if (global.TarinaiManagedDialogs?.close) global.TarinaiManagedDialogs.close(dialog);
|
||||
else { dialog.classList.add("hidden"); dialog.setAttribute("aria-hidden", "true"); }
|
||||
}
|
||||
|
||||
function bindEditorClose(dialog, close, selectors = []) {
|
||||
if (!dialog || typeof close !== "function") return;
|
||||
for (const selector of selectors) {
|
||||
|
|
@ -27,6 +51,9 @@
|
|||
if (button) button.onclick = close;
|
||||
}
|
||||
dialog.onclick = (event) => { if (event.target === dialog) close(); };
|
||||
if (dialog._tarinaiCloseRequestHandler) dialog.removeEventListener("tarinai:dialog-close-request", dialog._tarinaiCloseRequestHandler);
|
||||
dialog._tarinaiCloseRequestHandler = close;
|
||||
dialog.addEventListener("tarinai:dialog-close-request", close);
|
||||
}
|
||||
|
||||
function ensureSignboardEditor() {
|
||||
|
|
@ -91,7 +118,7 @@
|
|||
const clear = dialog.querySelector("#signboardEditorClear");
|
||||
const closeBtn = dialog.querySelector("#signboardEditorClose");
|
||||
const close = () => {
|
||||
dialog.classList.add("hidden");
|
||||
hideEditorDialog(dialog);
|
||||
};
|
||||
const syncCount = () => {
|
||||
if (!area || !count) return;
|
||||
|
|
@ -148,7 +175,7 @@
|
|||
if (apply) apply.onclick = () => commit(area?.value || "");
|
||||
if (clear) clear.onclick = () => commit("");
|
||||
bindEditorClose(dialog, close, ["#signboardEditorCancel", "#signboardEditorClose"]);
|
||||
dialog.classList.remove("hidden");
|
||||
showEditorDialog(dialog);
|
||||
syncCount();
|
||||
return true;
|
||||
}
|
||||
|
|
@ -200,7 +227,7 @@
|
|||
for (const input of inputs) input.checked = Boolean((Number(mask) | 0) & (bits[input.dataset.robotTarget] || 0));
|
||||
};
|
||||
const close = () => {
|
||||
dialog.classList.add("hidden");
|
||||
hideEditorDialog(dialog);
|
||||
};
|
||||
const commit = (mask) => {
|
||||
api?.setRobotCleanerMask?.(robot, mask);
|
||||
|
|
@ -220,7 +247,7 @@
|
|||
bindEditorClose(dialog, close, ["#robotCleanerEditorClose", "#robotCleanerCancel"]);
|
||||
if (def) def.onclick = () => { writeMask(defaultMask); if (highSpeed) highSpeed.checked = false; };
|
||||
if (apply) apply.onclick = () => commit(readMask());
|
||||
dialog.classList.remove("hidden");
|
||||
showEditorDialog(dialog);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -291,7 +318,7 @@
|
|||
syncEditorInputPair(center, centerNum);
|
||||
syncEditorInputPair(swingRange, swingRangeNum);
|
||||
syncEditorInputPair(swingSpeed, swingSpeedNum);
|
||||
const close = () => dialog.classList.add("hidden");
|
||||
const close = () => hideEditorDialog(dialog);
|
||||
const commit = (forceStop = false) => {
|
||||
global.TarinaiHistory.capture(worldRef, "fan-swing-edit");
|
||||
const cDeg = Math.max(0, Math.min(355, Number(centerNum?.value || center?.value || 0) || 0));
|
||||
|
|
@ -314,7 +341,7 @@
|
|||
if (stop) stop.onclick = () => commit(true);
|
||||
if (apply) apply.onclick = () => commit(false);
|
||||
bindEditorClose(dialog, close, ["#fanEditorCancel", "#fanEditorClose"]);
|
||||
dialog.classList.remove("hidden");
|
||||
showEditorDialog(dialog);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -419,7 +446,7 @@
|
|||
editor.syncInputPair(speed, speedNum, controller.draw);
|
||||
editor.syncInputPair(thick, thickNum, controller.draw);
|
||||
const close = () => {
|
||||
dialog.classList.add("hidden");
|
||||
hideEditorDialog(dialog);
|
||||
controller.close();
|
||||
};
|
||||
if (apply) apply.onclick = () => {
|
||||
|
|
@ -447,7 +474,7 @@
|
|||
};
|
||||
bindEditorClose(dialog, close, ["#rotatorCancel", "#rotatorEditorClose"]);
|
||||
controller.draw();
|
||||
dialog.classList.remove("hidden");
|
||||
showEditorDialog(dialog);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -557,7 +584,7 @@
|
|||
editor.syncInputPair(travel, travelNum, controller.draw);
|
||||
editor.syncInputPair(thick, thickNum, controller.draw);
|
||||
const close = () => {
|
||||
dialog.classList.add("hidden");
|
||||
hideEditorDialog(dialog);
|
||||
controller.close();
|
||||
};
|
||||
if (apply) apply.onclick = () => {
|
||||
|
|
@ -590,7 +617,7 @@
|
|||
};
|
||||
bindEditorClose(dialog, close, ["#reciprocatorCancel", "#reciprocatorEditorClose"]);
|
||||
controller.draw();
|
||||
dialog.classList.remove("hidden");
|
||||
showEditorDialog(dialog);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
@ -1002,7 +1029,7 @@
|
|||
bindNearestThumbTeleport(timeRange, timeStart, timeEnd, value => normalizeMinute(value, 0), updateTimeRange);
|
||||
target.onchange = () => updateMode(true);
|
||||
updateMode(false);
|
||||
const close = () => { dialog.classList.add("hidden"); if (worldRef._pressureSwitchOverlay?.item === item) worldRef._pressureSwitchOverlay = null; global.render?.(); };
|
||||
const close = () => { hideEditorDialog(dialog); if (worldRef._pressureSwitchOverlay?.item === item) worldRef._pressureSwitchOverlay = null; global.render?.(); };
|
||||
dialog.querySelector("#signalItemEditorApply").onclick = () => {
|
||||
global.TarinaiHistory.capture(worldRef, "detector-edit");
|
||||
item.pressureTarget = DETECTOR_TARGETS[target.value] ? target.value : "tarinai";
|
||||
|
|
@ -1016,10 +1043,8 @@
|
|||
item.pressureTimeEnd = normalizeMinute(timeEnd.value, 1080);
|
||||
worldRef.drawListDirty = true; worldRef.markSpatialDirty?.("detector-edit"); global.render?.(); close();
|
||||
};
|
||||
dialog.querySelector("#signalItemEditorCancel").onclick = close;
|
||||
dialog.querySelector("#signalItemEditorClose").onclick = close;
|
||||
dialog.onclick = e => { if (e.target === dialog) close(); };
|
||||
dialog.classList.remove("hidden");
|
||||
bindEditorClose(dialog, close, ["#signalItemEditorCancel", "#signalItemEditorClose"]);
|
||||
showEditorDialog(dialog);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue