{"ast":null,"code":"import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-clientside-effect';\nimport moveFocusInside, { focusInside, focusIsHidden, getFocusabledIn } from 'focus-lock';\nimport { deferAction } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\nvar focusOnBody = function focusOnBody() {\n  return document && document.activeElement === document.body;\n};\nvar isFreeFocus = function isFreeFocus() {\n  return focusOnBody() || focusIsHidden();\n};\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\nvar defaultWhitelist = function defaultWhitelist() {\n  return true;\n};\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n  return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n  lastPortaledElement = {\n    observerNode: observerNode,\n    portaledElement: portaledElement\n  };\n};\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n  return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\nfunction autoGuard(startIndex, end, step, allNodes) {\n  var lastGuard = null;\n  var i = startIndex;\n  do {\n    var item = allNodes[i];\n    if (item.guard) {\n      if (item.node.dataset.focusAutoGuard) {\n        lastGuard = item;\n      }\n    } else if (item.lockItem) {\n      if (i !== startIndex) {\n        // we will tab to the next element\n        return;\n      }\n      lastGuard = null;\n    } else {\n      break;\n    }\n  } while ((i += step) !== end);\n  if (lastGuard) {\n    lastGuard.node.tabIndex = 0;\n  }\n}\nvar extractRef = function extractRef(ref) {\n  return ref && 'current' in ref ? ref.current : ref;\n};\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n  if (crossFrameOption) {\n    // with cross frame return true for any value\n    return Boolean(focusWasOutsideWindow);\n  } // in other case return only of focus went a while aho\n\n  return focusWasOutsideWindow === 'meanwhile';\n};\nvar activateTrap = function activateTrap() {\n  var result = false;\n  if (lastActiveTrap) {\n    var _lastActiveTrap = lastActiveTrap,\n      observed = _lastActiveTrap.observed,\n      persistentFocus = _lastActiveTrap.persistentFocus,\n      autoFocus = _lastActiveTrap.autoFocus,\n      shards = _lastActiveTrap.shards,\n      crossFrame = _lastActiveTrap.crossFrame;\n    var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n    var activeElement = document && document.activeElement;\n    if (workingNode) {\n      var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n      if (!activeElement || focusWhitelisted(activeElement)) {\n        if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n          if (workingNode && !(focusInside(workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n            if (document && !lastActiveFocus && activeElement && !autoFocus) {\n              // Check if blur() exists, which is missing on certain elements on IE\n              if (activeElement.blur) {\n                activeElement.blur();\n              }\n              document.body.focus();\n            } else {\n              result = moveFocusInside(workingArea, lastActiveFocus);\n              lastPortaledElement = {};\n            }\n          }\n          focusWasOutsideWindow = false;\n          lastActiveFocus = document && document.activeElement;\n        }\n      }\n      if (document) {\n        var newActiveElement = document && document.activeElement;\n        var allNodes = getFocusabledIn(workingArea);\n        var focusedIndex = allNodes.map(function (_ref) {\n          var node = _ref.node;\n          return node;\n        }).indexOf(newActiveElement);\n        if (focusedIndex > -1) {\n          // remove old focus\n          allNodes.filter(function (_ref2) {\n            var guard = _ref2.guard,\n              node = _ref2.node;\n            return guard && node.dataset.focusAutoGuard;\n          }).forEach(function (_ref3) {\n            var node = _ref3.node;\n            return node.removeAttribute('tabIndex');\n          });\n          autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n          autoGuard(focusedIndex, -1, -1, allNodes);\n        }\n      }\n    }\n  }\n  return result;\n};\nvar onTrap = function onTrap(event) {\n  if (activateTrap() && event) {\n    // prevent scroll jump\n    event.stopPropagation();\n    event.preventDefault();\n  }\n};\nvar onBlur = function onBlur() {\n  return deferAction(activateTrap);\n};\nvar onFocus = function onFocus(event) {\n  // detect portal\n  var source = event.target;\n  var currentNode = event.currentTarget;\n  if (!currentNode.contains(source)) {\n    recordPortal(currentNode, source);\n  }\n};\nvar FocusWatcher = function FocusWatcher() {\n  return null;\n};\nvar FocusTrap = function FocusTrap(_ref4) {\n  var children = _ref4.children;\n  return /*#__PURE__*/React.createElement(\"div\", {\n    onBlur: onBlur,\n    onFocus: onFocus\n  }, children);\n};\nFocusTrap.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  children: PropTypes.node.isRequired\n} : {};\nvar onWindowBlur = function onWindowBlur() {\n  focusWasOutsideWindow = 'just'; // using setTimeout to set  this variable after React/sidecar reaction\n\n  setTimeout(function () {\n    focusWasOutsideWindow = 'meanwhile';\n  }, 0);\n};\nvar attachHandler = function attachHandler() {\n  document.addEventListener('focusin', onTrap, true);\n  document.addEventListener('focusout', onBlur);\n  window.addEventListener('blur', onWindowBlur);\n};\nvar detachHandler = function detachHandler() {\n  document.removeEventListener('focusin', onTrap, true);\n  document.removeEventListener('focusout', onBlur);\n  window.removeEventListener('blur', onWindowBlur);\n};\nfunction reducePropsToState(propsList) {\n  return propsList.filter(function (_ref5) {\n    var disabled = _ref5.disabled;\n    return !disabled;\n  });\n}\nfunction handleStateChangeOnClient(traps) {\n  var trap = traps.slice(-1)[0];\n  if (trap && !lastActiveTrap) {\n    attachHandler();\n  }\n  var lastTrap = lastActiveTrap;\n  var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n  lastActiveTrap = trap;\n  if (lastTrap && !sameTrap) {\n    lastTrap.onDeactivation(); // return focus only of last trap was removed\n\n    if (!traps.filter(function (_ref6) {\n      var id = _ref6.id;\n      return id === lastTrap.id;\n    }).length) {\n      // allow defer is no other trap is awaiting restore\n      lastTrap.returnFocus(!trap);\n    }\n  }\n  if (trap) {\n    lastActiveFocus = null;\n    if (!sameTrap || lastTrap.observed !== trap.observed) {\n      trap.onActivation();\n    }\n    activateTrap(true);\n    deferAction(activateTrap);\n  } else {\n    detachHandler();\n    lastActiveFocus = null;\n  }\n} // bind medium\n\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n  return cb({\n    moveFocusInside: moveFocusInside,\n    focusInside: focusInside\n  });\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);","map":{"version":3,"names":["React","PropTypes","withSideEffect","moveFocusInside","focusInside","focusIsHidden","getFocusabledIn","deferAction","mediumFocus","mediumBlur","mediumEffect","focusOnBody","document","activeElement","body","isFreeFocus","lastActiveTrap","lastActiveFocus","lastPortaledElement","focusWasOutsideWindow","defaultWhitelist","focusWhitelisted","whiteList","recordPortal","observerNode","portaledElement","focusIsPortaledPair","element","autoGuard","startIndex","end","step","allNodes","lastGuard","i","item","guard","node","dataset","focusAutoGuard","lockItem","tabIndex","extractRef","ref","current","focusWasOutside","crossFrameOption","Boolean","activateTrap","result","_lastActiveTrap","observed","persistentFocus","autoFocus","shards","crossFrame","workingNode","workingArea","concat","map","filter","blur","focus","newActiveElement","focusedIndex","_ref","indexOf","_ref2","forEach","_ref3","removeAttribute","length","onTrap","event","stopPropagation","preventDefault","onBlur","onFocus","source","target","currentNode","currentTarget","contains","FocusWatcher","FocusTrap","_ref4","children","createElement","propTypes","process","env","NODE_ENV","isRequired","onWindowBlur","setTimeout","attachHandler","addEventListener","window","detachHandler","removeEventListener","reducePropsToState","propsList","_ref5","disabled","handleStateChangeOnClient","traps","trap","slice","lastTrap","sameTrap","id","onDeactivation","_ref6","returnFocus","onActivation","assignSyncMedium","assignMedium","cb"],"sources":["D:/DSP_Management/node_modules/react-focus-lock/dist/es2015/Trap.js"],"sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport withSideEffect from 'react-clientside-effect';\nimport moveFocusInside, { focusInside, focusIsHidden, getFocusabledIn } from 'focus-lock';\nimport { deferAction } from './util';\nimport { mediumFocus, mediumBlur, mediumEffect } from './medium';\n\nvar focusOnBody = function focusOnBody() {\n  return document && document.activeElement === document.body;\n};\n\nvar isFreeFocus = function isFreeFocus() {\n  return focusOnBody() || focusIsHidden();\n};\n\nvar lastActiveTrap = null;\nvar lastActiveFocus = null;\nvar lastPortaledElement = null;\nvar focusWasOutsideWindow = false;\n\nvar defaultWhitelist = function defaultWhitelist() {\n  return true;\n};\n\nvar focusWhitelisted = function focusWhitelisted(activeElement) {\n  return (lastActiveTrap.whiteList || defaultWhitelist)(activeElement);\n};\n\nvar recordPortal = function recordPortal(observerNode, portaledElement) {\n  lastPortaledElement = {\n    observerNode: observerNode,\n    portaledElement: portaledElement\n  };\n};\n\nvar focusIsPortaledPair = function focusIsPortaledPair(element) {\n  return lastPortaledElement && lastPortaledElement.portaledElement === element;\n};\n\nfunction autoGuard(startIndex, end, step, allNodes) {\n  var lastGuard = null;\n  var i = startIndex;\n\n  do {\n    var item = allNodes[i];\n\n    if (item.guard) {\n      if (item.node.dataset.focusAutoGuard) {\n        lastGuard = item;\n      }\n    } else if (item.lockItem) {\n      if (i !== startIndex) {\n        // we will tab to the next element\n        return;\n      }\n\n      lastGuard = null;\n    } else {\n      break;\n    }\n  } while ((i += step) !== end);\n\n  if (lastGuard) {\n    lastGuard.node.tabIndex = 0;\n  }\n}\n\nvar extractRef = function extractRef(ref) {\n  return ref && 'current' in ref ? ref.current : ref;\n};\n\nvar focusWasOutside = function focusWasOutside(crossFrameOption) {\n  if (crossFrameOption) {\n    // with cross frame return true for any value\n    return Boolean(focusWasOutsideWindow);\n  } // in other case return only of focus went a while aho\n\n\n  return focusWasOutsideWindow === 'meanwhile';\n};\n\nvar activateTrap = function activateTrap() {\n  var result = false;\n\n  if (lastActiveTrap) {\n    var _lastActiveTrap = lastActiveTrap,\n        observed = _lastActiveTrap.observed,\n        persistentFocus = _lastActiveTrap.persistentFocus,\n        autoFocus = _lastActiveTrap.autoFocus,\n        shards = _lastActiveTrap.shards,\n        crossFrame = _lastActiveTrap.crossFrame;\n    var workingNode = observed || lastPortaledElement && lastPortaledElement.portaledElement;\n    var activeElement = document && document.activeElement;\n\n    if (workingNode) {\n      var workingArea = [workingNode].concat(shards.map(extractRef).filter(Boolean));\n\n      if (!activeElement || focusWhitelisted(activeElement)) {\n        if (persistentFocus || focusWasOutside(crossFrame) || !isFreeFocus() || !lastActiveFocus && autoFocus) {\n          if (workingNode && !(focusInside(workingArea) || focusIsPortaledPair(activeElement, workingNode))) {\n            if (document && !lastActiveFocus && activeElement && !autoFocus) {\n              // Check if blur() exists, which is missing on certain elements on IE\n              if (activeElement.blur) {\n                activeElement.blur();\n              }\n\n              document.body.focus();\n            } else {\n              result = moveFocusInside(workingArea, lastActiveFocus);\n              lastPortaledElement = {};\n            }\n          }\n\n          focusWasOutsideWindow = false;\n          lastActiveFocus = document && document.activeElement;\n        }\n      }\n\n      if (document) {\n        var newActiveElement = document && document.activeElement;\n        var allNodes = getFocusabledIn(workingArea);\n        var focusedIndex = allNodes.map(function (_ref) {\n          var node = _ref.node;\n          return node;\n        }).indexOf(newActiveElement);\n\n        if (focusedIndex > -1) {\n          // remove old focus\n          allNodes.filter(function (_ref2) {\n            var guard = _ref2.guard,\n                node = _ref2.node;\n            return guard && node.dataset.focusAutoGuard;\n          }).forEach(function (_ref3) {\n            var node = _ref3.node;\n            return node.removeAttribute('tabIndex');\n          });\n          autoGuard(focusedIndex, allNodes.length, +1, allNodes);\n          autoGuard(focusedIndex, -1, -1, allNodes);\n        }\n      }\n    }\n  }\n\n  return result;\n};\n\nvar onTrap = function onTrap(event) {\n  if (activateTrap() && event) {\n    // prevent scroll jump\n    event.stopPropagation();\n    event.preventDefault();\n  }\n};\n\nvar onBlur = function onBlur() {\n  return deferAction(activateTrap);\n};\n\nvar onFocus = function onFocus(event) {\n  // detect portal\n  var source = event.target;\n  var currentNode = event.currentTarget;\n\n  if (!currentNode.contains(source)) {\n    recordPortal(currentNode, source);\n  }\n};\n\nvar FocusWatcher = function FocusWatcher() {\n  return null;\n};\n\nvar FocusTrap = function FocusTrap(_ref4) {\n  var children = _ref4.children;\n  return /*#__PURE__*/React.createElement(\"div\", {\n    onBlur: onBlur,\n    onFocus: onFocus\n  }, children);\n};\n\nFocusTrap.propTypes = process.env.NODE_ENV !== \"production\" ? {\n  children: PropTypes.node.isRequired\n} : {};\n\nvar onWindowBlur = function onWindowBlur() {\n  focusWasOutsideWindow = 'just'; // using setTimeout to set  this variable after React/sidecar reaction\n\n  setTimeout(function () {\n    focusWasOutsideWindow = 'meanwhile';\n  }, 0);\n};\n\nvar attachHandler = function attachHandler() {\n  document.addEventListener('focusin', onTrap, true);\n  document.addEventListener('focusout', onBlur);\n  window.addEventListener('blur', onWindowBlur);\n};\n\nvar detachHandler = function detachHandler() {\n  document.removeEventListener('focusin', onTrap, true);\n  document.removeEventListener('focusout', onBlur);\n  window.removeEventListener('blur', onWindowBlur);\n};\n\nfunction reducePropsToState(propsList) {\n  return propsList.filter(function (_ref5) {\n    var disabled = _ref5.disabled;\n    return !disabled;\n  });\n}\n\nfunction handleStateChangeOnClient(traps) {\n  var trap = traps.slice(-1)[0];\n\n  if (trap && !lastActiveTrap) {\n    attachHandler();\n  }\n\n  var lastTrap = lastActiveTrap;\n  var sameTrap = lastTrap && trap && trap.id === lastTrap.id;\n  lastActiveTrap = trap;\n\n  if (lastTrap && !sameTrap) {\n    lastTrap.onDeactivation(); // return focus only of last trap was removed\n\n    if (!traps.filter(function (_ref6) {\n      var id = _ref6.id;\n      return id === lastTrap.id;\n    }).length) {\n      // allow defer is no other trap is awaiting restore\n      lastTrap.returnFocus(!trap);\n    }\n  }\n\n  if (trap) {\n    lastActiveFocus = null;\n\n    if (!sameTrap || lastTrap.observed !== trap.observed) {\n      trap.onActivation();\n    }\n\n    activateTrap(true);\n    deferAction(activateTrap);\n  } else {\n    detachHandler();\n    lastActiveFocus = null;\n  }\n} // bind medium\n\n\nmediumFocus.assignSyncMedium(onFocus);\nmediumBlur.assignMedium(onBlur);\nmediumEffect.assignMedium(function (cb) {\n  return cb({\n    moveFocusInside: moveFocusInside,\n    focusInside: focusInside\n  });\n});\nexport default withSideEffect(reducePropsToState, handleStateChangeOnClient)(FocusWatcher);"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}