UNPKG

primevue

Version:

PrimeVue is a premium UI library for Vue featuring a rich set of 90+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock, wh

30 lines (27 loc) • 1.1 kB
import { $dt } from '@primeuix/styled'; import * as utils from '@primeuix/utils'; import { prefixClasses, getClassPrefix, getActiveTheme } from '@primevue/core/utils'; var options = function options(isolation) { return { variableName: $dt('scrollbar.width').name, className: prefixClasses('p-overflow-hidden', getClassPrefix(getActiveTheme(isolation))) }; }; var bodyLocks = new WeakMap(); function blockBodyScroll(isolation) { var option = options(isolation); utils.blockBodyScroll(option); if (isolation && !bodyLocks.has(isolation) && typeof document !== 'undefined') { isolation.set('body-scroll-lock', "body.".concat(option.className, "{overflow:hidden;padding-right:var(").concat(option.variableName, ")}")); bodyLocks.set(isolation, isolation.retain(document)); } } function unblockBodyScroll(isolation) { utils.unblockBodyScroll(options(isolation)); if (isolation && bodyLocks.has(isolation)) { isolation["delete"]('body-scroll-lock'); bodyLocks.get(isolation)(); bodyLocks["delete"](isolation); } } export { blockBodyScroll, unblockBodyScroll };