@interopio/home-ui-react 1.2.0 → 1.2.1

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.
package/index.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../../../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/constants/sortOrder.ts","../../../packages/home-ui-react/src/helpers/sort.ts","../../../packages/home-ui-react/src/lib/applications-section/helpers.ts","../../../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/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","../../../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","../../../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-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","../../../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","../../../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/login/constants.ts","../../../packages/home-ui-react/src/lib/login/login-logo.tsx","../../../packages/home-ui-react/src/lib/info-card/info-card.tsx","../../../packages/home-ui-react/src/lib/icon-components/browser-notifications-icon.tsx","../../../packages/home-ui-react/src/lib/icon-components/google-chrome-icon.tsx","../../../packages/home-ui-react/src/lib/icon-components/microsoft-edge-icon.tsx","../../../packages/home-ui-react/src/lib/icon-components/opera-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/browser-not-supported/constants.ts","../../../packages/home-ui-react/src/lib/info-page-container/info-page-container.tsx","../../../packages/home-ui-react/src/lib/browser-not-supported/additional-information.tsx","../../../packages/home-ui-react/src/lib/browser-not-supported/browser-not-supported.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/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","../../../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js","../../../packages/home-ui-react/src/lib/permissions-setup/constants.ts","../../../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/permissions-setup/unsuccessful-setup.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/use-edge-notifications-permission.ts","../../../packages/home-ui-react/src/lib/loader/loader.tsx","../../../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","../../../packages/home-ui-react/src/lib/login/logout-page.tsx","../../../packages/home-ui-react/src/lib/login/auth0/auth0-login-form.tsx","../../../packages/home-ui-react/src/lib/login/login-heading.tsx","../../../packages/home-ui-react/src/lib/login/verifying-credentials.tsx","../../../packages/home-ui-react/src/lib/login/auth0/auth0-login-page.tsx","../../../packages/home-ui-react/src/lib/login/simple/reducers.ts","../../../packages/home-ui-react/src/lib/login/simple/simple-login-form.tsx","../../../packages/home-ui-react/src/lib/login/simple/simple-login-page.tsx","../../../packages/home-ui-react/src/decoders/user.ts","../../../packages/home-ui-react/src/lib/home-app-workspace/workspace-logo.tsx","../../../packages/home-ui-react/src/lib/home-app-workspace/workspace-components-context.tsx","../../../packages/home-ui-react/src/lib/home-app-workspace/home-app-workspace-logo-area.tsx","../../../packages/home-ui-react/src/lib/home-app-workspace/home-app-workspace.tsx","../../../packages/home-ui-react/src/lib/io-connect-home/helpers.ts","../../../packages/home-ui-react/src/lib/io-connect-home/simple-login-home.tsx","../../../packages/home-ui-react/src/lib/io-connect-home/auth0-login-home.tsx","../../../packages/home-ui-react/src/lib/io-connect-home/no-login-home.tsx","../../../packages/home-ui-react/src/decoders/config.ts","../../../packages/home-ui-react/src/lib/io-connect-home/home-app.tsx","../../../packages/home-ui-react/src/hooks/useIsBrowserSupported.ts","../../../packages/home-ui-react/src/lib/io-connect-home/io-connect-home.tsx","../../../packages/home-ui-react/src/helpers/string.ts","../../../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","../../../packages/home-ui-react/src/lib/launchpad/default-sections.tsx","../../../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/user-panel/user-details-card.tsx","../../../packages/home-ui-react/src/lib/user-panel/settings-card.tsx","../../../packages/home-ui-react/src/lib/user-panel/support-card.tsx","../../../packages/home-ui-react/src/lib/user-panel/user-panel.tsx","../../../packages/home-ui-react/src/lib/user-panel/user-panel-icon.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/logo/logo.tsx","../../../packages/home-ui-react/src/lib/panels/slide-panel.tsx","../../../packages/home-ui-react/src/lib/panels/launchpad-slide-panel.tsx"],"sourcesContent":["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","export const SORT_ORDER = {\n ASCENDING: 'ascending',\n DESCENDING: 'descending',\n DISABLED: 'disabled',\n} as const;\n","import { SORT_ORDER } from '../constants/sortOrder';\nimport { FavoriteEntity, SortCompareFunction, SortOrder } from '../common/types';\nimport { Workspace } from '../lib/workspaces-section/types';\n\nexport const collator = new Intl.Collator(undefined, {\n sensitivity: 'base',\n});\n\nexport const ascendingTitleCompare: SortCompareFunction<FavoriteEntity | Workspace> = (a, b) =>\n collator.compare(a.title, b.title);\n\nexport const descendingTitleCompare: SortCompareFunction<FavoriteEntity | Workspace> = (a, b) =>\n collator.compare(b.title, a.title);\n\nexport const sortItems = <Type>(config: {\n items: Type[];\n sortOrder: SortOrder;\n ascendingCompare: SortCompareFunction<Type>;\n descendingCompare: SortCompareFunction<Type>;\n}): Type[] => {\n const { items, sortOrder, ascendingCompare, descendingCompare } = config;\n\n if (sortOrder === SORT_ORDER.DISABLED) {\n return items;\n }\n\n const compareFunction = sortOrder === SORT_ORDER.ASCENDING ? ascendingCompare : descendingCompare;\n\n return [...items].sort(compareFunction);\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 { ApplicationsSectionProps } from './types';\nimport { SortCompareFunction } from '../../common/types';\nimport { APPLICATION_ACTIONS } from '../context-menu/constants';\nimport { SORT_ORDER } from '../../constants/sortOrder';\nimport { collator, sortItems } from '../../helpers/sort';\n\nconst generateItems = (\n items: SectionType['items'],\n newItem: SectionItemType,\n path: string,\n settings: ApplicationsSectionProps\n): SectionType['items'] => {\n const { isFolderCollapsible, ...rest } = settings;\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), settings) : [newItem],\n isCollapsible: isFolderCollapsible,\n ...rest,\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), settings)\n : [...section.items, newItem],\n },\n ...items.slice(sectionIndex + 1),\n ];\n};\n\nconst getTitle = (application: IOConnectBrowser.AppManager.Application): string => application.title || application.name;\n\nconst generateFullPath = (application: IOConnectBrowser.AppManager.Application) => {\n const title = getTitle(application);\n const folder = application.userProperties.folder;\n\n return folder ? `${folder}/${title}` : title;\n};\n\nconst ascendingApplicationsCompare: SortCompareFunction<IOConnectBrowser.AppManager.Application> = (a, b) =>\n collator.compare(generateFullPath(a), generateFullPath(b));\n\nconst descendingApplicationsCompare: SortCompareFunction<IOConnectBrowser.AppManager.Application> = (a, b) =>\n collator.compare(generateFullPath(b), generateFullPath(a));\n\nexport const getApplicationsSectionConfig = (\n applications: IOConnectBrowser.AppManager.Application[],\n runningInstances: {\n [appName: string]: string[];\n },\n settings: ApplicationsSectionProps\n): SectionType => {\n const { isSectionCollapsible, sortOrder = SORT_ORDER.ASCENDING, ...rest } = settings;\n\n const sortedApplications = sortItems({\n items: applications,\n sortOrder,\n ascendingCompare: ascendingApplicationsCompare,\n descendingCompare: descendingApplicationsCompare,\n });\n\n const items = sortedApplications.reduce((items, application) => {\n const item: SectionItemType = {\n id: application.name,\n title: getTitle(application),\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, settings) : [...items, item];\n }, [] as SectionType['items']);\n\n return {\n id: 'applications-section',\n title: 'All Applications',\n items,\n isCollapsible: isSectionCollapsible,\n ...rest,\n };\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';\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 isOpen?: boolean;\n showCollapseIcon?: boolean;\n showHoverIndicator?: boolean;\n}\n\nexport const BaseSectionHeader = (props: BaseSectionHeaderProps) => {\n const {\n className,\n iconSrc,\n iconName = 'folder',\n title,\n isOpen,\n showCollapseIcon,\n showHoverIndicator = false,\n ...domProps\n } = props;\n\n return (\n <h4 className={classNames(className, 'io-list-header')} data-testid=\"base-section-header\" {...domProps}>\n {showHoverIndicator && <Icon size={8} name=\"\" />}\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 {showCollapseIcon && (\n <Icon className={classNames(!isOpen && 'collapsed')} name=\"chevron-down\" size={14} data-testid=\"collapse-icon\" />\n )}\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 = 'interopio_home_ui_selected_layout';\nexport const FAVORITE_ENTITIES_LOCAL_STORAGE_KEY = 'interopio_home_ui_favorite_entities';\nexport const USER_LOCAL_STORAGE_KEY = 'interopio_home_ui_user';\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, anyJson, fail, number, string } from 'decoder-validate';\n\nexport const nonEmptyStringDecoder: Decoder<string> = string().where((s) => s.length > 0, 'Expected a non-empty string');\n\nexport const nonNegativeNumberDecoder: Decoder<number> = number().where((num) => num >= 0, 'Expected a non-negative number');\n\nexport const functionCheck = (input: any, propDescription: string): Decoder<any> => {\n const providedType = typeof input;\n\n return providedType === 'function'\n ? anyJson()\n : fail(`The provided argument as ${propDescription} should be of type function, provided: ${typeof providedType}`);\n};\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 : [item, ...favoriteEntities];\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 * 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};","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, 'io-dropdown-panel')}\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('io-list-item', action.disabled && 'disabled')}\n {...onClickA11y((event) => onActionItemClick(event, action))}\n ref={(element) => (itemRefs.current[index] = element)}\n tabIndex={-1}\n data-testid={`context-menu-item-${action.name}`}\n >\n <span className=\"io-list-title\">{action.displayName || action.name}</span>\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 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, 'io-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=\"io-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=\"io-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","/** @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 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; }\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};\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 }, _objectSpread({\n 'aria-label': 'close'\n }, attributes)));\n}\nCloseButton.propTypes = propTypes;\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};\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 _props$color = props.color,\n color = _props$color === void 0 ? 'secondary' : _props$color,\n outline = props.outline,\n size = props.size,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'button' : _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;\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 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 _this$props$tag = _this$props.tag,\n Tag = _this$props$tag === void 0 ? 'form' : _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;\nexport default Form;","var _excluded = [\"className\", \"cssModule\", \"row\", \"disabled\", \"check\", \"inline\", \"floating\", \"noMargin\", \"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 noMargin: PropTypes.bool,\n disabled: PropTypes.bool,\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\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 noMargin = props.noMargin,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _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' : false, switchProp ? 'form-switch' : false, formCheck || noMargin ? false : 'mb-3', 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;\nexport default FormGroup;","import { useEffect, useState, 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';\nimport { Collapse } from 'reactstrap';\n\nexport interface 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 { isCollapsible, showAllItems, displayCount = DEFAULT_DISPLAY_COUNT } = config;\n const launchpadAPI = useLaunchpadAPI();\n const pressedKey = usePressedKeys();\n const [page, setPage] = useState(1);\n const [focusedItemIndex, setFocusedItemIndex] = useState(0);\n const [isOpen, setIsOpen] = useState(false);\n const liRefs = useRef<Record<number, HTMLLIElement | null>>({});\n\n const sectionItems = config.items.filter((item) => isSection(item));\n const nonSectionItems = config.items.filter((item) => !isSection(item));\n const nonSectionItemsToShow = showAllItems ? nonSectionItems : nonSectionItems.slice(0, page * displayCount);\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 = [...sectionItems, ...nonSectionItemsToShow];\n\n const moveFocus = (newIndex: number) => {\n (liRefs.current[newIndex]?.querySelector('[tabIndex]') as HTMLElement)?.focus();\n setFocusedItemIndex(newIndex);\n };\n\n const toggleOpen = () => {\n if (!isCollapsible) {\n return;\n }\n\n setIsOpen((isOpen) => !isOpen);\n };\n\n return (\n <li className=\"section\">\n <BaseSectionHeader\n iconSrc={config.iconSrc}\n iconName={config.iconName}\n style={{\n paddingLeft: `${level === 1 ? 4 : (level - 2) * 12 + 6}px`,\n }}\n title={config.title}\n showCollapseIcon={isCollapsible}\n isOpen={isOpen}\n onClick={toggleOpen}\n showHoverIndicator={level !== 1}\n />\n <Collapse isOpen={isCollapsible ? isOpen : true} tag=\"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 === 1 ? 7 : level * 11}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 {!showAllItems && config.items.length - sectionItems.length > displayCount * page && (\n <li data-testid=\"more-li-element\">\n <div\n className=\"io-list-item more\"\n style={{ paddingLeft: `${(level === 1 ? 7 : level * 11) + 8}px` }}\n role=\"button\"\n aria-label=\"More\"\n {...onClickA11y(handleShowMoreClick)}\n >\n <div className=\"io-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 </Collapse>\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\nexport interface 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 { useMemo } from 'react';\nimport { getApplicationsSectionConfig } from './helpers';\nimport Section from '../section/section';\nimport { useExecuteApplicationAction, useApplications, useApplicationsInstances, useStartApplication } from '../../hooks';\nimport type { SectionItemType } from '../section/types';\nimport { ApplicationsSectionProps } from './types';\nimport { PaginationSettings } from '../base-section/types';\n\nexport function ApplicationsSection(props: ApplicationsSectionProps) {\n const { displayCount, isFolderCollapsible, isSectionCollapsible, showAllItems, sortOrder } = props;\n const applications = useApplications();\n const runningInstances = useApplicationsInstances();\n const startApplication = useStartApplication();\n const executeApplicationAction = useExecuteApplicationAction();\n\n const config = useMemo(() => {\n const paginationSettings = {\n displayCount,\n showAllItems,\n } as PaginationSettings;\n\n return getApplicationsSectionConfig(applications, runningInstances, {\n ...paginationSettings,\n isFolderCollapsible,\n isSectionCollapsible,\n sortOrder,\n });\n }, [applications, runningInstances, displayCount, isFolderCollapsible, isSectionCollapsible, showAllItems, sortOrder]);\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","export const LOGO_WIDTH = '256px';\n","import 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 = ({ logoSrc = config.loginPageLogo.value, width = LOGO_WIDTH, className = 'logo' }: LogoProps) => {\n return <img width={width} src={logoSrc} className={className} alt=\"Login logo\" />;\n};\n","import './info-card.scss';\n\ninterface InfoCardProps {\n children?: React.ReactNode;\n heading?: string;\n description: string | React.ReactElement;\n Image?: React.ComponentType;\n title?: string;\n}\n\nexport const InfoCard = ({ children, description, heading, Image, title }: InfoCardProps) => (\n <div className=\"info-card\">\n {title && <h1 className=\"info-card-title\">{title}</h1>}\n {Image && (\n <div className=\"info-card-image\">\n <Image />\n </div>\n )}\n {heading && <h3 className=\"info-card-heading\">{heading}</h3>}\n <p className=\"info-card-description\">{description}</p>\n {children}\n </div>\n);\n\nexport default InfoCard;\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 GoogleChromeIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n fill=\"none\"\n height=\"63\"\n viewBox=\"0 0 63 63\"\n width=\"63\"\n {...props}\n >\n <linearGradient id=\"chrome_a\" gradientUnits=\"userSpaceOnUse\" x1=\"34.9087\" x2=\"7.63224\" y1=\"61.029\" y2=\"13.7847\">\n <stop offset=\"0\" stopColor=\"#1e8e3e\" />\n <stop offset=\"1\" stopColor=\"#34a853\" />\n </linearGradient>\n <linearGradient id=\"chrome_b\" gradientUnits=\"userSpaceOnUse\" x1=\"26.9043\" x2=\"54.1808\" y1=\"63.0788\" y2=\"15.8345\">\n <stop offset=\"0\" stopColor=\"#fcc934\" />\n <stop offset=\"1\" stopColor=\"#fbbc04\" />\n </linearGradient>\n <linearGradient id=\"chrome_c\" gradientUnits=\"userSpaceOnUse\" x1=\"4.22145\" x2=\"58.7745\" y1=\"19.6884\" y2=\"19.6884\">\n <stop offset=\"0\" stopColor=\"#d93025\" />\n <stop offset=\"1\" stopColor=\"#ea4335\" />\n </linearGradient>\n <path\n d=\"m31.499 47.2466c8.6985 0 15.75-7.0515 15.75-15.75s-7.0515-15.75-15.75-15.75-15.75 7.0515-15.75 15.75 7.0515 15.75 15.75 15.75z\"\n fill=\"#fff\"\n />\n <path\n d=\"m17.8591 39.3751-13.63772-23.6212c-2.76527 4.788-4.22118922 10.2197-4.22137998 15.7489s1.45535998 10.961 4.22028998 15.7492c2.76494 4.7882 6.74181 8.7641 11.53071 11.5279 4.7889 2.7637 10.221 4.2179 15.7502 4.2164l13.6377-23.6212v-.0041c-1.3813 2.3954-3.369 4.3848-5.7632 5.7681s-5.1104 2.1118-7.8755 2.1122-5.4816-.7272-7.8762-2.1099c-2.3945-1.3826-4.3829-3.3714-5.7649-5.7663z\"\n fill=\"url(#chrome_a)\"\n />\n <path\n d=\"m45.1379 39.3741-13.6376 23.6212c5.5292.0008 10.9611-1.4542 15.7496-4.2187 4.7885-2.7644 8.7648-6.7408 11.5291-11.5294 2.7642-4.7887 4.219-10.2207 4.2181-15.7499-.001-5.5292-1.4577-10.9606-4.2237-15.7483h-27.2754l-.0034.0021c2.7651-.0014 5.4818.7254 7.8769 2.1071 2.3951 1.3818 4.3841 3.3698 5.767 5.7643 1.3829 2.3944 2.1109 5.1108 2.1109 7.8758-.0001 2.7651-.7283 5.4814-2.1113 7.8758z\"\n fill=\"url(#chrome_b)\"\n />\n <path\n d=\"m31.499 43.9688c6.8863 0 12.4688-5.5825 12.4688-12.4688s-5.5825-12.4688-12.4688-12.4688-12.4687 5.5825-12.4687 12.4688 5.5824 12.4688 12.4687 12.4688z\"\n fill=\"#1a73e8\"\n />\n <path\n d=\"m31.4991 15.75h27.2754c-2.764-4.7888-6.74-8.76553-11.5283-11.53029-4.7883-2.76475-10.2202-4.22010235-15.7494-4.21970992s-10.9608 1.45650992-15.7487 4.22194992c-4.788 2.76543-8.76341 6.74275-11.52666 11.53185l13.63766 23.6212.0035.0019c-1.3837-2.394-2.1127-5.11-2.1136-7.8751s.7264-5.4817 2.1086-7.8765c1.3821-2.3948 3.3706-4.3835 5.7652-5.7659 2.3947-1.3825 5.1112-2.11 7.8763-2.1094z\"\n fill=\"url(#chrome_c)\"\n />\n </svg>\n);\n\nexport default GoogleChromeIcon;\n","export const MicrosoftEdgeIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" {...props}>\n <defs>\n <radialGradient\n id=\"edge_b\"\n cx={161.8}\n cy={68.9}\n r={95.4}\n gradientTransform=\"matrix(1 0 0 -.95 0 248.8)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0.7} stopOpacity={0} />\n <stop offset={0.9} stopOpacity={0.5} />\n <stop offset={1} />\n </radialGradient>\n <radialGradient\n id=\"edge_d\"\n cx={-340.3}\n cy={63}\n r={143.2}\n gradientTransform=\"matrix(.15 -.99 -.8 -.12 176.6 -125.4)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0.8} stopOpacity={0} />\n <stop offset={0.9} stopOpacity={0.5} />\n <stop offset={1} />\n </radialGradient>\n <radialGradient\n id=\"edge_e\"\n cx={113.4}\n cy={570.2}\n r={202.4}\n gradientTransform=\"matrix(-.04 1 2.13 .08 -1179.5 -106.7)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0} stopColor=\"#35c1f1\" />\n <stop offset={0.1} stopColor=\"#34c1ed\" />\n <stop offset={0.2} stopColor=\"#2fc2df\" />\n <stop offset={0.3} stopColor=\"#2bc3d2\" />\n <stop offset={0.7} stopColor=\"#36c752\" />\n </radialGradient>\n <radialGradient\n id=\"edge_f\"\n cx={376.5}\n cy={568}\n r={97.3}\n gradientTransform=\"matrix(.28 .96 .78 -.23 -303.8 -148.5)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0} stopColor=\"#66eb6e\" />\n <stop offset={1} stopColor=\"#66eb6e\" stopOpacity={0} />\n </radialGradient>\n <linearGradient\n id=\"edge_a\"\n x1={63.3}\n x2={241.7}\n y1={84}\n y2={84}\n gradientTransform=\"matrix(1 0 0 -1 0 266)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0} stopColor=\"#0c59a4\" />\n <stop offset={1} stopColor=\"#114a8b\" />\n </linearGradient>\n <linearGradient\n id=\"edge_c\"\n x1={157.3}\n x2={46}\n y1={161.4}\n y2={40.1}\n gradientTransform=\"matrix(1 0 0 -1 0 266)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0} stopColor=\"#1b9de2\" />\n <stop offset={0.2} stopColor=\"#1595df\" />\n <stop offset={0.7} stopColor=\"#0680d7\" />\n <stop offset={1} stopColor=\"#0078d4\" />\n </linearGradient>\n </defs>\n <path\n d=\"M235.7 195.5a93.7 93.7 0 0 1-10.6 4.7 101.9 101.9 0 0 1-35.9 6.4c-47.3 0-88.5-32.5-88.5-74.3a31.5 31.5 0 0 1 16.4-27.3c-42.8 1.8-53.8 46.4-53.8 72.5 0 74 68.1 81.4 82.8 81.4 7.9 0 19.8-2.3 27-4.6l1.3-.4a128.3 128.3 0 0 0 66.6-52.8 4 4 0 0 0-5.3-5.6Z\"\n style={{\n fill: 'url(#edge_a)',\n }}\n transform=\"translate(-4.6 -5)\"\n />\n <path\n d=\"M235.7 195.5a93.7 93.7 0 0 1-10.6 4.7 101.9 101.9 0 0 1-35.9 6.4c-47.3 0-88.5-32.5-88.5-74.3a31.5 31.5 0 0 1 16.4-27.3c-42.8 1.8-53.8 46.4-53.8 72.5 0 74 68.1 81.4 82.8 81.4 7.9 0 19.8-2.3 27-4.6l1.3-.4a128.3 128.3 0 0 0 66.6-52.8 4 4 0 0 0-5.3-5.6Z\"\n style={{\n isolation: 'isolate',\n opacity: 0.35,\n fill: 'url(#edge_b)',\n }}\n transform=\"translate(-4.6 -5)\"\n />\n <path\n d=\"M110.3 246.3A79.2 79.2 0 0 1 87.6 225a80.7 80.7 0 0 1 29.5-120c3.2-1.5 8.5-4.1 15.6-4a32.4 32.4 0 0 1 25.7 13 31.9 31.9 0 0 1 6.3 18.7c0-.2 24.5-79.6-80-79.6-43.9 0-80 41.6-80 78.2a130.2 130.2 0 0 0 12.1 56 128 128 0 0 0 156.4 67 75.5 75.5 0 0 1-62.8-8Z\"\n style={{\n fill: 'url(#edge_c)',\n }}\n transform=\"translate(-4.6 -5)\"\n />\n <path\n d=\"M110.3 246.3A79.2 79.2 0 0 1 87.6 225a80.7 80.7 0 0 1 29.5-120c3.2-1.5 8.5-4.1 15.6-4a32.4 32.4 0 0 1 25.7 13 31.9 31.9 0 0 1 6.3 18.7c0-.2 24.5-79.6-80-79.6-43.9 0-80 41.6-80 78.2a130.2 130.2 0 0 0 12.1 56 128 128 0 0 0 156.4 67 75.5 75.5 0 0 1-62.8-8Z\"\n style={{\n opacity: 0.41,\n fill: 'url(#edge_d)',\n isolation: 'isolate',\n }}\n transform=\"translate(-4.6 -5)\"\n />\n <path\n d=\"M157 153.8c-.9 1-3.4 2.5-3.4 5.6 0 2.6 1.7 5.2 4.8 7.3 14.3 10 41.4 8.6 41.5 8.6a59.6 59.6 0 0 0 30.3-8.3 61.4 61.4 0 0 0 30.4-52.9c.3-22.4-8-37.3-11.3-43.9C228 28.8 182.3 5 132.6 5a128 128 0 0 0-128 126.2c.5-36.5 36.8-66 80-66 3.5 0 23.5.3 42 10a72.6 72.6 0 0 1 30.9 29.3c6.1 10.6 7.2 24.1 7.2 29.5s-2.7 13.3-7.8 19.9Z\"\n style={{\n fill: 'url(#edge_e)',\n }}\n transform=\"translate(-4.6 -5)\"\n />\n <path\n d=\"M157 153.8c-.9 1-3.4 2.5-3.4 5.6 0 2.6 1.7 5.2 4.8 7.3 14.3 10 41.4 8.6 41.5 8.6a59.6 59.6 0 0 0 30.3-8.3 61.4 61.4 0 0 0 30.4-52.9c.3-22.4-8-37.3-11.3-43.9C228 28.8 182.3 5 132.6 5a128 128 0 0 0-128 126.2c.5-36.5 36.8-66 80-66 3.5 0 23.5.3 42 10a72.6 72.6 0 0 1 30.9 29.3c6.1 10.6 7.2 24.1 7.2 29.5s-2.7 13.3-7.8 19.9Z\"\n style={{\n fill: 'url(#edge_f)',\n }}\n transform=\"translate(-4.6 -5)\"\n />\n </svg>\n);\nexport default MicrosoftEdgeIcon;\n","export const OperaIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 75.591 75.591\" {...props}>\n <linearGradient\n id=\"opera_a\"\n x2={1}\n gradientTransform=\"matrix(0 -54.944 -54.944 0 23.62 79.474)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0} stopColor=\"#ff1b2d\" />\n <stop offset={0.3} stopColor=\"#ff1b2d\" />\n <stop offset={0.614} stopColor=\"#ff1b2d\" />\n <stop offset={1} stopColor=\"#a70014\" />\n </linearGradient>\n <linearGradient\n id=\"opera_b\"\n x2={1}\n gradientTransform=\"matrix(0 -48.595 -48.595 0 37.854 76.235)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0} stopColor=\"#9c0000\" />\n <stop offset={0.7} stopColor=\"#ff4b4b\" />\n <stop offset={1} stopColor=\"#ff4b4b\" />\n </linearGradient>\n <path\n fill=\"url(#opera_a)\"\n d=\"M28.346 80.398C12.691 80.398 0 67.707 0 52.052 0 36.85 11.968 24.443 26.996 23.739a28.244 28.244 0 0 1 20.241 7.18c-3.322-2.203-7.207-3.47-11.359-3.47-6.75 0-12.796 3.348-16.862 8.629-3.134 3.7-5.164 9.169-5.302 15.307v1.335c.138 6.137 2.168 11.608 5.302 15.307 4.066 5.28 10.112 8.63 16.862 8.63 4.152 0 8.038-1.269 11.36-3.474a28.239 28.239 0 0 1-18.785 7.215l-.108.001z\"\n transform=\"matrix(1.3333 0 0 -1.3333 0 107.2)\"\n />\n <path\n fill=\"url(#opera_b)\"\n d=\"M19.016 68.025c2.601 3.07 5.96 4.923 9.631 4.923 8.252 0 14.941-9.356 14.941-20.897s-6.69-20.897-14.941-20.897c-3.67 0-7.03 1.85-9.63 4.922 4.066-5.281 10.11-8.63 16.862-8.63 4.152 0 8.036 1.268 11.359 3.472 5.802 5.19 9.455 12.735 9.455 21.133 0 8.397-3.653 15.94-9.453 21.13-3.324 2.206-7.209 3.473-11.361 3.473-6.75 0-12.796-3.348-16.862-8.63\"\n transform=\"matrix(1.3333 0 0 -1.3333 0 107.2)\"\n />\n </svg>\n);\nexport default OperaIcon;\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 { GoogleChromeIcon, MicrosoftEdgeIcon, OperaIcon } from '../icon-components/';\n\nexport const RECOMMENDED_BROWSERS: { name: string; Image: React.ComponentType; url: string }[] = [\n { name: 'Google Chrome', Image: GoogleChromeIcon, url: 'https://www.google.com/chrome/' },\n { name: 'Microsoft Edge', Image: MicrosoftEdgeIcon, url: 'https://www.microsoft.com/en-us/edge/download' },\n { name: 'Opera', Image: OperaIcon, url: 'https://www.opera.com/browsers/opera' },\n];\n","import classNames from 'classnames';\nimport './info-page-container.scss';\n\ninterface InfoPageContainerProps {\n Logo: React.ComponentType<{ className?: string }>;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const InfoPageContainer = ({ className, children, Logo }: InfoPageContainerProps) => {\n return (\n <div className={classNames('info-page-container', className)}>\n <div className=\"info-page-wrapper\">\n <Logo className=\"mb-32\" />\n {children}\n </div>\n </div>\n );\n};\n\nexport default InfoPageContainer;\n","interface AdditionalInformationProps {\n supportEmail?: string;\n}\n\nexport const AdditionalInformation = ({ supportEmail }: AdditionalInformationProps) => (\n <p className=\"additional-information\">\n For more information, visit the io.Connect Browser\n <br />\n <a\n href=\"https://docs.interop.io/browser/getting-started/requirements-compatibility/index.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n documentation\n </a>\n {supportEmail ? (\n <>\n {' or '}\n <a href={`mailto:${supportEmail}?subject=Issue with io.Connect Browser`}>contact us</a>.\n </>\n ) : (\n <>\n {' or our '}\n <a href=\"https://support.interop.io\" target=\"_blank\" rel=\"noopener noreferrer\">\n help center\n </a>\n .\n </>\n )}\n </p>\n);\n\nexport default AdditionalInformation;\n","import { LoginLogo } from '../login/login-logo';\nimport InfoCard from '../info-card/info-card';\nimport { RECOMMENDED_BROWSERS } from './constants';\nimport { useBrowser } from '../../hooks';\nimport InfoPageContainer from '../info-page-container/info-page-container';\nimport AdditionalInformation from './additional-information';\nimport './browser-not-supported.scss';\n\ninterface BrowserNotSupportedProps {\n components?: {\n Logo?: React.ComponentType<{ className?: string }>;\n };\n supportEmail?: string;\n}\n\nexport const BrowserNotSupported = ({ components: { Logo = LoginLogo } = {}, supportEmail }: BrowserNotSupportedProps) => {\n const { name, version } = useBrowser();\n\n const title = 'Hmm... It seems that your browser isn’t supported.';\n const description = `We're sorry, but ${name} ${version} isn’t supported.\n For best experience, we recommend using the latest version of one of the\n following browsers:`;\n\n return (\n <InfoPageContainer className=\"browser-not-supported\" Logo={Logo}>\n <InfoCard title={title} description={description} />\n <ul className=\"browsers-list\">\n {RECOMMENDED_BROWSERS.map(({ Image, name, url }) => {\n return (\n <li key={name} onClick={() => window.open(url, '_blank', 'noopener,noreferrer')}>\n <div className=\"browsers-list-image\">\n <Image />\n </div>\n <div>{name}</div>\n </li>\n );\n })}\n </ul>\n <AdditionalInformation supportEmail={supportEmail} />\n </InfoPageContainer>\n );\n};\n\nexport default BrowserNotSupported;\n","import { HTMLProps } from 'react';\nimport classNames from 'classnames';\n\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, 'io-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('io-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 { DefaultSectionProps, FavoriteEntity } from '../../common/types';\nimport type { SectionType } from '../section/types';\nimport { ascendingTitleCompare, descendingTitleCompare, sortItems } from '../../helpers/sort';\nimport { SORT_ORDER } from '../../constants/sortOrder';\n\nexport const getFavoritesSectionConfig = (favorites: FavoriteEntity[], settings: DefaultSectionProps): SectionType => {\n const { isSectionCollapsible, sortOrder = SORT_ORDER.DISABLED, ...rest } = settings;\n\n const sortedFavorites = sortItems({\n items: favorites,\n sortOrder,\n ascendingCompare: ascendingTitleCompare,\n descendingCompare: descendingTitleCompare,\n });\n\n return {\n id: 'favorites-section',\n title: 'Favorites',\n items: sortedFavorites,\n iconName: 'star',\n isCollapsible: isSectionCollapsible,\n ...rest,\n };\n};\n","import { useMemo } from 'react';\nimport { getFavoritesSectionConfig } from './helpers';\nimport Section from '../section/section';\nimport { useFavoriteEntities } from '../../hooks';\nimport { DefaultSectionProps } from '../../common/types';\nimport { PaginationSettings } from '../base-section/types';\n\nexport const FavoritesSection = (props: DefaultSectionProps) => {\n const { displayCount, isSectionCollapsible, showAllItems, sortOrder } = props;\n const { favoriteEntities } = useFavoriteEntities();\n\n const config = useMemo(() => {\n const paginationSettings = {\n displayCount,\n showAllItems,\n } as PaginationSettings;\n\n return getFavoritesSectionConfig(favoriteEntities, {\n ...paginationSettings,\n isSectionCollapsible,\n sortOrder,\n });\n }, [favoriteEntities, displayCount, isSectionCollapsible, showAllItems, sortOrder]);\n\n return favoriteEntities.length > 0 ? <Section config={config} /> : null;\n};\n\nexport default FavoritesSection;\n","export const PERMISSION_NAMES = {\n WINDOW_MANAGEMENT: 'window-management',\n NOTIFICATIONS: 'notifications',\n} as const;\n","import type { HomePermissionStatus } from './types';\nimport { PERMISSION_NAMES } from './constants';\n\nexport const getPermissionStatuses = (): Promise<HomePermissionStatus[]> => {\n return Promise.all(\n Object.values(PERMISSION_NAMES).map(async (name) => {\n const permission = (await navigator.permissions.query({ name: name as PermissionName })) as HomePermissionStatus;\n\n permission.stableName = name;\n\n return permission;\n })\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()\n .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 .catch(console.warn);\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 React, { createContext, useState, useReducer, useRef, useEffect, useCallback, useMemo, useContext } from 'react';\n\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\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\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 __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\n\nfunction e(e,t){var i={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(i[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(i[o[n]]=e[o[n]]);}return i}var t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function i(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}function o(e,t){return e(t={exports:{}},t.exports),t.exports}var n=o((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){var e=this;this.locked=new Map,this.addToLocked=function(t,i){var o=e.locked.get(t);void 0===o?void 0===i?e.locked.set(t,[]):e.locked.set(t,[i]):void 0!==i&&(o.unshift(i),e.locked.set(t,o));},this.isLocked=function(t){return e.locked.has(t)},this.lock=function(t){return new Promise((function(i,o){e.isLocked(t)?e.addToLocked(t,i):(e.addToLocked(t),i());}))},this.unlock=function(t){var i=e.locked.get(t);if(void 0!==i&&0!==i.length){var o=i.pop();e.locked.set(t,i),void 0!==o&&setTimeout(o,0);}else e.locked.delete(t);};}return e.getInstance=function(){return void 0===e.instance&&(e.instance=new e),e.instance},e}();t.default=function(){return i.getInstance()};}));i(n);var a=i(o((function(e,i){var o=t&&t.__awaiter||function(e,t,i,o){return new(i||(i=Promise))((function(n,a){function s(e){try{c(o.next(e));}catch(e){a(e);}}function r(e){try{c(o.throw(e));}catch(e){a(e);}}function c(e){e.done?n(e.value):new i((function(t){t(e.value);})).then(s,r);}c((o=o.apply(e,t||[])).next());}))},a=t&&t.__generator||function(e,t){var i,o,n,a,s={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return a={next:r(0),throw:r(1),return:r(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function r(a){return function(r){return function(a){if(i)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(i=1,o&&(n=2&a[0]?o.return:a[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,a[1])).done)return n;switch(o=0,n&&(a=[2&a[0],n.value]),a[0]){case 0:case 1:n=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,o=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(n=s.trys,(n=n.length>0&&n[n.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]<n[3])){s.label=a[1];break}if(6===a[0]&&s.label<n[1]){s.label=n[1],n=a;break}if(n&&s.label<n[2]){s.label=n[2],s.ops.push(a);break}n[2]&&s.ops.pop(),s.trys.pop();continue}a=t.call(e,s);}catch(e){a=[6,e],o=0;}finally{i=n=0;}if(5&a[0])throw a[1];return {value:a[0]?a[1]:void 0,done:!0}}([a,r])}}};Object.defineProperty(i,\"__esModule\",{value:!0});var s=\"browser-tabs-lock-key\";function r(e){return new Promise((function(t){return setTimeout(t,e)}))}function c(e){for(var t=\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz\",i=\"\",o=0;o<e;o++){i+=t[Math.floor(Math.random()*t.length)];}return i}var d=function(){function e(){this.acquiredIatSet=new Set,this.id=Date.now().toString()+c(15),this.acquireLock=this.acquireLock.bind(this),this.releaseLock=this.releaseLock.bind(this),this.releaseLock__private__=this.releaseLock__private__.bind(this),this.waitForSomethingToChange=this.waitForSomethingToChange.bind(this),this.refreshLockWhileAcquired=this.refreshLockWhileAcquired.bind(this),void 0===e.waiters&&(e.waiters=[]);}return e.prototype.acquireLock=function(t,i){return void 0===i&&(i=5e3),o(this,void 0,void 0,(function(){var o,n,d,u,l,h;return a(this,(function(a){switch(a.label){case 0:o=Date.now()+c(4),n=Date.now()+i,d=s+\"-\"+t,u=window.localStorage,a.label=1;case 1:return Date.now()<n?[4,r(30)]:[3,8];case 2:return a.sent(),null!==u.getItem(d)?[3,5]:(l=this.id+\"-\"+t+\"-\"+o,[4,r(Math.floor(25*Math.random()))]);case 3:return a.sent(),u.setItem(d,JSON.stringify({id:this.id,iat:o,timeoutKey:l,timeAcquired:Date.now(),timeRefreshed:Date.now()})),[4,r(30)];case 4:return a.sent(),null!==(h=u.getItem(d))&&(h=JSON.parse(h)).id===this.id&&h.iat===o?(this.acquiredIatSet.add(o),this.refreshLockWhileAcquired(d,o),[2,!0]):[3,7];case 5:return e.lockCorrector(),[4,this.waitForSomethingToChange(n)];case 6:a.sent(),a.label=7;case 7:return o=Date.now()+c(4),[3,1];case 8:return [2,!1]}}))}))},e.prototype.refreshLockWhileAcquired=function(e,t){return o(this,void 0,void 0,(function(){var i=this;return a(this,(function(s){return setTimeout((function(){return o(i,void 0,void 0,(function(){var i,o;return a(this,(function(a){switch(a.label){case 0:return [4,n.default().lock(t)];case 1:return a.sent(),this.acquiredIatSet.has(t)?(i=window.localStorage,null===(o=i.getItem(e))?(n.default().unlock(t),[2]):((o=JSON.parse(o)).timeRefreshed=Date.now(),i.setItem(e,JSON.stringify(o)),n.default().unlock(t),this.refreshLockWhileAcquired(e,t),[2])):(n.default().unlock(t),[2])}}))}))}),1e3),[2]}))}))},e.prototype.waitForSomethingToChange=function(t){return o(this,void 0,void 0,(function(){return a(this,(function(i){switch(i.label){case 0:return [4,new Promise((function(i){var o=!1,n=Date.now(),a=!1;function s(){if(a||(window.removeEventListener(\"storage\",s),e.removeFromWaiting(s),clearTimeout(r),a=!0),!o){o=!0;var t=50-(Date.now()-n);t>0?setTimeout(i,t):i();}}window.addEventListener(\"storage\",s),e.addToWaiting(s);var r=setTimeout(s,Math.max(0,t-Date.now()));}))];case 1:return i.sent(),[2]}}))}))},e.addToWaiting=function(t){this.removeFromWaiting(t),void 0!==e.waiters&&e.waiters.push(t);},e.removeFromWaiting=function(t){void 0!==e.waiters&&(e.waiters=e.waiters.filter((function(e){return e!==t})));},e.notifyWaiters=function(){void 0!==e.waiters&&e.waiters.slice().forEach((function(e){return e()}));},e.prototype.releaseLock=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){switch(t.label){case 0:return [4,this.releaseLock__private__(e)];case 1:return [2,t.sent()]}}))}))},e.prototype.releaseLock__private__=function(t){return o(this,void 0,void 0,(function(){var i,o,r;return a(this,(function(a){switch(a.label){case 0:return i=window.localStorage,o=s+\"-\"+t,null===(r=i.getItem(o))?[2]:(r=JSON.parse(r)).id!==this.id?[3,2]:[4,n.default().lock(r.iat)];case 1:a.sent(),this.acquiredIatSet.delete(r.iat),i.removeItem(o),n.default().unlock(r.iat),e.notifyWaiters(),a.label=2;case 2:return [2]}}))}))},e.lockCorrector=function(){for(var t=Date.now()-5e3,i=window.localStorage,o=Object.keys(i),n=!1,a=0;a<o.length;a++){var r=o[a];if(r.includes(s)){var c=i.getItem(r);null!==c&&(void 0===(c=JSON.parse(c)).timeRefreshed&&c.timeAcquired<t||void 0!==c.timeRefreshed&&c.timeRefreshed<t)&&(i.removeItem(r),n=!0);}}n&&e.notifyWaiters();},e.waiters=void 0,e}();i.default=d;})));const s={timeoutInSeconds:60},r={name:\"auth0-spa-js\",version:\"2.0.4\"},c=()=>Date.now();class d extends Error{constructor(e,t){super(t),this.error=e,this.error_description=t,Object.setPrototypeOf(this,d.prototype);}static fromPayload({error:e,error_description:t}){return new d(e,t)}}class u extends d{constructor(e,t,i,o=null){super(e,t),this.state=i,this.appState=o,Object.setPrototypeOf(this,u.prototype);}}class l extends d{constructor(){super(\"timeout\",\"Timeout\"),Object.setPrototypeOf(this,l.prototype);}}class h extends l{constructor(e){super(),this.popup=e,Object.setPrototypeOf(this,h.prototype);}}class p extends d{constructor(e){super(\"cancelled\",\"Popup closed\"),this.popup=e,Object.setPrototypeOf(this,p.prototype);}}class m extends d{constructor(e,t,i){super(e,t),this.mfa_token=i,Object.setPrototypeOf(this,m.prototype);}}class f extends d{constructor(e,t){super(\"missing_refresh_token\",`Missing Refresh Token (audience: '${g(e,[\"default\"])}', scope: '${g(t)}')`),this.audience=e,this.scope=t,Object.setPrototypeOf(this,f.prototype);}}function g(e,t=[]){return e&&!t.includes(e)?e:\"\"}const w=()=>window.crypto,y=()=>{const e=\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~.\";let t=\"\";return Array.from(w().getRandomValues(new Uint8Array(43))).forEach((i=>t+=e[i%e.length])),t},k=e=>btoa(e),b=t=>{var{clientId:i}=t,o=e(t,[\"clientId\"]);return new URLSearchParams((e=>Object.keys(e).filter((t=>void 0!==e[t])).reduce(((t,i)=>Object.assign(Object.assign({},t),{[i]:e[i]})),{}))(Object.assign({client_id:i},o))).toString()},v=e=>(e=>decodeURIComponent(atob(e).split(\"\").map((e=>\"%\"+(\"00\"+e.charCodeAt(0).toString(16)).slice(-2))).join(\"\")))(e.replace(/_/g,\"/\").replace(/-/g,\"+\")),_=async(e,t)=>{const i=await fetch(e,t);return {ok:i.ok,json:await i.json()}},I=async(e,t,i)=>{const o=new AbortController;let n;return t.signal=o.signal,Promise.race([_(e,t),new Promise(((e,t)=>{n=setTimeout((()=>{o.abort(),t(new Error(\"Timeout when executing 'fetch'\"));}),i);}))]).finally((()=>{clearTimeout(n);}))},S=async(e,t,i,o,n,a,s)=>{return r={auth:{audience:t,scope:i},timeout:n,fetchUrl:e,fetchOptions:o,useFormData:s},c=a,new Promise((function(e,t){const i=new MessageChannel;i.port1.onmessage=function(o){o.data.error?t(new Error(o.data.error)):e(o.data),i.port1.close();},c.postMessage(r,[i.port2]);}));var r,c;},T=async(e,t,i,o,n,a,s=1e4)=>n?S(e,t,i,o,s,n,a):I(e,o,s);async function O(t,i){var{baseUrl:o,timeout:n,audience:a,scope:s,auth0Client:c,useFormData:u}=t,l=e(t,[\"baseUrl\",\"timeout\",\"audience\",\"scope\",\"auth0Client\",\"useFormData\"]);const h=u?b(l):JSON.stringify(l);return await async function(t,i,o,n,a,s,r){let c,u=null;for(let e=0;e<3;e++)try{c=await T(t,o,n,a,s,r,i),u=null;break}catch(e){u=e;}if(u)throw u;const l=c.json,{error:h,error_description:p}=l,g=e(l,[\"error\",\"error_description\"]),{ok:w}=c;if(!w){const e=p||`HTTP error. Unable to fetch ${t}`;if(\"mfa_required\"===h)throw new m(h,e,g.mfa_token);if(\"missing_refresh_token\"===h)throw new f(o,n);throw new d(h||\"request_error\",e)}return g}(`${o}/oauth/token`,n,a||\"default\",s,{method:\"POST\",body:h,headers:{\"Content-Type\":u?\"application/x-www-form-urlencoded\":\"application/json\",\"Auth0-Client\":btoa(JSON.stringify(c||r))}},i,u)}const j=(...e)=>{return (t=e.filter(Boolean).join(\" \").trim().split(/\\s+/),Array.from(new Set(t))).join(\" \");var t;};class C{constructor(e,t=\"@@auth0spajs@@\",i){this.prefix=t,this.suffix=i,this.clientId=e.clientId,this.scope=e.scope,this.audience=e.audience;}toKey(){return [this.prefix,this.clientId,this.audience,this.scope,this.suffix].filter(Boolean).join(\"::\")}static fromKey(e){const[t,i,o,n]=e.split(\"::\");return new C({clientId:i,scope:n,audience:o},t)}static fromCacheEntry(e){const{scope:t,audience:i,client_id:o}=e;return new C({scope:t,audience:i,clientId:o})}}class z{set(e,t){localStorage.setItem(e,JSON.stringify(t));}get(e){const t=window.localStorage.getItem(e);if(t)try{return JSON.parse(t)}catch(e){return}}remove(e){localStorage.removeItem(e);}allKeys(){return Object.keys(window.localStorage).filter((e=>e.startsWith(\"@@auth0spajs@@\")))}}class x{constructor(){this.enclosedCache=function(){let e={};return {set(t,i){e[t]=i;},get(t){const i=e[t];if(i)return i},remove(t){delete e[t];},allKeys:()=>Object.keys(e)}}();}}class P{constructor(e,t,i){this.cache=e,this.keyManifest=t,this.nowProvider=i||c;}async setIdToken(e,t,i){var o;const n=this.getIdTokenCacheKey(e);await this.cache.set(n,{id_token:t,decodedToken:i}),await(null===(o=this.keyManifest)||void 0===o?void 0:o.add(n));}async getIdToken(e){const t=await this.cache.get(this.getIdTokenCacheKey(e.clientId));if(!t&&e.scope&&e.audience){const t=await this.get(e);if(!t)return;if(!t.id_token||!t.decodedToken)return;return {id_token:t.id_token,decodedToken:t.decodedToken}}if(t)return {id_token:t.id_token,decodedToken:t.decodedToken}}async get(e,t=0){var i;let o=await this.cache.get(e.toKey());if(!o){const t=await this.getCacheKeys();if(!t)return;const i=this.matchExistingCacheKey(e,t);i&&(o=await this.cache.get(i));}if(!o)return;const n=await this.nowProvider(),a=Math.floor(n/1e3);return o.expiresAt-t<a?o.body.refresh_token?(o.body={refresh_token:o.body.refresh_token},await this.cache.set(e.toKey(),o),o.body):(await this.cache.remove(e.toKey()),void await(null===(i=this.keyManifest)||void 0===i?void 0:i.remove(e.toKey()))):o.body}async set(e){var t;const i=new C({clientId:e.client_id,scope:e.scope,audience:e.audience}),o=await this.wrapCacheEntry(e);await this.cache.set(i.toKey(),o),await(null===(t=this.keyManifest)||void 0===t?void 0:t.add(i.toKey()));}async clear(e){var t;const i=await this.getCacheKeys();i&&(await i.filter((t=>!e||t.includes(e))).reduce((async(e,t)=>{await e,await this.cache.remove(t);}),Promise.resolve()),await(null===(t=this.keyManifest)||void 0===t?void 0:t.clear()));}async wrapCacheEntry(e){const t=await this.nowProvider();return {body:e,expiresAt:Math.floor(t/1e3)+e.expires_in}}async getCacheKeys(){var e;return this.keyManifest?null===(e=await this.keyManifest.get())||void 0===e?void 0:e.keys:this.cache.allKeys?this.cache.allKeys():void 0}getIdTokenCacheKey(e){return new C({clientId:e},\"@@auth0spajs@@\",\"@@user@@\").toKey()}matchExistingCacheKey(e,t){return t.filter((t=>{var i;const o=C.fromKey(t),n=new Set(o.scope&&o.scope.split(\" \")),a=(null===(i=e.scope)||void 0===i?void 0:i.split(\" \"))||[],s=o.scope&&a.reduce(((e,t)=>e&&n.has(t)),!0);return \"@@auth0spajs@@\"===o.prefix&&o.clientId===e.clientId&&o.audience===e.audience&&s}))[0]}}class Z{constructor(e,t){this.storage=e,this.clientId=t,this.storageKey=`a0.spajs.txs.${this.clientId}`,this.transaction=this.storage.get(this.storageKey);}create(e){this.transaction=e,this.storage.save(this.storageKey,e,{daysUntilExpire:1});}get(){return this.transaction}remove(){delete this.transaction,this.storage.remove(this.storageKey);}}const K=e=>\"number\"==typeof e,L=[\"iss\",\"aud\",\"exp\",\"nbf\",\"iat\",\"jti\",\"azp\",\"nonce\",\"auth_time\",\"at_hash\",\"c_hash\",\"acr\",\"amr\",\"sub_jwk\",\"cnf\",\"sip_from_tag\",\"sip_date\",\"sip_callid\",\"sip_cseq_num\",\"sip_via_branch\",\"orig\",\"dest\",\"mky\",\"events\",\"toe\",\"txn\",\"rph\",\"sid\",\"vot\",\"vtm\"],E=e=>{if(!e.id_token)throw new Error(\"ID token is required but missing\");const t=(e=>{const t=e.split(\".\"),[i,o,n]=t;if(3!==t.length||!i||!o||!n)throw new Error(\"ID token could not be decoded\");const a=JSON.parse(v(o)),s={__raw:e},r={};return Object.keys(a).forEach((e=>{s[e]=a[e],L.includes(e)||(r[e]=a[e]);})),{encoded:{header:i,payload:o,signature:n},header:JSON.parse(v(i)),claims:s,user:r}})(e.id_token);if(!t.claims.iss)throw new Error(\"Issuer (iss) claim must be a string present in the ID token\");if(t.claims.iss!==e.iss)throw new Error(`Issuer (iss) claim mismatch in the ID token; expected \"${e.iss}\", found \"${t.claims.iss}\"`);if(!t.user.sub)throw new Error(\"Subject (sub) claim must be a string present in the ID token\");if(\"RS256\"!==t.header.alg)throw new Error(`Signature algorithm of \"${t.header.alg}\" is not supported. Expected the ID token to be signed with \"RS256\".`);if(!t.claims.aud||\"string\"!=typeof t.claims.aud&&!Array.isArray(t.claims.aud))throw new Error(\"Audience (aud) claim must be a string or array of strings present in the ID token\");if(Array.isArray(t.claims.aud)){if(!t.claims.aud.includes(e.aud))throw new Error(`Audience (aud) claim mismatch in the ID token; expected \"${e.aud}\" but was not one of \"${t.claims.aud.join(\", \")}\"`);if(t.claims.aud.length>1){if(!t.claims.azp)throw new Error(\"Authorized Party (azp) claim must be a string present in the ID token when Audience (aud) claim has multiple values\");if(t.claims.azp!==e.aud)throw new Error(`Authorized Party (azp) claim mismatch in the ID token; expected \"${e.aud}\", found \"${t.claims.azp}\"`)}}else if(t.claims.aud!==e.aud)throw new Error(`Audience (aud) claim mismatch in the ID token; expected \"${e.aud}\" but found \"${t.claims.aud}\"`);if(e.nonce){if(!t.claims.nonce)throw new Error(\"Nonce (nonce) claim must be a string present in the ID token\");if(t.claims.nonce!==e.nonce)throw new Error(`Nonce (nonce) claim mismatch in the ID token; expected \"${e.nonce}\", found \"${t.claims.nonce}\"`)}if(e.max_age&&!K(t.claims.auth_time))throw new Error(\"Authentication Time (auth_time) claim must be a number present in the ID token when Max Age (max_age) is specified\");if(null==t.claims.exp||!K(t.claims.exp))throw new Error(\"Expiration Time (exp) claim must be a number present in the ID token\");if(!K(t.claims.iat))throw new Error(\"Issued At (iat) claim must be a number present in the ID token\");const i=e.leeway||60,o=new Date(e.now||Date.now()),n=new Date(0);if(n.setUTCSeconds(t.claims.exp+i),o>n)throw new Error(`Expiration Time (exp) claim error in the ID token; current time (${o}) is after expiration time (${n})`);if(null!=t.claims.nbf&&K(t.claims.nbf)){const e=new Date(0);if(e.setUTCSeconds(t.claims.nbf-i),o<e)throw new Error(`Not Before time (nbf) claim in the ID token indicates that this token can't be used just yet. Current time (${o}) is before ${e}`)}if(null!=t.claims.auth_time&&K(t.claims.auth_time)){const n=new Date(0);if(n.setUTCSeconds(parseInt(t.claims.auth_time)+e.max_age+i),o>n)throw new Error(`Authentication Time (auth_time) claim in the ID token indicates that too much time has passed since the last end-user authentication. Current time (${o}) is after last auth at ${n}`)}if(e.organizationId){if(!t.claims.org_id)throw new Error(\"Organization ID (org_id) claim must be a string present in the ID token\");if(e.organizationId!==t.claims.org_id)throw new Error(`Organization ID (org_id) claim mismatch in the ID token; expected \"${e.organizationId}\", found \"${t.claims.org_id}\"`)}return t};var U=o((function(e,i){var o=t&&t.__assign||function(){return o=Object.assign||function(e){for(var t,i=1,o=arguments.length;i<o;i++)for(var n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},o.apply(this,arguments)};function n(e,t){if(!t)return \"\";var i=\"; \"+e;return !0===t?i:i+\"=\"+t}function a(e,t,i){return encodeURIComponent(e).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\")+\"=\"+encodeURIComponent(t).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent)+function(e){if(\"number\"==typeof e.expires){var t=new Date;t.setMilliseconds(t.getMilliseconds()+864e5*e.expires),e.expires=t;}return n(\"Expires\",e.expires?e.expires.toUTCString():\"\")+n(\"Domain\",e.domain)+n(\"Path\",e.path)+n(\"Secure\",e.secure)+n(\"SameSite\",e.sameSite)}(i)}function s(e){for(var t={},i=e?e.split(\"; \"):[],o=/(%[\\dA-F]{2})+/gi,n=0;n<i.length;n++){var a=i[n].split(\"=\"),s=a.slice(1).join(\"=\");'\"'===s.charAt(0)&&(s=s.slice(1,-1));try{t[a[0].replace(o,decodeURIComponent)]=s.replace(o,decodeURIComponent);}catch(e){}}return t}function r(){return s(document.cookie)}function c(e,t,i){document.cookie=a(e,t,o({path:\"/\"},i));}i.__esModule=!0,i.encode=a,i.parse=s,i.getAll=r,i.get=function(e){return r()[e]},i.set=c,i.remove=function(e,t){c(e,\"\",o(o({},t),{expires:-1}));};}));i(U),U.encode,U.parse,U.getAll;var W=U.get,X=U.set,N=U.remove;const R={get(e){const t=W(e);if(void 0!==t)return JSON.parse(t)},save(e,t,i){let o={};\"https:\"===window.location.protocol&&(o={secure:!0,sameSite:\"none\"}),(null==i?void 0:i.daysUntilExpire)&&(o.expires=i.daysUntilExpire),(null==i?void 0:i.cookieDomain)&&(o.domain=i.cookieDomain),X(e,JSON.stringify(t),o);},remove(e,t){let i={};(null==t?void 0:t.cookieDomain)&&(i.domain=t.cookieDomain),N(e,i);}},V={get(e){const t=R.get(e);return t||R.get(`_legacy_${e}`)},save(e,t,i){let o={};\"https:\"===window.location.protocol&&(o={secure:!0}),(null==i?void 0:i.daysUntilExpire)&&(o.expires=i.daysUntilExpire),(null==i?void 0:i.cookieDomain)&&(o.domain=i.cookieDomain),X(`_legacy_${e}`,JSON.stringify(t),o),R.save(e,t,i);},remove(e,t){let i={};(null==t?void 0:t.cookieDomain)&&(i.domain=t.cookieDomain),N(e,i),R.remove(e,t),R.remove(`_legacy_${e}`,t);}},D={get(e){if(\"undefined\"==typeof sessionStorage)return;const t=sessionStorage.getItem(e);return null!=t?JSON.parse(t):void 0},save(e,t){sessionStorage.setItem(e,JSON.stringify(t));},remove(e){sessionStorage.removeItem(e);}};function J(e,t,i){var o=void 0===t?null:t,n=function(e,t){var i=atob(e);if(t){for(var o=new Uint8Array(i.length),n=0,a=i.length;n<a;++n)o[n]=i.charCodeAt(n);return String.fromCharCode.apply(null,new Uint16Array(o.buffer))}return i}(e,void 0!==i&&i),a=n.indexOf(\"\\n\",10)+1,s=n.substring(a)+(o?\"//# sourceMappingURL=\"+o:\"\"),r=new Blob([s],{type:\"application/javascript\"});return URL.createObjectURL(r)}var F,H,G,M,A=(F=\"Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwohZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQscil7c3VwZXIociksdGhpcy5lcnJvcj10LHRoaXMuZXJyb3JfZGVzY3JpcHRpb249cixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxlLnByb3RvdHlwZSl9c3RhdGljIGZyb21QYXlsb2FkKHtlcnJvcjp0LGVycm9yX2Rlc2NyaXB0aW9uOnJ9KXtyZXR1cm4gbmV3IGUodCxyKX19Y2xhc3MgdCBleHRlbmRzIGV7Y29uc3RydWN0b3IoZSxzKXtzdXBlcigibWlzc2luZ19yZWZyZXNoX3Rva2VuIixgTWlzc2luZyBSZWZyZXNoIFRva2VuIChhdWRpZW5jZTogJyR7cihlLFsiZGVmYXVsdCJdKX0nLCBzY29wZTogJyR7cihzKX0nKWApLHRoaXMuYXVkaWVuY2U9ZSx0aGlzLnNjb3BlPXMsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsdC5wcm90b3R5cGUpfX1mdW5jdGlvbiByKGUsdD1bXSl7cmV0dXJuIGUmJiF0LmluY2x1ZGVzKGUpP2U6IiJ9Y29uc3Qgcz1lPT57dmFye2NsaWVudElkOnR9PWUscj1mdW5jdGlvbihlLHQpe3ZhciByPXt9O2Zvcih2YXIgcyBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHMpJiZ0LmluZGV4T2Yocyk8MCYmKHJbc109ZVtzXSk7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvPTA7Zm9yKHM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtvPHMubGVuZ3RoO28rKyl0LmluZGV4T2Yoc1tvXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsc1tvXSkmJihyW3Nbb11dPWVbc1tvXV0pfXJldHVybiByfShlLFsiY2xpZW50SWQiXSk7cmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXMoKGU9Pk9iamVjdC5rZXlzKGUpLmZpbHRlcigodD0+dm9pZCAwIT09ZVt0XSkpLnJlZHVjZSgoKHQscik9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7W3JdOmVbcl19KSkse30pKShPYmplY3QuYXNzaWduKHtjbGllbnRfaWQ6dH0scikpKS50b1N0cmluZygpfTtsZXQgbz17fTtjb25zdCBuPShlLHQpPT5gJHtlfXwke3R9YDthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoYXN5bmMoe2RhdGE6e3RpbWVvdXQ6ZSxhdXRoOnIsZmV0Y2hVcmw6aSxmZXRjaE9wdGlvbnM6Yyx1c2VGb3JtRGF0YTphfSxwb3J0czpbZl19KT0+e2xldCBwO2NvbnN0e2F1ZGllbmNlOmwsc2NvcGU6dX09cnx8e307dHJ5e2NvbnN0IHI9YT8oZT0+e2NvbnN0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtcyhlKSxyPXt9O3JldHVybiB0LmZvckVhY2goKChlLHQpPT57clt0XT1lfSkpLHJ9KShjLmJvZHkpOkpTT04ucGFyc2UoYy5ib2R5KTtpZighci5yZWZyZXNoX3Rva2VuJiYicmVmcmVzaF90b2tlbiI9PT1yLmdyYW50X3R5cGUpe2NvbnN0IGU9KChlLHQpPT5vW24oZSx0KV0pKGwsdSk7aWYoIWUpdGhyb3cgbmV3IHQobCx1KTtjLmJvZHk9YT9zKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx7cmVmcmVzaF90b2tlbjplfSkpOkpTT04uc3RyaW5naWZ5KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx7cmVmcmVzaF90b2tlbjplfSkpfWxldCBkLGc7ImZ1bmN0aW9uIj09dHlwZW9mIEFib3J0Q29udHJvbGxlciYmKGQ9bmV3IEFib3J0Q29udHJvbGxlcixjLnNpZ25hbD1kLnNpZ25hbCk7dHJ5e2c9YXdhaXQgUHJvbWlzZS5yYWNlKFsoaD1lLG5ldyBQcm9taXNlKChlPT5zZXRUaW1lb3V0KGUsaCkpKSksZmV0Y2goaSxPYmplY3QuYXNzaWduKHt9LGMpKV0pfWNhdGNoKGUpe3JldHVybiB2b2lkIGYucG9zdE1lc3NhZ2Uoe2Vycm9yOmUubWVzc2FnZX0pfWlmKCFnKXJldHVybiBkJiZkLmFib3J0KCksdm9pZCBmLnBvc3RNZXNzYWdlKHtlcnJvcjoiVGltZW91dCB3aGVuIGV4ZWN1dGluZyAnZmV0Y2gnIn0pO3A9YXdhaXQgZy5qc29uKCkscC5yZWZyZXNoX3Rva2VuPygoKGUsdCxyKT0+e29bbih0LHIpXT1lfSkocC5yZWZyZXNoX3Rva2VuLGwsdSksZGVsZXRlIHAucmVmcmVzaF90b2tlbik6KChlLHQpPT57ZGVsZXRlIG9bbihlLHQpXX0pKGwsdSksZi5wb3N0TWVzc2FnZSh7b2s6Zy5vayxqc29uOnB9KX1jYXRjaChlKXtmLnBvc3RNZXNzYWdlKHtvazohMSxqc29uOntlcnJvcjplLmVycm9yLGVycm9yX2Rlc2NyaXB0aW9uOmUubWVzc2FnZX19KX12YXIgaH0pKX0oKTsKCg==\",H=null,G=!1,function(e){return M=M||J(F,H,G),new Worker(M,e)});const Y={};class B{constructor(e,t){this.cache=e,this.clientId=t,this.manifestKey=this.createManifestKeyFrom(this.clientId);}async add(e){var t;const i=new Set((null===(t=await this.cache.get(this.manifestKey))||void 0===t?void 0:t.keys)||[]);i.add(e),await this.cache.set(this.manifestKey,{keys:[...i]});}async remove(e){const t=await this.cache.get(this.manifestKey);if(t){const i=new Set(t.keys);return i.delete(e),i.size>0?await this.cache.set(this.manifestKey,{keys:[...i]}):await this.cache.remove(this.manifestKey)}}get(){return this.cache.get(this.manifestKey)}clear(){return this.cache.remove(this.manifestKey)}createManifestKeyFrom(e){return `@@auth0spajs@@::${e}`}}const $={memory:()=>(new x).enclosedCache,localstorage:()=>new z},q=e=>$[e],Q=t=>{const{openUrl:i,onRedirect:o}=t,n=e(t,[\"openUrl\",\"onRedirect\"]);return Object.assign(Object.assign({},n),{openUrl:!1===i||i?i:o})},ee=new a;class te{constructor(e){let t,i;if(this.userCache=(new x).enclosedCache,this.defaultOptions={authorizationParams:{scope:\"openid profile email\"},useRefreshTokensFallback:!1,useFormData:!0},this._releaseLockOnPageHide=async()=>{await ee.releaseLock(\"auth0.lock.getTokenSilently\"),window.removeEventListener(\"pagehide\",this._releaseLockOnPageHide);},this.options=Object.assign(Object.assign(Object.assign({},this.defaultOptions),e),{authorizationParams:Object.assign(Object.assign({},this.defaultOptions.authorizationParams),e.authorizationParams)}),\"undefined\"!=typeof window&&(()=>{if(!w())throw new Error(\"For security reasons, `window.crypto` is required to run `auth0-spa-js`.\");if(void 0===w().subtle)throw new Error(\"\\n auth0-spa-js must run on a secure origin. See https://github.com/auth0/auth0-spa-js/blob/master/FAQ.md#why-do-i-get-auth0-spa-js-must-run-on-a-secure-origin for more information.\\n \")})(),e.cache&&e.cacheLocation&&console.warn(\"Both `cache` and `cacheLocation` options have been specified in the Auth0Client configuration; ignoring `cacheLocation` and using `cache`.\"),e.cache)i=e.cache;else {if(t=e.cacheLocation||\"memory\",!q(t))throw new Error(`Invalid cache location \"${t}\"`);i=q(t)();}this.httpTimeoutMs=e.httpTimeoutInSeconds?1e3*e.httpTimeoutInSeconds:1e4,this.cookieStorage=!1===e.legacySameSiteCookie?R:V,this.orgHintCookieName=`auth0.${this.options.clientId}.organization_hint`,this.isAuthenticatedCookieName=(e=>`auth0.${e}.is.authenticated`)(this.options.clientId),this.sessionCheckExpiryDays=e.sessionCheckExpiryDays||1;const o=e.useCookiesForTransactions?this.cookieStorage:D;var n;this.scope=j(\"openid\",this.options.authorizationParams.scope,this.options.useRefreshTokens?\"offline_access\":\"\"),this.transactionManager=new Z(o,this.options.clientId),this.nowProvider=this.options.nowProvider||c,this.cacheManager=new P(i,i.allKeys?void 0:new B(i,this.options.clientId),this.nowProvider),this.domainUrl=(n=this.options.domain,/^https?:\\/\\//.test(n)?n:`https://${n}`),this.tokenIssuer=((e,t)=>e?e.startsWith(\"https://\")?e:`https://${e}/`:`${t}/`)(this.options.issuer,this.domainUrl),\"undefined\"!=typeof window&&window.Worker&&this.options.useRefreshTokens&&\"memory\"===t&&(this.worker=new A);}_url(e){const t=encodeURIComponent(btoa(JSON.stringify(this.options.auth0Client||r)));return `${this.domainUrl}${e}&auth0Client=${t}`}_authorizeUrl(e){return this._url(`/authorize?${b(e)}`)}async _verifyIdToken(e,t,i){const o=await this.nowProvider();return E({iss:this.tokenIssuer,aud:this.options.clientId,id_token:e,nonce:t,organizationId:i,leeway:this.options.leeway,max_age:(n=this.options.authorizationParams.max_age,\"string\"!=typeof n?n:parseInt(n,10)||void 0),now:o});var n;}_processOrgIdHint(e){e?this.cookieStorage.save(this.orgHintCookieName,e,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}):this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain});}async _prepareAuthorizeUrl(e,t,i){const o=k(y()),n=k(y()),a=y(),s=(e=>{const t=new Uint8Array(e);return (e=>{const t={\"+\":\"-\",\"/\":\"_\",\"=\":\"\"};return e.replace(/[+/=]/g,(e=>t[e]))})(window.btoa(String.fromCharCode(...Array.from(t))))})(await(async e=>{const t=w().subtle.digest({name:\"SHA-256\"},(new TextEncoder).encode(e));return await t})(a)),r=((e,t,i,o,n,a,s,r)=>Object.assign(Object.assign(Object.assign({client_id:e.clientId},e.authorizationParams),i),{scope:j(t,i.scope),response_type:\"code\",response_mode:r||\"query\",state:o,nonce:n,redirect_uri:s||e.authorizationParams.redirect_uri,code_challenge:a,code_challenge_method:\"S256\"}))(this.options,this.scope,e,o,n,s,e.redirect_uri||this.options.authorizationParams.redirect_uri||i,null==t?void 0:t.response_mode),c=this._authorizeUrl(r);return {nonce:n,code_verifier:a,scope:r.scope,audience:r.audience||\"default\",redirect_uri:r.redirect_uri,state:o,url:c}}async loginWithPopup(e,t){var i;if(e=e||{},!(t=t||{}).popup&&(t.popup=(e=>{const t=window.screenX+(window.innerWidth-400)/2,i=window.screenY+(window.innerHeight-600)/2;return window.open(e,\"auth0:authorize:popup\",`left=${t},top=${i},width=400,height=600,resizable,scrollbars=yes,status=1`)})(\"\"),!t.popup))throw new Error(\"Unable to open a popup for loginWithPopup - window.open returned `null`\");const o=await this._prepareAuthorizeUrl(e.authorizationParams||{},{response_mode:\"web_message\"},window.location.origin);t.popup.location.href=o.url;const n=await(e=>new Promise(((t,i)=>{let o;const n=setInterval((()=>{e.popup&&e.popup.closed&&(clearInterval(n),clearTimeout(a),window.removeEventListener(\"message\",o,!1),i(new p(e.popup)));}),1e3),a=setTimeout((()=>{clearInterval(n),i(new h(e.popup)),window.removeEventListener(\"message\",o,!1);}),1e3*(e.timeoutInSeconds||60));o=function(s){if(s.data&&\"authorization_response\"===s.data.type){if(clearTimeout(a),clearInterval(n),window.removeEventListener(\"message\",o,!1),e.popup.close(),s.data.response.error)return i(d.fromPayload(s.data.response));t(s.data.response);}},window.addEventListener(\"message\",o);})))(Object.assign(Object.assign({},t),{timeoutInSeconds:t.timeoutInSeconds||this.options.authorizeTimeoutInSeconds||60}));if(o.state!==n.state)throw new Error(\"Invalid state\");const a=(null===(i=e.authorizationParams)||void 0===i?void 0:i.organization)||this.options.authorizationParams.organization;await this._requestToken({audience:o.audience,scope:o.scope,code_verifier:o.code_verifier,grant_type:\"authorization_code\",code:n.code,redirect_uri:o.redirect_uri},{nonceIn:o.nonce,organizationId:a});}async getUser(){var e;const t=await this._getIdTokenFromCache();return null===(e=null==t?void 0:t.decodedToken)||void 0===e?void 0:e.user}async getIdTokenClaims(){var e;const t=await this._getIdTokenFromCache();return null===(e=null==t?void 0:t.decodedToken)||void 0===e?void 0:e.claims}async loginWithRedirect(t={}){var i;const o=Q(t),{openUrl:n,fragment:a,appState:s}=o,r=e(o,[\"openUrl\",\"fragment\",\"appState\"]),c=(null===(i=r.authorizationParams)||void 0===i?void 0:i.organization)||this.options.authorizationParams.organization,d=await this._prepareAuthorizeUrl(r.authorizationParams||{}),{url:u}=d,l=e(d,[\"url\"]);this.transactionManager.create(Object.assign(Object.assign(Object.assign({},l),{appState:s}),c&&{organizationId:c}));const h=a?`${u}#${a}`:u;n?await n(h):window.location.assign(h);}async handleRedirectCallback(e=window.location.href){const t=e.split(\"?\").slice(1);if(0===t.length)throw new Error(\"There are no query params available for parsing.\");const{state:i,code:o,error:n,error_description:a}=(e=>{e.indexOf(\"#\")>-1&&(e=e.substring(0,e.indexOf(\"#\")));const t=new URLSearchParams(e);return {state:t.get(\"state\"),code:t.get(\"code\")||void 0,error:t.get(\"error\")||void 0,error_description:t.get(\"error_description\")||void 0}})(t.join(\"\")),s=this.transactionManager.get();if(!s)throw new Error(\"Invalid state\");if(this.transactionManager.remove(),n)throw new u(n,a||n,i,s.appState);if(!s.code_verifier||s.state&&s.state!==i)throw new Error(\"Invalid state\");const r=s.organizationId,c=s.nonce,d=s.redirect_uri;return await this._requestToken(Object.assign({audience:s.audience,scope:s.scope,code_verifier:s.code_verifier,grant_type:\"authorization_code\",code:o},d?{redirect_uri:d}:{}),{nonceIn:c,organizationId:r}),{appState:s.appState}}async checkSession(e){if(!this.cookieStorage.get(this.isAuthenticatedCookieName)){if(!this.cookieStorage.get(\"auth0.is.authenticated\"))return;this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this.cookieStorage.remove(\"auth0.is.authenticated\");}try{await this.getTokenSilently(e);}catch(e){}}async getTokenSilently(e={}){var t;const i=Object.assign(Object.assign({cacheMode:\"on\"},e),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),e.authorizationParams),{scope:j(this.scope,null===(t=e.authorizationParams)||void 0===t?void 0:t.scope)})}),o=await((e,t)=>{let i=Y[t];return i||(i=e().finally((()=>{delete Y[t],i=null;})),Y[t]=i),i})((()=>this._getTokenSilently(i)),`${this.options.clientId}::${i.authorizationParams.audience}::${i.authorizationParams.scope}`);return e.detailedResponse?o:null==o?void 0:o.access_token}async _getTokenSilently(t){const{cacheMode:i}=t,o=e(t,[\"cacheMode\"]);if(\"off\"!==i){const e=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||\"default\",clientId:this.options.clientId});if(e)return e}if(\"cache-only\"!==i){if(!await(async(e,t=3)=>{for(let i=0;i<t;i++)if(await e())return !0;return !1})((()=>ee.acquireLock(\"auth0.lock.getTokenSilently\",5e3)),10))throw new l;try{if(window.addEventListener(\"pagehide\",this._releaseLockOnPageHide),\"off\"!==i){const e=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||\"default\",clientId:this.options.clientId});if(e)return e}const e=this.options.useRefreshTokens?await this._getTokenUsingRefreshToken(o):await this._getTokenFromIFrame(o),{id_token:t,access_token:n,oauthTokenScope:a,expires_in:s}=e;return Object.assign(Object.assign({id_token:t,access_token:n},a?{scope:a}:null),{expires_in:s})}finally{await ee.releaseLock(\"auth0.lock.getTokenSilently\"),window.removeEventListener(\"pagehide\",this._releaseLockOnPageHide);}}}async getTokenWithPopup(e={},t={}){var i;const o=Object.assign(Object.assign({},e),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),e.authorizationParams),{scope:j(this.scope,null===(i=e.authorizationParams)||void 0===i?void 0:i.scope)})});t=Object.assign(Object.assign({},s),t),await this.loginWithPopup(o,t);return (await this.cacheManager.get(new C({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||\"default\",clientId:this.options.clientId}))).access_token}async isAuthenticated(){return !!await this.getUser()}_buildLogoutUrl(t){null!==t.clientId?t.clientId=t.clientId||this.options.clientId:delete t.clientId;const i=t.logoutParams||{},{federated:o}=i,n=e(i,[\"federated\"]),a=o?\"&federated\":\"\";return this._url(`/v2/logout?${b(Object.assign({clientId:t.clientId},n))}`)+a}async logout(t={}){const i=Q(t),{openUrl:o}=i,n=e(i,[\"openUrl\"]);null===t.clientId?await this.cacheManager.clear():await this.cacheManager.clear(t.clientId||this.options.clientId),this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain}),this.cookieStorage.remove(this.isAuthenticatedCookieName,{cookieDomain:this.options.cookieDomain}),this.userCache.remove(\"@@user@@\");const a=this._buildLogoutUrl(n);o?await o(a):!1!==o&&window.location.assign(a);}async _getTokenFromIFrame(e){const t=Object.assign(Object.assign({},e.authorizationParams),{prompt:\"none\"}),i=this.cookieStorage.get(this.orgHintCookieName);i&&!t.organization&&(t.organization=i);const{url:o,state:n,nonce:a,code_verifier:s,redirect_uri:r,scope:c,audience:u}=await this._prepareAuthorizeUrl(t,{response_mode:\"web_message\"},window.location.origin);try{if(window.crossOriginIsolated)throw new d(\"login_required\",\"The application is running in a Cross-Origin Isolated context, silently retrieving a token without refresh token is not possible.\");const t=e.timeoutInSeconds||this.options.authorizeTimeoutInSeconds,i=await((e,t,i=60)=>new Promise(((o,n)=>{const a=window.document.createElement(\"iframe\");a.setAttribute(\"width\",\"0\"),a.setAttribute(\"height\",\"0\"),a.style.display=\"none\";const s=()=>{window.document.body.contains(a)&&(window.document.body.removeChild(a),window.removeEventListener(\"message\",r,!1));};let r;const c=setTimeout((()=>{n(new l),s();}),1e3*i);r=function(e){if(e.origin!=t)return;if(!e.data||\"authorization_response\"!==e.data.type)return;const i=e.source;i&&i.close(),e.data.response.error?n(d.fromPayload(e.data.response)):o(e.data.response),clearTimeout(c),window.removeEventListener(\"message\",r,!1),setTimeout(s,2e3);},window.addEventListener(\"message\",r,!1),window.document.body.appendChild(a),a.setAttribute(\"src\",e);})))(o,this.domainUrl,t);if(n!==i.state)throw new Error(\"Invalid state\");const h=await this._requestToken(Object.assign(Object.assign({},e.authorizationParams),{code_verifier:s,code:i.code,grant_type:\"authorization_code\",redirect_uri:r,timeout:e.authorizationParams.timeout||this.httpTimeoutMs}),{nonceIn:a});return Object.assign(Object.assign({},h),{scope:c,oauthTokenScope:h.scope,audience:u})}catch(e){throw \"login_required\"===e.error&&this.logout({openUrl:!1}),e}}async _getTokenUsingRefreshToken(e){const t=await this.cacheManager.get(new C({scope:e.authorizationParams.scope,audience:e.authorizationParams.audience||\"default\",clientId:this.options.clientId}));if(!(t&&t.refresh_token||this.worker)){if(this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(e);throw new f(e.authorizationParams.audience||\"default\",e.authorizationParams.scope)}const i=e.authorizationParams.redirect_uri||this.options.authorizationParams.redirect_uri||window.location.origin,o=\"number\"==typeof e.timeoutInSeconds?1e3*e.timeoutInSeconds:null;try{const n=await this._requestToken(Object.assign(Object.assign(Object.assign({},e.authorizationParams),{grant_type:\"refresh_token\",refresh_token:t&&t.refresh_token,redirect_uri:i}),o&&{timeout:o}));return Object.assign(Object.assign({},n),{scope:e.authorizationParams.scope,oauthTokenScope:n.scope,audience:e.authorizationParams.audience||\"default\"})}catch(t){if((t.message.indexOf(\"Missing Refresh Token\")>-1||t.message&&t.message.indexOf(\"invalid refresh token\")>-1)&&this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(e);throw t}}async _saveEntryInCache(t){const{id_token:i,decodedToken:o}=t,n=e(t,[\"id_token\",\"decodedToken\"]);this.userCache.set(\"@@user@@\",{id_token:i,decodedToken:o}),await this.cacheManager.setIdToken(this.options.clientId,t.id_token,t.decodedToken),await this.cacheManager.set(n);}async _getIdTokenFromCache(){const e=this.options.authorizationParams.audience||\"default\",t=await this.cacheManager.getIdToken(new C({clientId:this.options.clientId,audience:e,scope:this.scope})),i=this.userCache.get(\"@@user@@\");return t&&t.id_token===(null==i?void 0:i.id_token)?i:(this.userCache.set(\"@@user@@\",t),t)}async _getEntryFromCache({scope:e,audience:t,clientId:i}){const o=await this.cacheManager.get(new C({scope:e,audience:t,clientId:i}),60);if(o&&o.access_token){const{access_token:e,oauthTokenScope:t,expires_in:i}=o,n=await this._getIdTokenFromCache();return n&&Object.assign(Object.assign({id_token:n.id_token,access_token:e},t?{scope:t}:null),{expires_in:i})}}async _requestToken(e,t){const{nonceIn:i,organizationId:o}=t||{},n=await O(Object.assign({baseUrl:this.domainUrl,client_id:this.options.clientId,auth0Client:this.options.auth0Client,useFormData:this.options.useFormData,timeout:this.httpTimeoutMs},e),this.worker),a=await this._verifyIdToken(n.id_token,i,o);return await this._saveEntryInCache(Object.assign(Object.assign(Object.assign(Object.assign({},n),{decodedToken:a,scope:e.scope,audience:e.audience||\"default\"}),n.scope?{oauthTokenScope:n.scope}:null),{client_id:this.options.clientId})),this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this._processOrgIdHint(a.claims.org_id),Object.assign(Object.assign({},n),{decodedToken:a})}}class ie{}\n\n/**\r\n * The initial auth state.\r\n */\r\nvar initialAuthState = {\r\n isAuthenticated: false,\r\n isLoading: true,\r\n};\n\n/**\r\n * @ignore\r\n */\r\nvar stub = function () {\r\n throw new Error('You forgot to wrap your component in <Auth0Provider>.');\r\n};\r\n/**\r\n * @ignore\r\n */\r\nvar initialContext = __assign(__assign({}, initialAuthState), { buildAuthorizeUrl: stub, buildLogoutUrl: stub, getAccessTokenSilently: stub, getAccessTokenWithPopup: stub, getIdTokenClaims: stub, loginWithRedirect: stub, loginWithPopup: stub, logout: stub, handleRedirectCallback: stub });\r\n/**\r\n * The Auth0 Context\r\n */\r\nvar Auth0Context = createContext(initialContext);\n\n/**\r\n * An OAuth2 error will come from the authorization server and will have at least an `error` property which will\r\n * be the error code. And possibly an `error_description` property\r\n *\r\n * See: https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.3.1.2.6\r\n */\r\nvar OAuthError = /** @class */ (function (_super) {\r\n __extends(OAuthError, _super);\r\n function OAuthError(error, error_description) {\r\n var _this = _super.call(this, error_description || error) || this;\r\n _this.error = error;\r\n _this.error_description = error_description;\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(_this, OAuthError.prototype);\r\n return _this;\r\n }\r\n return OAuthError;\r\n}(Error));\n\nvar CODE_RE = /[?&]code=[^&]+/;\r\nvar STATE_RE = /[?&]state=[^&]+/;\r\nvar ERROR_RE = /[?&]error=[^&]+/;\r\nvar hasAuthParams = function (searchParams) {\r\n if (searchParams === void 0) { searchParams = window.location.search; }\r\n return (CODE_RE.test(searchParams) || ERROR_RE.test(searchParams)) &&\r\n STATE_RE.test(searchParams);\r\n};\r\nvar normalizeErrorFn = function (fallbackMessage) {\r\n return function (error) {\r\n if ('error' in error) {\r\n return new OAuthError(error.error, error.error_description);\r\n }\r\n if (error instanceof Error) {\r\n return error;\r\n }\r\n return new Error(fallbackMessage);\r\n };\r\n};\r\nvar loginError = normalizeErrorFn('Login failed');\r\nvar tokenError = normalizeErrorFn('Get access token failed');\r\n/**\r\n * @ignore\r\n * Helper function to map the v1 `redirectUri` option to the v2 `authorizationParams.redirect_uri`\r\n * and log a warning.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nvar deprecateRedirectUri = function (options) {\r\n var _a;\r\n if (options === null || options === void 0 ? void 0 : options.redirectUri) {\r\n console.warn('Using `redirectUri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `redirectUri` will be no longer supported in a future version');\r\n options.authorizationParams = options.authorizationParams || {};\r\n options.authorizationParams.redirect_uri = options.redirectUri;\r\n delete options.redirectUri;\r\n }\r\n if ((_a = options === null || options === void 0 ? void 0 : options.authorizationParams) === null || _a === void 0 ? void 0 : _a.redirectUri) {\r\n console.warn('Using `authorizationParams.redirectUri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `authorizationParams.redirectUri` will be removed in a future version');\r\n options.authorizationParams.redirect_uri =\r\n options.authorizationParams.redirectUri;\r\n delete options.authorizationParams.redirectUri;\r\n }\r\n};\n\n/**\r\n * Handles how that state changes in the `useAuth0` hook.\r\n */\r\nvar reducer = function (state, action) {\r\n switch (action.type) {\r\n case 'LOGIN_POPUP_STARTED':\r\n return __assign(__assign({}, state), { isLoading: true });\r\n case 'LOGIN_POPUP_COMPLETE':\r\n case 'INITIALISED':\r\n return __assign(__assign({}, state), { isAuthenticated: !!action.user, user: action.user, isLoading: false, error: undefined });\r\n case 'HANDLE_REDIRECT_COMPLETE':\r\n case 'GET_ACCESS_TOKEN_COMPLETE':\r\n if (state.user === action.user) {\r\n return state;\r\n }\r\n return __assign(__assign({}, state), { isAuthenticated: !!action.user, user: action.user });\r\n case 'LOGOUT':\r\n return __assign(__assign({}, state), { isAuthenticated: false, user: undefined });\r\n case 'ERROR':\r\n return __assign(__assign({}, state), { isLoading: false, error: action.error });\r\n }\r\n};\n\n/**\r\n * @ignore\r\n */\r\nvar toAuth0ClientOptions = function (opts) {\r\n deprecateRedirectUri(opts);\r\n return __assign(__assign({}, opts), { auth0Client: {\r\n name: 'auth0-react',\r\n version: '2.0.1',\r\n } });\r\n};\r\n/**\r\n * @ignore\r\n */\r\nvar defaultOnRedirectCallback = function (appState) {\r\n window.history.replaceState({}, document.title, (appState === null || appState === void 0 ? void 0 : appState.returnTo) || window.location.pathname);\r\n};\r\n/**\r\n * ```jsx\r\n * <Auth0Provider\r\n * domain={domain}\r\n * clientId={clientId}\r\n * authorizationParams={{ redirect_uri: window.location.origin }}}>\r\n * <MyApp />\r\n * </Auth0Provider>\r\n * ```\r\n *\r\n * Provides the Auth0Context to its child components.\r\n */\r\nvar Auth0Provider = function (opts) {\r\n var children = opts.children, skipRedirectCallback = opts.skipRedirectCallback, _a = opts.onRedirectCallback, onRedirectCallback = _a === void 0 ? defaultOnRedirectCallback : _a, _b = opts.context, context = _b === void 0 ? Auth0Context : _b, clientOpts = __rest(opts, [\"children\", \"skipRedirectCallback\", \"onRedirectCallback\", \"context\"]);\r\n var client = useState(function () { return new te(toAuth0ClientOptions(clientOpts)); })[0];\r\n var _c = useReducer(reducer, initialAuthState), state = _c[0], dispatch = _c[1];\r\n var didInitialise = useRef(false);\r\n useEffect(function () {\r\n if (didInitialise.current) {\r\n return;\r\n }\r\n didInitialise.current = true;\r\n (function () { return __awaiter(void 0, void 0, void 0, function () {\r\n var user, appState, error_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 7, , 8]);\r\n user = void 0;\r\n if (!(hasAuthParams() && !skipRedirectCallback)) return [3 /*break*/, 3];\r\n return [4 /*yield*/, client.handleRedirectCallback()];\r\n case 1:\r\n appState = (_a.sent()).appState;\r\n return [4 /*yield*/, client.getUser()];\r\n case 2:\r\n user = _a.sent();\r\n onRedirectCallback(appState, user);\r\n return [3 /*break*/, 6];\r\n case 3: return [4 /*yield*/, client.checkSession()];\r\n case 4:\r\n _a.sent();\r\n return [4 /*yield*/, client.getUser()];\r\n case 5:\r\n user = _a.sent();\r\n _a.label = 6;\r\n case 6:\r\n dispatch({ type: 'INITIALISED', user: user });\r\n return [3 /*break*/, 8];\r\n case 7:\r\n error_1 = _a.sent();\r\n dispatch({ type: 'ERROR', error: loginError(error_1) });\r\n return [3 /*break*/, 8];\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n }); })();\r\n }, [client, onRedirectCallback, skipRedirectCallback]);\r\n var loginWithRedirect = useCallback(function (opts) {\r\n deprecateRedirectUri(opts);\r\n return client.loginWithRedirect(opts);\r\n }, [client]);\r\n var loginWithPopup = useCallback(function (options, config) { return __awaiter(void 0, void 0, void 0, function () {\r\n var error_2, user;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n dispatch({ type: 'LOGIN_POPUP_STARTED' });\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, client.loginWithPopup(options, config)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n error_2 = _a.sent();\r\n dispatch({ type: 'ERROR', error: loginError(error_2) });\r\n return [2 /*return*/];\r\n case 4: return [4 /*yield*/, client.getUser()];\r\n case 5:\r\n user = _a.sent();\r\n dispatch({ type: 'LOGIN_POPUP_COMPLETE', user: user });\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); }, [client]);\r\n var logout = useCallback(function (opts) {\r\n if (opts === void 0) { opts = {}; }\r\n return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, client.logout(opts)];\r\n case 1:\r\n _a.sent();\r\n if (opts.openUrl || opts.openUrl === false) {\r\n dispatch({ type: 'LOGOUT' });\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }, [client]);\r\n var getAccessTokenSilently = useCallback(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n function (opts) { return __awaiter(void 0, void 0, void 0, function () {\r\n var token, error_3, _a;\r\n var _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 2, 3, 5]);\r\n return [4 /*yield*/, client.getTokenSilently(opts)];\r\n case 1:\r\n token = _c.sent();\r\n return [3 /*break*/, 5];\r\n case 2:\r\n error_3 = _c.sent();\r\n throw tokenError(error_3);\r\n case 3:\r\n _a = dispatch;\r\n _b = {\r\n type: 'GET_ACCESS_TOKEN_COMPLETE'\r\n };\r\n return [4 /*yield*/, client.getUser()];\r\n case 4:\r\n _a.apply(void 0, [(_b.user = _c.sent(),\r\n _b)]);\r\n return [7 /*endfinally*/];\r\n case 5: return [2 /*return*/, token];\r\n }\r\n });\r\n }); }, [client]);\r\n var getAccessTokenWithPopup = useCallback(function (opts, config) { return __awaiter(void 0, void 0, void 0, function () {\r\n var token, error_4, _a;\r\n var _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 2, 3, 5]);\r\n return [4 /*yield*/, client.getTokenWithPopup(opts, config)];\r\n case 1:\r\n token = _c.sent();\r\n return [3 /*break*/, 5];\r\n case 2:\r\n error_4 = _c.sent();\r\n throw tokenError(error_4);\r\n case 3:\r\n _a = dispatch;\r\n _b = {\r\n type: 'GET_ACCESS_TOKEN_COMPLETE'\r\n };\r\n return [4 /*yield*/, client.getUser()];\r\n case 4:\r\n _a.apply(void 0, [(_b.user = _c.sent(),\r\n _b)]);\r\n return [7 /*endfinally*/];\r\n case 5: return [2 /*return*/, token];\r\n }\r\n });\r\n }); }, [client]);\r\n var getIdTokenClaims = useCallback(function () { return client.getIdTokenClaims(); }, [client]);\r\n var handleRedirectCallback = useCallback(function (url) { return __awaiter(void 0, void 0, void 0, function () {\r\n var error_5, _a;\r\n var _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 2, 3, 5]);\r\n return [4 /*yield*/, client.handleRedirectCallback(url)];\r\n case 1: return [2 /*return*/, _c.sent()];\r\n case 2:\r\n error_5 = _c.sent();\r\n throw tokenError(error_5);\r\n case 3:\r\n _a = dispatch;\r\n _b = {\r\n type: 'HANDLE_REDIRECT_COMPLETE'\r\n };\r\n return [4 /*yield*/, client.getUser()];\r\n case 4:\r\n _a.apply(void 0, [(_b.user = _c.sent(),\r\n _b)]);\r\n return [7 /*endfinally*/];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n }); }, [client]);\r\n var contextValue = useMemo(function () {\r\n return __assign(__assign({}, state), { getAccessTokenSilently: getAccessTokenSilently, getAccessTokenWithPopup: getAccessTokenWithPopup, getIdTokenClaims: getIdTokenClaims, loginWithRedirect: loginWithRedirect, loginWithPopup: loginWithPopup, logout: logout, handleRedirectCallback: handleRedirectCallback });\r\n }, [\r\n state,\r\n getAccessTokenSilently,\r\n getAccessTokenWithPopup,\r\n getIdTokenClaims,\r\n loginWithRedirect,\r\n loginWithPopup,\r\n logout,\r\n handleRedirectCallback,\r\n ]);\r\n return React.createElement(context.Provider, { value: contextValue }, children);\r\n};\n\n/**\r\n * ```js\r\n * const {\r\n * // Auth state:\r\n * error,\r\n * isAuthenticated,\r\n * isLoading,\r\n * user,\r\n * // Auth methods:\r\n * getAccessTokenSilently,\r\n * getAccessTokenWithPopup,\r\n * getIdTokenClaims,\r\n * loginWithRedirect,\r\n * loginWithPopup,\r\n * logout,\r\n * } = useAuth0<TUser>();\r\n * ```\r\n *\r\n * Use the `useAuth0` hook in your components to access the auth state and methods.\r\n *\r\n * TUser is an optional type param to provide a type to the `user` field.\r\n */\r\nvar useAuth0 = function (context) {\r\n if (context === void 0) { context = Auth0Context; }\r\n return useContext(context);\r\n};\n\n/**\r\n * ```jsx\r\n * class MyComponent extends Component {\r\n * render() {\r\n * // Access the auth context from the `auth0` prop\r\n * const { user } = this.props.auth0;\r\n * return <div>Hello {user.name}!</div>\r\n * }\r\n * }\r\n * // Wrap your class component in withAuth0\r\n * export default withAuth0(MyComponent);\r\n * ```\r\n *\r\n * Wrap your class components in this Higher Order Component to give them access to the Auth0Context.\r\n *\r\n * Providing a context as the second argument allows you to configure the Auth0Provider the Auth0Context\r\n * should come from f you have multiple within your application.\r\n */\r\nvar withAuth0 = function (Component, context) {\r\n if (context === void 0) { context = Auth0Context; }\r\n return function WithAuth(props) {\r\n return (React.createElement(context.Consumer, null, function (auth) { return (React.createElement(Component, __assign({}, props, { auth0: auth }))); }));\r\n };\r\n};\n\n/**\r\n * @ignore\r\n */\r\nvar defaultOnRedirecting = function () { return React.createElement(React.Fragment, null); };\r\n/**\r\n * @ignore\r\n */\r\nvar defaultReturnTo = function () {\r\n return \"\".concat(window.location.pathname).concat(window.location.search);\r\n};\r\n/**\r\n * ```js\r\n * const MyProtectedComponent = withAuthenticationRequired(MyComponent);\r\n * ```\r\n *\r\n * When you wrap your components in this Higher Order Component and an anonymous user visits your component\r\n * they will be redirected to the login page and returned to the page they we're redirected from after login.\r\n */\r\nvar withAuthenticationRequired = function (Component, options) {\r\n if (options === void 0) { options = {}; }\r\n return function WithAuthenticationRequired(props) {\r\n var _this = this;\r\n var _a = options.returnTo, returnTo = _a === void 0 ? defaultReturnTo : _a, _b = options.onRedirecting, onRedirecting = _b === void 0 ? defaultOnRedirecting : _b, loginOptions = options.loginOptions, _c = options.context, context = _c === void 0 ? Auth0Context : _c;\r\n var _d = useAuth0(context), isAuthenticated = _d.isAuthenticated, isLoading = _d.isLoading, loginWithRedirect = _d.loginWithRedirect;\r\n useEffect(function () {\r\n if (isLoading || isAuthenticated) {\r\n return;\r\n }\r\n var opts = __assign(__assign({}, loginOptions), { appState: __assign(__assign({}, (loginOptions && loginOptions.appState)), { returnTo: typeof returnTo === 'function' ? returnTo() : returnTo }) });\r\n (function () { return __awaiter(_this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, loginWithRedirect(opts)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); })();\r\n }, [\r\n isLoading,\r\n isAuthenticated,\r\n loginWithRedirect,\r\n loginOptions,\r\n returnTo,\r\n ]);\r\n return isAuthenticated ? React.createElement(Component, __assign({}, props)) : onRedirecting();\r\n };\r\n};\n\nexport { Auth0Context, Auth0Provider, x as InMemoryCache, z as LocalStorageCache, OAuthError, ie as User, initialContext, useAuth0, withAuth0, withAuthenticationRequired };\n//# sourceMappingURL=auth0-react.esm.js.map\n","import { BrowserNotificationsIcon, WindowPlacementIcon } from '../icon-components';\nimport { PERMISSION_NAMES } from '../io-connect-home-provider/constants';\nimport type { PermissionNames } from '../io-connect-home-provider/types';\nimport type { PermissionStep } from './types';\n\nexport const PERMISSION_STEPS: Record<PermissionNames, PermissionStep> = {\n [PERMISSION_NAMES.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: PERMISSION_NAMES.WINDOW_MANAGEMENT as PermissionName });\n\n if (state === 'prompt') {\n handleDeferredPermission();\n }\n })\n .finally(handlePermissionsPromptClose);\n },\n },\n [PERMISSION_NAMES.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: PERMISSION_NAMES.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 classNames from 'classnames';\nimport type { HomePermissionStatus } from '../io-connect-home-provider/types';\nimport { PERMISSION_STEPS } from './constants';\nimport Icon from '../icon/icon';\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(({ stableName }) => stableName === permissionName);\n\n return (\n <li className={classNames('permissions-list-item', isActive && 'active')} key={permissionName}>\n <div>\n {status?.state === 'granted' ? (\n <Icon name=\"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 { InfoCard } from '../info-card/info-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 <InfoCard description={description} Image={ReopenPromptIcon} title=\"Something went wrong!\">\n <Button className=\"io-btn-primary permissions-prompt-button\" onClick={onReopenPromptClick}>\n Reopen the Prompt\n </Button>\n </InfoCard>\n );\n};\n","import type { PermissionNames } from '../io-connect-home-provider/types';\nimport { PERMISSION_STEPS } from './constants';\nimport { InfoCard } from '../info-card/info-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.stableName === 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 <InfoCard 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.stableName].guidelines[browserName] ||\n PERMISSION_STEPS[status.stableName].guidelines.default}\n </li>\n ))}\n </ul>\n </InfoCard>\n );\n};\n\nexport default UnsuccessfulSetup;\n","import { useEffect, useState } from 'react';\nimport { PERMISSION_NAMES } from '../io-connect-home-provider/constants';\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 ({ stableName, state }) => stableName === PERMISSION_NAMES.NOTIFICATIONS && state === 'granted'\n );\n\n if (isNotificationsPermissionGranted) {\n setHasEdgeNotificationsPermissionError(false);\n }\n }, [hasEdgeNotificationsPermissionError, permission.statuses]);\n\n return {\n hasEdgeNotificationsPermissionError,\n };\n};\n","export const Loader = () => {\n return <span className=\"loader\"></span>;\n};\n\nexport default Loader;","import { useState } from 'react';\nimport { Button } from 'reactstrap';\nimport { PERMISSION_STEPS } from './constants';\nimport { InfoCard } from '../info-card/info-card';\nimport { PermissionsList } from './permissions-list';\nimport { PERMISSION_NAMES } from '../io-connect-home-provider/constants';\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 { Loader } from '../loader';\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:\n isPermissionsPromptOpen && pendingPermission?.stableName === PERMISSION_NAMES.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.stableName];\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 <InfoCard description={step.description} heading={step.heading} Image={step.Image} title=\"First-Time User Setup\">\n <PermissionsList\n isActiveItem={(name) => name === pendingPermission.stableName}\n permissionStatuses={permission.statuses}\n />\n <p className=\"mb-12 permissions-prompt-instructions\">Click \"Allow\" when the prompt appears.</p>\n <Button\n className=\"io-btn-primary permissions-prompt-button\"\n disabled={isPermissionsPromptOpen}\n onClick={openPermissionsPrompt}\n >\n Open Permission Prompt\n </Button>\n {isPermissionsPromptOpen && <Loader />}\n </InfoCard>\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 { Loader } from '../loader';\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 <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 InfoPageContainer from '../info-page-container/info-page-container';\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 <InfoPageContainer Logo={Logo}>\n <PermissionsSetupFlow settings={{ ...DEFAULT_SETTINGS, ...settings }} />\n </InfoPageContainer>\n);\n\nexport default PermissionsSetup;\n","import classNames from 'classnames';\nimport { Loader } from '../loader';\nimport { LoginLogo } from './login-logo';\nimport { LoginPageComponents } from './types';\n\ninterface LogoutPageProps {\n components?: LoginPageComponents;\n className?: string;\n}\n\nexport const LogoutPage = ({ components, className }: LogoutPageProps) => {\n const Logo = components?.Logo || LoginLogo;\n\n return (\n <div className=\"logout-backdrop\">\n <div className={classNames(className, 'logout-container flex flex-column ai-center')}>\n <Logo />\n <h1 className=\"text-center mb-8\">Logging out...</h1>\n <Loader />\n </div>\n </div>\n );\n};\n\nexport default LogoutPage;\n","import { Form } from 'reactstrap';\nimport { Button } from '../../button/button';\n\nexport interface Auth0LoginFormProps {\n onLogin: () => void;\n}\n\nexport const Auth0LoginForm = ({ onLogin }: Auth0LoginFormProps) => {\n return (\n <Form>\n <Button onClick={onLogin} className=\"io-btn-primary\">\n Log In\n </Button>\n </Form>\n );\n};\n","export interface LoginHeadingProps {\n className?: string;\n text?: string;\n}\n\nexport const LoginHeading = ({ className = 'text-center mb-3', text = 'Making Your Work Flow' }: LoginHeadingProps) => {\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","import { Loader } from '../loader';\n\nexport const VerifyingCredentials = () => {\n return (\n <>\n <h1 className=\"text-center mb-8\">Verifying credentials...</h1>\n <Loader />\n </>\n );\n};\n","import classNames from 'classnames';\nimport { LoginLogo } from '../login-logo';\nimport { Auth0LoginForm } from './auth0-login-form';\nimport { LoginHeading } from '../login-heading';\nimport { LoginPageComponents } from '../types';\nimport { VerifyingCredentials } from '../verifying-credentials';\n\nexport interface Auth0LoginPageProps {\n className?: string;\n onLogin: () => void;\n isLoading: boolean;\n components?: LoginPageComponents;\n}\n\nexport const Auth0LoginPage = ({ className, onLogin, isLoading, components }: Auth0LoginPageProps) => {\n const Logo = components?.Logo || LoginLogo;\n const Heading = components?.Heading || LoginHeading;\n\n return (\n <div className={classNames(className, 'login-container flex flex-column ai-center')}>\n <Logo />\n {isLoading ? (\n <VerifyingCredentials />\n ) : (\n <>\n <Heading />\n <Auth0LoginForm onLogin={onLogin} />\n </>\n )}\n </div>\n );\n};\n\nexport default Auth0LoginPage;\n","import { LoginFormElementAction, LoginFormElementReducer, LoginFormElementState } from '../types';\n\nexport const inputReducer: LoginFormElementReducer = (_: LoginFormElementState, action: LoginFormElementAction) => {\n const value: string = action.value;\n\n const isValid = value.trim().length > 3;\n\n return { value, isValid };\n};\n","import React, { useReducer, useState } from 'react';\nimport { Button, FormGroup, Form } from 'reactstrap';\nimport classNames from 'classnames';\nimport Icon from '../../icon/icon';\nimport { inputReducer } from './reducers';\nimport { LoginFormElementReducer } from '../types';\n\nexport interface SimpleLoginFormProps {\n onLogin: (user: string, password: string) => Promise<void>;\n userInputName?: string;\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;\n loginError: Error | null;\n setLoginError: React.Dispatch<React.SetStateAction<Error | null>>;\n}\n\nconst SimpleLoginForm = ({ onLogin, setIsLoading, loginError, setLoginError, userInputName }: SimpleLoginFormProps) => {\n const [user, dispatchUser] = useReducer<LoginFormElementReducer>(inputReducer, { value: '', isValid: false });\n const [password, dispatchPassword] = useReducer<LoginFormElementReducer>(inputReducer, { value: '', isValid: false });\n const [showUserError, setShowUserError] = useState<boolean>(false);\n const [showPasswordError, setShowPasswordError] = useState<boolean>(false);\n\n const { isValid: isUserValid } = user;\n const { isValid: isPasswordValid } = password;\n\n const isFormValid = isUserValid && isPasswordValid;\n\n const handleUserChange = (event: React.ChangeEvent<HTMLInputElement>) => dispatchUser({ value: event.target.value });\n\n const handlePasswordChange = (event: React.ChangeEvent<HTMLInputElement>) => dispatchPassword({ value: event.target.value });\n\n const handleUserBlur = () => {\n if (!isUserValid) {\n setShowUserError(true);\n }\n };\n\n const handlePasswordBlur = () => {\n if (!isPasswordValid) {\n setShowPasswordError(true);\n }\n };\n\n const handleSubmit = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n\n if (!isFormValid) {\n return;\n }\n\n setIsLoading(true);\n\n try {\n await onLogin(user.value, password.value);\n } catch (error: any) {\n setLoginError(error);\n }\n\n setIsLoading(false);\n };\n\n return (\n <Form onSubmit={handleSubmit}>\n <FormGroup className=\"io-control-input io-control-error\">\n <input\n autoFocus\n autoComplete=\"off\"\n type=\"text\"\n placeholder={`Enter your ${userInputName ?? 'email'}`}\n value={user.value}\n onChange={handleUserChange}\n onBlur={handleUserBlur}\n onFocus={() => setShowUserError(false)}\n className={classNames('io-input', showUserError && 'input-error')}\n />\n {showUserError && (\n <div>\n <Icon name=\"close\" />\n {`The ${userInputName ?? 'email'} does not meet the length requirements`}\n </div>\n )}\n </FormGroup>\n\n <FormGroup className=\"io-control-input io-control-error\">\n <input\n autoComplete=\"off\"\n type=\"password\"\n placeholder=\"Enter your password\"\n value={password.value}\n onChange={handlePasswordChange}\n onBlur={handlePasswordBlur}\n onFocus={() => setShowPasswordError(false)}\n className={classNames('io-input', showPasswordError && 'input-error')}\n />\n {showPasswordError && (\n <div>\n <Icon name=\"close\" />\n The password does not meet the length requirements\n </div>\n )}\n </FormGroup>\n\n <Button type=\"submit\" className=\"io-btn-primary\">\n Log In\n </Button>\n\n {loginError && (\n <div className=\"pb-2 login-error-feedback\">\n <Icon name=\"close\" />\n <p>{loginError.message}</p>\n </div>\n )}\n </Form>\n );\n};\n\nexport default SimpleLoginForm;\n","import { useState } from 'react';\nimport classNames from 'classnames';\nimport SimpleLoginForm from './simple-login-form';\nimport { LoginHeading } from '../login-heading';\nimport { LoginLogo } from '../login-logo';\nimport { LoginPageComponents } from '../types';\nimport '../login.scss';\nimport { VerifyingCredentials } from '../verifying-credentials';\n\nexport interface SimpleLoginPageProps {\n className?: string;\n onLogin: (user: string, password: string) => Promise<void>;\n userInputName?: string;\n components?: LoginPageComponents;\n}\n\nexport const SimpleLoginPage = ({ className, onLogin, components, userInputName }: SimpleLoginPageProps) => {\n const [isLoading, setIsLoading] = useState(false);\n const [loginError, setLoginError] = useState<Error | null>(null);\n\n const Logo = components?.Logo || LoginLogo;\n const Heading = components?.Heading || LoginHeading;\n\n return (\n <div className={classNames(className, 'login-container simple-login flex flex-column ai-center')}>\n <Logo />\n {isLoading ? (\n <VerifyingCredentials />\n ) : (\n <>\n <Heading />\n <SimpleLoginForm\n onLogin={onLogin}\n setIsLoading={setIsLoading}\n loginError={loginError}\n setLoginError={setLoginError}\n userInputName={userInputName}\n />\n </>\n )}\n </div>\n );\n};\n","import { Decoder, object, optional } from 'decoder-validate';\nimport { User } from '../lib/io-connect-home/types';\nimport { nonEmptyStringDecoder } from './base';\n\nexport const userDecoder: Decoder<User> = object({\n id: nonEmptyStringDecoder,\n username: optional(nonEmptyStringDecoder),\n email: optional(nonEmptyStringDecoder),\n firstName: optional(nonEmptyStringDecoder),\n lastName: optional(nonEmptyStringDecoder),\n avatarUrl: optional(nonEmptyStringDecoder),\n});\n","import { LaunchpadSlidePanel } from '@interopio/home-ui-react';\nimport { LaunchpadConfig, User } from '../io-connect-home/types';\n\nexport interface WorkspaceLogoProps {\n onLogout?: () => void;\n user?: User | null;\n launchpad?: LaunchpadConfig;\n icon?: React.ReactElement;\n}\n\nexport const WorkspaceLogo = (props: WorkspaceLogoProps) => {\n const { onLogout, user, launchpad, icon } = props;\n\n return <LaunchpadSlidePanel user={user} onLogout={onLogout} icon={icon} components={launchpad?.components} />;\n};\n\nexport default WorkspaceLogo;\n","import { createContext, useContext } from 'react';\nimport { WorkspaceLogoProps } from '.';\n\nexport const WorkspaceComponentsContext = createContext<\n | {\n workspaceLogoProps: WorkspaceLogoProps;\n HeaderLogoArea?: React.ComponentType<WorkspaceLogoProps>;\n }\n | undefined\n>(undefined);\n\nexport const useWorkspaceComponentsContext = () => {\n const context = useContext(WorkspaceComponentsContext);\n\n if (context === undefined) {\n throw new Error('useWorkspaceComponentsContext must be used within an WorkspaceComponentsContextProvider');\n }\n\n return context;\n};\n","import { WorkspaceLogo } from './workspace-logo';\nimport { useWorkspaceComponentsContext } from './workspace-components-context';\n\nexport const HomeAppWorkspaceLogoArea = () => {\n const { HeaderLogoArea, workspaceLogoProps } = useWorkspaceComponentsContext();\n\n return HeaderLogoArea ? <HeaderLogoArea {...workspaceLogoProps} /> : <WorkspaceLogo {...workspaceLogoProps} />;\n};\n","import Workspaces from '@interopio/workspaces-ui-react';\nimport { WorkspaceComponentsContext } from './workspace-components-context';\nimport { HomeAppWorkspaceLogoArea } from './home-app-workspace-logo-area';\nimport { User, WorkspacesConfig, LaunchpadConfig } from '../io-connect-home/types';\n\ninterface HomeAppWorkspaceProps {\n onLogout?: () => void;\n user?: User | null;\n workspaces?: WorkspacesConfig;\n launchpad?: LaunchpadConfig;\n}\n\nexport const HomeAppWorkspace = ({ onLogout, user, workspaces, launchpad }: HomeAppWorkspaceProps) => {\n const HeaderLogoArea = workspaces?.HeaderLogoArea;\n const workspaceLogoProps = { onLogout, user, launchpad };\n\n return (\n <WorkspaceComponentsContext.Provider value={{ workspaceLogoProps, HeaderLogoArea }}>\n <Workspaces\n components={{\n ...workspaces?.components,\n header: {\n ...workspaces?.components?.header,\n LogoComponent: HomeAppWorkspaceLogoArea,\n },\n }}\n />\n </WorkspaceComponentsContext.Provider>\n );\n};\n","import { IOConnectInitSettings } from '@interopio/react-hooks';\n\nexport const getIOConnectProviderSettings = (ioConnectConfig: IOConnectInitSettings, username: string) => {\n return {\n ...ioConnectConfig,\n browserPlatform: {\n ...ioConnectConfig.browserPlatform,\n config: {\n ...ioConnectConfig.browserPlatform?.config,\n user: ioConnectConfig.browserPlatform?.config?.user ?? { username },\n },\n },\n } as IOConnectInitSettings;\n};\n","import { useCallback, useState } from 'react';\nimport { IOConnectProvider } from '@interopio/react-hooks';\nimport { useIOConnectHome } from '../io-connect-home-provider/io-connect-home-provider';\nimport PermissionsSetup from '../permissions-setup/permissions-setup';\nimport { SimpleLoginPage, LogoutPage } from '../login';\nimport { userDecoder } from '../../decoders/user';\nimport { HomeAppWorkspace } from '../home-app-workspace';\nimport { useStorage } from '../../hooks';\nimport { getIOConnectProviderSettings } from './helpers';\nimport { USER_LOCAL_STORAGE_KEY } from '../../constants/storageKeys';\nimport { IOConnectHomeConfig, SimpleLoginConfig, User } from './types';\n\ninterface SimpleLoginHomeProps {\n config: IOConnectHomeConfig & { login: SimpleLoginConfig };\n}\n\nexport const SimpleLoginHome = ({ config }: SimpleLoginHomeProps) => {\n const { setupFlow, ioConnectConfig } = config;\n const loginConfig = config.login;\n const { permission } = useIOConnectHome();\n const [user, setUser] = useStorage<User>('localStorage', USER_LOCAL_STORAGE_KEY, userDecoder);\n const [isLoggingOut, setIsLoggingOut] = useState(false);\n\n const handleLogin = useCallback(\n async (user: string, password: string) => {\n const authenticatedUser = await loginConfig.onLogin(user, password);\n\n setUser(authenticatedUser);\n },\n [loginConfig, setUser]\n );\n\n const handleLogout = useCallback(() => {\n setIsLoggingOut(true);\n\n loginConfig.onLogout?.();\n\n setUser(null);\n }, [loginConfig, setUser]);\n\n if (isLoggingOut) {\n return <LogoutPage components={loginConfig.components} />;\n }\n\n if (!user) {\n return (\n <SimpleLoginPage onLogin={handleLogin} components={loginConfig.components} userInputName={loginConfig.userInputName} />\n );\n }\n\n if (!permission.isSetupCompleted && setupFlow?.enabled !== false) {\n return <PermissionsSetup settings={setupFlow?.settings} components={setupFlow?.components} />;\n }\n\n return (\n <IOConnectProvider settings={getIOConnectProviderSettings(ioConnectConfig, user.id)}>\n <HomeAppWorkspace workspaces={config?.workspaces} launchpad={config?.launchpad} onLogout={handleLogout} user={user} />\n </IOConnectProvider>\n );\n};\n","import { useAuth0 } from '@auth0/auth0-react';\nimport { IOConnectProvider } from '@interopio/react-hooks';\nimport { useIOConnectHome } from '../io-connect-home-provider/io-connect-home-provider';\nimport PermissionsSetup from '../permissions-setup/permissions-setup';\nimport { Auth0LoginPage } from '../login';\nimport { HomeAppWorkspace } from '../home-app-workspace';\nimport { getIOConnectProviderSettings } from './helpers';\nimport { Auth0LoginConfig, IOConnectHomeConfig, User } from './types';\nimport { useMemo } from 'react';\n\ninterface Auth0LoginHomeProps {\n config: IOConnectHomeConfig & { login: Auth0LoginConfig };\n}\n\nexport const Auth0LoginHome = ({ config }: Auth0LoginHomeProps) => {\n const { setupFlow, ioConnectConfig } = config;\n const { permission } = useIOConnectHome();\n const auth0 = useAuth0();\n\n const user = useMemo<User | null>(\n () => (auth0.user?.email ? { username: auth0.user.name, id: auth0.user.email } : null),\n [auth0.user]\n );\n\n if (!user) {\n return <Auth0LoginPage isLoading={auth0.isLoading} onLogin={auth0.loginWithPopup} components={config.login.components} />;\n }\n\n if (!permission.isSetupCompleted && setupFlow?.enabled !== false) {\n return <PermissionsSetup settings={setupFlow?.settings} components={setupFlow?.components} />;\n }\n\n return (\n <IOConnectProvider settings={getIOConnectProviderSettings(ioConnectConfig, user.id)}>\n <HomeAppWorkspace workspaces={config.workspaces} launchpad={config.launchpad} onLogout={auth0.logout} user={user} />\n </IOConnectProvider>\n );\n};\n","import { IOConnectProvider } from '@interopio/react-hooks';\nimport { useIOConnectHome } from '../io-connect-home-provider/io-connect-home-provider';\nimport PermissionsSetup from '../permissions-setup/permissions-setup';\nimport { HomeAppWorkspace } from '../home-app-workspace';\nimport { IOConnectHomeProps } from './types';\n\nexport const NoLoginHome = ({ config }: IOConnectHomeProps) => {\n const { setupFlow, ioConnectConfig } = config;\n const { permission } = useIOConnectHome();\n\n if (!permission.isSetupCompleted && setupFlow?.enabled !== false) {\n return <PermissionsSetup settings={setupFlow?.settings} components={setupFlow?.components} />;\n }\n\n return (\n <IOConnectProvider settings={ioConnectConfig}>\n <HomeAppWorkspace workspaces={config.workspaces} launchpad={config.launchpad} />\n </IOConnectProvider>\n );\n};\n","import { Decoder, anyJson, boolean, constant, object, oneOf, optional } from 'decoder-validate';\nimport { functionCheck, nonEmptyStringDecoder, nonNegativeNumberDecoder } from './base';\nimport {\n Auth0LoginConfig,\n IOConnectHomeConfig,\n LoginConfig,\n SimpleLoginConfig,\n SetupFlowComponents,\n SetupFlowConfig,\n SetupFlowSettings,\n WorkspacesConfig,\n LaunchpadConfig,\n} from '../lib/io-connect-home/types';\nimport { LoginPageComponents } from '../lib/login/types';\nimport { LaunchpadComponents } from '../lib/launchpad/types';\n\nconst loginPageComponentsDecoder: Decoder<LoginPageComponents> = object({\n Logo: optional(anyJson().andThen((result) => functionCheck(result, 'Logo'))),\n Heading: optional(anyJson().andThen((result) => functionCheck(result, 'Heading'))),\n});\n\nconst auth0LoginConfigDecoder: Decoder<Auth0LoginConfig> = object({\n type: constant('auth0'),\n providerOptions: anyJson(),\n components: optional(loginPageComponentsDecoder),\n});\n\nconst simpleLoginConfigDecoder: Decoder<SimpleLoginConfig> = object({\n type: constant('simple'),\n onLogin: anyJson().andThen((result) => functionCheck(result, 'onLogin')),\n onLogout: optional(anyJson().andThen((result) => functionCheck(result, 'onLogout'))),\n userInputName: optional(nonEmptyStringDecoder),\n components: optional(loginPageComponentsDecoder),\n});\n\nconst loginConfigDecoder: Decoder<LoginConfig> = oneOf<LoginConfig>(auth0LoginConfigDecoder, simpleLoginConfigDecoder);\n\nconst setupFlowSettingsDecoder: Decoder<SetupFlowSettings> = object({\n edgeNotificationsPermissionTimeout: optional(nonNegativeNumberDecoder),\n});\n\nconst setupFlowComponentsDecoder: Decoder<SetupFlowComponents> = object({\n Logo: optional(anyJson().andThen((result) => functionCheck(result, 'Logo'))),\n});\n\nconst setupFlowConfigDecoder: Decoder<SetupFlowConfig> = object({\n enabled: optional(boolean()),\n components: optional(setupFlowComponentsDecoder),\n settings: optional(setupFlowSettingsDecoder),\n});\n\nconst workspacesConfigDecoder: Decoder<WorkspacesConfig> = object({\n components: optional(anyJson()),\n HeaderLogoArea: optional(anyJson().andThen((result) => functionCheck(result, 'HeaderLogoArea'))),\n});\n\nconst launchpadComponentsDecoder: Decoder<LaunchpadComponents> = object({\n sections: optional(anyJson()),\n Sections: optional(anyJson().andThen((result) => functionCheck(result, 'Sections'))),\n NotificationsPanel: optional(\n oneOf(\n anyJson().andThen((result) => functionCheck(result, 'NotificationsPanel')),\n constant(null)\n )\n ),\n UserPanel: optional(\n oneOf(\n anyJson().andThen((result) => functionCheck(result, 'UserPanel')),\n constant(null)\n )\n ),\n});\n\nconst launchpadConfigDecoder: Decoder<LaunchpadConfig> = object({\n components: optional(launchpadComponentsDecoder),\n});\n\nexport const ioConnectHomeConfigDecoder: Decoder<IOConnectHomeConfig> = object({\n ioConnectConfig: anyJson(),\n login: optional(loginConfigDecoder),\n setupFlow: optional(setupFlowConfigDecoder),\n workspaces: optional(workspacesConfigDecoder),\n launchpad: optional(launchpadConfigDecoder),\n});\n","import { Auth0Provider } from '@auth0/auth0-react';\nimport { SimpleLoginHome } from './simple-login-home';\nimport { Auth0LoginHome } from './auth0-login-home';\nimport { NoLoginHome } from './no-login-home';\nimport { Auth0LoginConfig, IOConnectHomeConfig, IOConnectHomeProps, SimpleLoginConfig } from './types';\nimport { ioConnectHomeConfigDecoder } from '../../decoders/config';\n\nexport const HomeApp = ({ config }: IOConnectHomeProps) => {\n const validatedConfig = ioConnectHomeConfigDecoder.runWithException(config);\n const loginConfig = validatedConfig.login;\n const launchpadComponentsConfig = validatedConfig.launchpad?.components;\n\n if (launchpadComponentsConfig?.sections && launchpadComponentsConfig?.Sections) {\n throw new Error('Launchpad sections are overspecified. Please provide either a JSX element or a React component.');\n }\n\n if (loginConfig?.type === 'simple') {\n return <SimpleLoginHome config={validatedConfig as IOConnectHomeConfig & { login: SimpleLoginConfig }} />;\n }\n\n if (loginConfig?.type === 'auth0') {\n const { providerOptions } = loginConfig;\n\n return (\n <Auth0Provider\n {...providerOptions}\n authorizationParams={{\n ...providerOptions.authorizationParams,\n redirect_uri: providerOptions.authorizationParams?.redirect_uri ?? window.location.origin,\n }}\n >\n <Auth0LoginHome config={validatedConfig as IOConnectHomeConfig & { login: Auth0LoginConfig }} />\n </Auth0Provider>\n );\n }\n\n return <NoLoginHome config={validatedConfig} />;\n};\n","export const useIsBrowserSupported = (): boolean => {\n return 'getScreenDetails' in window;\n};\n","import { IOConnectHomeProvider } from '../io-connect-home-provider/io-connect-home-provider';\nimport { HomeApp } from './home-app';\nimport BrowserNotSupported from '../browser-not-supported/browser-not-supported';\nimport { useIsBrowserSupported } from '../../hooks/useIsBrowserSupported';\nimport { IOConnectHomeProps } from './types';\n\nexport const IOConnectHome = ({ config }: IOConnectHomeProps) => {\n const isBrowserSupported = useIsBrowserSupported();\n\n if (!isBrowserSupported) {\n return <BrowserNotSupported />;\n }\n\n return (\n <IOConnectHomeProvider>\n <HomeApp config={config} />\n </IOConnectHomeProvider>\n );\n};\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 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=\"io-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 { DefaultSectionProps } from '../../common/types';\nimport type { SectionType } from '../section/types';\nimport type { Workspace } from './types';\nimport { WORKSPACE_ACTIONS } from '../context-menu/constants';\nimport { SORT_ORDER } from '../../constants/sortOrder';\nimport { ascendingTitleCompare, descendingTitleCompare, sortItems } from '../../helpers/sort';\n\nexport const getWorkspacesSectionConfig = (\n workspaces: Workspace[],\n runningInstances: {\n [appName: string]: string[];\n },\n settings: DefaultSectionProps\n): SectionType => {\n const { isSectionCollapsible, sortOrder = SORT_ORDER.ASCENDING, ...rest } = settings;\n\n const sortedWorkspaces = sortItems({\n items: workspaces,\n sortOrder,\n ascendingCompare: ascendingTitleCompare,\n descendingCompare: descendingTitleCompare,\n });\n\n const workspaceItems = sortedWorkspaces.map((workspace) => ({\n ...workspace,\n type: ITEM_TYPES.WORKSPACE,\n isOpen: runningInstances[workspace.title]?.length > 0,\n contextMenuActions: WORKSPACE_ACTIONS,\n }));\n\n return {\n id: 'workspaces-section',\n title: 'Workspaces',\n items: workspaceItems,\n isCollapsible: isSectionCollapsible,\n ...rest,\n };\n};\n","import { useMemo } from 'react';\nimport { getWorkspacesSectionConfig } from './helpers';\nimport Section from '../section/section';\nimport { useRestoreWorkspace, useWorkspaces, useWorkspacesInstances, useExecuteWorkspaceAction } from '../../hooks';\nimport type { SectionItemType } from '../section/types';\nimport { DefaultSectionProps } from '../../common/types';\nimport { PaginationSettings } from '../base-section/types';\n\nexport const WorkspacesSection = (props: DefaultSectionProps) => {\n const { displayCount, isSectionCollapsible, showAllItems, sortOrder } = props;\n const workspaces = useWorkspaces();\n const runningInstances = useWorkspacesInstances();\n const restoreWorkspace = useRestoreWorkspace();\n const executeWorkspaceAction = useExecuteWorkspaceAction();\n\n const config = useMemo(() => {\n const paginationSettings = {\n displayCount,\n showAllItems,\n } as PaginationSettings;\n\n return getWorkspacesSectionConfig(workspaces, runningInstances, {\n ...paginationSettings,\n isSectionCollapsible,\n sortOrder,\n });\n }, [workspaces, runningInstances, displayCount, isSectionCollapsible, showAllItems, sortOrder]);\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","import FavoritesSection from '../favorites-section/favorites-section';\nimport WorkspacesSection from '../workspaces-section/workspaces-section';\nimport ApplicationsSection from '../applications-section/applications-section';\n\nexport const DefaultSections = () => (\n <>\n <FavoritesSection />\n <WorkspacesSection />\n <ApplicationsSection />\n </>\n);\n\nexport default DefaultSections;\n","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 <div data-testid=\"available-layouts\">\n <h6>Available Layouts</h6>\n {layouts.map((layout) => (\n <div\n key={layout.name}\n className={classNames('layouts-item flex ai-center', layout.isSelected && 'active')}\n data-testid=\"layout-item\"\n >\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 </div>\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 testId: 'save-button',\n },\n {\n label: 'Restore',\n type: 'restore',\n onClick: createActionClickHandler(() => {\n if (!selectedLayout) {\n return;\n }\n\n restoreLayout(selectedLayout.name);\n }),\n testId: 'restore-button',\n },\n ];\n\n return (\n <div className={classNames('layout-actions', className)} data-testid=\"layout-actions\">\n {actions.map(({ label, type, disabled, onClick, testId }) => (\n <button key={type} onClick={onClick} disabled={disabled} className=\"io-btn\" data-testid={testId}>\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\n className={classNames('layout-notification', `layout-notification-${type}`, className)}\n data-testid=\"layout-notification\"\n >\n <Icon size={12} name={NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING[type]} />\n <span data-testid=\"layout-notification-message\">{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} data-testid=\"layouts-panel\">\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 data-testid=\"selected-layout\"\n >\n <span className={classNames('name', { hidden: show })} data-testid=\"selected-layout-name\">\n {selectedLayout?.name || 'No selected layout'}\n </span>\n <div className=\"flex ai-center\" data-testid=\"layout-actions-and-toggle\">\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 data-testid=\"layouts-panel-toggle\"\n />\n </div>\n </div>\n\n <Collapse isOpen={show}>\n <div className=\"layouts-container\">\n <div className=\"layouts-settings\">\n <input\n className=\"io-input\"\n onChange={(event) => setInputValue(event.target.value)}\n value={inputValue}\n data-testid=\"layout-name-input\"\n />\n <LayoutActions className=\"group\" inputValue={inputValue} setNotification={setNotification} />\n </div>\n\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 </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=\"io-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 { useContext } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { getInitials } from '../../helpers/string';\nimport { User } from '../io-connect-home/types';\n\nexport interface UserDetailsCardProps {\n user?: User | null;\n}\n\nexport const UserDetailsCard = ({ user }: UserDetailsCardProps) => {\n const io = useContext(IOConnectContext);\n\n const name = user?.username || '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 UserDetailsCard;\n","import { useContext, useEffect, useState } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { IOConnectBrowser } from '@interopio/browser';\nimport { ButtonGroup } from '../button-group/button-group';\nimport { ButtonProps } from '../button/button';\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 { HTMLProps, useContext } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { IOConnectBrowser } from '@interopio/browser';\nimport { useStorage } from '../../hooks';\nimport Button from '../button/button';\nimport { layoutStorageValueDecoder } from '../../decoders/layouts';\nimport { SELECTED_LAYOUT_SESSION_STORAGE_KEY } from '../../constants/storageKeys';\nimport { User } from '../io-connect-home/types';\n\nexport interface SupportCardProps {\n title?: string;\n description?: string;\n links?: HTMLProps<HTMLAnchorElement>[];\n onLogout?: () => void;\n user?: User | null;\n}\n\nexport const SupportCard = ({ title, description, links = [], onLogout, user }: SupportCardProps) => {\n const [_, setSelectedLayout] = useStorage('sessionStorage', SELECTED_LAYOUT_SESSION_STORAGE_KEY, layoutStorageValueDecoder);\n const io = useContext(IOConnectContext) as IOConnectBrowser.API;\n\n const handleLogout = async () => {\n try {\n onLogout?.();\n } catch (error) {\n console.error(error);\n }\n\n setSelectedLayout(null);\n\n await io.webPlatform?.system.shutdown();\n\n window.location.reload();\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 {user?.id && (\n <div>\n <Button onClick={handleLogout}>Log Out</Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default SupportCard;\n","import { User } from '../io-connect-home/types';\nimport UserDetailsCard from './user-details-card';\nimport SettingsCard from './settings-card';\nimport SupportCard from './support-card';\n\nexport interface UserPanelProps {\n onLogout?: () => void;\n user?: User | null;\n}\n\nexport const UserPanel = ({ onLogout, user }: UserPanelProps) => {\n return (\n <>\n <UserDetailsCard user={user} />\n <SettingsCard />\n <SupportCard onLogout={onLogout} user={user} />\n </>\n );\n};\n\nexport default UserPanel;\n","import classNames from 'classnames';\n\ninterface UserPanelIconProps extends React.HTMLAttributes<HTMLDivElement> {\n initials: string;\n}\n\nexport const UserPanelIcon = (props: UserPanelIconProps) => {\n const { initials, className, ...rest } = props;\n\n return (\n <div className={classNames(className, 'user-panel-icon')} {...rest}>\n {initials}\n </div>\n );\n};\n\nexport default UserPanelIcon;\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 io-btn io-btn-icon\" size={16} name=\"close\" />}\n {children}\n </div>\n </dialog>\n );\n};\n\nexport default Dialog;\n","import React, { useState, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { getInitials } from '../../helpers/string';\nimport { LaunchpadAPIProvider } from './launchpad.context';\nimport { SectionProvider } from '../section/section.context';\nimport Icon from '../icon/icon';\nimport SearchBar from '../search/search-bar/search-bar';\nimport SearchResultsSection from '../search/search-results-section/search-results-section';\nimport DefaultSections from './default-sections';\nimport LayoutsPanel from '../layouts-panel/layouts-panel';\nimport { NotificationsIcon, NotificationsPanel } from '../notifications-panel';\nimport UserPanel from '../user-panel/user-panel';\nimport UserPanelIcon from '../user-panel/user-panel-icon';\nimport Dialog from '../dialog/dialog';\nimport { onClickA11y } from '../../helpers/a11y';\nimport { User } from '../io-connect-home/types';\nimport { LaunchpadComponents } from './types';\nimport '@interopio/theme';\nimport './launchpad.scss';\n\nexport interface LaunchpadProps extends React.HTMLProps<HTMLDivElement> {\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n onLogout?: () => void;\n components?: LaunchpadComponents;\n user?: User | null;\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 const isNotificationsPanelEnabled = components?.NotificationsPanel !== null;\n const isUserPanelEnabled = components?.UserPanel !== null;\n\n const LaunchpadNotificationsPanel = components?.NotificationsPanel ?? NotificationsPanel;\n const LaunchpadUserPanel = components?.UserPanel ?? UserPanel;\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 userProvidedSections = components.Sections ? <components.Sections /> : components.sections;\n\n const sections = (\n <SectionProvider>\n <ul>{userProvidedSections ?? <DefaultSections />}</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 {isNotificationsPanelEnabled && (\n <NotificationsIcon\n aria-label=\"Notifications\"\n role=\"button\"\n {...onClickA11y(() => setNotificationDialogOpen(true))}\n />\n )}\n {isUserPanelEnabled && (\n <UserPanelIcon\n initials={getInitials(user?.username || 'N A')}\n aria-label=\"Profile and Settings\"\n role=\"button\"\n {...onClickA11y(() => setProfileDialogOpen(true))}\n />\n )}\n </div>\n <Icon className=\"btn-close io-btn io-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 {isNotificationsPanelEnabled && (\n <Dialog open={notificationDialogOpen} closeFn={() => setNotificationDialogOpen(false)}>\n <LaunchpadNotificationsPanel />\n </Dialog>\n )}\n {isUserPanelEnabled && (\n <Dialog open={profileDialogOpen} closeFn={() => setProfileDialogOpen(false)}>\n <LaunchpadUserPanel onLogout={onLogout} user={user} />\n </Dialog>\n )}\n </LaunchpadAPIProvider>\n );\n}\n\nexport default Launchpad;\n","import { Logo as IOConnectLogo } from '@interopio/workspaces-ui-react';\nimport { NotificationsBadge } from '../notifications-panel';\n\nexport const Logo = () => {\n return (\n <>\n <IOConnectLogo frameId=\"\" />\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: React.ReactElement;\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={`io-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';\nimport { Logo } from '../logo/logo';\nimport { User } from '../io-connect-home/types';\nimport { LaunchpadComponents } from '../launchpad/types';\n\nexport interface LaunchpadSlidePanelProps {\n icon?: React.ReactElement;\n components?: LaunchpadComponents;\n onLogout?: () => void;\n user?: User | null;\n}\n\nexport const LaunchpadSlidePanel = (props: LaunchpadSlidePanelProps) => {\n const { icon, components, user, onLogout } = props;\n\n return (\n <SlidePanel icon={icon ?? <Logo />}>\n {({ open, setOpen }) => (\n <Launchpad open={open} setOpen={setOpen} components={components} user={user} onLogout={onLogout} />\n )}\n </SlidePanel>\n );\n};\n"],"names":["isSection","item","ITEM_TYPES","APPLICATION_ACTIONS","WORKSPACE_ACTIONS","SORT_ORDER","collator","ascendingTitleCompare","a","b","descendingTitleCompare","sortItems","config","items","sortOrder","ascendingCompare","descendingCompare","compareFunction","generateItems","newItem","path","settings","isFolderCollapsible","rest","separator","currentFolder","nestedFolders","sectionIndex","section","getTitle","application","generateFullPath","title","folder","ascendingApplicationsCompare","descendingApplicationsCompare","getApplicationsSectionConfig","applications","runningInstances","isSectionCollapsible","hasOwn","classNames","classes","i","arg","argType","inner","key","module","isClickKeypress","event","onClickA11y","clickHandler","keydownHandler","keyboardNavigation","currentIndex","moveFocus","min","max","onClose","Icon","forwardRef","props","ref","name","size","className","handleClick","jsx","ImgIcon","alt","BaseSectionHeader","iconSrc","iconName","isOpen","showCollapseIcon","showHoverIndicator","domProps","jsxs","useApplications","setApplications","useState","io","useContext","IOConnectContext","useEffect","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","USER_LOCAL_STORAGE_KEY","useStorage","type","decoder","storedValue","setStoredValue","error","customEventType","eventHandler","setValue","useCallback","value","decoderResult","valueToStore","ok","result","err","asPromise","r","withDefault","defaultValue","withException","map","f","map2","ar","br","mapError","andThen","__assign","t","s","n","p","__rest","isEqual","keys","isJsonArray","json","isJsonObject","typeString","expectedGot","expected","got","printPath","paths","prependAt","newAt","_a","at","Decoder","decode","_this","test","errorMessage","decoders","obj","decodeValue_1","v","err$$1","acc","arr","nth","ad","bd","_i","ds","errors","errorsList","jsonAtPath","fixedValue","mkDecoder","string","number","boolean","anyJson","constant","object","array","optional","oneOf","fail","nonEmptyStringDecoder","nonNegativeNumberDecoder","num","functionCheck","input","propDescription","providedType","contextMenuActionDecoder","favoriteEntityDecoder","favoriteEntitiesStorageValueDecoder","useFavoriteEntities","favoriteEntitiesStoredValue","setFavoriteEntitiesStoredValue","favoriteEntities","useMemo","existingEntity","entity","entitiesToStore","id","useFrame","currentFrame","setCurrentFrame","frameID","getFrameId","useInvokeInteropMethod","action","method","useLayouts","layouts","setLayouts","isUnsubscribed","unsubscribeOnAdded","addedLayout","unsubscribeOnRemoved","removedLayout","layout","useNotifications","notifications","setNotifications","unsubscribeOnRaised","raisedNotification","current","unsubscribeOnClosed","closedNotification","notification","SEVERITY_ORDER","SEVERITY_COLORS","SORT_KEY","DEFAULT_SORT","sortByTimestamp","descending","sortBySeverity","defaultSeverity","aSeverity","bSeverity","sortExecutors","useNotificationsSort","sort","setSort","sortedNotifications","usePressedKeys","pressedKeys","setPressedKeys","onKeyDown","onKeyUp","onBlur","MODIFIER_KEYS","useRestoreWorkspace","frame","modifier","restoreOptions","useRestoreLayout","onSuccessfulLayoutRestore","useSearch","searchTerm","resultsToRender","setResultsToRender","isLoading","setIsLoading","queryRef","useRef","ioSearch","currentResults","query","unsubscribeOnResults","response","queryResult","unsubscribeOnCompleted","unsubscribeOnError","fn","useStartApplication","selectedWorkspace","workspace","outermostChild","useWorkspaces","workspaces","setWorkspaces","unsubscribeOnSaved","promise","useWorkspacesInstances","unsubscribeArr","unsubscribeOnAdd","workspaceId","updated","unsubscribe","handleOpenInNewWindow","handleOpenInNewWorkspace","builderConfig","builder","applicationActionExecutors","useExecuteApplicationAction","actionName","handleOpenInNewFrame","handleDelete","removeFavorite","workspaceActionExecutors","useExecuteWorkspaceAction","handleSetAsDefault","setDefaultLayout","layoutActionExecutors","useExecuteLayoutAction","window","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","str","majorize","version","trim","len","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","React","fromEntries","entries","_ref","useIsomorphicLayoutEffect","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","style","attributes","effect","_ref2","initialStyles","styleProperties","property","attribute","applyStyles$1","getBasePlacement","round","getUAString","uaData","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","offsetParent","getMainAxisFromPlacement","within","mathMax","mathMin","withinMaxClamp","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","toPaddingObject","padding","arrow","_state$modifiersData$","options","arrowElement","popperOffsets","basePlacement","axis","isVertical","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","getExpandedFallbackPlacements","oppositePlacement","flip","_options$mainAxis","checkMainAxis","_options$altAxis","checkAltAxis","specifiedFallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","fallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","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","visited","requires","dep","depModifier","orderModifiers","orderedModifiers","phase","debounce","pending","resolve","format","args","_key","c","INVALID_MODIFIER_ERROR","MISSING_DEPENDENCY_ERROR","VALID_PROPERTIES","validateModifiers","index","self","requirement","mod","uniqueBy","identifiers","identifier","mergeByName","merged","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","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","prevOptions","optionsWithDefaults","_React$useState","setState","updateStateModifier","elements","ReactDOM","popperOptions","newOptions","popperInstanceRef","defaultCreatePopper","popperInstance","ContextMenu","actions","onActionItemClick","itemRefs","focusedItemIndex","setFocusedItemIndex","newIndex","DropdownButton","iconSize","isTabStop","showContextMenu","setShowContextMenu","setReferenceElement","setPopperElement","styles","handleBlur","handleIconClick","prevValue","handleActionItemClick","Fragment","BaseSectionItem","isFavoritismEnabled","onClick","focused","toggleFavorite","description","icon","contextMenuActions","isFavorite","e","layoutStorageValueDecoder","DEFAULT_SYSTEM_LAYOUT","DEFAULT_DISPLAY_COUNT","useSetUpLayouts","defaultLayoutState","setDefaultLayoutState","selectedLayout","setSelectedLayout","layoutsSetupInitiated","restoreLayout","defaultGlobalLayout","LaunchpadAPIContext","createContext","useLaunchpadAPI","context","LaunchpadAPIProvider","children","setOpen","defaultLayout","launchpadAPI","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","DOMElement","PropTypes","tagPropType","TransitionTimeouts","TransitionPropTypeKeys","TransitionStatuses","_excluded","_extends","ownKeys","enumerableOnly","sym","_objectSpread","_defineProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","propTypes","CloseButton","variant","innerRef","Button","active","ariaLabel","block","close","_props$color","color","outline","_props$tag","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","defaultProps","transitionStatusToClassHash","getTransitionClass","Collapse","_Component","_super","_","isAppearing","horizontal","navbar","otherProps","dimension","transitionProps","collapseClass","Component","Collapse$1","Form","_this$props$tag","Form$1","FormGroup","row","disabled","inline","floating","noMargin","switchProp","formCheck","BaseSection","level","onItemClick","isCollapsible","showAllItems","displayCount","pressedKey","page","setPage","setIsOpen","liRefs","sectionItems","nonSectionItems","nonSectionItemsToShow","handleShowMoreClick","previousPage","toggleOpen","idx","getItemName","getClickedItem","clickedItemName","buildItemsMapping","mapping","SectionContext","useSection","SectionProvider","clickData","setClickData","Section","handleItemClick","params","selectedContextMenuActionName","clickedItem","ApplicationsSection","startApplication","executeApplicationAction","LOGO_WIDTH","LoginLogo","logoSrc","InfoCard","heading","Image","BrowserNotificationsIcon","GoogleChromeIcon","MicrosoftEdgeIcon","OperaIcon","ReopenPromptIcon","WarningIcon","WindowPlacementIcon","RECOMMENDED_BROWSERS","InfoPageContainer","Logo","AdditionalInformation","supportEmail","BrowserNotSupported","url","ButtonGroup","button","btnRest","getFavoritesSectionConfig","favorites","FavoritesSection","PERMISSION_NAMES","getPermissionStatuses","permission","IOConnectHomeContext","useIOConnectHome","IOConnectHomeProvider","permissionStatuses","setPermissionStatuses","isPermissionLoading","isPermissionSetupCompletedRef","unsubscribeFunctionsPromise","unsubscribeFunctions","isReloaded","permissionStatus","changeListener","permissions","extendStatics","__extends","__","__awaiter","thisArg","_arguments","P","generator","adopt","reject","fulfilled","rejected","__generator","verb","op","l","I","S","T","O","C","Z","K","L","E","U","W","X","N","R","V","D","J","F","H","G","M","Y","B","Q","ee","te","initialAuthState","stub","initialContext","Auth0Context","OAuthError","error_description","CODE_RE","STATE_RE","ERROR_RE","hasAuthParams","searchParams","normalizeErrorFn","fallbackMessage","loginError","tokenError","deprecateRedirectUri","reducer","toAuth0ClientOptions","opts","defaultOnRedirectCallback","appState","Auth0Provider","skipRedirectCallback","onRedirectCallback","_b","clientOpts","client","_c","useReducer","dispatch","didInitialise","user","error_1","loginWithRedirect","loginWithPopup","error_2","logout","getAccessTokenSilently","token","error_3","getAccessTokenWithPopup","error_4","getIdTokenClaims","handleRedirectCallback","error_5","contextValue","useAuth0","PERMISSION_STEPS","handleDeferredPermission","handlePermissionsPromptClose","DEFAULT_SETTINGS","PermissionsList","isActiveItem","permissionName","permissionStep","isActive","stableName","SomethingWentWrong","onReopenPromptClick","UnsuccessfulSetup","deniedPermissionName","browserName","deniedPermissionStatuses","useEdgeNotificationsPermission","edgeNotificationsPermissionTimeout","isNotificationsPermissionPromptOpen","hasEdgeNotificationsPermissionError","setHasEdgeNotificationsPermissionError","timerId","Loader","PermissionSteps","somethingWentWrong","setSomethingWentWrong","isPermissionsPromptOpen","setIsPermissionsPromptOpen","pendingPermission","openPermissionsPrompt","PermissionsSetupFlow","PermissionsSetup","LogoutPage","components","Auth0LoginForm","onLogin","LoginHeading","VerifyingCredentials","Auth0LoginPage","Heading","inputReducer","isValid","SimpleLoginForm","setLoginError","userInputName","dispatchUser","password","dispatchPassword","showUserError","setShowUserError","showPasswordError","setShowPasswordError","isUserValid","isPasswordValid","isFormValid","handleUserChange","handlePasswordChange","handleUserBlur","handlePasswordBlur","SimpleLoginPage","userDecoder","WorkspaceLogo","onLogout","launchpad","LaunchpadSlidePanel","WorkspaceComponentsContext","useWorkspaceComponentsContext","HomeAppWorkspaceLogoArea","HeaderLogoArea","workspaceLogoProps","HomeAppWorkspace","Workspaces","getIOConnectProviderSettings","ioConnectConfig","username","SimpleLoginHome","setupFlow","loginConfig","setUser","isLoggingOut","setIsLoggingOut","handleLogin","authenticatedUser","handleLogout","IOConnectProvider","Auth0LoginHome","auth0","NoLoginHome","loginPageComponentsDecoder","auth0LoginConfigDecoder","simpleLoginConfigDecoder","loginConfigDecoder","setupFlowSettingsDecoder","setupFlowComponentsDecoder","setupFlowConfigDecoder","workspacesConfigDecoder","launchpadComponentsDecoder","launchpadConfigDecoder","ioConnectHomeConfigDecoder","HomeApp","validatedConfig","launchpadComponentsConfig","providerOptions","useIsBrowserSupported","IOConnectHome","getInitials","SearchBar","onSearch","onClear","getSearchResultsSectionConfigs","results","searchResultsSections","SearchResults","invokeInteropMethod","restoreWorkspace","configs","executeWorkspaceAction","executeSelectedAction","execute","mainAction","contextMenuAction","getWorkspacesSectionConfig","WorkspacesSection","DefaultSections","NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING","LAYOUT_ACTIONS_NAMES","createLayoutContextMenuActions","createActionClickHandler","AvailableLayouts","executeLayoutAction","LayoutActions","inputValue","setNotification","label","testId","LayoutsNotification","LayoutsPanel","footerRef","show","setShow","setInputValue","formatDate","timestamp","date","hours","minutes","seconds","amPm","month","day","year","Notification","severity","clearNotification","handleNotificationClick","actionItems","NotificationsBadge","notificationsCount","NotificationsIcon","NotificationsPanel","onNotificationsSort","clearAllNotifications","UserDetailsCard","SettingsCard","themes","setThemes","allThemes","displayName","SupportCard","links","UserPanel","UserPanelIcon","initials","Dialog","closeFn","open","showCloseButton","dialogRef","Launchpad","setSearchTerm","notificationDialogOpen","setNotificationDialogOpen","profileDialogOpen","setProfileDialogOpen","searchInputRef","isNotificationsPanelEnabled","isUserPanelEnabled","LaunchpadNotificationsPanel","LaunchpadUserPanel","handleSearch","handleClear","userProvidedSections","sections","SearchResultsSection","IOConnectLogo","SlidePanel","wrapperRef","logoContainerRef","handleMouseup","isOutsideClick"],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../../../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/constants/sortOrder.ts","../../../packages/home-ui-react/src/helpers/sort.ts","../../../packages/home-ui-react/src/lib/applications-section/helpers.ts","../../../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/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","../../../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","../../../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-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","../../../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","../../../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/login/constants.ts","../../../packages/home-ui-react/src/lib/login/login-logo.tsx","../../../packages/home-ui-react/src/lib/info-card/info-card.tsx","../../../packages/home-ui-react/src/lib/icon-components/browser-notifications-icon.tsx","../../../packages/home-ui-react/src/lib/icon-components/google-chrome-icon.tsx","../../../packages/home-ui-react/src/lib/icon-components/microsoft-edge-icon.tsx","../../../packages/home-ui-react/src/lib/icon-components/opera-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/browser-not-supported/constants.ts","../../../packages/home-ui-react/src/lib/info-page-container/info-page-container.tsx","../../../packages/home-ui-react/src/lib/browser-not-supported/additional-information.tsx","../../../packages/home-ui-react/src/lib/browser-not-supported/browser-not-supported.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/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","../../../node_modules/@auth0/auth0-react/dist/auth0-react.esm.js","../../../packages/home-ui-react/src/lib/permissions-setup/constants.ts","../../../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/permissions-setup/unsuccessful-setup.tsx","../../../packages/home-ui-react/src/lib/permissions-setup/use-edge-notifications-permission.ts","../../../packages/home-ui-react/src/lib/loader/loader.tsx","../../../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","../../../packages/home-ui-react/src/lib/login/logout-page.tsx","../../../packages/home-ui-react/src/lib/login/auth0/auth0-login-form.tsx","../../../packages/home-ui-react/src/lib/login/login-heading.tsx","../../../packages/home-ui-react/src/lib/login/verifying-credentials.tsx","../../../packages/home-ui-react/src/lib/login/auth0/auth0-login-page.tsx","../../../packages/home-ui-react/src/lib/login/simple/reducers.ts","../../../packages/home-ui-react/src/lib/login/simple/simple-login-form.tsx","../../../packages/home-ui-react/src/lib/login/simple/simple-login-page.tsx","../../../packages/home-ui-react/src/decoders/user.ts","../../../packages/home-ui-react/src/lib/home-app-workspace/workspace-logo.tsx","../../../packages/home-ui-react/src/lib/home-app-workspace/workspace-components-context.tsx","../../../packages/home-ui-react/src/lib/home-app-workspace/home-app-workspace-logo-area.tsx","../../../packages/home-ui-react/src/lib/home-app-workspace/useAddWindowButtonVisible.ts","../../../packages/home-ui-react/src/lib/home-app-workspace/after-tabs.tsx","../../../packages/home-ui-react/src/lib/home-app-workspace/group-header-buttons.tsx","../../../packages/home-ui-react/src/lib/home-app-workspace/home-app-workspace.tsx","../../../packages/home-ui-react/src/lib/io-connect-home/helpers.ts","../../../packages/home-ui-react/src/lib/io-connect-home/simple-login-home.tsx","../../../packages/home-ui-react/src/lib/io-connect-home/auth0-login-home.tsx","../../../packages/home-ui-react/src/lib/io-connect-home/no-login-home.tsx","../../../packages/home-ui-react/src/decoders/config.ts","../../../packages/home-ui-react/src/lib/io-connect-home/home-app.tsx","../../../packages/home-ui-react/src/hooks/useIsBrowserSupported.ts","../../../packages/home-ui-react/src/lib/io-connect-home/io-connect-home.tsx","../../../packages/home-ui-react/src/helpers/string.ts","../../../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","../../../packages/home-ui-react/src/lib/launchpad/default-sections.tsx","../../../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/user-panel/user-details-card.tsx","../../../packages/home-ui-react/src/lib/user-panel/settings-card.tsx","../../../packages/home-ui-react/src/lib/user-panel/support-card.tsx","../../../packages/home-ui-react/src/lib/user-panel/user-panel.tsx","../../../packages/home-ui-react/src/lib/user-panel/user-panel-icon.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/logo/logo.tsx","../../../packages/home-ui-react/src/lib/panels/slide-panel.tsx","../../../packages/home-ui-react/src/lib/panels/launchpad-slide-panel.tsx"],"sourcesContent":["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","export const SORT_ORDER = {\n ASCENDING: 'ascending',\n DESCENDING: 'descending',\n DISABLED: 'disabled',\n} as const;\n","import { SORT_ORDER } from '../constants/sortOrder';\nimport { FavoriteEntity, SortCompareFunction, SortOrder } from '../common/types';\nimport { Workspace } from '../lib/workspaces-section/types';\n\nexport const collator = new Intl.Collator(undefined, {\n sensitivity: 'base',\n});\n\nexport const ascendingTitleCompare: SortCompareFunction<FavoriteEntity | Workspace> = (a, b) =>\n collator.compare(a.title, b.title);\n\nexport const descendingTitleCompare: SortCompareFunction<FavoriteEntity | Workspace> = (a, b) =>\n collator.compare(b.title, a.title);\n\nexport const sortItems = <Type>(config: {\n items: Type[];\n sortOrder: SortOrder;\n ascendingCompare: SortCompareFunction<Type>;\n descendingCompare: SortCompareFunction<Type>;\n}): Type[] => {\n const { items, sortOrder, ascendingCompare, descendingCompare } = config;\n\n if (sortOrder === SORT_ORDER.DISABLED) {\n return items;\n }\n\n const compareFunction = sortOrder === SORT_ORDER.ASCENDING ? ascendingCompare : descendingCompare;\n\n return [...items].sort(compareFunction);\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 { ApplicationsSectionProps } from './types';\nimport { SortCompareFunction } from '../../common/types';\nimport { APPLICATION_ACTIONS } from '../context-menu/constants';\nimport { SORT_ORDER } from '../../constants/sortOrder';\nimport { collator, sortItems } from '../../helpers/sort';\n\nconst generateItems = (\n items: SectionType['items'],\n newItem: SectionItemType,\n path: string,\n settings: ApplicationsSectionProps\n): SectionType['items'] => {\n const { isFolderCollapsible, ...rest } = settings;\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), settings) : [newItem],\n isCollapsible: isFolderCollapsible,\n ...rest,\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), settings)\n : [...section.items, newItem],\n },\n ...items.slice(sectionIndex + 1),\n ];\n};\n\nconst getTitle = (application: IOConnectBrowser.AppManager.Application): string => application.title || application.name;\n\nconst generateFullPath = (application: IOConnectBrowser.AppManager.Application) => {\n const title = getTitle(application);\n const folder = application.userProperties.folder;\n\n return folder ? `${folder}/${title}` : title;\n};\n\nconst ascendingApplicationsCompare: SortCompareFunction<IOConnectBrowser.AppManager.Application> = (a, b) =>\n collator.compare(generateFullPath(a), generateFullPath(b));\n\nconst descendingApplicationsCompare: SortCompareFunction<IOConnectBrowser.AppManager.Application> = (a, b) =>\n collator.compare(generateFullPath(b), generateFullPath(a));\n\nexport const getApplicationsSectionConfig = (\n applications: IOConnectBrowser.AppManager.Application[],\n runningInstances: {\n [appName: string]: string[];\n },\n settings: ApplicationsSectionProps\n): SectionType => {\n const { isSectionCollapsible, sortOrder = SORT_ORDER.ASCENDING, ...rest } = settings;\n\n const sortedApplications = sortItems({\n items: applications,\n sortOrder,\n ascendingCompare: ascendingApplicationsCompare,\n descendingCompare: descendingApplicationsCompare,\n });\n\n const items = sortedApplications.reduce((items, application) => {\n const item: SectionItemType = {\n id: application.name,\n title: getTitle(application),\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, settings) : [...items, item];\n }, [] as SectionType['items']);\n\n return {\n id: 'applications-section',\n title: 'All Applications',\n items,\n isCollapsible: isSectionCollapsible,\n ...rest,\n };\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';\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 isOpen?: boolean;\n showCollapseIcon?: boolean;\n showHoverIndicator?: boolean;\n}\n\nexport const BaseSectionHeader = (props: BaseSectionHeaderProps) => {\n const {\n className,\n iconSrc,\n iconName = 'folder',\n title,\n isOpen,\n showCollapseIcon,\n showHoverIndicator = false,\n ...domProps\n } = props;\n\n return (\n <h4 className={classNames(className, 'io-list-header')} data-testid=\"base-section-header\" {...domProps}>\n {showHoverIndicator && <Icon size={8} name=\"\" />}\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 {showCollapseIcon && (\n <Icon className={classNames(!isOpen && 'collapsed')} name=\"chevron-down\" size={14} data-testid=\"collapse-icon\" />\n )}\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 = 'interopio_home_ui_selected_layout';\nexport const FAVORITE_ENTITIES_LOCAL_STORAGE_KEY = 'interopio_home_ui_favorite_entities';\nexport const USER_LOCAL_STORAGE_KEY = 'interopio_home_ui_user';\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, anyJson, fail, number, string } from 'decoder-validate';\n\nexport const nonEmptyStringDecoder: Decoder<string> = string().where((s) => s.length > 0, 'Expected a non-empty string');\n\nexport const nonNegativeNumberDecoder: Decoder<number> = number().where((num) => num >= 0, 'Expected a non-negative number');\n\nexport const functionCheck = (input: any, propDescription: string): Decoder<any> => {\n const providedType = typeof input;\n\n return providedType === 'function'\n ? anyJson()\n : fail(`The provided argument as ${propDescription} should be of type function, provided: ${typeof providedType}`);\n};\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 : [item, ...favoriteEntities];\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 * 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};","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, 'io-dropdown-panel')}\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('io-list-item', action.disabled && 'disabled')}\n {...onClickA11y((event) => onActionItemClick(event, action))}\n ref={(element) => (itemRefs.current[index] = element)}\n tabIndex={-1}\n data-testid={`context-menu-item-${action.name}`}\n >\n <span className=\"io-list-title\">{action.displayName || action.name}</span>\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 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, 'io-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=\"io-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=\"io-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","/** @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 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; }\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};\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 }, _objectSpread({\n 'aria-label': 'close'\n }, attributes)));\n}\nCloseButton.propTypes = propTypes;\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};\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 _props$color = props.color,\n color = _props$color === void 0 ? 'secondary' : _props$color,\n outline = props.outline,\n size = props.size,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'button' : _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;\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 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 _this$props$tag = _this$props.tag,\n Tag = _this$props$tag === void 0 ? 'form' : _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;\nexport default Form;","var _excluded = [\"className\", \"cssModule\", \"row\", \"disabled\", \"check\", \"inline\", \"floating\", \"noMargin\", \"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 noMargin: PropTypes.bool,\n disabled: PropTypes.bool,\n tag: tagPropType,\n className: PropTypes.string,\n cssModule: PropTypes.object\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 noMargin = props.noMargin,\n _props$tag = props.tag,\n Tag = _props$tag === void 0 ? 'div' : _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' : false, switchProp ? 'form-switch' : false, formCheck || noMargin ? false : 'mb-3', 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;\nexport default FormGroup;","import { useEffect, useState, 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';\nimport { Collapse } from 'reactstrap';\n\nexport interface 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 { isCollapsible, showAllItems, displayCount = DEFAULT_DISPLAY_COUNT } = config;\n const launchpadAPI = useLaunchpadAPI();\n const pressedKey = usePressedKeys();\n const [page, setPage] = useState(1);\n const [focusedItemIndex, setFocusedItemIndex] = useState(0);\n const [isOpen, setIsOpen] = useState(false);\n const liRefs = useRef<Record<number, HTMLLIElement | null>>({});\n\n const sectionItems = config.items.filter((item) => isSection(item));\n const nonSectionItems = config.items.filter((item) => !isSection(item));\n const nonSectionItemsToShow = showAllItems ? nonSectionItems : nonSectionItems.slice(0, page * displayCount);\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 = [...sectionItems, ...nonSectionItemsToShow];\n\n const moveFocus = (newIndex: number) => {\n (liRefs.current[newIndex]?.querySelector('[tabIndex]') as HTMLElement)?.focus();\n setFocusedItemIndex(newIndex);\n };\n\n const toggleOpen = () => {\n if (!isCollapsible) {\n return;\n }\n\n setIsOpen((isOpen) => !isOpen);\n };\n\n return (\n <li className=\"section\">\n <BaseSectionHeader\n iconSrc={config.iconSrc}\n iconName={config.iconName}\n style={{\n paddingLeft: `${level === 1 ? 4 : (level - 2) * 12 + 6}px`,\n }}\n title={config.title}\n showCollapseIcon={isCollapsible}\n isOpen={isOpen}\n onClick={toggleOpen}\n showHoverIndicator={level !== 1}\n />\n <Collapse isOpen={isCollapsible ? isOpen : true} tag=\"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 === 1 ? 7 : level * 11}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 {!showAllItems && config.items.length - sectionItems.length > displayCount * page && (\n <li data-testid=\"more-li-element\">\n <div\n className=\"io-list-item more\"\n style={{ paddingLeft: `${(level === 1 ? 7 : level * 11) + 8}px` }}\n role=\"button\"\n aria-label=\"More\"\n {...onClickA11y(handleShowMoreClick)}\n >\n <div className=\"io-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 </Collapse>\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\nexport interface 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 { useMemo } from 'react';\nimport { getApplicationsSectionConfig } from './helpers';\nimport Section from '../section/section';\nimport { useExecuteApplicationAction, useApplications, useApplicationsInstances, useStartApplication } from '../../hooks';\nimport type { SectionItemType } from '../section/types';\nimport { ApplicationsSectionProps } from './types';\nimport { PaginationSettings } from '../base-section/types';\n\nexport function ApplicationsSection(props: ApplicationsSectionProps) {\n const { displayCount, isFolderCollapsible, isSectionCollapsible, showAllItems, sortOrder } = props;\n const applications = useApplications();\n const runningInstances = useApplicationsInstances();\n const startApplication = useStartApplication();\n const executeApplicationAction = useExecuteApplicationAction();\n\n const config = useMemo(() => {\n const paginationSettings = {\n displayCount,\n showAllItems,\n } as PaginationSettings;\n\n return getApplicationsSectionConfig(applications, runningInstances, {\n ...paginationSettings,\n isFolderCollapsible,\n isSectionCollapsible,\n sortOrder,\n });\n }, [applications, runningInstances, displayCount, isFolderCollapsible, isSectionCollapsible, showAllItems, sortOrder]);\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","export const LOGO_WIDTH = '256px';\n","import 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 = ({ logoSrc = config.loginPageLogo.value, width = LOGO_WIDTH, className = 'logo' }: LogoProps) => {\n return <img width={width} src={logoSrc} className={className} alt=\"Login logo\" />;\n};\n","import './info-card.scss';\n\ninterface InfoCardProps {\n children?: React.ReactNode;\n heading?: string;\n description: string | React.ReactElement;\n Image?: React.ComponentType;\n title?: string;\n}\n\nexport const InfoCard = ({ children, description, heading, Image, title }: InfoCardProps) => (\n <div className=\"info-card\">\n {title && <h1 className=\"info-card-title\">{title}</h1>}\n {Image && (\n <div className=\"info-card-image\">\n <Image />\n </div>\n )}\n {heading && <h3 className=\"info-card-heading\">{heading}</h3>}\n <p className=\"info-card-description\">{description}</p>\n {children}\n </div>\n);\n\nexport default InfoCard;\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 GoogleChromeIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n fill=\"none\"\n height=\"63\"\n viewBox=\"0 0 63 63\"\n width=\"63\"\n {...props}\n >\n <linearGradient id=\"chrome_a\" gradientUnits=\"userSpaceOnUse\" x1=\"34.9087\" x2=\"7.63224\" y1=\"61.029\" y2=\"13.7847\">\n <stop offset=\"0\" stopColor=\"#1e8e3e\" />\n <stop offset=\"1\" stopColor=\"#34a853\" />\n </linearGradient>\n <linearGradient id=\"chrome_b\" gradientUnits=\"userSpaceOnUse\" x1=\"26.9043\" x2=\"54.1808\" y1=\"63.0788\" y2=\"15.8345\">\n <stop offset=\"0\" stopColor=\"#fcc934\" />\n <stop offset=\"1\" stopColor=\"#fbbc04\" />\n </linearGradient>\n <linearGradient id=\"chrome_c\" gradientUnits=\"userSpaceOnUse\" x1=\"4.22145\" x2=\"58.7745\" y1=\"19.6884\" y2=\"19.6884\">\n <stop offset=\"0\" stopColor=\"#d93025\" />\n <stop offset=\"1\" stopColor=\"#ea4335\" />\n </linearGradient>\n <path\n d=\"m31.499 47.2466c8.6985 0 15.75-7.0515 15.75-15.75s-7.0515-15.75-15.75-15.75-15.75 7.0515-15.75 15.75 7.0515 15.75 15.75 15.75z\"\n fill=\"#fff\"\n />\n <path\n d=\"m17.8591 39.3751-13.63772-23.6212c-2.76527 4.788-4.22118922 10.2197-4.22137998 15.7489s1.45535998 10.961 4.22028998 15.7492c2.76494 4.7882 6.74181 8.7641 11.53071 11.5279 4.7889 2.7637 10.221 4.2179 15.7502 4.2164l13.6377-23.6212v-.0041c-1.3813 2.3954-3.369 4.3848-5.7632 5.7681s-5.1104 2.1118-7.8755 2.1122-5.4816-.7272-7.8762-2.1099c-2.3945-1.3826-4.3829-3.3714-5.7649-5.7663z\"\n fill=\"url(#chrome_a)\"\n />\n <path\n d=\"m45.1379 39.3741-13.6376 23.6212c5.5292.0008 10.9611-1.4542 15.7496-4.2187 4.7885-2.7644 8.7648-6.7408 11.5291-11.5294 2.7642-4.7887 4.219-10.2207 4.2181-15.7499-.001-5.5292-1.4577-10.9606-4.2237-15.7483h-27.2754l-.0034.0021c2.7651-.0014 5.4818.7254 7.8769 2.1071 2.3951 1.3818 4.3841 3.3698 5.767 5.7643 1.3829 2.3944 2.1109 5.1108 2.1109 7.8758-.0001 2.7651-.7283 5.4814-2.1113 7.8758z\"\n fill=\"url(#chrome_b)\"\n />\n <path\n d=\"m31.499 43.9688c6.8863 0 12.4688-5.5825 12.4688-12.4688s-5.5825-12.4688-12.4688-12.4688-12.4687 5.5825-12.4687 12.4688 5.5824 12.4688 12.4687 12.4688z\"\n fill=\"#1a73e8\"\n />\n <path\n d=\"m31.4991 15.75h27.2754c-2.764-4.7888-6.74-8.76553-11.5283-11.53029-4.7883-2.76475-10.2202-4.22010235-15.7494-4.21970992s-10.9608 1.45650992-15.7487 4.22194992c-4.788 2.76543-8.76341 6.74275-11.52666 11.53185l13.63766 23.6212.0035.0019c-1.3837-2.394-2.1127-5.11-2.1136-7.8751s.7264-5.4817 2.1086-7.8765c1.3821-2.3948 3.3706-4.3835 5.7652-5.7659 2.3947-1.3825 5.1112-2.11 7.8763-2.1094z\"\n fill=\"url(#chrome_c)\"\n />\n </svg>\n);\n\nexport default GoogleChromeIcon;\n","export const MicrosoftEdgeIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 256 256\" {...props}>\n <defs>\n <radialGradient\n id=\"edge_b\"\n cx={161.8}\n cy={68.9}\n r={95.4}\n gradientTransform=\"matrix(1 0 0 -.95 0 248.8)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0.7} stopOpacity={0} />\n <stop offset={0.9} stopOpacity={0.5} />\n <stop offset={1} />\n </radialGradient>\n <radialGradient\n id=\"edge_d\"\n cx={-340.3}\n cy={63}\n r={143.2}\n gradientTransform=\"matrix(.15 -.99 -.8 -.12 176.6 -125.4)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0.8} stopOpacity={0} />\n <stop offset={0.9} stopOpacity={0.5} />\n <stop offset={1} />\n </radialGradient>\n <radialGradient\n id=\"edge_e\"\n cx={113.4}\n cy={570.2}\n r={202.4}\n gradientTransform=\"matrix(-.04 1 2.13 .08 -1179.5 -106.7)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0} stopColor=\"#35c1f1\" />\n <stop offset={0.1} stopColor=\"#34c1ed\" />\n <stop offset={0.2} stopColor=\"#2fc2df\" />\n <stop offset={0.3} stopColor=\"#2bc3d2\" />\n <stop offset={0.7} stopColor=\"#36c752\" />\n </radialGradient>\n <radialGradient\n id=\"edge_f\"\n cx={376.5}\n cy={568}\n r={97.3}\n gradientTransform=\"matrix(.28 .96 .78 -.23 -303.8 -148.5)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0} stopColor=\"#66eb6e\" />\n <stop offset={1} stopColor=\"#66eb6e\" stopOpacity={0} />\n </radialGradient>\n <linearGradient\n id=\"edge_a\"\n x1={63.3}\n x2={241.7}\n y1={84}\n y2={84}\n gradientTransform=\"matrix(1 0 0 -1 0 266)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0} stopColor=\"#0c59a4\" />\n <stop offset={1} stopColor=\"#114a8b\" />\n </linearGradient>\n <linearGradient\n id=\"edge_c\"\n x1={157.3}\n x2={46}\n y1={161.4}\n y2={40.1}\n gradientTransform=\"matrix(1 0 0 -1 0 266)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0} stopColor=\"#1b9de2\" />\n <stop offset={0.2} stopColor=\"#1595df\" />\n <stop offset={0.7} stopColor=\"#0680d7\" />\n <stop offset={1} stopColor=\"#0078d4\" />\n </linearGradient>\n </defs>\n <path\n d=\"M235.7 195.5a93.7 93.7 0 0 1-10.6 4.7 101.9 101.9 0 0 1-35.9 6.4c-47.3 0-88.5-32.5-88.5-74.3a31.5 31.5 0 0 1 16.4-27.3c-42.8 1.8-53.8 46.4-53.8 72.5 0 74 68.1 81.4 82.8 81.4 7.9 0 19.8-2.3 27-4.6l1.3-.4a128.3 128.3 0 0 0 66.6-52.8 4 4 0 0 0-5.3-5.6Z\"\n style={{\n fill: 'url(#edge_a)',\n }}\n transform=\"translate(-4.6 -5)\"\n />\n <path\n d=\"M235.7 195.5a93.7 93.7 0 0 1-10.6 4.7 101.9 101.9 0 0 1-35.9 6.4c-47.3 0-88.5-32.5-88.5-74.3a31.5 31.5 0 0 1 16.4-27.3c-42.8 1.8-53.8 46.4-53.8 72.5 0 74 68.1 81.4 82.8 81.4 7.9 0 19.8-2.3 27-4.6l1.3-.4a128.3 128.3 0 0 0 66.6-52.8 4 4 0 0 0-5.3-5.6Z\"\n style={{\n isolation: 'isolate',\n opacity: 0.35,\n fill: 'url(#edge_b)',\n }}\n transform=\"translate(-4.6 -5)\"\n />\n <path\n d=\"M110.3 246.3A79.2 79.2 0 0 1 87.6 225a80.7 80.7 0 0 1 29.5-120c3.2-1.5 8.5-4.1 15.6-4a32.4 32.4 0 0 1 25.7 13 31.9 31.9 0 0 1 6.3 18.7c0-.2 24.5-79.6-80-79.6-43.9 0-80 41.6-80 78.2a130.2 130.2 0 0 0 12.1 56 128 128 0 0 0 156.4 67 75.5 75.5 0 0 1-62.8-8Z\"\n style={{\n fill: 'url(#edge_c)',\n }}\n transform=\"translate(-4.6 -5)\"\n />\n <path\n d=\"M110.3 246.3A79.2 79.2 0 0 1 87.6 225a80.7 80.7 0 0 1 29.5-120c3.2-1.5 8.5-4.1 15.6-4a32.4 32.4 0 0 1 25.7 13 31.9 31.9 0 0 1 6.3 18.7c0-.2 24.5-79.6-80-79.6-43.9 0-80 41.6-80 78.2a130.2 130.2 0 0 0 12.1 56 128 128 0 0 0 156.4 67 75.5 75.5 0 0 1-62.8-8Z\"\n style={{\n opacity: 0.41,\n fill: 'url(#edge_d)',\n isolation: 'isolate',\n }}\n transform=\"translate(-4.6 -5)\"\n />\n <path\n d=\"M157 153.8c-.9 1-3.4 2.5-3.4 5.6 0 2.6 1.7 5.2 4.8 7.3 14.3 10 41.4 8.6 41.5 8.6a59.6 59.6 0 0 0 30.3-8.3 61.4 61.4 0 0 0 30.4-52.9c.3-22.4-8-37.3-11.3-43.9C228 28.8 182.3 5 132.6 5a128 128 0 0 0-128 126.2c.5-36.5 36.8-66 80-66 3.5 0 23.5.3 42 10a72.6 72.6 0 0 1 30.9 29.3c6.1 10.6 7.2 24.1 7.2 29.5s-2.7 13.3-7.8 19.9Z\"\n style={{\n fill: 'url(#edge_e)',\n }}\n transform=\"translate(-4.6 -5)\"\n />\n <path\n d=\"M157 153.8c-.9 1-3.4 2.5-3.4 5.6 0 2.6 1.7 5.2 4.8 7.3 14.3 10 41.4 8.6 41.5 8.6a59.6 59.6 0 0 0 30.3-8.3 61.4 61.4 0 0 0 30.4-52.9c.3-22.4-8-37.3-11.3-43.9C228 28.8 182.3 5 132.6 5a128 128 0 0 0-128 126.2c.5-36.5 36.8-66 80-66 3.5 0 23.5.3 42 10a72.6 72.6 0 0 1 30.9 29.3c6.1 10.6 7.2 24.1 7.2 29.5s-2.7 13.3-7.8 19.9Z\"\n style={{\n fill: 'url(#edge_f)',\n }}\n transform=\"translate(-4.6 -5)\"\n />\n </svg>\n);\nexport default MicrosoftEdgeIcon;\n","export const OperaIcon = (props: React.SVGProps<SVGSVGElement>) => (\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 75.591 75.591\" {...props}>\n <linearGradient\n id=\"opera_a\"\n x2={1}\n gradientTransform=\"matrix(0 -54.944 -54.944 0 23.62 79.474)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0} stopColor=\"#ff1b2d\" />\n <stop offset={0.3} stopColor=\"#ff1b2d\" />\n <stop offset={0.614} stopColor=\"#ff1b2d\" />\n <stop offset={1} stopColor=\"#a70014\" />\n </linearGradient>\n <linearGradient\n id=\"opera_b\"\n x2={1}\n gradientTransform=\"matrix(0 -48.595 -48.595 0 37.854 76.235)\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0} stopColor=\"#9c0000\" />\n <stop offset={0.7} stopColor=\"#ff4b4b\" />\n <stop offset={1} stopColor=\"#ff4b4b\" />\n </linearGradient>\n <path\n fill=\"url(#opera_a)\"\n d=\"M28.346 80.398C12.691 80.398 0 67.707 0 52.052 0 36.85 11.968 24.443 26.996 23.739a28.244 28.244 0 0 1 20.241 7.18c-3.322-2.203-7.207-3.47-11.359-3.47-6.75 0-12.796 3.348-16.862 8.629-3.134 3.7-5.164 9.169-5.302 15.307v1.335c.138 6.137 2.168 11.608 5.302 15.307 4.066 5.28 10.112 8.63 16.862 8.63 4.152 0 8.038-1.269 11.36-3.474a28.239 28.239 0 0 1-18.785 7.215l-.108.001z\"\n transform=\"matrix(1.3333 0 0 -1.3333 0 107.2)\"\n />\n <path\n fill=\"url(#opera_b)\"\n d=\"M19.016 68.025c2.601 3.07 5.96 4.923 9.631 4.923 8.252 0 14.941-9.356 14.941-20.897s-6.69-20.897-14.941-20.897c-3.67 0-7.03 1.85-9.63 4.922 4.066-5.281 10.11-8.63 16.862-8.63 4.152 0 8.036 1.268 11.359 3.472 5.802 5.19 9.455 12.735 9.455 21.133 0 8.397-3.653 15.94-9.453 21.13-3.324 2.206-7.209 3.473-11.361 3.473-6.75 0-12.796-3.348-16.862-8.63\"\n transform=\"matrix(1.3333 0 0 -1.3333 0 107.2)\"\n />\n </svg>\n);\nexport default OperaIcon;\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 { GoogleChromeIcon, MicrosoftEdgeIcon, OperaIcon } from '../icon-components/';\n\nexport const RECOMMENDED_BROWSERS: { name: string; Image: React.ComponentType; url: string }[] = [\n { name: 'Google Chrome', Image: GoogleChromeIcon, url: 'https://www.google.com/chrome/' },\n { name: 'Microsoft Edge', Image: MicrosoftEdgeIcon, url: 'https://www.microsoft.com/en-us/edge/download' },\n { name: 'Opera', Image: OperaIcon, url: 'https://www.opera.com/browsers/opera' },\n];\n","import classNames from 'classnames';\nimport './info-page-container.scss';\n\ninterface InfoPageContainerProps {\n Logo: React.ComponentType<{ className?: string }>;\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const InfoPageContainer = ({ className, children, Logo }: InfoPageContainerProps) => {\n return (\n <div className={classNames('info-page-container', className)}>\n <div className=\"info-page-wrapper\">\n <Logo className=\"mb-32\" />\n {children}\n </div>\n </div>\n );\n};\n\nexport default InfoPageContainer;\n","interface AdditionalInformationProps {\n supportEmail?: string;\n}\n\nexport const AdditionalInformation = ({ supportEmail }: AdditionalInformationProps) => (\n <p className=\"additional-information\">\n For more information, visit the io.Connect Browser\n <br />\n <a\n href=\"https://docs.interop.io/browser/getting-started/requirements-compatibility/index.html\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n documentation\n </a>\n {supportEmail ? (\n <>\n {' or '}\n <a href={`mailto:${supportEmail}?subject=Issue with io.Connect Browser`}>contact us</a>.\n </>\n ) : (\n <>\n {' or our '}\n <a href=\"https://support.interop.io\" target=\"_blank\" rel=\"noopener noreferrer\">\n help center\n </a>\n .\n </>\n )}\n </p>\n);\n\nexport default AdditionalInformation;\n","import { LoginLogo } from '../login/login-logo';\nimport InfoCard from '../info-card/info-card';\nimport { RECOMMENDED_BROWSERS } from './constants';\nimport { useBrowser } from '../../hooks';\nimport InfoPageContainer from '../info-page-container/info-page-container';\nimport AdditionalInformation from './additional-information';\nimport './browser-not-supported.scss';\n\ninterface BrowserNotSupportedProps {\n components?: {\n Logo?: React.ComponentType<{ className?: string }>;\n };\n supportEmail?: string;\n}\n\nexport const BrowserNotSupported = ({ components: { Logo = LoginLogo } = {}, supportEmail }: BrowserNotSupportedProps) => {\n const { name, version } = useBrowser();\n\n const title = 'Hmm... It seems that your browser isn’t supported.';\n const description = `We're sorry, but ${name} ${version} isn’t supported.\n For best experience, we recommend using the latest version of one of the\n following browsers:`;\n\n return (\n <InfoPageContainer className=\"browser-not-supported\" Logo={Logo}>\n <InfoCard title={title} description={description} />\n <ul className=\"browsers-list\">\n {RECOMMENDED_BROWSERS.map(({ Image, name, url }) => {\n return (\n <li key={name} onClick={() => window.open(url, '_blank', 'noopener,noreferrer')}>\n <div className=\"browsers-list-image\">\n <Image />\n </div>\n <div>{name}</div>\n </li>\n );\n })}\n </ul>\n <AdditionalInformation supportEmail={supportEmail} />\n </InfoPageContainer>\n );\n};\n\nexport default BrowserNotSupported;\n","import { HTMLProps } from 'react';\nimport classNames from 'classnames';\n\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, 'io-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('io-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 { DefaultSectionProps, FavoriteEntity } from '../../common/types';\nimport type { SectionType } from '../section/types';\nimport { ascendingTitleCompare, descendingTitleCompare, sortItems } from '../../helpers/sort';\nimport { SORT_ORDER } from '../../constants/sortOrder';\n\nexport const getFavoritesSectionConfig = (favorites: FavoriteEntity[], settings: DefaultSectionProps): SectionType => {\n const { isSectionCollapsible, sortOrder = SORT_ORDER.DISABLED, ...rest } = settings;\n\n const sortedFavorites = sortItems({\n items: favorites,\n sortOrder,\n ascendingCompare: ascendingTitleCompare,\n descendingCompare: descendingTitleCompare,\n });\n\n return {\n id: 'favorites-section',\n title: 'Favorites',\n items: sortedFavorites,\n iconName: 'star',\n isCollapsible: isSectionCollapsible,\n ...rest,\n };\n};\n","import { useMemo } from 'react';\nimport { getFavoritesSectionConfig } from './helpers';\nimport Section from '../section/section';\nimport { useFavoriteEntities } from '../../hooks';\nimport { DefaultSectionProps } from '../../common/types';\nimport { PaginationSettings } from '../base-section/types';\n\nexport const FavoritesSection = (props: DefaultSectionProps) => {\n const { displayCount, isSectionCollapsible, showAllItems, sortOrder } = props;\n const { favoriteEntities } = useFavoriteEntities();\n\n const config = useMemo(() => {\n const paginationSettings = {\n displayCount,\n showAllItems,\n } as PaginationSettings;\n\n return getFavoritesSectionConfig(favoriteEntities, {\n ...paginationSettings,\n isSectionCollapsible,\n sortOrder,\n });\n }, [favoriteEntities, displayCount, isSectionCollapsible, showAllItems, sortOrder]);\n\n return favoriteEntities.length > 0 ? <Section config={config} /> : null;\n};\n\nexport default FavoritesSection;\n","export const PERMISSION_NAMES = {\n WINDOW_MANAGEMENT: 'window-management',\n NOTIFICATIONS: 'notifications',\n} as const;\n","import type { HomePermissionStatus } from './types';\nimport { PERMISSION_NAMES } from './constants';\n\nexport const getPermissionStatuses = (): Promise<HomePermissionStatus[]> => {\n return Promise.all(\n Object.values(PERMISSION_NAMES).map(async (name) => {\n const permission = (await navigator.permissions.query({ name: name as PermissionName })) as HomePermissionStatus;\n\n permission.stableName = name;\n\n return permission;\n })\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()\n .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 .catch(console.warn);\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 React, { createContext, useState, useReducer, useRef, useEffect, useCallback, useMemo, useContext } from 'react';\n\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\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\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 __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\n\nfunction e(e,t){var i={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(i[o]=e[o]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols){var n=0;for(o=Object.getOwnPropertySymbols(e);n<o.length;n++)t.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(e,o[n])&&(i[o[n]]=e[o[n]]);}return i}var t=\"undefined\"!=typeof globalThis?globalThis:\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:{};function i(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,\"default\")?e.default:e}function o(e,t){return e(t={exports:{}},t.exports),t.exports}var n=o((function(e,t){Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(){var e=this;this.locked=new Map,this.addToLocked=function(t,i){var o=e.locked.get(t);void 0===o?void 0===i?e.locked.set(t,[]):e.locked.set(t,[i]):void 0!==i&&(o.unshift(i),e.locked.set(t,o));},this.isLocked=function(t){return e.locked.has(t)},this.lock=function(t){return new Promise((function(i,o){e.isLocked(t)?e.addToLocked(t,i):(e.addToLocked(t),i());}))},this.unlock=function(t){var i=e.locked.get(t);if(void 0!==i&&0!==i.length){var o=i.pop();e.locked.set(t,i),void 0!==o&&setTimeout(o,0);}else e.locked.delete(t);};}return e.getInstance=function(){return void 0===e.instance&&(e.instance=new e),e.instance},e}();t.default=function(){return i.getInstance()};}));i(n);var a=i(o((function(e,i){var o=t&&t.__awaiter||function(e,t,i,o){return new(i||(i=Promise))((function(n,a){function s(e){try{c(o.next(e));}catch(e){a(e);}}function r(e){try{c(o.throw(e));}catch(e){a(e);}}function c(e){e.done?n(e.value):new i((function(t){t(e.value);})).then(s,r);}c((o=o.apply(e,t||[])).next());}))},a=t&&t.__generator||function(e,t){var i,o,n,a,s={label:0,sent:function(){if(1&n[0])throw n[1];return n[1]},trys:[],ops:[]};return a={next:r(0),throw:r(1),return:r(2)},\"function\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function r(a){return function(r){return function(a){if(i)throw new TypeError(\"Generator is already executing.\");for(;s;)try{if(i=1,o&&(n=2&a[0]?o.return:a[0]?o.throw||((n=o.return)&&n.call(o),0):o.next)&&!(n=n.call(o,a[1])).done)return n;switch(o=0,n&&(a=[2&a[0],n.value]),a[0]){case 0:case 1:n=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,o=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(n=s.trys,(n=n.length>0&&n[n.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!n||a[1]>n[0]&&a[1]<n[3])){s.label=a[1];break}if(6===a[0]&&s.label<n[1]){s.label=n[1],n=a;break}if(n&&s.label<n[2]){s.label=n[2],s.ops.push(a);break}n[2]&&s.ops.pop(),s.trys.pop();continue}a=t.call(e,s);}catch(e){a=[6,e],o=0;}finally{i=n=0;}if(5&a[0])throw a[1];return {value:a[0]?a[1]:void 0,done:!0}}([a,r])}}};Object.defineProperty(i,\"__esModule\",{value:!0});var s=\"browser-tabs-lock-key\";function r(e){return new Promise((function(t){return setTimeout(t,e)}))}function c(e){for(var t=\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz\",i=\"\",o=0;o<e;o++){i+=t[Math.floor(Math.random()*t.length)];}return i}var d=function(){function e(){this.acquiredIatSet=new Set,this.id=Date.now().toString()+c(15),this.acquireLock=this.acquireLock.bind(this),this.releaseLock=this.releaseLock.bind(this),this.releaseLock__private__=this.releaseLock__private__.bind(this),this.waitForSomethingToChange=this.waitForSomethingToChange.bind(this),this.refreshLockWhileAcquired=this.refreshLockWhileAcquired.bind(this),void 0===e.waiters&&(e.waiters=[]);}return e.prototype.acquireLock=function(t,i){return void 0===i&&(i=5e3),o(this,void 0,void 0,(function(){var o,n,d,u,l,h;return a(this,(function(a){switch(a.label){case 0:o=Date.now()+c(4),n=Date.now()+i,d=s+\"-\"+t,u=window.localStorage,a.label=1;case 1:return Date.now()<n?[4,r(30)]:[3,8];case 2:return a.sent(),null!==u.getItem(d)?[3,5]:(l=this.id+\"-\"+t+\"-\"+o,[4,r(Math.floor(25*Math.random()))]);case 3:return a.sent(),u.setItem(d,JSON.stringify({id:this.id,iat:o,timeoutKey:l,timeAcquired:Date.now(),timeRefreshed:Date.now()})),[4,r(30)];case 4:return a.sent(),null!==(h=u.getItem(d))&&(h=JSON.parse(h)).id===this.id&&h.iat===o?(this.acquiredIatSet.add(o),this.refreshLockWhileAcquired(d,o),[2,!0]):[3,7];case 5:return e.lockCorrector(),[4,this.waitForSomethingToChange(n)];case 6:a.sent(),a.label=7;case 7:return o=Date.now()+c(4),[3,1];case 8:return [2,!1]}}))}))},e.prototype.refreshLockWhileAcquired=function(e,t){return o(this,void 0,void 0,(function(){var i=this;return a(this,(function(s){return setTimeout((function(){return o(i,void 0,void 0,(function(){var i,o;return a(this,(function(a){switch(a.label){case 0:return [4,n.default().lock(t)];case 1:return a.sent(),this.acquiredIatSet.has(t)?(i=window.localStorage,null===(o=i.getItem(e))?(n.default().unlock(t),[2]):((o=JSON.parse(o)).timeRefreshed=Date.now(),i.setItem(e,JSON.stringify(o)),n.default().unlock(t),this.refreshLockWhileAcquired(e,t),[2])):(n.default().unlock(t),[2])}}))}))}),1e3),[2]}))}))},e.prototype.waitForSomethingToChange=function(t){return o(this,void 0,void 0,(function(){return a(this,(function(i){switch(i.label){case 0:return [4,new Promise((function(i){var o=!1,n=Date.now(),a=!1;function s(){if(a||(window.removeEventListener(\"storage\",s),e.removeFromWaiting(s),clearTimeout(r),a=!0),!o){o=!0;var t=50-(Date.now()-n);t>0?setTimeout(i,t):i();}}window.addEventListener(\"storage\",s),e.addToWaiting(s);var r=setTimeout(s,Math.max(0,t-Date.now()));}))];case 1:return i.sent(),[2]}}))}))},e.addToWaiting=function(t){this.removeFromWaiting(t),void 0!==e.waiters&&e.waiters.push(t);},e.removeFromWaiting=function(t){void 0!==e.waiters&&(e.waiters=e.waiters.filter((function(e){return e!==t})));},e.notifyWaiters=function(){void 0!==e.waiters&&e.waiters.slice().forEach((function(e){return e()}));},e.prototype.releaseLock=function(e){return o(this,void 0,void 0,(function(){return a(this,(function(t){switch(t.label){case 0:return [4,this.releaseLock__private__(e)];case 1:return [2,t.sent()]}}))}))},e.prototype.releaseLock__private__=function(t){return o(this,void 0,void 0,(function(){var i,o,r;return a(this,(function(a){switch(a.label){case 0:return i=window.localStorage,o=s+\"-\"+t,null===(r=i.getItem(o))?[2]:(r=JSON.parse(r)).id!==this.id?[3,2]:[4,n.default().lock(r.iat)];case 1:a.sent(),this.acquiredIatSet.delete(r.iat),i.removeItem(o),n.default().unlock(r.iat),e.notifyWaiters(),a.label=2;case 2:return [2]}}))}))},e.lockCorrector=function(){for(var t=Date.now()-5e3,i=window.localStorage,o=Object.keys(i),n=!1,a=0;a<o.length;a++){var r=o[a];if(r.includes(s)){var c=i.getItem(r);null!==c&&(void 0===(c=JSON.parse(c)).timeRefreshed&&c.timeAcquired<t||void 0!==c.timeRefreshed&&c.timeRefreshed<t)&&(i.removeItem(r),n=!0);}}n&&e.notifyWaiters();},e.waiters=void 0,e}();i.default=d;})));const s={timeoutInSeconds:60},r={name:\"auth0-spa-js\",version:\"2.0.4\"},c=()=>Date.now();class d extends Error{constructor(e,t){super(t),this.error=e,this.error_description=t,Object.setPrototypeOf(this,d.prototype);}static fromPayload({error:e,error_description:t}){return new d(e,t)}}class u extends d{constructor(e,t,i,o=null){super(e,t),this.state=i,this.appState=o,Object.setPrototypeOf(this,u.prototype);}}class l extends d{constructor(){super(\"timeout\",\"Timeout\"),Object.setPrototypeOf(this,l.prototype);}}class h extends l{constructor(e){super(),this.popup=e,Object.setPrototypeOf(this,h.prototype);}}class p extends d{constructor(e){super(\"cancelled\",\"Popup closed\"),this.popup=e,Object.setPrototypeOf(this,p.prototype);}}class m extends d{constructor(e,t,i){super(e,t),this.mfa_token=i,Object.setPrototypeOf(this,m.prototype);}}class f extends d{constructor(e,t){super(\"missing_refresh_token\",`Missing Refresh Token (audience: '${g(e,[\"default\"])}', scope: '${g(t)}')`),this.audience=e,this.scope=t,Object.setPrototypeOf(this,f.prototype);}}function g(e,t=[]){return e&&!t.includes(e)?e:\"\"}const w=()=>window.crypto,y=()=>{const e=\"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_~.\";let t=\"\";return Array.from(w().getRandomValues(new Uint8Array(43))).forEach((i=>t+=e[i%e.length])),t},k=e=>btoa(e),b=t=>{var{clientId:i}=t,o=e(t,[\"clientId\"]);return new URLSearchParams((e=>Object.keys(e).filter((t=>void 0!==e[t])).reduce(((t,i)=>Object.assign(Object.assign({},t),{[i]:e[i]})),{}))(Object.assign({client_id:i},o))).toString()},v=e=>(e=>decodeURIComponent(atob(e).split(\"\").map((e=>\"%\"+(\"00\"+e.charCodeAt(0).toString(16)).slice(-2))).join(\"\")))(e.replace(/_/g,\"/\").replace(/-/g,\"+\")),_=async(e,t)=>{const i=await fetch(e,t);return {ok:i.ok,json:await i.json()}},I=async(e,t,i)=>{const o=new AbortController;let n;return t.signal=o.signal,Promise.race([_(e,t),new Promise(((e,t)=>{n=setTimeout((()=>{o.abort(),t(new Error(\"Timeout when executing 'fetch'\"));}),i);}))]).finally((()=>{clearTimeout(n);}))},S=async(e,t,i,o,n,a,s)=>{return r={auth:{audience:t,scope:i},timeout:n,fetchUrl:e,fetchOptions:o,useFormData:s},c=a,new Promise((function(e,t){const i=new MessageChannel;i.port1.onmessage=function(o){o.data.error?t(new Error(o.data.error)):e(o.data),i.port1.close();},c.postMessage(r,[i.port2]);}));var r,c;},T=async(e,t,i,o,n,a,s=1e4)=>n?S(e,t,i,o,s,n,a):I(e,o,s);async function O(t,i){var{baseUrl:o,timeout:n,audience:a,scope:s,auth0Client:c,useFormData:u}=t,l=e(t,[\"baseUrl\",\"timeout\",\"audience\",\"scope\",\"auth0Client\",\"useFormData\"]);const h=u?b(l):JSON.stringify(l);return await async function(t,i,o,n,a,s,r){let c,u=null;for(let e=0;e<3;e++)try{c=await T(t,o,n,a,s,r,i),u=null;break}catch(e){u=e;}if(u)throw u;const l=c.json,{error:h,error_description:p}=l,g=e(l,[\"error\",\"error_description\"]),{ok:w}=c;if(!w){const e=p||`HTTP error. Unable to fetch ${t}`;if(\"mfa_required\"===h)throw new m(h,e,g.mfa_token);if(\"missing_refresh_token\"===h)throw new f(o,n);throw new d(h||\"request_error\",e)}return g}(`${o}/oauth/token`,n,a||\"default\",s,{method:\"POST\",body:h,headers:{\"Content-Type\":u?\"application/x-www-form-urlencoded\":\"application/json\",\"Auth0-Client\":btoa(JSON.stringify(c||r))}},i,u)}const j=(...e)=>{return (t=e.filter(Boolean).join(\" \").trim().split(/\\s+/),Array.from(new Set(t))).join(\" \");var t;};class C{constructor(e,t=\"@@auth0spajs@@\",i){this.prefix=t,this.suffix=i,this.clientId=e.clientId,this.scope=e.scope,this.audience=e.audience;}toKey(){return [this.prefix,this.clientId,this.audience,this.scope,this.suffix].filter(Boolean).join(\"::\")}static fromKey(e){const[t,i,o,n]=e.split(\"::\");return new C({clientId:i,scope:n,audience:o},t)}static fromCacheEntry(e){const{scope:t,audience:i,client_id:o}=e;return new C({scope:t,audience:i,clientId:o})}}class z{set(e,t){localStorage.setItem(e,JSON.stringify(t));}get(e){const t=window.localStorage.getItem(e);if(t)try{return JSON.parse(t)}catch(e){return}}remove(e){localStorage.removeItem(e);}allKeys(){return Object.keys(window.localStorage).filter((e=>e.startsWith(\"@@auth0spajs@@\")))}}class x{constructor(){this.enclosedCache=function(){let e={};return {set(t,i){e[t]=i;},get(t){const i=e[t];if(i)return i},remove(t){delete e[t];},allKeys:()=>Object.keys(e)}}();}}class P{constructor(e,t,i){this.cache=e,this.keyManifest=t,this.nowProvider=i||c;}async setIdToken(e,t,i){var o;const n=this.getIdTokenCacheKey(e);await this.cache.set(n,{id_token:t,decodedToken:i}),await(null===(o=this.keyManifest)||void 0===o?void 0:o.add(n));}async getIdToken(e){const t=await this.cache.get(this.getIdTokenCacheKey(e.clientId));if(!t&&e.scope&&e.audience){const t=await this.get(e);if(!t)return;if(!t.id_token||!t.decodedToken)return;return {id_token:t.id_token,decodedToken:t.decodedToken}}if(t)return {id_token:t.id_token,decodedToken:t.decodedToken}}async get(e,t=0){var i;let o=await this.cache.get(e.toKey());if(!o){const t=await this.getCacheKeys();if(!t)return;const i=this.matchExistingCacheKey(e,t);i&&(o=await this.cache.get(i));}if(!o)return;const n=await this.nowProvider(),a=Math.floor(n/1e3);return o.expiresAt-t<a?o.body.refresh_token?(o.body={refresh_token:o.body.refresh_token},await this.cache.set(e.toKey(),o),o.body):(await this.cache.remove(e.toKey()),void await(null===(i=this.keyManifest)||void 0===i?void 0:i.remove(e.toKey()))):o.body}async set(e){var t;const i=new C({clientId:e.client_id,scope:e.scope,audience:e.audience}),o=await this.wrapCacheEntry(e);await this.cache.set(i.toKey(),o),await(null===(t=this.keyManifest)||void 0===t?void 0:t.add(i.toKey()));}async clear(e){var t;const i=await this.getCacheKeys();i&&(await i.filter((t=>!e||t.includes(e))).reduce((async(e,t)=>{await e,await this.cache.remove(t);}),Promise.resolve()),await(null===(t=this.keyManifest)||void 0===t?void 0:t.clear()));}async wrapCacheEntry(e){const t=await this.nowProvider();return {body:e,expiresAt:Math.floor(t/1e3)+e.expires_in}}async getCacheKeys(){var e;return this.keyManifest?null===(e=await this.keyManifest.get())||void 0===e?void 0:e.keys:this.cache.allKeys?this.cache.allKeys():void 0}getIdTokenCacheKey(e){return new C({clientId:e},\"@@auth0spajs@@\",\"@@user@@\").toKey()}matchExistingCacheKey(e,t){return t.filter((t=>{var i;const o=C.fromKey(t),n=new Set(o.scope&&o.scope.split(\" \")),a=(null===(i=e.scope)||void 0===i?void 0:i.split(\" \"))||[],s=o.scope&&a.reduce(((e,t)=>e&&n.has(t)),!0);return \"@@auth0spajs@@\"===o.prefix&&o.clientId===e.clientId&&o.audience===e.audience&&s}))[0]}}class Z{constructor(e,t){this.storage=e,this.clientId=t,this.storageKey=`a0.spajs.txs.${this.clientId}`,this.transaction=this.storage.get(this.storageKey);}create(e){this.transaction=e,this.storage.save(this.storageKey,e,{daysUntilExpire:1});}get(){return this.transaction}remove(){delete this.transaction,this.storage.remove(this.storageKey);}}const K=e=>\"number\"==typeof e,L=[\"iss\",\"aud\",\"exp\",\"nbf\",\"iat\",\"jti\",\"azp\",\"nonce\",\"auth_time\",\"at_hash\",\"c_hash\",\"acr\",\"amr\",\"sub_jwk\",\"cnf\",\"sip_from_tag\",\"sip_date\",\"sip_callid\",\"sip_cseq_num\",\"sip_via_branch\",\"orig\",\"dest\",\"mky\",\"events\",\"toe\",\"txn\",\"rph\",\"sid\",\"vot\",\"vtm\"],E=e=>{if(!e.id_token)throw new Error(\"ID token is required but missing\");const t=(e=>{const t=e.split(\".\"),[i,o,n]=t;if(3!==t.length||!i||!o||!n)throw new Error(\"ID token could not be decoded\");const a=JSON.parse(v(o)),s={__raw:e},r={};return Object.keys(a).forEach((e=>{s[e]=a[e],L.includes(e)||(r[e]=a[e]);})),{encoded:{header:i,payload:o,signature:n},header:JSON.parse(v(i)),claims:s,user:r}})(e.id_token);if(!t.claims.iss)throw new Error(\"Issuer (iss) claim must be a string present in the ID token\");if(t.claims.iss!==e.iss)throw new Error(`Issuer (iss) claim mismatch in the ID token; expected \"${e.iss}\", found \"${t.claims.iss}\"`);if(!t.user.sub)throw new Error(\"Subject (sub) claim must be a string present in the ID token\");if(\"RS256\"!==t.header.alg)throw new Error(`Signature algorithm of \"${t.header.alg}\" is not supported. Expected the ID token to be signed with \"RS256\".`);if(!t.claims.aud||\"string\"!=typeof t.claims.aud&&!Array.isArray(t.claims.aud))throw new Error(\"Audience (aud) claim must be a string or array of strings present in the ID token\");if(Array.isArray(t.claims.aud)){if(!t.claims.aud.includes(e.aud))throw new Error(`Audience (aud) claim mismatch in the ID token; expected \"${e.aud}\" but was not one of \"${t.claims.aud.join(\", \")}\"`);if(t.claims.aud.length>1){if(!t.claims.azp)throw new Error(\"Authorized Party (azp) claim must be a string present in the ID token when Audience (aud) claim has multiple values\");if(t.claims.azp!==e.aud)throw new Error(`Authorized Party (azp) claim mismatch in the ID token; expected \"${e.aud}\", found \"${t.claims.azp}\"`)}}else if(t.claims.aud!==e.aud)throw new Error(`Audience (aud) claim mismatch in the ID token; expected \"${e.aud}\" but found \"${t.claims.aud}\"`);if(e.nonce){if(!t.claims.nonce)throw new Error(\"Nonce (nonce) claim must be a string present in the ID token\");if(t.claims.nonce!==e.nonce)throw new Error(`Nonce (nonce) claim mismatch in the ID token; expected \"${e.nonce}\", found \"${t.claims.nonce}\"`)}if(e.max_age&&!K(t.claims.auth_time))throw new Error(\"Authentication Time (auth_time) claim must be a number present in the ID token when Max Age (max_age) is specified\");if(null==t.claims.exp||!K(t.claims.exp))throw new Error(\"Expiration Time (exp) claim must be a number present in the ID token\");if(!K(t.claims.iat))throw new Error(\"Issued At (iat) claim must be a number present in the ID token\");const i=e.leeway||60,o=new Date(e.now||Date.now()),n=new Date(0);if(n.setUTCSeconds(t.claims.exp+i),o>n)throw new Error(`Expiration Time (exp) claim error in the ID token; current time (${o}) is after expiration time (${n})`);if(null!=t.claims.nbf&&K(t.claims.nbf)){const e=new Date(0);if(e.setUTCSeconds(t.claims.nbf-i),o<e)throw new Error(`Not Before time (nbf) claim in the ID token indicates that this token can't be used just yet. Current time (${o}) is before ${e}`)}if(null!=t.claims.auth_time&&K(t.claims.auth_time)){const n=new Date(0);if(n.setUTCSeconds(parseInt(t.claims.auth_time)+e.max_age+i),o>n)throw new Error(`Authentication Time (auth_time) claim in the ID token indicates that too much time has passed since the last end-user authentication. Current time (${o}) is after last auth at ${n}`)}if(e.organizationId){if(!t.claims.org_id)throw new Error(\"Organization ID (org_id) claim must be a string present in the ID token\");if(e.organizationId!==t.claims.org_id)throw new Error(`Organization ID (org_id) claim mismatch in the ID token; expected \"${e.organizationId}\", found \"${t.claims.org_id}\"`)}return t};var U=o((function(e,i){var o=t&&t.__assign||function(){return o=Object.assign||function(e){for(var t,i=1,o=arguments.length;i<o;i++)for(var n in t=arguments[i])Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);return e},o.apply(this,arguments)};function n(e,t){if(!t)return \"\";var i=\"; \"+e;return !0===t?i:i+\"=\"+t}function a(e,t,i){return encodeURIComponent(e).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/\\(/g,\"%28\").replace(/\\)/g,\"%29\")+\"=\"+encodeURIComponent(t).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent)+function(e){if(\"number\"==typeof e.expires){var t=new Date;t.setMilliseconds(t.getMilliseconds()+864e5*e.expires),e.expires=t;}return n(\"Expires\",e.expires?e.expires.toUTCString():\"\")+n(\"Domain\",e.domain)+n(\"Path\",e.path)+n(\"Secure\",e.secure)+n(\"SameSite\",e.sameSite)}(i)}function s(e){for(var t={},i=e?e.split(\"; \"):[],o=/(%[\\dA-F]{2})+/gi,n=0;n<i.length;n++){var a=i[n].split(\"=\"),s=a.slice(1).join(\"=\");'\"'===s.charAt(0)&&(s=s.slice(1,-1));try{t[a[0].replace(o,decodeURIComponent)]=s.replace(o,decodeURIComponent);}catch(e){}}return t}function r(){return s(document.cookie)}function c(e,t,i){document.cookie=a(e,t,o({path:\"/\"},i));}i.__esModule=!0,i.encode=a,i.parse=s,i.getAll=r,i.get=function(e){return r()[e]},i.set=c,i.remove=function(e,t){c(e,\"\",o(o({},t),{expires:-1}));};}));i(U),U.encode,U.parse,U.getAll;var W=U.get,X=U.set,N=U.remove;const R={get(e){const t=W(e);if(void 0!==t)return JSON.parse(t)},save(e,t,i){let o={};\"https:\"===window.location.protocol&&(o={secure:!0,sameSite:\"none\"}),(null==i?void 0:i.daysUntilExpire)&&(o.expires=i.daysUntilExpire),(null==i?void 0:i.cookieDomain)&&(o.domain=i.cookieDomain),X(e,JSON.stringify(t),o);},remove(e,t){let i={};(null==t?void 0:t.cookieDomain)&&(i.domain=t.cookieDomain),N(e,i);}},V={get(e){const t=R.get(e);return t||R.get(`_legacy_${e}`)},save(e,t,i){let o={};\"https:\"===window.location.protocol&&(o={secure:!0}),(null==i?void 0:i.daysUntilExpire)&&(o.expires=i.daysUntilExpire),(null==i?void 0:i.cookieDomain)&&(o.domain=i.cookieDomain),X(`_legacy_${e}`,JSON.stringify(t),o),R.save(e,t,i);},remove(e,t){let i={};(null==t?void 0:t.cookieDomain)&&(i.domain=t.cookieDomain),N(e,i),R.remove(e,t),R.remove(`_legacy_${e}`,t);}},D={get(e){if(\"undefined\"==typeof sessionStorage)return;const t=sessionStorage.getItem(e);return null!=t?JSON.parse(t):void 0},save(e,t){sessionStorage.setItem(e,JSON.stringify(t));},remove(e){sessionStorage.removeItem(e);}};function J(e,t,i){var o=void 0===t?null:t,n=function(e,t){var i=atob(e);if(t){for(var o=new Uint8Array(i.length),n=0,a=i.length;n<a;++n)o[n]=i.charCodeAt(n);return String.fromCharCode.apply(null,new Uint16Array(o.buffer))}return i}(e,void 0!==i&&i),a=n.indexOf(\"\\n\",10)+1,s=n.substring(a)+(o?\"//# sourceMappingURL=\"+o:\"\"),r=new Blob([s],{type:\"application/javascript\"});return URL.createObjectURL(r)}var F,H,G,M,A=(F=\"Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwohZnVuY3Rpb24oKXsidXNlIHN0cmljdCI7Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKHQscil7c3VwZXIociksdGhpcy5lcnJvcj10LHRoaXMuZXJyb3JfZGVzY3JpcHRpb249cixPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxlLnByb3RvdHlwZSl9c3RhdGljIGZyb21QYXlsb2FkKHtlcnJvcjp0LGVycm9yX2Rlc2NyaXB0aW9uOnJ9KXtyZXR1cm4gbmV3IGUodCxyKX19Y2xhc3MgdCBleHRlbmRzIGV7Y29uc3RydWN0b3IoZSxzKXtzdXBlcigibWlzc2luZ19yZWZyZXNoX3Rva2VuIixgTWlzc2luZyBSZWZyZXNoIFRva2VuIChhdWRpZW5jZTogJyR7cihlLFsiZGVmYXVsdCJdKX0nLCBzY29wZTogJyR7cihzKX0nKWApLHRoaXMuYXVkaWVuY2U9ZSx0aGlzLnNjb3BlPXMsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsdC5wcm90b3R5cGUpfX1mdW5jdGlvbiByKGUsdD1bXSl7cmV0dXJuIGUmJiF0LmluY2x1ZGVzKGUpP2U6IiJ9Y29uc3Qgcz1lPT57dmFye2NsaWVudElkOnR9PWUscj1mdW5jdGlvbihlLHQpe3ZhciByPXt9O2Zvcih2YXIgcyBpbiBlKU9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChlLHMpJiZ0LmluZGV4T2Yocyk8MCYmKHJbc109ZVtzXSk7aWYobnVsbCE9ZSYmImZ1bmN0aW9uIj09dHlwZW9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpe3ZhciBvPTA7Zm9yKHM9T2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTtvPHMubGVuZ3RoO28rKyl0LmluZGV4T2Yoc1tvXSk8MCYmT2JqZWN0LnByb3RvdHlwZS5wcm9wZXJ0eUlzRW51bWVyYWJsZS5jYWxsKGUsc1tvXSkmJihyW3Nbb11dPWVbc1tvXV0pfXJldHVybiByfShlLFsiY2xpZW50SWQiXSk7cmV0dXJuIG5ldyBVUkxTZWFyY2hQYXJhbXMoKGU9Pk9iamVjdC5rZXlzKGUpLmZpbHRlcigodD0+dm9pZCAwIT09ZVt0XSkpLnJlZHVjZSgoKHQscik9Pk9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSx0KSx7W3JdOmVbcl19KSkse30pKShPYmplY3QuYXNzaWduKHtjbGllbnRfaWQ6dH0scikpKS50b1N0cmluZygpfTtsZXQgbz17fTtjb25zdCBuPShlLHQpPT5gJHtlfXwke3R9YDthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwoYXN5bmMoe2RhdGE6e3RpbWVvdXQ6ZSxhdXRoOnIsZmV0Y2hVcmw6aSxmZXRjaE9wdGlvbnM6Yyx1c2VGb3JtRGF0YTphfSxwb3J0czpbZl19KT0+e2xldCBwO2NvbnN0e2F1ZGllbmNlOmwsc2NvcGU6dX09cnx8e307dHJ5e2NvbnN0IHI9YT8oZT0+e2NvbnN0IHQ9bmV3IFVSTFNlYXJjaFBhcmFtcyhlKSxyPXt9O3JldHVybiB0LmZvckVhY2goKChlLHQpPT57clt0XT1lfSkpLHJ9KShjLmJvZHkpOkpTT04ucGFyc2UoYy5ib2R5KTtpZighci5yZWZyZXNoX3Rva2VuJiYicmVmcmVzaF90b2tlbiI9PT1yLmdyYW50X3R5cGUpe2NvbnN0IGU9KChlLHQpPT5vW24oZSx0KV0pKGwsdSk7aWYoIWUpdGhyb3cgbmV3IHQobCx1KTtjLmJvZHk9YT9zKE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx7cmVmcmVzaF90b2tlbjplfSkpOkpTT04uc3RyaW5naWZ5KE9iamVjdC5hc3NpZ24oT2JqZWN0LmFzc2lnbih7fSxyKSx7cmVmcmVzaF90b2tlbjplfSkpfWxldCBkLGc7ImZ1bmN0aW9uIj09dHlwZW9mIEFib3J0Q29udHJvbGxlciYmKGQ9bmV3IEFib3J0Q29udHJvbGxlcixjLnNpZ25hbD1kLnNpZ25hbCk7dHJ5e2c9YXdhaXQgUHJvbWlzZS5yYWNlKFsoaD1lLG5ldyBQcm9taXNlKChlPT5zZXRUaW1lb3V0KGUsaCkpKSksZmV0Y2goaSxPYmplY3QuYXNzaWduKHt9LGMpKV0pfWNhdGNoKGUpe3JldHVybiB2b2lkIGYucG9zdE1lc3NhZ2Uoe2Vycm9yOmUubWVzc2FnZX0pfWlmKCFnKXJldHVybiBkJiZkLmFib3J0KCksdm9pZCBmLnBvc3RNZXNzYWdlKHtlcnJvcjoiVGltZW91dCB3aGVuIGV4ZWN1dGluZyAnZmV0Y2gnIn0pO3A9YXdhaXQgZy5qc29uKCkscC5yZWZyZXNoX3Rva2VuPygoKGUsdCxyKT0+e29bbih0LHIpXT1lfSkocC5yZWZyZXNoX3Rva2VuLGwsdSksZGVsZXRlIHAucmVmcmVzaF90b2tlbik6KChlLHQpPT57ZGVsZXRlIG9bbihlLHQpXX0pKGwsdSksZi5wb3N0TWVzc2FnZSh7b2s6Zy5vayxqc29uOnB9KX1jYXRjaChlKXtmLnBvc3RNZXNzYWdlKHtvazohMSxqc29uOntlcnJvcjplLmVycm9yLGVycm9yX2Rlc2NyaXB0aW9uOmUubWVzc2FnZX19KX12YXIgaH0pKX0oKTsKCg==\",H=null,G=!1,function(e){return M=M||J(F,H,G),new Worker(M,e)});const Y={};class B{constructor(e,t){this.cache=e,this.clientId=t,this.manifestKey=this.createManifestKeyFrom(this.clientId);}async add(e){var t;const i=new Set((null===(t=await this.cache.get(this.manifestKey))||void 0===t?void 0:t.keys)||[]);i.add(e),await this.cache.set(this.manifestKey,{keys:[...i]});}async remove(e){const t=await this.cache.get(this.manifestKey);if(t){const i=new Set(t.keys);return i.delete(e),i.size>0?await this.cache.set(this.manifestKey,{keys:[...i]}):await this.cache.remove(this.manifestKey)}}get(){return this.cache.get(this.manifestKey)}clear(){return this.cache.remove(this.manifestKey)}createManifestKeyFrom(e){return `@@auth0spajs@@::${e}`}}const $={memory:()=>(new x).enclosedCache,localstorage:()=>new z},q=e=>$[e],Q=t=>{const{openUrl:i,onRedirect:o}=t,n=e(t,[\"openUrl\",\"onRedirect\"]);return Object.assign(Object.assign({},n),{openUrl:!1===i||i?i:o})},ee=new a;class te{constructor(e){let t,i;if(this.userCache=(new x).enclosedCache,this.defaultOptions={authorizationParams:{scope:\"openid profile email\"},useRefreshTokensFallback:!1,useFormData:!0},this._releaseLockOnPageHide=async()=>{await ee.releaseLock(\"auth0.lock.getTokenSilently\"),window.removeEventListener(\"pagehide\",this._releaseLockOnPageHide);},this.options=Object.assign(Object.assign(Object.assign({},this.defaultOptions),e),{authorizationParams:Object.assign(Object.assign({},this.defaultOptions.authorizationParams),e.authorizationParams)}),\"undefined\"!=typeof window&&(()=>{if(!w())throw new Error(\"For security reasons, `window.crypto` is required to run `auth0-spa-js`.\");if(void 0===w().subtle)throw new Error(\"\\n auth0-spa-js must run on a secure origin. See https://github.com/auth0/auth0-spa-js/blob/master/FAQ.md#why-do-i-get-auth0-spa-js-must-run-on-a-secure-origin for more information.\\n \")})(),e.cache&&e.cacheLocation&&console.warn(\"Both `cache` and `cacheLocation` options have been specified in the Auth0Client configuration; ignoring `cacheLocation` and using `cache`.\"),e.cache)i=e.cache;else {if(t=e.cacheLocation||\"memory\",!q(t))throw new Error(`Invalid cache location \"${t}\"`);i=q(t)();}this.httpTimeoutMs=e.httpTimeoutInSeconds?1e3*e.httpTimeoutInSeconds:1e4,this.cookieStorage=!1===e.legacySameSiteCookie?R:V,this.orgHintCookieName=`auth0.${this.options.clientId}.organization_hint`,this.isAuthenticatedCookieName=(e=>`auth0.${e}.is.authenticated`)(this.options.clientId),this.sessionCheckExpiryDays=e.sessionCheckExpiryDays||1;const o=e.useCookiesForTransactions?this.cookieStorage:D;var n;this.scope=j(\"openid\",this.options.authorizationParams.scope,this.options.useRefreshTokens?\"offline_access\":\"\"),this.transactionManager=new Z(o,this.options.clientId),this.nowProvider=this.options.nowProvider||c,this.cacheManager=new P(i,i.allKeys?void 0:new B(i,this.options.clientId),this.nowProvider),this.domainUrl=(n=this.options.domain,/^https?:\\/\\//.test(n)?n:`https://${n}`),this.tokenIssuer=((e,t)=>e?e.startsWith(\"https://\")?e:`https://${e}/`:`${t}/`)(this.options.issuer,this.domainUrl),\"undefined\"!=typeof window&&window.Worker&&this.options.useRefreshTokens&&\"memory\"===t&&(this.worker=new A);}_url(e){const t=encodeURIComponent(btoa(JSON.stringify(this.options.auth0Client||r)));return `${this.domainUrl}${e}&auth0Client=${t}`}_authorizeUrl(e){return this._url(`/authorize?${b(e)}`)}async _verifyIdToken(e,t,i){const o=await this.nowProvider();return E({iss:this.tokenIssuer,aud:this.options.clientId,id_token:e,nonce:t,organizationId:i,leeway:this.options.leeway,max_age:(n=this.options.authorizationParams.max_age,\"string\"!=typeof n?n:parseInt(n,10)||void 0),now:o});var n;}_processOrgIdHint(e){e?this.cookieStorage.save(this.orgHintCookieName,e,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}):this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain});}async _prepareAuthorizeUrl(e,t,i){const o=k(y()),n=k(y()),a=y(),s=(e=>{const t=new Uint8Array(e);return (e=>{const t={\"+\":\"-\",\"/\":\"_\",\"=\":\"\"};return e.replace(/[+/=]/g,(e=>t[e]))})(window.btoa(String.fromCharCode(...Array.from(t))))})(await(async e=>{const t=w().subtle.digest({name:\"SHA-256\"},(new TextEncoder).encode(e));return await t})(a)),r=((e,t,i,o,n,a,s,r)=>Object.assign(Object.assign(Object.assign({client_id:e.clientId},e.authorizationParams),i),{scope:j(t,i.scope),response_type:\"code\",response_mode:r||\"query\",state:o,nonce:n,redirect_uri:s||e.authorizationParams.redirect_uri,code_challenge:a,code_challenge_method:\"S256\"}))(this.options,this.scope,e,o,n,s,e.redirect_uri||this.options.authorizationParams.redirect_uri||i,null==t?void 0:t.response_mode),c=this._authorizeUrl(r);return {nonce:n,code_verifier:a,scope:r.scope,audience:r.audience||\"default\",redirect_uri:r.redirect_uri,state:o,url:c}}async loginWithPopup(e,t){var i;if(e=e||{},!(t=t||{}).popup&&(t.popup=(e=>{const t=window.screenX+(window.innerWidth-400)/2,i=window.screenY+(window.innerHeight-600)/2;return window.open(e,\"auth0:authorize:popup\",`left=${t},top=${i},width=400,height=600,resizable,scrollbars=yes,status=1`)})(\"\"),!t.popup))throw new Error(\"Unable to open a popup for loginWithPopup - window.open returned `null`\");const o=await this._prepareAuthorizeUrl(e.authorizationParams||{},{response_mode:\"web_message\"},window.location.origin);t.popup.location.href=o.url;const n=await(e=>new Promise(((t,i)=>{let o;const n=setInterval((()=>{e.popup&&e.popup.closed&&(clearInterval(n),clearTimeout(a),window.removeEventListener(\"message\",o,!1),i(new p(e.popup)));}),1e3),a=setTimeout((()=>{clearInterval(n),i(new h(e.popup)),window.removeEventListener(\"message\",o,!1);}),1e3*(e.timeoutInSeconds||60));o=function(s){if(s.data&&\"authorization_response\"===s.data.type){if(clearTimeout(a),clearInterval(n),window.removeEventListener(\"message\",o,!1),e.popup.close(),s.data.response.error)return i(d.fromPayload(s.data.response));t(s.data.response);}},window.addEventListener(\"message\",o);})))(Object.assign(Object.assign({},t),{timeoutInSeconds:t.timeoutInSeconds||this.options.authorizeTimeoutInSeconds||60}));if(o.state!==n.state)throw new Error(\"Invalid state\");const a=(null===(i=e.authorizationParams)||void 0===i?void 0:i.organization)||this.options.authorizationParams.organization;await this._requestToken({audience:o.audience,scope:o.scope,code_verifier:o.code_verifier,grant_type:\"authorization_code\",code:n.code,redirect_uri:o.redirect_uri},{nonceIn:o.nonce,organizationId:a});}async getUser(){var e;const t=await this._getIdTokenFromCache();return null===(e=null==t?void 0:t.decodedToken)||void 0===e?void 0:e.user}async getIdTokenClaims(){var e;const t=await this._getIdTokenFromCache();return null===(e=null==t?void 0:t.decodedToken)||void 0===e?void 0:e.claims}async loginWithRedirect(t={}){var i;const o=Q(t),{openUrl:n,fragment:a,appState:s}=o,r=e(o,[\"openUrl\",\"fragment\",\"appState\"]),c=(null===(i=r.authorizationParams)||void 0===i?void 0:i.organization)||this.options.authorizationParams.organization,d=await this._prepareAuthorizeUrl(r.authorizationParams||{}),{url:u}=d,l=e(d,[\"url\"]);this.transactionManager.create(Object.assign(Object.assign(Object.assign({},l),{appState:s}),c&&{organizationId:c}));const h=a?`${u}#${a}`:u;n?await n(h):window.location.assign(h);}async handleRedirectCallback(e=window.location.href){const t=e.split(\"?\").slice(1);if(0===t.length)throw new Error(\"There are no query params available for parsing.\");const{state:i,code:o,error:n,error_description:a}=(e=>{e.indexOf(\"#\")>-1&&(e=e.substring(0,e.indexOf(\"#\")));const t=new URLSearchParams(e);return {state:t.get(\"state\"),code:t.get(\"code\")||void 0,error:t.get(\"error\")||void 0,error_description:t.get(\"error_description\")||void 0}})(t.join(\"\")),s=this.transactionManager.get();if(!s)throw new Error(\"Invalid state\");if(this.transactionManager.remove(),n)throw new u(n,a||n,i,s.appState);if(!s.code_verifier||s.state&&s.state!==i)throw new Error(\"Invalid state\");const r=s.organizationId,c=s.nonce,d=s.redirect_uri;return await this._requestToken(Object.assign({audience:s.audience,scope:s.scope,code_verifier:s.code_verifier,grant_type:\"authorization_code\",code:o},d?{redirect_uri:d}:{}),{nonceIn:c,organizationId:r}),{appState:s.appState}}async checkSession(e){if(!this.cookieStorage.get(this.isAuthenticatedCookieName)){if(!this.cookieStorage.get(\"auth0.is.authenticated\"))return;this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this.cookieStorage.remove(\"auth0.is.authenticated\");}try{await this.getTokenSilently(e);}catch(e){}}async getTokenSilently(e={}){var t;const i=Object.assign(Object.assign({cacheMode:\"on\"},e),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),e.authorizationParams),{scope:j(this.scope,null===(t=e.authorizationParams)||void 0===t?void 0:t.scope)})}),o=await((e,t)=>{let i=Y[t];return i||(i=e().finally((()=>{delete Y[t],i=null;})),Y[t]=i),i})((()=>this._getTokenSilently(i)),`${this.options.clientId}::${i.authorizationParams.audience}::${i.authorizationParams.scope}`);return e.detailedResponse?o:null==o?void 0:o.access_token}async _getTokenSilently(t){const{cacheMode:i}=t,o=e(t,[\"cacheMode\"]);if(\"off\"!==i){const e=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||\"default\",clientId:this.options.clientId});if(e)return e}if(\"cache-only\"!==i){if(!await(async(e,t=3)=>{for(let i=0;i<t;i++)if(await e())return !0;return !1})((()=>ee.acquireLock(\"auth0.lock.getTokenSilently\",5e3)),10))throw new l;try{if(window.addEventListener(\"pagehide\",this._releaseLockOnPageHide),\"off\"!==i){const e=await this._getEntryFromCache({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||\"default\",clientId:this.options.clientId});if(e)return e}const e=this.options.useRefreshTokens?await this._getTokenUsingRefreshToken(o):await this._getTokenFromIFrame(o),{id_token:t,access_token:n,oauthTokenScope:a,expires_in:s}=e;return Object.assign(Object.assign({id_token:t,access_token:n},a?{scope:a}:null),{expires_in:s})}finally{await ee.releaseLock(\"auth0.lock.getTokenSilently\"),window.removeEventListener(\"pagehide\",this._releaseLockOnPageHide);}}}async getTokenWithPopup(e={},t={}){var i;const o=Object.assign(Object.assign({},e),{authorizationParams:Object.assign(Object.assign(Object.assign({},this.options.authorizationParams),e.authorizationParams),{scope:j(this.scope,null===(i=e.authorizationParams)||void 0===i?void 0:i.scope)})});t=Object.assign(Object.assign({},s),t),await this.loginWithPopup(o,t);return (await this.cacheManager.get(new C({scope:o.authorizationParams.scope,audience:o.authorizationParams.audience||\"default\",clientId:this.options.clientId}))).access_token}async isAuthenticated(){return !!await this.getUser()}_buildLogoutUrl(t){null!==t.clientId?t.clientId=t.clientId||this.options.clientId:delete t.clientId;const i=t.logoutParams||{},{federated:o}=i,n=e(i,[\"federated\"]),a=o?\"&federated\":\"\";return this._url(`/v2/logout?${b(Object.assign({clientId:t.clientId},n))}`)+a}async logout(t={}){const i=Q(t),{openUrl:o}=i,n=e(i,[\"openUrl\"]);null===t.clientId?await this.cacheManager.clear():await this.cacheManager.clear(t.clientId||this.options.clientId),this.cookieStorage.remove(this.orgHintCookieName,{cookieDomain:this.options.cookieDomain}),this.cookieStorage.remove(this.isAuthenticatedCookieName,{cookieDomain:this.options.cookieDomain}),this.userCache.remove(\"@@user@@\");const a=this._buildLogoutUrl(n);o?await o(a):!1!==o&&window.location.assign(a);}async _getTokenFromIFrame(e){const t=Object.assign(Object.assign({},e.authorizationParams),{prompt:\"none\"}),i=this.cookieStorage.get(this.orgHintCookieName);i&&!t.organization&&(t.organization=i);const{url:o,state:n,nonce:a,code_verifier:s,redirect_uri:r,scope:c,audience:u}=await this._prepareAuthorizeUrl(t,{response_mode:\"web_message\"},window.location.origin);try{if(window.crossOriginIsolated)throw new d(\"login_required\",\"The application is running in a Cross-Origin Isolated context, silently retrieving a token without refresh token is not possible.\");const t=e.timeoutInSeconds||this.options.authorizeTimeoutInSeconds,i=await((e,t,i=60)=>new Promise(((o,n)=>{const a=window.document.createElement(\"iframe\");a.setAttribute(\"width\",\"0\"),a.setAttribute(\"height\",\"0\"),a.style.display=\"none\";const s=()=>{window.document.body.contains(a)&&(window.document.body.removeChild(a),window.removeEventListener(\"message\",r,!1));};let r;const c=setTimeout((()=>{n(new l),s();}),1e3*i);r=function(e){if(e.origin!=t)return;if(!e.data||\"authorization_response\"!==e.data.type)return;const i=e.source;i&&i.close(),e.data.response.error?n(d.fromPayload(e.data.response)):o(e.data.response),clearTimeout(c),window.removeEventListener(\"message\",r,!1),setTimeout(s,2e3);},window.addEventListener(\"message\",r,!1),window.document.body.appendChild(a),a.setAttribute(\"src\",e);})))(o,this.domainUrl,t);if(n!==i.state)throw new Error(\"Invalid state\");const h=await this._requestToken(Object.assign(Object.assign({},e.authorizationParams),{code_verifier:s,code:i.code,grant_type:\"authorization_code\",redirect_uri:r,timeout:e.authorizationParams.timeout||this.httpTimeoutMs}),{nonceIn:a});return Object.assign(Object.assign({},h),{scope:c,oauthTokenScope:h.scope,audience:u})}catch(e){throw \"login_required\"===e.error&&this.logout({openUrl:!1}),e}}async _getTokenUsingRefreshToken(e){const t=await this.cacheManager.get(new C({scope:e.authorizationParams.scope,audience:e.authorizationParams.audience||\"default\",clientId:this.options.clientId}));if(!(t&&t.refresh_token||this.worker)){if(this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(e);throw new f(e.authorizationParams.audience||\"default\",e.authorizationParams.scope)}const i=e.authorizationParams.redirect_uri||this.options.authorizationParams.redirect_uri||window.location.origin,o=\"number\"==typeof e.timeoutInSeconds?1e3*e.timeoutInSeconds:null;try{const n=await this._requestToken(Object.assign(Object.assign(Object.assign({},e.authorizationParams),{grant_type:\"refresh_token\",refresh_token:t&&t.refresh_token,redirect_uri:i}),o&&{timeout:o}));return Object.assign(Object.assign({},n),{scope:e.authorizationParams.scope,oauthTokenScope:n.scope,audience:e.authorizationParams.audience||\"default\"})}catch(t){if((t.message.indexOf(\"Missing Refresh Token\")>-1||t.message&&t.message.indexOf(\"invalid refresh token\")>-1)&&this.options.useRefreshTokensFallback)return await this._getTokenFromIFrame(e);throw t}}async _saveEntryInCache(t){const{id_token:i,decodedToken:o}=t,n=e(t,[\"id_token\",\"decodedToken\"]);this.userCache.set(\"@@user@@\",{id_token:i,decodedToken:o}),await this.cacheManager.setIdToken(this.options.clientId,t.id_token,t.decodedToken),await this.cacheManager.set(n);}async _getIdTokenFromCache(){const e=this.options.authorizationParams.audience||\"default\",t=await this.cacheManager.getIdToken(new C({clientId:this.options.clientId,audience:e,scope:this.scope})),i=this.userCache.get(\"@@user@@\");return t&&t.id_token===(null==i?void 0:i.id_token)?i:(this.userCache.set(\"@@user@@\",t),t)}async _getEntryFromCache({scope:e,audience:t,clientId:i}){const o=await this.cacheManager.get(new C({scope:e,audience:t,clientId:i}),60);if(o&&o.access_token){const{access_token:e,oauthTokenScope:t,expires_in:i}=o,n=await this._getIdTokenFromCache();return n&&Object.assign(Object.assign({id_token:n.id_token,access_token:e},t?{scope:t}:null),{expires_in:i})}}async _requestToken(e,t){const{nonceIn:i,organizationId:o}=t||{},n=await O(Object.assign({baseUrl:this.domainUrl,client_id:this.options.clientId,auth0Client:this.options.auth0Client,useFormData:this.options.useFormData,timeout:this.httpTimeoutMs},e),this.worker),a=await this._verifyIdToken(n.id_token,i,o);return await this._saveEntryInCache(Object.assign(Object.assign(Object.assign(Object.assign({},n),{decodedToken:a,scope:e.scope,audience:e.audience||\"default\"}),n.scope?{oauthTokenScope:n.scope}:null),{client_id:this.options.clientId})),this.cookieStorage.save(this.isAuthenticatedCookieName,!0,{daysUntilExpire:this.sessionCheckExpiryDays,cookieDomain:this.options.cookieDomain}),this._processOrgIdHint(a.claims.org_id),Object.assign(Object.assign({},n),{decodedToken:a})}}class ie{}\n\n/**\r\n * The initial auth state.\r\n */\r\nvar initialAuthState = {\r\n isAuthenticated: false,\r\n isLoading: true,\r\n};\n\n/**\r\n * @ignore\r\n */\r\nvar stub = function () {\r\n throw new Error('You forgot to wrap your component in <Auth0Provider>.');\r\n};\r\n/**\r\n * @ignore\r\n */\r\nvar initialContext = __assign(__assign({}, initialAuthState), { buildAuthorizeUrl: stub, buildLogoutUrl: stub, getAccessTokenSilently: stub, getAccessTokenWithPopup: stub, getIdTokenClaims: stub, loginWithRedirect: stub, loginWithPopup: stub, logout: stub, handleRedirectCallback: stub });\r\n/**\r\n * The Auth0 Context\r\n */\r\nvar Auth0Context = createContext(initialContext);\n\n/**\r\n * An OAuth2 error will come from the authorization server and will have at least an `error` property which will\r\n * be the error code. And possibly an `error_description` property\r\n *\r\n * See: https://openid.net/specs/openid-connect-core-1_0.html#rfc.section.3.1.2.6\r\n */\r\nvar OAuthError = /** @class */ (function (_super) {\r\n __extends(OAuthError, _super);\r\n function OAuthError(error, error_description) {\r\n var _this = _super.call(this, error_description || error) || this;\r\n _this.error = error;\r\n _this.error_description = error_description;\r\n // https://github.com/Microsoft/TypeScript-wiki/blob/master/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work\r\n Object.setPrototypeOf(_this, OAuthError.prototype);\r\n return _this;\r\n }\r\n return OAuthError;\r\n}(Error));\n\nvar CODE_RE = /[?&]code=[^&]+/;\r\nvar STATE_RE = /[?&]state=[^&]+/;\r\nvar ERROR_RE = /[?&]error=[^&]+/;\r\nvar hasAuthParams = function (searchParams) {\r\n if (searchParams === void 0) { searchParams = window.location.search; }\r\n return (CODE_RE.test(searchParams) || ERROR_RE.test(searchParams)) &&\r\n STATE_RE.test(searchParams);\r\n};\r\nvar normalizeErrorFn = function (fallbackMessage) {\r\n return function (error) {\r\n if ('error' in error) {\r\n return new OAuthError(error.error, error.error_description);\r\n }\r\n if (error instanceof Error) {\r\n return error;\r\n }\r\n return new Error(fallbackMessage);\r\n };\r\n};\r\nvar loginError = normalizeErrorFn('Login failed');\r\nvar tokenError = normalizeErrorFn('Get access token failed');\r\n/**\r\n * @ignore\r\n * Helper function to map the v1 `redirectUri` option to the v2 `authorizationParams.redirect_uri`\r\n * and log a warning.\r\n */\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\nvar deprecateRedirectUri = function (options) {\r\n var _a;\r\n if (options === null || options === void 0 ? void 0 : options.redirectUri) {\r\n console.warn('Using `redirectUri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `redirectUri` will be no longer supported in a future version');\r\n options.authorizationParams = options.authorizationParams || {};\r\n options.authorizationParams.redirect_uri = options.redirectUri;\r\n delete options.redirectUri;\r\n }\r\n if ((_a = options === null || options === void 0 ? void 0 : options.authorizationParams) === null || _a === void 0 ? void 0 : _a.redirectUri) {\r\n console.warn('Using `authorizationParams.redirectUri` has been deprecated, please use `authorizationParams.redirect_uri` instead as `authorizationParams.redirectUri` will be removed in a future version');\r\n options.authorizationParams.redirect_uri =\r\n options.authorizationParams.redirectUri;\r\n delete options.authorizationParams.redirectUri;\r\n }\r\n};\n\n/**\r\n * Handles how that state changes in the `useAuth0` hook.\r\n */\r\nvar reducer = function (state, action) {\r\n switch (action.type) {\r\n case 'LOGIN_POPUP_STARTED':\r\n return __assign(__assign({}, state), { isLoading: true });\r\n case 'LOGIN_POPUP_COMPLETE':\r\n case 'INITIALISED':\r\n return __assign(__assign({}, state), { isAuthenticated: !!action.user, user: action.user, isLoading: false, error: undefined });\r\n case 'HANDLE_REDIRECT_COMPLETE':\r\n case 'GET_ACCESS_TOKEN_COMPLETE':\r\n if (state.user === action.user) {\r\n return state;\r\n }\r\n return __assign(__assign({}, state), { isAuthenticated: !!action.user, user: action.user });\r\n case 'LOGOUT':\r\n return __assign(__assign({}, state), { isAuthenticated: false, user: undefined });\r\n case 'ERROR':\r\n return __assign(__assign({}, state), { isLoading: false, error: action.error });\r\n }\r\n};\n\n/**\r\n * @ignore\r\n */\r\nvar toAuth0ClientOptions = function (opts) {\r\n deprecateRedirectUri(opts);\r\n return __assign(__assign({}, opts), { auth0Client: {\r\n name: 'auth0-react',\r\n version: '2.0.1',\r\n } });\r\n};\r\n/**\r\n * @ignore\r\n */\r\nvar defaultOnRedirectCallback = function (appState) {\r\n window.history.replaceState({}, document.title, (appState === null || appState === void 0 ? void 0 : appState.returnTo) || window.location.pathname);\r\n};\r\n/**\r\n * ```jsx\r\n * <Auth0Provider\r\n * domain={domain}\r\n * clientId={clientId}\r\n * authorizationParams={{ redirect_uri: window.location.origin }}}>\r\n * <MyApp />\r\n * </Auth0Provider>\r\n * ```\r\n *\r\n * Provides the Auth0Context to its child components.\r\n */\r\nvar Auth0Provider = function (opts) {\r\n var children = opts.children, skipRedirectCallback = opts.skipRedirectCallback, _a = opts.onRedirectCallback, onRedirectCallback = _a === void 0 ? defaultOnRedirectCallback : _a, _b = opts.context, context = _b === void 0 ? Auth0Context : _b, clientOpts = __rest(opts, [\"children\", \"skipRedirectCallback\", \"onRedirectCallback\", \"context\"]);\r\n var client = useState(function () { return new te(toAuth0ClientOptions(clientOpts)); })[0];\r\n var _c = useReducer(reducer, initialAuthState), state = _c[0], dispatch = _c[1];\r\n var didInitialise = useRef(false);\r\n useEffect(function () {\r\n if (didInitialise.current) {\r\n return;\r\n }\r\n didInitialise.current = true;\r\n (function () { return __awaiter(void 0, void 0, void 0, function () {\r\n var user, appState, error_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 7, , 8]);\r\n user = void 0;\r\n if (!(hasAuthParams() && !skipRedirectCallback)) return [3 /*break*/, 3];\r\n return [4 /*yield*/, client.handleRedirectCallback()];\r\n case 1:\r\n appState = (_a.sent()).appState;\r\n return [4 /*yield*/, client.getUser()];\r\n case 2:\r\n user = _a.sent();\r\n onRedirectCallback(appState, user);\r\n return [3 /*break*/, 6];\r\n case 3: return [4 /*yield*/, client.checkSession()];\r\n case 4:\r\n _a.sent();\r\n return [4 /*yield*/, client.getUser()];\r\n case 5:\r\n user = _a.sent();\r\n _a.label = 6;\r\n case 6:\r\n dispatch({ type: 'INITIALISED', user: user });\r\n return [3 /*break*/, 8];\r\n case 7:\r\n error_1 = _a.sent();\r\n dispatch({ type: 'ERROR', error: loginError(error_1) });\r\n return [3 /*break*/, 8];\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n }); })();\r\n }, [client, onRedirectCallback, skipRedirectCallback]);\r\n var loginWithRedirect = useCallback(function (opts) {\r\n deprecateRedirectUri(opts);\r\n return client.loginWithRedirect(opts);\r\n }, [client]);\r\n var loginWithPopup = useCallback(function (options, config) { return __awaiter(void 0, void 0, void 0, function () {\r\n var error_2, user;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n dispatch({ type: 'LOGIN_POPUP_STARTED' });\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, client.loginWithPopup(options, config)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n error_2 = _a.sent();\r\n dispatch({ type: 'ERROR', error: loginError(error_2) });\r\n return [2 /*return*/];\r\n case 4: return [4 /*yield*/, client.getUser()];\r\n case 5:\r\n user = _a.sent();\r\n dispatch({ type: 'LOGIN_POPUP_COMPLETE', user: user });\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); }, [client]);\r\n var logout = useCallback(function (opts) {\r\n if (opts === void 0) { opts = {}; }\r\n return __awaiter(void 0, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, client.logout(opts)];\r\n case 1:\r\n _a.sent();\r\n if (opts.openUrl || opts.openUrl === false) {\r\n dispatch({ type: 'LOGOUT' });\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n }, [client]);\r\n var getAccessTokenSilently = useCallback(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n function (opts) { return __awaiter(void 0, void 0, void 0, function () {\r\n var token, error_3, _a;\r\n var _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 2, 3, 5]);\r\n return [4 /*yield*/, client.getTokenSilently(opts)];\r\n case 1:\r\n token = _c.sent();\r\n return [3 /*break*/, 5];\r\n case 2:\r\n error_3 = _c.sent();\r\n throw tokenError(error_3);\r\n case 3:\r\n _a = dispatch;\r\n _b = {\r\n type: 'GET_ACCESS_TOKEN_COMPLETE'\r\n };\r\n return [4 /*yield*/, client.getUser()];\r\n case 4:\r\n _a.apply(void 0, [(_b.user = _c.sent(),\r\n _b)]);\r\n return [7 /*endfinally*/];\r\n case 5: return [2 /*return*/, token];\r\n }\r\n });\r\n }); }, [client]);\r\n var getAccessTokenWithPopup = useCallback(function (opts, config) { return __awaiter(void 0, void 0, void 0, function () {\r\n var token, error_4, _a;\r\n var _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 2, 3, 5]);\r\n return [4 /*yield*/, client.getTokenWithPopup(opts, config)];\r\n case 1:\r\n token = _c.sent();\r\n return [3 /*break*/, 5];\r\n case 2:\r\n error_4 = _c.sent();\r\n throw tokenError(error_4);\r\n case 3:\r\n _a = dispatch;\r\n _b = {\r\n type: 'GET_ACCESS_TOKEN_COMPLETE'\r\n };\r\n return [4 /*yield*/, client.getUser()];\r\n case 4:\r\n _a.apply(void 0, [(_b.user = _c.sent(),\r\n _b)]);\r\n return [7 /*endfinally*/];\r\n case 5: return [2 /*return*/, token];\r\n }\r\n });\r\n }); }, [client]);\r\n var getIdTokenClaims = useCallback(function () { return client.getIdTokenClaims(); }, [client]);\r\n var handleRedirectCallback = useCallback(function (url) { return __awaiter(void 0, void 0, void 0, function () {\r\n var error_5, _a;\r\n var _b;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 2, 3, 5]);\r\n return [4 /*yield*/, client.handleRedirectCallback(url)];\r\n case 1: return [2 /*return*/, _c.sent()];\r\n case 2:\r\n error_5 = _c.sent();\r\n throw tokenError(error_5);\r\n case 3:\r\n _a = dispatch;\r\n _b = {\r\n type: 'HANDLE_REDIRECT_COMPLETE'\r\n };\r\n return [4 /*yield*/, client.getUser()];\r\n case 4:\r\n _a.apply(void 0, [(_b.user = _c.sent(),\r\n _b)]);\r\n return [7 /*endfinally*/];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n }); }, [client]);\r\n var contextValue = useMemo(function () {\r\n return __assign(__assign({}, state), { getAccessTokenSilently: getAccessTokenSilently, getAccessTokenWithPopup: getAccessTokenWithPopup, getIdTokenClaims: getIdTokenClaims, loginWithRedirect: loginWithRedirect, loginWithPopup: loginWithPopup, logout: logout, handleRedirectCallback: handleRedirectCallback });\r\n }, [\r\n state,\r\n getAccessTokenSilently,\r\n getAccessTokenWithPopup,\r\n getIdTokenClaims,\r\n loginWithRedirect,\r\n loginWithPopup,\r\n logout,\r\n handleRedirectCallback,\r\n ]);\r\n return React.createElement(context.Provider, { value: contextValue }, children);\r\n};\n\n/**\r\n * ```js\r\n * const {\r\n * // Auth state:\r\n * error,\r\n * isAuthenticated,\r\n * isLoading,\r\n * user,\r\n * // Auth methods:\r\n * getAccessTokenSilently,\r\n * getAccessTokenWithPopup,\r\n * getIdTokenClaims,\r\n * loginWithRedirect,\r\n * loginWithPopup,\r\n * logout,\r\n * } = useAuth0<TUser>();\r\n * ```\r\n *\r\n * Use the `useAuth0` hook in your components to access the auth state and methods.\r\n *\r\n * TUser is an optional type param to provide a type to the `user` field.\r\n */\r\nvar useAuth0 = function (context) {\r\n if (context === void 0) { context = Auth0Context; }\r\n return useContext(context);\r\n};\n\n/**\r\n * ```jsx\r\n * class MyComponent extends Component {\r\n * render() {\r\n * // Access the auth context from the `auth0` prop\r\n * const { user } = this.props.auth0;\r\n * return <div>Hello {user.name}!</div>\r\n * }\r\n * }\r\n * // Wrap your class component in withAuth0\r\n * export default withAuth0(MyComponent);\r\n * ```\r\n *\r\n * Wrap your class components in this Higher Order Component to give them access to the Auth0Context.\r\n *\r\n * Providing a context as the second argument allows you to configure the Auth0Provider the Auth0Context\r\n * should come from f you have multiple within your application.\r\n */\r\nvar withAuth0 = function (Component, context) {\r\n if (context === void 0) { context = Auth0Context; }\r\n return function WithAuth(props) {\r\n return (React.createElement(context.Consumer, null, function (auth) { return (React.createElement(Component, __assign({}, props, { auth0: auth }))); }));\r\n };\r\n};\n\n/**\r\n * @ignore\r\n */\r\nvar defaultOnRedirecting = function () { return React.createElement(React.Fragment, null); };\r\n/**\r\n * @ignore\r\n */\r\nvar defaultReturnTo = function () {\r\n return \"\".concat(window.location.pathname).concat(window.location.search);\r\n};\r\n/**\r\n * ```js\r\n * const MyProtectedComponent = withAuthenticationRequired(MyComponent);\r\n * ```\r\n *\r\n * When you wrap your components in this Higher Order Component and an anonymous user visits your component\r\n * they will be redirected to the login page and returned to the page they we're redirected from after login.\r\n */\r\nvar withAuthenticationRequired = function (Component, options) {\r\n if (options === void 0) { options = {}; }\r\n return function WithAuthenticationRequired(props) {\r\n var _this = this;\r\n var _a = options.returnTo, returnTo = _a === void 0 ? defaultReturnTo : _a, _b = options.onRedirecting, onRedirecting = _b === void 0 ? defaultOnRedirecting : _b, loginOptions = options.loginOptions, _c = options.context, context = _c === void 0 ? Auth0Context : _c;\r\n var _d = useAuth0(context), isAuthenticated = _d.isAuthenticated, isLoading = _d.isLoading, loginWithRedirect = _d.loginWithRedirect;\r\n useEffect(function () {\r\n if (isLoading || isAuthenticated) {\r\n return;\r\n }\r\n var opts = __assign(__assign({}, loginOptions), { appState: __assign(__assign({}, (loginOptions && loginOptions.appState)), { returnTo: typeof returnTo === 'function' ? returnTo() : returnTo }) });\r\n (function () { return __awaiter(_this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, loginWithRedirect(opts)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n }); })();\r\n }, [\r\n isLoading,\r\n isAuthenticated,\r\n loginWithRedirect,\r\n loginOptions,\r\n returnTo,\r\n ]);\r\n return isAuthenticated ? React.createElement(Component, __assign({}, props)) : onRedirecting();\r\n };\r\n};\n\nexport { Auth0Context, Auth0Provider, x as InMemoryCache, z as LocalStorageCache, OAuthError, ie as User, initialContext, useAuth0, withAuth0, withAuthenticationRequired };\n//# sourceMappingURL=auth0-react.esm.js.map\n","import { BrowserNotificationsIcon, WindowPlacementIcon } from '../icon-components';\nimport { PERMISSION_NAMES } from '../io-connect-home-provider/constants';\nimport type { PermissionNames } from '../io-connect-home-provider/types';\nimport type { PermissionStep } from './types';\n\nexport const PERMISSION_STEPS: Record<PermissionNames, PermissionStep> = {\n [PERMISSION_NAMES.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: PERMISSION_NAMES.WINDOW_MANAGEMENT as PermissionName });\n\n if (state === 'prompt') {\n handleDeferredPermission();\n }\n })\n .finally(handlePermissionsPromptClose);\n },\n },\n [PERMISSION_NAMES.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: PERMISSION_NAMES.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 classNames from 'classnames';\nimport type { HomePermissionStatus } from '../io-connect-home-provider/types';\nimport { PERMISSION_STEPS } from './constants';\nimport Icon from '../icon/icon';\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(({ stableName }) => stableName === permissionName);\n\n return (\n <li className={classNames('permissions-list-item', isActive && 'active')} key={permissionName}>\n <div>\n {status?.state === 'granted' ? (\n <Icon name=\"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 { InfoCard } from '../info-card/info-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 <InfoCard description={description} Image={ReopenPromptIcon} title=\"Something went wrong!\">\n <Button className=\"io-btn-primary permissions-prompt-button\" onClick={onReopenPromptClick}>\n Reopen the Prompt\n </Button>\n </InfoCard>\n );\n};\n","import type { PermissionNames } from '../io-connect-home-provider/types';\nimport { PERMISSION_STEPS } from './constants';\nimport { InfoCard } from '../info-card/info-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.stableName === 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 <InfoCard 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.stableName].guidelines[browserName] ||\n PERMISSION_STEPS[status.stableName].guidelines.default}\n </li>\n ))}\n </ul>\n </InfoCard>\n );\n};\n\nexport default UnsuccessfulSetup;\n","import { useEffect, useState } from 'react';\nimport { PERMISSION_NAMES } from '../io-connect-home-provider/constants';\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 ({ stableName, state }) => stableName === PERMISSION_NAMES.NOTIFICATIONS && state === 'granted'\n );\n\n if (isNotificationsPermissionGranted) {\n setHasEdgeNotificationsPermissionError(false);\n }\n }, [hasEdgeNotificationsPermissionError, permission.statuses]);\n\n return {\n hasEdgeNotificationsPermissionError,\n };\n};\n","export const Loader = () => {\n return <span className=\"loader\"></span>;\n};\n\nexport default Loader;","import { useState } from 'react';\nimport { Button } from 'reactstrap';\nimport { PERMISSION_STEPS } from './constants';\nimport { InfoCard } from '../info-card/info-card';\nimport { PermissionsList } from './permissions-list';\nimport { PERMISSION_NAMES } from '../io-connect-home-provider/constants';\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 { Loader } from '../loader';\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:\n isPermissionsPromptOpen && pendingPermission?.stableName === PERMISSION_NAMES.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.stableName];\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 <InfoCard description={step.description} heading={step.heading} Image={step.Image} title=\"First-Time User Setup\">\n <PermissionsList\n isActiveItem={(name) => name === pendingPermission.stableName}\n permissionStatuses={permission.statuses}\n />\n <p className=\"mb-12 permissions-prompt-instructions\">Click \"Allow\" when the prompt appears.</p>\n <Button\n className=\"io-btn-primary permissions-prompt-button\"\n disabled={isPermissionsPromptOpen}\n onClick={openPermissionsPrompt}\n >\n Open Permission Prompt\n </Button>\n {isPermissionsPromptOpen && <Loader />}\n </InfoCard>\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 { Loader } from '../loader';\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 <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 InfoPageContainer from '../info-page-container/info-page-container';\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 <InfoPageContainer Logo={Logo}>\n <PermissionsSetupFlow settings={{ ...DEFAULT_SETTINGS, ...settings }} />\n </InfoPageContainer>\n);\n\nexport default PermissionsSetup;\n","import classNames from 'classnames';\nimport { Loader } from '../loader';\nimport { LoginLogo } from './login-logo';\nimport { LoginPageComponents } from './types';\n\ninterface LogoutPageProps {\n components?: LoginPageComponents;\n className?: string;\n}\n\nexport const LogoutPage = ({ components, className }: LogoutPageProps) => {\n const Logo = components?.Logo || LoginLogo;\n\n return (\n <div className=\"logout-backdrop\">\n <div className={classNames(className, 'logout-container flex flex-column ai-center')}>\n <Logo />\n <h1 className=\"text-center mb-8\">Logging out...</h1>\n <Loader />\n </div>\n </div>\n );\n};\n\nexport default LogoutPage;\n","import { Form } from 'reactstrap';\nimport { Button } from '../../button/button';\n\nexport interface Auth0LoginFormProps {\n onLogin: () => void;\n}\n\nexport const Auth0LoginForm = ({ onLogin }: Auth0LoginFormProps) => {\n return (\n <Form>\n <Button onClick={onLogin} className=\"io-btn-primary\">\n Log In\n </Button>\n </Form>\n );\n};\n","export interface LoginHeadingProps {\n className?: string;\n text?: string;\n}\n\nexport const LoginHeading = ({ className = 'text-center mb-3', text = 'Making Your Work Flow' }: LoginHeadingProps) => {\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","import { Loader } from '../loader';\n\nexport const VerifyingCredentials = () => {\n return (\n <>\n <h1 className=\"text-center mb-8\">Verifying credentials...</h1>\n <Loader />\n </>\n );\n};\n","import classNames from 'classnames';\nimport { LoginLogo } from '../login-logo';\nimport { Auth0LoginForm } from './auth0-login-form';\nimport { LoginHeading } from '../login-heading';\nimport { LoginPageComponents } from '../types';\nimport { VerifyingCredentials } from '../verifying-credentials';\n\nexport interface Auth0LoginPageProps {\n className?: string;\n onLogin: () => void;\n isLoading: boolean;\n components?: LoginPageComponents;\n}\n\nexport const Auth0LoginPage = ({ className, onLogin, isLoading, components }: Auth0LoginPageProps) => {\n const Logo = components?.Logo || LoginLogo;\n const Heading = components?.Heading || LoginHeading;\n\n return (\n <div className={classNames(className, 'login-container flex flex-column ai-center')}>\n <Logo />\n {isLoading ? (\n <VerifyingCredentials />\n ) : (\n <>\n <Heading />\n <Auth0LoginForm onLogin={onLogin} />\n </>\n )}\n </div>\n );\n};\n\nexport default Auth0LoginPage;\n","import { LoginFormElementAction, LoginFormElementReducer, LoginFormElementState } from '../types';\n\nexport const inputReducer: LoginFormElementReducer = (_: LoginFormElementState, action: LoginFormElementAction) => {\n const value: string = action.value;\n\n const isValid = value.trim().length > 3;\n\n return { value, isValid };\n};\n","import React, { useReducer, useState } from 'react';\nimport { Button, FormGroup, Form } from 'reactstrap';\nimport classNames from 'classnames';\nimport Icon from '../../icon/icon';\nimport { inputReducer } from './reducers';\nimport { LoginFormElementReducer } from '../types';\n\nexport interface SimpleLoginFormProps {\n onLogin: (user: string, password: string) => Promise<void>;\n userInputName?: string;\n setIsLoading: React.Dispatch<React.SetStateAction<boolean>>;\n loginError: Error | null;\n setLoginError: React.Dispatch<React.SetStateAction<Error | null>>;\n}\n\nconst SimpleLoginForm = ({ onLogin, setIsLoading, loginError, setLoginError, userInputName }: SimpleLoginFormProps) => {\n const [user, dispatchUser] = useReducer<LoginFormElementReducer>(inputReducer, { value: '', isValid: false });\n const [password, dispatchPassword] = useReducer<LoginFormElementReducer>(inputReducer, { value: '', isValid: false });\n const [showUserError, setShowUserError] = useState<boolean>(false);\n const [showPasswordError, setShowPasswordError] = useState<boolean>(false);\n\n const { isValid: isUserValid } = user;\n const { isValid: isPasswordValid } = password;\n\n const isFormValid = isUserValid && isPasswordValid;\n\n const handleUserChange = (event: React.ChangeEvent<HTMLInputElement>) => dispatchUser({ value: event.target.value });\n\n const handlePasswordChange = (event: React.ChangeEvent<HTMLInputElement>) => dispatchPassword({ value: event.target.value });\n\n const handleUserBlur = () => {\n if (!isUserValid) {\n setShowUserError(true);\n }\n };\n\n const handlePasswordBlur = () => {\n if (!isPasswordValid) {\n setShowPasswordError(true);\n }\n };\n\n const handleSubmit = async (event: React.FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n\n if (!isFormValid) {\n return;\n }\n\n setIsLoading(true);\n\n try {\n await onLogin(user.value, password.value);\n } catch (error: any) {\n setLoginError(error);\n }\n\n setIsLoading(false);\n };\n\n return (\n <Form onSubmit={handleSubmit}>\n <FormGroup className=\"io-control-input io-control-error\">\n <input\n autoFocus\n autoComplete=\"off\"\n type=\"text\"\n placeholder={`Enter your ${userInputName ?? 'email'}`}\n value={user.value}\n onChange={handleUserChange}\n onBlur={handleUserBlur}\n onFocus={() => setShowUserError(false)}\n className={classNames('io-input', showUserError && 'input-error')}\n />\n {showUserError && (\n <div>\n <Icon name=\"close\" />\n {`The ${userInputName ?? 'email'} does not meet the length requirements`}\n </div>\n )}\n </FormGroup>\n\n <FormGroup className=\"io-control-input io-control-error\">\n <input\n autoComplete=\"off\"\n type=\"password\"\n placeholder=\"Enter your password\"\n value={password.value}\n onChange={handlePasswordChange}\n onBlur={handlePasswordBlur}\n onFocus={() => setShowPasswordError(false)}\n className={classNames('io-input', showPasswordError && 'input-error')}\n />\n {showPasswordError && (\n <div>\n <Icon name=\"close\" />\n The password does not meet the length requirements\n </div>\n )}\n </FormGroup>\n\n <Button type=\"submit\" className=\"io-btn-primary\">\n Log In\n </Button>\n\n {loginError && (\n <div className=\"pb-2 login-error-feedback\">\n <Icon name=\"close\" />\n <p>{loginError.message}</p>\n </div>\n )}\n </Form>\n );\n};\n\nexport default SimpleLoginForm;\n","import { useState } from 'react';\nimport classNames from 'classnames';\nimport SimpleLoginForm from './simple-login-form';\nimport { LoginHeading } from '../login-heading';\nimport { LoginLogo } from '../login-logo';\nimport { LoginPageComponents } from '../types';\nimport '../login.scss';\nimport { VerifyingCredentials } from '../verifying-credentials';\n\nexport interface SimpleLoginPageProps {\n className?: string;\n onLogin: (user: string, password: string) => Promise<void>;\n userInputName?: string;\n components?: LoginPageComponents;\n}\n\nexport const SimpleLoginPage = ({ className, onLogin, components, userInputName }: SimpleLoginPageProps) => {\n const [isLoading, setIsLoading] = useState(false);\n const [loginError, setLoginError] = useState<Error | null>(null);\n\n const Logo = components?.Logo || LoginLogo;\n const Heading = components?.Heading || LoginHeading;\n\n return (\n <div className={classNames(className, 'login-container simple-login flex flex-column ai-center')}>\n <Logo />\n {isLoading ? (\n <VerifyingCredentials />\n ) : (\n <>\n <Heading />\n <SimpleLoginForm\n onLogin={onLogin}\n setIsLoading={setIsLoading}\n loginError={loginError}\n setLoginError={setLoginError}\n userInputName={userInputName}\n />\n </>\n )}\n </div>\n );\n};\n","import { Decoder, object, optional } from 'decoder-validate';\nimport { User } from '../lib/io-connect-home/types';\nimport { nonEmptyStringDecoder } from './base';\n\nexport const userDecoder: Decoder<User> = object({\n id: nonEmptyStringDecoder,\n username: optional(nonEmptyStringDecoder),\n email: optional(nonEmptyStringDecoder),\n firstName: optional(nonEmptyStringDecoder),\n lastName: optional(nonEmptyStringDecoder),\n avatarUrl: optional(nonEmptyStringDecoder),\n});\n","import { LaunchpadSlidePanel } from '@interopio/home-ui-react';\nimport { LaunchpadConfig, User } from '../io-connect-home/types';\n\nexport interface WorkspaceLogoProps {\n onLogout?: () => void;\n user?: User | null;\n launchpad?: LaunchpadConfig;\n icon?: React.ReactElement;\n}\n\nexport const WorkspaceLogo = (props: WorkspaceLogoProps) => {\n const { onLogout, user, launchpad, icon } = props;\n\n return <LaunchpadSlidePanel user={user} onLogout={onLogout} icon={icon} components={launchpad?.components} />;\n};\n\nexport default WorkspaceLogo;\n","import { createContext, useContext } from 'react';\nimport { WorkspaceLogoProps } from '.';\n\nexport const WorkspaceComponentsContext = createContext<\n | {\n workspaceLogoProps: WorkspaceLogoProps;\n HeaderLogoArea?: React.ComponentType<WorkspaceLogoProps>;\n }\n | undefined\n>(undefined);\n\nexport const useWorkspaceComponentsContext = () => {\n const context = useContext(WorkspaceComponentsContext);\n\n if (context === undefined) {\n throw new Error('useWorkspaceComponentsContext must be used within an WorkspaceComponentsContextProvider');\n }\n\n return context;\n};\n","import { WorkspaceLogo } from './workspace-logo';\nimport { useWorkspaceComponentsContext } from './workspace-components-context';\n\nexport const HomeAppWorkspaceLogoArea = () => {\n const { HeaderLogoArea, workspaceLogoProps } = useWorkspaceComponentsContext();\n\n return HeaderLogoArea ? <HeaderLogoArea {...workspaceLogoProps} /> : <WorkspaceLogo {...workspaceLogoProps} />;\n};\n","import { IOConnectContext } from '@interopio/react-hooks';\nimport { IOConnectWorkspaces } from '@interopio/workspaces-api';\nimport { useEffect, useState, useContext } from 'react';\n\nexport function useAddWindowButtonVisible(workspaceId: string, groupId: string) {\n const [visible, setVisible] = useState(true);\n const io = useContext(IOConnectContext);\n\n useEffect(() => {\n let groupLockConfigUnsubscribe: IOConnectWorkspaces.Unsubscribe | undefined;\n\n (async () => {\n if (!io.workspaces) {\n return;\n }\n\n let workspace;\n\n try {\n workspace = await io.workspaces.getWorkspaceById(workspaceId);\n } catch (error) {\n console.warn(error);\n return;\n }\n\n const group = workspace.getAllGroups().find((group) => group.id === groupId);\n\n if (!group) {\n return;\n }\n\n groupLockConfigUnsubscribe = await group.onLockConfigurationChanged(({ showAddWindowButton }) => {\n if (showAddWindowButton === undefined) {\n return;\n }\n\n setVisible(showAddWindowButton);\n });\n\n setVisible(!!group.showAddWindowButton);\n })();\n\n return () => groupLockConfigUnsubscribe?.();\n }, [workspaceId, groupId, io.workspaces]);\n\n return visible;\n}\n","import { AddWindowButton, Bounds, showAddApplicationPopup } from '@interopio/workspaces-ui-react';\nimport { GroupHeaderComponentProps } from '@interopio/workspaces-ui-react/dist/cjs/types/api';\nimport { useAddWindowButtonVisible } from './useAddWindowButtonVisible';\nimport { useCallback } from 'react';\n\nexport const AfterTabs = ({ groupId, workspaceId }: GroupHeaderComponentProps) => {\n const visible = useAddWindowButtonVisible(workspaceId, groupId);\n\n const showPopup = useCallback(\n (bounds: Bounds) => {\n showAddApplicationPopup({\n bounds,\n groupId,\n workspaceId,\n });\n },\n [groupId, workspaceId]\n );\n\n return visible && <AddWindowButton title=\"Add App\" visible={visible} showPopup={showPopup} />;\n};\n\nexport default AfterTabs;\n","import { GroupHeaderButtons as DefaultGroupHeaderButtons, GroupHeaderButtonsProps } from '@interopio/workspaces-ui-react';\n\nexport const HeaderButtons = (props: GroupHeaderButtonsProps) => {\n return <DefaultGroupHeaderButtons {...props} addWindow={{ visible: false, showPopup: props.addWindow.showPopup }} />;\n};\n\nexport default HeaderButtons;\n","import Workspaces from '@interopio/workspaces-ui-react';\nimport { WorkspaceComponentsContext } from './workspace-components-context';\nimport { HomeAppWorkspaceLogoArea } from './home-app-workspace-logo-area';\nimport { User, WorkspacesConfig, LaunchpadConfig } from '../io-connect-home/types';\nimport AfterTabs from './after-tabs';\nimport HeaderButtons from './group-header-buttons';\n\ninterface HomeAppWorkspaceProps {\n onLogout?: () => void;\n user?: User | null;\n workspaces?: WorkspacesConfig;\n launchpad?: LaunchpadConfig;\n}\n\nexport const HomeAppWorkspace = ({ onLogout, user, workspaces, launchpad }: HomeAppWorkspaceProps) => {\n const HeaderLogoArea = workspaces?.HeaderLogoArea;\n const workspaceLogoProps = { onLogout, user, launchpad };\n\n return (\n <WorkspaceComponentsContext.Provider value={{ workspaceLogoProps, HeaderLogoArea }}>\n <Workspaces\n components={{\n ...workspaces?.components,\n header: {\n ...workspaces?.components?.header,\n LogoComponent: HomeAppWorkspaceLogoArea,\n },\n groupHeader: {\n AfterTabsComponent: AfterTabs,\n ButtonsComponent: HeaderButtons,\n ...workspaces?.components?.groupHeader,\n },\n }}\n />\n </WorkspaceComponentsContext.Provider>\n );\n};\n","import { IOConnectInitSettings } from '@interopio/react-hooks';\n\nexport const getIOConnectProviderSettings = (ioConnectConfig: IOConnectInitSettings, username: string) => {\n return {\n ...ioConnectConfig,\n browserPlatform: {\n ...ioConnectConfig.browserPlatform,\n config: {\n ...ioConnectConfig.browserPlatform?.config,\n user: ioConnectConfig.browserPlatform?.config?.user ?? { username },\n },\n },\n } as IOConnectInitSettings;\n};\n","import { useCallback, useState } from 'react';\nimport { IOConnectProvider } from '@interopio/react-hooks';\nimport { useIOConnectHome } from '../io-connect-home-provider/io-connect-home-provider';\nimport PermissionsSetup from '../permissions-setup/permissions-setup';\nimport { SimpleLoginPage, LogoutPage } from '../login';\nimport { userDecoder } from '../../decoders/user';\nimport { HomeAppWorkspace } from '../home-app-workspace';\nimport { useStorage } from '../../hooks';\nimport { getIOConnectProviderSettings } from './helpers';\nimport { USER_LOCAL_STORAGE_KEY } from '../../constants/storageKeys';\nimport { IOConnectHomeConfig, SimpleLoginConfig, User } from './types';\n\ninterface SimpleLoginHomeProps {\n config: IOConnectHomeConfig & { login: SimpleLoginConfig };\n}\n\nexport const SimpleLoginHome = ({ config }: SimpleLoginHomeProps) => {\n const { setupFlow, ioConnectConfig } = config;\n const loginConfig = config.login;\n const { permission } = useIOConnectHome();\n const [user, setUser] = useStorage<User>('localStorage', USER_LOCAL_STORAGE_KEY, userDecoder);\n const [isLoggingOut, setIsLoggingOut] = useState(false);\n\n const handleLogin = useCallback(\n async (user: string, password: string) => {\n const authenticatedUser = await loginConfig.onLogin(user, password);\n\n setUser(authenticatedUser);\n },\n [loginConfig, setUser]\n );\n\n const handleLogout = useCallback(() => {\n setIsLoggingOut(true);\n\n loginConfig.onLogout?.();\n\n setUser(null);\n }, [loginConfig, setUser]);\n\n if (isLoggingOut) {\n return <LogoutPage components={loginConfig.components} />;\n }\n\n if (!user) {\n return (\n <SimpleLoginPage onLogin={handleLogin} components={loginConfig.components} userInputName={loginConfig.userInputName} />\n );\n }\n\n if (!permission.isSetupCompleted && setupFlow?.enabled !== false) {\n return <PermissionsSetup settings={setupFlow?.settings} components={setupFlow?.components} />;\n }\n\n return (\n <IOConnectProvider settings={getIOConnectProviderSettings(ioConnectConfig, user.id)}>\n <HomeAppWorkspace workspaces={config?.workspaces} launchpad={config?.launchpad} onLogout={handleLogout} user={user} />\n </IOConnectProvider>\n );\n};\n","import { useAuth0 } from '@auth0/auth0-react';\nimport { IOConnectProvider } from '@interopio/react-hooks';\nimport { useIOConnectHome } from '../io-connect-home-provider/io-connect-home-provider';\nimport PermissionsSetup from '../permissions-setup/permissions-setup';\nimport { Auth0LoginPage } from '../login';\nimport { HomeAppWorkspace } from '../home-app-workspace';\nimport { getIOConnectProviderSettings } from './helpers';\nimport { Auth0LoginConfig, IOConnectHomeConfig, User } from './types';\nimport { useMemo } from 'react';\n\ninterface Auth0LoginHomeProps {\n config: IOConnectHomeConfig & { login: Auth0LoginConfig };\n}\n\nexport const Auth0LoginHome = ({ config }: Auth0LoginHomeProps) => {\n const { setupFlow, ioConnectConfig } = config;\n const { permission } = useIOConnectHome();\n const auth0 = useAuth0();\n\n const user = useMemo<User | null>(\n () => (auth0.user?.email ? { username: auth0.user.name, id: auth0.user.email } : null),\n [auth0.user]\n );\n\n if (!user) {\n return <Auth0LoginPage isLoading={auth0.isLoading} onLogin={auth0.loginWithPopup} components={config.login.components} />;\n }\n\n if (!permission.isSetupCompleted && setupFlow?.enabled !== false) {\n return <PermissionsSetup settings={setupFlow?.settings} components={setupFlow?.components} />;\n }\n\n return (\n <IOConnectProvider settings={getIOConnectProviderSettings(ioConnectConfig, user.id)}>\n <HomeAppWorkspace workspaces={config.workspaces} launchpad={config.launchpad} onLogout={auth0.logout} user={user} />\n </IOConnectProvider>\n );\n};\n","import { IOConnectProvider } from '@interopio/react-hooks';\nimport { useIOConnectHome } from '../io-connect-home-provider/io-connect-home-provider';\nimport PermissionsSetup from '../permissions-setup/permissions-setup';\nimport { HomeAppWorkspace } from '../home-app-workspace';\nimport { IOConnectHomeProps } from './types';\n\nexport const NoLoginHome = ({ config }: IOConnectHomeProps) => {\n const { setupFlow, ioConnectConfig } = config;\n const { permission } = useIOConnectHome();\n\n if (!permission.isSetupCompleted && setupFlow?.enabled !== false) {\n return <PermissionsSetup settings={setupFlow?.settings} components={setupFlow?.components} />;\n }\n\n return (\n <IOConnectProvider settings={ioConnectConfig}>\n <HomeAppWorkspace workspaces={config.workspaces} launchpad={config.launchpad} />\n </IOConnectProvider>\n );\n};\n","import { Decoder, anyJson, boolean, constant, object, oneOf, optional } from 'decoder-validate';\nimport { functionCheck, nonEmptyStringDecoder, nonNegativeNumberDecoder } from './base';\nimport {\n Auth0LoginConfig,\n IOConnectHomeConfig,\n LoginConfig,\n SimpleLoginConfig,\n SetupFlowComponents,\n SetupFlowConfig,\n SetupFlowSettings,\n WorkspacesConfig,\n LaunchpadConfig,\n} from '../lib/io-connect-home/types';\nimport { LoginPageComponents } from '../lib/login/types';\nimport { LaunchpadComponents } from '../lib/launchpad/types';\n\nconst loginPageComponentsDecoder: Decoder<LoginPageComponents> = object({\n Logo: optional(anyJson().andThen((result) => functionCheck(result, 'Logo'))),\n Heading: optional(anyJson().andThen((result) => functionCheck(result, 'Heading'))),\n});\n\nconst auth0LoginConfigDecoder: Decoder<Auth0LoginConfig> = object({\n type: constant('auth0'),\n providerOptions: anyJson(),\n components: optional(loginPageComponentsDecoder),\n});\n\nconst simpleLoginConfigDecoder: Decoder<SimpleLoginConfig> = object({\n type: constant('simple'),\n onLogin: anyJson().andThen((result) => functionCheck(result, 'onLogin')),\n onLogout: optional(anyJson().andThen((result) => functionCheck(result, 'onLogout'))),\n userInputName: optional(nonEmptyStringDecoder),\n components: optional(loginPageComponentsDecoder),\n});\n\nconst loginConfigDecoder: Decoder<LoginConfig> = oneOf<LoginConfig>(auth0LoginConfigDecoder, simpleLoginConfigDecoder);\n\nconst setupFlowSettingsDecoder: Decoder<SetupFlowSettings> = object({\n edgeNotificationsPermissionTimeout: optional(nonNegativeNumberDecoder),\n});\n\nconst setupFlowComponentsDecoder: Decoder<SetupFlowComponents> = object({\n Logo: optional(anyJson().andThen((result) => functionCheck(result, 'Logo'))),\n});\n\nconst setupFlowConfigDecoder: Decoder<SetupFlowConfig> = object({\n enabled: optional(boolean()),\n components: optional(setupFlowComponentsDecoder),\n settings: optional(setupFlowSettingsDecoder),\n});\n\nconst workspacesConfigDecoder: Decoder<WorkspacesConfig> = object({\n components: optional(anyJson()),\n HeaderLogoArea: optional(anyJson().andThen((result) => functionCheck(result, 'HeaderLogoArea'))),\n});\n\nconst launchpadComponentsDecoder: Decoder<LaunchpadComponents> = object({\n sections: optional(anyJson()),\n Sections: optional(anyJson().andThen((result) => functionCheck(result, 'Sections'))),\n NotificationsPanel: optional(\n oneOf(\n anyJson().andThen((result) => functionCheck(result, 'NotificationsPanel')),\n constant(null)\n )\n ),\n UserPanel: optional(\n oneOf(\n anyJson().andThen((result) => functionCheck(result, 'UserPanel')),\n constant(null)\n )\n ),\n});\n\nconst launchpadConfigDecoder: Decoder<LaunchpadConfig> = object({\n components: optional(launchpadComponentsDecoder),\n});\n\nexport const ioConnectHomeConfigDecoder: Decoder<IOConnectHomeConfig> = object({\n ioConnectConfig: anyJson(),\n login: optional(loginConfigDecoder),\n setupFlow: optional(setupFlowConfigDecoder),\n workspaces: optional(workspacesConfigDecoder),\n launchpad: optional(launchpadConfigDecoder),\n});\n","import { Auth0Provider } from '@auth0/auth0-react';\nimport { SimpleLoginHome } from './simple-login-home';\nimport { Auth0LoginHome } from './auth0-login-home';\nimport { NoLoginHome } from './no-login-home';\nimport { Auth0LoginConfig, IOConnectHomeConfig, IOConnectHomeProps, SimpleLoginConfig } from './types';\nimport { ioConnectHomeConfigDecoder } from '../../decoders/config';\n\nexport const HomeApp = ({ config }: IOConnectHomeProps) => {\n const validatedConfig = ioConnectHomeConfigDecoder.runWithException(config);\n const loginConfig = validatedConfig.login;\n const launchpadComponentsConfig = validatedConfig.launchpad?.components;\n\n if (launchpadComponentsConfig?.sections && launchpadComponentsConfig?.Sections) {\n throw new Error('Launchpad sections are overspecified. Please provide either a JSX element or a React component.');\n }\n\n if (loginConfig?.type === 'simple') {\n return <SimpleLoginHome config={validatedConfig as IOConnectHomeConfig & { login: SimpleLoginConfig }} />;\n }\n\n if (loginConfig?.type === 'auth0') {\n const { providerOptions } = loginConfig;\n\n return (\n <Auth0Provider\n {...providerOptions}\n authorizationParams={{\n ...providerOptions.authorizationParams,\n redirect_uri: providerOptions.authorizationParams?.redirect_uri ?? window.location.origin,\n }}\n >\n <Auth0LoginHome config={validatedConfig as IOConnectHomeConfig & { login: Auth0LoginConfig }} />\n </Auth0Provider>\n );\n }\n\n return <NoLoginHome config={validatedConfig} />;\n};\n","export const useIsBrowserSupported = (): boolean => {\n return 'getScreenDetails' in window;\n};\n","import { IOConnectHomeProvider } from '../io-connect-home-provider/io-connect-home-provider';\nimport { HomeApp } from './home-app';\nimport BrowserNotSupported from '../browser-not-supported/browser-not-supported';\nimport { useIsBrowserSupported } from '../../hooks/useIsBrowserSupported';\nimport { IOConnectHomeProps } from './types';\n\nexport const IOConnectHome = ({ config }: IOConnectHomeProps) => {\n const isBrowserSupported = useIsBrowserSupported();\n\n if (!isBrowserSupported) {\n return <BrowserNotSupported />;\n }\n\n return (\n <IOConnectHomeProvider>\n <HomeApp config={config} />\n </IOConnectHomeProvider>\n );\n};\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 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=\"io-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 { DefaultSectionProps } from '../../common/types';\nimport type { SectionType } from '../section/types';\nimport type { Workspace } from './types';\nimport { WORKSPACE_ACTIONS } from '../context-menu/constants';\nimport { SORT_ORDER } from '../../constants/sortOrder';\nimport { ascendingTitleCompare, descendingTitleCompare, sortItems } from '../../helpers/sort';\n\nexport const getWorkspacesSectionConfig = (\n workspaces: Workspace[],\n runningInstances: {\n [appName: string]: string[];\n },\n settings: DefaultSectionProps\n): SectionType => {\n const { isSectionCollapsible, sortOrder = SORT_ORDER.ASCENDING, ...rest } = settings;\n\n const sortedWorkspaces = sortItems({\n items: workspaces,\n sortOrder,\n ascendingCompare: ascendingTitleCompare,\n descendingCompare: descendingTitleCompare,\n });\n\n const workspaceItems = sortedWorkspaces.map((workspace) => ({\n ...workspace,\n type: ITEM_TYPES.WORKSPACE,\n isOpen: runningInstances[workspace.title]?.length > 0,\n contextMenuActions: WORKSPACE_ACTIONS,\n }));\n\n return {\n id: 'workspaces-section',\n title: 'Workspaces',\n items: workspaceItems,\n isCollapsible: isSectionCollapsible,\n ...rest,\n };\n};\n","import { useMemo } from 'react';\nimport { getWorkspacesSectionConfig } from './helpers';\nimport Section from '../section/section';\nimport { useRestoreWorkspace, useWorkspaces, useWorkspacesInstances, useExecuteWorkspaceAction } from '../../hooks';\nimport type { SectionItemType } from '../section/types';\nimport { DefaultSectionProps } from '../../common/types';\nimport { PaginationSettings } from '../base-section/types';\n\nexport const WorkspacesSection = (props: DefaultSectionProps) => {\n const { displayCount, isSectionCollapsible, showAllItems, sortOrder } = props;\n const workspaces = useWorkspaces();\n const runningInstances = useWorkspacesInstances();\n const restoreWorkspace = useRestoreWorkspace();\n const executeWorkspaceAction = useExecuteWorkspaceAction();\n\n const config = useMemo(() => {\n const paginationSettings = {\n displayCount,\n showAllItems,\n } as PaginationSettings;\n\n return getWorkspacesSectionConfig(workspaces, runningInstances, {\n ...paginationSettings,\n isSectionCollapsible,\n sortOrder,\n });\n }, [workspaces, runningInstances, displayCount, isSectionCollapsible, showAllItems, sortOrder]);\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","import FavoritesSection from '../favorites-section/favorites-section';\nimport WorkspacesSection from '../workspaces-section/workspaces-section';\nimport ApplicationsSection from '../applications-section/applications-section';\n\nexport const DefaultSections = () => (\n <>\n <FavoritesSection />\n <WorkspacesSection />\n <ApplicationsSection />\n </>\n);\n\nexport default DefaultSections;\n","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 <div data-testid=\"available-layouts\">\n <h6>Available Layouts</h6>\n {layouts.map((layout) => (\n <div\n key={layout.name}\n className={classNames('layouts-item flex ai-center', layout.isSelected && 'active')}\n data-testid=\"layout-item\"\n >\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 </div>\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 testId: 'save-button',\n },\n {\n label: 'Restore',\n type: 'restore',\n onClick: createActionClickHandler(() => {\n if (!selectedLayout) {\n return;\n }\n\n restoreLayout(selectedLayout.name);\n }),\n testId: 'restore-button',\n },\n ];\n\n return (\n <div className={classNames('layout-actions', className)} data-testid=\"layout-actions\">\n {actions.map(({ label, type, disabled, onClick, testId }) => (\n <button key={type} onClick={onClick} disabled={disabled} className=\"io-btn\" data-testid={testId}>\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\n className={classNames('layout-notification', `layout-notification-${type}`, className)}\n data-testid=\"layout-notification\"\n >\n <Icon size={12} name={NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING[type]} />\n <span data-testid=\"layout-notification-message\">{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} data-testid=\"layouts-panel\">\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 data-testid=\"selected-layout\"\n >\n <span className={classNames('name', { hidden: show })} data-testid=\"selected-layout-name\">\n {selectedLayout?.name || 'No selected layout'}\n </span>\n <div className=\"flex ai-center\" data-testid=\"layout-actions-and-toggle\">\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 data-testid=\"layouts-panel-toggle\"\n />\n </div>\n </div>\n\n <Collapse isOpen={show}>\n <div className=\"layouts-container\">\n <div className=\"layouts-settings\">\n <input\n className=\"io-input\"\n onChange={(event) => setInputValue(event.target.value)}\n value={inputValue}\n data-testid=\"layout-name-input\"\n />\n <LayoutActions className=\"group\" inputValue={inputValue} setNotification={setNotification} />\n </div>\n\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 </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=\"io-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 { useContext } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { getInitials } from '../../helpers/string';\nimport { User } from '../io-connect-home/types';\n\nexport interface UserDetailsCardProps {\n user?: User | null;\n}\n\nexport const UserDetailsCard = ({ user }: UserDetailsCardProps) => {\n const io = useContext(IOConnectContext);\n\n const name = user?.username || '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 UserDetailsCard;\n","import { useContext, useEffect, useState } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { IOConnectBrowser } from '@interopio/browser';\nimport { ButtonGroup } from '../button-group/button-group';\nimport { ButtonProps } from '../button/button';\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 { HTMLProps, useContext } from 'react';\nimport { IOConnectContext } from '@interopio/react-hooks';\nimport { IOConnectBrowser } from '@interopio/browser';\nimport { useStorage } from '../../hooks';\nimport Button from '../button/button';\nimport { layoutStorageValueDecoder } from '../../decoders/layouts';\nimport { SELECTED_LAYOUT_SESSION_STORAGE_KEY } from '../../constants/storageKeys';\nimport { User } from '../io-connect-home/types';\n\nexport interface SupportCardProps {\n title?: string;\n description?: string;\n links?: HTMLProps<HTMLAnchorElement>[];\n onLogout?: () => void;\n user?: User | null;\n}\n\nexport const SupportCard = ({ title, description, links = [], onLogout, user }: SupportCardProps) => {\n const [_, setSelectedLayout] = useStorage('sessionStorage', SELECTED_LAYOUT_SESSION_STORAGE_KEY, layoutStorageValueDecoder);\n const io = useContext(IOConnectContext) as IOConnectBrowser.API;\n\n const handleLogout = async () => {\n try {\n onLogout?.();\n } catch (error) {\n console.error(error);\n }\n\n setSelectedLayout(null);\n\n await io.webPlatform?.system.shutdown();\n\n window.location.reload();\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 {user?.id && (\n <div>\n <Button onClick={handleLogout}>Log Out</Button>\n </div>\n )}\n </div>\n );\n};\n\nexport default SupportCard;\n","import { User } from '../io-connect-home/types';\nimport UserDetailsCard from './user-details-card';\nimport SettingsCard from './settings-card';\nimport SupportCard from './support-card';\n\nexport interface UserPanelProps {\n onLogout?: () => void;\n user?: User | null;\n}\n\nexport const UserPanel = ({ onLogout, user }: UserPanelProps) => {\n return (\n <>\n <UserDetailsCard user={user} />\n <SettingsCard />\n <SupportCard onLogout={onLogout} user={user} />\n </>\n );\n};\n\nexport default UserPanel;\n","import classNames from 'classnames';\n\ninterface UserPanelIconProps extends React.HTMLAttributes<HTMLDivElement> {\n initials: string;\n}\n\nexport const UserPanelIcon = (props: UserPanelIconProps) => {\n const { initials, className, ...rest } = props;\n\n return (\n <div className={classNames(className, 'user-panel-icon')} {...rest}>\n {initials}\n </div>\n );\n};\n\nexport default UserPanelIcon;\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 io-btn io-btn-icon\" size={16} name=\"close\" />}\n {children}\n </div>\n </dialog>\n );\n};\n\nexport default Dialog;\n","import React, { useState, useEffect, useRef } from 'react';\nimport classNames from 'classnames';\nimport { getInitials } from '../../helpers/string';\nimport { LaunchpadAPIProvider } from './launchpad.context';\nimport { SectionProvider } from '../section/section.context';\nimport Icon from '../icon/icon';\nimport SearchBar from '../search/search-bar/search-bar';\nimport SearchResultsSection from '../search/search-results-section/search-results-section';\nimport DefaultSections from './default-sections';\nimport LayoutsPanel from '../layouts-panel/layouts-panel';\nimport { NotificationsIcon, NotificationsPanel } from '../notifications-panel';\nimport UserPanel from '../user-panel/user-panel';\nimport UserPanelIcon from '../user-panel/user-panel-icon';\nimport Dialog from '../dialog/dialog';\nimport { onClickA11y } from '../../helpers/a11y';\nimport { User } from '../io-connect-home/types';\nimport { LaunchpadComponents } from './types';\nimport '@interopio/theme';\nimport './launchpad.scss';\n\nexport interface LaunchpadProps extends React.HTMLProps<HTMLDivElement> {\n open: boolean;\n setOpen: React.Dispatch<React.SetStateAction<boolean>>;\n onLogout?: () => void;\n components?: LaunchpadComponents;\n user?: User | null;\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 const isNotificationsPanelEnabled = components?.NotificationsPanel !== null;\n const isUserPanelEnabled = components?.UserPanel !== null;\n\n const LaunchpadNotificationsPanel = components?.NotificationsPanel ?? NotificationsPanel;\n const LaunchpadUserPanel = components?.UserPanel ?? UserPanel;\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 userProvidedSections = components.Sections ? <components.Sections /> : components.sections;\n\n const sections = (\n <SectionProvider>\n <ul>{userProvidedSections ?? <DefaultSections />}</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 {isNotificationsPanelEnabled && (\n <NotificationsIcon\n aria-label=\"Notifications\"\n role=\"button\"\n {...onClickA11y(() => setNotificationDialogOpen(true))}\n />\n )}\n {isUserPanelEnabled && (\n <UserPanelIcon\n initials={getInitials(user?.username || 'N A')}\n aria-label=\"Profile and Settings\"\n role=\"button\"\n {...onClickA11y(() => setProfileDialogOpen(true))}\n />\n )}\n </div>\n <Icon className=\"btn-close io-btn io-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 {isNotificationsPanelEnabled && (\n <Dialog open={notificationDialogOpen} closeFn={() => setNotificationDialogOpen(false)}>\n <LaunchpadNotificationsPanel />\n </Dialog>\n )}\n {isUserPanelEnabled && (\n <Dialog open={profileDialogOpen} closeFn={() => setProfileDialogOpen(false)}>\n <LaunchpadUserPanel onLogout={onLogout} user={user} />\n </Dialog>\n )}\n </LaunchpadAPIProvider>\n );\n}\n\nexport default Launchpad;\n","import { Logo as IOConnectLogo } from '@interopio/workspaces-ui-react';\nimport { NotificationsBadge } from '../notifications-panel';\n\nexport const Logo = () => {\n return (\n <>\n <IOConnectLogo frameId=\"\" />\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: React.ReactElement;\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={`io-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';\nimport { Logo } from '../logo/logo';\nimport { User } from '../io-connect-home/types';\nimport { LaunchpadComponents } from '../launchpad/types';\n\nexport interface LaunchpadSlidePanelProps {\n icon?: React.ReactElement;\n components?: LaunchpadComponents;\n onLogout?: () => void;\n user?: User | null;\n}\n\nexport const LaunchpadSlidePanel = (props: LaunchpadSlidePanelProps) => {\n const { icon, components, user, onLogout } = props;\n\n return (\n <SlidePanel icon={icon ?? <Logo />}>\n {({ open, setOpen }) => (\n <Launchpad open={open} setOpen={setOpen} components={components} user={user} onLogout={onLogout} />\n )}\n </SlidePanel>\n );\n};\n"],"names":["isSection","item","ITEM_TYPES","APPLICATION_ACTIONS","WORKSPACE_ACTIONS","SORT_ORDER","collator","ascendingTitleCompare","a","b","descendingTitleCompare","sortItems","config","items","sortOrder","ascendingCompare","descendingCompare","compareFunction","generateItems","newItem","path","settings","isFolderCollapsible","rest","separator","currentFolder","nestedFolders","sectionIndex","section","getTitle","application","generateFullPath","title","folder","ascendingApplicationsCompare","descendingApplicationsCompare","getApplicationsSectionConfig","applications","runningInstances","isSectionCollapsible","hasOwn","classNames","classes","i","arg","argType","inner","key","module","isClickKeypress","event","onClickA11y","clickHandler","keydownHandler","keyboardNavigation","currentIndex","moveFocus","min","max","onClose","Icon","forwardRef","props","ref","name","size","className","handleClick","jsx","ImgIcon","alt","BaseSectionHeader","iconSrc","iconName","isOpen","showCollapseIcon","showHoverIndicator","domProps","jsxs","useApplications","setApplications","useState","io","useContext","IOConnectContext","useEffect","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","USER_LOCAL_STORAGE_KEY","useStorage","type","decoder","storedValue","setStoredValue","error","customEventType","eventHandler","setValue","useCallback","value","decoderResult","valueToStore","ok","result","err","asPromise","r","withDefault","defaultValue","withException","map","f","map2","ar","br","mapError","andThen","__assign","t","s","n","p","__rest","isEqual","keys","isJsonArray","json","isJsonObject","typeString","expectedGot","expected","got","printPath","paths","prependAt","newAt","_a","at","Decoder","decode","_this","test","errorMessage","decoders","obj","decodeValue_1","v","err$$1","acc","arr","nth","ad","bd","_i","ds","errors","errorsList","jsonAtPath","fixedValue","mkDecoder","string","number","boolean","anyJson","constant","object","array","optional","oneOf","fail","nonEmptyStringDecoder","nonNegativeNumberDecoder","num","functionCheck","input","propDescription","providedType","contextMenuActionDecoder","favoriteEntityDecoder","favoriteEntitiesStorageValueDecoder","useFavoriteEntities","favoriteEntitiesStoredValue","setFavoriteEntitiesStoredValue","favoriteEntities","useMemo","existingEntity","entity","entitiesToStore","id","useFrame","currentFrame","setCurrentFrame","frameID","getFrameId","useInvokeInteropMethod","action","method","useLayouts","layouts","setLayouts","isUnsubscribed","unsubscribeOnAdded","addedLayout","unsubscribeOnRemoved","removedLayout","layout","useNotifications","notifications","setNotifications","unsubscribeOnRaised","raisedNotification","current","unsubscribeOnClosed","closedNotification","notification","SEVERITY_ORDER","SEVERITY_COLORS","SORT_KEY","DEFAULT_SORT","sortByTimestamp","descending","sortBySeverity","defaultSeverity","aSeverity","bSeverity","sortExecutors","useNotificationsSort","sort","setSort","sortedNotifications","usePressedKeys","pressedKeys","setPressedKeys","onKeyDown","onKeyUp","onBlur","MODIFIER_KEYS","useRestoreWorkspace","frame","modifier","restoreOptions","useRestoreLayout","onSuccessfulLayoutRestore","useSearch","searchTerm","resultsToRender","setResultsToRender","isLoading","setIsLoading","queryRef","useRef","ioSearch","currentResults","query","unsubscribeOnResults","response","queryResult","unsubscribeOnCompleted","unsubscribeOnError","fn","useStartApplication","selectedWorkspace","workspace","outermostChild","useWorkspaces","workspaces","setWorkspaces","unsubscribeOnSaved","promise","useWorkspacesInstances","unsubscribeArr","unsubscribeOnAdd","workspaceId","updated","unsubscribe","handleOpenInNewWindow","handleOpenInNewWorkspace","builderConfig","builder","applicationActionExecutors","useExecuteApplicationAction","actionName","handleOpenInNewFrame","handleDelete","removeFavorite","workspaceActionExecutors","useExecuteWorkspaceAction","handleSetAsDefault","setDefaultLayout","layoutActionExecutors","useExecuteLayoutAction","window","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","str","majorize","version","trim","len","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","React","fromEntries","entries","_ref","useIsomorphicLayoutEffect","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","style","attributes","effect","_ref2","initialStyles","styleProperties","property","attribute","applyStyles$1","getBasePlacement","round","getUAString","uaData","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","offsetParent","getMainAxisFromPlacement","within","mathMax","mathMin","withinMaxClamp","getFreshSideObject","mergePaddingObject","paddingObject","expandToHashMap","hashMap","toPaddingObject","padding","arrow","_state$modifiersData$","options","arrowElement","popperOffsets","basePlacement","axis","isVertical","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","getExpandedFallbackPlacements","oppositePlacement","flip","_options$mainAxis","checkMainAxis","_options$altAxis","checkAltAxis","specifiedFallbackPlacements","_options$flipVariatio","preferredPlacement","isBasePlacement","fallbackPlacements","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","checks","check","numberOfChecks","_loop","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","visited","requires","dep","depModifier","orderModifiers","orderedModifiers","phase","debounce","pending","resolve","format","args","_key","c","INVALID_MODIFIER_ERROR","MISSING_DEPENDENCY_ERROR","VALID_PROPERTIES","validateModifiers","index","self","requirement","mod","uniqueBy","identifiers","identifier","mergeByName","merged","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","EMPTY_MODIFIERS","usePopper","referenceElement","popperElement","prevOptions","optionsWithDefaults","_React$useState","setState","updateStateModifier","elements","ReactDOM","popperOptions","newOptions","popperInstanceRef","defaultCreatePopper","popperInstance","ContextMenu","actions","onActionItemClick","itemRefs","focusedItemIndex","setFocusedItemIndex","newIndex","DropdownButton","iconSize","isTabStop","showContextMenu","setShowContextMenu","setReferenceElement","setPopperElement","styles","handleBlur","handleIconClick","prevValue","handleActionItemClick","Fragment","BaseSectionItem","isFavoritismEnabled","onClick","focused","toggleFavorite","description","icon","contextMenuActions","isFavorite","e","layoutStorageValueDecoder","DEFAULT_SYSTEM_LAYOUT","DEFAULT_DISPLAY_COUNT","useSetUpLayouts","defaultLayoutState","setDefaultLayoutState","selectedLayout","setSelectedLayout","layoutsSetupInitiated","restoreLayout","defaultGlobalLayout","LaunchpadAPIContext","createContext","useLaunchpadAPI","context","LaunchpadAPIProvider","children","setOpen","defaultLayout","launchpadAPI","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","DOMElement","PropTypes","tagPropType","TransitionTimeouts","TransitionPropTypeKeys","TransitionStatuses","_excluded","_extends","ownKeys","enumerableOnly","sym","_objectSpread","_defineProperty","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","propTypes","CloseButton","variant","innerRef","Button","active","ariaLabel","block","close","_props$color","color","outline","_props$tag","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","defaultProps","transitionStatusToClassHash","getTransitionClass","Collapse","_Component","_super","_","isAppearing","horizontal","navbar","otherProps","dimension","transitionProps","collapseClass","Component","Collapse$1","Form","_this$props$tag","Form$1","FormGroup","row","disabled","inline","floating","noMargin","switchProp","formCheck","BaseSection","level","onItemClick","isCollapsible","showAllItems","displayCount","pressedKey","page","setPage","setIsOpen","liRefs","sectionItems","nonSectionItems","nonSectionItemsToShow","handleShowMoreClick","previousPage","toggleOpen","idx","getItemName","getClickedItem","clickedItemName","buildItemsMapping","mapping","SectionContext","useSection","SectionProvider","clickData","setClickData","Section","handleItemClick","params","selectedContextMenuActionName","clickedItem","ApplicationsSection","startApplication","executeApplicationAction","LOGO_WIDTH","LoginLogo","logoSrc","InfoCard","heading","Image","BrowserNotificationsIcon","GoogleChromeIcon","MicrosoftEdgeIcon","OperaIcon","ReopenPromptIcon","WarningIcon","WindowPlacementIcon","RECOMMENDED_BROWSERS","InfoPageContainer","Logo","AdditionalInformation","supportEmail","BrowserNotSupported","url","ButtonGroup","button","btnRest","getFavoritesSectionConfig","favorites","FavoritesSection","PERMISSION_NAMES","getPermissionStatuses","permission","IOConnectHomeContext","useIOConnectHome","IOConnectHomeProvider","permissionStatuses","setPermissionStatuses","isPermissionLoading","isPermissionSetupCompletedRef","unsubscribeFunctionsPromise","unsubscribeFunctions","isReloaded","permissionStatus","changeListener","permissions","extendStatics","__extends","__","__awaiter","thisArg","_arguments","P","generator","adopt","reject","fulfilled","rejected","__generator","verb","op","l","I","S","T","O","C","Z","K","L","E","U","W","X","N","R","V","D","J","F","H","G","M","Y","B","Q","ee","te","initialAuthState","stub","initialContext","Auth0Context","OAuthError","error_description","CODE_RE","STATE_RE","ERROR_RE","hasAuthParams","searchParams","normalizeErrorFn","fallbackMessage","loginError","tokenError","deprecateRedirectUri","reducer","toAuth0ClientOptions","opts","defaultOnRedirectCallback","appState","Auth0Provider","skipRedirectCallback","onRedirectCallback","_b","clientOpts","client","_c","useReducer","dispatch","didInitialise","user","error_1","loginWithRedirect","loginWithPopup","error_2","logout","getAccessTokenSilently","token","error_3","getAccessTokenWithPopup","error_4","getIdTokenClaims","handleRedirectCallback","error_5","contextValue","useAuth0","PERMISSION_STEPS","handleDeferredPermission","handlePermissionsPromptClose","DEFAULT_SETTINGS","PermissionsList","isActiveItem","permissionName","permissionStep","isActive","stableName","SomethingWentWrong","onReopenPromptClick","UnsuccessfulSetup","deniedPermissionName","browserName","deniedPermissionStatuses","useEdgeNotificationsPermission","edgeNotificationsPermissionTimeout","isNotificationsPermissionPromptOpen","hasEdgeNotificationsPermissionError","setHasEdgeNotificationsPermissionError","timerId","Loader","PermissionSteps","somethingWentWrong","setSomethingWentWrong","isPermissionsPromptOpen","setIsPermissionsPromptOpen","pendingPermission","openPermissionsPrompt","PermissionsSetupFlow","PermissionsSetup","LogoutPage","components","Auth0LoginForm","onLogin","LoginHeading","VerifyingCredentials","Auth0LoginPage","Heading","inputReducer","isValid","SimpleLoginForm","setLoginError","userInputName","dispatchUser","password","dispatchPassword","showUserError","setShowUserError","showPasswordError","setShowPasswordError","isUserValid","isPasswordValid","isFormValid","handleUserChange","handlePasswordChange","handleUserBlur","handlePasswordBlur","SimpleLoginPage","userDecoder","WorkspaceLogo","onLogout","launchpad","LaunchpadSlidePanel","WorkspaceComponentsContext","useWorkspaceComponentsContext","HomeAppWorkspaceLogoArea","HeaderLogoArea","workspaceLogoProps","useAddWindowButtonVisible","groupId","visible","setVisible","groupLockConfigUnsubscribe","group","showAddWindowButton","AfterTabs","showPopup","bounds","showAddApplicationPopup","AddWindowButton","HeaderButtons","DefaultGroupHeaderButtons","HomeAppWorkspace","Workspaces","getIOConnectProviderSettings","ioConnectConfig","username","SimpleLoginHome","setupFlow","loginConfig","setUser","isLoggingOut","setIsLoggingOut","handleLogin","authenticatedUser","handleLogout","IOConnectProvider","Auth0LoginHome","auth0","NoLoginHome","loginPageComponentsDecoder","auth0LoginConfigDecoder","simpleLoginConfigDecoder","loginConfigDecoder","setupFlowSettingsDecoder","setupFlowComponentsDecoder","setupFlowConfigDecoder","workspacesConfigDecoder","launchpadComponentsDecoder","launchpadConfigDecoder","ioConnectHomeConfigDecoder","HomeApp","validatedConfig","launchpadComponentsConfig","providerOptions","useIsBrowserSupported","IOConnectHome","getInitials","SearchBar","onSearch","onClear","getSearchResultsSectionConfigs","results","searchResultsSections","SearchResults","invokeInteropMethod","restoreWorkspace","configs","executeWorkspaceAction","executeSelectedAction","execute","mainAction","contextMenuAction","getWorkspacesSectionConfig","WorkspacesSection","DefaultSections","NOTIFICATION_TYPE_TO_ICON_NAME_MAPPING","LAYOUT_ACTIONS_NAMES","createLayoutContextMenuActions","createActionClickHandler","AvailableLayouts","executeLayoutAction","LayoutActions","inputValue","setNotification","label","testId","LayoutsNotification","LayoutsPanel","footerRef","show","setShow","setInputValue","formatDate","timestamp","date","hours","minutes","seconds","amPm","month","day","year","Notification","severity","clearNotification","handleNotificationClick","actionItems","NotificationsBadge","notificationsCount","NotificationsIcon","NotificationsPanel","onNotificationsSort","clearAllNotifications","UserDetailsCard","SettingsCard","themes","setThemes","allThemes","displayName","SupportCard","links","UserPanel","UserPanelIcon","initials","Dialog","closeFn","open","showCloseButton","dialogRef","Launchpad","setSearchTerm","notificationDialogOpen","setNotificationDialogOpen","profileDialogOpen","setProfileDialogOpen","searchInputRef","isNotificationsPanelEnabled","isUserPanelEnabled","LaunchpadNotificationsPanel","LaunchpadUserPanel","handleSearch","handleClear","userProvidedSections","sections","SearchResultsSection","IOConnectLogo","SlidePanel","wrapperRef","logoContainerRef","handleMouseup","isOutsideClick"],"mappings":"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"}