@vuu-ui/vuu-popups 0.6.21 → 0.6.22-debug

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/cjs/index.js.map CHANGED
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../packages/vuu-popups/src/index.ts", "../../../packages/vuu-popups/src/dialog/Dialog.tsx", "../../../packages/vuu-popups/src/portal/Portal.tsx", "../../../packages/vuu-popups/src/portal/render-portal.tsx", "../../../packages/vuu-popups/src/portal/portal-utils.ts", "../../../packages/vuu-popups/src/menu/ContextMenu.tsx", "../../../packages/vuu-popups/src/menu/MenuList.tsx", "../../../packages/vuu-popups/src/menu/use-keyboard-navigation.ts", "../../../packages/vuu-popups/src/menu/utils.ts", "../../../packages/vuu-popups/src/menu/key-code.ts", "../../../packages/vuu-popups/src/menu/use-items-with-ids.ts", "../../../packages/vuu-popups/src/menu/use-cascade.ts", "../../../packages/vuu-popups/src/menu/list-dom-utils.ts", "../../../packages/vuu-popups/src/menu/use-click-away.ts", "../../../packages/vuu-popups/src/menu/context-menu-provider.tsx", "../../../packages/vuu-popups/src/menu/useContextMenu.tsx", "../../../packages/vuu-popups/src/popup/popup-service.ts"],
4
4
  "sourcesContent": ["export * from \"./dialog\";\nexport * from \"./menu\";\nexport * from \"./popup\";\nexport * from \"./portal\";\n", "import { Scrim, Toolbar, ToolbarButton } from \"@heswell/salt-lab\";\nimport { Text } from \"@salt-ds/core\";\nimport cx from \"classnames\";\nimport { HTMLAttributes, useCallback, useRef, useState } from \"react\";\nimport { Portal } from \"../portal\";\n\nimport \"./Dialog.css\";\n\nconst classBase = \"vuuDialog\";\n\nexport interface DialogProps extends HTMLAttributes<HTMLDivElement> {\n isOpen?: boolean;\n onClose?: () => void;\n}\n\nexport const Dialog = ({\n children,\n className,\n isOpen = false,\n onClose,\n title,\n ...props\n}: DialogProps) => {\n const root = useRef<HTMLDivElement>(null);\n const [posX] = useState(0);\n const [posY] = useState(0);\n\n const close = useCallback(() => {\n onClose?.();\n }, [onClose]);\n\n const handleRender = useCallback(() => {\n // if (center && isOpen && root.current) {\n // const { width, height } = root.current.getBoundingClientRect();\n // const { innerWidth, innerHeight } = window;\n // const x = innerWidth / 2 - width / 2;\n // const y = innerHeight / 2 - height / 2;\n // setPosX(x);\n // setPosY(y);\n // }\n }, []);\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <Portal onRender={handleRender} x={posX} y={posY}>\n <Scrim className={`${classBase}-scrim`} open={isOpen}>\n <div {...props} className={cx(classBase, className)} ref={root}>\n <Toolbar className={`${classBase}-header`}>\n <Text>{title}</Text>\n <ToolbarButton\n key=\"close\"\n onClick={close}\n data-align-end\n data-icon=\"close\"\n />\n </Toolbar>\n {children}\n </div>\n </Scrim>\n </Portal>\n );\n};\n", "import { ReactElement, useLayoutEffect, useMemo } from \"react\";\nimport * as ReactDOM from \"react-dom\";\nimport { createContainer, renderPortal } from \"./render-portal\";\n\nexport interface PortalProps {\n children: ReactElement;\n onRender?: () => void;\n x?: number;\n y?: number;\n}\n\nexport const Portal = function Portal({\n children,\n x = 0,\n y = 0,\n onRender,\n}: PortalProps) {\n // Do we need to accept container here as a prop ?\n const renderContainer = useMemo(() => {\n return createContainer();\n }, []);\n\n useLayoutEffect(() => {\n renderPortal(children, renderContainer, x, y, onRender);\n }, [children, onRender, renderContainer, x, y]);\n\n useLayoutEffect(() => {\n return () => {\n if (renderContainer) {\n ReactDOM.unmountComponentAtNode(renderContainer);\n if (renderContainer.classList.contains(\"vuuPopup\")) {\n renderContainer.parentElement?.removeChild(renderContainer);\n }\n }\n };\n }, [renderContainer]);\n\n // useLayoutEffect(() => {\n // renderContainer.current = renderPortal(children, x, y, container)\n // return () => {\n // if (renderContainer.current){\n // console.log('EXPLICIT UNMOUNT')\n // ReactDOM.unmountComponentAtNode(renderContainer.current);\n // if (renderContainer.current.classList.contains('hwReactPopup')){\n // renderContainer.current.parentElement.removeChild(renderContainer.current);\n // renderContainer.current = null;\n // }\n // }\n // }\n // },[])\n return null;\n};\n", "import * as ReactDOM from \"react-dom\";\nimport { SaltProvider } from \"@salt-ds/core\";\nimport { ReactElement } from \"react\";\n\nlet containerId = 1;\n\nconst getPortalContainer = (x = 0, y = 0, win = window) => {\n const el = win.document.createElement(\"div\");\n el.className = \"vuuPopup \" + containerId++;\n el.style.cssText = `left:${x}px; top:${y}px;`;\n win.document.body.appendChild(el);\n return el;\n};\n\nconst createDOMContainer = (x?: number, y?: number) => getPortalContainer(x, y);\n\nexport const renderPortal = (\n component: ReactElement,\n container: HTMLElement,\n x: number,\n y: number,\n onRender?: () => void\n) => {\n // check this first to see if position has changed\n container.style.cssText = `left:${x}px; top:${y}px;position: absolute;`;\n\n ReactDOM.render(\n <SaltProvider applyClassesTo=\"child\">{component}</SaltProvider>,\n container,\n onRender\n );\n};\n\nexport const createContainer = createDOMContainer;\n", "export const installTheme = (themeId: string) => {\n const installedThemes = getComputedStyle(document.body).getPropertyValue(\n \"--installed-themes\"\n );\n document.body.style.setProperty(\n \"--installed-themes\",\n `${installedThemes} ${themeId}`\n );\n};\n", "import { useIdMemo as useId } from \"@salt-ds/core\";\nimport { useCallback, useRef } from \"react\";\nimport { Portal } from \"../portal\";\nimport MenuList, { MenuListProps } from \"./MenuList\";\nimport { getItemId, getMenuId, useCascade } from \"./use-cascade\";\nimport { useClickAway } from \"./use-click-away\";\nimport { useItemsWithIds } from \"./use-items-with-ids\";\n\nexport interface ContextMenuProps extends Omit<MenuListProps, \"onCloseMenu\"> {\n onClose?: (menuId?: string, options?: unknown) => void;\n position?: { x: number; y: number };\n withPortal?: boolean;\n}\n\nconst noop = () => undefined;\n\nexport const ContextMenu = ({\n activatedByKeyboard,\n children: childrenProp,\n className,\n id: idProp,\n onClose = () => undefined,\n position = { x: 0, y: 0 },\n style,\n ...menuListProps\n}: ContextMenuProps) => {\n const id = useId(idProp);\n const closeMenuRef = useRef<(location?: string) => void>(noop);\n const [menus, actions] = useItemsWithIds(childrenProp);\n const navigatingWithKeyboard = useRef(activatedByKeyboard);\n const handleMouseEnterItem = useCallback(() => {\n navigatingWithKeyboard.current = false;\n }, []);\n\n const handleActivate = useCallback(\n (menuId: string) => {\n const { action, options } = actions[menuId];\n closeMenuRef.current(\"root\");\n onClose(action, options);\n },\n [actions, onClose]\n );\n\n const { closeMenu, listItemProps, openMenu, openMenus, handleRender } =\n useCascade({\n id,\n onActivate: handleActivate,\n onMouseEnterItem: handleMouseEnterItem,\n position,\n });\n closeMenuRef.current = closeMenu;\n\n console.log({ openMenus });\n\n const handleClose = useCallback(() => {\n closeMenu();\n onClose();\n }, [closeMenu, onClose]);\n\n useClickAway({\n containerClassName: \"vuuMenuList\",\n onClose: handleClose,\n isOpen: openMenus.length > 0,\n });\n\n const handleOpenMenu = (id: string) => {\n const itemId = getItemId(id);\n const menuId = getMenuId(itemId);\n navigatingWithKeyboard.current = true;\n openMenu(menuId, itemId);\n };\n const handleCloseMenu = () => {\n navigatingWithKeyboard.current = true;\n closeMenu();\n };\n\n const handleHighlightMenuItem = () => {\n // console.log(`highlight ${idx}`);\n };\n\n const lastMenu = openMenus.length - 1;\n\n const getChildMenuIndex = (i: number) => {\n if (i >= lastMenu) {\n return -1;\n } else {\n const { id: menuId } = openMenus[i + 1];\n const pos = menuId.lastIndexOf(\".\");\n const idx =\n pos === -1 ? parseInt(menuId, 10) : parseInt(menuId.slice(-pos), 10);\n return idx;\n }\n };\n\n return (\n <>\n {openMenus.map(({ id: menuId, left, top }, i) => {\n const childMenuIndex = getChildMenuIndex(i);\n\n return (\n <Portal key={i} x={left} y={top} onRender={handleRender}>\n <MenuList\n {...menuListProps}\n activatedByKeyboard={navigatingWithKeyboard.current}\n childMenuShowing={childMenuIndex}\n className={className}\n id={id}\n menuId={menuId}\n isRoot={i === 0}\n key={i}\n listItemProps={listItemProps}\n onActivate={handleActivate}\n onHighlightMenuItem={handleHighlightMenuItem}\n onCloseMenu={handleCloseMenu}\n onOpenMenu={handleOpenMenu}\n style={style}\n >\n {menus[menuId]}\n </MenuList>\n </Portal>\n );\n })}\n </>\n );\n};\n\nContextMenu.displayName = \"ContextMenu\";\n", "import React, {\n FC,\n HTMLAttributes,\n ReactElement,\n useLayoutEffect,\n useMemo,\n useRef,\n} from \"react\";\nimport cx from \"classnames\";\nimport { useIdMemo as useId } from \"@salt-ds/core\";\nimport { useKeyboardNavigation } from \"./use-keyboard-navigation\";\nimport { isMenuItemGroup } from \"./use-items-with-ids\";\n\nimport \"./MenuList.css\";\n\nconst classBase = \"vuuMenuList\";\n\nexport const Separator = () => <li className=\"vuuMenuItem-divider\" />;\n\nexport interface MenuItemGroupProps {\n children: ReactElement<MenuItemProps>[];\n label: string;\n}\n\nexport interface MenuItemProps extends HTMLAttributes<HTMLDivElement> {\n action?: string;\n idx?: number;\n options?: unknown;\n}\n\n// Purely used as markers, props will be extracted\nexport const MenuItemGroup: FC<MenuItemGroupProps> = () => null;\n// eslint-disable-next-line no-unused-vars\nexport const MenuItem = ({ children, idx, ...props }: MenuItemProps) => {\n return <div {...props}>{children}</div>;\n};\n\nconst hasIcon = (child: ReactElement) => child.props[\"data-icon\"];\n\nexport interface MenuListProps extends HTMLAttributes<HTMLDivElement> {\n activatedByKeyboard?: boolean;\n children: ReactElement[];\n childMenuShowing?: number;\n highlightedIdx?: number;\n isRoot?: boolean;\n listItemProps?: Partial<MenuItemProps>;\n menuId?: string;\n onActivate?: (menuId: string) => void;\n onCloseMenu: (idx: number) => void;\n onOpenMenu?: (menuId: string) => void;\n onHighlightMenuItem?: (idx: number) => void;\n}\n\nconst MenuList = ({\n activatedByKeyboard,\n childMenuShowing = -1,\n children,\n className,\n highlightedIdx: highlightedIdxProp,\n id: idProp,\n isRoot,\n listItemProps,\n menuId,\n onHighlightMenuItem,\n onActivate,\n onCloseMenu,\n onOpenMenu,\n ...props\n}: MenuListProps) => {\n const id = useId(idProp);\n const root = useRef<HTMLDivElement>(null);\n\n // The id generation be,ongs in useIttemsWithIds\n const mapIdxToId = useMemo(() => new Map(), []);\n\n const handleOpenMenu = (idx: number) => {\n const el = root.current?.querySelector(`:scope > [data-idx='${idx}']`);\n el?.id && onOpenMenu?.(el.id);\n };\n\n const handleActivate = (idx: number) => {\n const el = root.current?.querySelector(`:scope > [data-idx='${idx}']`);\n el?.id && onActivate?.(el.id);\n };\n\n const { focusVisible, highlightedIndex, listProps } = useKeyboardNavigation({\n count: React.Children.count(children),\n highlightedIndex: highlightedIdxProp,\n onActivate: handleActivate,\n onHighlight: onHighlightMenuItem,\n onOpenMenu: handleOpenMenu,\n onCloseMenu,\n });\n\n const appliedFocusVisible = childMenuShowing == -1 ? focusVisible : -1;\n\n useLayoutEffect(() => {\n if (childMenuShowing === -1 && activatedByKeyboard) {\n root.current?.focus();\n }\n }, [activatedByKeyboard, childMenuShowing]);\n\n const getActiveDescendant = () =>\n highlightedIndex === undefined || highlightedIndex === -1\n ? undefined\n : mapIdxToId.get(highlightedIndex);\n\n return (\n <div\n {...props}\n {...listProps}\n aria-activedescendant={getActiveDescendant()}\n className={cx(classBase, className, {\n [`${classBase}-childMenuShowing`]: childMenuShowing !== -1,\n })}\n data-root={isRoot || undefined}\n id={`${id}-${menuId}`}\n ref={root}\n role=\"menu\"\n tabIndex={0}\n >\n {renderContent()}\n </div>\n );\n\n function renderContent() {\n const propsCommonToAllListItems = {\n ...listItemProps,\n role: \"menuitem\",\n };\n\n const maybeIcon = (\n childElement: ReactElement,\n withIcon: boolean,\n iconName?: string\n ) =>\n withIcon\n ? [\n <span\n className=\"vuuIconContainer\"\n data-icon={iconName}\n key=\"icon\"\n />,\n ].concat(childElement)\n : childElement;\n\n function addClonedChild(\n list: ReactElement[],\n child: ReactElement,\n idx: number,\n withIcon: boolean\n ) {\n const {\n children,\n className,\n \"data-icon\": iconName,\n id: itemId,\n hasSeparator,\n label,\n ...props\n } = child.props;\n const hasSubMenu = isMenuItemGroup(child);\n const subMenuShowing = hasSubMenu && childMenuShowing === idx;\n const ariaControls = subMenuShowing ? `${id}-${itemId}` : undefined;\n\n list.push(\n <MenuItem\n {...props}\n {...propsCommonToAllListItems}\n {...getMenuItemProps(\n `${id}-${menuId}`,\n itemId,\n idx,\n child.key ?? itemId,\n highlightedIndex,\n appliedFocusVisible,\n className,\n hasSeparator\n )}\n aria-controls={ariaControls}\n aria-haspopup={hasSubMenu || undefined}\n aria-expanded={subMenuShowing || undefined}\n >\n {hasSubMenu\n ? maybeIcon(label, withIcon, iconName)\n : maybeIcon(children, withIcon, iconName)}\n </MenuItem>\n );\n // mapIdxToId.set(idx, itemId);\n }\n\n const listItems: ReactElement[] = [];\n\n if (children.length > 0) {\n const withIcon = children.some(hasIcon);\n\n children.forEach((child, idx) => {\n addClonedChild(listItems, child, idx, withIcon);\n });\n }\n\n return listItems;\n }\n};\n\nconst getMenuItemProps = (\n baseId: string,\n itemId: string,\n idx: number,\n key: string,\n highlightedIdx: number,\n focusVisible: number,\n className: string,\n hasSeparator: boolean\n) => ({\n id: `${baseId}-${itemId}`,\n key: key ?? idx,\n \"data-idx\": idx,\n \"data-highlighted\": idx === highlightedIdx || undefined,\n className: cx(\"vuuMenuItem\", className, {\n \"vuuMenuItem-separator\": hasSeparator,\n focusVisible: focusVisible === idx,\n }),\n});\n\nMenuList.displayName = \"MenuList\";\nexport default MenuList;\n", "import {\n FocusEvent,\n KeyboardEvent,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { hasPopup, isRoot } from \"./utils\";\nimport { isNavigationKey } from \"./key-code\";\n\nexport interface KeyboardNavigationProps {\n autoHighlightFirstItem?: boolean;\n count: number;\n highlightedIndex?: number;\n onActivate: (idx: number) => void;\n onHighlight?: (idx: number) => void;\n onCloseMenu: (idx: number) => void;\n onOpenMenu: (idx: number) => void;\n}\n\nexport interface KeyboardHookListProps {\n // onBlur: (evt: FocusEvent) => void;\n onFocus: (evt: FocusEvent) => void;\n onKeyDown: (evt: KeyboardEvent) => void;\n onMouseDownCapture: () => void;\n onMouseMove: () => void;\n onMouseLeave: () => void;\n}\n\nexport interface NavigationHookResult {\n focusVisible: number;\n controlledHighlighting: boolean;\n highlightedIndex: number;\n setHighlightedIndex: (idx: number) => void;\n // keyboardNavigation: RefObject<boolean>;\n listProps: KeyboardHookListProps;\n setIgnoreFocus: (ignoreFocus: boolean) => void;\n}\n\n// we need a way to set highlightedIdx when selection changes\nexport const useKeyboardNavigation = ({\n autoHighlightFirstItem = false,\n count,\n highlightedIndex: highlightedIndexProp,\n onActivate,\n onHighlight,\n // onKeyDown,\n onCloseMenu,\n onOpenMenu,\n}: KeyboardNavigationProps): NavigationHookResult => {\n // const prevCount = useRef(count);\n const highlightedIndexRef = useRef(\n highlightedIndexProp ?? autoHighlightFirstItem ? 0 : -1\n );\n const [, forceRender] = useState<unknown>(null);\n const controlledHighlighting = highlightedIndexProp !== undefined;\n\n // count will not work for this, as it will change when we expand collapse groups\n // if (count !== prevCount.current) {\n // prevCount.current = count;\n // if (highlightedIndexRef.current !== -1){\n // highlightedIndexRef.current = autoHighlightFirstItem ? 0 : -1;\n // }\n // }\n\n const setHighlightedIdx = useCallback(\n (idx) => {\n highlightedIndexRef.current = idx;\n onHighlight?.(idx);\n forceRender({});\n },\n [onHighlight]\n );\n\n const setHighlightedIndex = useCallback(\n (idx) => {\n if (idx !== highlightedIndexRef.current) {\n if (!controlledHighlighting) {\n setHighlightedIdx(idx);\n }\n }\n },\n [controlledHighlighting, setHighlightedIdx]\n );\n\n // does this belong here or should it be a method passed in?\n const keyBoardNavigation = useRef(true);\n const ignoreFocus = useRef(false);\n const setIgnoreFocus = (value: boolean) => (ignoreFocus.current = value);\n\n const highlightedIndex = controlledHighlighting\n ? highlightedIndexProp\n : highlightedIndexRef.current;\n\n const navigateChildldItems = useCallback(\n (e: KeyboardEvent) => {\n const nextIdx = nextItemIdx(count, e.key, highlightedIndexRef.current);\n if (nextIdx !== highlightedIndexRef.current) {\n setHighlightedIndex(nextIdx);\n }\n },\n [count, setHighlightedIndex]\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (isNavigationKey(e)) {\n e.preventDefault();\n e.stopPropagation();\n keyBoardNavigation.current = true;\n navigateChildldItems(e);\n } else if (\n (e.key === \"ArrowRight\" || e.key === \"Enter\") &&\n hasPopup(e.target as HTMLElement, highlightedIndex)\n ) {\n onOpenMenu(highlightedIndex);\n } else if (e.key === \"ArrowLeft\" && !isRoot(e.target as HTMLElement)) {\n onCloseMenu(highlightedIndex);\n } else if (e.key === \"Enter\") {\n onActivate && onActivate(highlightedIndex);\n }\n },\n [\n highlightedIndex,\n navigateChildldItems,\n onActivate,\n onCloseMenu,\n onOpenMenu,\n ]\n );\n\n const listProps: KeyboardHookListProps = useMemo(\n () => ({\n onFocus: () => {\n if (highlightedIndex === -1) {\n setHighlightedIdx(0);\n }\n },\n onKeyDown: handleKeyDown,\n onMouseDownCapture: () => {\n keyBoardNavigation.current = false;\n setIgnoreFocus(true);\n },\n\n // onMouseEnter would seem less expensive but it misses some cases\n onMouseMove: () => {\n if (keyBoardNavigation.current) {\n keyBoardNavigation.current = false;\n }\n },\n onMouseLeave: () => {\n // label === 'ParsedInput' && console.log(`%c[useKeyboardNavigationHook]<${label}> onMouseLeave`,'color:brown')\n keyBoardNavigation.current = true;\n setIgnoreFocus(false);\n setHighlightedIndex(-1);\n },\n }),\n [\n highlightedIndex,\n setHighlightedIndex,\n navigateChildldItems,\n onActivate,\n onCloseMenu,\n onOpenMenu,\n setHighlightedIdx,\n ]\n );\n\n // label === 'ParsedInput' && console.log(`%cuseNavigationHook<${label}>\n // highlightedIdxProp= ${highlightedIdxProp},\n // highlightedIndexRef= ${highlightedIndexRef.current},\n // %chighlightedIdx= ${highlightedIdx}`, 'color: brown','color: brown;font-weight: bold;')\n\n return {\n focusVisible: keyBoardNavigation.current ? highlightedIndex : -1,\n controlledHighlighting,\n highlightedIndex,\n setHighlightedIndex: setHighlightedIndex,\n // keyBoardNavigation,\n listProps,\n setIgnoreFocus,\n };\n};\n\n// need to be able to accommodate disabled items\nfunction nextItemIdx(count: number, key: string, idx: number) {\n if (key === \"ArrowUp\") {\n if (idx > 0) {\n return idx - 1;\n } else {\n return idx;\n }\n } else {\n if (idx === null) {\n return 0;\n } else if (idx === count - 1) {\n return idx;\n } else {\n return idx + 1;\n }\n }\n}\n", "export const isRoot = (el: HTMLElement) =>\n el.closest(`[data-root='true']`) !== null;\n\nexport const hasPopup = (el: HTMLElement, idx: number) =>\n (el.ariaHasPopup === \"true\" && el.dataset?.idx === `${idx}`) ||\n el.querySelector(`:scope > [data-idx='${idx}'][aria-haspopup='true']`) !==\n null;\n", "function union(set1: Set<string>, ...sets: Set<string>[]) {\n const result = new Set(set1);\n for (const set of sets) {\n for (const element of set) {\n result.add(element);\n }\n }\n return result;\n}\n\nexport const ArrowUp = \"ArrowUp\";\nexport const ArrowDown = \"ArrowDown\";\nexport const ArrowLeft = \"ArrowLeft\";\nexport const Backspace = \"Backspace\";\nexport const ArrowRight = \"ArrowRight\";\nexport const Enter = \"Enter\";\nexport const Escape = \"Escape\";\nexport const Delete = \"Delete\";\n\nconst actionKeys = new Set([Enter, Delete]);\nconst focusKeys = new Set([\"Tab\"]);\n// const navigationKeys = new Set([\"Home\", \"End\", \"ArrowRight\", \"ArrowLeft\",\"ArrowDown\", \"ArrowUp\"]);\nconst arrowLeftRightKeys = new Set([\"ArrowRight\", \"ArrowLeft\"]);\nconst verticalNavigationKeys = new Set([\"Home\", \"End\", \"ArrowDown\", \"ArrowUp\"]);\nconst horizontalNavigationKeys = new Set([\n \"Home\",\n \"End\",\n \"ArrowRight\",\n \"ArrowLeft\",\n]);\nconst functionKeys = new Set([\n \"F1\",\n \"F2\",\n \"F3\",\n \"F4\",\n \"F5\",\n \"F6\",\n \"F7\",\n \"F8\",\n \"F9\",\n \"F10\",\n \"F11\",\n \"F12\",\n]);\nconst specialKeys = union(\n actionKeys,\n horizontalNavigationKeys,\n verticalNavigationKeys,\n arrowLeftRightKeys,\n functionKeys,\n focusKeys\n);\nexport const isCharacterKey = (evt: KeyboardEvent) => {\n if (specialKeys.has(evt.key)) {\n return false;\n }\n if (typeof evt.which === \"number\" && evt.which > 0) {\n return !evt.ctrlKey && !evt.metaKey && !evt.altKey && evt.which !== 8;\n }\n};\n\nexport const isNavigationKey = (\n { key }: { key: string },\n orientation = \"vertical\"\n) => {\n const navigationKeys =\n orientation === \"vertical\"\n ? verticalNavigationKeys\n : horizontalNavigationKeys;\n return navigationKeys.has(key);\n};\n", "import React, { ReactElement, useCallback, useMemo } from \"react\";\nimport { MenuItemGroup, Separator } from \"./MenuList\";\n\nexport const isMenuItemGroup = (child: ReactElement) =>\n child.type === MenuItemGroup || !!child.props[\"data-group\"];\n\ntype Menus = { [key: string]: ReactElement[] };\ntype Actions = { [key: string]: { action: string; options?: unknown } };\n\nexport const useItemsWithIds = (\n childrenProp: ReactElement[]\n): [Menus, Actions] => {\n const normalizeChildren = useCallback(() => {\n const collectChildren = (\n children: ReactElement[],\n path = \"root\",\n menus: Menus = {},\n actions: Actions = {}\n ) => {\n const list: ReactElement[] = (menus[path] = []);\n let idx = 0;\n let hasSeparator = false;\n\n React.Children.forEach(children, (child) => {\n if (child.type === Separator) {\n hasSeparator = true;\n } else {\n const group = isMenuItemGroup(child);\n const childPath = path === \"root\" ? `${idx}` : `${path}.${idx}`;\n const {\n props: { action, options },\n } = child;\n const { childWithId, grandChildren } = assignId(\n child,\n childPath,\n group,\n hasSeparator\n );\n list.push(childWithId);\n if (grandChildren) {\n collectChildren(grandChildren, childPath, menus, actions);\n } else {\n actions[childPath] = { action, options };\n }\n idx += 1;\n hasSeparator = false;\n }\n });\n return [menus, actions];\n };\n\n const assignId = (\n child: ReactElement,\n path: string,\n group: boolean,\n hasSeparator = false\n ) => {\n const {\n props: { children },\n } = child;\n return {\n childWithId: React.cloneElement(child, {\n hasSeparator,\n id: `${path}`,\n key: path,\n children: group ? undefined : children,\n }),\n grandChildren: group ? children : undefined,\n };\n };\n\n return collectChildren(childrenProp);\n }, [childrenProp]);\n\n const [menus, actions] = useMemo(\n () => normalizeChildren(),\n [normalizeChildren]\n );\n\n return [menus, actions] as [Menus, Actions];\n};\n", "import {\n MouseEvent,\n SyntheticEvent,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { closestListItem, listItemIndex } from \"./list-dom-utils\";\nimport { MenuItemProps } from \"./MenuList\";\n// import {mousePosition} from './aim/utils';\n// import {aiming} from './aim/aim';\n\nconst nudge = (\n menus: RuntimeMenuDescriptor[],\n distance: number,\n pos: \"left\" | \"top\"\n) => {\n return menus.map((m, i) =>\n i === menus.length - 1\n ? {\n ...m,\n [pos]: m[pos] - distance,\n }\n : m\n );\n};\nconst nudgeLeft = (menus: RuntimeMenuDescriptor[], distance: number) =>\n nudge(menus, distance, \"left\");\nconst nudgeUp = (menus: RuntimeMenuDescriptor[], distance: number) =>\n nudge(menus, distance, \"top\");\n\nconst flipSides = (id: string, menus: RuntimeMenuDescriptor[]) => {\n const [parentMenu, menu] = menus.slice(-2);\n const el = document.getElementById(`${id}-${menu.id}`);\n if (el === null) {\n throw Error(`useCascade.flipSides element with id ${menu.id} not found`);\n }\n const { width } = el.getBoundingClientRect();\n return menus.map((m) =>\n m === menu\n ? {\n ...m,\n left: parentMenu.left - (width - 2),\n }\n : m\n );\n};\n\n// const closedNode = (el: HTMLElement) =>\n// el.ariaHasPopup === \"true\" && el.ariaExpanded !== \"true\";\nconst getPosition = (el: HTMLElement, openMenus: RuntimeMenuDescriptor[]) => {\n const [{ left, top: menuTop }] = openMenus.slice(-1);\n // const {top, right, bottom, left} = el.getBoundingClientRect();\n // this will not work for MenuList within window, we need the\n // const {offsetLeft: left, offsetTop: menuTop} = el.closest('.vuuMenuList');\n const { offsetWidth: width, offsetTop: top } = el;\n return { left: left + width, top: top + menuTop };\n};\n\nexport type RuntimeMenuDescriptor = {\n id: string;\n left: number;\n top: number;\n};\n\nexport const getItemId = (id: string) => {\n const pos = id.lastIndexOf(\"-\");\n return pos === -1 ? id : id.slice(pos + 1);\n};\n\nexport const getMenuId = (id: string) => {\n const itemId = getItemId(id);\n const pos = itemId.lastIndexOf(\".\");\n return pos > -1 ? itemId.slice(0, pos) : \"root\";\n};\n\nconst getMenuDepth = (id: string) => {\n let count = 0,\n pos = id.indexOf(\".\", 0);\n while (pos !== -1) {\n count += 1;\n pos = id.indexOf(\".\", pos + 1);\n }\n return count;\n};\n\nconst identifyItem = (el: HTMLElement) => ({\n menuId: getMenuId(el.id),\n itemId: getItemId(el.id),\n isGroup: el.ariaHasPopup === \"true\",\n isOpen: el.ariaExpanded === \"true\",\n level: getMenuDepth(el.id),\n});\n\nexport interface CascadeHookProps {\n id: string;\n onActivate: (menuId: string) => void;\n onMouseEnterItem: (evt: MouseEvent, itemId: string) => void;\n position: { x: number; y: number };\n}\n\nexport interface CascadeHooksResult {\n closeMenu: () => void;\n handleRender: () => void;\n listItemProps: Partial<MenuItemProps>;\n openMenu: (menuId?: string, itemId?: string) => void;\n openMenus: RuntimeMenuDescriptor[];\n}\n\ntype MenuStatus = \"no-popup\" | \"popup-open\" | \"pending-close\" | \"popup-pending\";\ntype MenuState = { [key: string]: MenuStatus };\n\nexport const useCascade = ({\n id,\n onActivate,\n onMouseEnterItem,\n position: { x: posX, y: posY },\n}: CascadeHookProps): CascadeHooksResult => {\n const [, forceRefresh] = useState({});\n const openMenus = useRef<RuntimeMenuDescriptor[]>([\n { id: \"root\", left: posX, top: posY },\n ]);\n\n const setOpenMenus = useCallback((menus: RuntimeMenuDescriptor[]) => {\n openMenus.current = menus;\n forceRefresh({});\n }, []);\n\n const menuOpenPendingTimeout = useRef<number | undefined>();\n const menuClosePendingTimeout = useRef<number | undefined>();\n const menuState = useRef<MenuState>({ root: \"no-popup\" });\n const prevLevel = useRef(0);\n\n // const prevAim = useRef({mousePos: null, distance: true});\n\n const openMenu = useCallback(\n (menuId = \"root\", itemId = null, listItemEl = null) => {\n if (menuId === \"root\" && itemId === null) {\n setOpenMenus([{ id: \"root\", left: posX, top: posY }]);\n } else {\n menuState.current[menuId] = \"popup-open\";\n const doc = listItemEl ? listItemEl.ownerDocument : document;\n const el = doc.getElementById(`${id}-${menuId}-${itemId}`);\n const { left, top } = getPosition(el, openMenus.current);\n setOpenMenus(openMenus.current.concat({ id: itemId, left, top }));\n }\n },\n [id, posX, posY, setOpenMenus]\n );\n\n const closeMenu = useCallback(\n (menuId?: string) => {\n if (menuId === \"root\") {\n setOpenMenus([]);\n } else {\n setOpenMenus(openMenus.current.slice(0, -1));\n }\n },\n [setOpenMenus]\n );\n\n const closeMenus = useCallback(\n (menuId, itemId) => {\n const menus = openMenus.current.slice();\n let { id: lastMenuId } = menus[menus.length - 1];\n while (menus.length > 1 && !itemId.startsWith(lastMenuId)) {\n const parentMenuId = getMenuId(lastMenuId);\n menus.pop();\n menuState.current[lastMenuId] = \"no-popup\";\n menuState.current[parentMenuId] = \"no-popup\";\n ({ id: lastMenuId } = menus[menus.length - 1]);\n }\n if (menus.length < openMenus.current.length) {\n setOpenMenus(menus);\n }\n },\n [setOpenMenus]\n );\n\n const scheduleOpen = useCallback(\n (menuId, itemId, listItemEl) => {\n if (menuOpenPendingTimeout.current) {\n clearTimeout(menuOpenPendingTimeout.current);\n }\n menuOpenPendingTimeout.current = window.setTimeout(() => {\n console.log(`scheduleOpen timed out opening ${itemId}`);\n closeMenus(menuId, itemId);\n menuState.current[menuId] = \"popup-open\";\n menuState.current[itemId] = \"no-popup\";\n openMenu(menuId, itemId, listItemEl);\n }, 400);\n },\n [closeMenus, openMenu]\n );\n\n const scheduleClose = useCallback(\n (openMenuId, menuId, itemId) => {\n console.log(\n `scheduleClose openMenuId ${openMenuId} menuId ${menuId} itemId ${itemId}`\n );\n menuState.current[openMenuId] = \"pending-close\";\n menuClosePendingTimeout.current = window.setTimeout(() => {\n closeMenus(menuId, itemId);\n }, 400);\n },\n [closeMenus]\n );\n\n const handleRender = useCallback(() => {\n const { current: menus } = openMenus;\n const [menu] = menus.slice(-1);\n const el = document.getElementById(`${id}-${menu.id}`);\n if (el) {\n const { right, bottom } = el.getBoundingClientRect();\n const { clientHeight, clientWidth } = document.body;\n if (right > clientWidth) {\n const newMenus =\n menus.length > 1\n ? flipSides(id, menus)\n : nudgeLeft(menus, right - clientWidth);\n setOpenMenus(newMenus);\n } else if (bottom > clientHeight) {\n const newMenus = nudgeUp(menus, bottom - clientHeight);\n setOpenMenus(newMenus);\n }\n }\n }, [id, setOpenMenus]);\n\n const listItemProps: Partial<MenuItemProps> = useMemo(\n () => ({\n onMouseEnter: (evt: MouseEvent) => {\n const listItemEl = closestListItem(evt.target as HTMLElement);\n const { menuId, itemId, isGroup, isOpen, level } =\n identifyItem(listItemEl);\n const sameLevel = prevLevel.current === level;\n const {\n current: { [menuId]: state },\n } = menuState;\n prevLevel.current = level;\n\n // console.log(\n // `%conMouseEnter #${menuId}[${itemId}] @${level}\n // isGroup ${isGroup} isOpen ${isOpen}\n // openMenus [${openMenus.current.join(',')}]\n // state='${JSON.stringify(menuState.current)}`,\n // 'color: green; font-weight: bold;'\n // );\n\n if (state === \"no-popup\" && isGroup) {\n // Shouldn;t we always set this ?\n menuState.current[menuId] = \"popup-pending\";\n scheduleOpen(menuId, itemId, listItemEl);\n } else if (state === \"popup-pending\" && !isGroup) {\n menuState.current[menuId] = \"no-popup\";\n clearTimeout(menuOpenPendingTimeout.current);\n menuOpenPendingTimeout.current = undefined;\n } else if (state === \"popup-pending\" && isGroup) {\n clearTimeout(menuOpenPendingTimeout.current);\n scheduleOpen(menuId, itemId, listItemEl);\n } else if (state === \"popup-open\") {\n const [{ id: parentMenuId }, { id: openMenuId }] =\n openMenus.current.slice(-2);\n if (\n parentMenuId === menuId &&\n menuState.current[openMenuId] !== \"pending-close\" &&\n sameLevel\n ) {\n scheduleClose(openMenuId, menuId, itemId);\n if (isGroup && !isOpen) {\n scheduleOpen(menuId, itemId, listItemEl);\n }\n } else if (\n parentMenuId === menuId &&\n isGroup &&\n itemId !== openMenuId &&\n menuState.current[openMenuId] === \"pending-close\"\n ) {\n // if there is already an item queued for opening cancel it\n scheduleOpen(menuId, itemId, listItemEl);\n } else if (isGroup) {\n closeMenus(menuId, itemId);\n scheduleOpen(menuId, itemId, listItemEl);\n } else if (\n !(menuState.current[openMenuId] === \"pending-close\" && sameLevel)\n ) {\n closeMenus(menuId, itemId);\n }\n }\n\n if (state === \"pending-close\") {\n if (menuOpenPendingTimeout.current) {\n clearTimeout(menuOpenPendingTimeout.current);\n menuOpenPendingTimeout.current = undefined;\n }\n clearTimeout(menuClosePendingTimeout.current);\n menuClosePendingTimeout.current = undefined;\n menuState.current[menuId] = \"popup-open\";\n }\n\n onMouseEnterItem(evt, itemId);\n },\n\n onClick: (evt: SyntheticEvent) => {\n const targetElement = evt.target as HTMLElement;\n const listItemEl = closestListItem(targetElement);\n const idx = listItemIndex(listItemEl);\n console.log(\n `list item click [${idx}] hasPopup ${listItemEl.ariaHasPopup}`\n );\n if (listItemEl.ariaHasPopup === \"true\") {\n if (listItemEl.ariaExpanded !== \"true\") {\n openMenu(idx);\n } else {\n // do nothing\n }\n } else {\n onActivate(getItemId(listItemEl.id));\n }\n },\n }),\n [\n closeMenus,\n onActivate,\n\n onMouseEnterItem,\n openMenu,\n scheduleClose,\n scheduleOpen,\n ]\n );\n\n return {\n closeMenu,\n handleRender,\n listItemProps,\n openMenu,\n openMenus: openMenus.current,\n };\n};\n", "// const listItemElement = (listEl: HTMLElement, listItemIdx: number) =>\n// listEl.querySelector(`:scope > [data-idx=\"${listItemIdx}\"]`);\n\nexport function listItemIndex(listItemEl: HTMLElement) {\n if (listItemEl) {\n const idx = listItemEl.dataset.idx;\n if (idx) {\n return parseInt(idx, 10);\n // eslint-disable-next-line no-cond-assign\n } else if (listItemEl.ariaPosInSet) {\n return parseInt(listItemEl.ariaPosInSet, 10) - 1;\n }\n }\n}\n\nconst listItemId = (el: HTMLElement | null | undefined) => el?.id;\n\nexport const closestListItem = (el: HTMLElement | null | undefined) =>\n el?.closest(\"[data-idx],[aria-posinset]\") as HTMLElement;\n\nexport const closestListItemId = (el: HTMLElement) =>\n listItemId(closestListItem(el));\n\nexport const closestListItemIndex = (el: HTMLElement) =>\n listItemIndex(closestListItem(el));\n", "import { useEffect } from \"react\";\n\nexport interface ClickAwayHookProps {\n containerClassName: string;\n isOpen: boolean;\n onClose?: (target: string) => void;\n}\n\nexport const useClickAway = ({\n containerClassName,\n isOpen,\n onClose,\n}: ClickAwayHookProps) => {\n useEffect(() => {\n let clickHandler: (evt: MouseEvent) => void;\n if (isOpen) {\n clickHandler = (evt) => {\n const target = evt.target as HTMLElement;\n const container = target.closest(`.${containerClassName}`);\n if (container === null) {\n onClose?.(\"root\");\n }\n };\n\n document.body.addEventListener(\"click\", clickHandler, true);\n }\n\n return () => {\n if (clickHandler) {\n document.body.removeEventListener(\"click\", clickHandler, true);\n }\n };\n }, [containerClassName, isOpen, onClose]);\n};\n", "import { createContext, ReactNode, useCallback, useMemo } from \"react\";\n\nexport type MenuActionHandler = (\n type: string,\n options: unknown\n) => boolean | undefined;\nexport type MenuBuilder<L = string, O = unknown> = (\n location: L,\n options: O\n) => ContextMenuItemDescriptor[];\n\nexport interface ContextMenuContext {\n menuBuilders: MenuBuilder[];\n menuActionHandler: MenuActionHandler;\n}\n\nexport const ContextMenuContext = createContext<ContextMenuContext | null>(\n null\n);\n\nexport interface ContextMenuItemBase {\n icon?: string;\n label: string;\n location?: string;\n}\n\nexport interface ContextMenuLeafItemDescriptor extends ContextMenuItemBase {\n action: string;\n options?: unknown;\n}\n\nexport interface ContextMenuGroupItemDescriptor extends ContextMenuItemBase {\n children: ContextMenuItemDescriptor[];\n}\n\nexport type ContextMenuItemDescriptor =\n | ContextMenuLeafItemDescriptor\n | ContextMenuGroupItemDescriptor;\n\nexport const isGroupMenuItemDescriptor = (\n menuItem?: ContextMenuItemDescriptor\n): menuItem is ContextMenuGroupItemDescriptor =>\n menuItem !== undefined && \"children\" in menuItem;\n\nexport interface ContextMenuProviderProps {\n children: ReactNode;\n label?: string;\n menuActionHandler?: MenuActionHandler;\n menuBuilder: MenuBuilder;\n}\n\ninterface ProviderProps extends ContextMenuProviderProps {\n context: ContextMenuContext | null;\n}\n\nconst Provider = ({\n children,\n context,\n menuActionHandler,\n menuBuilder,\n}: ProviderProps) => {\n const menuBuilders = useMemo(() => {\n if (context?.menuBuilders && menuBuilder) {\n return context.menuBuilders.concat(menuBuilder);\n } else if (menuBuilder) {\n return [menuBuilder];\n } else {\n return context?.menuBuilders || [];\n }\n }, [context, menuBuilder]);\n\n const handleMenuAction = useCallback(\n (type, options) => {\n if (menuActionHandler?.(type, options)) {\n return true;\n }\n\n if (context?.menuActionHandler?.(type, options)) {\n return true;\n }\n },\n [context, menuActionHandler]\n );\n\n return (\n <ContextMenuContext.Provider\n value={{\n menuActionHandler: handleMenuAction,\n menuBuilders,\n }}\n >\n {children}\n </ContextMenuContext.Provider>\n );\n};\n\n// Need an option for local menu to override higher-level menu, rather than extend\nexport const ContextMenuProvider = ({\n children,\n label,\n menuActionHandler,\n menuBuilder,\n}: ContextMenuProviderProps) => {\n return (\n <ContextMenuContext.Consumer>\n {(parentContext) => (\n <Provider\n context={parentContext}\n label={label}\n menuActionHandler={menuActionHandler}\n menuBuilder={menuBuilder}\n >\n {children}\n </Provider>\n )}\n </ContextMenuContext.Consumer>\n );\n};\n", "// The menuBuilder will always be supplied by the code that will display the local\n// context menu. It will be passed all configured menu descriptors. It is free to\n\nimport { VuuServerMenuOptions } from \"@vuu-ui/vuu-data\";\nimport { MouseEvent, useCallback, useContext } from \"react\";\nimport { PopupService } from \"../popup\";\nimport {\n ContextMenuContext,\n ContextMenuItemDescriptor,\n isGroupMenuItemDescriptor,\n MenuActionHandler,\n MenuBuilder,\n} from \"./context-menu-provider\";\nimport { ContextMenu } from \"./ContextMenu\";\nimport { MenuItem, MenuItemGroup } from \"./MenuList\";\n\n// augment, replace or ignore the existing menu descriptors.\nexport const useContextMenu = () => {\n const ctx = useContext(ContextMenuContext);\n\n const buildMenuOptions = useCallback(\n (menuBuilders: MenuBuilder[], location, options) => {\n let results: ContextMenuItemDescriptor[] = [];\n for (const menuBuilder of menuBuilders) {\n // Maybe we should leave the concatenation to the menuBuilder, then it can control menuItem order\n results = results.concat(menuBuilder(location, options));\n }\n return results;\n },\n []\n );\n\n const handleShowContextMenu = useCallback(\n (e: MouseEvent<HTMLElement>, location: string, options: unknown) => {\n e.stopPropagation();\n e.preventDefault();\n const menuBuilders = ctx?.menuBuilders ?? [];\n const menuItemDescriptors = buildMenuOptions(\n menuBuilders,\n location,\n options\n );\n console.log({\n menuItemDescriptors,\n });\n if (menuItemDescriptors.length && ctx?.menuActionHandler) {\n console.log(`showContextMenu ${location}`, {\n options,\n });\n showContextMenu(e, menuItemDescriptors, ctx.menuActionHandler);\n }\n },\n [buildMenuOptions, ctx]\n );\n\n return handleShowContextMenu;\n};\n\nconst showContextMenu = (\n e: MouseEvent<HTMLElement>,\n menuDescriptors: ContextMenuItemDescriptor[],\n handleContextMenuAction: MenuActionHandler\n) => {\n const { clientX: left, clientY: top } = e;\n const menuItems = (menuDescriptors: ContextMenuItemDescriptor[]) => {\n const fromDescriptor = (menuItem: ContextMenuItemDescriptor, i: number) =>\n isGroupMenuItemDescriptor(menuItem) ? (\n <MenuItemGroup key={i} label={menuItem.label}>\n {menuItem.children.map(fromDescriptor)}\n </MenuItemGroup>\n ) : (\n <MenuItem\n key={i}\n action={menuItem.action}\n data-icon={menuItem.icon}\n options={menuItem.options}\n >\n {menuItem.label}\n </MenuItem>\n );\n\n return menuDescriptors.map(fromDescriptor);\n };\n\n const handleClose = (menuId?: string, options?: unknown) => {\n if (menuId) {\n handleContextMenuAction(menuId, options);\n PopupService.hidePopup();\n }\n };\n\n const component = (\n <ContextMenu onClose={handleClose} position={{ x: left, y: top }}>\n {menuItems(menuDescriptors)}\n </ContextMenu>\n );\n PopupService.showPopup({ left: 0, top: 0, component });\n};\n", "import cx from \"classnames\";\nimport React, {\n createElement,\n CSSProperties,\n HTMLAttributes,\n ReactElement,\n useEffect,\n useRef,\n} from \"react\";\nimport ReactDOM from \"react-dom\";\nimport { renderPortal } from \"../portal\";\n\nimport \"./popup-service.css\";\n\nlet _dialogOpen = false;\nconst _popups: string[] = [];\n\nfunction specialKeyHandler(e: KeyboardEvent) {\n if (e.key === \"Esc\") {\n if (_popups.length) {\n closeAllPopups();\n } else if (_dialogOpen) {\n const dialogRoot = document.body.querySelector(\".vuuDialog\");\n if (dialogRoot) {\n ReactDOM.unmountComponentAtNode(dialogRoot);\n }\n }\n }\n}\n\nfunction outsideClickHandler(e: MouseEvent) {\n if (_popups.length) {\n // onsole.log(`Popup.outsideClickHandler`);\n const popupContainers = document.body.querySelectorAll(\".vuuPopup\");\n for (let i = 0; i < popupContainers.length; i++) {\n if (popupContainers[i].contains(e.target as HTMLElement)) {\n return;\n }\n }\n closeAllPopups();\n }\n}\n\nfunction closeAllPopups() {\n if (_popups.length) {\n // onsole.log(`closeAllPopups`);\n const popupContainers = document.body.querySelectorAll(\".vuuPopup\");\n for (let i = 0; i < popupContainers.length; i++) {\n ReactDOM.unmountComponentAtNode(popupContainers[i]);\n }\n popupClosed(\"*\");\n }\n}\n\nfunction dialogOpened() {\n if (_dialogOpen === false) {\n _dialogOpen = true;\n window.addEventListener(\"keydown\", specialKeyHandler, true);\n }\n}\n\nfunction dialogClosed() {\n if (_dialogOpen) {\n _dialogOpen = false;\n window.removeEventListener(\"keydown\", specialKeyHandler, true);\n }\n}\n\nfunction popupOpened(name: string) {\n if (_popups.indexOf(name) === -1) {\n _popups.push(name);\n //onsole.log('PopupService, popup opened ' + name + ' popups : ' + _popups);\n if (_dialogOpen === false) {\n window.addEventListener(\"keydown\", specialKeyHandler, true);\n window.addEventListener(\"click\", outsideClickHandler, true);\n }\n }\n}\n\nfunction popupClosed(name: string /*, group=null*/) {\n if (_popups.length) {\n if (name === \"*\") {\n _popups.length = 0;\n } else {\n const pos = _popups.indexOf(name);\n if (pos !== -1) {\n _popups.splice(pos, 1);\n }\n }\n //onsole.log('PopupService, popup closed ' + name + ' popups : ' + _popups);\n if (_popups.length === 0 && _dialogOpen === false) {\n window.removeEventListener(\"keydown\", specialKeyHandler, true);\n window.removeEventListener(\"click\", outsideClickHandler, true);\n }\n }\n}\n\nconst PopupComponent = ({\n children,\n position,\n style,\n}: HTMLAttributes<HTMLDivElement> & {\n position?: \"above\" | \"below\" | \"\";\n style?: CSSProperties;\n}) => {\n const className = cx(\"hwPopup\", \"hwPopupContainer\", position);\n return createElement(\"div\", { className, style }, children);\n};\n\nlet incrementingKey = 1;\n\nexport class PopupService {\n static showPopup({\n name = \"anon\",\n group = \"all\",\n position = \"\",\n left = 0,\n right = \"auto\",\n top = 0,\n width = \"auto\",\n component,\n }: {\n depth?: number;\n name?: string;\n group?: string;\n position?: \"above\" | \"below\" | \"\";\n left?: number;\n right?: \"auto\" | number;\n top?: number;\n component: ReactElement;\n width?: number | \"auto\";\n }) {\n if (!component) {\n throw Error(`PopupService showPopup, no component supplied`);\n }\n popupOpened(name);\n let el = document.body.querySelector(\".vuuPopup.\" + group) as HTMLElement;\n if (el === null) {\n el = document.createElement(\"div\") as HTMLElement;\n el.className = \"vuuPopup \" + group;\n document.body.appendChild(el);\n }\n\n const style = { width };\n\n renderPortal(\n createElement(\n PopupComponent,\n { key: incrementingKey++, position, style },\n component\n ),\n el,\n left,\n top,\n () => {\n PopupService.keepWithinThePage(el, right);\n }\n );\n }\n\n static hidePopup(name = \"anon\", group = \"all\") {\n //onsole.log('PopupService.hidePopup name=' + name + ', group=' + group)\n\n if (_popups.indexOf(name) !== -1) {\n popupClosed(name);\n const popupRoot = document.body.querySelector(`.vuuPopup.${group}`);\n if (popupRoot) {\n ReactDOM.unmountComponentAtNode(popupRoot);\n }\n }\n }\n\n static keepWithinThePage(el: HTMLElement, right: number | \"auto\" = \"auto\") {\n const target = el.querySelector(\".vuuPopupContainer > *\") as HTMLElement;\n if (target) {\n const {\n top,\n left,\n width,\n height,\n right: currentRight,\n } = target.getBoundingClientRect();\n\n const w = window.innerWidth;\n const h = window.innerHeight;\n\n const overflowH = h - (top + height);\n if (overflowH < 0) {\n target.style.top = Math.round(top) + overflowH + \"px\";\n }\n\n const overflowW = w - (left + width);\n if (overflowW < 0) {\n target.style.left = Math.round(left) + overflowW + \"px\";\n }\n\n if (typeof right === \"number\" && right !== currentRight) {\n const adjustment = right - currentRight;\n target.style.left = left + adjustment + \"px\";\n }\n }\n }\n}\n\nexport class DialogService {\n static showDialog(dialog: ReactElement) {\n const containerEl = \".vuuDialog\";\n const onClose = dialog.props.onClose;\n\n dialogOpened();\n\n ReactDOM.render(\n React.cloneElement(dialog, {\n container: containerEl,\n onClose: () => {\n DialogService.closeDialog();\n if (onClose) {\n onClose();\n }\n },\n }),\n document.body.querySelector(containerEl)\n );\n }\n\n static closeDialog() {\n dialogClosed();\n const dialogRoot = document.body.querySelector(\".vuuDialog\");\n if (dialogRoot) {\n ReactDOM.unmountComponentAtNode(dialogRoot);\n }\n }\n}\n\nexport interface PopupProps {\n children: ReactElement;\n close?: boolean;\n depth: number;\n group?: string;\n name: string;\n position?: \"above\" | \"below\" | \"\";\n width: number;\n}\n\nexport const Popup = (props: PopupProps) => {\n const pendingTask = useRef<number | undefined>();\n const ref = useRef<HTMLElement>(null);\n\n const show = (props: PopupProps, boundingClientRect: DOMRect) => {\n const { name, group, depth, width } = props;\n let left: number | undefined;\n let top: number | undefined;\n\n if (pendingTask.current) {\n window.clearTimeout(pendingTask.current);\n pendingTask.current = undefined;\n }\n\n if (props.close === true) {\n PopupService.hidePopup(name, group);\n } else {\n const { position, children: component } = props;\n const {\n left: targetLeft,\n top: targetTop,\n width: clientWidth,\n bottom: targetBottom,\n } = boundingClientRect;\n\n if (position === \"below\") {\n left = targetLeft;\n top = targetBottom;\n } else if (position === \"above\") {\n left = targetLeft;\n top = targetTop;\n }\n\n pendingTask.current = window.setTimeout(() => {\n PopupService.showPopup({\n name,\n group,\n depth,\n position,\n left,\n top,\n width: width || clientWidth,\n component,\n });\n }, 10);\n }\n };\n\n useEffect(() => {\n if (ref.current) {\n const el = ref.current.parentElement;\n const boundingClientRect = el?.getBoundingClientRect();\n if (boundingClientRect) {\n show(props, boundingClientRect);\n }\n }\n\n return () => {\n PopupService.hidePopup(props.name, props.group);\n };\n }, [props]);\n\n return React.createElement(\"div\", { className: \"popup-proxy\", ref });\n};\n"],
5
- "mappings": "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",
6
- "names": ["src_exports", "__export", "ContextMenu", "ContextMenuContext", "ContextMenuProvider", "Dialog", "DialogService", "MenuItem", "MenuItemGroup", "Popup", "PopupService", "Portal", "Separator", "createContainer", "installTheme", "isGroupMenuItemDescriptor", "renderPortal", "useContextMenu", "__toCommonJS", "import_salt_lab", "import_core", "import_classnames", "import_react", "import_react", "ReactDOM", "ReactDOM", "import_core", "import_jsx_runtime", "containerId", "getPortalContainer", "x", "y", "win", "el", "createDOMContainer", "renderPortal", "component", "container", "onRender", "createContainer", "Portal", "children", "x", "y", "onRender", "renderContainer", "createContainer", "renderPortal", "_a", "installTheme", "themeId", "installedThemes", "import_jsx_runtime", "classBase", "Dialog", "children", "className", "isOpen", "onClose", "title", "props", "root", "posX", "posY", "close", "handleRender", "Portal", "cx", "import_core", "import_react", "import_react", "import_classnames", "import_core", "import_react", "isRoot", "el", "hasPopup", "idx", "_a", "union", "set1", "sets", "result", "set", "element", "Enter", "Delete", "actionKeys", "Enter", "focusKeys", "arrowLeftRightKeys", "verticalNavigationKeys", "horizontalNavigationKeys", "functionKeys", "specialKeys", "union", "isNavigationKey", "key", "orientation", "verticalNavigationKeys", "horizontalNavigationKeys", "useKeyboardNavigation", "autoHighlightFirstItem", "count", "highlightedIndexProp", "onActivate", "onHighlight", "onCloseMenu", "onOpenMenu", "highlightedIndexRef", "forceRender", "controlledHighlighting", "setHighlightedIdx", "idx", "setHighlightedIndex", "keyBoardNavigation", "ignoreFocus", "setIgnoreFocus", "value", "highlightedIndex", "navigateChildldItems", "e", "nextIdx", "nextItemIdx", "handleKeyDown", "isNavigationKey", "hasPopup", "isRoot", "listProps", "key", "import_react", "isMenuItemGroup", "child", "MenuItemGroup", "useItemsWithIds", "childrenProp", "normalizeChildren", "collectChildren", "children", "path", "menus", "actions", "list", "idx", "hasSeparator", "React", "Separator", "group", "childPath", "action", "options", "childWithId", "grandChildren", "assignId", "import_jsx_runtime", "classBase", "Separator", "MenuItemGroup", "MenuItem", "children", "idx", "props", "hasIcon", "child", "MenuList", "activatedByKeyboard", "childMenuShowing", "className", "highlightedIdxProp", "idProp", "isRoot", "listItemProps", "menuId", "onHighlightMenuItem", "onActivate", "onCloseMenu", "onOpenMenu", "id", "useId", "root", "mapIdxToId", "handleOpenMenu", "_a", "el", "handleActivate", "focusVisible", "highlightedIndex", "listProps", "useKeyboardNavigation", "React", "appliedFocusVisible", "cx", "renderContent", "propsCommonToAllListItems", "maybeIcon", "childElement", "withIcon", "iconName", "addClonedChild", "list", "itemId", "hasSeparator", "label", "hasSubMenu", "isMenuItemGroup", "subMenuShowing", "ariaControls", "getMenuItemProps", "listItems", "baseId", "key", "highlightedIdx", "MenuList_default", "import_react", "listItemIndex", "listItemEl", "idx", "closestListItem", "el", "nudge", "menus", "distance", "pos", "m", "i", "nudgeLeft", "nudgeUp", "flipSides", "id", "parentMenu", "menu", "el", "width", "getPosition", "openMenus", "left", "menuTop", "top", "getItemId", "getMenuId", "itemId", "getMenuDepth", "count", "identifyItem", "useCascade", "onActivate", "onMouseEnterItem", "posX", "posY", "forceRefresh", "setOpenMenus", "menuOpenPendingTimeout", "menuClosePendingTimeout", "menuState", "prevLevel", "openMenu", "menuId", "listItemEl", "closeMenu", "closeMenus", "lastMenuId", "parentMenuId", "scheduleOpen", "scheduleClose", "openMenuId", "handleRender", "right", "bottom", "clientHeight", "clientWidth", "newMenus", "listItemProps", "evt", "closestListItem", "isGroup", "isOpen", "level", "sameLevel", "state", "targetElement", "idx", "listItemIndex", "import_react", "useClickAway", "containerClassName", "isOpen", "onClose", "clickHandler", "evt", "import_jsx_runtime", "import_react", "noop", "ContextMenu", "activatedByKeyboard", "childrenProp", "className", "idProp", "onClose", "position", "style", "menuListProps", "id", "useId", "closeMenuRef", "menus", "actions", "useItemsWithIds", "navigatingWithKeyboard", "handleMouseEnterItem", "handleActivate", "menuId", "action", "options", "closeMenu", "listItemProps", "openMenu", "openMenus", "handleRender", "useCascade", "handleClose", "useClickAway", "handleOpenMenu", "itemId", "getItemId", "getMenuId", "handleCloseMenu", "handleHighlightMenuItem", "lastMenu", "getChildMenuIndex", "i", "pos", "left", "top", "childMenuIndex", "Portal", "MenuList_default", "import_react", "import_jsx_runtime", "ContextMenuContext", "isGroupMenuItemDescriptor", "menuItem", "Provider", "children", "context", "menuActionHandler", "menuBuilder", "menuBuilders", "handleMenuAction", "type", "options", "_a", "ContextMenuProvider", "label", "parentContext", "import_react", "import_classnames", "import_react", "import_react_dom", "_dialogOpen", "_popups", "specialKeyHandler", "closeAllPopups", "dialogRoot", "ReactDOM", "outsideClickHandler", "popupContainers", "i", "popupClosed", "dialogOpened", "dialogClosed", "popupOpened", "name", "pos", "PopupComponent", "children", "position", "style", "className", "cx", "incrementingKey", "PopupService", "group", "left", "right", "top", "width", "component", "el", "renderPortal", "popupRoot", "target", "height", "currentRight", "w", "overflowH", "overflowW", "adjustment", "DialogService", "dialog", "containerEl", "onClose", "React", "Popup", "props", "pendingTask", "ref", "show", "boundingClientRect", "depth", "targetLeft", "targetTop", "clientWidth", "targetBottom", "import_jsx_runtime", "useContextMenu", "ctx", "ContextMenuContext", "buildMenuOptions", "menuBuilders", "location", "options", "results", "menuBuilder", "e", "_a", "menuItemDescriptors", "showContextMenu", "menuDescriptors", "handleContextMenuAction", "left", "top", "component", "ContextMenu", "menuId", "PopupService", "fromDescriptor", "menuItem", "i", "isGroupMenuItemDescriptor", "MenuItemGroup", "MenuItem"]
5
+ "mappings": "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",
6
+ "names": ["import_core", "import_react", "ReactDOM", "Portal", "import_jsx_runtime", "cx", "import_core", "import_react", "import_react", "import_classnames", "import_core", "import_react", "import_react", "menus", "actions", "React", "import_jsx_runtime", "classBase", "isRoot", "useId", "React", "cx", "children", "className", "props", "import_react", "import_react", "import_jsx_runtime", "import_react", "useId", "id", "import_react", "import_jsx_runtime", "import_react", "import_classnames", "import_react", "ReactDOM", "cx", "React", "props", "import_jsx_runtime", "menuDescriptors"]
7
7
  }