{"version":3,"file":"set_body_overflow_hidden-CKNgsOoa.js","sources":["../../../node_modules/@slideslive/fuse-kit/dist/utils/utilities/get_focusable.js","../../../node_modules/@slideslive/fuse-kit/dist/utils/utilities/focus_trap.js","../../../node_modules/@slideslive/fuse-kit/dist/utils/utilities/set_body_overflow_hidden.js"],"sourcesContent":["import isVisible from \"../element/is_visible.js\";\nfunction getFocusable(context = document, autofocus = false) {\n let focusable = [\n ...context.querySelectorAll(\n // eslint-disable-next-line max-len\n 'button, [href], select, textarea, input:not([type=\"hidden\"]), [tabindex]:not([tabindex=\"-1\"]), [role=\"button\"]'\n )\n ];\n focusable = focusable.filter((e) => isVisible(e) && (!autofocus || e.dataset.disableAutofocus !== \"true\"));\n return focusable;\n}\nexport {\n getFocusable as default\n};\n","import addListener from \"./add_listener.js\";\nimport getFocusable from \"./get_focusable.js\";\nimport isVariableDefinedNotNull from \"./is_variable_defined_not_null.js\";\nimport removeListener from \"./remove_listener.js\";\nclass FocusTrap {\n constructor() {\n if (!FocusTrap.instance) {\n this._data = [];\n this._props = { listenerId: null };\n FocusTrap.instance = this;\n Object.freeze(FocusTrap.instance);\n }\n return FocusTrap.instance;\n }\n _trapTabKey(event) {\n if (event.keyCode !== 9) {\n return;\n }\n const openedDialog = document.querySelector(\"dialog[open]\");\n if (openedDialog) {\n return;\n }\n const focusableItems = getFocusable(this.context);\n const focusedItem = document.activeElement;\n const focusedItemIndex = focusableItems.indexOf(focusedItem);\n if (focusableItems.length === 0) {\n event.preventDefault();\n return;\n }\n if (focusedItemIndex === -1) {\n focusableItems[0].focus();\n event.preventDefault();\n return;\n }\n if (event.shiftKey) {\n if (focusedItemIndex === 0) {\n focusableItems[focusableItems.length - 1].focus();\n event.preventDefault();\n }\n return;\n }\n if (focusedItemIndex === focusableItems.length - 1) {\n focusableItems[0].focus();\n event.preventDefault();\n }\n }\n _focusFirstFocusable() {\n const focusableItems = getFocusable(this.context, true);\n if (focusableItems.length === 0) {\n if (isVariableDefinedNotNull(document.activeElement)) {\n document.activeElement.blur();\n }\n return;\n }\n focusableItems[0].focus();\n }\n _focusPreviouslyActiveElement() {\n if (!this.previouslyActiveElement) {\n return;\n }\n this.previouslyActiveElement.focus();\n }\n trap(context, options) {\n this._data.push({\n context,\n options,\n previouslyActiveElement: null\n });\n if (!this.options.omitPreviousActive) {\n this.previouslyActiveElement = document.activeElement;\n }\n if (!this.listenerId) {\n this.listenerId = addListener(window, \"keydown\", this._trapTabKey.bind(this));\n }\n this._focusFirstFocusable();\n }\n release(context = this.context) {\n this._focusPreviouslyActiveElement();\n const contextIndex = this._data.findIndex((data) => data.context === context);\n if (contextIndex < 0) {\n return;\n }\n this._data.splice(contextIndex, 1);\n if (this._data.length === 0 && this.listenerId) {\n removeListener(window, { id: this.listenerId });\n this.listenerId = null;\n }\n }\n get context() {\n if (!this._data[this._currentDataIndex]) {\n return null;\n }\n return this._data[this._currentDataIndex].context;\n }\n get options() {\n if (!this._data[this._currentDataIndex]) {\n return null;\n }\n return this._data[this._currentDataIndex].options;\n }\n get _currentDataIndex() {\n return this._data.length - 1;\n }\n get listenerId() {\n return this._props.listenerId;\n }\n set listenerId(value) {\n this._props.listenerId = value;\n }\n get previouslyActiveElement() {\n if (!this._data[this._currentDataIndex]) {\n return null;\n }\n return this._data[this._currentDataIndex].previouslyActiveElement;\n }\n set previouslyActiveElement(value) {\n this._data[this._currentDataIndex].previouslyActiveElement = value;\n }\n}\nfunction trapFocus(context, { omitPreviousActive = false } = {}) {\n const focusTrap = new FocusTrap();\n focusTrap.trap(context, { omitPreviousActive });\n}\nfunction releaseFocus(context) {\n const focusTrap = new FocusTrap();\n focusTrap.release(context);\n}\nexport {\n releaseFocus,\n trapFocus\n};\n","import isVariableDefinedNotNull from \"./is_variable_defined_not_null.js\";\nfunction setBodyOverflowHidden(counterParam = \"overflowHiddenCnt\") {\n if (!isVariableDefinedNotNull(document.body[counterParam])) {\n document.body[counterParam] = 0;\n }\n document.body[counterParam] += 1;\n if (document.body[counterParam] > 0) {\n document.documentElement.classList.add(\"isLocked\");\n }\n}\nexport {\n setBodyOverflowHidden as default\n};\n"],"names":["getFocusable","context","autofocus","focusable","isVisible","FocusTrap","event","focusableItems","focusedItem","focusedItemIndex","isVariableDefinedNotNull","options","addListener","contextIndex","data","removeListener","value","trapFocus","omitPreviousActive","releaseFocus","setBodyOverflowHidden","counterParam"],"mappings":"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","x_google_ignoreList":[0,1,2]}