@deephaven/components 0.94.0 → 0.95.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AutoCompleteInput.d.ts +1 -1
- package/dist/AutoCompleteInput.d.ts.map +1 -1
- package/dist/AutoCompleteInput.js.map +1 -1
- package/dist/Button.d.ts +1 -1
- package/dist/Button.d.ts.map +1 -1
- package/dist/Button.js.map +1 -1
- package/dist/CardFlip.d.ts.map +1 -1
- package/dist/CardFlip.js.map +1 -1
- package/dist/ComponentUtils.d.ts +2 -1
- package/dist/ComponentUtils.d.ts.map +1 -1
- package/dist/ComponentUtils.js.map +1 -1
- package/dist/CopyButton.d.ts +1 -1
- package/dist/CopyButton.d.ts.map +1 -1
- package/dist/CopyButton.js.map +1 -1
- package/dist/CustomTimeSelect.d.ts +3 -3
- package/dist/CustomTimeSelect.d.ts.map +1 -1
- package/dist/CustomTimeSelect.js.map +1 -1
- package/dist/DateInput.js.map +1 -1
- package/dist/DateInputUtils.d.ts +1 -1
- package/dist/DateInputUtils.d.ts.map +1 -1
- package/dist/DateInputUtils.js.map +1 -1
- package/dist/DateTimeInput.d.ts +1 -1
- package/dist/DateTimeInput.d.ts.map +1 -1
- package/dist/DateTimeInput.js.map +1 -1
- package/dist/DraggableItemList.d.ts +3 -3
- package/dist/DraggableItemList.d.ts.map +1 -1
- package/dist/DraggableItemList.js.map +1 -1
- package/dist/EditableItemList.js.map +1 -1
- package/dist/ErrorBoundary.d.ts +1 -1
- package/dist/ErrorBoundary.d.ts.map +1 -1
- package/dist/ErrorBoundary.js.map +1 -1
- package/dist/HierarchicalCheckboxMenu.d.ts +1 -1
- package/dist/HierarchicalCheckboxMenu.d.ts.map +1 -1
- package/dist/HierarchicalCheckboxMenu.js.map +1 -1
- package/dist/ItemList.d.ts +3 -3
- package/dist/ItemList.d.ts.map +1 -1
- package/dist/ItemList.js.map +1 -1
- package/dist/MaskedInput.d.ts +1 -1
- package/dist/MaskedInput.d.ts.map +1 -1
- package/dist/MaskedInput.js.map +1 -1
- package/dist/Option.d.ts +1 -1
- package/dist/Option.d.ts.map +1 -1
- package/dist/Option.js.map +1 -1
- package/dist/SearchableCombobox.d.ts +2 -2
- package/dist/SearchableCombobox.d.ts.map +1 -1
- package/dist/SearchableCombobox.js.map +1 -1
- package/dist/TextWithTooltip.d.ts +1 -1
- package/dist/TextWithTooltip.d.ts.map +1 -1
- package/dist/TextWithTooltip.js.map +1 -1
- package/dist/TimeInput.d.ts +1 -1
- package/dist/TimeInput.d.ts.map +1 -1
- package/dist/TimeInput.js.map +1 -1
- package/dist/TimeSlider.d.ts.map +1 -1
- package/dist/TimeSlider.js.map +1 -1
- package/dist/XComponent.d.ts +1 -1
- package/dist/XComponent.d.ts.map +1 -1
- package/dist/XComponent.js.map +1 -1
- package/dist/actions/ConfirmActionButton.d.ts +1 -1
- package/dist/actions/ConfirmActionButton.d.ts.map +1 -1
- package/dist/actions/ConfirmActionButton.js.map +1 -1
- package/dist/actions/IconActionButton.d.ts +1 -1
- package/dist/actions/IconActionButton.d.ts.map +1 -1
- package/dist/actions/IconActionButton.js.map +1 -1
- package/dist/context-actions/ContextActionUtils.d.ts +3 -3
- package/dist/context-actions/ContextActionUtils.d.ts.map +1 -1
- package/dist/context-actions/ContextActionUtils.js.map +1 -1
- package/dist/context-actions/ContextActions.d.ts +1 -1
- package/dist/context-actions/ContextActions.d.ts.map +1 -1
- package/dist/context-actions/ContextActions.js.map +1 -1
- package/dist/context-actions/ContextMenu.d.ts +2 -2
- package/dist/context-actions/ContextMenu.d.ts.map +1 -1
- package/dist/context-actions/ContextMenu.js.map +1 -1
- package/dist/context-actions/ContextMenuItem.js.map +1 -1
- package/dist/context-actions/ContextMenuRoot.d.ts +1 -1
- package/dist/context-actions/ContextMenuRoot.d.ts.map +1 -1
- package/dist/context-actions/ContextMenuRoot.js.map +1 -1
- package/dist/dialogs/ActionButtonDialogTrigger.d.ts +1 -1
- package/dist/dialogs/ActionButtonDialogTrigger.d.ts.map +1 -1
- package/dist/dialogs/ActionButtonDialogTrigger.js.map +1 -1
- package/dist/dialogs/ConfirmationDialog.d.ts +1 -1
- package/dist/dialogs/ConfirmationDialog.d.ts.map +1 -1
- package/dist/dialogs/ConfirmationDialog.js.map +1 -1
- package/dist/menu-actions/DropdownMenu.d.ts +3 -3
- package/dist/menu-actions/DropdownMenu.d.ts.map +1 -1
- package/dist/menu-actions/DropdownMenu.js.map +1 -1
- package/dist/menu-actions/Menu.d.ts +1 -1
- package/dist/menu-actions/Menu.d.ts.map +1 -1
- package/dist/menu-actions/Menu.js.map +1 -1
- package/dist/modal/InfoModal.d.ts +1 -1
- package/dist/modal/InfoModal.d.ts.map +1 -1
- package/dist/modal/InfoModal.js.map +1 -1
- package/dist/modal/Modal.d.ts +1 -1
- package/dist/modal/Modal.d.ts.map +1 -1
- package/dist/modal/Modal.js.map +1 -1
- package/dist/modal/ModalBody.d.ts +1 -1
- package/dist/modal/ModalBody.d.ts.map +1 -1
- package/dist/modal/ModalBody.js.map +1 -1
- package/dist/modal/ModalFooter.d.ts +1 -1
- package/dist/modal/ModalFooter.d.ts.map +1 -1
- package/dist/modal/ModalFooter.js.map +1 -1
- package/dist/modal/ModalHeader.d.ts +1 -1
- package/dist/modal/ModalHeader.d.ts.map +1 -1
- package/dist/modal/ModalHeader.js.map +1 -1
- package/dist/navigation/Menu.d.ts +1 -1
- package/dist/navigation/Menu.d.ts.map +1 -1
- package/dist/navigation/Menu.js.map +1 -1
- package/dist/navigation/MenuItem.d.ts +1 -1
- package/dist/navigation/MenuItem.d.ts.map +1 -1
- package/dist/navigation/MenuItem.js.map +1 -1
- package/dist/navigation/NavTab.d.ts +1 -1
- package/dist/navigation/NavTab.d.ts.map +1 -1
- package/dist/navigation/NavTab.js.map +1 -1
- package/dist/navigation/NavTabList.d.ts +2 -2
- package/dist/navigation/NavTabList.d.ts.map +1 -1
- package/dist/navigation/NavTabList.js.map +1 -1
- package/dist/popper/Popper.d.ts +1 -1
- package/dist/popper/Popper.d.ts.map +1 -1
- package/dist/popper/Popper.js.map +1 -1
- package/dist/popper/Tooltip.d.ts +1 -1
- package/dist/popper/Tooltip.d.ts.map +1 -1
- package/dist/popper/Tooltip.js.map +1 -1
- package/dist/shortcuts/Shortcut.d.ts +2 -2
- package/dist/shortcuts/Shortcut.d.ts.map +1 -1
- package/dist/shortcuts/Shortcut.js.map +1 -1
- package/dist/shortcuts/ShortcutRegistry.d.ts +2 -2
- package/dist/shortcuts/ShortcutRegistry.d.ts.map +1 -1
- package/dist/shortcuts/ShortcutRegistry.js.map +1 -1
- package/dist/spectrum/ActionGroup.d.ts +3 -3
- package/dist/spectrum/ActionGroup.d.ts.map +1 -1
- package/dist/spectrum/ActionGroup.js.map +1 -1
- package/dist/spectrum/ActionMenu.d.ts +3 -3
- package/dist/spectrum/ActionMenu.d.ts.map +1 -1
- package/dist/spectrum/ActionMenu.js.map +1 -1
- package/dist/spectrum/ItemContent.d.ts +2 -2
- package/dist/spectrum/ItemContent.d.ts.map +1 -1
- package/dist/spectrum/ItemContent.js.map +1 -1
- package/dist/spectrum/ItemTooltip.d.ts +2 -2
- package/dist/spectrum/ItemTooltip.d.ts.map +1 -1
- package/dist/spectrum/ItemTooltip.js.map +1 -1
- package/dist/spectrum/ListActionGroup.d.ts +2 -2
- package/dist/spectrum/ListActionGroup.d.ts.map +1 -1
- package/dist/spectrum/ListActionGroup.js.map +1 -1
- package/dist/spectrum/ListActionMenu.d.ts +2 -2
- package/dist/spectrum/ListActionMenu.d.ts.map +1 -1
- package/dist/spectrum/ListActionMenu.js.map +1 -1
- package/dist/spectrum/View.js.map +1 -1
- package/dist/spectrum/comboBox/ComboBox.d.ts +2 -2
- package/dist/spectrum/comboBox/ComboBox.d.ts.map +1 -1
- package/dist/spectrum/comboBox/ComboBox.js.map +1 -1
- package/dist/spectrum/comboBox/ComboBoxNormalized.d.ts +2 -2
- package/dist/spectrum/comboBox/ComboBoxNormalized.d.ts.map +1 -1
- package/dist/spectrum/comboBox/ComboBoxNormalized.js.map +1 -1
- package/dist/spectrum/dateAndTime.d.ts +1 -1
- package/dist/spectrum/dateAndTime.d.ts.map +1 -1
- package/dist/spectrum/dateAndTime.js.map +1 -1
- package/dist/spectrum/listView/ListView.d.ts +3 -3
- package/dist/spectrum/listView/ListView.d.ts.map +1 -1
- package/dist/spectrum/listView/ListView.js.map +1 -1
- package/dist/spectrum/listView/ListViewNormalized.d.ts +1 -1
- package/dist/spectrum/listView/ListViewNormalized.d.ts.map +1 -1
- package/dist/spectrum/listView/ListViewNormalized.js.map +1 -1
- package/dist/spectrum/listView/ListViewWrapper.d.ts +1 -1
- package/dist/spectrum/listView/ListViewWrapper.d.ts.map +1 -1
- package/dist/spectrum/listView/ListViewWrapper.js.map +1 -1
- package/dist/spectrum/picker/Picker.d.ts +1 -1
- package/dist/spectrum/picker/Picker.d.ts.map +1 -1
- package/dist/spectrum/picker/Picker.js.map +1 -1
- package/dist/spectrum/picker/usePickerNormalizedProps.d.ts +3 -3
- package/dist/spectrum/picker/usePickerNormalizedProps.d.ts.map +1 -1
- package/dist/spectrum/picker/usePickerNormalizedProps.js.map +1 -1
- package/dist/spectrum/picker/usePickerProps.d.ts +2 -2
- package/dist/spectrum/picker/usePickerProps.d.ts.map +1 -1
- package/dist/spectrum/picker/usePickerProps.js.map +1 -1
- package/dist/spectrum/utils/itemUtils.d.ts +4 -4
- package/dist/spectrum/utils/itemUtils.d.ts.map +1 -1
- package/dist/spectrum/utils/itemUtils.js.map +1 -1
- package/dist/spectrum/utils/itemWrapperUtils.d.ts +2 -2
- package/dist/spectrum/utils/itemWrapperUtils.d.ts.map +1 -1
- package/dist/spectrum/utils/itemWrapperUtils.js.map +1 -1
- package/dist/spectrum/utils/useOnChangeTrackUncontrolled.d.ts +1 -1
- package/dist/spectrum/utils/useOnChangeTrackUncontrolled.d.ts.map +1 -1
- package/dist/spectrum/utils/useOnChangeTrackUncontrolled.js.map +1 -1
- package/dist/spectrum/utils/useRenderNormalizedItem.d.ts +4 -4
- package/dist/spectrum/utils/useRenderNormalizedItem.d.ts.map +1 -1
- package/dist/spectrum/utils/useRenderNormalizedItem.js.map +1 -1
- package/dist/spectrum/utils/useStaticItemInitialScrollPosition.d.ts +1 -1
- package/dist/spectrum/utils/useStaticItemInitialScrollPosition.d.ts.map +1 -1
- package/dist/spectrum/utils/useStaticItemInitialScrollPosition.js.map +1 -1
- package/dist/spectrum/utils/useStringifiedMultiSelection.d.ts +2 -2
- package/dist/spectrum/utils/useStringifiedMultiSelection.d.ts.map +1 -1
- package/dist/spectrum/utils/useStringifiedMultiSelection.js.map +1 -1
- package/dist/spectrum/utils/useStringifiedSelection.d.ts +2 -2
- package/dist/spectrum/utils/useStringifiedSelection.d.ts.map +1 -1
- package/dist/spectrum/utils/useStringifiedSelection.js.map +1 -1
- package/dist/theme/SpectrumThemeProvider.d.ts +1 -1
- package/dist/theme/SpectrumThemeProvider.d.ts.map +1 -1
- package/dist/theme/SpectrumThemeProvider.js.map +1 -1
- package/dist/theme/ThemePicker.js.map +1 -1
- package/dist/theme/ThemeProvider.d.ts +2 -2
- package/dist/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/ThemeUtils.d.ts +1 -1
- package/dist/theme/ThemeUtils.d.ts.map +1 -1
- package/dist/theme/ThemeUtils.js.map +1 -1
- package/dist/theme/colorUtils.d.ts +1 -1
- package/dist/theme/colorUtils.d.ts.map +1 -1
- package/dist/theme/colorUtils.js.map +1 -1
- package/dist/theme/useTheme.d.ts +1 -1
- package/dist/theme/useTheme.d.ts.map +1 -1
- package/dist/theme/useTheme.js.map +1 -1
- package/package.json +8 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","names":["React","Component","classNames","Log","Popper","jsxs","_jsxs","jsx","_jsx","log","module","Tooltip","handleHidden","shownTooltipCount","lastHiddenTime","Date","now","handleShown","constructor","props","_defineProperty","handleMouseMove","bind","handleMouseLeave","handleWindowMouseMove","handleWheel","handleTimeout","handleExited","stopShowingTooltip","container","createRef","popper","parent","timer","state","isShown","componentDidMount","startListening","timeout","show","componentDidUpdate","prevProps","prevState","oldIsShown","componentWillUnmount","stopListening","stopListeningWindow","stopTimer","current","parentElement","error","addEventListener","removeEventListener","startListeningWindow","window","startTimer","element","matches","hide","interactive","event","mouseX","clientX","mouseY","clientY","popperRect","getBoundingClientRect","parentRect","left","width","top","height","reshowTimeout","timerTimeout","triggerReshowThreshold","setTimeout","clearTimeout","_this$popper$current","setState","_this$popper$current2","update","_this$popper$current3","scheduleUpdate","onExited","render","children","referenceObject","popperClassName","dataTestId","onEntered","options","_objectSpread","placement","ref","style","display","className","defaultReshowTimeout","defaultTimeout","undefined"],"sources":["../../src/popper/Tooltip.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport Popper, { PopperOptions, ReferenceObject } from './Popper';\n\nconst log = Log.module('Tooltip');\n\ntype TooltipProps = typeof Tooltip.defaultProps & {\n children: React.ReactNode;\n interactive?: boolean;\n options?: PopperOptions;\n popperClassName?: string;\n reshowTimeout?: number;\n timeout?: number;\n referenceObject?: ReferenceObject | null;\n onEntered?: () => void;\n onExited?: () => void;\n 'data-testid'?: string;\n};\ninterface TooltipState {\n isShown: boolean;\n}\n\n/**\n * Component that can be added to an element to automatically display a tooltip.\n * Content is mounted lazily, so don't worry about complex tooltips!\n *\n * Usage:\n * <div className=\"parent-container\">\n * Hover this container to see a tooltip\n * <Tooltip>\n * <div>My tooltip content goes here!</div>\n * </Tooltip>\n * </div>\n */\nclass Tooltip extends Component<TooltipProps, TooltipState> {\n static defaultTimeout = 500;\n\n static defaultReshowTimeout = 100;\n\n static triggerReshowThreshold = 300;\n\n static shownTooltipCount = 0;\n\n static lastHiddenTime = Date.now();\n\n static defaultProps = {\n interactive: false,\n options: {},\n popperClassName: '',\n reshowTimeout: Tooltip.defaultReshowTimeout,\n timeout: Tooltip.defaultTimeout,\n onEntered: (): void => undefined,\n onExited: (): void => undefined,\n 'data-testid': undefined,\n };\n\n static handleHidden(): void {\n Tooltip.shownTooltipCount -= 1;\n\n if (Tooltip.shownTooltipCount === 0) {\n Tooltip.lastHiddenTime = Date.now();\n }\n }\n\n static handleShown(): void {\n Tooltip.shownTooltipCount += 1;\n }\n\n constructor(props: TooltipProps) {\n super(props);\n\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleWindowMouseMove = this.handleWindowMouseMove.bind(this);\n this.handleWheel = this.handleWheel.bind(this);\n this.handleTimeout = this.handleTimeout.bind(this);\n this.handleExited = this.handleExited.bind(this);\n this.stopShowingTooltip = this.stopShowingTooltip.bind(this);\n\n this.container = React.createRef();\n this.popper = React.createRef();\n this.parent = null;\n this.timer = null;\n\n this.state = {\n isShown: false,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n\n const { timeout } = this.props;\n if (timeout === 0) {\n this.show();\n }\n }\n\n componentDidUpdate(prevProps: TooltipProps, prevState: TooltipState): void {\n const { isShown: oldIsShown } = prevState;\n const { isShown } = this.state;\n\n if (isShown !== oldIsShown) {\n if (isShown) {\n Tooltip.handleShown();\n } else {\n Tooltip.handleHidden();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.stopListening();\n this.stopListeningWindow();\n this.stopTimer();\n\n const { isShown } = this.state;\n\n if (isShown) {\n Tooltip.handleHidden();\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n popper: React.RefObject<Popper>;\n\n parent: HTMLElement | null;\n\n // This is platform dependent of Node/DOM\n // Jest requires Node types\n timer: number | null;\n\n startListening(): void {\n if (!this.container.current || !this.container.current.parentElement) {\n log.error(\"Tooltip doesn't have a container or a parent set!\");\n return;\n }\n\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('mousemove', this.handleMouseMove);\n this.parent.addEventListener('mouseleave', this.handleMouseLeave);\n this.parent.addEventListener('mousedown', this.stopShowingTooltip);\n }\n\n stopListening(): void {\n if (!this.parent) {\n return;\n }\n\n this.parent.removeEventListener('mousemove', this.handleMouseMove);\n this.parent.removeEventListener('mouseleave', this.handleMouseLeave);\n this.parent.removeEventListener('mousedown', this.stopShowingTooltip);\n }\n\n startListeningWindow(): void {\n window.addEventListener('mousemove', this.handleWindowMouseMove, true);\n window.addEventListener('contextmenu', this.stopShowingTooltip, true);\n window.addEventListener('wheel', this.handleWheel);\n }\n\n stopListeningWindow(): void {\n window.removeEventListener('mousemove', this.handleWindowMouseMove, true);\n window.removeEventListener('contextmenu', this.stopShowingTooltip, true);\n window.removeEventListener('wheel', this.handleWheel);\n }\n\n handleMouseMove(): void {\n this.startTimer();\n }\n\n handleWheel(): void {\n const { isShown } = this.state;\n if (this.popper.current && this.parent && isShown) {\n if (\n !this.popper.current.element.matches(':hover') &&\n !this.parent.matches(':hover')\n ) {\n this.stopTimer();\n this.hide();\n }\n }\n }\n\n handleMouseLeave(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n const { interactive } = this.props;\n if (!interactive && isShown) {\n this.hide();\n }\n }\n\n handleTimeout(): void {\n this.show();\n }\n\n handleWindowMouseMove(event: MouseEvent): void {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { isShown } = this.state;\n\n if (!this.popper.current || !this.parent) {\n return;\n }\n const popperRect = this.popper.current.element.getBoundingClientRect();\n const parentRect = this.parent.getBoundingClientRect();\n\n if (\n mouseX >= popperRect.left &&\n mouseX <= popperRect.left + popperRect.width &&\n mouseY >= popperRect.top &&\n mouseY <= popperRect.top + popperRect.height\n ) {\n this.handleMouseMove();\n } else if (\n mouseX >= parentRect.left &&\n mouseX <= parentRect.left + parentRect.width &&\n mouseY >= parentRect.top &&\n mouseY <= parentRect.top + parentRect.height\n ) {\n this.handleMouseMove();\n } else if (isShown) {\n this.stopTimer();\n this.hide();\n }\n }\n\n startTimer(): void {\n this.stopTimer();\n\n const { timeout, reshowTimeout } = this.props;\n let timerTimeout = timeout;\n if (\n Tooltip.shownTooltipCount > 0 ||\n Date.now() - Tooltip.lastHiddenTime < Tooltip.triggerReshowThreshold\n ) {\n timerTimeout = reshowTimeout;\n }\n this.timer = window.setTimeout(this.handleTimeout, timerTimeout);\n }\n\n stopTimer(): void {\n if (this.timer != null) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n show(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n if (!isShown) {\n this.popper.current?.show();\n this.setState({ isShown: true });\n\n const { interactive } = this.props;\n if (interactive) {\n this.startListeningWindow();\n }\n }\n }\n\n hide(): void {\n this.popper.current?.hide();\n this.stopListeningWindow();\n }\n\n update(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleExited(): void {\n this.setState({ isShown: false });\n const { onExited } = this.props;\n onExited();\n }\n\n stopShowingTooltip(): void {\n const { isShown } = this.state;\n this.stopTimer();\n if (isShown) {\n this.hide();\n }\n }\n\n render(): JSX.Element {\n const {\n interactive,\n children,\n referenceObject,\n popperClassName,\n 'data-testid': dataTestId,\n onEntered,\n } = this.props;\n const { isShown } = this.state;\n\n let { options } = this.props;\n options = {\n placement: 'bottom',\n ...options,\n };\n\n return (\n <div\n ref={this.container}\n style={{ display: 'none' }}\n data-testid={dataTestId}\n >\n <Popper\n className={classNames(popperClassName, 'popper-tooltip')}\n options={options}\n ref={this.popper}\n onEntered={onEntered}\n onExited={this.handleExited}\n interactive={interactive}\n referenceObject={referenceObject}\n >\n <div className=\"tooltip-content\"> {isShown && children}</div>\n </Popper>\n </div>\n );\n }\n}\n\nexport default Tooltip;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Tooltip.js","names":["React","Component","classNames","Log","Popper","jsxs","_jsxs","jsx","_jsx","log","module","Tooltip","handleHidden","shownTooltipCount","lastHiddenTime","Date","now","handleShown","constructor","props","_defineProperty","handleMouseMove","bind","handleMouseLeave","handleWindowMouseMove","handleWheel","handleTimeout","handleExited","stopShowingTooltip","container","createRef","popper","parent","timer","state","isShown","componentDidMount","startListening","timeout","show","componentDidUpdate","prevProps","prevState","oldIsShown","componentWillUnmount","stopListening","stopListeningWindow","stopTimer","current","parentElement","error","addEventListener","removeEventListener","startListeningWindow","window","startTimer","element","matches","hide","interactive","event","mouseX","clientX","mouseY","clientY","popperRect","getBoundingClientRect","parentRect","left","width","top","height","reshowTimeout","timerTimeout","triggerReshowThreshold","setTimeout","clearTimeout","_this$popper$current","setState","_this$popper$current2","update","_this$popper$current3","scheduleUpdate","onExited","render","children","referenceObject","popperClassName","dataTestId","onEntered","options","_objectSpread","placement","ref","style","display","className","defaultReshowTimeout","defaultTimeout","undefined"],"sources":["../../src/popper/Tooltip.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport Popper, { type PopperOptions, type ReferenceObject } from './Popper';\n\nconst log = Log.module('Tooltip');\n\ntype TooltipProps = typeof Tooltip.defaultProps & {\n children: React.ReactNode;\n interactive?: boolean;\n options?: PopperOptions;\n popperClassName?: string;\n reshowTimeout?: number;\n timeout?: number;\n referenceObject?: ReferenceObject | null;\n onEntered?: () => void;\n onExited?: () => void;\n 'data-testid'?: string;\n};\ninterface TooltipState {\n isShown: boolean;\n}\n\n/**\n * Component that can be added to an element to automatically display a tooltip.\n * Content is mounted lazily, so don't worry about complex tooltips!\n *\n * Usage:\n * <div className=\"parent-container\">\n * Hover this container to see a tooltip\n * <Tooltip>\n * <div>My tooltip content goes here!</div>\n * </Tooltip>\n * </div>\n */\nclass Tooltip extends Component<TooltipProps, TooltipState> {\n static defaultTimeout = 500;\n\n static defaultReshowTimeout = 100;\n\n static triggerReshowThreshold = 300;\n\n static shownTooltipCount = 0;\n\n static lastHiddenTime = Date.now();\n\n static defaultProps = {\n interactive: false,\n options: {},\n popperClassName: '',\n reshowTimeout: Tooltip.defaultReshowTimeout,\n timeout: Tooltip.defaultTimeout,\n onEntered: (): void => undefined,\n onExited: (): void => undefined,\n 'data-testid': undefined,\n };\n\n static handleHidden(): void {\n Tooltip.shownTooltipCount -= 1;\n\n if (Tooltip.shownTooltipCount === 0) {\n Tooltip.lastHiddenTime = Date.now();\n }\n }\n\n static handleShown(): void {\n Tooltip.shownTooltipCount += 1;\n }\n\n constructor(props: TooltipProps) {\n super(props);\n\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleWindowMouseMove = this.handleWindowMouseMove.bind(this);\n this.handleWheel = this.handleWheel.bind(this);\n this.handleTimeout = this.handleTimeout.bind(this);\n this.handleExited = this.handleExited.bind(this);\n this.stopShowingTooltip = this.stopShowingTooltip.bind(this);\n\n this.container = React.createRef();\n this.popper = React.createRef();\n this.parent = null;\n this.timer = null;\n\n this.state = {\n isShown: false,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n\n const { timeout } = this.props;\n if (timeout === 0) {\n this.show();\n }\n }\n\n componentDidUpdate(prevProps: TooltipProps, prevState: TooltipState): void {\n const { isShown: oldIsShown } = prevState;\n const { isShown } = this.state;\n\n if (isShown !== oldIsShown) {\n if (isShown) {\n Tooltip.handleShown();\n } else {\n Tooltip.handleHidden();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.stopListening();\n this.stopListeningWindow();\n this.stopTimer();\n\n const { isShown } = this.state;\n\n if (isShown) {\n Tooltip.handleHidden();\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n popper: React.RefObject<Popper>;\n\n parent: HTMLElement | null;\n\n // This is platform dependent of Node/DOM\n // Jest requires Node types\n timer: number | null;\n\n startListening(): void {\n if (!this.container.current || !this.container.current.parentElement) {\n log.error(\"Tooltip doesn't have a container or a parent set!\");\n return;\n }\n\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('mousemove', this.handleMouseMove);\n this.parent.addEventListener('mouseleave', this.handleMouseLeave);\n this.parent.addEventListener('mousedown', this.stopShowingTooltip);\n }\n\n stopListening(): void {\n if (!this.parent) {\n return;\n }\n\n this.parent.removeEventListener('mousemove', this.handleMouseMove);\n this.parent.removeEventListener('mouseleave', this.handleMouseLeave);\n this.parent.removeEventListener('mousedown', this.stopShowingTooltip);\n }\n\n startListeningWindow(): void {\n window.addEventListener('mousemove', this.handleWindowMouseMove, true);\n window.addEventListener('contextmenu', this.stopShowingTooltip, true);\n window.addEventListener('wheel', this.handleWheel);\n }\n\n stopListeningWindow(): void {\n window.removeEventListener('mousemove', this.handleWindowMouseMove, true);\n window.removeEventListener('contextmenu', this.stopShowingTooltip, true);\n window.removeEventListener('wheel', this.handleWheel);\n }\n\n handleMouseMove(): void {\n this.startTimer();\n }\n\n handleWheel(): void {\n const { isShown } = this.state;\n if (this.popper.current && this.parent && isShown) {\n if (\n !this.popper.current.element.matches(':hover') &&\n !this.parent.matches(':hover')\n ) {\n this.stopTimer();\n this.hide();\n }\n }\n }\n\n handleMouseLeave(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n const { interactive } = this.props;\n if (!interactive && isShown) {\n this.hide();\n }\n }\n\n handleTimeout(): void {\n this.show();\n }\n\n handleWindowMouseMove(event: MouseEvent): void {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { isShown } = this.state;\n\n if (!this.popper.current || !this.parent) {\n return;\n }\n const popperRect = this.popper.current.element.getBoundingClientRect();\n const parentRect = this.parent.getBoundingClientRect();\n\n if (\n mouseX >= popperRect.left &&\n mouseX <= popperRect.left + popperRect.width &&\n mouseY >= popperRect.top &&\n mouseY <= popperRect.top + popperRect.height\n ) {\n this.handleMouseMove();\n } else if (\n mouseX >= parentRect.left &&\n mouseX <= parentRect.left + parentRect.width &&\n mouseY >= parentRect.top &&\n mouseY <= parentRect.top + parentRect.height\n ) {\n this.handleMouseMove();\n } else if (isShown) {\n this.stopTimer();\n this.hide();\n }\n }\n\n startTimer(): void {\n this.stopTimer();\n\n const { timeout, reshowTimeout } = this.props;\n let timerTimeout = timeout;\n if (\n Tooltip.shownTooltipCount > 0 ||\n Date.now() - Tooltip.lastHiddenTime < Tooltip.triggerReshowThreshold\n ) {\n timerTimeout = reshowTimeout;\n }\n this.timer = window.setTimeout(this.handleTimeout, timerTimeout);\n }\n\n stopTimer(): void {\n if (this.timer != null) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n show(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n if (!isShown) {\n this.popper.current?.show();\n this.setState({ isShown: true });\n\n const { interactive } = this.props;\n if (interactive) {\n this.startListeningWindow();\n }\n }\n }\n\n hide(): void {\n this.popper.current?.hide();\n this.stopListeningWindow();\n }\n\n update(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleExited(): void {\n this.setState({ isShown: false });\n const { onExited } = this.props;\n onExited();\n }\n\n stopShowingTooltip(): void {\n const { isShown } = this.state;\n this.stopTimer();\n if (isShown) {\n this.hide();\n }\n }\n\n render(): JSX.Element {\n const {\n interactive,\n children,\n referenceObject,\n popperClassName,\n 'data-testid': dataTestId,\n onEntered,\n } = this.props;\n const { isShown } = this.state;\n\n let { options } = this.props;\n options = {\n placement: 'bottom',\n ...options,\n };\n\n return (\n <div\n ref={this.container}\n style={{ display: 'none' }}\n data-testid={dataTestId}\n >\n <Popper\n className={classNames(popperClassName, 'popper-tooltip')}\n options={options}\n ref={this.popper}\n onEntered={onEntered}\n onExited={this.handleExited}\n interactive={interactive}\n referenceObject={referenceObject}\n >\n <div className=\"tooltip-content\"> {isShown && children}</div>\n </Popper>\n </div>\n );\n }\n}\n\nexport default Tooltip;\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventTarget } from 'event-target-shim';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { CustomEventMap } from '@deephaven/utils';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
import { type CustomEventMap } from '@deephaven/utils';
|
|
4
4
|
export declare enum MODIFIER {
|
|
5
5
|
CTRL = "MODIFIER_CTRL",
|
|
6
6
|
CMD = "MODIFIER_CMD",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shortcut.d.ts","sourceRoot":"","sources":["../../src/shortcuts/Shortcut.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"Shortcut.d.ts","sourceRoot":"","sources":["../../src/shortcuts/Shortcut.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Shortcut.js","names":["EventTarget","Log","EventShimCustomEvent","ContextActionUtils","log","module","MODIFIER","KEY","ALLOWED_SINGLE_KEY_SET","Set","ENTER","DELETE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","Shortcut","isAllowedKey","key","Object","values","includes","isValidKeyState","state","keyValue","isMacPlatform","metaKey","isSingleKey","altKey","ctrlKey","shiftKey","has","createKeyState","keys","keyState","length","forEach","CTRL","ALT","OPTION","CMD","SHIFT","getKeyStateFromEvent","e","eventKey","keyCode","String","fromCharCode","getWindowsDisplayText","display","ESCAPE","getMacDisplayText","BACKSPACE","doKeyStatesMatch","state1","state2","_state1$keyValue","_state2$keyValue","toUpperCase","getDisplayText","constructor","_ref","id","shortcut","macShortcut","isEditable","name","tooltip","_defineProperty","isMac","activeShortcut","defaultKeyState","getKeyState","setKeyState","debug2","concat","JSON","stringify","dispatchEvent","detail","getDefaultKeyState","isDefault","setToNull","NULL_KEY_STATE","isNull","setToDefault","matchesKeyState","matchesEvent"],"sources":["../../src/shortcuts/Shortcut.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport { EventTarget } from 'event-target-shim';\nimport React from 'react';\nimport { Log } from '@deephaven/log';\nimport { CustomEventMap, EventShimCustomEvent } from '@deephaven/utils';\nimport { ContextActionUtils } from '../context-actions';\n\nconst log = Log.module('Shortcut');\n\nexport enum MODIFIER {\n CTRL = 'MODIFIER_CTRL',\n CMD = 'MODIFIER_CMD',\n ALT = 'MODIFIER_ALT',\n OPTION = 'MODIFIER_OPTION',\n SHIFT = 'MODIFIER_SHIFT',\n}\n\n// The value should match the KeyboardEvent.key value\n// This is the value which will be displayed if no display overrides are done in the OS specific getDisplayString methods\nexport enum KEY {\n A = 'A',\n B = 'B',\n C = 'C',\n D = 'D',\n E = 'E',\n F = 'F',\n G = 'G',\n H = 'H',\n I = 'I',\n J = 'J',\n K = 'K',\n L = 'L',\n M = 'M',\n N = 'N',\n O = 'O',\n P = 'P',\n Q = 'Q',\n R = 'R',\n S = 'S',\n T = 'T',\n U = 'U',\n V = 'V',\n W = 'W',\n X = 'X',\n Y = 'Y',\n Z = 'Z',\n ZERO = '0',\n ONE = '1',\n TWO = '2',\n THREE = '3',\n FOUR = '4',\n FIVE = '5',\n SIX = '6',\n SEVEN = '7',\n EIGHT = '8',\n NINE = '9',\n BACKSPACE = 'Backspace',\n ESCAPE = 'Escape',\n ENTER = 'Enter',\n DELETE = 'Delete',\n SLASH = '/',\n QUESTION_MARK = '?',\n BACKSLASH = '\\\\',\n PIPE = '|',\n MINUS = '-',\n UNDERSCORE = '_',\n EQUALS = '=',\n PLUS = '+',\n BACKTICK = '`',\n TILDE = '~',\n COMMA = ',',\n LEFT_CHEVRON = '<',\n PERIOD = '.',\n RIGHT_CHEVRON = '>',\n SEMICOLON = ';',\n COLON = ':',\n SINGLE_QUOTE = \"'\",\n DOUBLE_QUOTE = '\"',\n LEFT_BRACKET = '[',\n RIGHT_BRACKET = ']',\n LEFT_CURLY = '{',\n RIGHT_CURLY = '}',\n F1 = 'F1',\n F2 = 'F2',\n F3 = 'F3',\n F4 = 'F4',\n F5 = 'F5',\n F6 = 'F6',\n F7 = 'F7',\n F8 = 'F8',\n F9 = 'F9',\n F10 = 'F10',\n F11 = 'F11',\n F12 = 'F12',\n}\n\nconst ALLOWED_SINGLE_KEY_SET: Set<KEY> = new Set([\n KEY.ENTER,\n KEY.DELETE,\n KEY.F1,\n KEY.F2,\n KEY.F3,\n KEY.F4,\n KEY.F5,\n KEY.F6,\n KEY.F7,\n KEY.F8,\n KEY.F9,\n KEY.F10,\n KEY.F11,\n KEY.F12,\n]);\n\ntype ShortcutKeys = [...MODIFIER[], KEY];\n\nexport interface KeyState {\n /**\n * This is purposely keyValue and not key to make KeyboardEvents not match the interface\n * KeyboardEvents need some processing to get the actual value\n * Use Shortcut.getKeyStateFromEvent to get the right KeyState from an event\n */\n keyValue: string | null;\n altKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n shiftKey: boolean;\n}\n\nexport interface ValidKeyState extends KeyState {\n keyValue: KEY | null;\n}\n\ntype EventMap = CustomEventMap<{\n onUpdate: CustomEvent<Shortcut>;\n}>;\n\nexport default class Shortcut extends EventTarget<EventMap, 'strict'> {\n readonly id: string; // Unique identifier for the shortcut\n\n readonly name: string; // e.g. Rename, Save, Run Selected\n\n readonly tooltip?: string;\n\n readonly isEditable: boolean;\n\n private readonly defaultKeyState: ValidKeyState;\n\n keyState: ValidKeyState;\n\n static NULL_KEY_STATE: ValidKeyState = {\n metaKey: false,\n shiftKey: false,\n altKey: false,\n ctrlKey: false,\n keyValue: null,\n };\n\n /**\n * Use to check if a keyCode corresponds to an allowed key for a shortcut\n * @param keyCode The keyCode to check. This should be the charCode of the key\n * @returns Type predicate asserting the key is an allowed KEY\n */\n static isAllowedKey(key: string | null): key is KEY {\n return Object.values(KEY).includes(key as KEY);\n }\n\n /**\n * Checks if a KeyState has a valid key.\n * @param state KeyState with any string as the key\n * @returns True if KeyState is is using an allowed keyCode\n */\n static isValidKeyState(state: KeyState): state is ValidKeyState {\n const { keyValue } = state;\n\n if (keyValue === null) {\n // Null state is valid\n return true;\n }\n\n if (!Shortcut.isMacPlatform && state.metaKey) {\n // MetaKey not allowed in windows\n return false;\n }\n\n if (!Shortcut.isAllowedKey(keyValue)) {\n return false;\n }\n\n const isSingleKey =\n !state.altKey && !state.ctrlKey && !state.metaKey && !state.shiftKey;\n\n return !isSingleKey || ALLOWED_SINGLE_KEY_SET.has(keyValue);\n }\n\n static isMacPlatform = ContextActionUtils.isMacPlatform();\n\n /**\n * Creates a KeyState from a valid array of modifier and key constants\n * @param keys Array of keys in the shortcut. Modifiers first and key last. Should use the MODIFIER and KEY enums\n * @returns KeyState representing the array of constants\n */\n static createKeyState(keys: ShortcutKeys): ValidKeyState {\n const keyState: ValidKeyState = {\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n shiftKey: false,\n keyValue: keys[keys.length - 1] as KEY,\n };\n\n keys.forEach(key => {\n switch (key) {\n case MODIFIER.CTRL:\n keyState.ctrlKey = true;\n break;\n case MODIFIER.ALT:\n case MODIFIER.OPTION:\n keyState.altKey = true;\n break;\n case MODIFIER.CMD:\n keyState.metaKey = true;\n break;\n case MODIFIER.SHIFT:\n keyState.shiftKey = true;\n break;\n default:\n break;\n }\n });\n\n return keyState;\n }\n\n static getKeyStateFromEvent(\n e: React.KeyboardEvent | KeyboardEvent\n ): KeyState {\n const { key: eventKey, keyCode } = e;\n let key = '';\n if (\n eventKey === 'Shift' ||\n eventKey === 'Meta' ||\n eventKey === 'Control' ||\n eventKey === 'Alt'\n ) {\n key = '';\n } else if (\n // This is primarily for Mac which has a symbol keyboard hidden behind the alt key\n // The keyCode still corresponds to the letter keyCode, but the key value will be a symbol\n !Shortcut.isAllowedKey(eventKey) &&\n Shortcut.isAllowedKey(String.fromCharCode(keyCode))\n ) {\n key = String.fromCharCode(keyCode);\n } else {\n key = eventKey;\n }\n\n return {\n keyValue: key,\n altKey: e.altKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n shiftKey: e.shiftKey,\n };\n }\n\n /**\n * Gets display string for Windows (and Linux + any other non-Mac OS)\n * If the key is not an allowed key, the display will only display the modifiers\n * @param keyState KeyState to get the display for\n * @returns The string to display on Windows/non-Mac OS\n */\n private static getWindowsDisplayText(keyState: KeyState): string {\n let display = '';\n\n if (keyState.ctrlKey) {\n display += 'Ctrl+';\n }\n if (keyState.altKey) {\n display += 'Alt+';\n }\n if (keyState.shiftKey) {\n display += 'Shift+';\n }\n\n if (keyState.keyValue === KEY.ESCAPE) {\n display += 'Esc';\n } else if (keyState.keyValue !== null) {\n display += keyState.keyValue;\n }\n\n return display;\n }\n\n /**\n * Gets display string Mac OS\n * If the key is not an allowed key, the display will only display the modifiers\n * @param keyState KeyState to get the display for\n * @returns The string to display on Mac OS\n */\n private static getMacDisplayText(keyState: KeyState): string {\n let display = '';\n\n if (keyState.ctrlKey) {\n display += '⌃';\n }\n if (keyState.altKey) {\n display += '⌥';\n }\n if (keyState.shiftKey) {\n display += '⇧';\n }\n if (keyState.metaKey) {\n display += '⌘';\n }\n\n switch (keyState.keyValue) {\n case KEY.ENTER:\n display += '⏎';\n break;\n case KEY.ESCAPE:\n display += '⎋';\n break;\n case KEY.BACKSPACE:\n display += '⌫';\n break;\n case KEY.DELETE:\n display += '⌦';\n break;\n case null:\n break;\n default:\n display += keyState.keyValue;\n }\n\n return display;\n }\n\n /**\n * Checks if 2 KeyStates match\n * @param state1 First KeyState to compare\n * @param state2 Second KeyState to compare\n * @returns True if the KeyStates match and have non-null keyValues\n */\n static doKeyStatesMatch(state1: KeyState, state2: KeyState): boolean {\n return (\n state1.keyValue?.toUpperCase() === state2.keyValue?.toUpperCase() &&\n state1.altKey === state2.altKey &&\n state1.ctrlKey === state2.ctrlKey &&\n state1.metaKey === state2.metaKey &&\n state1.shiftKey === state2.shiftKey\n );\n }\n\n /**\n * Gets the display string for the current OS from a KeyState.\n * @param keyState KeyState to get the display for\n * @returns Display string for the current OS\n */\n static getDisplayText(keyState: KeyState): string {\n if (keyState.keyValue === null) {\n return '';\n }\n return Shortcut.isMacPlatform\n ? Shortcut.getMacDisplayText(keyState)\n : Shortcut.getWindowsDisplayText(keyState);\n }\n\n constructor({\n id,\n shortcut,\n macShortcut,\n isEditable = true,\n name,\n tooltip,\n }: {\n id: string;\n shortcut: ShortcutKeys;\n macShortcut: ShortcutKeys;\n isEditable?: boolean;\n name: string;\n tooltip?: string;\n }) {\n super();\n this.id = id;\n this.name = name;\n this.tooltip = tooltip;\n this.isEditable = isEditable;\n\n const isMac = Shortcut.isMacPlatform;\n const activeShortcut = isMac ? macShortcut : shortcut;\n this.defaultKeyState = Shortcut.createKeyState(activeShortcut);\n this.keyState = this.defaultKeyState;\n }\n\n /**\n * Gets the display string for the current OS\n */\n getDisplayText(): string {\n return Shortcut.getDisplayText(this.keyState);\n }\n\n /**\n * Gets the current keyState for the Shortcut\n */\n getKeyState(): ValidKeyState {\n return this.keyState;\n }\n\n /**\n * Sets the KeyState if it is valid\n * @param keyState\n */\n setKeyState(keyState: KeyState): void {\n if (Shortcut.isValidKeyState(keyState)) {\n log.debug2(`Shortcut ${this.id} updated to ${JSON.stringify(keyState)}`);\n this.keyState = keyState;\n this.dispatchEvent(\n new EventShimCustomEvent('onUpdate', { detail: this })\n );\n } else {\n log.debug2(\n `Shortcut ${\n this.id\n } tried to update to invalid keyState ${JSON.stringify(keyState)}`\n );\n }\n }\n\n /**\n * Gets the default key state of the shortcut\n * @returns Default key state\n */\n getDefaultKeyState(): ValidKeyState {\n return this.defaultKeyState;\n }\n\n isDefault(): boolean {\n return Shortcut.doKeyStatesMatch(\n this.getDefaultKeyState(),\n this.getKeyState()\n );\n }\n\n /**\n * Sets the shortcut to have null keyValue\n */\n setToNull(): void {\n this.setKeyState(Shortcut.NULL_KEY_STATE);\n }\n\n isNull(): boolean {\n return Shortcut.doKeyStatesMatch(this.keyState, Shortcut.NULL_KEY_STATE);\n }\n\n /**\n * Sets the shortcut to its default key state\n */\n setToDefault(): void {\n this.setKeyState(this.defaultKeyState);\n }\n\n /**\n * Checks if a KeyState matches the KeyState for the shortcut\n * @param keyState KeyState to check\n * @returns True if the passed KeyState matches the Shortcut's KeyState\n */\n matchesKeyState(keyState: KeyState): boolean {\n return Shortcut.doKeyStatesMatch(keyState, this.keyState);\n }\n\n /**\n * Alias for matchesKeyState\n * @param e KeyboardEvent to check if the Shortcut matches\n * @returns True if the event matches the Shortcut's KeyState\n */\n matchesEvent(e: React.KeyboardEvent | KeyboardEvent): boolean {\n return this.matchesKeyState(Shortcut.getKeyStateFromEvent(e));\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Shortcut.js","names":["EventTarget","Log","EventShimCustomEvent","ContextActionUtils","log","module","MODIFIER","KEY","ALLOWED_SINGLE_KEY_SET","Set","ENTER","DELETE","F1","F2","F3","F4","F5","F6","F7","F8","F9","F10","F11","F12","Shortcut","isAllowedKey","key","Object","values","includes","isValidKeyState","state","keyValue","isMacPlatform","metaKey","isSingleKey","altKey","ctrlKey","shiftKey","has","createKeyState","keys","keyState","length","forEach","CTRL","ALT","OPTION","CMD","SHIFT","getKeyStateFromEvent","e","eventKey","keyCode","String","fromCharCode","getWindowsDisplayText","display","ESCAPE","getMacDisplayText","BACKSPACE","doKeyStatesMatch","state1","state2","_state1$keyValue","_state2$keyValue","toUpperCase","getDisplayText","constructor","_ref","id","shortcut","macShortcut","isEditable","name","tooltip","_defineProperty","isMac","activeShortcut","defaultKeyState","getKeyState","setKeyState","debug2","concat","JSON","stringify","dispatchEvent","detail","getDefaultKeyState","isDefault","setToNull","NULL_KEY_STATE","isNull","setToDefault","matchesKeyState","matchesEvent"],"sources":["../../src/shortcuts/Shortcut.ts"],"sourcesContent":["/* eslint-disable no-underscore-dangle */\nimport { EventTarget } from 'event-target-shim';\nimport type React from 'react';\nimport { Log } from '@deephaven/log';\nimport { type CustomEventMap, EventShimCustomEvent } from '@deephaven/utils';\nimport { ContextActionUtils } from '../context-actions';\n\nconst log = Log.module('Shortcut');\n\nexport enum MODIFIER {\n CTRL = 'MODIFIER_CTRL',\n CMD = 'MODIFIER_CMD',\n ALT = 'MODIFIER_ALT',\n OPTION = 'MODIFIER_OPTION',\n SHIFT = 'MODIFIER_SHIFT',\n}\n\n// The value should match the KeyboardEvent.key value\n// This is the value which will be displayed if no display overrides are done in the OS specific getDisplayString methods\nexport enum KEY {\n A = 'A',\n B = 'B',\n C = 'C',\n D = 'D',\n E = 'E',\n F = 'F',\n G = 'G',\n H = 'H',\n I = 'I',\n J = 'J',\n K = 'K',\n L = 'L',\n M = 'M',\n N = 'N',\n O = 'O',\n P = 'P',\n Q = 'Q',\n R = 'R',\n S = 'S',\n T = 'T',\n U = 'U',\n V = 'V',\n W = 'W',\n X = 'X',\n Y = 'Y',\n Z = 'Z',\n ZERO = '0',\n ONE = '1',\n TWO = '2',\n THREE = '3',\n FOUR = '4',\n FIVE = '5',\n SIX = '6',\n SEVEN = '7',\n EIGHT = '8',\n NINE = '9',\n BACKSPACE = 'Backspace',\n ESCAPE = 'Escape',\n ENTER = 'Enter',\n DELETE = 'Delete',\n SLASH = '/',\n QUESTION_MARK = '?',\n BACKSLASH = '\\\\',\n PIPE = '|',\n MINUS = '-',\n UNDERSCORE = '_',\n EQUALS = '=',\n PLUS = '+',\n BACKTICK = '`',\n TILDE = '~',\n COMMA = ',',\n LEFT_CHEVRON = '<',\n PERIOD = '.',\n RIGHT_CHEVRON = '>',\n SEMICOLON = ';',\n COLON = ':',\n SINGLE_QUOTE = \"'\",\n DOUBLE_QUOTE = '\"',\n LEFT_BRACKET = '[',\n RIGHT_BRACKET = ']',\n LEFT_CURLY = '{',\n RIGHT_CURLY = '}',\n F1 = 'F1',\n F2 = 'F2',\n F3 = 'F3',\n F4 = 'F4',\n F5 = 'F5',\n F6 = 'F6',\n F7 = 'F7',\n F8 = 'F8',\n F9 = 'F9',\n F10 = 'F10',\n F11 = 'F11',\n F12 = 'F12',\n}\n\nconst ALLOWED_SINGLE_KEY_SET: Set<KEY> = new Set([\n KEY.ENTER,\n KEY.DELETE,\n KEY.F1,\n KEY.F2,\n KEY.F3,\n KEY.F4,\n KEY.F5,\n KEY.F6,\n KEY.F7,\n KEY.F8,\n KEY.F9,\n KEY.F10,\n KEY.F11,\n KEY.F12,\n]);\n\ntype ShortcutKeys = [...MODIFIER[], KEY];\n\nexport interface KeyState {\n /**\n * This is purposely keyValue and not key to make KeyboardEvents not match the interface\n * KeyboardEvents need some processing to get the actual value\n * Use Shortcut.getKeyStateFromEvent to get the right KeyState from an event\n */\n keyValue: string | null;\n altKey: boolean;\n ctrlKey: boolean;\n metaKey: boolean;\n shiftKey: boolean;\n}\n\nexport interface ValidKeyState extends KeyState {\n keyValue: KEY | null;\n}\n\ntype EventMap = CustomEventMap<{\n onUpdate: CustomEvent<Shortcut>;\n}>;\n\nexport default class Shortcut extends EventTarget<EventMap, 'strict'> {\n readonly id: string; // Unique identifier for the shortcut\n\n readonly name: string; // e.g. Rename, Save, Run Selected\n\n readonly tooltip?: string;\n\n readonly isEditable: boolean;\n\n private readonly defaultKeyState: ValidKeyState;\n\n keyState: ValidKeyState;\n\n static NULL_KEY_STATE: ValidKeyState = {\n metaKey: false,\n shiftKey: false,\n altKey: false,\n ctrlKey: false,\n keyValue: null,\n };\n\n /**\n * Use to check if a keyCode corresponds to an allowed key for a shortcut\n * @param keyCode The keyCode to check. This should be the charCode of the key\n * @returns Type predicate asserting the key is an allowed KEY\n */\n static isAllowedKey(key: string | null): key is KEY {\n return Object.values(KEY).includes(key as KEY);\n }\n\n /**\n * Checks if a KeyState has a valid key.\n * @param state KeyState with any string as the key\n * @returns True if KeyState is is using an allowed keyCode\n */\n static isValidKeyState(state: KeyState): state is ValidKeyState {\n const { keyValue } = state;\n\n if (keyValue === null) {\n // Null state is valid\n return true;\n }\n\n if (!Shortcut.isMacPlatform && state.metaKey) {\n // MetaKey not allowed in windows\n return false;\n }\n\n if (!Shortcut.isAllowedKey(keyValue)) {\n return false;\n }\n\n const isSingleKey =\n !state.altKey && !state.ctrlKey && !state.metaKey && !state.shiftKey;\n\n return !isSingleKey || ALLOWED_SINGLE_KEY_SET.has(keyValue);\n }\n\n static isMacPlatform = ContextActionUtils.isMacPlatform();\n\n /**\n * Creates a KeyState from a valid array of modifier and key constants\n * @param keys Array of keys in the shortcut. Modifiers first and key last. Should use the MODIFIER and KEY enums\n * @returns KeyState representing the array of constants\n */\n static createKeyState(keys: ShortcutKeys): ValidKeyState {\n const keyState: ValidKeyState = {\n altKey: false,\n ctrlKey: false,\n metaKey: false,\n shiftKey: false,\n keyValue: keys[keys.length - 1] as KEY,\n };\n\n keys.forEach(key => {\n switch (key) {\n case MODIFIER.CTRL:\n keyState.ctrlKey = true;\n break;\n case MODIFIER.ALT:\n case MODIFIER.OPTION:\n keyState.altKey = true;\n break;\n case MODIFIER.CMD:\n keyState.metaKey = true;\n break;\n case MODIFIER.SHIFT:\n keyState.shiftKey = true;\n break;\n default:\n break;\n }\n });\n\n return keyState;\n }\n\n static getKeyStateFromEvent(\n e: React.KeyboardEvent | KeyboardEvent\n ): KeyState {\n const { key: eventKey, keyCode } = e;\n let key = '';\n if (\n eventKey === 'Shift' ||\n eventKey === 'Meta' ||\n eventKey === 'Control' ||\n eventKey === 'Alt'\n ) {\n key = '';\n } else if (\n // This is primarily for Mac which has a symbol keyboard hidden behind the alt key\n // The keyCode still corresponds to the letter keyCode, but the key value will be a symbol\n !Shortcut.isAllowedKey(eventKey) &&\n Shortcut.isAllowedKey(String.fromCharCode(keyCode))\n ) {\n key = String.fromCharCode(keyCode);\n } else {\n key = eventKey;\n }\n\n return {\n keyValue: key,\n altKey: e.altKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey,\n shiftKey: e.shiftKey,\n };\n }\n\n /**\n * Gets display string for Windows (and Linux + any other non-Mac OS)\n * If the key is not an allowed key, the display will only display the modifiers\n * @param keyState KeyState to get the display for\n * @returns The string to display on Windows/non-Mac OS\n */\n private static getWindowsDisplayText(keyState: KeyState): string {\n let display = '';\n\n if (keyState.ctrlKey) {\n display += 'Ctrl+';\n }\n if (keyState.altKey) {\n display += 'Alt+';\n }\n if (keyState.shiftKey) {\n display += 'Shift+';\n }\n\n if (keyState.keyValue === KEY.ESCAPE) {\n display += 'Esc';\n } else if (keyState.keyValue !== null) {\n display += keyState.keyValue;\n }\n\n return display;\n }\n\n /**\n * Gets display string Mac OS\n * If the key is not an allowed key, the display will only display the modifiers\n * @param keyState KeyState to get the display for\n * @returns The string to display on Mac OS\n */\n private static getMacDisplayText(keyState: KeyState): string {\n let display = '';\n\n if (keyState.ctrlKey) {\n display += '⌃';\n }\n if (keyState.altKey) {\n display += '⌥';\n }\n if (keyState.shiftKey) {\n display += '⇧';\n }\n if (keyState.metaKey) {\n display += '⌘';\n }\n\n switch (keyState.keyValue) {\n case KEY.ENTER:\n display += '⏎';\n break;\n case KEY.ESCAPE:\n display += '⎋';\n break;\n case KEY.BACKSPACE:\n display += '⌫';\n break;\n case KEY.DELETE:\n display += '⌦';\n break;\n case null:\n break;\n default:\n display += keyState.keyValue;\n }\n\n return display;\n }\n\n /**\n * Checks if 2 KeyStates match\n * @param state1 First KeyState to compare\n * @param state2 Second KeyState to compare\n * @returns True if the KeyStates match and have non-null keyValues\n */\n static doKeyStatesMatch(state1: KeyState, state2: KeyState): boolean {\n return (\n state1.keyValue?.toUpperCase() === state2.keyValue?.toUpperCase() &&\n state1.altKey === state2.altKey &&\n state1.ctrlKey === state2.ctrlKey &&\n state1.metaKey === state2.metaKey &&\n state1.shiftKey === state2.shiftKey\n );\n }\n\n /**\n * Gets the display string for the current OS from a KeyState.\n * @param keyState KeyState to get the display for\n * @returns Display string for the current OS\n */\n static getDisplayText(keyState: KeyState): string {\n if (keyState.keyValue === null) {\n return '';\n }\n return Shortcut.isMacPlatform\n ? Shortcut.getMacDisplayText(keyState)\n : Shortcut.getWindowsDisplayText(keyState);\n }\n\n constructor({\n id,\n shortcut,\n macShortcut,\n isEditable = true,\n name,\n tooltip,\n }: {\n id: string;\n shortcut: ShortcutKeys;\n macShortcut: ShortcutKeys;\n isEditable?: boolean;\n name: string;\n tooltip?: string;\n }) {\n super();\n this.id = id;\n this.name = name;\n this.tooltip = tooltip;\n this.isEditable = isEditable;\n\n const isMac = Shortcut.isMacPlatform;\n const activeShortcut = isMac ? macShortcut : shortcut;\n this.defaultKeyState = Shortcut.createKeyState(activeShortcut);\n this.keyState = this.defaultKeyState;\n }\n\n /**\n * Gets the display string for the current OS\n */\n getDisplayText(): string {\n return Shortcut.getDisplayText(this.keyState);\n }\n\n /**\n * Gets the current keyState for the Shortcut\n */\n getKeyState(): ValidKeyState {\n return this.keyState;\n }\n\n /**\n * Sets the KeyState if it is valid\n * @param keyState\n */\n setKeyState(keyState: KeyState): void {\n if (Shortcut.isValidKeyState(keyState)) {\n log.debug2(`Shortcut ${this.id} updated to ${JSON.stringify(keyState)}`);\n this.keyState = keyState;\n this.dispatchEvent(\n new EventShimCustomEvent('onUpdate', { detail: this })\n );\n } else {\n log.debug2(\n `Shortcut ${\n this.id\n } tried to update to invalid keyState ${JSON.stringify(keyState)}`\n );\n }\n }\n\n /**\n * Gets the default key state of the shortcut\n * @returns Default key state\n */\n getDefaultKeyState(): ValidKeyState {\n return this.defaultKeyState;\n }\n\n isDefault(): boolean {\n return Shortcut.doKeyStatesMatch(\n this.getDefaultKeyState(),\n this.getKeyState()\n );\n }\n\n /**\n * Sets the shortcut to have null keyValue\n */\n setToNull(): void {\n this.setKeyState(Shortcut.NULL_KEY_STATE);\n }\n\n isNull(): boolean {\n return Shortcut.doKeyStatesMatch(this.keyState, Shortcut.NULL_KEY_STATE);\n }\n\n /**\n * Sets the shortcut to its default key state\n */\n setToDefault(): void {\n this.setKeyState(this.defaultKeyState);\n }\n\n /**\n * Checks if a KeyState matches the KeyState for the shortcut\n * @param keyState KeyState to check\n * @returns True if the passed KeyState matches the Shortcut's KeyState\n */\n matchesKeyState(keyState: KeyState): boolean {\n return Shortcut.doKeyStatesMatch(keyState, this.keyState);\n }\n\n /**\n * Alias for matchesKeyState\n * @param e KeyboardEvent to check if the Shortcut matches\n * @returns True if the event matches the Shortcut's KeyState\n */\n matchesEvent(e: React.KeyboardEvent | KeyboardEvent): boolean {\n return this.matchesKeyState(Shortcut.getKeyStateFromEvent(e));\n }\n}\n"],"mappings":";;;AAAA;AACA,SAASA,WAAW,QAAQ,mBAAmB;AAE/C,SAASC,GAAG,QAAQ,gBAAgB;AACpC,SAA8BC,oBAAoB,QAAQ,kBAAkB;AAAC,SACpEC,kBAAkB;AAE3B,IAAMC,GAAG,GAAGH,GAAG,CAACI,MAAM,CAAC,UAAU,CAAC;AAElC,WAAYC,QAAQ;;AAQpB;AACA;AAAA,WATYA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;EAARA,QAAQ;AAAA,GAARA,QAAQ,KAARA,QAAQ;AAUpB,WAAYC,GAAG;AA2Ed,WA3EWA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;EAAHA,GAAG;AAAA,GAAHA,GAAG,KAAHA,GAAG;AA6Ef,IAAMC,sBAAgC,GAAG,IAAIC,GAAG,CAAC,CAC/CF,GAAG,CAACG,KAAK,EACTH,GAAG,CAACI,MAAM,EACVJ,GAAG,CAACK,EAAE,EACNL,GAAG,CAACM,EAAE,EACNN,GAAG,CAACO,EAAE,EACNP,GAAG,CAACQ,EAAE,EACNR,GAAG,CAACS,EAAE,EACNT,GAAG,CAACU,EAAE,EACNV,GAAG,CAACW,EAAE,EACNX,GAAG,CAACY,EAAE,EACNZ,GAAG,CAACa,EAAE,EACNb,GAAG,CAACc,GAAG,EACPd,GAAG,CAACe,GAAG,EACPf,GAAG,CAACgB,GAAG,CACR,CAAC;AAyBF,eAAe,MAAMC,QAAQ,SAASxB,WAAW,CAAqB;EAC/C;;EAEE;;EAkBvB;AACF;AACA;AACA;AACA;EACE,OAAOyB,YAAYA,CAACC,GAAkB,EAAc;IAClD,OAAOC,MAAM,CAACC,MAAM,CAACrB,GAAG,CAAC,CAACsB,QAAQ,CAACH,GAAU,CAAC;EAChD;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAOI,eAAeA,CAACC,KAAe,EAA0B;IAC9D,IAAM;MAAEC;IAAS,CAAC,GAAGD,KAAK;IAE1B,IAAIC,QAAQ,KAAK,IAAI,EAAE;MACrB;MACA,OAAO,IAAI;IACb;IAEA,IAAI,CAACR,QAAQ,CAACS,aAAa,IAAIF,KAAK,CAACG,OAAO,EAAE;MAC5C;MACA,OAAO,KAAK;IACd;IAEA,IAAI,CAACV,QAAQ,CAACC,YAAY,CAACO,QAAQ,CAAC,EAAE;MACpC,OAAO,KAAK;IACd;IAEA,IAAMG,WAAW,GACf,CAACJ,KAAK,CAACK,MAAM,IAAI,CAACL,KAAK,CAACM,OAAO,IAAI,CAACN,KAAK,CAACG,OAAO,IAAI,CAACH,KAAK,CAACO,QAAQ;IAEtE,OAAO,CAACH,WAAW,IAAI3B,sBAAsB,CAAC+B,GAAG,CAACP,QAAQ,CAAC;EAC7D;EAIA;AACF;AACA;AACA;AACA;EACE,OAAOQ,cAAcA,CAACC,IAAkB,EAAiB;IACvD,IAAMC,QAAuB,GAAG;MAC9BN,MAAM,EAAE,KAAK;MACbC,OAAO,EAAE,KAAK;MACdH,OAAO,EAAE,KAAK;MACdI,QAAQ,EAAE,KAAK;MACfN,QAAQ,EAAES,IAAI,CAACA,IAAI,CAACE,MAAM,GAAG,CAAC;IAChC,CAAC;IAEDF,IAAI,CAACG,OAAO,CAAClB,GAAG,IAAI;MAClB,QAAQA,GAAG;QACT,KAAKpB,QAAQ,CAACuC,IAAI;UAChBH,QAAQ,CAACL,OAAO,GAAG,IAAI;UACvB;QACF,KAAK/B,QAAQ,CAACwC,GAAG;QACjB,KAAKxC,QAAQ,CAACyC,MAAM;UAClBL,QAAQ,CAACN,MAAM,GAAG,IAAI;UACtB;QACF,KAAK9B,QAAQ,CAAC0C,GAAG;UACfN,QAAQ,CAACR,OAAO,GAAG,IAAI;UACvB;QACF,KAAK5B,QAAQ,CAAC2C,KAAK;UACjBP,QAAQ,CAACJ,QAAQ,GAAG,IAAI;UACxB;QACF;UACE;MACJ;IACF,CAAC,CAAC;IAEF,OAAOI,QAAQ;EACjB;EAEA,OAAOQ,oBAAoBA,CACzBC,CAAsC,EAC5B;IACV,IAAM;MAAEzB,GAAG,EAAE0B,QAAQ;MAAEC;IAAQ,CAAC,GAAGF,CAAC;IACpC,IAAIzB,GAAG,GAAG,EAAE;IACZ,IACE0B,QAAQ,KAAK,OAAO,IACpBA,QAAQ,KAAK,MAAM,IACnBA,QAAQ,KAAK,SAAS,IACtBA,QAAQ,KAAK,KAAK,EAClB;MACA1B,GAAG,GAAG,EAAE;IACV,CAAC,MAAM;IACL;IACA;IACA,CAACF,QAAQ,CAACC,YAAY,CAAC2B,QAAQ,CAAC,IAChC5B,QAAQ,CAACC,YAAY,CAAC6B,MAAM,CAACC,YAAY,CAACF,OAAO,CAAC,CAAC,EACnD;MACA3B,GAAG,GAAG4B,MAAM,CAACC,YAAY,CAACF,OAAO,CAAC;IACpC,CAAC,MAAM;MACL3B,GAAG,GAAG0B,QAAQ;IAChB;IAEA,OAAO;MACLpB,QAAQ,EAAEN,GAAG;MACbU,MAAM,EAAEe,CAAC,CAACf,MAAM;MAChBC,OAAO,EAAEc,CAAC,CAACd,OAAO;MAClBH,OAAO,EAAEiB,CAAC,CAACjB,OAAO;MAClBI,QAAQ,EAAEa,CAAC,CAACb;IACd,CAAC;EACH;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAekB,qBAAqBA,CAACd,QAAkB,EAAU;IAC/D,IAAIe,OAAO,GAAG,EAAE;IAEhB,IAAIf,QAAQ,CAACL,OAAO,EAAE;MACpBoB,OAAO,IAAI,OAAO;IACpB;IACA,IAAIf,QAAQ,CAACN,MAAM,EAAE;MACnBqB,OAAO,IAAI,MAAM;IACnB;IACA,IAAIf,QAAQ,CAACJ,QAAQ,EAAE;MACrBmB,OAAO,IAAI,QAAQ;IACrB;IAEA,IAAIf,QAAQ,CAACV,QAAQ,KAAKzB,GAAG,CAACmD,MAAM,EAAE;MACpCD,OAAO,IAAI,KAAK;IAClB,CAAC,MAAM,IAAIf,QAAQ,CAACV,QAAQ,KAAK,IAAI,EAAE;MACrCyB,OAAO,IAAIf,QAAQ,CAACV,QAAQ;IAC9B;IAEA,OAAOyB,OAAO;EAChB;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAeE,iBAAiBA,CAACjB,QAAkB,EAAU;IAC3D,IAAIe,OAAO,GAAG,EAAE;IAEhB,IAAIf,QAAQ,CAACL,OAAO,EAAE;MACpBoB,OAAO,IAAI,GAAG;IAChB;IACA,IAAIf,QAAQ,CAACN,MAAM,EAAE;MACnBqB,OAAO,IAAI,GAAG;IAChB;IACA,IAAIf,QAAQ,CAACJ,QAAQ,EAAE;MACrBmB,OAAO,IAAI,GAAG;IAChB;IACA,IAAIf,QAAQ,CAACR,OAAO,EAAE;MACpBuB,OAAO,IAAI,GAAG;IAChB;IAEA,QAAQf,QAAQ,CAACV,QAAQ;MACvB,KAAKzB,GAAG,CAACG,KAAK;QACZ+C,OAAO,IAAI,GAAG;QACd;MACF,KAAKlD,GAAG,CAACmD,MAAM;QACbD,OAAO,IAAI,GAAG;QACd;MACF,KAAKlD,GAAG,CAACqD,SAAS;QAChBH,OAAO,IAAI,GAAG;QACd;MACF,KAAKlD,GAAG,CAACI,MAAM;QACb8C,OAAO,IAAI,GAAG;QACd;MACF,KAAK,IAAI;QACP;MACF;QACEA,OAAO,IAAIf,QAAQ,CAACV,QAAQ;IAChC;IAEA,OAAOyB,OAAO;EAChB;;EAEA;AACF;AACA;AACA;AACA;AACA;EACE,OAAOI,gBAAgBA,CAACC,MAAgB,EAAEC,MAAgB,EAAW;IAAA,IAAAC,gBAAA,EAAAC,gBAAA;IACnE,OACE,EAAAD,gBAAA,GAAAF,MAAM,CAAC9B,QAAQ,cAAAgC,gBAAA,uBAAfA,gBAAA,CAAiBE,WAAW,CAAC,CAAC,QAAAD,gBAAA,GAAKF,MAAM,CAAC/B,QAAQ,cAAAiC,gBAAA,uBAAfA,gBAAA,CAAiBC,WAAW,CAAC,CAAC,KACjEJ,MAAM,CAAC1B,MAAM,KAAK2B,MAAM,CAAC3B,MAAM,IAC/B0B,MAAM,CAACzB,OAAO,KAAK0B,MAAM,CAAC1B,OAAO,IACjCyB,MAAM,CAAC5B,OAAO,KAAK6B,MAAM,CAAC7B,OAAO,IACjC4B,MAAM,CAACxB,QAAQ,KAAKyB,MAAM,CAACzB,QAAQ;EAEvC;;EAEA;AACF;AACA;AACA;AACA;EACE,OAAO6B,cAAcA,CAACzB,QAAkB,EAAU;IAChD,IAAIA,QAAQ,CAACV,QAAQ,KAAK,IAAI,EAAE;MAC9B,OAAO,EAAE;IACX;IACA,OAAOR,QAAQ,CAACS,aAAa,GACzBT,QAAQ,CAACmC,iBAAiB,CAACjB,QAAQ,CAAC,GACpClB,QAAQ,CAACgC,qBAAqB,CAACd,QAAQ,CAAC;EAC9C;EAEA0B,WAAWA,CAAAC,IAAA,EAcR;IAAA,IAdS;MACVC,EAAE;MACFC,QAAQ;MACRC,WAAW;MACXC,UAAU,GAAG,IAAI;MACjBC,IAAI;MACJC;IAQF,CAAC,GAAAN,IAAA;IACC,KAAK,CAAC,CAAC;IAACO,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACR,IAAI,CAACN,EAAE,GAAGA,EAAE;IACZ,IAAI,CAACI,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACF,UAAU,GAAGA,UAAU;IAE5B,IAAMI,KAAK,GAAGrD,QAAQ,CAACS,aAAa;IACpC,IAAM6C,cAAc,GAAGD,KAAK,GAAGL,WAAW,GAAGD,QAAQ;IACrD,IAAI,CAACQ,eAAe,GAAGvD,QAAQ,CAACgB,cAAc,CAACsC,cAAc,CAAC;IAC9D,IAAI,CAACpC,QAAQ,GAAG,IAAI,CAACqC,eAAe;EACtC;;EAEA;AACF;AACA;EACEZ,cAAcA,CAAA,EAAW;IACvB,OAAO3C,QAAQ,CAAC2C,cAAc,CAAC,IAAI,CAACzB,QAAQ,CAAC;EAC/C;;EAEA;AACF;AACA;EACEsC,WAAWA,CAAA,EAAkB;IAC3B,OAAO,IAAI,CAACtC,QAAQ;EACtB;;EAEA;AACF;AACA;AACA;EACEuC,WAAWA,CAACvC,QAAkB,EAAQ;IACpC,IAAIlB,QAAQ,CAACM,eAAe,CAACY,QAAQ,CAAC,EAAE;MACtCtC,GAAG,CAAC8E,MAAM,aAAAC,MAAA,CAAa,IAAI,CAACb,EAAE,kBAAAa,MAAA,CAAeC,IAAI,CAACC,SAAS,CAAC3C,QAAQ,CAAC,CAAE,CAAC;MACxE,IAAI,CAACA,QAAQ,GAAGA,QAAQ;MACxB,IAAI,CAAC4C,aAAa,CAChB,IAAIpF,oBAAoB,CAAC,UAAU,EAAE;QAAEqF,MAAM,EAAE;MAAK,CAAC,CACvD,CAAC;IACH,CAAC,MAAM;MACLnF,GAAG,CAAC8E,MAAM,aAAAC,MAAA,CAEN,IAAI,CAACb,EAAE,2CAAAa,MAAA,CAC+BC,IAAI,CAACC,SAAS,CAAC3C,QAAQ,CAAC,CAClE,CAAC;IACH;EACF;;EAEA;AACF;AACA;AACA;EACE8C,kBAAkBA,CAAA,EAAkB;IAClC,OAAO,IAAI,CAACT,eAAe;EAC7B;EAEAU,SAASA,CAAA,EAAY;IACnB,OAAOjE,QAAQ,CAACqC,gBAAgB,CAC9B,IAAI,CAAC2B,kBAAkB,CAAC,CAAC,EACzB,IAAI,CAACR,WAAW,CAAC,CACnB,CAAC;EACH;;EAEA;AACF;AACA;EACEU,SAASA,CAAA,EAAS;IAChB,IAAI,CAACT,WAAW,CAACzD,QAAQ,CAACmE,cAAc,CAAC;EAC3C;EAEAC,MAAMA,CAAA,EAAY;IAChB,OAAOpE,QAAQ,CAACqC,gBAAgB,CAAC,IAAI,CAACnB,QAAQ,EAAElB,QAAQ,CAACmE,cAAc,CAAC;EAC1E;;EAEA;AACF;AACA;EACEE,YAAYA,CAAA,EAAS;IACnB,IAAI,CAACZ,WAAW,CAAC,IAAI,CAACF,eAAe,CAAC;EACxC;;EAEA;AACF;AACA;AACA;AACA;EACEe,eAAeA,CAACpD,QAAkB,EAAW;IAC3C,OAAOlB,QAAQ,CAACqC,gBAAgB,CAACnB,QAAQ,EAAE,IAAI,CAACA,QAAQ,CAAC;EAC3D;;EAEA;AACF;AACA;AACA;AACA;EACEqD,YAAYA,CAAC5C,CAAsC,EAAW;IAC5D,OAAO,IAAI,CAAC2C,eAAe,CAACtE,QAAQ,CAAC0B,oBAAoB,CAACC,CAAC,CAAC,CAAC;EAC/D;AACF;AAACyB,eAAA,CAtVoBpD,QAAQ,oBAaY;EACrCU,OAAO,EAAE,KAAK;EACdI,QAAQ,EAAE,KAAK;EACfF,MAAM,EAAE,KAAK;EACbC,OAAO,EAAE,KAAK;EACdL,QAAQ,EAAE;AACZ,CAAC;AAAA4C,eAAA,CAnBkBpD,QAAQ,mBA0DJrB,kBAAkB,CAAC8B,aAAa,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventTarget } from 'event-target-shim';
|
|
2
|
-
import { CustomEventMap } from '@deephaven/utils';
|
|
3
|
-
import Shortcut, { KeyState } from './Shortcut';
|
|
2
|
+
import { type CustomEventMap } from '@deephaven/utils';
|
|
3
|
+
import Shortcut, { type KeyState } from './Shortcut';
|
|
4
4
|
type EventMap = CustomEventMap<{
|
|
5
5
|
onUpdate: CustomEvent<Shortcut>;
|
|
6
6
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShortcutRegistry.d.ts","sourceRoot":"","sources":["../../src/shortcuts/ShortcutRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAwB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"ShortcutRegistry.d.ts","sourceRoot":"","sources":["../../src/shortcuts/ShortcutRegistry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,EAAE,KAAK,cAAc,EAAwB,MAAM,kBAAkB,CAAC;AAC7E,OAAO,QAAQ,EAAE,EAAE,KAAK,QAAQ,EAAE,MAAM,YAAY,CAAC;AAIrD,KAAK,QAAQ,GAAG,cAAc,CAAC;IAC7B,QAAQ,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CACjC,CAAC,CAAC;AAEH,cAAM,gBAAiB,SAAQ,WAAW,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5D,QAAQ,CAAC,WAAW,wBAA+B;IAEnD,QAAQ,CAAC,mBAAmB,0BAAiC;IAE7D;;;;OAIG;IACH,YAAY,CAAC,MAAM,EAAE,qBAAqB,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ;IAKzE;;;;OAIG;IACH,GAAG,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ;IA2BjC;;;;OAIG;IACH,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIrC;;;;;OAKG;IACH,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,QAAQ,EAAE;CAKxD;AAED,QAAA,MAAM,QAAQ,4BAAwC,CAAC;AAEvD,eAAe,QAAQ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShortcutRegistry.js","names":["EventTarget","Log","EventShimCustomEvent","Shortcut","log","module","ShortcutRegistry","constructor","arguments","_defineProperty","Map","createAndAdd","params","shortcut","add","existingShortcut","shortcutMap","get","id","warn","concat","debug2","addEventListener","_ref","detail","dispatchEvent","category","split","set","shortcutsByCategory","has","_this$shortcutsByCate","push","getConflictingShortcuts","keyState","Array","from","values","filter","isNull","matchesKeyState","registry","Object","freeze"],"sources":["../../src/shortcuts/ShortcutRegistry.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport { EventTarget } from 'event-target-shim';\nimport { Log } from '@deephaven/log';\nimport { CustomEventMap, EventShimCustomEvent } from '@deephaven/utils';\nimport Shortcut, { KeyState } from './Shortcut';\n\nconst log = Log.module('ShortcutRegistry');\n\ntype EventMap = CustomEventMap<{\n onUpdate: CustomEvent<Shortcut>;\n}>;\n\nclass ShortcutRegistry extends EventTarget<EventMap, 'strict'> {\n readonly shortcutMap = new Map<string, Shortcut>();\n\n readonly shortcutsByCategory = new Map<string, Shortcut[]>();\n\n /**\n * Creates a Shortcut and adds it to the registry\n * @param params The constructor params for the {@link Shortcut}\n * @returns The created shortcut or the shortcut in the registry if 1 already exists w/ the same ID\n */\n createAndAdd(params: ConstructorParameters<typeof Shortcut>[0]): Shortcut {\n const shortcut = new Shortcut(params);\n return this.add(shortcut);\n }\n\n /**\n * Adds a shortcut to the registry. Warns and returns existing shortcut if a shortcut with the same ID already exists\n * @param shortcut Shortcut to add to the registry\n * @returns Shortcut passed if it is not in the registry. Shortcut from the registry if one exists for the same ID\n */\n add(shortcut: Shortcut): Shortcut {\n const existingShortcut = this.shortcutMap.get(shortcut.id);\n if (existingShortcut) {\n log.warn(\n `Skipping attempt to add duplicate shortcut ID to registry: ${shortcut.id}`\n );\n return existingShortcut;\n }\n\n log.debug2(`Adding shortcut to registry: ${shortcut.id}`);\n\n shortcut.addEventListener('onUpdate', ({ detail }) =>\n this.dispatchEvent(new EventShimCustomEvent('onUpdate', { detail }))\n );\n\n const category = shortcut.id.split('.')[0];\n\n this.shortcutMap.set(shortcut.id, shortcut);\n if (this.shortcutsByCategory.has(category)) {\n this.shortcutsByCategory.get(category)?.push(shortcut);\n } else {\n this.shortcutsByCategory.set(category, [shortcut]);\n }\n\n return shortcut;\n }\n\n /**\n * Gets a shortcut from the registry from an ID\n * @param id ID of the shortcut\n * @returns The shortcut for that ID if it exists\n */\n get(id: string): Shortcut | undefined {\n return this.shortcutMap.get(id);\n }\n\n /**\n * Gets an array of any registered shortcuts with conflicting key states.\n * Only checks the key states of the current OS (Mac or Windows/Linux)\n * @param keyState\n * @returns Array of conflicting shortcuts. Empty array if none conflict\n */\n getConflictingShortcuts(keyState: KeyState): Shortcut[] {\n return Array.from(this.shortcutMap.values()).filter(\n shortcut => !shortcut.isNull() && shortcut.matchesKeyState(keyState)\n );\n }\n}\n\nconst registry = Object.freeze(new ShortcutRegistry());\n\nexport default registry;\n"],"mappings":";;;AAAA;AACA,SAASA,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,GAAG,QAAQ,gBAAgB;AACpC,
|
|
1
|
+
{"version":3,"file":"ShortcutRegistry.js","names":["EventTarget","Log","EventShimCustomEvent","Shortcut","log","module","ShortcutRegistry","constructor","arguments","_defineProperty","Map","createAndAdd","params","shortcut","add","existingShortcut","shortcutMap","get","id","warn","concat","debug2","addEventListener","_ref","detail","dispatchEvent","category","split","set","shortcutsByCategory","has","_this$shortcutsByCate","push","getConflictingShortcuts","keyState","Array","from","values","filter","isNull","matchesKeyState","registry","Object","freeze"],"sources":["../../src/shortcuts/ShortcutRegistry.ts"],"sourcesContent":["/* eslint-disable max-classes-per-file */\nimport { EventTarget } from 'event-target-shim';\nimport { Log } from '@deephaven/log';\nimport { type CustomEventMap, EventShimCustomEvent } from '@deephaven/utils';\nimport Shortcut, { type KeyState } from './Shortcut';\n\nconst log = Log.module('ShortcutRegistry');\n\ntype EventMap = CustomEventMap<{\n onUpdate: CustomEvent<Shortcut>;\n}>;\n\nclass ShortcutRegistry extends EventTarget<EventMap, 'strict'> {\n readonly shortcutMap = new Map<string, Shortcut>();\n\n readonly shortcutsByCategory = new Map<string, Shortcut[]>();\n\n /**\n * Creates a Shortcut and adds it to the registry\n * @param params The constructor params for the {@link Shortcut}\n * @returns The created shortcut or the shortcut in the registry if 1 already exists w/ the same ID\n */\n createAndAdd(params: ConstructorParameters<typeof Shortcut>[0]): Shortcut {\n const shortcut = new Shortcut(params);\n return this.add(shortcut);\n }\n\n /**\n * Adds a shortcut to the registry. Warns and returns existing shortcut if a shortcut with the same ID already exists\n * @param shortcut Shortcut to add to the registry\n * @returns Shortcut passed if it is not in the registry. Shortcut from the registry if one exists for the same ID\n */\n add(shortcut: Shortcut): Shortcut {\n const existingShortcut = this.shortcutMap.get(shortcut.id);\n if (existingShortcut) {\n log.warn(\n `Skipping attempt to add duplicate shortcut ID to registry: ${shortcut.id}`\n );\n return existingShortcut;\n }\n\n log.debug2(`Adding shortcut to registry: ${shortcut.id}`);\n\n shortcut.addEventListener('onUpdate', ({ detail }) =>\n this.dispatchEvent(new EventShimCustomEvent('onUpdate', { detail }))\n );\n\n const category = shortcut.id.split('.')[0];\n\n this.shortcutMap.set(shortcut.id, shortcut);\n if (this.shortcutsByCategory.has(category)) {\n this.shortcutsByCategory.get(category)?.push(shortcut);\n } else {\n this.shortcutsByCategory.set(category, [shortcut]);\n }\n\n return shortcut;\n }\n\n /**\n * Gets a shortcut from the registry from an ID\n * @param id ID of the shortcut\n * @returns The shortcut for that ID if it exists\n */\n get(id: string): Shortcut | undefined {\n return this.shortcutMap.get(id);\n }\n\n /**\n * Gets an array of any registered shortcuts with conflicting key states.\n * Only checks the key states of the current OS (Mac or Windows/Linux)\n * @param keyState\n * @returns Array of conflicting shortcuts. Empty array if none conflict\n */\n getConflictingShortcuts(keyState: KeyState): Shortcut[] {\n return Array.from(this.shortcutMap.values()).filter(\n shortcut => !shortcut.isNull() && shortcut.matchesKeyState(keyState)\n );\n }\n}\n\nconst registry = Object.freeze(new ShortcutRegistry());\n\nexport default registry;\n"],"mappings":";;;AAAA;AACA,SAASA,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,GAAG,QAAQ,gBAAgB;AACpC,SAA8BC,oBAAoB,QAAQ,kBAAkB;AAAC,OACtEC,QAAQ;AAEf,IAAMC,GAAG,GAAGH,GAAG,CAACI,MAAM,CAAC,kBAAkB,CAAC;AAM1C,MAAMC,gBAAgB,SAASN,WAAW,CAAqB;EAAAO,YAAA;IAAA,SAAAC,SAAA;IAAAC,eAAA,sBACtC,IAAIC,GAAG,CAAmB,CAAC;IAAAD,eAAA,8BAEnB,IAAIC,GAAG,CAAqB,CAAC;EAAA;EAE5D;AACF;AACA;AACA;AACA;EACEC,YAAYA,CAACC,MAAiD,EAAY;IACxE,IAAMC,QAAQ,GAAG,IAAIV,QAAQ,CAACS,MAAM,CAAC;IACrC,OAAO,IAAI,CAACE,GAAG,CAACD,QAAQ,CAAC;EAC3B;;EAEA;AACF;AACA;AACA;AACA;EACEC,GAAGA,CAACD,QAAkB,EAAY;IAChC,IAAME,gBAAgB,GAAG,IAAI,CAACC,WAAW,CAACC,GAAG,CAACJ,QAAQ,CAACK,EAAE,CAAC;IAC1D,IAAIH,gBAAgB,EAAE;MACpBX,GAAG,CAACe,IAAI,+DAAAC,MAAA,CACwDP,QAAQ,CAACK,EAAE,CAC3E,CAAC;MACD,OAAOH,gBAAgB;IACzB;IAEAX,GAAG,CAACiB,MAAM,iCAAAD,MAAA,CAAiCP,QAAQ,CAACK,EAAE,CAAE,CAAC;IAEzDL,QAAQ,CAACS,gBAAgB,CAAC,UAAU,EAAEC,IAAA;MAAA,IAAC;QAAEC;MAAO,CAAC,GAAAD,IAAA;MAAA,OAC/C,IAAI,CAACE,aAAa,CAAC,IAAIvB,oBAAoB,CAAC,UAAU,EAAE;QAAEsB;MAAO,CAAC,CAAC,CAAC;IAAA,CACtE,CAAC;IAED,IAAME,QAAQ,GAAGb,QAAQ,CAACK,EAAE,CAACS,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAE1C,IAAI,CAACX,WAAW,CAACY,GAAG,CAACf,QAAQ,CAACK,EAAE,EAAEL,QAAQ,CAAC;IAC3C,IAAI,IAAI,CAACgB,mBAAmB,CAACC,GAAG,CAACJ,QAAQ,CAAC,EAAE;MAAA,IAAAK,qBAAA;MAC1C,CAAAA,qBAAA,OAAI,CAACF,mBAAmB,CAACZ,GAAG,CAACS,QAAQ,CAAC,cAAAK,qBAAA,uBAAtCA,qBAAA,CAAwCC,IAAI,CAACnB,QAAQ,CAAC;IACxD,CAAC,MAAM;MACL,IAAI,CAACgB,mBAAmB,CAACD,GAAG,CAACF,QAAQ,EAAE,CAACb,QAAQ,CAAC,CAAC;IACpD;IAEA,OAAOA,QAAQ;EACjB;;EAEA;AACF;AACA;AACA;AACA;EACEI,GAAGA,CAACC,EAAU,EAAwB;IACpC,OAAO,IAAI,CAACF,WAAW,CAACC,GAAG,CAACC,EAAE,CAAC;EACjC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEe,uBAAuBA,CAACC,QAAkB,EAAc;IACtD,OAAOC,KAAK,CAACC,IAAI,CAAC,IAAI,CAACpB,WAAW,CAACqB,MAAM,CAAC,CAAC,CAAC,CAACC,MAAM,CACjDzB,QAAQ,IAAI,CAACA,QAAQ,CAAC0B,MAAM,CAAC,CAAC,IAAI1B,QAAQ,CAAC2B,eAAe,CAACN,QAAQ,CACrE,CAAC;EACH;AACF;AAEA,IAAMO,QAAQ,GAAGC,MAAM,CAACC,MAAM,CAAC,IAAIrC,gBAAgB,CAAC,CAAC,CAAC;AAEtD,eAAemC,QAAQ"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SpectrumActionGroupProps } from '@adobe/react-spectrum';
|
|
2
|
-
import { ItemsOrPrimitiveChildren } from './shared';
|
|
3
|
-
import { MultipleItemSelectionProps } from './utils';
|
|
1
|
+
import { type SpectrumActionGroupProps } from '@adobe/react-spectrum';
|
|
2
|
+
import { type ItemsOrPrimitiveChildren } from './shared';
|
|
3
|
+
import { type MultipleItemSelectionProps } from './utils';
|
|
4
4
|
export type ActionGroupProps<T> = Omit<SpectrumActionGroupProps<T>, 'children' | 'selectedKeys' | 'defaultSelectedKeys' | 'disabledKeys' | 'onSelectionChange'> & MultipleItemSelectionProps & {
|
|
5
5
|
children: ItemsOrPrimitiveChildren<T>;
|
|
6
6
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionGroup.d.ts","sourceRoot":"","sources":["../../src/spectrum/ActionGroup.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,wBAAwB,
|
|
1
|
+
{"version":3,"file":"ActionGroup.d.ts","sourceRoot":"","sources":["../../src/spectrum/ActionGroup.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,KAAK,0BAA0B,EAAoB,MAAM,SAAS,CAAC;AAE5E,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,IAAI,CACpC,wBAAwB,CAAC,CAAC,CAAC,EACzB,UAAU,GACV,cAAc,GACd,qBAAqB,GACrB,cAAc,GACd,mBAAmB,CACtB,GACC,0BAA0B,GAAG;IAC3B,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;CACvC,CAAC;AAEJ;;;GAGG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,EAC7B,mBAAmB,EACnB,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EACjB,GAAG,KAAK,EACT,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAwBnC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionGroup.js","names":["useMemo","ActionGroup","SpectrumActionGroup","cl","wrapItemChildren","jsx","_jsx","_ref","defaultSelectedKeys","disabledKeys","children","selectedKeys","UNSAFE_className","onChange","onSelectionChange","props","_objectWithoutProperties","_excluded","wrappedChildren","_objectSpread"],"sources":["../../src/spectrum/ActionGroup.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n ActionGroup as SpectrumActionGroup,\n SpectrumActionGroupProps,\n} from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport { ItemsOrPrimitiveChildren } from './shared';\nimport { MultipleItemSelectionProps, wrapItemChildren } from './utils';\n\nexport type ActionGroupProps<T> = Omit<\n SpectrumActionGroupProps<T>,\n | 'children'\n | 'selectedKeys'\n | 'defaultSelectedKeys'\n | 'disabledKeys'\n | 'onSelectionChange'\n> &\n MultipleItemSelectionProps & {\n children: ItemsOrPrimitiveChildren<T>;\n };\n\n/**\n * Augmented version of the Spectrum ActionGroup component that supports\n * primitive item children.\n */\nexport function ActionGroup<T>({\n defaultSelectedKeys,\n disabledKeys,\n children,\n selectedKeys,\n UNSAFE_className,\n onChange,\n onSelectionChange,\n ...props\n}: ActionGroupProps<T>): JSX.Element {\n const wrappedChildren = useMemo(\n () =>\n typeof children === 'function'\n ? children\n : wrapItemChildren(children, null),\n [children]\n );\n\n return (\n <SpectrumActionGroup\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n UNSAFE_className={cl('dh-action-group', UNSAFE_className)}\n defaultSelectedKeys={\n defaultSelectedKeys as SpectrumActionGroupProps<T>['defaultSelectedKeys']\n }\n disabledKeys={disabledKeys as SpectrumActionGroupProps<T>['disabledKeys']}\n selectedKeys={selectedKeys as SpectrumActionGroupProps<T>['selectedKeys']}\n onSelectionChange={onChange ?? onSelectionChange}\n >\n {wrappedChildren}\n </SpectrumActionGroup>\n );\n}\n\nexport default ActionGroup;\n"],"mappings":";;;;;;;;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SACEC,WAAW,IAAIC,mBAAmB,QAE7B,uBAAuB;AAC9B,OAAOC,EAAE,MAAM,YAAY;AAAC,
|
|
1
|
+
{"version":3,"file":"ActionGroup.js","names":["useMemo","ActionGroup","SpectrumActionGroup","cl","wrapItemChildren","jsx","_jsx","_ref","defaultSelectedKeys","disabledKeys","children","selectedKeys","UNSAFE_className","onChange","onSelectionChange","props","_objectWithoutProperties","_excluded","wrappedChildren","_objectSpread"],"sources":["../../src/spectrum/ActionGroup.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n ActionGroup as SpectrumActionGroup,\n type SpectrumActionGroupProps,\n} from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport { type ItemsOrPrimitiveChildren } from './shared';\nimport { type MultipleItemSelectionProps, wrapItemChildren } from './utils';\n\nexport type ActionGroupProps<T> = Omit<\n SpectrumActionGroupProps<T>,\n | 'children'\n | 'selectedKeys'\n | 'defaultSelectedKeys'\n | 'disabledKeys'\n | 'onSelectionChange'\n> &\n MultipleItemSelectionProps & {\n children: ItemsOrPrimitiveChildren<T>;\n };\n\n/**\n * Augmented version of the Spectrum ActionGroup component that supports\n * primitive item children.\n */\nexport function ActionGroup<T>({\n defaultSelectedKeys,\n disabledKeys,\n children,\n selectedKeys,\n UNSAFE_className,\n onChange,\n onSelectionChange,\n ...props\n}: ActionGroupProps<T>): JSX.Element {\n const wrappedChildren = useMemo(\n () =>\n typeof children === 'function'\n ? children\n : wrapItemChildren(children, null),\n [children]\n );\n\n return (\n <SpectrumActionGroup\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n UNSAFE_className={cl('dh-action-group', UNSAFE_className)}\n defaultSelectedKeys={\n defaultSelectedKeys as SpectrumActionGroupProps<T>['defaultSelectedKeys']\n }\n disabledKeys={disabledKeys as SpectrumActionGroupProps<T>['disabledKeys']}\n selectedKeys={selectedKeys as SpectrumActionGroupProps<T>['selectedKeys']}\n onSelectionChange={onChange ?? onSelectionChange}\n >\n {wrappedChildren}\n </SpectrumActionGroup>\n );\n}\n\nexport default ActionGroup;\n"],"mappings":";;;;;;;;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SACEC,WAAW,IAAIC,mBAAmB,QAE7B,uBAAuB;AAC9B,OAAOC,EAAE,MAAM,YAAY;AAAC,SAEcC,gBAAgB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAc1D;AACA;AACA;AACA;AACA,OAAO,SAASL,WAAWA,CAAAM,IAAA,EASU;EAAA,IATN;MAC7BC,mBAAmB;MACnBC,YAAY;MACZC,QAAQ;MACRC,YAAY;MACZC,gBAAgB;MAChBC,QAAQ;MACRC;IAEmB,CAAC,GAAAP,IAAA;IADjBQ,KAAK,GAAAC,wBAAA,CAAAT,IAAA,EAAAU,SAAA;EAER,IAAMC,eAAe,GAAGlB,OAAO,CAC7B,MACE,OAAOU,QAAQ,KAAK,UAAU,GAC1BA,QAAQ,GACRN,gBAAgB,CAACM,QAAQ,EAAE,IAAI,CAAC,EACtC,CAACA,QAAQ,CACX,CAAC;EAED,oBACEJ,IAAA,CAACJ;EACC;EAAA,EAAAiB,aAAA,CAAAA,aAAA,KACIJ,KAAK;IACTH,gBAAgB,EAAET,EAAE,CAAC,iBAAiB,EAAES,gBAAgB,CAAE;IAC1DJ,mBAAmB,EACjBA,mBACD;IACDC,YAAY,EAAEA,YAA4D;IAC1EE,YAAY,EAAEA,YAA4D;IAC1EG,iBAAiB,EAAED,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIC,iBAAkB;IAAAJ,QAAA,EAEhDQ;EAAe,EACG,CAAC;AAE1B;AAEA,eAAejB,WAAW"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { SpectrumActionMenuProps } from '@adobe/react-spectrum';
|
|
2
|
-
import { ItemsOrPrimitiveChildren } from './shared';
|
|
3
|
-
import { ItemKey } from './utils';
|
|
1
|
+
import { type SpectrumActionMenuProps } from '@adobe/react-spectrum';
|
|
2
|
+
import { type ItemsOrPrimitiveChildren } from './shared';
|
|
3
|
+
import { type ItemKey } from './utils';
|
|
4
4
|
export type ActionMenuProps<T> = Omit<SpectrumActionMenuProps<T>, 'children' | 'disabledKeys'> & {
|
|
5
5
|
disabledKeys?: Iterable<ItemKey>;
|
|
6
6
|
children: ItemsOrPrimitiveChildren<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionMenu.d.ts","sourceRoot":"","sources":["../../src/spectrum/ActionMenu.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,uBAAuB,
|
|
1
|
+
{"version":3,"file":"ActionMenu.d.ts","sourceRoot":"","sources":["../../src/spectrum/ActionMenu.tsx"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,uBAAuB,EAC7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,wBAAwB,EAAE,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,KAAK,OAAO,EAAoB,MAAM,SAAS,CAAC;AAEzD,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,IAAI,CACnC,uBAAuB,CAAC,CAAC,CAAC,EAC1B,UAAU,GAAG,cAAc,CAC5B,GAAG;IACF,YAAY,CAAC,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IACjC,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CAAC,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,EAC5B,YAAY,EACZ,QAAQ,EACR,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,OAAO,CAmBlC;AAED,eAAe,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActionMenu.js","names":["useMemo","ActionMenu","SpectrumActionMenu","cl","wrapItemChildren","jsx","_jsx","_ref","disabledKeys","children","UNSAFE_className","props","_objectWithoutProperties","_excluded","wrappedChildren","_objectSpread"],"sources":["../../src/spectrum/ActionMenu.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n ActionMenu as SpectrumActionMenu,\n SpectrumActionMenuProps,\n} from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport { ItemsOrPrimitiveChildren } from './shared';\nimport { ItemKey, wrapItemChildren } from './utils';\n\nexport type ActionMenuProps<T> = Omit<\n SpectrumActionMenuProps<T>,\n 'children' | 'disabledKeys'\n> & {\n disabledKeys?: Iterable<ItemKey>;\n children: ItemsOrPrimitiveChildren<T>;\n};\n\n/**\n * Augmented version of the Spectrum ActionMenu component that supports\n * primitive item children.\n */\nexport function ActionMenu<T>({\n disabledKeys,\n children,\n UNSAFE_className,\n ...props\n}: ActionMenuProps<T>): JSX.Element {\n const wrappedChildren = useMemo(\n () =>\n typeof children === 'function'\n ? children\n : wrapItemChildren(children, null),\n [children]\n );\n\n return (\n <SpectrumActionMenu\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n UNSAFE_className={cl('dh-action-menu', UNSAFE_className)}\n disabledKeys={disabledKeys as SpectrumActionMenuProps<T>['disabledKeys']}\n >\n {wrappedChildren}\n </SpectrumActionMenu>\n );\n}\n\nexport default ActionMenu;\n"],"mappings":";;;;;;;;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SACEC,UAAU,IAAIC,kBAAkB,QAE3B,uBAAuB;AAC9B,OAAOC,EAAE,MAAM,YAAY;AAAC,
|
|
1
|
+
{"version":3,"file":"ActionMenu.js","names":["useMemo","ActionMenu","SpectrumActionMenu","cl","wrapItemChildren","jsx","_jsx","_ref","disabledKeys","children","UNSAFE_className","props","_objectWithoutProperties","_excluded","wrappedChildren","_objectSpread"],"sources":["../../src/spectrum/ActionMenu.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport {\n ActionMenu as SpectrumActionMenu,\n type SpectrumActionMenuProps,\n} from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport { type ItemsOrPrimitiveChildren } from './shared';\nimport { type ItemKey, wrapItemChildren } from './utils';\n\nexport type ActionMenuProps<T> = Omit<\n SpectrumActionMenuProps<T>,\n 'children' | 'disabledKeys'\n> & {\n disabledKeys?: Iterable<ItemKey>;\n children: ItemsOrPrimitiveChildren<T>;\n};\n\n/**\n * Augmented version of the Spectrum ActionMenu component that supports\n * primitive item children.\n */\nexport function ActionMenu<T>({\n disabledKeys,\n children,\n UNSAFE_className,\n ...props\n}: ActionMenuProps<T>): JSX.Element {\n const wrappedChildren = useMemo(\n () =>\n typeof children === 'function'\n ? children\n : wrapItemChildren(children, null),\n [children]\n );\n\n return (\n <SpectrumActionMenu\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n UNSAFE_className={cl('dh-action-menu', UNSAFE_className)}\n disabledKeys={disabledKeys as SpectrumActionMenuProps<T>['disabledKeys']}\n >\n {wrappedChildren}\n </SpectrumActionMenu>\n );\n}\n\nexport default ActionMenu;\n"],"mappings":";;;;;;;;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SACEC,UAAU,IAAIC,kBAAkB,QAE3B,uBAAuB;AAC9B,OAAOC,EAAE,MAAM,YAAY;AAAC,SAELC,gBAAgB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAUvC;AACA;AACA;AACA;AACA,OAAO,SAASL,UAAUA,CAAAM,IAAA,EAKU;EAAA,IALN;MAC5BC,YAAY;MACZC,QAAQ;MACRC;IAEkB,CAAC,GAAAH,IAAA;IADhBI,KAAK,GAAAC,wBAAA,CAAAL,IAAA,EAAAM,SAAA;EAER,IAAMC,eAAe,GAAGd,OAAO,CAC7B,MACE,OAAOS,QAAQ,KAAK,UAAU,GAC1BA,QAAQ,GACRL,gBAAgB,CAACK,QAAQ,EAAE,IAAI,CAAC,EACtC,CAACA,QAAQ,CACX,CAAC;EAED,oBACEH,IAAA,CAACJ;EACC;EAAA,EAAAa,aAAA,CAAAA,aAAA,KACIJ,KAAK;IACTD,gBAAgB,EAAEP,EAAE,CAAC,gBAAgB,EAAEO,gBAAgB,CAAE;IACzDF,YAAY,EAAEA,YAA2D;IAAAC,QAAA,EAExEK;EAAe,EACE,CAAC;AAEzB;AAEA,eAAeb,UAAU"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ReactNode } from 'react';
|
|
2
|
-
import { TooltipOptions } from './utils';
|
|
1
|
+
import { type ReactNode } from 'react';
|
|
2
|
+
import { type TooltipOptions } from './utils';
|
|
3
3
|
export interface ItemContentProps {
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
tooltipOptions?: TooltipOptions | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemContent.d.ts","sourceRoot":"","sources":["../../src/spectrum/ItemContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,SAAS,
|
|
1
|
+
{"version":3,"file":"ItemContent.d.ts","sourceRoot":"","sources":["../../src/spectrum/ItemContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,SAAS,EAEf,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,GAAG,IAAI,CAAC;CACxC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EAAE,OAAO,EACjB,cAAc,GACf,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAsEvC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemContent.js","names":["Children","cloneElement","isValidElement","useState","cl","isElementOfType","useCheckOverflow","NON_BREAKING_SPACE","Text","ItemTooltip","stylesCommon","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ItemContent","_ref","children","content","tooltipOptions","checkOverflow","isOverflowing","resetIsOverflowing","previousContent","setPreviousContent","String","Array","isArray","map","el","_objectSpread","props","ref","UNSAFE_className","spectrumEllipsis","tooltip","options"],"sources":["../../src/spectrum/ItemContent.tsx"],"sourcesContent":["import {\n Children,\n cloneElement,\n isValidElement,\n ReactNode,\n useState,\n} from 'react';\nimport cl from 'classnames';\nimport { isElementOfType, useCheckOverflow } from '@deephaven/react-hooks';\nimport { NON_BREAKING_SPACE } from '@deephaven/utils';\nimport { Text } from './Text';\nimport { TooltipOptions } from './utils';\nimport ItemTooltip from './ItemTooltip';\nimport stylesCommon from '../SpectrumComponent.module.scss';\n\nexport interface ItemContentProps {\n children: ReactNode;\n tooltipOptions?: TooltipOptions | null;\n}\n\n/**\n * Item content. Text content will be wrapped in a Spectrum Text\n * component with ellipsis overflow handling. If text content overflows and\n * tooltipOptions are provided a tooltip will be displayed when hovering over\n * the item content.\n */\nexport function ItemContent({\n children: content,\n tooltipOptions,\n}: ItemContentProps): JSX.Element | null {\n const { checkOverflow, isOverflowing, resetIsOverflowing } =\n useCheckOverflow();\n\n const [previousContent, setPreviousContent] = useState(content);\n\n // Reset `isOverflowing` if content changes. It will get re-calculated as\n // `Text` components render.\n if (previousContent !== content) {\n setPreviousContent(content);\n resetIsOverflowing();\n }\n\n if (isValidElement(content)) {\n return content;\n }\n\n /* eslint-disable no-param-reassign */\n if (content === '') {\n // Prevent the item height from collapsing when the content is empty\n content = NON_BREAKING_SPACE;\n } else if (typeof content === 'boolean') {\n // Boolean values need to be stringified to render\n content = String(content);\n } else if (Array.isArray(content)) {\n // For cases where there are multiple `Text` children, add a css class to\n // handle overflow. The primary use case for multiple text nodes is when a\n // description is provided for an item. e.g.\n // <Item textValue=\"Some Text\">\n // <SomeIcon />\n // <Text>Some Label</Text>\n // <Text slot=\"description\">Some Description</Text>\n // </Item>\n content = Children.map(content, el =>\n isElementOfType(el, Text)\n ? cloneElement(el, {\n ...el.props,\n ref: checkOverflow,\n UNSAFE_className: cl(\n el.props.UNSAFE_className,\n stylesCommon.spectrumEllipsis\n ),\n })\n : el\n );\n }\n\n if (typeof content === 'string' || typeof content === 'number') {\n content = (\n <Text\n ref={checkOverflow}\n UNSAFE_className={stylesCommon.spectrumEllipsis}\n >\n {content}\n </Text>\n );\n }\n /* eslint-enable no-param-reassign */\n\n const tooltip =\n tooltipOptions == null || !isOverflowing ? null : (\n <ItemTooltip options={tooltipOptions}>{content}</ItemTooltip>\n );\n\n return (\n <>\n {content}\n {tooltip}\n </>\n );\n}\n\nexport default ItemContent;\n"],"mappings":";;;;;AAAA,SACEA,QAAQ,EACRC,YAAY,EACZC,cAAc,EAEdC,QAAQ,QACH,OAAO;AACd,OAAOC,EAAE,MAAM,YAAY;AAC3B,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,wBAAwB;AAC1E,SAASC,kBAAkB,QAAQ,kBAAkB;AAAC,SAC7CC,IAAI;AAAA,OAENC,WAAW;AAAA,OACXC,YAAY;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAOnB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAAAC,IAAA,EAGc;EAAA,IAHb;IAC1BC,QAAQ,EAAEC,OAAO;IACjBC;EACgB,CAAC,GAAAH,IAAA;EACjB,IAAM;IAAEI,aAAa;IAAEC,aAAa;IAAEC;EAAmB,CAAC,GACxDlB,gBAAgB,CAAC,CAAC;EAEpB,IAAM,CAACmB,eAAe,EAAEC,kBAAkB,CAAC,GAAGvB,QAAQ,CAACiB,OAAO,CAAC;;EAE/D;EACA;EACA,IAAIK,eAAe,KAAKL,OAAO,EAAE;IAC/BM,kBAAkB,CAACN,OAAO,CAAC;IAC3BI,kBAAkB,CAAC,CAAC;EACtB;EAEA,kBAAItB,cAAc,CAACkB,OAAO,CAAC,EAAE;IAC3B,OAAOA,OAAO;EAChB;;EAEA;EACA,IAAIA,OAAO,KAAK,EAAE,EAAE;IAClB;IACAA,OAAO,GAAGb,kBAAkB;EAC9B,CAAC,MAAM,IAAI,OAAOa,OAAO,KAAK,SAAS,EAAE;IACvC;IACAA,OAAO,GAAGO,MAAM,CAACP,OAAO,CAAC;EAC3B,CAAC,MAAM,IAAIQ,KAAK,CAACC,OAAO,CAACT,OAAO,CAAC,EAAE;IACjC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACAA,OAAO,GAAGpB,QAAQ,CAAC8B,GAAG,CAACV,OAAO,EAAEW,EAAE,IAChC1B,eAAe,CAAC0B,EAAE,EAAEvB,IAAI,CAAC,gBACrBP,YAAY,CAAC8B,EAAE,EAAAC,aAAA,CAAAA,aAAA,KACVD,EAAE,CAACE,KAAK;MACXC,GAAG,EAAEZ,aAAa;MAClBa,gBAAgB,EAAE/B,EAAE,CAClB2B,EAAE,CAACE,KAAK,CAACE,gBAAgB,EACzBzB,YAAY,CAAC0B,gBACf;IAAC,EACF,CAAC,GACFL,EACN,CAAC;EACH;EAEA,IAAI,OAAOX,OAAO,KAAK,QAAQ,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;IAC9DA,OAAO,gBACLR,IAAA,CAACJ,IAAI;MACH0B,GAAG,EAAEZ,aAAc;MACnBa,gBAAgB,EAAEzB,YAAY,CAAC0B,gBAAiB;MAAAjB,QAAA,EAE/CC;IAAO,CACJ,CACP;EACH;EACA;;EAEA,IAAMiB,OAAO,GACXhB,cAAc,IAAI,IAAI,IAAI,CAACE,aAAa,GAAG,IAAI,gBAC7CX,IAAA,CAACH,WAAW;IAAC6B,OAAO,EAAEjB,cAAe;IAAAF,QAAA,EAAEC;EAAO,CAAc,CAC7D;EAEH,oBACEJ,KAAA,CAAAF,SAAA;IAAAK,QAAA,GACGC,OAAO,EACPiB,OAAO;EAAA,CACR,CAAC;AAEP;AAEA,eAAepB,WAAW"}
|
|
1
|
+
{"version":3,"file":"ItemContent.js","names":["Children","cloneElement","isValidElement","useState","cl","isElementOfType","useCheckOverflow","NON_BREAKING_SPACE","Text","ItemTooltip","stylesCommon","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","ItemContent","_ref","children","content","tooltipOptions","checkOverflow","isOverflowing","resetIsOverflowing","previousContent","setPreviousContent","String","Array","isArray","map","el","_objectSpread","props","ref","UNSAFE_className","spectrumEllipsis","tooltip","options"],"sources":["../../src/spectrum/ItemContent.tsx"],"sourcesContent":["import {\n Children,\n cloneElement,\n isValidElement,\n type ReactNode,\n useState,\n} from 'react';\nimport cl from 'classnames';\nimport { isElementOfType, useCheckOverflow } from '@deephaven/react-hooks';\nimport { NON_BREAKING_SPACE } from '@deephaven/utils';\nimport { Text } from './Text';\nimport { type TooltipOptions } from './utils';\nimport ItemTooltip from './ItemTooltip';\nimport stylesCommon from '../SpectrumComponent.module.scss';\n\nexport interface ItemContentProps {\n children: ReactNode;\n tooltipOptions?: TooltipOptions | null;\n}\n\n/**\n * Item content. Text content will be wrapped in a Spectrum Text\n * component with ellipsis overflow handling. If text content overflows and\n * tooltipOptions are provided a tooltip will be displayed when hovering over\n * the item content.\n */\nexport function ItemContent({\n children: content,\n tooltipOptions,\n}: ItemContentProps): JSX.Element | null {\n const { checkOverflow, isOverflowing, resetIsOverflowing } =\n useCheckOverflow();\n\n const [previousContent, setPreviousContent] = useState(content);\n\n // Reset `isOverflowing` if content changes. It will get re-calculated as\n // `Text` components render.\n if (previousContent !== content) {\n setPreviousContent(content);\n resetIsOverflowing();\n }\n\n if (isValidElement(content)) {\n return content;\n }\n\n /* eslint-disable no-param-reassign */\n if (content === '') {\n // Prevent the item height from collapsing when the content is empty\n content = NON_BREAKING_SPACE;\n } else if (typeof content === 'boolean') {\n // Boolean values need to be stringified to render\n content = String(content);\n } else if (Array.isArray(content)) {\n // For cases where there are multiple `Text` children, add a css class to\n // handle overflow. The primary use case for multiple text nodes is when a\n // description is provided for an item. e.g.\n // <Item textValue=\"Some Text\">\n // <SomeIcon />\n // <Text>Some Label</Text>\n // <Text slot=\"description\">Some Description</Text>\n // </Item>\n content = Children.map(content, el =>\n isElementOfType(el, Text)\n ? cloneElement(el, {\n ...el.props,\n ref: checkOverflow,\n UNSAFE_className: cl(\n el.props.UNSAFE_className,\n stylesCommon.spectrumEllipsis\n ),\n })\n : el\n );\n }\n\n if (typeof content === 'string' || typeof content === 'number') {\n content = (\n <Text\n ref={checkOverflow}\n UNSAFE_className={stylesCommon.spectrumEllipsis}\n >\n {content}\n </Text>\n );\n }\n /* eslint-enable no-param-reassign */\n\n const tooltip =\n tooltipOptions == null || !isOverflowing ? null : (\n <ItemTooltip options={tooltipOptions}>{content}</ItemTooltip>\n );\n\n return (\n <>\n {content}\n {tooltip}\n </>\n );\n}\n\nexport default ItemContent;\n"],"mappings":";;;;;AAAA,SACEA,QAAQ,EACRC,YAAY,EACZC,cAAc,EAEdC,QAAQ,QACH,OAAO;AACd,OAAOC,EAAE,MAAM,YAAY;AAC3B,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,wBAAwB;AAC1E,SAASC,kBAAkB,QAAQ,kBAAkB;AAAC,SAC7CC,IAAI;AAAA,OAENC,WAAW;AAAA,OACXC,YAAY;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAOnB;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAAAC,IAAA,EAGc;EAAA,IAHb;IAC1BC,QAAQ,EAAEC,OAAO;IACjBC;EACgB,CAAC,GAAAH,IAAA;EACjB,IAAM;IAAEI,aAAa;IAAEC,aAAa;IAAEC;EAAmB,CAAC,GACxDlB,gBAAgB,CAAC,CAAC;EAEpB,IAAM,CAACmB,eAAe,EAAEC,kBAAkB,CAAC,GAAGvB,QAAQ,CAACiB,OAAO,CAAC;;EAE/D;EACA;EACA,IAAIK,eAAe,KAAKL,OAAO,EAAE;IAC/BM,kBAAkB,CAACN,OAAO,CAAC;IAC3BI,kBAAkB,CAAC,CAAC;EACtB;EAEA,kBAAItB,cAAc,CAACkB,OAAO,CAAC,EAAE;IAC3B,OAAOA,OAAO;EAChB;;EAEA;EACA,IAAIA,OAAO,KAAK,EAAE,EAAE;IAClB;IACAA,OAAO,GAAGb,kBAAkB;EAC9B,CAAC,MAAM,IAAI,OAAOa,OAAO,KAAK,SAAS,EAAE;IACvC;IACAA,OAAO,GAAGO,MAAM,CAACP,OAAO,CAAC;EAC3B,CAAC,MAAM,IAAIQ,KAAK,CAACC,OAAO,CAACT,OAAO,CAAC,EAAE;IACjC;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACAA,OAAO,GAAGpB,QAAQ,CAAC8B,GAAG,CAACV,OAAO,EAAEW,EAAE,IAChC1B,eAAe,CAAC0B,EAAE,EAAEvB,IAAI,CAAC,gBACrBP,YAAY,CAAC8B,EAAE,EAAAC,aAAA,CAAAA,aAAA,KACVD,EAAE,CAACE,KAAK;MACXC,GAAG,EAAEZ,aAAa;MAClBa,gBAAgB,EAAE/B,EAAE,CAClB2B,EAAE,CAACE,KAAK,CAACE,gBAAgB,EACzBzB,YAAY,CAAC0B,gBACf;IAAC,EACF,CAAC,GACFL,EACN,CAAC;EACH;EAEA,IAAI,OAAOX,OAAO,KAAK,QAAQ,IAAI,OAAOA,OAAO,KAAK,QAAQ,EAAE;IAC9DA,OAAO,gBACLR,IAAA,CAACJ,IAAI;MACH0B,GAAG,EAAEZ,aAAc;MACnBa,gBAAgB,EAAEzB,YAAY,CAAC0B,gBAAiB;MAAAjB,QAAA,EAE/CC;IAAO,CACJ,CACP;EACH;EACA;;EAEA,IAAMiB,OAAO,GACXhB,cAAc,IAAI,IAAI,IAAI,CAACE,aAAa,GAAG,IAAI,gBAC7CX,IAAA,CAACH,WAAW;IAAC6B,OAAO,EAAEjB,cAAe;IAAAF,QAAA,EAAEC;EAAO,CAAc,CAC7D;EAEH,oBACEJ,KAAA,CAAAF,SAAA;IAAAK,QAAA,GACGC,OAAO,EACPiB,OAAO;EAAA,CACR,CAAC;AAEP;AAEA,eAAepB,WAAW"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemTooltip.d.ts","sourceRoot":"","sources":["../../src/spectrum/ItemTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ItemTooltip.d.ts","sourceRoot":"","sources":["../../src/spectrum/ItemTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,SAAS,CAAC;AAK9C,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;CACzB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAC1B,QAAQ,EACR,OAAO,GACR,EAAE,gBAAgB,GAAG,GAAG,CAAC,OAAO,CAehC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemTooltip.js","names":["isElementOfType","Tooltip","Flex","Text","jsx","_jsx","ItemTooltip","_ref","children","options","Array","isArray","direction","alignItems","filter","node"],"sources":["../../src/spectrum/ItemTooltip.tsx"],"sourcesContent":["import { ReactNode } from 'react';\nimport { isElementOfType } from '@deephaven/react-hooks';\nimport { TooltipOptions } from './utils';\nimport { Tooltip } from '../popper';\nimport { Flex } from './layout';\nimport { Text } from './Text';\n\nexport interface ItemTooltipProps {\n children: ReactNode;\n options: TooltipOptions;\n}\n\n/**\n * Tooltip for `<Item>` content.\n */\nexport function ItemTooltip({\n children,\n options,\n}: ItemTooltipProps): JSX.Element {\n if (Array.isArray(children)) {\n return (\n <Tooltip options={options}>\n {/* Multiple children scenarios include a `<Text>` node for the label \n and at least 1 of an optional icon or `<Text slot=\"description\">` node.\n In such cases we only show the label and description `<Text>` nodes. */}\n <Flex direction=\"column\" alignItems=\"start\">\n {children.filter(node => isElementOfType(node, Text))}\n </Flex>\n </Tooltip>\n );\n }\n\n return <Tooltip options={options}>{children}</Tooltip>;\n}\n\nexport default ItemTooltip;\n"],"mappings":"AACA,SAASA,eAAe,QAAQ,wBAAwB;AAAC,SAEhDC,OAAO;AAAA,SACPC,IAAI;AAAA,SACJC,IAAI;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAOb;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAAAC,IAAA,EAGO;EAAA,IAHN;IAC1BC,QAAQ;IACRC;EACgB,CAAC,GAAAF,IAAA;EACjB,IAAIG,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,EAAE;IAC3B,oBACEH,IAAA,CAACJ,OAAO;MAACQ,OAAO,EAAEA,OAAQ;MAAAD,QAAA,eAIxBH,IAAA,CAACH,IAAI;QAACU,SAAS,EAAC,QAAQ;QAACC,UAAU,EAAC,OAAO;QAAAL,QAAA,EACxCA,QAAQ,CAACM,MAAM,CAACC,IAAI,IAAIf,eAAe,CAACe,IAAI,EAAEZ,IAAI,CAAC;MAAC,CACjD;IAAC,CACA,CAAC;EAEd;EAEA,oBAAOE,IAAA,CAACJ,OAAO;IAACQ,OAAO,EAAEA,OAAQ;IAAAD,QAAA,EAAEA;EAAQ,CAAU,CAAC;AACxD;AAEA,eAAeF,WAAW"}
|
|
1
|
+
{"version":3,"file":"ItemTooltip.js","names":["isElementOfType","Tooltip","Flex","Text","jsx","_jsx","ItemTooltip","_ref","children","options","Array","isArray","direction","alignItems","filter","node"],"sources":["../../src/spectrum/ItemTooltip.tsx"],"sourcesContent":["import { type ReactNode } from 'react';\nimport { isElementOfType } from '@deephaven/react-hooks';\nimport { type TooltipOptions } from './utils';\nimport { Tooltip } from '../popper';\nimport { Flex } from './layout';\nimport { Text } from './Text';\n\nexport interface ItemTooltipProps {\n children: ReactNode;\n options: TooltipOptions;\n}\n\n/**\n * Tooltip for `<Item>` content.\n */\nexport function ItemTooltip({\n children,\n options,\n}: ItemTooltipProps): JSX.Element {\n if (Array.isArray(children)) {\n return (\n <Tooltip options={options}>\n {/* Multiple children scenarios include a `<Text>` node for the label \n and at least 1 of an optional icon or `<Text slot=\"description\">` node.\n In such cases we only show the label and description `<Text>` nodes. */}\n <Flex direction=\"column\" alignItems=\"start\">\n {children.filter(node => isElementOfType(node, Text))}\n </Flex>\n </Tooltip>\n );\n }\n\n return <Tooltip options={options}>{children}</Tooltip>;\n}\n\nexport default ItemTooltip;\n"],"mappings":"AACA,SAASA,eAAe,QAAQ,wBAAwB;AAAC,SAEhDC,OAAO;AAAA,SACPC,IAAI;AAAA,SACJC,IAAI;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAOb;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAAAC,IAAA,EAGO;EAAA,IAHN;IAC1BC,QAAQ;IACRC;EACgB,CAAC,GAAAF,IAAA;EACjB,IAAIG,KAAK,CAACC,OAAO,CAACH,QAAQ,CAAC,EAAE;IAC3B,oBACEH,IAAA,CAACJ,OAAO;MAACQ,OAAO,EAAEA,OAAQ;MAAAD,QAAA,eAIxBH,IAAA,CAACH,IAAI;QAACU,SAAS,EAAC,QAAQ;QAACC,UAAU,EAAC,OAAO;QAAAL,QAAA,EACxCA,QAAQ,CAACM,MAAM,CAACC,IAAI,IAAIf,eAAe,CAACe,IAAI,EAAEZ,IAAI,CAAC;MAAC,CACjD;IAAC,CACA,CAAC;EAEd;EAEA,oBAAOE,IAAA,CAACJ,OAAO;IAACQ,OAAO,EAAEA,OAAQ;IAAAD,QAAA,EAAEA;EAAQ,CAAU,CAAC;AACxD;AAEA,eAAeF,WAAW"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ActionGroupProps } from './ActionGroup';
|
|
2
|
-
import { ItemKey, ItemSelection } from './utils';
|
|
1
|
+
import { type ActionGroupProps } from './ActionGroup';
|
|
2
|
+
import { type ItemKey, type ItemSelection } from './utils';
|
|
3
3
|
export interface ListActionGroupProps<T> extends Omit<ActionGroupProps<T>, 'onAction' | 'onChange' | 'onSelectionChange'> {
|
|
4
4
|
/**
|
|
5
5
|
* Handler that is called when an item is pressed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListActionGroup.d.ts","sourceRoot":"","sources":["../../src/spectrum/ListActionGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"ListActionGroup.d.ts","sourceRoot":"","sources":["../../src/spectrum/ListActionGroup.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,SAAS,CAAC;AAE3D,MAAM,WAAW,oBAAoB,CAAC,CAAC,CACrC,SAAQ,IAAI,CACV,gBAAgB,CAAC,CAAC,CAAC,EACnB,UAAU,GAAG,UAAU,GAAG,mBAAmB,CAC9C;IACD;;OAEG;IACH,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7D;;OAEG;IACH,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;CACrE;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,IAAI,CAExE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListActionGroup.js","names":["ListActionGroup","_props"],"sources":["../../src/spectrum/ListActionGroup.tsx"],"sourcesContent":["import { ActionGroupProps } from './ActionGroup';\nimport { ItemKey, ItemSelection } from './utils';\n\nexport interface ListActionGroupProps<T>\n extends Omit<\n ActionGroupProps<T>,\n 'onAction' | 'onChange' | 'onSelectionChange'\n > {\n /**\n * Handler that is called when an item is pressed.\n */\n onAction: (actionKey: ItemKey, listItemKey: ItemKey) => void;\n\n /**\n * Handler that is called when the selection change.\n */\n onChange?: (selection: ItemSelection, listItemKey: ItemKey) => void;\n}\n\n/**\n * This component doesn't actually render anything. It is a prop container that\n * gets passed to `NormalizedListView`. The actual `ActionGroup` elements will\n * be created from this component's props on each item in the list view.\n */\nexport function ListActionGroup<T>(_props: ListActionGroupProps<T>): null {\n return null;\n}\n"],"mappings":"AAmBA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAAIC,MAA+B,EAAQ;EACxE,OAAO,IAAI;AACb"}
|
|
1
|
+
{"version":3,"file":"ListActionGroup.js","names":["ListActionGroup","_props"],"sources":["../../src/spectrum/ListActionGroup.tsx"],"sourcesContent":["import { type ActionGroupProps } from './ActionGroup';\nimport { type ItemKey, type ItemSelection } from './utils';\n\nexport interface ListActionGroupProps<T>\n extends Omit<\n ActionGroupProps<T>,\n 'onAction' | 'onChange' | 'onSelectionChange'\n > {\n /**\n * Handler that is called when an item is pressed.\n */\n onAction: (actionKey: ItemKey, listItemKey: ItemKey) => void;\n\n /**\n * Handler that is called when the selection change.\n */\n onChange?: (selection: ItemSelection, listItemKey: ItemKey) => void;\n}\n\n/**\n * This component doesn't actually render anything. It is a prop container that\n * gets passed to `NormalizedListView`. The actual `ActionGroup` elements will\n * be created from this component's props on each item in the list view.\n */\nexport function ListActionGroup<T>(_props: ListActionGroupProps<T>): null {\n return null;\n}\n"],"mappings":"AAmBA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,eAAeA,CAAIC,MAA+B,EAAQ;EACxE,OAAO,IAAI;AACb"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ActionMenuProps } from './ActionMenu';
|
|
2
|
-
import { ItemKey } from './utils';
|
|
1
|
+
import { type ActionMenuProps } from './ActionMenu';
|
|
2
|
+
import { type ItemKey } from './utils';
|
|
3
3
|
export interface ListActionMenuProps<T> extends Omit<ActionMenuProps<T>, 'onAction' | 'onOpenChange'> {
|
|
4
4
|
/**
|
|
5
5
|
* Handler that is called when an item is pressed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListActionMenu.d.ts","sourceRoot":"","sources":["../../src/spectrum/ListActionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ListActionMenu.d.ts","sourceRoot":"","sources":["../../src/spectrum/ListActionMenu.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,WAAW,mBAAmB,CAAC,CAAC,CACpC,SAAQ,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;IAC7D;;OAEG;IACH,QAAQ,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;IAE7D;;OAEG;IACH,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,KAAK,IAAI,CAAC;CAChE;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,MAAM,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,IAAI,CAEtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ListActionMenu.js","names":["ListActionMenu","_props"],"sources":["../../src/spectrum/ListActionMenu.tsx"],"sourcesContent":["import { ActionMenuProps } from './ActionMenu';\nimport { ItemKey } from './utils';\n\nexport interface ListActionMenuProps<T>\n extends Omit<ActionMenuProps<T>, 'onAction' | 'onOpenChange'> {\n /**\n * Handler that is called when an item is pressed.\n */\n onAction: (actionKey: ItemKey, listItemKey: ItemKey) => void;\n\n /**\n * Handler that is called when the the menu is opened or closed.\n */\n onOpenChange?: (isOpen: boolean, listItemKey: ItemKey) => void;\n}\n\n/**\n * This component doesn't actually render anything. It is a prop container that\n * gets passed to `NormalizedListView`. The actual `ActionMenu` elements will\n * be created from this component's props on each item in the list view.\n */\nexport function ListActionMenu<T>(_props: ListActionMenuProps<T>): null {\n return null;\n}\n"],"mappings":"AAgBA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,cAAcA,CAAIC,MAA8B,EAAQ;EACtE,OAAO,IAAI;AACb"}
|
|
1
|
+
{"version":3,"file":"ListActionMenu.js","names":["ListActionMenu","_props"],"sources":["../../src/spectrum/ListActionMenu.tsx"],"sourcesContent":["import { type ActionMenuProps } from './ActionMenu';\nimport { type ItemKey } from './utils';\n\nexport interface ListActionMenuProps<T>\n extends Omit<ActionMenuProps<T>, 'onAction' | 'onOpenChange'> {\n /**\n * Handler that is called when an item is pressed.\n */\n onAction: (actionKey: ItemKey, listItemKey: ItemKey) => void;\n\n /**\n * Handler that is called when the the menu is opened or closed.\n */\n onOpenChange?: (isOpen: boolean, listItemKey: ItemKey) => void;\n}\n\n/**\n * This component doesn't actually render anything. It is a prop container that\n * gets passed to `NormalizedListView`. The actual `ActionMenu` elements will\n * be created from this component's props on each item in the list view.\n */\nexport function ListActionMenu<T>(_props: ListActionMenuProps<T>): null {\n return null;\n}\n"],"mappings":"AAgBA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,cAAcA,CAAIC,MAA8B,EAAQ;EACtE,OAAO,IAAI;AACb"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"View.js","names":["forwardRef","useMemo","useLocale","View","SpectrumView","colorValueStyle","jsx","_jsx","props","forwardedRef","backgroundColor","borderColor","borderStartColor","borderEndColor","borderTopColor","borderBottomColor","borderXColor","borderYColor","UNSAFE_style","rest","_objectWithoutProperties","_excluded","direction","style","borderStyle","undefined","borderLeftColor","borderRightColor","_objectSpread","ref","displayName"],"sources":["../../src/spectrum/View.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport { CSSProperties, forwardRef, useMemo } from 'react';\nimport {\n useLocale,\n View as SpectrumView,\n type ViewProps as SpectrumViewProps,\n} from '@adobe/react-spectrum';\nimport type { DOMRefValue } from '@react-types/shared';\nimport { type ColorValue, colorValueStyle } from '../theme/colorUtils';\n\nexport type ViewProps = Omit<\n SpectrumViewProps<6>,\n | 'backgroundColor'\n | 'borderColor'\n | 'borderStartColor'\n | 'borderEndColor'\n | 'borderTopColor'\n | 'borderBottomColor'\n | 'borderXColor'\n | 'borderYColor'\n> & {\n backgroundColor?: ColorValue;\n borderColor?: ColorValue;\n borderStartColor?: ColorValue;\n borderEndColor?: ColorValue;\n borderTopColor?: ColorValue;\n borderBottomColor?: ColorValue;\n borderXColor?: ColorValue;\n borderYColor?: ColorValue;\n};\n\n/**\n * A View component that re-exports the Spectrum View component.\n * However, it overrides ColorValues to accept CSS color strings and\n * our custom variable names from our color palette and semantic colors.\n *\n * @param props The props for the View component\n * @returns The View component\n *\n */\nexport const View = forwardRef<DOMRefValue<HTMLElement>, ViewProps>(\n (props, forwardedRef): JSX.Element => {\n const {\n backgroundColor,\n borderColor,\n borderStartColor,\n borderEndColor,\n borderTopColor,\n borderBottomColor,\n borderXColor,\n borderYColor,\n UNSAFE_style,\n ...rest\n } = props;\n\n const { direction } = useLocale();\n const style = useMemo(() => {\n const borderStyle: CSSProperties = {};\n if (borderColor !== undefined) {\n borderStyle.borderColor = colorValueStyle(borderColor);\n }\n if (borderXColor !== undefined) {\n borderStyle.borderLeftColor = colorValueStyle(borderXColor);\n borderStyle.borderRightColor = colorValueStyle(borderXColor);\n }\n if (borderYColor !== undefined) {\n borderStyle.borderTopColor = colorValueStyle(borderYColor);\n borderStyle.borderBottomColor = colorValueStyle(borderYColor);\n }\n if (borderStartColor !== undefined) {\n borderStyle[\n direction === 'rtl' ? 'borderRightColor' : 'borderLeftColor'\n ] = colorValueStyle(borderStartColor);\n }\n if (borderEndColor !== undefined) {\n borderStyle[\n direction === 'rtl' ? 'borderLeftColor' : 'borderRightColor'\n ] = colorValueStyle(borderEndColor);\n }\n if (borderTopColor !== undefined) {\n borderStyle.borderTopColor = colorValueStyle(borderTopColor);\n }\n if (borderBottomColor !== undefined) {\n borderStyle.borderBottomColor = colorValueStyle(borderBottomColor);\n }\n\n return {\n ...UNSAFE_style,\n backgroundColor: colorValueStyle(backgroundColor),\n ...borderStyle,\n };\n }, [\n backgroundColor,\n UNSAFE_style,\n borderColor,\n borderStartColor,\n borderEndColor,\n borderTopColor,\n borderBottomColor,\n borderXColor,\n borderYColor,\n direction,\n ]);\n\n return <SpectrumView {...rest} ref={forwardedRef} UNSAFE_style={style} />;\n }\n);\n\nView.displayName = 'View';\n\nexport default View;\n"],"mappings":";;;;;;;;AAAA;AACA,
|
|
1
|
+
{"version":3,"file":"View.js","names":["forwardRef","useMemo","useLocale","View","SpectrumView","colorValueStyle","jsx","_jsx","props","forwardedRef","backgroundColor","borderColor","borderStartColor","borderEndColor","borderTopColor","borderBottomColor","borderXColor","borderYColor","UNSAFE_style","rest","_objectWithoutProperties","_excluded","direction","style","borderStyle","undefined","borderLeftColor","borderRightColor","_objectSpread","ref","displayName"],"sources":["../../src/spectrum/View.tsx"],"sourcesContent":["/* eslint-disable react/jsx-props-no-spreading */\nimport { type CSSProperties, forwardRef, useMemo } from 'react';\nimport {\n useLocale,\n View as SpectrumView,\n type ViewProps as SpectrumViewProps,\n} from '@adobe/react-spectrum';\nimport type { DOMRefValue } from '@react-types/shared';\nimport { type ColorValue, colorValueStyle } from '../theme/colorUtils';\n\nexport type ViewProps = Omit<\n SpectrumViewProps<6>,\n | 'backgroundColor'\n | 'borderColor'\n | 'borderStartColor'\n | 'borderEndColor'\n | 'borderTopColor'\n | 'borderBottomColor'\n | 'borderXColor'\n | 'borderYColor'\n> & {\n backgroundColor?: ColorValue;\n borderColor?: ColorValue;\n borderStartColor?: ColorValue;\n borderEndColor?: ColorValue;\n borderTopColor?: ColorValue;\n borderBottomColor?: ColorValue;\n borderXColor?: ColorValue;\n borderYColor?: ColorValue;\n};\n\n/**\n * A View component that re-exports the Spectrum View component.\n * However, it overrides ColorValues to accept CSS color strings and\n * our custom variable names from our color palette and semantic colors.\n *\n * @param props The props for the View component\n * @returns The View component\n *\n */\nexport const View = forwardRef<DOMRefValue<HTMLElement>, ViewProps>(\n (props, forwardedRef): JSX.Element => {\n const {\n backgroundColor,\n borderColor,\n borderStartColor,\n borderEndColor,\n borderTopColor,\n borderBottomColor,\n borderXColor,\n borderYColor,\n UNSAFE_style,\n ...rest\n } = props;\n\n const { direction } = useLocale();\n const style = useMemo(() => {\n const borderStyle: CSSProperties = {};\n if (borderColor !== undefined) {\n borderStyle.borderColor = colorValueStyle(borderColor);\n }\n if (borderXColor !== undefined) {\n borderStyle.borderLeftColor = colorValueStyle(borderXColor);\n borderStyle.borderRightColor = colorValueStyle(borderXColor);\n }\n if (borderYColor !== undefined) {\n borderStyle.borderTopColor = colorValueStyle(borderYColor);\n borderStyle.borderBottomColor = colorValueStyle(borderYColor);\n }\n if (borderStartColor !== undefined) {\n borderStyle[\n direction === 'rtl' ? 'borderRightColor' : 'borderLeftColor'\n ] = colorValueStyle(borderStartColor);\n }\n if (borderEndColor !== undefined) {\n borderStyle[\n direction === 'rtl' ? 'borderLeftColor' : 'borderRightColor'\n ] = colorValueStyle(borderEndColor);\n }\n if (borderTopColor !== undefined) {\n borderStyle.borderTopColor = colorValueStyle(borderTopColor);\n }\n if (borderBottomColor !== undefined) {\n borderStyle.borderBottomColor = colorValueStyle(borderBottomColor);\n }\n\n return {\n ...UNSAFE_style,\n backgroundColor: colorValueStyle(backgroundColor),\n ...borderStyle,\n };\n }, [\n backgroundColor,\n UNSAFE_style,\n borderColor,\n borderStartColor,\n borderEndColor,\n borderTopColor,\n borderBottomColor,\n borderXColor,\n borderYColor,\n direction,\n ]);\n\n return <SpectrumView {...rest} ref={forwardedRef} UNSAFE_style={style} />;\n }\n);\n\nView.displayName = 'View';\n\nexport default View;\n"],"mappings":";;;;;;;;AAAA;AACA,SAA6BA,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAC/D,SACEC,SAAS,EACTC,IAAI,IAAIC,YAAY,QAEf,uBAAuB;AAAC,SAELC,eAAe;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAuBzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAMJ,IAAI,gBAAGH,UAAU,CAC5B,CAACQ,KAAK,EAAEC,YAAY,KAAkB;EACpC,IAAM;MACJC,eAAe;MACfC,WAAW;MACXC,gBAAgB;MAChBC,cAAc;MACdC,cAAc;MACdC,iBAAiB;MACjBC,YAAY;MACZC,YAAY;MACZC;IAEF,CAAC,GAAGV,KAAK;IADJW,IAAI,GAAAC,wBAAA,CACLZ,KAAK,EAAAa,SAAA;EAET,IAAM;IAAEC;EAAU,CAAC,GAAGpB,SAAS,CAAC,CAAC;EACjC,IAAMqB,KAAK,GAAGtB,OAAO,CAAC,MAAM;IAC1B,IAAMuB,WAA0B,GAAG,CAAC,CAAC;IACrC,IAAIb,WAAW,KAAKc,SAAS,EAAE;MAC7BD,WAAW,CAACb,WAAW,GAAGN,eAAe,CAACM,WAAW,CAAC;IACxD;IACA,IAAIK,YAAY,KAAKS,SAAS,EAAE;MAC9BD,WAAW,CAACE,eAAe,GAAGrB,eAAe,CAACW,YAAY,CAAC;MAC3DQ,WAAW,CAACG,gBAAgB,GAAGtB,eAAe,CAACW,YAAY,CAAC;IAC9D;IACA,IAAIC,YAAY,KAAKQ,SAAS,EAAE;MAC9BD,WAAW,CAACV,cAAc,GAAGT,eAAe,CAACY,YAAY,CAAC;MAC1DO,WAAW,CAACT,iBAAiB,GAAGV,eAAe,CAACY,YAAY,CAAC;IAC/D;IACA,IAAIL,gBAAgB,KAAKa,SAAS,EAAE;MAClCD,WAAW,CACTF,SAAS,KAAK,KAAK,GAAG,kBAAkB,GAAG,iBAAiB,CAC7D,GAAGjB,eAAe,CAACO,gBAAgB,CAAC;IACvC;IACA,IAAIC,cAAc,KAAKY,SAAS,EAAE;MAChCD,WAAW,CACTF,SAAS,KAAK,KAAK,GAAG,iBAAiB,GAAG,kBAAkB,CAC7D,GAAGjB,eAAe,CAACQ,cAAc,CAAC;IACrC;IACA,IAAIC,cAAc,KAAKW,SAAS,EAAE;MAChCD,WAAW,CAACV,cAAc,GAAGT,eAAe,CAACS,cAAc,CAAC;IAC9D;IACA,IAAIC,iBAAiB,KAAKU,SAAS,EAAE;MACnCD,WAAW,CAACT,iBAAiB,GAAGV,eAAe,CAACU,iBAAiB,CAAC;IACpE;IAEA,OAAAa,aAAA,CAAAA,aAAA,KACKV,YAAY;MACfR,eAAe,EAAEL,eAAe,CAACK,eAAe;IAAC,GAC9Cc,WAAW;EAElB,CAAC,EAAE,CACDd,eAAe,EACfQ,YAAY,EACZP,WAAW,EACXC,gBAAgB,EAChBC,cAAc,EACdC,cAAc,EACdC,iBAAiB,EACjBC,YAAY,EACZC,YAAY,EACZK,SAAS,CACV,CAAC;EAEF,oBAAOf,IAAA,CAACH,YAAY,EAAAwB,aAAA,CAAAA,aAAA,KAAKT,IAAI;IAAEU,GAAG,EAAEpB,YAAa;IAACS,YAAY,EAAEK;EAAM,EAAE,CAAC;AAC3E,CACF,CAAC;AAEDpB,IAAI,CAAC2B,WAAW,GAAG,MAAM;AAEzB,eAAe3B,IAAI"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ComboBox as SpectrumComboBox, SpectrumComboBoxProps } from '@adobe/react-spectrum';
|
|
2
|
+
import { ComboBox as SpectrumComboBox, type SpectrumComboBoxProps } from '@adobe/react-spectrum';
|
|
3
3
|
import type { NormalizedItem } from '../utils';
|
|
4
|
-
import { PickerPropsT } from '../picker';
|
|
4
|
+
import { type PickerPropsT } from '../picker';
|
|
5
5
|
export type ComboBoxProps = PickerPropsT<SpectrumComboBoxProps<NormalizedItem>>;
|
|
6
6
|
export { SpectrumComboBox };
|
|
7
7
|
export declare const ComboBox: React.ForwardRefExoticComponent<Omit<SpectrumComboBoxProps<NormalizedItem>, "children" | "items" | "selectedKey" | "defaultSelectedKey" | "disabledKeys" | "onSelectionChange" | "defaultItems"> & {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../src/spectrum/comboBox/ComboBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,qBAAqB,
|
|
1
|
+
{"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../../src/spectrum/comboBox/ComboBox.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAC;AAI/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,KAAK,YAAY,EAAkB,MAAM,WAAW,CAAC;AAE9D,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC,CAAC;AAEhF,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B,eAAO,MAAM,QAAQ;;;;;;;;;;mFAgCnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.js","names":["React","ComboBox","SpectrumComboBox","cl","useMergeRef","usePickerProps","jsx","_jsx","forwardRef","_ref","ref","UNSAFE_className","props","_objectWithoutProperties","_excluded","_usePickerProps","defaultSelectedKey","disabledKeys","selectedKey","scrollRef","comboBoxProps","_excluded2","pickerRef","_objectSpread","displayName"],"sources":["../../../src/spectrum/comboBox/ComboBox.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ComboBox as SpectrumComboBox,\n SpectrumComboBoxProps,\n} from '@adobe/react-spectrum';\nimport type { DOMRef } from '@react-types/shared';\nimport cl from 'classnames';\nimport { useMergeRef } from '@deephaven/react-hooks';\nimport type { NormalizedItem } from '../utils';\nimport { PickerPropsT, usePickerProps } from '../picker';\n\nexport type ComboBoxProps = PickerPropsT<SpectrumComboBoxProps<NormalizedItem>>;\n\nexport { SpectrumComboBox };\n\nexport const ComboBox = React.forwardRef(function ComboBox(\n { UNSAFE_className, ...props }: ComboBoxProps,\n ref: DOMRef<HTMLDivElement>\n): JSX.Element {\n const {\n defaultSelectedKey,\n disabledKeys,\n selectedKey,\n ref: scrollRef,\n ...comboBoxProps\n } = usePickerProps(props);\n const pickerRef = useMergeRef(ref, scrollRef);\n return (\n <SpectrumComboBox\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...comboBoxProps}\n UNSAFE_className={cl('dh-combobox', UNSAFE_className)}\n ref={pickerRef}\n // Type assertions are necessary here since Spectrum types don't account\n // for number and boolean key values even though they are valid runtime\n // values.\n defaultSelectedKey={\n defaultSelectedKey as SpectrumComboBoxProps<NormalizedItem>['defaultSelectedKey']\n }\n disabledKeys={\n disabledKeys as SpectrumComboBoxProps<NormalizedItem>['disabledKeys']\n }\n selectedKey={\n selectedKey as SpectrumComboBoxProps<NormalizedItem>['selectedKey']\n }\n />\n );\n});\nComboBox.displayName = 'ComboBox';\n"],"mappings":";;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,QAAQ,IAAIC,gBAAgB,QAEvB,uBAAuB;AAE9B,OAAOC,EAAE,MAAM,YAAY;AAC3B,SAASC,WAAW,QAAQ,wBAAwB;AAAC,
|
|
1
|
+
{"version":3,"file":"ComboBox.js","names":["React","ComboBox","SpectrumComboBox","cl","useMergeRef","usePickerProps","jsx","_jsx","forwardRef","_ref","ref","UNSAFE_className","props","_objectWithoutProperties","_excluded","_usePickerProps","defaultSelectedKey","disabledKeys","selectedKey","scrollRef","comboBoxProps","_excluded2","pickerRef","_objectSpread","displayName"],"sources":["../../../src/spectrum/comboBox/ComboBox.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ComboBox as SpectrumComboBox,\n type SpectrumComboBoxProps,\n} from '@adobe/react-spectrum';\nimport type { DOMRef } from '@react-types/shared';\nimport cl from 'classnames';\nimport { useMergeRef } from '@deephaven/react-hooks';\nimport type { NormalizedItem } from '../utils';\nimport { type PickerPropsT, usePickerProps } from '../picker';\n\nexport type ComboBoxProps = PickerPropsT<SpectrumComboBoxProps<NormalizedItem>>;\n\nexport { SpectrumComboBox };\n\nexport const ComboBox = React.forwardRef(function ComboBox(\n { UNSAFE_className, ...props }: ComboBoxProps,\n ref: DOMRef<HTMLDivElement>\n): JSX.Element {\n const {\n defaultSelectedKey,\n disabledKeys,\n selectedKey,\n ref: scrollRef,\n ...comboBoxProps\n } = usePickerProps(props);\n const pickerRef = useMergeRef(ref, scrollRef);\n return (\n <SpectrumComboBox\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...comboBoxProps}\n UNSAFE_className={cl('dh-combobox', UNSAFE_className)}\n ref={pickerRef}\n // Type assertions are necessary here since Spectrum types don't account\n // for number and boolean key values even though they are valid runtime\n // values.\n defaultSelectedKey={\n defaultSelectedKey as SpectrumComboBoxProps<NormalizedItem>['defaultSelectedKey']\n }\n disabledKeys={\n disabledKeys as SpectrumComboBoxProps<NormalizedItem>['disabledKeys']\n }\n selectedKey={\n selectedKey as SpectrumComboBoxProps<NormalizedItem>['selectedKey']\n }\n />\n );\n});\nComboBox.displayName = 'ComboBox';\n"],"mappings":";;;;;;;;;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,QAAQ,IAAIC,gBAAgB,QAEvB,uBAAuB;AAE9B,OAAOC,EAAE,MAAM,YAAY;AAC3B,SAASC,WAAW,QAAQ,wBAAwB;AAAC,SAEzBC,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAI1C,SAASL,gBAAgB;AAEzB,OAAO,IAAMD,QAAQ,gBAAGD,KAAK,CAACQ,UAAU,CAAC,SAASP,QAAQA,CAAAQ,IAAA,EAExDC,GAA2B,EACd;EAAA,IAFb;MAAEC;IAA0C,CAAC,GAAAF,IAAA;IAAtBG,KAAK,GAAAC,wBAAA,CAAAJ,IAAA,EAAAK,SAAA;EAG5B,IAAAC,eAAA,GAMIV,cAAc,CAACO,KAAK,CAAC;IANnB;MACJI,kBAAkB;MAClBC,YAAY;MACZC,WAAW;MACXR,GAAG,EAAES;IAEP,CAAC,GAAAJ,eAAA;IADIK,aAAa,GAAAP,wBAAA,CAAAE,eAAA,EAAAM,UAAA;EAElB,IAAMC,SAAS,GAAGlB,WAAW,CAACM,GAAG,EAAES,SAAS,CAAC;EAC7C,oBACEZ,IAAA,CAACL;EACC;EAAA,EAAAqB,aAAA,CAAAA,aAAA,KACIH,aAAa;IACjBT,gBAAgB,EAAER,EAAE,CAAC,aAAa,EAAEQ,gBAAgB,CAAE;IACtDD,GAAG,EAAEY;IACL;IACA;IACA;IAAA;IACAN,kBAAkB,EAChBA,kBACD;IACDC,YAAY,EACVA,YACD;IACDC,WAAW,EACTA;EACD,EACF,CAAC;AAEN,CAAC,CAAC;AACFjB,QAAQ,CAACuB,WAAW,GAAG,UAAU"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { PickerNormalizedPropsT } from '../picker';
|
|
2
|
-
import { ComboBoxProps } from './ComboBox';
|
|
1
|
+
import { type PickerNormalizedPropsT } from '../picker';
|
|
2
|
+
import { type ComboBoxProps } from './ComboBox';
|
|
3
3
|
export type ComboBoxNormalizedProps = PickerNormalizedPropsT<ComboBoxProps>;
|
|
4
4
|
/**
|
|
5
5
|
* ComboBox that takes an array of `NormalizedItem` or `NormalizedSection` items
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBoxNormalized.d.ts","sourceRoot":"","sources":["../../../src/spectrum/comboBox/ComboBoxNormalized.tsx"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"ComboBoxNormalized.d.ts","sourceRoot":"","sources":["../../../src/spectrum/comboBox/ComboBoxNormalized.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,sBAAsB,EAE5B,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,MAAM,uBAAuB,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;AAE5E;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,gBAAgB,EAChB,GAAG,KAAK,EACT,EAAE,uBAAuB,GAAG,GAAG,CAAC,OAAO,CAiBvC;AAED,eAAe,kBAAkB,CAAC"}
|