@interopio/home-ui-react 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/README.md +30 -32
  2. package/common/types.d.ts +1 -1
  3. package/constants/defaults.d.ts +1 -1
  4. package/constants/storageKeys.d.ts +0 -1
  5. package/decoders/context-menu.d.ts +1 -1
  6. package/decoders/layouts.d.ts +2 -2
  7. package/executors/applicationActions.d.ts +2 -4
  8. package/executors/layoutActions.d.ts +4 -0
  9. package/executors/notificationsSort.d.ts +7 -0
  10. package/executors/types.d.ts +20 -0
  11. package/executors/workspaceActions.d.ts +2 -3
  12. package/helpers/a11y.d.ts +3 -3
  13. package/hooks/index.d.ts +5 -0
  14. package/hooks/useApplications.d.ts +2 -2
  15. package/hooks/useExecuteApplicationAction.d.ts +2 -2
  16. package/hooks/useExecuteLayoutAction.d.ts +2 -0
  17. package/hooks/useExecuteWorkspaceAction.d.ts +2 -2
  18. package/hooks/useFavoriteEntities.d.ts +2 -1
  19. package/hooks/useFrame.d.ts +2 -2
  20. package/hooks/useInvokeInteropMethod.d.ts +2 -2
  21. package/hooks/useLayouts.d.ts +2 -0
  22. package/hooks/useNotifications.d.ts +2 -0
  23. package/hooks/useNotificationsSort.d.ts +5 -0
  24. package/hooks/useRestoreLayout.d.ts +2 -0
  25. package/hooks/useRestoreWorkspace.d.ts +2 -2
  26. package/hooks/useSearch.d.ts +2 -2
  27. package/hooks/useStartApplication.d.ts +1 -1
  28. package/hooks/useStorage.d.ts +1 -1
  29. package/hooks/useWorkspaces.d.ts +1 -1
  30. package/index.css +1 -1
  31. package/index.d.ts +6 -9
  32. package/index.js +9 -9
  33. package/index.js.map +1 -1
  34. package/index.mjs +2742 -3312
  35. package/index.mjs.map +1 -1
  36. package/lib/applications-section/applications-section.d.ts +1 -2
  37. package/lib/applications-section/helpers.d.ts +5 -0
  38. package/lib/base-section/base-section-header.d.ts +1 -1
  39. package/lib/base-section/base-section-item.d.ts +4 -4
  40. package/lib/base-section/base-section.d.ts +2 -3
  41. package/lib/base-section/{base-section.helpers.d.ts → helpers.d.ts} +1 -1
  42. package/lib/base-section/{base-section.types.d.ts → types.d.ts} +1 -1
  43. package/lib/button/button.d.ts +1 -1
  44. package/lib/button-group/button-group.d.ts +2 -2
  45. package/lib/context-menu/constants.d.ts +3 -0
  46. package/lib/context-menu/context-menu.d.ts +2 -2
  47. package/lib/context-menu/dropdown-button/dropdown-button.d.ts +2 -3
  48. package/lib/context-menu/{context-menu-types.d.ts → types.d.ts} +2 -2
  49. package/lib/dialog/dialog.d.ts +8 -0
  50. package/lib/favorites-section/favorites-section.d.ts +1 -2
  51. package/lib/favorites-section/{favorites-section.helpers.d.ts → helpers.d.ts} +1 -1
  52. package/lib/icon/icon.d.ts +1 -1
  53. package/lib/icon-components/browser-notifications-icon.d.ts +1 -2
  54. package/lib/icon-components/reopen-prompt-icon.d.ts +1 -2
  55. package/lib/icon-components/warning-icon.d.ts +1 -2
  56. package/lib/icon-components/window-placement-icon.d.ts +1 -2
  57. package/lib/img-icon/img-icon.d.ts +1 -1
  58. package/lib/{glue42-home-provider/glue42-home-provider.d.ts → io-connect-home-provider/io-connect-home-provider.d.ts} +3 -3
  59. package/lib/launchpad/features/profile-settings/profile-icon.d.ts +6 -0
  60. package/lib/launchpad/launchpad.context.d.ts +6 -1
  61. package/lib/launchpad/launchpad.d.ts +1 -1
  62. package/lib/layouts-panel/available-layouts.d.ts +6 -0
  63. package/lib/layouts-panel/constants.d.ts +6 -0
  64. package/lib/layouts-panel/helpers.d.ts +4 -0
  65. package/lib/layouts-panel/layout-actions.d.ts +9 -0
  66. package/lib/layouts-panel/layouts-notification.d.ts +6 -0
  67. package/lib/layouts-panel/layouts-panel.d.ts +2 -0
  68. package/lib/layouts-panel/types.d.ts +19 -0
  69. package/lib/login/index.d.ts +3 -3
  70. package/lib/login/login-logo.d.ts +1 -1
  71. package/lib/login/reducers.d.ts +1 -1
  72. package/lib/login/types.d.ts +1 -1
  73. package/lib/logo/logo.d.ts +2 -0
  74. package/lib/notifications-panel/constants.d.ts +9 -0
  75. package/lib/notifications-panel/index.d.ts +3 -0
  76. package/lib/notifications-panel/notification.d.ts +6 -0
  77. package/lib/notifications-panel/notifications-badge.d.ts +5 -0
  78. package/lib/notifications-panel/notifications-icon.d.ts +6 -0
  79. package/lib/notifications-panel/notifications-panel.d.ts +1 -2
  80. package/lib/notifications-panel/types.d.ts +7 -0
  81. package/lib/panels/launchpad-slide-panel.d.ts +1 -1
  82. package/lib/panels/slide-panel.d.ts +1 -1
  83. package/lib/permissions-setup/permissions-card.d.ts +1 -1
  84. package/lib/permissions-setup/permissions-list.d.ts +2 -3
  85. package/lib/permissions-setup/permissions-setup-flow.d.ts +1 -2
  86. package/lib/permissions-setup/permissions-setup.d.ts +1 -1
  87. package/lib/permissions-setup/permissions-steps.d.ts +1 -2
  88. package/lib/permissions-setup/something-went-wrong.d.ts +1 -2
  89. package/lib/permissions-setup/types.d.ts +1 -1
  90. package/lib/permissions-setup/unsuccessful-setup.d.ts +1 -2
  91. package/lib/search/search-bar/search-bar.d.ts +1 -1
  92. package/lib/search/search-results-section/helpers.d.ts +3 -0
  93. package/lib/search/search-results-section/search-results-section.d.ts +1 -2
  94. package/lib/search/search-results-section/{search-results-section.types.d.ts → types.d.ts} +4 -4
  95. package/lib/section/{section.helpers.d.ts → helpers.d.ts} +1 -1
  96. package/lib/section/section.context.d.ts +1 -1
  97. package/lib/section/section.d.ts +2 -3
  98. package/lib/section/{section.types.d.ts → types.d.ts} +1 -1
  99. package/lib/settings-card/settings-card.d.ts +1 -2
  100. package/lib/workspaces-section/{workspaces-section.helpers.d.ts → helpers.d.ts} +2 -2
  101. package/lib/workspaces-section/workspaces-section.d.ts +1 -2
  102. package/package.json +6 -6
  103. package/constants/contextMenuActions.d.ts +0 -15
  104. package/lib/applications-section/applications-section.helpers.d.ts +0 -5
  105. package/lib/launchpad/features/profile-settings/user-profile-modal.d.ts +0 -10
  106. package/lib/layout-settings/constants.d.ts +0 -2
  107. package/lib/layout-settings/index.d.ts +0 -2
  108. package/lib/layout-settings/layout-actions.d.ts +0 -8
  109. package/lib/layout-settings/layout-item.d.ts +0 -9
  110. package/lib/layout-settings/layout-notification.d.ts +0 -7
  111. package/lib/layout-settings/layout-settings-container.d.ts +0 -3
  112. package/lib/layout-settings/layout-settings.d.ts +0 -12
  113. package/lib/layout-settings/layout-startup.d.ts +0 -2
  114. package/lib/layout-settings/layout-types.d.ts +0 -30
  115. package/lib/modal/modal.d.ts +0 -9
  116. package/lib/notifications-panel/notification-toast.d.ts +0 -17
  117. package/lib/notifications-panel/notifications-modal.d.ts +0 -4
  118. package/lib/notifications-panel/useNotificationsSort.d.ts +0 -13
  119. package/lib/search/search-results-section/search-results-section.helpers.d.ts +0 -3
  120. /package/assets/{glue-logo.json → io-connect-browser-logo.json} +0 -0
  121. /package/lib/{glue42-home-provider → io-connect-home-provider}/constants.d.ts +0 -0
  122. /package/lib/{glue42-home-provider → io-connect-home-provider}/helpers.d.ts +0 -0
  123. /package/lib/{glue42-home-provider → io-connect-home-provider}/types.d.ts +0 -0
  124. /package/lib/workspaces-section/{workspaces-section.types.d.ts → types.d.ts} +0 -0
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../node_modules/react-popper/lib/esm/utils.js","../../../node_modules/@popperjs/core/lib/enums.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../node_modules/@popperjs/core/lib/utils/math.js","../../../node_modules/@popperjs/core/lib/utils/userAgent.js","../../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../node_modules/@popperjs/core/lib/utils/within.js","../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../node_modules/@popperjs/core/lib/utils/debounce.js","../../../node_modules/@popperjs/core/lib/utils/format.js","../../../node_modules/@popperjs/core/lib/utils/validateModifiers.js","../../../node_modules/@popperjs/core/lib/utils/uniqueBy.js","../../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../node_modules/@popperjs/core/lib/createPopper.js","../../../node_modules/@popperjs/core/lib/popper.js","../../../node_modules/react-fast-compare/index.js","../../../node_modules/react-popper/lib/esm/usePopper.js","../../../node_modules/classnames/index.js","../../../packages/home-ui-react/src/helpers/a11y.ts","../../../packages/home-ui-react/src/lib/icon/icon.tsx","../../../packages/home-ui-react/src/lib/context-menu/context-menu.tsx","../../../packages/home-ui-react/src/lib/context-menu/dropdown-button/dropdown-button.tsx","../../../packages/home-ui-react/src/lib/base-section/base-section.helpers.tsx","../../../packages/home-ui-react/src/constants/itemTypes.ts","../../../packages/home-ui-react/src/constants/contextMenuActions.ts","../../../packages/home-ui-react/src/lib/applications-section/applications-section.helpers.ts","../../../packages/home-ui-react/src/lib/img-icon/img-icon.tsx","../../../packages/home-ui-react/src/lib/base-section/base-section-header.tsx","../../../packages/home-ui-react/src/hooks/useApplications.ts","../../../packages/home-ui-react/src/hooks/useApplicationsInstances.ts","../../../packages/home-ui-react/src/constants/storageKeys.ts","../../../packages/home-ui-react/src/hooks/useStorage.ts","../../../node_modules/decoder-validate/dist/index.es5.js","../../../packages/home-ui-react/src/decoders/base.ts","../../../packages/home-ui-react/src/decoders/context-menu.ts","../../../packages/home-ui-react/src/decoders/favorites.ts","../../../packages/home-ui-react/src/hooks/useFavoriteEntities.ts","../../../packages/home-ui-react/src/hooks/useFrame.ts","../../../packages/home-ui-react/src/hooks/useInvokeInteropMethod.ts","../../../packages/home-ui-react/src/hooks/usePressedKeys.ts","../../../packages/home-ui-react/src/constants/modifierKeys.ts","../../../packages/home-ui-react/src/hooks/useRestoreWorkspace.ts","../../../packages/home-ui-react/src/hooks/useSearch.ts","../../../packages/home-ui-react/src/hooks/useStartApplication.ts","../../../packages/home-ui-react/src/hooks/useWorkspaces.ts","../../../packages/home-ui-react/src/hooks/useWorkspacesInstances.ts","../../../packages/home-ui-react/src/executors/applicationActions.ts","../../../packages/home-ui-react/src/hooks/useExecuteApplicationAction.ts","../../../packages/home-ui-react/src/executors/workspaceActions.ts","../../../packages/home-ui-react/src/hooks/useExecuteWorkspaceAction.ts","../../../node_modules/ua-parser-js/src/ua-parser.js","../../../packages/home-ui-react/src/hooks/useUA.ts","../../../packages/home-ui-react/src/lib/base-section/base-section-item.tsx","../../../packages/home-ui-react/src/lib/launchpad/launchpad.context.tsx","../../../packages/home-ui-react/src/constants/defaults.ts","../../../packages/home-ui-react/src/lib/base-section/base-section.tsx","../../../packages/home-ui-react/src/lib/section/section.helpers.ts","../../../packages/home-ui-react/src/lib/section/section.context.tsx","../../../packages/home-ui-react/src/lib/section/section.tsx","../../../packages/home-ui-react/src/lib/applications-section/applications-section.tsx","../../../packages/home-ui-react/src/lib/button/button.tsx","../../../packages/home-ui-react/src/lib/button-group/button-group.tsx","../../../packages/home-ui-react/src/lib/favorites-section/favorites-section.helpers.ts","../../../packages/home-ui-react/src/lib/favorites-section/favorites-section.tsx","../../../packages/home-ui-react/src/lib/settings-card/settings-card.tsx","../../../packages/home-ui-react/src/decoders/layouts.ts","../../../packages/home-ui-react/src/lib/support-card/support-card.tsx","../../../packages/home-ui-react/src/helpers/string.ts","../../../packages/home-ui-react/src/lib/profile-details-card/profile-details-card.tsx","../../../packages/home-ui-react/src/lib/launchpad/features/profile-settings/profile-settings.tsx","../../../packages/home-ui-react/src/lib/modal/modal.tsx","../../../node_modules/@ebay/nice-modal-react/lib/esm/index.js","../../../packages/home-ui-react/src/lib/launchpad/features/profile-settings/user-profile-modal.tsx","../../../packages/home-ui-react/src/lib/layout-settings/layout-actions.tsx","../../../packages/home-ui-react/src/lib/layout-settings/layout-item.tsx","../../../packages/home-ui-react/src/lib/layout-settings/layout-settings.tsx","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/prop-types/node_modules/react-is/index.js","../../../node_modules/object-assign/index.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/index.js","../../../node_modules/reactstrap/esm/utils.js","../../../node_modules/reactstrap/esm/CloseButton.js","../../../node_modules/reactstrap/esm/Button.js","../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../node_modules/react-transition-group/esm/config.js","../../../node_modules/react-transition-group/esm/utils/PropTypes.js","../../../node_modules/react-transition-group/esm/TransitionGroupContext.js","../../../node_modules/react-transition-group/esm/utils/reflow.js","../../../node_modules/react-transition-group/esm/Transition.js","../../../node_modules/reactstrap/esm/Collapse.js","../../../node_modules/reactstrap/esm/Form.js","../../../node_modules/reactstrap/esm/FormGroup.js","../../../node_modules/reactstrap/esm/Input.js","../../../packages/home-ui-react/src/lib/layout-settings/layout-startup.ts","../../../packages/home-ui-react/src/lib/layout-settings/constants.ts","../../../packages/home-ui-react/src/lib/layout-settings/layout-notification.tsx","../../../packages/home-ui-react/src/lib/layout-settings/layout-settings-container.tsx","../../../packages/home-ui-react/src/lib/search/search-bar/search-bar.tsx","../../../packages/home-ui-react/src/lib/search/search-results-section/search-results-section.helpers.ts","../../../packages/home-ui-react/src/lib/search/search-results-section/search-results-section.tsx","../../../packages/home-ui-react/src/helpers/date.ts","../../../packages/home-ui-react/src/lib/notifications-panel/notification-toast.tsx","../../../packages/home-ui-react/src/lib/notifications-panel/useNotificationsSort.ts","../../../packages/home-ui-react/src/lib/notifications-panel/notifications-panel.tsx","../../../packages/home-ui-react/src/lib/notifications-panel/notifications-modal.tsx","../../../packages/home-ui-react/src/lib/workspaces-section/workspaces-section.helpers.ts","../../../packages/home-ui-react/src/lib/workspaces-section/workspaces-section.tsx","../../../packages/home-ui-react/src/lib/launchpad/launchpad.tsx","../../../packages/home-ui-react/src/lib/login/login-form.tsx","../../../packages/home-ui-react/src/lib/login/login-heading.tsx","../../../packages/home-ui-react/src/lib/login/constants.ts","../../../packages/home-ui-react/src/lib/login/login-logo.tsx","../../../packages/home-ui-react/src/lib/login/reducers.ts","../../../packages/home-ui-react/src/lib/login/login.tsx","../../../packages/home-ui-react/src/lib/login/login-loader.tsx","../../../packages/home-ui-react/src/lib/login/login-auth0.tsx","../../../packages/home-ui-react/src/lib/panels/slide-panel.tsx","../../../packages/home-ui-react/src/lib/panels/launchpad-slide-panel.tsx","../../../packages/home-ui-react/src/lib/icon-components/browser-notifications-icon.tsx","../../../packages/home-ui-react/src/lib/icon-components/reopen-prompt-icon.tsx","../../../packages/home-ui-react/src/lib/icon-components/warning-icon.tsx","../../../packages/home-ui-react/src/lib/icon-components/window-placement-icon.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/constants.ts","../../../packages/home-ui-react/src/lib/permissions-setup/permissions-card.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/permissions-list.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/something-went-wrong.tsx","../../../packages/home-ui-react/src/lib/glue42-home-provider/constants.ts","../../../packages/home-ui-react/src/lib/glue42-home-provider/helpers.ts","../../../packages/home-ui-react/src/lib/glue42-home-provider/glue42-home-provider.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/unsuccessful-setup.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/use-edge-notifications-permission.ts","../../../packages/home-ui-react/src/lib/permissions-setup/permissions-steps.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/permissions-setup-flow.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/permissions-setup.tsx"],"sourcesContent":["import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function format(str) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return [].concat(args).reduce(function (p, c) {\n return p.replace(/%s/, c);\n }, str);\n}","import format from \"./format.js\";\nimport { modifierPhases } from \"../enums.js\";\nvar INVALID_MODIFIER_ERROR = 'Popper: modifier \"%s\" provided an invalid %s property, expected %s but got %s';\nvar MISSING_DEPENDENCY_ERROR = 'Popper: modifier \"%s\" requires \"%s\", but \"%s\" modifier is not available';\nvar VALID_PROPERTIES = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options'];\nexport default function validateModifiers(modifiers) {\n modifiers.forEach(function (modifier) {\n [].concat(Object.keys(modifier), VALID_PROPERTIES) // IE11-compatible replacement for `new Set(iterable)`\n .filter(function (value, index, self) {\n return self.indexOf(value) === index;\n }).forEach(function (key) {\n switch (key) {\n case 'name':\n if (typeof modifier.name !== 'string') {\n console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '\"name\"', '\"string\"', \"\\\"\" + String(modifier.name) + \"\\\"\"));\n }\n\n break;\n\n case 'enabled':\n if (typeof modifier.enabled !== 'boolean') {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"enabled\"', '\"boolean\"', \"\\\"\" + String(modifier.enabled) + \"\\\"\"));\n }\n\n break;\n\n case 'phase':\n if (modifierPhases.indexOf(modifier.phase) < 0) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"phase\"', \"either \" + modifierPhases.join(', '), \"\\\"\" + String(modifier.phase) + \"\\\"\"));\n }\n\n break;\n\n case 'fn':\n if (typeof modifier.fn !== 'function') {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"fn\"', '\"function\"', \"\\\"\" + String(modifier.fn) + \"\\\"\"));\n }\n\n break;\n\n case 'effect':\n if (modifier.effect != null && typeof modifier.effect !== 'function') {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"effect\"', '\"function\"', \"\\\"\" + String(modifier.fn) + \"\\\"\"));\n }\n\n break;\n\n case 'requires':\n if (modifier.requires != null && !Array.isArray(modifier.requires)) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"requires\"', '\"array\"', \"\\\"\" + String(modifier.requires) + \"\\\"\"));\n }\n\n break;\n\n case 'requiresIfExists':\n if (!Array.isArray(modifier.requiresIfExists)) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"requiresIfExists\"', '\"array\"', \"\\\"\" + String(modifier.requiresIfExists) + \"\\\"\"));\n }\n\n break;\n\n case 'options':\n case 'data':\n break;\n\n default:\n console.error(\"PopperJS: an invalid property has been provided to the \\\"\" + modifier.name + \"\\\" modifier, valid properties are \" + VALID_PROPERTIES.map(function (s) {\n return \"\\\"\" + s + \"\\\"\";\n }).join(', ') + \"; but \\\"\" + key + \"\\\" was provided.\");\n }\n\n modifier.requires && modifier.requires.forEach(function (requirement) {\n if (modifiers.find(function (mod) {\n return mod.name === requirement;\n }) == null) {\n console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));\n }\n });\n });\n });\n}","export default function uniqueBy(arr, fn) {\n var identifiers = new Set();\n return arr.filter(function (item) {\n var identifier = fn(item);\n\n if (!identifiers.has(identifier)) {\n identifiers.add(identifier);\n return true;\n }\n });\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/* Any kind of mouse or keyboard interaction on any HTML element */\nexport type ActivationEvent<T extends HTMLElement = HTMLElement> = React.KeyboardEvent<T> | React.MouseEvent<T>;\n\n/**\n * If a keypress is the equivalent of a mouse click event. This would be pressing ENTER or SPACEBAR.\n */\nexport const isClickKeypress = (e: React.KeyboardEvent<HTMLElement>) => (e.key === \"Enter\" || e.key === \" \");\n\ntype handler = (e: ActivationEvent) => void;\n\n/** \n * Utility function to convert an `onClick` prop into a keyboard-accessible equivalent. \n * \n * To use, take an existing component like this:\n * `<div onClick={doSomething}></div>`\n * \n * and convert it to this:\n * `<div {...onClickA11y(doSomething)}></div>`\n * \n * This will add an onClick prop, and onKeyDown prop, and a tabIndex={0} (so that a keyboard-only user can reach the element)\n * \n * Make sure you also add a `role` and `aria-label` attribute for maximum accessibility!\n */\nexport const onClickA11y = (clickHandler?: handler, keydownHandler?: handler) => {\n if(typeof clickHandler === \"undefined\"){\n return {}\n }\n \n return {\n tabIndex: 0,\n onClick: clickHandler,\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => {\n if(isClickKeypress(e)){\n e.preventDefault();\n clickHandler?.(e);\n }\n keydownHandler?.(e);\n }\n }\n}\n\ntype KeyboardNavigationProps = {\n event: React.KeyboardEvent<HTMLElement>;\n currentIndex: number;\n moveFocus: (newNumber: number) => void;\n min: number;\n max: number;\n onClose?: () => void;\n}\nexport const keyboardNavigation = ({event, currentIndex, moveFocus, min, max, onClose}: KeyboardNavigationProps) => {\n switch(event.key){\n case \"ArrowUp\": {\n moveFocus(\n Math.max(currentIndex - 1, min)\n );\n break;\n }\n case \"ArrowDown\": {\n moveFocus(\n Math.min(currentIndex + 1, max)\n );\n break;\n }\n case \"Home\": {\n moveFocus(min);\n break;\n }\n case \"End\": {\n moveFocus(max);\n break;\n }\n case \"Escape\": {\n if(onClose){\n onClose();\n break;\n }\n return;\n }\n default: {\n return;\n }\n }\n\n // If we did something with the key that was pressed, prevent the keypress from bubbling\n event.stopPropagation();\n event.preventDefault();\n}","import classNames from 'classnames';\nimport './icon.scss';\nimport { forwardRef } from 'react';\nimport { ActivationEvent, onClickA11y } from '../../helpers/a11y';\n\nexport interface IconProps extends React.HTMLProps<HTMLSpanElement> {\n name: string;\n handleClick?: (e: ActivationEvent<HTMLSpanElement>) => void;\n size?: number;\n}\n\nexport const Icon = forwardRef<HTMLSpanElement, IconProps>((props, ref) => {\n const { name, size = 16, className, handleClick, ...rest } = props;\n\n return (\n <span \n {...onClickA11y(handleClick)}\n className={classNames(className, 'icon', {\n [`icon-box-${size}`]: size,\n })}\n ref={ref}\n {...rest}\n >\n <i\n className={classNames({\n [`icon-${name}`]: name,\n })}\n />\n </span>\n );\n});\n\nexport default Icon;\n","import classNames from 'classnames';\nimport { ContextMenuAction } from './context-menu-types';\nimport { forwardRef, useRef, useState, useEffect } from 'react';\nimport { ActivationEvent, keyboardNavigation, onClickA11y } from '../../helpers/a11y';\n\ninterface ContextMenuProps extends React.HTMLProps<HTMLUListElement> {\n actions: ContextMenuAction[];\n onClose: () => void;\n onActionItemClick: (\n event: ActivationEvent,\n action: ContextMenuAction\n ) => void;\n}\n\nexport const ContextMenu = forwardRef<HTMLUListElement, ContextMenuProps>(\n (props, ref) => {\n const { actions, className, onClose, onActionItemClick, ...rest } = props;\n const itemRefs = useRef<Record<number, HTMLLIElement| null>>({});\n const [focusedItemIndex, setFocusedItemIndex] = useState(0);\n\n const moveFocus = (newIndex: number) => {\n itemRefs.current[newIndex]?.focus();\n setFocusedItemIndex(newIndex);\n }\n\n useEffect(() => {\n itemRefs.current[focusedItemIndex]?.focus();\n }, []);\n\n return (\n <ul\n className={classNames(className, 'g42-context-menu')}\n ref={ref}\n {...rest}\n data-testid=\"context-menu\"\n onKeyDown={(event) => keyboardNavigation({\n event,\n currentIndex: focusedItemIndex,\n min: 0,\n max: actions.length - 1,\n moveFocus,\n onClose\n })}\n >\n {actions.map((action, index) => (\n <li\n key={action.name}\n className={classNames(\n 'g42-list-item',\n action.disabled && 'disabled'\n )}\n {...onClickA11y((event) => onActionItemClick(event, action))}\n ref={(element) => itemRefs.current[index] = element}\n tabIndex={-1}\n >\n {action.displayName || action.name}\n </li>\n ))}\n </ul>\n );\n }\n);\n\nexport default ContextMenu;\n","import { useEffect, useState } from 'react';\nimport { usePopper } from 'react-popper';\nimport Icon from '../../icon/icon';\nimport ContextMenu from '../context-menu';\nimport { ContextMenuAction } from '../context-menu-types';\nimport { ActivationEvent } from 'packages/home-ui-react/src/helpers/a11y';\n\nexport interface DropdownButtonProps {\n iconName: string;\n iconSize?: number;\n actions: ContextMenuAction[];\n isTabStop?: boolean;\n onActionItemClick: (event: ActivationEvent, action: ContextMenuAction) => void;\n}\n\nexport function DropdownButton(props: DropdownButtonProps) {\n const { iconName, iconSize, actions, onActionItemClick, isTabStop } = props;\n\n const [showContextMenu, setShowContextMenu] = useState(false);\n const [referenceElement, setReferenceElement] = useState<HTMLSpanElement | null>(null);\n const [popperElement, setPopperElement] = useState<HTMLUListElement | null>(null);\n\n const { styles, attributes } = usePopper(referenceElement, popperElement, {\n placement: 'bottom-end',\n });\n\n useEffect(() => {\n if (!showContextMenu) {\n return;\n }\n\n const handleClick = (event: MouseEvent): void => {\n if (referenceElement?.contains(event.target as Node) || popperElement?.contains(event.target as Node)) {\n return;\n }\n\n setShowContextMenu(false);\n };\n\n const handleBlur = (): void => {\n if (document.activeElement?.nodeName !== 'IFRAME') {\n return;\n }\n setShowContextMenu(false);\n };\n\n document.body.addEventListener('click', handleClick, true);\n window.addEventListener('blur', handleBlur);\n\n return () => {\n document.body.removeEventListener('click', handleClick, true);\n window.removeEventListener('blur', handleBlur);\n };\n }, [popperElement, referenceElement, showContextMenu, setShowContextMenu]);\n\n const handleIconClick = (event: ActivationEvent): void => {\n event.stopPropagation();\n\n setShowContextMenu((prevValue) => !prevValue);\n popperElement?.focus();\n };\n\n const handleActionItemClick = (event: ActivationEvent, action: ContextMenuAction) => {\n event.stopPropagation();\n\n onActionItemClick(event, action);\n\n setShowContextMenu(false);\n };\n\n return (\n <>\n <Icon\n tabIndex={isTabStop ? 0 : -1}\n size={iconSize}\n name={iconName}\n handleClick={handleIconClick}\n ref={setReferenceElement}\n data-testid=\"context-menu-icon\"\n />\n {showContextMenu && (\n <ContextMenu\n actions={actions}\n style={styles.popper}\n ref={setPopperElement}\n onActionItemClick={handleActionItemClick}\n onClose={() => {\n referenceElement?.focus();\n setShowContextMenu(false);\n }}\n {...attributes.popper}\n />\n )}\n </>\n );\n}\n\nexport default DropdownButton;\n","import type {\n BaseSectionItemType,\n BaseSectionType,\n} from './base-section.types';\n\nexport const isSection = <Item extends BaseSectionItemType>(\n item: BaseSectionType<Item>['items'][number]\n): item is BaseSectionType<Item> => {\n return 'items' in item;\n};\n","export const ITEM_TYPES = {\n APPLICATION: 'application',\n WORKSPACE: 'workspace',\n LAYOUT: 'layout',\n} as const;\n","import { ContextMenuAction } from '../lib/context-menu/context-menu-types';\n\nexport const APPLICATION_ACTIONS_NAMES = {\n OPEN_IN_NEW_WINDOW: 'openInNewWindow',\n OPEN_IN_NEW_WORKSPACE: 'openInNewWorkspace',\n} as const;\n\nexport const WORKSPACE_ACTIONS_NAMES = {\n OPEN_IN_NEW_FRAME: 'openInNewFrame',\n DELETE: 'delete',\n} as const;\n\nexport const LAYOUT_ACTIONS_NAMES = {\n SET_AS_DEFAULT: 'setAsDefault',\n DELETE: 'delete',\n} as const;\n\nexport const APPLICATION_ACTIONS: ContextMenuAction[] = [\n {\n name: APPLICATION_ACTIONS_NAMES.OPEN_IN_NEW_WINDOW,\n displayName: 'Open in New Window',\n },\n {\n name: APPLICATION_ACTIONS_NAMES.OPEN_IN_NEW_WORKSPACE,\n displayName: 'Open in New Workspace',\n },\n];\n\nexport const WORKSPACE_ACTIONS: ContextMenuAction[] = [\n {\n name: WORKSPACE_ACTIONS_NAMES.OPEN_IN_NEW_FRAME,\n displayName: 'Open in New Frame',\n },\n {\n name: WORKSPACE_ACTIONS_NAMES.DELETE,\n displayName: 'Delete',\n },\n];\n","import { Glue42Web } from '@glue42/web';\nimport { isSection } from '../base-section/base-section.helpers';\nimport { ITEM_TYPES } from '../../constants/itemTypes';\nimport { SectionItemType, SectionType } from '../section/section.types';\nimport { APPLICATION_ACTIONS } from '../../constants/contextMenuActions';\n\nconst generateItems = (items: SectionType['items'], newItem: SectionItemType, path: string): SectionType['items'] => {\n const separator = '/';\n const [currentFolder, ...nestedFolders] = path.split(separator);\n const sectionIndex = items.findIndex((item) => isSection(item) && item.title === currentFolder);\n const section = sectionIndex !== -1 ? (items[sectionIndex] as SectionType) : null;\n\n if (!section) {\n return [\n ...items,\n {\n id: currentFolder,\n title: currentFolder,\n items: nestedFolders.length > 0 ? generateItems([], newItem, nestedFolders.join(separator)) : [newItem],\n },\n ];\n }\n\n return [\n ...items.slice(0, sectionIndex),\n {\n ...section,\n items:\n nestedFolders.length > 0\n ? generateItems(section.items, newItem, nestedFolders.join(separator))\n : [...section.items, newItem],\n },\n ...items.slice(sectionIndex + 1),\n ];\n};\n\nexport const getApplicationsSectionConfig = (\n applications: Glue42Web.AppManager.Application[],\n runningInstances: {\n [appName: string]: string[];\n }\n): SectionType => {\n const items = applications.reduce((items, application) => {\n const item: SectionItemType = {\n id: application.name,\n title: application.title || application.name,\n description: application.caption,\n type: ITEM_TYPES.APPLICATION,\n iconSrc: application.icon,\n isOpen: runningInstances[application.name]?.length > 0,\n contextMenuActions: APPLICATION_ACTIONS,\n };\n\n const path = application.userProperties.folder;\n\n return path ? generateItems(items, item, path) : [...items, item];\n }, [] as SectionType['items']);\n\n return {\n id: 'applications-section',\n title: 'All Applications',\n items,\n };\n};\n","import classNames from 'classnames';\n\n/* eslint-disable-next-line */\nexport interface ImgIconProps extends React.HTMLProps<HTMLImageElement> {\n src: string;\n size?: number;\n crossOrigin?: '' | 'anonymous' | 'use-credentials'; // Fix TS incompatibility\n}\n\nexport function ImgIcon(props: ImgIconProps) {\n const { size = 16, alt = 'Image icon', className, ...rest } = props;\n\n return (\n <img\n alt={alt}\n className={classNames(className, 'icon', {\n [`icon-box-${size}`]: size,\n })}\n {...rest}\n />\n );\n}\n\nexport default ImgIcon;\n","import classNames from 'classnames';\nimport Icon from '../icon/icon';\nimport ImgIcon from '../img-icon/img-icon';\n\ninterface BaseSectionHeaderProps extends React.HTMLProps<HTMLHeadingElement> {\n iconSrc?: string;\n iconName?: string;\n title: string;\n}\n\nexport const BaseSectionHeader = (props: BaseSectionHeaderProps) => {\n const { className, iconSrc, iconName = 'folder', title, ...domProps } = props;\n\n return (\n <h4\n className={classNames(className, 'g42-list-header')}\n data-testid=\"base-section-header\"\n {...domProps}\n >\n {iconSrc ? (\n <ImgIcon\n src={iconSrc}\n alt={`${title} icon`}\n size={14}\n data-testid=\"img-icon\"\n />\n ) : (\n <Icon name={iconName} data-testid=\"icon\" />\n )}\n {title}\n </h4>\n );\n};\n\nexport default BaseSectionHeader;\n","import { useState, useContext, useEffect } from 'react';\nimport { GlueContext } from '@glue42/react-hooks';\nimport { Glue42Web } from '@glue42/web';\n\nexport const useApplications = () => {\n const [applications, setApplications] = useState<\n Glue42Web.AppManager.Application[]\n >([]);\n\n const glue = useContext(GlueContext);\n\n useEffect(() => {\n if (!glue) {\n return;\n }\n\n const unsubscribeOnAppAdded = glue.appManager.onAppAdded(\n (addedApplication) => {\n if (addedApplication.userProperties.hidden) {\n return;\n }\n setApplications((prevApplications) => [\n ...prevApplications,\n addedApplication,\n ]);\n }\n );\n\n const unsubscribeOnAppChanged = glue.appManager.onAppChanged(\n (changedApplication) => {\n setApplications((prevApplications) => [\n ...prevApplications.filter(\n (application) => application.name !== changedApplication.name\n ),\n changedApplication,\n ]);\n }\n );\n\n const unsubscribeOnAppRemoved = glue.appManager.onAppRemoved(\n (removedApplication) => {\n setApplications((prevApplications) =>\n prevApplications.filter(\n (application) => application.name !== removedApplication.name\n )\n );\n }\n );\n\n const unsubscribeFns = [\n unsubscribeOnAppAdded,\n unsubscribeOnAppRemoved,\n unsubscribeOnAppChanged,\n ];\n\n return () => unsubscribeFns.forEach((unsubscribeFn) => unsubscribeFn());\n }, [glue]);\n\n return applications;\n};\n","import { useState, useContext, useEffect } from 'react';\nimport { GlueContext } from '@glue42/react-hooks';\n\nexport const useApplicationsInstances = () => {\n const [runningInstances, setRunningInstances] = useState<{\n [appName: string]: string[];\n }>({});\n\n const glue = useContext(GlueContext);\n\n useEffect(() => {\n if (!glue) {\n return;\n }\n\n const unsubscribeOnInstanceStarted = glue.appManager.onInstanceStarted(\n (startedInstance) => {\n setRunningInstances((prevRunningInstances) => {\n const appCurrentRunningInstances =\n prevRunningInstances[startedInstance.application.name] ?? [];\n\n return {\n ...prevRunningInstances,\n [startedInstance.application.name]: [\n ...appCurrentRunningInstances,\n startedInstance.id,\n ],\n };\n });\n }\n );\n\n const unsubscribeOnInstanceStopped = glue.appManager.onInstanceStopped(\n (stoppedInstance) => {\n setRunningInstances((prevRunningInstances) => ({\n ...prevRunningInstances,\n [stoppedInstance.application.name]: prevRunningInstances[\n stoppedInstance.application.name\n ].filter((instanceId) => instanceId !== stoppedInstance.id),\n }));\n }\n );\n\n const unsubscribeFns = [\n unsubscribeOnInstanceStarted,\n unsubscribeOnInstanceStopped,\n ];\n\n return () => unsubscribeFns.forEach((unsubscribeFn) => unsubscribeFn());\n }, [glue]);\n\n return runningInstances;\n};\n","export const SELECTED_LAYOUT_SESSION_STORAGE_KEY = 'interop_home_ui_selected_layout';\nexport const DEFAULT_LAYOUT_LOCAL_STORAGE_KEY = 'interop_home_ui_default_layout';\nexport const FAVORITE_ENTITIES_LOCAL_STORAGE_KEY = 'interop_home_ui_favorite_entities';\n","import { Decoder } from 'decoder-validate';\nimport { useCallback, useEffect, useState } from 'react';\n\ntype StorageType = 'localStorage' | 'sessionStorage';\n\nexport const useStorage = <T>(type: StorageType, key: string, decoder: Decoder<T | null>) => {\n const [storedValue, setStoredValue] = useState<T | null>(() => {\n try {\n const item = window[type].getItem(key);\n\n return item ? JSON.parse(item) : null;\n } catch (error) {\n console.log(error);\n\n return null;\n }\n });\n\n const customEventType = `${type}-${key}`;\n\n useEffect(() => {\n const eventHandler = (event: CustomEvent) => {\n setStoredValue(event.detail);\n };\n\n window.addEventListener(customEventType, eventHandler as EventListener);\n\n return () => {\n window.removeEventListener(customEventType, eventHandler as EventListener);\n };\n }, [customEventType]);\n\n const setValue = useCallback(\n (value: T | null | ((val: T | null) => T)) => {\n try {\n const valueToDecode = value instanceof Function ? value(storedValue) : value;\n\n if (!valueToDecode) {\n window[type].removeItem(key);\n setStoredValue(null);\n return;\n }\n\n const decoderResult = decoder.run(valueToDecode);\n\n if (!decoderResult.ok) {\n console.warn(`Error validating the value to be stored: ${decoderResult.error.message}`);\n return;\n }\n\n const valueToStore = decoderResult.result;\n\n setStoredValue(valueToStore);\n\n window[type].setItem(key, JSON.stringify(valueToStore));\n\n window.dispatchEvent(new CustomEvent(customEventType, { detail: valueToStore }));\n } catch (error) {\n console.log(error);\n }\n },\n [storedValue, key, type, customEventType, decoder]\n );\n\n return [storedValue, setValue] as const;\n};\n","/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Typeguard for `Ok`.\r\n */\r\nvar isOk = function (r) { return r.ok === true; };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Typeguard for `Err`.\r\n */\r\nvar isErr = function (r) { return r.ok === false; };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Given an array of `Result`s, return the successful values.\r\n */\r\nvar successes = function (results) {\r\n return results.reduce(function (acc, r) { return (r.ok === true ? acc.concat(r.result) : acc); }, []);\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n\r\nvar result = Object.freeze({\r\n\tok: ok,\r\n\tisOk: isOk,\r\n\terr: err,\r\n\tisErr: isErr,\r\n\tasPromise: asPromise,\r\n\twithDefault: withDefault,\r\n\twithException: withException,\r\n\tsuccesses: successes,\r\n\tmap: map,\r\n\tmap2: map2,\r\n\tmapError: mapError,\r\n\tandThen: andThen\r\n});\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/**\r\n * Type guard for `DecoderError`. One use case of the type guard is in the\r\n * `catch` of a promise. Typescript types the error argument of `catch` as\r\n * `any`, so when dealing with a decoder as a promise you may need to\r\n * distinguish between a `DecoderError` and an error string.\r\n */\r\nvar isDecoderError = function (a) {\r\n return a.kind === 'DecoderError' && typeof a.at === 'string' && typeof a.message === 'string';\r\n};\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nvar unknownJson = Decoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nvar tuple = Decoder.tuple;\r\n/** See `Decoder.dict` */\r\nvar dict = Decoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nvar oneOf = Decoder.oneOf;\r\n/** See `Decoder.union` */\r\nvar union = Decoder.union;\r\n/** See `Decoder.intersection` */\r\nvar intersection = Decoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nvar withDefault$1 = Decoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nvar valueAt = Decoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nvar succeed = Decoder.succeed;\r\n/** See `Decoder.fail` */\r\nvar fail = Decoder.fail;\r\n/** See `Decoder.lazy` */\r\nvar lazy = Decoder.lazy;\r\n\r\nexport { result as Result, Decoder, isDecoderError, string, number, boolean, anyJson, unknownJson, constant, object, array, tuple, dict, optional, oneOf, union, intersection, withDefault$1 as withDefault, valueAt, succeed, fail, lazy };\r\n//# sourceMappingURL=index.es5.js.map\r\n","import { Decoder, string } from 'decoder-validate';\n\nexport const nonEmptyStringDecoder: Decoder<string> = string().where((s) => s.length > 0, 'Expected a non-empty string');\n","import { Decoder, boolean, object, optional } from 'decoder-validate';\nimport { ContextMenuAction } from '../lib/context-menu/context-menu-types';\nimport { nonEmptyStringDecoder } from './base';\n\nexport const contextMenuActionDecoder: Decoder<ContextMenuAction> = object({\n name: nonEmptyStringDecoder,\n displayName: optional(nonEmptyStringDecoder),\n disabled: optional(boolean()),\n});\n","import { Decoder, array, object, optional, string } from 'decoder-validate';\nimport { FavoriteEntity } from '../common/types';\nimport { nonEmptyStringDecoder } from './base';\nimport { contextMenuActionDecoder } from './context-menu';\n\nconst favoriteEntityDecoder: Decoder<FavoriteEntity> = object({\n id: nonEmptyStringDecoder,\n title: nonEmptyStringDecoder,\n description: optional(nonEmptyStringDecoder),\n icon: optional(string()),\n iconSrc: optional(string()),\n contextMenuActions: optional(array(contextMenuActionDecoder)),\n type: nonEmptyStringDecoder,\n});\n\nexport const favoriteEntitiesStorageValueDecoder: Decoder<FavoriteEntity[]> = array(favoriteEntityDecoder);\n","import { FAVORITE_ENTITIES_LOCAL_STORAGE_KEY } from '../constants/storageKeys';\nimport type { FavoriteEntity } from '../common/types';\nimport type { SectionItemType } from '../lib/section/section.types';\nimport { useStorage } from './useStorage';\nimport { favoriteEntitiesStorageValueDecoder } from '../decoders/favorites';\n\nexport const useFavoriteEntities = () => {\n const [favoriteEntitiesStoredValue, setFavoriteEntitiesStoredValue] = useStorage<FavoriteEntity[]>(\n 'localStorage',\n FAVORITE_ENTITIES_LOCAL_STORAGE_KEY,\n favoriteEntitiesStorageValueDecoder\n );\n\n const toggleFavorite = ({ isOpen, ...item }: SectionItemType) => {\n setFavoriteEntitiesStoredValue((prevFavoriteEntitiesStoredValue) => {\n const favoriteEntities = prevFavoriteEntitiesStoredValue || [];\n\n const existingEntity = favoriteEntities.find((entity) => entity.title === item.title && entity.type === item.type);\n\n return existingEntity ? favoriteEntities.filter((entity) => entity !== existingEntity) : [...favoriteEntities, item];\n });\n };\n\n return { favoriteEntities: favoriteEntitiesStoredValue || [], toggleFavorite };\n};\n","import { GlueContext } from '@glue42/react-hooks';\nimport { getFrameId } from '@glue42/workspaces-ui-react';\nimport { Glue42Workspaces } from '@glue42/workspaces-api';\nimport { useState, useContext, useEffect } from 'react';\n\nexport const useFrame = (): Glue42Workspaces.Frame | undefined => {\n const [currentFrame, setCurrentFrame] = useState<\n Glue42Workspaces.Frame | undefined\n >();\n\n const glue = useContext(GlueContext);\n\n useEffect(() => {\n if (!glue) {\n return;\n }\n\n const frameID = getFrameId();\n\n glue.workspaces\n ?.waitForFrame(frameID)\n .then(setCurrentFrame)\n .catch((error) =>\n console.error('Failed to get current frame', { error })\n );\n }, [glue]);\n\n return currentFrame;\n};\n","import { useContext } from 'react';\nimport { Glue42Search } from '@glue42/search-api';\nimport { GlueContext } from '@glue42/react-hooks';\n\nexport const useInvokeInteropMethod = (): ((action: Glue42Search.MainAction) => Promise<any>) => {\n const glue = useContext(GlueContext);\n\n return async (action: Glue42Search.MainAction) => {\n if (glue.interop.methods().every((method) => method.name !== action?.method)) {\n return console.error('Interop method not found.');\n }\n\n return await glue.interop\n .invoke(action.method, action.params, action.target)\n .catch((error) => console.error({ error }));\n };\n};","import { useEffect, useState } from 'react';\n\nexport const usePressedKeys = (): string | null => {\n const [pressedKeys, setPressedKeys] = useState<string[]>([]);\n\n useEffect(() => {\n const onKeyDown = ({ key }: KeyboardEvent) => {\n setPressedKeys((keys) => (keys.includes(key) ? keys : keys.concat(key)));\n };\n\n const onKeyUp = (event: KeyboardEvent) => {\n setPressedKeys((keys) => keys.filter((key) => key !== event.key));\n };\n\n const onBlur = () => {\n setPressedKeys([]);\n };\n\n document.addEventListener('keydown', onKeyDown);\n document.addEventListener('keyup', onKeyUp);\n window.addEventListener('blur', onBlur);\n\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n document.removeEventListener('keyup', onKeyUp);\n window.removeEventListener('blur', onBlur);\n };\n }, []);\n\n // TODO: clarify the logic of the hook\n return pressedKeys.length === 1 ? pressedKeys[0] : null;\n};\n","export const MODIFIER_KEYS = {\n CONTROL: 'Control',\n SHIFT: 'Shift',\n} as const;\n","import { useContext } from 'react';\nimport { GlueContext } from '@glue42/react-hooks';\nimport { Glue42Workspaces } from '@glue42/workspaces-api';\nimport { MODIFIER_KEYS } from '../constants/modifierKeys';\nimport { useFrame } from './useFrame';\n\nexport const useRestoreWorkspace = () => {\n const glue = useContext(GlueContext);\n const frame = useFrame();\n\n return async (id: string, modifier: string | null) => {\n const restoreOptions: Glue42Workspaces.RestoreWorkspaceConfig =\n modifier === MODIFIER_KEYS.CONTROL\n ? { newFrame: true }\n : { frameId: frame?.id };\n\n return glue.workspaces?.restoreWorkspace(id, restoreOptions);\n };\n};\n","import { useState, useContext, useEffect, useRef } from 'react';\nimport { GlueContext } from '@glue42/react-hooks';\nimport { Glue42Web } from '@glue42/web';\nimport { Glue42Search } from '@glue42/search-api';\n\nexport const useSearch = (\n searchTerm: string\n): {\n resultsToRender: Glue42Search.QueryResult[];\n isLoading: boolean;\n} => {\n const [resultsToRender, setResultsToRender] = useState<Glue42Search.QueryResult[]>([]);\n const [isLoading, setIsLoading] = useState(true);\n const queryRef = useRef<Glue42Search.Query | null>(null);\n\n const glue = useContext(GlueContext) as Glue42Web.API;\n\n useEffect(() => {\n if (!glue || !glue.search) {\n return;\n }\n\n const unsubscribeFns: Glue42Search.UnsubscribeFunction[] = [];\n const currentResults: Glue42Search.QueryResult[] = [];\n\n const sendQuery = async (searchTerm: string): Promise<void> => {\n setIsLoading(true);\n setResultsToRender([]);\n\n const query = await glue.search!.query({\n search: searchTerm.trim(),\n providerLimits: { maxResults: 100, maxResultsPerType: 5 },\n });\n\n if (query === queryRef.current) {\n return;\n }\n\n queryRef.current = query;\n\n const unsubscribeOnResults = query.onResults((response) => {\n response.results.forEach((queryResult) => {\n const resultExists = currentResults.find(\n (result) => result.id === queryResult.id && result.type.name === queryResult.type.name\n );\n\n if (resultExists) {\n return;\n }\n\n currentResults.push(queryResult);\n });\n\n setIsLoading(false);\n setResultsToRender([...currentResults]);\n });\n\n const unsubscribeOnCompleted = query.onCompleted(() => {\n setIsLoading(false);\n });\n\n const unsubscribeOnError = query.onError((error) => {\n console.error(`Query failed. Provider: ${error.provider}; Error: ${error.error}`);\n });\n\n unsubscribeFns.push(unsubscribeOnResults, unsubscribeOnCompleted, unsubscribeOnError);\n };\n\n sendQuery(searchTerm);\n\n return () => {\n unsubscribeFns.forEach((fn) => fn());\n };\n }, [glue, searchTerm]);\n\n return { resultsToRender, isLoading };\n};\n","import { useContext } from 'react';\nimport { GlueContext } from '@glue42/react-hooks';\nimport { MODIFIER_KEYS } from '../constants/modifierKeys';\n\nexport const useStartApplication = () => {\n const glue = useContext(GlueContext);\n\n return async (id: string, modifier: string | null) => {\n const selectedWorkspace = await glue.workspaces?.getWorkspace((wsp) => wsp.isSelected === true);\n\n const outermostChild = selectedWorkspace?.children[0];\n\n const standalone =\n modifier === MODIFIER_KEYS.CONTROL || !selectedWorkspace || outermostChild?.type === 'window';\n\n if (standalone) {\n return await glue.appManager.application(id).start();\n }\n\n const group =\n outermostChild?.type === 'group'\n ? outermostChild\n : await (outermostChild || selectedWorkspace).addGroup();\n\n return await group.addWindow({ appName: id });\n };\n};","import { useState, useContext, useEffect } from 'react';\nimport { GlueContext } from '@glue42/react-hooks';\nimport type { Workspace } from '../lib/workspaces-section/workspaces-section.types';\n\nexport const useWorkspaces = () => {\n const [workspaces, setWorkspaces] = useState<Workspace[]>([]);\n\n const glue = useContext(GlueContext);\n\n useEffect(() => {\n if (!glue || !glue.workspaces) return;\n\n let isUnsubscribed = false;\n\n const unsubscribeOnSavedPromise = glue.workspaces.layouts.onSaved(\n ({ name }) => {\n if (isUnsubscribed) return;\n\n setWorkspaces((current) => [...current, { id: name, title: name }]);\n }\n );\n\n const unsubscribeOnRemovedPromise = glue.workspaces.layouts.onRemoved(\n ({ name }) => {\n if (isUnsubscribed) return;\n\n setWorkspaces((current) => current.filter(({ title }) => title !== name));\n }\n );\n\n return () => {\n isUnsubscribed = true;\n\n [unsubscribeOnSavedPromise, unsubscribeOnRemovedPromise].forEach(\n async (promise) => {\n try {\n const unsubscribe = await promise;\n\n unsubscribe();\n } catch (error) {\n console.error(error);\n }\n }\n );\n };\n }, [glue]);\n\n return workspaces;\n};\n","import { useState, useContext, useEffect } from 'react';\nimport { GlueContext } from '@glue42/react-hooks';\nimport { Glue42Workspaces } from '@glue42/workspaces-api';\n\nexport const useWorkspacesInstances = () => {\n const [runningInstances, setRunningInstances] = useState<{\n [wsName: string]: string[];\n }>({});\n\n const glue = useContext(GlueContext);\n\n useEffect(() => {\n if (!glue) return;\n const unsubscribeArr: (Glue42Workspaces.Unsubscribe | undefined)[] = [];\n\n (async () => {\n try {\n const unsubscribeOnAdd = await glue.workspaces?.onWorkspaceOpened(\n (workspace) =>\n setRunningInstances((current) => ({\n ...current,\n [workspace.title]: [\n ...(current[workspace.title] || []),\n workspace.id,\n ],\n }))\n );\n unsubscribeArr.push(unsubscribeOnAdd);\n\n const unsubscribeOnClosed = await glue.workspaces?.onWorkspaceClosed(\n ({ workspaceId }) =>\n setRunningInstances((current) => {\n const updated = { ...current };\n for (const key in updated) {\n if (updated[key].includes(workspaceId)) {\n updated[key] = updated[key].filter(\n (instanceId) => instanceId !== workspaceId\n );\n break;\n }\n }\n return updated;\n })\n );\n unsubscribeArr.push(unsubscribeOnClosed);\n } catch (error) {\n console.error(error);\n }\n })();\n\n return () => unsubscribeArr.forEach((unsubscribe) => unsubscribe?.());\n }, [glue]);\n\n return runningInstances;\n};\n","import { Glue42Web } from '@glue42/web';\nimport { Glue42Workspaces } from '@glue42/workspaces-api';\nimport { SectionItemType } from '../lib/section/section.types';\n\nconst handleOpenInNewWindow = async (\n glue: Glue42Web.API,\n item: SectionItemType\n): Promise<void> => {\n await glue.appManager.application(item.id).start();\n};\n\nconst handleOpenInNewWorkspace = async (\n glue: Glue42Web.API,\n item: SectionItemType,\n frame?: Glue42Workspaces.Frame\n): Promise<void> => {\n if (!glue.workspaces) {\n return;\n }\n\n const builderConfig: Glue42Workspaces.BuilderConfig = {\n type: 'workspace',\n definition: {\n frame: frame ? { reuseFrameId: frame.id } : { newFrame: true },\n },\n };\n\n const builder = glue.workspaces.getBuilder(\n builderConfig\n ) as Glue42Workspaces.WorkspaceBuilder;\n\n builder.addGroup().addWindow({ appName: item.id });\n\n await builder.create();\n};\n\nexport const applicationActionExecutors: {\n [key: string]: (\n glue: Glue42Web.API,\n item: SectionItemType,\n frame?: Glue42Workspaces.Frame\n ) => Promise<void>;\n} = {\n openInNewWindow: handleOpenInNewWindow,\n openInNewWorkspace: handleOpenInNewWorkspace,\n} as const;\n","import { useContext } from 'react';\nimport { GlueContext } from '@glue42/react-hooks';\nimport { Glue42Web } from '@glue42/web';\nimport { useFrame } from './useFrame';\nimport { applicationActionExecutors } from '../executors/applicationActions';\nimport { SectionItemType } from '../lib/section/section.types';\n\nexport const useExecuteApplicationAction = () => {\n const glue = useContext(GlueContext) as Glue42Web.API;\n const frame = useFrame();\n\n return async (item: SectionItemType, actionName: string) => {\n applicationActionExecutors[actionName](glue, item, frame);\n };\n};\n","import { Glue42Web } from '@glue42/web';\nimport { SectionItemType } from '../lib/section/section.types';\n\nconst handleOpenInNewFrame = async (\n glue: Glue42Web.API,\n item: SectionItemType\n): Promise<void> => {\n if (!glue.workspaces) {\n return;\n }\n\n glue.workspaces.restoreWorkspace(item.id, { newFrame: true });\n};\n\nconst handleDelete = async (\n glue: Glue42Web.API,\n item: SectionItemType\n): Promise<void> => {\n if (!glue.workspaces) {\n return;\n }\n\n glue.workspaces.layouts.delete(item.id);\n};\n\nexport const workspaceActionExecutors: {\n [key: string]: (glue: Glue42Web.API, item: SectionItemType) => Promise<void>;\n} = {\n openInNewFrame: handleOpenInNewFrame,\n delete: handleDelete,\n} as const;\n","import { useContext } from 'react';\nimport { GlueContext } from '@glue42/react-hooks';\nimport { Glue42Web } from '@glue42/web';\nimport { workspaceActionExecutors } from '../executors/workspaceActions';\nimport { SectionItemType } from '../lib/section/section.types';\n\nexport const useExecuteWorkspaceAction = () => {\n const glue = useContext(GlueContext) as Glue42Web.API;\n\n return async (item: SectionItemType, actionName: string) => {\n workspaceActionExecutors[actionName](glue, item);\n };\n};\n","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v1.0.35\n Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '1.0.35',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 350;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n VIERA = 'Viera',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook',\n CHROMIUM_OS = 'Chromium OS',\n MAC_OS = 'Mac OS';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i<arr.length; i++) {\n enums[arr[i].toUpperCase()] = arr[i];\n }\n return enums;\n },\n has = function (str1, str2) {\n return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\n },\n lowerize = function (str) {\n return str.toLowerCase();\n },\n majorize = function (version) {\n return typeof(version) === STR_TYPE ? version.replace(/[^\\d\\.]/g, EMPTY).split('.')[0] : undefined;\n },\n trim = function (str, len) {\n if (typeof(str) === STR_TYPE) {\n str = str.replace(/^\\s\\s*/, EMPTY);\n return typeof(len) === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n }\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n if (!regex[j]) { break; }\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === OBJ_TYPE && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i, // Baidu Browser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(heytap|ovi)browser\\/([\\d\\.]+)/i, // Heytap/Ovi\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i\n ], [VERSION, [NAME, 'WeChat(Win) Desktop']], [\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, '360 '+BROWSER]], [\n /(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1 '+BROWSER], VERSION], [ // Oculus/Samsung/Sailfish/Huawei Browser\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/Baidu App/2345 Browser\n ], [NAME, VERSION], [\n /(metasr)[\\/ ]?([\\w\\.]+)/i, // SouGouBrowser\n /(lbbrowser)/i, // LieBao Browser\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(chromium|instagram)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i, // Links\n /panasonic;(viera)/i // Panasonic Viera\n ], [NAME, VERSION], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]([-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+)(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[12]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n /(quest( 2| pro)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n /\\b(libweb)/i\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows) nt 6\\.2; (arm)/i, // Windows RT\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i, // Windows Phone\n /(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[NAME, 'Windows'], [VERSION, strMapper, windowsVersionMap]], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /ios;fbsv\\/([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, MAC_OS], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, CHROMIUM_OS], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined;\n var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY);\n var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined;\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n var _isSelfNav = _navigator && _navigator.userAgent == _ua;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser[MAJOR] = majorize(_browser[VERSION]);\n // Brave-specific detection\n if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {\n _browser[NAME] = 'Brave';\n }\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {\n _device[TYPE] = MOBILE;\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {\n _device[MODEL] = 'iPad';\n _device[TYPE] = TABLET;\n }\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n if (_isSelfNav && !_os[NAME] && _uach && _uach.platform != 'Unknown') {\n _os[NAME] = _uach.platform \n .replace(/chrome os/i, CHROMIUM_OS)\n .replace(/macos/i, MAC_OS); // backward compatibility\n }\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n","import * as React from 'react';\nimport { UAParser } from 'ua-parser-js';\n\nconst uaParser = new UAParser();\n\nexport const useUA = () => {\n return React.useMemo<Omit<UAParser.IResult, 'ua'>>(\n () => ({\n os: uaParser.getOS(),\n browser: uaParser.getBrowser(),\n cpu: uaParser.getCPU(),\n device: uaParser.getDevice(),\n engine: uaParser.getEngine(),\n }),\n []\n );\n};\n\nexport const useBrowser = () => {\n return React.useMemo<UAParser.IResult['browser']>(() => uaParser.getBrowser(), []);\n};\n","import classNames from 'classnames';\nimport { BaseSectionItemType } from './base-section.types';\nimport Icon from '../icon/icon';\nimport ImgIcon from '../img-icon/img-icon';\nimport { useFavoriteEntities } from '../../hooks';\nimport DropdownButton from '../context-menu/dropdown-button/dropdown-button';\nimport { ContextMenuAction } from '../context-menu/context-menu-types';\nimport { ActivationEvent, isClickKeypress } from '../../helpers/a11y';\n\ninterface BaseSectionItemProps<Item extends BaseSectionItemType>\n extends React.HTMLProps<HTMLDivElement> {\n isFavoritismEnabled?: boolean;\n item: Item;\n onClick: (\n event: ActivationEvent, \n action?: ContextMenuAction\n ) => void;\n onKeyDown: (e: React.KeyboardEvent<HTMLDivElement>) => void;\n focused: boolean;\n}\n\nexport const BaseSectionItem = <Item extends BaseSectionItemType>(\n props: BaseSectionItemProps<Item>\n) => {\n const {\n className,\n isFavoritismEnabled = true,\n item,\n onClick,\n onKeyDown,\n focused,\n ...domProps\n } = props;\n const { favoriteEntities, toggleFavorite } = useFavoriteEntities();\n const {\n description,\n icon = 'application',\n iconSrc,\n isOpen = false,\n title,\n contextMenuActions,\n } = item;\n const isFavorite =\n isFavoritismEnabled &&\n favoriteEntities.some(\n (entity) => entity.type === item.type && entity.title === item.title\n );\n\n return (\n <div\n tabIndex={focused ? 0 : -1}\n className={classNames(className, 'g42-list-item')}\n onKeyDown={(e) => {\n if(isClickKeypress(e)){\n onClick(e);\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n onKeyDown(e);\n }}\n onClick={onClick}\n data-testid=\"base-section-item\"\n {...domProps}\n >\n <div className=\"g42-list-row\">\n <Icon\n size={8}\n name={isOpen ? 'check' : ''}\n data-testid=\"open-check-icon\"\n />\n {iconSrc ? (\n <ImgIcon\n src={iconSrc}\n alt={`${title} icon`}\n size={14}\n data-testid=\"img-icon\"\n />\n ) : (\n <Icon size={14} name={icon} data-testid=\"icon\" />\n )}\n <span className=\"title\" data-testid=\"title\">\n {title}\n </span>\n {isOpen && (\n <span className=\"opened\" data-testid=\"opened-label\">\n Opened\n </span>\n )}\n {contextMenuActions && contextMenuActions.length > 0 && (\n <DropdownButton\n iconName=\"ellipsis\"\n iconSize={16}\n actions={contextMenuActions}\n onActionItemClick={onClick}\n isTabStop={focused}\n />\n )}\n {isFavoritismEnabled && (\n <Icon\n tabIndex={focused ? 0 : -1}\n className={classNames('favorite', isFavorite && 'visible')}\n name={isFavorite ? 'star-full' : 'star'}\n handleClick={(event) => {\n event.stopPropagation();\n toggleFavorite(item);\n }}\n size={16}\n data-testid=\"favorite-icon\"\n />\n )}\n </div>\n {description && (\n <div className=\"g42-list-row\">\n <span className=\"description\" data-testid=\"description\">\n {description}\n </span>\n </div>\n )}\n </div>\n );\n};\n\nexport default BaseSectionItem;\n","import { createContext, useContext, useMemo } from 'react';\n\ninterface LaunchpadAPIProviderProps {\n children: React.ReactNode;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n isOpen: boolean;\n}\n\nconst LaunchpadAPIContext = createContext<\n { close: () => void; isOpen: boolean } | undefined\n>(undefined);\n\nexport const useLaunchpadAPI = () => {\n const context = useContext(LaunchpadAPIContext);\n\n if (context === undefined) {\n throw new Error(\n 'useLaunchpadAPI must be used within a LaunchpadAPIProvider'\n );\n }\n\n return context;\n};\n\nexport const LaunchpadAPIProvider = ({\n children,\n setOpen,\n isOpen,\n}: LaunchpadAPIProviderProps) => {\n const launchpadAPI = useMemo(\n () => ({\n close: () => setOpen(false),\n isOpen,\n }),\n [setOpen, isOpen]\n );\n\n return (\n <LaunchpadAPIContext.Provider value={launchpadAPI}>\n {children}\n </LaunchpadAPIContext.Provider>\n );\n};\n","export const DEFAULT_GLOBAL_LAYOUT = 'Welcome';\nexport const DEFAULT_DISPLAY_COUNT = 5;\n","import { useEffect, useState, useMemo, useRef } from 'react';\nimport BaseSectionHeader from './base-section-header';\nimport BaseSectionItem from './base-section-item';\nimport type {\n BaseSectionItemType,\n BaseSectionType,\n} from './base-section.types';\nimport { isSection } from './base-section.helpers';\nimport { usePressedKeys } from '../../hooks';\nimport Icon from '../icon/icon';\nimport { useLaunchpadAPI } from '../launchpad/launchpad.context';\nimport { DEFAULT_DISPLAY_COUNT } from '../../constants/defaults';\nimport { ActivationEvent, keyboardNavigation, onClickA11y } from '../../helpers/a11y';\n\ninterface BaseSectionProps<Item extends BaseSectionItemType> {\n config: BaseSectionType<Item>;\n isFavoritismEnabled?: boolean;\n level?: number;\n onItemClick: (\n event: ActivationEvent,\n params: {\n item: Item;\n modifier: string | null;\n selectedContextMenuActionName?: string;\n }\n ) => void;\n}\n\nexport const BaseSection = <Item extends BaseSectionItemType>(\n props: BaseSectionProps<Item>\n) => {\n const { config, isFavoritismEnabled, level = 1, onItemClick } = props;\n const [page, setPage] = useState(1);\n const displayCount = config.displayCount ?? DEFAULT_DISPLAY_COUNT;\n const pressedKey = usePressedKeys();\n const launchpadAPI = useLaunchpadAPI();\n const [focusedItemIndex, setFocusedItemIndex] = useState(0);\n const liRefs = useRef<Record<number, HTMLLIElement | null>>({});\n\n const sectionItemsToShow = useMemo(() => {\n return config.items.filter((item) => isSection(item));\n }, [config.items]);\n\n const nonSectionItemsToShow = useMemo(() => {\n return config.items\n .filter((item) => !isSection(item))\n .slice(0, page * displayCount);\n }, [config.items, displayCount, page]);\n\n useEffect(() => {\n if (launchpadAPI.isOpen) {\n return;\n }\n\n setPage(1);\n }, [launchpadAPI.isOpen]);\n\n const handleShowMoreClick = () => {\n setPage((previousPage) => previousPage + 1);\n };\n\n const items = [...sectionItemsToShow, ...nonSectionItemsToShow];\n\n const moveFocus = (newIndex: number) => {\n (liRefs.current[newIndex]?.querySelector(\"[tabIndex]\") as HTMLElement)?.focus();\n setFocusedItemIndex(newIndex);\n }\n\n return (\n <li className='section'>\n <BaseSectionHeader\n iconSrc={config.iconSrc}\n iconName={config.iconName}\n style={{ paddingLeft: `${(level - 1) * 12 + 6}px` }}\n title={config.title}\n />\n <ul>\n {items.map((item, idx) => {\n return isSection(item) ? (\n <BaseSection\n key={item.id}\n config={item}\n isFavoritismEnabled={isFavoritismEnabled}\n level={level + 1}\n onItemClick={onItemClick}\n />\n ) : (\n <li key={item.id || idx} ref={(element) => liRefs.current[idx] = element}>\n <BaseSectionItem\n key={item.id || idx}\n isFavoritismEnabled={isFavoritismEnabled}\n item={item}\n onClick={(event, action) =>\n onItemClick?.(event, {\n item,\n modifier: pressedKey,\n selectedContextMenuActionName: action?.name,\n })\n }\n style={{ paddingLeft: `${level * 7}px` }}\n onKeyDown={(event) => {\n keyboardNavigation({\n event,\n moveFocus,\n currentIndex: focusedItemIndex,\n min: 0,\n max: items.length -1\n })\n }}\n focused={focusedItemIndex === idx}\n />\n </li>\n );\n })}\n {config.items.length - sectionItemsToShow.length >\n displayCount * page && (\n <li data-testid=\"more-li-element\">\n <div\n className=\"g42-list-item more\"\n style={{ paddingLeft: `${level * 7 + 8}px` }}\n role=\"button\"\n aria-label=\"More\"\n {...onClickA11y(handleShowMoreClick)}\n >\n <div className=\"g42-list-row\">\n <span className=\"title\">More...</span>\n <Icon\n size={12}\n name=\"chevron-down\"\n data-testid=\"more-chevron\"\n />\n </div>\n </div>\n </li>\n )}\n </ul>\n </li>\n );\n};\n\nexport default BaseSection;\n","import { isSection } from '../base-section/base-section.helpers';\nimport type { SectionItemType, SectionType } from './section.types';\n\nexport const getItemName = (item: SectionItemType): string => {\n return `${item.type}-${item.id}`;\n};\n\nexport const getClickedItem = (\n items: SectionType['items'],\n clickedItemName: string\n): SectionItemType | undefined => {\n return buildItemsMapping(items)[clickedItemName];\n};\n\nconst buildItemsMapping = (\n items: SectionType['items']\n): { [key: string]: SectionItemType } => {\n return items.reduce<{ [key: string]: SectionItemType }>((mapping, item) => {\n return isSection(item)\n ? { ...mapping, ...buildItemsMapping(item.items) }\n : { ...mapping, [getItemName(item)]: item };\n }, {});\n};\n","import { createContext, useContext, useState } from 'react';\n\ninterface SectionProviderProps {\n children: React.ReactNode;\n}\n\ninterface ClickDataState {\n itemName: string;\n selectedContextMenuActionName?: string;\n}\n\nconst SectionContext = createContext<\n [ClickDataState | null, React.Dispatch<React.SetStateAction<ClickDataState | null>>] | undefined\n>(undefined);\n\nexport const useSection = () => {\n const context = useContext(SectionContext);\n\n if (context === undefined) {\n throw new Error('useSection must be used within a SectionProvider');\n }\n\n return context;\n};\n\nexport const SectionProvider = ({ children }: SectionProviderProps) => {\n const [clickData, setClickData] = useState<ClickDataState | null>(null);\n\n return (\n <SectionContext.Provider value={[clickData, setClickData]}>\n {children}\n </SectionContext.Provider>\n );\n};\n","import { useEffect } from 'react';\nimport BaseSection from '../base-section/base-section';\nimport { getClickedItem, getItemName } from './section.helpers';\nimport { MODIFIER_KEYS } from '../../constants/modifierKeys';\nimport type { SectionItemType, SectionType } from './section.types';\nimport { useLaunchpadAPI } from '../launchpad/launchpad.context';\nimport { usePressedKeys } from '../../hooks';\nimport { useSection } from './section.context';\nimport { ActivationEvent } from '../../helpers/a11y';\n\ninterface SectionProps {\n config: SectionType;\n onItemClick?: (params: { item: SectionItemType; modifier: string | null; selectedContextMenuActionName?: string }) => void;\n}\n\nexport const Section = ({ config, onItemClick }: SectionProps) => {\n const [clickData, setClickData] = useSection();\n const launchpadAPI = useLaunchpadAPI();\n const pressedKey = usePressedKeys();\n\n const handleItemClick = (\n _: ActivationEvent,\n params: {\n item: SectionItemType;\n selectedContextMenuActionName?: string;\n }\n ) => {\n const { item, selectedContextMenuActionName } = params;\n\n setClickData({ itemName: getItemName(item), selectedContextMenuActionName: selectedContextMenuActionName });\n };\n\n useEffect(() => {\n if (!onItemClick || !clickData) {\n return;\n }\n\n const { itemName: name, selectedContextMenuActionName } = clickData;\n\n const clickedItem = getClickedItem(config.items, name);\n\n if (!clickedItem) {\n return;\n }\n\n onItemClick({\n item: clickedItem,\n modifier: pressedKey,\n selectedContextMenuActionName,\n });\n\n setClickData(null);\n\n if (pressedKey === MODIFIER_KEYS.SHIFT) {\n return;\n }\n\n launchpadAPI.close();\n }, [clickData, config.items, launchpadAPI, onItemClick, pressedKey, setClickData]);\n\n return <BaseSection config={config} onItemClick={handleItemClick} />;\n};\n\nexport default Section;\n","import { getApplicationsSectionConfig } from './applications-section.helpers';\nimport Section from '../section/section';\nimport type { SectionItemType } from '../section/section.types';\nimport {\n useExecuteApplicationAction,\n useApplications,\n useApplicationsInstances,\n useStartApplication,\n} from '../../hooks';\n\nexport function ApplicationsSection() {\n const applications = useApplications();\n const runningInstances = useApplicationsInstances();\n const startApplication = useStartApplication();\n const executeApplicationAction = useExecuteApplicationAction();\n const config = getApplicationsSectionConfig(applications, runningInstances);\n\n const handleItemClick = (params: {\n item: SectionItemType;\n modifier: string | null;\n selectedContextMenuActionName?: string;\n }) => {\n const { item, modifier, selectedContextMenuActionName } = params;\n\n if (!selectedContextMenuActionName) {\n return startApplication(item.id, modifier).catch((error) => {\n console.error('Failed to start application', { error });\n });\n }\n\n executeApplicationAction(item, selectedContextMenuActionName).catch(\n (error) => {\n console.error('Failed to execute application action', { error });\n }\n );\n };\n\n return <Section config={config} onItemClick={handleItemClick} />;\n}\n\nexport default ApplicationsSection;\n","import { HTMLProps } from 'react';\nimport classNames from 'classnames';\n\n/* eslint-disable-next-line */\nexport interface ButtonProps extends HTMLProps<HTMLButtonElement> {\n type?: 'button' | 'submit' | 'reset';\n color?: 'primary' | 'secondary';\n}\n\nexport function Button({ children, className, color, ...rest }: ButtonProps) {\n return (\n <button className={classNames(className, 'g42-btn', color)} {...rest}>\n {children}\n </button>\n );\n}\n\nexport default Button;\n","import classNames from 'classnames';\nimport { HTMLProps } from 'react';\nimport { Button, ButtonProps } from '../button/button';\n\n/* eslint-disable-next-line */\nexport interface ButtonGroupProps extends HTMLProps<HTMLDivElement> {\n items: ButtonProps[];\n onItemClick?: (e: React.MouseEvent, props: ButtonProps) => void;\n}\n\nexport function ButtonGroup({\n className,\n items,\n onItemClick,\n}: ButtonGroupProps) {\n return (\n <div className={classNames('g42-btn-group', className)}>\n {items.map((btn, i) => {\n const { onClick, ...btnRest } = btn;\n return (\n <Button\n key={i}\n onClick={(e) => {\n onClick && onClick(e);\n onItemClick && onItemClick(e, btn);\n }}\n {...btnRest}\n />\n );\n })}\n </div>\n );\n}\n\nexport default ButtonGroup;\n","import type { FavoriteEntity } from '../../common/types';\nimport type { SectionType } from '../section/section.types';\n\nexport const getFavoritesSectionConfig = (favorites: FavoriteEntity[]): SectionType => {\n return {\n id: 'favorites-section',\n title: 'Favorites',\n items: favorites,\n iconName: 'star',\n };\n};\n","import { getFavoritesSectionConfig } from './favorites-section.helpers';\nimport Section from '../section/section';\nimport { useFavoriteEntities } from '../../hooks';\n\nexport const FavoritesSection = () => {\n const { favoriteEntities } = useFavoriteEntities();\n const config = getFavoritesSectionConfig(favoriteEntities);\n\n return favoriteEntities.length > 0 ? <Section config={config} /> : null;\n};\n\nexport default FavoritesSection;\n","import { GlueContext } from '@glue42/react-hooks';\nimport { Glue42Web } from '@glue42/web';\nimport { useContext, useEffect, useState } from 'react';\nimport { ButtonGroup } from '../button-group/button-group';\nimport { ButtonProps } from '../..';\n\nexport const SettingsCard = () => {\n const glue = useContext(GlueContext);\n const [themes, setThemes] = useState<Array<Glue42Web.Themes.Theme>>([]);\n\n useEffect(() => {\n\n if (!glue) {\n return;\n }\n\n glue.themes?.list()\n .then((allThemes) => setThemes(allThemes))\n .catch(console.warn);\n\n }, [glue]);\n\n const handleThemeChange = async (e: React.MouseEvent, props: ButtonProps) => {\n if (!props.name) {\n return;\n }\n\n glue.themes?.select(props.name).catch(console.warn);\n };\n\n return (\n <div className=\"info info-middle\">\n <h4>Settings</h4>\n <div className=\"flex ai-center\">\n <label style={{ textAlign: 'right', width: '40%' }}>Theme</label>\n <div style={{ width: '60%', marginLeft: 'auto' }}>\n <ButtonGroup\n onItemClick={handleThemeChange}\n items={themes.map(({ name, displayName }) => ({\n name,\n children: displayName\n }))}\n />\n </div>\n </div>\n </div>\n );\n}\n\nexport default SettingsCard;\n","import { Decoder, object } from 'decoder-validate';\nimport { LayoutStorageValue } from '../lib/layout-settings/layout-types';\nimport { nonEmptyStringDecoder } from './base';\n\nexport const layoutStorageValueDecoder: Decoder<LayoutStorageValue | null> = object({\n name: nonEmptyStringDecoder,\n});\n","import { FC, HTMLProps } from 'react';\nimport Button from '../button/button';\nimport { useStorage } from '../../hooks';\nimport { SELECTED_LAYOUT_SESSION_STORAGE_KEY } from '../../constants/storageKeys';\nimport { layoutStorageValueDecoder } from '../../decoders/layouts';\n\nexport interface SupportCardProps {\n title?: string;\n description?: string;\n links?: HTMLProps<HTMLAnchorElement>[];\n onLogout?: () => void;\n}\n\nexport const SupportCard: FC<SupportCardProps> = ({ title, description, links = [], onLogout }) => {\n const [_, setSelectedLayout] = useStorage('sessionStorage', SELECTED_LAYOUT_SESSION_STORAGE_KEY, layoutStorageValueDecoder);\n\n const handleLogout = () => {\n setSelectedLayout(null);\n onLogout?.();\n };\n\n return (\n <div className=\"info info-bottom flex flex-column\">\n <h4>{title || 'Support'}</h4>\n <p>{description || 'New set of thoughtfully curated items and the ability to configure them.'}</p>\n <ul>\n {links.map(({ children, ...rest }) => (\n <li key={rest.href}>\n <a {...rest}>{children}</a>\n </li>\n ))}\n </ul>\n <div>\n <Button onClick={handleLogout}>Logout</Button>\n </div>\n </div>\n );\n};\n\nexport default SupportCard;\n","export const getInitials = (name: string) =>\r\n name\r\n ?.split(' ')\r\n .map((n) => n[0]?.toUpperCase())\r\n .join('');\r\n","import { GlueContext } from '@glue42/react-hooks';\nimport { FC, useContext } from 'react';\nimport { getInitials } from '../../helpers/string';\n\nexport interface ProfileDetailsCardProps {\n user?: {\n name?: string;\n }\n}\n\nexport const ProfileDetailsCard: FC<ProfileDetailsCardProps> = ({ user }) => {\n const glue = useContext(GlueContext);\n\n const name = user?.name || 'N A';\n\n return (\n <div className=\"flex info info-top\">\n <div>\n <h4>{name}</h4>\n <p>\n {\"PROD\"} | {'Version ' + glue.version}\n </p>\n </div>\n <div className=\"flex badge\">{getInitials(name)}\n </div>\n </div>\n );\n}\n\nexport default ProfileDetailsCard;\n","import { SettingsCard } from '../../../settings-card/settings-card';\nimport { SupportCard } from '../../../support-card/support-card';\nimport { ProfileDetailsCard } from '../../../profile-details-card/profile-details-card';\nimport { FC } from 'react';\n\nexport interface ProfileSettingsProps {\n onLogout?: () => void;\n user?: {\n name?: string;\n }\n}\n\nexport const ProfileSettings: FC<ProfileSettingsProps> = ({ onLogout, user }) => {\n return (\n <>\n <ProfileDetailsCard user={user}/>\n <SettingsCard />\n <SupportCard onLogout={onLogout}/>\n </>\n );\n}\n\nexport default ProfileSettings;\n","import classNames from 'classnames';\nimport { useEffect, useRef } from 'react';\nimport { createPortal } from 'react-dom';\nimport Icon from '../icon/icon';\n\n/* eslint-disable-next-line */\nexport interface ModalProps extends React.HTMLAttributes<HTMLDivElement> {\n onClose?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n afterClose?: () => void;\n mountNode?: Element | DocumentFragment;\n visible: boolean;\n}\n\nexport function Modal({\n children,\n className,\n mountNode,\n afterClose,\n onClose,\n visible,\n ...rest\n}: ModalProps) {\n const modalRef = useRef<HTMLDivElement | null>(null);\n const initializeRef = useRef(false);\n\n if (visible) initializeRef.current = true;\n\n useEffect(() => {\n if (visible) return;\n\n const modalElement = modalRef.current;\n const animationEndHandler = () => afterClose?.();\n modalElement?.addEventListener('animationend', animationEndHandler);\n return () =>\n modalElement?.removeEventListener('animationend', animationEndHandler);\n }, [visible, afterClose]);\n\n const content = (\n <div\n className={classNames(\n 'modal',\n initializeRef.current && (visible ? 'fadeIn' : 'fadeOut'),\n className\n )}\n ref={modalRef}\n {...rest}\n >\n <Icon\n onClick={onClose}\n className=\"btn-close g42-btn g42-btn-icon\"\n size={16}\n name=\"close\"\n />\n <div className=\"g42-modal-backdrop-content\">{children}</div>\n </div>\n );\n\n return mountNode ? createPortal(content, mountNode) : content;\n}\n\nexport default Modal;\n","/* *********************************************************\n * Copyright 2021 eBay Inc.\n\n * Use of this source code is governed by an MIT-style\n * license that can be found in the LICENSE file or at\n * https://opensource.org/licenses/MIT.\n*********************************************************** */\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * @module NiceModal\n * */\nimport React, { useEffect, useCallback, useContext, useReducer } from 'react';\nvar symModalId = Symbol('NiceModalId');\nvar initialState = {};\nvar NiceModalContext = React.createContext(initialState);\nvar NiceModalIdContext = React.createContext(null);\nvar MODAL_REGISTRY = {};\nvar ALREADY_MOUNTED = {};\nvar uidSeed = 0;\nvar dispatch = function () {\n throw new Error('No dispatch method detected, did you embed your app with NiceModal.Provider?');\n};\nvar getUid = function () { return \"_nice_modal_\" + uidSeed++; };\n// Modal reducer used in useReducer hook.\nexport var reducer = function (state, action) {\n var _a, _b, _c;\n if (state === void 0) { state = initialState; }\n switch (action.type) {\n case 'nice-modal/show': {\n var _d = action.payload, modalId = _d.modalId, args = _d.args;\n return __assign(__assign({}, state), (_a = {}, _a[modalId] = __assign(__assign({}, state[modalId]), { id: modalId, args: args, \n // If modal is not mounted, mount it first then make it visible.\n // There is logic inside HOC wrapper to make it visible after its first mount.\n // This mechanism ensures the entering transition.\n visible: !!ALREADY_MOUNTED[modalId], delayVisible: !ALREADY_MOUNTED[modalId] }), _a));\n }\n case 'nice-modal/hide': {\n var modalId = action.payload.modalId;\n if (!state[modalId])\n return state;\n return __assign(__assign({}, state), (_b = {}, _b[modalId] = __assign(__assign({}, state[modalId]), { visible: false }), _b));\n }\n case 'nice-modal/remove': {\n var modalId = action.payload.modalId;\n var newState = __assign({}, state);\n delete newState[modalId];\n return newState;\n }\n case 'nice-modal/set-flags': {\n var _e = action.payload, modalId = _e.modalId, flags = _e.flags;\n return __assign(__assign({}, state), (_c = {}, _c[modalId] = __assign(__assign({}, state[modalId]), flags), _c));\n }\n default:\n return state;\n }\n};\n// action creator to show a modal\nfunction showModal(modalId, args) {\n return {\n type: 'nice-modal/show',\n payload: {\n modalId: modalId,\n args: args,\n },\n };\n}\n// action creator to set flags of a modal\nfunction setModalFlags(modalId, flags) {\n return {\n type: 'nice-modal/set-flags',\n payload: {\n modalId: modalId,\n flags: flags,\n },\n };\n}\n// action creator to hide a modal\nfunction hideModal(modalId) {\n return {\n type: 'nice-modal/hide',\n payload: {\n modalId: modalId,\n },\n };\n}\n// action creator to remove a modal\nfunction removeModal(modalId) {\n return {\n type: 'nice-modal/remove',\n payload: {\n modalId: modalId,\n },\n };\n}\nvar modalCallbacks = {};\nvar hideModalCallbacks = {};\nvar getModalId = function (modal) {\n if (typeof modal === 'string')\n return modal;\n if (!modal[symModalId]) {\n modal[symModalId] = getUid();\n }\n return modal[symModalId];\n};\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function show(modal, args) {\n var modalId = getModalId(modal);\n if (typeof modal !== 'string' && !MODAL_REGISTRY[modalId]) {\n register(modalId, modal);\n }\n dispatch(showModal(modalId, args));\n if (!modalCallbacks[modalId]) {\n // `!` tell ts that theResolve will be written before it is used\n var theResolve_1;\n // `!` tell ts that theResolve will be written before it is used\n var theReject_1;\n var promise = new Promise(function (resolve, reject) {\n theResolve_1 = resolve;\n theReject_1 = reject;\n });\n modalCallbacks[modalId] = {\n resolve: theResolve_1,\n reject: theReject_1,\n promise: promise,\n };\n }\n return modalCallbacks[modalId].promise;\n}\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function hide(modal) {\n var modalId = getModalId(modal);\n dispatch(hideModal(modalId));\n // Should also delete the callback for modal.resolve #35\n delete modalCallbacks[modalId];\n if (!hideModalCallbacks[modalId]) {\n // `!` tell ts that theResolve will be written before it is used\n var theResolve_2;\n // `!` tell ts that theResolve will be written before it is used\n var theReject_2;\n var promise = new Promise(function (resolve, reject) {\n theResolve_2 = resolve;\n theReject_2 = reject;\n });\n hideModalCallbacks[modalId] = {\n resolve: theResolve_2,\n reject: theReject_2,\n promise: promise,\n };\n }\n return hideModalCallbacks[modalId].promise;\n}\nexport var remove = function (modalId) {\n dispatch(removeModal(modalId));\n delete modalCallbacks[modalId];\n delete hideModalCallbacks[modalId];\n};\nvar setFlags = function (modalId, flags) {\n dispatch(setModalFlags(modalId, flags));\n};\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function useModal(modal, args) {\n var modals = useContext(NiceModalContext);\n var contextModalId = useContext(NiceModalIdContext);\n var modalId = null;\n var isUseComponent = modal && typeof modal !== 'string';\n if (!modal) {\n modalId = contextModalId;\n }\n else {\n modalId = getModalId(modal);\n }\n // Only if contextModalId doesn't exist\n if (!modalId)\n throw new Error('No modal id found in NiceModal.useModal.');\n var mid = modalId;\n // If use a component directly, register it.\n useEffect(function () {\n if (isUseComponent && !MODAL_REGISTRY[mid]) {\n register(mid, modal, args);\n }\n }, [isUseComponent, mid, modal, args]);\n var modalInfo = modals[mid];\n var showCallback = useCallback(function (args) { return show(mid, args); }, [mid]);\n var hideCallback = useCallback(function () { return hide(mid); }, [mid]);\n var removeCallback = useCallback(function () { return remove(mid); }, [mid]);\n var resolveCallback = useCallback(function (args) {\n var _a;\n (_a = modalCallbacks[mid]) === null || _a === void 0 ? void 0 : _a.resolve(args);\n delete modalCallbacks[mid];\n }, [mid]);\n var rejectCallback = useCallback(function (args) {\n var _a;\n (_a = modalCallbacks[mid]) === null || _a === void 0 ? void 0 : _a.reject(args);\n delete modalCallbacks[mid];\n }, [mid]);\n var resolveHide = useCallback(function (args) {\n var _a;\n (_a = hideModalCallbacks[mid]) === null || _a === void 0 ? void 0 : _a.resolve(args);\n delete hideModalCallbacks[mid];\n }, [mid]);\n return {\n id: mid,\n args: modalInfo === null || modalInfo === void 0 ? void 0 : modalInfo.args,\n visible: !!(modalInfo === null || modalInfo === void 0 ? void 0 : modalInfo.visible),\n keepMounted: !!(modalInfo === null || modalInfo === void 0 ? void 0 : modalInfo.keepMounted),\n show: showCallback,\n hide: hideCallback,\n remove: removeCallback,\n resolve: resolveCallback,\n reject: rejectCallback,\n resolveHide: resolveHide,\n };\n}\nexport var create = function (Comp) {\n return function (_a) {\n var _b;\n var defaultVisible = _a.defaultVisible, keepMounted = _a.keepMounted, id = _a.id, props = __rest(_a, [\"defaultVisible\", \"keepMounted\", \"id\"]);\n var _c = useModal(id), args = _c.args, show = _c.show;\n // If there's modal state, then should mount it.\n var modals = useContext(NiceModalContext);\n var shouldMount = !!modals[id];\n useEffect(function () {\n // If defaultVisible, show it after mounted.\n if (defaultVisible) {\n show();\n }\n ALREADY_MOUNTED[id] = true;\n return function () {\n delete ALREADY_MOUNTED[id];\n };\n }, [id, show, defaultVisible]);\n useEffect(function () {\n if (keepMounted)\n setFlags(id, { keepMounted: true });\n }, [id, keepMounted]);\n var delayVisible = (_b = modals[id]) === null || _b === void 0 ? void 0 : _b.delayVisible;\n // If modal.show is called\n // 1. If modal was mounted, should make it visible directly\n // 2. If modal has not been mounted, should mount it first, then make it visible\n useEffect(function () {\n if (delayVisible) {\n // delayVisible: false => true, it means the modal.show() is called, should show it.\n show(args);\n }\n }, [delayVisible, args, show]);\n if (!shouldMount)\n return null;\n return (React.createElement(NiceModalIdContext.Provider, { value: id },\n React.createElement(Comp, __assign({}, props, args))));\n };\n};\n// All registered modals will be rendered in modal placeholder\nexport var register = function (id, comp, props) {\n if (!MODAL_REGISTRY[id]) {\n MODAL_REGISTRY[id] = { comp: comp, props: props };\n }\n else {\n MODAL_REGISTRY[id].props = props;\n }\n};\n/**\n * Unregister a modal.\n * @param id - The id of the modal.\n */\nexport var unregister = function (id) {\n delete MODAL_REGISTRY[id];\n};\n// The placeholder component is used to auto render modals when call modal.show()\n// When modal.show() is called, it means there've been modal info\nvar NiceModalPlaceholder = function () {\n var modals = useContext(NiceModalContext);\n var visibleModalIds = Object.keys(modals).filter(function (id) { return !!modals[id]; });\n visibleModalIds.forEach(function (id) {\n if (!MODAL_REGISTRY[id] && !ALREADY_MOUNTED[id]) {\n console.warn(\"No modal found for id: \" + id + \". Please check the id or if it is registered or declared via JSX.\");\n return;\n }\n });\n var toRender = visibleModalIds\n .filter(function (id) { return MODAL_REGISTRY[id]; })\n .map(function (id) { return (__assign({ id: id }, MODAL_REGISTRY[id])); });\n return (React.createElement(React.Fragment, null, toRender.map(function (t) { return (React.createElement(t.comp, __assign({ key: t.id, id: t.id }, t.props))); })));\n};\nvar InnerContextProvider = function (_a) {\n var children = _a.children;\n var arr = useReducer(reducer, initialState);\n var modals = arr[0];\n dispatch = arr[1];\n return (React.createElement(NiceModalContext.Provider, { value: modals },\n children,\n React.createElement(NiceModalPlaceholder, null)));\n};\nexport var Provider = function (_a) {\n var children = _a.children, givenDispatch = _a.dispatch, givenModals = _a.modals;\n if (!givenDispatch || !givenModals) {\n return React.createElement(InnerContextProvider, null, children);\n }\n dispatch = givenDispatch;\n return (React.createElement(NiceModalContext.Provider, { value: givenModals },\n children,\n React.createElement(NiceModalPlaceholder, null)));\n};\n/**\n * Declarative way to register a modal.\n * @param id - The id of the modal.\n * @param component - The modal Component.\n * @returns\n */\nexport var ModalDef = function (_a) {\n var id = _a.id, component = _a.component;\n useEffect(function () {\n register(id, component);\n return function () {\n unregister(id);\n };\n }, [id, component]);\n return null;\n};\nexport var antdModal = function (modal) {\n return {\n visible: modal.visible,\n onOk: function () { return modal.hide(); },\n onCancel: function () { return modal.hide(); },\n afterClose: function () {\n // Need to resolve before remove\n modal.resolveHide();\n if (!modal.keepMounted)\n modal.remove();\n },\n };\n};\nexport var antdModalV5 = function (modal) {\n var _a = antdModal(modal), onOk = _a.onOk, onCancel = _a.onCancel, afterClose = _a.afterClose;\n return {\n open: modal.visible,\n onOk: onOk,\n onCancel: onCancel,\n afterClose: afterClose,\n };\n};\nexport var antdDrawer = function (modal) {\n return {\n visible: modal.visible,\n onClose: function () { return modal.hide(); },\n afterVisibleChange: function (v) {\n if (!v) {\n modal.resolveHide();\n }\n !v && !modal.keepMounted && modal.remove();\n },\n };\n};\nexport var antdDrawerV5 = function (modal) {\n var _a = antdDrawer(modal), onClose = _a.onClose, afterOpenChange = _a.afterVisibleChange;\n return {\n open: modal.visible,\n onClose: onClose,\n afterOpenChange: afterOpenChange,\n };\n};\nexport var muiDialog = function (modal) {\n return {\n open: modal.visible,\n onClose: function () { return modal.hide(); },\n onExited: function () {\n modal.resolveHide();\n !modal.keepMounted && modal.remove();\n },\n };\n};\nexport var muiDialogV5 = function (modal) {\n return {\n open: modal.visible,\n onClose: function () { return modal.hide(); },\n TransitionProps: {\n onExited: function () {\n modal.resolveHide();\n !modal.keepMounted && modal.remove();\n },\n },\n };\n};\nexport var bootstrapDialog = function (modal) {\n return {\n show: modal.visible,\n onHide: function () { return modal.hide(); },\n onExited: function () {\n modal.resolveHide();\n !modal.keepMounted && modal.remove();\n },\n };\n};\nvar NiceModal = {\n Provider: Provider,\n ModalDef: ModalDef,\n NiceModalContext: NiceModalContext,\n create: create,\n register: register,\n show: show,\n hide: hide,\n remove: remove,\n useModal: useModal,\n reducer: reducer,\n antdModal: antdModal,\n antdDrawer: antdDrawer,\n muiDialog: muiDialog,\n bootstrapDialog: bootstrapDialog,\n};\nexport default NiceModal;\n","import Modal, { ModalProps } from '../../../modal/modal';\nimport ProfileSettings from './profile-settings';\nimport NiceModal, { useModal } from '@ebay/nice-modal-react';\n\ninterface ProfileModalProps extends ModalProps {\n onLogout?: () => void;\n user?: {\n name?: string;\n };\n}\n\nexport default NiceModal.create((props: ProfileModalProps) => {\n const { onLogout, user, ...rest } = props;\n\n const modal = useModal();\n return (\n <Modal\n {...rest}\n visible={modal.visible}\n onClose={() => {\n modal.hide();\n }}\n afterClose={() => {\n modal.remove();\n }}\n >\n <ProfileSettings onLogout={onLogout} user={user} />\n </Modal>\n );\n});\n","import classNames from 'classnames';\nimport type { Action } from './layout-types';\n\ninterface LayoutActionsProps {\n actions: Action[];\n className?: string;\n}\n\nconst LayoutActions = ({ actions, className = '' }: LayoutActionsProps) => (\n <div className={classNames('layout-actions', className)}>\n {actions.map(({ label, kind, disabled, onClick }) => (\n <button\n key={kind}\n onClick={onClick}\n disabled={disabled}\n className=\"g42-btn\"\n >\n {label}\n </button>\n ))}\n </div>\n);\n\nexport default LayoutActions;\n","import classNames from 'classnames';\nimport Icon from '../icon/icon';\nimport type { Layout, LayoutStorageValue } from './layout-types';\nimport { useContext } from 'react';\nimport DropdownButton from '../context-menu/dropdown-button/dropdown-button';\nimport { GlueContext } from '@glue42/react-hooks';\nimport { ContextMenuAction } from '../context-menu/context-menu-types';\nimport { LAYOUT_ACTIONS_NAMES } from '../../constants/contextMenuActions';\nimport { DEFAULT_GLOBAL_LAYOUT } from '../../constants/defaults';\nimport { ActivationEvent } from '../../helpers/a11y';\n\nexport interface LayoutItemProps {\n layout: Layout;\n onLayoutItemClick: (layout: Layout) => void;\n setDefaultLayout: (value: LayoutStorageValue | ((val: LayoutStorageValue) => LayoutStorageValue)) => void;\n}\n\nexport const LayoutItem = (props: LayoutItemProps) => {\n const { layout, onLayoutItemClick, setDefaultLayout } = props;\n\n const glue = useContext(GlueContext);\n\n const deleteLayout = async (layout: Layout): Promise<void> => {\n if (layout.isDefault) {\n setDefaultLayout({ name: DEFAULT_GLOBAL_LAYOUT });\n }\n\n return glue.layouts.remove('Global', layout.name).catch((error) => {\n console.error('Failed to delete layout: ', error);\n });\n };\n\n const handleActionClick = async (_: ActivationEvent, action: ContextMenuAction) => {\n if (action.name === LAYOUT_ACTIONS_NAMES.SET_AS_DEFAULT) {\n return setDefaultLayout({ name: layout.name });\n }\n\n if (action.name === LAYOUT_ACTIONS_NAMES.DELETE) {\n return deleteLayout(layout);\n }\n };\n\n const layoutContextMenuActions = [\n {\n name: LAYOUT_ACTIONS_NAMES.SET_AS_DEFAULT,\n displayName: 'Set as Default',\n disabled: layout.isDefault,\n },\n {\n name: LAYOUT_ACTIONS_NAMES.DELETE,\n displayName: 'Delete',\n disabled: layout.id === DEFAULT_GLOBAL_LAYOUT,\n },\n ];\n\n return (\n <div key={layout.id} className={classNames('layouts-item flex ai-center', layout.isSelected && 'active')}>\n <div className=\"loaded me-8\">{layout.isSelected && <Icon size={12} name=\"check\" />}</div>\n\n <div className={classNames('name', { bold: layout.isSelected })} onClick={() => onLayoutItemClick(layout)}>\n {layout.name}\n </div>\n\n <div className=\"type\">\n {layout.type}\n {layout.isDefault ? '/Default' : ''}\n </div>\n\n <DropdownButton\n iconSize={16}\n iconName=\"ellipsis\"\n actions={layoutContextMenuActions}\n onActionItemClick={handleActionClick}\n />\n </div>\n );\n};\n\nexport default LayoutItem;\n","import LayoutActions from './layout-actions';\nimport type { Action, Layout, LayoutStorageValue } from './layout-types';\nimport LayoutItem from './layout-item';\n\nexport interface LayoutSettingsProps {\n layouts: Layout[];\n onLayoutItemClick: (layout: Layout) => void;\n inputValue: string;\n onInputChange: (value: string) => void;\n actions: Action[];\n setDefaultLayout: (value: LayoutStorageValue | ((val: LayoutStorageValue) => LayoutStorageValue)) => void;\n}\n\nexport const LayoutSettings = (props: LayoutSettingsProps) => {\n const { layouts, onLayoutItemClick, inputValue, onInputChange, actions, setDefaultLayout } = props;\n\n return (\n <>\n <div className=\"layouts-settings\">\n <input className=\"g42-input\" onChange={(e) => onInputChange(e.target.value)} value={inputValue} />\n\n <LayoutActions className=\"group\" actions={actions} />\n </div>\n\n <div>\n <h6>Available Layouts</h6>\n {layouts.map((layout) => (\n <LayoutItem\n key={layout.id}\n layout={layout}\n onLayoutItemClick={onLayoutItemClick}\n setDefaultLayout={setDefaultLayout}\n />\n ))}\n </div>\n </>\n );\n};\n\nexport default LayoutSettings;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport PropTypes from 'prop-types';\n\n// https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\nexport function getScrollbarWidth() {\n var scrollDiv = document.createElement('div');\n // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? \"\".concat(padding, \"px\") : null;\n}\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\nexport function getOriginalBodyPadding() {\n var style = window.getComputedStyle(document.body, null);\n return parseInt(style && style.getPropertyValue('padding-right') || 0, 10);\n}\nexport function conditionallyUpdateScrollbar() {\n var scrollbarWidth = getScrollbarWidth();\n // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n var fixedContent = document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')[0];\n var bodyPadding = fixedContent ? parseInt(fixedContent.style.paddingRight || 0, 10) : 0;\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\nvar globalCssModule;\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\nexport function mapToCssModules() {\n var className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var cssModule = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : globalCssModule;\n if (!cssModule) return className;\n return className.split(' ').map(function (c) {\n return cssModule[c] || c;\n }).join(' ');\n}\n\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\nexport function omit(obj, omitKeys) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\nexport function pick(obj, keys) {\n var pickKeys = Array.isArray(keys) ? keys : [keys];\n var length = pickKeys.length;\n var key;\n var result = {};\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n return result;\n}\nvar warned = {};\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n\n warned[message] = true;\n }\n}\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\"\\\"\".concat(propName, \"\\\" property of \\\"\").concat(componentName, \"\\\" has been deprecated.\\n\").concat(explanation));\n }\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n return propType.apply(void 0, [props, propName, componentName].concat(rest));\n };\n}\n\n// Shim Element if needed (e.g. in Node environment)\nvar Element = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' && window.Element || function () {};\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error('Invalid prop `' + propName + '` supplied to `' + componentName + '`. Expected prop to be an instance of Element. Validation failed.');\n }\n}\nexport var targetPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, DOMElement, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var tagPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n}), PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n})]))]);\n\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\nexport var TransitionTimeouts = {\n Fade: 150,\n // $transition-fade\n Collapse: 350,\n // $transition-collapse\n Modal: 300,\n // $modal-transition\n Carousel: 600,\n // $carousel-transition\n Offcanvas: 300 // $offcanvas-transition\n};\n\n// Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\nexport var TransitionPropTypeKeys = ['in', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'timeout', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'];\nexport var TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited'\n};\nexport var keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80\n};\nexport var PopperPlacements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\nexport var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport function isReactRefObj(target) {\n if (target && _typeof(target) === 'object') {\n return 'current' in target;\n }\n return false;\n}\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\nexport function isObject(value) {\n var type = _typeof(value);\n return value != null && (type === 'object' || type === 'function');\n}\nexport function toNumber(value) {\n var type = _typeof(value);\n var NAN = 0 / 0;\n if (type === 'number') {\n return value;\n }\n if (type === 'symbol' || type === 'object' && getTag(value) === '[object Symbol]') {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? \"\".concat(other) : other;\n }\n if (type !== 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(/^\\s+|\\s+$/g, '');\n var isBinary = /^0b[01]+$/i.test(value);\n return isBinary || /^0o[0-7]+$/i.test(value) ? parseInt(value.slice(2), isBinary ? 2 : 8) : /^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value;\n}\nexport function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n var tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' || tag === '[object GeneratorFunction]' || tag === '[object Proxy]';\n}\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n if (isFunction(target)) {\n return target();\n }\n if (typeof target === 'string' && canUseDOM) {\n var selection = document.querySelectorAll(target);\n if (!selection.length) {\n selection = document.querySelectorAll(\"#\".concat(target));\n }\n if (!selection.length) {\n throw new Error(\"The target '\".concat(target, \"' could not be identified in the dom, tip: check spelling\"));\n }\n return selection;\n }\n return target;\n}\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n return Array.isArray(els) || canUseDOM && typeof els.length === 'number';\n}\nexport function getTarget(target, allElements) {\n var els = findDOMElements(target);\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n if (els === null) {\n return [];\n }\n return [els];\n }\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n return els;\n}\nexport var defaultToggleEvents = ['touchstart', 'click'];\nexport function addMultipleEventListeners(_els, handler, _events, useCapture) {\n var els = _els;\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n var events = _events;\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n if (!isArrayOrNodeList(els) || typeof handler !== 'function' || !Array.isArray(events)) {\n throw new Error(\"\\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\\n The second must be a function.\\n The third is a string or an array of strings that represents DOM events\\n \");\n }\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\nexport var focusableElements = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'object', 'embed', '[tabindex]:not(.modal):not(.offcanvas)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'];","var _excluded = [\"className\", \"cssModule\", \"variant\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\nvar propTypes = {\n /** Disable the button if needed */\n active: PropTypes.bool,\n /** Aria label */\n 'aria-label': PropTypes.string,\n /** Function to be triggered on click */\n onClick: PropTypes.func,\n /** Change the variant to white */\n variant: PropTypes.oneOf(['white']),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n};\nvar defaultProps = {\n 'aria-label': 'close'\n};\nfunction CloseButton(props) {\n var className = props.className,\n cssModule = props.cssModule,\n variant = props.variant,\n innerRef = props.innerRef,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'btn-close', variant && \"btn-close-\".concat(variant)));\n return /*#__PURE__*/React.createElement(\"button\", _extends({\n ref: innerRef,\n type: \"button\",\n className: classes\n }, attributes));\n}\nCloseButton.propTypes = propTypes;\nCloseButton.defaultProps = defaultProps;\nexport default CloseButton;","var _excluded = [\"active\", \"aria-label\", \"block\", \"className\", \"close\", \"cssModule\", \"color\", \"outline\", \"size\", \"tag\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport CloseButton from './CloseButton';\nvar propTypes = {\n /** Manually set the visual state of the button to active */\n active: PropTypes.bool,\n /** Aria label */\n 'aria-label': PropTypes.string,\n block: PropTypes.bool,\n /** Pass children so this component can wrap them */\n children: PropTypes.node,\n /** Add custom class */\n className: PropTypes.string,\n /** Change existing className with a new className */\n cssModule: PropTypes.object,\n /** Use the button as a close button */\n close: PropTypes.bool,\n /** Change color of Button to one of the available colors */\n color: PropTypes.string,\n /** Disables the button */\n disabled: PropTypes.bool,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n /** Function to be triggered on click */\n onClick: PropTypes.func,\n /** Adds outline to the button */\n outline: PropTypes.bool,\n /** Make the button bigger or smaller */\n size: PropTypes.string,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nvar defaultProps = {\n color: 'secondary',\n tag: 'button'\n};\nfunction Button(props) {\n var onClick = useCallback(function (e) {\n if (props.disabled) {\n e.preventDefault();\n return;\n }\n if (props.onClick) {\n return props.onClick(e);\n }\n }, [props.onClick, props.disabled]);\n var active = props.active,\n ariaLabel = props['aria-label'],\n block = props.block,\n className = props.className,\n close = props.close,\n cssModule = props.cssModule,\n color = props.color,\n outline = props.outline,\n size = props.size,\n Tag = props.tag,\n innerRef = props.innerRef,\n attributes = _objectWithoutProperties(props, _excluded);\n if (close) {\n return /*#__PURE__*/React.createElement(CloseButton, attributes);\n }\n var btnOutlineColor = \"btn\".concat(outline ? '-outline' : '', \"-\").concat(color);\n var classes = mapToCssModules(classNames(className, 'btn', btnOutlineColor, size ? \"btn-\".concat(size) : false, block ? 'd-block w-100' : false, {\n active: active,\n disabled: props.disabled\n }), cssModule);\n if (attributes.href && Tag === 'button') {\n Tag = 'a';\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n type: Tag === 'button' && attributes.onClick ? 'button' : undefined\n }, attributes, {\n className: classes,\n ref: innerRef,\n onClick: onClick,\n \"aria-label\": ariaLabel\n }));\n}\nButton.propTypes = propTypes;\nButton.defaultProps = defaultProps;\nexport default Button;","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default {\n disabled: false\n};","import PropTypes from 'prop-types';\nexport var timeoutsShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n enter: PropTypes.number,\n exit: PropTypes.number,\n appear: PropTypes.number\n}).isRequired]) : null;\nexport var classNamesShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string,\n active: PropTypes.string\n}), PropTypes.shape({\n enter: PropTypes.string,\n enterDone: PropTypes.string,\n enterActive: PropTypes.string,\n exit: PropTypes.string,\n exitDone: PropTypes.string,\n exitActive: PropTypes.string\n})]) : null;","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"tag\", \"horizontal\", \"isOpen\", \"className\", \"navbar\", \"cssModule\", \"children\", \"innerRef\"];\nvar _transitionStatusToCl;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, omit, pick, TransitionTimeouts, TransitionPropTypeKeys, TransitionStatuses, tagPropType } from './utils';\nvar propTypes = _objectSpread(_objectSpread({}, Transition.propTypes), {}, {\n /** Make content animation appear horizontally */\n horizontal: PropTypes.bool,\n /** Set if Collapse is open or closed */\n isOpen: PropTypes.bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n /** Set a custom element for this component */\n tag: tagPropType,\n /** Add custom class */\n className: PropTypes.node,\n navbar: PropTypes.bool,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n innerRef: PropTypes.shape({\n current: PropTypes.object\n })\n});\nvar defaultProps = _objectSpread(_objectSpread({}, Transition.defaultProps), {}, {\n horizontal: false,\n isOpen: false,\n appear: false,\n enter: true,\n exit: true,\n tag: 'div',\n timeout: TransitionTimeouts.Collapse\n});\nvar transitionStatusToClassHash = (_transitionStatusToCl = {}, _defineProperty(_transitionStatusToCl, TransitionStatuses.ENTERING, 'collapsing'), _defineProperty(_transitionStatusToCl, TransitionStatuses.ENTERED, 'collapse show'), _defineProperty(_transitionStatusToCl, TransitionStatuses.EXITING, 'collapsing'), _defineProperty(_transitionStatusToCl, TransitionStatuses.EXITED, 'collapse'), _transitionStatusToCl);\nfunction getTransitionClass(status) {\n return transitionStatusToClassHash[status] || 'collapse';\n}\nvar Collapse = /*#__PURE__*/function (_Component) {\n _inherits(Collapse, _Component);\n var _super = _createSuper(Collapse);\n function Collapse(props) {\n var _this;\n _classCallCheck(this, Collapse);\n _this = _super.call(this, props);\n _this.state = {\n dimension: null\n };\n _this.nodeRef = props.innerRef || /*#__PURE__*/React.createRef();\n ['onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'].forEach(function (name) {\n _this[name] = _this[name].bind(_assertThisInitialized(_this));\n });\n return _this;\n }\n _createClass(Collapse, [{\n key: \"onEntering\",\n value: function onEntering(_, isAppearing) {\n var node = this.getNode();\n this.setState({\n dimension: this.getDimension(node)\n });\n this.props.onEntering(node, isAppearing);\n }\n }, {\n key: \"onEntered\",\n value: function onEntered(_, isAppearing) {\n var node = this.getNode();\n this.setState({\n dimension: null\n });\n this.props.onEntered(node, isAppearing);\n }\n }, {\n key: \"onExit\",\n value: function onExit() {\n var node = this.getNode();\n this.setState({\n dimension: this.getDimension(node)\n });\n this.props.onExit(node);\n }\n }, {\n key: \"onExiting\",\n value: function onExiting() {\n var node = this.getNode();\n // getting this variable triggers a reflow\n var _unused = this.getDimension(node); // eslint-disable-line no-unused-vars\n this.setState({\n dimension: 0\n });\n this.props.onExiting(node);\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n var node = this.getNode();\n this.setState({\n dimension: null\n });\n this.props.onExited(node);\n }\n }, {\n key: \"getNode\",\n value: function getNode() {\n return this.nodeRef.current;\n }\n }, {\n key: \"getDimension\",\n value: function getDimension(node) {\n return this.props.horizontal ? node.scrollWidth : node.scrollHeight;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n Tag = _this$props.tag,\n horizontal = _this$props.horizontal,\n isOpen = _this$props.isOpen,\n className = _this$props.className,\n navbar = _this$props.navbar,\n cssModule = _this$props.cssModule,\n children = _this$props.children,\n innerRef = _this$props.innerRef,\n otherProps = _objectWithoutProperties(_this$props, _excluded);\n var dimension = this.state.dimension;\n var transitionProps = pick(otherProps, TransitionPropTypeKeys);\n var childProps = omit(otherProps, TransitionPropTypeKeys);\n return /*#__PURE__*/React.createElement(Transition, _extends({}, transitionProps, {\n \"in\": isOpen,\n nodeRef: this.nodeRef,\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }), function (status) {\n var collapseClass = getTransitionClass(status);\n var classes = mapToCssModules(classNames(className, horizontal && 'collapse-horizontal', collapseClass, navbar && 'navbar-collapse'), cssModule);\n var style = dimension === null ? null : _defineProperty({}, horizontal ? 'width' : 'height', dimension);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, childProps, {\n style: _objectSpread(_objectSpread({}, childProps.style), style),\n className: classes,\n ref: _this2.nodeRef\n }), children);\n });\n }\n }]);\n return Collapse;\n}(Component);\nCollapse.propTypes = propTypes;\nCollapse.defaultProps = defaultProps;\nexport default Collapse;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"className\", \"cssModule\", \"tag\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'form'\n};\nvar Form = /*#__PURE__*/function (_Component) {\n _inherits(Form, _Component);\n var _super = _createSuper(Form);\n function Form(props) {\n var _this;\n _classCallCheck(this, Form);\n _this = _super.call(this, props);\n _this.getRef = _this.getRef.bind(_assertThisInitialized(_this));\n _this.submit = _this.submit.bind(_assertThisInitialized(_this));\n return _this;\n }\n _createClass(Form, [{\n key: \"getRef\",\n value: function getRef(ref) {\n if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n this.ref = ref;\n }\n }, {\n key: \"submit\",\n value: function submit() {\n if (this.ref) {\n this.ref.submit();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n Tag = _this$props.tag,\n innerRef = _this$props.innerRef,\n attributes = _objectWithoutProperties(_this$props, _excluded);\n var classes = mapToCssModules(className, cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n ref: innerRef,\n className: classes\n }));\n }\n }]);\n return Form;\n}(Component);\nForm.propTypes = propTypes;\nForm.defaultProps = defaultProps;\nexport default Form;","var _excluded = [\"className\", \"cssModule\", \"row\", \"disabled\", \"check\", \"inline\", \"floating\", \"tag\", \"switch\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n row: PropTypes.bool,\n check: PropTypes.bool,\n \"switch\": PropTypes.bool,\n inline: PropTypes.bool,\n floating: PropTypes.bool,\n disabled: PropTypes.bool,\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\nfunction FormGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n row = props.row,\n disabled = props.disabled,\n check = props.check,\n inline = props.inline,\n floating = props.floating,\n Tag = props.tag,\n switchProp = props[\"switch\"],\n attributes = _objectWithoutProperties(props, _excluded);\n var formCheck = check || switchProp;\n var classes = mapToCssModules(classNames(className, row ? 'row' : false, formCheck ? 'form-check' : 'mb-3', switchProp ? 'form-switch' : false, formCheck && inline ? 'form-check-inline' : false, formCheck && disabled ? 'disabled' : false, floating && 'form-floating'), cssModule);\n if (Tag === 'fieldset') {\n attributes.disabled = disabled;\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nFormGroup.propTypes = propTypes;\nFormGroup.defaultProps = defaultProps;\nexport default FormGroup;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"className\", \"cssModule\", \"type\", \"bsSize\", \"valid\", \"invalid\", \"tag\", \"addon\", \"plaintext\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n/* eslint react/prefer-stateless-function: 0 */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, warnOnce, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n type: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n bsSize: PropTypes.string,\n valid: PropTypes.bool,\n invalid: PropTypes.bool,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n plaintext: PropTypes.bool,\n addon: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n type: 'text'\n};\nvar Input = /*#__PURE__*/function (_React$Component) {\n _inherits(Input, _React$Component);\n var _super = _createSuper(Input);\n function Input(props) {\n var _this;\n _classCallCheck(this, Input);\n _this = _super.call(this, props);\n _this.getRef = _this.getRef.bind(_assertThisInitialized(_this));\n _this.focus = _this.focus.bind(_assertThisInitialized(_this));\n return _this;\n }\n _createClass(Input, [{\n key: \"getRef\",\n value: function getRef(ref) {\n if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n this.ref = ref;\n }\n }, {\n key: \"focus\",\n value: function focus() {\n if (this.ref) {\n this.ref.focus();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n type = _this$props.type,\n bsSize = _this$props.bsSize,\n valid = _this$props.valid,\n invalid = _this$props.invalid,\n tag = _this$props.tag,\n addon = _this$props.addon,\n plaintext = _this$props.plaintext,\n innerRef = _this$props.innerRef,\n attributes = _objectWithoutProperties(_this$props, _excluded);\n var checkInput = ['switch', 'radio', 'checkbox'].indexOf(type) > -1;\n var isNotaNumber = /\\D/g;\n var textareaInput = type === 'textarea';\n var selectInput = type === 'select';\n var rangeInput = type === 'range';\n var Tag = tag || (selectInput || textareaInput ? type : 'input');\n var formControlClass = 'form-control';\n if (plaintext) {\n formControlClass = \"\".concat(formControlClass, \"-plaintext\");\n Tag = tag || 'input';\n } else if (rangeInput) {\n formControlClass = 'form-range';\n } else if (selectInput) {\n formControlClass = 'form-select';\n } else if (checkInput) {\n if (addon) {\n formControlClass = null;\n } else {\n formControlClass = 'form-check-input';\n }\n }\n if (attributes.size && isNotaNumber.test(attributes.size)) {\n warnOnce('Please use the prop \"bsSize\" instead of the \"size\" to bootstrap\\'s input sizing.');\n bsSize = attributes.size;\n delete attributes.size;\n }\n var classes = mapToCssModules(classNames(className, invalid && 'is-invalid', valid && 'is-valid', bsSize ? selectInput ? \"form-select-\".concat(bsSize) : \"form-control-\".concat(bsSize) : false, formControlClass), cssModule);\n if (Tag === 'input' || tag && typeof tag === 'function') {\n attributes.type = type === 'switch' ? 'checkbox' : type;\n }\n if (attributes.children && !(plaintext || type === 'select' || typeof Tag !== 'string' || Tag === 'select')) {\n warnOnce(\"Input with a type of \\\"\".concat(type, \"\\\" cannot have children. Please use \\\"value\\\"/\\\"defaultValue\\\" instead.\"));\n delete attributes.children;\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n ref: innerRef,\n className: classes,\n \"aria-invalid\": invalid\n }));\n }\n }]);\n return Input;\n}(React.Component);\nInput.propTypes = propTypes;\nInput.defaultProps = defaultProps;\nexport default Input;","import { DEFAULT_GLOBAL_LAYOUT } from '../../constants/defaults';\nimport { LoadSystemDefaultLayoutConfig } from './layout-types';\n\nexport const tryLoadSystemDefaultLayout = async (config: LoadSystemDefaultLayoutConfig): Promise<void> => {\n const { defaultLayout, glue, setDefaultLayout, restoreLayout } = config;\n\n if (defaultLayout || !glue) {\n return;\n }\n\n const systemDefaultLayout = await glue.layouts.get(DEFAULT_GLOBAL_LAYOUT, 'Global');\n\n if (!systemDefaultLayout) {\n return;\n }\n\n await restoreLayout(DEFAULT_GLOBAL_LAYOUT);\n\n setDefaultLayout({ name: DEFAULT_GLOBAL_LAYOUT });\n};\n","import type { Notification } from './layout-types';\n\nexport const NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING: Record<\n Notification['type'],\n string\n> = {\n success: 'check',\n};\n","import classNames from 'classnames';\nimport Icon from '../icon/icon';\nimport type { Notification } from './layout-types';\nimport { NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING } from './constants';\n\ninterface LayoutNotificationProps extends Notification {\n className?: string;\n}\n\nconst LayoutNotification = ({\n className,\n message,\n type,\n}: LayoutNotificationProps) => (\n <div\n className={classNames(\n 'layout-notification',\n `layout-notification-${type}`,\n className\n )}\n >\n <Icon size={12} name={NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING[type]} />\n <span>{message}</span>\n </div>\n);\n\nexport default LayoutNotification;\n","import { Collapse } from 'reactstrap';\nimport { GlueContext } from '@glue42/react-hooks';\nimport { useContext, useRef, useEffect, useState, useCallback } from 'react';\nimport classNames from 'classnames';\n\nimport LayoutSettings from './layout-settings';\nimport { useStorage } from '../../hooks/useStorage';\nimport { DEFAULT_LAYOUT_LOCAL_STORAGE_KEY, SELECTED_LAYOUT_SESSION_STORAGE_KEY } from '../../constants/storageKeys';\nimport Icon from '../icon/icon';\nimport { tryLoadSystemDefaultLayout } from './layout-startup';\nimport type { Action, ActionKind, Layout, Notification, LayoutStorageValue } from './layout-types';\nimport LayoutActions from './layout-actions';\nimport LayoutNotification from './layout-notification';\nimport { layoutStorageValueDecoder } from '../../decoders/layouts';\nimport { onClickA11y } from '../../helpers/a11y';\n\nexport const LayoutSettingsContainer = () => {\n const [show, setShow] = useState(false);\n const [layouts, setLayouts] = useState<Layout[]>([]);\n const [notification, setNotification] = useState<Notification | null>(null);\n\n const [defaultLayout, setDefaultLayout] = useStorage<LayoutStorageValue>(\n 'localStorage',\n DEFAULT_LAYOUT_LOCAL_STORAGE_KEY,\n layoutStorageValueDecoder\n );\n const [selectedLayout, setSelectedLayout] = useStorage<LayoutStorageValue>(\n 'sessionStorage',\n SELECTED_LAYOUT_SESSION_STORAGE_KEY,\n layoutStorageValueDecoder\n );\n\n const glue = useContext(GlueContext);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const footerRef = useRef<HTMLElement | null>(null);\n\n const [inputValue, setInputValue] = useState(selectedLayout?.name || '');\n\n const restoreLayout = useCallback(\n async (name: string) => {\n if (!glue) {\n return;\n }\n\n try {\n await glue.layouts.restore({ name, type: 'Global' });\n setSelectedLayout({ name });\n } catch (error) {\n console.error(error);\n }\n },\n [glue, setSelectedLayout]\n );\n\n useEffect(() => {\n if (!glue) {\n return;\n }\n\n let isUnsubscribed = false;\n\n const unsubscribeOnAdd = glue.layouts.onAdded((addedLayout) => {\n if (addedLayout.type !== 'Global' || isUnsubscribed) return;\n const { name, type } = addedLayout;\n\n setLayouts((current) => [...current, { name, id: name, type }]);\n });\n\n const unsubscribeOnRemoved = glue.layouts.onRemoved((removedLayout) => {\n if (removedLayout.type !== 'Global' || isUnsubscribed) return;\n setLayouts((current) => current.filter((layout) => layout.name !== removedLayout.name));\n });\n\n return () => {\n isUnsubscribed = true;\n\n unsubscribeOnAdd();\n unsubscribeOnRemoved();\n };\n }, [glue]);\n\n useEffect(() => {\n if (selectedLayout || !defaultLayout) {\n return;\n }\n\n restoreLayout(defaultLayout.name);\n }, [selectedLayout, defaultLayout, restoreLayout]);\n\n useEffect(() => {\n tryLoadSystemDefaultLayout({\n glue,\n defaultLayout,\n restoreLayout,\n setDefaultLayout,\n }).catch(console.warn);\n }, [glue, defaultLayout, restoreLayout, setDefaultLayout]);\n\n useEffect(() => {\n if (!notification) {\n return;\n }\n\n const timerId = setTimeout(() => setNotification(null), 3000);\n\n return () => clearTimeout(timerId);\n }, [notification]);\n\n useEffect(() => {\n if (!show) {\n return;\n }\n\n const handleClick = (e: MouseEvent) => {\n if (footerRef.current?.contains(e.target as Node)) {\n return;\n }\n\n setShow(false);\n };\n\n const handleBlur = () => {\n if (document.activeElement?.nodeName !== 'IFRAME') {\n return;\n }\n\n setShow(false);\n };\n\n document.addEventListener('click', handleClick, true);\n window.addEventListener('blur', handleBlur, true);\n\n return () => {\n document.removeEventListener('click', handleClick, true);\n window.removeEventListener('blur', handleBlur, true);\n };\n }, [show]);\n\n const createActionClickHandler = (cb: () => Promise<unknown> | void) => {\n return async (e: React.MouseEvent) => {\n e.stopPropagation();\n\n try {\n await cb();\n } catch (error) {\n console.error('Failed to handle layout action: ', error);\n }\n };\n };\n\n const actions: Record<ActionKind, Action> = {\n save: {\n label: 'Save',\n kind: 'save',\n onClick: createActionClickHandler(async () => {\n await glue.layouts.save({ name: inputValue, type: 'Global' });\n\n setSelectedLayout({ name: inputValue });\n setNotification({ message: 'Saved', type: 'success' });\n }),\n },\n restore: {\n label: 'Restore',\n kind: 'restore',\n disabled: !layouts.length,\n onClick: createActionClickHandler(() => {\n if (!selectedLayout) {\n return;\n }\n\n restoreLayout(selectedLayout.name);\n }),\n },\n };\n\n return (\n <footer className=\"footer\" ref={footerRef}>\n <div\n aria-label=\"Layout settings\"\n aria-expanded={show}\n role=\"button\"\n {...onClickA11y(() => {\n setInputValue(selectedLayout?.name || '');\n setShow((v) => !v);\n })}\n className=\"current-layout flex ai-center\"\n >\n <span className={classNames('name', { hidden: show })}>{selectedLayout?.name || 'No selected layout'}</span>\n <div className=\"flex ai-center\">\n {!show && <LayoutActions actions={[actions.save, actions.restore]} />}\n <Icon\n className={classNames('ms-8', 'settings-toggle-button', {\n 'settings-toggle-button-rotated': show,\n })}\n name=\"chevron-up\"\n />\n </div>\n </div>\n\n <Collapse isOpen={show}>\n <div ref={containerRef} className=\"layouts-container\">\n <LayoutSettings\n {...{\n layouts: layouts\n .sort((a, b) => a.name.localeCompare(b.name))\n .map((layout) => ({\n ...layout,\n isSelected: layout.name === selectedLayout?.name,\n isDefault: layout.name === defaultLayout?.name,\n })),\n inputValue,\n onInputChange: setInputValue,\n selectedLayout,\n onLayoutItemClick: ({ name }: Layout) => restoreLayout(name),\n actions: [actions.save, actions.restore],\n }}\n setDefaultLayout={setDefaultLayout}\n />\n </div>\n </Collapse>\n\n {notification ? (\n <LayoutNotification\n className={classNames({ 'ms-8 me-8': show })}\n message={notification.message}\n type={notification.type}\n />\n ) : (\n <div className=\"powered-by\">Powered by io.Connect Browser</div>\n )}\n </footer>\n );\n};\n\nexport default LayoutSettingsContainer;\n","import Icon from '../../icon/icon';\nimport { forwardRef, useContext, useEffect } from 'react';\nimport { Glue42Web } from '@glue42/web';\nimport { GlueContext } from '@glue42/react-hooks';\n\nexport interface SearchBarProps {\n onSearch: (e: React.ChangeEvent<HTMLInputElement>) => void;\n searchTerm: string;\n onClear: () => void;\n}\n\nexport const SearchBar = forwardRef<HTMLInputElement, SearchBarProps>((props, ref) => {\n const { onSearch, searchTerm, onClear } = props;\n\n const glue = useContext(GlueContext) as Glue42Web.API;\n\n useEffect(() => {\n if (!glue || !glue.search) {\n return;\n }\n\n glue.search.setDebounceMS(450);\n }, [glue]);\n\n return (\n <div className=\"search\" data-testid=\"search-bar\">\n <input type=\"search\" ref={ref} className=\"g42-input\" placeholder=\"Find anything\" value={searchTerm} onChange={onSearch} />\n <Icon\n name=\"delete-left\"\n className={searchTerm.length !== 0 ? 'active' : ''}\n onClick={onClear}\n data-testid=\"delete-icon\"\n />\n </div>\n );\n});\n\nexport default SearchBar;\n","import { Glue42Search } from '@glue42/search-api';\nimport { ITEM_TYPES } from '../../../constants/itemTypes';\nimport type {\n SearchResultsSectionItemType,\n SearchResultsSectionType,\n} from './search-results-section.types';\nimport { SearchResultsContextMenuAction } from '../../context-menu/context-menu-types';\nimport {\n APPLICATION_ACTIONS,\n WORKSPACE_ACTIONS,\n} from '../../../constants/contextMenuActions';\n\nexport const getSearchResultsSectionConfigs = (\n results: Glue42Search.QueryResult[]\n): SearchResultsSectionType[] => {\n return results.reduce((searchResultsSections, result) => {\n const { type } = result;\n\n const id = result.id || result.displayName;\n\n if (!id || type.name === ITEM_TYPES.LAYOUT) {\n return searchResultsSections;\n }\n\n let contextMenuActions: SearchResultsContextMenuAction[] = [];\n\n if (type.name === ITEM_TYPES.APPLICATION) {\n contextMenuActions = APPLICATION_ACTIONS;\n } else if (type.name === ITEM_TYPES.WORKSPACE) {\n contextMenuActions = WORKSPACE_ACTIONS;\n } else if (result.secondaryActions) {\n contextMenuActions = result.secondaryActions.map(({ name, method, params, target }) => {\n return {\n name,\n interopParams: { method, params, target },\n };\n });\n }\n\n const item: SearchResultsSectionItemType = {\n id,\n title: result.displayName || id,\n description: result.description,\n type: type.name,\n iconSrc: result.iconURL,\n mainAction: result.action,\n contextMenuActions,\n };\n\n const sectionIndex = searchResultsSections.findIndex(({ title }) =>\n type.displayName ? title === type.displayName : title === type.name\n );\n const section = searchResultsSections[sectionIndex];\n\n if (section) {\n return [\n ...searchResultsSections.slice(0, sectionIndex),\n { ...section, items: [...section.items, item] },\n ...searchResultsSections.slice(sectionIndex + 1),\n ];\n }\n\n return [\n ...searchResultsSections,\n {\n id: type.name,\n title: type.displayName || type.name,\n items: [item],\n },\n ];\n }, [] as SearchResultsSectionType[]);\n};\n","import BaseSection from '../../base-section/base-section';\nimport { getSearchResultsSectionConfigs } from './search-results-section.helpers';\nimport { ITEM_TYPES } from '../../../constants/itemTypes';\nimport { MODIFIER_KEYS } from '../../../constants/modifierKeys';\nimport type { SearchResultsSectionItemType } from './search-results-section.types';\nimport {\n useInvokeInteropMethod,\n useRestoreWorkspace,\n useSearch,\n useStartApplication,\n useExecuteWorkspaceAction,\n useExecuteApplicationAction,\n} from '../../../hooks';\nimport { useLaunchpadAPI } from '../../launchpad/launchpad.context';\nimport { ActivationEvent } from 'packages/home-ui-react/src/helpers/a11y';\n\nexport interface SearchResultsProps {\n searchTerm: string;\n}\n\nexport function SearchResults(props: SearchResultsProps) {\n const { resultsToRender, isLoading } = useSearch(props.searchTerm);\n const launchpadAPI = useLaunchpadAPI();\n const invokeInteropMethod = useInvokeInteropMethod();\n const restoreWorkspace = useRestoreWorkspace();\n const startApplication = useStartApplication();\n const configs = getSearchResultsSectionConfigs(resultsToRender);\n const executeApplicationAction = useExecuteApplicationAction();\n const executeWorkspaceAction = useExecuteWorkspaceAction();\n\n const executeSelectedAction = (item: SearchResultsSectionItemType, selectedContextMenuActionName: string) => {\n const execute =\n item.type === ITEM_TYPES.APPLICATION\n ? executeApplicationAction\n : item.type === ITEM_TYPES.WORKSPACE\n ? executeWorkspaceAction\n : null;\n\n if (!execute) {\n return;\n }\n\n execute(item, selectedContextMenuActionName).catch((error) => {\n console.error('Failed to execute action', { error });\n });\n };\n\n const handleItemClick = async (\n _: ActivationEvent,\n params: {\n item: SearchResultsSectionItemType;\n modifier: string | null;\n selectedContextMenuActionName?: string;\n }\n ) => {\n const { item, modifier, selectedContextMenuActionName } = params;\n const { type, id, mainAction } = item;\n\n const contextMenuAction = selectedContextMenuActionName\n ? item.contextMenuActions?.find((action) => action.name === selectedContextMenuActionName)\n : null;\n\n if (contextMenuAction?.interopParams) {\n invokeInteropMethod(contextMenuAction.interopParams);\n } else if (selectedContextMenuActionName) {\n executeSelectedAction(item, selectedContextMenuActionName);\n } else if (mainAction) {\n invokeInteropMethod(mainAction);\n } else if (type === ITEM_TYPES.APPLICATION) {\n startApplication(id, modifier).catch((error) => {\n console.error('Failed to start application', { error });\n });\n } else if (type === ITEM_TYPES.WORKSPACE) {\n restoreWorkspace(id, modifier).catch((error) => {\n console.error('Failed to restore workspace', { error });\n });\n } else {\n // TODO: decide how to proceed if none of the above conditions are met\n }\n\n if (modifier === MODIFIER_KEYS.SHIFT) {\n return;\n }\n\n launchpadAPI.close();\n };\n\n if (isLoading) {\n return <p style={{ padding: '12px 24px' }}>Loading...</p>;\n } else if (resultsToRender.length === 0) {\n return <p style={{ padding: '12px 24px' }}>No results found.</p>;\n }\n\n return (\n <ul>\n {configs.map((config, idx) => (\n <BaseSection key={config.id || idx} config={config} isFavoritismEnabled={false} onItemClick={handleItemClick} />\n ))}\n </ul>\n );\n}\n\nexport default SearchResults;\n","export const formatDate = (timestamp: number) => {\r\n const date = new Date(timestamp);\r\n const hours = date.getHours();\r\n const minutes = date.getMinutes();\r\n const seconds = date.getSeconds();\r\n const amPm = hours >= 12 ? 'PM' : 'AM';\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n const year = date.getFullYear();\r\n\r\n return `${hours % 12}:${minutes}:${seconds} ${amPm} ${month}/${day}/${year}`;\r\n};\r\n","import { Glue42Web } from '@glue42/web';\r\nimport ButtonGroup from '../button-group/button-group';\r\nimport Icon from '../icon/icon';\r\nimport styles from './notifications-panel.module.css';\r\nimport { formatDate } from '../../helpers/date';\r\n\r\nexport const severityColors = {\r\n Low: '#7AC70C',\r\n Medium: '#E0A900',\r\n High: '#E0474C',\r\n Critical: '#B8001E',\r\n None: '#616161',\r\n};\r\n\r\nexport interface Notification extends Glue42Web.Notifications.NotificationData {\r\n status?: string;\r\n onClick: (notification: Glue42Web.Notifications.NotificationData) => void;\r\n onClose: (id: string) => void;\r\n onActionClick: (\r\n id: string,\r\n action: Glue42Web.Notifications.NotificationAction\r\n ) => void;\r\n}\r\n\r\nexport function NotificationToast(props: Notification) {\r\n const {\r\n severity = 'None',\r\n onClick,\r\n onClose,\r\n onActionClick,\r\n actions,\r\n status,\r\n id,\r\n body,\r\n timestamp,\r\n title,\r\n } = props;\r\n\r\n return (\r\n <div\r\n className={styles['notifications-list-item']}\r\n style={{ borderLeftColor: severityColors[severity] }}\r\n key={id}\r\n onClick={() => onClick(props)}\r\n >\r\n <div>\r\n <div>{status}</div>\r\n <Icon\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n onClose(id);\r\n }}\r\n className=\"g42-btn\"\r\n size={16}\r\n name=\"close\"\r\n />\r\n </div>\r\n\r\n <h4>{title}</h4>\r\n\r\n {body && <p>{body}</p>}\r\n\r\n {timestamp && <p>{formatDate(timestamp)}</p>}\r\n\r\n {actions && (\r\n <ButtonGroup\r\n items={actions.map((action) => ({\r\n children: action.title,\r\n onClick: async (e) => {\r\n e.stopPropagation();\r\n await onActionClick(id, action);\r\n },\r\n }))}\r\n />\r\n )}\r\n </div>\r\n );\r\n}\r\n\r\nexport default NotificationToast;\r\n","import { useRef, useState } from 'react';\nimport { Glue42Web } from '@glue42/web';\n\nexport type SortType = 'timestamp' | 'application' | 'severity';\n\ntype SortDirection = -1 | 0 | 1;\n\ntype ActiveSort = {\n type: SortType;\n sortDirection: SortDirection;\n};\n\nconst SEVERITY_ORDER: readonly Glue42Web.Notifications.NotificationData['severity'][] =\n ['None', 'Low', 'Medium', 'High', 'Critical'];\n\nconst DEFAULT_SORT: ActiveSort = {\n type: 'timestamp',\n sortDirection: -1,\n};\n\nexport const useNotificationsSort = () => {\n const cycleSortDirectionRef = useRef(createSortDirectionCycle());\n\n const [activeSort, setActiveSort] = useState<ActiveSort>(() => {\n cycleSortDirectionRef.current = createSortDirectionCycle(\n DEFAULT_SORT.sortDirection\n );\n\n return {\n type: DEFAULT_SORT.type,\n sortDirection: cycleSortDirectionRef.current(),\n };\n });\n\n const onNotificationsSort = (type: SortType) =>\n setActiveSort({\n type,\n sortDirection: cycleSortDirectionRef.current(),\n });\n\n const sortNotifications = (\n notifications: Glue42Web.Notifications.NotificationData[]\n ) => {\n const { type, sortDirection } = activeSort;\n\n if (type === 'timestamp') {\n return [...notifications].sort((a, b) => {\n if (a.timestamp && b.timestamp) {\n return sortDirection * (a.timestamp - b.timestamp);\n }\n\n if (!a.timestamp && !b.timestamp) return 0;\n\n return sortDirection * ((a.timestamp || 0) - (b.timestamp || 0));\n });\n }\n\n if (type === 'severity') {\n const defaultSeverity = SEVERITY_ORDER[0];\n\n return [...notifications].sort((a, b) => {\n const aSeverity = SEVERITY_ORDER.findIndex(\n (s) => s === (a.severity || defaultSeverity)\n );\n const bSeverity = SEVERITY_ORDER.findIndex(\n (s) => s === (b.severity || defaultSeverity)\n );\n\n return sortDirection * (aSeverity - bSeverity);\n });\n }\n\n return notifications;\n };\n\n return { onNotificationsSort, activeSort, sortNotifications };\n};\n\nfunction createSortDirectionCycle(initial = 1) {\n const all = [-1, 0, 1];\n let i = initial;\n return () => {\n i = (i + 1) % all.length;\n return all[i] as SortDirection;\n };\n}\n","import { useContext, useEffect, useState, useCallback } from 'react';\nimport { GlueContext } from '@glue42/react-hooks';\n\nimport ButtonGroup from '../button-group/button-group';\nimport styles from './notifications-panel.module.css';\nimport NotificationToast from './notification-toast';\n\nimport { Glue42Web } from '@glue42/web';\nimport { useNotificationsSort } from './useNotificationsSort';\n\nexport function NotificationsPanel() {\n const glue = useContext(GlueContext) as Glue42Web.API;\n\n const [notifications, setNotifications] = useState<\n Glue42Web.Notifications.NotificationData[]\n >([]);\n\n const { onNotificationsSort, sortNotifications } = useNotificationsSort();\n\n const onCloseNotificationClick = useCallback(\n async (id: string) => {\n if (!glue) {\n return;\n }\n\n try {\n await glue.notifications.clear(id);\n } catch (error) {\n console.error(error);\n }\n },\n [glue]\n );\n\n useEffect(() => {\n if (!glue) return;\n\n const unsubscribeRaised = glue.notifications.onRaised((glueNotification) =>\n setNotifications((current) => [...current, glueNotification])\n );\n\n const unsubscribeClosed = glue.notifications.onClosed(\n ({ id }: { id: string }) =>\n setNotifications((current) => current.filter((n) => n.id !== id))\n );\n\n (async () => {\n try {\n const glueNotifications = await glue.notifications.list();\n setNotifications(glueNotifications);\n } catch (error) {\n console.error(error);\n }\n })();\n\n return () => {\n unsubscribeRaised();\n unsubscribeClosed();\n };\n }, [glue]);\n\n const onClearAllClick = async () => {\n try {\n await glue.notifications.clearAll();\n } catch (error) {\n console.error(error);\n }\n };\n\n const onNotificationClick = async (\n notification: Glue42Web.Notifications.NotificationData\n ) => {\n try {\n const { clickInterop } = notification;\n\n if (clickInterop) {\n const { method, arguments: args, target } = clickInterop;\n await glue.interop.invoke({ name: method }, args, target);\n } else {\n glue.notifications.click(notification.id);\n }\n\n await onCloseNotificationClick(notification.id);\n } catch (error) {\n console.error(error);\n }\n };\n\n const onActionClick = async (\n id: string,\n action: Glue42Web.Notifications.NotificationAction\n ) => {\n try {\n const { interop } = action;\n\n if (interop) {\n const { method, arguments: args, target } = interop;\n await glue.interop.invoke({ name: method }, args, target);\n } else {\n await glue.notifications.click(id, action.action);\n }\n\n await onCloseNotificationClick(id);\n } catch (error) {\n console.error(error);\n }\n };\n\n const onClearAllOldClick = console.log; // TODO:\n\n return (\n <div className={styles['notification']}>\n <div className={styles['header']}>\n <div className={styles['header-caption']}>\n <div>Notifications ({notifications.length})</div>\n </div>\n <ButtonGroup\n items={[\n {\n children: 'Latest',\n onClick: () => onNotificationsSort('timestamp'),\n },\n {\n children: 'By Priority',\n onClick: () => onNotificationsSort('severity'),\n },\n ]}\n />\n </div>\n\n <div className={styles['notifications-list']}>\n {notifications.length === 0 ? (\n <div className={styles['no-notifications-list-item']}>\n No notifications\n </div>\n ) : (\n sortNotifications(notifications).map((notification) => (\n <NotificationToast\n key={notification.id}\n {...notification}\n onActionClick={onActionClick}\n onClick={onNotificationClick}\n onClose={onCloseNotificationClick}\n />\n ))\n )}\n </div>\n\n <ButtonGroup\n className={styles['footer-buttons']}\n items={[\n { children: 'Clear All', onClick: onClearAllClick },\n { children: 'Clear All Old', onClick: onClearAllOldClick },\n ]}\n />\n </div>\n );\n}\n\nexport default NotificationsPanel;\n","import NiceModal, { useModal } from '@ebay/nice-modal-react';\nimport Modal, { ModalProps } from '../modal/modal';\nimport NotificationsPanel from './notifications-panel';\n\nexport default NiceModal.create((props: ModalProps) => {\n const modal = useModal();\n\n return (\n <Modal\n {...props}\n visible={modal.visible}\n onClose={() => {\n modal.hide();\n }}\n afterClose={() => {\n modal.remove();\n }}\n >\n <NotificationsPanel />\n </Modal>\n );\n});\n","import { ITEM_TYPES } from '../../constants/itemTypes';\nimport type { SectionType } from '../section/section.types';\nimport type { Workspace } from './workspaces-section.types';\nimport { WORKSPACE_ACTIONS } from '../../constants/contextMenuActions';\n\nexport const getWorkspacesSectionConfig = (\n workspaces: Workspace[],\n runningInstances: {\n [appName: string]: string[];\n }\n): SectionType => {\n return {\n id: 'workspaces-section',\n title: 'Workspaces',\n items: workspaces\n .map((workspace) => ({\n ...workspace,\n type: ITEM_TYPES.WORKSPACE,\n isOpen: runningInstances[workspace.title]?.length > 0,\n contextMenuActions: WORKSPACE_ACTIONS,\n }))\n .sort((a, b) => a.title.localeCompare(b.title)),\n };\n};\n","import { getWorkspacesSectionConfig } from './workspaces-section.helpers';\nimport Section from '../section/section';\nimport type { SectionItemType } from '../section/section.types';\nimport {\n useRestoreWorkspace,\n useWorkspaces,\n useWorkspacesInstances,\n useExecuteWorkspaceAction,\n} from '../../hooks';\n\nexport const WorkspacesSection = () => {\n const workspaces = useWorkspaces();\n const runningInstances = useWorkspacesInstances();\n const restoreWorkspace = useRestoreWorkspace();\n const executeWorkspaceAction = useExecuteWorkspaceAction();\n const config = getWorkspacesSectionConfig(workspaces, runningInstances);\n\n const handleItemClick = (params: {\n item: SectionItemType;\n modifier: string | null;\n selectedContextMenuActionName?: string;\n }) => {\n const { item, modifier, selectedContextMenuActionName } = params;\n\n if (!selectedContextMenuActionName) {\n return restoreWorkspace(item.id, modifier).catch((error) => {\n console.error('Failed to restore workspace', { error });\n });\n }\n\n executeWorkspaceAction(item, selectedContextMenuActionName).catch(\n (error) => {\n console.error('Failed to execute workspace action', { error });\n }\n );\n };\n\n return <Section config={config} onItemClick={handleItemClick} />;\n};\n\nexport default WorkspacesSection;\n","import React from 'react';\nimport Icon from '../icon/icon';\nimport ProfileModal from './features/profile-settings/user-profile-modal';\nimport NiceModal from '@ebay/nice-modal-react';\nimport classNames from 'classnames';\nimport '@glue42/product-theme';\nimport './launchpad.scss';\nimport { LayoutSettingsContainer } from '../layout-settings';\nimport { getInitials } from '../../helpers/string';\nimport SearchBar from '../search/search-bar/search-bar';\nimport { useState, useEffect, useRef } from 'react';\nimport SearchResultsSection from '../search/search-results-section/search-results-section';\nimport NotificationsModal from '../notifications-panel/notifications-modal';\nimport { LaunchpadAPIProvider } from './launchpad.context';\nimport { SectionProvider } from '../section/section.context';\nimport ApplicationsSection from '../applications-section/applications-section';\nimport FavoritesSection from '../favorites-section/favorites-section';\nimport WorkspacesSection from '../workspaces-section/workspaces-section';\nimport { isClickKeypress } from '../../helpers/a11y';\n\nNiceModal.register('user-profile', ProfileModal);\nNiceModal.register('notifications', NotificationsModal);\n\nexport interface LaunchpadProps extends React.HTMLProps<HTMLDivElement> {\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n onLogout?: () => void;\n components?: {\n sections?: JSX.Element;\n };\n user?: {\n name?: string;\n };\n}\n\nexport function Launchpad(props: LaunchpadProps) {\n const { open, setOpen, onLogout, className, components, user, ...rest } = props;\n const [searchTerm, setSearchTerm] = useState('');\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (open) {\n searchInputRef.current?.focus();\n return;\n }\n\n setSearchTerm('');\n NiceModal.hide('user-profile');\n NiceModal.hide('notifications');\n }, [open]);\n\n const getModalName = (target: any): string => {\n if (target.dataset.modal) {\n return target.dataset.modal;\n }\n\n if (target.parentElement) {\n return getModalName(target.parentNode);\n }\n\n return '';\n };\n\n const openModal = (event: any) => {\n event.preventDefault();\n const modal = getModalName(event.target);\n\n if (modal) {\n NiceModal.show(\n modal,\n modal === 'user-profile' ? { onLogout, user } : undefined\n );\n }\n };\n\n const handleSearch = (e: React.ChangeEvent<HTMLInputElement>) => {\n setSearchTerm(e.target.value);\n };\n\n const handleClear = () => {\n setSearchTerm('');\n };\n\n const sections = (\n <SectionProvider>\n <ul>\n {components?.sections || (\n <>\n <FavoritesSection />\n <WorkspacesSection />\n <ApplicationsSection />\n </>\n )}\n </ul>\n </SectionProvider>\n );\n\n return (\n <LaunchpadAPIProvider setOpen={setOpen} isOpen={open}>\n <NiceModal.Provider>\n <div className={classNames(className)} onClick={openModal} onKeyDown={(e) => {\n if(isClickKeypress(e)){\n openModal(e);\n }\n }} {...rest}>\n <header>\n <SearchBar\n ref={searchInputRef}\n searchTerm={searchTerm}\n onSearch={handleSearch}\n onClear={handleClear}\n />\n <div className=\"action-area\">\n <Icon size={24} name=\"bell\" data-modal=\"notifications\" tabIndex={0} aria-label=\"Notifications\" role=\"button\" />\n {user ?\n <span className=\"avatar\" data-modal=\"user-profile\" role=\"button\" tabIndex={0} aria-label=\"Profile and Settings\">\n {getInitials(user.name || 'N A')}\n </span> :\n null}\n </div>\n <Icon\n className=\"btn-close g42-btn g42-btn-icon\"\n size={16}\n name=\"close\"\n handleClick={() => setOpen(false)}\n />\n </header>\n <main>\n {searchTerm.trim().length < 3 ? (\n sections\n ) : (\n <SearchResultsSection searchTerm={searchTerm} />\n )}\n </main>\n <LayoutSettingsContainer />\n </div>\n </NiceModal.Provider>\n </LaunchpadAPIProvider>\n );\n}\n\nexport default Launchpad;\n","import { FC } from 'react'\nimport { Button, FormGroup, Input, Form } from 'reactstrap';\n\n\nexport interface LoginFormProps {\n email: string\n password: string\n errorMessage?: string\n canSubmit: boolean\n onSubmit: () => void\n onChange: (element: React.ChangeEvent<HTMLInputElement>) => void\n}\n\nconst LoginForm: FC<LoginFormProps> = ({\n email,\n password,\n canSubmit,\n errorMessage,\n onSubmit,\n onChange\n}) => {\n\n const handleKeyUp = (e: React.KeyboardEvent<HTMLFormElement>) => {\n if (e.key !== 'Enter') {\n return;\n }\n\n e.preventDefault()\n onSubmit()\n }\n\n return (\n <Form onKeyUp={handleKeyUp} onSubmit={onSubmit}>\n <FormGroup>\n <Input\n autoFocus\n autoComplete=\"off\"\n type=\"text\"\n placeholder=\"Email\"\n value={email}\n onChange={onChange}\n className=\"g42-input\"\n />\n </FormGroup>\n <FormGroup>\n <Input\n autoComplete=\"off\"\n type=\"password\"\n placeholder=\"Password\"\n value={password}\n onChange={onChange}\n ></Input>\n </FormGroup>\n\n <div\n className=\"pb-2 login-error-feedback\">\n {errorMessage ?? ''}\n </div>\n\n <Button disabled={!canSubmit} onClick={onSubmit}>\n SIGN IN\n </Button>\n </Form>\n )\n}\n\nexport default LoginForm\n","import { FC } from 'react';\n\nexport interface LoginHeadingProps {\n className?: string;\n text?: string;\n}\n\nexport const LoginHeading: FC<LoginHeadingProps> = ({\n className = 'welcome-text text-center mb-3',\n text = 'Making Your Work Flow',\n}) => {\n return (\n <>\n <h1 className={className}>{text}</h1>\n <p>Integrate apps, simplify user experiences and accelerate digital transformation.</p>\n </>\n );\n};\n","export const LOGO_WIDTH = '256px';\n","import { FC } from \"react\";\nimport config from \"../../../public/assets/glue-logo.json\";\nimport { LOGO_WIDTH } from \"./constants\";\n\nexport interface LogoProps {\n logoSrc?: string;\n width?: string;\n className?: string;\n}\n\nexport const LoginLogo: FC<LogoProps> = ({\n logoSrc = config.loginPageLogo.value,\n width = LOGO_WIDTH,\n className = 'logo',\n}) => {\n return (\n <img\n width={width}\n src={logoSrc}\n className={className}\n alt='Login logo'\n />\n )\n};\n","import { LoginFormElementAction, LoginFormElementReducer, LoginFormElementState } from \"./types\";\n\nexport const emailReducer: LoginFormElementReducer = (_: LoginFormElementState, action: LoginFormElementAction) => {\n\n const value: string = action.value || \"\";\n\n const isValid = value.includes(\"@\");\n\n const validationError = isValid || !value.length ? undefined : \"The provided input is not a valid email\";\n\n return { value, isValid, validationError };\n};\n\nexport const passwordReducer: LoginFormElementReducer = (_: LoginFormElementState, action: LoginFormElementAction) => {\n\n const value: string = action.value || \"\";\n\n const isValid = value.trim().length > 3;\n\n const validationError = isValid || !value.length ? undefined : \"The provided does not meet the length requirement\";\n\n return { value, isValid, validationError };\n};","import { FC, useEffect, useReducer, useState } from 'react';\nimport LoginForm from './login-form';\nimport { LoginHeading } from './login-heading';\nimport { LoginLogo } from './login-logo';\nimport { emailReducer, passwordReducer } from './reducers';\nimport { LoginDesignProps, LoginFormElementReducer } from './types';\nimport './login.scss'\n\n\nexport interface LoginProps extends LoginDesignProps {\n onLogin: (email: string, password: string) => void;\n isLoading?: boolean;\n loginErrorMessage?: string;\n}\n\nexport const Login: FC<LoginProps> = ({ onLogin, loginErrorMessage, components }) => {\n\n const [formIsValid, setFormIsValid] = useState(false);\n const [emailState, dispatchEmail] = useReducer<LoginFormElementReducer>(emailReducer, { value: '', isValid: false });\n const [passwordState, dispatchPassword] = useReducer<LoginFormElementReducer>(passwordReducer, { value: '', isValid: false });\n\n const { isValid: emailValid } = emailState;\n const { isValid: passwordValid } = passwordState;\n\n useEffect(() => {\n\n const timer = setTimeout(() => {\n setFormIsValid(emailValid && passwordValid);\n }, 250);\n\n return () => clearTimeout(timer);\n\n }, [emailValid, passwordValid]);\n\n const dispatch = (event: React.ChangeEvent<HTMLInputElement>, value?: string): void => {\n const elementType = event.target.type;\n\n const dispatchFunction = elementType === 'password' ?\n dispatchPassword :\n dispatchEmail;\n\n dispatchFunction({ value });\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => dispatch(event, event.target.value);\n\n const handleSubmit = (): void => {\n if (!emailValid || !passwordValid) {\n return;\n }\n\n const email = emailState.value;\n const password = passwordState.value;\n\n onLogin(email, password);\n };\n\n const Logo = components?.Logo || LoginLogo;\n const Heading = components?.Heading || LoginHeading;\n\n return (\n <>\n <Logo />\n <Heading />\n <LoginForm\n email={emailState.value}\n password={passwordState.value}\n errorMessage={loginErrorMessage ?? emailState.validationError ?? passwordState.validationError}\n canSubmit={formIsValid}\n onChange={handleChange}\n onSubmit={handleSubmit}\n />\n </>\n )\n};\n","import { FC } from 'react';\nimport { LoginDesignProps } from './types';\nimport { LoginLogo } from './login-logo';\nimport { LoginHeading } from './login-heading';\n\nexport const LoginLoader: FC<LoginDesignProps> = ({ components }) => {\n const Logo = components?.Logo || LoginLogo;\n const Heading = components?.Heading || LoginHeading;\n\n return (\n <>\n <Logo />\n <Heading />\n <span className=\"loader\"></span>\n </>\n );\n};\n","import { FC } from 'react';\nimport { Form } from 'reactstrap';\nimport { Button } from '../button/button';\nimport { LoginHeading } from './login-heading';\nimport { LoginLogo } from './login-logo';\nimport { LoginDesignProps } from './types';\n\nexport interface LoginAuth0Props extends LoginDesignProps {\n onLogin: () => void;\n}\n\nexport const LoginAuth0: FC<LoginAuth0Props> = ({ components, onLogin }) => {\n const Logo = components?.Logo || LoginLogo;\n const Heading = components?.Heading || LoginHeading;\n\n return (\n <>\n <Logo />\n <Heading />\n <Form>\n <Button onClick={onLogin} className=\"g42-btn-primary\">\n Log In\n </Button>\n </Form>\n </>\n );\n};\n","import { useEffect, useRef, useState } from 'react';\nimport styles from './slide-panel.module.scss';\nimport classNames from 'classnames';\n\nexport interface SlidePanelRenderPropsProps {\n icon: JSX.Element;\n children: (props: {\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n }) => React.ReactNode;\n}\n\nexport const SlidePanel = (props: SlidePanelRenderPropsProps) => {\n const [open, setOpen] = useState(false);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const logoContainerRef = useRef<HTMLButtonElement | null>(null);\n const { icon, children } = props;\n\n useEffect(() => {\n if (!open) return;\n\n const handleMouseup = (e: MouseEvent) => {\n const isOutsideClick =\n e.target !== wrapperRef.current &&\n !wrapperRef.current?.contains(e.target as Node);\n\n const isLogoClick =\n e.target === logoContainerRef.current ||\n logoContainerRef.current?.contains(e.target as Node);\n\n if (!isLogoClick && isOutsideClick) {\n setOpen(false);\n }\n };\n\n const handleBlur = () => {\n if (document.activeElement?.nodeName !== 'IFRAME') {\n return;\n }\n\n setOpen(false);\n };\n\n document.addEventListener('mouseup', handleMouseup, true);\n window.addEventListener('blur', handleBlur, true);\n\n return () => {\n document.removeEventListener('mouseup', handleMouseup, true);\n window.removeEventListener('blur', handleBlur, true);\n };\n }, [open]);\n\n return (\n <div ref={wrapperRef}>\n <button\n aria-label=\"Launchpad\"\n onClick={() => setOpen((v) => !v)}\n className={`g42-logo ${open === true ? 'active' : ''}`}\n ref={logoContainerRef}\n >\n {icon}\n </button>\n\n <div>\n <div\n className={classNames(styles['launchpad-popup'], {\n [styles['slide-in']]: open,\n })}\n >\n {children({ open, setOpen })}\n </div>\n </div>\n </div>\n );\n};\n","import Launchpad from \"../launchpad/launchpad\";\nimport { SlidePanel } from \"./slide-panel\";\n\nexport interface LaunchpadSlidePanelProps {\n icon: JSX.Element,\n components?: { sections?: JSX.Element },\n onLogout?: () => void,\n user?: {\n name?: string;\n }\n}\n\nexport const LaunchpadSlidePanel = (props: LaunchpadSlidePanelProps) => {\n const { icon, components, onLogout, user } = props;\n\n return (\n <SlidePanel icon={icon}>\n {({ open, setOpen }) => (\n <Launchpad\n open={open}\n setOpen={setOpen}\n user={user}\n onLogout={onLogout}\n components={components}\n />\n )}\n </SlidePanel>\n );\n\n};\n","export const BrowserNotificationsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={222} height={130} fill=\"none\" {...props}>\n <g filter=\"url(#a)\">\n <path fill=\"url(#b)\" d=\"M16 24h190v98a6 6 0 0 1-6 6H22a6 6 0 0 1-6-6V24Z\" />\n </g>\n <path fill=\"#3C3E3F\" d=\"M16 24h190V7a6 6 0 0 0-6-6H22a6 6 0 0 0-6 6v17Z\" />\n <path stroke=\"url(#c)\" d=\"M16 23.5h189\" />\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M178.172 15.343a2.171 2.171 0 1 0 0-4.342 2.171 2.171 0 0 0 0 4.342ZM186.258 15.343a2.171 2.171 0 1 0 .001-4.343 2.171 2.171 0 0 0-.001 4.343Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M194.344 15.343a2.171 2.171 0 1 0 .001-4.343 2.171 2.171 0 0 0-.001 4.343Z\" />\n <rect width={75} height={75} x={73.5} y={33.5} stroke=\"#9DA2A5\" strokeDasharray=\"1 12\" rx={37.5} />\n <rect width={69} height={24} x={127} y={64} fill=\"#3C3E3F\" rx={2} />\n <path fill=\"#2479E9\" d=\"M139 72a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z\" />\n <rect width={39} height={8} x={148} y={72} fill=\"#D9D9D9\" fillOpacity={0.1} rx={4} />\n <rect width={69} height={24} x={127} y={92} fill=\"#3C3E3F\" rx={2} />\n <path fill=\"#36A86B\" d=\"M139 100a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z\" />\n <rect width={11} height={8} x={148} y={100} fill=\"#D9D9D9\" fillOpacity={0.1} rx={4} />\n <rect width={18} height={8} x={164} y={100} fill=\"#D9D9D9\" fillOpacity={0.1} rx={4} />\n <rect width={66} height={66} x={78} y={38} fill=\"#36AA6C\" rx={33} />\n <path\n fill=\"#fff\"\n d=\"M110.25 59.75c0-.375.328-.75.75-.75.375 0 .75.375.75.75v.797c3.75.375 6.75 3.562 6.75 7.453v1.406c0 2.016.797 3.985 2.25 5.438l.141.14c.375.375.609.938.609 1.454a2.1 2.1 0 0 1-2.109 2.109h-16.829c-1.171-.047-2.062-.938-2.062-2.11 0-.562.188-1.078.609-1.453l.094-.14c1.453-1.453 2.297-3.422 2.297-5.438V68a7.484 7.484 0 0 1 6.75-7.453v-.797ZM111 62c-3.328 0-6 2.719-6 6v1.406a9.227 9.227 0 0 1-2.719 6.516l-.14.094a.755.755 0 0 0-.141.421c0 .329.234.563.562.563h16.829c.328 0 .609-.234.609-.563 0-.14-.094-.28-.188-.421l-.14-.094a9.258 9.258 0 0 1-2.719-6.563V68c0-3.281-2.672-6-6-6H111Zm-1.453 18.516c.234.609.797.984 1.453.984.609 0 1.172-.375 1.406-.984.141-.375.563-.61.938-.47.375.141.609.563.468.985A2.99 2.99 0 0 1 111 83c-1.312 0-2.438-.797-2.859-1.969a.785.785 0 0 1 .468-.984c.375-.14.797.094.938.469Z\"\n />\n <rect width={191} height={128} x={15.5} y={0.5} stroke=\"url(#d)\" strokeMiterlimit={10} rx={6.5} />\n <defs>\n <linearGradient id=\"b\" x1={39.152} x2={71.862} y1={30.346} y2={129.753} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#383838\" />\n <stop offset={1} stopColor=\"#1D1D1D\" />\n </linearGradient>\n <linearGradient id=\"c\" x1={9.298} x2={205} y1={24} y2={24} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={1} stopColor=\"#5F5F5F\" stopOpacity={0} />\n </linearGradient>\n <linearGradient id=\"d\" x1={34.959} x2={127.671} y1={39.954} y2={146.801} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={0} stopColor=\"#575757\" />\n <stop offset={1} stopColor=\"#2C2C2C\" />\n </linearGradient>\n <filter id=\"a\" width={222} height={136} x={0} y={15} colorInterpolationFilters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={7} />\n <feGaussianBlur stdDeviation={8} />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_816_102831\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_816_102831\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n);\n\nexport default BrowserNotificationsIcon;\n","export const ReopenPromptIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={182} height={121} fill=\"none\" {...props}>\n <path fill=\"url(#a)\" d=\"M114.092 103.689h-46.36v11.541h46.36v-11.541Z\" />\n <path fill=\"#828589\" d=\"M134.371 115.23H47.446v5.771h86.925v-5.771Z\" />\n <rect width={180.555} height={103.984} x={0.723} fill=\"url(#b)\" rx={8} />\n <rect width={167} height={90} x={7.5} y={7} fill=\"#000\" fillOpacity={0.4} rx={4} />\n <g filter=\"url(#c)\">\n <rect width={102} height={56} x={40} y={24} fill=\"url(#d)\" rx={6} />\n <rect width={86} height={8} x={48} y={44.5} fill=\"#D9D9D9\" fillOpacity={0.1} rx={4} />\n <rect width={41} height={8} x={48} y={59.5} fill=\"#fff\" fillOpacity={0.14} rx={4} />\n <rect width={41} height={8} x={93} y={59.5} fill=\"#fff\" fillOpacity={0.3} rx={4} />\n <rect width={8} height={8} x={126} y={31} fill=\"#DE2122\" rx={4} />\n <path\n fill=\"#fff\"\n d=\"m131.878 33.683-1.31 1.31 1.31 1.324a.384.384 0 0 1 0 .561.384.384 0 0 1-.561 0l-1.311-1.31-1.323 1.31a.384.384 0 0 1-.561 0 .384.384 0 0 1 0-.561l1.31-1.323-1.31-1.31a.384.384 0 0 1 0-.562.384.384 0 0 1 .561 0l1.323 1.31 1.311-1.31a.384.384 0 0 1 .561 0 .384.384 0 0 1 0 .561Z\"\n />\n <rect width={101} height={55} x={40.5} y={24.5} stroke=\"url(#e)\" strokeMiterlimit={10} rx={5.5} />\n </g>\n <defs>\n <linearGradient id=\"a\" x1={90.912} x2={90.912} y1={103.689} y2={115.23} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"gray\" />\n <stop offset={1} stopColor=\"#56585D\" />\n </linearGradient>\n <linearGradient id=\"b\" x1={91} x2={91} y1={0} y2={103.984} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"gray\" />\n <stop offset={1} stopColor=\"#56585D\" />\n </linearGradient>\n <linearGradient id=\"d\" x1={52.429} x2={70.085} y1={27.417} y2={80.913} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#313131\" />\n <stop offset={1} stopColor=\"#1B1B1B\" />\n </linearGradient>\n <linearGradient id=\"e\" x1={50.178} x2={89.211} y1={41.176} y2={95.944} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={0} stopColor=\"#575757\" />\n <stop offset={1} stopColor=\"#2C2C2C\" />\n </linearGradient>\n <filter id=\"c\" width={134} height={88} x={24} y={15} colorInterpolationFilters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={7} />\n <feGaussianBlur stdDeviation={8} />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_2206_37806\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_2206_37806\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n);\n\nexport default ReopenPromptIcon;\n","export const WarningIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={196} height={130} fill=\"none\" {...props}>\n <g filter=\"url(#a)\">\n <path fill=\"url(#b)\" d=\"M16 52.406h164v70a6 6 0 0 1-6 6H22a6 6 0 0 1-6-6v-70Z\" />\n </g>\n <path fill=\"#3C3E3F\" d=\"M16 52.406h164v-17a6 6 0 0 0-6-6H22a6 6 0 0 0-6 6v17Z\" />\n <path stroke=\"url(#c)\" d=\"M16 51.906h163\" />\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M152.172 43.75a2.171 2.171 0 1 0 0-4.343 2.171 2.171 0 0 0 0 4.342ZM160.258 43.75a2.172 2.172 0 1 0 0-4.344 2.172 2.172 0 0 0 0 4.343Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M168.344 43.75a2.172 2.172 0 1 0 0-4.344 2.172 2.172 0 0 0 0 4.343Z\" />\n <rect width={165.324} height={99.595} x={15.5} y={28.906} stroke=\"url(#d)\" strokeMiterlimit={10} rx={6.5} />\n <path\n fill=\"url(#e)\"\n d=\"M96.469 13.858c1.347-2.334 4.717-2.334 6.064 0l58.373 101.105c1.348 2.335-.337 5.253-3.032 5.253H41.128c-2.696 0-4.38-2.918-3.033-5.253L96.47 13.858Z\"\n />\n <path\n fill=\"#fff\"\n d=\"M97.705 88.342a1 1 0 0 1-1-.975l-.826-33.968a1 1 0 0 1 1-1.024h6.267a1 1 0 0 1 1 1.024l-.827 33.968a1 1 0 0 1-1 .975h-4.614Zm2.526 15.54c-1.508 0-2.748-.462-3.72-1.386-.925-.973-1.387-2.116-1.387-3.43 0-1.361.462-2.504 1.386-3.428.973-.973 2.213-1.46 3.721-1.46 1.41 0 2.578.487 3.502 1.46.973.924 1.459 2.067 1.459 3.429 0 1.313-.486 2.456-1.459 3.429-.924.924-2.092 1.386-3.502 1.386Z\"\n />\n <rect width={1} height={3} x={55} y={44} fill=\"#9DA2A5\" rx={0.5} />\n <rect width={1} height={3} x={55} y={50} fill=\"#9DA2A5\" rx={0.5} />\n <rect width={1} height={3} x={55} y={56} fill=\"#9DA2A5\" rx={0.5} />\n <rect width={40.255} height={40.255} x={35} fill=\"url(#f)\" rx={20.128} />\n <path\n fill=\"#fff\"\n d=\"M61.128 14.127v8h3v-7c0-.531-.469-1-1-1h-2Zm-1 0h-3v4h3v-4Zm-4 0h-2v8h2v-8Zm-3 0h-3v4h3v-4Zm-4 0h-2c-.563 0-1 .469-1 1v7h3v-8Zm-3 9v2c0 .563.437 1 1 1h7.5v-3h-8.5Zm9.5 3h7.5c.531 0 1-.438 1-1v-2h-8.5v3Zm-10.5-11c0-1.094.875-2 2-2h16c1.094 0 2 .906 2 2v10c0 1.125-.906 2-2 2h-16c-1.125 0-2-.875-2-2v-10Zm8 7v-3h-3v3h3Zm7-3h-3v3h3v-3Z\"\n />\n <rect width={15.096} height={15.096} x={62.676} y={26.418} fill=\"#DE2122\" rx={7.548} />\n <path\n fill=\"#fff\"\n d=\"m72.102 32.65-1.31 1.31 1.31 1.323a.385.385 0 0 1 0 .562.385.385 0 0 1-.562 0l-1.31-1.31-1.323 1.31a.385.385 0 0 1-.562 0 .385.385 0 0 1 0-.562l1.31-1.322-1.31-1.31a.385.385 0 0 1 0-.563.385.385 0 0 1 .562 0l1.323 1.31 1.31-1.31a.385.385 0 0 1 .562 0 .385.385 0 0 1 0 .562Z\"\n />\n <rect width={40.255} height={40.255} x={35} y={63} fill=\"url(#g)\" rx={20.128} />\n <path\n fill=\"#fff\"\n d=\"M54.628 75.627c0-.25.219-.5.5-.5.25 0 .5.25.5.5v.531c2.5.25 4.5 2.375 4.5 4.969v.938c0 1.343.531 2.656 1.5 3.624l.094.094c.25.25.406.625.406.969a1.4 1.4 0 0 1-1.406 1.406h-11.22c-.78-.031-1.374-.625-1.374-1.406 0-.375.125-.719.406-.969l.063-.094c.968-.968 1.53-2.28 1.53-3.624v-.938a4.99 4.99 0 0 1 4.5-4.969v-.531Zm.5 1.5c-2.219 0-4 1.813-4 4v.938a6.152 6.152 0 0 1-1.813 4.343l-.093.063a.504.504 0 0 0-.094.281c0 .219.156.375.375.375h11.219c.218 0 .406-.156.406-.375 0-.094-.063-.188-.125-.281l-.094-.063a6.17 6.17 0 0 1-1.812-4.375v-.906c0-2.188-1.782-4-4-4h.03Zm-.969 12.344c.156.406.531.656.969.656.406 0 .781-.25.937-.656.094-.25.375-.407.625-.313.25.094.407.375.313.656a1.994 1.994 0 0 1-1.875 1.313 2.005 2.005 0 0 1-1.906-1.313.524.524 0 0 1 .312-.656c.25-.094.531.063.625.313Z\"\n />\n <rect width={15.096} height={15.096} x={62.678} y={89.418} fill=\"#DE2122\" rx={7.548} />\n <path\n fill=\"#fff\"\n d=\"m72.104 95.65-1.31 1.31 1.31 1.324a.385.385 0 0 1 0 .561.385.385 0 0 1-.562 0l-1.31-1.31-1.323 1.31a.385.385 0 0 1-.562 0 .385.385 0 0 1 0-.561l1.31-1.323-1.31-1.31a.385.385 0 0 1 0-.563.385.385 0 0 1 .562 0l1.323 1.31 1.31-1.31a.385.385 0 0 1 .562 0 .385.385 0 0 1 0 .562Z\"\n />\n <defs>\n <linearGradient id=\"b\" x1={35.984} x2={56.797} y1={57.043} y2={131.755} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#383838\" />\n <stop offset={1} stopColor=\"#1D1D1D\" />\n </linearGradient>\n <linearGradient id=\"c\" x1={10.22} x2={179} y1={52.406} y2={52.406} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={1} stopColor=\"#5F5F5F\" stopOpacity={0} />\n </linearGradient>\n <linearGradient id=\"d\" x1={32.397} x2={102.886} y1={59.648} y2={150.147} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={0} stopColor=\"#575757\" />\n <stop offset={1} stopColor=\"#2C2C2C\" />\n </linearGradient>\n <linearGradient id=\"e\" x1={99.501} x2={246.864} y1={8.606} y2={161.85} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#F4B40F\" />\n <stop offset={1} stopColor=\"#EFAA23\" />\n </linearGradient>\n <linearGradient id=\"f\" x1={55.128} x2={55.128} y1={0} y2={40.255} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"gray\" />\n <stop offset={1} stopColor=\"#56585D\" />\n </linearGradient>\n <linearGradient id=\"g\" x1={55.128} x2={55.128} y1={63} y2={103.255} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"gray\" />\n <stop offset={1} stopColor=\"#56585D\" />\n </linearGradient>\n <filter id=\"a\" width={196} height={108} x={0} y={43.406} colorInterpolationFilters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={7} />\n <feGaussianBlur stdDeviation={8} />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_834_102897\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_834_102897\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n);\n\nexport default WarningIcon;\n","export const WindowPlacementIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={247} height={143} fill=\"none\" {...props}>\n <path fill=\"url(#a)\" d=\"M144.369 125.689h-46.36v11.541h46.36v-11.541Z\" />\n <path fill=\"#828589\" d=\"M164.648 137.23H77.724v5.771h86.924v-5.771Z\" />\n <rect width={180.555} height={103.984} x={31} y={22} fill=\"url(#b)\" rx={8} />\n <rect width={167} height={90} x={37.777} y={29} fill=\"#000\" fillOpacity={0.4} rx={4} />\n <g filter=\"url(#c)\">\n <path\n fill=\"url(#d)\"\n d=\"M187.138 9h-67.22A2.918 2.918 0 0 0 117 11.918v42.756a2.918 2.918 0 0 0 2.918 2.918h67.22a2.918 2.918 0 0 0 2.918-2.918V11.918A2.918 2.918 0 0 0 187.138 9Z\"\n />\n <path\n stroke=\"url(#e)\"\n strokeMiterlimit={10}\n d=\"M119.918 9.5h67.22a2.418 2.418 0 0 1 2.418 2.418v42.756a2.418 2.418 0 0 1-2.418 2.418h-67.22a2.418 2.418 0 0 1-2.418-2.418V11.918a2.418 2.418 0 0 1 2.418-2.418Z\"\n />\n </g>\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M161.871 22.42a2.171 2.171 0 1 0 0-4.343 2.171 2.171 0 0 0 0 4.342ZM169.958 22.42a2.171 2.171 0 1 0 0-4.343 2.171 2.171 0 0 0 0 4.342Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M178.043 22.42a2.172 2.172 0 1 0 0-4.345 2.172 2.172 0 0 0 0 4.344Z\" />\n <path\n fill=\"#9DA2A5\"\n d=\"M153.404 55.547v5.836a.486.486 0 1 1-.972 0v-5.836a.486.486 0 1 1 .972 0ZM152.92 67.827l-3.255-3.255a.486.486 0 0 0-.688.688l3.599 3.6c.191.19.498.19.688 0l3.593-3.594a.485.485 0 1 0-.687-.688l-3.25 3.25ZM153.404 49.322v-5.836a.486.486 0 1 0-.972 0v5.836a.486.486 0 1 0 .972 0Z\"\n />\n <path fill=\"#3BB272\" d=\"M149 35a4 4 0 1 0 8 0 4 4 0 0 0-8 0Z\" />\n <path\n fill=\"#fff\"\n fillOpacity={0.1}\n d=\"M105.723 39H53.277A2.28 2.28 0 0 0 51 41.282v33.436A2.28 2.28 0 0 0 53.277 77h52.446A2.28 2.28 0 0 0 108 74.718V41.282A2.28 2.28 0 0 0 105.723 39Z\"\n />\n <path\n stroke=\"#C8C8C8\"\n strokeDasharray=\"9 9\"\n strokeLinecap=\"round\"\n strokeMiterlimit={10}\n strokeOpacity={0.2}\n d=\"M100.853 39a.5.5 0 0 0 .5.5h4.37c.98 0 1.777.797 1.777 1.782v4.18a.5.5 0 0 0 .5.5v7.358a.5.5 0 0 0-.5.5v8.36a.5.5 0 0 0 .5.5v7.358a.5.5 0 0 0-.5.5v4.18a1.78 1.78 0 0 1-1.777 1.782h-4.37a.5.5 0 0 0-.5.5h-7.741a.5.5 0 0 0-.5-.5H83.87a.5.5 0 0 0-.5.5h-7.742a.5.5 0 0 0-.5-.5h-8.74a.5.5 0 0 0-.5.5h-7.742a.5.5 0 0 0-.5-.5h-4.37a1.78 1.78 0 0 1-1.777-1.782v-4.18a.5.5 0 0 0-.5-.5V62.68a.5.5 0 0 0 .5-.5v-8.36a.5.5 0 0 0-.5-.5v-7.358a.5.5 0 0 0 .5-.5v-4.18a1.78 1.78 0 0 1 1.777-1.782h4.37a.5.5 0 0 0 .5-.5h7.741a.5.5 0 0 0 .5.5h8.741a.5.5 0 0 0 .5-.5h7.742a.5.5 0 0 0 .5.5h8.74a.5.5 0 0 0 .5-.5h7.742Z\"\n />\n <path\n fill=\"#fff\"\n fillOpacity={0.1}\n d=\"M194.843 75h-49.686A2.16 2.16 0 0 0 143 77.162v31.676a2.16 2.16 0 0 0 2.157 2.162h49.686a2.16 2.16 0 0 0 2.157-2.162V77.162A2.16 2.16 0 0 0 194.843 75Z\"\n />\n <path\n stroke=\"#C8C8C8\"\n strokeDasharray=\"9 9\"\n strokeLinecap=\"round\"\n strokeMiterlimit={10}\n strokeOpacity={0.2}\n d=\"M190.203 75a.5.5 0 0 0 .5.5h4.14a1.66 1.66 0 0 1 1.657 1.662v3.96a.5.5 0 0 0 .5.5v6.918a.5.5 0 0 0-.5.5v7.92a.5.5 0 0 0 .5.5v6.919a.5.5 0 0 0-.5.5v3.959a1.66 1.66 0 0 1-1.657 1.662h-4.14a.5.5 0 0 0-.5.5h-7.281a.5.5 0 0 0-.5-.5h-8.281a.5.5 0 0 0-.5.5h-7.282a.5.5 0 0 0-.5-.5h-8.281a.5.5 0 0 0-.5.5h-7.281a.5.5 0 0 0-.5-.5h-4.14a1.66 1.66 0 0 1-1.657-1.662v-3.959a.5.5 0 0 0-.5-.5v-6.92a.5.5 0 0 0 .5-.5V89.04a.5.5 0 0 0-.5-.5v-6.919a.5.5 0 0 0 .5-.5v-3.96a1.66 1.66 0 0 1 1.657-1.661h4.14a.5.5 0 0 0 .5-.5h7.281a.5.5 0 0 0 .5.5h8.281a.5.5 0 0 0 .5-.5h7.282a.5.5 0 0 0 .5.5h8.281a.5.5 0 0 0 .5-.5h7.281Z\"\n />\n <g filter=\"url(#f)\">\n <path\n fill=\"url(#g)\"\n d=\"M228.294 65h-53.951a2.342 2.342 0 0 0-2.342 2.342v34.316a2.343 2.343 0 0 0 2.342 2.342h53.951a2.343 2.343 0 0 0 2.342-2.342V67.342A2.342 2.342 0 0 0 228.294 65Z\"\n />\n <path\n stroke=\"url(#h)\"\n strokeMiterlimit={10}\n d=\"M174.343 65.5h53.951c1.017 0 1.842.825 1.842 1.842v34.316a1.842 1.842 0 0 1-1.842 1.842h-53.951a1.842 1.842 0 0 1-1.842-1.842V67.342c0-1.017.825-1.842 1.842-1.842Z\"\n />\n </g>\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M208.014 75.77a1.743 1.743 0 1 0 0-3.484 1.743 1.743 0 0 0 0 3.485ZM214.505 75.77a1.743 1.743 0 1 0 0-3.484 1.743 1.743 0 0 0 0 3.485Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M220.995 75.77a1.743 1.743 0 1 0 0-3.486 1.743 1.743 0 0 0 0 3.487Z\" />\n <path\n fill=\"#9DA2A5\"\n d=\"M172.454 86.568h-5.836a.486.486 0 1 1 0-.972h5.836a.486.486 0 1 1 0 .972ZM160.175 86.084l3.255-3.255a.486.486 0 1 0-.688-.688l-3.599 3.6a.486.486 0 0 0 0 .687l3.593 3.594a.486.486 0 1 0 .688-.688l-3.249-3.25ZM176.486 86.568h5.836a.487.487 0 1 0 0-.972h-5.836a.486.486 0 1 0 0 .972ZM186.486 86.568h5.836a.487.487 0 1 0 0-.972h-5.836a.486.486 0 1 0 0 .972Z\"\n />\n <path fill=\"url(#i)\" d=\"M200.891 82.242a3.89 3.89 0 1 0 0 7.782 3.89 3.89 0 0 0 0-7.782Z\" />\n <g filter=\"url(#j)\">\n <path\n fill=\"url(#k)\"\n d=\"M86.138 62h-67.22A2.918 2.918 0 0 0 16 64.918v42.756a2.918 2.918 0 0 0 2.918 2.918h67.22a2.918 2.918 0 0 0 2.918-2.918V64.918A2.918 2.918 0 0 0 86.138 62Z\"\n />\n <path\n stroke=\"url(#l)\"\n strokeMiterlimit={10}\n d=\"M18.918 62.5h67.22a2.418 2.418 0 0 1 2.418 2.418v42.756a2.418 2.418 0 0 1-2.418 2.418h-67.22a2.418 2.418 0 0 1-2.418-2.418V64.918a2.418 2.418 0 0 1 2.418-2.418Z\"\n />\n </g>\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M60.87 75.42a2.172 2.172 0 1 0 0-4.344 2.172 2.172 0 0 0 0 4.343ZM68.958 75.42a2.172 2.172 0 1 0 0-4.344 2.172 2.172 0 0 0 0 4.343Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M77.043 75.42a2.172 2.172 0 1 0 0-4.344 2.172 2.172 0 0 0 0 4.343Z\" />\n <path\n fill=\"#9DA2A5\"\n d=\"M101.546 88.596h5.836a.486.486 0 1 1 0 .972h-5.836a.486.486 0 1 1 0-.972ZM80.158 88.596h5.836a.486.486 0 1 1 0 .972h-5.836a.486.486 0 1 1 0-.972ZM96.71 88.596h-5.836a.486.486 0 1 0 0 .972h5.836a.486.486 0 1 0 0-.972ZM59.158 88.596h5.836a.486.486 0 1 1 0 .972h-5.836a.486.486 0 1 1 0-.972ZM113.825 89.08l-3.255 3.255a.486.486 0 1 0 .688.688l3.599-3.6a.486.486 0 0 0 0-.687l-3.593-3.593a.486.486 0 1 0-.688.687l3.249 3.25ZM75.322 88.596h-5.836a.486.486 0 1 0 0 .972h5.836a.486.486 0 1 0 0-.972Z\"\n />\n <path fill=\"#2479E9\" d=\"M50 93a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z\" />\n <defs>\n <linearGradient id=\"a\" x1={121.189} x2={121.189} y1={125.689} y2={137.23} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"gray\" />\n <stop offset={1} stopColor=\"#56585D\" />\n </linearGradient>\n <linearGradient id=\"b\" x1={121.277} x2={121.277} y1={22} y2={125.984} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"gray\" />\n <stop offset={1} stopColor=\"#56585D\" />\n </linearGradient>\n <linearGradient id=\"d\" x1={125.902} x2={143.647} y1={11.965} y2={56.345} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#383838\" />\n <stop offset={1} stopColor=\"#1D1D1D\" />\n </linearGradient>\n <linearGradient id=\"e\" x1={124.29} x2={159.738} y1={23.904} y2={64.958} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={0} stopColor=\"#575757\" />\n <stop offset={1} stopColor=\"#2C2C2C\" />\n </linearGradient>\n <linearGradient id=\"g\" x1={179.146} x2={193.388} y1={67.38} y2={102.999} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#383838\" />\n <stop offset={1} stopColor=\"#1D1D1D\" />\n </linearGradient>\n <linearGradient id=\"h\" x1={177.852} x2={206.302} y1={76.962} y2={109.912} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={0} stopColor=\"#575757\" />\n <stop offset={1} stopColor=\"#2C2C2C\" />\n </linearGradient>\n <linearGradient id=\"i\" x1={200.891} x2={193.185} y1={90.023} y2={82.01} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#F4B40F\" />\n <stop offset={1} stopColor=\"#EFAA23\" />\n </linearGradient>\n <linearGradient id=\"k\" x1={24.902} x2={42.647} y1={64.965} y2={109.345} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#383838\" />\n <stop offset={1} stopColor=\"#1D1D1D\" />\n </linearGradient>\n <linearGradient id=\"l\" x1={23.29} x2={58.738} y1={76.904} y2={117.958} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={0} stopColor=\"#575757\" />\n <stop offset={1} stopColor=\"#2C2C2C\" />\n </linearGradient>\n <filter\n id=\"c\"\n width={105.056}\n height={80.592}\n x={101}\n y={0}\n colorInterpolationFilters=\"sRGB\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={7} />\n <feGaussianBlur stdDeviation={8} />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_807_102718\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_807_102718\" result=\"shape\" />\n </filter>\n <filter\n id=\"f\"\n width={90.635}\n height={71}\n x={156.001}\n y={56}\n colorInterpolationFilters=\"sRGB\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={7} />\n <feGaussianBlur stdDeviation={8} />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_807_102718\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_807_102718\" result=\"shape\" />\n </filter>\n <filter id=\"j\" width={105.056} height={80.592} x={0} y={53} colorInterpolationFilters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={7} />\n <feGaussianBlur stdDeviation={8} />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_807_102718\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_807_102718\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n);\n\nexport default WindowPlacementIcon;\n","import { BrowserNotificationsIcon, WindowPlacementIcon } from '../icon-components';\nimport type { PermissionNames, PermissionStep } from './types';\n\nexport const PERMISSION_STEPS: Record<PermissionNames, PermissionStep> = {\n 'window-management': {\n heading: 'Allow Window Management',\n description: `io.Connect Browser requires permission to arrange windows on your desktop.`,\n guidelines: {\n default: 'To allow window management, click the icon to the left of the address bar.',\n },\n label: 'Allow window management',\n Image: WindowPlacementIcon,\n openPermissionsPrompt: ({ handleDeferredPermission, handlePermissionsPromptClose }) => {\n (window as any)\n .getScreenDetails()\n .catch(async () => {\n const { state } = await navigator.permissions.query({ name: 'window-management' as PermissionName });\n\n if (state === 'prompt') {\n handleDeferredPermission();\n }\n })\n .finally(handlePermissionsPromptClose);\n },\n },\n notifications: {\n heading: 'Allow Browser Notifications',\n description: `io.Connect Browser requires permission to send notifications to the desktop.\n This won't allow any other browser notifications.`,\n guidelines: {\n default: 'To allow browser notifications, click the icon to the left of the address bar.',\n edge: 'To allow browser notifications, click the icon to the left of the address bar, or the \"Bell\" icon to the right of the address bar.',\n },\n label: 'Allow browser notifications',\n Image: BrowserNotificationsIcon,\n openPermissionsPrompt: ({ handleDeferredPermission, handlePermissionsPromptClose }) => {\n Notification.requestPermission()\n .then(async () => {\n const { state } = await navigator.permissions.query({ name: 'notifications' });\n\n if (state === 'prompt') {\n handleDeferredPermission();\n }\n })\n .finally(handlePermissionsPromptClose);\n },\n },\n};\n\nexport const DEFAULT_SETTINGS = {\n edgeNotificationsPermissionTimeout: 15000,\n};\n","import './permissions.scss';\n\ninterface PermissionsCardProps {\n children?: React.ReactNode;\n heading?: string;\n description: string | React.ReactElement;\n Image?: React.ComponentType;\n title?: string;\n}\n\nexport const PermissionsCard = ({ children, description, heading, Image, title }: PermissionsCardProps) => (\n <div className=\"permissions-card\">\n {title && <h1 className=\"permissions-card-title\">{title}</h1>}\n {Image && (\n <div className=\"permissions-card-image\">\n <Image />\n </div>\n )}\n {heading && <h3 className=\"permissions-card-heading\">{heading}</h3>}\n <p className=\"permissions-card-description\">{description}</p>\n {children}\n </div>\n);\n\nexport default PermissionsCard;\n","import classNames from 'classnames';\nimport type { HomePermissionStatus } from '../glue42-home-provider/types';\nimport { PERMISSION_STEPS } from './constants';\nimport './permissions.scss';\n\ninterface PermissionsListProps {\n isActiveItem?: (name: string) => boolean;\n permissionStatuses: HomePermissionStatus[];\n}\n\nexport const PermissionsList = ({ isActiveItem = () => false, permissionStatuses }: PermissionsListProps) => (\n <ul className=\"permissions-list\">\n {Object.entries(PERMISSION_STEPS).map(([permissionName, permissionStep], index) => {\n const isActive = isActiveItem(permissionName);\n const status = permissionStatuses.find(({ name }) => name === permissionName);\n\n return (\n <li className={classNames('permissions-list-item', isActive && 'active')} key={permissionName}>\n <div>\n {status?.state === 'granted' ? (\n <span className=\"icon-check\" />\n ) : (\n <>\n <span className={isActive ? 'icon-arrow' : ''} />\n <span>{index + 1}.</span>\n </>\n )}\n </div>\n {permissionStep.label}\n </li>\n );\n })}\n </ul>\n);\n\nexport default PermissionsList;\n","import { Button } from 'reactstrap';\nimport { PermissionsCard } from './permissions-card';\nimport { ReopenPromptIcon } from '../icon-components';\n\ninterface SomethingWentWrongProps {\n onReopenPromptClick: () => void;\n}\n\nexport const SomethingWentWrong = ({ onReopenPromptClick }: SomethingWentWrongProps) => {\n const description = (\n <>\n Please, click \"Allow\" when the browser prompt appears.\n <br />\n <strong>\n If a browser prompt doesn't appear, click the icon to the left of the\n <br />\n address bar to manually grant the permission.\n </strong>\n </>\n );\n\n return (\n <PermissionsCard description={description} Image={ReopenPromptIcon} title=\"Something went wrong!\">\n <Button className=\"g42-btn-primary permissions-prompt-button\" onClick={onReopenPromptClick}>\n Reopen the Prompt\n </Button>\n </PermissionsCard>\n );\n};\n","export const PERMISSION_NAMES = ['window-management', 'notifications'] as const;\n","import type { HomePermissionStatus } from './types';\nimport { PERMISSION_NAMES } from './constants';\n\nexport const getPermissionStatuses = (): Promise<HomePermissionStatus[]> => {\n return Promise.all(PERMISSION_NAMES.map((name) => navigator.permissions.query({ name: name as PermissionName }))) as Promise<\n HomePermissionStatus[]\n >;\n};\n","import { createContext, useContext, useEffect, useRef, useState } from 'react';\nimport { getPermissionStatuses } from './helpers';\nimport type { HomePermissionStatus } from './types';\n\ninterface Glue42HomeProviderProps {\n children: React.ReactNode;\n}\n\nconst Glue42HomeContext = createContext<\n | {\n permission: {\n isDenied: boolean;\n isLoading: boolean;\n isSetupCompleted: boolean;\n statuses: HomePermissionStatus[];\n };\n }\n | undefined\n>(undefined);\n\nexport const useGlue42Home = () => {\n const context = useContext(Glue42HomeContext);\n\n if (context === undefined) {\n throw new Error('useGlue42Home must be used within a Glue42HomeProvider');\n }\n\n return context;\n};\n\nexport const Glue42HomeProvider = ({ children }: Glue42HomeProviderProps) => {\n const [permissionStatuses, setPermissionStatuses] = useState<HomePermissionStatus[]>([]);\n const isPermissionLoading = permissionStatuses.length === 0;\n const permission = {\n isDenied: !isPermissionLoading && permissionStatuses.some(({ state }) => state === 'denied'),\n isLoading: isPermissionLoading,\n isSetupCompleted: !isPermissionLoading && permissionStatuses.every(({ state }) => state === 'granted'),\n statuses: permissionStatuses,\n };\n const isPermissionSetupCompletedRef = useRef(false);\n\n useEffect(() => {\n let isUnsubscribed = false;\n\n const unsubscribeFunctionsPromise = getPermissionStatuses().then((permissionStatuses) => {\n if (isUnsubscribed) {\n return;\n }\n\n setPermissionStatuses(permissionStatuses);\n\n const unsubscribeFunctions: (() => void)[] = [];\n let isReloaded = false;\n\n permissionStatuses.forEach((permissionStatus, index) => {\n const changeListener = (event: Event) => {\n if (isUnsubscribed || !event.target || isReloaded) {\n return;\n }\n\n const permissionStatus = event.target as HomePermissionStatus;\n\n const shouldReload =\n permissionStatus.state === 'prompt' ||\n (permissionStatus.state === 'denied' && isPermissionSetupCompletedRef.current);\n\n if (shouldReload) {\n isReloaded = true;\n return window.location.reload();\n }\n\n setPermissionStatuses((permissions) => [\n ...permissions.slice(0, index),\n permissionStatus,\n ...permissions.slice(index + 1),\n ]);\n };\n\n permissionStatus.addEventListener('change', changeListener);\n\n unsubscribeFunctions.push(() => permissionStatus.removeEventListener('change', changeListener));\n });\n\n return unsubscribeFunctions;\n });\n\n return () => {\n isUnsubscribed = true;\n unsubscribeFunctionsPromise.then((unsubscribeFunctions) => {\n unsubscribeFunctions?.forEach((unsubscribe) => unsubscribe());\n });\n };\n }, []);\n\n useEffect(() => {\n isPermissionSetupCompletedRef.current = permission.isSetupCompleted;\n }, [permission.isSetupCompleted]);\n\n return <Glue42HomeContext.Provider value={{ permission }}>{children}</Glue42HomeContext.Provider>;\n};\n","import type { PermissionNames } from './types';\nimport { PERMISSION_STEPS } from './constants';\nimport { PermissionsCard } from './permissions-card';\nimport { WarningIcon } from '../icon-components';\nimport { useBrowser } from '../../hooks';\nimport { useGlue42Home } from '../glue42-home-provider/glue42-home-provider';\n\ninterface UnsuccessfulSetupProps {\n deniedPermissionName?: PermissionNames;\n}\n\nexport const UnsuccessfulSetup = ({ deniedPermissionName }: UnsuccessfulSetupProps) => {\n const { permission } = useGlue42Home();\n const browser = useBrowser();\n const browserName = browser.name?.toLowerCase() || '';\n const deniedPermissionStatuses = Object.values(permission.statuses).filter(\n (status) => status.name === deniedPermissionName || status.state === 'denied'\n );\n const description = (\n <>\n The current browser settings block critical functionalities of io.Connect Browser.\n <br />\n To enable io.Connect Browser to operate properly, you must grant browser permissions manually.\n </>\n );\n\n return (\n <PermissionsCard description={description} Image={WarningIcon} title=\"Setup Was Unsuccessful\">\n <ul className=\"permissions-guidelines-list\">\n {deniedPermissionStatuses.map((status, index) => (\n <li key={index}>\n {PERMISSION_STEPS[status.name].guidelines[browserName] || PERMISSION_STEPS[status.name].guidelines.default}\n </li>\n ))}\n </ul>\n </PermissionsCard>\n );\n};\n\nexport default UnsuccessfulSetup;\n","import { useEffect, useState } from 'react';\nimport { useBrowser } from '../../hooks';\nimport { useGlue42Home } from '../glue42-home-provider/glue42-home-provider';\n\nexport const useEdgeNotificationsPermission = ({\n edgeNotificationsPermissionTimeout,\n isNotificationsPermissionPromptOpen,\n}: {\n edgeNotificationsPermissionTimeout: number;\n isNotificationsPermissionPromptOpen: boolean;\n}): { hasEdgeNotificationsPermissionError: boolean } => {\n const { name: browserName } = useBrowser();\n const { permission } = useGlue42Home();\n const [hasEdgeNotificationsPermissionError, setHasEdgeNotificationsPermissionError] = useState(false);\n\n useEffect(() => {\n if (!isNotificationsPermissionPromptOpen || browserName !== 'Edge') {\n return;\n }\n\n const timerId = setTimeout(() => setHasEdgeNotificationsPermissionError(true), edgeNotificationsPermissionTimeout);\n\n return () => clearTimeout(timerId);\n }, [browserName, edgeNotificationsPermissionTimeout, isNotificationsPermissionPromptOpen]);\n\n useEffect(() => {\n if (!hasEdgeNotificationsPermissionError) {\n return;\n }\n\n const isNotificationsPermissionGranted = permission.statuses.some(\n ({ name, state }) => name === 'notifications' && state === 'granted'\n );\n\n if (isNotificationsPermissionGranted) {\n setHasEdgeNotificationsPermissionError(false);\n }\n }, [hasEdgeNotificationsPermissionError, permission.statuses]);\n\n return {\n hasEdgeNotificationsPermissionError,\n };\n};\n","import { useState } from 'react';\nimport { Button } from 'reactstrap';\nimport { PERMISSION_STEPS } from './constants';\nimport { PermissionsCard } from './permissions-card';\nimport { PermissionsList } from './permissions-list';\nimport { SomethingWentWrong } from './something-went-wrong';\nimport { UnsuccessfulSetup } from './unsuccessful-setup';\nimport { useEdgeNotificationsPermission } from './use-edge-notifications-permission';\nimport { useGlue42Home } from '../glue42-home-provider/glue42-home-provider';\nimport './permissions.scss';\n\ninterface PermissionStepsProps {\n settings: { edgeNotificationsPermissionTimeout: number };\n}\n\nexport const PermissionSteps = ({ settings }: PermissionStepsProps) => {\n const { permission } = useGlue42Home();\n const [somethingWentWrong, setSomethingWentWrong] = useState(false);\n const [isPermissionsPromptOpen, setIsPermissionsPromptOpen] = useState(false);\n const pendingPermission = permission.statuses.find(({ state }) => state === 'prompt');\n const { hasEdgeNotificationsPermissionError } = useEdgeNotificationsPermission({\n edgeNotificationsPermissionTimeout: settings.edgeNotificationsPermissionTimeout,\n isNotificationsPermissionPromptOpen: isPermissionsPromptOpen && pendingPermission?.name === 'notifications',\n });\n\n if (!pendingPermission || permission.isDenied) {\n throw new Error(\n 'The \"PermissionSteps\" component should not be used in case there is no pending permission or there is a denied permission.'\n );\n }\n\n if (hasEdgeNotificationsPermissionError) {\n return <UnsuccessfulSetup deniedPermissionName=\"notifications\" />;\n }\n\n const step = PERMISSION_STEPS[pendingPermission.name];\n const openPermissionsPrompt = () => {\n setIsPermissionsPromptOpen(true);\n step.openPermissionsPrompt({\n handleDeferredPermission: () => setSomethingWentWrong(true),\n handlePermissionsPromptClose: () => setIsPermissionsPromptOpen(false),\n });\n };\n const handleReopenPromptClick = () => {\n setSomethingWentWrong(false);\n openPermissionsPrompt();\n };\n\n return somethingWentWrong ? (\n <SomethingWentWrong onReopenPromptClick={handleReopenPromptClick} />\n ) : (\n <PermissionsCard description={step.description} heading={step.heading} Image={step.Image} title=\"First-Time User Setup\">\n <PermissionsList isActiveItem={(name) => name === pendingPermission.name} permissionStatuses={permission.statuses} />\n <p className=\"mb-12 description\">Click \"Allow\" when the prompt appears.</p>\n <Button\n className=\"g42-btn-primary permissions-prompt-button\"\n disabled={isPermissionsPromptOpen}\n onClick={openPermissionsPrompt}\n >\n Open Permission Prompt\n </Button>\n {isPermissionsPromptOpen && <span className=\"loader\" />}\n </PermissionsCard>\n );\n};\n\nexport default PermissionSteps;\n","import { PermissionSteps } from './permissions-steps';\nimport { UnsuccessfulSetup } from './unsuccessful-setup';\nimport { useGlue42Home } from '../glue42-home-provider/glue42-home-provider';\nimport './permissions.scss';\n\ninterface PermissionsSetupFlowProps {\n settings: { edgeNotificationsPermissionTimeout: number };\n}\n\nexport const PermissionsSetupFlow = ({ settings }: PermissionsSetupFlowProps) => {\n const { permission } = useGlue42Home();\n\n if (permission.isLoading) {\n return (\n <>\n <div className=\"mb-32\">Checking browser permissions ...</div>\n <div className=\"loader\" />\n </>\n );\n }\n\n if (permission.isDenied) {\n return <UnsuccessfulSetup />;\n }\n\n return <PermissionSteps settings={settings} />;\n};\n","import { DEFAULT_SETTINGS } from './constants';\nimport { LoginLogo } from '../login/login-logo';\nimport { PermissionsSetupFlow } from './permissions-setup-flow';\nimport './permissions.scss';\n\ninterface PermissionsSetupProps {\n components?: {\n Logo?: React.ComponentType<{ className?: string }>;\n };\n settings?: {\n edgeNotificationsPermissionTimeout?: number;\n };\n}\n\nexport const PermissionsSetup = ({ components: { Logo = LoginLogo } = {}, settings = {} }: PermissionsSetupProps) => (\n <div className=\"permissions-setup\">\n <div className=\"permissions-wrapper\">\n <Logo className=\"mb-32\" />\n <PermissionsSetupFlow settings={{ ...DEFAULT_SETTINGS, ...settings }} />\n </div>\n </div>\n);\n\nexport default PermissionsSetup;\n"],"names":["fromEntries","entries","acc","_ref","key","value","useIsomorphicLayoutEffect","React","top","bottom","right","left","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","placement","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","element","getWindow","node","ownerDocument","isElement","OwnElement","isHTMLElement","isShadowRoot","applyStyles","state","name","style","attributes","effect","_ref2","initialStyles","styleProperties","property","attribute","applyStyles$1","getBasePlacement","max","min","round","getUAString","uaData","item","isLayoutViewport","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","x","y","width","height","getLayoutRect","contains","parent","child","rootNode","next","getComputedStyle","isTableElement","getDocumentElement","getParentNode","getTrueOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","getOffsetParent","window","offsetParent","getMainAxisFromPlacement","within","mathMax","mathMin","withinMaxClamp","v","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","keys","hashMap","toPaddingObject","padding","arrow","_state$modifiersData$","options","arrowElement","popperOffsets","basePlacement","axis","isVertical","len","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","offset","axisProp","_options$element","arrow$1","getVariation","unsetSides","roundOffsetsByDPR","win","dpr","mapToStyles","_Object$assign2","popperRect","variation","offsets","position","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","_ref4","_Object$assign","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","transitionProperty","computeStyles$1","passive","instance","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","eventListeners","hash","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","scrollLeft","scrollTop","getWindowScrollBarX","getViewportRect","strategy","html","layoutViewport","getDocumentRect","_element$ownerDocumen","winScroll","body","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getScrollParent","listScrollParents","list","isBody","target","updatedList","rectToClientRect","rect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","a","b","getExpandedFallbackPlacements","oppositePlacement","flip","_options$mainAxis","checkMainAxis","_options$altAxis","checkAltAxis","specifiedFallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","fallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","i","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","_i","fittingPlacement","_ret","flip$1","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","hide$2","distanceAndSkiddingToXY","rects","invertDistance","skidding","distance","_options$offset","data","_data$state$placement","offset$1","popperOffsets$1","getAltAxis","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","altAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_len","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","preventOverflow$1","getHTMLElementScroll","getNodeScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","documentElement","order","modifiers","map","visited","result","modifier","sort","requires","dep","depModifier","orderModifiers","orderedModifiers","phase","debounce","fn","pending","resolve","format","str","args","_key","p","c","INVALID_MODIFIER_ERROR","MISSING_DEPENDENCY_ERROR","VALID_PROPERTIES","validateModifiers","index","self","s","requirement","mod","uniqueBy","arr","identifiers","identifier","mergeByName","merged","current","existing","INVALID_ELEMENT_ERROR","INFINITE_LOOP_ERROR","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","m","flipModifier","marginTop","marginRight","marginBottom","marginLeft","margin","runModifierEffects","_state$elements","__debug_loops__","_state$orderedModifie","_state$orderedModifie2","_ref3$options","cleanupFn","noopFn","createPopper","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","length","it","reactFastCompare","error","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","prevOptions","optionsWithDefaults","_React$useState","setState","updateStateModifier","elements","ReactDOM","popperOptions","newOptions","isEqual","popperInstanceRef","defaultCreatePopper","popperInstance","hasOwn","classNames","classes","arg","argType","inner","module","isClickKeypress","onClickA11y","clickHandler","keydownHandler","e","keyboardNavigation","event","currentIndex","moveFocus","onClose","Icon","forwardRef","props","ref","size","className","handleClick","rest","jsx","ContextMenu","actions","onActionItemClick","itemRefs","useRef","focusedItemIndex","setFocusedItemIndex","useState","newIndex","useEffect","action","DropdownButton","iconName","iconSize","isTabStop","showContextMenu","setShowContextMenu","setReferenceElement","setPopperElement","styles","handleBlur","handleIconClick","prevValue","handleActionItemClick","jsxs","Fragment","isSection","ITEM_TYPES","APPLICATION_ACTIONS_NAMES","WORKSPACE_ACTIONS_NAMES","LAYOUT_ACTIONS_NAMES","APPLICATION_ACTIONS","WORKSPACE_ACTIONS","generateItems","items","newItem","path","separator","currentFolder","nestedFolders","sectionIndex","section","getApplicationsSectionConfig","applications","runningInstances","application","ImgIcon","alt","BaseSectionHeader","iconSrc","title","domProps","useApplications","setApplications","glue","useContext","GlueContext","unsubscribeOnAppAdded","addedApplication","prevApplications","unsubscribeOnAppChanged","changedApplication","unsubscribeOnAppRemoved","removedApplication","unsubscribeFns","unsubscribeFn","useApplicationsInstances","setRunningInstances","unsubscribeOnInstanceStarted","startedInstance","prevRunningInstances","appCurrentRunningInstances","unsubscribeOnInstanceStopped","stoppedInstance","instanceId","SELECTED_LAYOUT_SESSION_STORAGE_KEY","DEFAULT_LAYOUT_LOCAL_STORAGE_KEY","FAVORITE_ENTITIES_LOCAL_STORAGE_KEY","useStorage","type","decoder","storedValue","setStoredValue","customEventType","eventHandler","setValue","useCallback","valueToDecode","decoderResult","valueToStore","ok","err","asPromise","r","withDefault","defaultValue","withException","f","map2","ar","br","mapError","andThen","__assign","n","__rest","t","isJsonArray","json","isJsonObject","typeString","expectedGot","expected","got","printPath","paths","prependAt","newAt","_a","at","Decoder","decode","_this","test","errorMessage","decoders","obj","decodeValue_1","err$$1","nth","ad","bd","ds","errors","errorsList","jsonAtPath","fixedValue","mkDecoder","string","boolean","object","array","optional","nonEmptyStringDecoder","contextMenuActionDecoder","favoriteEntityDecoder","favoriteEntitiesStorageValueDecoder","useFavoriteEntities","favoriteEntitiesStoredValue","setFavoriteEntitiesStoredValue","isOpen","prevFavoriteEntitiesStoredValue","favoriteEntities","existingEntity","entity","useFrame","currentFrame","setCurrentFrame","frameID","getFrameId","useInvokeInteropMethod","method","usePressedKeys","pressedKeys","setPressedKeys","onKeyDown","onKeyUp","onBlur","MODIFIER_KEYS","useRestoreWorkspace","frame","id","restoreOptions","useSearch","searchTerm","resultsToRender","setResultsToRender","isLoading","setIsLoading","queryRef","currentResults","query","unsubscribeOnResults","response","queryResult","unsubscribeOnCompleted","unsubscribeOnError","useStartApplication","selectedWorkspace","wsp","outermostChild","useWorkspaces","workspaces","setWorkspaces","isUnsubscribed","unsubscribeOnSavedPromise","unsubscribeOnRemovedPromise","promise","useWorkspacesInstances","unsubscribeArr","unsubscribeOnAdd","workspace","unsubscribeOnClosed","workspaceId","updated","unsubscribe","handleOpenInNewWindow","handleOpenInNewWorkspace","builderConfig","builder","applicationActionExecutors","useExecuteApplicationAction","actionName","handleOpenInNewFrame","handleDelete","workspaceActionExecutors","useExecuteWorkspaceAction","undefined","LIBVERSION","EMPTY","UNKNOWN","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","UA_MAX_LENGTH","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","EDGE","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","MAC_OS","extend","regexes","extensions","mergedRegexes","enumerize","enums","has","str1","str2","lowerize","majorize","version","trim","rgxMapper","ua","arrays","j","k","q","matches","match","regex","strMapper","oldSafariMap","windowsVersionMap","UAParser","_navigator","_ua","_uach","_rgxmap","_isSelfNav","_browser","_cpu","_device","_engine","_os","exports","$","parser","prop","this","uaParser","useBrowser","BaseSectionItem","isFavoritismEnabled","onClick","focused","toggleFavorite","description","icon","contextMenuActions","isFavorite","LaunchpadAPIContext","createContext","useLaunchpadAPI","context","LaunchpadAPIProvider","children","setOpen","launchpadAPI","useMemo","DEFAULT_GLOBAL_LAYOUT","DEFAULT_DISPLAY_COUNT","BaseSection","config","level","onItemClick","page","setPage","displayCount","pressedKey","liRefs","sectionItemsToShow","nonSectionItemsToShow","handleShowMoreClick","previousPage","idx","getItemName","getClickedItem","clickedItemName","buildItemsMapping","mapping","SectionContext","useSection","SectionProvider","clickData","setClickData","Section","handleItemClick","_","params","selectedContextMenuActionName","clickedItem","ApplicationsSection","startApplication","executeApplicationAction","Button","color","ButtonGroup","btn","btnRest","getFavoritesSectionConfig","favorites","FavoritesSection","SettingsCard","themes","setThemes","allThemes","handleThemeChange","displayName","layoutStorageValueDecoder","SupportCard","links","onLogout","setSelectedLayout","handleLogout","getInitials","ProfileDetailsCard","user","ProfileSettings","Modal","mountNode","afterClose","visible","modalRef","initializeRef","modalElement","animationEndHandler","content","createPortal","symModalId","initialState","NiceModalContext","NiceModalIdContext","MODAL_REGISTRY","ALREADY_MOUNTED","uidSeed","dispatch","getUid","reducer","_b","_c","_d","modalId","newState","_e","flags","showModal","setModalFlags","hideModal","removeModal","modalCallbacks","hideModalCallbacks","getModalId","modal","show","register","theResolve_1","theReject_1","reject","theResolve_2","theReject_2","remove","setFlags","useModal","modals","contextModalId","isUseComponent","mid","modalInfo","showCallback","hideCallback","removeCallback","resolveCallback","rejectCallback","resolveHide","create","Comp","defaultVisible","keepMounted","shouldMount","delayVisible","comp","unregister","NiceModalPlaceholder","visibleModalIds","toRender","InnerContextProvider","useReducer","Provider","givenDispatch","givenModals","ModalDef","component","antdModal","antdDrawer","muiDialog","bootstrapDialog","NiceModal","ProfileModal","LayoutActions","label","kind","disabled","LayoutItem","layout","onLayoutItemClick","setDefaultLayout","deleteLayout","handleActionClick","layoutContextMenuActions","LayoutSettings","layouts","inputValue","onInputChange","d","g","h","w","z","u","A","reactIs_production_min","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","typeOf","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","require$$0","require$$1","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","source","from","to","symbols","ReactPropTypesSecret","ReactPropTypesSecret_1","printWarning","loggedTypeFailures","text","message","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","ex","stack","checkPropTypes_1","ReactIs","assign","require$$2","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","createAnyTypeChecker","createArrayOfTypeChecker","createElementTypeChecker","createElementTypeTypeChecker","createInstanceTypeChecker","createNodeChecker","createObjectOfTypeChecker","createEnumTypeChecker","createUnionTypeChecker","createShapeTypeChecker","createStrictShapeTypeChecker","is","PropTypeError","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","propName","propFullName","secret","cacheKey","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedTypesMessage","isNode","invalidValidatorError","shapeTypes","allKeys","iterator","step","entry","isSymbol","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","_typeof","globalCssModule","mapToCssModules","cssModule","omit","omitKeys","pick","pickKeys","warned","warnOnce","DOMElement","PropTypes","tagPropType","TransitionTimeouts","TransitionPropTypeKeys","TransitionStatuses","_excluded","_extends","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","propTypes","defaultProps","CloseButton","variant","innerRef","active","ariaLabel","block","close","outline","Tag","btnOutlineColor","_setPrototypeOf","o","_inheritsLoose","subClass","superClass","setPrototypeOf","config$1","timeoutsShape","TransitionGroupContext","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","parentGroup","appear","initialStatus","prevState","nextIn","_proto","prevProps","nextStatus","status","timeout","exit","enter","mounting","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","_this3","nextState","callback","_this4","handler","doesNotHaveTimeoutOrListener","maybeNextCallback","_this$props","childProps","pt","noop","Transition$1","_transitionStatusToCl","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_inherits","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","call","_assertThisInitialized","ownKeys","enumerableOnly","sym","_objectSpread","_defineProperty","transitionStatusToClassHash","getTransitionClass","Collapse","_Component","_super","isAppearing","horizontal","navbar","otherProps","dimension","transitionProps","collapseClass","Component","Collapse$1","Form","Form$1","FormGroup","row","inline","floating","switchProp","formCheck","Input","bsSize","valid","invalid","tag","addon","plaintext","checkInput","isNotaNumber","textareaInput","selectInput","rangeInput","formControlClass","Input$1","tryLoadSystemDefaultLayout","defaultLayout","restoreLayout","NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING","LayoutNotification","LayoutSettingsContainer","setShow","setLayouts","notification","setNotification","selectedLayout","containerRef","footerRef","setInputValue","addedLayout","unsubscribeOnRemoved","removedLayout","timerId","createActionClickHandler","cb","SearchBar","onSearch","onClear","getSearchResultsSectionConfigs","results","searchResultsSections","SearchResults","invokeInteropMethod","restoreWorkspace","configs","executeWorkspaceAction","executeSelectedAction","execute","mainAction","contextMenuAction","formatDate","timestamp","date","hours","minutes","seconds","amPm","month","day","year","severityColors","NotificationToast","severity","onActionClick","SEVERITY_ORDER","DEFAULT_SORT","useNotificationsSort","cycleSortDirectionRef","createSortDirectionCycle","activeSort","setActiveSort","notifications","sortDirection","defaultSeverity","aSeverity","bSeverity","initial","all","NotificationsPanel","setNotifications","onNotificationsSort","sortNotifications","onCloseNotificationClick","unsubscribeRaised","glueNotification","unsubscribeClosed","glueNotifications","onClearAllClick","onNotificationClick","clickInterop","interop","onClearAllOldClick","NotificationsModal","getWorkspacesSectionConfig","WorkspacesSection","Launchpad","open","components","setSearchTerm","searchInputRef","getModalName","openModal","handleSearch","handleClear","sections","SearchResultsSection","LoginForm","email","password","canSubmit","onSubmit","onChange","handleKeyUp","LoginHeading","LOGO_WIDTH","LoginLogo","logoSrc","emailReducer","isValid","validationError","passwordReducer","Login","onLogin","loginErrorMessage","formIsValid","setFormIsValid","emailState","dispatchEmail","passwordState","dispatchPassword","emailValid","passwordValid","timer","handleChange","handleSubmit","Logo","Heading","LoginLoader","LoginAuth0","SlidePanel","wrapperRef","logoContainerRef","handleMouseup","isOutsideClick","LaunchpadSlidePanel","BrowserNotificationsIcon","ReopenPromptIcon","WarningIcon","WindowPlacementIcon","PERMISSION_STEPS","handleDeferredPermission","handlePermissionsPromptClose","DEFAULT_SETTINGS","PermissionsCard","heading","Image","PermissionsList","isActiveItem","permissionStatuses","permissionName","permissionStep","isActive","SomethingWentWrong","onReopenPromptClick","PERMISSION_NAMES","getPermissionStatuses","Glue42HomeContext","useGlue42Home","Glue42HomeProvider","setPermissionStatuses","isPermissionLoading","permission","isPermissionSetupCompletedRef","unsubscribeFunctionsPromise","unsubscribeFunctions","isReloaded","permissionStatus","changeListener","permissions","UnsuccessfulSetup","deniedPermissionName","browserName","deniedPermissionStatuses","useEdgeNotificationsPermission","edgeNotificationsPermissionTimeout","isNotificationsPermissionPromptOpen","hasEdgeNotificationsPermissionError","setHasEdgeNotificationsPermissionError","PermissionSteps","settings","somethingWentWrong","setSomethingWentWrong","isPermissionsPromptOpen","setIsPermissionsPromptOpen","pendingPermission","openPermissionsPrompt","handleReopenPromptClick","PermissionsSetupFlow","PermissionsSetup"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../node_modules/react-popper/lib/esm/utils.js","../../../node_modules/@popperjs/core/lib/enums.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../../../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../../../node_modules/@popperjs/core/lib/modifiers/applyStyles.js","../../../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../../../node_modules/@popperjs/core/lib/utils/math.js","../../../node_modules/@popperjs/core/lib/utils/userAgent.js","../../../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../../../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/contains.js","../../../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../../../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../../../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../../../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../../../node_modules/@popperjs/core/lib/utils/within.js","../../../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../../../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../../../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../../../node_modules/@popperjs/core/lib/modifiers/arrow.js","../../../node_modules/@popperjs/core/lib/utils/getVariation.js","../../../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../../../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../../../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../../../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../../../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../../../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../../../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../../../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../../../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../../../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../../../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../../../node_modules/@popperjs/core/lib/modifiers/flip.js","../../../node_modules/@popperjs/core/lib/modifiers/hide.js","../../../node_modules/@popperjs/core/lib/modifiers/offset.js","../../../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../../../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../../../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../../../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../../../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../../../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../../../node_modules/@popperjs/core/lib/utils/debounce.js","../../../node_modules/@popperjs/core/lib/utils/format.js","../../../node_modules/@popperjs/core/lib/utils/validateModifiers.js","../../../node_modules/@popperjs/core/lib/utils/uniqueBy.js","../../../node_modules/@popperjs/core/lib/utils/mergeByName.js","../../../node_modules/@popperjs/core/lib/createPopper.js","../../../node_modules/@popperjs/core/lib/popper.js","../../../node_modules/react-fast-compare/index.js","../../../node_modules/react-popper/lib/esm/usePopper.js","../../../node_modules/classnames/index.js","../../../packages/home-ui-react/src/helpers/a11y.ts","../../../packages/home-ui-react/src/lib/icon/icon.tsx","../../../packages/home-ui-react/src/lib/context-menu/context-menu.tsx","../../../packages/home-ui-react/src/lib/context-menu/dropdown-button/dropdown-button.tsx","../../../packages/home-ui-react/src/lib/base-section/helpers.ts","../../../packages/home-ui-react/src/constants/itemTypes.ts","../../../packages/home-ui-react/src/lib/context-menu/constants.ts","../../../packages/home-ui-react/src/lib/applications-section/helpers.ts","../../../packages/home-ui-react/src/lib/img-icon/img-icon.tsx","../../../packages/home-ui-react/src/lib/base-section/base-section-header.tsx","../../../packages/home-ui-react/src/hooks/useApplications.ts","../../../packages/home-ui-react/src/hooks/useApplicationsInstances.ts","../../../packages/home-ui-react/src/constants/storageKeys.ts","../../../packages/home-ui-react/src/hooks/useStorage.ts","../../../node_modules/decoder-validate/dist/index.es5.js","../../../packages/home-ui-react/src/decoders/base.ts","../../../packages/home-ui-react/src/decoders/context-menu.ts","../../../packages/home-ui-react/src/decoders/favorites.ts","../../../packages/home-ui-react/src/hooks/useFavoriteEntities.ts","../../../packages/home-ui-react/src/hooks/useFrame.ts","../../../packages/home-ui-react/src/hooks/useInvokeInteropMethod.ts","../../../packages/home-ui-react/src/hooks/useLayouts.ts","../../../packages/home-ui-react/src/hooks/useNotifications.ts","../../../packages/home-ui-react/src/lib/notifications-panel/constants.ts","../../../packages/home-ui-react/src/executors/notificationsSort.ts","../../../packages/home-ui-react/src/hooks/useNotificationsSort.ts","../../../packages/home-ui-react/src/hooks/usePressedKeys.ts","../../../packages/home-ui-react/src/constants/modifierKeys.ts","../../../packages/home-ui-react/src/hooks/useRestoreWorkspace.ts","../../../packages/home-ui-react/src/hooks/useRestoreLayout.ts","../../../packages/home-ui-react/src/hooks/useSearch.ts","../../../packages/home-ui-react/src/hooks/useStartApplication.ts","../../../packages/home-ui-react/src/hooks/useWorkspaces.ts","../../../packages/home-ui-react/src/hooks/useWorkspacesInstances.ts","../../../packages/home-ui-react/src/executors/applicationActions.ts","../../../packages/home-ui-react/src/hooks/useExecuteApplicationAction.ts","../../../packages/home-ui-react/src/executors/workspaceActions.ts","../../../packages/home-ui-react/src/hooks/useExecuteWorkspaceAction.ts","../../../packages/home-ui-react/src/executors/layoutActions.ts","../../../packages/home-ui-react/src/hooks/useExecuteLayoutAction.ts","../../../node_modules/ua-parser-js/src/ua-parser.js","../../../packages/home-ui-react/src/hooks/useUA.ts","../../../packages/home-ui-react/src/lib/base-section/base-section-item.tsx","../../../packages/home-ui-react/src/decoders/layouts.ts","../../../packages/home-ui-react/src/constants/defaults.ts","../../../packages/home-ui-react/src/lib/launchpad/launchpad.context.tsx","../../../packages/home-ui-react/src/lib/base-section/base-section.tsx","../../../packages/home-ui-react/src/lib/section/helpers.ts","../../../packages/home-ui-react/src/lib/section/section.context.tsx","../../../packages/home-ui-react/src/lib/section/section.tsx","../../../packages/home-ui-react/src/lib/applications-section/applications-section.tsx","../../../packages/home-ui-react/src/lib/button/button.tsx","../../../packages/home-ui-react/src/lib/button-group/button-group.tsx","../../../packages/home-ui-react/src/lib/favorites-section/helpers.ts","../../../packages/home-ui-react/src/lib/favorites-section/favorites-section.tsx","../../../packages/home-ui-react/src/lib/launchpad/features/profile-settings/profile-icon.tsx","../../../packages/home-ui-react/src/lib/settings-card/settings-card.tsx","../../../packages/home-ui-react/src/lib/support-card/support-card.tsx","../../../packages/home-ui-react/src/helpers/string.ts","../../../packages/home-ui-react/src/lib/profile-details-card/profile-details-card.tsx","../../../packages/home-ui-react/src/lib/launchpad/features/profile-settings/profile-settings.tsx","../../../packages/home-ui-react/src/lib/search/search-bar/search-bar.tsx","../../../packages/home-ui-react/src/lib/search/search-results-section/helpers.ts","../../../packages/home-ui-react/src/lib/search/search-results-section/search-results-section.tsx","../../../packages/home-ui-react/src/lib/workspaces-section/helpers.ts","../../../packages/home-ui-react/src/lib/workspaces-section/workspaces-section.tsx","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../../node_modules/prop-types/node_modules/react-is/index.js","../../../node_modules/object-assign/index.js","../../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../../node_modules/prop-types/lib/has.js","../../../node_modules/prop-types/checkPropTypes.js","../../../node_modules/prop-types/factoryWithTypeCheckers.js","../../../node_modules/prop-types/factoryWithThrowingShims.js","../../../node_modules/prop-types/index.js","../../../node_modules/reactstrap/esm/utils.js","../../../node_modules/reactstrap/esm/CloseButton.js","../../../node_modules/reactstrap/esm/Button.js","../../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../../../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../../../node_modules/react-transition-group/esm/config.js","../../../node_modules/react-transition-group/esm/utils/PropTypes.js","../../../node_modules/react-transition-group/esm/TransitionGroupContext.js","../../../node_modules/react-transition-group/esm/utils/reflow.js","../../../node_modules/react-transition-group/esm/Transition.js","../../../node_modules/reactstrap/esm/Collapse.js","../../../node_modules/reactstrap/esm/Form.js","../../../node_modules/reactstrap/esm/FormGroup.js","../../../node_modules/reactstrap/esm/Input.js","../../../packages/home-ui-react/src/lib/layouts-panel/constants.ts","../../../packages/home-ui-react/src/lib/layouts-panel/helpers.ts","../../../packages/home-ui-react/src/lib/layouts-panel/available-layouts.tsx","../../../packages/home-ui-react/src/lib/layouts-panel/layout-actions.tsx","../../../packages/home-ui-react/src/lib/layouts-panel/layouts-notification.tsx","../../../packages/home-ui-react/src/lib/layouts-panel/layouts-panel.tsx","../../../packages/home-ui-react/src/helpers/date.ts","../../../packages/home-ui-react/src/lib/notifications-panel/notification.tsx","../../../packages/home-ui-react/src/lib/notifications-panel/notifications-badge.tsx","../../../packages/home-ui-react/src/lib/notifications-panel/notifications-icon.tsx","../../../packages/home-ui-react/src/lib/notifications-panel/notifications-panel.tsx","../../../packages/home-ui-react/src/lib/dialog/dialog.tsx","../../../packages/home-ui-react/src/lib/launchpad/launchpad.tsx","../../../packages/home-ui-react/src/lib/login/login-form.tsx","../../../packages/home-ui-react/src/lib/login/login-heading.tsx","../../../packages/home-ui-react/src/lib/login/constants.ts","../../../packages/home-ui-react/src/lib/login/login-logo.tsx","../../../packages/home-ui-react/src/lib/login/reducers.ts","../../../packages/home-ui-react/src/lib/login/login.tsx","../../../packages/home-ui-react/src/lib/login/login-loader.tsx","../../../packages/home-ui-react/src/lib/login/login-auth0.tsx","../../../packages/home-ui-react/src/lib/logo/logo.tsx","../../../packages/home-ui-react/src/lib/panels/slide-panel.tsx","../../../packages/home-ui-react/src/lib/panels/launchpad-slide-panel.tsx","../../../packages/home-ui-react/src/lib/icon-components/browser-notifications-icon.tsx","../../../packages/home-ui-react/src/lib/icon-components/reopen-prompt-icon.tsx","../../../packages/home-ui-react/src/lib/icon-components/warning-icon.tsx","../../../packages/home-ui-react/src/lib/icon-components/window-placement-icon.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/constants.ts","../../../packages/home-ui-react/src/lib/permissions-setup/permissions-card.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/permissions-list.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/something-went-wrong.tsx","../../../packages/home-ui-react/src/lib/io-connect-home-provider/constants.ts","../../../packages/home-ui-react/src/lib/io-connect-home-provider/helpers.ts","../../../packages/home-ui-react/src/lib/io-connect-home-provider/io-connect-home-provider.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/unsuccessful-setup.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/use-edge-notifications-permission.ts","../../../packages/home-ui-react/src/lib/permissions-setup/permissions-steps.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/permissions-setup-flow.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/permissions-setup.tsx"],"sourcesContent":["import * as React from 'react';\n\n/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === 'function') {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === 'function') {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};\n/**\n * Simple ponyfill for Object.fromEntries\n */\n\nexport var fromEntries = function fromEntries(entries) {\n return entries.reduce(function (acc, _ref) {\n var key = _ref[0],\n value = _ref[1];\n acc[key] = value;\n return acc;\n }, {});\n};\n/**\n * Small wrapper around `useLayoutEffect` to get rid of the warning on SSR envs\n */\n\nexport var useIsomorphicLayoutEffect = typeof window !== 'undefined' && window.document && window.document.createElement ? React.useLayoutEffect : React.useEffect;","export var top = 'top';\nexport var bottom = 'bottom';\nexport var right = 'right';\nexport var left = 'left';\nexport var auto = 'auto';\nexport var basePlacements = [top, bottom, right, left];\nexport var start = 'start';\nexport var end = 'end';\nexport var clippingParents = 'clippingParents';\nexport var viewport = 'viewport';\nexport var popper = 'popper';\nexport var reference = 'reference';\nexport var variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nexport var placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nexport var beforeRead = 'beforeRead';\nexport var read = 'read';\nexport var afterRead = 'afterRead'; // pure-logic modifiers\n\nexport var beforeMain = 'beforeMain';\nexport var main = 'main';\nexport var afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nexport var beforeWrite = 'beforeWrite';\nexport var write = 'write';\nexport var afterWrite = 'afterWrite';\nexport var modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];","export default function getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}","export default function getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}","import getWindow from \"./getWindow.js\";\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nexport { isElement, isHTMLElement, isShadowRoot };","import getNodeName from \"../dom-utils/getNodeName.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // This modifier takes the styles prepared by the `computeStyles` modifier\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect,\n requires: ['computeStyles']\n};","import { auto } from \"../enums.js\";\nexport default function getBasePlacement(placement) {\n return placement.split('-')[0];\n}","export var max = Math.max;\nexport var min = Math.min;\nexport var round = Math.round;","export default function getUAString() {\n var uaData = navigator.userAgentData;\n\n if (uaData != null && uaData.brands) {\n return uaData.brands.map(function (item) {\n return item.brand + \"/\" + item.version;\n }).join(' ');\n }\n\n return navigator.userAgent;\n}","import getUAString from \"../utils/userAgent.js\";\nexport default function isLayoutViewport() {\n return !/^((?!chrome|android).)*safari/i.test(getUAString());\n}","import { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport { round } from \"../utils/math.js\";\nimport getWindow from \"./getWindow.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getBoundingClientRect(element, includeScale, isFixedStrategy) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n\n var clientRect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1;\n\n if (includeScale && isHTMLElement(element)) {\n scaleX = element.offsetWidth > 0 ? round(clientRect.width) / element.offsetWidth || 1 : 1;\n scaleY = element.offsetHeight > 0 ? round(clientRect.height) / element.offsetHeight || 1 : 1;\n }\n\n var _ref = isElement(element) ? getWindow(element) : window,\n visualViewport = _ref.visualViewport;\n\n var addVisualOffsets = !isLayoutViewport() && isFixedStrategy;\n var x = (clientRect.left + (addVisualOffsets && visualViewport ? visualViewport.offsetLeft : 0)) / scaleX;\n var y = (clientRect.top + (addVisualOffsets && visualViewport ? visualViewport.offsetTop : 0)) / scaleY;\n var width = clientRect.width / scaleX;\n var height = clientRect.height / scaleY;\n return {\n width: width,\n height: height,\n top: y,\n right: x + width,\n bottom: y + height,\n left: x,\n x: x,\n y: y\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\"; // Returns the layout rect of an element relative to its offsetParent. Layout\n// means it doesn't take into account transforms.\n\nexport default function getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}","import { isShadowRoot } from \"./instanceOf.js\";\nexport default function contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}","import getWindow from \"./getWindow.js\";\nexport default function getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}","import getNodeName from \"./getNodeName.js\";\nexport default function isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}","import { isElement } from \"./instanceOf.js\";\nexport default function getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}","import getNodeName from \"./getNodeName.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport { isShadowRoot } from \"./instanceOf.js\";\nexport default function getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}","import getWindow from \"./getWindow.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isHTMLElement, isShadowRoot } from \"./instanceOf.js\";\nimport isTableElement from \"./isTableElement.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getUAString from \"../utils/userAgent.js\";\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = /firefox/i.test(getUAString());\n var isIE = /Trident/i.test(getUAString());\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n if (isShadowRoot(currentNode)) {\n currentNode = currentNode.host;\n }\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nexport default function getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}","export default function getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}","import { max as mathMax, min as mathMin } from \"./math.js\";\nexport function within(min, value, max) {\n return mathMax(min, mathMin(value, max));\n}\nexport function withinMaxClamp(min, value, max) {\n var v = within(min, value, max);\n return v > max ? max : v;\n}","export default function getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}","import getFreshSideObject from \"./getFreshSideObject.js\";\nexport default function mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}","export default function expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport contains from \"../dom-utils/contains.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport { within } from \"../utils/within.js\";\nimport mergePaddingObject from \"../utils/mergePaddingObject.js\";\nimport expandToHashMap from \"../utils/expandToHashMap.js\";\nimport { left, right, basePlacements, top, bottom } from \"../enums.js\";\nimport { isHTMLElement } from \"../dom-utils/instanceOf.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isHTMLElement(arrowElement)) {\n console.error(['Popper: \"arrow\" element must be an HTMLElement (not an SVGElement).', 'To use an SVG arrow, wrap it in an HTMLElement that will be used as', 'the arrow.'].join(' '));\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: \"arrow\" modifier\\'s `element` must be a child of the popper', 'element.'].join(' '));\n }\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};","export default function getVariation(placement) {\n return placement.split('-')[1];\n}","import { top, left, right, bottom, end } from \"../enums.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport getWindow from \"../dom-utils/getWindow.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getComputedStyle from \"../dom-utils/getComputedStyle.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport { round } from \"../utils/math.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(x * dpr) / dpr || 0,\n y: round(y * dpr) / dpr || 0\n };\n}\n\nexport function mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets,\n isFixed = _ref2.isFixed;\n var _offsets$x = offsets.x,\n x = _offsets$x === void 0 ? 0 : _offsets$x,\n _offsets$y = offsets.y,\n y = _offsets$y === void 0 ? 0 : _offsets$y;\n\n var _ref3 = typeof roundOffsets === 'function' ? roundOffsets({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref3.x;\n y = _ref3.y;\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom;\n var offsetY = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.height : // $FlowFixMe[prop-missing]\n offsetParent[heightProp];\n y -= offsetY - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right;\n var offsetX = isFixed && offsetParent === win && win.visualViewport ? win.visualViewport.width : // $FlowFixMe[prop-missing]\n offsetParent[widthProp];\n x -= offsetX - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n var _ref4 = roundOffsets === true ? roundOffsetsByDPR({\n x: x,\n y: y\n }) : {\n x: x,\n y: y\n };\n\n x = _ref4.x;\n y = _ref4.y;\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref5) {\n var state = _ref5.state,\n options = _ref5.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n if (process.env.NODE_ENV !== \"production\") {\n var transitionProperty = getComputedStyle(state.elements.popper).transitionProperty || '';\n\n if (adaptive && ['transform', 'top', 'right', 'bottom', 'left'].some(function (property) {\n return transitionProperty.indexOf(property) >= 0;\n })) {\n console.warn(['Popper: Detected CSS transitions on at least one of the following', 'CSS properties: \"transform\", \"top\", \"right\", \"bottom\", \"left\".', '\\n\\n', 'Disable the \"computeStyles\" modifier\\'s `adaptive` option to allow', 'for smooth transitions, or remove these properties from the CSS', 'transition declaration on the popper element if only transitioning', 'opacity or background-color for example.', '\\n\\n', 'We recommend using the popper element as a wrapper around an inner', 'element that can have any CSS property transitioned for animations.'].join(' '));\n }\n }\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration,\n isFixed: state.options.strategy === 'fixed'\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};","import getWindow from \"../dom-utils/getWindow.js\"; // eslint-disable-next-line import/no-unused-modules\n\nvar passive = {\n passive: true\n};\n\nfunction effect(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect,\n data: {}\n};","var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nexport default function getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}","var hash = {\n start: 'end',\n end: 'start'\n};\nexport default function getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}","import getWindow from \"./getWindow.js\";\nexport default function getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nexport default function getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on <html>\n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}","import getWindow from \"./getWindow.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport isLayoutViewport from \"./isLayoutViewport.js\";\nexport default function getViewportRect(element, strategy) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0;\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n var layoutViewport = isLayoutViewport();\n\n if (layoutViewport || !layoutViewport && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}","import getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getWindowScroll from \"./getWindowScroll.js\";\nimport { max } from \"../utils/math.js\"; // Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable\n\nexport default function getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}","import getComputedStyle from \"./getComputedStyle.js\";\nexport default function isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}","import getParentNode from \"./getParentNode.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nexport default function getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}","import getScrollParent from \"./getScrollParent.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport getWindow from \"./getWindow.js\";\nimport isScrollParent from \"./isScrollParent.js\";\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nexport default function listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}","export default function rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}","import { viewport } from \"../enums.js\";\nimport getViewportRect from \"./getViewportRect.js\";\nimport getDocumentRect from \"./getDocumentRect.js\";\nimport listScrollParents from \"./listScrollParents.js\";\nimport getOffsetParent from \"./getOffsetParent.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport getComputedStyle from \"./getComputedStyle.js\";\nimport { isElement, isHTMLElement } from \"./instanceOf.js\";\nimport getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getParentNode from \"./getParentNode.js\";\nimport contains from \"./contains.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport rectToClientRect from \"../utils/rectToClientRect.js\";\nimport { max, min } from \"../utils/math.js\";\n\nfunction getInnerBoundingClientRect(element, strategy) {\n var rect = getBoundingClientRect(element, false, strategy === 'fixed');\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent, strategy) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element, strategy)) : isElement(clippingParent) ? getInnerBoundingClientRect(clippingParent, strategy) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nexport default function getClippingRect(element, boundary, rootBoundary, strategy) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent, strategy));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}","import getBasePlacement from \"./getBasePlacement.js\";\nimport getVariation from \"./getVariation.js\";\nimport getMainAxisFromPlacement from \"./getMainAxisFromPlacement.js\";\nimport { top, right, bottom, left, start, end } from \"../enums.js\";\nexport default function computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n\n default:\n }\n }\n\n return offsets;\n}","import getClippingRect from \"../dom-utils/getClippingRect.js\";\nimport getDocumentElement from \"../dom-utils/getDocumentElement.js\";\nimport getBoundingClientRect from \"../dom-utils/getBoundingClientRect.js\";\nimport computeOffsets from \"./computeOffsets.js\";\nimport rectToClientRect from \"./rectToClientRect.js\";\nimport { clippingParents, reference, popper, bottom, top, right, basePlacements, viewport } from \"../enums.js\";\nimport { isElement } from \"../dom-utils/instanceOf.js\";\nimport mergePaddingObject from \"./mergePaddingObject.js\";\nimport expandToHashMap from \"./expandToHashMap.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport default function detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$strategy = _options.strategy,\n strategy = _options$strategy === void 0 ? state.strategy : _options$strategy,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary, strategy);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}","import getVariation from \"./getVariation.js\";\nimport { variationPlacements, basePlacements, placements as allPlacements } from \"../enums.js\";\nimport detectOverflow from \"./detectOverflow.js\";\nimport getBasePlacement from \"./getBasePlacement.js\";\nexport default function computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? allPlacements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements;\n\n if (process.env.NODE_ENV !== \"production\") {\n console.error(['Popper: The `allowedAutoPlacements` option did not allow any', 'placements. Ensure the `placement` option matches the variation', 'of the allowed placements.', 'For example, \"auto\" cannot be used to allow \"bottom-start\".', 'Use \"auto-start\" instead.'].join(' '));\n }\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}","import getOppositePlacement from \"../utils/getOppositePlacement.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getOppositeVariationPlacement from \"../utils/getOppositeVariationPlacement.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport computeAutoPlacement from \"../utils/computeAutoPlacement.js\";\nimport { bottom, top, start, right, left, auto } from \"../enums.js\";\nimport getVariation from \"../utils/getVariation.js\"; // eslint-disable-next-line import/no-unused-modules\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};","import { top, bottom, left, right } from \"../enums.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\n\nfunction getSideOffsets(overflow, rect, preventedOffsets) {\n if (preventedOffsets === void 0) {\n preventedOffsets = {\n x: 0,\n y: 0\n };\n }\n\n return {\n top: overflow.top - rect.height - preventedOffsets.y,\n right: overflow.right - rect.width + preventedOffsets.x,\n bottom: overflow.bottom - rect.height + preventedOffsets.y,\n left: overflow.left - rect.width - preventedOffsets.x\n };\n}\n\nfunction isAnySideFullyClipped(overflow) {\n return [top, right, bottom, left].some(function (side) {\n return overflow[side] >= 0;\n });\n}\n\nfunction hide(_ref) {\n var state = _ref.state,\n name = _ref.name;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var preventedOffsets = state.modifiersData.preventOverflow;\n var referenceOverflow = detectOverflow(state, {\n elementContext: 'reference'\n });\n var popperAltOverflow = detectOverflow(state, {\n altBoundary: true\n });\n var referenceClippingOffsets = getSideOffsets(referenceOverflow, referenceRect);\n var popperEscapeOffsets = getSideOffsets(popperAltOverflow, popperRect, preventedOffsets);\n var isReferenceHidden = isAnySideFullyClipped(referenceClippingOffsets);\n var hasPopperEscaped = isAnySideFullyClipped(popperEscapeOffsets);\n state.modifiersData[name] = {\n referenceClippingOffsets: referenceClippingOffsets,\n popperEscapeOffsets: popperEscapeOffsets,\n isReferenceHidden: isReferenceHidden,\n hasPopperEscaped: hasPopperEscaped\n };\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-reference-hidden': isReferenceHidden,\n 'data-popper-escaped': hasPopperEscaped\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'hide',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['preventOverflow'],\n fn: hide\n};","import getBasePlacement from \"../utils/getBasePlacement.js\";\nimport { top, left, right, placements } from \"../enums.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport function distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};","import computeOffsets from \"../utils/computeOffsets.js\";\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};","export default function getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}","import { top, left, right, bottom, start } from \"../enums.js\";\nimport getBasePlacement from \"../utils/getBasePlacement.js\";\nimport getMainAxisFromPlacement from \"../utils/getMainAxisFromPlacement.js\";\nimport getAltAxis from \"../utils/getAltAxis.js\";\nimport { within, withinMaxClamp } from \"../utils/within.js\";\nimport getLayoutRect from \"../dom-utils/getLayoutRect.js\";\nimport getOffsetParent from \"../dom-utils/getOffsetParent.js\";\nimport detectOverflow from \"../utils/detectOverflow.js\";\nimport getVariation from \"../utils/getVariation.js\";\nimport getFreshSideObject from \"../utils/getFreshSideObject.js\";\nimport { min as mathMin, max as mathMax } from \"../utils/math.js\";\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var normalizedTetherOffsetValue = typeof tetherOffsetValue === 'number' ? {\n mainAxis: tetherOffsetValue,\n altAxis: tetherOffsetValue\n } : Object.assign({\n mainAxis: 0,\n altAxis: 0\n }, tetherOffsetValue);\n var offsetModifierState = state.modifiersData.offset ? state.modifiersData.offset[state.placement] : null;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis) {\n var _offsetModifierState$;\n\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min = offset + overflow[mainSide];\n var max = offset - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis : minLen - arrowLen - arrowPaddingMin - normalizedTetherOffsetValue.mainAxis;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis : maxLen + arrowLen + arrowPaddingMax + normalizedTetherOffsetValue.mainAxis;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = (_offsetModifierState$ = offsetModifierState == null ? void 0 : offsetModifierState[mainAxis]) != null ? _offsetModifierState$ : 0;\n var tetherMin = offset + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = offset + maxOffset - offsetModifierValue;\n var preventedOffset = within(tether ? mathMin(min, tetherMin) : min, offset, tether ? mathMax(max, tetherMax) : max);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _offsetModifierState$2;\n\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _len = altAxis === 'y' ? 'height' : 'width';\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var isOriginSide = [top, left].indexOf(basePlacement) !== -1;\n\n var _offsetModifierValue = (_offsetModifierState$2 = offsetModifierState == null ? void 0 : offsetModifierState[altAxis]) != null ? _offsetModifierState$2 : 0;\n\n var _tetherMin = isOriginSide ? _min : _offset - referenceRect[_len] - popperRect[_len] - _offsetModifierValue + normalizedTetherOffsetValue.altAxis;\n\n var _tetherMax = isOriginSide ? _offset + referenceRect[_len] + popperRect[_len] - _offsetModifierValue - normalizedTetherOffsetValue.altAxis : _max;\n\n var _preventedOffset = tether && isOriginSide ? withinMaxClamp(_tetherMin, _offset, _tetherMax) : within(tether ? _tetherMin : _min, _offset, tether ? _tetherMax : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nexport default {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};","export default function getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}","import getWindowScroll from \"./getWindowScroll.js\";\nimport getWindow from \"./getWindow.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getHTMLElementScroll from \"./getHTMLElementScroll.js\";\nexport default function getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}","import getBoundingClientRect from \"./getBoundingClientRect.js\";\nimport getNodeScroll from \"./getNodeScroll.js\";\nimport getNodeName from \"./getNodeName.js\";\nimport { isHTMLElement } from \"./instanceOf.js\";\nimport getWindowScrollBarX from \"./getWindowScrollBarX.js\";\nimport getDocumentElement from \"./getDocumentElement.js\";\nimport isScrollParent from \"./isScrollParent.js\";\nimport { round } from \"../utils/math.js\";\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = round(rect.width) / element.offsetWidth || 1;\n var scaleY = round(rect.height) / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nexport default function getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n var offsetParentIsScaled = isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement, offsetParentIsScaled, isFixed);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent, true);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}","import { modifierPhases } from \"../enums.js\"; // source: https://stackoverflow.com/questions/49875255\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nexport default function orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}","export default function debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}","export default function format(str) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return [].concat(args).reduce(function (p, c) {\n return p.replace(/%s/, c);\n }, str);\n}","import format from \"./format.js\";\nimport { modifierPhases } from \"../enums.js\";\nvar INVALID_MODIFIER_ERROR = 'Popper: modifier \"%s\" provided an invalid %s property, expected %s but got %s';\nvar MISSING_DEPENDENCY_ERROR = 'Popper: modifier \"%s\" requires \"%s\", but \"%s\" modifier is not available';\nvar VALID_PROPERTIES = ['name', 'enabled', 'phase', 'fn', 'effect', 'requires', 'options'];\nexport default function validateModifiers(modifiers) {\n modifiers.forEach(function (modifier) {\n [].concat(Object.keys(modifier), VALID_PROPERTIES) // IE11-compatible replacement for `new Set(iterable)`\n .filter(function (value, index, self) {\n return self.indexOf(value) === index;\n }).forEach(function (key) {\n switch (key) {\n case 'name':\n if (typeof modifier.name !== 'string') {\n console.error(format(INVALID_MODIFIER_ERROR, String(modifier.name), '\"name\"', '\"string\"', \"\\\"\" + String(modifier.name) + \"\\\"\"));\n }\n\n break;\n\n case 'enabled':\n if (typeof modifier.enabled !== 'boolean') {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"enabled\"', '\"boolean\"', \"\\\"\" + String(modifier.enabled) + \"\\\"\"));\n }\n\n break;\n\n case 'phase':\n if (modifierPhases.indexOf(modifier.phase) < 0) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"phase\"', \"either \" + modifierPhases.join(', '), \"\\\"\" + String(modifier.phase) + \"\\\"\"));\n }\n\n break;\n\n case 'fn':\n if (typeof modifier.fn !== 'function') {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"fn\"', '\"function\"', \"\\\"\" + String(modifier.fn) + \"\\\"\"));\n }\n\n break;\n\n case 'effect':\n if (modifier.effect != null && typeof modifier.effect !== 'function') {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"effect\"', '\"function\"', \"\\\"\" + String(modifier.fn) + \"\\\"\"));\n }\n\n break;\n\n case 'requires':\n if (modifier.requires != null && !Array.isArray(modifier.requires)) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"requires\"', '\"array\"', \"\\\"\" + String(modifier.requires) + \"\\\"\"));\n }\n\n break;\n\n case 'requiresIfExists':\n if (!Array.isArray(modifier.requiresIfExists)) {\n console.error(format(INVALID_MODIFIER_ERROR, modifier.name, '\"requiresIfExists\"', '\"array\"', \"\\\"\" + String(modifier.requiresIfExists) + \"\\\"\"));\n }\n\n break;\n\n case 'options':\n case 'data':\n break;\n\n default:\n console.error(\"PopperJS: an invalid property has been provided to the \\\"\" + modifier.name + \"\\\" modifier, valid properties are \" + VALID_PROPERTIES.map(function (s) {\n return \"\\\"\" + s + \"\\\"\";\n }).join(', ') + \"; but \\\"\" + key + \"\\\" was provided.\");\n }\n\n modifier.requires && modifier.requires.forEach(function (requirement) {\n if (modifiers.find(function (mod) {\n return mod.name === requirement;\n }) == null) {\n console.error(format(MISSING_DEPENDENCY_ERROR, String(modifier.name), requirement, requirement));\n }\n });\n });\n });\n}","export default function uniqueBy(arr, fn) {\n var identifiers = new Set();\n return arr.filter(function (item) {\n var identifier = fn(item);\n\n if (!identifiers.has(identifier)) {\n identifiers.add(identifier);\n return true;\n }\n });\n}","export default function mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}","import getCompositeRect from \"./dom-utils/getCompositeRect.js\";\nimport getLayoutRect from \"./dom-utils/getLayoutRect.js\";\nimport listScrollParents from \"./dom-utils/listScrollParents.js\";\nimport getOffsetParent from \"./dom-utils/getOffsetParent.js\";\nimport getComputedStyle from \"./dom-utils/getComputedStyle.js\";\nimport orderModifiers from \"./utils/orderModifiers.js\";\nimport debounce from \"./utils/debounce.js\";\nimport validateModifiers from \"./utils/validateModifiers.js\";\nimport uniqueBy from \"./utils/uniqueBy.js\";\nimport getBasePlacement from \"./utils/getBasePlacement.js\";\nimport mergeByName from \"./utils/mergeByName.js\";\nimport detectOverflow from \"./utils/detectOverflow.js\";\nimport { isElement } from \"./dom-utils/instanceOf.js\";\nimport { auto } from \"./enums.js\";\nvar INVALID_ELEMENT_ERROR = 'Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.';\nvar INFINITE_LOOP_ERROR = 'Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.';\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nexport function popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n // if one of the modifiers is invalid for any reason\n\n if (process.env.NODE_ENV !== \"production\") {\n var modifiers = uniqueBy([].concat(orderedModifiers, state.options.modifiers), function (_ref) {\n var name = _ref.name;\n return name;\n });\n validateModifiers(modifiers);\n\n if (getBasePlacement(state.options.placement) === auto) {\n var flipModifier = state.orderedModifiers.find(function (_ref2) {\n var name = _ref2.name;\n return name === 'flip';\n });\n\n if (!flipModifier) {\n console.error(['Popper: \"auto\" placements require the \"flip\" modifier be', 'present and enabled to work.'].join(' '));\n }\n }\n\n var _getComputedStyle = getComputedStyle(popper),\n marginTop = _getComputedStyle.marginTop,\n marginRight = _getComputedStyle.marginRight,\n marginBottom = _getComputedStyle.marginBottom,\n marginLeft = _getComputedStyle.marginLeft; // We no longer take into account `margins` on the popper, and it can\n // cause bugs with positioning, so we'll warn the consumer\n\n\n if ([marginTop, marginRight, marginBottom, marginLeft].some(function (margin) {\n return parseFloat(margin);\n })) {\n console.warn(['Popper: CSS \"margin\" styles cannot be used to apply padding', 'between the popper and its reference element or boundary.', 'To replicate margin, use the `offset` modifier, as well as', 'the `padding` option in the `preventOverflow` and `flip`', 'modifiers.'].join(' '));\n }\n }\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n var __debug_loops__ = 0;\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n if (process.env.NODE_ENV !== \"production\") {\n __debug_loops__ += 1;\n\n if (__debug_loops__ > 100) {\n console.error(INFINITE_LOOP_ERROR);\n break;\n }\n }\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n if (process.env.NODE_ENV !== \"production\") {\n console.error(INVALID_ELEMENT_ERROR);\n }\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\nexport var createPopper = /*#__PURE__*/popperGenerator(); // eslint-disable-next-line import/no-unused-modules\n\nexport { detectOverflow };","import { popperGenerator, detectOverflow } from \"./createPopper.js\";\nimport eventListeners from \"./modifiers/eventListeners.js\";\nimport popperOffsets from \"./modifiers/popperOffsets.js\";\nimport computeStyles from \"./modifiers/computeStyles.js\";\nimport applyStyles from \"./modifiers/applyStyles.js\";\nimport offset from \"./modifiers/offset.js\";\nimport flip from \"./modifiers/flip.js\";\nimport preventOverflow from \"./modifiers/preventOverflow.js\";\nimport arrow from \"./modifiers/arrow.js\";\nimport hide from \"./modifiers/hide.js\";\nvar defaultModifiers = [eventListeners, popperOffsets, computeStyles, applyStyles, offset, flip, preventOverflow, arrow, hide];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper, popperGenerator, defaultModifiers, detectOverflow }; // eslint-disable-next-line import/no-unused-modules\n\nexport { createPopper as createPopperLite } from \"./popper-lite.js\"; // eslint-disable-next-line import/no-unused-modules\n\nexport * from \"./modifiers/index.js\";","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","import * as React from 'react';\nimport * as ReactDOM from 'react-dom';\nimport { createPopper as defaultCreatePopper } from '@popperjs/core';\nimport isEqual from 'react-fast-compare';\nimport { fromEntries, useIsomorphicLayoutEffect } from './utils';\nvar EMPTY_MODIFIERS = [];\nexport var usePopper = function usePopper(referenceElement, popperElement, options) {\n if (options === void 0) {\n options = {};\n }\n\n var prevOptions = React.useRef(null);\n var optionsWithDefaults = {\n onFirstUpdate: options.onFirstUpdate,\n placement: options.placement || 'bottom',\n strategy: options.strategy || 'absolute',\n modifiers: options.modifiers || EMPTY_MODIFIERS\n };\n\n var _React$useState = React.useState({\n styles: {\n popper: {\n position: optionsWithDefaults.strategy,\n left: '0',\n top: '0'\n },\n arrow: {\n position: 'absolute'\n }\n },\n attributes: {}\n }),\n state = _React$useState[0],\n setState = _React$useState[1];\n\n var updateStateModifier = React.useMemo(function () {\n return {\n name: 'updateState',\n enabled: true,\n phase: 'write',\n fn: function fn(_ref) {\n var state = _ref.state;\n var elements = Object.keys(state.elements);\n ReactDOM.flushSync(function () {\n setState({\n styles: fromEntries(elements.map(function (element) {\n return [element, state.styles[element] || {}];\n })),\n attributes: fromEntries(elements.map(function (element) {\n return [element, state.attributes[element]];\n }))\n });\n });\n },\n requires: ['computeStyles']\n };\n }, []);\n var popperOptions = React.useMemo(function () {\n var newOptions = {\n onFirstUpdate: optionsWithDefaults.onFirstUpdate,\n placement: optionsWithDefaults.placement,\n strategy: optionsWithDefaults.strategy,\n modifiers: [].concat(optionsWithDefaults.modifiers, [updateStateModifier, {\n name: 'applyStyles',\n enabled: false\n }])\n };\n\n if (isEqual(prevOptions.current, newOptions)) {\n return prevOptions.current || newOptions;\n } else {\n prevOptions.current = newOptions;\n return newOptions;\n }\n }, [optionsWithDefaults.onFirstUpdate, optionsWithDefaults.placement, optionsWithDefaults.strategy, optionsWithDefaults.modifiers, updateStateModifier]);\n var popperInstanceRef = React.useRef();\n useIsomorphicLayoutEffect(function () {\n if (popperInstanceRef.current) {\n popperInstanceRef.current.setOptions(popperOptions);\n }\n }, [popperOptions]);\n useIsomorphicLayoutEffect(function () {\n if (referenceElement == null || popperElement == null) {\n return;\n }\n\n var createPopper = options.createPopper || defaultCreatePopper;\n var popperInstance = createPopper(referenceElement, popperElement, popperOptions);\n popperInstanceRef.current = popperInstance;\n return function () {\n popperInstance.destroy();\n popperInstanceRef.current = null;\n };\n }, [referenceElement, popperElement, options.createPopper]);\n return {\n state: popperInstanceRef.current ? popperInstanceRef.current.state : null,\n styles: state.styles,\n attributes: state.attributes,\n update: popperInstanceRef.current ? popperInstanceRef.current.update : null,\n forceUpdate: popperInstanceRef.current ? popperInstanceRef.current.forceUpdate : null\n };\n};","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/* Any kind of mouse or keyboard interaction on any HTML element */\nexport type ActivationEvent<T extends HTMLElement = HTMLElement> = React.KeyboardEvent<T> | React.MouseEvent<T>;\n\n/**\n * If a keypress is the equivalent of a mouse click event. This would be pressing ENTER or SPACEBAR.\n */\nexport const isClickKeypress = (event: React.KeyboardEvent<HTMLElement>) => event.key === 'Enter' || event.key === ' ';\n\ntype handler = (event: ActivationEvent) => void;\n\n/**\n * Utility function to convert an `onClick` prop into a keyboard-accessible equivalent.\n *\n * To use, take an existing component like this:\n * `<div onClick={doSomething}></div>`\n *\n * and convert it to this:\n * `<div {...onClickA11y(doSomething)}></div>`\n *\n * This will add an onClick prop, and onKeyDown prop, and a tabIndex={0} (so that a keyboard-only user can reach the element)\n *\n * Make sure you also add a `role` and `aria-label` attribute for maximum accessibility!\n */\nexport const onClickA11y = (clickHandler?: handler, keydownHandler?: handler) => {\n if (typeof clickHandler === 'undefined') {\n return {};\n }\n\n return {\n tabIndex: 0,\n onClick: clickHandler,\n onKeyDown: (event: React.KeyboardEvent<HTMLElement>) => {\n if (isClickKeypress(event)) {\n event.preventDefault();\n clickHandler?.(event);\n }\n keydownHandler?.(event);\n },\n };\n};\n\ntype KeyboardNavigationProps = {\n event: React.KeyboardEvent<HTMLElement>;\n currentIndex: number;\n moveFocus: (newNumber: number) => void;\n min: number;\n max: number;\n onClose?: () => void;\n};\nexport const keyboardNavigation = ({ event, currentIndex, moveFocus, min, max, onClose }: KeyboardNavigationProps) => {\n switch (event.key) {\n case 'ArrowUp': {\n moveFocus(Math.max(currentIndex - 1, min));\n break;\n }\n case 'ArrowDown': {\n moveFocus(Math.min(currentIndex + 1, max));\n break;\n }\n case 'Home': {\n moveFocus(min);\n break;\n }\n case 'End': {\n moveFocus(max);\n break;\n }\n case 'Escape': {\n if (onClose) {\n onClose();\n break;\n }\n return;\n }\n default: {\n return;\n }\n }\n\n // If we did something with the key that was pressed, prevent the keypress from bubbling\n event.stopPropagation();\n event.preventDefault();\n};\n","import classNames from 'classnames';\nimport './icon.scss';\nimport { forwardRef } from 'react';\nimport { ActivationEvent, onClickA11y } from '../../helpers/a11y';\n\nexport interface IconProps extends React.HTMLProps<HTMLSpanElement> {\n name: string;\n handleClick?: (e: ActivationEvent<HTMLSpanElement>) => void;\n size?: number;\n}\n\nexport const Icon = forwardRef<HTMLSpanElement, IconProps>((props, ref) => {\n const { name, size = 16, className, handleClick, ...rest } = props;\n\n return (\n <span\n {...onClickA11y(handleClick)}\n className={classNames(className, 'icon', {\n [`icon-box-${size}`]: size,\n })}\n ref={ref}\n {...rest}\n >\n <i\n className={classNames({\n [`icon-${name}`]: name,\n })}\n />\n </span>\n );\n});\n\nexport default Icon;\n","import classNames from 'classnames';\nimport { ContextMenuAction } from './types';\nimport { forwardRef, useRef, useState, useEffect } from 'react';\nimport { ActivationEvent, keyboardNavigation, onClickA11y } from '../../helpers/a11y';\n\ninterface ContextMenuProps extends React.HTMLProps<HTMLUListElement> {\n actions: ContextMenuAction[];\n onClose: () => void;\n onActionItemClick: (event: ActivationEvent, action: ContextMenuAction) => void;\n}\n\nexport const ContextMenu = forwardRef<HTMLUListElement, ContextMenuProps>((props, ref) => {\n const { actions, className, onClose, onActionItemClick, ...rest } = props;\n const itemRefs = useRef<Record<number, HTMLLIElement | null>>({});\n const [focusedItemIndex, setFocusedItemIndex] = useState(0);\n\n const moveFocus = (newIndex: number) => {\n itemRefs.current[newIndex]?.focus();\n setFocusedItemIndex(newIndex);\n };\n\n useEffect(() => {\n itemRefs.current[focusedItemIndex]?.focus();\n }, []);\n\n return (\n <ul\n className={classNames(className, 'g42-context-menu')}\n ref={ref}\n {...rest}\n data-testid=\"context-menu\"\n onKeyDown={(event) =>\n keyboardNavigation({\n event,\n currentIndex: focusedItemIndex,\n min: 0,\n max: actions.length - 1,\n moveFocus,\n onClose,\n })\n }\n >\n {actions.map((action, index) => (\n <li\n key={action.name}\n className={classNames('g42-list-item', action.disabled && 'disabled')}\n {...onClickA11y((event) => onActionItemClick(event, action))}\n ref={(element) => (itemRefs.current[index] = element)}\n tabIndex={-1}\n >\n {action.displayName || action.name}\n </li>\n ))}\n </ul>\n );\n});\n\nexport default ContextMenu;\n","import { useEffect, useState } from 'react';\nimport { usePopper } from 'react-popper';\nimport Icon from '../../icon/icon';\nimport ContextMenu from '../context-menu';\nimport { ContextMenuAction } from '../types';\nimport { ActivationEvent } from 'packages/home-ui-react/src/helpers/a11y';\n\nexport interface DropdownButtonProps {\n iconName: string;\n iconSize?: number;\n actions: ContextMenuAction[];\n isTabStop?: boolean;\n onActionItemClick: (event: ActivationEvent, action: ContextMenuAction) => void;\n}\n\nexport function DropdownButton(props: DropdownButtonProps) {\n const { iconName, iconSize, actions, onActionItemClick, isTabStop } = props;\n\n const [showContextMenu, setShowContextMenu] = useState(false);\n const [referenceElement, setReferenceElement] = useState<HTMLSpanElement | null>(null);\n const [popperElement, setPopperElement] = useState<HTMLUListElement | null>(null);\n\n const { styles, attributes } = usePopper(referenceElement, popperElement, {\n placement: 'bottom-end',\n });\n\n useEffect(() => {\n if (!showContextMenu) {\n return;\n }\n\n const handleClick = (event: MouseEvent): void => {\n if (referenceElement?.contains(event.target as Node) || popperElement?.contains(event.target as Node)) {\n return;\n }\n\n setShowContextMenu(false);\n };\n\n const handleBlur = (): void => {\n if (document.activeElement?.nodeName !== 'IFRAME') {\n return;\n }\n setShowContextMenu(false);\n };\n\n document.body.addEventListener('click', handleClick, true);\n window.addEventListener('blur', handleBlur);\n\n return () => {\n document.body.removeEventListener('click', handleClick, true);\n window.removeEventListener('blur', handleBlur);\n };\n }, [popperElement, referenceElement, showContextMenu, setShowContextMenu]);\n\n const handleIconClick = (event: ActivationEvent): void => {\n event.stopPropagation();\n\n setShowContextMenu((prevValue) => !prevValue);\n popperElement?.focus();\n };\n\n const handleActionItemClick = (event: ActivationEvent, action: ContextMenuAction) => {\n event.stopPropagation();\n\n onActionItemClick(event, action);\n\n setShowContextMenu(false);\n };\n\n return (\n <>\n <Icon\n tabIndex={isTabStop ? 0 : -1}\n size={iconSize}\n name={iconName}\n handleClick={handleIconClick}\n ref={setReferenceElement}\n data-testid=\"context-menu-icon\"\n />\n {showContextMenu && (\n <ContextMenu\n actions={actions}\n style={styles.popper}\n ref={setPopperElement}\n onActionItemClick={handleActionItemClick}\n onClose={() => {\n referenceElement?.focus();\n setShowContextMenu(false);\n }}\n {...attributes.popper}\n />\n )}\n </>\n );\n}\n\nexport default DropdownButton;\n","import type { BaseSectionItemType, BaseSectionType } from './types';\n\nexport const isSection = <Item extends BaseSectionItemType>(\n item: BaseSectionType<Item>['items'][number]\n): item is BaseSectionType<Item> => {\n return 'items' in item;\n};\n","export const ITEM_TYPES = {\n APPLICATION: 'application',\n WORKSPACE: 'workspace',\n LAYOUT: 'layout',\n} as const;\n","import { ContextMenuAction } from './types';\n\nexport const APPLICATION_ACTIONS: ContextMenuAction[] = [\n {\n name: 'openInNewWindow',\n displayName: 'Open in New Window',\n },\n {\n name: 'openInNewWorkspace',\n displayName: 'Open in New Workspace',\n },\n];\n\nexport const WORKSPACE_ACTIONS: ContextMenuAction[] = [\n {\n name: 'openInNewFrame',\n displayName: 'Open in New Frame',\n },\n {\n name: 'delete',\n displayName: 'Delete',\n },\n];\n","import { IOConnectBrowser } from '@interopio/browser';\nimport { isSection } from '../base-section/helpers';\nimport { ITEM_TYPES } from '../../constants/itemTypes';\nimport { SectionItemType, SectionType } from '../section/types';\nimport { APPLICATION_ACTIONS } from '../context-menu/constants';\n\nconst generateItems = (items: SectionType['items'], newItem: SectionItemType, path: string): SectionType['items'] => {\n const separator = '/';\n const [currentFolder, ...nestedFolders] = path.split(separator);\n const sectionIndex = items.findIndex((item) => isSection(item) && item.title === currentFolder);\n const section = sectionIndex !== -1 ? (items[sectionIndex] as SectionType) : null;\n\n if (!section) {\n return [\n ...items,\n {\n id: currentFolder,\n title: currentFolder,\n items: nestedFolders.length > 0 ? generateItems([], newItem, nestedFolders.join(separator)) : [newItem],\n },\n ];\n }\n\n return [\n ...items.slice(0, sectionIndex),\n {\n ...section,\n items:\n nestedFolders.length > 0\n ? generateItems(section.items, newItem, nestedFolders.join(separator))\n : [...section.items, newItem],\n },\n ...items.slice(sectionIndex + 1),\n ];\n};\n\nexport const getApplicationsSectionConfig = (\n applications: IOConnectBrowser.AppManager.Application[],\n runningInstances: {\n [appName: string]: string[];\n }\n): SectionType => {\n const items = applications.reduce((items, application) => {\n const item: SectionItemType = {\n id: application.name,\n title: application.title || application.name,\n description: application.caption,\n type: ITEM_TYPES.APPLICATION,\n iconSrc: application.icon,\n isOpen: runningInstances[application.name]?.length > 0,\n contextMenuActions: APPLICATION_ACTIONS,\n };\n\n const path = application.userProperties.folder;\n\n return path ? generateItems(items, item, path) : [...items, item];\n }, [] as SectionType['items']);\n\n return {\n id: 'applications-section',\n title: 'All Applications',\n items,\n };\n};\n","import classNames from 'classnames';\n\n/* eslint-disable-next-line */\nexport interface ImgIconProps extends React.HTMLProps<HTMLImageElement> {\n src: string;\n size?: number;\n crossOrigin?: '' | 'anonymous' | 'use-credentials'; // Fix TS incompatibility\n}\n\nexport function ImgIcon(props: ImgIconProps) {\n const { size = 16, alt = 'Image icon', className, ...rest } = props;\n\n return (\n <img\n alt={alt}\n className={classNames(className, 'icon', {\n [`icon-box-${size}`]: size,\n })}\n {...rest}\n />\n );\n}\n\nexport default ImgIcon;\n","import classNames from 'classnames';\nimport Icon from '../icon/icon';\nimport ImgIcon from '../img-icon/img-icon';\n\ninterface BaseSectionHeaderProps extends React.HTMLProps<HTMLHeadingElement> {\n iconSrc?: string;\n iconName?: string;\n title: string;\n}\n\nexport const BaseSectionHeader = (props: BaseSectionHeaderProps) => {\n const { className, iconSrc, iconName = 'folder', title, ...domProps } = props;\n\n return (\n <h4 className={classNames(className, 'g42-list-header')} data-testid=\"base-section-header\" {...domProps}>\n {iconSrc ? (\n <ImgIcon src={iconSrc} alt={`${title} icon`} size={14} data-testid=\"img-icon\" />\n ) : (\n <Icon name={iconName} data-testid=\"icon\" />\n )}\n {title}\n </h4>\n );\n};\n\nexport default BaseSectionHeader;\n","import { useState, useContext, useEffect } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { IOConnectBrowser } from '@interopio/browser';\n\nexport const useApplications = () => {\n const [applications, setApplications] = useState<IOConnectBrowser.AppManager.Application[]>([]);\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n const unsubscribeOnAppAdded = io.appManager.onAppAdded((addedApplication) => {\n if (addedApplication.userProperties.hidden) {\n return;\n }\n setApplications((prevApplications) => [...prevApplications, addedApplication]);\n });\n\n const unsubscribeOnAppChanged = io.appManager.onAppChanged((changedApplication) => {\n setApplications((prevApplications) => [\n ...prevApplications.filter((application) => application.name !== changedApplication.name),\n changedApplication,\n ]);\n });\n\n const unsubscribeOnAppRemoved = io.appManager.onAppRemoved((removedApplication) => {\n setApplications((prevApplications) =>\n prevApplications.filter((application) => application.name !== removedApplication.name)\n );\n });\n\n const unsubscribeFns = [unsubscribeOnAppAdded, unsubscribeOnAppRemoved, unsubscribeOnAppChanged];\n\n return () => unsubscribeFns.forEach((unsubscribeFn) => unsubscribeFn());\n }, [io]);\n\n return applications;\n};\n","import { useState, useContext, useEffect } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\n\nexport const useApplicationsInstances = () => {\n const [runningInstances, setRunningInstances] = useState<{\n [appName: string]: string[];\n }>({});\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n const unsubscribeOnInstanceStarted = io.appManager.onInstanceStarted((startedInstance) => {\n setRunningInstances((prevRunningInstances) => {\n const appCurrentRunningInstances = prevRunningInstances[startedInstance.application.name] ?? [];\n\n return {\n ...prevRunningInstances,\n [startedInstance.application.name]: [...appCurrentRunningInstances, startedInstance.id],\n };\n });\n });\n\n const unsubscribeOnInstanceStopped = io.appManager.onInstanceStopped((stoppedInstance) => {\n setRunningInstances((prevRunningInstances) => ({\n ...prevRunningInstances,\n [stoppedInstance.application.name]: prevRunningInstances[stoppedInstance.application.name].filter(\n (instanceId) => instanceId !== stoppedInstance.id\n ),\n }));\n });\n\n const unsubscribeFns = [unsubscribeOnInstanceStarted, unsubscribeOnInstanceStopped];\n\n return () => unsubscribeFns.forEach((unsubscribeFn) => unsubscribeFn());\n }, [io]);\n\n return runningInstances;\n};\n","export const SELECTED_LAYOUT_SESSION_STORAGE_KEY = 'interop_home_ui_selected_layout';\nexport const FAVORITE_ENTITIES_LOCAL_STORAGE_KEY = 'interop_home_ui_favorite_entities';\n","import { Decoder } from 'decoder-validate';\nimport { useCallback, useEffect, useState } from 'react';\n\ntype StorageType = 'localStorage' | 'sessionStorage';\n\nexport const useStorage = <T>(type: StorageType, key: string, decoder: Decoder<T | null>) => {\n const [storedValue, setStoredValue] = useState<T | null>(() => {\n try {\n const item = window[type].getItem(key);\n\n return item ? JSON.parse(item) : null;\n } catch (error) {\n console.log(error);\n\n return null;\n }\n });\n\n const customEventType = `${type}-${key}`;\n\n useEffect(() => {\n const eventHandler = (event: CustomEvent) => {\n setStoredValue(event.detail);\n };\n\n window.addEventListener(customEventType, eventHandler as EventListener);\n\n return () => {\n window.removeEventListener(customEventType, eventHandler as EventListener);\n };\n }, [customEventType]);\n\n const setValue = useCallback(\n (value: T | null) => {\n try {\n if (!value) {\n window[type].removeItem(key);\n setStoredValue(null);\n return;\n }\n\n const decoderResult = decoder.run(value);\n\n if (!decoderResult.ok) {\n console.warn(`Error validating the value to be stored: ${decoderResult.error.message}`);\n return;\n }\n\n const valueToStore = decoderResult.result;\n\n setStoredValue(valueToStore);\n\n window[type].setItem(key, JSON.stringify(valueToStore));\n window.dispatchEvent(new CustomEvent(customEventType, { detail: valueToStore }));\n } catch (error) {\n console.log(error);\n }\n },\n [key, type, customEventType, decoder]\n );\n\n return [storedValue, setValue] as const;\n};\n","/**\r\n * Wraps values in an `Ok` type.\r\n *\r\n * Example: `ok(5) // => {ok: true, result: 5}`\r\n */\r\nvar ok = function (result) { return ({ ok: true, result: result }); };\r\n/**\r\n * Typeguard for `Ok`.\r\n */\r\nvar isOk = function (r) { return r.ok === true; };\r\n/**\r\n * Wraps errors in an `Err` type.\r\n *\r\n * Example: `err('on fire') // => {ok: false, error: 'on fire'}`\r\n */\r\nvar err = function (error) { return ({ ok: false, error: error }); };\r\n/**\r\n * Typeguard for `Err`.\r\n */\r\nvar isErr = function (r) { return r.ok === false; };\r\n/**\r\n * Create a `Promise` that either resolves with the result of `Ok` or rejects\r\n * with the error of `Err`.\r\n */\r\nvar asPromise = function (r) {\r\n return r.ok === true ? Promise.resolve(r.result) : Promise.reject(r.error);\r\n};\r\n/**\r\n * Unwraps a `Result` and returns either the result of an `Ok`, or\r\n * `defaultValue`.\r\n *\r\n * Example:\r\n * ```\r\n * Result.withDefault(5, number().run(json))\r\n * ```\r\n *\r\n * It would be nice if `Decoder` had an instance method that mirrored this\r\n * function. Such a method would look something like this:\r\n * ```\r\n * class Decoder<A> {\r\n * runWithDefault = (defaultValue: A, json: any): A =>\r\n * Result.withDefault(defaultValue, this.run(json));\r\n * }\r\n *\r\n * number().runWithDefault(5, json)\r\n * ```\r\n * Unfortunately, the type of `defaultValue: A` on the method causes issues\r\n * with type inference on the `object` decoder in some situations. While these\r\n * inference issues can be solved by providing the optional type argument for\r\n * `object`s, the extra trouble and confusion doesn't seem worth it.\r\n */\r\nvar withDefault = function (defaultValue, r) {\r\n return r.ok === true ? r.result : defaultValue;\r\n};\r\n/**\r\n * Return the successful result, or throw an error.\r\n */\r\nvar withException = function (r) {\r\n if (r.ok === true) {\r\n return r.result;\r\n }\r\n else {\r\n throw r.error;\r\n }\r\n};\r\n/**\r\n * Given an array of `Result`s, return the successful values.\r\n */\r\nvar successes = function (results) {\r\n return results.reduce(function (acc, r) { return (r.ok === true ? acc.concat(r.result) : acc); }, []);\r\n};\r\n/**\r\n * Apply `f` to the result of an `Ok`, or pass the error through.\r\n */\r\nvar map = function (f, r) {\r\n return r.ok === true ? ok(f(r.result)) : r;\r\n};\r\n/**\r\n * Apply `f` to the result of two `Ok`s, or pass an error through. If both\r\n * `Result`s are errors then the first one is returned.\r\n */\r\nvar map2 = function (f, ar, br) {\r\n return ar.ok === false ? ar :\r\n br.ok === false ? br :\r\n ok(f(ar.result, br.result));\r\n};\r\n/**\r\n * Apply `f` to the error of an `Err`, or pass the success through.\r\n */\r\nvar mapError = function (f, r) {\r\n return r.ok === true ? r : err(f(r.error));\r\n};\r\n/**\r\n * Chain together a sequence of computations that may fail, similar to a\r\n * `Promise`. If the first computation fails then the error will propagate\r\n * through. If it succeeds, then `f` will be applied to the value, returning a\r\n * new `Result`.\r\n */\r\nvar andThen = function (f, r) {\r\n return r.ok === true ? f(r.result) : r;\r\n};\r\n\r\n\r\nvar result = Object.freeze({\r\n\tok: ok,\r\n\tisOk: isOk,\r\n\terr: err,\r\n\tisErr: isErr,\r\n\tasPromise: asPromise,\r\n\twithDefault: withDefault,\r\n\twithException: withException,\r\n\tsuccesses: successes,\r\n\tmap: map,\r\n\tmap2: map2,\r\n\tmapError: mapError,\r\n\tandThen: andThen\r\n});\r\n\r\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\n\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction isEqual(a, b) {\r\n if (a === b) {\r\n return true;\r\n }\r\n if (a === null && b === null) {\r\n return true;\r\n }\r\n if (typeof (a) !== typeof (b)) {\r\n return false;\r\n }\r\n if (typeof (a) === 'object') {\r\n // Array\r\n if (Array.isArray(a)) {\r\n if (!Array.isArray(b)) {\r\n return false;\r\n }\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length; i++) {\r\n if (!isEqual(a[i], b[i])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n // Hash table\r\n var keys = Object.keys(a);\r\n if (keys.length !== Object.keys(b).length) {\r\n return false;\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!b.hasOwnProperty(keys[i])) {\r\n return false;\r\n }\r\n if (!isEqual(a[keys[i]], b[keys[i]])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n}\r\n/**\r\n * Type guard for `DecoderError`. One use case of the type guard is in the\r\n * `catch` of a promise. Typescript types the error argument of `catch` as\r\n * `any`, so when dealing with a decoder as a promise you may need to\r\n * distinguish between a `DecoderError` and an error string.\r\n */\r\nvar isDecoderError = function (a) {\r\n return a.kind === 'DecoderError' && typeof a.at === 'string' && typeof a.message === 'string';\r\n};\r\n/*\r\n * Helpers\r\n */\r\nvar isJsonArray = function (json) { return Array.isArray(json); };\r\nvar isJsonObject = function (json) {\r\n return typeof json === 'object' && json !== null && !isJsonArray(json);\r\n};\r\nvar typeString = function (json) {\r\n switch (typeof json) {\r\n case 'string':\r\n return 'a string';\r\n case 'number':\r\n return 'a number';\r\n case 'boolean':\r\n return 'a boolean';\r\n case 'undefined':\r\n return 'undefined';\r\n case 'object':\r\n if (json instanceof Array) {\r\n return 'an array';\r\n }\r\n else if (json === null) {\r\n return 'null';\r\n }\r\n else {\r\n return 'an object';\r\n }\r\n default:\r\n return JSON.stringify(json);\r\n }\r\n};\r\nvar expectedGot = function (expected, got) {\r\n return \"expected \" + expected + \", got \" + typeString(got);\r\n};\r\nvar printPath = function (paths) {\r\n return paths.map(function (path) { return (typeof path === 'string' ? \".\" + path : \"[\" + path + \"]\"); }).join('');\r\n};\r\nvar prependAt = function (newAt, _a) {\r\n var at = _a.at, rest = __rest(_a, [\"at\"]);\r\n return (__assign({ at: newAt + (at || '') }, rest));\r\n};\r\n/**\r\n * Decoders transform json objects with unknown structure into known and\r\n * verified forms. You can create objects of type `Decoder<A>` with either the\r\n * primitive decoder functions, such as `boolean()` and `string()`, or by\r\n * applying higher-order decoders to the primitives, such as `array(boolean())`\r\n * or `dict(string())`.\r\n *\r\n * Each of the decoder functions are available both as a static method on\r\n * `Decoder` and as a function alias -- for example the string decoder is\r\n * defined at `Decoder.string()`, but is also aliased to `string()`. Using the\r\n * function aliases exported with the library is recommended.\r\n *\r\n * `Decoder` exposes a number of 'run' methods, which all decode json in the\r\n * same way, but communicate success and failure in different ways. The `map`\r\n * and `andThen` methods modify decoders without having to call a 'run' method.\r\n *\r\n * Alternatively, the main decoder `run()` method returns an object of type\r\n * `Result<A, DecoderError>`. This library provides a number of helper\r\n * functions for dealing with the `Result` type, so you can do all the same\r\n * things with a `Result` as with the decoder methods.\r\n */\r\nvar Decoder = /** @class */ (function () {\r\n /**\r\n * The Decoder class constructor is kept private to separate the internal\r\n * `decode` function from the external `run` function. The distinction\r\n * between the two functions is that `decode` returns a\r\n * `Partial<DecoderError>` on failure, which contains an unfinished error\r\n * report. When `run` is called on a decoder, the relevant series of `decode`\r\n * calls is made, and then on failure the resulting `Partial<DecoderError>`\r\n * is turned into a `DecoderError` by filling in the missing information.\r\n *\r\n * While hiding the constructor may seem restrictive, leveraging the\r\n * provided decoder combinators and helper functions such as\r\n * `andThen` and `map` should be enough to build specialized decoders as\r\n * needed.\r\n */\r\n function Decoder(decode) {\r\n var _this = this;\r\n this.decode = decode;\r\n /**\r\n * Run the decoder and return a `Result` with either the decoded value or a\r\n * `DecoderError` containing the json input, the location of the error, and\r\n * the error message.\r\n *\r\n * Examples:\r\n * ```\r\n * number().run(12)\r\n * // => {ok: true, result: 12}\r\n *\r\n * string().run(9001)\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {\r\n * // kind: 'DecoderError',\r\n * // input: 9001,\r\n * // at: 'input',\r\n * // message: 'expected a string, got 9001'\r\n * // }\r\n * // }\r\n * ```\r\n */\r\n this.run = function (json) {\r\n return mapError(function (error) { return ({\r\n kind: 'DecoderError',\r\n input: json,\r\n at: 'input' + (error.at || ''),\r\n message: error.message || ''\r\n }); }, _this.decode(json));\r\n };\r\n /**\r\n * Run the decoder as a `Promise`.\r\n */\r\n this.runPromise = function (json) { return asPromise(_this.run(json)); };\r\n /**\r\n * Run the decoder and return the value on success, or throw an exception\r\n * with a formatted error string.\r\n */\r\n this.runWithException = function (json) { return withException(_this.run(json)); };\r\n /**\r\n * Construct a new decoder that applies a transformation to the decoded\r\n * result. If the decoder succeeds then `f` will be applied to the value. If\r\n * it fails the error will propagated through.\r\n *\r\n * Example:\r\n * ```\r\n * number().map(x => x * 5).run(10)\r\n * // => {ok: true, result: 50}\r\n * ```\r\n */\r\n this.map = function (f) {\r\n return new Decoder(function (json) { return map(f, _this.decode(json)); });\r\n };\r\n /**\r\n * Chain together a sequence of decoders. The first decoder will run, and\r\n * then the function will determine what decoder to run second. If the result\r\n * of the first decoder succeeds then `f` will be applied to the decoded\r\n * value. If it fails the error will propagate through.\r\n *\r\n * This is a very powerful method -- it can act as both the `map` and `where`\r\n * methods, can improve error messages for edge cases, and can be used to\r\n * make a decoder for custom types.\r\n *\r\n * Example of adding an error message:\r\n * ```\r\n * const versionDecoder = valueAt(['version'], number());\r\n * const infoDecoder3 = object({a: boolean()});\r\n *\r\n * const decoder = versionDecoder.andThen(version => {\r\n * switch (version) {\r\n * case 3:\r\n * return infoDecoder3;\r\n * default:\r\n * return fail(`Unable to decode info, version ${version} is not supported.`);\r\n * }\r\n * });\r\n *\r\n * decoder.run({version: 3, a: true})\r\n * // => {ok: true, result: {a: true}}\r\n *\r\n * decoder.run({version: 5, x: 'abc'})\r\n * // =>\r\n * // {\r\n * // ok: false,\r\n * // error: {... message: 'Unable to decode info, version 5 is not supported.'}\r\n * // }\r\n * ```\r\n *\r\n * Example of decoding a custom type:\r\n * ```\r\n * // nominal type for arrays with a length of at least one\r\n * type NonEmptyArray<T> = T[] & { __nonEmptyArrayBrand__: void };\r\n *\r\n * const nonEmptyArrayDecoder = <T>(values: Decoder<T>): Decoder<NonEmptyArray<T>> =>\r\n * array(values).andThen(arr =>\r\n * arr.length > 0\r\n * ? succeed(createNonEmptyArray(arr))\r\n * : fail(`expected a non-empty array, got an empty array`)\r\n * );\r\n * ```\r\n */\r\n this.andThen = function (f) {\r\n return new Decoder(function (json) {\r\n return andThen(function (value) { return f(value).decode(json); }, _this.decode(json));\r\n });\r\n };\r\n /**\r\n * Add constraints to a decoder _without_ changing the resulting type. The\r\n * `test` argument is a predicate function which returns true for valid\r\n * inputs. When `test` fails on an input, the decoder fails with the given\r\n * `errorMessage`.\r\n *\r\n * ```\r\n * const chars = (length: number): Decoder<string> =>\r\n * string().where(\r\n * (s: string) => s.length === length,\r\n * `expected a string of length ${length}`\r\n * );\r\n *\r\n * chars(5).run('12345')\r\n * // => {ok: true, result: '12345'}\r\n *\r\n * chars(2).run('HELLO')\r\n * // => {ok: false, error: {... message: 'expected a string of length 2'}}\r\n *\r\n * chars(12).run(true)\r\n * // => {ok: false, error: {... message: 'expected a string, got a boolean'}}\r\n * ```\r\n */\r\n this.where = function (test, errorMessage) {\r\n return _this.andThen(function (value) { return (test(value) ? Decoder.succeed(value) : Decoder.fail(errorMessage)); });\r\n };\r\n }\r\n /**\r\n * Decoder primitive that validates strings, and fails on all other input.\r\n */\r\n Decoder.string = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'string'\r\n ? ok(json)\r\n : err({ message: expectedGot('a string', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates numbers, and fails on all other input.\r\n */\r\n Decoder.number = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'number'\r\n ? ok(json)\r\n : err({ message: expectedGot('a number', json) });\r\n });\r\n };\r\n /**\r\n * Decoder primitive that validates booleans, and fails on all other input.\r\n */\r\n Decoder.boolean = function () {\r\n return new Decoder(function (json) {\r\n return typeof json === 'boolean'\r\n ? ok(json)\r\n : err({ message: expectedGot('a boolean', json) });\r\n });\r\n };\r\n Decoder.constant = function (value) {\r\n return new Decoder(function (json) {\r\n return isEqual(json, value)\r\n ? ok(value)\r\n : err({ message: \"expected \" + JSON.stringify(value) + \", got \" + JSON.stringify(json) });\r\n });\r\n };\r\n Decoder.object = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json) && decoders) {\r\n var obj = {};\r\n for (var key in decoders) {\r\n if (decoders.hasOwnProperty(key)) {\r\n var r = decoders[key].decode(json[key]);\r\n if (r.ok === true) {\r\n // tslint:disable-next-line:strict-type-predicates\r\n if (r.result !== undefined) {\r\n obj[key] = r.result;\r\n }\r\n }\r\n else if (json[key] === undefined) {\r\n return err({ message: \"the key '\" + key + \"' is required but was not present\" });\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else if (isJsonObject(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n Decoder.array = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json) && decoder) {\r\n var decodeValue_1 = function (v, i) {\r\n return mapError(function (err$$1) { return prependAt(\"[\" + i + \"]\", err$$1); }, decoder.decode(v));\r\n };\r\n return json.reduce(function (acc, v, i) {\r\n return map2(function (arr, result) { return arr.concat([result]); }, acc, decodeValue_1(v, i));\r\n }, ok([]));\r\n }\r\n else if (isJsonArray(json)) {\r\n return ok(json);\r\n }\r\n else {\r\n return err({ message: expectedGot('an array', json) });\r\n }\r\n });\r\n };\r\n Decoder.tuple = function (decoders) {\r\n return new Decoder(function (json) {\r\n if (isJsonArray(json)) {\r\n if (json.length !== decoders.length) {\r\n return err({\r\n message: \"expected a tuple of length \" + decoders.length + \", got one of length \" + json.length\r\n });\r\n }\r\n var result = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var nth = decoders[i].decode(json[i]);\r\n if (nth.ok) {\r\n result[i] = nth.result;\r\n }\r\n else {\r\n return err(prependAt(\"[\" + i + \"]\", nth.error));\r\n }\r\n }\r\n return ok(result);\r\n }\r\n else {\r\n return err({ message: expectedGot(\"a tuple of length \" + decoders.length, json) });\r\n }\r\n });\r\n };\r\n Decoder.union = function (ad, bd) {\r\n var decoders = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n decoders[_i - 2] = arguments[_i];\r\n }\r\n return Decoder.oneOf.apply(Decoder, [ad, bd].concat(decoders));\r\n };\r\n Decoder.intersection = function (ad, bd) {\r\n var ds = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n ds[_i - 2] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n return [ad, bd].concat(ds).reduce(function (acc, decoder) { return map2(Object.assign, acc, decoder.decode(json)); }, ok({}));\r\n });\r\n };\r\n /**\r\n * Escape hatch to bypass validation. Always succeeds and types the result as\r\n * `any`. Useful for defining decoders incrementally, particularly for\r\n * complex objects.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * name: string;\r\n * complexUserData: ComplexType;\r\n * }\r\n *\r\n * const userDecoder: Decoder<User> = object({\r\n * name: string(),\r\n * complexUserData: anyJson()\r\n * });\r\n * ```\r\n */\r\n Decoder.anyJson = function () { return new Decoder(function (json) { return ok(json); }); };\r\n /**\r\n * Decoder identity function which always succeeds and types the result as\r\n * `unknown`.\r\n */\r\n Decoder.unknownJson = function () {\r\n return new Decoder(function (json) { return ok(json); });\r\n };\r\n /**\r\n * Decoder for json objects where the keys are unknown strings, but the values\r\n * should all be of the same type.\r\n *\r\n * Example:\r\n * ```\r\n * dict(number()).run({chocolate: 12, vanilla: 10, mint: 37});\r\n * // => {ok: true, result: {chocolate: 12, vanilla: 10, mint: 37}}\r\n * ```\r\n */\r\n Decoder.dict = function (decoder) {\r\n return new Decoder(function (json) {\r\n if (isJsonObject(json)) {\r\n var obj = {};\r\n for (var key in json) {\r\n if (json.hasOwnProperty(key)) {\r\n var r = decoder.decode(json[key]);\r\n if (r.ok === true) {\r\n obj[key] = r.result;\r\n }\r\n else {\r\n return err(prependAt(\".\" + key, r.error));\r\n }\r\n }\r\n }\r\n return ok(obj);\r\n }\r\n else {\r\n return err({ message: expectedGot('an object', json) });\r\n }\r\n });\r\n };\r\n /**\r\n * Decoder for values that may be `undefined`. This is primarily helpful for\r\n * decoding interfaces with optional fields.\r\n *\r\n * Example:\r\n * ```\r\n * interface User {\r\n * id: number;\r\n * isOwner?: boolean;\r\n * }\r\n *\r\n * const decoder: Decoder<User> = object({\r\n * id: number(),\r\n * isOwner: optional(boolean())\r\n * });\r\n * ```\r\n */\r\n Decoder.optional = function (decoder) {\r\n return new Decoder(function (json) { return (json === undefined || json === null ? ok(undefined) : decoder.decode(json)); });\r\n };\r\n /**\r\n * Decoder that attempts to run each decoder in `decoders` and either succeeds\r\n * with the first successful decoder, or fails after all decoders have failed.\r\n *\r\n * Note that `oneOf` expects the decoders to all have the same return type,\r\n * while `union` creates a decoder for the union type of all the input\r\n * decoders.\r\n *\r\n * Examples:\r\n * ```\r\n * oneOf(string(), number().map(String))\r\n * oneOf(constant('start'), constant('stop'), succeed('unknown'))\r\n * ```\r\n */\r\n Decoder.oneOf = function () {\r\n var decoders = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n decoders[_i] = arguments[_i];\r\n }\r\n return new Decoder(function (json) {\r\n var errors = [];\r\n for (var i = 0; i < decoders.length; i++) {\r\n var r = decoders[i].decode(json);\r\n if (r.ok === true) {\r\n return r;\r\n }\r\n else {\r\n errors[i] = r.error;\r\n }\r\n }\r\n var errorsList = errors\r\n .map(function (error) { return \"at error\" + (error.at || '') + \": \" + error.message; })\r\n .join('\", \"');\r\n return err({\r\n message: \"expected a value matching one of the decoders, got the errors [\\\"\" + errorsList + \"\\\"]\"\r\n });\r\n });\r\n };\r\n /**\r\n * Decoder that always succeeds with either the decoded value, or a fallback\r\n * default value.\r\n */\r\n Decoder.withDefault = function (defaultValue, decoder) {\r\n return new Decoder(function (json) {\r\n return ok(withDefault(defaultValue, decoder.decode(json)));\r\n });\r\n };\r\n /**\r\n * Decoder that pulls a specific field out of a json structure, instead of\r\n * decoding and returning the full structure. The `paths` array describes the\r\n * object keys and array indices to traverse, so that values can be pulled out\r\n * of a nested structure.\r\n *\r\n * Example:\r\n * ```\r\n * const decoder = valueAt(['a', 'b', 0], string());\r\n *\r\n * decoder.run({a: {b: ['surprise!']}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * decoder.run({a: {x: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b[0]' message: 'path does not exist'}}\r\n * ```\r\n *\r\n * Note that the `decoder` is ran on the value found at the last key in the\r\n * path, even if the last key is not found. This allows the `optional`\r\n * decoder to succeed when appropriate.\r\n * ```\r\n * const optionalDecoder = valueAt(['a', 'b', 'c'], optional(string()));\r\n *\r\n * optionalDecoder.run({a: {b: {c: 'surprise!'}}})\r\n * // => {ok: true, result: 'surprise!'}\r\n *\r\n * optionalDecoder.run({a: {b: 'cats'}})\r\n * // => {ok: false, error: {... at: 'input.a.b.c' message: 'expected an object, got \"cats\"'}\r\n *\r\n * optionalDecoder.run({a: {b: {z: 1}}})\r\n * // => {ok: true, result: undefined}\r\n * ```\r\n */\r\n Decoder.valueAt = function (paths, decoder) {\r\n return new Decoder(function (json) {\r\n var jsonAtPath = json;\r\n for (var i = 0; i < paths.length; i++) {\r\n if (jsonAtPath === undefined) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: 'path does not exist'\r\n });\r\n }\r\n else if (typeof paths[i] === 'string' && !isJsonObject(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an object', jsonAtPath)\r\n });\r\n }\r\n else if (typeof paths[i] === 'number' && !isJsonArray(jsonAtPath)) {\r\n return err({\r\n at: printPath(paths.slice(0, i + 1)),\r\n message: expectedGot('an array', jsonAtPath)\r\n });\r\n }\r\n else {\r\n jsonAtPath = jsonAtPath[paths[i]];\r\n }\r\n }\r\n return mapError(function (error) {\r\n return jsonAtPath === undefined\r\n ? { at: printPath(paths), message: 'path does not exist' }\r\n : prependAt(printPath(paths), error);\r\n }, decoder.decode(jsonAtPath));\r\n });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always succeeds with `fixedValue`.\r\n */\r\n Decoder.succeed = function (fixedValue) {\r\n return new Decoder(function (json) { return ok(fixedValue); });\r\n };\r\n /**\r\n * Decoder that ignores the input json and always fails with `errorMessage`.\r\n */\r\n Decoder.fail = function (errorMessage) {\r\n return new Decoder(function (json) { return err({ message: errorMessage }); });\r\n };\r\n /**\r\n * Decoder that allows for validating recursive data structures. Unlike with\r\n * functions, decoders assigned to variables can't reference themselves\r\n * before they are fully defined. We can avoid prematurely referencing the\r\n * decoder by wrapping it in a function that won't be called until use, at\r\n * which point the decoder has been defined.\r\n *\r\n * Example:\r\n * ```\r\n * interface Comment {\r\n * msg: string;\r\n * replies: Comment[];\r\n * }\r\n *\r\n * const decoder: Decoder<Comment> = object({\r\n * msg: string(),\r\n * replies: lazy(() => array(decoder))\r\n * });\r\n * ```\r\n */\r\n Decoder.lazy = function (mkDecoder) {\r\n return new Decoder(function (json) { return mkDecoder().decode(json); });\r\n };\r\n return Decoder;\r\n}());\r\n\r\n/* tslint:disable:variable-name */\r\n/** See `Decoder.string` */\r\nvar string = Decoder.string;\r\n/** See `Decoder.number` */\r\nvar number = Decoder.number;\r\n/** See `Decoder.boolean` */\r\nvar boolean = Decoder.boolean;\r\n/** See `Decoder.anyJson` */\r\nvar anyJson = Decoder.anyJson;\r\n/** See `Decoder.unknownJson` */\r\nvar unknownJson = Decoder.unknownJson;\r\n/** See `Decoder.constant` */\r\nvar constant = Decoder.constant;\r\n/** See `Decoder.object` */\r\nvar object = Decoder.object;\r\n/** See `Decoder.array` */\r\nvar array = Decoder.array;\r\n/** See `Decoder.tuple` */\r\nvar tuple = Decoder.tuple;\r\n/** See `Decoder.dict` */\r\nvar dict = Decoder.dict;\r\n/** See `Decoder.optional` */\r\nvar optional = Decoder.optional;\r\n/** See `Decoder.oneOf` */\r\nvar oneOf = Decoder.oneOf;\r\n/** See `Decoder.union` */\r\nvar union = Decoder.union;\r\n/** See `Decoder.intersection` */\r\nvar intersection = Decoder.intersection;\r\n/** See `Decoder.withDefault` */\r\nvar withDefault$1 = Decoder.withDefault;\r\n/** See `Decoder.valueAt` */\r\nvar valueAt = Decoder.valueAt;\r\n/** See `Decoder.succeed` */\r\nvar succeed = Decoder.succeed;\r\n/** See `Decoder.fail` */\r\nvar fail = Decoder.fail;\r\n/** See `Decoder.lazy` */\r\nvar lazy = Decoder.lazy;\r\n\r\nexport { result as Result, Decoder, isDecoderError, string, number, boolean, anyJson, unknownJson, constant, object, array, tuple, dict, optional, oneOf, union, intersection, withDefault$1 as withDefault, valueAt, succeed, fail, lazy };\r\n//# sourceMappingURL=index.es5.js.map\r\n","import { Decoder, string } from 'decoder-validate';\n\nexport const nonEmptyStringDecoder: Decoder<string> = string().where((s) => s.length > 0, 'Expected a non-empty string');\n","import { Decoder, boolean, object, optional } from 'decoder-validate';\nimport { ContextMenuAction } from '../lib/context-menu/types';\nimport { nonEmptyStringDecoder } from './base';\n\nexport const contextMenuActionDecoder: Decoder<ContextMenuAction> = object({\n name: nonEmptyStringDecoder,\n displayName: optional(nonEmptyStringDecoder),\n disabled: optional(boolean()),\n});\n","import { Decoder, array, object, optional, string } from 'decoder-validate';\nimport { FavoriteEntity } from '../common/types';\nimport { nonEmptyStringDecoder } from './base';\nimport { contextMenuActionDecoder } from './context-menu';\n\nconst favoriteEntityDecoder: Decoder<FavoriteEntity> = object({\n id: nonEmptyStringDecoder,\n title: nonEmptyStringDecoder,\n description: optional(nonEmptyStringDecoder),\n icon: optional(string()),\n iconSrc: optional(string()),\n contextMenuActions: optional(array(contextMenuActionDecoder)),\n type: nonEmptyStringDecoder,\n});\n\nexport const favoriteEntitiesStorageValueDecoder: Decoder<FavoriteEntity[]> = array(favoriteEntityDecoder);\n","import { useMemo } from 'react';\nimport { FAVORITE_ENTITIES_LOCAL_STORAGE_KEY } from '../constants/storageKeys';\nimport type { FavoriteEntity } from '../common/types';\nimport type { SectionItemType } from '../lib/section/types';\nimport { useStorage } from './useStorage';\nimport { favoriteEntitiesStorageValueDecoder } from '../decoders/favorites';\n\nexport const useFavoriteEntities = () => {\n const [favoriteEntitiesStoredValue, setFavoriteEntitiesStoredValue] = useStorage<FavoriteEntity[]>(\n 'localStorage',\n FAVORITE_ENTITIES_LOCAL_STORAGE_KEY,\n favoriteEntitiesStorageValueDecoder\n );\n\n const favoriteEntities = useMemo(() => favoriteEntitiesStoredValue || [], [favoriteEntitiesStoredValue]);\n\n const toggleFavorite = ({ isOpen, ...item }: SectionItemType) => {\n const existingEntity = favoriteEntities.find((entity) => entity.title === item.title && entity.type === item.type);\n\n const entitiesToStore = existingEntity\n ? favoriteEntities.filter((entity) => entity !== existingEntity)\n : [...favoriteEntities, item];\n\n setFavoriteEntitiesStoredValue(entitiesToStore);\n };\n\n const removeFavorite = (id: string) => {\n setFavoriteEntitiesStoredValue(favoriteEntities.filter((entity) => entity.id !== id));\n };\n\n return { favoriteEntities, toggleFavorite, removeFavorite };\n};\n","import { IOConnectContext } from '@interopio/react-hooks';\nimport { getFrameId } from '@interopio/workspaces-ui-react';\nimport { IOConnectWorkspaces } from '@interopio/workspaces-api';\nimport { useState, useContext, useEffect } from 'react';\n\nexport const useFrame = (): IOConnectWorkspaces.Frame | undefined => {\n const [currentFrame, setCurrentFrame] = useState<IOConnectWorkspaces.Frame | undefined>();\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n const frameID = getFrameId();\n\n io.workspaces\n ?.waitForFrame(frameID)\n .then(setCurrentFrame)\n .catch((error) => console.error('Failed to get current frame', { error }));\n }, [io]);\n\n return currentFrame;\n};\n","import { useContext } from 'react';\nimport { IOConnectSearch } from '@interopio/search-api';\nimport { IOConnectContext } from '@interopio/react-hooks';\n\nexport const useInvokeInteropMethod = (): ((action: IOConnectSearch.MainAction) => Promise<any>) => {\n const io = useContext(IOConnectContext);\n\n return async (action: IOConnectSearch.MainAction) => {\n if (io.interop.methods().every((method) => method.name !== action?.method)) {\n return console.error('Interop method not found.');\n }\n\n return await io.interop.invoke(action.method, action.params, action.target).catch((error) => console.error({ error }));\n };\n};\n","import { useState, useContext, useEffect } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport type { Layout } from '../lib/layouts-panel/types';\n\nexport const useLayouts = () => {\n const [layouts, setLayouts] = useState<Layout[]>([]);\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n let isUnsubscribed = false;\n\n const unsubscribeOnAdded = io.layouts.onAdded((addedLayout) => {\n if (addedLayout.type !== 'Global' || isUnsubscribed) {\n return;\n }\n\n const { name, type } = addedLayout;\n\n setLayouts((layouts) => [...layouts, { name, type }]);\n });\n\n const unsubscribeOnRemoved = io.layouts.onRemoved((removedLayout) => {\n if (removedLayout.type !== 'Global' || isUnsubscribed) {\n return;\n }\n\n setLayouts((layouts) => layouts.filter((layout) => layout.name !== removedLayout.name));\n });\n\n return () => {\n isUnsubscribed = true;\n\n unsubscribeOnAdded();\n unsubscribeOnRemoved();\n };\n }, [io]);\n\n return layouts;\n};\n","import { useContext, useEffect, useState } from 'react';\nimport { IOConnectBrowser } from '@interopio/browser';\nimport { IOConnectContext } from '@interopio/react-hooks';\n\nexport const useNotifications = () => {\n const [notifications, setNotifications] = useState<IOConnectBrowser.Notifications.NotificationData[]>([]);\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) return;\n\n const unsubscribeOnRaised = io.notifications.onRaised((raisedNotification) =>\n setNotifications((current) => [...current, raisedNotification])\n );\n\n const unsubscribeOnClosed = io.notifications.onClosed((closedNotification) =>\n setNotifications((current) => current.filter((notification) => notification.id !== closedNotification.id))\n );\n\n io.notifications.list().then(setNotifications).catch(console.error);\n\n return () => {\n unsubscribeOnRaised();\n unsubscribeOnClosed();\n };\n }, [io]);\n\n return notifications;\n};\n","import { ActiveSort, NotificationSeverity, SortKey } from './types';\n\nexport const SEVERITY_ORDER: readonly NotificationSeverity[] = ['None', 'Low', 'Medium', 'High', 'Critical'];\n\nexport const SEVERITY_COLORS: { [Severity in NotificationSeverity]: string } = {\n None: '#616161',\n Low: '#7AC70C',\n Medium: '#E0A900',\n High: '#E0474C',\n Critical: '#B8001E',\n};\n\nexport const SORT_KEY: { [Key in SortKey as Uppercase<Key>]: Key } = {\n TIMESTAMP: 'timestamp',\n SEVERITY: 'severity',\n};\n\nexport const DEFAULT_SORT: ActiveSort = {\n key: SORT_KEY.TIMESTAMP,\n descending: true,\n};\n","import { IOConnectBrowser } from '@interopio/browser';\nimport { SEVERITY_ORDER, SORT_KEY } from '../lib/notifications-panel/constants';\nimport { SortKey } from '../lib/notifications-panel/types';\n\nexport const sortByTimestamp = (notifications: IOConnectBrowser.Notifications.NotificationData[], descending: boolean) => {\n return [...notifications].sort((a, b) => (descending ? -1 : 1) * ((a.timestamp || 0) - (b.timestamp || 0)));\n};\n\nexport const sortBySeverity = (notifications: IOConnectBrowser.Notifications.NotificationData[], descending: boolean) => {\n const defaultSeverity = SEVERITY_ORDER[0];\n\n return [...notifications].sort((a, b) => {\n const aSeverity = SEVERITY_ORDER.indexOf(a.severity || defaultSeverity);\n const bSeverity = SEVERITY_ORDER.indexOf(b.severity || defaultSeverity);\n\n return (descending ? -1 : 1) * (aSeverity - bSeverity);\n });\n};\n\nexport const sortExecutors: {\n [Key in SortKey]: (\n notifications: IOConnectBrowser.Notifications.NotificationData[],\n descending: boolean\n ) => IOConnectBrowser.Notifications.NotificationData[];\n} = {\n [SORT_KEY.TIMESTAMP]: sortByTimestamp,\n [SORT_KEY.SEVERITY]: sortBySeverity,\n};\n","import { useCallback, useMemo, useState } from 'react';\nimport { DEFAULT_SORT } from '../lib/notifications-panel/constants';\nimport { ActiveSort, SortKey } from '../lib/notifications-panel/types';\nimport { sortExecutors } from '../executors/notificationsSort';\nimport { useNotifications } from './useNotifications';\n\nexport const useNotificationsSort = () => {\n const notifications = useNotifications();\n const [sort, setSort] = useState<ActiveSort>(DEFAULT_SORT);\n const { key, descending } = sort;\n\n const sortedNotifications = useMemo(() => sortExecutors[key](notifications, descending), [notifications, key, descending]);\n\n const onNotificationsSort = useCallback((key: SortKey) => {\n setSort((sort) => ({ key, descending: sort.key !== key ? DEFAULT_SORT.descending : !sort.descending }));\n }, []);\n\n return { onNotificationsSort, sortedNotifications };\n};\n","import { useEffect, useState } from 'react';\n\nexport const usePressedKeys = (): string | null => {\n const [pressedKeys, setPressedKeys] = useState<string[]>([]);\n\n useEffect(() => {\n const onKeyDown = ({ key }: KeyboardEvent) => {\n setPressedKeys((keys) => (keys.includes(key) ? keys : keys.concat(key)));\n };\n\n const onKeyUp = (event: KeyboardEvent) => {\n setPressedKeys((keys) => keys.filter((key) => key !== event.key));\n };\n\n const onBlur = () => {\n setPressedKeys([]);\n };\n\n document.addEventListener('keydown', onKeyDown);\n document.addEventListener('keyup', onKeyUp);\n window.addEventListener('blur', onBlur);\n\n return () => {\n document.removeEventListener('keydown', onKeyDown);\n document.removeEventListener('keyup', onKeyUp);\n window.removeEventListener('blur', onBlur);\n };\n }, []);\n\n // TODO: clarify the logic of the hook\n return pressedKeys.length === 1 ? pressedKeys[0] : null;\n};\n","export const MODIFIER_KEYS = {\n CONTROL: 'Control',\n SHIFT: 'Shift',\n} as const;\n","import { useContext } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { IOConnectWorkspaces } from '@interopio/workspaces-api';\nimport { MODIFIER_KEYS } from '../constants/modifierKeys';\nimport { useFrame } from './useFrame';\n\nexport const useRestoreWorkspace = () => {\n const io = useContext(IOConnectContext);\n const frame = useFrame();\n\n return async (id: string, modifier: string | null) => {\n const restoreOptions: IOConnectWorkspaces.RestoreWorkspaceConfig =\n modifier === MODIFIER_KEYS.CONTROL ? { newFrame: true } : { frameId: frame?.id };\n\n return io.workspaces?.restoreWorkspace(id, restoreOptions);\n };\n};\n","import { useContext, useCallback } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { LayoutSummary } from '../lib/layouts-panel/types';\n\nexport const useRestoreLayout = () => {\n const io = useContext(IOConnectContext);\n\n return useCallback(\n async (name: string, onSuccessfulLayoutRestore?: (layout: LayoutSummary) => void) => {\n if (!io) {\n return;\n }\n\n try {\n await io.layouts.restore({ name });\n onSuccessfulLayoutRestore?.({ name });\n } catch (error) {\n console.error(error);\n }\n },\n [io]\n );\n};\n","import { useState, useContext, useEffect, useRef } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { IOConnectBrowser } from '@interopio/browser';\nimport { IOConnectSearch } from '@interopio/search-api';\n\nexport const useSearch = (\n searchTerm: string\n): {\n resultsToRender: IOConnectSearch.QueryResult[];\n isLoading: boolean;\n} => {\n const [resultsToRender, setResultsToRender] = useState<IOConnectSearch.QueryResult[]>([]);\n const [isLoading, setIsLoading] = useState(true);\n const queryRef = useRef<IOConnectSearch.Query | null>(null);\n\n const io = useContext(IOConnectContext) as IOConnectBrowser.API;\n\n useEffect(() => {\n const ioSearch = io?.search;\n\n if (!ioSearch) {\n return;\n }\n\n const unsubscribeFns: IOConnectSearch.UnsubscribeFunction[] = [];\n const currentResults: IOConnectSearch.QueryResult[] = [];\n\n const sendQuery = async (searchTerm: string): Promise<void> => {\n setIsLoading(true);\n setResultsToRender([]);\n\n const query = await ioSearch.query({\n search: searchTerm.trim(),\n providerLimits: { maxResults: 100, maxResultsPerType: 5 },\n });\n\n if (query === queryRef.current) {\n return;\n }\n\n queryRef.current = query;\n\n const unsubscribeOnResults = query.onResults((response) => {\n response.results.forEach((queryResult) => {\n const resultExists = currentResults.find(\n (result) => result.id === queryResult.id && result.type.name === queryResult.type.name\n );\n\n if (resultExists) {\n return;\n }\n\n currentResults.push(queryResult);\n });\n\n setIsLoading(false);\n setResultsToRender([...currentResults]);\n });\n\n const unsubscribeOnCompleted = query.onCompleted(() => {\n setIsLoading(false);\n });\n\n const unsubscribeOnError = query.onError((error) => {\n console.error(`Query failed. Provider: ${error.provider}; Error: ${error.error}`);\n });\n\n unsubscribeFns.push(unsubscribeOnResults, unsubscribeOnCompleted, unsubscribeOnError);\n };\n\n sendQuery(searchTerm);\n\n return () => {\n unsubscribeFns.forEach((fn) => fn());\n };\n }, [io, searchTerm]);\n\n return { resultsToRender, isLoading };\n};\n","import { useContext } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { MODIFIER_KEYS } from '../constants/modifierKeys';\n\nexport const useStartApplication = () => {\n const io = useContext(IOConnectContext);\n\n return async (id: string, modifier: string | null) => {\n const selectedWorkspace = await io.workspaces?.getWorkspace((workspace) => workspace.isSelected === true);\n\n const outermostChild = selectedWorkspace?.children[0];\n\n const standalone = modifier === MODIFIER_KEYS.CONTROL || !selectedWorkspace || outermostChild?.type === 'window';\n\n if (standalone) {\n return await io.appManager.application(id).start();\n }\n\n const group = outermostChild?.type === 'group' ? outermostChild : await (outermostChild || selectedWorkspace).addGroup();\n\n return await group.addWindow({ appName: id });\n };\n};\n","import { useState, useContext, useEffect } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport type { Workspace } from '../lib/workspaces-section/types';\n\nexport const useWorkspaces = () => {\n const [workspaces, setWorkspaces] = useState<Workspace[]>([]);\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io || !io.workspaces) return;\n\n let isUnsubscribed = false;\n\n const unsubscribeOnSaved = io.workspaces.layouts.onSaved(({ name }) => {\n if (isUnsubscribed || workspaces.find(({ id }) => id === name)) {\n return;\n }\n\n setWorkspaces((current) => [...current, { id: name, title: name }]);\n });\n\n const unsubscribeOnRemoved = io.workspaces.layouts.onRemoved(({ name }) => {\n if (isUnsubscribed) return;\n\n setWorkspaces((current) => current.filter(({ title }) => title !== name));\n });\n\n return () => {\n isUnsubscribed = true;\n\n [unsubscribeOnSaved, unsubscribeOnRemoved].forEach(async (promise) => {\n try {\n const unsubscribe = await promise;\n\n unsubscribe();\n } catch (error) {\n console.error(error);\n }\n });\n };\n }, [io, workspaces]);\n\n return workspaces;\n};\n","import { useState, useContext, useEffect } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { IOConnectWorkspaces } from '@interopio/workspaces-api';\n\nexport const useWorkspacesInstances = () => {\n const [runningInstances, setRunningInstances] = useState<{\n [wsName: string]: string[];\n }>({});\n\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n if (!io) return;\n const unsubscribeArr: (IOConnectWorkspaces.Unsubscribe | undefined)[] = [];\n\n (async () => {\n try {\n const unsubscribeOnAdd = await io.workspaces?.onWorkspaceOpened((workspace) =>\n setRunningInstances((current) => ({\n ...current,\n [workspace.title]: [...(current[workspace.title] || []), workspace.id],\n }))\n );\n unsubscribeArr.push(unsubscribeOnAdd);\n\n const unsubscribeOnClosed = await io.workspaces?.onWorkspaceClosed(({ workspaceId }) =>\n setRunningInstances((current) => {\n const updated = { ...current };\n for (const key in updated) {\n if (updated[key].includes(workspaceId)) {\n updated[key] = updated[key].filter((instanceId) => instanceId !== workspaceId);\n break;\n }\n }\n return updated;\n })\n );\n unsubscribeArr.push(unsubscribeOnClosed);\n } catch (error) {\n console.error(error);\n }\n })();\n\n return () => unsubscribeArr.forEach((unsubscribe) => unsubscribe?.());\n }, [io]);\n\n return runningInstances;\n};\n","import { IOConnectWorkspaces } from '@interopio/workspaces-api';\nimport { ApplicationActionExecutor } from './types';\n\nconst handleOpenInNewWindow: ApplicationActionExecutor = (config) => {\n const { io, item } = config;\n\n io.appManager\n .application(item.id)\n .start()\n .catch((error) => {\n console.error('Failed to start application: ', { error });\n });\n};\n\nconst handleOpenInNewWorkspace: ApplicationActionExecutor = (config) => {\n const { io, item, frame } = config;\n\n if (!io.workspaces) {\n return;\n }\n\n const builderConfig: IOConnectWorkspaces.BuilderConfig = {\n type: 'workspace',\n definition: {\n frame: frame ? { reuseFrameId: frame.id } : { newFrame: true },\n },\n };\n\n const builder = io.workspaces.getBuilder(builderConfig) as IOConnectWorkspaces.WorkspaceBuilder;\n\n builder.addGroup().addWindow({ appName: item.id });\n\n builder.create().catch((error) => {\n console.error('Failed to create workspace: ', { error });\n });\n};\n\nexport const applicationActionExecutors: {\n [key: string]: ApplicationActionExecutor;\n} = {\n openInNewWindow: handleOpenInNewWindow,\n openInNewWorkspace: handleOpenInNewWorkspace,\n} as const;\n","import { useContext } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { useFrame } from './useFrame';\nimport { applicationActionExecutors } from '../executors/applicationActions';\nimport { SectionItemType } from '../lib/section/types';\n\nexport const useExecuteApplicationAction = () => {\n const io = useContext(IOConnectContext);\n const frame = useFrame();\n\n return (item: SectionItemType, actionName: string) => {\n applicationActionExecutors[actionName]({ io, item, frame });\n };\n};\n","import { WorkspaceActionExecutor } from './types';\n\nconst handleOpenInNewFrame: WorkspaceActionExecutor = (config) => {\n const { io, item } = config;\n\n if (!io.workspaces) {\n return;\n }\n\n io.workspaces.restoreWorkspace(item.id, { newFrame: true }).catch((error) => {\n console.error('Failed to open workspace in new frame: ', { error });\n });\n};\n\nconst handleDelete: WorkspaceActionExecutor = async (config) => {\n const { io, item, removeFavorite } = config;\n\n if (!io.workspaces) {\n return;\n }\n\n try {\n await io.workspaces.layouts.delete(item.id);\n removeFavorite(item.id);\n } catch (error) {\n console.error('Failed to delete workspace: ', { error });\n }\n};\n\nexport const workspaceActionExecutors: {\n [key: string]: WorkspaceActionExecutor;\n} = {\n openInNewFrame: handleOpenInNewFrame,\n delete: handleDelete,\n} as const;\n","import { useContext } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { workspaceActionExecutors } from '../executors/workspaceActions';\nimport { SectionItemType } from '../lib/section/types';\nimport { useFavoriteEntities } from './useFavoriteEntities';\n\nexport const useExecuteWorkspaceAction = () => {\n const io = useContext(IOConnectContext);\n const { removeFavorite } = useFavoriteEntities();\n\n return (item: SectionItemType, actionName: string) => {\n workspaceActionExecutors[actionName]({ io, item, removeFavorite });\n };\n};\n","import { LayoutActionExecutor } from './types';\n\nconst handleSetAsDefault: LayoutActionExecutor = (config) => {\n const { layout, setDefaultLayout } = config;\n\n setDefaultLayout({ name: layout.name });\n};\n\nconst handleDelete: LayoutActionExecutor = (config) => {\n const { io, layout } = config;\n\n io.layouts.remove('Global', layout.name).catch((error) => {\n console.error('Failed to delete layout: ', { error });\n });\n};\n\nexport const layoutActionExecutors: {\n [key: string]: LayoutActionExecutor;\n} = {\n setAsDefault: handleSetAsDefault,\n delete: handleDelete,\n} as const;\n","import { useContext, useCallback } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { IOConnectBrowser } from '@interopio/browser';\nimport { layoutActionExecutors } from '../executors/layoutActions';\nimport { Layout, LayoutSummary } from '../lib/layouts-panel/types';\n\nexport const useExecuteLayoutAction = () => {\n const io = useContext(IOConnectContext) as IOConnectBrowser.API;\n\n const executeLayoutAction = useCallback(\n (layout: Layout, actionName: string, setDefaultLayout: (layout: LayoutSummary) => Promise<void>) => {\n layoutActionExecutors[actionName]({\n io,\n layout,\n setDefaultLayout,\n });\n },\n [io]\n );\n\n return executeLayoutAction;\n};\n","/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v1.0.35\n Copyright © 2012-2021 Faisal Salman <f@faisalman.com>\n MIT License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://faisalman.github.io/ua-parser-js\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n(function (window, undefined) {\n\n 'use strict';\n\n //////////////\n // Constants\n /////////////\n\n\n var LIBVERSION = '1.0.35',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n EMBEDDED = 'embedded',\n UA_MAX_LENGTH = 350;\n\n var AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n BROWSER = 'Browser',\n CHROME = 'Chrome',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n OPERA = 'Opera',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n VIERA = 'Viera',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n FACEBOOK = 'Facebook',\n CHROMIUM_OS = 'Chromium OS',\n MAC_OS = 'Mac OS';\n\n ///////////\n // Helper\n //////////\n\n var extend = function (regexes, extensions) {\n var mergedRegexes = {};\n for (var i in regexes) {\n if (extensions[i] && extensions[i].length % 2 === 0) {\n mergedRegexes[i] = extensions[i].concat(regexes[i]);\n } else {\n mergedRegexes[i] = regexes[i];\n }\n }\n return mergedRegexes;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i<arr.length; i++) {\n enums[arr[i].toUpperCase()] = arr[i];\n }\n return enums;\n },\n has = function (str1, str2) {\n return typeof str1 === STR_TYPE ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\n },\n lowerize = function (str) {\n return str.toLowerCase();\n },\n majorize = function (version) {\n return typeof(version) === STR_TYPE ? version.replace(/[^\\d\\.]/g, EMPTY).split('.')[0] : undefined;\n },\n trim = function (str, len) {\n if (typeof(str) === STR_TYPE) {\n str = str.replace(/^\\s\\s*/, EMPTY);\n return typeof(len) === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n }\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n if (!regex[j]) { break; }\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === OBJ_TYPE && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return str;\n };\n\n ///////////////\n // String map\n //////////////\n\n // Safari < 3.0\n var oldSafariMap = {\n '1.0' : '/8',\n '1.2' : '/1',\n '1.3' : '/3',\n '2.0' : '/412',\n '2.0.2' : '/416',\n '2.0.3' : '/417',\n '2.0.4' : '/419',\n '?' : '/'\n },\n windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n };\n\n //////////////\n // Regex map\n /////////////\n\n var regexes = {\n\n browser : [[\n\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer)[\\/ ]?([\\w\\.]*)/i, // Lunascape/Maxthon/Netfront/Jasmine/Blazer\n // Trident based\n /(avant |iemobile|slim)(?:browser)?[\\/ ]?([\\w\\.]*)/i, // Avant/IEMobile/SlimBrowser\n /(ba?idubrowser)[\\/ ]?([\\w\\.]+)/i, // Baidu Browser\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|bolt|iron|vivaldi|iridium|phantomjs|bowser|quark|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|qq|duckduckgo)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ, aka ShouQ\n /(heytap|ovi)browser\\/([\\d\\.]+)/i, // Heytap/Ovi\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UC'+BROWSER]], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i\n ], [VERSION, [NAME, 'WeChat(Win) Desktop']], [\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure '+BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI '+BROWSER]], [\n /fxios\\/([-\\w\\.]+)/i // Firefox for iOS\n ], [VERSION, [NAME, FIREFOX]], [\n /\\bqihu|(qi?ho?o?|360)browser/i // 360\n ], [[NAME, '360 '+BROWSER]], [\n /(oculus|samsung|sailfish|huawei)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1 '+BROWSER], VERSION], [ // Oculus/Samsung/Sailfish/Huawei Browser\n /(comodo_dragon)\\/([\\w\\.]+)/i // Comodo Dragon\n ], [[NAME, /_/g, ' '], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|baiduboxapp|2345Explorer)[\\/ ]?([\\w\\.]+)/i // QQBrowser/Baidu App/2345 Browser\n ], [NAME, VERSION], [\n /(metasr)[\\/ ]?([\\w\\.]+)/i, // SouGouBrowser\n /(lbbrowser)/i, // LieBao Browser\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION], [\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(chromium|instagram)[\\/ ]([-\\w\\.]+)/i // Chromium/Instagram\n ], [NAME, VERSION], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA']], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok']], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android '+BROWSER]], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile\\/\\w+ (safari)/i // Mobile Safari\n ], [VERSION, [NAME, 'Mobile Safari']], [\n /version\\/([\\w(\\.|\\,)]+) .*(mobile ?safari|safari)/i // Safari & Safari Mobile\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, strMapper, oldSafariMap]], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror|klar)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror/Klar\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|sleipnir|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Sleipnir/Obigo/Mosaic/Go/ICE/UP.Browser\n /(links) \\(([\\w\\.]+)/i, // Links\n /panasonic;(viera)/i // Panasonic Viera\n ], [NAME, VERSION], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /master.|lts./, \"\"]]\n ],\n\n cpu : [[\n\n /(?:(amd|x(?:(?:86|64)[-_])?|wow|win)64)[;\\)]/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i // IA32 (quicktime)\n ], [[ARCHITECTURE, lowerize]], [\n\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]([-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei|honor)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+)(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[12]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, 'Lenovo'], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+ (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo[c-r]{2})( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(nook)[\\w ]+build\\/(\\w+)/i, // Nook\n /(dell) (strea[kpr\\d ]*[\\dko])/i, // Dell Streak\n /(le[- ]+pan)[- ]+(\\w{1,9}) bui/i, // Le Pan Tablets\n /(trinity)[- ]*(t\\d{3}) bui/i, // Trinity Tablets\n /(gigaset)[- ]+(q\\w{1,9}) bui/i, // Gigaset Tablets\n /(vodafone) ([\\w ]+)(?:\\)| bui)/i // Vodafone\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(u304aa)/i // AT&T\n ], [MODEL, [VENDOR, 'AT&T'], [TYPE, MOBILE]], [\n /\\bsie-(\\w*)/i // Siemens\n ], [MODEL, [VENDOR, 'Siemens'], [TYPE, MOBILE]], [\n /\\b(rct\\w+) b/i // RCA Tablets\n ], [MODEL, [VENDOR, 'RCA'], [TYPE, TABLET]], [\n /\\b(venue[\\d ]{2,7}) b/i // Dell Venue Tablets\n ], [MODEL, [VENDOR, 'Dell'], [TYPE, TABLET]], [\n /\\b(q(?:mv|ta)\\w+) b/i // Verizon Tablet\n ], [MODEL, [VENDOR, 'Verizon'], [TYPE, TABLET]], [\n /\\b(?:barnes[& ]+noble |bn[rt])([\\w\\+ ]*) b/i // Barnes & Noble Tablet\n ], [MODEL, [VENDOR, 'Barnes & Noble'], [TYPE, TABLET]], [\n /\\b(tm\\d{3}\\w+) b/i\n ], [MODEL, [VENDOR, 'NuVision'], [TYPE, TABLET]], [\n /\\b(k88) b/i // ZTE K Series Tablet\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, TABLET]], [\n /\\b(nx\\d{3}j) b/i // ZTE Nubia\n ], [MODEL, [VENDOR, 'ZTE'], [TYPE, MOBILE]], [\n /\\b(gen\\d{3}) b.+49h/i // Swiss GEN Mobile\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, MOBILE]], [\n /\\b(zur\\d{3}) b/i // Swiss ZUR Tablet\n ], [MODEL, [VENDOR, 'Swiss'], [TYPE, TABLET]], [\n /\\b((zeki)?tb.*\\b) b/i // Zeki Tablets\n ], [MODEL, [VENDOR, 'Zeki'], [TYPE, TABLET]], [\n /\\b([yr]\\d{2}) b/i,\n /\\b(dragon[- ]+touch |dt)(\\w{5}) b/i // Dragon Touch Tablet\n ], [[VENDOR, 'Dragon Touch'], MODEL, [TYPE, TABLET]], [\n /\\b(ns-?\\w{0,9}) b/i // Insignia Tablets\n ], [MODEL, [VENDOR, 'Insignia'], [TYPE, TABLET]], [\n /\\b((nxa|next)-?\\w{0,9}) b/i // NextBook Tablets\n ], [MODEL, [VENDOR, 'NextBook'], [TYPE, TABLET]], [\n /\\b(xtreme\\_)?(v(1[045]|2[015]|[3469]0|7[05])) b/i // Voice Xtreme Phones\n ], [[VENDOR, 'Voice'], MODEL, [TYPE, MOBILE]], [\n /\\b(lvtel\\-)?(v1[12]) b/i // LvTel Phones\n ], [[VENDOR, 'LvTel'], MODEL, [TYPE, MOBILE]], [\n /\\b(ph-1) /i // Essential PH-1\n ], [MODEL, [VENDOR, 'Essential'], [TYPE, MOBILE]], [\n /\\b(v(100md|700na|7011|917g).*\\b) b/i // Envizen Tablets\n ], [MODEL, [VENDOR, 'Envizen'], [TYPE, TABLET]], [\n /\\b(trio[-\\w\\. ]+) b/i // MachSpeed Tablets\n ], [MODEL, [VENDOR, 'MachSpeed'], [TYPE, TABLET]], [\n /\\btu_(1491) b/i // Rotor Tablets\n ], [MODEL, [VENDOR, 'Rotor'], [TYPE, TABLET]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; (cc6666?|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast\n ], [[MODEL, CHROME+'cast'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) ([wids3utch]+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation [345portablevi]+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n /(quest( 2| pro)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, WEARABLE]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n /\\b(libweb)/i\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows) nt 6\\.2; (arm)/i, // Windows RT\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i, // Windows Phone\n /(windows)[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /(win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[NAME, 'Windows'], [VERSION, strMapper, windowsVersionMap]], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /ios;fbsv\\/([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, MAC_OS], [VERSION, /_/g, '.']], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google Chromecast\n /crkey\\/([\\d\\.]+)/i // Google Chromecast\n ], [VERSION, [NAME, CHROME+'cast']], [\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, CHROMIUM_OS], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) ([wids345portablevuch]+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n var UAParser = function (ua, extensions) {\n\n if (typeof ua === OBJ_TYPE) {\n extensions = ua;\n ua = undefined;\n }\n\n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions).getResult();\n }\n\n var _navigator = (typeof window !== UNDEF_TYPE && window.navigator) ? window.navigator : undefined;\n var _ua = ua || ((_navigator && _navigator.userAgent) ? _navigator.userAgent : EMPTY);\n var _uach = (_navigator && _navigator.userAgentData) ? _navigator.userAgentData : undefined;\n var _rgxmap = extensions ? extend(regexes, extensions) : regexes;\n var _isSelfNav = _navigator && _navigator.userAgent == _ua;\n\n this.getBrowser = function () {\n var _browser = {};\n _browser[NAME] = undefined;\n _browser[VERSION] = undefined;\n rgxMapper.call(_browser, _ua, _rgxmap.browser);\n _browser[MAJOR] = majorize(_browser[VERSION]);\n // Brave-specific detection\n if (_isSelfNav && _navigator && _navigator.brave && typeof _navigator.brave.isBrave == FUNC_TYPE) {\n _browser[NAME] = 'Brave';\n }\n return _browser;\n };\n this.getCPU = function () {\n var _cpu = {};\n _cpu[ARCHITECTURE] = undefined;\n rgxMapper.call(_cpu, _ua, _rgxmap.cpu);\n return _cpu;\n };\n this.getDevice = function () {\n var _device = {};\n _device[VENDOR] = undefined;\n _device[MODEL] = undefined;\n _device[TYPE] = undefined;\n rgxMapper.call(_device, _ua, _rgxmap.device);\n if (_isSelfNav && !_device[TYPE] && _uach && _uach.mobile) {\n _device[TYPE] = MOBILE;\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (_isSelfNav && _device[MODEL] == 'Macintosh' && _navigator && typeof _navigator.standalone !== UNDEF_TYPE && _navigator.maxTouchPoints && _navigator.maxTouchPoints > 2) {\n _device[MODEL] = 'iPad';\n _device[TYPE] = TABLET;\n }\n return _device;\n };\n this.getEngine = function () {\n var _engine = {};\n _engine[NAME] = undefined;\n _engine[VERSION] = undefined;\n rgxMapper.call(_engine, _ua, _rgxmap.engine);\n return _engine;\n };\n this.getOS = function () {\n var _os = {};\n _os[NAME] = undefined;\n _os[VERSION] = undefined;\n rgxMapper.call(_os, _ua, _rgxmap.os);\n if (_isSelfNav && !_os[NAME] && _uach && _uach.platform != 'Unknown') {\n _os[NAME] = _uach.platform \n .replace(/chrome os/i, CHROMIUM_OS)\n .replace(/macos/i, MAC_OS); // backward compatibility\n }\n return _os;\n };\n this.getResult = function () {\n return {\n ua : this.getUA(),\n browser : this.getBrowser(),\n engine : this.getEngine(),\n os : this.getOS(),\n device : this.getDevice(),\n cpu : this.getCPU()\n };\n };\n this.getUA = function () {\n return _ua;\n };\n this.setUA = function (ua) {\n _ua = (typeof ua === STR_TYPE && ua.length > UA_MAX_LENGTH) ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n };\n this.setUA(_ua);\n return this;\n };\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n ///////////\n // Export\n //////////\n\n // check js environment\n if (typeof(exports) !== UNDEF_TYPE) {\n // nodejs env\n if (typeof module !== UNDEF_TYPE && module.exports) {\n exports = module.exports = UAParser;\n }\n exports.UAParser = UAParser;\n } else {\n // requirejs env (optional)\n if (typeof(define) === FUNC_TYPE && define.amd) {\n define(function () {\n return UAParser;\n });\n } else if (typeof window !== UNDEF_TYPE) {\n // browser env\n window.UAParser = UAParser;\n }\n }\n\n // jQuery/Zepto specific (optional)\n // Note:\n // In AMD env the global scope should be kept clean, but jQuery is an exception.\n // jQuery always exports to global scope, unless jQuery.noConflict(true) is used,\n // and we should catch that.\n var $ = typeof window !== UNDEF_TYPE && (window.jQuery || window.Zepto);\n if ($ && !$.ua) {\n var parser = new UAParser();\n $.ua = parser.getResult();\n $.ua.get = function () {\n return parser.getUA();\n };\n $.ua.set = function (ua) {\n parser.setUA(ua);\n var result = parser.getResult();\n for (var prop in result) {\n $.ua[prop] = result[prop];\n }\n };\n }\n\n})(typeof window === 'object' ? window : this);\n","import * as React from 'react';\nimport { UAParser } from 'ua-parser-js';\n\nconst uaParser = new UAParser();\n\nexport const useUA = () => {\n return React.useMemo<Omit<UAParser.IResult, 'ua'>>(\n () => ({\n os: uaParser.getOS(),\n browser: uaParser.getBrowser(),\n cpu: uaParser.getCPU(),\n device: uaParser.getDevice(),\n engine: uaParser.getEngine(),\n }),\n []\n );\n};\n\nexport const useBrowser = () => {\n return React.useMemo<UAParser.IResult['browser']>(() => uaParser.getBrowser(), []);\n};\n","import classNames from 'classnames';\nimport { BaseSectionItemType } from './types';\nimport Icon from '../icon/icon';\nimport ImgIcon from '../img-icon/img-icon';\nimport { useFavoriteEntities } from '../../hooks';\nimport DropdownButton from '../context-menu/dropdown-button/dropdown-button';\nimport { ContextMenuAction } from '../context-menu/types';\nimport { ActivationEvent, isClickKeypress } from '../../helpers/a11y';\n\ninterface BaseSectionItemProps<Item extends BaseSectionItemType> extends React.HTMLProps<HTMLDivElement> {\n isFavoritismEnabled?: boolean;\n item: Item;\n onClick: (event: ActivationEvent, action?: ContextMenuAction) => void;\n onKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void;\n focused: boolean;\n}\n\nexport const BaseSectionItem = <Item extends BaseSectionItemType>(props: BaseSectionItemProps<Item>) => {\n const { className, isFavoritismEnabled = true, item, onClick, onKeyDown, focused, ...domProps } = props;\n const { favoriteEntities, toggleFavorite } = useFavoriteEntities();\n const { description, icon = 'application', iconSrc, isOpen = false, title, contextMenuActions } = item;\n const isFavorite =\n isFavoritismEnabled && favoriteEntities.some((entity) => entity.type === item.type && entity.title === item.title);\n\n return (\n <div\n tabIndex={focused ? 0 : -1}\n className={classNames(className, 'g42-list-item')}\n onKeyDown={(e) => {\n if (isClickKeypress(e)) {\n onClick(e);\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n onKeyDown(e);\n }}\n onClick={onClick}\n data-testid=\"base-section-item\"\n {...domProps}\n >\n <div className=\"g42-list-row\">\n <Icon size={8} name={isOpen ? 'check' : ''} data-testid=\"open-check-icon\" />\n {iconSrc ? (\n <ImgIcon src={iconSrc} alt={`${title} icon`} size={14} data-testid=\"img-icon\" />\n ) : (\n <Icon size={14} name={icon} data-testid=\"icon\" />\n )}\n <span className=\"title\" data-testid=\"title\">\n {title}\n </span>\n {isOpen && (\n <span className=\"opened\" data-testid=\"opened-label\">\n Opened\n </span>\n )}\n {contextMenuActions && contextMenuActions.length > 0 && (\n <DropdownButton\n iconName=\"ellipsis\"\n iconSize={16}\n actions={contextMenuActions}\n onActionItemClick={onClick}\n isTabStop={focused}\n />\n )}\n {isFavoritismEnabled && (\n <Icon\n tabIndex={focused ? 0 : -1}\n className={classNames('favorite', isFavorite && 'visible')}\n name={isFavorite ? 'star-full' : 'star'}\n handleClick={(event) => {\n event.stopPropagation();\n toggleFavorite(item);\n }}\n size={16}\n data-testid=\"favorite-icon\"\n />\n )}\n </div>\n {description && (\n <div className=\"g42-list-row\">\n <span className=\"description\" data-testid=\"description\">\n {description}\n </span>\n </div>\n )}\n </div>\n );\n};\n\nexport default BaseSectionItem;\n","import { Decoder, object } from 'decoder-validate';\nimport { LayoutSummary } from '../lib/layouts-panel/types';\nimport { nonEmptyStringDecoder } from './base';\n\nexport const layoutStorageValueDecoder: Decoder<LayoutSummary | null> = object({\n name: nonEmptyStringDecoder,\n});\n","export const DEFAULT_SYSTEM_LAYOUT = 'Welcome';\nexport const DEFAULT_DISPLAY_COUNT = 5;\n","import { useState, useEffect, createContext, useContext, useCallback, useRef } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { LayoutSummary } from '../layouts-panel/types';\nimport { useRestoreLayout, useStorage } from '../../hooks';\nimport { SELECTED_LAYOUT_SESSION_STORAGE_KEY } from '../../constants/storageKeys';\nimport { layoutStorageValueDecoder } from '../../decoders/layouts';\nimport { DEFAULT_SYSTEM_LAYOUT } from '../../constants/defaults';\n\n/**\n * This hook SHOULD NOT be exported! It should be used ONCE and ONLY in the LaunchpadAPIProvider\n * because it may lead to repeated restoring of layouts!\n */\nconst useSetUpLayouts = () => {\n const [defaultLayoutState, setDefaultLayoutState] = useState<LayoutSummary | null>(null);\n const [selectedLayout, setSelectedLayout] = useStorage(\n 'sessionStorage',\n SELECTED_LAYOUT_SESSION_STORAGE_KEY,\n layoutStorageValueDecoder\n );\n const layoutsSetupInitiated = useRef(false);\n const restoreLayout = useRestoreLayout();\n\n const io = useContext(IOConnectContext);\n\n const setDefaultLayout = useCallback(\n async ({ name }: LayoutSummary) => {\n try {\n await io.layouts.setDefaultGlobal(name);\n setDefaultLayoutState({ name });\n } catch (error) {\n console.error('Failed to set default layout: ', { error });\n }\n },\n [io]\n );\n\n useEffect(() => {\n if (!io || layoutsSetupInitiated.current) {\n return;\n }\n\n const setUpLayouts = async () => {\n layoutsSetupInitiated.current = true;\n\n const defaultGlobalLayout =\n (await io.layouts.getDefaultGlobal()) || (await io.layouts.get(DEFAULT_SYSTEM_LAYOUT, 'Global'));\n\n if (!defaultGlobalLayout) {\n return;\n }\n\n setDefaultLayoutState({ name: defaultGlobalLayout.name });\n\n if (!selectedLayout) {\n restoreLayout(defaultGlobalLayout.name, setSelectedLayout);\n }\n };\n\n setUpLayouts();\n }, [io, selectedLayout, restoreLayout, setSelectedLayout]);\n\n return {\n defaultLayout: defaultLayoutState,\n selectedLayout,\n setDefaultLayout,\n setSelectedLayout,\n };\n};\n\ninterface LaunchpadAPIProviderProps {\n children: React.ReactNode;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n isOpen: boolean;\n}\n\nconst LaunchpadAPIContext = createContext<\n | {\n close: () => void;\n isOpen: boolean;\n defaultLayout: LayoutSummary | null;\n selectedLayout: LayoutSummary | null;\n setDefaultLayout: (layout: LayoutSummary) => Promise<void>;\n setSelectedLayout: (layout: LayoutSummary) => void;\n }\n | undefined\n>(undefined);\n\nexport const useLaunchpadAPI = () => {\n const context = useContext(LaunchpadAPIContext);\n\n if (context === undefined) {\n throw new Error('useLaunchpadAPI must be used within a LaunchpadAPIProvider');\n }\n\n return context;\n};\n\nexport const LaunchpadAPIProvider = ({ children, setOpen, isOpen }: LaunchpadAPIProviderProps) => {\n const { defaultLayout, selectedLayout, setDefaultLayout, setSelectedLayout } = useSetUpLayouts();\n const close = useCallback(() => setOpen(false), [setOpen]);\n\n const launchpadAPI = {\n close,\n isOpen,\n defaultLayout,\n selectedLayout,\n setDefaultLayout,\n setSelectedLayout,\n };\n\n return <LaunchpadAPIContext.Provider value={launchpadAPI}>{children}</LaunchpadAPIContext.Provider>;\n};\n","import { useEffect, useState, useMemo, useRef } from 'react';\nimport BaseSectionHeader from './base-section-header';\nimport BaseSectionItem from './base-section-item';\nimport { isSection } from './helpers';\nimport type { BaseSectionItemType, BaseSectionType } from './types';\nimport { usePressedKeys } from '../../hooks';\nimport Icon from '../icon/icon';\nimport { useLaunchpadAPI } from '../launchpad/launchpad.context';\nimport { DEFAULT_DISPLAY_COUNT } from '../../constants/defaults';\nimport { ActivationEvent, keyboardNavigation, onClickA11y } from '../../helpers/a11y';\n\ninterface BaseSectionProps<Item extends BaseSectionItemType> {\n config: BaseSectionType<Item>;\n isFavoritismEnabled?: boolean;\n level?: number;\n onItemClick: (\n event: ActivationEvent,\n params: {\n item: Item;\n modifier: string | null;\n selectedContextMenuActionName?: string;\n }\n ) => void;\n}\n\nexport const BaseSection = <Item extends BaseSectionItemType>(props: BaseSectionProps<Item>) => {\n const { config, isFavoritismEnabled, level = 1, onItemClick } = props;\n const [page, setPage] = useState(1);\n const displayCount = config.displayCount ?? DEFAULT_DISPLAY_COUNT;\n const pressedKey = usePressedKeys();\n const launchpadAPI = useLaunchpadAPI();\n const [focusedItemIndex, setFocusedItemIndex] = useState(0);\n const liRefs = useRef<Record<number, HTMLLIElement | null>>({});\n\n const sectionItemsToShow = useMemo(() => {\n return config.items.filter((item) => isSection(item));\n }, [config.items]);\n\n const nonSectionItemsToShow = useMemo(() => {\n return config.items.filter((item) => !isSection(item)).slice(0, page * displayCount);\n }, [config.items, displayCount, page]);\n\n useEffect(() => {\n if (launchpadAPI.isOpen) {\n return;\n }\n\n setPage(1);\n }, [launchpadAPI.isOpen]);\n\n const handleShowMoreClick = () => {\n setPage((previousPage) => previousPage + 1);\n };\n\n const items = [...sectionItemsToShow, ...nonSectionItemsToShow];\n\n const moveFocus = (newIndex: number) => {\n (liRefs.current[newIndex]?.querySelector('[tabIndex]') as HTMLElement)?.focus();\n setFocusedItemIndex(newIndex);\n };\n\n return (\n <li className=\"section\">\n <BaseSectionHeader\n iconSrc={config.iconSrc}\n iconName={config.iconName}\n style={{ paddingLeft: `${(level - 1) * 12 + 6}px` }}\n title={config.title}\n />\n <ul>\n {items.map((item, idx) => {\n return isSection(item) ? (\n <BaseSection\n key={item.id}\n config={item}\n isFavoritismEnabled={isFavoritismEnabled}\n level={level + 1}\n onItemClick={onItemClick}\n />\n ) : (\n <li key={item.id || idx} ref={(element) => (liRefs.current[idx] = element)}>\n <BaseSectionItem\n key={item.id || idx}\n isFavoritismEnabled={isFavoritismEnabled}\n item={item}\n onClick={(event, action) =>\n onItemClick?.(event, {\n item,\n modifier: pressedKey,\n selectedContextMenuActionName: action?.name,\n })\n }\n style={{ paddingLeft: `${level * 7}px` }}\n onKeyDown={(event) => {\n keyboardNavigation({\n event,\n moveFocus,\n currentIndex: focusedItemIndex,\n min: 0,\n max: items.length - 1,\n });\n }}\n focused={focusedItemIndex === idx}\n />\n </li>\n );\n })}\n {config.items.length - sectionItemsToShow.length > displayCount * page && (\n <li data-testid=\"more-li-element\">\n <div\n className=\"g42-list-item more\"\n style={{ paddingLeft: `${level * 7 + 8}px` }}\n role=\"button\"\n aria-label=\"More\"\n {...onClickA11y(handleShowMoreClick)}\n >\n <div className=\"g42-list-row\">\n <span className=\"title\">More...</span>\n <Icon size={12} name=\"chevron-down\" data-testid=\"more-chevron\" />\n </div>\n </div>\n </li>\n )}\n </ul>\n </li>\n );\n};\n\nexport default BaseSection;\n","import { isSection } from '../base-section/helpers';\nimport type { SectionItemType, SectionType } from './types';\n\nexport const getItemName = (item: SectionItemType): string => {\n return `${item.type}-${item.id}`;\n};\n\nexport const getClickedItem = (items: SectionType['items'], clickedItemName: string): SectionItemType | undefined => {\n return buildItemsMapping(items)[clickedItemName];\n};\n\nconst buildItemsMapping = (items: SectionType['items']): { [key: string]: SectionItemType } => {\n return items.reduce<{ [key: string]: SectionItemType }>((mapping, item) => {\n return isSection(item) ? { ...mapping, ...buildItemsMapping(item.items) } : { ...mapping, [getItemName(item)]: item };\n }, {});\n};\n","import { createContext, useContext, useState } from 'react';\n\ninterface SectionProviderProps {\n children: React.ReactNode;\n}\n\ninterface ClickDataState {\n itemName: string;\n selectedContextMenuActionName?: string;\n}\n\nconst SectionContext = createContext<\n [ClickDataState | null, React.Dispatch<React.SetStateAction<ClickDataState | null>>] | undefined\n>(undefined);\n\nexport const useSection = () => {\n const context = useContext(SectionContext);\n\n if (context === undefined) {\n throw new Error('useSection must be used within a SectionProvider');\n }\n\n return context;\n};\n\nexport const SectionProvider = ({ children }: SectionProviderProps) => {\n const [clickData, setClickData] = useState<ClickDataState | null>(null);\n\n return <SectionContext.Provider value={[clickData, setClickData]}>{children}</SectionContext.Provider>;\n};\n","import { useEffect } from 'react';\nimport BaseSection from '../base-section/base-section';\nimport { getClickedItem, getItemName } from './helpers';\nimport { MODIFIER_KEYS } from '../../constants/modifierKeys';\nimport type { SectionItemType, SectionType } from './types';\nimport { useLaunchpadAPI } from '../launchpad/launchpad.context';\nimport { usePressedKeys } from '../../hooks';\nimport { useSection } from './section.context';\nimport { ActivationEvent } from '../../helpers/a11y';\n\ninterface SectionProps {\n config: SectionType;\n onItemClick?: (params: { item: SectionItemType; modifier: string | null; selectedContextMenuActionName?: string }) => void;\n}\n\nexport const Section = ({ config, onItemClick }: SectionProps) => {\n const [clickData, setClickData] = useSection();\n const launchpadAPI = useLaunchpadAPI();\n const pressedKey = usePressedKeys();\n\n const handleItemClick = (\n _: ActivationEvent,\n params: {\n item: SectionItemType;\n selectedContextMenuActionName?: string;\n }\n ) => {\n const { item, selectedContextMenuActionName } = params;\n\n setClickData({ itemName: getItemName(item), selectedContextMenuActionName: selectedContextMenuActionName });\n };\n\n useEffect(() => {\n if (!onItemClick || !clickData) {\n return;\n }\n\n const { itemName: name, selectedContextMenuActionName } = clickData;\n\n const clickedItem = getClickedItem(config.items, name);\n\n if (!clickedItem) {\n return;\n }\n\n onItemClick({\n item: clickedItem,\n modifier: pressedKey,\n selectedContextMenuActionName,\n });\n\n setClickData(null);\n\n if (pressedKey === MODIFIER_KEYS.SHIFT) {\n return;\n }\n\n launchpadAPI.close();\n }, [clickData, config.items, launchpadAPI, onItemClick, pressedKey, setClickData]);\n\n return <BaseSection config={config} onItemClick={handleItemClick} />;\n};\n\nexport default Section;\n","import { getApplicationsSectionConfig } from './helpers';\nimport Section from '../section/section';\nimport type { SectionItemType } from '../section/types';\nimport { useExecuteApplicationAction, useApplications, useApplicationsInstances, useStartApplication } from '../../hooks';\n\nexport function ApplicationsSection() {\n const applications = useApplications();\n const runningInstances = useApplicationsInstances();\n const startApplication = useStartApplication();\n const executeApplicationAction = useExecuteApplicationAction();\n const config = getApplicationsSectionConfig(applications, runningInstances);\n\n const handleItemClick = (params: {\n item: SectionItemType;\n modifier: string | null;\n selectedContextMenuActionName?: string;\n }) => {\n const { item, modifier, selectedContextMenuActionName } = params;\n\n if (!selectedContextMenuActionName) {\n return startApplication(item.id, modifier).catch((error) => {\n console.error('Failed to start application', { error });\n });\n }\n\n executeApplicationAction(item, selectedContextMenuActionName);\n };\n\n return <Section config={config} onItemClick={handleItemClick} />;\n}\n\nexport default ApplicationsSection;\n","import { HTMLProps } from 'react';\nimport classNames from 'classnames';\n\n/* eslint-disable-next-line */\nexport interface ButtonProps extends HTMLProps<HTMLButtonElement> {\n type?: 'button' | 'submit' | 'reset';\n color?: 'primary' | 'secondary';\n}\n\nexport function Button({ children, className, color, ...rest }: ButtonProps) {\n return (\n <button className={classNames(className, 'g42-btn', color)} {...rest}>\n {children}\n </button>\n );\n}\n\nexport default Button;\n","import classNames from 'classnames';\nimport { HTMLProps } from 'react';\nimport { Button, ButtonProps } from '../button/button';\n\n/* eslint-disable-next-line */\nexport interface ButtonGroupProps extends HTMLProps<HTMLDivElement> {\n items: ButtonProps[];\n onItemClick?: (event: React.MouseEvent, props: ButtonProps) => void;\n}\n\nexport function ButtonGroup(props: ButtonGroupProps) {\n const { className, items, onItemClick, ...rest } = props;\n\n return (\n <div className={classNames('g42-btn-group', className)} {...rest}>\n {items.map((button, index) => {\n const { onClick, ...btnRest } = button;\n return (\n <Button\n key={index}\n onClick={(event) => {\n onClick && onClick(event);\n onItemClick && onItemClick(event, button);\n }}\n {...btnRest}\n />\n );\n })}\n </div>\n );\n}\n\nexport default ButtonGroup;\n","import type { FavoriteEntity } from '../../common/types';\nimport type { SectionType } from '../section/types';\n\nexport const getFavoritesSectionConfig = (favorites: FavoriteEntity[]): SectionType => {\n return {\n id: 'favorites-section',\n title: 'Favorites',\n items: favorites,\n iconName: 'star',\n };\n};\n","import { getFavoritesSectionConfig } from './helpers';\nimport Section from '../section/section';\nimport { useFavoriteEntities } from '../../hooks';\n\nexport const FavoritesSection = () => {\n const { favoriteEntities } = useFavoriteEntities();\n const config = getFavoritesSectionConfig(favoriteEntities);\n\n return favoriteEntities.length > 0 ? <Section config={config} /> : null;\n};\n\nexport default FavoritesSection;\n","import classNames from 'classnames';\n\ninterface ProfileIconProps extends React.HTMLAttributes<HTMLDivElement> {\n initials: string;\n}\n\nexport const ProfileIcon = (props: ProfileIconProps) => {\n const { initials, className, ...rest } = props;\n\n return (\n <div className={classNames(className, 'profile-icon')} {...rest}>\n {initials}\n </div>\n );\n};\n\nexport default ProfileIcon;\n","import { IOConnectContext } from '@interopio/react-hooks';\nimport { IOConnectBrowser } from '@interopio/browser';\nimport { useContext, useEffect, useState } from 'react';\nimport { ButtonGroup } from '../button-group/button-group';\nimport { ButtonProps } from '../..';\n\nexport const SettingsCard = () => {\n const io = useContext(IOConnectContext);\n const [themes, setThemes] = useState<Array<IOConnectBrowser.Themes.Theme>>([]);\n\n useEffect(() => {\n if (!io) {\n return;\n }\n\n io.themes\n ?.list()\n .then((allThemes) => setThemes(allThemes))\n .catch(console.warn);\n }, [io]);\n\n const handleThemeChange = async (event: React.MouseEvent, props: ButtonProps) => {\n if (!props.name) {\n return;\n }\n\n io.themes?.select(props.name).catch(console.warn);\n };\n\n return (\n <div className=\"info info-middle\">\n <h4>Settings</h4>\n <div className=\"flex ai-center\">\n <label style={{ textAlign: 'right', width: '40%' }}>Theme</label>\n <div style={{ width: '60%', marginLeft: 'auto' }}>\n <ButtonGroup\n onItemClick={handleThemeChange}\n items={themes.map(({ name, displayName }) => ({\n name,\n children: displayName,\n }))}\n />\n </div>\n </div>\n </div>\n );\n};\n\nexport default SettingsCard;\n","import { FC, HTMLProps } from 'react';\nimport Button from '../button/button';\nimport { SELECTED_LAYOUT_SESSION_STORAGE_KEY } from '../../constants/storageKeys';\nimport { layoutStorageValueDecoder } from '../../decoders/layouts';\nimport { useStorage } from '../../hooks';\n\nexport interface SupportCardProps {\n title?: string;\n description?: string;\n links?: HTMLProps<HTMLAnchorElement>[];\n onLogout?: () => void;\n}\n\nexport const SupportCard: FC<SupportCardProps> = ({ title, description, links = [], onLogout }) => {\n const [_, setSelectedLayout] = useStorage('sessionStorage', SELECTED_LAYOUT_SESSION_STORAGE_KEY, layoutStorageValueDecoder);\n\n const handleLogout = () => {\n setSelectedLayout(null);\n onLogout?.();\n };\n\n return (\n <div className=\"info info-bottom flex flex-column\">\n <h4>{title || 'Support'}</h4>\n <p>{description || 'New set of thoughtfully curated items and the ability to configure them.'}</p>\n <ul>\n {links.map(({ children, ...rest }) => (\n <li key={rest.href}>\n <a {...rest}>{children}</a>\n </li>\n ))}\n </ul>\n <div>\n <Button onClick={handleLogout}>Log Out</Button>\n </div>\n </div>\n );\n};\n\nexport default SupportCard;\n","export const getInitials = (name: string) =>\r\n name\r\n ?.split(' ')\r\n .map((n) => n[0]?.toUpperCase())\r\n .join('');\r\n","import { IOConnectContext } from '@interopio/react-hooks';\nimport { FC, useContext } from 'react';\nimport { getInitials } from '../../helpers/string';\n\nexport interface ProfileDetailsCardProps {\n user?: {\n name?: string;\n };\n}\n\nexport const ProfileDetailsCard: FC<ProfileDetailsCardProps> = ({ user }) => {\n const io = useContext(IOConnectContext);\n\n const name = user?.name || 'N A';\n\n return (\n <div className=\"flex info info-top\">\n <div>\n <h4>{name}</h4>\n <p>\n {'PROD'} | {'Version ' + io.version}\n </p>\n </div>\n <div className=\"flex badge\">{getInitials(name)}</div>\n </div>\n );\n};\n\nexport default ProfileDetailsCard;\n","import { SettingsCard } from '../../../settings-card/settings-card';\nimport { SupportCard } from '../../../support-card/support-card';\nimport { ProfileDetailsCard } from '../../../profile-details-card/profile-details-card';\nimport { FC } from 'react';\n\nexport interface ProfileSettingsProps {\n onLogout?: () => void;\n user?: {\n name?: string;\n };\n}\n\nexport const ProfileSettings: FC<ProfileSettingsProps> = ({ onLogout, user }) => {\n return (\n <>\n <ProfileDetailsCard user={user} />\n <SettingsCard />\n <SupportCard onLogout={onLogout} />\n </>\n );\n};\n\nexport default ProfileSettings;\n","import Icon from '../../icon/icon';\nimport { forwardRef, useContext, useEffect } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { IOConnectBrowser } from '@interopio/browser';\n\nexport interface SearchBarProps {\n onSearch: (event: React.ChangeEvent<HTMLInputElement>) => void;\n searchTerm: string;\n onClear: () => void;\n}\n\nexport const SearchBar = forwardRef<HTMLInputElement, SearchBarProps>((props, ref) => {\n const { onSearch, searchTerm, onClear } = props;\n\n const io = useContext(IOConnectContext) as IOConnectBrowser.API;\n\n useEffect(() => {\n if (!io || !io.search) {\n return;\n }\n\n io.search.setDebounceMS(450);\n }, [io]);\n\n return (\n <div className=\"search\" data-testid=\"search-bar\">\n <input type=\"search\" ref={ref} className=\"g42-input\" placeholder=\"Find anything\" value={searchTerm} onChange={onSearch} />\n <Icon\n name=\"delete-left\"\n className={searchTerm.length !== 0 ? 'active' : ''}\n onClick={onClear}\n data-testid=\"delete-icon\"\n />\n </div>\n );\n});\n\nexport default SearchBar;\n","import { IOConnectSearch } from '@interopio/search-api';\nimport { ITEM_TYPES } from '../../../constants/itemTypes';\nimport type { SearchResultsSectionItemType, SearchResultsSectionType } from './types';\nimport { SearchResultsContextMenuAction } from '../../context-menu/types';\nimport { APPLICATION_ACTIONS, WORKSPACE_ACTIONS } from '../../context-menu/constants';\n\nexport const getSearchResultsSectionConfigs = (results: IOConnectSearch.QueryResult[]): SearchResultsSectionType[] => {\n return results.reduce((searchResultsSections, result) => {\n const { type } = result;\n\n const id = result.id || result.displayName;\n\n if (!id || type.name === ITEM_TYPES.LAYOUT) {\n return searchResultsSections;\n }\n\n let contextMenuActions: SearchResultsContextMenuAction[] = [];\n\n if (type.name === ITEM_TYPES.APPLICATION) {\n contextMenuActions = APPLICATION_ACTIONS;\n } else if (type.name === ITEM_TYPES.WORKSPACE) {\n contextMenuActions = WORKSPACE_ACTIONS;\n } else if (result.secondaryActions) {\n contextMenuActions = result.secondaryActions.map(({ name, method, params, target }) => {\n return {\n name,\n interopParams: { method, params, target },\n };\n });\n }\n\n const item: SearchResultsSectionItemType = {\n id,\n title: result.displayName || id,\n description: result.description,\n type: type.name,\n iconSrc: result.iconURL,\n mainAction: result.action,\n contextMenuActions,\n };\n\n const sectionIndex = searchResultsSections.findIndex(({ title }) =>\n type.displayName ? title === type.displayName : title === type.name\n );\n const section = searchResultsSections[sectionIndex];\n\n if (section) {\n return [\n ...searchResultsSections.slice(0, sectionIndex),\n { ...section, items: [...section.items, item] },\n ...searchResultsSections.slice(sectionIndex + 1),\n ];\n }\n\n return [\n ...searchResultsSections,\n {\n id: type.name,\n title: type.displayName || type.name,\n items: [item],\n },\n ];\n }, [] as SearchResultsSectionType[]);\n};\n","import BaseSection from '../../base-section/base-section';\nimport { getSearchResultsSectionConfigs } from './helpers';\nimport { ITEM_TYPES } from '../../../constants/itemTypes';\nimport { MODIFIER_KEYS } from '../../../constants/modifierKeys';\nimport type { SearchResultsSectionItemType } from './types';\nimport {\n useInvokeInteropMethod,\n useRestoreWorkspace,\n useSearch,\n useStartApplication,\n useExecuteWorkspaceAction,\n useExecuteApplicationAction,\n} from '../../../hooks';\nimport { useLaunchpadAPI } from '../../launchpad/launchpad.context';\nimport { ActivationEvent } from 'packages/home-ui-react/src/helpers/a11y';\n\nexport interface SearchResultsProps {\n searchTerm: string;\n}\n\nexport function SearchResults(props: SearchResultsProps) {\n const { resultsToRender, isLoading } = useSearch(props.searchTerm);\n const launchpadAPI = useLaunchpadAPI();\n const invokeInteropMethod = useInvokeInteropMethod();\n const restoreWorkspace = useRestoreWorkspace();\n const startApplication = useStartApplication();\n const configs = getSearchResultsSectionConfigs(resultsToRender);\n const executeApplicationAction = useExecuteApplicationAction();\n const executeWorkspaceAction = useExecuteWorkspaceAction();\n\n const executeSelectedAction = (item: SearchResultsSectionItemType, selectedContextMenuActionName: string) => {\n const execute =\n item.type === ITEM_TYPES.APPLICATION\n ? executeApplicationAction\n : item.type === ITEM_TYPES.WORKSPACE\n ? executeWorkspaceAction\n : null;\n\n if (!execute) {\n return;\n }\n\n execute(item, selectedContextMenuActionName);\n };\n\n const handleItemClick = async (\n _: ActivationEvent,\n params: {\n item: SearchResultsSectionItemType;\n modifier: string | null;\n selectedContextMenuActionName?: string;\n }\n ) => {\n const { item, modifier, selectedContextMenuActionName } = params;\n const { type, id, mainAction } = item;\n\n const contextMenuAction = selectedContextMenuActionName\n ? item.contextMenuActions?.find((action) => action.name === selectedContextMenuActionName)\n : null;\n\n if (contextMenuAction?.interopParams) {\n invokeInteropMethod(contextMenuAction.interopParams);\n } else if (selectedContextMenuActionName) {\n executeSelectedAction(item, selectedContextMenuActionName);\n } else if (mainAction) {\n invokeInteropMethod(mainAction);\n } else if (type === ITEM_TYPES.APPLICATION) {\n startApplication(id, modifier).catch((error) => {\n console.error('Failed to start application', { error });\n });\n } else if (type === ITEM_TYPES.WORKSPACE) {\n restoreWorkspace(id, modifier).catch((error) => {\n console.error('Failed to restore workspace', { error });\n });\n } else {\n // TODO: decide how to proceed if none of the above conditions are met\n }\n\n if (modifier === MODIFIER_KEYS.SHIFT) {\n return;\n }\n\n launchpadAPI.close();\n };\n\n if (isLoading) {\n return <p style={{ padding: '12px 24px' }}>Loading...</p>;\n } else if (resultsToRender.length === 0) {\n return <p style={{ padding: '12px 24px' }}>No results found.</p>;\n }\n\n return (\n <ul>\n {configs.map((config, idx) => (\n <BaseSection key={config.id || idx} config={config} isFavoritismEnabled={false} onItemClick={handleItemClick} />\n ))}\n </ul>\n );\n}\n\nexport default SearchResults;\n","import { ITEM_TYPES } from '../../constants/itemTypes';\nimport type { SectionType } from '../section/types';\nimport type { Workspace } from './types';\nimport { WORKSPACE_ACTIONS } from '../context-menu/constants';\n\nexport const getWorkspacesSectionConfig = (\n workspaces: Workspace[],\n runningInstances: {\n [appName: string]: string[];\n }\n): SectionType => {\n return {\n id: 'workspaces-section',\n title: 'Workspaces',\n items: workspaces\n .map((workspace) => ({\n ...workspace,\n type: ITEM_TYPES.WORKSPACE,\n isOpen: runningInstances[workspace.title]?.length > 0,\n contextMenuActions: WORKSPACE_ACTIONS,\n }))\n .sort((a, b) => a.title.localeCompare(b.title)),\n };\n};\n","import { getWorkspacesSectionConfig } from './helpers';\nimport Section from '../section/section';\nimport type { SectionItemType } from '../section/types';\nimport { useRestoreWorkspace, useWorkspaces, useWorkspacesInstances, useExecuteWorkspaceAction } from '../../hooks';\n\nexport const WorkspacesSection = () => {\n const workspaces = useWorkspaces();\n const runningInstances = useWorkspacesInstances();\n const restoreWorkspace = useRestoreWorkspace();\n const executeWorkspaceAction = useExecuteWorkspaceAction();\n const config = getWorkspacesSectionConfig(workspaces, runningInstances);\n\n const handleItemClick = (params: {\n item: SectionItemType;\n modifier: string | null;\n selectedContextMenuActionName?: string;\n }) => {\n const { item, modifier, selectedContextMenuActionName } = params;\n\n if (!selectedContextMenuActionName) {\n return restoreWorkspace(item.id, modifier).catch((error) => {\n console.error('Failed to restore workspace', { error });\n });\n }\n\n executeWorkspaceAction(item, selectedContextMenuActionName);\n };\n\n return <Section config={config} onItemClick={handleItemClick} />;\n};\n\nexport default WorkspacesSection;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nimport PropTypes from 'prop-types';\n\n// https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\nexport function getScrollbarWidth() {\n var scrollDiv = document.createElement('div');\n // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? \"\".concat(padding, \"px\") : null;\n}\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\nexport function getOriginalBodyPadding() {\n var style = window.getComputedStyle(document.body, null);\n return parseInt(style && style.getPropertyValue('padding-right') || 0, 10);\n}\nexport function conditionallyUpdateScrollbar() {\n var scrollbarWidth = getScrollbarWidth();\n // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n var fixedContent = document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')[0];\n var bodyPadding = fixedContent ? parseInt(fixedContent.style.paddingRight || 0, 10) : 0;\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\nvar globalCssModule;\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\nexport function mapToCssModules() {\n var className = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var cssModule = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : globalCssModule;\n if (!cssModule) return className;\n return className.split(' ').map(function (c) {\n return cssModule[c] || c;\n }).join(' ');\n}\n\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\nexport function omit(obj, omitKeys) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\nexport function pick(obj, keys) {\n var pickKeys = Array.isArray(keys) ? keys : [keys];\n var length = pickKeys.length;\n var key;\n var result = {};\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n return result;\n}\nvar warned = {};\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n\n warned[message] = true;\n }\n}\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\"\\\"\".concat(propName, \"\\\" property of \\\"\").concat(componentName, \"\\\" has been deprecated.\\n\").concat(explanation));\n }\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n return propType.apply(void 0, [props, propName, componentName].concat(rest));\n };\n}\n\n// Shim Element if needed (e.g. in Node environment)\nvar Element = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' && window.Element || function () {};\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error('Invalid prop `' + propName + '` supplied to `' + componentName + '`. Expected prop to be an instance of Element. Validation failed.');\n }\n}\nexport var targetPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, DOMElement, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var tagPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n}), PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n})]))]);\n\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\nexport var TransitionTimeouts = {\n Fade: 150,\n // $transition-fade\n Collapse: 350,\n // $transition-collapse\n Modal: 300,\n // $modal-transition\n Carousel: 600,\n // $carousel-transition\n Offcanvas: 300 // $offcanvas-transition\n};\n\n// Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\nexport var TransitionPropTypeKeys = ['in', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'timeout', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'];\nexport var TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited'\n};\nexport var keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80\n};\nexport var PopperPlacements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\nexport var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport function isReactRefObj(target) {\n if (target && _typeof(target) === 'object') {\n return 'current' in target;\n }\n return false;\n}\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n return Object.prototype.toString.call(value);\n}\nexport function isObject(value) {\n var type = _typeof(value);\n return value != null && (type === 'object' || type === 'function');\n}\nexport function toNumber(value) {\n var type = _typeof(value);\n var NAN = 0 / 0;\n if (type === 'number') {\n return value;\n }\n if (type === 'symbol' || type === 'object' && getTag(value) === '[object Symbol]') {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? \"\".concat(other) : other;\n }\n if (type !== 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(/^\\s+|\\s+$/g, '');\n var isBinary = /^0b[01]+$/i.test(value);\n return isBinary || /^0o[0-7]+$/i.test(value) ? parseInt(value.slice(2), isBinary ? 2 : 8) : /^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value;\n}\nexport function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n var tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' || tag === '[object GeneratorFunction]' || tag === '[object Proxy]';\n}\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n if (isFunction(target)) {\n return target();\n }\n if (typeof target === 'string' && canUseDOM) {\n var selection = document.querySelectorAll(target);\n if (!selection.length) {\n selection = document.querySelectorAll(\"#\".concat(target));\n }\n if (!selection.length) {\n throw new Error(\"The target '\".concat(target, \"' could not be identified in the dom, tip: check spelling\"));\n }\n return selection;\n }\n return target;\n}\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n return Array.isArray(els) || canUseDOM && typeof els.length === 'number';\n}\nexport function getTarget(target, allElements) {\n var els = findDOMElements(target);\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n if (els === null) {\n return [];\n }\n return [els];\n }\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n return els;\n}\nexport var defaultToggleEvents = ['touchstart', 'click'];\nexport function addMultipleEventListeners(_els, handler, _events, useCapture) {\n var els = _els;\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n var events = _events;\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n if (!isArrayOrNodeList(els) || typeof handler !== 'function' || !Array.isArray(events)) {\n throw new Error(\"\\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\\n The second must be a function.\\n The third is a string or an array of strings that represents DOM events\\n \");\n }\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\nexport var focusableElements = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'object', 'embed', '[tabindex]:not(.modal):not(.offcanvas)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'];","var _excluded = [\"className\", \"cssModule\", \"variant\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules } from './utils';\nvar propTypes = {\n /** Disable the button if needed */\n active: PropTypes.bool,\n /** Aria label */\n 'aria-label': PropTypes.string,\n /** Function to be triggered on click */\n onClick: PropTypes.func,\n /** Change the variant to white */\n variant: PropTypes.oneOf(['white']),\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n};\nvar defaultProps = {\n 'aria-label': 'close'\n};\nfunction CloseButton(props) {\n var className = props.className,\n cssModule = props.cssModule,\n variant = props.variant,\n innerRef = props.innerRef,\n attributes = _objectWithoutProperties(props, _excluded);\n var classes = mapToCssModules(classNames(className, 'btn-close', variant && \"btn-close-\".concat(variant)));\n return /*#__PURE__*/React.createElement(\"button\", _extends({\n ref: innerRef,\n type: \"button\",\n className: classes\n }, attributes));\n}\nCloseButton.propTypes = propTypes;\nCloseButton.defaultProps = defaultProps;\nexport default CloseButton;","var _excluded = [\"active\", \"aria-label\", \"block\", \"className\", \"close\", \"cssModule\", \"color\", \"outline\", \"size\", \"tag\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React, { useCallback } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nimport CloseButton from './CloseButton';\nvar propTypes = {\n /** Manually set the visual state of the button to active */\n active: PropTypes.bool,\n /** Aria label */\n 'aria-label': PropTypes.string,\n block: PropTypes.bool,\n /** Pass children so this component can wrap them */\n children: PropTypes.node,\n /** Add custom class */\n className: PropTypes.string,\n /** Change existing className with a new className */\n cssModule: PropTypes.object,\n /** Use the button as a close button */\n close: PropTypes.bool,\n /** Change color of Button to one of the available colors */\n color: PropTypes.string,\n /** Disables the button */\n disabled: PropTypes.bool,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n /** Function to be triggered on click */\n onClick: PropTypes.func,\n /** Adds outline to the button */\n outline: PropTypes.bool,\n /** Make the button bigger or smaller */\n size: PropTypes.string,\n /** Set a custom element for this component */\n tag: tagPropType\n};\nvar defaultProps = {\n color: 'secondary',\n tag: 'button'\n};\nfunction Button(props) {\n var onClick = useCallback(function (e) {\n if (props.disabled) {\n e.preventDefault();\n return;\n }\n if (props.onClick) {\n return props.onClick(e);\n }\n }, [props.onClick, props.disabled]);\n var active = props.active,\n ariaLabel = props['aria-label'],\n block = props.block,\n className = props.className,\n close = props.close,\n cssModule = props.cssModule,\n color = props.color,\n outline = props.outline,\n size = props.size,\n Tag = props.tag,\n innerRef = props.innerRef,\n attributes = _objectWithoutProperties(props, _excluded);\n if (close) {\n return /*#__PURE__*/React.createElement(CloseButton, attributes);\n }\n var btnOutlineColor = \"btn\".concat(outline ? '-outline' : '', \"-\").concat(color);\n var classes = mapToCssModules(classNames(className, 'btn', btnOutlineColor, size ? \"btn-\".concat(size) : false, block ? 'd-block w-100' : false, {\n active: active,\n disabled: props.disabled\n }), cssModule);\n if (attributes.href && Tag === 'button') {\n Tag = 'a';\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({\n type: Tag === 'button' && attributes.onClick ? 'button' : undefined\n }, attributes, {\n className: classes,\n ref: innerRef,\n onClick: onClick,\n \"aria-label\": ariaLabel\n }));\n}\nButton.propTypes = propTypes;\nButton.defaultProps = defaultProps;\nexport default Button;","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default {\n disabled: false\n};","import PropTypes from 'prop-types';\nexport var timeoutsShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.number, PropTypes.shape({\n enter: PropTypes.number,\n exit: PropTypes.number,\n appear: PropTypes.number\n}).isRequired]) : null;\nexport var classNamesShape = process.env.NODE_ENV !== 'production' ? PropTypes.oneOfType([PropTypes.string, PropTypes.shape({\n enter: PropTypes.string,\n exit: PropTypes.string,\n active: PropTypes.string\n}), PropTypes.shape({\n enter: PropTypes.string,\n enterDone: PropTypes.string,\n enterActive: PropTypes.string,\n exit: PropTypes.string,\n exitDone: PropTypes.string,\n exitActive: PropTypes.string\n})]) : null;","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport config from './config';\nimport { timeoutsShape } from './utils/PropTypes';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { forceReflow } from './utils/reflow';\nexport var UNMOUNTED = 'unmounted';\nexport var EXITED = 'exited';\nexport var ENTERING = 'entering';\nexport var ENTERED = 'entered';\nexport var EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * <Transition in={inProp} timeout={duration}>\n * {state => (\n * <div style={{\n * ...defaultStyle,\n * ...transitionStyles[state]\n * }}>\n * I'm a fade Transition!\n * </div>\n * )}\n * </Transition>\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * <div>\n * <Transition in={inProp} timeout={500}>\n * {state => (\n * // ...\n * )}\n * </Transition>\n * <button onClick={() => setInProp(true)}>\n * Click to Enter\n * </button>\n * </div>\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * <Transition in={this.state.in} timeout={150}>\n * {state => (\n * <MyComponent className={`fade fade-${state}`} />\n * )}\n * </Transition>\n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `<CSSTransition>` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"tag\", \"horizontal\", \"isOpen\", \"className\", \"navbar\", \"cssModule\", \"children\", \"innerRef\"];\nvar _transitionStatusToCl;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, omit, pick, TransitionTimeouts, TransitionPropTypeKeys, TransitionStatuses, tagPropType } from './utils';\nvar propTypes = _objectSpread(_objectSpread({}, Transition.propTypes), {}, {\n /** Make content animation appear horizontally */\n horizontal: PropTypes.bool,\n /** Set if Collapse is open or closed */\n isOpen: PropTypes.bool,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n /** Set a custom element for this component */\n tag: tagPropType,\n /** Add custom class */\n className: PropTypes.node,\n navbar: PropTypes.bool,\n /** Change underlying component's CSS base class name */\n cssModule: PropTypes.object,\n innerRef: PropTypes.shape({\n current: PropTypes.object\n })\n});\nvar defaultProps = _objectSpread(_objectSpread({}, Transition.defaultProps), {}, {\n horizontal: false,\n isOpen: false,\n appear: false,\n enter: true,\n exit: true,\n tag: 'div',\n timeout: TransitionTimeouts.Collapse\n});\nvar transitionStatusToClassHash = (_transitionStatusToCl = {}, _defineProperty(_transitionStatusToCl, TransitionStatuses.ENTERING, 'collapsing'), _defineProperty(_transitionStatusToCl, TransitionStatuses.ENTERED, 'collapse show'), _defineProperty(_transitionStatusToCl, TransitionStatuses.EXITING, 'collapsing'), _defineProperty(_transitionStatusToCl, TransitionStatuses.EXITED, 'collapse'), _transitionStatusToCl);\nfunction getTransitionClass(status) {\n return transitionStatusToClassHash[status] || 'collapse';\n}\nvar Collapse = /*#__PURE__*/function (_Component) {\n _inherits(Collapse, _Component);\n var _super = _createSuper(Collapse);\n function Collapse(props) {\n var _this;\n _classCallCheck(this, Collapse);\n _this = _super.call(this, props);\n _this.state = {\n dimension: null\n };\n _this.nodeRef = props.innerRef || /*#__PURE__*/React.createRef();\n ['onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'].forEach(function (name) {\n _this[name] = _this[name].bind(_assertThisInitialized(_this));\n });\n return _this;\n }\n _createClass(Collapse, [{\n key: \"onEntering\",\n value: function onEntering(_, isAppearing) {\n var node = this.getNode();\n this.setState({\n dimension: this.getDimension(node)\n });\n this.props.onEntering(node, isAppearing);\n }\n }, {\n key: \"onEntered\",\n value: function onEntered(_, isAppearing) {\n var node = this.getNode();\n this.setState({\n dimension: null\n });\n this.props.onEntered(node, isAppearing);\n }\n }, {\n key: \"onExit\",\n value: function onExit() {\n var node = this.getNode();\n this.setState({\n dimension: this.getDimension(node)\n });\n this.props.onExit(node);\n }\n }, {\n key: \"onExiting\",\n value: function onExiting() {\n var node = this.getNode();\n // getting this variable triggers a reflow\n var _unused = this.getDimension(node); // eslint-disable-line no-unused-vars\n this.setState({\n dimension: 0\n });\n this.props.onExiting(node);\n }\n }, {\n key: \"onExited\",\n value: function onExited() {\n var node = this.getNode();\n this.setState({\n dimension: null\n });\n this.props.onExited(node);\n }\n }, {\n key: \"getNode\",\n value: function getNode() {\n return this.nodeRef.current;\n }\n }, {\n key: \"getDimension\",\n value: function getDimension(node) {\n return this.props.horizontal ? node.scrollWidth : node.scrollHeight;\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this2 = this;\n var _this$props = this.props,\n Tag = _this$props.tag,\n horizontal = _this$props.horizontal,\n isOpen = _this$props.isOpen,\n className = _this$props.className,\n navbar = _this$props.navbar,\n cssModule = _this$props.cssModule,\n children = _this$props.children,\n innerRef = _this$props.innerRef,\n otherProps = _objectWithoutProperties(_this$props, _excluded);\n var dimension = this.state.dimension;\n var transitionProps = pick(otherProps, TransitionPropTypeKeys);\n var childProps = omit(otherProps, TransitionPropTypeKeys);\n return /*#__PURE__*/React.createElement(Transition, _extends({}, transitionProps, {\n \"in\": isOpen,\n nodeRef: this.nodeRef,\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }), function (status) {\n var collapseClass = getTransitionClass(status);\n var classes = mapToCssModules(classNames(className, horizontal && 'collapse-horizontal', collapseClass, navbar && 'navbar-collapse'), cssModule);\n var style = dimension === null ? null : _defineProperty({}, horizontal ? 'width' : 'height', dimension);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, childProps, {\n style: _objectSpread(_objectSpread({}, childProps.style), style),\n className: classes,\n ref: _this2.nodeRef\n }), children);\n });\n }\n }]);\n return Collapse;\n}(Component);\nCollapse.propTypes = propTypes;\nCollapse.defaultProps = defaultProps;\nexport default Collapse;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"className\", \"cssModule\", \"tag\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'form'\n};\nvar Form = /*#__PURE__*/function (_Component) {\n _inherits(Form, _Component);\n var _super = _createSuper(Form);\n function Form(props) {\n var _this;\n _classCallCheck(this, Form);\n _this = _super.call(this, props);\n _this.getRef = _this.getRef.bind(_assertThisInitialized(_this));\n _this.submit = _this.submit.bind(_assertThisInitialized(_this));\n return _this;\n }\n _createClass(Form, [{\n key: \"getRef\",\n value: function getRef(ref) {\n if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n this.ref = ref;\n }\n }, {\n key: \"submit\",\n value: function submit() {\n if (this.ref) {\n this.ref.submit();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n Tag = _this$props.tag,\n innerRef = _this$props.innerRef,\n attributes = _objectWithoutProperties(_this$props, _excluded);\n var classes = mapToCssModules(className, cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n ref: innerRef,\n className: classes\n }));\n }\n }]);\n return Form;\n}(Component);\nForm.propTypes = propTypes;\nForm.defaultProps = defaultProps;\nexport default Form;","var _excluded = [\"className\", \"cssModule\", \"row\", \"disabled\", \"check\", \"inline\", \"floating\", \"tag\", \"switch\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n row: PropTypes.bool,\n check: PropTypes.bool,\n \"switch\": PropTypes.bool,\n inline: PropTypes.bool,\n floating: PropTypes.bool,\n disabled: PropTypes.bool,\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n tag: 'div'\n};\nfunction FormGroup(props) {\n var className = props.className,\n cssModule = props.cssModule,\n row = props.row,\n disabled = props.disabled,\n check = props.check,\n inline = props.inline,\n floating = props.floating,\n Tag = props.tag,\n switchProp = props[\"switch\"],\n attributes = _objectWithoutProperties(props, _excluded);\n var formCheck = check || switchProp;\n var classes = mapToCssModules(classNames(className, row ? 'row' : false, formCheck ? 'form-check' : 'mb-3', switchProp ? 'form-switch' : false, formCheck && inline ? 'form-check-inline' : false, formCheck && disabled ? 'disabled' : false, floating && 'form-floating'), cssModule);\n if (Tag === 'fieldset') {\n attributes.disabled = disabled;\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n}\nFormGroup.propTypes = propTypes;\nFormGroup.defaultProps = defaultProps;\nexport default FormGroup;","function _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nvar _excluded = [\"className\", \"cssModule\", \"type\", \"bsSize\", \"valid\", \"invalid\", \"tag\", \"addon\", \"plaintext\", \"innerRef\"];\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n/* eslint react/prefer-stateless-function: 0 */\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { mapToCssModules, warnOnce, tagPropType } from './utils';\nvar propTypes = {\n children: PropTypes.node,\n type: PropTypes.string,\n size: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n bsSize: PropTypes.string,\n valid: PropTypes.bool,\n invalid: PropTypes.bool,\n tag: tagPropType,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.func, PropTypes.string]),\n plaintext: PropTypes.bool,\n addon: PropTypes.bool,\n className: PropTypes.string,\n cssModule: PropTypes.object\n};\nvar defaultProps = {\n type: 'text'\n};\nvar Input = /*#__PURE__*/function (_React$Component) {\n _inherits(Input, _React$Component);\n var _super = _createSuper(Input);\n function Input(props) {\n var _this;\n _classCallCheck(this, Input);\n _this = _super.call(this, props);\n _this.getRef = _this.getRef.bind(_assertThisInitialized(_this));\n _this.focus = _this.focus.bind(_assertThisInitialized(_this));\n return _this;\n }\n _createClass(Input, [{\n key: \"getRef\",\n value: function getRef(ref) {\n if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n this.ref = ref;\n }\n }, {\n key: \"focus\",\n value: function focus() {\n if (this.ref) {\n this.ref.focus();\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n type = _this$props.type,\n bsSize = _this$props.bsSize,\n valid = _this$props.valid,\n invalid = _this$props.invalid,\n tag = _this$props.tag,\n addon = _this$props.addon,\n plaintext = _this$props.plaintext,\n innerRef = _this$props.innerRef,\n attributes = _objectWithoutProperties(_this$props, _excluded);\n var checkInput = ['switch', 'radio', 'checkbox'].indexOf(type) > -1;\n var isNotaNumber = /\\D/g;\n var textareaInput = type === 'textarea';\n var selectInput = type === 'select';\n var rangeInput = type === 'range';\n var Tag = tag || (selectInput || textareaInput ? type : 'input');\n var formControlClass = 'form-control';\n if (plaintext) {\n formControlClass = \"\".concat(formControlClass, \"-plaintext\");\n Tag = tag || 'input';\n } else if (rangeInput) {\n formControlClass = 'form-range';\n } else if (selectInput) {\n formControlClass = 'form-select';\n } else if (checkInput) {\n if (addon) {\n formControlClass = null;\n } else {\n formControlClass = 'form-check-input';\n }\n }\n if (attributes.size && isNotaNumber.test(attributes.size)) {\n warnOnce('Please use the prop \"bsSize\" instead of the \"size\" to bootstrap\\'s input sizing.');\n bsSize = attributes.size;\n delete attributes.size;\n }\n var classes = mapToCssModules(classNames(className, invalid && 'is-invalid', valid && 'is-valid', bsSize ? selectInput ? \"form-select-\".concat(bsSize) : \"form-control-\".concat(bsSize) : false, formControlClass), cssModule);\n if (Tag === 'input' || tag && typeof tag === 'function') {\n attributes.type = type === 'switch' ? 'checkbox' : type;\n }\n if (attributes.children && !(plaintext || type === 'select' || typeof Tag !== 'string' || Tag === 'select')) {\n warnOnce(\"Input with a type of \\\"\".concat(type, \"\\\" cannot have children. Please use \\\"value\\\"/\\\"defaultValue\\\" instead.\"));\n delete attributes.children;\n }\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n ref: innerRef,\n className: classes,\n \"aria-invalid\": invalid\n }));\n }\n }]);\n return Input;\n}(React.Component);\nInput.propTypes = propTypes;\nInput.defaultProps = defaultProps;\nexport default Input;","import type { Notification } from './types';\n\nexport const NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING: Record<Notification['type'], string> = {\n success: 'check',\n};\n\nexport const LAYOUT_ACTIONS_NAMES = {\n SET_AS_DEFAULT: 'setAsDefault',\n DELETE: 'delete',\n} as const;\n","import { DEFAULT_SYSTEM_LAYOUT } from '../../constants/defaults';\nimport { Layout } from './types';\nimport { ContextMenuAction } from '../context-menu/types';\nimport { LAYOUT_ACTIONS_NAMES } from './constants';\n\nexport const createLayoutContextMenuActions = (layout: Layout): ContextMenuAction[] => {\n return [\n {\n name: LAYOUT_ACTIONS_NAMES.SET_AS_DEFAULT,\n displayName: 'Set as Default',\n disabled: layout.isDefault,\n },\n {\n name: LAYOUT_ACTIONS_NAMES.DELETE,\n displayName: 'Delete',\n disabled: layout.name === DEFAULT_SYSTEM_LAYOUT || layout.isDefault,\n },\n ];\n};\n\nexport const createActionClickHandler = (callback: () => Promise<unknown> | void) => {\n return async (event: React.MouseEvent) => {\n event.stopPropagation();\n\n try {\n await callback();\n } catch (error) {\n console.error('Failed to handle layout action: ', error);\n }\n };\n};\n","import { createLayoutContextMenuActions } from './helpers';\nimport DropdownButton from '../context-menu/dropdown-button/dropdown-button';\nimport { useRestoreLayout, useExecuteLayoutAction } from '../../hooks';\nimport Icon from '../icon/icon';\nimport type { Layout } from './types';\nimport classNames from 'classnames';\nimport { useLaunchpadAPI } from '../launchpad/launchpad.context';\n\ninterface AvailableLayoutsProps {\n layouts: Layout[];\n}\n\nexport const AvailableLayouts = (props: AvailableLayoutsProps) => {\n const { layouts } = props;\n const { setSelectedLayout, setDefaultLayout } = useLaunchpadAPI();\n const executeLayoutAction = useExecuteLayoutAction();\n const restoreLayout = useRestoreLayout();\n\n return (\n <>\n <h6>Available Layouts</h6>\n {layouts.map((layout) => (\n <div key={layout.name} className={classNames('layouts-item flex ai-center', layout.isSelected && 'active')}>\n <div className=\"loaded me-8\">{layout.isSelected && <Icon size={12} name=\"check\" />}</div>\n\n <div\n className={classNames('name', { bold: layout.isSelected })}\n onClick={() => {\n restoreLayout(layout.name, setSelectedLayout);\n }}\n >\n {layout.name}\n </div>\n\n <div className=\"type\">\n {layout.type}\n {layout.isDefault ? '/Default' : ''}\n </div>\n\n <DropdownButton\n iconSize={16}\n iconName=\"ellipsis\"\n actions={createLayoutContextMenuActions(layout)}\n onActionItemClick={(_, action) => executeLayoutAction(layout, action.name, setDefaultLayout)}\n />\n </div>\n ))}\n </>\n );\n};\n\nexport default AvailableLayouts;\n","import { useContext } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { useRestoreLayout } from '../../hooks';\nimport type { Action, Notification } from './types';\nimport { createActionClickHandler } from './helpers';\nimport classNames from 'classnames';\nimport { useLaunchpadAPI } from '../launchpad/launchpad.context';\n\ninterface LayoutActionsProps {\n inputValue: string;\n setNotification: React.Dispatch<React.SetStateAction<Notification | null>>;\n className?: string;\n}\n\nconst LayoutActions = (props: LayoutActionsProps) => {\n const { inputValue, setNotification, className = '' } = props;\n const { selectedLayout, setSelectedLayout } = useLaunchpadAPI();\n const restoreLayout = useRestoreLayout();\n\n const io = useContext(IOConnectContext);\n\n const actions: Action[] = [\n {\n label: 'Save',\n type: 'save',\n onClick: createActionClickHandler(async () => {\n await io.layouts.save({ name: inputValue, type: 'Global' });\n\n setSelectedLayout({ name: inputValue });\n setNotification({ message: 'Saved', type: 'success' });\n }),\n },\n {\n label: 'Restore',\n type: 'restore',\n onClick: createActionClickHandler(() => {\n if (!selectedLayout) {\n return;\n }\n\n restoreLayout(selectedLayout.name);\n }),\n },\n ];\n\n return (\n <div className={classNames('layout-actions', className)}>\n {actions.map(({ label, type, disabled, onClick }) => (\n <button key={type} onClick={onClick} disabled={disabled} className=\"g42-btn\">\n {label}\n </button>\n ))}\n </div>\n );\n};\n\nexport default LayoutActions;\n","import classNames from 'classnames';\nimport Icon from '../icon/icon';\nimport type { Notification } from './types';\nimport { NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING } from './constants';\n\ninterface LayoutsNotificationProps extends Notification {\n className?: string;\n}\n\nconst LayoutsNotification = ({ className, message, type }: LayoutsNotificationProps) => (\n <div className={classNames('layout-notification', `layout-notification-${type}`, className)}>\n <Icon size={12} name={NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING[type]} />\n <span>{message}</span>\n </div>\n);\n\nexport default LayoutsNotification;\n","import { useState, useEffect, useRef } from 'react';\nimport { Collapse } from 'reactstrap';\nimport classNames from 'classnames';\nimport Icon from '../icon/icon';\nimport { useLayouts } from '../../hooks';\nimport AvailableLayouts from './available-layouts';\nimport LayoutActions from './layout-actions';\nimport LayoutsNotification from './layouts-notification';\nimport type { Notification } from './types';\nimport { onClickA11y } from '../../helpers/a11y';\nimport { useLaunchpadAPI } from '../launchpad/launchpad.context';\n\nexport const LayoutsPanel = () => {\n const footerRef = useRef<HTMLElement | null>(null);\n const [show, setShow] = useState(false);\n const [notification, setNotification] = useState<Notification | null>(null);\n const layouts = useLayouts();\n const { defaultLayout, selectedLayout } = useLaunchpadAPI();\n const [inputValue, setInputValue] = useState('');\n\n useEffect(() => {\n if (!show) {\n return;\n }\n\n const handleClick = (event: MouseEvent) => {\n if (footerRef.current?.contains(event.target as Node)) {\n return;\n }\n\n setShow(false);\n };\n\n const handleBlur = () => {\n if (document.activeElement?.nodeName !== 'IFRAME') {\n return;\n }\n\n setShow(false);\n };\n\n document.addEventListener('click', handleClick, true);\n window.addEventListener('blur', handleBlur, true);\n\n return () => {\n document.removeEventListener('click', handleClick, true);\n window.removeEventListener('blur', handleBlur, true);\n };\n }, [show]);\n\n useEffect(() => {\n if (!notification) {\n return;\n }\n\n const timerId = setTimeout(() => setNotification(null), 3000);\n\n return () => clearTimeout(timerId);\n }, [notification]);\n\n useEffect(() => {\n if (!selectedLayout) {\n return;\n }\n\n setInputValue(selectedLayout.name);\n }, [selectedLayout]);\n\n const onSelectedLayoutClick = () => {\n setShow((v) => !v);\n\n if (!selectedLayout) {\n return;\n }\n\n setInputValue(selectedLayout.name);\n };\n\n return (\n <footer className=\"footer\" ref={footerRef}>\n <div\n aria-label=\"Layouts panel\"\n aria-expanded={show}\n role=\"button\"\n {...onClickA11y(onSelectedLayoutClick)}\n className=\"selected-layout flex ai-center\"\n >\n <span className={classNames('name', { hidden: show })}>{selectedLayout?.name || 'No selected layout'}</span>\n <div className=\"flex ai-center\">\n {!show && <LayoutActions inputValue={inputValue} setNotification={setNotification} />}\n <Icon\n className={classNames('ms-8', 'layouts-panel-toggle-button', {\n 'layouts-panel-toggle-button-rotated': show,\n })}\n name=\"chevron-up\"\n />\n </div>\n </div>\n\n <Collapse isOpen={show}>\n <div className=\"layouts-container\">\n <div className=\"layouts-settings\">\n <input className=\"g42-input\" onChange={(event) => setInputValue(event.target.value)} value={inputValue} />\n <LayoutActions className=\"group\" inputValue={inputValue} setNotification={setNotification} />\n </div>\n\n <div>\n <AvailableLayouts\n layouts={layouts.map((layout) => ({\n ...layout,\n isSelected: layout.name === selectedLayout?.name,\n isDefault: layout.name === defaultLayout?.name,\n }))}\n />\n </div>\n </div>\n </Collapse>\n\n {notification ? (\n <LayoutsNotification\n className={classNames({ 'ms-8 me-8': show })}\n message={notification.message}\n type={notification.type}\n />\n ) : (\n <div className=\"powered-by\">Powered by io.Connect Browser</div>\n )}\n </footer>\n );\n};\n\nexport default LayoutsPanel;\n","export const formatDate = (timestamp: number) => {\r\n const date = new Date(timestamp);\r\n const hours = date.getHours();\r\n const minutes = date.getMinutes().toString().padStart(2, '0');\r\n const seconds = date.getSeconds().toString().padStart(2, '0');\r\n const amPm = hours >= 12 ? 'PM' : 'AM';\r\n const month = date.getMonth() + 1;\r\n const day = date.getDate();\r\n const year = date.getFullYear();\r\n\r\n return `${hours % 12}:${minutes}:${seconds} ${amPm} ${month}/${day}/${year}`;\r\n};\r\n","import { useContext } from 'react';\nimport { IOConnectBrowser } from '@interopio/browser';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { SEVERITY_COLORS } from './constants';\nimport { formatDate } from '../../helpers/date';\nimport Icon from '../icon/icon';\nimport ButtonGroup from '../button-group/button-group';\n\ninterface NotificationProps {\n notificationData: IOConnectBrowser.Notifications.NotificationData;\n}\n\nexport const Notification = (props: NotificationProps) => {\n const { severity = 'None', id, timestamp, title, body, actions } = props.notificationData;\n const io = useContext(IOConnectContext);\n\n const clearNotification = () => {\n if (!io) {\n return;\n }\n\n io.notifications.clear(id).catch(console.error);\n };\n\n const handleNotificationClick = async (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {\n event.stopPropagation();\n\n try {\n await io.notifications.click(id);\n clearNotification();\n } catch (error) {\n console.error(error);\n }\n };\n\n const actionItems = actions?.map(({ action, title }) => ({\n children: title,\n onClick: async (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => {\n event.stopPropagation();\n\n try {\n await io.notifications.click(id, action);\n clearNotification();\n } catch (error) {\n console.error(error);\n }\n },\n }));\n\n return (\n <div\n className=\"notifications-list-item\"\n style={{ borderLeftColor: SEVERITY_COLORS[severity] }}\n onClick={handleNotificationClick}\n data-testid=\"notification-container\"\n >\n <div className=\"notification-header\" data-testid=\"notification-header\">\n <h4>{title}</h4>\n\n <Icon\n onClick={(event) => {\n event.stopPropagation();\n clearNotification();\n }}\n className=\"g42-btn close-btn\"\n size={16}\n name=\"close\"\n data-testid=\"close-icon\"\n />\n </div>\n\n {body && <p data-testid=\"notification-body\">{body}</p>}\n\n {timestamp && <p data-testid=\"notification-timestamp\">{formatDate(timestamp)}</p>}\n\n {actionItems && <ButtonGroup className=\"notification-actions\" data-testid=\"notification-actions\" items={actionItems} />}\n </div>\n );\n};\n\nexport default Notification;\n","import classNames from 'classnames';\nimport { useNotifications } from '../../hooks';\n\ninterface NotificationsBadgeProps {\n className?: string;\n}\n\nexport const NotificationsBadge = (props: NotificationsBadgeProps) => {\n const { className } = props;\n const notificationsCount = useNotifications().length;\n\n return notificationsCount > 0 ? (\n <span className={classNames('notifications-badge', className)} data-testid=\"notifications-badge\">\n {notificationsCount < 10 ? notificationsCount : '9+'}\n </span>\n ) : null;\n};\n\nexport default NotificationsBadge;\n","import classNames from 'classnames';\nimport Icon from '../icon/icon';\nimport NotificationsBadge from './notifications-badge';\n\ninterface NotificationsIconProps extends React.HTMLAttributes<HTMLDivElement> {\n iconSize?: number;\n}\n\nexport const NotificationsIcon = (props: NotificationsIconProps) => {\n const { className, iconSize = 24, ...rest } = props;\n\n return (\n <div className={classNames(className, 'notifications-icon')} data-testid=\"notifications-icon\" {...rest}>\n <Icon size={iconSize} name=\"bell\" />\n <NotificationsBadge />\n </div>\n );\n};\n\nexport default NotificationsIcon;\n","import { useCallback, useContext } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport ButtonGroup from '../button-group/button-group';\nimport Notification from './notification';\nimport { useNotificationsSort } from '../../hooks/';\nimport Button from '../button/button';\n\nexport const NotificationsPanel = () => {\n const { onNotificationsSort, sortedNotifications } = useNotificationsSort();\n const io = useContext(IOConnectContext);\n\n const clearAllNotifications = useCallback(() => {\n if (!io) {\n return;\n }\n\n io.notifications.clearAll().catch(console.error);\n }, [io]);\n\n return (\n <div className=\"notifications-panel\" data-testid=\"notifications-panel\">\n <div className=\"header\" data-testid=\"notifications-panel-header\">\n <div className=\"header-caption\">\n <div>Notifications ({sortedNotifications.length})</div>\n </div>\n <ButtonGroup\n items={[\n {\n children: 'Latest',\n onClick: () => onNotificationsSort('timestamp'),\n },\n {\n children: 'By Priority',\n onClick: () => onNotificationsSort('severity'),\n },\n ]}\n />\n </div>\n\n {sortedNotifications.length ? (\n <div className=\"notifications-list\" data-testid=\"notifications-list\">\n {sortedNotifications.map((notification) => (\n <Notification key={notification.id} notificationData={notification} />\n ))}\n </div>\n ) : (\n <div className=\"no-notifications\">No notifications</div>\n )}\n\n <div className=\"footer\" data-testid=\"notifications-panel-footer\">\n <Button children=\"Clear All\" onClick={clearAllNotifications} />\n </div>\n </div>\n );\n};\n\nexport default NotificationsPanel;\n","import React, { useRef, HTMLProps, PropsWithChildren, useEffect } from 'react';\nimport Icon from '../icon/icon';\n\ninterface DialogProps extends HTMLProps<HTMLDialogElement> {\n open: boolean;\n showCloseButton?: boolean;\n closeFn: () => void;\n}\n\nexport const Dialog = ({ children, closeFn, open = false, showCloseButton = true }: PropsWithChildren<DialogProps>) => {\n const dialogRef = useRef<HTMLDialogElement | null>(null);\n\n useEffect(() => {\n if (open) {\n dialogRef.current?.showModal();\n } else {\n dialogRef.current?.close();\n }\n }, [open]);\n\n return (\n <dialog\n ref={dialogRef}\n onClose={() => {\n if (open) {\n closeFn();\n }\n }}\n onClick={(e) => {\n if ((e.target as HTMLDialogElement).nodeName === 'DIALOG') {\n closeFn();\n }\n }}\n >\n <div className=\"dialog-backer\">\n {showCloseButton && <Icon onClick={closeFn} className=\"btn-close g42-btn g42-btn-icon\" size={16} name=\"close\" />}\n {children}\n </div>\n </dialog>\n );\n};\n\nexport default Dialog;\n","import React from 'react';\nimport Icon from '../icon/icon';\nimport classNames from 'classnames';\nimport '@interopio/theme';\nimport './launchpad.scss';\nimport { getInitials } from '../../helpers/string';\nimport SearchBar from '../search/search-bar/search-bar';\nimport { useState, useEffect, useRef } from 'react';\nimport SearchResultsSection from '../search/search-results-section/search-results-section';\nimport { LaunchpadAPIProvider } from './launchpad.context';\nimport { SectionProvider } from '../section/section.context';\nimport ApplicationsSection from '../applications-section/applications-section';\nimport FavoritesSection from '../favorites-section/favorites-section';\nimport WorkspacesSection from '../workspaces-section/workspaces-section';\nimport LayoutsPanel from '../layouts-panel/layouts-panel';\nimport { NotificationsIcon } from '../notifications-panel';\nimport { NotificationsPanel } from '../notifications-panel';\nimport { onClickA11y } from '../../helpers/a11y';\nimport ProfileIcon from './features/profile-settings/profile-icon';\nimport ProfileSettings from './features/profile-settings/profile-settings';\nimport Dialog from '../dialog/dialog';\n\nexport interface LaunchpadProps extends React.HTMLProps<HTMLDivElement> {\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n onLogout?: () => void;\n components?: {\n sections?: JSX.Element;\n };\n user?: {\n name?: string;\n };\n}\n\nexport function Launchpad(props: LaunchpadProps) {\n const { open, setOpen, onLogout, className, components, user, ...rest } = props;\n const [searchTerm, setSearchTerm] = useState('');\n const [notificationDialogOpen, setNotificationDialogOpen] = useState(false);\n const [profileDialogOpen, setProfileDialogOpen] = useState(false);\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (open) {\n searchInputRef.current?.focus();\n return;\n }\n\n setSearchTerm('');\n }, [open]);\n\n const handleSearch = (event: React.ChangeEvent<HTMLInputElement>) => {\n setSearchTerm(event.target.value);\n };\n\n const handleClear = () => {\n setSearchTerm('');\n };\n\n const sections = (\n <SectionProvider>\n <ul>\n {components?.sections || (\n <>\n <FavoritesSection />\n <WorkspacesSection />\n <ApplicationsSection />\n </>\n )}\n </ul>\n </SectionProvider>\n );\n\n return (\n <LaunchpadAPIProvider setOpen={setOpen} isOpen={open}>\n <div className={classNames(className)} {...rest}>\n <header>\n <SearchBar ref={searchInputRef} searchTerm={searchTerm} onSearch={handleSearch} onClear={handleClear} />\n <div className=\"action-area\">\n <NotificationsIcon\n aria-label=\"Notifications\"\n role=\"button\"\n {...onClickA11y(() => setNotificationDialogOpen(true))}\n />\n {user && (\n <ProfileIcon\n initials={getInitials(user.name || 'N A')}\n aria-label=\"Profile and Settings\"\n role=\"button\"\n {...onClickA11y(() => setProfileDialogOpen(true))}\n />\n )}\n </div>\n <Icon className=\"btn-close g42-btn g42-btn-icon\" size={16} name=\"close\" handleClick={() => setOpen(false)} />\n </header>\n <main>{searchTerm.trim().length < 3 ? sections : <SearchResultsSection searchTerm={searchTerm} />}</main>\n <LayoutsPanel />\n </div>\n <Dialog open={notificationDialogOpen} closeFn={() => setNotificationDialogOpen(false)}>\n <NotificationsPanel />\n </Dialog>\n <Dialog open={profileDialogOpen} closeFn={() => setProfileDialogOpen(false)}>\n <ProfileSettings onLogout={onLogout} user={user} />\n </Dialog>\n </LaunchpadAPIProvider>\n );\n}\n\nexport default Launchpad;\n","import { FC } from 'react';\nimport { Button, FormGroup, Input, Form } from 'reactstrap';\n\nexport interface LoginFormProps {\n email: string;\n password: string;\n errorMessage?: string;\n canSubmit: boolean;\n onSubmit: () => void;\n onChange: (element: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nconst LoginForm: FC<LoginFormProps> = ({ email, password, canSubmit, errorMessage, onSubmit, onChange }) => {\n const handleKeyUp = (e: React.KeyboardEvent<HTMLFormElement>) => {\n if (e.key !== 'Enter') {\n return;\n }\n\n e.preventDefault();\n onSubmit();\n };\n\n return (\n <Form onKeyUp={handleKeyUp} onSubmit={onSubmit}>\n <FormGroup>\n <Input\n autoFocus\n autoComplete=\"off\"\n type=\"text\"\n placeholder=\"Email\"\n value={email}\n onChange={onChange}\n className=\"g42-input\"\n />\n </FormGroup>\n <FormGroup>\n <Input autoComplete=\"off\" type=\"password\" placeholder=\"Password\" value={password} onChange={onChange}></Input>\n </FormGroup>\n\n <div className=\"pb-2 login-error-feedback\">{errorMessage ?? ''}</div>\n\n <Button disabled={!canSubmit} onClick={onSubmit}>\n SIGN IN\n </Button>\n </Form>\n );\n};\n\nexport default LoginForm;\n","import { FC } from 'react';\n\nexport interface LoginHeadingProps {\n className?: string;\n text?: string;\n}\n\nexport const LoginHeading: FC<LoginHeadingProps> = ({\n className = 'welcome-text text-center mb-3',\n text = 'Making Your Work Flow',\n}) => {\n return (\n <>\n <h1 className={className}>{text}</h1>\n <p>Integrate apps, simplify user experiences and accelerate digital transformation.</p>\n </>\n );\n};\n","export const LOGO_WIDTH = '256px';\n","import { FC } from 'react';\nimport config from '../../../public/assets/io-connect-browser-logo.json';\nimport { LOGO_WIDTH } from './constants';\n\nexport interface LogoProps {\n logoSrc?: string;\n width?: string;\n className?: string;\n}\n\nexport const LoginLogo: FC<LogoProps> = ({ logoSrc = config.loginPageLogo.value, width = LOGO_WIDTH, className = 'logo' }) => {\n return <img width={width} src={logoSrc} className={className} alt=\"Login logo\" />;\n};\n","import { LoginFormElementAction, LoginFormElementReducer, LoginFormElementState } from './types';\n\nexport const emailReducer: LoginFormElementReducer = (_: LoginFormElementState, action: LoginFormElementAction) => {\n const value: string = action.value || '';\n\n const isValid = value.includes('@');\n\n const validationError = isValid || !value.length ? undefined : 'The provided input is not a valid email';\n\n return { value, isValid, validationError };\n};\n\nexport const passwordReducer: LoginFormElementReducer = (_: LoginFormElementState, action: LoginFormElementAction) => {\n const value: string = action.value || '';\n\n const isValid = value.trim().length > 3;\n\n const validationError = isValid || !value.length ? undefined : 'The provided does not meet the length requirement';\n\n return { value, isValid, validationError };\n};\n","import { FC, useEffect, useReducer, useState } from 'react';\nimport LoginForm from './login-form';\nimport { LoginHeading } from './login-heading';\nimport { LoginLogo } from './login-logo';\nimport { emailReducer, passwordReducer } from './reducers';\nimport { LoginDesignProps, LoginFormElementReducer } from './types';\nimport './login.scss';\n\nexport interface LoginProps extends LoginDesignProps {\n onLogin: (email: string, password: string) => void;\n isLoading?: boolean;\n loginErrorMessage?: string;\n}\n\nexport const Login: FC<LoginProps> = ({ onLogin, loginErrorMessage, components }) => {\n const [formIsValid, setFormIsValid] = useState(false);\n const [emailState, dispatchEmail] = useReducer<LoginFormElementReducer>(emailReducer, { value: '', isValid: false });\n const [passwordState, dispatchPassword] = useReducer<LoginFormElementReducer>(passwordReducer, { value: '', isValid: false });\n\n const { isValid: emailValid } = emailState;\n const { isValid: passwordValid } = passwordState;\n\n useEffect(() => {\n const timer = setTimeout(() => {\n setFormIsValid(emailValid && passwordValid);\n }, 250);\n\n return () => clearTimeout(timer);\n }, [emailValid, passwordValid]);\n\n const dispatch = (event: React.ChangeEvent<HTMLInputElement>, value?: string): void => {\n const elementType = event.target.type;\n\n const dispatchFunction = elementType === 'password' ? dispatchPassword : dispatchEmail;\n\n dispatchFunction({ value });\n };\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => dispatch(event, event.target.value);\n\n const handleSubmit = (): void => {\n if (!emailValid || !passwordValid) {\n return;\n }\n\n const email = emailState.value;\n const password = passwordState.value;\n\n onLogin(email, password);\n };\n\n const Logo = components?.Logo || LoginLogo;\n const Heading = components?.Heading || LoginHeading;\n\n return (\n <>\n <Logo />\n <Heading />\n <LoginForm\n email={emailState.value}\n password={passwordState.value}\n errorMessage={loginErrorMessage ?? emailState.validationError ?? passwordState.validationError}\n canSubmit={formIsValid}\n onChange={handleChange}\n onSubmit={handleSubmit}\n />\n </>\n );\n};\n","import { FC } from 'react';\nimport { LoginDesignProps } from './types';\nimport { LoginLogo } from './login-logo';\nimport { LoginHeading } from './login-heading';\n\nexport const LoginLoader: FC<LoginDesignProps> = ({ components }) => {\n const Logo = components?.Logo || LoginLogo;\n const Heading = components?.Heading || LoginHeading;\n\n return (\n <>\n <Logo />\n <Heading />\n <span className=\"loader\"></span>\n </>\n );\n};\n","import { FC } from 'react';\nimport { Form } from 'reactstrap';\nimport { Button } from '../button/button';\nimport { LoginHeading } from './login-heading';\nimport { LoginLogo } from './login-logo';\nimport { LoginDesignProps } from './types';\n\nexport interface LoginAuth0Props extends LoginDesignProps {\n onLogin: () => void;\n}\n\nexport const LoginAuth0: FC<LoginAuth0Props> = ({ components, onLogin }) => {\n const Logo = components?.Logo || LoginLogo;\n const Heading = components?.Heading || LoginHeading;\n\n return (\n <>\n <Logo />\n <Heading />\n <Form>\n <Button onClick={onLogin} className=\"g42-btn-primary\">\n Log In\n </Button>\n </Form>\n </>\n );\n};\n","import { Logo as IOConnectLogo } from '@interopio/workspaces-ui-react';\nimport { NotificationsBadge } from '../notifications-panel';\n\nexport const Logo = () => {\n return (\n <>\n <IOConnectLogo />\n <NotificationsBadge />\n </>\n );\n};\n\nexport default Logo;\n","import { useEffect, useRef, useState } from 'react';\nimport styles from './slide-panel.module.scss';\nimport classNames from 'classnames';\n\nexport interface SlidePanelRenderPropsProps {\n icon: JSX.Element;\n children: (props: { open: boolean; setOpen: React.Dispatch<React.SetStateAction<boolean>> }) => React.ReactNode;\n}\n\nexport const SlidePanel = (props: SlidePanelRenderPropsProps) => {\n const [open, setOpen] = useState(false);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const logoContainerRef = useRef<HTMLButtonElement | null>(null);\n const { icon, children } = props;\n\n useEffect(() => {\n if (!open) return;\n\n const handleMouseup = (event: MouseEvent) => {\n const isOutsideClick = event.target !== wrapperRef.current && !wrapperRef.current?.contains(event.target as Node);\n\n const isLogoClick = event.target === logoContainerRef.current || logoContainerRef.current?.contains(event.target as Node);\n\n if (!isLogoClick && isOutsideClick) {\n setOpen(false);\n }\n };\n\n const handleBlur = () => {\n if (document.activeElement?.nodeName !== 'IFRAME') {\n return;\n }\n\n setOpen(false);\n };\n\n document.addEventListener('mouseup', handleMouseup, true);\n window.addEventListener('blur', handleBlur, true);\n\n return () => {\n document.removeEventListener('mouseup', handleMouseup, true);\n window.removeEventListener('blur', handleBlur, true);\n };\n }, [open]);\n\n return (\n <div ref={wrapperRef}>\n <button\n aria-label=\"Launchpad\"\n onClick={() => setOpen((v) => !v)}\n className={`g42-logo ${open === true ? 'active' : ''}`}\n ref={logoContainerRef}\n >\n <div className=\"logo-wrapper\">{icon}</div>\n </button>\n\n <div>\n <div\n className={classNames(styles['launchpad-popup'], {\n [styles['slide-in']]: open,\n })}\n >\n {children({ open, setOpen })}\n </div>\n </div>\n </div>\n );\n};\n","import Launchpad from '../launchpad/launchpad';\nimport { SlidePanel } from './slide-panel';\n\nexport interface LaunchpadSlidePanelProps {\n icon: JSX.Element;\n components?: { sections?: JSX.Element };\n onLogout?: () => void;\n user?: {\n name?: string;\n };\n}\n\nexport const LaunchpadSlidePanel = (props: LaunchpadSlidePanelProps) => {\n const { icon, components, onLogout, user } = props;\n\n return (\n <SlidePanel icon={icon}>\n {({ open, setOpen }) => (\n <Launchpad open={open} setOpen={setOpen} user={user} onLogout={onLogout} components={components} />\n )}\n </SlidePanel>\n );\n};\n","export const BrowserNotificationsIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={222} height={130} fill=\"none\" {...props}>\n <g filter=\"url(#a)\">\n <path fill=\"url(#b)\" d=\"M16 24h190v98a6 6 0 0 1-6 6H22a6 6 0 0 1-6-6V24Z\" />\n </g>\n <path fill=\"#3C3E3F\" d=\"M16 24h190V7a6 6 0 0 0-6-6H22a6 6 0 0 0-6 6v17Z\" />\n <path stroke=\"url(#c)\" d=\"M16 23.5h189\" />\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M178.172 15.343a2.171 2.171 0 1 0 0-4.342 2.171 2.171 0 0 0 0 4.342ZM186.258 15.343a2.171 2.171 0 1 0 .001-4.343 2.171 2.171 0 0 0-.001 4.343Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M194.344 15.343a2.171 2.171 0 1 0 .001-4.343 2.171 2.171 0 0 0-.001 4.343Z\" />\n <rect width={75} height={75} x={73.5} y={33.5} stroke=\"#9DA2A5\" strokeDasharray=\"1 12\" rx={37.5} />\n <rect width={69} height={24} x={127} y={64} fill=\"#3C3E3F\" rx={2} />\n <path fill=\"#2479E9\" d=\"M139 72a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z\" />\n <rect width={39} height={8} x={148} y={72} fill=\"#D9D9D9\" fillOpacity={0.1} rx={4} />\n <rect width={69} height={24} x={127} y={92} fill=\"#3C3E3F\" rx={2} />\n <path fill=\"#36A86B\" d=\"M139 100a4 4 0 1 0 0 8 4 4 0 0 0 0-8Z\" />\n <rect width={11} height={8} x={148} y={100} fill=\"#D9D9D9\" fillOpacity={0.1} rx={4} />\n <rect width={18} height={8} x={164} y={100} fill=\"#D9D9D9\" fillOpacity={0.1} rx={4} />\n <rect width={66} height={66} x={78} y={38} fill=\"#36AA6C\" rx={33} />\n <path\n fill=\"#fff\"\n d=\"M110.25 59.75c0-.375.328-.75.75-.75.375 0 .75.375.75.75v.797c3.75.375 6.75 3.562 6.75 7.453v1.406c0 2.016.797 3.985 2.25 5.438l.141.14c.375.375.609.938.609 1.454a2.1 2.1 0 0 1-2.109 2.109h-16.829c-1.171-.047-2.062-.938-2.062-2.11 0-.562.188-1.078.609-1.453l.094-.14c1.453-1.453 2.297-3.422 2.297-5.438V68a7.484 7.484 0 0 1 6.75-7.453v-.797ZM111 62c-3.328 0-6 2.719-6 6v1.406a9.227 9.227 0 0 1-2.719 6.516l-.14.094a.755.755 0 0 0-.141.421c0 .329.234.563.562.563h16.829c.328 0 .609-.234.609-.563 0-.14-.094-.28-.188-.421l-.14-.094a9.258 9.258 0 0 1-2.719-6.563V68c0-3.281-2.672-6-6-6H111Zm-1.453 18.516c.234.609.797.984 1.453.984.609 0 1.172-.375 1.406-.984.141-.375.563-.61.938-.47.375.141.609.563.468.985A2.99 2.99 0 0 1 111 83c-1.312 0-2.438-.797-2.859-1.969a.785.785 0 0 1 .468-.984c.375-.14.797.094.938.469Z\"\n />\n <rect width={191} height={128} x={15.5} y={0.5} stroke=\"url(#d)\" strokeMiterlimit={10} rx={6.5} />\n <defs>\n <linearGradient id=\"b\" x1={39.152} x2={71.862} y1={30.346} y2={129.753} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#383838\" />\n <stop offset={1} stopColor=\"#1D1D1D\" />\n </linearGradient>\n <linearGradient id=\"c\" x1={9.298} x2={205} y1={24} y2={24} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={1} stopColor=\"#5F5F5F\" stopOpacity={0} />\n </linearGradient>\n <linearGradient id=\"d\" x1={34.959} x2={127.671} y1={39.954} y2={146.801} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={0} stopColor=\"#575757\" />\n <stop offset={1} stopColor=\"#2C2C2C\" />\n </linearGradient>\n <filter id=\"a\" width={222} height={136} x={0} y={15} colorInterpolationFilters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={7} />\n <feGaussianBlur stdDeviation={8} />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_816_102831\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_816_102831\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n);\n\nexport default BrowserNotificationsIcon;\n","export const ReopenPromptIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={182} height={121} fill=\"none\" {...props}>\n <path fill=\"url(#a)\" d=\"M114.092 103.689h-46.36v11.541h46.36v-11.541Z\" />\n <path fill=\"#828589\" d=\"M134.371 115.23H47.446v5.771h86.925v-5.771Z\" />\n <rect width={180.555} height={103.984} x={0.723} fill=\"url(#b)\" rx={8} />\n <rect width={167} height={90} x={7.5} y={7} fill=\"#000\" fillOpacity={0.4} rx={4} />\n <g filter=\"url(#c)\">\n <rect width={102} height={56} x={40} y={24} fill=\"url(#d)\" rx={6} />\n <rect width={86} height={8} x={48} y={44.5} fill=\"#D9D9D9\" fillOpacity={0.1} rx={4} />\n <rect width={41} height={8} x={48} y={59.5} fill=\"#fff\" fillOpacity={0.14} rx={4} />\n <rect width={41} height={8} x={93} y={59.5} fill=\"#fff\" fillOpacity={0.3} rx={4} />\n <rect width={8} height={8} x={126} y={31} fill=\"#DE2122\" rx={4} />\n <path\n fill=\"#fff\"\n d=\"m131.878 33.683-1.31 1.31 1.31 1.324a.384.384 0 0 1 0 .561.384.384 0 0 1-.561 0l-1.311-1.31-1.323 1.31a.384.384 0 0 1-.561 0 .384.384 0 0 1 0-.561l1.31-1.323-1.31-1.31a.384.384 0 0 1 0-.562.384.384 0 0 1 .561 0l1.323 1.31 1.311-1.31a.384.384 0 0 1 .561 0 .384.384 0 0 1 0 .561Z\"\n />\n <rect width={101} height={55} x={40.5} y={24.5} stroke=\"url(#e)\" strokeMiterlimit={10} rx={5.5} />\n </g>\n <defs>\n <linearGradient id=\"a\" x1={90.912} x2={90.912} y1={103.689} y2={115.23} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"gray\" />\n <stop offset={1} stopColor=\"#56585D\" />\n </linearGradient>\n <linearGradient id=\"b\" x1={91} x2={91} y1={0} y2={103.984} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"gray\" />\n <stop offset={1} stopColor=\"#56585D\" />\n </linearGradient>\n <linearGradient id=\"d\" x1={52.429} x2={70.085} y1={27.417} y2={80.913} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#313131\" />\n <stop offset={1} stopColor=\"#1B1B1B\" />\n </linearGradient>\n <linearGradient id=\"e\" x1={50.178} x2={89.211} y1={41.176} y2={95.944} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={0} stopColor=\"#575757\" />\n <stop offset={1} stopColor=\"#2C2C2C\" />\n </linearGradient>\n <filter id=\"c\" width={134} height={88} x={24} y={15} colorInterpolationFilters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={7} />\n <feGaussianBlur stdDeviation={8} />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_2206_37806\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_2206_37806\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n);\n\nexport default ReopenPromptIcon;\n","export const WarningIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={196} height={130} fill=\"none\" {...props}>\n <g filter=\"url(#a)\">\n <path fill=\"url(#b)\" d=\"M16 52.406h164v70a6 6 0 0 1-6 6H22a6 6 0 0 1-6-6v-70Z\" />\n </g>\n <path fill=\"#3C3E3F\" d=\"M16 52.406h164v-17a6 6 0 0 0-6-6H22a6 6 0 0 0-6 6v17Z\" />\n <path stroke=\"url(#c)\" d=\"M16 51.906h163\" />\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M152.172 43.75a2.171 2.171 0 1 0 0-4.343 2.171 2.171 0 0 0 0 4.342ZM160.258 43.75a2.172 2.172 0 1 0 0-4.344 2.172 2.172 0 0 0 0 4.343Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M168.344 43.75a2.172 2.172 0 1 0 0-4.344 2.172 2.172 0 0 0 0 4.343Z\" />\n <rect width={165.324} height={99.595} x={15.5} y={28.906} stroke=\"url(#d)\" strokeMiterlimit={10} rx={6.5} />\n <path\n fill=\"url(#e)\"\n d=\"M96.469 13.858c1.347-2.334 4.717-2.334 6.064 0l58.373 101.105c1.348 2.335-.337 5.253-3.032 5.253H41.128c-2.696 0-4.38-2.918-3.033-5.253L96.47 13.858Z\"\n />\n <path\n fill=\"#fff\"\n d=\"M97.705 88.342a1 1 0 0 1-1-.975l-.826-33.968a1 1 0 0 1 1-1.024h6.267a1 1 0 0 1 1 1.024l-.827 33.968a1 1 0 0 1-1 .975h-4.614Zm2.526 15.54c-1.508 0-2.748-.462-3.72-1.386-.925-.973-1.387-2.116-1.387-3.43 0-1.361.462-2.504 1.386-3.428.973-.973 2.213-1.46 3.721-1.46 1.41 0 2.578.487 3.502 1.46.973.924 1.459 2.067 1.459 3.429 0 1.313-.486 2.456-1.459 3.429-.924.924-2.092 1.386-3.502 1.386Z\"\n />\n <rect width={1} height={3} x={55} y={44} fill=\"#9DA2A5\" rx={0.5} />\n <rect width={1} height={3} x={55} y={50} fill=\"#9DA2A5\" rx={0.5} />\n <rect width={1} height={3} x={55} y={56} fill=\"#9DA2A5\" rx={0.5} />\n <rect width={40.255} height={40.255} x={35} fill=\"url(#f)\" rx={20.128} />\n <path\n fill=\"#fff\"\n d=\"M61.128 14.127v8h3v-7c0-.531-.469-1-1-1h-2Zm-1 0h-3v4h3v-4Zm-4 0h-2v8h2v-8Zm-3 0h-3v4h3v-4Zm-4 0h-2c-.563 0-1 .469-1 1v7h3v-8Zm-3 9v2c0 .563.437 1 1 1h7.5v-3h-8.5Zm9.5 3h7.5c.531 0 1-.438 1-1v-2h-8.5v3Zm-10.5-11c0-1.094.875-2 2-2h16c1.094 0 2 .906 2 2v10c0 1.125-.906 2-2 2h-16c-1.125 0-2-.875-2-2v-10Zm8 7v-3h-3v3h3Zm7-3h-3v3h3v-3Z\"\n />\n <rect width={15.096} height={15.096} x={62.676} y={26.418} fill=\"#DE2122\" rx={7.548} />\n <path\n fill=\"#fff\"\n d=\"m72.102 32.65-1.31 1.31 1.31 1.323a.385.385 0 0 1 0 .562.385.385 0 0 1-.562 0l-1.31-1.31-1.323 1.31a.385.385 0 0 1-.562 0 .385.385 0 0 1 0-.562l1.31-1.322-1.31-1.31a.385.385 0 0 1 0-.563.385.385 0 0 1 .562 0l1.323 1.31 1.31-1.31a.385.385 0 0 1 .562 0 .385.385 0 0 1 0 .562Z\"\n />\n <rect width={40.255} height={40.255} x={35} y={63} fill=\"url(#g)\" rx={20.128} />\n <path\n fill=\"#fff\"\n d=\"M54.628 75.627c0-.25.219-.5.5-.5.25 0 .5.25.5.5v.531c2.5.25 4.5 2.375 4.5 4.969v.938c0 1.343.531 2.656 1.5 3.624l.094.094c.25.25.406.625.406.969a1.4 1.4 0 0 1-1.406 1.406h-11.22c-.78-.031-1.374-.625-1.374-1.406 0-.375.125-.719.406-.969l.063-.094c.968-.968 1.53-2.28 1.53-3.624v-.938a4.99 4.99 0 0 1 4.5-4.969v-.531Zm.5 1.5c-2.219 0-4 1.813-4 4v.938a6.152 6.152 0 0 1-1.813 4.343l-.093.063a.504.504 0 0 0-.094.281c0 .219.156.375.375.375h11.219c.218 0 .406-.156.406-.375 0-.094-.063-.188-.125-.281l-.094-.063a6.17 6.17 0 0 1-1.812-4.375v-.906c0-2.188-1.782-4-4-4h.03Zm-.969 12.344c.156.406.531.656.969.656.406 0 .781-.25.937-.656.094-.25.375-.407.625-.313.25.094.407.375.313.656a1.994 1.994 0 0 1-1.875 1.313 2.005 2.005 0 0 1-1.906-1.313.524.524 0 0 1 .312-.656c.25-.094.531.063.625.313Z\"\n />\n <rect width={15.096} height={15.096} x={62.678} y={89.418} fill=\"#DE2122\" rx={7.548} />\n <path\n fill=\"#fff\"\n d=\"m72.104 95.65-1.31 1.31 1.31 1.324a.385.385 0 0 1 0 .561.385.385 0 0 1-.562 0l-1.31-1.31-1.323 1.31a.385.385 0 0 1-.562 0 .385.385 0 0 1 0-.561l1.31-1.323-1.31-1.31a.385.385 0 0 1 0-.563.385.385 0 0 1 .562 0l1.323 1.31 1.31-1.31a.385.385 0 0 1 .562 0 .385.385 0 0 1 0 .562Z\"\n />\n <defs>\n <linearGradient id=\"b\" x1={35.984} x2={56.797} y1={57.043} y2={131.755} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#383838\" />\n <stop offset={1} stopColor=\"#1D1D1D\" />\n </linearGradient>\n <linearGradient id=\"c\" x1={10.22} x2={179} y1={52.406} y2={52.406} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={1} stopColor=\"#5F5F5F\" stopOpacity={0} />\n </linearGradient>\n <linearGradient id=\"d\" x1={32.397} x2={102.886} y1={59.648} y2={150.147} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={0} stopColor=\"#575757\" />\n <stop offset={1} stopColor=\"#2C2C2C\" />\n </linearGradient>\n <linearGradient id=\"e\" x1={99.501} x2={246.864} y1={8.606} y2={161.85} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#F4B40F\" />\n <stop offset={1} stopColor=\"#EFAA23\" />\n </linearGradient>\n <linearGradient id=\"f\" x1={55.128} x2={55.128} y1={0} y2={40.255} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"gray\" />\n <stop offset={1} stopColor=\"#56585D\" />\n </linearGradient>\n <linearGradient id=\"g\" x1={55.128} x2={55.128} y1={63} y2={103.255} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"gray\" />\n <stop offset={1} stopColor=\"#56585D\" />\n </linearGradient>\n <filter id=\"a\" width={196} height={108} x={0} y={43.406} colorInterpolationFilters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={7} />\n <feGaussianBlur stdDeviation={8} />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_834_102897\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_834_102897\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n);\n\nexport default WarningIcon;\n","export const WindowPlacementIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={247} height={143} fill=\"none\" {...props}>\n <path fill=\"url(#a)\" d=\"M144.369 125.689h-46.36v11.541h46.36v-11.541Z\" />\n <path fill=\"#828589\" d=\"M164.648 137.23H77.724v5.771h86.924v-5.771Z\" />\n <rect width={180.555} height={103.984} x={31} y={22} fill=\"url(#b)\" rx={8} />\n <rect width={167} height={90} x={37.777} y={29} fill=\"#000\" fillOpacity={0.4} rx={4} />\n <g filter=\"url(#c)\">\n <path\n fill=\"url(#d)\"\n d=\"M187.138 9h-67.22A2.918 2.918 0 0 0 117 11.918v42.756a2.918 2.918 0 0 0 2.918 2.918h67.22a2.918 2.918 0 0 0 2.918-2.918V11.918A2.918 2.918 0 0 0 187.138 9Z\"\n />\n <path\n stroke=\"url(#e)\"\n strokeMiterlimit={10}\n d=\"M119.918 9.5h67.22a2.418 2.418 0 0 1 2.418 2.418v42.756a2.418 2.418 0 0 1-2.418 2.418h-67.22a2.418 2.418 0 0 1-2.418-2.418V11.918a2.418 2.418 0 0 1 2.418-2.418Z\"\n />\n </g>\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M161.871 22.42a2.171 2.171 0 1 0 0-4.343 2.171 2.171 0 0 0 0 4.342ZM169.958 22.42a2.171 2.171 0 1 0 0-4.343 2.171 2.171 0 0 0 0 4.342Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M178.043 22.42a2.172 2.172 0 1 0 0-4.345 2.172 2.172 0 0 0 0 4.344Z\" />\n <path\n fill=\"#9DA2A5\"\n d=\"M153.404 55.547v5.836a.486.486 0 1 1-.972 0v-5.836a.486.486 0 1 1 .972 0ZM152.92 67.827l-3.255-3.255a.486.486 0 0 0-.688.688l3.599 3.6c.191.19.498.19.688 0l3.593-3.594a.485.485 0 1 0-.687-.688l-3.25 3.25ZM153.404 49.322v-5.836a.486.486 0 1 0-.972 0v5.836a.486.486 0 1 0 .972 0Z\"\n />\n <path fill=\"#3BB272\" d=\"M149 35a4 4 0 1 0 8 0 4 4 0 0 0-8 0Z\" />\n <path\n fill=\"#fff\"\n fillOpacity={0.1}\n d=\"M105.723 39H53.277A2.28 2.28 0 0 0 51 41.282v33.436A2.28 2.28 0 0 0 53.277 77h52.446A2.28 2.28 0 0 0 108 74.718V41.282A2.28 2.28 0 0 0 105.723 39Z\"\n />\n <path\n stroke=\"#C8C8C8\"\n strokeDasharray=\"9 9\"\n strokeLinecap=\"round\"\n strokeMiterlimit={10}\n strokeOpacity={0.2}\n d=\"M100.853 39a.5.5 0 0 0 .5.5h4.37c.98 0 1.777.797 1.777 1.782v4.18a.5.5 0 0 0 .5.5v7.358a.5.5 0 0 0-.5.5v8.36a.5.5 0 0 0 .5.5v7.358a.5.5 0 0 0-.5.5v4.18a1.78 1.78 0 0 1-1.777 1.782h-4.37a.5.5 0 0 0-.5.5h-7.741a.5.5 0 0 0-.5-.5H83.87a.5.5 0 0 0-.5.5h-7.742a.5.5 0 0 0-.5-.5h-8.74a.5.5 0 0 0-.5.5h-7.742a.5.5 0 0 0-.5-.5h-4.37a1.78 1.78 0 0 1-1.777-1.782v-4.18a.5.5 0 0 0-.5-.5V62.68a.5.5 0 0 0 .5-.5v-8.36a.5.5 0 0 0-.5-.5v-7.358a.5.5 0 0 0 .5-.5v-4.18a1.78 1.78 0 0 1 1.777-1.782h4.37a.5.5 0 0 0 .5-.5h7.741a.5.5 0 0 0 .5.5h8.741a.5.5 0 0 0 .5-.5h7.742a.5.5 0 0 0 .5.5h8.74a.5.5 0 0 0 .5-.5h7.742Z\"\n />\n <path\n fill=\"#fff\"\n fillOpacity={0.1}\n d=\"M194.843 75h-49.686A2.16 2.16 0 0 0 143 77.162v31.676a2.16 2.16 0 0 0 2.157 2.162h49.686a2.16 2.16 0 0 0 2.157-2.162V77.162A2.16 2.16 0 0 0 194.843 75Z\"\n />\n <path\n stroke=\"#C8C8C8\"\n strokeDasharray=\"9 9\"\n strokeLinecap=\"round\"\n strokeMiterlimit={10}\n strokeOpacity={0.2}\n d=\"M190.203 75a.5.5 0 0 0 .5.5h4.14a1.66 1.66 0 0 1 1.657 1.662v3.96a.5.5 0 0 0 .5.5v6.918a.5.5 0 0 0-.5.5v7.92a.5.5 0 0 0 .5.5v6.919a.5.5 0 0 0-.5.5v3.959a1.66 1.66 0 0 1-1.657 1.662h-4.14a.5.5 0 0 0-.5.5h-7.281a.5.5 0 0 0-.5-.5h-8.281a.5.5 0 0 0-.5.5h-7.282a.5.5 0 0 0-.5-.5h-8.281a.5.5 0 0 0-.5.5h-7.281a.5.5 0 0 0-.5-.5h-4.14a1.66 1.66 0 0 1-1.657-1.662v-3.959a.5.5 0 0 0-.5-.5v-6.92a.5.5 0 0 0 .5-.5V89.04a.5.5 0 0 0-.5-.5v-6.919a.5.5 0 0 0 .5-.5v-3.96a1.66 1.66 0 0 1 1.657-1.661h4.14a.5.5 0 0 0 .5-.5h7.281a.5.5 0 0 0 .5.5h8.281a.5.5 0 0 0 .5-.5h7.282a.5.5 0 0 0 .5.5h8.281a.5.5 0 0 0 .5-.5h7.281Z\"\n />\n <g filter=\"url(#f)\">\n <path\n fill=\"url(#g)\"\n d=\"M228.294 65h-53.951a2.342 2.342 0 0 0-2.342 2.342v34.316a2.343 2.343 0 0 0 2.342 2.342h53.951a2.343 2.343 0 0 0 2.342-2.342V67.342A2.342 2.342 0 0 0 228.294 65Z\"\n />\n <path\n stroke=\"url(#h)\"\n strokeMiterlimit={10}\n d=\"M174.343 65.5h53.951c1.017 0 1.842.825 1.842 1.842v34.316a1.842 1.842 0 0 1-1.842 1.842h-53.951a1.842 1.842 0 0 1-1.842-1.842V67.342c0-1.017.825-1.842 1.842-1.842Z\"\n />\n </g>\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M208.014 75.77a1.743 1.743 0 1 0 0-3.484 1.743 1.743 0 0 0 0 3.485ZM214.505 75.77a1.743 1.743 0 1 0 0-3.484 1.743 1.743 0 0 0 0 3.485Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M220.995 75.77a1.743 1.743 0 1 0 0-3.486 1.743 1.743 0 0 0 0 3.487Z\" />\n <path\n fill=\"#9DA2A5\"\n d=\"M172.454 86.568h-5.836a.486.486 0 1 1 0-.972h5.836a.486.486 0 1 1 0 .972ZM160.175 86.084l3.255-3.255a.486.486 0 1 0-.688-.688l-3.599 3.6a.486.486 0 0 0 0 .687l3.593 3.594a.486.486 0 1 0 .688-.688l-3.249-3.25ZM176.486 86.568h5.836a.487.487 0 1 0 0-.972h-5.836a.486.486 0 1 0 0 .972ZM186.486 86.568h5.836a.487.487 0 1 0 0-.972h-5.836a.486.486 0 1 0 0 .972Z\"\n />\n <path fill=\"url(#i)\" d=\"M200.891 82.242a3.89 3.89 0 1 0 0 7.782 3.89 3.89 0 0 0 0-7.782Z\" />\n <g filter=\"url(#j)\">\n <path\n fill=\"url(#k)\"\n d=\"M86.138 62h-67.22A2.918 2.918 0 0 0 16 64.918v42.756a2.918 2.918 0 0 0 2.918 2.918h67.22a2.918 2.918 0 0 0 2.918-2.918V64.918A2.918 2.918 0 0 0 86.138 62Z\"\n />\n <path\n stroke=\"url(#l)\"\n strokeMiterlimit={10}\n d=\"M18.918 62.5h67.22a2.418 2.418 0 0 1 2.418 2.418v42.756a2.418 2.418 0 0 1-2.418 2.418h-67.22a2.418 2.418 0 0 1-2.418-2.418V64.918a2.418 2.418 0 0 1 2.418-2.418Z\"\n />\n </g>\n <path\n fill=\"#fff\"\n fillOpacity={0.3}\n d=\"M60.87 75.42a2.172 2.172 0 1 0 0-4.344 2.172 2.172 0 0 0 0 4.343ZM68.958 75.42a2.172 2.172 0 1 0 0-4.344 2.172 2.172 0 0 0 0 4.343Z\"\n />\n <path fill=\"#F0F6FE\" d=\"M77.043 75.42a2.172 2.172 0 1 0 0-4.344 2.172 2.172 0 0 0 0 4.343Z\" />\n <path\n fill=\"#9DA2A5\"\n d=\"M101.546 88.596h5.836a.486.486 0 1 1 0 .972h-5.836a.486.486 0 1 1 0-.972ZM80.158 88.596h5.836a.486.486 0 1 1 0 .972h-5.836a.486.486 0 1 1 0-.972ZM96.71 88.596h-5.836a.486.486 0 1 0 0 .972h5.836a.486.486 0 1 0 0-.972ZM59.158 88.596h5.836a.486.486 0 1 1 0 .972h-5.836a.486.486 0 1 1 0-.972ZM113.825 89.08l-3.255 3.255a.486.486 0 1 0 .688.688l3.599-3.6a.486.486 0 0 0 0-.687l-3.593-3.593a.486.486 0 1 0-.688.687l3.249 3.25ZM75.322 88.596h-5.836a.486.486 0 1 0 0 .972h5.836a.486.486 0 1 0 0-.972Z\"\n />\n <path fill=\"#2479E9\" d=\"M50 93a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z\" />\n <defs>\n <linearGradient id=\"a\" x1={121.189} x2={121.189} y1={125.689} y2={137.23} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"gray\" />\n <stop offset={1} stopColor=\"#56585D\" />\n </linearGradient>\n <linearGradient id=\"b\" x1={121.277} x2={121.277} y1={22} y2={125.984} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"gray\" />\n <stop offset={1} stopColor=\"#56585D\" />\n </linearGradient>\n <linearGradient id=\"d\" x1={125.902} x2={143.647} y1={11.965} y2={56.345} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#383838\" />\n <stop offset={1} stopColor=\"#1D1D1D\" />\n </linearGradient>\n <linearGradient id=\"e\" x1={124.29} x2={159.738} y1={23.904} y2={64.958} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={0} stopColor=\"#575757\" />\n <stop offset={1} stopColor=\"#2C2C2C\" />\n </linearGradient>\n <linearGradient id=\"g\" x1={179.146} x2={193.388} y1={67.38} y2={102.999} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#383838\" />\n <stop offset={1} stopColor=\"#1D1D1D\" />\n </linearGradient>\n <linearGradient id=\"h\" x1={177.852} x2={206.302} y1={76.962} y2={109.912} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={0} stopColor=\"#575757\" />\n <stop offset={1} stopColor=\"#2C2C2C\" />\n </linearGradient>\n <linearGradient id=\"i\" x1={200.891} x2={193.185} y1={90.023} y2={82.01} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#F4B40F\" />\n <stop offset={1} stopColor=\"#EFAA23\" />\n </linearGradient>\n <linearGradient id=\"k\" x1={24.902} x2={42.647} y1={64.965} y2={109.345} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#383838\" />\n <stop offset={1} stopColor=\"#1D1D1D\" />\n </linearGradient>\n <linearGradient id=\"l\" x1={23.29} x2={58.738} y1={76.904} y2={117.958} gradientUnits=\"userSpaceOnUse\">\n <stop stopColor=\"#5F5F5F\" />\n <stop offset={0} stopColor=\"#575757\" />\n <stop offset={1} stopColor=\"#2C2C2C\" />\n </linearGradient>\n <filter\n id=\"c\"\n width={105.056}\n height={80.592}\n x={101}\n y={0}\n colorInterpolationFilters=\"sRGB\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={7} />\n <feGaussianBlur stdDeviation={8} />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_807_102718\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_807_102718\" result=\"shape\" />\n </filter>\n <filter\n id=\"f\"\n width={90.635}\n height={71}\n x={156.001}\n y={56}\n colorInterpolationFilters=\"sRGB\"\n filterUnits=\"userSpaceOnUse\"\n >\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={7} />\n <feGaussianBlur stdDeviation={8} />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_807_102718\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_807_102718\" result=\"shape\" />\n </filter>\n <filter id=\"j\" width={105.056} height={80.592} x={0} y={53} colorInterpolationFilters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\n <feFlood floodOpacity={0} result=\"BackgroundImageFix\" />\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" />\n <feOffset dy={7} />\n <feGaussianBlur stdDeviation={8} />\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\" />\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_807_102718\" />\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_807_102718\" result=\"shape\" />\n </filter>\n </defs>\n </svg>\n);\n\nexport default WindowPlacementIcon;\n","import { BrowserNotificationsIcon, WindowPlacementIcon } from '../icon-components';\nimport type { PermissionNames, PermissionStep } from './types';\n\nexport const PERMISSION_STEPS: Record<PermissionNames, PermissionStep> = {\n 'window-management': {\n heading: 'Allow Window Management',\n description: `io.Connect Browser requires permission to arrange windows on your desktop.`,\n guidelines: {\n default: 'To allow window management, click the icon to the left of the address bar.',\n },\n label: 'Allow window management',\n Image: WindowPlacementIcon,\n openPermissionsPrompt: ({ handleDeferredPermission, handlePermissionsPromptClose }) => {\n (window as any)\n .getScreenDetails()\n .catch(async () => {\n const { state } = await navigator.permissions.query({ name: 'window-management' as PermissionName });\n\n if (state === 'prompt') {\n handleDeferredPermission();\n }\n })\n .finally(handlePermissionsPromptClose);\n },\n },\n notifications: {\n heading: 'Allow Browser Notifications',\n description: `io.Connect Browser requires permission to send notifications to the desktop.\n This won't allow any other browser notifications.`,\n guidelines: {\n default: 'To allow browser notifications, click the icon to the left of the address bar.',\n edge: 'To allow browser notifications, click the icon to the left of the address bar, or the \"Bell\" icon to the right of the address bar.',\n },\n label: 'Allow browser notifications',\n Image: BrowserNotificationsIcon,\n openPermissionsPrompt: ({ handleDeferredPermission, handlePermissionsPromptClose }) => {\n Notification.requestPermission()\n .then(async () => {\n const { state } = await navigator.permissions.query({ name: 'notifications' });\n\n if (state === 'prompt') {\n handleDeferredPermission();\n }\n })\n .finally(handlePermissionsPromptClose);\n },\n },\n};\n\nexport const DEFAULT_SETTINGS = {\n edgeNotificationsPermissionTimeout: 15000,\n};\n","import './permissions.scss';\n\ninterface PermissionsCardProps {\n children?: React.ReactNode;\n heading?: string;\n description: string | React.ReactElement;\n Image?: React.ComponentType;\n title?: string;\n}\n\nexport const PermissionsCard = ({ children, description, heading, Image, title }: PermissionsCardProps) => (\n <div className=\"permissions-card\">\n {title && <h1 className=\"permissions-card-title\">{title}</h1>}\n {Image && (\n <div className=\"permissions-card-image\">\n <Image />\n </div>\n )}\n {heading && <h3 className=\"permissions-card-heading\">{heading}</h3>}\n <p className=\"permissions-card-description\">{description}</p>\n {children}\n </div>\n);\n\nexport default PermissionsCard;\n","import classNames from 'classnames';\nimport type { HomePermissionStatus } from '../io-connect-home-provider/types';\nimport { PERMISSION_STEPS } from './constants';\nimport './permissions.scss';\n\ninterface PermissionsListProps {\n isActiveItem?: (name: string) => boolean;\n permissionStatuses: HomePermissionStatus[];\n}\n\nexport const PermissionsList = ({ isActiveItem = () => false, permissionStatuses }: PermissionsListProps) => (\n <ul className=\"permissions-list\">\n {Object.entries(PERMISSION_STEPS).map(([permissionName, permissionStep], index) => {\n const isActive = isActiveItem(permissionName);\n const status = permissionStatuses.find(({ name }) => name === permissionName);\n\n return (\n <li className={classNames('permissions-list-item', isActive && 'active')} key={permissionName}>\n <div>\n {status?.state === 'granted' ? (\n <span className=\"icon-check\" />\n ) : (\n <>\n <span className={isActive ? 'icon-arrow' : ''} />\n <span>{index + 1}.</span>\n </>\n )}\n </div>\n {permissionStep.label}\n </li>\n );\n })}\n </ul>\n);\n\nexport default PermissionsList;\n","import { Button } from 'reactstrap';\nimport { PermissionsCard } from './permissions-card';\nimport { ReopenPromptIcon } from '../icon-components';\n\ninterface SomethingWentWrongProps {\n onReopenPromptClick: () => void;\n}\n\nexport const SomethingWentWrong = ({ onReopenPromptClick }: SomethingWentWrongProps) => {\n const description = (\n <>\n Please, click \"Allow\" when the browser prompt appears.\n <br />\n <strong>\n If a browser prompt doesn't appear, click the icon to the left of the\n <br />\n address bar to manually grant the permission.\n </strong>\n </>\n );\n\n return (\n <PermissionsCard description={description} Image={ReopenPromptIcon} title=\"Something went wrong!\">\n <Button className=\"g42-btn-primary permissions-prompt-button\" onClick={onReopenPromptClick}>\n Reopen the Prompt\n </Button>\n </PermissionsCard>\n );\n};\n","export const PERMISSION_NAMES = ['window-management', 'notifications'] as const;\n","import type { HomePermissionStatus } from './types';\nimport { PERMISSION_NAMES } from './constants';\n\nexport const getPermissionStatuses = (): Promise<HomePermissionStatus[]> => {\n return Promise.all(PERMISSION_NAMES.map((name) => navigator.permissions.query({ name: name as PermissionName }))) as Promise<\n HomePermissionStatus[]\n >;\n};\n","import { createContext, useContext, useEffect, useRef, useState } from 'react';\nimport { getPermissionStatuses } from './helpers';\nimport type { HomePermissionStatus } from './types';\n\ninterface IOConnectHomeProviderProps {\n children: React.ReactNode;\n}\n\nconst IOConnectHomeContext = createContext<\n | {\n permission: {\n isDenied: boolean;\n isLoading: boolean;\n isSetupCompleted: boolean;\n statuses: HomePermissionStatus[];\n };\n }\n | undefined\n>(undefined);\n\nexport const useIOConnectHome = () => {\n const context = useContext(IOConnectHomeContext);\n\n if (context === undefined) {\n throw new Error('useIOConnectHome must be used within an IOConnectHomeProvider');\n }\n\n return context;\n};\n\nexport const IOConnectHomeProvider = ({ children }: IOConnectHomeProviderProps) => {\n const [permissionStatuses, setPermissionStatuses] = useState<HomePermissionStatus[]>([]);\n const isPermissionLoading = permissionStatuses.length === 0;\n const permission = {\n isDenied: !isPermissionLoading && permissionStatuses.some(({ state }) => state === 'denied'),\n isLoading: isPermissionLoading,\n isSetupCompleted: !isPermissionLoading && permissionStatuses.every(({ state }) => state === 'granted'),\n statuses: permissionStatuses,\n };\n const isPermissionSetupCompletedRef = useRef(false);\n\n useEffect(() => {\n let isUnsubscribed = false;\n\n const unsubscribeFunctionsPromise = getPermissionStatuses().then((permissionStatuses) => {\n if (isUnsubscribed) {\n return;\n }\n\n setPermissionStatuses(permissionStatuses);\n\n const unsubscribeFunctions: (() => void)[] = [];\n let isReloaded = false;\n\n permissionStatuses.forEach((permissionStatus, index) => {\n const changeListener = (event: Event) => {\n if (isUnsubscribed || !event.target || isReloaded) {\n return;\n }\n\n const permissionStatus = event.target as HomePermissionStatus;\n\n const shouldReload =\n permissionStatus.state === 'prompt' ||\n (permissionStatus.state === 'denied' && isPermissionSetupCompletedRef.current);\n\n if (shouldReload) {\n isReloaded = true;\n return window.location.reload();\n }\n\n setPermissionStatuses((permissions) => [\n ...permissions.slice(0, index),\n permissionStatus,\n ...permissions.slice(index + 1),\n ]);\n };\n\n permissionStatus.addEventListener('change', changeListener);\n\n unsubscribeFunctions.push(() => permissionStatus.removeEventListener('change', changeListener));\n });\n\n return unsubscribeFunctions;\n });\n\n return () => {\n isUnsubscribed = true;\n unsubscribeFunctionsPromise.then((unsubscribeFunctions) => {\n unsubscribeFunctions?.forEach((unsubscribe) => unsubscribe());\n });\n };\n }, []);\n\n useEffect(() => {\n isPermissionSetupCompletedRef.current = permission.isSetupCompleted;\n }, [permission.isSetupCompleted]);\n\n return <IOConnectHomeContext.Provider value={{ permission }}>{children}</IOConnectHomeContext.Provider>;\n};\n","import type { PermissionNames } from './types';\nimport { PERMISSION_STEPS } from './constants';\nimport { PermissionsCard } from './permissions-card';\nimport { WarningIcon } from '../icon-components';\nimport { useBrowser } from '../../hooks';\nimport { useIOConnectHome } from '../io-connect-home-provider/io-connect-home-provider';\n\ninterface UnsuccessfulSetupProps {\n deniedPermissionName?: PermissionNames;\n}\n\nexport const UnsuccessfulSetup = ({ deniedPermissionName }: UnsuccessfulSetupProps) => {\n const { permission } = useIOConnectHome();\n const browser = useBrowser();\n const browserName = browser.name?.toLowerCase() || '';\n const deniedPermissionStatuses = Object.values(permission.statuses).filter(\n (status) => status.name === deniedPermissionName || status.state === 'denied'\n );\n const description = (\n <>\n The current browser settings block critical functionalities of io.Connect Browser.\n <br />\n To enable io.Connect Browser to operate properly, you must grant browser permissions manually.\n </>\n );\n\n return (\n <PermissionsCard description={description} Image={WarningIcon} title=\"Setup Was Unsuccessful\">\n <ul className=\"permissions-guidelines-list\">\n {deniedPermissionStatuses.map((status, index) => (\n <li key={index}>\n {PERMISSION_STEPS[status.name].guidelines[browserName] || PERMISSION_STEPS[status.name].guidelines.default}\n </li>\n ))}\n </ul>\n </PermissionsCard>\n );\n};\n\nexport default UnsuccessfulSetup;\n","import { useEffect, useState } from 'react';\nimport { useBrowser } from '../../hooks';\nimport { useIOConnectHome } from '../io-connect-home-provider/io-connect-home-provider';\n\nexport const useEdgeNotificationsPermission = ({\n edgeNotificationsPermissionTimeout,\n isNotificationsPermissionPromptOpen,\n}: {\n edgeNotificationsPermissionTimeout: number;\n isNotificationsPermissionPromptOpen: boolean;\n}): { hasEdgeNotificationsPermissionError: boolean } => {\n const { name: browserName } = useBrowser();\n const { permission } = useIOConnectHome();\n const [hasEdgeNotificationsPermissionError, setHasEdgeNotificationsPermissionError] = useState(false);\n\n useEffect(() => {\n if (!isNotificationsPermissionPromptOpen || browserName !== 'Edge') {\n return;\n }\n\n const timerId = setTimeout(() => setHasEdgeNotificationsPermissionError(true), edgeNotificationsPermissionTimeout);\n\n return () => clearTimeout(timerId);\n }, [browserName, edgeNotificationsPermissionTimeout, isNotificationsPermissionPromptOpen]);\n\n useEffect(() => {\n if (!hasEdgeNotificationsPermissionError) {\n return;\n }\n\n const isNotificationsPermissionGranted = permission.statuses.some(\n ({ name, state }) => name === 'notifications' && state === 'granted'\n );\n\n if (isNotificationsPermissionGranted) {\n setHasEdgeNotificationsPermissionError(false);\n }\n }, [hasEdgeNotificationsPermissionError, permission.statuses]);\n\n return {\n hasEdgeNotificationsPermissionError,\n };\n};\n","import { useState } from 'react';\nimport { Button } from 'reactstrap';\nimport { PERMISSION_STEPS } from './constants';\nimport { PermissionsCard } from './permissions-card';\nimport { PermissionsList } from './permissions-list';\nimport { SomethingWentWrong } from './something-went-wrong';\nimport { UnsuccessfulSetup } from './unsuccessful-setup';\nimport { useEdgeNotificationsPermission } from './use-edge-notifications-permission';\nimport { useIOConnectHome } from '../io-connect-home-provider/io-connect-home-provider';\nimport './permissions.scss';\n\ninterface PermissionStepsProps {\n settings: { edgeNotificationsPermissionTimeout: number };\n}\n\nexport const PermissionSteps = ({ settings }: PermissionStepsProps) => {\n const { permission } = useIOConnectHome();\n const [somethingWentWrong, setSomethingWentWrong] = useState(false);\n const [isPermissionsPromptOpen, setIsPermissionsPromptOpen] = useState(false);\n const pendingPermission = permission.statuses.find(({ state }) => state === 'prompt');\n const { hasEdgeNotificationsPermissionError } = useEdgeNotificationsPermission({\n edgeNotificationsPermissionTimeout: settings.edgeNotificationsPermissionTimeout,\n isNotificationsPermissionPromptOpen: isPermissionsPromptOpen && pendingPermission?.name === 'notifications',\n });\n\n if (!pendingPermission || permission.isDenied) {\n throw new Error(\n 'The \"PermissionSteps\" component should not be used in case there is no pending permission or there is a denied permission.'\n );\n }\n\n if (hasEdgeNotificationsPermissionError) {\n return <UnsuccessfulSetup deniedPermissionName=\"notifications\" />;\n }\n\n const step = PERMISSION_STEPS[pendingPermission.name];\n const openPermissionsPrompt = () => {\n setIsPermissionsPromptOpen(true);\n step.openPermissionsPrompt({\n handleDeferredPermission: () => setSomethingWentWrong(true),\n handlePermissionsPromptClose: () => setIsPermissionsPromptOpen(false),\n });\n };\n const handleReopenPromptClick = () => {\n setSomethingWentWrong(false);\n openPermissionsPrompt();\n };\n\n return somethingWentWrong ? (\n <SomethingWentWrong onReopenPromptClick={handleReopenPromptClick} />\n ) : (\n <PermissionsCard description={step.description} heading={step.heading} Image={step.Image} title=\"First-Time User Setup\">\n <PermissionsList isActiveItem={(name) => name === pendingPermission.name} permissionStatuses={permission.statuses} />\n <p className=\"mb-12 description\">Click \"Allow\" when the prompt appears.</p>\n <Button\n className=\"g42-btn-primary permissions-prompt-button\"\n disabled={isPermissionsPromptOpen}\n onClick={openPermissionsPrompt}\n >\n Open Permission Prompt\n </Button>\n {isPermissionsPromptOpen && <span className=\"loader\" />}\n </PermissionsCard>\n );\n};\n\nexport default PermissionSteps;\n","import { PermissionSteps } from './permissions-steps';\nimport { UnsuccessfulSetup } from './unsuccessful-setup';\nimport { useIOConnectHome } from '../io-connect-home-provider/io-connect-home-provider';\nimport './permissions.scss';\n\ninterface PermissionsSetupFlowProps {\n settings: { edgeNotificationsPermissionTimeout: number };\n}\n\nexport const PermissionsSetupFlow = ({ settings }: PermissionsSetupFlowProps) => {\n const { permission } = useIOConnectHome();\n\n if (permission.isLoading) {\n return (\n <>\n <div className=\"mb-32\">Checking browser permissions ...</div>\n <div className=\"loader\" />\n </>\n );\n }\n\n if (permission.isDenied) {\n return <UnsuccessfulSetup />;\n }\n\n return <PermissionSteps settings={settings} />;\n};\n","import { DEFAULT_SETTINGS } from './constants';\nimport { LoginLogo } from '../login/login-logo';\nimport { PermissionsSetupFlow } from './permissions-setup-flow';\nimport './permissions.scss';\n\ninterface PermissionsSetupProps {\n components?: {\n Logo?: React.ComponentType<{ className?: string }>;\n };\n settings?: {\n edgeNotificationsPermissionTimeout?: number;\n };\n}\n\nexport const PermissionsSetup = ({ components: { Logo = LoginLogo } = {}, settings = {} }: PermissionsSetupProps) => (\n <div className=\"permissions-setup\">\n <div className=\"permissions-wrapper\">\n <Logo className=\"mb-32\" />\n <PermissionsSetupFlow settings={{ ...DEFAULT_SETTINGS, ...settings }} />\n </div>\n </div>\n);\n\nexport default PermissionsSetup;\n"],"names":["fromEntries","entries","acc","_ref","key","value","useIsomorphicLayoutEffect","React","top","bottom","right","left","auto","basePlacements","start","end","clippingParents","viewport","popper","reference","variationPlacements","placement","placements","beforeRead","read","afterRead","beforeMain","main","afterMain","beforeWrite","write","afterWrite","modifierPhases","getNodeName","element","getWindow","node","ownerDocument","isElement","OwnElement","isHTMLElement","isShadowRoot","applyStyles","state","name","style","attributes","effect","_ref2","initialStyles","styleProperties","property","attribute","applyStyles$1","getBasePlacement","max","min","round","getUAString","uaData","item","isLayoutViewport","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","visualViewport","addVisualOffsets","x","y","width","height","getLayoutRect","contains","parent","child","rootNode","next","getComputedStyle","isTableElement","getDocumentElement","getParentNode","getTrueOffsetParent","getContainingBlock","isFirefox","isIE","elementCss","currentNode","css","getOffsetParent","window","offsetParent","getMainAxisFromPlacement","within","mathMax","mathMin","withinMaxClamp","v","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","keys","hashMap","toPaddingObject","padding","arrow","_state$modifiersData$","options","arrowElement","popperOffsets","basePlacement","axis","isVertical","len","arrowRect","minProp","maxProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","center","offset","axisProp","_options$element","arrow$1","getVariation","unsetSides","roundOffsetsByDPR","win","dpr","mapToStyles","_Object$assign2","popperRect","variation","offsets","position","gpuAcceleration","adaptive","roundOffsets","isFixed","_offsets$x","_offsets$y","_ref3","hasX","hasY","sideX","sideY","heightProp","widthProp","offsetY","offsetX","commonStyles","_ref4","_Object$assign","computeStyles","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","transitionProperty","computeStyles$1","passive","instance","_options$scroll","scroll","_options$resize","resize","scrollParents","scrollParent","eventListeners","hash","getOppositePlacement","matched","getOppositeVariationPlacement","getWindowScroll","scrollLeft","scrollTop","getWindowScrollBarX","getViewportRect","strategy","html","layoutViewport","getDocumentRect","_element$ownerDocumen","winScroll","body","isScrollParent","_getComputedStyle","overflow","overflowX","overflowY","getScrollParent","listScrollParents","list","isBody","target","updatedList","rectToClientRect","rect","getInnerBoundingClientRect","getClientRectFromMixedType","clippingParent","getClippingParents","canEscapeClipping","clipperElement","getClippingRect","boundary","rootBoundary","mainClippingParents","firstClippingParent","clippingRect","accRect","computeOffsets","commonX","commonY","mainAxis","detectOverflow","_options","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","multiply","computeAutoPlacement","flipVariations","_options$allowedAutoP","allowedAutoPlacements","allPlacements","allowedPlacements","overflows","a","b","getExpandedFallbackPlacements","oppositePlacement","flip","_options$mainAxis","checkMainAxis","_options$altAxis","checkAltAxis","specifiedFallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","fallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","i","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","_i","fittingPlacement","_ret","flip$1","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","hide","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","hide$1","distanceAndSkiddingToXY","rects","invertDistance","skidding","distance","_options$offset","data","_data$state$placement","offset$1","popperOffsets$1","getAltAxis","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","altAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","clientOffset","offsetModifierValue","tetherMin","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_offset","_len","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","preventOverflow$1","getHTMLElementScroll","getNodeScroll","isElementScaled","getCompositeRect","elementOrVirtualElement","isOffsetParentAnElement","offsetParentIsScaled","documentElement","order","modifiers","map","visited","result","modifier","sort","requires","dep","depModifier","orderModifiers","orderedModifiers","phase","debounce","fn","pending","resolve","format","str","args","_key","p","c","INVALID_MODIFIER_ERROR","MISSING_DEPENDENCY_ERROR","VALID_PROPERTIES","validateModifiers","index","self","s","requirement","mod","uniqueBy","arr","identifiers","identifier","mergeByName","merged","current","existing","INVALID_ELEMENT_ERROR","INFINITE_LOOP_ERROR","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","m","flipModifier","marginTop","marginRight","marginBottom","marginLeft","margin","runModifierEffects","_state$elements","__debug_loops__","_state$orderedModifie","_state$orderedModifie2","_ref3$options","cleanupFn","noopFn","createPopper","hasElementType","hasMap","hasSet","hasArrayBuffer","equal","length","it","reactFastCompare","error","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","prevOptions","optionsWithDefaults","_React$useState","setState","updateStateModifier","elements","ReactDOM","popperOptions","newOptions","isEqual","popperInstanceRef","defaultCreatePopper","popperInstance","hasOwn","classNames","classes","arg","argType","inner","module","isClickKeypress","event","onClickA11y","clickHandler","keydownHandler","keyboardNavigation","currentIndex","moveFocus","onClose","Icon","forwardRef","props","ref","size","className","handleClick","rest","jsx","ContextMenu","actions","onActionItemClick","itemRefs","useRef","focusedItemIndex","setFocusedItemIndex","useState","newIndex","useEffect","action","DropdownButton","iconName","iconSize","isTabStop","showContextMenu","setShowContextMenu","setReferenceElement","setPopperElement","styles","handleBlur","handleIconClick","prevValue","handleActionItemClick","jsxs","Fragment","isSection","ITEM_TYPES","APPLICATION_ACTIONS","WORKSPACE_ACTIONS","generateItems","items","newItem","path","separator","currentFolder","nestedFolders","sectionIndex","section","getApplicationsSectionConfig","applications","runningInstances","application","ImgIcon","alt","BaseSectionHeader","iconSrc","title","domProps","useApplications","setApplications","io","useContext","IOConnectContext","unsubscribeOnAppAdded","addedApplication","prevApplications","unsubscribeOnAppChanged","changedApplication","unsubscribeOnAppRemoved","removedApplication","unsubscribeFns","unsubscribeFn","useApplicationsInstances","setRunningInstances","unsubscribeOnInstanceStarted","startedInstance","prevRunningInstances","appCurrentRunningInstances","unsubscribeOnInstanceStopped","stoppedInstance","instanceId","SELECTED_LAYOUT_SESSION_STORAGE_KEY","FAVORITE_ENTITIES_LOCAL_STORAGE_KEY","useStorage","type","decoder","storedValue","setStoredValue","customEventType","eventHandler","setValue","useCallback","decoderResult","valueToStore","ok","err","asPromise","r","withDefault","defaultValue","withException","f","map2","ar","br","mapError","andThen","__assign","n","__rest","e","t","isJsonArray","json","isJsonObject","typeString","expectedGot","expected","got","printPath","paths","prependAt","newAt","_a","at","Decoder","decode","_this","test","errorMessage","decoders","obj","decodeValue_1","err$$1","nth","ad","bd","ds","errors","errorsList","jsonAtPath","fixedValue","mkDecoder","string","boolean","object","array","optional","nonEmptyStringDecoder","contextMenuActionDecoder","favoriteEntityDecoder","favoriteEntitiesStorageValueDecoder","useFavoriteEntities","favoriteEntitiesStoredValue","setFavoriteEntitiesStoredValue","favoriteEntities","useMemo","isOpen","existingEntity","entity","entitiesToStore","id","useFrame","currentFrame","setCurrentFrame","frameID","getFrameId","useInvokeInteropMethod","method","useLayouts","layouts","setLayouts","isUnsubscribed","unsubscribeOnAdded","addedLayout","unsubscribeOnRemoved","removedLayout","layout","useNotifications","notifications","setNotifications","unsubscribeOnRaised","raisedNotification","unsubscribeOnClosed","closedNotification","notification","SEVERITY_ORDER","SEVERITY_COLORS","SORT_KEY","DEFAULT_SORT","sortByTimestamp","descending","sortBySeverity","defaultSeverity","aSeverity","bSeverity","sortExecutors","useNotificationsSort","setSort","sortedNotifications","usePressedKeys","pressedKeys","setPressedKeys","onKeyDown","onKeyUp","onBlur","MODIFIER_KEYS","useRestoreWorkspace","frame","restoreOptions","useRestoreLayout","onSuccessfulLayoutRestore","useSearch","searchTerm","resultsToRender","setResultsToRender","isLoading","setIsLoading","queryRef","ioSearch","currentResults","query","unsubscribeOnResults","response","queryResult","unsubscribeOnCompleted","unsubscribeOnError","useStartApplication","selectedWorkspace","workspace","outermostChild","useWorkspaces","workspaces","setWorkspaces","unsubscribeOnSaved","promise","useWorkspacesInstances","unsubscribeArr","unsubscribeOnAdd","workspaceId","updated","unsubscribe","handleOpenInNewWindow","config","handleOpenInNewWorkspace","builderConfig","builder","applicationActionExecutors","useExecuteApplicationAction","actionName","handleOpenInNewFrame","handleDelete","removeFavorite","workspaceActionExecutors","useExecuteWorkspaceAction","handleSetAsDefault","setDefaultLayout","layoutActionExecutors","useExecuteLayoutAction","undefined","LIBVERSION","EMPTY","UNKNOWN","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","UA_MAX_LENGTH","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","EDGE","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","MAC_OS","extend","regexes","extensions","mergedRegexes","enumerize","enums","has","str1","str2","lowerize","majorize","version","trim","rgxMapper","ua","arrays","j","k","q","matches","match","regex","strMapper","oldSafariMap","windowsVersionMap","UAParser","_navigator","_ua","_uach","_rgxmap","_isSelfNav","_browser","_cpu","_device","_engine","_os","exports","$","parser","prop","this","uaParser","useBrowser","BaseSectionItem","isFavoritismEnabled","onClick","focused","toggleFavorite","description","icon","contextMenuActions","isFavorite","layoutStorageValueDecoder","DEFAULT_SYSTEM_LAYOUT","DEFAULT_DISPLAY_COUNT","useSetUpLayouts","defaultLayoutState","setDefaultLayoutState","selectedLayout","setSelectedLayout","layoutsSetupInitiated","restoreLayout","defaultGlobalLayout","LaunchpadAPIContext","createContext","useLaunchpadAPI","context","LaunchpadAPIProvider","children","setOpen","defaultLayout","launchpadAPI","BaseSection","level","onItemClick","page","setPage","displayCount","pressedKey","liRefs","sectionItemsToShow","nonSectionItemsToShow","handleShowMoreClick","previousPage","idx","getItemName","getClickedItem","clickedItemName","buildItemsMapping","mapping","SectionContext","useSection","SectionProvider","clickData","setClickData","Section","handleItemClick","_","params","selectedContextMenuActionName","clickedItem","ApplicationsSection","startApplication","executeApplicationAction","Button","color","ButtonGroup","button","btnRest","getFavoritesSectionConfig","favorites","FavoritesSection","ProfileIcon","initials","SettingsCard","themes","setThemes","allThemes","handleThemeChange","displayName","SupportCard","links","onLogout","handleLogout","getInitials","ProfileDetailsCard","user","ProfileSettings","SearchBar","onSearch","onClear","getSearchResultsSectionConfigs","results","searchResultsSections","SearchResults","invokeInteropMethod","restoreWorkspace","configs","executeWorkspaceAction","executeSelectedAction","execute","mainAction","contextMenuAction","getWorkspacesSectionConfig","WorkspacesSection","d","g","h","w","z","u","A","reactIs_production_min","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","isValidElementType","typeOf","$$typeof","$$typeofType","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","ForwardRef","Lazy","Memo","Portal","Profiler","StrictMode","Suspense","hasWarnedAboutDeprecatedIsAsyncMode","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isFragment","isLazy","isMemo","isPortal","isProfiler","isStrictMode","isSuspense","reactIs_development","require$$0","require$$1","getOwnPropertySymbols","hasOwnProperty","propIsEnumerable","toObject","val","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","source","from","to","symbols","ReactPropTypesSecret","ReactPropTypesSecret_1","printWarning","loggedTypeFailures","text","message","checkPropTypes","typeSpecs","values","location","componentName","getStack","typeSpecName","ex","stack","checkPropTypes_1","ReactIs","assign","require$$2","require$$3","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","iteratorFn","ANONYMOUS","ReactPropTypes","createPrimitiveTypeChecker","createAnyTypeChecker","createArrayOfTypeChecker","createElementTypeChecker","createElementTypeTypeChecker","createInstanceTypeChecker","createNodeChecker","createObjectOfTypeChecker","createEnumTypeChecker","createUnionTypeChecker","createShapeTypeChecker","createStrictShapeTypeChecker","is","PropTypeError","createChainableTypeChecker","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","propName","propFullName","secret","cacheKey","chainedCheckType","expectedType","propValue","propType","getPropType","preciseType","getPreciseType","typeChecker","expectedClass","expectedClassName","actualClassName","getClassName","expectedValues","valuesString","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","expectedTypesMessage","isNode","invalidValidatorError","shapeTypes","allKeys","iterator","step","entry","isSymbol","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","propTypesModule","_typeof","globalCssModule","mapToCssModules","cssModule","omit","omitKeys","pick","pickKeys","warned","warnOnce","DOMElement","PropTypes","tagPropType","TransitionTimeouts","TransitionPropTypeKeys","TransitionStatuses","_excluded","_extends","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","propTypes","defaultProps","CloseButton","variant","innerRef","active","ariaLabel","block","close","outline","Tag","btnOutlineColor","_setPrototypeOf","o","_inheritsLoose","subClass","superClass","setPrototypeOf","config$1","timeoutsShape","TransitionGroupContext","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","_React$Component","parentGroup","appear","initialStatus","prevState","nextIn","_proto","prevProps","nextStatus","status","timeout","exit","enter","mounting","_this2","appearing","maybeNode","maybeAppearing","timeouts","enterTimeout","_this3","nextState","callback","_this4","handler","doesNotHaveTimeoutOrListener","maybeNextCallback","_this$props","childProps","pt","noop","Transition$1","_transitionStatusToCl","_classCallCheck","Constructor","_defineProperties","descriptor","_createClass","protoProps","staticProps","_inherits","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","Super","_getPrototypeOf","NewTarget","_possibleConstructorReturn","call","_assertThisInitialized","ownKeys","enumerableOnly","sym","_objectSpread","_defineProperty","transitionStatusToClassHash","getTransitionClass","Collapse","_Component","_super","isAppearing","horizontal","navbar","otherProps","dimension","transitionProps","collapseClass","Component","Collapse$1","Form","Form$1","FormGroup","row","disabled","inline","floating","switchProp","formCheck","Input","bsSize","valid","invalid","tag","addon","plaintext","checkInput","isNotaNumber","textareaInput","selectInput","rangeInput","formControlClass","Input$1","NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING","LAYOUT_ACTIONS_NAMES","createLayoutContextMenuActions","createActionClickHandler","AvailableLayouts","executeLayoutAction","LayoutActions","inputValue","setNotification","label","LayoutsNotification","LayoutsPanel","footerRef","show","setShow","setInputValue","timerId","onSelectedLayoutClick","formatDate","timestamp","date","hours","minutes","seconds","amPm","month","day","year","Notification","severity","clearNotification","handleNotificationClick","actionItems","NotificationsBadge","notificationsCount","NotificationsIcon","NotificationsPanel","onNotificationsSort","clearAllNotifications","Dialog","closeFn","open","showCloseButton","dialogRef","Launchpad","components","setSearchTerm","notificationDialogOpen","setNotificationDialogOpen","profileDialogOpen","setProfileDialogOpen","searchInputRef","handleSearch","handleClear","sections","SearchResultsSection","LoginForm","email","password","canSubmit","onSubmit","onChange","handleKeyUp","LoginHeading","LOGO_WIDTH","LoginLogo","logoSrc","emailReducer","isValid","validationError","passwordReducer","Login","onLogin","loginErrorMessage","formIsValid","setFormIsValid","emailState","dispatchEmail","useReducer","passwordState","dispatchPassword","emailValid","passwordValid","timer","dispatch","handleChange","handleSubmit","Logo","Heading","LoginLoader","LoginAuth0","IOConnectLogo","SlidePanel","wrapperRef","logoContainerRef","handleMouseup","isOutsideClick","LaunchpadSlidePanel","BrowserNotificationsIcon","ReopenPromptIcon","WarningIcon","WindowPlacementIcon","PERMISSION_STEPS","handleDeferredPermission","handlePermissionsPromptClose","DEFAULT_SETTINGS","PermissionsCard","heading","Image","PermissionsList","isActiveItem","permissionStatuses","permissionName","permissionStep","isActive","SomethingWentWrong","onReopenPromptClick","PERMISSION_NAMES","getPermissionStatuses","IOConnectHomeContext","useIOConnectHome","IOConnectHomeProvider","setPermissionStatuses","isPermissionLoading","permission","isPermissionSetupCompletedRef","unsubscribeFunctionsPromise","unsubscribeFunctions","isReloaded","permissionStatus","changeListener","permissions","UnsuccessfulSetup","deniedPermissionName","browserName","deniedPermissionStatuses","useEdgeNotificationsPermission","edgeNotificationsPermissionTimeout","isNotificationsPermissionPromptOpen","hasEdgeNotificationsPermissionError","setHasEdgeNotificationsPermissionError","PermissionSteps","settings","somethingWentWrong","setSomethingWentWrong","isPermissionsPromptOpen","setIsPermissionsPromptOpen","pendingPermission","openPermissionsPrompt","handleReopenPromptClick","PermissionsSetupFlow","PermissionsSetup"],"mappings":"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"}