2025-07-30 23:02:11 -07:00
|
|
|
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);
|
|
|
|
|
}
|
|
|
|
|
|
2025-07-25 15:01:31 -07:00
|
|
|
export function clearSelectedAttrs() {
|
|
|
|
|
document.querySelectorAll(
|
|
|
|
|
"table.viewer > tbody > tr > td > [selected='true']",
|
|
|
|
|
)
|
|
|
|
|
.forEach((element) => element.setAttribute("selected", ""));
|
|
|
|
|
}
|
|
|
|
|
|
2025-07-30 23:02:11 -07:00
|
|
|
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) {
|
2025-07-25 15:01:31 -07:00
|
|
|
const tr = document.querySelectorAll("table.viewer > tbody > tr")[row];
|
|
|
|
|
if (tr) {
|
2025-07-30 23:02:11 -07:00
|
|
|
return [...tr.querySelectorAll(":scope > td > *")][column];
|
2025-07-25 15:01:31 -07:00
|
|
|
}
|
2025-07-30 23:02:11 -07:00
|
|
|
return undefined;
|
2025-07-25 15:01:31 -07:00
|
|
|
}
|