1
0
Fork 0
forked from 2sys/phonograph
phonograph/webc/src/viewer_controller_component.ffi.mjs
2025-07-30 23:02:18 -07:00

48 lines
1.3 KiB
JavaScript

export function focusHoverbar() {
const hoverbar = document.querySelector("viewer-hoverbar");
hoverbar?.focus();
}
export function blurHoverbar() {
const hoverbar = document.querySelector("viewer-hoverbar");
hoverbar?.blur();
}
export function overwriteInHoverbar(value) {
const hoverbar = document.querySelector("viewer-hoverbar");
hoverbar?.overwrite(value);
}
export function clearSelectedAttrs() {
document.querySelectorAll(
"table.viewer > tbody > tr > td > [selected='true']",
)
.forEach((element) => element.setAttribute("selected", ""));
}
export function setCellAttr(row, column, key, value) {
const cell = queryCell(row, column);
if (cell) {
cell.setAttribute(key, value);
}
}
export function syncCellValueToHoverbar(row, column, fieldType) {
const cell = queryCell(row, column);
if (cell) {
const value = cell.getAttribute("value") ?? "null";
const hoverbar = document.querySelector("viewer-hoverbar");
if (hoverbar) {
hoverbar.setAttribute("value", value);
hoverbar.setAttribute("field-type", fieldType);
}
}
}
function queryCell(row, column) {
const tr = document.querySelectorAll("table.viewer > tbody > tr")[row];
if (tr) {
return [...tr.querySelectorAll(":scope > td > *")][column];
}
return undefined;
}