@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
34 lines (33 loc) • 845 B
JavaScript
//#region src/base-ui/DraggablePanel/core/dom.ts
const isRtl = (element) => !!element && getComputedStyle(element).direction === "rtl";
let locks = 0;
let saved = {};
const lockBody = (cursor, onEscape) => {
const { style } = document.body;
const onKeyDown = (event) => {
if (event.key === "Escape") {
event.preventDefault();
onEscape();
}
};
if (locks === 0) saved = {
cursor: style.cursor,
userSelect: style.userSelect,
webkitUserSelect: style.webkitUserSelect
};
locks += 1;
Object.assign(style, {
cursor,
userSelect: "none",
webkitUserSelect: "none"
});
addEventListener("keydown", onKeyDown, true);
return () => {
locks -= 1;
if (locks === 0) Object.assign(style, saved);
removeEventListener("keydown", onKeyDown, true);
};
};
//#endregion
export { isRtl, lockBody };
//# sourceMappingURL=dom.mjs.map