@deephaven/components 0.22.3-deep-bot-test.14 → 0.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/dist/AutoCompleteInput.js +12 -85
  2. package/dist/AutoCompleteInput.js.map +1 -1
  3. package/dist/AutoResizeTextarea.d.ts +5 -5
  4. package/dist/AutoResizeTextarea.d.ts.map +1 -1
  5. package/dist/AutoResizeTextarea.js +8 -23
  6. package/dist/AutoResizeTextarea.js.map +1 -1
  7. package/dist/BasicModal.d.ts +28 -1
  8. package/dist/BasicModal.d.ts.map +1 -1
  9. package/dist/BasicModal.js +2 -8
  10. package/dist/BasicModal.js.map +1 -1
  11. package/dist/Button.d.ts +9 -9
  12. package/dist/Button.d.ts.map +1 -1
  13. package/dist/Button.js +8 -34
  14. package/dist/Button.js.map +1 -1
  15. package/dist/ButtonGroup.d.ts +7 -7
  16. package/dist/ButtonGroup.d.ts.map +1 -1
  17. package/dist/ButtonGroup.js +2 -4
  18. package/dist/ButtonGroup.js.map +1 -1
  19. package/dist/ButtonOld.js.map +1 -1
  20. package/dist/CardFlip.d.ts +2 -2
  21. package/dist/CardFlip.d.ts.map +1 -1
  22. package/dist/CardFlip.js +2 -7
  23. package/dist/CardFlip.js.map +1 -1
  24. package/dist/Checkbox.js +3 -14
  25. package/dist/Checkbox.js.map +1 -1
  26. package/dist/Collapse.d.ts +1 -1
  27. package/dist/Collapse.js +0 -15
  28. package/dist/Collapse.js.map +1 -1
  29. package/dist/ComboBox.js +4 -83
  30. package/dist/ComboBox.js.map +1 -1
  31. package/dist/CopyButton.d.ts +2 -2
  32. package/dist/CopyButton.d.ts.map +1 -1
  33. package/dist/CopyButton.js +2 -4
  34. package/dist/CopyButton.js.map +1 -1
  35. package/dist/CustomTimeSelect.d.ts +3 -3
  36. package/dist/CustomTimeSelect.d.ts.map +1 -1
  37. package/dist/CustomTimeSelect.js +2 -86
  38. package/dist/CustomTimeSelect.js.map +1 -1
  39. package/dist/DateInput.d.ts +1 -1
  40. package/dist/DateInput.d.ts.map +1 -1
  41. package/dist/DateInput.js.map +1 -1
  42. package/dist/DateInputUtils.js +0 -7
  43. package/dist/DateInputUtils.js.map +1 -1
  44. package/dist/DateTimeInput.d.ts +1 -1
  45. package/dist/DateTimeInput.d.ts.map +1 -1
  46. package/dist/DateTimeInput.js +7 -10
  47. package/dist/DateTimeInput.js.map +1 -1
  48. package/dist/DebouncedSearchInput.js +0 -14
  49. package/dist/DebouncedSearchInput.js.map +1 -1
  50. package/dist/DragUtils.d.ts +1 -1
  51. package/dist/DragUtils.d.ts.map +1 -1
  52. package/dist/DragUtils.js +4 -16
  53. package/dist/DragUtils.js.map +1 -1
  54. package/dist/DraggableItemList.d.ts +4 -4
  55. package/dist/DraggableItemList.d.ts.map +1 -1
  56. package/dist/DraggableItemList.js +22 -44
  57. package/dist/DraggableItemList.js.map +1 -1
  58. package/dist/EditableItemList.d.ts +1 -1
  59. package/dist/EditableItemList.d.ts.map +1 -1
  60. package/dist/EditableItemList.js +2 -6
  61. package/dist/EditableItemList.js.map +1 -1
  62. package/dist/HierarchicalCheckboxMenu.d.ts +3 -3
  63. package/dist/HierarchicalCheckboxMenu.d.ts.map +1 -1
  64. package/dist/HierarchicalCheckboxMenu.js +6 -28
  65. package/dist/HierarchicalCheckboxMenu.js.map +1 -1
  66. package/dist/ItemList.d.ts +5 -5
  67. package/dist/ItemList.d.ts.map +1 -1
  68. package/dist/ItemList.js +22 -115
  69. package/dist/ItemList.js.map +1 -1
  70. package/dist/ItemListItem.d.ts +0 -1
  71. package/dist/ItemListItem.d.ts.map +1 -1
  72. package/dist/ItemListItem.js +26 -50
  73. package/dist/ItemListItem.js.map +1 -1
  74. package/dist/LoadingOverlay.d.ts +2 -2
  75. package/dist/LoadingOverlay.d.ts.map +1 -1
  76. package/dist/LoadingOverlay.js +3 -5
  77. package/dist/LoadingOverlay.js.map +1 -1
  78. package/dist/LoadingSpinner.d.ts +2 -2
  79. package/dist/LoadingSpinner.d.ts.map +1 -1
  80. package/dist/LoadingSpinner.js +2 -4
  81. package/dist/LoadingSpinner.js.map +1 -1
  82. package/dist/MaskedInput.d.ts +2 -2
  83. package/dist/MaskedInput.d.ts.map +1 -1
  84. package/dist/MaskedInput.js +26 -85
  85. package/dist/MaskedInput.js.map +1 -1
  86. package/dist/Option.d.ts +2 -2
  87. package/dist/Option.d.ts.map +1 -1
  88. package/dist/Option.js +2 -4
  89. package/dist/Option.js.map +1 -1
  90. package/dist/RadioGroup.d.ts +2 -2
  91. package/dist/RadioGroup.d.ts.map +1 -1
  92. package/dist/RadioGroup.js +4 -6
  93. package/dist/RadioGroup.js.map +1 -1
  94. package/dist/RadioItem.d.ts +1 -1
  95. package/dist/RadioItem.d.ts.map +1 -1
  96. package/dist/RadioItem.js +0 -1
  97. package/dist/RadioItem.js.map +1 -1
  98. package/dist/SearchInput.js +2 -13
  99. package/dist/SearchInput.js.map +1 -1
  100. package/dist/Select.d.ts +2 -2
  101. package/dist/Select.d.ts.map +1 -1
  102. package/dist/Select.js +2 -4
  103. package/dist/Select.js.map +1 -1
  104. package/dist/SelectValueList.d.ts +1 -1
  105. package/dist/SelectValueList.d.ts.map +1 -1
  106. package/dist/SelectValueList.js +0 -28
  107. package/dist/SelectValueList.js.map +1 -1
  108. package/dist/SocketedButton.d.ts +1 -1
  109. package/dist/SocketedButton.d.ts.map +1 -1
  110. package/dist/SocketedButton.js.map +1 -1
  111. package/dist/ThemeExport.d.ts +4 -4
  112. package/dist/ThemeExport.js +0 -4
  113. package/dist/ThemeExport.js.map +1 -1
  114. package/dist/TimeInput.d.ts +2 -2
  115. package/dist/TimeInput.d.ts.map +1 -1
  116. package/dist/TimeInput.js +2 -12
  117. package/dist/TimeInput.js.map +1 -1
  118. package/dist/TimeSlider.d.ts +2 -2
  119. package/dist/TimeSlider.d.ts.map +1 -1
  120. package/dist/TimeSlider.js +19 -33
  121. package/dist/TimeSlider.js.map +1 -1
  122. package/dist/ToastNotification.d.ts +6 -6
  123. package/dist/ToastNotification.d.ts.map +1 -1
  124. package/dist/ToastNotification.js +2 -4
  125. package/dist/ToastNotification.js.map +1 -1
  126. package/dist/UISwitch.d.ts +2 -2
  127. package/dist/UISwitch.d.ts.map +1 -1
  128. package/dist/UISwitch.js +2 -4
  129. package/dist/UISwitch.js.map +1 -1
  130. package/dist/ValidateLabelInput.d.ts +1 -1
  131. package/dist/ValidateLabelInput.d.ts.map +1 -1
  132. package/dist/ValidateLabelInput.js +3 -3
  133. package/dist/ValidateLabelInput.js.map +1 -1
  134. package/dist/context-actions/ContextActionUtils.d.ts +3 -3
  135. package/dist/context-actions/ContextActionUtils.d.ts.map +1 -1
  136. package/dist/context-actions/ContextActionUtils.js +9 -40
  137. package/dist/context-actions/ContextActionUtils.js.map +1 -1
  138. package/dist/context-actions/ContextActions.js +1 -34
  139. package/dist/context-actions/ContextActions.js.map +1 -1
  140. package/dist/context-actions/ContextMenu.js +29 -110
  141. package/dist/context-actions/ContextMenu.js.map +1 -1
  142. package/dist/context-actions/ContextMenuItem.d.ts.map +1 -1
  143. package/dist/context-actions/ContextMenuItem.js +3 -19
  144. package/dist/context-actions/ContextMenuItem.js.map +1 -1
  145. package/dist/context-actions/ContextMenuRoot.d.ts +1 -1
  146. package/dist/context-actions/ContextMenuRoot.d.ts.map +1 -1
  147. package/dist/context-actions/ContextMenuRoot.js +7 -26
  148. package/dist/context-actions/ContextMenuRoot.js.map +1 -1
  149. package/dist/context-actions/GlobalContextAction.js +0 -15
  150. package/dist/context-actions/GlobalContextAction.js.map +1 -1
  151. package/dist/context-actions/GlobalContextActions.js +0 -6
  152. package/dist/context-actions/GlobalContextActions.js.map +1 -1
  153. package/dist/context-actions/index.js.map +1 -1
  154. package/dist/index.js.map +1 -1
  155. package/dist/menu-actions/DropdownMenu.d.ts +3 -3
  156. package/dist/menu-actions/DropdownMenu.d.ts.map +1 -1
  157. package/dist/menu-actions/DropdownMenu.js +4 -32
  158. package/dist/menu-actions/DropdownMenu.js.map +1 -1
  159. package/dist/menu-actions/Menu.d.ts +3 -3
  160. package/dist/menu-actions/Menu.d.ts.map +1 -1
  161. package/dist/menu-actions/Menu.js +7 -52
  162. package/dist/menu-actions/Menu.js.map +1 -1
  163. package/dist/menu-actions/index.d.ts +2 -1
  164. package/dist/menu-actions/index.d.ts.map +1 -1
  165. package/dist/menu-actions/index.js +2 -2
  166. package/dist/menu-actions/index.js.map +1 -1
  167. package/dist/modal/Modal.d.ts +2 -2
  168. package/dist/modal/Modal.d.ts.map +1 -1
  169. package/dist/modal/Modal.js +3 -9
  170. package/dist/modal/Modal.js.map +1 -1
  171. package/dist/modal/ModalBody.d.ts +1 -1
  172. package/dist/modal/ModalBody.d.ts.map +1 -1
  173. package/dist/modal/ModalBody.js +2 -4
  174. package/dist/modal/ModalBody.js.map +1 -1
  175. package/dist/modal/ModalFooter.d.ts +1 -1
  176. package/dist/modal/ModalFooter.d.ts.map +1 -1
  177. package/dist/modal/ModalFooter.js +2 -4
  178. package/dist/modal/ModalFooter.js.map +1 -1
  179. package/dist/modal/ModalHeader.d.ts +1 -1
  180. package/dist/modal/ModalHeader.d.ts.map +1 -1
  181. package/dist/modal/ModalHeader.js +2 -4
  182. package/dist/modal/ModalHeader.js.map +1 -1
  183. package/dist/modal/index.js.map +1 -1
  184. package/dist/navigation/Menu.d.ts +3 -3
  185. package/dist/navigation/Menu.d.ts.map +1 -1
  186. package/dist/navigation/Menu.js +2 -2
  187. package/dist/navigation/Menu.js.map +1 -1
  188. package/dist/navigation/MenuItem.d.ts +4 -4
  189. package/dist/navigation/MenuItem.d.ts.map +1 -1
  190. package/dist/navigation/MenuItem.js +4 -7
  191. package/dist/navigation/MenuItem.js.map +1 -1
  192. package/dist/navigation/Page.d.ts +2 -2
  193. package/dist/navigation/Page.d.ts.map +1 -1
  194. package/dist/navigation/Page.js +2 -3
  195. package/dist/navigation/Page.js.map +1 -1
  196. package/dist/navigation/Stack.d.ts +2 -2
  197. package/dist/navigation/Stack.d.ts.map +1 -1
  198. package/dist/navigation/Stack.js +3 -6
  199. package/dist/navigation/Stack.js.map +1 -1
  200. package/dist/navigation/index.js.map +1 -1
  201. package/dist/popper/Popper.d.ts +2 -2
  202. package/dist/popper/Popper.d.ts.map +1 -1
  203. package/dist/popper/Popper.js +13 -46
  204. package/dist/popper/Popper.js.map +1 -1
  205. package/dist/popper/Tooltip.d.ts +1 -1
  206. package/dist/popper/Tooltip.d.ts.map +1 -1
  207. package/dist/popper/Tooltip.js +0 -56
  208. package/dist/popper/Tooltip.js.map +1 -1
  209. package/dist/popper/index.js.map +1 -1
  210. package/dist/shortcuts/GlobalShortcuts.js.map +1 -1
  211. package/dist/shortcuts/Shortcut.d.ts +2 -2
  212. package/dist/shortcuts/Shortcut.d.ts.map +1 -1
  213. package/dist/shortcuts/Shortcut.js +19 -76
  214. package/dist/shortcuts/Shortcut.js.map +1 -1
  215. package/dist/shortcuts/ShortcutRegistry.d.ts +1 -1
  216. package/dist/shortcuts/ShortcutRegistry.d.ts.map +1 -1
  217. package/dist/shortcuts/ShortcutRegistry.js +3 -18
  218. package/dist/shortcuts/ShortcutRegistry.js.map +1 -1
  219. package/dist/shortcuts/index.js.map +1 -1
  220. package/package.json +8 -8
@@ -1 +1 @@
1
- {"version":3,"file":"ItemList.js","names":["React","PureComponent","memoize","FixedSizeList","List","AutoSizer","Log","RangeUtils","ItemListItem","ContextActionUtils","log","module","ItemList","renderItem","item","displayValue","value","constructor","props","index","selectedRanges","isSelected","max","CACHE_SIZE","itemIndex","key","isFocused","style","disableSelect","content","handleItemContextMenu","handleItemDoubleClick","handleItemMouseDown","handleItemFocus","handleItemBlur","handleItemMouseMove","handleItemMouseUp","onKeyDown","component","forwardRef","ref","displayName","items","bind","handleItemsRendered","handleWindowMouseUp","handleKeyDown","handleMouseLeave","handleScroll","handleResize","renderInnerElement","list","createRef","listContainer","isStickyBottom","state","focusIndex","mouseDownIndex","overscanStartIndex","height","isDragging","isStuckToBottom","scrollOffset","componentDidUpdate","prevProps","prevState","propSelectedRanges","itemCount","isListAtBottom","scrollToBottom","sendViewportUpdate","setSelectedRanges","onSelectionChange","onFocusChange","componentWillUnmount","window","removeEventListener","focus","current","restoreScrollPosition","scrollTo","getElement","focusSelector","elements","querySelectorAll","elementIndex","focusItem","setState","element","HTMLElement","scrollToItem","scrollIntoView","block","e","isModifierDown","isModifierKeyDown","toggleSelect","shiftKey","isDoubleClickSelect","onSelect","selectRange","target","indexOf","tagName","toLowerCase","button","length","selectItem","addEventListener","debug2","currentTarget","relatedTarget","contains","isDragSelect","isMultiSelect","getItemSelected","deselectAll","Math","min","isDeselectOnClick","isShiftDown","resetMouseState","oldFocus","newFocus","stopPropagation","preventDefault","lastRange","scrollUpdateWasRequested","isDeselectable","deselectItem","deselectRange","range","validateRange","onViewportChange","rowHeight","topRow","floor","bottomRow","ceil","offset","getCachedItem","render","overscanCount","dataTestId","width","getItemData","getOuterElement","getInnerElement","DEFAULT_ROW_HEIGHT","DEFAULT_OVERSCAN","undefined"],"sources":["../src/ItemList.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport memoize from 'memoizee';\nimport {\n FixedSizeList as List,\n ListOnItemsRenderedProps,\n ListOnScrollProps,\n} from 'react-window';\nimport AutoSizer, { Size } from 'react-virtualized-auto-sizer';\nimport Log from '@deephaven/log';\nimport { RangeUtils, Range } from '@deephaven/utils';\nimport ItemListItem from './ItemListItem';\nimport { ContextActionUtils } from './context-actions';\nimport './ItemList.scss';\n\nconst log = Log.module('ItemList');\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: 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: Range[]): void;\n onViewportChange(topRow: number, bottomRow: number): void;\n overscanCount: number;\n selectedRanges: 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: Range[];\n overscanStartIndex: number;\n height: number | null;\n isDragging: boolean;\n isStuckToBottom: boolean;\n scrollOffset: 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 };\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: 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((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\n getInnerElement = memoize(() => {\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\n getItemData = memoize(\n (items: T[], selectedRanges: Range[], renderItem: RenderItemFn<T>) => ({\n items,\n selectedRanges,\n renderItem,\n })\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 // 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({ mouseDownIndex: index });\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 } = this.state;\n\n if (mouseDownIndex == null || disableSelect) return;\n\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: 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
+ {"version":3,"file":"ItemList.js","names":["React","PureComponent","memoize","FixedSizeList","List","AutoSizer","Log","RangeUtils","ItemListItem","ContextActionUtils","log","module","ItemList","renderItem","item","displayValue","value","constructor","props","index","selectedRanges","isSelected","max","CACHE_SIZE","itemIndex","key","isFocused","style","disableSelect","content","handleItemContextMenu","handleItemDoubleClick","handleItemMouseDown","handleItemFocus","handleItemBlur","handleItemMouseMove","handleItemMouseUp","onKeyDown","component","forwardRef","ref","displayName","items","bind","handleItemsRendered","handleWindowMouseUp","handleKeyDown","handleMouseLeave","handleScroll","handleResize","renderInnerElement","list","createRef","listContainer","isStickyBottom","state","focusIndex","mouseDownIndex","overscanStartIndex","height","isDragging","isStuckToBottom","scrollOffset","componentDidUpdate","prevProps","prevState","propSelectedRanges","itemCount","isListAtBottom","scrollToBottom","sendViewportUpdate","setSelectedRanges","onSelectionChange","onFocusChange","componentWillUnmount","window","removeEventListener","focus","current","restoreScrollPosition","scrollTo","getElement","focusSelector","elements","querySelectorAll","elementIndex","focusItem","setState","element","HTMLElement","scrollToItem","scrollIntoView","block","e","isModifierDown","isModifierKeyDown","toggleSelect","shiftKey","isDoubleClickSelect","onSelect","selectRange","target","indexOf","tagName","toLowerCase","button","length","selectItem","addEventListener","debug2","currentTarget","relatedTarget","contains","isDragSelect","isMultiSelect","getItemSelected","deselectAll","Math","min","isDeselectOnClick","isShiftDown","resetMouseState","oldFocus","newFocus","stopPropagation","preventDefault","lastRange","scrollUpdateWasRequested","isDeselectable","deselectItem","deselectRange","range","validateRange","onViewportChange","rowHeight","topRow","floor","bottomRow","ceil","offset","getCachedItem","render","overscanCount","dataTestId","width","getItemData","getOuterElement","getInnerElement","DEFAULT_ROW_HEIGHT","DEFAULT_OVERSCAN","undefined"],"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 ListOnItemsRenderedProps,\n ListOnScrollProps,\n} from 'react-window';\nimport AutoSizer, { Size } from 'react-virtualized-auto-sizer';\nimport Log from '@deephaven/log';\nimport { RangeUtils, Range } from '@deephaven/utils';\nimport ItemListItem from './ItemListItem';\nimport { ContextActionUtils } from './context-actions';\nimport './ItemList.scss';\n\nconst log = Log.module('ItemList');\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: 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: Range[]): void;\n onViewportChange(topRow: number, bottomRow: number): void;\n overscanCount: number;\n selectedRanges: 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: Range[];\n overscanStartIndex: number;\n height: number | null;\n isDragging: boolean;\n isStuckToBottom: boolean;\n scrollOffset: 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 };\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: 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((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\n getInnerElement = memoize(() => {\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\n getItemData = memoize(\n (items: T[], selectedRanges: Range[], renderItem: RenderItemFn<T>) => ({\n items,\n selectedRanges,\n renderItem,\n })\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 // 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({ mouseDownIndex: index });\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 } = this.state;\n\n if (mouseDownIndex == null || disableSelect) return;\n\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: 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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"}
@@ -30,7 +30,6 @@ declare class ItemListItem extends Component<ItemListItemProps, Record<string, n
30
30
  isFocused: boolean;
31
31
  isSelected: boolean;
32
32
  itemIndex: number;
33
- disableSelect: boolean;
34
33
  'data-testid': undefined;
35
34
  onBlur(): void;
36
35
  onClick(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"ItemListItem.d.ts","sourceRoot":"","sources":["../src/ItemListItem.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEzC,OAAO,qBAAqB,CAAC;AAK7B,UAAU,iBAAiB;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACjE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IAClE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACxE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACrE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IAChE,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACpE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACnE,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IAChE,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACxE,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IAClE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACtE,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACtE,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI,CAAC;IACpE,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;IAC3B,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,cAAM,YAAa,SAAQ,SAAS,CAAC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC5E,MAAM,CAAC,YAAY;;;;;;;;kBASP,IAAI;mBAGH,IAAI;yBAGE,IAAI;uBAGN,IAAI;kBAGT,IAAI;sBAGA,IAAI;qBAGL,IAAI;kBAGP,IAAI;yBAGG,IAAI;mBAGV,IAAI;uBAGA,IAAI;uBAGJ,IAAI;qBAGN,IAAI;;MAIjB;IAEF,MAAM,CAAC,aAAa,IAAI,OAAO;gBAKnB,KAAK,EAAE,iBAAiB;IAoBpC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;IAEzC,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAKrD,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAKtD,WAAW,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAKtD,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAK5D,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI;IAKzD,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI;IAKpD,cAAc,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI;IAOxD,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI;IAKvD,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,CAAC,GAAG,IAAI;IAKpD,iBAAiB,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAK5D,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAK1D,eAAe,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAK1D,aAAa,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,GAAG,IAAI;IAKxD,MAAM,IAAI,GAAG,CAAC,OAAO;CA0CtB;AAED,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"ItemListItem.d.ts","sourceRoot":"","sources":["../src/ItemListItem.tsx"],"names":[],"mappings":"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"}
@@ -1,22 +1,17 @@
1
1
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
-
3
2
  import React, { Component } from 'react';
4
3
  import classNames from 'classnames';
5
4
  import "./ItemListItem.css";
6
5
  import Log from '@deephaven/log';
7
6
  var log = Log.module('ItemListItem');
8
-
9
7
  class ItemListItem extends Component {
10
8
  static handleKeyDown() {
11
9
  log.log('ItemListItem.handleKeyDown false');
12
10
  return false;
13
11
  }
14
-
15
12
  constructor(props) {
16
13
  super(props);
17
-
18
14
  _defineProperty(this, "itemRef", void 0);
19
-
20
15
  this.handleBlur = this.handleBlur.bind(this);
21
16
  this.handleFocus = this.handleFocus.bind(this);
22
17
  this.handleClick = this.handleClick.bind(this);
@@ -32,7 +27,6 @@ class ItemListItem extends Component {
32
27
  this.handleMouseUp = this.handleMouseUp.bind(this);
33
28
  this.itemRef = /*#__PURE__*/React.createRef();
34
29
  }
35
-
36
30
  handleBlur(e) {
37
31
  var {
38
32
  itemIndex,
@@ -40,7 +34,6 @@ class ItemListItem extends Component {
40
34
  } = this.props;
41
35
  onBlur(itemIndex, e);
42
36
  }
43
-
44
37
  handleFocus(e) {
45
38
  var {
46
39
  itemIndex,
@@ -48,7 +41,6 @@ class ItemListItem extends Component {
48
41
  } = this.props;
49
42
  onFocus(itemIndex, e);
50
43
  }
51
-
52
44
  handleClick(e) {
53
45
  var {
54
46
  itemIndex,
@@ -56,7 +48,6 @@ class ItemListItem extends Component {
56
48
  } = this.props;
57
49
  onClick(itemIndex, e);
58
50
  }
59
-
60
51
  handleContextMenu(e) {
61
52
  var {
62
53
  itemIndex,
@@ -64,7 +55,6 @@ class ItemListItem extends Component {
64
55
  } = this.props;
65
56
  onContextMenu(itemIndex, e);
66
57
  }
67
-
68
58
  handleDragStart(e) {
69
59
  var {
70
60
  itemIndex,
@@ -72,7 +62,6 @@ class ItemListItem extends Component {
72
62
  } = this.props;
73
63
  onDragStart(itemIndex, e);
74
64
  }
75
-
76
65
  handleDrag(e) {
77
66
  var {
78
67
  itemIndex,
@@ -80,7 +69,6 @@ class ItemListItem extends Component {
80
69
  } = this.props;
81
70
  onDrag(itemIndex, e);
82
71
  }
83
-
84
72
  handleDragOver(e) {
85
73
  // Have to call preventDefault otherwise onDrop won't get triggered
86
74
  e.preventDefault();
@@ -90,7 +78,6 @@ class ItemListItem extends Component {
90
78
  } = this.props;
91
79
  onDragOver(itemIndex, e);
92
80
  }
93
-
94
81
  handleDragEnd(e) {
95
82
  var {
96
83
  itemIndex,
@@ -98,7 +85,6 @@ class ItemListItem extends Component {
98
85
  } = this.props;
99
86
  onDragEnd(itemIndex, e);
100
87
  }
101
-
102
88
  handleDrop(e) {
103
89
  var {
104
90
  itemIndex,
@@ -106,7 +92,6 @@ class ItemListItem extends Component {
106
92
  } = this.props;
107
93
  onDrop(itemIndex, e);
108
94
  }
109
-
110
95
  handleDoubleClick(e) {
111
96
  var {
112
97
  itemIndex,
@@ -114,7 +99,6 @@ class ItemListItem extends Component {
114
99
  } = this.props;
115
100
  onDoubleClick(itemIndex, e);
116
101
  }
117
-
118
102
  handleMouseMove(e) {
119
103
  var {
120
104
  itemIndex,
@@ -122,7 +106,6 @@ class ItemListItem extends Component {
122
106
  } = this.props;
123
107
  onMouseMove(itemIndex, e);
124
108
  }
125
-
126
109
  handleMouseDown(e) {
127
110
  var {
128
111
  itemIndex,
@@ -130,7 +113,6 @@ class ItemListItem extends Component {
130
113
  } = this.props;
131
114
  onMouseDown(itemIndex, e);
132
115
  }
133
-
134
116
  handleMouseUp(e) {
135
117
  var {
136
118
  itemIndex,
@@ -138,7 +120,6 @@ class ItemListItem extends Component {
138
120
  } = this.props;
139
121
  onMouseUp(itemIndex, e);
140
122
  }
141
-
142
123
  render() {
143
124
  var {
144
125
  isDraggable,
@@ -178,59 +159,54 @@ class ItemListItem extends Component {
178
159
  "data-testid": dataTestId
179
160
  }, children);
180
161
  }
181
-
182
162
  }
183
-
184
163
  _defineProperty(ItemListItem, "defaultProps", {
185
164
  children: null,
186
165
  isDraggable: false,
187
166
  isFocused: false,
188
167
  isSelected: false,
189
168
  itemIndex: 0,
190
- disableSelect: false,
191
169
  'data-testid': undefined,
192
-
193
- onBlur() {// no-op
170
+ onBlur() {
171
+ // no-op
194
172
  },
195
-
196
- onClick() {// no-op
173
+ onClick() {
174
+ // no-op
197
175
  },
198
-
199
- onContextMenu() {// no-op
176
+ onContextMenu() {
177
+ // no-op
200
178
  },
201
-
202
- onDragStart() {// no-op
179
+ onDragStart() {
180
+ // no-op
203
181
  },
204
-
205
- onDrag() {// no-op
182
+ onDrag() {
183
+ // no-op
206
184
  },
207
-
208
- onDragOver() {// no-op
185
+ onDragOver() {
186
+ // no-op
209
187
  },
210
-
211
- onDragEnd() {// no-op
188
+ onDragEnd() {
189
+ // no-op
212
190
  },
213
-
214
- onDrop() {// no-op
191
+ onDrop() {
192
+ // no-op
215
193
  },
216
-
217
- onDoubleClick() {// no-op
194
+ onDoubleClick() {
195
+ // no-op
218
196
  },
219
-
220
- onFocus() {// no-op
197
+ onFocus() {
198
+ // no-op
221
199
  },
222
-
223
- onMouseDown() {// no-op
200
+ onMouseDown() {
201
+ // no-op
224
202
  },
225
-
226
- onMouseMove() {// no-op
203
+ onMouseMove() {
204
+ // no-op
227
205
  },
228
-
229
- onMouseUp() {// no-op
206
+ onMouseUp() {
207
+ // no-op
230
208
  },
231
-
232
209
  style: {}
233
210
  });
234
-
235
211
  export default ItemListItem;
236
212
  //# sourceMappingURL=ItemListItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ItemListItem.js","names":["React","Component","classNames","Log","log","module","ItemListItem","handleKeyDown","constructor","props","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","active","disableSelect","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 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 disableSelect: false,\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 onContextMenu={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
+ {"version":3,"file":"ItemListItem.js","names":["React","Component","classNames","Log","log","module","ItemListItem","handleKeyDown","constructor","props","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","active","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 onContextMenu={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,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import './LoadingOverlay.scss';
3
- declare type LoadingOverlayProps = {
3
+ type LoadingOverlayProps = {
4
4
  isLoaded: boolean;
5
5
  isLoading: boolean;
6
6
  errorMessage: string | null;
@@ -9,6 +9,6 @@ declare type LoadingOverlayProps = {
9
9
  /**
10
10
  * A loading overlay that handles displaying a loading spinner or an error message
11
11
  */
12
- declare const LoadingOverlay: ({ isLoaded, isLoading, errorMessage, "data-testid": dataTestId, }: LoadingOverlayProps) => JSX.Element;
12
+ declare function LoadingOverlay({ isLoaded, isLoading, errorMessage, 'data-testid': dataTestId, }: LoadingOverlayProps): JSX.Element;
13
13
  export default LoadingOverlay;
14
14
  //# sourceMappingURL=LoadingOverlay.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingOverlay.d.ts","sourceRoot":"","sources":["../src/LoadingOverlay.tsx"],"names":[],"mappings":";AAOA,OAAO,uBAAuB,CAAC;AAE/B,aAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,cAAc,sEAKjB,mBAAmB,KAAG,WA0BxB,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"LoadingOverlay.d.ts","sourceRoot":"","sources":["../src/LoadingOverlay.tsx"],"names":[],"mappings":";AAOA,OAAO,uBAAuB,CAAC;AAE/B,KAAK,mBAAmB,GAAG;IACzB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;GAEG;AACH,iBAAS,cAAc,CAAC,EACtB,QAAgB,EAChB,SAAgB,EAChB,YAAmB,EACnB,aAAa,EAAE,UAAU,GAC1B,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CA8BnC;AAED,eAAe,cAAc,CAAC"}
@@ -6,11 +6,10 @@ import { vsWarning } from '@deephaven/icons';
6
6
  import ThemeExport from "./ThemeExport.js";
7
7
  import LoadingSpinner from "./LoadingSpinner.js";
8
8
  import "./LoadingOverlay.css";
9
-
10
9
  /**
11
10
  * A loading overlay that handles displaying a loading spinner or an error message
12
11
  */
13
- var LoadingOverlay = _ref => {
12
+ function LoadingOverlay(_ref) {
14
13
  var {
15
14
  isLoaded = false,
16
15
  isLoading = true,
@@ -34,12 +33,11 @@ var LoadingOverlay = _ref => {
34
33
  className: "message-content"
35
34
  }, /*#__PURE__*/React.createElement("div", {
36
35
  className: "message-icon"
37
- }, isLoading && /*#__PURE__*/React.createElement(LoadingSpinner, null), !isLoading && errorMessage && /*#__PURE__*/React.createElement(FontAwesomeIcon, {
36
+ }, isLoading && /*#__PURE__*/React.createElement(LoadingSpinner, null), !isLoading && errorMessage != null && /*#__PURE__*/React.createElement(FontAwesomeIcon, {
38
37
  icon: vsWarning
39
38
  })), /*#__PURE__*/React.createElement("div", {
40
39
  className: "message-text"
41
40
  }, errorMessage)))));
42
- };
43
-
41
+ }
44
42
  export default LoadingOverlay;
45
43
  //# sourceMappingURL=LoadingOverlay.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingOverlay.js","names":["React","CSSTransition","classNames","FontAwesomeIcon","vsWarning","ThemeExport","LoadingSpinner","LoadingOverlay","isLoaded","isLoading","errorMessage","dataTestId","Boolean","transitionMs"],"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 'data-testid'?: string;\n};\n\n/**\n * A loading overlay that handles displaying a loading spinner or an error message\n */\nconst LoadingOverlay = ({\n isLoaded = false,\n isLoading = true,\n errorMessage = null,\n 'data-testid': dataTestId,\n}: LoadingOverlayProps): JSX.Element => (\n <CSSTransition\n in={Boolean(errorMessage) || !isLoaded || isLoading}\n timeout={ThemeExport.transitionMs}\n classNames={isLoaded ? 'fade' : ''}\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 { 'iris-panel-scrim-background': isLoaded }\n )}\n >\n <div className=\"message-content\">\n <div className=\"message-icon\">\n {isLoading && <LoadingSpinner />}\n {!isLoading && errorMessage && <FontAwesomeIcon icon={vsWarning} />}\n </div>\n <div className=\"message-text\">{errorMessage}</div>\n </div>\n </div>\n </div>\n </CSSTransition>\n);\n\nexport default LoadingOverlay;\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,aAAT,QAA8B,wBAA9B;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,SAAT,QAA0B,kBAA1B;OACOC,W;OACAC,c;;;AAUP;AACA;AACA;AACA,IAAMC,cAAc,GAAG;EAAA,IAAC;IACtBC,QAAQ,GAAG,KADW;IAEtBC,SAAS,GAAG,IAFU;IAGtBC,YAAY,GAAG,IAHO;IAItB,eAAeC;EAJO,CAAD;EAAA,oBAMrB,oBAAC,aAAD;IACE,EAAE,EAAEC,OAAO,CAACF,YAAD,CAAP,IAAyB,CAACF,QAA1B,IAAsCC,SAD5C;IAEE,OAAO,EAAEJ,WAAW,CAACQ,YAFvB;IAGE,UAAU,EAAEL,QAAQ,GAAG,MAAH,GAAY,EAHlC;IAIE,YAAY,MAJd;IAKE,aAAa;EALf,gBAOE;IAAK,SAAS,EAAC,sBAAf;IAAsC,eAAaG;EAAnD,gBACE;IACE,SAAS,EAAET,UAAU,CACnB,4BADmB,EAEnB,sBAFmB,EAGnB;MAAE,+BAA+BM;IAAjC,CAHmB;EADvB,gBAOE;IAAK,SAAS,EAAC;EAAf,gBACE;IAAK,SAAS,EAAC;EAAf,GACGC,SAAS,iBAAI,oBAAC,cAAD,OADhB,EAEG,CAACA,SAAD,IAAcC,YAAd,iBAA8B,oBAAC,eAAD;IAAiB,IAAI,EAAEN;EAAvB,EAFjC,CADF,eAKE;IAAK,SAAS,EAAC;EAAf,GAA+BM,YAA/B,CALF,CAPF,CADF,CAPF,CANqB;AAAA,CAAvB;;AAiCA,eAAeH,cAAf"}
1
+ {"version":3,"file":"LoadingOverlay.js","names":["React","CSSTransition","classNames","FontAwesomeIcon","vsWarning","ThemeExport","LoadingSpinner","LoadingOverlay","isLoaded","isLoading","errorMessage","dataTestId","Boolean","transitionMs"],"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 '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 'data-testid': dataTestId,\n}: LoadingOverlayProps): JSX.Element {\n return (\n <CSSTransition\n in={Boolean(errorMessage) || !isLoaded || isLoading}\n timeout={ThemeExport.transitionMs}\n classNames={isLoaded ? 'fade' : ''}\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 { 'iris-panel-scrim-background': isLoaded }\n )}\n >\n <div className=\"message-content\">\n <div className=\"message-icon\">\n {isLoading && <LoadingSpinner />}\n {!isLoading && errorMessage != null && (\n <FontAwesomeIcon icon={vsWarning} />\n )}\n </div>\n <div className=\"message-text\">{errorMessage}</div>\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;AAUrB;AACA;AACA;AACA,SAASC,cAAc,OAKc;EAAA,IALb;IACtBC,QAAQ,GAAG,KAAK;IAChBC,SAAS,GAAG,IAAI;IAChBC,YAAY,GAAG,IAAI;IACnB,aAAa,EAAEC;EACI,CAAC;EACpB,oBACE,oBAAC,aAAa;IACZ,EAAE,EAAEC,OAAO,CAACF,YAAY,CAAC,IAAI,CAACF,QAAQ,IAAIC,SAAU;IACpD,OAAO,EAAEJ,WAAW,CAACQ,YAAa;IAClC,UAAU,EAAEL,QAAQ,GAAG,MAAM,GAAG,EAAG;IACnC,YAAY;IACZ,aAAa;EAAA,gBAEb;IAAK,SAAS,EAAC,sBAAsB;IAAC,eAAaG;EAAW,gBAC5D;IACE,SAAS,EAAET,UAAU,CACnB,4BAA4B,EAC5B,sBAAsB,EACtB;MAAE,6BAA6B,EAAEM;IAAS,CAAC;EAC3C,gBAEF;IAAK,SAAS,EAAC;EAAiB,gBAC9B;IAAK,SAAS,EAAC;EAAc,GAC1BC,SAAS,iBAAI,oBAAC,cAAc,OAAG,EAC/B,CAACA,SAAS,IAAIC,YAAY,IAAI,IAAI,iBACjC,oBAAC,eAAe;IAAC,IAAI,EAAEN;EAAU,EAClC,CACG,eACN;IAAK,SAAS,EAAC;EAAc,GAAEM,YAAY,CAAO,CAC9C,CACF,CACF,CACQ;AAEpB;AAEA,eAAeH,cAAc"}
@@ -1,9 +1,9 @@
1
1
  /// <reference types="react" />
2
2
  import './LoadingSpinner.scss';
3
- declare type LoadingSpinnerProps = {
3
+ type LoadingSpinnerProps = {
4
4
  className?: string;
5
5
  'data-testid'?: string;
6
6
  };
7
- declare const LoadingSpinner: ({ className, "data-testid": dataTestId, }: LoadingSpinnerProps) => JSX.Element;
7
+ declare function LoadingSpinner({ className, 'data-testid': dataTestId, }: LoadingSpinnerProps): JSX.Element;
8
8
  export default LoadingSpinner;
9
9
  //# sourceMappingURL=LoadingSpinner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoadingSpinner.d.ts","sourceRoot":"","sources":["../src/LoadingSpinner.tsx"],"names":[],"mappings":";AAIA,OAAO,uBAAuB,CAAC;AAE/B,aAAK,mBAAmB,GAAG;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,QAAA,MAAM,cAAc,8CAGjB,mBAAmB,KAAG,WAQxB,CAAC;AAEF,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"LoadingSpinner.d.ts","sourceRoot":"","sources":["../src/LoadingSpinner.tsx"],"names":[],"mappings":";AAIA,OAAO,uBAAuB,CAAC;AAE/B,KAAK,mBAAmB,GAAG;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF,iBAAS,cAAc,CAAC,EACtB,SAAc,EACd,aAAa,EAAE,UAAU,GAC1B,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CAUnC;AAED,eAAe,cAAc,CAAC"}
@@ -3,8 +3,7 @@ import classNames from 'classnames';
3
3
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
4
  import { vsCircleLargeOutline, vsLoading } from '@deephaven/icons';
5
5
  import "./LoadingSpinner.css";
6
-
7
- var LoadingSpinner = _ref => {
6
+ function LoadingSpinner(_ref) {
8
7
  var {
9
8
  className = '',
10
9
  'data-testid': dataTestId
@@ -20,7 +19,6 @@ var LoadingSpinner = _ref => {
20
19
  className: "text-primary",
21
20
  spin: true
22
21
  }));
23
- };
24
-
22
+ }
25
23
  export default LoadingSpinner;
26
24
  //# sourceMappingURL=LoadingSpinner.js.map