UNPKG

@lobehub/ui

Version:

Lobe UI is an open-source UI component library for building AIGC web apps

34 lines (33 loc) • 845 B
//#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