UNPKG

@cds/core

Version:

Clarity Design System - common components, themes, and utilties

3 lines (2 loc) 955 B
import{arrayTail as t}from"../utils/array.js";import{setAttributes as e}from"../utils/dom.js";import{GlobalStateService as s}from"./global.service.js";const r="cds-focus-trap";class a{static getTrapElements(){return[...s.state.focusTrapItems]}static setTrapElements(t){const r=document.querySelector("html");null!==r&&e(r,["cds-focus-trap",!!t.length&&""]),s.state.focusTrapItems=[...t]}static removeTrapElement(t){this.getTrapElements().length<1||this.setTrapElements([...this.getTrapElements().filter((e=>e.focusTrapId!==t.focusTrapId))])}static setCurrent(t){t?.focusTrapId&&this.setTrapElements([...this.getTrapElements().filter((e=>e.focusTrapId!==t.focusTrapId)),t])}static activatePreviousCurrent(){this.setTrapElements([...this.getTrapElements()].slice(0,-1))}static getCurrent(){return t(this.getTrapElements())||null}}export{r as CDS_FOCUS_TRAP_DOCUMENT_ATTR,a as FocusTrapTrackerService}; //# sourceMappingURL=focus-trap-tracker.service.js.map