@agnos-ui/core
Version:
Framework-agnostic headless component library.
41 lines (40 loc) • 1.6 kB
JavaScript
;
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const tansu = require("@amadeus-it-group/tansu");
const utils_func = require("../utils/func.cjs");
const utils_directive = require("../dom-CuBx1JPZ.cjs");
const internalSetSiblingsInert = (element) => {
const inertValues = /* @__PURE__ */ new Map();
const recursiveHelper = (element2) => {
const parent = element2.parentElement;
if (parent && element2 !== document.body) {
Array.from(parent.children).forEach((sibling) => {
if (sibling !== element2 && sibling.nodeName !== "SCRIPT") {
inertValues.set(sibling, sibling.hasAttribute("inert"));
sibling.toggleAttribute("inert", true);
}
});
recursiveHelper(parent);
}
};
recursiveHelper(element);
return () => inertValues.forEach((value, element2) => {
element2.toggleAttribute("inert", value);
});
};
let internalRevert = utils_func.noop;
const setSiblingsInert = (element) => {
internalRevert();
internalRevert = element ? internalSetSiblingsInert(element) : utils_func.noop;
};
const { directive: storeArrayDirective, elements$ } = utils_directive.createBrowserStoreArrayDirective();
const lastElement$ = tansu.computed(
() => {
const elements = elements$();
return elements[elements.length - 1];
},
{ equal: Object.is }
);
const inertAction$ = tansu.computed(() => setSiblingsInert(lastElement$()));
const siblingsInert = utils_directive.mergeDirectives(storeArrayDirective, utils_directive.directiveSubscribe(inertAction$));
exports.siblingsInert = siblingsInert;