@deephaven/components 1.2.1-plotly-rc.3 → 1.3.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/css/BaseStyleSheet.css.map +1 -1
- package/dist/AutoCompleteInput.css.map +1 -1
- package/dist/AutoCompleteInput.js.map +1 -1
- package/dist/AutoResizeTextarea.css.map +1 -1
- package/dist/AutoResizeTextarea.js.map +1 -1
- package/dist/BasicModal.js.map +1 -1
- package/dist/BulkActionBar.js.map +1 -1
- package/dist/Button.js.map +1 -1
- package/dist/CardFlip.css.map +1 -1
- package/dist/CardFlip.js.map +1 -1
- package/dist/Checkbox.js.map +1 -1
- package/dist/Collapse.js.map +1 -1
- package/dist/ComboBox.css.map +1 -1
- package/dist/ComponentUtils.js.map +1 -1
- package/dist/CopyButton.js.map +1 -1
- package/dist/CustomTimeSelect.css.map +1 -1
- package/dist/CustomTimeSelect.js.map +1 -1
- package/dist/DateInput.js.map +1 -1
- package/dist/DateInputUtils.js.map +1 -1
- package/dist/DateTimeInput.js.map +1 -1
- package/dist/DateTimeInputUtils.js.map +1 -1
- package/dist/DebouncedSearchInput.js.map +1 -1
- package/dist/DragUtils.js.map +1 -1
- package/dist/DraggableItemList.css.map +1 -1
- package/dist/DraggableItemList.js.map +1 -1
- package/dist/EditableItemList.js.map +1 -1
- package/dist/ErrorBoundary.js.map +1 -1
- package/dist/ErrorView.css.map +1 -1
- package/dist/ErrorView.js.map +1 -1
- package/dist/HierarchicalCheckboxMenu.css.map +1 -1
- package/dist/HierarchicalCheckboxMenu.js.map +1 -1
- package/dist/ItemList.css.map +1 -1
- package/dist/ItemList.js.map +1 -1
- package/dist/ItemListItem.css.map +1 -1
- package/dist/ItemListItem.js.map +1 -1
- package/dist/LoadingOverlay.css.map +1 -1
- package/dist/LoadingOverlay.js.map +1 -1
- package/dist/LoadingSpinner.js.map +1 -1
- package/dist/MaskedInput.css.map +1 -1
- package/dist/MaskedInput.js.map +1 -1
- package/dist/MaskedInputUtils.js.map +1 -1
- package/dist/Option.js.map +1 -1
- package/dist/RadioGroup.js.map +1 -1
- package/dist/RadioItem.js.map +1 -1
- package/dist/RandomAreaPlotAnimation.css.map +1 -1
- package/dist/RandomAreaPlotAnimation.js.map +1 -1
- package/dist/SearchInput.css.map +1 -1
- package/dist/SearchInput.js.map +1 -1
- package/dist/SearchableCombobox.js.map +1 -1
- package/dist/Select.js.map +1 -1
- package/dist/SelectValueList.css.map +1 -1
- package/dist/SelectValueList.js.map +1 -1
- package/dist/SocketedButton.css.map +1 -1
- package/dist/SocketedButton.js.map +1 -1
- package/dist/SplitButtonGroup.js.map +1 -1
- package/dist/TableViewEmptyState.js.map +1 -1
- package/dist/TextWithTooltip.js.map +1 -1
- package/dist/ThemeExport.js.map +1 -1
- package/dist/ThemeExport.module.css.map +1 -1
- package/dist/TimeInput.js.map +1 -1
- package/dist/TimeSlider.css.map +1 -1
- package/dist/TimeSlider.js.map +1 -1
- package/dist/TimeSlider.module.css.map +1 -1
- package/dist/ToastNotification.css.map +1 -1
- package/dist/ToastNotification.js.map +1 -1
- package/dist/UIConstants.js.map +1 -1
- package/dist/UISwitch.css.map +1 -1
- package/dist/UISwitch.js.map +1 -1
- package/dist/XComponent.js.map +1 -1
- package/dist/XComponentMap.js.map +1 -1
- package/dist/actions/ConfirmActionButton.js.map +1 -1
- package/dist/actions/IconActionButton.js.map +1 -1
- package/dist/actions/index.js.map +1 -1
- package/dist/context-actions/ContextActionUtils.js.map +1 -1
- package/dist/context-actions/ContextActions.css +2 -2
- package/dist/context-actions/ContextActions.css.map +1 -1
- package/dist/context-actions/ContextActions.js.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.js.map +1 -1
- package/dist/context-actions/GlobalContextAction.js.map +1 -1
- package/dist/context-actions/GlobalContextActions.js.map +1 -1
- package/dist/context-actions/index.js.map +1 -1
- package/dist/declaration.d.js.map +1 -1
- package/dist/dialogs/ActionButtonDialogTrigger.js.map +1 -1
- package/dist/dialogs/ConfirmationDialog.js.map +1 -1
- package/dist/dialogs/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/menu-actions/DropdownMenu.css.map +1 -1
- package/dist/menu-actions/DropdownMenu.js.map +1 -1
- package/dist/menu-actions/Menu.js.map +1 -1
- package/dist/menu-actions/index.js.map +1 -1
- package/dist/modal/DebouncedModal.js.map +1 -1
- package/dist/modal/InfoModal.css.map +1 -1
- package/dist/modal/InfoModal.js.map +1 -1
- package/dist/modal/Modal.js.map +1 -1
- package/dist/modal/ModalBody.js.map +1 -1
- package/dist/modal/ModalFooter.js.map +1 -1
- package/dist/modal/ModalHeader.js.map +1 -1
- package/dist/modal/index.js.map +1 -1
- package/dist/navigation/Menu.css.map +1 -1
- package/dist/navigation/Menu.js.map +1 -1
- package/dist/navigation/MenuItem.css.map +1 -1
- package/dist/navigation/MenuItem.js.map +1 -1
- package/dist/navigation/NavTab.js.map +1 -1
- package/dist/navigation/NavTabList.css.map +1 -1
- package/dist/navigation/NavTabList.js.map +1 -1
- package/dist/navigation/Page.css.map +1 -1
- package/dist/navigation/Page.js.map +1 -1
- package/dist/navigation/Stack.css.map +1 -1
- package/dist/navigation/Stack.js.map +1 -1
- package/dist/navigation/index.js.map +1 -1
- package/dist/popper/Popper.css.map +1 -1
- package/dist/popper/Popper.js.map +1 -1
- package/dist/popper/Tooltip.js.map +1 -1
- package/dist/popper/index.js.map +1 -1
- package/dist/shortcuts/GlobalShortcuts.js.map +1 -1
- package/dist/shortcuts/NavigationShortcuts.js.map +1 -1
- package/dist/shortcuts/Shortcut.js.map +1 -1
- package/dist/shortcuts/ShortcutRegistry.js.map +1 -1
- package/dist/shortcuts/index.js.map +1 -1
- package/dist/spectrum/ActionGroup.js.map +1 -1
- package/dist/spectrum/ActionMenu.js.map +1 -1
- package/dist/spectrum/CheckboxGroup.js.map +1 -1
- package/dist/spectrum/Heading.js.map +1 -1
- package/dist/spectrum/ItemContent.js.map +1 -1
- package/dist/spectrum/ItemTooltip.js.map +1 -1
- package/dist/spectrum/ListActionGroup.js.map +1 -1
- package/dist/spectrum/ListActionMenu.js.map +1 -1
- package/dist/spectrum/TabPanels.js.map +1 -1
- package/dist/spectrum/Text.js.map +1 -1
- package/dist/spectrum/View.js.map +1 -1
- package/dist/spectrum/buttons.js.map +1 -1
- package/dist/spectrum/collections.js.map +1 -1
- package/dist/spectrum/comboBox/ComboBox.js.map +1 -1
- package/dist/spectrum/comboBox/ComboBoxNormalized.js.map +1 -1
- package/dist/spectrum/comboBox/index.js.map +1 -1
- package/dist/spectrum/content.js.map +1 -1
- package/dist/spectrum/dateAndTime.js.map +1 -1
- package/dist/spectrum/forms.js.map +1 -1
- package/dist/spectrum/icons.js.map +1 -1
- package/dist/spectrum/index.js.map +1 -1
- package/dist/spectrum/layout.js.map +1 -1
- package/dist/spectrum/listView/ListView.js.map +1 -1
- package/dist/spectrum/listView/ListViewNormalized.js.map +1 -1
- package/dist/spectrum/listView/ListViewWrapper.js.map +1 -1
- package/dist/spectrum/listView/index.js.map +1 -1
- package/dist/spectrum/navigation.js.map +1 -1
- package/dist/spectrum/overlays.js.map +1 -1
- package/dist/spectrum/picker/Picker.js.map +1 -1
- package/dist/spectrum/picker/PickerNormalized.js.map +1 -1
- package/dist/spectrum/picker/PickerProps.js.map +1 -1
- package/dist/spectrum/picker/index.js.map +1 -1
- package/dist/spectrum/picker/usePickerItemScale.js.map +1 -1
- package/dist/spectrum/picker/usePickerNormalizedProps.js.map +1 -1
- package/dist/spectrum/picker/usePickerProps.js.map +1 -1
- package/dist/spectrum/picker/usePickerScrollOnOpen.js.map +1 -1
- package/dist/spectrum/shared.js.map +1 -1
- package/dist/spectrum/status.js.map +1 -1
- package/dist/spectrum/utils/index.js.map +1 -1
- package/dist/spectrum/utils/itemUtils.js.map +1 -1
- package/dist/spectrum/utils/itemWrapperUtils.js.map +1 -1
- package/dist/spectrum/utils/propsUtils.js.map +1 -1
- package/dist/spectrum/utils/themeUtils.js.map +1 -1
- package/dist/spectrum/utils/useOnChangeTrackUncontrolled.js.map +1 -1
- package/dist/spectrum/utils/useRenderNormalizedItem.js.map +1 -1
- package/dist/spectrum/utils/useStaticItemInitialScrollPosition.js.map +1 -1
- package/dist/spectrum/utils/useStringifiedMultiSelection.js.map +1 -1
- package/dist/spectrum/utils/useStringifiedSelection.js.map +1 -1
- package/dist/theme/Logo.js.map +1 -1
- package/dist/theme/SpectrumThemeProvider.js.map +1 -1
- package/dist/theme/ThemeModel.js.map +1 -1
- package/dist/theme/ThemePicker.js.map +1 -1
- package/dist/theme/ThemeProvider.js.map +1 -1
- package/dist/theme/ThemeUtils.js.map +1 -1
- package/dist/theme/colorUtils.js.map +1 -1
- package/dist/theme/index.js.map +1 -1
- package/dist/theme/theme-dark/index.js.map +1 -1
- package/dist/theme/theme-light/index.js.map +1 -1
- package/dist/theme/theme-light/theme-light-semantic.css +1 -1
- package/dist/theme/theme-light/theme-light-semantic.css.map +1 -1
- package/dist/theme/theme-spectrum/index.js.map +1 -1
- package/dist/theme/useExternalTheme.js.map +1 -1
- package/dist/theme/useSpectrumThemeProvider.js.map +1 -1
- package/dist/theme/useTheme.js.map +1 -1
- package/dist/transitions/FadeTransition.js.map +1 -1
- package/dist/transitions/SlideTransition.js.map +1 -1
- package/dist/transitions/index.js.map +1 -1
- package/package.json +8 -8
- package/scss/bootstrap_overrides.scss +1 -1
package/dist/ItemList.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemList.js","names":["React","PureComponent","memoize","FixedSizeList","List","AutoSizer","Log","RangeUtils","ItemListItem","ContextActionUtils","jsx","_jsx","log","module","MIN_DRAG_DELTA","ItemList","renderItem","_ref","_ref2","_item$displayValue","item","className","children","displayValue","value","concat","constructor","props","_defineProperty","index","selectedRanges","isSelected","max","CACHE_SIZE","itemIndex","key","isFocused","style","disableSelect","content","onContextMenu","handleItemContextMenu","onDoubleClick","handleItemDoubleClick","onMouseDown","handleItemMouseDown","onFocus","handleItemFocus","onBlur","handleItemBlur","onMouseMove","handleItemMouseMove","onMouseUp","handleItemMouseUp","onKeyDown","component","forwardRef","ref","_objectSpread","tabIndex","role","displayName","items","bind","handleItemsRendered","handleWindowMouseUp","handleKeyDown","handleMouseLeave","handleScroll","handleResize","renderInnerElement","list","createRef","listContainer","isStickyBottom","state","focusIndex","mouseDownIndex","overscanStartIndex","height","isDragging","isStuckToBottom","scrollOffset","mouseX","mouseY","componentDidUpdate","prevProps","prevState","propSelectedRanges","itemCount","isListAtBottom","scrollToBottom","sendViewportUpdate","setSelectedRanges","onSelectionChange","onFocusChange","componentWillUnmount","window","removeEventListener","focus","_this$listContainer$c","current","restoreScrollPosition","_this$listContainer$c2","scrollTo","getElement","focusSelector","elements","querySelectorAll","elementIndex","focusItem","setState","element","HTMLElement","scrollToItem","scrollIntoView","block","e","isModifierDown","isModifierKeyDown","toggleSelect","shiftKey","isDoubleClickSelect","onSelect","_ref3","selectRange","target","indexOf","tagName","toLowerCase","button","length","selectItem","clientX","clientY","addEventListener","debug2","currentTarget","relatedTarget","contains","isDragSelect","isMultiSelect","mouseMoveX","Math","abs","mouseMoveY","getItemSelected","deselectAll","min","isDeselectOnClick","isShiftDown","resetMouseState","_ref4","_ref5","oldFocus","newFocus","stopPropagation","preventDefault","lastRange","_this$listContainer$c3","_ref6","scrollUpdateWasRequested","isDeselectable","arguments","undefined","deselectItem","deselectRange","range","validateRange","_ref7","_ref8","onViewportChange","rowHeight","topRow","floor","bottomRow","ceil","_ref9","offset","getCachedItem","render","overscanCount","dataTestId","onResize","_ref10","width","initialScrollOffset","itemSize","itemData","getItemData","onScroll","onItemsRendered","outerElementType","getOuterElement","outerRef","innerElementType","getInnerElement","DEFAULT_ROW_HEIGHT","DEFAULT_OVERSCAN"],"sources":["../src/ItemList.tsx"],"sourcesContent":["/* eslint-disable react/no-unstable-nested-components */\nimport React, { PureComponent } from 'react';\nimport memoize from 'memoizee';\nimport {\n FixedSizeList as List,\n type ListOnItemsRenderedProps,\n type ListOnScrollProps,\n} from 'react-window';\nimport AutoSizer, { type Size } from 'react-virtualized-auto-sizer';\nimport Log from '@deephaven/log';\nimport { RangeUtils, type Range } from '@deephaven/utils';\nimport ItemListItem from './ItemListItem';\nimport { ContextActionUtils } from './context-actions';\nimport './ItemList.scss';\n\nconst log = Log.module('ItemList');\nconst MIN_DRAG_DELTA = 5;\n\nexport interface DefaultListItem {\n value?: string;\n displayValue?: string;\n}\n\nexport type RenderItemProps<T> = {\n item: T;\n itemIndex: number;\n isFocused: boolean;\n isSelected: boolean;\n style: React.CSSProperties;\n};\n\nexport type RenderItemFn<T> = (props: RenderItemProps<T>) => React.ReactNode;\n\nexport type ItemDragEventHandler = (\n index: number,\n event: React.DragEvent<HTMLDivElement>\n) => void;\n\nexport type ItemListProps<T> = {\n // Total item count\n itemCount: number;\n rowHeight: number;\n // Offset of the top item in the items array\n offset: number;\n // Item object format expected by the default renderItem function\n // Can be anything as long as it's supported by the renderItem\n // Default renderItem will look for a `displayValue` property, fallback\n // to the `value` property, or stringify the object if neither are defined\n items: readonly T[];\n // Whether clicking a selected item should deselect in the item list or not. Defaults to true\n isDeselectOnClick: boolean;\n // Whether selection requires a double click or not\n isDoubleClickSelect: boolean;\n // Whether to allow dragging to change the selection after clicking\n isDragSelect: boolean;\n // Whether to allow multiple selections in this item list\n isMultiSelect: boolean;\n // Set to true if you want the list to scroll when new items are added and it's already at the bottom\n isStickyBottom: boolean;\n // Fired when an item gets focused\n onFocusChange: (index: number | null) => void;\n\n // Fired when an item is clicked. With multiple selection, fired on double click.\n onSelect: (index: number, event: React.SyntheticEvent) => void;\n onSelectionChange: (ranges: readonly Range[]) => void;\n onViewportChange: (topRow: number, bottomRow: number) => void;\n overscanCount: number;\n selectedRanges: readonly Range[];\n disableSelect: boolean;\n renderItem: RenderItemFn<T>;\n focusSelector: string;\n 'data-testid'?: string;\n};\n\ntype ItemListState = {\n focusIndex: number | null;\n mouseDownIndex: number | null;\n selectedRanges: readonly Range[];\n overscanStartIndex: number;\n height: number | null;\n isDragging: boolean;\n isStuckToBottom: boolean;\n scrollOffset: number | null;\n mouseX: number | null;\n mouseY: number | null;\n};\n\n/**\n * Show items in a long scrollable list.\n * Can be navigated via keyboard or mouse.\n */\nexport class ItemList<T> extends PureComponent<\n ItemListProps<T>,\n ItemListState\n> {\n static CACHE_SIZE = 1000;\n\n static DEFAULT_ROW_HEIGHT = 20;\n\n // By drawing an additional 10 items on each side, tab/keyboard navigation works better (as the next element exists)\n static DEFAULT_OVERSCAN = 10;\n\n static defaultProps = {\n offset: 0,\n items: [],\n rowHeight: ItemList.DEFAULT_ROW_HEIGHT,\n\n isDeselectOnClick: true,\n\n isDoubleClickSelect: false,\n\n isDragSelect: true,\n\n isMultiSelect: false,\n\n isStickyBottom: false,\n\n disableSelect: false,\n\n onFocusChange(): void {\n // no-op\n },\n onSelect(): void {\n // no-op\n },\n onSelectionChange(): void {\n // no-op\n },\n onViewportChange(): void {\n // no-op\n },\n\n overscanCount: ItemList.DEFAULT_OVERSCAN,\n\n renderItem: ItemList.renderItem,\n selectedRanges: [],\n\n focusSelector: '.item-list-item',\n\n 'data-testid': undefined,\n };\n\n static renderItem<P extends DefaultListItem>({\n item,\n }: RenderItemProps<P>): JSX.Element {\n return (\n <div className=\"item-list-item-content\">\n {item != null && (item.displayValue ?? item.value ?? `${item}`)}\n </div>\n );\n }\n\n constructor(props: ItemListProps<T>) {\n super(props);\n\n this.handleItemBlur = this.handleItemBlur.bind(this);\n this.handleItemContextMenu = this.handleItemContextMenu.bind(this);\n this.handleItemFocus = this.handleItemFocus.bind(this);\n this.handleItemDoubleClick = this.handleItemDoubleClick.bind(this);\n this.handleItemMouseDown = this.handleItemMouseDown.bind(this);\n this.handleItemMouseMove = this.handleItemMouseMove.bind(this);\n this.handleItemMouseUp = this.handleItemMouseUp.bind(this);\n this.handleItemsRendered = this.handleItemsRendered.bind(this);\n this.handleWindowMouseUp = this.handleWindowMouseUp.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.renderInnerElement = this.renderInnerElement.bind(this);\n\n this.list = React.createRef();\n this.listContainer = React.createRef();\n\n const { isStickyBottom, selectedRanges } = props;\n\n this.state = {\n focusIndex: null,\n mouseDownIndex: null,\n selectedRanges,\n overscanStartIndex: 0,\n height: null,\n isDragging: false,\n isStuckToBottom: isStickyBottom,\n scrollOffset: null,\n mouseX: null,\n mouseY: null,\n };\n }\n\n componentDidUpdate(\n prevProps: ItemListProps<T>,\n prevState: ItemListState\n ): void {\n const { selectedRanges: propSelectedRanges, itemCount } = this.props;\n const {\n focusIndex,\n isStuckToBottom,\n scrollOffset,\n height,\n selectedRanges,\n } = this.state;\n if (isStuckToBottom && !this.isListAtBottom() && itemCount > 0) {\n this.scrollToBottom();\n }\n\n if (\n scrollOffset !== prevState.scrollOffset ||\n height !== prevState.height\n ) {\n this.sendViewportUpdate();\n }\n\n if (\n propSelectedRanges !== prevProps.selectedRanges &&\n propSelectedRanges !== selectedRanges\n ) {\n this.setSelectedRanges(propSelectedRanges);\n } else if (selectedRanges !== prevState.selectedRanges) {\n const { onSelectionChange } = this.props;\n onSelectionChange(selectedRanges);\n }\n\n if (focusIndex !== prevState.focusIndex) {\n const { onFocusChange } = this.props;\n onFocusChange(focusIndex);\n }\n }\n\n componentWillUnmount(): void {\n window.removeEventListener('mouseup', this.handleWindowMouseUp);\n }\n\n list: React.RefObject<List>;\n\n listContainer: React.RefObject<HTMLDivElement>;\n\n getItemSelected = memoize(\n (index: number, selectedRanges: readonly Range[]) =>\n RangeUtils.isSelected(selectedRanges, index),\n { max: ItemList.CACHE_SIZE }\n );\n\n getCachedItem = memoize(\n (\n itemIndex: number,\n key: number,\n item: T,\n isFocused: boolean,\n isSelected: boolean,\n renderItem: RenderItemFn<T>,\n style: React.CSSProperties,\n disableSelect: boolean\n ) => {\n const content = renderItem({\n item,\n itemIndex,\n isFocused,\n isSelected,\n style,\n });\n\n return (\n <ItemListItem\n onContextMenu={this.handleItemContextMenu}\n onDoubleClick={this.handleItemDoubleClick}\n onMouseDown={this.handleItemMouseDown}\n onFocus={this.handleItemFocus}\n onBlur={this.handleItemBlur}\n disableSelect={disableSelect}\n onMouseMove={this.handleItemMouseMove}\n onMouseUp={this.handleItemMouseUp}\n isFocused={isFocused}\n isSelected={isSelected}\n itemIndex={itemIndex}\n style={style}\n key={key}\n >\n {content}\n </ItemListItem>\n );\n },\n { max: ItemList.CACHE_SIZE }\n );\n\n getOuterElement = memoize(\n (onKeyDown: React.KeyboardEventHandler) => {\n const component = React.forwardRef<HTMLDivElement>((props, ref) => (\n // We need to add the tabIndex to make sure it is focusable, otherwise we can't get key events\n <div\n ref={ref}\n tabIndex={-1}\n onKeyDown={onKeyDown}\n role=\"presentation\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n ));\n component.displayName = 'ItemListOuterElement';\n return component;\n },\n { max: 1000 }\n );\n\n getInnerElement = memoize(\n () => {\n const component = React.forwardRef<HTMLDivElement>((props, ref) => (\n <div\n className=\"item-list-inner-element\"\n ref={ref}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n ));\n component.displayName = 'ItemListInnerElement';\n return component;\n },\n { max: 1000 }\n );\n\n getItemData = memoize(\n (\n items: readonly T[],\n selectedRanges: readonly Range[],\n renderItem: RenderItemFn<T>\n ) => ({\n items,\n selectedRanges,\n renderItem,\n }),\n { max: 1000 }\n );\n\n focus(): void {\n this.listContainer.current?.focus();\n }\n\n restoreScrollPosition(): void {\n const { scrollOffset } = this.state;\n if (scrollOffset != null) {\n // manually restore the scroll containers offset\n // virtual list doesn't restore scrolloffset in a re-render if it's the same\n this.listContainer.current?.scrollTo(0, scrollOffset);\n }\n }\n\n getElement(itemIndex: number): Element | null {\n if (this.listContainer.current == null) {\n return null;\n }\n\n const { focusSelector } = this.props;\n const { overscanStartIndex } = this.state;\n const elements = this.listContainer.current.querySelectorAll(focusSelector);\n const elementIndex = itemIndex - overscanStartIndex;\n return elements[elementIndex];\n }\n\n focusItem(itemIndex: number): void {\n const { disableSelect } = this.props;\n if (disableSelect) return;\n\n this.setState({ focusIndex: itemIndex });\n\n const element = this.getElement(itemIndex);\n if (element instanceof HTMLElement) {\n element.focus();\n }\n }\n\n scrollToItem(itemIndex: number): void {\n const element = this.getElement(itemIndex);\n if (element != null) {\n element.scrollIntoView({ block: 'center' });\n }\n }\n\n handleItemContextMenu(\n itemIndex: number,\n e: React.MouseEvent<HTMLDivElement>\n ): void {\n this.setState({ focusIndex: itemIndex });\n\n // Update the selection, but don't consume the mouse event - it will trigger the context menu\n const { selectedRanges } = this.state;\n const isSelected = RangeUtils.isSelected(selectedRanges, itemIndex);\n\n // When right-clicking, we want to maintain the current selection if the right click happened within the selection even if the modifier key isn't down\n const isModifierDown =\n isSelected || ContextActionUtils.isModifierKeyDown(e);\n this.toggleSelect(itemIndex, e.shiftKey, isModifierDown, false);\n }\n\n handleItemDoubleClick(itemIndex: number, e: React.MouseEvent): void {\n const { isDoubleClickSelect, onSelect } = this.props;\n\n if (isDoubleClickSelect) {\n this.setState(\n ({ selectedRanges }) => ({\n selectedRanges: RangeUtils.selectRange(selectedRanges, [\n itemIndex,\n itemIndex,\n ]),\n }),\n () => {\n onSelect(itemIndex, e);\n }\n );\n }\n }\n\n handleItemMouseDown(index: number, e: React.MouseEvent): void {\n const { selectedRanges } = this.state;\n\n if (\n e.target instanceof HTMLElement &&\n ['button', 'select', 'input', 'textarea'].indexOf(\n e.target.tagName.toLowerCase()\n ) !== -1\n ) {\n // allow these elements to do their own behaviours\n return;\n }\n\n if (e.button === 2 && selectedRanges.length === 0) {\n // allow right click to act as a selection if selection is empty\n this.focusItem(index);\n this.selectItem(index);\n return;\n }\n\n if (e.button != null && e.button !== 0) {\n return;\n }\n\n this.setState({\n mouseDownIndex: index,\n mouseX: e.clientX,\n mouseY: e.clientY,\n });\n\n window.addEventListener('mouseup', this.handleWindowMouseUp);\n\n // Leave selection until mouse up, to allow for dragging behaviour\n }\n\n handleItemBlur(itemIndex: number, e: React.FocusEvent): void {\n log.debug2('item blur', itemIndex, e.currentTarget, e.relatedTarget);\n if (\n !e.relatedTarget ||\n (this.listContainer.current &&\n e.relatedTarget instanceof HTMLElement &&\n !this.listContainer.current.contains(e.relatedTarget))\n ) {\n // Next focused element is outside of the ItemList\n this.setState({ focusIndex: null });\n }\n }\n\n handleItemFocus(itemIndex: number, e: React.FocusEvent): void {\n log.debug2('item focus', itemIndex, e.target);\n this.setState(state => {\n const { focusIndex } = state;\n if (focusIndex !== itemIndex) {\n return { focusIndex: itemIndex };\n }\n return null;\n });\n }\n\n handleItemMouseMove(itemIndex: number, e: React.MouseEvent): void {\n const { isDragSelect, isMultiSelect, disableSelect } = this.props;\n const { mouseDownIndex, selectedRanges, mouseX, mouseY } = this.state;\n\n if (mouseDownIndex == null || disableSelect) return;\n\n const mouseMoveX = Math.abs(e.clientX - (mouseX ?? 0));\n const mouseMoveY = Math.abs(e.clientY - (mouseY ?? 0));\n if (mouseMoveX > MIN_DRAG_DELTA && mouseMoveY > MIN_DRAG_DELTA) {\n this.setState({ isDragging: true });\n }\n if (isDragSelect || mouseDownIndex === itemIndex) {\n this.focusItem(itemIndex);\n\n if (isMultiSelect) {\n if (\n !isDragSelect &&\n !this.getItemSelected(itemIndex, selectedRanges) &&\n !ContextActionUtils.isModifierKeyDown(e)\n ) {\n // If there's already a selection and they select outside of that range while dragging without a modifier key, start a new selection with just the new item\n this.deselectAll();\n }\n this.selectRange([\n Math.min(mouseDownIndex, itemIndex),\n Math.max(mouseDownIndex, itemIndex),\n ]);\n } else {\n this.toggleSelect(\n itemIndex,\n e.shiftKey,\n ContextActionUtils.isModifierKeyDown(e),\n false\n );\n }\n }\n }\n\n handleItemMouseUp(index: number, e: React.MouseEvent): void {\n const { isDeselectOnClick, isDoubleClickSelect, onSelect } = this.props;\n const { mouseDownIndex, isDragging } = this.state;\n\n if (\n e.target instanceof HTMLElement &&\n ['button', 'select', 'input', 'textarea'].indexOf(\n e.target.tagName.toLowerCase()\n ) !== -1\n ) {\n return;\n }\n\n if (mouseDownIndex === index && !isDragging) {\n const isShiftDown = e.shiftKey;\n const isModifierDown = ContextActionUtils.isModifierKeyDown(e);\n this.focusItem(index);\n this.toggleSelect(index, isShiftDown, isModifierDown, isDeselectOnClick);\n\n if (!isDoubleClickSelect && !isShiftDown && !isModifierDown) {\n onSelect(index, e);\n }\n }\n\n this.resetMouseState();\n }\n\n handleItemsRendered({ overscanStartIndex }: ListOnItemsRenderedProps): void {\n this.setState({ overscanStartIndex });\n }\n\n handleResize({ height }: Size): void {\n this.setState({ height });\n }\n\n handleMouseLeave(): void {\n this.setState({ mouseDownIndex: null });\n }\n\n handleWindowMouseUp(): void {\n this.resetMouseState();\n window.removeEventListener('mouseup', this.handleWindowMouseUp);\n }\n\n handleKeyDown(e: React.KeyboardEvent): void {\n const { isMultiSelect, itemCount, onSelect } = this.props;\n const { focusIndex: oldFocus } = this.state;\n let newFocus = oldFocus;\n\n if (e.key === 'Enter' || e.key === ' ') {\n if (!isMultiSelect && newFocus != null) {\n this.setState({ selectedRanges: [[newFocus, newFocus]] }, () => {\n if (newFocus != null) {\n onSelect(newFocus, e);\n }\n });\n }\n return;\n }\n\n if (e.key === 'ArrowUp') {\n if (newFocus != null && newFocus >= 0) {\n newFocus = Math.max(0, newFocus - 1);\n } else {\n newFocus = itemCount - 1;\n }\n } else if (e.key === 'ArrowDown') {\n if (newFocus != null && newFocus >= 0) {\n newFocus = Math.min(newFocus + 1, itemCount - 1);\n } else {\n newFocus = 0;\n }\n } else {\n return;\n }\n\n if (oldFocus !== newFocus) {\n e.stopPropagation();\n e.preventDefault();\n\n this.focusItem(newFocus);\n\n const { selectedRanges } = this.state;\n if (e.shiftKey && selectedRanges.length > 0) {\n const lastRange = selectedRanges[selectedRanges.length - 1];\n this.selectRange([\n Math.min(newFocus, lastRange[0]),\n Math.max(newFocus, lastRange[1]),\n ]);\n } else {\n this.deselectAll();\n if (newFocus !== null) {\n this.selectItem(newFocus);\n } else {\n this.listContainer.current?.focus();\n }\n }\n\n this.scrollIntoView(newFocus);\n }\n }\n\n handleScroll({\n scrollUpdateWasRequested,\n scrollOffset,\n }: ListOnScrollProps): void {\n this.setState(state => {\n if (scrollUpdateWasRequested) {\n // The scroll was caused by scrollTo() or scrollToItem()\n // Don't re-calc isStuckToBottom\n return { scrollOffset } as ItemListState;\n }\n\n const { isStickyBottom } = this.props;\n const { height } = state;\n\n const isStuckToBottom =\n isStickyBottom && this.isListAtBottom({ scrollOffset, height });\n return { isStuckToBottom, scrollOffset } as ItemListState;\n });\n }\n\n resetMouseState(): void {\n this.setState({ mouseDownIndex: null, isDragging: false });\n }\n\n scrollToBottom(): void {\n const { itemCount } = this.props;\n if (this.list.current) {\n this.list.current.scrollToItem(itemCount);\n }\n }\n\n scrollIntoView(itemIndex: number): void {\n if (this.list.current) {\n this.list.current.scrollToItem(itemIndex);\n }\n }\n\n /**\n * @param index The index to toggle selection for\n * @param isShiftDown True if the shift modifier key is down\n * @param isModifierDown True if the meta modifier key is down\n * @param isDeselectable True if item should be deselected if already selected\n */\n toggleSelect(\n index: number,\n isShiftDown: boolean,\n isModifierDown: boolean,\n isDeselectable = true\n ): void {\n const { isMultiSelect } = this.props;\n const { selectedRanges } = this.state;\n\n if (isMultiSelect && isShiftDown && selectedRanges.length > 0) {\n const lastRange = selectedRanges[selectedRanges.length - 1];\n this.selectRange([\n Math.min(lastRange[0], index),\n Math.max(index, lastRange[1]),\n ]);\n } else if (\n isMultiSelect &&\n selectedRanges.length === 1 &&\n selectedRanges[0][0] === index &&\n selectedRanges[0][1] === index\n ) {\n if (isDeselectable) {\n this.deselectItem(index);\n }\n } else if (isMultiSelect && isModifierDown) {\n if (this.getItemSelected(index, selectedRanges)) {\n if (isDeselectable) {\n this.deselectItem(index);\n }\n } else {\n this.selectItem(index);\n }\n } else {\n this.deselectAll();\n this.selectItem(index);\n }\n }\n\n deselectAll(): void {\n const { itemCount } = this.props;\n this.deselectRange([0, itemCount]);\n }\n\n deselectItem(index: number): void {\n this.deselectRange([index, index]);\n }\n\n deselectRange(range: Range): void {\n RangeUtils.validateRange(range);\n\n this.setState(({ selectedRanges }) => ({\n selectedRanges: RangeUtils.deselectRange(selectedRanges, range),\n }));\n }\n\n selectItem(index: number): void {\n const { disableSelect } = this.props;\n if (disableSelect) return;\n\n this.selectRange([index, index]);\n }\n\n selectRange(range: Range): void {\n RangeUtils.validateRange(range);\n\n this.setState(({ selectedRanges }) => ({\n selectedRanges: RangeUtils.selectRange(selectedRanges, range),\n }));\n }\n\n setSelectedRanges(selectedRanges: readonly Range[]): void {\n this.setState({ selectedRanges });\n }\n\n sendViewportUpdate(): void {\n const { scrollOffset, height } = this.state;\n if (scrollOffset != null && height != null) {\n const { onViewportChange, rowHeight } = this.props;\n const topRow = Math.floor(scrollOffset / rowHeight);\n const bottomRow = topRow + Math.ceil(height / rowHeight);\n onViewportChange(topRow, bottomRow);\n }\n }\n\n isListAtBottom(\n {\n scrollOffset,\n height,\n }: Pick<ItemListState, 'scrollOffset' | 'height'> = this.state\n ): boolean {\n if (height == null || scrollOffset == null) {\n return false;\n }\n\n const { itemCount, rowHeight } = this.props;\n return scrollOffset + height >= itemCount * rowHeight;\n }\n\n renderInnerElement({\n index: itemIndex,\n style,\n }: {\n index: number;\n style: React.CSSProperties;\n }): React.ReactElement | null {\n const { items, offset, renderItem, disableSelect } = this.props;\n const { focusIndex, selectedRanges } = this.state;\n if (itemIndex < offset || itemIndex >= offset + items.length) {\n return null;\n }\n\n const item = items[itemIndex - offset];\n return this.getCachedItem(\n itemIndex,\n itemIndex,\n item,\n itemIndex === focusIndex && !disableSelect,\n this.getItemSelected(itemIndex, selectedRanges),\n renderItem,\n style,\n disableSelect\n );\n }\n\n render(): JSX.Element {\n const {\n items,\n itemCount,\n overscanCount,\n renderItem,\n rowHeight,\n 'data-testid': dataTestId,\n } = this.props;\n const { selectedRanges, isStuckToBottom } = this.state;\n return (\n <AutoSizer className=\"item-list-auto-sizer\" onResize={this.handleResize}>\n {({ width, height }) => (\n <List\n className=\"item-list-scroll-pane\"\n height={height}\n width={width}\n initialScrollOffset={isStuckToBottom ? itemCount * rowHeight : 0}\n itemCount={itemCount}\n itemSize={rowHeight}\n // This prop isn't actually used by us, it is passed to the render function by react-window\n // Used here to force a re-render of the List component.\n // Otherwise it doesn't know to call the render again when selection or renderItem changes\n itemData={this.getItemData(items, selectedRanges, renderItem)}\n onScroll={this.handleScroll}\n onItemsRendered={this.handleItemsRendered}\n ref={this.list}\n outerElementType={this.getOuterElement(this.handleKeyDown)}\n outerRef={this.listContainer}\n innerElementType={this.getInnerElement()}\n overscanCount={overscanCount}\n data-testid={dataTestId}\n >\n {this.renderInnerElement}\n </List>\n )}\n </AutoSizer>\n );\n }\n}\n\nexport default ItemList;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ItemList.js","names":["React","PureComponent","memoize","FixedSizeList","List","AutoSizer","Log","RangeUtils","ItemListItem","ContextActionUtils","jsx","_jsx","log","module","MIN_DRAG_DELTA","ItemList","renderItem","_ref","_ref2","_item$displayValue","item","className","children","displayValue","value","concat","constructor","props","_defineProperty","index","selectedRanges","isSelected","max","CACHE_SIZE","itemIndex","key","isFocused","style","disableSelect","content","onContextMenu","handleItemContextMenu","onDoubleClick","handleItemDoubleClick","onMouseDown","handleItemMouseDown","onFocus","handleItemFocus","onBlur","handleItemBlur","onMouseMove","handleItemMouseMove","onMouseUp","handleItemMouseUp","onKeyDown","component","forwardRef","ref","_objectSpread","tabIndex","role","displayName","items","bind","handleItemsRendered","handleWindowMouseUp","handleKeyDown","handleMouseLeave","handleScroll","handleResize","renderInnerElement","list","createRef","listContainer","isStickyBottom","state","focusIndex","mouseDownIndex","overscanStartIndex","height","isDragging","isStuckToBottom","scrollOffset","mouseX","mouseY","componentDidUpdate","prevProps","prevState","propSelectedRanges","itemCount","isListAtBottom","scrollToBottom","sendViewportUpdate","setSelectedRanges","onSelectionChange","onFocusChange","componentWillUnmount","window","removeEventListener","focus","_this$listContainer$c","current","restoreScrollPosition","_this$listContainer$c2","scrollTo","getElement","focusSelector","elements","querySelectorAll","elementIndex","focusItem","setState","element","HTMLElement","scrollToItem","scrollIntoView","block","e","isModifierDown","isModifierKeyDown","toggleSelect","shiftKey","isDoubleClickSelect","onSelect","_ref3","selectRange","target","indexOf","tagName","toLowerCase","button","length","selectItem","clientX","clientY","addEventListener","debug2","currentTarget","relatedTarget","contains","isDragSelect","isMultiSelect","mouseMoveX","Math","abs","mouseMoveY","getItemSelected","deselectAll","min","isDeselectOnClick","isShiftDown","resetMouseState","_ref4","_ref5","oldFocus","newFocus","stopPropagation","preventDefault","lastRange","_this$listContainer$c3","_ref6","scrollUpdateWasRequested","isDeselectable","arguments","undefined","deselectItem","deselectRange","range","validateRange","_ref7","_ref8","onViewportChange","rowHeight","topRow","floor","bottomRow","ceil","_ref9","offset","getCachedItem","render","overscanCount","dataTestId","onResize","_ref10","width","initialScrollOffset","itemSize","itemData","getItemData","onScroll","onItemsRendered","outerElementType","getOuterElement","outerRef","innerElementType","getInnerElement","DEFAULT_ROW_HEIGHT","DEFAULT_OVERSCAN"],"sources":["../src/ItemList.tsx"],"sourcesContent":["/* eslint-disable react/no-unstable-nested-components */\nimport React, { PureComponent } from 'react';\nimport memoize from 'memoizee';\nimport {\n FixedSizeList as List,\n type ListOnItemsRenderedProps,\n type ListOnScrollProps,\n} from 'react-window';\nimport AutoSizer, { type Size } from 'react-virtualized-auto-sizer';\nimport Log from '@deephaven/log';\nimport { RangeUtils, type Range } from '@deephaven/utils';\nimport ItemListItem from './ItemListItem';\nimport { ContextActionUtils } from './context-actions';\nimport './ItemList.scss';\n\nconst log = Log.module('ItemList');\nconst MIN_DRAG_DELTA = 5;\n\nexport interface DefaultListItem {\n value?: string;\n displayValue?: string;\n}\n\nexport type RenderItemProps<T> = {\n item: T;\n itemIndex: number;\n isFocused: boolean;\n isSelected: boolean;\n style: React.CSSProperties;\n};\n\nexport type RenderItemFn<T> = (props: RenderItemProps<T>) => React.ReactNode;\n\nexport type ItemDragEventHandler = (\n index: number,\n event: React.DragEvent<HTMLDivElement>\n) => void;\n\nexport type ItemListProps<T> = {\n // Total item count\n itemCount: number;\n rowHeight: number;\n // Offset of the top item in the items array\n offset: number;\n // Item object format expected by the default renderItem function\n // Can be anything as long as it's supported by the renderItem\n // Default renderItem will look for a `displayValue` property, fallback\n // to the `value` property, or stringify the object if neither are defined\n items: readonly T[];\n // Whether clicking a selected item should deselect in the item list or not. Defaults to true\n isDeselectOnClick: boolean;\n // Whether selection requires a double click or not\n isDoubleClickSelect: boolean;\n // Whether to allow dragging to change the selection after clicking\n isDragSelect: boolean;\n // Whether to allow multiple selections in this item list\n isMultiSelect: boolean;\n // Set to true if you want the list to scroll when new items are added and it's already at the bottom\n isStickyBottom: boolean;\n // Fired when an item gets focused\n onFocusChange: (index: number | null) => void;\n\n // Fired when an item is clicked. With multiple selection, fired on double click.\n onSelect: (index: number, event: React.SyntheticEvent) => void;\n onSelectionChange: (ranges: readonly Range[]) => void;\n onViewportChange: (topRow: number, bottomRow: number) => void;\n overscanCount: number;\n selectedRanges: readonly Range[];\n disableSelect: boolean;\n renderItem: RenderItemFn<T>;\n focusSelector: string;\n 'data-testid'?: string;\n};\n\ntype ItemListState = {\n focusIndex: number | null;\n mouseDownIndex: number | null;\n selectedRanges: readonly Range[];\n overscanStartIndex: number;\n height: number | null;\n isDragging: boolean;\n isStuckToBottom: boolean;\n scrollOffset: number | null;\n mouseX: number | null;\n mouseY: number | null;\n};\n\n/**\n * Show items in a long scrollable list.\n * Can be navigated via keyboard or mouse.\n */\nexport class ItemList<T> extends PureComponent<\n ItemListProps<T>,\n ItemListState\n> {\n static CACHE_SIZE = 1000;\n\n static DEFAULT_ROW_HEIGHT = 20;\n\n // By drawing an additional 10 items on each side, tab/keyboard navigation works better (as the next element exists)\n static DEFAULT_OVERSCAN = 10;\n\n static defaultProps = {\n offset: 0,\n items: [],\n rowHeight: ItemList.DEFAULT_ROW_HEIGHT,\n\n isDeselectOnClick: true,\n\n isDoubleClickSelect: false,\n\n isDragSelect: true,\n\n isMultiSelect: false,\n\n isStickyBottom: false,\n\n disableSelect: false,\n\n onFocusChange(): void {\n // no-op\n },\n onSelect(): void {\n // no-op\n },\n onSelectionChange(): void {\n // no-op\n },\n onViewportChange(): void {\n // no-op\n },\n\n overscanCount: ItemList.DEFAULT_OVERSCAN,\n\n renderItem: ItemList.renderItem,\n selectedRanges: [],\n\n focusSelector: '.item-list-item',\n\n 'data-testid': undefined,\n };\n\n static renderItem<P extends DefaultListItem>({\n item,\n }: RenderItemProps<P>): JSX.Element {\n return (\n <div className=\"item-list-item-content\">\n {item != null && (item.displayValue ?? item.value ?? `${item}`)}\n </div>\n );\n }\n\n constructor(props: ItemListProps<T>) {\n super(props);\n\n this.handleItemBlur = this.handleItemBlur.bind(this);\n this.handleItemContextMenu = this.handleItemContextMenu.bind(this);\n this.handleItemFocus = this.handleItemFocus.bind(this);\n this.handleItemDoubleClick = this.handleItemDoubleClick.bind(this);\n this.handleItemMouseDown = this.handleItemMouseDown.bind(this);\n this.handleItemMouseMove = this.handleItemMouseMove.bind(this);\n this.handleItemMouseUp = this.handleItemMouseUp.bind(this);\n this.handleItemsRendered = this.handleItemsRendered.bind(this);\n this.handleWindowMouseUp = this.handleWindowMouseUp.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.renderInnerElement = this.renderInnerElement.bind(this);\n\n this.list = React.createRef();\n this.listContainer = React.createRef();\n\n const { isStickyBottom, selectedRanges } = props;\n\n this.state = {\n focusIndex: null,\n mouseDownIndex: null,\n selectedRanges,\n overscanStartIndex: 0,\n height: null,\n isDragging: false,\n isStuckToBottom: isStickyBottom,\n scrollOffset: null,\n mouseX: null,\n mouseY: null,\n };\n }\n\n componentDidUpdate(\n prevProps: ItemListProps<T>,\n prevState: ItemListState\n ): void {\n const { selectedRanges: propSelectedRanges, itemCount } = this.props;\n const {\n focusIndex,\n isStuckToBottom,\n scrollOffset,\n height,\n selectedRanges,\n } = this.state;\n if (isStuckToBottom && !this.isListAtBottom() && itemCount > 0) {\n this.scrollToBottom();\n }\n\n if (\n scrollOffset !== prevState.scrollOffset ||\n height !== prevState.height\n ) {\n this.sendViewportUpdate();\n }\n\n if (\n propSelectedRanges !== prevProps.selectedRanges &&\n propSelectedRanges !== selectedRanges\n ) {\n this.setSelectedRanges(propSelectedRanges);\n } else if (selectedRanges !== prevState.selectedRanges) {\n const { onSelectionChange } = this.props;\n onSelectionChange(selectedRanges);\n }\n\n if (focusIndex !== prevState.focusIndex) {\n const { onFocusChange } = this.props;\n onFocusChange(focusIndex);\n }\n }\n\n componentWillUnmount(): void {\n window.removeEventListener('mouseup', this.handleWindowMouseUp);\n }\n\n list: React.RefObject<List>;\n\n listContainer: React.RefObject<HTMLDivElement>;\n\n getItemSelected = memoize(\n (index: number, selectedRanges: readonly Range[]) =>\n RangeUtils.isSelected(selectedRanges, index),\n { max: ItemList.CACHE_SIZE }\n );\n\n getCachedItem = memoize(\n (\n itemIndex: number,\n key: number,\n item: T,\n isFocused: boolean,\n isSelected: boolean,\n renderItem: RenderItemFn<T>,\n style: React.CSSProperties,\n disableSelect: boolean\n ) => {\n const content = renderItem({\n item,\n itemIndex,\n isFocused,\n isSelected,\n style,\n });\n\n return (\n <ItemListItem\n onContextMenu={this.handleItemContextMenu}\n onDoubleClick={this.handleItemDoubleClick}\n onMouseDown={this.handleItemMouseDown}\n onFocus={this.handleItemFocus}\n onBlur={this.handleItemBlur}\n disableSelect={disableSelect}\n onMouseMove={this.handleItemMouseMove}\n onMouseUp={this.handleItemMouseUp}\n isFocused={isFocused}\n isSelected={isSelected}\n itemIndex={itemIndex}\n style={style}\n key={key}\n >\n {content}\n </ItemListItem>\n );\n },\n { max: ItemList.CACHE_SIZE }\n );\n\n getOuterElement = memoize(\n (onKeyDown: React.KeyboardEventHandler) => {\n const component = React.forwardRef<HTMLDivElement>((props, ref) => (\n // We need to add the tabIndex to make sure it is focusable, otherwise we can't get key events\n <div\n ref={ref}\n tabIndex={-1}\n onKeyDown={onKeyDown}\n role=\"presentation\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n ));\n component.displayName = 'ItemListOuterElement';\n return component;\n },\n { max: 1000 }\n );\n\n getInnerElement = memoize(\n () => {\n const component = React.forwardRef<HTMLDivElement>((props, ref) => (\n <div\n className=\"item-list-inner-element\"\n ref={ref}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n ));\n component.displayName = 'ItemListInnerElement';\n return component;\n },\n { max: 1000 }\n );\n\n getItemData = memoize(\n (\n items: readonly T[],\n selectedRanges: readonly Range[],\n renderItem: RenderItemFn<T>\n ) => ({\n items,\n selectedRanges,\n renderItem,\n }),\n { max: 1000 }\n );\n\n focus(): void {\n this.listContainer.current?.focus();\n }\n\n restoreScrollPosition(): void {\n const { scrollOffset } = this.state;\n if (scrollOffset != null) {\n // manually restore the scroll containers offset\n // virtual list doesn't restore scrolloffset in a re-render if it's the same\n this.listContainer.current?.scrollTo(0, scrollOffset);\n }\n }\n\n getElement(itemIndex: number): Element | null {\n if (this.listContainer.current == null) {\n return null;\n }\n\n const { focusSelector } = this.props;\n const { overscanStartIndex } = this.state;\n const elements = this.listContainer.current.querySelectorAll(focusSelector);\n const elementIndex = itemIndex - overscanStartIndex;\n return elements[elementIndex];\n }\n\n focusItem(itemIndex: number): void {\n const { disableSelect } = this.props;\n if (disableSelect) return;\n\n this.setState({ focusIndex: itemIndex });\n\n const element = this.getElement(itemIndex);\n if (element instanceof HTMLElement) {\n element.focus();\n }\n }\n\n scrollToItem(itemIndex: number): void {\n const element = this.getElement(itemIndex);\n if (element != null) {\n element.scrollIntoView({ block: 'center' });\n }\n }\n\n handleItemContextMenu(\n itemIndex: number,\n e: React.MouseEvent<HTMLDivElement>\n ): void {\n this.setState({ focusIndex: itemIndex });\n\n // Update the selection, but don't consume the mouse event - it will trigger the context menu\n const { selectedRanges } = this.state;\n const isSelected = RangeUtils.isSelected(selectedRanges, itemIndex);\n\n // When right-clicking, we want to maintain the current selection if the right click happened within the selection even if the modifier key isn't down\n const isModifierDown =\n isSelected || ContextActionUtils.isModifierKeyDown(e);\n this.toggleSelect(itemIndex, e.shiftKey, isModifierDown, false);\n }\n\n handleItemDoubleClick(itemIndex: number, e: React.MouseEvent): void {\n const { isDoubleClickSelect, onSelect } = this.props;\n\n if (isDoubleClickSelect) {\n this.setState(\n ({ selectedRanges }) => ({\n selectedRanges: RangeUtils.selectRange(selectedRanges, [\n itemIndex,\n itemIndex,\n ]),\n }),\n () => {\n onSelect(itemIndex, e);\n }\n );\n }\n }\n\n handleItemMouseDown(index: number, e: React.MouseEvent): void {\n const { selectedRanges } = this.state;\n\n if (\n e.target instanceof HTMLElement &&\n ['button', 'select', 'input', 'textarea'].indexOf(\n e.target.tagName.toLowerCase()\n ) !== -1\n ) {\n // allow these elements to do their own behaviours\n return;\n }\n\n if (e.button === 2 && selectedRanges.length === 0) {\n // allow right click to act as a selection if selection is empty\n this.focusItem(index);\n this.selectItem(index);\n return;\n }\n\n if (e.button != null && e.button !== 0) {\n return;\n }\n\n this.setState({\n mouseDownIndex: index,\n mouseX: e.clientX,\n mouseY: e.clientY,\n });\n\n window.addEventListener('mouseup', this.handleWindowMouseUp);\n\n // Leave selection until mouse up, to allow for dragging behaviour\n }\n\n handleItemBlur(itemIndex: number, e: React.FocusEvent): void {\n log.debug2('item blur', itemIndex, e.currentTarget, e.relatedTarget);\n if (\n !e.relatedTarget ||\n (this.listContainer.current &&\n e.relatedTarget instanceof HTMLElement &&\n !this.listContainer.current.contains(e.relatedTarget))\n ) {\n // Next focused element is outside of the ItemList\n this.setState({ focusIndex: null });\n }\n }\n\n handleItemFocus(itemIndex: number, e: React.FocusEvent): void {\n log.debug2('item focus', itemIndex, e.target);\n this.setState(state => {\n const { focusIndex } = state;\n if (focusIndex !== itemIndex) {\n return { focusIndex: itemIndex };\n }\n return null;\n });\n }\n\n handleItemMouseMove(itemIndex: number, e: React.MouseEvent): void {\n const { isDragSelect, isMultiSelect, disableSelect } = this.props;\n const { mouseDownIndex, selectedRanges, mouseX, mouseY } = this.state;\n\n if (mouseDownIndex == null || disableSelect) return;\n\n const mouseMoveX = Math.abs(e.clientX - (mouseX ?? 0));\n const mouseMoveY = Math.abs(e.clientY - (mouseY ?? 0));\n if (mouseMoveX > MIN_DRAG_DELTA && mouseMoveY > MIN_DRAG_DELTA) {\n this.setState({ isDragging: true });\n }\n if (isDragSelect || mouseDownIndex === itemIndex) {\n this.focusItem(itemIndex);\n\n if (isMultiSelect) {\n if (\n !isDragSelect &&\n !this.getItemSelected(itemIndex, selectedRanges) &&\n !ContextActionUtils.isModifierKeyDown(e)\n ) {\n // If there's already a selection and they select outside of that range while dragging without a modifier key, start a new selection with just the new item\n this.deselectAll();\n }\n this.selectRange([\n Math.min(mouseDownIndex, itemIndex),\n Math.max(mouseDownIndex, itemIndex),\n ]);\n } else {\n this.toggleSelect(\n itemIndex,\n e.shiftKey,\n ContextActionUtils.isModifierKeyDown(e),\n false\n );\n }\n }\n }\n\n handleItemMouseUp(index: number, e: React.MouseEvent): void {\n const { isDeselectOnClick, isDoubleClickSelect, onSelect } = this.props;\n const { mouseDownIndex, isDragging } = this.state;\n\n if (\n e.target instanceof HTMLElement &&\n ['button', 'select', 'input', 'textarea'].indexOf(\n e.target.tagName.toLowerCase()\n ) !== -1\n ) {\n return;\n }\n\n if (mouseDownIndex === index && !isDragging) {\n const isShiftDown = e.shiftKey;\n const isModifierDown = ContextActionUtils.isModifierKeyDown(e);\n this.focusItem(index);\n this.toggleSelect(index, isShiftDown, isModifierDown, isDeselectOnClick);\n\n if (!isDoubleClickSelect && !isShiftDown && !isModifierDown) {\n onSelect(index, e);\n }\n }\n\n this.resetMouseState();\n }\n\n handleItemsRendered({ overscanStartIndex }: ListOnItemsRenderedProps): void {\n this.setState({ overscanStartIndex });\n }\n\n handleResize({ height }: Size): void {\n this.setState({ height });\n }\n\n handleMouseLeave(): void {\n this.setState({ mouseDownIndex: null });\n }\n\n handleWindowMouseUp(): void {\n this.resetMouseState();\n window.removeEventListener('mouseup', this.handleWindowMouseUp);\n }\n\n handleKeyDown(e: React.KeyboardEvent): void {\n const { isMultiSelect, itemCount, onSelect } = this.props;\n const { focusIndex: oldFocus } = this.state;\n let newFocus = oldFocus;\n\n if (e.key === 'Enter' || e.key === ' ') {\n if (!isMultiSelect && newFocus != null) {\n this.setState({ selectedRanges: [[newFocus, newFocus]] }, () => {\n if (newFocus != null) {\n onSelect(newFocus, e);\n }\n });\n }\n return;\n }\n\n if (e.key === 'ArrowUp') {\n if (newFocus != null && newFocus >= 0) {\n newFocus = Math.max(0, newFocus - 1);\n } else {\n newFocus = itemCount - 1;\n }\n } else if (e.key === 'ArrowDown') {\n if (newFocus != null && newFocus >= 0) {\n newFocus = Math.min(newFocus + 1, itemCount - 1);\n } else {\n newFocus = 0;\n }\n } else {\n return;\n }\n\n if (oldFocus !== newFocus) {\n e.stopPropagation();\n e.preventDefault();\n\n this.focusItem(newFocus);\n\n const { selectedRanges } = this.state;\n if (e.shiftKey && selectedRanges.length > 0) {\n const lastRange = selectedRanges[selectedRanges.length - 1];\n this.selectRange([\n Math.min(newFocus, lastRange[0]),\n Math.max(newFocus, lastRange[1]),\n ]);\n } else {\n this.deselectAll();\n if (newFocus !== null) {\n this.selectItem(newFocus);\n } else {\n this.listContainer.current?.focus();\n }\n }\n\n this.scrollIntoView(newFocus);\n }\n }\n\n handleScroll({\n scrollUpdateWasRequested,\n scrollOffset,\n }: ListOnScrollProps): void {\n this.setState(state => {\n if (scrollUpdateWasRequested) {\n // The scroll was caused by scrollTo() or scrollToItem()\n // Don't re-calc isStuckToBottom\n return { scrollOffset } as ItemListState;\n }\n\n const { isStickyBottom } = this.props;\n const { height } = state;\n\n const isStuckToBottom =\n isStickyBottom && this.isListAtBottom({ scrollOffset, height });\n return { isStuckToBottom, scrollOffset } as ItemListState;\n });\n }\n\n resetMouseState(): void {\n this.setState({ mouseDownIndex: null, isDragging: false });\n }\n\n scrollToBottom(): void {\n const { itemCount } = this.props;\n if (this.list.current) {\n this.list.current.scrollToItem(itemCount);\n }\n }\n\n scrollIntoView(itemIndex: number): void {\n if (this.list.current) {\n this.list.current.scrollToItem(itemIndex);\n }\n }\n\n /**\n * @param index The index to toggle selection for\n * @param isShiftDown True if the shift modifier key is down\n * @param isModifierDown True if the meta modifier key is down\n * @param isDeselectable True if item should be deselected if already selected\n */\n toggleSelect(\n index: number,\n isShiftDown: boolean,\n isModifierDown: boolean,\n isDeselectable = true\n ): void {\n const { isMultiSelect } = this.props;\n const { selectedRanges } = this.state;\n\n if (isMultiSelect && isShiftDown && selectedRanges.length > 0) {\n const lastRange = selectedRanges[selectedRanges.length - 1];\n this.selectRange([\n Math.min(lastRange[0], index),\n Math.max(index, lastRange[1]),\n ]);\n } else if (\n isMultiSelect &&\n selectedRanges.length === 1 &&\n selectedRanges[0][0] === index &&\n selectedRanges[0][1] === index\n ) {\n if (isDeselectable) {\n this.deselectItem(index);\n }\n } else if (isMultiSelect && isModifierDown) {\n if (this.getItemSelected(index, selectedRanges)) {\n if (isDeselectable) {\n this.deselectItem(index);\n }\n } else {\n this.selectItem(index);\n }\n } else {\n this.deselectAll();\n this.selectItem(index);\n }\n }\n\n deselectAll(): void {\n const { itemCount } = this.props;\n this.deselectRange([0, itemCount]);\n }\n\n deselectItem(index: number): void {\n this.deselectRange([index, index]);\n }\n\n deselectRange(range: Range): void {\n RangeUtils.validateRange(range);\n\n this.setState(({ selectedRanges }) => ({\n selectedRanges: RangeUtils.deselectRange(selectedRanges, range),\n }));\n }\n\n selectItem(index: number): void {\n const { disableSelect } = this.props;\n if (disableSelect) return;\n\n this.selectRange([index, index]);\n }\n\n selectRange(range: Range): void {\n RangeUtils.validateRange(range);\n\n this.setState(({ selectedRanges }) => ({\n selectedRanges: RangeUtils.selectRange(selectedRanges, range),\n }));\n }\n\n setSelectedRanges(selectedRanges: readonly Range[]): void {\n this.setState({ selectedRanges });\n }\n\n sendViewportUpdate(): void {\n const { scrollOffset, height } = this.state;\n if (scrollOffset != null && height != null) {\n const { onViewportChange, rowHeight } = this.props;\n const topRow = Math.floor(scrollOffset / rowHeight);\n const bottomRow = topRow + Math.ceil(height / rowHeight);\n onViewportChange(topRow, bottomRow);\n }\n }\n\n isListAtBottom(\n {\n scrollOffset,\n height,\n }: Pick<ItemListState, 'scrollOffset' | 'height'> = this.state\n ): boolean {\n if (height == null || scrollOffset == null) {\n return false;\n }\n\n const { itemCount, rowHeight } = this.props;\n return scrollOffset + height >= itemCount * rowHeight;\n }\n\n renderInnerElement({\n index: itemIndex,\n style,\n }: {\n index: number;\n style: React.CSSProperties;\n }): React.ReactElement | null {\n const { items, offset, renderItem, disableSelect } = this.props;\n const { focusIndex, selectedRanges } = this.state;\n if (itemIndex < offset || itemIndex >= offset + items.length) {\n return null;\n }\n\n const item = items[itemIndex - offset];\n return this.getCachedItem(\n itemIndex,\n itemIndex,\n item,\n itemIndex === focusIndex && !disableSelect,\n this.getItemSelected(itemIndex, selectedRanges),\n renderItem,\n style,\n disableSelect\n );\n }\n\n render(): JSX.Element {\n const {\n items,\n itemCount,\n overscanCount,\n renderItem,\n rowHeight,\n 'data-testid': dataTestId,\n } = this.props;\n const { selectedRanges, isStuckToBottom } = this.state;\n return (\n <AutoSizer className=\"item-list-auto-sizer\" onResize={this.handleResize}>\n {({ width, height }) => (\n <List\n className=\"item-list-scroll-pane\"\n height={height}\n width={width}\n initialScrollOffset={isStuckToBottom ? itemCount * rowHeight : 0}\n itemCount={itemCount}\n itemSize={rowHeight}\n // This prop isn't actually used by us, it is passed to the render function by react-window\n // Used here to force a re-render of the List component.\n // Otherwise it doesn't know to call the render again when selection or renderItem changes\n itemData={this.getItemData(items, selectedRanges, renderItem)}\n onScroll={this.handleScroll}\n onItemsRendered={this.handleItemsRendered}\n ref={this.list}\n outerElementType={this.getOuterElement(this.handleKeyDown)}\n outerRef={this.listContainer}\n innerElementType={this.getInnerElement()}\n overscanCount={overscanCount}\n data-testid={dataTestId}\n >\n {this.renderInnerElement}\n </List>\n )}\n </AutoSizer>\n );\n }\n}\n\nexport default ItemList;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../scss/custom.scss","../scss/bootstrap_overrides.scss","../src/ItemListItem.scss"],"names":[],"mappings":"AAAA;AC6LA;AC3LA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;;;AAIA;EACE;EACA;;;AAKF;EACE;EACA;;;AAIJ;EACE;EACA","file":"ItemListItem.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n@import './util.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-input-disabled-fg);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n","@import '../scss/custom.scss';\n\n.item-list-item {\n border: none;\n border-radius: 0;\n display: flex;\n flex-direction: row;\n width: 100%;\n padding: 0;\n white-space: nowrap;\n text-decoration: none;\n background-color: var(--dh-color-item-list-bg);\n text-align: left;\n user-select: none;\n}\n\n.item-list-item-content {\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n padding: 0 $input-btn-padding-x;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n\n .title {\n flex-grow: 1;\n }\n}\n\n.item-list-item-content:hover {\n background-color: var(--dh-color-item-list-selected-bg);\n color: var(--dh-color-item-list-selected-fg);\n}\n\n.item-list-item.is-focused {\n .item-list-item-content {\n background-color: var(--dh-color-item-list-keyboard-selected-bg);\n color: var(--dh-color-item-list-selected-fg);\n }\n}\n\n.item-list-item.active {\n .item-list-item-content {\n background-color: var(--dh-color-item-list-selected-bg);\n color: var(--dh-color-item-list-selected-fg);\n }\n}\n\n.item-list-item:focus {\n outline: none;\n box-shadow: none;\n}\n"]}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../scss/custom.scss","../scss/bootstrap_overrides.scss","../src/ItemListItem.scss"],"names":[],"mappings":"AAAA;AC6LA;AC3LA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;;;AAIA;EACE;EACA;;;AAKF;EACE;EACA;;;AAIJ;EACE;EACA","file":"ItemListItem.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n@import './util.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-text-disabled);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n","@import '../scss/custom.scss';\n\n.item-list-item {\n border: none;\n border-radius: 0;\n display: flex;\n flex-direction: row;\n width: 100%;\n padding: 0;\n white-space: nowrap;\n text-decoration: none;\n background-color: var(--dh-color-item-list-bg);\n text-align: left;\n user-select: none;\n}\n\n.item-list-item-content {\n display: flex;\n flex-direction: row;\n flex-grow: 1;\n padding: 0 $input-btn-padding-x;\n justify-content: space-between;\n align-items: center;\n cursor: pointer;\n\n .title {\n flex-grow: 1;\n }\n}\n\n.item-list-item-content:hover {\n background-color: var(--dh-color-item-list-selected-bg);\n color: var(--dh-color-item-list-selected-fg);\n}\n\n.item-list-item.is-focused {\n .item-list-item-content {\n background-color: var(--dh-color-item-list-keyboard-selected-bg);\n color: var(--dh-color-item-list-selected-fg);\n }\n}\n\n.item-list-item.active {\n .item-list-item-content {\n background-color: var(--dh-color-item-list-selected-bg);\n color: var(--dh-color-item-list-selected-fg);\n }\n}\n\n.item-list-item:focus {\n outline: none;\n box-shadow: none;\n}\n"]}
|
package/dist/ItemListItem.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemListItem.js","names":["React","Component","classNames","Log","jsx","_jsx","log","module","ItemListItem","handleKeyDown","constructor","props","_defineProperty","handleBlur","bind","handleFocus","handleClick","handleContextMenu","handleDragStart","handleDrag","handleDragOver","handleDragEnd","handleDrop","handleDoubleClick","handleMouseDown","handleMouseMove","handleMouseUp","itemRef","createRef","e","itemIndex","onBlur","onFocus","onClick","onContextMenu","onDragStart","onDrag","preventDefault","onDragOver","onDragEnd","onDrop","onDoubleClick","onMouseMove","onMouseDown","onMouseUp","render","isDraggable","isFocused","isSelected","style","children","dataTestId","className","active","onKeyDown","onContextMenuCapture","tabIndex","ref","role","draggable","undefined"],"sources":["../src/ItemListItem.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport './ItemListItem.scss';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('ItemListItem');\n\ninterface ItemListItemProps {\n isDraggable: boolean;\n isFocused: boolean;\n isSelected: boolean;\n itemIndex: number;\n // eslint-disable-next-line react/no-unused-prop-types\n disableSelect: boolean;\n onBlur: (index: number, e: React.FocusEvent<HTMLDivElement>) => void;\n onClick: (index: number, e: React.MouseEvent<HTMLDivElement>) => void;\n onContextMenu: (index: number, e: React.MouseEvent<HTMLDivElement>) => void;\n onDragStart: (index: number, e: React.DragEvent<HTMLDivElement>) => void;\n onDrag: (index: number, e: React.DragEvent<HTMLDivElement>) => void;\n onDragOver: (index: number, e: React.DragEvent<HTMLDivElement>) => void;\n onDragEnd: (index: number, e: React.DragEvent<HTMLDivElement>) => void;\n onDrop: (index: number, e: React.DragEvent<HTMLDivElement>) => void;\n onDoubleClick: (index: number, e: React.MouseEvent<HTMLDivElement>) => void;\n onFocus: (index: number, e: React.FocusEvent<HTMLDivElement>) => void;\n onMouseDown: (index: number, e: React.MouseEvent<HTMLDivElement>) => void;\n onMouseMove: (index: number, e: React.MouseEvent<HTMLDivElement>) => void;\n onMouseUp: (index: number, e: React.MouseEvent<HTMLDivElement>) => void;\n style: React.CSSProperties;\n children: React.ReactNode;\n 'data-testid'?: string;\n}\n\nclass ItemListItem extends Component<ItemListItemProps, Record<string, never>> {\n static defaultProps = {\n children: null,\n isDraggable: false,\n isFocused: false,\n isSelected: false,\n itemIndex: 0,\n 'data-testid': undefined,\n\n onBlur(): void {\n // no-op\n },\n onClick(): void {\n // no-op\n },\n onContextMenu(): void {\n // no-op\n },\n onDragStart(): void {\n // no-op\n },\n onDrag(): void {\n // no-op\n },\n onDragOver(): void {\n // no-op\n },\n onDragEnd(): void {\n // no-op\n },\n onDrop(): void {\n // no-op\n },\n onDoubleClick(): void {\n // no-op\n },\n onFocus(): void {\n // no-op\n },\n onMouseDown(): void {\n // no-op\n },\n onMouseMove(): void {\n // no-op\n },\n onMouseUp(): void {\n // no-op\n },\n style: {},\n };\n\n static handleKeyDown(): boolean {\n log.log('ItemListItem.handleKeyDown false');\n return false;\n }\n\n constructor(props: ItemListItemProps) {\n super(props);\n\n this.handleBlur = this.handleBlur.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n this.handleDragStart = this.handleDragStart.bind(this);\n this.handleDrag = this.handleDrag.bind(this);\n this.handleDragOver = this.handleDragOver.bind(this);\n this.handleDragEnd = this.handleDragEnd.bind(this);\n this.handleDrop = this.handleDrop.bind(this);\n this.handleDoubleClick = this.handleDoubleClick.bind(this);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n\n this.itemRef = React.createRef();\n }\n\n itemRef: React.RefObject<HTMLDivElement>;\n\n handleBlur(e: React.FocusEvent<HTMLDivElement>): void {\n const { itemIndex, onBlur } = this.props;\n onBlur(itemIndex, e);\n }\n\n handleFocus(e: React.FocusEvent<HTMLDivElement>): void {\n const { itemIndex, onFocus } = this.props;\n onFocus(itemIndex, e);\n }\n\n handleClick(e: React.MouseEvent<HTMLDivElement>): void {\n const { itemIndex, onClick } = this.props;\n onClick(itemIndex, e);\n }\n\n handleContextMenu(e: React.MouseEvent<HTMLDivElement>): void {\n const { itemIndex, onContextMenu } = this.props;\n onContextMenu(itemIndex, e);\n }\n\n handleDragStart(e: React.DragEvent<HTMLDivElement>): void {\n const { itemIndex, onDragStart } = this.props;\n onDragStart(itemIndex, e);\n }\n\n handleDrag(e: React.DragEvent<HTMLDivElement>): void {\n const { itemIndex, onDrag } = this.props;\n onDrag(itemIndex, e);\n }\n\n handleDragOver(e: React.DragEvent<HTMLDivElement>): void {\n // Have to call preventDefault otherwise onDrop won't get triggered\n e.preventDefault();\n const { itemIndex, onDragOver } = this.props;\n onDragOver(itemIndex, e);\n }\n\n handleDragEnd(e: React.DragEvent<HTMLDivElement>): void {\n const { itemIndex, onDragEnd } = this.props;\n onDragEnd(itemIndex, e);\n }\n\n handleDrop(e: React.DragEvent<HTMLDivElement>): void {\n const { itemIndex, onDrop } = this.props;\n onDrop(itemIndex, e);\n }\n\n handleDoubleClick(e: React.MouseEvent<HTMLDivElement>): void {\n const { itemIndex, onDoubleClick } = this.props;\n onDoubleClick(itemIndex, e);\n }\n\n handleMouseMove(e: React.MouseEvent<HTMLDivElement>): void {\n const { itemIndex, onMouseMove } = this.props;\n onMouseMove(itemIndex, e);\n }\n\n handleMouseDown(e: React.MouseEvent<HTMLDivElement>): void {\n const { itemIndex, onMouseDown } = this.props;\n onMouseDown(itemIndex, e);\n }\n\n handleMouseUp(e: React.MouseEvent<HTMLDivElement>): void {\n const { itemIndex, onMouseUp } = this.props;\n onMouseUp(itemIndex, e);\n }\n\n render(): JSX.Element {\n const {\n isDraggable,\n isFocused,\n isSelected,\n style,\n children,\n 'data-testid': dataTestId,\n } = this.props;\n return (\n <div\n className={classNames(\n 'item-list-item',\n { active: isSelected },\n { 'is-focused': isFocused },\n { 'is-draggable': isDraggable }\n )}\n onKeyDown={ItemListItem.handleKeyDown}\n onContextMenuCapture={this.handleContextMenu}\n onClick={this.handleClick}\n onDrag={this.handleDrag}\n onDragStart={this.handleDragStart}\n onDragOver={this.handleDragOver}\n onDragEnd={this.handleDragEnd}\n onDrop={this.handleDrop}\n onDoubleClick={this.handleDoubleClick}\n onMouseDown={this.handleMouseDown}\n onMouseMove={this.handleMouseMove}\n onMouseUp={this.handleMouseUp}\n tabIndex={-1}\n ref={this.itemRef}\n role=\"listitem\"\n style={style}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n draggable={isDraggable}\n data-testid={dataTestId}\n >\n {children}\n </div>\n );\n }\n}\n\nexport default ItemListItem;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ItemListItem.js","names":["React","Component","classNames","Log","jsx","_jsx","log","module","ItemListItem","handleKeyDown","constructor","props","_defineProperty","handleBlur","bind","handleFocus","handleClick","handleContextMenu","handleDragStart","handleDrag","handleDragOver","handleDragEnd","handleDrop","handleDoubleClick","handleMouseDown","handleMouseMove","handleMouseUp","itemRef","createRef","e","itemIndex","onBlur","onFocus","onClick","onContextMenu","onDragStart","onDrag","preventDefault","onDragOver","onDragEnd","onDrop","onDoubleClick","onMouseMove","onMouseDown","onMouseUp","render","isDraggable","isFocused","isSelected","style","children","dataTestId","className","active","onKeyDown","onContextMenuCapture","tabIndex","ref","role","draggable","undefined"],"sources":["../src/ItemListItem.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport './ItemListItem.scss';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('ItemListItem');\n\ninterface ItemListItemProps {\n isDraggable: boolean;\n isFocused: boolean;\n isSelected: boolean;\n itemIndex: number;\n // eslint-disable-next-line react/no-unused-prop-types\n disableSelect: boolean;\n onBlur: (index: number, e: React.FocusEvent<HTMLDivElement>) => void;\n onClick: (index: number, e: React.MouseEvent<HTMLDivElement>) => void;\n onContextMenu: (index: number, e: React.MouseEvent<HTMLDivElement>) => void;\n onDragStart: (index: number, e: React.DragEvent<HTMLDivElement>) => void;\n onDrag: (index: number, e: React.DragEvent<HTMLDivElement>) => void;\n onDragOver: (index: number, e: React.DragEvent<HTMLDivElement>) => void;\n onDragEnd: (index: number, e: React.DragEvent<HTMLDivElement>) => void;\n onDrop: (index: number, e: React.DragEvent<HTMLDivElement>) => void;\n onDoubleClick: (index: number, e: React.MouseEvent<HTMLDivElement>) => void;\n onFocus: (index: number, e: React.FocusEvent<HTMLDivElement>) => void;\n onMouseDown: (index: number, e: React.MouseEvent<HTMLDivElement>) => void;\n onMouseMove: (index: number, e: React.MouseEvent<HTMLDivElement>) => void;\n onMouseUp: (index: number, e: React.MouseEvent<HTMLDivElement>) => void;\n style: React.CSSProperties;\n children: React.ReactNode;\n 'data-testid'?: string;\n}\n\nclass ItemListItem extends Component<ItemListItemProps, Record<string, never>> {\n static defaultProps = {\n children: null,\n isDraggable: false,\n isFocused: false,\n isSelected: false,\n itemIndex: 0,\n 'data-testid': undefined,\n\n onBlur(): void {\n // no-op\n },\n onClick(): void {\n // no-op\n },\n onContextMenu(): void {\n // no-op\n },\n onDragStart(): void {\n // no-op\n },\n onDrag(): void {\n // no-op\n },\n onDragOver(): void {\n // no-op\n },\n onDragEnd(): void {\n // no-op\n },\n onDrop(): void {\n // no-op\n },\n onDoubleClick(): void {\n // no-op\n },\n onFocus(): void {\n // no-op\n },\n onMouseDown(): void {\n // no-op\n },\n onMouseMove(): void {\n // no-op\n },\n onMouseUp(): void {\n // no-op\n },\n style: {},\n };\n\n static handleKeyDown(): boolean {\n log.log('ItemListItem.handleKeyDown false');\n return false;\n }\n\n constructor(props: ItemListItemProps) {\n super(props);\n\n this.handleBlur = this.handleBlur.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleClick = this.handleClick.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n this.handleDragStart = this.handleDragStart.bind(this);\n this.handleDrag = this.handleDrag.bind(this);\n this.handleDragOver = this.handleDragOver.bind(this);\n this.handleDragEnd = this.handleDragEnd.bind(this);\n this.handleDrop = this.handleDrop.bind(this);\n this.handleDoubleClick = this.handleDoubleClick.bind(this);\n this.handleMouseDown = this.handleMouseDown.bind(this);\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseUp = this.handleMouseUp.bind(this);\n\n this.itemRef = React.createRef();\n }\n\n itemRef: React.RefObject<HTMLDivElement>;\n\n handleBlur(e: React.FocusEvent<HTMLDivElement>): void {\n const { itemIndex, onBlur } = this.props;\n onBlur(itemIndex, e);\n }\n\n handleFocus(e: React.FocusEvent<HTMLDivElement>): void {\n const { itemIndex, onFocus } = this.props;\n onFocus(itemIndex, e);\n }\n\n handleClick(e: React.MouseEvent<HTMLDivElement>): void {\n const { itemIndex, onClick } = this.props;\n onClick(itemIndex, e);\n }\n\n handleContextMenu(e: React.MouseEvent<HTMLDivElement>): void {\n const { itemIndex, onContextMenu } = this.props;\n onContextMenu(itemIndex, e);\n }\n\n handleDragStart(e: React.DragEvent<HTMLDivElement>): void {\n const { itemIndex, onDragStart } = this.props;\n onDragStart(itemIndex, e);\n }\n\n handleDrag(e: React.DragEvent<HTMLDivElement>): void {\n const { itemIndex, onDrag } = this.props;\n onDrag(itemIndex, e);\n }\n\n handleDragOver(e: React.DragEvent<HTMLDivElement>): void {\n // Have to call preventDefault otherwise onDrop won't get triggered\n e.preventDefault();\n const { itemIndex, onDragOver } = this.props;\n onDragOver(itemIndex, e);\n }\n\n handleDragEnd(e: React.DragEvent<HTMLDivElement>): void {\n const { itemIndex, onDragEnd } = this.props;\n onDragEnd(itemIndex, e);\n }\n\n handleDrop(e: React.DragEvent<HTMLDivElement>): void {\n const { itemIndex, onDrop } = this.props;\n onDrop(itemIndex, e);\n }\n\n handleDoubleClick(e: React.MouseEvent<HTMLDivElement>): void {\n const { itemIndex, onDoubleClick } = this.props;\n onDoubleClick(itemIndex, e);\n }\n\n handleMouseMove(e: React.MouseEvent<HTMLDivElement>): void {\n const { itemIndex, onMouseMove } = this.props;\n onMouseMove(itemIndex, e);\n }\n\n handleMouseDown(e: React.MouseEvent<HTMLDivElement>): void {\n const { itemIndex, onMouseDown } = this.props;\n onMouseDown(itemIndex, e);\n }\n\n handleMouseUp(e: React.MouseEvent<HTMLDivElement>): void {\n const { itemIndex, onMouseUp } = this.props;\n onMouseUp(itemIndex, e);\n }\n\n render(): JSX.Element {\n const {\n isDraggable,\n isFocused,\n isSelected,\n style,\n children,\n 'data-testid': dataTestId,\n } = this.props;\n return (\n <div\n className={classNames(\n 'item-list-item',\n { active: isSelected },\n { 'is-focused': isFocused },\n { 'is-draggable': isDraggable }\n )}\n onKeyDown={ItemListItem.handleKeyDown}\n onContextMenuCapture={this.handleContextMenu}\n onClick={this.handleClick}\n onDrag={this.handleDrag}\n onDragStart={this.handleDragStart}\n onDragOver={this.handleDragOver}\n onDragEnd={this.handleDragEnd}\n onDrop={this.handleDrop}\n onDoubleClick={this.handleDoubleClick}\n onMouseDown={this.handleMouseDown}\n onMouseMove={this.handleMouseMove}\n onMouseUp={this.handleMouseUp}\n tabIndex={-1}\n ref={this.itemRef}\n role=\"listitem\"\n style={style}\n onFocus={this.handleFocus}\n onBlur={this.handleBlur}\n draggable={isDraggable}\n data-testid={dataTestId}\n >\n {children}\n </div>\n );\n }\n}\n\nexport default ItemListItem;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../scss/custom.scss","../scss/bootstrap_overrides.scss","../src/LoadingOverlay.scss"],"names":[],"mappings":"AAAA;AC6LA;ACvLA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA,WAf2B;EAgB3B;;AACA;EACE,WAjBsB;EAkBtB,QAlBsB;EAmBtB,aAnBsB;;AAoBtB;EACE;;;AAMR;EACE,YA3BoB;EA4BpB","file":"LoadingOverlay.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n@import './util.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-input-disabled-fg);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n","@import '../scss/custom.scss';\n\n$iris-panel-message-font-size: 1.2rem;\n$iris-panel-icon-font-size: 64px;\n$iris-panel-scrim-bg: bg-opacity(80);\n\n.iris-panel-message-overlay {\n text-align: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n white-space: pre-line;\n overflow: hidden;\n\n .message-content {\n display: flex;\n flex-direction: column;\n font-size: $iris-panel-message-font-size;\n gap: 20px;\n .message-icon {\n font-size: $iris-panel-icon-font-size;\n height: $iris-panel-icon-font-size;\n line-height: $iris-panel-icon-font-size;\n .svg-inline--fa {\n font-size: inherit;\n }\n }\n }\n}\n\n.iris-panel-scrim-background {\n background: $iris-panel-scrim-bg;\n backdrop-filter: blur(2px);\n}\n"]}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../scss/custom.scss","../scss/bootstrap_overrides.scss","../src/LoadingOverlay.scss"],"names":[],"mappings":"AAAA;AC6LA;ACvLA;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA,WAf2B;EAgB3B;;AACA;EACE,WAjBsB;EAkBtB,QAlBsB;EAmBtB,aAnBsB;;AAoBtB;EACE;;;AAMR;EACE,YA3BoB;EA4BpB","file":"LoadingOverlay.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n@import './util.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-text-disabled);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n","@import '../scss/custom.scss';\n\n$iris-panel-message-font-size: 1.2rem;\n$iris-panel-icon-font-size: 64px;\n$iris-panel-scrim-bg: bg-opacity(80);\n\n.iris-panel-message-overlay {\n text-align: center;\n display: flex;\n flex-direction: column;\n justify-content: center;\n white-space: pre-line;\n overflow: hidden;\n\n .message-content {\n display: flex;\n flex-direction: column;\n font-size: $iris-panel-message-font-size;\n gap: 20px;\n .message-icon {\n font-size: $iris-panel-icon-font-size;\n height: $iris-panel-icon-font-size;\n line-height: $iris-panel-icon-font-size;\n .svg-inline--fa {\n font-size: inherit;\n }\n }\n }\n}\n\n.iris-panel-scrim-background {\n background: $iris-panel-scrim-bg;\n backdrop-filter: blur(2px);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingOverlay.js","names":["React","CSSTransition","classNames","FontAwesomeIcon","vsWarning","ThemeExport","LoadingSpinner","jsx","_jsx","jsxs","_jsxs","LoadingOverlay","_ref","isLoaded","isLoading","errorMessage","className","scrimClassName","timeout","transitionMs","dataTestId","messageTestId","concat","undefined","spinnerTestId","in","Boolean","fade","mountOnEnter","unmountOnExit","children","icon"],"sources":["../src/LoadingOverlay.tsx"],"sourcesContent":["import React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsWarning } from '@deephaven/icons';\nimport ThemeExport from './ThemeExport';\nimport LoadingSpinner from './LoadingSpinner';\nimport './LoadingOverlay.scss';\n\ntype LoadingOverlayProps = {\n isLoaded?: boolean;\n isLoading?: boolean;\n errorMessage?: string | null;\n className?: string | null;\n scrimClassName?: string;\n timeout?: number | { enter?: number; exit?: number; appear?: number };\n 'data-testid'?: string;\n};\n\n/**\n * A loading overlay that handles displaying a loading spinner or an error message\n */\nfunction LoadingOverlay({\n isLoaded = false,\n isLoading = true,\n errorMessage = null,\n className = null,\n scrimClassName = 'iris-panel-scrim-background',\n timeout = ThemeExport.transitionMs,\n 'data-testid': dataTestId,\n}: LoadingOverlayProps): JSX.Element {\n const messageTestId =\n dataTestId != null ? `${dataTestId}-message` : undefined;\n const spinnerTestId =\n dataTestId != null ? `${dataTestId}-spinner` : undefined;\n\n return (\n <CSSTransition\n in={Boolean(errorMessage) || !isLoaded || isLoading}\n timeout={timeout}\n classNames={classNames(className, { fade: isLoaded })}\n mountOnEnter\n unmountOnExit\n >\n <div className=\"fill-parent-absolute\" data-testid={dataTestId}>\n <div\n className={classNames(\n 'iris-panel-message-overlay',\n 'fill-parent-absolute',\n { [scrimClassName]: isLoaded }\n )}\n >\n <div className=\"message-content\">\n <div className=\"message-icon\">\n {isLoading && (\n <LoadingSpinner\n className=\"loading-spinner-large\"\n data-testid={spinnerTestId}\n />\n )}\n {!isLoading && errorMessage != null && (\n <FontAwesomeIcon icon={vsWarning} />\n )}\n </div>\n {errorMessage != null && (\n <div className=\"message-text\" data-testid={messageTestId}>\n {errorMessage}\n </div>\n )}\n </div>\n </div>\n </div>\n </CSSTransition>\n );\n}\n\nexport default LoadingOverlay;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAQ,wBAAwB;AACtD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,SAAS,QAAQ,kBAAkB;AAAC,OACtCC,WAAW;AAAA,OACXC,cAAc;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAarB;AACA;AACA;AACA,SAASC,cAAcA,CAAAC,IAAA,EAQc;EAAA,IARb;IACtBC,QAAQ,GAAG,KAAK;IAChBC,SAAS,GAAG,IAAI;IAChBC,YAAY,GAAG,IAAI;IACnBC,SAAS,GAAG,IAAI;IAChBC,cAAc,GAAG,6BAA6B;IAC9CC,OAAO,GAAGb,WAAW,CAACc,YAAY;IAClC,aAAa,EAAEC;EACI,CAAC,GAAAR,IAAA;EACpB,IAAMS,aAAa,GACjBD,UAAU,IAAI,IAAI,MAAAE,MAAA,CAAMF,UAAU,gBAAaG,SAAS;EAC1D,IAAMC,aAAa,GACjBJ,UAAU,IAAI,IAAI,MAAAE,MAAA,CAAMF,UAAU,gBAAaG,SAAS;EAE1D,oBACEf,IAAA,CAACP,aAAa;IACZwB,EAAE,EAAEC,OAAO,CAACX,YAAY,CAAC,IAAI,CAACF,QAAQ,IAAIC,SAAU;IACpDI,OAAO,EAAEA,OAAQ;IACjBhB,UAAU,EAAEA,UAAU,CAACc,SAAS,EAAE;MAAEW,IAAI,EAAEd;IAAS,CAAC,CAAE;IACtDe,YAAY;IACZC,aAAa;IAAAC,QAAA,eAEbtB,IAAA;MAAKQ,SAAS,EAAC,sBAAsB;MAAC,eAAaI,UAAW;MAAAU,QAAA,eAC5DtB,IAAA;QACEQ,SAAS,EAAEd,UAAU,CACnB,4BAA4B,EAC5B,sBAAsB,EACtB;UAAE,CAACe,cAAc,GAAGJ;QAAS,CAC/B,CAAE;QAAAiB,QAAA,eAEFpB,KAAA;UAAKM,SAAS,EAAC,iBAAiB;UAAAc,QAAA,gBAC9BpB,KAAA;YAAKM,SAAS,EAAC,cAAc;YAAAc,QAAA,GAC1BhB,SAAS,iBACRN,IAAA,CAACF,cAAc;cACbU,SAAS,EAAC,uBAAuB;cACjC,eAAaQ;YAAc,CAC5B,CACF,EACA,CAACV,SAAS,IAAIC,YAAY,IAAI,IAAI,iBACjCP,IAAA,CAACL,eAAe;cAAC4B,IAAI,EAAE3B;YAAU,CAAE,CACpC;UAAA,CACE,CAAC,EACLW,YAAY,IAAI,IAAI,iBACnBP,IAAA;YAAKQ,SAAS,EAAC,cAAc;YAAC,eAAaK,aAAc;YAAAS,QAAA,EACtDf;UAAY,CACV,CACN;QAAA,CACE;MAAC,CACH;IAAC,CACH;EAAC,CACO,CAAC;AAEpB;AAEA,eAAeJ,cAAc"
|
|
1
|
+
{"version":3,"file":"LoadingOverlay.js","names":["React","CSSTransition","classNames","FontAwesomeIcon","vsWarning","ThemeExport","LoadingSpinner","jsx","_jsx","jsxs","_jsxs","LoadingOverlay","_ref","isLoaded","isLoading","errorMessage","className","scrimClassName","timeout","transitionMs","dataTestId","messageTestId","concat","undefined","spinnerTestId","in","Boolean","fade","mountOnEnter","unmountOnExit","children","icon"],"sources":["../src/LoadingOverlay.tsx"],"sourcesContent":["import React from 'react';\nimport { CSSTransition } from 'react-transition-group';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsWarning } from '@deephaven/icons';\nimport ThemeExport from './ThemeExport';\nimport LoadingSpinner from './LoadingSpinner';\nimport './LoadingOverlay.scss';\n\ntype LoadingOverlayProps = {\n isLoaded?: boolean;\n isLoading?: boolean;\n errorMessage?: string | null;\n className?: string | null;\n scrimClassName?: string;\n timeout?: number | { enter?: number; exit?: number; appear?: number };\n 'data-testid'?: string;\n};\n\n/**\n * A loading overlay that handles displaying a loading spinner or an error message\n */\nfunction LoadingOverlay({\n isLoaded = false,\n isLoading = true,\n errorMessage = null,\n className = null,\n scrimClassName = 'iris-panel-scrim-background',\n timeout = ThemeExport.transitionMs,\n 'data-testid': dataTestId,\n}: LoadingOverlayProps): JSX.Element {\n const messageTestId =\n dataTestId != null ? `${dataTestId}-message` : undefined;\n const spinnerTestId =\n dataTestId != null ? `${dataTestId}-spinner` : undefined;\n\n return (\n <CSSTransition\n in={Boolean(errorMessage) || !isLoaded || isLoading}\n timeout={timeout}\n classNames={classNames(className, { fade: isLoaded })}\n mountOnEnter\n unmountOnExit\n >\n <div className=\"fill-parent-absolute\" data-testid={dataTestId}>\n <div\n className={classNames(\n 'iris-panel-message-overlay',\n 'fill-parent-absolute',\n { [scrimClassName]: isLoaded }\n )}\n >\n <div className=\"message-content\">\n <div className=\"message-icon\">\n {isLoading && (\n <LoadingSpinner\n className=\"loading-spinner-large\"\n data-testid={spinnerTestId}\n />\n )}\n {!isLoading && errorMessage != null && (\n <FontAwesomeIcon icon={vsWarning} />\n )}\n </div>\n {errorMessage != null && (\n <div className=\"message-text\" data-testid={messageTestId}>\n {errorMessage}\n </div>\n )}\n </div>\n </div>\n </div>\n </CSSTransition>\n );\n}\n\nexport default LoadingOverlay;\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,aAAa,QAAQ,wBAAwB;AACtD,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,SAAS,QAAQ,kBAAkB;AAAC,OACtCC,WAAW;AAAA,OACXC,cAAc;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAarB;AACA;AACA;AACA,SAASC,cAAcA,CAAAC,IAAA,EAQc;EAAA,IARb;IACtBC,QAAQ,GAAG,KAAK;IAChBC,SAAS,GAAG,IAAI;IAChBC,YAAY,GAAG,IAAI;IACnBC,SAAS,GAAG,IAAI;IAChBC,cAAc,GAAG,6BAA6B;IAC9CC,OAAO,GAAGb,WAAW,CAACc,YAAY;IAClC,aAAa,EAAEC;EACI,CAAC,GAAAR,IAAA;EACpB,IAAMS,aAAa,GACjBD,UAAU,IAAI,IAAI,MAAAE,MAAA,CAAMF,UAAU,gBAAaG,SAAS;EAC1D,IAAMC,aAAa,GACjBJ,UAAU,IAAI,IAAI,MAAAE,MAAA,CAAMF,UAAU,gBAAaG,SAAS;EAE1D,oBACEf,IAAA,CAACP,aAAa;IACZwB,EAAE,EAAEC,OAAO,CAACX,YAAY,CAAC,IAAI,CAACF,QAAQ,IAAIC,SAAU;IACpDI,OAAO,EAAEA,OAAQ;IACjBhB,UAAU,EAAEA,UAAU,CAACc,SAAS,EAAE;MAAEW,IAAI,EAAEd;IAAS,CAAC,CAAE;IACtDe,YAAY;IACZC,aAAa;IAAAC,QAAA,eAEbtB,IAAA;MAAKQ,SAAS,EAAC,sBAAsB;MAAC,eAAaI,UAAW;MAAAU,QAAA,eAC5DtB,IAAA;QACEQ,SAAS,EAAEd,UAAU,CACnB,4BAA4B,EAC5B,sBAAsB,EACtB;UAAE,CAACe,cAAc,GAAGJ;QAAS,CAC/B,CAAE;QAAAiB,QAAA,eAEFpB,KAAA;UAAKM,SAAS,EAAC,iBAAiB;UAAAc,QAAA,gBAC9BpB,KAAA;YAAKM,SAAS,EAAC,cAAc;YAAAc,QAAA,GAC1BhB,SAAS,iBACRN,IAAA,CAACF,cAAc;cACbU,SAAS,EAAC,uBAAuB;cACjC,eAAaQ;YAAc,CAC5B,CACF,EACA,CAACV,SAAS,IAAIC,YAAY,IAAI,IAAI,iBACjCP,IAAA,CAACL,eAAe;cAAC4B,IAAI,EAAE3B;YAAU,CAAE,CACpC;UAAA,CACE,CAAC,EACLW,YAAY,IAAI,IAAI,iBACnBP,IAAA;YAAKQ,SAAS,EAAC,cAAc;YAAC,eAAaK,aAAc;YAAAS,QAAA,EACtDf;UAAY,CACV,CACN;QAAA,CACE;MAAC,CACH;IAAC,CACH;EAAC,CACO,CAAC;AAEpB;AAEA,eAAeJ,cAAc"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LoadingSpinner.js","names":["useLayoutEffect","classNames","DOMUtils","jsx","_jsx","LoadingSpinner","_ref","className","dataTestId","syncAnimationStartTime","role"],"sources":["../src/LoadingSpinner.tsx"],"sourcesContent":["import { useLayoutEffect } from 'react';\nimport classNames from 'classnames';\nimport { DOMUtils } from '@deephaven/utils';\nimport './LoadingSpinner.scss';\n\ntype LoadingSpinnerProps = {\n className?: string;\n 'data-testid'?: string;\n};\n\nfunction LoadingSpinner({\n className = '',\n 'data-testid': dataTestId,\n}: LoadingSpinnerProps): JSX.Element {\n useLayoutEffect(() => {\n // Ensure all of our loading spinner animations are synchronized based\n // on same start time.\n DOMUtils.syncAnimationStartTime('loading-spinner-rotate', 0);\n }, []);\n\n return (\n <div\n className={classNames('loading-spinner', className)}\n aria-label=\"Loading...\"\n aria-valuemin={0}\n aria-valuemax={100}\n data-testid={dataTestId}\n role=\"progressbar\"\n />\n );\n}\n\nexport default LoadingSpinner;\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,OAAO;AACvC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,QAAQ,QAAQ,kBAAkB;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAQ5C,SAASC,cAAcA,CAAAC,IAAA,EAGc;EAAA,IAHb;IACtBC,SAAS,GAAG,EAAE;IACd,aAAa,EAAEC;EACI,CAAC,GAAAF,IAAA;EACpBN,eAAe,CAAC,MAAM;IACpB;IACA;IACAE,QAAQ,CAACO,sBAAsB,CAAC,wBAAwB,EAAE,CAAC,CAAC;EAC9D,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEL,IAAA;IACEG,SAAS,EAAEN,UAAU,CAAC,iBAAiB,EAAEM,SAAS,CAAE;IACpD,cAAW,YAAY;IACvB,iBAAe,CAAE;IACjB,iBAAe,GAAI;IACnB,eAAaC,UAAW;IACxBE,IAAI,EAAC;EAAa,CACnB,CAAC;AAEN;AAEA,eAAeL,cAAc"
|
|
1
|
+
{"version":3,"file":"LoadingSpinner.js","names":["useLayoutEffect","classNames","DOMUtils","jsx","_jsx","LoadingSpinner","_ref","className","dataTestId","syncAnimationStartTime","role"],"sources":["../src/LoadingSpinner.tsx"],"sourcesContent":["import { useLayoutEffect } from 'react';\nimport classNames from 'classnames';\nimport { DOMUtils } from '@deephaven/utils';\nimport './LoadingSpinner.scss';\n\ntype LoadingSpinnerProps = {\n className?: string;\n 'data-testid'?: string;\n};\n\nfunction LoadingSpinner({\n className = '',\n 'data-testid': dataTestId,\n}: LoadingSpinnerProps): JSX.Element {\n useLayoutEffect(() => {\n // Ensure all of our loading spinner animations are synchronized based\n // on same start time.\n DOMUtils.syncAnimationStartTime('loading-spinner-rotate', 0);\n }, []);\n\n return (\n <div\n className={classNames('loading-spinner', className)}\n aria-label=\"Loading...\"\n aria-valuemin={0}\n aria-valuemax={100}\n data-testid={dataTestId}\n role=\"progressbar\"\n />\n );\n}\n\nexport default LoadingSpinner;\n"],"mappings":"AAAA,SAASA,eAAe,QAAQ,OAAO;AACvC,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,QAAQ,QAAQ,kBAAkB;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAQ5C,SAASC,cAAcA,CAAAC,IAAA,EAGc;EAAA,IAHb;IACtBC,SAAS,GAAG,EAAE;IACd,aAAa,EAAEC;EACI,CAAC,GAAAF,IAAA;EACpBN,eAAe,CAAC,MAAM;IACpB;IACA;IACAE,QAAQ,CAACO,sBAAsB,CAAC,wBAAwB,EAAE,CAAC,CAAC;EAC9D,CAAC,EAAE,EAAE,CAAC;EAEN,oBACEL,IAAA;IACEG,SAAS,EAAEN,UAAU,CAAC,iBAAiB,EAAEM,SAAS,CAAE;IACpD,cAAW,YAAY;IACvB,iBAAe,CAAE;IACjB,iBAAe,GAAI;IACnB,eAAaC,UAAW;IACxBE,IAAI,EAAC;EAAa,CACnB,CAAC;AAEN;AAEA,eAAeL,cAAc"}
|
package/dist/MaskedInput.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../scss/custom.scss","../scss/bootstrap_overrides.scss","../src/MaskedInput.scss"],"names":[],"mappings":"AAAA;AC6LA;AC3LA;EACE,aDgIA;EC/HA","file":"MaskedInput.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n@import './util.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-input-disabled-fg);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n","@import '../scss/custom.scss';\n\n.masked-input {\n font-family: $font-family-sans-serif;\n font-variant-numeric: tabular-nums;\n}\n"]}
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../scss/custom.scss","../scss/bootstrap_overrides.scss","../src/MaskedInput.scss"],"names":[],"mappings":"AAAA;AC6LA;AC3LA;EACE,aDgIA;EC/HA","file":"MaskedInput.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n@import './util.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-text-disabled);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n","@import '../scss/custom.scss';\n\n.masked-input {\n font-family: $font-family-sans-serif;\n font-variant-numeric: tabular-nums;\n}\n"]}
|