Files
mivodev.github.io/node_modules/focus-trap/dist/focus-trap.esm.min.js

7 lines
14 KiB
JavaScript

/*!
* focus-trap 7.8.0
* @license MIT, https://github.com/focus-trap/focus-trap/blob/master/LICENSE
*/
import{tabbable as e,focusable as t,isTabbable as n,getTabIndex as a,isFocusable as r}from"tabbable";function o(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,a=Array(t);n<t;n++)a[n]=e[n];return a}function i(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=d(e))||t){n&&(e=n);var a=0,r=function(){};return{s:r,n:function(){return a>=e.length?{done:!0}:{done:!1,value:e[a++]}},e:function(e){throw e},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,u=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return i=e.done,e},e:function(e){u=!0,o=e},f:function(){try{i||null==n.return||n.return()}finally{if(u)throw o}}}}function u(e,t,n){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var a=n.call(e,t);if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function s(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);t&&(a=a.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,a)}return n}function c(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?s(Object(n),!0).forEach((function(t){u(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):s(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function l(e){return function(e){if(Array.isArray(e))return o(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||d(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function d(e,t){if(e){if("string"==typeof e)return o(e,t);var n={}.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(e,t):void 0}}var f={getActiveTrap:function(e){return(null==e?void 0:e.length)>0?e[e.length-1]:null},activateTrap:function(e,t){t!==f.getActiveTrap(e)&&f.pauseTrap(e);var n=e.indexOf(t);-1===n||e.splice(n,1),e.push(t)},deactivateTrap:function(e,t){var n=e.indexOf(t);-1!==n&&e.splice(n,1),f.unpauseTrap(e)},pauseTrap:function(e){var t=f.getActiveTrap(e);null==t||t._setPausedState(!0)},unpauseTrap:function(e){var t=f.getActiveTrap(e);t&&!t._isManuallyPaused()&&t._setPausedState(!1)}},v=function(e){return"Tab"===(null==e?void 0:e.key)||9===(null==e?void 0:e.keyCode)},b=function(e){return v(e)&&!e.shiftKey},p=function(e){return v(e)&&e.shiftKey},y=function(e){return setTimeout(e,0)},m=function(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),a=1;a<t;a++)n[a-1]=arguments[a];return"function"==typeof e?e.apply(void 0,n):e},h=function(e){return e.target.shadowRoot&&"function"==typeof e.composedPath?e.composedPath()[0]:e.target},w=[],g=function(o,u){var s,d=(null==u?void 0:u.document)||document,g=(null==u?void 0:u.trapStack)||w,S=c({returnFocusOnDeactivate:!0,escapeDeactivates:!0,delayInitialFocus:!0,isolateSubtrees:!1,isKeyForward:b,isKeyBackward:p},u),N={containers:[],containerGroups:[],tabbableGroups:[],adjacentElements:new Set,alreadySilent:new Set,nodeFocusedBeforeActivation:null,mostRecentlyFocusedNode:null,active:!1,paused:!1,manuallyPaused:!1,delayInitialFocusTimer:void 0,recentNavEvent:void 0},T=function(e,t,n){return e&&void 0!==e[t]?e[t]:S[n||t]},E=function(e,t){var n="function"==typeof(null==t?void 0:t.composedPath)?t.composedPath():void 0;return N.containerGroups.findIndex((function(t){var a=t.container,r=t.tabbableNodes;return a.contains(e)||(null==n?void 0:n.includes(a))||r.find((function(t){return t===e}))}))},F=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=t.hasFallback,a=void 0!==n&&n,r=t.params,o=void 0===r?[]:r,i=S[e];if("function"==typeof i&&(i=i.apply(void 0,l(o))),!0===i&&(i=void 0),!i){if(void 0===i||!1===i)return i;throw new Error("`".concat(e,"` was specified but was not a node, or did not return a node"))}var u=i;if("string"==typeof i){try{u=d.querySelector(i)}catch(t){throw new Error("`".concat(e,'` appears to be an invalid selector; error="').concat(t.message,'"'))}if(!u&&!a)throw new Error("`".concat(e,"` as selector refers to no known node"))}return u},O=function(){var e=F("initialFocus",{hasFallback:!0});if(!1===e)return!1;if(void 0===e||e&&!r(e,S.tabbableOptions))if(E(d.activeElement)>=0)e=d.activeElement;else{var t=N.tabbableGroups[0];e=t&&t.firstTabbableNode||F("fallbackFocus")}else null===e&&(e=F("fallbackFocus"));if(!e)throw new Error("Your focus-trap needs to have at least one focusable element");return e},P=function(){if(N.containerGroups=N.containers.map((function(r){var o=e(r,S.tabbableOptions),i=t(r,S.tabbableOptions),u=o.length>0?o[0]:void 0,s=o.length>0?o[o.length-1]:void 0,c=i.find((function(e){return n(e)})),l=i.slice().reverse().find((function(e){return n(e)})),d=!!o.find((function(e){return a(e)>0}));return{container:r,tabbableNodes:o,focusableNodes:i,posTabIndexesFound:d,firstTabbableNode:u,lastTabbableNode:s,firstDomTabbableNode:c,lastDomTabbableNode:l,nextTabbableNode:function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1],a=o.indexOf(e);return a<0?t?i.slice(i.indexOf(e)+1).find((function(e){return n(e)})):i.slice(0,i.indexOf(e)).reverse().find((function(e){return n(e)})):o[a+(t?1:-1)]}}})),N.tabbableGroups=N.containerGroups.filter((function(e){return e.tabbableNodes.length>0})),N.tabbableGroups.length<=0&&!F("fallbackFocus"))throw new Error("Your focus-trap must have at least one container with at least one tabbable node in it at all times");if(N.containerGroups.find((function(e){return e.posTabIndexesFound}))&&N.containerGroups.length>1)throw new Error("At least one node with a positive tabindex was found in one of your focus-trap's multiple containers. Positive tabindexes are only supported in single-container focus-traps.")},k=function(e){var t=e.activeElement;if(t)return t.shadowRoot&&null!==t.shadowRoot.activeElement?k(t.shadowRoot):t},A=function(e){!1!==e&&e!==k(document)&&(e&&e.focus?(e.focus({preventScroll:!!S.preventScroll}),N.mostRecentlyFocusedNode=e,function(e){return e.tagName&&"input"===e.tagName.toLowerCase()&&"function"==typeof e.select}(e)&&e.select()):A(O()))},I=function(e){var t=F("setReturnFocus",{params:[e]});return t||!1!==t&&e},D=function(e){var t=e.target,o=e.event,i=e.isBackward,u=void 0!==i&&i;t=t||h(o),P();var s=null;if(N.tabbableGroups.length>0){var c=E(t,o),l=c>=0?N.containerGroups[c]:void 0;if(c<0)s=u?N.tabbableGroups[N.tabbableGroups.length-1].lastTabbableNode:N.tabbableGroups[0].firstTabbableNode;else if(u){var d=N.tabbableGroups.findIndex((function(e){var n=e.firstTabbableNode;return t===n}));if(d<0&&(l.container===t||r(t,S.tabbableOptions)&&!n(t,S.tabbableOptions)&&!l.nextTabbableNode(t,!1))&&(d=c),d>=0){var f=0===d?N.tabbableGroups.length-1:d-1,b=N.tabbableGroups[f];s=a(t)>=0?b.lastTabbableNode:b.lastDomTabbableNode}else v(o)||(s=l.nextTabbableNode(t,!1))}else{var p=N.tabbableGroups.findIndex((function(e){var n=e.lastTabbableNode;return t===n}));if(p<0&&(l.container===t||r(t,S.tabbableOptions)&&!n(t,S.tabbableOptions)&&!l.nextTabbableNode(t))&&(p=c),p>=0){var y=p===N.tabbableGroups.length-1?0:p+1,m=N.tabbableGroups[y];s=a(t)>=0?m.firstTabbableNode:m.firstDomTabbableNode}else v(o)||(s=l.nextTabbableNode(t))}}else s=F("fallbackFocus");return s},R=function(e){var t=h(e);E(t,e)>=0||(m(S.clickOutsideDeactivates,e)?s.deactivate({returnFocus:S.returnFocusOnDeactivate}):m(S.allowOutsideClick,e)||e.preventDefault())},G=function(e){var t=h(e),n=E(t,e)>=0;if(n||t instanceof Document)n&&(N.mostRecentlyFocusedNode=t);else{var r;e.stopImmediatePropagation();var o=!0;if(N.mostRecentlyFocusedNode)if(a(N.mostRecentlyFocusedNode)>0){var i=E(N.mostRecentlyFocusedNode),u=N.containerGroups[i].tabbableNodes;if(u.length>0){var s=u.findIndex((function(e){return e===N.mostRecentlyFocusedNode}));s>=0&&(S.isKeyForward(N.recentNavEvent)?s+1<u.length&&(r=u[s+1],o=!1):s-1>=0&&(r=u[s-1],o=!1))}}else N.containerGroups.some((function(e){return e.tabbableNodes.some((function(e){return a(e)>0}))}))||(o=!1);else o=!1;o&&(r=D({target:N.mostRecentlyFocusedNode,isBackward:S.isKeyBackward(N.recentNavEvent)})),A(r||(N.mostRecentlyFocusedNode||O()))}N.recentNavEvent=void 0},j=function(e){(S.isKeyForward(e)||S.isKeyBackward(e))&&function(e){var t=arguments.length>1&&void 0!==arguments[1]&&arguments[1];N.recentNavEvent=e;var n=D({event:e,isBackward:t});n&&(v(e)&&e.preventDefault(),A(n))}(e,S.isKeyBackward(e))},x=function(e){var t;"Escape"!==(null==(t=e)?void 0:t.key)&&"Esc"!==(null==t?void 0:t.key)&&27!==(null==t?void 0:t.keyCode)||!1===m(S.escapeDeactivates,e)||(e.preventDefault(),s.deactivate())},_=function(e){var t=h(e);E(t,e)>=0||m(S.clickOutsideDeactivates,e)||m(S.allowOutsideClick,e)||(e.preventDefault(),e.stopImmediatePropagation())},L=function(){if(N.active)return f.activateTrap(g,s),N.delayInitialFocusTimer=S.delayInitialFocus?y((function(){A(O())})):A(O()),d.addEventListener("focusin",G,!0),d.addEventListener("mousedown",R,{capture:!0,passive:!1}),d.addEventListener("touchstart",R,{capture:!0,passive:!1}),d.addEventListener("click",_,{capture:!0,passive:!1}),d.addEventListener("keydown",j,{capture:!0,passive:!1}),d.addEventListener("keydown",x),s},C=function(){if(N.active)return d.removeEventListener("focusin",G,!0),d.removeEventListener("mousedown",R,!0),d.removeEventListener("touchstart",R,!0),d.removeEventListener("click",_,!0),d.removeEventListener("keydown",j,!0),d.removeEventListener("keydown",x),s},B="undefined"!=typeof window&&"MutationObserver"in window?new MutationObserver((function(e){e.some((function(e){return Array.from(e.removedNodes).some((function(e){return e===N.mostRecentlyFocusedNode}))}))&&A(O())})):void 0,K=function(){B&&(B.disconnect(),N.active&&!N.paused&&N.containers.map((function(e){B.observe(e,{subtree:!0,childList:!0})})))};return s={get active(){return N.active},get paused(){return N.paused},activate:function(e){if(N.active)return this;var t,n=T(e,"onActivate"),a=T(e,"onPostActivate"),r=T(e,"checkCanFocusTrap"),o=f.getActiveTrap(g),i=!1;o&&!o.paused&&(null===(t=o._setSubtreeIsolation)||void 0===t||t.call(o,!1),i=!0);try{r||P(),N.active=!0,N.paused=!1,N.nodeFocusedBeforeActivation=k(d),null==n||n();var u=function(){r&&P(),L(),K(),S.isolateSubtrees&&s._setSubtreeIsolation(!0),null==a||a()};if(r)return r(N.containers.concat()).then(u,u),this;u()}catch(e){var c;if(o===f.getActiveTrap(g)&&i)null===(c=o._setSubtreeIsolation)||void 0===c||c.call(o,!0);throw e}return this},deactivate:function(e){if(!N.active)return this;var t=c({onDeactivate:S.onDeactivate,onPostDeactivate:S.onPostDeactivate,checkCanReturnFocus:S.checkCanReturnFocus},e);clearTimeout(N.delayInitialFocusTimer),N.delayInitialFocusTimer=void 0,N.paused||s._setSubtreeIsolation(!1),N.alreadySilent.clear(),C(),N.active=!1,N.paused=!1,K(),f.deactivateTrap(g,s);var n=T(t,"onDeactivate"),a=T(t,"onPostDeactivate"),r=T(t,"checkCanReturnFocus"),o=T(t,"returnFocus","returnFocusOnDeactivate");null==n||n();var i=function(){y((function(){o&&A(I(N.nodeFocusedBeforeActivation)),null==a||a()}))};return o&&r?(r(I(N.nodeFocusedBeforeActivation)).then(i,i),this):(i(),this)},pause:function(e){return N.active?(N.manuallyPaused=!0,this._setPausedState(!0,e)):this},unpause:function(e){return N.active?(N.manuallyPaused=!1,g[g.length-1]!==this?this:this._setPausedState(!1,e)):this},updateContainerElements:function(e){var t=[].concat(e).filter(Boolean);return N.containers=t.map((function(e){return"string"==typeof e?d.querySelector(e):e})),S.isolateSubtrees&&function(e){N.active&&!N.paused&&s._setSubtreeIsolation(!1),N.adjacentElements.clear(),N.alreadySilent.clear();var t,n=new Set,a=new Set,r=i(e);try{for(r.s();!(t=r.n()).done;){var o=t.value;n.add(o);for(var u="undefined"!=typeof ShadowRoot&&o.getRootNode()instanceof ShadowRoot,c=o;c;){n.add(c);var l=c.parentElement,d=[];l?d=l.children:!l&&u&&(d=c.getRootNode().children,l=c.getRootNode().host,u="undefined"!=typeof ShadowRoot&&l.getRootNode()instanceof ShadowRoot);var f,v=i(d);try{for(v.s();!(f=v.n()).done;){var b=f.value;a.add(b)}}catch(e){v.e(e)}finally{v.f()}c=l}}}catch(e){r.e(e)}finally{r.f()}n.forEach((function(e){a.delete(e)})),N.adjacentElements=a}(N.containers),N.active&&(P(),S.isolateSubtrees&&!N.paused&&s._setSubtreeIsolation(!0)),K(),this}},Object.defineProperties(s,{_isManuallyPaused:{value:function(){return N.manuallyPaused}},_setPausedState:{value:function(e,t){if(N.paused===e)return this;if(N.paused=e,e){var n=T(t,"onPause"),a=T(t,"onPostPause");null==n||n(),C(),K(),s._setSubtreeIsolation(!1),null==a||a()}else{var r=T(t,"onUnpause"),o=T(t,"onPostUnpause");null==r||r(),s._setSubtreeIsolation(!0),P(),L(),K(),null==o||o()}return this}},_setSubtreeIsolation:{value:function(e){S.isolateSubtrees&&N.adjacentElements.forEach((function(t){var n;if(e)if("aria-hidden"===S.isolateSubtrees)"true"!==t.ariaHidden&&"true"!==(null===(n=t.getAttribute("aria-hidden"))||void 0===n?void 0:n.toLowerCase())||N.alreadySilent.add(t),t.setAttribute("aria-hidden","true");else(t.inert||t.hasAttribute("inert"))&&N.alreadySilent.add(t),t.setAttribute("inert",!0);else if(N.alreadySilent.has(t));else if("aria-hidden"===S.isolateSubtrees)t.removeAttribute("aria-hidden");else t.removeAttribute("inert")}))}}}),s.updateContainerElements(o),s};export{g as createFocusTrap};
//# sourceMappingURL=focus-trap.esm.min.js.map