@deephaven/code-studio 0.77.1-beta.0 → 0.77.1-beta.4

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 (50) hide show
  1. package/build/assets/{AppRoot-7ffbd4ba.js → AppRoot-f69a0140.js} +3 -3
  2. package/build/assets/{AppRoot-7ffbd4ba.js.map → AppRoot-f69a0140.js.map} +1 -1
  3. package/build/assets/{Chart-e2a3a19c.js → Chart-19846143.js} +2 -2
  4. package/build/assets/{Chart-e2a3a19c.js.map → Chart-19846143.js.map} +1 -1
  5. package/build/assets/{ControlType-c6032251.js → ControlType-5e65a1f9.js} +3 -3
  6. package/build/assets/{ControlType-c6032251.js.map → ControlType-5e65a1f9.js.map} +1 -1
  7. package/build/assets/FontBootstrap-301270dd.css +1 -0
  8. package/build/assets/{FontBootstrap-bd217cd5.js → FontBootstrap-dafd12df.js} +2 -2
  9. package/build/assets/{FontBootstrap-bd217cd5.js.map → FontBootstrap-dafd12df.js.map} +1 -1
  10. package/build/assets/{FormatterUtils-d6d63795.js → FormatterUtils-84854bf0.js} +2 -2
  11. package/build/assets/{FormatterUtils-d6d63795.js.map → FormatterUtils-84854bf0.js.map} +1 -1
  12. package/build/assets/{Grid-4aafc4c0.js → Grid-2da8c6ae.js} +2 -2
  13. package/build/assets/{Grid-4aafc4c0.js.map → Grid-2da8c6ae.js.map} +1 -1
  14. package/build/assets/{GridRenderer-1283ab17.js → GridRenderer-bc76a490.js} +2 -2
  15. package/build/assets/GridRenderer-bc76a490.js.map +1 -0
  16. package/build/assets/{IrisGrid-d548b68a.js → IrisGrid-4566fcfe.js} +2 -2
  17. package/build/assets/{IrisGrid-d548b68a.js.map → IrisGrid-4566fcfe.js.map} +1 -1
  18. package/build/assets/{IrisGridModel-6326e446.js → IrisGridModel-5eee50a2.js} +2 -2
  19. package/build/assets/{IrisGridModel-6326e446.js.map → IrisGridModel-5eee50a2.js.map} +1 -1
  20. package/build/assets/{IrisGridShortcuts-5f94b7a6.js → IrisGridShortcuts-ce1afae5.js} +2 -2
  21. package/build/assets/{IrisGridShortcuts-5f94b7a6.js.map → IrisGridShortcuts-ce1afae5.js.map} +1 -1
  22. package/build/assets/{IrisGridThemeProvider-47181f2a.css → IrisGridThemeProvider-3984e29a.css} +1 -1
  23. package/build/assets/{IrisGridThemeProvider-ff3e508c.js → IrisGridThemeProvider-3c6c8cb6.js} +2 -2
  24. package/build/assets/{IrisGridThemeProvider-ff3e508c.js.map → IrisGridThemeProvider-3c6c8cb6.js.map} +1 -1
  25. package/build/assets/{MarkdownEditor-4e90cc6f.js → MarkdownEditor-c76b2153.js} +2 -2
  26. package/build/assets/{MarkdownEditor-4e90cc6f.js.map → MarkdownEditor-c76b2153.js.map} +1 -1
  27. package/build/assets/{MarkdownNotebook-d2d8c979.js → MarkdownNotebook-4a4ccc33.js} +2 -2
  28. package/build/assets/{MarkdownNotebook-d2d8c979.js.map → MarkdownNotebook-4a4ccc33.js.map} +1 -1
  29. package/build/assets/{MissingPartitionError-5480c5f4.js → MissingPartitionError-6c767865.js} +2 -2
  30. package/build/assets/{MissingPartitionError-5480c5f4.js.map → MissingPartitionError-6c767865.js.map} +1 -1
  31. package/build/assets/{StyleGuideRoot-a0b841cf.js → StyleGuideRoot-27a8d861.js} +2 -2
  32. package/build/assets/{StyleGuideRoot-a0b841cf.js.map → StyleGuideRoot-27a8d861.js.map} +1 -1
  33. package/build/assets/{index-470b8a54.css → index-13e1b819.css} +1 -1
  34. package/build/assets/index-3a104f6a.css +1 -0
  35. package/build/assets/{index-8aea8687.js → index-49c2275d.js} +2 -2
  36. package/build/assets/{index-8aea8687.js.map → index-49c2275d.js.map} +1 -1
  37. package/build/assets/{index-63bf2b7c.js → index-5f3db412.js} +2 -2
  38. package/build/assets/{index-63bf2b7c.js.map → index-5f3db412.js.map} +1 -1
  39. package/build/assets/{index-ad91f162.js → index-d634bf3b.js} +6 -6
  40. package/build/assets/index-d634bf3b.js.map +1 -0
  41. package/build/assets/useUser-f5667912.js +2 -0
  42. package/build/assets/useUser-f5667912.js.map +1 -0
  43. package/build/index.html +2 -2
  44. package/package.json +30 -30
  45. package/build/assets/FontBootstrap-832a937c.css +0 -1
  46. package/build/assets/GridRenderer-1283ab17.js.map +0 -1
  47. package/build/assets/index-ad91f162.js.map +0 -1
  48. package/build/assets/index-e500652d.css +0 -1
  49. package/build/assets/useUser-5eee6d9c.js +0 -2
  50. package/build/assets/useUser-5eee6d9c.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"FontBootstrap-bd217cd5.js","sources":["../../../components/dist/spectrum/shared.js","../../../react-hooks/dist/ElementUtils.js","../../../react-hooks/dist/SpectrumUtils.js","../../../react-hooks/dist/useCheckOverflow.js","../../../react-hooks/dist/useMappedRef.js","../../../react-hooks/dist/useContentRect.js","../../../react-hooks/dist/useDebouncedCallback.js","../../../react-hooks/dist/useOnScrollRef.js","../../../react-hooks/dist/usePopoverOnScrollRef.js","../../../components/dist/theme/colorUtils.js","../../../components/dist/spectrum/Text.js","../../../components/dist/spectrum/ItemTooltip.js","../../../components/dist/spectrum/ItemContent.js","../../../components/dist/spectrum/utils/itemUtils.js","../../../components/dist/spectrum/utils/itemWrapperUtils.js","../../../components/dist/spectrum/utils/propsUtils.js","../../../components/dist/spectrum/utils/useRenderNormalizedItem.js","../../../components/dist/spectrum/utils/useStringifiedMultiSelection.js","../../../components/dist/spectrum/utils/useStringifiedSelection.js","../../../components/dist/theme/useSpectrumThemeProvider.js","../../../components/dist/spectrum/listView/ListViewWrapper.js","../../../components/dist/spectrum/listView/ListView.js","../../../components/dist/spectrum/listView/ListViewNormalized.js","../../../components/dist/spectrum/picker/usePickerScrollOnOpen.js","../../../components/dist/spectrum/picker/Picker.js","../../../components/dist/spectrum/picker/PickerNormalized.js","../../../components/dist/spectrum/Heading.js","../../../components/dist/spectrum/View.js","../../../components/dist/AutoCompleteInput.js","../../../components/dist/AutoResizeTextarea.js","../../../components/dist/TimeInput.js","../../../components/dist/CustomTimeSelect.js","../../../components/dist/DateInput.js","../../../components/dist/ErrorView.js","../../../components/dist/HierarchicalCheckboxMenu.js","../../../components/dist/RandomAreaPlotAnimation.js","../../../components/dist/TimeSlider.js","../../../chart/dist/MockChartModel.js","../../../app-utils/dist/components/FontBootstrap.js"],"sourcesContent":["/**\n * Wrapping Spectrum `Item` and `Section` components will break functionality\n * due to the way they are consumed by collection components. They are only used\n * to pass data and don't render anything on their own, so they don't need to be\n * wrapped. If we do ever need to wrap them for whatever reason, the static\n * `getCollectionNode` method will need to be implemented.\n * See https://github.com/adobe/react-spectrum/blob/main/packages/%40react-stately/collections/src/Item.ts#L17\n * https://github.com/adobe/react-spectrum/blob/main/packages/%40react-stately/collections/src/Section.ts#L18\n */\nimport { Section as SpectrumSection } from '@adobe/react-spectrum';\nexport { Item } from '@adobe/react-spectrum';\n\n/*\n * We support primitive values as shorthand for `Item` elements in certain\n * components. This type represents this augmentation of the Spectrum types.\n */\n\n/**\n * Spectrum SectionProps augmented with support for primitive item children.\n */\n\n/**\n * Re-export Spectrum Section component with augmented props type.\n */\nexport var Section = SpectrumSection;\n//# sourceMappingURL=shared.js.map","import { isValidElement } from 'react';\n/**\n * Check if a node is a React element of a specific type.\n * @param node The node to check\n * @param type The type to check against\n * @returns True if the node is a React element of the specified type\n */\nexport function isElementOfType(node, type) {\n return /*#__PURE__*/isValidElement(node) && node.type === type;\n}\nexport default isElementOfType;\n//# sourceMappingURL=ElementUtils.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n/**\n * Creates validation props for a Spectrum field. If `isValid` is true, returns\n * empty props. If false, returns { errorMessage, validationState: 'invalid' }\n * @param isValid Whether props represent valid state\n * @param errorMessage Error message in the case `isValid` is false\n */\nexport function createValidationProps(isValid, errorMessage) {\n if (isValid) {\n return {};\n }\n return {\n errorMessage,\n validationState: 'invalid'\n };\n}\n\n/**\n * Extract DOM node from React Spectrum component ref.\n * @param ref\n */\nexport function extractSpectrumHTMLElement(ref) {\n var _ref$UNSAFE_getDOMNod;\n return (_ref$UNSAFE_getDOMNod = ref === null || ref === void 0 ? void 0 : ref.UNSAFE_getDOMNode()) !== null && _ref$UNSAFE_getDOMNod !== void 0 ? _ref$UNSAFE_getDOMNod : null;\n}\n\n/**\n * Extract lastElementChild from DOM element for given React Spectrum component\n * ref.\n * @param ref\n */\nexport function extractSpectrumLastChildHTMLElement(ref) {\n var maybeHTMLElement = ref === null || ref === void 0 ? void 0 : ref.UNSAFE_getDOMNode().lastElementChild;\n return identityExtractHTMLElement(maybeHTMLElement);\n}\n\n/**\n * Find the popover associated with a given Spectrum ComboBox ref.\n * @param ref The ref to the Spectrum ComboBox component\n */\nexport function findSpectrumComboBoxScrollArea(ref) {\n return findSpectrumPopoverScrollArea(ref, 'input');\n}\n\n/**\n * Find the popover associated with a given Spectrum Picker ref.\n * @param ref The ref to the Spectrum Picker component\n */\nexport function findSpectrumPickerScrollArea(ref) {\n return findSpectrumPopoverScrollArea(ref, 'button');\n}\n\n/**\n * Find the popover associated with a given Spectrum component ref.\n * @param ref The ref to the Spectrum component\n * @param triggerElementType The type of element that triggers the popover\n */\nexport function findSpectrumPopoverScrollArea(ref, triggerElementType) {\n var maybeHTMLElement = ref === null || ref === void 0 ? void 0 : ref.UNSAFE_getDOMNode();\n var trigger = maybeHTMLElement === null || maybeHTMLElement === void 0 ? void 0 : maybeHTMLElement.querySelector(triggerElementType);\n var popupId = trigger === null || trigger === void 0 ? void 0 : trigger.getAttribute('aria-controls');\n var scrollArea = popupId == null ? null : document.getElementById(popupId);\n return scrollArea;\n}\n\n/**\n * Get the position of a selected item in a list of keyed items. The position is\n * based on the index, item height, and top offset.\n * @param keyedItems The list of keyed items\n * @param itemHeight The height of each item\n * @param selectedKey The key of the selected item\n * @param topOffset The offset from the top of the list (e.g. if there is top\n * padding surrounding the entire list)\n */\nexport function getPositionOfSelectedItem(_x) {\n return _getPositionOfSelectedItem.apply(this, arguments);\n}\n\n/**\n * Returns the given object if it is an HTMLElement. Otherwise returns null.\n * @param maybeHTMLElement\n */\nfunction _getPositionOfSelectedItem() {\n _getPositionOfSelectedItem = _asyncToGenerator(function* (_ref) {\n var {\n keyedItems,\n itemHeight,\n selectedKey,\n topOffset\n } = _ref;\n var i = keyedItems.findIndex(item => {\n var _item$item$key, _item$item;\n return ((_item$item$key = (_item$item = item.item) === null || _item$item === void 0 ? void 0 : _item$item.key) !== null && _item$item$key !== void 0 ? _item$item$key : item.key) === selectedKey;\n });\n if (i <= 0) {\n return topOffset;\n }\n return itemHeight * i + topOffset;\n });\n return _getPositionOfSelectedItem.apply(this, arguments);\n}\nexport function identityExtractHTMLElement(maybeHTMLElement) {\n return maybeHTMLElement instanceof HTMLElement ? maybeHTMLElement : null;\n}\n//# sourceMappingURL=SpectrumUtils.js.map","import { useCallback, useState } from 'react';\n/**\n * Provides a callback to check a Spectrum `DOMRefValue` for overflow. If\n * overflow is detected, `isOverflowing` will be set to `true` until reset by\n * calling `resetIsOverflowing`.\n */\nexport function useCheckOverflow() {\n var [isOverflowing, setIsOverflowing] = useState(false);\n\n /**\n * Check if a Spectrum `DOMRefValue` is overflowing.\n */\n var checkOverflow = useCallback(elRef => {\n var el = elRef === null || elRef === void 0 ? void 0 : elRef.UNSAFE_getDOMNode();\n if (el == null) {\n return;\n }\n if (el.scrollWidth > el.offsetWidth) {\n setIsOverflowing(true);\n }\n }, []);\n\n /** Reset `isOverflowing` to false */\n var resetIsOverflowing = useCallback(() => {\n setIsOverflowing(false);\n }, []);\n return {\n isOverflowing,\n checkOverflow,\n resetIsOverflowing\n };\n}\nexport default useCheckOverflow;\n//# sourceMappingURL=useCheckOverflow.js.map","import { useCallback } from 'react';\n\n/**\n * Returns a callback ref that will map it's argument\n * and set the given targetRef with the result.\n * @param targetRef Ref to assign mapped result to\n * @param map Function to map given ref value to another value\n */\nexport function useMappedRef(targetRef, map) {\n return useCallback(ref => {\n if (typeof targetRef === 'function') {\n targetRef(map(ref));\n } else {\n // eslint-disable-next-line no-param-reassign\n targetRef.current = map(ref);\n }\n }, [map, targetRef]);\n}\nexport default useMappedRef;\n//# sourceMappingURL=useMappedRef.js.map","import { identityExtractHTMLElement } from '@deephaven/utils';\nimport { useCallback, useMemo, useState } from 'react';\nimport useMappedRef from \"./useMappedRef.js\";\nimport useResizeObserver from \"./useResizeObserver.js\";\n/**\n * Returns a callback ref that will track the `contentRect` of a given refValue.\n * If the `contentRect` is undefined, it will be set to a new `DOMRect` with\n * zeros for all dimensions.\n * @param map Optional mapping function to extract an HTMLElement from the given\n * refValue\n * @returns Content rect and a ref callback\n */\nexport function useContentRect() {\n var map = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : identityExtractHTMLElement;\n var [x, setX] = useState(0);\n var [y, setY] = useState(0);\n var [width, setWidth] = useState(0);\n var [height, setHeight] = useState(0);\n var contentRect = useMemo(() => new DOMRect(x, y, width, height), [height, width, x, y]);\n var [el, setEl] = useState(null);\n\n // Callback ref maps the passed in refValue and passes to `setEl`\n var ref = useMappedRef(setEl, map);\n var handleResize = useCallback(_ref => {\n var _firstEntry$contentRe;\n var [firstEntry] = _ref;\n var rect = (_firstEntry$contentRe = firstEntry === null || firstEntry === void 0 ? void 0 : firstEntry.contentRect) !== null && _firstEntry$contentRe !== void 0 ? _firstEntry$contentRe : {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n setX(rect.x);\n setY(rect.y);\n setWidth(rect.width);\n setHeight(rect.height);\n }, []);\n useResizeObserver(el, handleResize);\n return {\n ref,\n contentRect\n };\n}\nexport default useContentRect;\n//# sourceMappingURL=useContentRect.js.map","import { useEffect, useMemo } from 'react';\nimport debounce from 'lodash.debounce';\n\n/**\n * Wraps a given callback in a cancelable, debounced function. The debounced\n * callback is automatically cancelled if the callback reference changes or the\n * component unmounts.\n * @param callback callback function to debounce\n * @param debounceMs debounce milliseconds\n * @returns a cancelable, debounced function\n */\nexport function useDebouncedCallback(callback, debounceMs) {\n var debouncedCallback = useMemo(() => debounce(callback, debounceMs), [callback, debounceMs]);\n useEffect(() => () => debouncedCallback.cancel(), [debouncedCallback]);\n return debouncedCallback;\n}\nexport default useDebouncedCallback;\n//# sourceMappingURL=useDebouncedCallback.js.map","import { useCallback, useEffect, useRef } from 'react';\nimport { identityExtractHTMLElement } from '@deephaven/utils';\n\n/**\n * Return a ref that can be used to subscribe to scroll events.\n * @param onScroll Scroll event handler\n * @param extractHTMLElement Optional extraction handler to get the HTML element\n * to subscribe to scroll events. If no extraction handler is given, the argument\n * passed to the callback will be subscribed to if it is an HTML element.\n */\nexport function useOnScrollRef(onScroll) {\n var extractHTMLElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identityExtractHTMLElement;\n var cleanupRef = useRef();\n\n // Cleanup on unmount\n useEffect(() => () => {\n var _cleanupRef$current;\n return (_cleanupRef$current = cleanupRef.current) === null || _cleanupRef$current === void 0 ? void 0 : _cleanupRef$current.call(cleanupRef);\n }, []);\n return useCallback(ref => {\n var _cleanupRef$current2;\n (_cleanupRef$current2 = cleanupRef.current) === null || _cleanupRef$current2 === void 0 ? void 0 : _cleanupRef$current2.call(cleanupRef);\n var element = extractHTMLElement(ref);\n if (!element) {\n return;\n }\n element.addEventListener('scroll', onScroll);\n\n // Hold a reference to a function that can cleanup scroll event registration\n cleanupRef.current = () => {\n element.removeEventListener('scroll', onScroll);\n cleanupRef.current = undefined;\n };\n }, [extractHTMLElement, onScroll]);\n}\nexport default useOnScrollRef;\n//# sourceMappingURL=useOnScrollRef.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nimport { useCallback, useEffect, useRef, useState } from 'react';\n/**\n * This hook provides a way to attach a scroll event listener to a scroll area\n * inside a popover component. Popovers for picker components only exist when\n * the picker is open, and they get attached to the DOM outside of the child\n * tree, so we have to provide a function that can find the target DOM element\n * to attach the listener to.\n * @param findScrollArea Function to retreive the DOM element to attach a scroll\n * event listener to\n * @param onScroll Scroll event listener function to attach\n * @param getInitialScrollPosition Function to retrieve the initial scroll\n * position. If no function is given, or if the function returns `null`, no\n * initial scrolling will occur.\n */\nexport function usePopoverOnScrollRef(findScrollArea, onScroll, getInitialScrollPosition) {\n var ref = useRef(null);\n var isScrollOnOpenEnabledRef = useRef(false);\n var [scrollAreaEl, setScrollAreaEl] = useState(null);\n var scrollToInitialPosition = useCallback( /*#__PURE__*/_asyncToGenerator(function* () {\n if (scrollAreaEl == null || getInitialScrollPosition == null) {\n return;\n }\n var position = yield getInitialScrollPosition();\n\n // If the position is null, don't scroll\n if (position == null) {\n return;\n }\n scrollAreaEl.scroll(0, position);\n }), [getInitialScrollPosition, scrollAreaEl]);\n useEffect(() => {\n scrollAreaEl === null || scrollAreaEl === void 0 ? void 0 : scrollAreaEl.addEventListener('scroll', onScroll);\n\n // Ticking tables can cause this effect to fire multiple times while the\n // popover is still open. This check ensures that we only scroll 1x.\n if (isScrollOnOpenEnabledRef.current) {\n scrollToInitialPosition();\n isScrollOnOpenEnabledRef.current = false;\n }\n return () => {\n scrollAreaEl === null || scrollAreaEl === void 0 ? void 0 : scrollAreaEl.removeEventListener('scroll', onScroll);\n };\n }, [onScroll, scrollAreaEl, scrollToInitialPosition]);\n var scrollTimeoutRef = useRef();\n\n // Popovers for picker components only exist when the popover opens, so we\n // have to wait to attach scroll listeners\n var onOpenChange = useCallback(isOpen => {\n window.clearTimeout(scrollTimeoutRef.current);\n if (isOpen) {\n isScrollOnOpenEnabledRef.current = true;\n\n // setTimeout is necessary for popover to be available\n scrollTimeoutRef.current = window.setTimeout(() => {\n setScrollAreaEl(findScrollArea(ref.current));\n }, 0);\n } else {\n setScrollAreaEl(null);\n }\n }, [findScrollArea]);\n return {\n ref,\n onOpenChange\n };\n}\nexport default usePopoverOnScrollRef;\n//# sourceMappingURL=usePopoverOnScrollRef.js.map","/**\n * Color values for the DH color palette exposed to end users in spectrum components.\n */\nexport var ColorValues = ['gray-50', 'gray-75', 'gray-100', 'gray-200', 'gray-300', 'gray-400', 'gray-500', 'gray-600', 'gray-700', 'gray-800', 'gray-900', 'red-100', 'red-200', 'red-300', 'red-400', 'red-500', 'red-600', 'red-700', 'red-800', 'red-900', 'red-1000', 'red-1100', 'red-1200', 'red-1300', 'red-1400', 'orange-100', 'orange-200', 'orange-300', 'orange-400', 'orange-500', 'orange-600', 'orange-700', 'orange-800', 'orange-900', 'orange-1000', 'orange-1100', 'orange-1200', 'orange-1300', 'orange-1400', 'yellow-100', 'yellow-200', 'yellow-300', 'yellow-400', 'yellow-500', 'yellow-600', 'yellow-700', 'yellow-800', 'yellow-900', 'yellow-1000', 'yellow-1100', 'yellow-1200', 'yellow-1300', 'yellow-1400', 'chartreuse-100', 'chartreuse-200', 'chartreuse-300', 'chartreuse-400', 'chartreuse-500', 'chartreuse-600', 'chartreuse-700', 'chartreuse-800', 'chartreuse-900', 'chartreuse-1000', 'chartreuse-1100', 'chartreuse-1200', 'chartreuse-1300', 'chartreuse-1400', 'celery-100', 'celery-200', 'celery-300', 'celery-400', 'celery-500', 'celery-600', 'celery-700', 'celery-800', 'celery-900', 'celery-1000', 'celery-1100', 'celery-1200', 'celery-1300', 'celery-1400', 'green-100', 'green-200', 'green-300', 'green-400', 'green-500', 'green-600', 'green-700', 'green-800', 'green-900', 'green-1000', 'green-1100', 'green-1200', 'green-1300', 'green-1400', 'seafoam-100', 'seafoam-200', 'seafoam-300', 'seafoam-400', 'seafoam-500', 'seafoam-600', 'seafoam-700', 'seafoam-800', 'seafoam-900', 'seafoam-1000', 'seafoam-1100', 'seafoam-1200', 'seafoam-1300', 'seafoam-1400', 'cyan-100', 'cyan-200', 'cyan-300', 'cyan-400', 'cyan-500', 'cyan-600', 'cyan-700', 'cyan-800', 'cyan-900', 'cyan-1000', 'cyan-1100', 'cyan-1200', 'cyan-1300', 'cyan-1400', 'blue-100', 'blue-200', 'blue-300', 'blue-400', 'blue-500', 'blue-600', 'blue-700', 'blue-800', 'blue-900', 'blue-1000', 'blue-1100', 'blue-1200', 'blue-1300', 'blue-1400', 'indigo-100', 'indigo-200', 'indigo-300', 'indigo-400', 'indigo-500', 'indigo-600', 'indigo-700', 'indigo-800', 'indigo-900', 'indigo-1000', 'indigo-1100', 'indigo-1200', 'indigo-1300', 'indigo-1400', 'purple-100', 'purple-200', 'purple-300', 'purple-400', 'purple-500', 'purple-600', 'purple-700', 'purple-800', 'purple-900', 'purple-1000', 'purple-1100', 'purple-1200', 'purple-1300', 'purple-1400', 'fuchsia-100', 'fuchsia-200', 'fuchsia-300', 'fuchsia-400', 'fuchsia-500', 'fuchsia-600', 'fuchsia-700', 'fuchsia-800', 'fuchsia-900', 'fuchsia-1000', 'fuchsia-1100', 'fuchsia-1200', 'fuchsia-1300', 'fuchsia-1400', 'magenta-100', 'magenta-200', 'magenta-300', 'magenta-400', 'magenta-500', 'magenta-600', 'magenta-700', 'magenta-800', 'magenta-900', 'magenta-1000', 'magenta-1100', 'magenta-1200', 'magenta-1300', 'magenta-1400', 'negative', 'notice', 'positive', 'info',\n// Additional DH ColorValues:\n'accent', 'accent-100', 'accent-200', 'accent-300', 'accent-400', 'accent-500', 'accent-600', 'accent-700', 'accent-800', 'accent-900', 'accent-1000', 'accent-1100', 'accent-1200', 'accent-1300', 'accent-1400', 'bg', 'content-bg', 'subdued-content-bg', 'surface-bg', 'fg'];\nexport function isDHColorValue(value) {\n return typeof value === 'string' && ColorValues.includes(value);\n}\n\n/**\n * Returns the a css variable color value for a given theme color.\n * If the color value is a DH color value, it returns the CSS variable.\n * Otherwise, it returns the color value as is.\n *\n * @param value a string representing a color value\n * @returns CSS variable for DH color values, otherwise the color value as is\n *\n * ex. colorValueStyle('blue-1000') => 'var(--dh-color-blue-1000)'\n * ex. colorValueStyle('red') => 'red'\n * ex. colorValueStyle('#F00') => '#F00'\n */\nexport function colorValueStyle(value) {\n if (value != null && isDHColorValue(value)) {\n return \"var(--dh-color-\".concat(value, \")\");\n }\n return value;\n}\n//# sourceMappingURL=colorUtils.js.map","var _excluded = [\"color\", \"UNSAFE_style\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* eslint-disable react/jsx-props-no-spreading */\nimport { forwardRef, useMemo } from 'react';\nimport { Text as SpectrumText } from '@adobe/react-spectrum';\nimport { colorValueStyle } from \"../theme/colorUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * A Text component that re-exports the Spectrum Text component.\n * It overrides ColorValues to accept CSS color strings and custom\n * variable names from our color paletee and semantic colors.\n *\n * @param props The props for the Text component\n * @returns The Text component\n *\n */\nexport var Text = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var {\n color,\n UNSAFE_style\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var style = useMemo(() => _objectSpread(_objectSpread({}, UNSAFE_style), {}, {\n color: colorValueStyle(color)\n }), [color, UNSAFE_style]);\n return /*#__PURE__*/_jsx(SpectrumText, _objectSpread(_objectSpread({}, rest), {}, {\n ref: forwardedRef,\n UNSAFE_style: style\n }));\n});\nText.displayName = 'Text';\nexport default Text;\n//# sourceMappingURL=Text.js.map","import { isElementOfType } from '@deephaven/react-hooks';\nimport { Tooltip } from \"../popper/index.js\";\nimport { Flex } from \"./layout.js\";\nimport { Text } from \"./Text.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Tooltip for `<Item>` content.\n */\nexport function ItemTooltip(_ref) {\n var {\n children,\n options\n } = _ref;\n if (Array.isArray(children)) {\n return /*#__PURE__*/_jsx(Tooltip, {\n options: options,\n children: /*#__PURE__*/_jsx(Flex, {\n direction: \"column\",\n alignItems: \"start\",\n children: children.filter(node => isElementOfType(node, Text))\n })\n });\n }\n return /*#__PURE__*/_jsx(Tooltip, {\n options: options,\n children: children\n });\n}\nexport default ItemTooltip;\n//# sourceMappingURL=ItemTooltip.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { Children, cloneElement, isValidElement, useState } from 'react';\nimport cl from 'classnames';\nimport { isElementOfType, useCheckOverflow } from '@deephaven/react-hooks';\nimport { NON_BREAKING_SPACE } from '@deephaven/utils';\nimport { Text } from \"./Text.js\";\nimport ItemTooltip from \"./ItemTooltip.js\";\nimport stylesCommon from \"../SpectrumComponent.module.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Item content. Text content will be wrapped in a Spectrum Text\n * component with ellipsis overflow handling. If text content overflows and\n * tooltipOptions are provided a tooltip will be displayed when hovering over\n * the item content.\n */\nexport function ItemContent(_ref) {\n var {\n children: content,\n tooltipOptions\n } = _ref;\n var {\n checkOverflow,\n isOverflowing,\n resetIsOverflowing\n } = useCheckOverflow();\n var [previousContent, setPreviousContent] = useState(content);\n\n // Reset `isOverflowing` if content changes. It will get re-calculated as\n // `Text` components render.\n if (previousContent !== content) {\n setPreviousContent(content);\n resetIsOverflowing();\n }\n if ( /*#__PURE__*/isValidElement(content)) {\n return content;\n }\n\n /* eslint-disable no-param-reassign */\n if (content === '') {\n // Prevent the item height from collapsing when the content is empty\n content = NON_BREAKING_SPACE;\n } else if (typeof content === 'boolean') {\n // Boolean values need to be stringified to render\n content = String(content);\n } else if (Array.isArray(content)) {\n // For cases where there are multiple `Text` children, add a css class to\n // handle overflow. The primary use case for multiple text nodes is when a\n // description is provided for an item. e.g.\n // <Item textValue=\"Some Text\">\n // <SomeIcon />\n // <Text>Some Label</Text>\n // <Text slot=\"description\">Some Description</Text>\n // </Item>\n content = Children.map(content, el => isElementOfType(el, Text) ? /*#__PURE__*/cloneElement(el, _objectSpread(_objectSpread({}, el.props), {}, {\n ref: checkOverflow,\n UNSAFE_className: cl(el.props.UNSAFE_className, stylesCommon.spectrumEllipsis)\n })) : el);\n }\n if (typeof content === 'string' || typeof content === 'number') {\n content = /*#__PURE__*/_jsx(Text, {\n ref: checkOverflow,\n UNSAFE_className: stylesCommon.spectrumEllipsis,\n children: content\n });\n }\n /* eslint-enable no-param-reassign */\n\n var tooltip = tooltipOptions == null || !isOverflowing ? null : /*#__PURE__*/_jsx(ItemTooltip, {\n options: tooltipOptions,\n children: content\n });\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [content, tooltip]\n });\n}\nexport default ItemContent;\n//# sourceMappingURL=ItemContent.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nimport { isElementOfType } from '@deephaven/react-hooks';\nimport { ensureArray } from '@deephaven/utils';\nimport { Item, Section } from \"../shared.js\";\nimport { Text } from \"../Text.js\";\nimport ItemContent from \"../ItemContent.js\";\n/**\n * `Item.textValue` prop needs to be a non-empty string for accessibility\n * purposes. This is not displayed in the UI.\n */\nexport var ITEM_EMPTY_STRING_TEXT_VALUE = 'Empty';\n\n/**\n * React Spectrum <Section> supports an `ItemRenderer` function as a child. The\n * DH picker makes use of this internally, but we don't want to support it as\n * an incoming prop.\n */\n\n// Picker uses `icon` slot. ListView can use `image` or `illustration` slots.\n// https://github.com/adobe/react-spectrum/blob/main/packages/%40react-spectrum/picker/src/Picker.tsx#L194\n// https://github.com/adobe/react-spectrum/blob/main/packages/%40react-spectrum/list/src/ListViewItem.tsx#L266-L267\n/**\n * Augment the Spectrum selection key type to include boolean values.\n * Spectrum collection components already supports this, but the built in types\n * don't reflect it.\n */\n/**\n * Augment the Spectrum selection change handler type to include boolean keys.\n * Spectrum components already supports this, but the built in types don't\n * reflect it.\n */\n/**\n * Spectrum collection components support a variety of item types, including\n * strings, numbers, booleans, and more complex React elements. This type\n * represents a normalized form to make rendering items simpler and keep the\n * logic of transformation in separate util methods. It also adheres to the\n * `KeyedItem` interface to be compatible with Windowed data utils\n * (e.g. `useViewportData`).\n */\n/**\n * DH wrappers of Spectrum collection components use a normalized item that\n * includes a `key` prop and an optional `item` prop. This is mostly to support\n * Windowed data where items are created before their data has been loaded (data\n * gets set in the `item` prop). If data has loaded, return its `key`. If not,\n * return the top-level `key` on the normalized item.\n * @param item The normalized item or section\n * @returns The `key` of the item or section\n */\nexport function getItemKey(item) {\n var _item$item$key, _item$item;\n return (_item$item$key = item === null || item === void 0 ? void 0 : (_item$item = item.item) === null || _item$item === void 0 ? void 0 : _item$item.key) !== null && _item$item$key !== void 0 ? _item$item$key : item === null || item === void 0 ? void 0 : item.key;\n}\n\n/**\n * Get the position of the item with the given selected key in a list of items.\n * @param items The items to search\n * @param itemHeight The height of each item\n * @param selectedKey The key of the selected item\n * @param topOffset The top offset of the list\n * @returns The position of the selected item or the top offset if not found\n */\nexport function getPositionOfSelectedItemElement(_x) {\n return _getPositionOfSelectedItemElement.apply(this, arguments);\n}\n\n/**\n * Determine if a node is a Section element.\n * @param node The node to check\n * @returns True if the node is a Section element\n */\nfunction _getPositionOfSelectedItemElement() {\n _getPositionOfSelectedItemElement = _asyncToGenerator(function* (_ref) {\n var {\n items,\n itemHeight,\n selectedKey,\n topOffset\n } = _ref;\n var position = topOffset;\n if (selectedKey == null) {\n return position;\n }\n for (var i = 0; i < items.length; i += 1) {\n var item = items[i];\n if (item.key === selectedKey) {\n return position;\n }\n position += itemHeight;\n }\n return topOffset;\n });\n return _getPositionOfSelectedItemElement.apply(this, arguments);\n}\nexport function isSectionElement(node) {\n return isElementOfType(node, Section);\n}\n\n/**\n * Determine if a node is an Item element.\n * @param node The node to check\n * @returns True if the node is an Item element\n */\nexport function isItemElement(node) {\n return isElementOfType(node, Item);\n}\n\n/**\n * Determine if a node is an Item element containing a child `Text` element with\n * a `slot` prop set to `description`.\n * @param node The node to check\n * @returns True if the node is an Item element with a description\n */\nexport function isItemElementWithDescription(node) {\n if (!isItemElement(node)) {\n return false;\n }\n\n // If children are wrapped in `ItemContent`, go down 1 level\n var children = isElementOfType(node.props.children, ItemContent) ? node.props.children.props.children : node.props.children;\n var childrenArray = ensureArray(children);\n var result = childrenArray.some(child => {\n var _child$props;\n return isElementOfType(child, Text) && ((_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.slot) === 'description';\n });\n return result;\n}\n\n/**\n * Determine if a node is an array containing normalized items or sections with\n * keys. Note that this only checks the first node in the array.\n * @param node The node to check\n * @returns True if the node is a normalized item or section with keys array\n */\nexport function isNormalizedItemsWithKeysList(node) {\n if (!Array.isArray(node)) {\n return false;\n }\n if (node.length === 0) {\n return true;\n }\n return !isItemOrSection(node[0]) && 'key' in node[0];\n}\n\n/**\n * Determine if an object is a normalized section.\n * @param maybeNormalizedSection The object to check\n * @returns True if the object is a normalized section\n */\nexport function isNormalizedSection(maybeNormalizedSection) {\n return maybeNormalizedSection.item != null && 'items' in maybeNormalizedSection.item;\n}\n\n/**\n * Determine if a node is an item or section. Valid types include strings,\n * numbers, booleans, Item elements, and Section elements.\n * @param node The node to check\n * @returns True if the node is an item or section\n */\nexport function isItemOrSection(node) {\n return typeof node === 'string' || typeof node === 'number' || typeof node === 'boolean' || isItemElement(node) || isSectionElement(node);\n}\n\n/**\n * Returns a TooltipOptions object or null if options is false or null.\n * @param options Tooltip options\n * @param placement Default placement for the tooltip if `options` is set\n * explicitly to `true`\n * @returns TooltipOptions or null\n */\nexport function normalizeTooltipOptions(options) {\n var placement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'right';\n if (options == null || options === false) {\n return null;\n }\n if (options === true) {\n return {\n placement\n };\n }\n return options;\n}\n\n/**\n * Convert a selection of `ItemKey`s to a selection of strings.\n * @param itemKeys The selection of `ItemKey`s\n * @returns The selection of strings\n */\nexport function itemSelectionToStringSet(itemKeys) {\n if (itemKeys == null || itemKeys === 'all') {\n return itemKeys;\n }\n return new Set([...itemKeys].map(String));\n}\n//# sourceMappingURL=itemUtils.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { cloneElement } from 'react';\nimport { Item } from '@adobe/react-spectrum';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dh as dhIcons } from '@deephaven/icons';\nimport { isElementOfType } from '@deephaven/react-hooks';\nimport { ensureArray, NON_BREAKING_SPACE } from '@deephaven/utils';\nimport { isItemElement, isSectionElement, ITEM_EMPTY_STRING_TEXT_VALUE } from \"./itemUtils.js\";\nimport { ItemContent } from \"../ItemContent.js\";\nimport { Icon } from \"../icons.js\";\nimport { Text } from \"../Text.js\";\n/**\n * If the given content is a string, wrap it in an Icon component. Otherwise,\n * return the original content. If the key is not found in the dhIcons object,\n * the vsBlank icon will be used.\n * @param maybeIconKey The content to wrap\n * @param slot The slot to use for the Icon component\n * @returns The wrapped content or original content if not a string\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function wrapIcon(maybeIconKey, slot) {\n var _maybeIconKey, _dhIcons$maybeIconKey;\n // eslint-disable-next-line no-param-reassign\n maybeIconKey = (_maybeIconKey = maybeIconKey) !== null && _maybeIconKey !== void 0 ? _maybeIconKey : '';\n if (typeof maybeIconKey !== 'string') {\n return maybeIconKey;\n }\n return /*#__PURE__*/_jsx(Icon, {\n slot: slot,\n children: /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: (_dhIcons$maybeIconKey = dhIcons[maybeIconKey]) !== null && _dhIcons$maybeIconKey !== void 0 ? _dhIcons$maybeIconKey : dhIcons.vsBlank\n })\n });\n}\n\n/**\n * Ensure all primitive children are wrapped in `Item` elements and that all\n * `Item` element content is wrapped in `ItemContent` elements to handle text\n * overflow consistently and to support tooltips.\n * @param itemsOrSections The items or sections to wrap\n * @param tooltipOptions The tooltip options to use when wrapping items\n * @returns The wrapped items or sections\n */\nexport function wrapItemChildren(itemsOrSections, tooltipOptions) {\n var itemsOrSectionsArray = ensureArray(itemsOrSections);\n var result = itemsOrSectionsArray.map(item => {\n if (isItemElement(item)) {\n var _item$key;\n // Item content is already wrapped\n if (isElementOfType(item.props.children, ItemContent)) {\n return item;\n }\n var key = (_item$key = item.key) !== null && _item$key !== void 0 ? _item$key : item.props.textValue;\n var _textValue = item.props.textValue === '' ? ITEM_EMPTY_STRING_TEXT_VALUE : item.props.textValue;\n\n // Wrap in `ItemContent` so we can support tooltips and handle text\n // overflow\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, item.props), {}, {\n key,\n textValue: _textValue,\n children: /*#__PURE__*/_jsx(ItemContent, {\n tooltipOptions: tooltipOptions,\n children: item.props.children\n })\n }));\n }\n if (isSectionElement(item)) {\n var _item$key2;\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, item.props), {}, {\n key: (_item$key2 = item.key) !== null && _item$key2 !== void 0 ? _item$key2 : typeof item.props.title === 'string' ? item.props.title : undefined,\n children: wrapItemChildren(item.props.children, tooltipOptions)\n }));\n }\n var text = String(item);\n var textValue = text === '' ? ITEM_EMPTY_STRING_TEXT_VALUE : text;\n return /*#__PURE__*/_jsx(Item, {\n textValue: textValue,\n children: /*#__PURE__*/_jsx(ItemContent, {\n tooltipOptions: tooltipOptions,\n children: text\n })\n }, text);\n });\n\n // Keep consistent with original data structure as array or single node\n return Array.isArray(itemsOrSections) ? result : result[0];\n}\n\n/**\n * If the given content is a primitive type, wrap it in a Text component.\n * @param content The content to wrap\n * @param slot The slot to use for the Text component\n * @returns The wrapped content or original content if not a primitive type\n */\nexport function wrapPrimitiveWithText(content, slot) {\n var _content;\n // eslint-disable-next-line no-param-reassign\n content = (_content = content) !== null && _content !== void 0 ? _content : '';\n if (['string', 'boolean', 'number'].includes(typeof content)) {\n return /*#__PURE__*/_jsx(Text, {\n slot: slot,\n children: content === '' ? NON_BREAKING_SPACE : String(content)\n });\n }\n return content;\n}\n//# sourceMappingURL=itemWrapperUtils.js.map","var _excluded = [\"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"aria-details\", \"marginX\", \"marginY\", \"width\", \"height\", \"minWidth\", \"minHeight\", \"maxWidth\", \"maxHeight\", \"flex\", \"flexGrow\", \"flexShrink\", \"flexBasis\", \"justifySelf\", \"alignSelf\", \"order\", \"gridArea\", \"gridColumn\", \"gridRow\", \"gridColumnStart\", \"gridColumnEnd\", \"gridRowStart\", \"gridRowEnd\", \"position\", \"zIndex\", \"top\", \"bottom\", \"start\", \"end\", \"left\", \"right\", \"isHidden\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * Separate props for Spectrum components into AriaLabelingProps, StyleProps, and\n * any remaining props.\n * @param props The props to separate\n * @returns The separated props\n */\nexport function separateSpectrumProps(props) {\n var {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaHidden,\n marginX,\n marginY,\n width,\n height,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n justifySelf,\n alignSelf,\n order,\n gridArea,\n gridColumn,\n gridRow,\n gridColumnStart,\n gridColumnEnd,\n gridRowStart,\n gridRowEnd,\n position,\n zIndex,\n top,\n bottom,\n start,\n end,\n left,\n right,\n isHidden\n } = props,\n componentProps = _objectWithoutProperties(props, _excluded);\n return {\n ariaLabelProps: {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaHidden\n },\n styleProps: {\n marginX,\n marginY,\n width,\n height,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n justifySelf,\n alignSelf,\n order,\n gridArea,\n gridColumn,\n gridRow,\n gridColumnStart,\n gridColumnEnd,\n gridRowStart,\n gridRowEnd,\n position,\n zIndex,\n top,\n bottom,\n start,\n end,\n left,\n right,\n isHidden\n },\n componentProps: componentProps\n };\n}\nexport default separateSpectrumProps;\n//# sourceMappingURL=propsUtils.js.map","import { useCallback } from 'react';\nimport { ItemContent } from \"../ItemContent.js\";\nimport { Item } from \"../shared.js\";\nimport { getItemKey, ITEM_EMPTY_STRING_TEXT_VALUE } from \"./itemUtils.js\";\nimport { wrapIcon, wrapPrimitiveWithText } from \"./itemWrapperUtils.js\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Returns a render function that can be used to render a normalized item in\n * collection components.\n * @param itemIconSlot Slot to use for item icons\n * @param showItemDescriptions Whether to show item descriptions\n * @param showItemIcons Whether to show item icons\n * @param tooltipOptions Tooltip options to use when rendering the item\n * @returns Render function for normalized items\n */\nexport function useRenderNormalizedItem(_ref) {\n var {\n itemIconSlot,\n showItemDescriptions,\n showItemIcons,\n tooltipOptions\n } = _ref;\n return useCallback(normalizedItem => {\n var _normalizedItem$item, _normalizedItem$item$, _normalizedItem$item2, _normalizedItem$item3, _normalizedItem$item4;\n var key = getItemKey(normalizedItem);\n var content = wrapPrimitiveWithText((_normalizedItem$item = normalizedItem.item) === null || _normalizedItem$item === void 0 ? void 0 : _normalizedItem$item.content);\n var textValue = (_normalizedItem$item$ = (_normalizedItem$item2 = normalizedItem.item) === null || _normalizedItem$item2 === void 0 ? void 0 : _normalizedItem$item2.textValue) !== null && _normalizedItem$item$ !== void 0 ? _normalizedItem$item$ : '';\n var description = showItemDescriptions ? wrapPrimitiveWithText((_normalizedItem$item3 = normalizedItem.item) === null || _normalizedItem$item3 === void 0 ? void 0 : _normalizedItem$item3.description, 'description') : null;\n var icon = showItemIcons ? wrapIcon((_normalizedItem$item4 = normalizedItem.item) === null || _normalizedItem$item4 === void 0 ? void 0 : _normalizedItem$item4.icon, itemIconSlot) : null;\n return /*#__PURE__*/_jsx(Item\n // Note that setting the `key` prop explicitly on `Item` elements\n // causes the picker to expect `selectedKey` and `defaultSelectedKey`\n // to be strings. It also passes the stringified value of the key to\n // `onSelectionChange` handlers` regardless of the actual type of the\n // key. We can't really get around setting in order to support Windowed\n // data, so we'll need to do some manual conversion of keys to strings\n // in other components that use this hook.\n , {\n // The `textValue` prop gets used to provide the content of `<option>`\n // elements that back the Spectrum Picker. These are not visible in the UI,\n // but are used for accessibility purposes, so we set to an arbitrary\n // `ITEM_EMPTY_STRING_TEXT_VALUE` value so that they are not empty strings.\n textValue: textValue === '' ? ITEM_EMPTY_STRING_TEXT_VALUE : textValue,\n children: /*#__PURE__*/_jsxs(ItemContent, {\n tooltipOptions: tooltipOptions,\n children: [icon, content, description]\n })\n }, key);\n }, [itemIconSlot, showItemDescriptions, showItemIcons, tooltipOptions]);\n}\nexport default useRenderNormalizedItem;\n//# sourceMappingURL=useRenderNormalizedItem.js.map","import { useCallback, useMemo } from 'react';\nimport { getItemKey, itemSelectionToStringSet } from \"./itemUtils.js\";\n/**\n * Spectrum collection components treat keys as strings if the `key` prop is\n * explicitly set on `Item` elements. Since we do this in `useRenderNormalizedItem`,\n * we need to ensure that keys are strings in order for selection to work. We\n * then need to convert back to the original key types in the onChange handler.\n * This hook encapsulates converting to and from strings so that keys can match\n * the original key type.\n * @param normalizedItems The normalized items to select from.\n * @param selectedKeys The currently selected keys in the collection.\n * @param defaultSelectedKeys The initial selected keys in the collection.\n * @param disabledKeys The currently disabled keys in the collection.\n * @param onChange Handler that is called when the selection changes.\n * @returns UseStringifiedMultiSelectionResult with stringified key sets and\n * string key selection change handler.\n */\nexport function useStringifiedMultiSelection(_ref) {\n var {\n normalizedItems,\n defaultSelectedKeys,\n disabledKeys,\n selectedKeys,\n onChange\n } = _ref;\n var selectedStringKeys = useMemo(() => itemSelectionToStringSet(selectedKeys), [selectedKeys]);\n var defaultSelectedStringKeys = useMemo(() => itemSelectionToStringSet(defaultSelectedKeys), [defaultSelectedKeys]);\n var disabledStringKeys = useMemo(() => itemSelectionToStringSet(disabledKeys), [disabledKeys]);\n var onStringSelectionChange = useCallback(keys => {\n if (onChange == null) {\n return;\n }\n if (keys === 'all') {\n onChange('all');\n return;\n }\n var actualKeys = new Set();\n normalizedItems.forEach(item => {\n if (keys.has(String(getItemKey(item)))) {\n actualKeys.add(getItemKey(item));\n }\n });\n onChange(actualKeys);\n }, [normalizedItems, onChange]);\n return {\n selectedStringKeys,\n defaultSelectedStringKeys,\n disabledStringKeys,\n onStringSelectionChange\n };\n}\nexport default useStringifiedMultiSelection;\n//# sourceMappingURL=useStringifiedMultiSelection.js.map","import { useCallback, useMemo } from 'react';\nimport { getItemKey, itemSelectionToStringSet } from \"./itemUtils.js\";\n/**\n * Spectrum collection components treat keys as strings if the `key` prop is\n * explicitly set on `Item` elements. Since we do this in `useRenderNormalizedItem`,\n * we need to ensure that keys are strings in order for selection to work. We\n * then need to convert back to the original key types in the onChange handler.\n * This hook encapsulates converting to and from strings so that keys can match\n * the original key type.\n * @param normalizedItems The normalized items to select from.\n * @param selectedKey The currently selected key in the collection.\n * @param defaultSelectedKey The initial selected key in the collection.\n * @param disabledKeys The currently disabled keys in the collection.\n * @param onChange Handler that is called when the selection changes.\n * @returns UseStringifiedSelectionResult with stringified key sets and string\n * key selection change handler.\n */\nexport function useStringifiedSelection(_ref) {\n var {\n normalizedItems,\n defaultSelectedKey,\n selectedKey,\n disabledKeys,\n onChange\n } = _ref;\n var selectedStringKey = useMemo(() => selectedKey == null ? selectedKey : String(selectedKey), [selectedKey]);\n var defaultSelectedStringKey = useMemo(() => defaultSelectedKey == null ? defaultSelectedKey : String(defaultSelectedKey), [defaultSelectedKey]);\n var disabledStringKeys = useMemo(() => itemSelectionToStringSet(disabledKeys), [disabledKeys]);\n var onStringSelectionChange = useCallback(key => {\n var _getItemKey;\n if (onChange == null) {\n return;\n }\n\n // The `key` arg will always be a string due to us setting the `Item` key\n // prop in `renderItem`. We need to find the matching item to determine\n // the actual key.\n var selectedItem = normalizedItems.find(item => String(getItemKey(item)) === key);\n var actualKey = (_getItemKey = getItemKey(selectedItem)) !== null && _getItemKey !== void 0 ? _getItemKey : key;\n onChange(actualKey);\n }, [normalizedItems, onChange]);\n return {\n selectedStringKey,\n defaultSelectedStringKey,\n disabledStringKeys,\n onStringSelectionChange\n };\n}\nexport default useStringifiedSelection;\n//# sourceMappingURL=useStringifiedSelection.js.map","import { useProvider } from '@adobe/react-spectrum';\nexport var useSpectrumThemeProvider = useProvider;\nexport default useSpectrumThemeProvider;\n//# sourceMappingURL=useSpectrumThemeProvider.js.map","var _excluded = [\"onScroll\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { ListView as SpectrumListView } from '@adobe/react-spectrum';\nimport { extractSpectrumHTMLElement, useContentRect, useOnScrollRef } from '@deephaven/react-hooks';\nimport { EMPTY_FUNCTION } from '@deephaven/utils';\nimport cl from 'classnames';\nimport { useSpectrumThemeProvider } from \"../../theme/index.js\";\nimport { Flex } from \"../layout.js\";\nimport { separateSpectrumProps } from \"../utils/index.js\";\nimport \"./ListViewWrapper.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Helper component to wrap a ListView with the appropriate styling + scroll\n * handling. This is used by both the `@deephaven/components` `ListView` and\n * the `@deephaven/jsapi-components` `ListView` (via `ListViewNormalized`) to\n * ensure consistency.\n *\n * Note that This component will usually not be used directly. Instead, it is\n * recommended to use\n * - `@deephaven/components`'s `ListView` for non-table data sources\n * - `@deephaven/jsapi-components`'s `ListView` for table data sources\n */\nexport function ListViewWrapper(props) {\n var _styleProps$minHeight, _listViewProps$densit;\n var {\n ariaLabelProps,\n componentProps,\n styleProps\n } = separateSpectrumProps(props);\n var {\n onScroll = EMPTY_FUNCTION\n } = componentProps,\n listViewProps = _objectWithoutProperties(componentProps, _excluded);\n var {\n scale\n } = useSpectrumThemeProvider();\n var scrollRef = useOnScrollRef(onScroll, extractSpectrumHTMLElement);\n\n // Spectrum ListView crashes when it has zero height. Track the contentRect\n // of the parent container and only render the ListView when it has a non-zero\n // height. See https://github.com/adobe/react-spectrum/issues/6213\n var {\n ref: contentRectRef,\n contentRect\n } = useContentRect(extractSpectrumHTMLElement);\n return /*#__PURE__*/_jsx(Flex, _objectSpread(_objectSpread({\n direction: \"column\",\n ref: contentRectRef\n // eslint-disable-next-line react/jsx-props-no-spreading\n }, styleProps), {}, {\n // Set min-height to 1px so that `ListView` is rendered whenever container\n // is visible. This prevents the height from shrinking to zero as a result\n // of a parent grid or flex container calculating content sizes. The\n // container height can still be zero when it is not being displayed such\n // as when one of its parents have `display: none`.\n minHeight: (_styleProps$minHeight = styleProps.minHeight) !== null && _styleProps$minHeight !== void 0 ? _styleProps$minHeight : 1,\n UNSAFE_className: cl('dh-list-view-wrapper', \"dh-list-view-wrapper-density-\".concat((_listViewProps$densit = listViewProps.density) !== null && _listViewProps$densit !== void 0 ? _listViewProps$densit : 'regular'), \"dh-list-view-wrapper-scale-\".concat(scale), styleProps.UNSAFE_className),\n children: contentRect.height === 0 ? null : /*#__PURE__*/_jsx(SpectrumListView, _objectSpread(_objectSpread({\n ref: scrollRef\n // eslint-disable-next-line react/jsx-props-no-spreading\n }, ariaLabelProps), listViewProps))\n }));\n}\nexport default ListViewWrapper;\n//# sourceMappingURL=ListViewWrapper.js.map","var _excluded = [\"children\", \"tooltip\", \"selectedKeys\", \"defaultSelectedKeys\", \"disabledKeys\", \"UNSAFE_className\", \"onChange\", \"onScroll\", \"onSelectionChange\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useMemo } from 'react';\nimport cl from 'classnames';\nimport { EMPTY_FUNCTION } from '@deephaven/utils';\nimport { normalizeTooltipOptions, wrapItemChildren } from \"../utils/index.js\";\nimport { ListViewWrapper } from \"./ListViewWrapper.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ListView(_ref) {\n var {\n children,\n tooltip = true,\n selectedKeys,\n defaultSelectedKeys,\n disabledKeys,\n UNSAFE_className,\n onChange,\n onScroll = EMPTY_FUNCTION,\n onSelectionChange\n } = _ref,\n spectrumListViewProps = _objectWithoutProperties(_ref, _excluded);\n var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip, 'bottom'), [tooltip]);\n var wrappedItems = useMemo(() => wrapItemChildren(children, tooltipOptions), [children, tooltipOptions]);\n return /*#__PURE__*/_jsx(ListViewWrapper\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, spectrumListViewProps), {}, {\n UNSAFE_className: cl('dh-list-view', UNSAFE_className),\n selectedKeys: selectedKeys,\n defaultSelectedKeys: defaultSelectedKeys,\n disabledKeys: disabledKeys,\n onScroll: onScroll,\n onSelectionChange: onChange !== null && onChange !== void 0 ? onChange : onSelectionChange,\n children: wrappedItems\n }));\n}\nexport default ListView;\n//# sourceMappingURL=ListView.js.map","var _excluded = [\"normalizedItems\", \"tooltip\", \"selectedKeys\", \"defaultSelectedKeys\", \"disabledKeys\", \"showItemIcons\", \"UNSAFE_className\", \"onChange\", \"onSelectionChange\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useMemo } from 'react';\nimport cl from 'classnames';\nimport { normalizeTooltipOptions, useRenderNormalizedItem, useStringifiedMultiSelection } from \"../utils/index.js\";\nimport { ListViewWrapper } from \"./ListViewWrapper.js\";\nimport { createElement as _createElement } from \"react\";\n/**\n * ListView supporting normalized item data. This component mostly exists to\n * decouple some of the logic needed to support table data. Specifically it\n * handles item rendering configurations as well as converting selection keys\n * to / from strings. This makes it easier to test logic in isolation without\n * a dependency on JS apis (e.g. in the Styleguide).\n *\n * Note that This component will usually not be used directly. Instead, it is\n * recommended to use\n * - `@deephaven/components`'s `ListView` for non-table data sources\n * - `@deephaven/jsapi-components`'s `ListView` for table data sources\n */\nexport function ListViewNormalized(_ref) {\n var {\n normalizedItems,\n tooltip = true,\n selectedKeys,\n defaultSelectedKeys,\n disabledKeys,\n showItemIcons,\n UNSAFE_className,\n onChange,\n onSelectionChange\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip, 'bottom'), [tooltip]);\n var renderNormalizedItem = useRenderNormalizedItem({\n itemIconSlot: 'illustration',\n // Descriptions introduce variable item heights which throws off setting\n // viewport on windowed data. For now not going to implement description\n // support in Picker.\n // https://github.com/deephaven/web-client-ui/issues/1958\n showItemDescriptions: false,\n showItemIcons,\n tooltipOptions\n });\n\n // Spectrum doesn't re-render if only the `renderNormalizedItems` function\n // changes, so we create a key from its dependencies that can be used to force\n // re-render.\n var forceRerenderKey = \"\".concat(showItemIcons, \"-\").concat(tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.placement);\n var {\n selectedStringKeys,\n defaultSelectedStringKeys,\n disabledStringKeys,\n onStringSelectionChange\n } = useStringifiedMultiSelection({\n normalizedItems,\n selectedKeys,\n defaultSelectedKeys,\n disabledKeys,\n onChange: onChange !== null && onChange !== void 0 ? onChange : onSelectionChange\n });\n return /*#__PURE__*/_createElement(ListViewWrapper\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, props), {}, {\n UNSAFE_className: cl('dh-list-view-normalized', UNSAFE_className),\n key: forceRerenderKey,\n items: normalizedItems,\n selectedKeys: selectedStringKeys,\n defaultSelectedKeys: defaultSelectedStringKeys,\n disabledKeys: disabledStringKeys,\n onSelectionChange: onStringSelectionChange\n }), renderNormalizedItem);\n}\nexport default ListViewNormalized;\n//# sourceMappingURL=ListViewNormalized.js.map","import { useCallback } from 'react';\nimport { findSpectrumPickerScrollArea, usePopoverOnScrollRef } from '@deephaven/react-hooks';\n/**\n * Handle scroll event registration and scrolling to initial scroll position\n * whenever a Picker popover is opened.\n * @param getInitialScrollPosition Function to get the initial scroll position.\n * @param onScroll Callback for scroll events.\n * @param onOpenChange Callback for open change events.\n * @return A ref to attach to the Picker and a callback to handle open change\n * events for the Picker.\n */\nexport function usePickerScrollOnOpen(_ref) {\n var {\n getInitialScrollPosition,\n onScroll,\n onOpenChange\n } = _ref;\n var {\n ref,\n onOpenChange: popoverOnOpenChange\n } = usePopoverOnScrollRef(findSpectrumPickerScrollArea, onScroll, getInitialScrollPosition);\n var onOpenChangeInternal = useCallback(isOpen => {\n // Attach scroll event handling\n popoverOnOpenChange(isOpen);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(isOpen);\n }, [onOpenChange, popoverOnOpenChange]);\n return {\n ref,\n onOpenChange: onOpenChangeInternal\n };\n}\nexport default usePickerScrollOnOpen;\n//# sourceMappingURL=usePickerScrollOnOpen.js.map","var _excluded = [\"children\", \"tooltip\", \"defaultSelectedKey\", \"selectedKey\", \"onChange\", \"onOpenChange\", \"onScroll\", \"onSelectionChange\", \"UNSAFE_className\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useCallback, useMemo, useState } from 'react';\nimport { Picker as SpectrumPicker } from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport { EMPTY_FUNCTION, ensureArray, PICKER_ITEM_HEIGHTS, PICKER_TOP_OFFSET } from '@deephaven/utils';\nimport { getPositionOfSelectedItemElement, normalizeTooltipOptions, isItemElementWithDescription, isSectionElement } from \"../utils/itemUtils.js\";\nimport { wrapItemChildren } from \"../utils/itemWrapperUtils.js\";\nimport usePickerScrollOnOpen from \"./usePickerScrollOnOpen.js\";\nimport { useSpectrumThemeProvider } from \"../../theme/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Picker component for selecting items from a list of items. Items can be\n * provided via the `children` prop. Each item can be a string,\tnumber, boolean,\n * or a Spectrum <Item> element. The remaining props are just\tpass through props\n * for the Spectrum Picker component.\n * See https://react-spectrum.adobe.com/react-spectrum/Picker.html\n */\nexport function Picker(_ref) {\n var {\n children,\n tooltip = true,\n defaultSelectedKey,\n selectedKey,\n onChange,\n onOpenChange,\n onScroll = EMPTY_FUNCTION,\n onSelectionChange,\n // eslint-disable-next-line camelcase\n UNSAFE_className\n } = _ref,\n spectrumPickerProps = _objectWithoutProperties(_ref, _excluded);\n var {\n scale\n } = useSpectrumThemeProvider();\n var itemHeight = PICKER_ITEM_HEIGHTS[scale];\n var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip), [tooltip]);\n\n // `null` is a valid value for `selectedKey` in controlled mode, so we check\n // for explicit `undefined` to identify uncontrolled mode.\n var isUncontrolled = selectedKey === undefined;\n var [uncontrolledSelectedKey, setUncontrolledSelectedKey] = useState(defaultSelectedKey);\n var wrappedItems = useMemo(() => ensureArray(wrapItemChildren(children, tooltipOptions)), [children, tooltipOptions]);\n\n // Item descriptions and Section elements introduce variable item heights.\n // This throws off scroll position calculations, so we disable auto scrolling\n // if either of these are found.\n var disableScrollOnOpen = useMemo(() => wrappedItems.some(item => isSectionElement(item) || isItemElementWithDescription(item)), [wrappedItems]);\n var getInitialScrollPosition = useCallback( /*#__PURE__*/_asyncToGenerator(function* () {\n return disableScrollOnOpen ? null : getPositionOfSelectedItemElement({\n items: wrappedItems,\n itemHeight,\n selectedKey: isUncontrolled ? uncontrolledSelectedKey : selectedKey,\n topOffset: PICKER_TOP_OFFSET\n });\n }), [disableScrollOnOpen, isUncontrolled, itemHeight, selectedKey, uncontrolledSelectedKey, wrappedItems]);\n var onSelectionChangeInternal = useCallback(key => {\n var _ref3;\n // If our component is uncontrolled, track the selected key internally\n // so that we can scroll to the selected item if the user re-opens\n if (isUncontrolled) {\n setUncontrolledSelectedKey(key);\n }\n (_ref3 = onChange !== null && onChange !== void 0 ? onChange : onSelectionChange) === null || _ref3 === void 0 ? void 0 : _ref3(key);\n }, [isUncontrolled, onChange, onSelectionChange]);\n var {\n ref: scrollRef,\n onOpenChange: onOpenChangeInternal\n } = usePickerScrollOnOpen({\n getInitialScrollPosition,\n onScroll,\n onOpenChange\n });\n return /*#__PURE__*/_jsx(SpectrumPicker\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, spectrumPickerProps), {}, {\n ref: scrollRef,\n UNSAFE_className: cl('dh-picker', UNSAFE_className),\n selectedKey: selectedKey,\n defaultSelectedKey: defaultSelectedKey,\n onSelectionChange: onSelectionChangeInternal,\n onOpenChange: onOpenChangeInternal,\n children: wrappedItems\n }));\n}\nexport default Picker;\n//# sourceMappingURL=Picker.js.map","var _excluded = [\"normalizedItems\", \"tooltip\", \"selectedKey\", \"defaultSelectedKey\", \"disabledKeys\", \"showItemIcons\", \"UNSAFE_className\", \"getInitialScrollPosition\", \"onChange\", \"onOpenChange\", \"onScroll\", \"onSelectionChange\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useMemo } from 'react';\nimport { Picker as SpectrumPicker } from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport { EMPTY_FUNCTION } from '@deephaven/utils';\nimport { Section } from \"../shared.js\";\nimport { getItemKey, isNormalizedSection, normalizeTooltipOptions, useRenderNormalizedItem, useStringifiedSelection } from \"../utils/index.js\";\nimport usePickerScrollOnOpen from \"./usePickerScrollOnOpen.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\n/**\n * Picker that takes an array of `NormalizedItem` or `NormalizedSection` items\n * as children and uses a render item function to render the items. This is\n * necessary to support windowed data.\n */\nexport function PickerNormalized(_ref) {\n var {\n normalizedItems,\n tooltip = true,\n selectedKey,\n defaultSelectedKey,\n disabledKeys,\n showItemIcons,\n UNSAFE_className,\n getInitialScrollPosition,\n onChange,\n onOpenChange,\n onScroll = EMPTY_FUNCTION,\n onSelectionChange\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip), [tooltip]);\n var renderNormalizedItem = useRenderNormalizedItem({\n itemIconSlot: 'icon',\n // Descriptions introduce variable item heights which throws off calculation\n // of initial scroll position and setting viewport on windowed data. For now\n // not going to implement description support in Picker.\n // https://github.com/deephaven/web-client-ui/issues/1958\n showItemDescriptions: false,\n showItemIcons,\n tooltipOptions\n });\n\n // Spectrum doesn't re-render if only the `renderNormalizedItems` function\n // changes, so we create a key from its dependencies that can be used to force\n // re-render.\n var forceRerenderKey = \"\".concat(showItemIcons, \"-\").concat(tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.placement);\n var {\n ref: scrollRef,\n onOpenChange: onOpenChangeInternal\n } = usePickerScrollOnOpen({\n getInitialScrollPosition,\n onScroll,\n onOpenChange\n });\n\n // Spectrum Picker treats keys as strings if the `key` prop is explicitly\n // set on `Item` elements. Since we do this in `renderItem`, we need to\n // map original key types to and from strings so that selection works.\n var {\n selectedStringKey,\n defaultSelectedStringKey,\n disabledStringKeys,\n onStringSelectionChange\n } = useStringifiedSelection({\n normalizedItems,\n selectedKey,\n defaultSelectedKey,\n disabledKeys,\n onChange: onChange !== null && onChange !== void 0 ? onChange : onSelectionChange\n });\n return /*#__PURE__*/_createElement(SpectrumPicker\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, props), {}, {\n key: forceRerenderKey,\n ref: scrollRef,\n UNSAFE_className: cl('dh-picker', 'dh-picker-normalized', UNSAFE_className),\n items: normalizedItems,\n selectedKey: selectedStringKey,\n defaultSelectedKey: defaultSelectedStringKey,\n disabledKeys: disabledStringKeys,\n onSelectionChange: onStringSelectionChange,\n onOpenChange: onOpenChangeInternal\n }), itemOrSection => {\n if (isNormalizedSection(itemOrSection)) {\n var _itemOrSection$item, _itemOrSection$item2;\n return /*#__PURE__*/_jsx(Section, {\n title: (_itemOrSection$item = itemOrSection.item) === null || _itemOrSection$item === void 0 ? void 0 : _itemOrSection$item.title,\n items: (_itemOrSection$item2 = itemOrSection.item) === null || _itemOrSection$item2 === void 0 ? void 0 : _itemOrSection$item2.items,\n children: renderNormalizedItem\n }, getItemKey(itemOrSection));\n }\n return renderNormalizedItem(itemOrSection);\n });\n}\nexport default PickerNormalized;\n//# sourceMappingURL=PickerNormalized.js.map","var _excluded = [\"color\", \"UNSAFE_style\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* eslint-disable react/jsx-props-no-spreading */\nimport { forwardRef, useMemo } from 'react';\nimport { Heading as SpectrumHeading } from '@adobe/react-spectrum';\nimport { colorValueStyle } from \"../theme/colorUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * A Heading component that re-exports the Spectrum Heading component.\n * It overrides ColorValues to accept CSS color strings and custom\n * variable names from our color paletee and semantic colors.\n *\n * @param props The props for the Heading component\n * @returns The Heading component\n *\n */\n\nexport var Heading = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var {\n color,\n UNSAFE_style\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var style = useMemo(() => _objectSpread(_objectSpread({}, UNSAFE_style), {}, {\n color: colorValueStyle(color)\n }), [color, UNSAFE_style]);\n return /*#__PURE__*/_jsx(SpectrumHeading, _objectSpread(_objectSpread({}, rest), {}, {\n ref: forwardedRef,\n UNSAFE_style: style\n }));\n});\nHeading.displayName = 'Heading';\nexport default Heading;\n//# sourceMappingURL=Heading.js.map","var _excluded = [\"backgroundColor\", \"UNSAFE_style\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* eslint-disable react/jsx-props-no-spreading */\nimport { forwardRef, useMemo } from 'react';\nimport { View as SpectrumView } from '@adobe/react-spectrum';\nimport { colorValueStyle } from \"../theme/colorUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * A View component that re-exports the Spectrum View component.\n * However, it overrides ColorValues to accept CSS color strings and\n * our custom variable names from our color paletee and semantic colors.\n *\n * @param props The props for the View component\n * @returns The View component\n *\n */\n\nexport var View = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var {\n backgroundColor,\n UNSAFE_style\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var style = useMemo(() => _objectSpread(_objectSpread({}, UNSAFE_style), {}, {\n backgroundColor: colorValueStyle(backgroundColor)\n }), [backgroundColor, UNSAFE_style]);\n return /*#__PURE__*/_jsx(SpectrumView, _objectSpread(_objectSpread({}, rest), {}, {\n ref: forwardedRef,\n UNSAFE_style: style\n }));\n});\nView.displayName = 'View';\nexport default View;\n//# sourceMappingURL=View.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * An Input component that pops and filters auto complete options as you type.\n *\n * props:\n * @param options :[{\n * title: 'option title for display',\n * value: 'option value' //option value\n * }]\n * @param popperOptions options for the Popper\n * @param onChange called when the value is changed from the pulldown\n * @param inputPlaceholder place holder for the input box\n * @param disabled disable both input & drop down\n * @param className an optional class name applied to the input element\n * @param defaultTitle the default title to display\n * @param spellCheck flag to disable spell checking, defaults to true\n * @param onEnter called when the Enter key is typed in the input element\n *\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport memoize from 'memoizee';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { Popper } from \"./popper/index.js\";\nimport \"./AutoCompleteInput.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar DEBOUNCE_DELAY = 100;\nvar MENU_NAVIGATION_DIRECTION;\n(function (MENU_NAVIGATION_DIRECTION) {\n MENU_NAVIGATION_DIRECTION[\"UP\"] = \"UP\";\n MENU_NAVIGATION_DIRECTION[\"DOWN\"] = \"DOWN\";\n})(MENU_NAVIGATION_DIRECTION || (MENU_NAVIGATION_DIRECTION = {}));\nclass AutoCompleteInput extends Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"popper\", void 0);\n _defineProperty(this, \"cbContainer\", void 0);\n _defineProperty(this, \"menuContainer\", void 0);\n _defineProperty(this, \"input\", void 0);\n _defineProperty(this, \"getCachedFilteredOptions\", memoize((options, input) => options.filter(\n // supports partial match\n option => option.title.toLowerCase().indexOf(input.toLowerCase()) >= 0)));\n var {\n popperOptions\n } = this.props;\n popperOptions = _objectSpread({\n placement: 'bottom-end',\n modifiers: {\n preventOverflow: {\n enabled: false\n }\n }\n }, popperOptions);\n this.state = {\n title: '',\n filteredOptions: [],\n keyboardOptionIndex: 0,\n menuIsOpen: false,\n inputWidth: 100,\n invalid: false,\n popperOptions\n };\n this.handleMenuKeyDown = this.handleMenuKeyDown.bind(this);\n this.handleMenuBlur = this.handleMenuBlur.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleInputKeyDown = this.handleInputKeyDown.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n this.handelInputFocus = this.handelInputFocus.bind(this);\n this.handleInputClick = this.handleInputClick.bind(this);\n this.updateInputValue = debounce(this.updateInputValue, DEBOUNCE_DELAY);\n this.handleOptionClick = this.handleOptionClick.bind(this);\n this.handleMenuOpened = this.handleMenuOpened.bind(this);\n this.handleMenuExited = this.handleMenuExited.bind(this);\n this.popper = /*#__PURE__*/React.createRef();\n this.cbContainer = /*#__PURE__*/React.createRef();\n this.menuContainer = /*#__PURE__*/React.createRef();\n this.input = /*#__PURE__*/React.createRef();\n }\n setInputWidth() {\n if (this.cbContainer.current) {\n this.setState({\n inputWidth: this.cbContainer.current.getBoundingClientRect().width\n });\n }\n }\n // validation needs to be an exact case-sensitve match on value\n getValueAndValidate(title) {\n if (!title) {\n this.setState({\n invalid: false\n });\n return {\n value: title,\n isValid: false\n };\n }\n\n // validate\n var {\n options\n } = this.props;\n var result = options.filter(option => option.title.toLowerCase() === title.toLowerCase());\n if (result.length < 1) {\n this.setState({\n invalid: true\n });\n return {\n value: title,\n isValid: false\n };\n }\n this.setState({\n invalid: false\n });\n return {\n value: result[0].value,\n isValid: true\n };\n }\n\n // validate typed entries emit change event using value\n updateInputValue(title) {\n var {\n menuIsOpen\n } = this.state;\n var {\n value,\n isValid\n } = this.getValueAndValidate(title);\n if (menuIsOpen) this.processFilterChange(title);\n this.fireOnChange(value, isValid);\n }\n fireOnChange(value) {\n var isValid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var {\n onChange\n } = this.props;\n onChange(value, isValid);\n }\n processFilterChange(filter) {\n var _this$popper$current;\n var {\n options\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n var filteredOptions = filter ? this.getCachedFilteredOptions(options, filter) : options;\n var perfectMatch = filteredOptions.length === 1 && filteredOptions[0].title === filter;\n this.setState({\n filteredOptions,\n keyboardOptionIndex: 0\n });\n if (perfectMatch && menuIsOpen) {\n this.closeMenu();\n return;\n }\n (_this$popper$current = this.popper.current) === null || _this$popper$current === void 0 ? void 0 : _this$popper$current.scheduleUpdate(); // filtered options list can change size, may need to be repositioned\n }\n\n resetValue() {\n this.setState({\n title: ''\n });\n this.fireOnChange('');\n }\n handleResize() {\n this.setInputWidth();\n }\n handleMenuKeyDown(event) {\n var _this$input$current;\n var {\n filteredOptions,\n keyboardOptionIndex\n } = this.state;\n var option = filteredOptions[keyboardOptionIndex];\n switch (event.key) {\n case 'Enter':\n case 'ArrowRight':\n event.stopPropagation();\n event.preventDefault();\n if (option != null) {\n this.setState({\n title: option.title,\n invalid: false\n });\n this.fireOnChange(option.value);\n }\n this.closeMenu();\n (_this$input$current = this.input.current) === null || _this$input$current === void 0 ? void 0 : _this$input$current.focus();\n break;\n case 'ArrowUp':\n event.stopPropagation();\n event.preventDefault();\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP);\n break;\n case 'ArrowDown':\n event.stopPropagation();\n event.preventDefault();\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN);\n break;\n case 'Tab':\n event.stopPropagation();\n event.preventDefault();\n if (event.shiftKey) {\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP);\n break;\n }\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN);\n break;\n case 'Escape':\n event.preventDefault();\n event.stopPropagation();\n this.closeMenu();\n break;\n default:\n break;\n }\n }\n navigateMenu(direction) {\n var {\n filteredOptions,\n keyboardOptionIndex\n } = this.state;\n var newKeyboardOptionIndex = keyboardOptionIndex;\n if (direction === AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP) {\n if (keyboardOptionIndex > 0) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex - 1) % filteredOptions.length;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n } else if (keyboardOptionIndex === 0) {\n newKeyboardOptionIndex = filteredOptions.length - 1;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n } else if (direction === AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN) {\n if (keyboardOptionIndex < filteredOptions.length) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex + 1) % filteredOptions.length;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n }\n handleInputKeyDown(event) {\n var {\n onEnter\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.handleMenuKeyDown(event);\n } else if (event.key === 'Enter') {\n onEnter();\n } else if (event.key === 'Escape') {\n this.resetValue();\n event.preventDefault();\n event.stopPropagation();\n } else if (!(event.key === 'ArrowRight' || event.key === 'ArrowLeft' || event.key === 'Tab' || event.key === 'Shift')) {\n this.openMenu();\n }\n }\n handleInputChange(event) {\n this.setState({\n title: event.target.value\n });\n this.updateInputValue(event.target.value);\n }\n handleOptionClick(option) {\n var _this$input$current2;\n this.setState({\n title: option.title,\n invalid: false\n });\n this.fireOnChange(option.value);\n this.closeMenu();\n (_this$input$current2 = this.input.current) === null || _this$input$current2 === void 0 ? void 0 : _this$input$current2.focus();\n }\n handelInputFocus() {\n var {\n menuIsOpen\n } = this.state;\n if (!menuIsOpen) {\n this.openMenu();\n }\n }\n handleInputClick() {\n var {\n menuIsOpen\n } = this.state;\n if (!menuIsOpen) {\n this.openMenu();\n }\n }\n handleInputBlur(event) {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen && event.relatedTarget instanceof Element && this.popper.current !== null && this.popper.current.element.contains(event.relatedTarget)) {\n return;\n }\n this.closeMenu(false);\n }\n handleMenuBlur(event) {\n // if blur event is caused by focusing on the input or focus on options don't close menu\n if (event.relatedTarget === this.input.current || event.relatedTarget instanceof Element && this.popper.current !== null && this.popper.current.element.contains(event.relatedTarget)) {\n return;\n }\n this.closeMenu(false);\n }\n handleMenuOpened() {\n var _this$input$current3;\n (_this$input$current3 = this.input.current) === null || _this$input$current3 === void 0 ? void 0 : _this$input$current3.focus();\n }\n handleMenuExited() {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.setState({\n menuIsOpen: false,\n keyboardOptionIndex: 0\n });\n }\n }\n openMenu() {\n var {\n title\n } = this.state;\n this.processFilterChange(title);\n this.setInputWidth();\n this.setState({\n menuIsOpen: true\n });\n\n // https://github.com/reactjs/react-transition-group/issues/382\n window.requestAnimationFrame(() => {\n var _this$popper$current2;\n (_this$popper$current2 = this.popper.current) === null || _this$popper$current2 === void 0 ? void 0 : _this$popper$current2.show();\n });\n }\n closeMenu() {\n var _this$popper$current3;\n var focusInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.setState({\n menuIsOpen: false,\n keyboardOptionIndex: 0\n });\n if (focusInput) {\n var _this$input$current4;\n (_this$input$current4 = this.input.current) === null || _this$input$current4 === void 0 ? void 0 : _this$input$current4.focus();\n }\n (_this$popper$current3 = this.popper.current) === null || _this$popper$current3 === void 0 ? void 0 : _this$popper$current3.hide();\n }\n scrollOptionIntoView(index) {\n if (this.menuContainer.current) {\n var _this$menuContainer$c;\n (_this$menuContainer$c = this.menuContainer.current.children.item(index)) === null || _this$menuContainer$c === void 0 ? void 0 : _this$menuContainer$c.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest'\n });\n }\n }\n renderMenuElement() {\n var {\n inputWidth\n } = this.state;\n return /*#__PURE__*/_jsx(\"div\", {\n className: classNames('aci-options'),\n ref: this.menuContainer,\n role: \"presentation\",\n onKeyDown: this.handleMenuKeyDown,\n style: {\n width: inputWidth\n },\n onBlur: this.handleMenuBlur,\n children: this.renderOptions()\n });\n }\n renderOptions() {\n var {\n noMatchText\n } = this.props;\n var {\n title,\n filteredOptions\n } = this.state;\n if (title && filteredOptions.length === 0) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"no-match\",\n children: noMatchText\n });\n }\n return filteredOptions.map((option, index) => this.renderOption(option, index));\n }\n renderOption(option, index) {\n var {\n keyboardOptionIndex\n } = this.state;\n var key = \"option-\".concat(index, \"-\").concat(option.value);\n return /*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n className: classNames('aci-option-btn', {\n 'keyboard-active': keyboardOptionIndex === index\n }),\n onClick: () => this.handleOptionClick(option),\n onFocus: () => this.setState({\n keyboardOptionIndex: index\n }),\n children: option.title\n }, key);\n }\n render() {\n var {\n options,\n inputPlaceholder,\n disabled,\n className,\n defaultTitle,\n spellCheck,\n 'data-testid': dataTestId\n } = this.props;\n var {\n title,\n menuIsOpen,\n popperOptions,\n invalid\n } = this.state;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"aci-container\",\n ref: this.cbContainer,\n children: [/*#__PURE__*/_jsx(\"input\", {\n value: title || defaultTitle,\n className: classNames('form-control', className, 'aci-input', {\n 'is-invalid': invalid && !menuIsOpen\n }),\n ref: this.input,\n onChange: this.handleInputChange,\n placeholder: inputPlaceholder || options[0].title,\n disabled: disabled,\n onFocus: this.handelInputFocus,\n onClick: this.handleInputClick,\n onBlur: this.handleInputBlur,\n onKeyDown: this.handleInputKeyDown,\n spellCheck: spellCheck,\n \"data-testid\": dataTestId\n }), /*#__PURE__*/_jsx(Popper, {\n ref: this.popper,\n options: popperOptions,\n className: classNames('aci-options-popper interactive'),\n onEntered: this.handleMenuOpened,\n onExited: this.handleMenuExited,\n children: this.renderMenuElement()\n })]\n });\n }\n}\n_defineProperty(AutoCompleteInput, \"propTypes\", {\n options: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired\n })).isRequired,\n popperOptions: PropTypes.shape({}),\n onChange: PropTypes.func,\n inputPlaceholder: PropTypes.string,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n defaultTitle: PropTypes.string,\n spellCheck: PropTypes.bool,\n onEnter: PropTypes.func,\n noMatchText: PropTypes.string,\n 'data-testid': PropTypes.string\n});\n_defineProperty(AutoCompleteInput, \"defaultProps\", {\n onChange() {\n // no-op\n },\n inputPlaceholder: '',\n disabled: false,\n className: '',\n defaultTitle: '',\n popperOptions: null,\n spellCheck: true,\n onEnter() {\n // no-op\n },\n noMatchText: 'No matching items found',\n 'data-testid': undefined\n});\n_defineProperty(AutoCompleteInput, \"MENU_NAVIGATION_DIRECTION\", MENU_NAVIGATION_DIRECTION);\nexport default AutoCompleteInput;\n//# sourceMappingURL=AutoCompleteInput.js.map","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport \"./AutoResizeTextarea.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Makes a textarea that auto resizes based on contents, its height grows with new lines.\n * If a delimeter is set, such as \" -\" or \" \", as used by jvm args or env vars\n * then the field will also \"explode\" the value by the delimiter over new lines\n * on focus, and implode on blur. By default, it doesn't word wrap.\n */\nfunction AutoResizeTextarea(_ref) {\n var {\n className = '',\n value: propsValue,\n onChange,\n spellCheck = false,\n placeholder = '',\n disabled = false,\n delimiter = '',\n id = '',\n 'data-testid': dataTestId\n } = _ref;\n var [value, setValue] = useState(propsValue);\n var [isPastedChange, setIsPastedChange] = useState(false);\n var element = useRef(null);\n useEffect(function syncStateWithProp() {\n // keep state value in sync with prop changes\n setValue(propsValue);\n }, [propsValue]);\n function explode(input) {\n // split by delimiter, commonly \" \" or \" -\"\n // strip empty strings (if delimiter is space, and there are multiple spaces in a row)\n // and join with new line and a trimmed delimeter (get rid of leading spaces)\n return input.trim().split(delimiter).filter(string => string) // remove empty strings\n .join(\"\\n\".concat(delimiter.trim()));\n }\n function implode(input) {\n return input.split('\\n').map(string => string.trim()).join(' ');\n }\n function reCalculateLayout() {\n if (!element.current) {\n return;\n }\n element.current.style.height = '0'; // shrink component to get scrollHeight\n var resizedHeight = element.current.scrollHeight + (element.current.offsetHeight - element.current.clientHeight);\n // accounts for border, padding is captured by scroll height\n if (resizedHeight > 0) element.current.style.height = \"\".concat(resizedHeight, \"px\");\n }\n function handleChange(event) {\n var newValue = event.target.value;\n if (isPastedChange) {\n if (delimiter) newValue = explode(newValue);\n setIsPastedChange(false);\n }\n setValue(newValue);\n onChange(newValue);\n }\n function handleFocus() {\n if (!element.current) {\n return;\n }\n if (delimiter) {\n setValue(explode(value));\n reCalculateLayout();\n }\n element.current.scrollLeft = 0;\n // scroll left as it can be disorienting if you click on a long line\n }\n\n // make it explode when dragging the resize handle\n // by making it trigger focus (which normally doesn't\n // trigger when just resizing).\n function handleMouseDown() {\n if (!element.current) return;\n if (document.activeElement === element.current) return;\n element.current.focus();\n }\n function handleBlur() {\n if (delimiter) {\n setValue(implode(value));\n onChange(implode(value));\n }\n }\n function handlePaste() {\n setIsPastedChange(true);\n }\n useEffect(function reCalculate() {\n reCalculateLayout();\n }, [value]);\n return /*#__PURE__*/_jsx(\"textarea\", {\n ref: element,\n id: id,\n className: classNames(className, 'auto-resize-textarea form-control'),\n placeholder: placeholder,\n value: value,\n rows: 1,\n onChange: handleChange,\n onFocus: handleFocus,\n onMouseDown: handleMouseDown,\n onBlur: handleBlur,\n onPaste: handlePaste,\n spellCheck: spellCheck,\n disabled: disabled,\n \"data-testid\": dataTestId\n });\n}\nAutoResizeTextarea.propTypes = {\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n className: PropTypes.string,\n placeholder: PropTypes.string,\n spellCheck: PropTypes.bool,\n disabled: PropTypes.bool,\n delimiter: PropTypes.string,\n id: PropTypes.string,\n 'data-testid': PropTypes.string\n};\nAutoResizeTextarea.defaultProps = {\n className: '',\n id: '',\n placeholder: '',\n disabled: false,\n spellCheck: false,\n delimiter: '',\n 'data-testid': undefined\n};\nexport default AutoResizeTextarea;\n//# sourceMappingURL=AutoResizeTextarea.js.map","import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport Log from '@deephaven/log';\nimport { TimeUtils } from '@deephaven/utils';\nimport MaskedInput from \"./MaskedInput.js\";\nimport { DEFAULT_GET_PREFERRED_REPLACEMENT_STRING } from \"./MaskedInputUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar log = Log.module('TimeInput');\nvar TIME_PATTERN = '([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]';\nvar EXAMPLES = ['00:00:00', '12:34:56', '23:59:59'];\nfunction fixIncompleteValue(value) {\n // If value is not a complete HH:mm:ss time, fill missing parts with 0\n if (value != null) {\n return \"\".concat(value.substring(0, 8).replace(/\\u2007/g, '0')).concat(\"00:00:00\".substring(value.length));\n }\n return value;\n}\n\n// Forward ref causes a false positive for display-name in eslint:\n// https://github.com/yannickcr/eslint-plugin-react/issues/2269\n// eslint-disable-next-line react/display-name\nvar TimeInput = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n allowValueWrapping = true,\n className = '',\n onChange = () => false,\n value: propsValue = 0,\n onFocus = () => false,\n onBlur = () => false,\n onSelect = () => false,\n 'data-testid': dataTestId\n } = props;\n var [value, setValue] = useState(TimeUtils.formatTime(propsValue));\n var parsedValueRef = useRef(propsValue);\n var [selection, _setSelection] = useState();\n var inputRef = useRef(null);\n useImperativeHandle(ref, () => ({\n focus: () => {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n },\n setSelection: newSelection => {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();\n _setSelection(newSelection);\n }\n }), []);\n useEffect(function setFormattedTime() {\n // Ignore value prop update if it matches the displayed value\n // to preserve the displayed value while typing\n if (parsedValueRef.current !== propsValue) {\n setValue(TimeUtils.formatTime(propsValue));\n parsedValueRef.current = propsValue;\n }\n }, [parsedValueRef, propsValue]);\n function getNextSegmentValue(range, delta, segmentValue) {\n // Delta is backward because negative Y is up\n var maxValue = range.selectionStart === 0 ? 24 : 60;\n var newSegmentValue = parseInt(segmentValue, 10) - delta;\n if (Number.isNaN(newSegmentValue)) {\n newSegmentValue = 0;\n } else if (allowValueWrapping) {\n // Add max value and re-mod so we don't get negative values after mod\n newSegmentValue = (newSegmentValue % maxValue + maxValue) % maxValue;\n } else {\n newSegmentValue = Math.min(Math.max(0, newSegmentValue), maxValue - 1);\n }\n return \"\".concat(newSegmentValue).padStart(2, '0');\n }\n function getPreferredReplacementString(replaceValue, replaceIndex, newChar, selectionStart, selectionEnd) {\n if (selectionStart === 0 && selectionEnd === 2 && replaceIndex === 1 && parseInt(newChar, 10) > 1) {\n // DH-10082 Special case for when typing `3` when it's already 12\n return \"0\".concat(newChar).concat(replaceValue.substring(2));\n }\n return DEFAULT_GET_PREFERRED_REPLACEMENT_STRING(replaceValue, replaceIndex, newChar);\n }\n var handleChange = useCallback(newValue => {\n log.debug('handleChange', newValue);\n setValue(newValue);\n parsedValueRef.current = TimeUtils.parseTime(fixIncompleteValue(newValue));\n onChange(parsedValueRef.current);\n }, [onChange]);\n var handleBlur = useCallback(() => {\n var fixedValue = fixIncompleteValue(value);\n // Update the value displayed in the input\n // onChange with the fixed value already triggered in handleChange\n if (fixedValue !== value) {\n setValue(fixedValue);\n }\n onBlur();\n }, [value, onBlur]);\n var handleSelect = useCallback(newSelection => {\n _setSelection(newSelection);\n onSelect(newSelection);\n }, [onSelect]);\n return /*#__PURE__*/_jsx(MaskedInput, {\n ref: inputRef,\n className: className,\n example: EXAMPLES,\n getNextSegmentValue: getNextSegmentValue,\n getPreferredReplacementString: getPreferredReplacementString,\n onChange: handleChange,\n onSelect: handleSelect,\n pattern: TIME_PATTERN,\n selection: selection,\n value: value,\n onFocus: onFocus,\n onBlur: handleBlur,\n \"data-testid\": dataTestId\n });\n});\nTimeInput.defaultProps = {\n allowValueWrapping: true,\n className: '',\n onChange: () => false,\n onSelect: () => false,\n value: 0,\n onFocus: () => false,\n onBlur: () => false,\n 'data-testid': undefined\n};\nexport default TimeInput;\n//# sourceMappingURL=TimeInput.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsCheck } from '@deephaven/icons';\nimport { TimeUtils } from '@deephaven/utils';\nimport classNames from 'classnames';\nimport TimeInput from \"./TimeInput.js\";\nimport DropdownMenu from \"./menu-actions/DropdownMenu.js\";\nimport \"./CustomTimeSelect.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar CUSTOM_OPTION = -1;\nvar MENU_NAVIGATION_DIRECTION;\n(function (MENU_NAVIGATION_DIRECTION) {\n MENU_NAVIGATION_DIRECTION[\"UP\"] = \"UP\";\n MENU_NAVIGATION_DIRECTION[\"DOWN\"] = \"DOWN\";\n})(MENU_NAVIGATION_DIRECTION || (MENU_NAVIGATION_DIRECTION = {}));\nclass CustomTimeSelect extends Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"csContainer\", void 0);\n _defineProperty(this, \"menuContainer\", void 0);\n _defineProperty(this, \"button\", void 0);\n _defineProperty(this, \"input\", void 0);\n var {\n value,\n valueToTime\n } = props;\n this.toggleMenu = this.toggleMenu.bind(this);\n this.handleMenuKeyDown = this.handleMenuKeyDown.bind(this);\n this.closeMenu = this.closeMenu.bind(this);\n this.handleOptionClick = this.handleOptionClick.bind(this);\n this.handleOptionFocus = this.handleOptionFocus.bind(this);\n this.handleMenuOpened = this.handleMenuOpened.bind(this);\n this.handleMenuExited = this.handleMenuExited.bind(this);\n this.handleCustomInput = this.handleCustomInput.bind(this);\n this.csContainer = /*#__PURE__*/React.createRef();\n this.menuContainer = /*#__PURE__*/React.createRef();\n this.button = /*#__PURE__*/React.createRef();\n this.input = /*#__PURE__*/React.createRef();\n this.state = {\n keyboardOptionIndex: 0,\n menuIsOpen: false,\n inputWidth: 100,\n customTime: valueToTime(value),\n inputFocused: false\n };\n }\n getSelectedText() {\n var {\n options,\n value,\n placeholder\n } = this.props;\n var {\n customTime\n } = this.state;\n if (value === null) {\n return placeholder;\n }\n for (var i = 0; i < options.length; i += 1) {\n var option = options[i];\n if (option.value === value) {\n return option.title;\n }\n }\n return TimeUtils.formatTime(customTime);\n }\n setInputWidth() {\n if (this.csContainer.current) {\n this.setState({\n inputWidth: this.csContainer.current.getBoundingClientRect().width\n });\n }\n }\n focus() {\n var _this$button$current;\n (_this$button$current = this.button.current) === null || _this$button$current === void 0 ? void 0 : _this$button$current.focus();\n }\n updateInputValue(value) {\n var {\n onChange\n } = this.props;\n onChange(value);\n }\n handleResize() {\n this.setInputWidth();\n }\n handleMenuKeyDown(event) {\n var _this$button$current2;\n var {\n keyboardOptionIndex,\n inputFocused\n } = this.state;\n var {\n options\n } = this.props;\n switch (event.key) {\n case 'Enter':\n case ' ':\n // Space Bar\n if (inputFocused) {\n this.updateFromCustom();\n } else {\n this.updateInputValue(options[keyboardOptionIndex].value);\n }\n this.closeMenu();\n (_this$button$current2 = this.button.current) === null || _this$button$current2 === void 0 ? void 0 : _this$button$current2.focus();\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Tab':\n if (event.shiftKey) {\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.UP);\n } else {\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.DOWN);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.UP);\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowDown':\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.DOWN);\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Escape':\n this.closeMenu();\n break;\n default:\n break;\n }\n }\n handleMenuNavigation(direction) {\n var {\n keyboardOptionIndex,\n inputFocused\n } = this.state;\n var {\n options\n } = this.props;\n var menuOptionsLength = options.length;\n var newKeyboardOptionIndex = keyboardOptionIndex;\n switch (direction) {\n case CustomTimeSelect.MENU_NAVIGATION_DIRECTION.UP:\n if (!inputFocused && keyboardOptionIndex === 0) {\n this.focusInput();\n break;\n } else if (inputFocused) {\n this.focusOption(keyboardOptionIndex);\n }\n if (keyboardOptionIndex > 0 && !inputFocused) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex - 1) % menuOptionsLength;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n } else if (keyboardOptionIndex === 0) {\n newKeyboardOptionIndex = menuOptionsLength - 1;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n break;\n case CustomTimeSelect.MENU_NAVIGATION_DIRECTION.DOWN:\n if (!inputFocused && keyboardOptionIndex === menuOptionsLength - 1) {\n this.focusInput();\n break;\n } else if (inputFocused) {\n this.focusOption(keyboardOptionIndex);\n }\n if (keyboardOptionIndex < menuOptionsLength && !(inputFocused && keyboardOptionIndex === 0)) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex + 1) % menuOptionsLength;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n break;\n default:\n break;\n }\n }\n handleOptionClick(event) {\n var optionIndex = Number(event.currentTarget.value);\n var {\n options,\n timeToValue\n } = this.props;\n var {\n customTime\n } = this.state;\n if (optionIndex === CUSTOM_OPTION) {\n var update = timeToValue(customTime);\n this.updateAndClose(update);\n } else {\n this.updateAndClose(options[optionIndex].value);\n }\n }\n updateAndClose(update) {\n var _this$button$current3;\n this.updateInputValue(update);\n this.closeMenu();\n (_this$button$current3 = this.button.current) === null || _this$button$current3 === void 0 ? void 0 : _this$button$current3.focus();\n }\n handleOptionFocus(event) {\n this.setState({\n keyboardOptionIndex: Number(event.target.value)\n });\n }\n handleMenuOpened() {\n var _this$menuContainer$c;\n var {\n options,\n value\n } = this.props;\n var {\n keyboardOptionIndex\n } = this.state;\n this.scrollOptionIntoView(keyboardOptionIndex);\n var activeOption = (_this$menuContainer$c = this.menuContainer.current) === null || _this$menuContainer$c === void 0 ? void 0 : _this$menuContainer$c.querySelector('.cs-option-btn.keyboard-active');\n if (activeOption instanceof HTMLElement) {\n activeOption.focus();\n }\n if (value === null) {\n return;\n }\n var valueIndex = options.map(option => option.value).indexOf(value);\n if (valueIndex < 0) {\n // The custom option should be selected\n this.focusInput();\n }\n }\n focusInput() {\n var _this$input$current;\n (_this$input$current = this.input.current) === null || _this$input$current === void 0 ? void 0 : _this$input$current.focus();\n }\n focusOption(index) {\n var _this$menuContainer$c2;\n var options = (_this$menuContainer$c2 = this.menuContainer.current) === null || _this$menuContainer$c2 === void 0 ? void 0 : _this$menuContainer$c2.querySelector('.cs-options');\n if (options && options.children != null) {\n var option = options.children.item(index);\n if (option instanceof HTMLElement) {\n option.focus();\n }\n }\n }\n handleMenuExited() {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.setState({\n menuIsOpen: false,\n keyboardOptionIndex: 0\n });\n }\n }\n handleCustomInput(value) {\n var {\n timeToValue\n } = this.props;\n var update = timeToValue(value);\n this.updateInputValue(update);\n this.setState({\n customTime: value\n });\n }\n updateFromCustom() {\n var {\n timeToValue\n } = this.props;\n var {\n customTime\n } = this.state;\n var update = timeToValue(customTime);\n this.updateInputValue(update);\n }\n toggleMenu(event) {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.closeMenu();\n } else {\n this.openMenu();\n }\n event.stopPropagation();\n }\n openMenu() {\n this.updateKeyboardIndex();\n this.setInputWidth();\n this.setState({\n menuIsOpen: true\n });\n }\n closeMenu() {\n var focusButton = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.setState({\n menuIsOpen: false\n });\n if (focusButton) {\n var _this$button$current4;\n (_this$button$current4 = this.button.current) === null || _this$button$current4 === void 0 ? void 0 : _this$button$current4.focus();\n }\n }\n updateKeyboardIndex() {\n var {\n options,\n value\n } = this.props;\n if (value === null) {\n return;\n }\n var valueIndex = options.map(option => option.value).indexOf(value);\n if (valueIndex > 0) {\n this.setState({\n keyboardOptionIndex: valueIndex\n });\n }\n }\n scrollOptionIntoView(index) {\n var _this$menuContainer$c3;\n var options = (_this$menuContainer$c3 = this.menuContainer.current) === null || _this$menuContainer$c3 === void 0 ? void 0 : _this$menuContainer$c3.querySelector('.cs-options');\n if (options && options.children != null) {\n var activeOption = options.children.item(index);\n if (activeOption instanceof HTMLElement && activeOption.offsetTop > CustomTimeSelect.DROP_DOWN_MENU_HEIGHT) {\n options.scrollTop = activeOption.offsetTop - CustomTimeSelect.DROP_DOWN_MENU_HEIGHT;\n } else if (activeOption instanceof HTMLElement && activeOption.offsetTop < 0 || index === 0) {\n options.scrollTop = 0;\n }\n }\n }\n renderMenuElement() {\n var {\n inputWidth\n } = this.state;\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"cs-menu-container\",\n ref: this.menuContainer,\n role: \"presentation\",\n onKeyDown: this.handleMenuKeyDown,\n onClick: event => {\n event.stopPropagation();\n },\n style: {\n width: inputWidth\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"cs-options-container\",\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"cs-options\",\n children: this.renderOptions()\n })\n })\n });\n }\n renderOptions() {\n var {\n options,\n value,\n icon,\n customText\n } = this.props;\n var {\n keyboardOptionIndex,\n customTime,\n inputFocused\n } = this.state;\n var matchFound = false;\n var optionArray = [];\n for (var index = 0; index < options.length; index += 1) {\n var option = options[index];\n var key = \"option-\".concat(index, \"-\").concat(option.value);\n matchFound = matchFound || option.value === value;\n optionArray.push( /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n value: index,\n className: classNames('cs-option-btn', {\n 'keyboard-active': keyboardOptionIndex === index && !inputFocused\n }),\n onClick: this.handleOptionClick,\n onFocus: this.handleOptionFocus,\n children: [option.value === value && /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon,\n className: \"mr-2\"\n }), option.value !== value && /*#__PURE__*/_jsx(\"span\", {\n className: \"mr-4\"\n }), option.title]\n }, key));\n }\n optionArray.push( /*#__PURE__*/_jsx(\"hr\", {\n className: \"cs-divider\"\n }, \"option-divider\"));\n optionArray.push( /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n value: CUSTOM_OPTION,\n className: classNames('cs-option-btn', {\n 'keyboard-active': inputFocused\n }),\n onClick: this.handleOptionClick,\n onFocus: this.handleOptionFocus,\n children: [!matchFound && value !== null ? /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon,\n className: \"mr-2\"\n }) : /*#__PURE__*/_jsx(\"span\", {\n className: \"mr-4\"\n }), customText]\n }, \"option-custom-label\"));\n optionArray.push( /*#__PURE__*/_jsxs(\"div\", {\n className: \"cs-custom-container\",\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: \"mr-2\"\n }), /*#__PURE__*/_jsx(TimeInput, {\n ref: this.input,\n onChange: this.handleCustomInput,\n value: customTime,\n onFocus: () => this.setState({\n inputFocused: true\n }),\n onBlur: () => this.setState({\n inputFocused: false\n })\n }, \"option-input\"), /*#__PURE__*/_jsx(\"span\", {\n className: \"ml-2\"\n })]\n }, \"cs-custom-container\"));\n optionArray.push( /*#__PURE__*/_jsx(\"hr\", {\n className: \"mb-2\"\n }, \"option-end\"));\n return optionArray;\n }\n render() {\n var {\n disabled,\n invalid,\n value,\n 'data-testid': dataTestId\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n var {\n popperOptions\n } = this.props;\n popperOptions = _objectSpread({\n placement: 'bottom-end',\n modifiers: {\n preventOverflow: {\n enabled: false\n }\n }\n }, popperOptions);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"input-group cs-container context-menu\",\n ref: this.csContainer,\n \"data-testid\": dataTestId,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames('input-group-append cs-dropdown', {\n 'cs-dropdown-invalid': invalid\n }),\n children: /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n className: classNames('btn cs-btn form-control', {\n 'cs-btn-invalid': invalid\n }),\n ref: this.button,\n onClick: this.toggleMenu,\n disabled: disabled,\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: classNames({\n 'text-muted': value === null\n }),\n children: this.getSelectedText()\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"cs-caret\"\n }), /*#__PURE__*/_jsx(DropdownMenu, {\n isShown: menuIsOpen,\n actions: {\n menuElement: this.renderMenuElement()\n },\n popperOptions: popperOptions,\n popperClassName: \"CustomTimeSelect\",\n onMenuOpened: this.handleMenuOpened,\n onMenuClosed: this.handleMenuExited,\n menuStyle: {\n maxWidth: '100rem'\n }\n })]\n })\n })\n });\n }\n}\n_defineProperty(CustomTimeSelect, \"MENU_NAVIGATION_DIRECTION\", MENU_NAVIGATION_DIRECTION);\n_defineProperty(CustomTimeSelect, \"DROP_DOWN_MENU_HEIGHT\", 125);\n_defineProperty(CustomTimeSelect, \"defaultProps\", {\n onChange() {\n // no-op\n },\n value: null,\n disabled: false,\n popperOptions: {},\n icon: vsCheck,\n customText: 'Custom',\n placeholder: 'Select a time',\n valueToTime: value => value === null ? 0 : Math.round(value / 1000),\n timeToValue: time => time * 1000,\n invalid: false,\n 'data-testid': undefined\n});\nexport default CustomTimeSelect;\n//# sourceMappingURL=CustomTimeSelect.js.map","import React, { useCallback, useState } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport MaskedInput from \"./MaskedInput.js\";\nimport { getNextSegmentValue } from \"./DateInputUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar log = Log.module('DateInput');\nvar DATE_PATTERN = '[12][0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])';\nvar EXAMPLES = ['2000-01-01', '2022-12-31'];\nvar DATE_FORMAT = 'YYYY-MM-DD';\nvar DateInput = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n className = '',\n onChange = () => undefined,\n defaultValue = '',\n onFocus = () => undefined,\n onBlur = () => undefined,\n 'data-testid': dataTestId\n } = props;\n var [value, setValue] = useState(defaultValue);\n var [selection, setSelection] = useState();\n var handleChange = useCallback(newValue => {\n log.debug('handleChange', newValue);\n setValue(newValue);\n onChange(newValue);\n }, [onChange]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"d-flex flex-row align-items-center\",\n children: /*#__PURE__*/_jsx(MaskedInput, {\n ref: ref,\n className: classNames(className),\n example: EXAMPLES,\n getNextSegmentValue: getNextSegmentValue,\n onChange: handleChange,\n onSelect: setSelection,\n pattern: DATE_PATTERN,\n placeholder: DATE_FORMAT,\n selection: selection,\n value: value,\n onFocus: onFocus,\n onBlur: onBlur,\n \"data-testid\": dataTestId\n })\n });\n});\nDateInput.displayName = 'DateInput';\nexport default DateInput;\n//# sourceMappingURL=DateInput.js.map","import React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsDiffAdded, vsDiffRemoved, vsWarning } from '@deephaven/icons';\nimport { useDebouncedCallback, useResizeObserver } from '@deephaven/react-hooks';\nimport CopyButton from \"./CopyButton.js\";\nimport Button from \"./Button.js\";\nimport \"./ErrorView.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Component that displays an error message in a textarea so user can scroll and a copy button.\n */\nfunction ErrorView(_ref) {\n var {\n message,\n isExpanded: isExpandedProp = false,\n type = 'Error'\n } = _ref;\n var [isExpandable, setIsExpandable] = useState(false);\n var [isExpanded, setIsExpanded] = useState(false);\n var viewRef = useRef(null);\n var textRef = useRef(null);\n var handleResize = useCallback(() => {\n if (isExpanded || isExpandedProp || textRef.current == null) {\n return;\n }\n var newIsExpandable = textRef.current.scrollHeight > textRef.current.clientHeight;\n setIsExpandable(newIsExpandable);\n }, [isExpanded, isExpandedProp]);\n var debouncedHandleResize = useDebouncedCallback(handleResize, 100);\n useResizeObserver(viewRef.current, debouncedHandleResize);\n useLayoutEffect(debouncedHandleResize, [debouncedHandleResize]);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: classNames('error-view', {\n expanded: isExpanded || isExpandedProp\n }),\n ref: viewRef,\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: \"error-view-header\",\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: \"error-view-header-text\",\n children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: vsWarning\n }), /*#__PURE__*/_jsx(\"span\", {\n children: type\n })]\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"error-view-buttons\",\n children: [/*#__PURE__*/_jsx(CopyButton, {\n kind: \"danger\",\n className: \"error-view-copy-button\",\n tooltip: \"Copy exception contents\",\n copy: \"\".concat(type, \": \").concat(message).trim()\n }), (isExpandable || isExpanded) && !isExpandedProp && /*#__PURE__*/_jsx(Button, {\n kind: \"danger\",\n className: \"error-view-expand-button\",\n onClick: () => {\n setIsExpanded(!isExpanded);\n },\n icon: isExpanded ? vsDiffRemoved : vsDiffAdded,\n children: isExpanded ? 'Show Less' : 'Show More'\n })]\n })]\n }), /*#__PURE__*/_jsx(\"pre\", {\n className: \"error-view-text\",\n ref: textRef,\n children: message\n })]\n });\n}\nexport default ErrorView;\n//# sourceMappingURL=ErrorView.js.map","function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport classNames from 'classnames';\nimport Checkbox from \"./Checkbox.js\";\nimport Popper from \"./popper/Popper.js\";\nimport \"./HierarchicalCheckboxMenu.css\";\nimport Button from \"./Button.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * A pull down menu that displays a hierarchy of checkboxes.\n *\n * Currently supports only two levels of check boxes. The input should be a Map\n * where the keys are the parent names. The values can a boolean if the parent\n * has no children or another Map where keys are child names and values are booleans.\n *\n * Here is an example:\n * const INITIAL_TYPE_MAP = new Map([\n * ['Queries', new Map([['Live', true], ['Batch', true]])],\n * [\n * 'DBA Queries',\n * new Map([\n * ['Data Merge', true],\n * ['Data Validation', true],\n * ['Imports', true],\n * ['Data Services', true],\n * ]),\n * ],\n * ['Helper Queries', true],\n * ]);\n *\n * When a checkbox is changed, this component will make a deep copy of the Map\n * with the appropriate booleans changed. It will then call onUpdateValueMap\n * with the new Map.\n */\nclass HierarchicalCheckboxMenu extends Component {\n static isParentSelected(parent, valueMap) {\n var children = valueMap.get(parent);\n if (children === undefined) {\n return false;\n }\n if (typeof children === 'boolean') {\n // This parent has no children\n return children;\n }\n var includesTrue = Array.from(children.values()).includes(true);\n var includesFalse = Array.from(children.values()).includes(false);\n if (includesTrue && includesFalse) {\n // Indeterminate\n return null;\n }\n return includesTrue;\n }\n constructor(props) {\n super(props);\n this.toggleMenu = this.toggleMenu.bind(this);\n this.toggleValueFor = this.toggleValueFor.bind(this);\n this.selectAll = this.selectAll.bind(this);\n this.clear = this.clear.bind(this);\n this.state = {\n menuIsOpen: false\n };\n }\n toggleMenu(event) {\n event.stopPropagation();\n event.preventDefault();\n this.setState(state => {\n var {\n menuIsOpen\n } = state;\n return {\n menuIsOpen: !menuIsOpen\n };\n });\n }\n toggleValueFor(parent, child) {\n var {\n valueMap,\n onUpdateValueMap\n } = this.props;\n\n // Make a deep copy of the Map and toggle the boolean for parent / child\n var map = new Map(valueMap);\n var children = map.get(parent);\n if (children instanceof Map) {\n var newChildren = new Map(children);\n if (child != null) {\n newChildren.set(child, children.get(child) !== true);\n } else {\n var parentSelected = HierarchicalCheckboxMenu.isParentSelected(parent, map);\n var newChildValue = parentSelected == null || !parentSelected;\n children.forEach((_, key) => newChildren.set(key, newChildValue));\n }\n map.set(parent, newChildren);\n } else {\n map.set(parent, children == null || !children);\n }\n\n // The parent was clicked so all children must be toggled\n var currentChildren = map.get(parent);\n if (child === undefined && currentChildren !== undefined && typeof currentChildren !== 'boolean') {\n var _parentSelected = HierarchicalCheckboxMenu.isParentSelected(parent, valueMap);\n if (_parentSelected != null && _parentSelected) {\n currentChildren.forEach((_, key) => currentChildren.set(key, false));\n } else {\n // for parent selection of false or null (indeterminate), select everything\n currentChildren.forEach((_, key) => currentChildren.set(key, true));\n }\n }\n onUpdateValueMap(map);\n }\n setAllValues(value) {\n var {\n valueMap,\n onUpdateValueMap\n } = this.props;\n\n // Make a deep copy of the Map and set everything\n var copy = new Map();\n valueMap.forEach((child, parent) => {\n if (typeof child === 'boolean') {\n copy.set(parent, value);\n } else {\n var children = new Map();\n child.forEach((_, key) => children.set(key, value));\n copy.set(parent, children);\n }\n });\n onUpdateValueMap(copy);\n }\n selectAll() {\n this.setAllValues(true);\n }\n clear() {\n this.setAllValues(false);\n }\n renderMenuElement() {\n var {\n valueMap,\n 'data-testid': dataTestId\n } = this.props;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"hcm-menu-container\",\n children: [Array.from(valueMap.entries()).map(_ref => {\n var [parent, children] = _ref;\n return /*#__PURE__*/_jsxs(\"div\", {\n children: [/*#__PURE__*/_jsx(Checkbox, {\n className: \"hcm-parent\",\n checked: HierarchicalCheckboxMenu.isParentSelected(parent, valueMap),\n onChange: () => this.toggleValueFor(parent),\n children: parent\n }), children !== undefined && typeof children !== 'boolean' && Array.from(children.entries()).map(_ref2 => {\n var [child, value] = _ref2;\n return /*#__PURE__*/_jsx(Checkbox, {\n className: \"hcm-child\",\n checked: value,\n onChange: () => this.toggleValueFor(parent, child),\n children: child\n }, child);\n })]\n }, parent);\n }), /*#__PURE__*/_jsx(Button, {\n kind: \"ghost\",\n onClick: this.selectAll,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-btn-select-all\") : undefined,\n children: \"Select All\"\n }), /*#__PURE__*/_jsx(Button, {\n kind: \"ghost\",\n onClick: this.clear,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-btn-clear\") : undefined,\n children: \"Clear\"\n })]\n });\n }\n render() {\n var {\n menuText,\n className,\n icon,\n id,\n 'data-testid': dataTestId\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n return /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n className: classNames('btn hcm-btn', className),\n onClick: this.toggleMenu,\n id: id,\n \"data-testid\": dataTestId,\n children: [/*#__PURE__*/_jsxs(\"span\", {\n children: [icon && /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon,\n className: \"hcm-icon mr-1\"\n }), menuText]\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"cs-caret\"\n }), /*#__PURE__*/_jsx(Popper, {\n options: {\n placement: 'bottom'\n },\n isShown: menuIsOpen,\n onExited: () => {\n this.setState({\n menuIsOpen: false\n });\n },\n closeOnBlur: true,\n interactive: true,\n children: this.renderMenuElement()\n })]\n });\n }\n}\n_defineProperty(HierarchicalCheckboxMenu, \"defaultProps\", {\n className: '',\n icon: null,\n id: '',\n 'data-testid': undefined\n});\nexport default HierarchicalCheckboxMenu;\n//# sourceMappingURL=HierarchicalCheckboxMenu.js.map","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable react/display-name */\n\nimport React, { useEffect, useState, useRef, useMemo } from 'react';\nimport debounce from 'lodash.debounce';\nimport { assertNotNull } from '@deephaven/utils';\nimport \"./RandomAreaPlotAnimation.css\";\nimport { resolveCssVariablesInRecord, useTheme } from \"./theme/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar VOLATILITY = 0.025; // how spikey the data gets\nvar LOW = 0.9;\nvar HIGH = 0.1;\nvar START_Y = 0.618;\nvar GRID_SIZE = 80;\nvar PATTERN = {\n SIZE: 8,\n DOT_SIZE: 2\n};\nvar PX_PER_SECOND = 18;\nvar RESIZE_DEBOUNCE = 250;\nvar INTERACTION_TIMEOUT = 60 * 1000;\nvar THEME_COLOR_VARIABLES = {\n background: 'var(--dh-color-random-area-plot-animation-bg)',\n foregroundFill: 'var(--dh-color-random-area-plot-animation-fg-fill)',\n foregroundStroke: 'var(--dh-color-random-area-plot-animation-fg-stroke)',\n gridColor: 'var(--dh-color-random-area-plot-animation-grid)'\n};\n\n/**\n * Resolve theme colors needed for our animation.\n */\nfunction getRandomAreaPlotAnimationThemeColors() {\n return resolveCssVariablesInRecord(THEME_COLOR_VARIABLES);\n}\n\n// Draw a background canvas, paint it with a fun chart looking animation\nvar RandomAreaPlotAnimation = /*#__PURE__*/React.memo(() => {\n var {\n activeThemes\n } = useTheme();\n var themeColors = useMemo(getRandomAreaPlotAnimationThemeColors, [activeThemes]);\n var canvas = useRef(null);\n var container = useRef(null);\n var [shade, setShade] = useState(false);\n var scale = window.devicePixelRatio;\n var ctx;\n var pattern;\n var width;\n var height;\n var rAF;\n var lastTimestamp = null;\n var data = [];\n function setCanvasSize() {\n var _ctx;\n // Set canvas size to fill screen\n if (container.current != null) {\n width = container.current.offsetWidth;\n height = container.current.offsetHeight;\n }\n if (canvas.current != null) {\n canvas.current.style.width = \"\".concat(width, \"px\");\n canvas.current.style.height = \"\".concat(height, \"px\");\n canvas.current.width = width * scale;\n canvas.current.height = height * scale;\n }\n (_ctx = ctx) === null || _ctx === void 0 ? void 0 : _ctx.scale(scale, scale);\n }\n\n // Returns the background fill create offscreen as pattern\n function createPatternFill() {\n var {\n foregroundFill,\n foregroundStroke\n } = themeColors;\n\n // create the off-screen canvas\n var canvasPattern = document.createElement('canvas');\n canvasPattern.width = PATTERN.SIZE;\n canvasPattern.height = PATTERN.SIZE;\n var contextPattern = canvasPattern.getContext('2d');\n\n // draw pattern to off-screen context\n if (contextPattern != null) {\n contextPattern.fillStyle = foregroundStroke;\n contextPattern.fillRect(0, 0, PATTERN.DOT_SIZE, PATTERN.DOT_SIZE);\n\n // add an overlay fill\n contextPattern.fillStyle = foregroundFill;\n contextPattern.fillRect(0, 0, PATTERN.SIZE, PATTERN.SIZE);\n }\n return contextPattern === null || contextPattern === void 0 ? void 0 : contextPattern.createPattern(canvasPattern, 'repeat');\n }\n\n /**\n * Generates a step in a random walk between LOW - HIGH given a previous value\n * data is always in 0-1 data space so its scaleable\n * data space is converted to screen space inside draw functions\n * @param prev previous random walk step\n * @return new random walk step\n */\n function randomWalk(prev) {\n var rand = Math.random() - 0.5; // give it directionality\n var change = VOLATILITY * rand; // scale by volatity constant\n\n // ensure directional bounce off approaching edges\n if (prev < HIGH) {\n change = Math.abs(change);\n } else if (prev > LOW) {\n change = -Math.abs(change);\n }\n return prev + change;\n }\n function initData() {\n var startingData = [];\n var y = START_Y; // always start towards the bottom of the screen\n for (var x = 0; x < width + PX_PER_SECOND; x += 1) {\n y = randomWalk(y);\n startingData.push(y);\n }\n return startingData;\n }\n function setDataSize() {\n while (data.length >= width + PX_PER_SECOND) {\n data.pop();\n }\n while (data.length < width + PX_PER_SECOND) {\n data.push(randomWalk(data[data.length - 1]));\n }\n }\n function drawAreaLine(path, context) {\n context.beginPath();\n // start offscreen\n context.moveTo(-1, height + 1);\n context.lineTo(-1, height * path[0]);\n\n // draw the line\n for (var i = 0; i < path.length; i += 1) {\n context.lineTo(i, height * path[i]);\n }\n\n // close offscreen\n context.lineTo(width + PX_PER_SECOND, height * path[path.length - 1]);\n context.lineTo(width + PX_PER_SECOND, height + 1);\n context.closePath();\n }\n function drawGridLines(context) {\n context.beginPath();\n // draw verticals\n for (var x = 1; x < width; x += GRID_SIZE) {\n context.moveTo(x, 0);\n context.lineTo(x, height);\n }\n // draw horizontals\n for (var y = 1; y < height; y += GRID_SIZE) {\n context.moveTo(0, y);\n context.lineTo(width, y);\n }\n }\n\n /**\n * Main draw loop for where the animation happens\n * all the styling happens within drawCanvas from paths generated by other functions\n * @param timestamp passed in callback from requestAnimationFrame\n */\n function drawCanvas(timestamp) {\n var _lastTimestamp, _lastTimestamp2, _lastTimestamp3;\n lastTimestamp = (_lastTimestamp = lastTimestamp) !== null && _lastTimestamp !== void 0 ? _lastTimestamp : timestamp;\n var {\n background,\n foregroundStroke,\n gridColor\n } = themeColors;\n assertNotNull(ctx);\n // clear the canvas\n ctx.fillStyle = background;\n ctx.fillRect(0, 0, width, height);\n drawGridLines(ctx);\n ctx.lineWidth = 1;\n ctx.strokeStyle = gridColor;\n ctx.stroke();\n\n // for speeds less then 60 px per second, subpixel motion is required to look smooth\n var subPixelMotion = (((_lastTimestamp2 = lastTimestamp) !== null && _lastTimestamp2 !== void 0 ? _lastTimestamp2 : 0) - (timestamp !== null && timestamp !== void 0 ? timestamp : 0)) / (1000 / PX_PER_SECOND);\n ctx.translate(subPixelMotion, 0);\n drawAreaLine(data, ctx);\n ctx.lineWidth = 2;\n ctx.strokeStyle = foregroundStroke;\n ctx.stroke();\n ctx.translate(-subPixelMotion, 0); // we don't pattern to shift however\n if (pattern != null) {\n ctx.fillStyle = pattern;\n }\n ctx.fill();\n ctx.setTransform(scale, 0, 0, scale, 0, 0); // reset the translate matrix to normal\n\n // generate new data points\n if ((timestamp !== null && timestamp !== void 0 ? timestamp : 0) - ((_lastTimestamp3 = lastTimestamp) !== null && _lastTimestamp3 !== void 0 ? _lastTimestamp3 : 0) > 1000 / PX_PER_SECOND) {\n var _lastTimestamp4;\n // number of points to add since last update\n var numberOfPoints = Math.floor(((timestamp !== null && timestamp !== void 0 ? timestamp : 0) - ((_lastTimestamp4 = lastTimestamp) !== null && _lastTimestamp4 !== void 0 ? _lastTimestamp4 : 0)) / (1000 / PX_PER_SECOND));\n for (var i = 0; i < numberOfPoints; i += 1) {\n data.shift();\n data.push(randomWalk(data[data.length - 1]));\n }\n lastTimestamp = timestamp;\n }\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n rAF = requestAnimationFrame(drawCanvas);\n }\n\n // debounce the resize so its not overly aggresive\n var debouncedHandleResize = debounce(() => {\n rAF = requestAnimationFrame(timestamp => {\n setCanvasSize(); // setCanvas can cause lag if not debounced\n\n // fill or remove extra data points\n setDataSize();\n\n // opening devtools triggers a blur then resize,\n // need to reset shade as we are restarting animation\n setShade(false);\n drawCanvas(timestamp);\n });\n }, RESIZE_DEBOUNCE, {\n leading: true\n } // resize immediately, once.\n );\n\n function pauseAnimation() {\n // pause animation when browser window is blurred to conserve CPU usage\n setShade(true);\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n rAF = null;\n lastTimestamp = null;\n }\n\n // when timeout expires, pause animation\n var resetIdleTimeout = debounce(() => {\n pauseAnimation();\n }, INTERACTION_TIMEOUT);\n function startAnimation() {\n // can fire multiple times, check if rAF is null first\n // restart animation loop, and fade back in\n if (rAF == null) {\n setShade(false);\n setCanvasSize();\n setDataSize();\n rAF = requestAnimationFrame(drawCanvas);\n }\n resetIdleTimeout();\n }\n function handleActivity() {\n if (document.hasFocus()) {\n // only if document has focus (mousemove can fire on non-focused tabs)\n startAnimation();\n }\n }\n function handleResize() {\n // pause and debounce animation during resize for better resizing performance\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n resetIdleTimeout(); // treat resizing as a form of activity\n debouncedHandleResize();\n }\n\n // react mount/unmount hooks\n useEffect(() => {\n var _canvas$current;\n ctx = (_canvas$current = canvas.current) === null || _canvas$current === void 0 ? void 0 : _canvas$current.getContext('2d', {\n alpha: false\n });\n setCanvasSize();\n data = initData();\n pattern = createPatternFill();\n\n // start draw loop\n drawCanvas();\n resetIdleTimeout();\n window.addEventListener('resize', handleResize);\n window.addEventListener('focus', startAnimation);\n window.addEventListener('blur', pauseAnimation);\n\n // don't burn cpu if the user is \"idle\", start a timer that resets\n // on any user activity, and on timeout expiry pause the animation\n window.addEventListener('mousemove', handleActivity);\n window.addEventListener('keydown', handleActivity);\n return () => {\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n window.removeEventListener('resize', handleResize);\n window.removeEventListener('focus', startAnimation);\n window.removeEventListener('blur', pauseAnimation);\n window.removeEventListener('mousemove', handleActivity);\n window.removeEventListener('keydown', handleActivity);\n resetIdleTimeout.cancel();\n debouncedHandleResize.cancel();\n };\n }, [themeColors]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"random-area-plot-animation-container\",\n ref: container,\n children: /*#__PURE__*/_jsx(\"canvas\", {\n ref: canvas,\n className: shade ? 'shade' : ''\n })\n });\n});\nexport default RandomAreaPlotAnimation;\n//# sourceMappingURL=RandomAreaPlotAnimation.js.map","/* eslint-disable react/no-array-index-key */\n// array maps being used are static, this is fine.\n\nimport React, { useCallback, useMemo, useRef, useState, useEffect } from 'react';\nimport classNames from 'classnames';\nimport TimeInput from \"./TimeInput.js\";\nimport StyleExports from \"./TimeSlider.module.css\";\nimport \"./TimeSlider.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar HANDLE_SIZE = parseInt(StyleExports['handle-size'], 10);\nvar POPOVER_WIDTH = parseInt(StyleExports['popover-width'], 10);\nvar SECONDS_IN_DAY = 24 * 60 * 60 - 1; // Max is actually 23:59:59\nvar SNAP_NEAREST_MINUTES = 5 * 60; // rounds in 5 minute intervals\n\n/**\n * Creates a time slider for setting a start and end time, that can also run overnight\n * @param props takes times in seconds 0 - 86399 and a callback\n */\nfunction TimeSlider(_ref) {\n var {\n startTime: propStartTime,\n endTime: propEndTime,\n onChange,\n isStartModified = false,\n isEndModified = false,\n 'data-testid': dataTestId\n } = _ref;\n var [startTime, setStartTime] = useState(propStartTime);\n var [endTime, setEndTime] = useState(propEndTime);\n var track = useRef(null); // we need the track width while calulculating time from handle drag\n\n // updates state if props change\n useEffect(function setTimeOnPropTimeChange() {\n setStartTime(propStartTime);\n setEndTime(propEndTime);\n }, [propStartTime, propEndTime]);\n var updateTime = useCallback((newStartTime, newEndTime) => {\n var start = newStartTime;\n var end = newEndTime;\n if (start === end) {\n if (end < SECONDS_IN_DAY) {\n end += 1;\n } else {\n start -= 1;\n }\n }\n setStartTime(start);\n setEndTime(end);\n onChange({\n startTime: start,\n endTime: end\n });\n }, [setStartTime, setEndTime, onChange]);\n var handleStartTimeChange = useCallback(newStartTime => {\n updateTime(newStartTime, endTime);\n }, [updateTime, endTime]);\n var handleEndTimeChange = useCallback(newEndTime => {\n updateTime(startTime, newEndTime);\n }, [updateTime, startTime]);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"time-slider\",\n \"data-testid\": dataTestId,\n children: [/*#__PURE__*/_jsx(PopOvers, {\n startTime: startTime,\n endTime: endTime,\n onStartTimeChange: handleStartTimeChange,\n onEndTimeChange: handleEndTimeChange,\n isStartModified: isStartModified,\n isEndModified: isEndModified\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"track\",\n ref: track,\n children: [/*#__PURE__*/_jsx(TrackFills, {\n startTime: startTime,\n endTime: endTime\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"ticks\",\n children: Array(24).fill(null).map((value, index) => /*#__PURE__*/_jsx(\"div\", {\n className: \"tick\"\n }, index))\n }), /*#__PURE__*/_jsx(Handle, {\n track: track,\n time: startTime,\n setTime: handleStartTimeChange\n }), /*#__PURE__*/_jsx(Handle, {\n track: track,\n time: endTime,\n setTime: handleEndTimeChange\n })]\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"tick-labels\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"tick-label\",\n children: \"0:00\"\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"tick-label-wrapper\",\n children: Array(24).fill(null).map((value, index) => /*#__PURE__*/_jsx(\"div\", {\n className: \"tick-label\",\n children: \"\".concat(index + 1, \":00\")\n }, index))\n })]\n })]\n });\n}\nfunction PopOvers(props) {\n var {\n startTime,\n endTime,\n onStartTimeChange,\n onEndTimeChange,\n isStartModified,\n isEndModified,\n 'data-testid': dataTestId\n } = props;\n var swapTimes = startTime > endTime;\n var [firstTime, setFirstTime] = useState(swapTimes ? endTime : startTime);\n var [secondTime, setSecondTime] = useState(swapTimes ? startTime : endTime);\n var firstTimeRef = useRef(null);\n var secondTimeRef = useRef(null);\n // Keep track of selection in both time inputs\n var firstTimeSelectionRef = useRef(null);\n var secondTimeSelectionRef = useRef(null);\n useEffect(function setTimeOnPropTimeChange() {\n setFirstTime(startTime > endTime ? endTime : startTime);\n setSecondTime(startTime > endTime ? startTime : endTime);\n }, [startTime, endTime]);\n useEffect(function setFocusOnSwapTimesChange() {\n if (firstTimeSelectionRef.current !== null) {\n var _secondTimeRef$curren;\n (_secondTimeRef$curren = secondTimeRef.current) === null || _secondTimeRef$curren === void 0 ? void 0 : _secondTimeRef$curren.setSelection(firstTimeSelectionRef.current);\n }\n if (secondTimeSelectionRef.current !== null) {\n var _firstTimeRef$current;\n (_firstTimeRef$current = firstTimeRef.current) === null || _firstTimeRef$current === void 0 ? void 0 : _firstTimeRef$current.setSelection(secondTimeSelectionRef.current);\n }\n }, [swapTimes]);\n function onFirstTimeChange(value) {\n if (startTime <= endTime) {\n onStartTimeChange(value);\n } else {\n onEndTimeChange(value);\n }\n }\n function onSecondTimeChange(value) {\n if (startTime <= endTime) {\n onEndTimeChange(value);\n } else {\n onStartTimeChange(value);\n }\n }\n var onFirstTimeSelect = useCallback(selection => {\n firstTimeSelectionRef.current = selection;\n secondTimeSelectionRef.current = null;\n }, []);\n var onSecondTimeSelect = useCallback(selection => {\n firstTimeSelectionRef.current = null;\n secondTimeSelectionRef.current = selection;\n }, []);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"time-slider-popovers\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"flex\",\n style: {\n flexBasis: \"calc(\".concat(firstTime / SECONDS_IN_DAY * 100, \"% - \").concat(POPOVER_WIDTH / 2, \"px)\")\n }\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"handle-popper\",\n children: [/*#__PURE__*/_jsx(\"label\", {\n className: classNames({\n modified: swapTimes ? isEndModified : isStartModified\n }),\n children: swapTimes ? 'End Time' : 'Start Time'\n }), /*#__PURE__*/_jsx(TimeInput, {\n ref: firstTimeRef,\n allowValueWrapping: false,\n value: firstTime,\n onChange: onFirstTimeChange,\n onSelect: onFirstTimeSelect,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-input-1\") : undefined\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"flex-spacer\"\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"handle-popper\",\n children: [/*#__PURE__*/_jsx(\"label\", {\n className: classNames({\n modified: swapTimes ? isStartModified : isEndModified\n }),\n children: swapTimes ? 'Start Time' : 'End Time'\n }), /*#__PURE__*/_jsx(TimeInput, {\n ref: secondTimeRef,\n allowValueWrapping: false,\n value: secondTime,\n onChange: onSecondTimeChange,\n onSelect: onSecondTimeSelect,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-input-2\") : undefined\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"flex\",\n style: {\n flexBasis: \"calc(\".concat((SECONDS_IN_DAY - secondTime) / SECONDS_IN_DAY * 100, \"% - \").concat(POPOVER_WIDTH / 2, \"px)\")\n }\n })]\n });\n}\n/**\n * Shades the area between or outside of handles according to if start or endtime is greater.\n */\nfunction TrackFills(props) {\n var {\n startTime,\n endTime,\n 'data-testid': dataTestId\n } = props;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"track-fills\",\n \"data-testid\": dataTestId,\n children: [startTime > endTime && /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"track-fill track-fill-start\",\n style: {\n transform: \"scaleX(\".concat(endTime / SECONDS_IN_DAY, \")\")\n }\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"track-fill track-fill-end\",\n style: {\n transform: \"scaleX(\".concat((SECONDS_IN_DAY - startTime) / SECONDS_IN_DAY, \")\")\n }\n })]\n }), startTime < endTime && /*#__PURE__*/_jsx(\"div\", {\n className: \"track-fill track-fill-middle\",\n style: {\n transform: \"translateX(\".concat(startTime / SECONDS_IN_DAY * 100, \"%) scaleX(\").concat((endTime - startTime) / SECONDS_IN_DAY, \")\")\n }\n })]\n });\n}\n/**\n * Creates a draggable handle the sets the time\n */\nfunction Handle(props) {\n var {\n track,\n time,\n setTime,\n 'data-testid': dataTestId\n } = props;\n\n /**\n * Takes the time and generate our translation string taking into account handle offset.\n * The handle offset changes for the first and last tick range dynmaically. Normally,\n * the center of the handle (size/2) is the selection origin, but at edges, it becomes either\n * end of the handle, requireing a relative offset range of 0 - 0.5, and 0.5 - 1 of handle size.\n * @param t time in seconds\n */\n var transform = useMemo(() => {\n var ONE_HOUR = 60 * 60;\n var handleOffset = HANDLE_SIZE / 2;\n if (time < ONE_HOUR) {\n handleOffset = time / ONE_HOUR * (HANDLE_SIZE / 2); // 0 - 0.5 Handle size\n } else if (time > 23 * ONE_HOUR) {\n handleOffset = HANDLE_SIZE / 2 + 1 / (SECONDS_IN_DAY - 23 * ONE_HOUR) * (time - 23 * ONE_HOUR) * (HANDLE_SIZE / 2); // 0.5 - 1 Handle size\n }\n\n return \"translateX(calc(\".concat(time / SECONDS_IN_DAY * 100, \"% - \").concat(handleOffset, \"px))\");\n }, [time]);\n var calculatePositionAsTime = useCallback(clientX => {\n if (!track.current) {\n return 0;\n }\n var trackRect = track.current.getBoundingClientRect();\n var leftEdge = Math.max(clientX - trackRect.left, 0);\n // get position as 0-1 on slider and mulitply by seconds in a day to convert to time\n var preciseTime = SECONDS_IN_DAY * Math.min(1, leftEdge / trackRect.width);\n // snap to nearest N(5) minute interval\n var roundedTime = SNAP_NEAREST_MINUTES * Math.round(preciseTime / SNAP_NEAREST_MINUTES);\n // prevent over-rounding to 24:00:00\n var limitMax = Math.min(SECONDS_IN_DAY, roundedTime);\n return limitMax;\n }, [track]);\n var handleMouseMove = useCallback(_ref2 => {\n var {\n clientX\n } = _ref2;\n setTime(calculatePositionAsTime(clientX));\n }, [setTime, calculatePositionAsTime]);\n var handleMouseUp = useCallback(_ref3 => {\n var {\n clientX\n } = _ref3;\n setTime(calculatePositionAsTime(clientX));\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.remove('drag-pointer-events-none');\n }, [setTime, calculatePositionAsTime, handleMouseMove]);\n var startDragListening = useCallback(() => {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.add('drag-pointer-events-none');\n }, [handleMouseMove, handleMouseUp]);\n var stopDragListening = useCallback(() => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.remove('drag-pointer-events-none');\n }, [handleMouseMove, handleMouseUp]);\n var handleMouseDown = useCallback(() => {\n startDragListening();\n }, [startDragListening]);\n useEffect(function removeListenersOnUnmount() {\n return () => {\n stopDragListening();\n };\n }, [stopDragListening]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"handle-track\",\n style: {\n transform\n },\n children: /*#__PURE__*/_jsx(\"button\", {\n className: \"handle\",\n type: \"button\",\n \"aria-label\": \"Change time\",\n onMouseDown: handleMouseDown,\n \"data-testid\": dataTestId\n })\n });\n}\nexport default TimeSlider;\n//# sourceMappingURL=TimeSlider.js.map","function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\nimport ChartModel from \"./ChartModel.js\";\nimport { defaultChartTheme } from \"./ChartTheme.js\";\nimport ChartUtils from \"./ChartUtils.js\";\n/** Displays a basic random chart */\nclass MockChartModel extends ChartModel {\n static get theme() {\n /* eslint-disable no-underscore-dangle */\n if (MockChartModel._theme == null) {\n MockChartModel._theme = defaultChartTheme();\n }\n return MockChartModel._theme;\n /* eslint-enable no-underscore-dangle */\n }\n\n static makeRandomSeries(offset) {\n var scale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var steps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100;\n var dates = [];\n var values = [];\n var smooth = [];\n var linear = [];\n\n // Setting to a fixed seed date so that e2e tests can be deterministic.\n var startDate = new Date('2018-06-01');\n for (var i = 0; i < steps; i += 1) {\n var date = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() + i - steps);\n dates.push(\"\".concat(date.getFullYear(), \"-\").concat(date.getMonth() + 1, \"-\").concat(date.getDate()));\n var v = (Math.sin(i / steps * offset) * steps / 3 + Math.cos(i * 0.2) * steps / 6 + Math.sin(i * 0.5) * steps / 10 + MockChartModel.random() * steps / 5 + i * MockChartModel.smoothing) * scale;\n v = Math.round(v * 100) / 100; // 2 decimals only\n // using steps acts as amplititude scaling based on value\n // large sine wave for course shape + small sine waves for bumpiness +\n // general randomness noise + index to be constantly up and to the right + smoothing factor\n values.push(v);\n linear.push(40 + i * MockChartModel.smoothing);\n smooth.push(Math.sin(i / steps * offset) * steps / 3 + MockChartModel.random() * steps / 10 + i * MockChartModel.smoothing); // push a smoother version of the same thing\n }\n\n return {\n x: dates,\n y: values,\n s: smooth,\n l: linear\n };\n }\n static makeScatter(series) {\n return {\n name: 'SCTR',\n x: series.x,\n y: series.y,\n type: 'scatter',\n mode: 'markers',\n hoverinfo: 'skip',\n marker: {\n size: 5\n }\n };\n }\n static makeArea(series) {\n return {\n name: 'AREA',\n x: series.x,\n y: series.s,\n type: 'scatter',\n mode: 'line',\n fill: 'tozeroy',\n hoverinfo: 'all',\n line: {\n width: 3\n // area patten gets applied as hack in post render plot.ly callback + css\n }\n };\n }\n\n static makeTrendline(series) {\n return {\n // we probably want to toss the line formula in legend I guess? either that or render it as text manually on plot\n name: 'Trendline <br>R<sup>2</sup> = 0.91',\n x: series.x,\n y: series.l,\n type: 'scatter',\n mode: 'line',\n hoverinfo: 'skip',\n line: {\n width: 3,\n dash: 'dot' // trendlines should follow some sort of color convention + dots/dashed. Remember there can multiple\n // chroma(c.$green).brighten(1.2).hex()\n }\n };\n }\n\n static makeErrorBand(series) {\n // generate continouous error bands values and text\n var erroryforward = [];\n var errorybackward = [];\n for (var i = 0; i < series.y.length; i += 1) {\n var value = series.y[i];\n erroryforward[i] = Math.round((value + 18) * 100) / 100;\n errorybackward[i] = Math.round((value - 18) * 100) / 100;\n }\n\n // makes a closed shape of points winding clockwise for y values\n var errory = erroryforward.concat(errorybackward.reverse());\n return {\n name: 'error',\n x: series.x.concat(series.x.slice().reverse()),\n // winding for x values, that slice just clones so reverse doesn't apply inplace\n y: errory,\n type: 'scatter',\n mode: 'line',\n hoverinfo: 'skip',\n fill: 'toself',\n // there's some ordering bug with scattergl where if the areas traces are ordered after the lines they don't render\n line: {\n width: 0,\n color: MockChartModel.theme.error_band_line_color,\n shape: 'spline'\n }\n };\n }\n static makeLine(series) {\n return {\n name: 'LINE',\n x: series.x,\n y: series.y,\n type: 'scatter',\n mode: 'line',\n hoverinfo: 'x+y+text+name',\n line: {\n width: 3\n }\n };\n }\n static makeRandomData() {\n var series1 = MockChartModel.makeRandomSeries(6);\n var areaPattern = MockChartModel.makeArea(series1);\n var trendLine = MockChartModel.makeTrendline(series1);\n var series2 = MockChartModel.makeRandomSeries(2);\n var line = MockChartModel.makeLine(series2);\n var errorBand = MockChartModel.makeErrorBand(series2);\n return [areaPattern, trendLine, line, errorBand];\n }\n static makeDefaultLayout(dh) {\n var layout = {\n template: new ChartUtils(dh).makeDefaultTemplate(MockChartModel.theme)\n };\n layout.title = 'Chart';\n layout.xaxis = {\n title: 'Datestamp'\n };\n layout.yaxis = {\n title: 'Price'\n };\n return layout;\n }\n constructor(dh) {\n var {\n data = MockChartModel.makeRandomData(),\n layout = MockChartModel.makeDefaultLayout(dh),\n filterFields = []\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super(dh);\n _defineProperty(this, \"data\", void 0);\n _defineProperty(this, \"filterFields\", void 0);\n _defineProperty(this, \"layout\", void 0);\n this.data = data;\n this.layout = layout;\n this.filterFields = filterFields;\n }\n getData() {\n return this.data;\n }\n getLayout() {\n return this.layout;\n }\n getFilterColumnMap() {\n var map = new Map();\n for (var i = 0; i < this.filterFields.length; i += 1) {\n var name = this.filterFields[i];\n var type = 'java.lang.String';\n map.set(name, {\n name,\n type\n });\n }\n return map;\n }\n isFilterRequired() {\n return this.filterFields.length > 0;\n }\n setFilter() {\n this.fireUpdate(this.data);\n }\n}\n_defineProperty(MockChartModel, \"random\", Math.random.bind(Math));\n_defineProperty(MockChartModel, \"smoothing\", 1.5);\n_defineProperty(MockChartModel, \"_theme\", void 0);\nexport default MockChartModel;\n//# sourceMappingURL=MockChartModel.js.map","import React, { createContext, useEffect, useState } from 'react';\nimport '@fontsource/fira-mono/400.css';\nimport '@fontsource/fira-mono/500.css';\nimport '@fontsource/fira-mono/700.css';\nimport '@fontsource/fira-sans/300.css';\nimport '@fontsource/fira-sans/300-italic.css';\nimport '@fontsource/fira-sans/400.css';\nimport '@fontsource/fira-sans/400-italic.css';\nimport '@fontsource/fira-sans/500.css';\nimport '@fontsource/fira-sans/600.css';\nimport '@fontsource/fira-sans/700.css';\nimport '@fontsource/fira-sans/700-italic.css';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport var FontsLoadedContext = /*#__PURE__*/createContext(false);\n/**\n * FontBootstrap component. Handles preloading fonts.\n */\nexport function FontBootstrap(_ref) {\n var {\n fontClassNames = ['fira-sans-regular', 'fira-sans-semibold', 'fira-mono'],\n children\n } = _ref;\n var [isLoaded, setIsLoaded] = useState(false);\n useEffect(function initFonts() {\n document.fonts.ready.then(() => {\n setIsLoaded(true);\n });\n }, []);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(FontsLoadedContext.Provider, {\n value: isLoaded,\n children: children\n }), /*#__PURE__*/_jsx(\"div\", {\n id: \"preload-fonts\",\n style: {\n visibility: 'hidden',\n position: 'absolute',\n top: -10000\n },\n children: fontClassNames.map(className => /*#__PURE__*/_jsx(\"p\", {\n className: className,\n children: \"preload\"\n }, className))\n })]\n });\n}\nexport default FontBootstrap;\n//# sourceMappingURL=FontBootstrap.js.map"],"names":["Section","SpectrumSection","isElementOfType","node","type","isValidElement","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","_asyncToGenerator","fn","self","args","err","createValidationProps","isValid","errorMessage","extractSpectrumHTMLElement","ref","_ref$UNSAFE_getDOMNod","extractSpectrumLastChildHTMLElement","maybeHTMLElement","identityExtractHTMLElement","findSpectrumComboBoxScrollArea","findSpectrumPopoverScrollArea","findSpectrumPickerScrollArea","triggerElementType","trigger","popupId","scrollArea","getPositionOfSelectedItem","_x","_getPositionOfSelectedItem","_ref","keyedItems","itemHeight","selectedKey","topOffset","item","_item$item$key","_item$item","useCheckOverflow","isOverflowing","setIsOverflowing","useState","checkOverflow","useCallback","elRef","el","resetIsOverflowing","useMappedRef","targetRef","map","useContentRect","x","setX","y","setY","width","setWidth","height","setHeight","contentRect","useMemo","setEl","handleResize","_firstEntry$contentRe","firstEntry","rect","useResizeObserver","useDebouncedCallback","callback","debounceMs","debouncedCallback","debounce","useEffect","useOnScrollRef","onScroll","extractHTMLElement","cleanupRef","useRef","_cleanupRef$current","_cleanupRef$current2","element","usePopoverOnScrollRef","findScrollArea","getInitialScrollPosition","isScrollOnOpenEnabledRef","scrollAreaEl","setScrollAreaEl","scrollToInitialPosition","position","scrollTimeoutRef","onOpenChange","isOpen","ColorValues","isDHColorValue","colorValueStyle","_excluded","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","i","source","_defineProperty","obj","_toPropertyKey","_toPrimitive","input","hint","prim","res","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","Text","forwardRef","props","forwardedRef","color","UNSAFE_style","rest","style","_jsx","SpectrumText","ItemTooltip","children","options","Tooltip","Flex","ItemContent","content","tooltipOptions","previousContent","setPreviousContent","NON_BREAKING_SPACE","Children","cloneElement","cl","stylesCommon","tooltip","_jsxs","_Fragment","ITEM_EMPTY_STRING_TEXT_VALUE","getItemKey","getPositionOfSelectedItemElement","_getPositionOfSelectedItemElement","items","isSectionElement","isItemElement","Item","isItemElementWithDescription","childrenArray","ensureArray","result","child","_child$props","isNormalizedItemsWithKeysList","isItemOrSection","isNormalizedSection","maybeNormalizedSection","normalizeTooltipOptions","placement","itemSelectionToStringSet","itemKeys","wrapIcon","maybeIconKey","slot","_maybeIconKey","_dhIcons$maybeIconKey","Icon","FontAwesomeIcon","dhIcons","wrapItemChildren","itemsOrSections","itemsOrSectionsArray","_item$key","_textValue","_item$key2","text","textValue","wrapPrimitiveWithText","_content","separateSpectrumProps","ariaLabel","ariaLabelledby","ariaDescribedby","ariaHidden","marginX","marginY","minWidth","minHeight","maxWidth","maxHeight","flex","flexGrow","flexShrink","flexBasis","justifySelf","alignSelf","order","gridArea","gridColumn","gridRow","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","zIndex","top","bottom","start","end","left","right","isHidden","componentProps","useRenderNormalizedItem","itemIconSlot","showItemDescriptions","showItemIcons","normalizedItem","_normalizedItem$item","_normalizedItem$item$","_normalizedItem$item2","_normalizedItem$item3","_normalizedItem$item4","description","icon","useStringifiedMultiSelection","normalizedItems","defaultSelectedKeys","disabledKeys","selectedKeys","onChange","selectedStringKeys","defaultSelectedStringKeys","disabledStringKeys","onStringSelectionChange","actualKeys","useStringifiedSelection","defaultSelectedKey","selectedStringKey","defaultSelectedStringKey","_getItemKey","selectedItem","actualKey","useSpectrumThemeProvider","useProvider","ListViewWrapper","_styleProps$minHeight","_listViewProps$densit","ariaLabelProps","styleProps","EMPTY_FUNCTION","listViewProps","scale","scrollRef","contentRectRef","SpectrumListView","ListView","UNSAFE_className","onSelectionChange","spectrumListViewProps","wrappedItems","ListViewNormalized","renderNormalizedItem","forceRerenderKey","_createElement","usePickerScrollOnOpen","popoverOnOpenChange","onOpenChangeInternal","Picker","spectrumPickerProps","PICKER_ITEM_HEIGHTS","isUncontrolled","uncontrolledSelectedKey","setUncontrolledSelectedKey","disableScrollOnOpen","PICKER_TOP_OFFSET","onSelectionChangeInternal","_ref3","SpectrumPicker","PickerNormalized","itemOrSection","_itemOrSection$item","_itemOrSection$item2","Heading","SpectrumHeading","View","backgroundColor","SpectrumView","DEBOUNCE_DELAY","MENU_NAVIGATION_DIRECTION","AutoCompleteInput","Component","memoize","option","popperOptions","React","title","menuIsOpen","filter","_this$popper$current","filteredOptions","perfectMatch","event","_this$input$current","keyboardOptionIndex","direction","newKeyboardOptionIndex","onEnter","_this$input$current2","_this$input$current3","_this$popper$current2","_this$popper$current3","focusInput","_this$input$current4","index","_this$menuContainer$c","inputWidth","classNames","noMatchText","inputPlaceholder","disabled","className","defaultTitle","spellCheck","dataTestId","invalid","Popper","PropTypes","AutoCompleteInput$1","AutoResizeTextarea","propsValue","placeholder","delimiter","id","setValue","isPastedChange","setIsPastedChange","explode","string","implode","reCalculateLayout","resizedHeight","handleChange","newValue","handleFocus","handleMouseDown","handleBlur","handlePaste","log","Log","TIME_PATTERN","EXAMPLES","fixIncompleteValue","TimeInput","allowValueWrapping","onFocus","onBlur","onSelect","TimeUtils","parsedValueRef","selection","_setSelection","inputRef","useImperativeHandle","_inputRef$current","newSelection","_inputRef$current2","getNextSegmentValue","range","delta","segmentValue","maxValue","newSegmentValue","getPreferredReplacementString","replaceValue","replaceIndex","newChar","selectionStart","selectionEnd","DEFAULT_GET_PREFERRED_REPLACEMENT_STRING","fixedValue","handleSelect","MaskedInput","TimeInput$1","CUSTOM_OPTION","CustomTimeSelect","valueToTime","customTime","_this$button$current","_this$button$current2","inputFocused","menuOptionsLength","optionIndex","timeToValue","update","_this$button$current3","activeOption","valueIndex","_this$menuContainer$c2","focusButton","_this$button$current4","_this$menuContainer$c3","customText","matchFound","optionArray","DropdownMenu","vsCheck","time","CustomTimeSelect$1","DATE_PATTERN","DATE_FORMAT","DateInput","defaultValue","setSelection","DateInput$1","ErrorView","message","isExpandedProp","isExpandable","setIsExpandable","isExpanded","setIsExpanded","viewRef","textRef","newIsExpandable","debouncedHandleResize","useLayoutEffect","vsWarning","CopyButton","Button","vsDiffRemoved","vsDiffAdded","HierarchicalCheckboxMenu","parent","valueMap","includesTrue","includesFalse","state","onUpdateValueMap","newChildren","parentSelected","newChildValue","_","currentChildren","_parentSelected","copy","Checkbox","_ref2","menuText","HierarchicalCheckboxMenu$1","VOLATILITY","LOW","HIGH","START_Y","GRID_SIZE","PATTERN","PX_PER_SECOND","RESIZE_DEBOUNCE","INTERACTION_TIMEOUT","THEME_COLOR_VARIABLES","getRandomAreaPlotAnimationThemeColors","resolveCssVariablesInRecord","RandomAreaPlotAnimation","activeThemes","useTheme","themeColors","canvas","container","shade","setShade","ctx","pattern","rAF","lastTimestamp","data","setCanvasSize","_ctx","createPatternFill","foregroundFill","foregroundStroke","canvasPattern","contextPattern","randomWalk","prev","rand","change","initData","startingData","setDataSize","drawAreaLine","path","context","drawGridLines","drawCanvas","timestamp","_lastTimestamp","_lastTimestamp2","_lastTimestamp3","background","gridColor","assertNotNull","subPixelMotion","_lastTimestamp4","numberOfPoints","pauseAnimation","resetIdleTimeout","startAnimation","handleActivity","_canvas$current","Animation","HANDLE_SIZE","StyleExports","POPOVER_WIDTH","SECONDS_IN_DAY","SNAP_NEAREST_MINUTES","TimeSlider","propStartTime","propEndTime","isStartModified","isEndModified","startTime","setStartTime","endTime","setEndTime","track","updateTime","newStartTime","newEndTime","handleStartTimeChange","handleEndTimeChange","PopOvers","TrackFills","Handle","onStartTimeChange","onEndTimeChange","swapTimes","firstTime","setFirstTime","secondTime","setSecondTime","firstTimeRef","secondTimeRef","firstTimeSelectionRef","secondTimeSelectionRef","_secondTimeRef$curren","_firstTimeRef$current","onFirstTimeChange","onSecondTimeChange","onFirstTimeSelect","onSecondTimeSelect","setTime","transform","ONE_HOUR","handleOffset","calculatePositionAsTime","clientX","trackRect","leftEdge","preciseTime","roundedTime","limitMax","handleMouseMove","handleMouseUp","startDragListening","stopDragListening","MockChartModel","ChartModel","defaultChartTheme","offset","steps","dates","values","smooth","linear","startDate","date","v","series","erroryforward","errorybackward","errory","series1","areaPattern","trendLine","series2","line","errorBand","dh","layout","ChartUtils","filterFields","name","MockChartModel$1","FontsLoadedContext","createContext","FontBootstrap","fontClassNames","isLoaded","setIsLoaded"],"mappings":"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"}
1
+ {"version":3,"file":"FontBootstrap-dafd12df.js","sources":["../../../components/dist/spectrum/shared.js","../../../react-hooks/dist/ElementUtils.js","../../../react-hooks/dist/SpectrumUtils.js","../../../react-hooks/dist/useCheckOverflow.js","../../../react-hooks/dist/useMappedRef.js","../../../react-hooks/dist/useContentRect.js","../../../react-hooks/dist/useDebouncedCallback.js","../../../react-hooks/dist/useOnScrollRef.js","../../../react-hooks/dist/usePopoverOnScrollRef.js","../../../components/dist/theme/colorUtils.js","../../../components/dist/spectrum/Text.js","../../../components/dist/spectrum/ItemTooltip.js","../../../components/dist/spectrum/ItemContent.js","../../../components/dist/spectrum/utils/itemUtils.js","../../../components/dist/spectrum/utils/itemWrapperUtils.js","../../../components/dist/spectrum/utils/propsUtils.js","../../../components/dist/spectrum/utils/useRenderNormalizedItem.js","../../../components/dist/spectrum/utils/useStringifiedMultiSelection.js","../../../components/dist/spectrum/utils/useStringifiedSelection.js","../../../components/dist/theme/useSpectrumThemeProvider.js","../../../components/dist/spectrum/listView/ListViewWrapper.js","../../../components/dist/spectrum/listView/ListView.js","../../../components/dist/spectrum/listView/ListViewNormalized.js","../../../components/dist/spectrum/picker/usePickerScrollOnOpen.js","../../../components/dist/spectrum/picker/Picker.js","../../../components/dist/spectrum/picker/PickerNormalized.js","../../../components/dist/spectrum/Heading.js","../../../components/dist/spectrum/View.js","../../../components/dist/AutoCompleteInput.js","../../../components/dist/AutoResizeTextarea.js","../../../components/dist/TimeInput.js","../../../components/dist/CustomTimeSelect.js","../../../components/dist/DateInput.js","../../../components/dist/ErrorView.js","../../../components/dist/HierarchicalCheckboxMenu.js","../../../components/dist/RandomAreaPlotAnimation.js","../../../components/dist/TimeSlider.js","../../../chart/dist/MockChartModel.js","../../../app-utils/dist/components/FontBootstrap.js"],"sourcesContent":["/**\n * Wrapping Spectrum `Item` and `Section` components will break functionality\n * due to the way they are consumed by collection components. They are only used\n * to pass data and don't render anything on their own, so they don't need to be\n * wrapped. If we do ever need to wrap them for whatever reason, the static\n * `getCollectionNode` method will need to be implemented.\n * See https://github.com/adobe/react-spectrum/blob/main/packages/%40react-stately/collections/src/Item.ts#L17\n * https://github.com/adobe/react-spectrum/blob/main/packages/%40react-stately/collections/src/Section.ts#L18\n */\nimport { Section as SpectrumSection } from '@adobe/react-spectrum';\nexport { Item } from '@adobe/react-spectrum';\n\n/*\n * We support primitive values as shorthand for `Item` elements in certain\n * components. This type represents this augmentation of the Spectrum types.\n */\n\n/**\n * Spectrum SectionProps augmented with support for primitive item children.\n */\n\n/**\n * Re-export Spectrum Section component with augmented props type.\n */\nexport var Section = SpectrumSection;\n//# sourceMappingURL=shared.js.map","import { isValidElement } from 'react';\n/**\n * Check if a node is a React element of a specific type.\n * @param node The node to check\n * @param type The type to check against\n * @returns True if the node is a React element of the specified type\n */\nexport function isElementOfType(node, type) {\n return /*#__PURE__*/isValidElement(node) && node.type === type;\n}\nexport default isElementOfType;\n//# sourceMappingURL=ElementUtils.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n/**\n * Creates validation props for a Spectrum field. If `isValid` is true, returns\n * empty props. If false, returns { errorMessage, validationState: 'invalid' }\n * @param isValid Whether props represent valid state\n * @param errorMessage Error message in the case `isValid` is false\n */\nexport function createValidationProps(isValid, errorMessage) {\n if (isValid) {\n return {};\n }\n return {\n errorMessage,\n validationState: 'invalid'\n };\n}\n\n/**\n * Extract DOM node from React Spectrum component ref.\n * @param ref\n */\nexport function extractSpectrumHTMLElement(ref) {\n var _ref$UNSAFE_getDOMNod;\n return (_ref$UNSAFE_getDOMNod = ref === null || ref === void 0 ? void 0 : ref.UNSAFE_getDOMNode()) !== null && _ref$UNSAFE_getDOMNod !== void 0 ? _ref$UNSAFE_getDOMNod : null;\n}\n\n/**\n * Extract lastElementChild from DOM element for given React Spectrum component\n * ref.\n * @param ref\n */\nexport function extractSpectrumLastChildHTMLElement(ref) {\n var maybeHTMLElement = ref === null || ref === void 0 ? void 0 : ref.UNSAFE_getDOMNode().lastElementChild;\n return identityExtractHTMLElement(maybeHTMLElement);\n}\n\n/**\n * Find the popover associated with a given Spectrum ComboBox ref.\n * @param ref The ref to the Spectrum ComboBox component\n */\nexport function findSpectrumComboBoxScrollArea(ref) {\n return findSpectrumPopoverScrollArea(ref, 'input');\n}\n\n/**\n * Find the popover associated with a given Spectrum Picker ref.\n * @param ref The ref to the Spectrum Picker component\n */\nexport function findSpectrumPickerScrollArea(ref) {\n return findSpectrumPopoverScrollArea(ref, 'button');\n}\n\n/**\n * Find the popover associated with a given Spectrum component ref.\n * @param ref The ref to the Spectrum component\n * @param triggerElementType The type of element that triggers the popover\n */\nexport function findSpectrumPopoverScrollArea(ref, triggerElementType) {\n var maybeHTMLElement = ref === null || ref === void 0 ? void 0 : ref.UNSAFE_getDOMNode();\n var trigger = maybeHTMLElement === null || maybeHTMLElement === void 0 ? void 0 : maybeHTMLElement.querySelector(triggerElementType);\n var popupId = trigger === null || trigger === void 0 ? void 0 : trigger.getAttribute('aria-controls');\n var scrollArea = popupId == null ? null : document.getElementById(popupId);\n return scrollArea;\n}\n\n/**\n * Get the position of a selected item in a list of keyed items. The position is\n * based on the index, item height, and top offset.\n * @param keyedItems The list of keyed items\n * @param itemHeight The height of each item\n * @param selectedKey The key of the selected item\n * @param topOffset The offset from the top of the list (e.g. if there is top\n * padding surrounding the entire list)\n */\nexport function getPositionOfSelectedItem(_x) {\n return _getPositionOfSelectedItem.apply(this, arguments);\n}\n\n/**\n * Returns the given object if it is an HTMLElement. Otherwise returns null.\n * @param maybeHTMLElement\n */\nfunction _getPositionOfSelectedItem() {\n _getPositionOfSelectedItem = _asyncToGenerator(function* (_ref) {\n var {\n keyedItems,\n itemHeight,\n selectedKey,\n topOffset\n } = _ref;\n var i = keyedItems.findIndex(item => {\n var _item$item$key, _item$item;\n return ((_item$item$key = (_item$item = item.item) === null || _item$item === void 0 ? void 0 : _item$item.key) !== null && _item$item$key !== void 0 ? _item$item$key : item.key) === selectedKey;\n });\n if (i <= 0) {\n return topOffset;\n }\n return itemHeight * i + topOffset;\n });\n return _getPositionOfSelectedItem.apply(this, arguments);\n}\nexport function identityExtractHTMLElement(maybeHTMLElement) {\n return maybeHTMLElement instanceof HTMLElement ? maybeHTMLElement : null;\n}\n//# sourceMappingURL=SpectrumUtils.js.map","import { useCallback, useState } from 'react';\n/**\n * Provides a callback to check a Spectrum `DOMRefValue` for overflow. If\n * overflow is detected, `isOverflowing` will be set to `true` until reset by\n * calling `resetIsOverflowing`.\n */\nexport function useCheckOverflow() {\n var [isOverflowing, setIsOverflowing] = useState(false);\n\n /**\n * Check if a Spectrum `DOMRefValue` is overflowing.\n */\n var checkOverflow = useCallback(elRef => {\n var el = elRef === null || elRef === void 0 ? void 0 : elRef.UNSAFE_getDOMNode();\n if (el == null) {\n return;\n }\n if (el.scrollWidth > el.offsetWidth) {\n setIsOverflowing(true);\n }\n }, []);\n\n /** Reset `isOverflowing` to false */\n var resetIsOverflowing = useCallback(() => {\n setIsOverflowing(false);\n }, []);\n return {\n isOverflowing,\n checkOverflow,\n resetIsOverflowing\n };\n}\nexport default useCheckOverflow;\n//# sourceMappingURL=useCheckOverflow.js.map","import { useCallback } from 'react';\n\n/**\n * Returns a callback ref that will map it's argument\n * and set the given targetRef with the result.\n * @param targetRef Ref to assign mapped result to\n * @param map Function to map given ref value to another value\n */\nexport function useMappedRef(targetRef, map) {\n return useCallback(ref => {\n if (typeof targetRef === 'function') {\n targetRef(map(ref));\n } else {\n // eslint-disable-next-line no-param-reassign\n targetRef.current = map(ref);\n }\n }, [map, targetRef]);\n}\nexport default useMappedRef;\n//# sourceMappingURL=useMappedRef.js.map","import { identityExtractHTMLElement } from '@deephaven/utils';\nimport { useCallback, useMemo, useState } from 'react';\nimport useMappedRef from \"./useMappedRef.js\";\nimport useResizeObserver from \"./useResizeObserver.js\";\n/**\n * Returns a callback ref that will track the `contentRect` of a given refValue.\n * If the `contentRect` is undefined, it will be set to a new `DOMRect` with\n * zeros for all dimensions.\n * @param map Optional mapping function to extract an HTMLElement from the given\n * refValue\n * @returns Content rect and a ref callback\n */\nexport function useContentRect() {\n var map = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : identityExtractHTMLElement;\n var [x, setX] = useState(0);\n var [y, setY] = useState(0);\n var [width, setWidth] = useState(0);\n var [height, setHeight] = useState(0);\n var contentRect = useMemo(() => new DOMRect(x, y, width, height), [height, width, x, y]);\n var [el, setEl] = useState(null);\n\n // Callback ref maps the passed in refValue and passes to `setEl`\n var ref = useMappedRef(setEl, map);\n var handleResize = useCallback(_ref => {\n var _firstEntry$contentRe;\n var [firstEntry] = _ref;\n var rect = (_firstEntry$contentRe = firstEntry === null || firstEntry === void 0 ? void 0 : firstEntry.contentRect) !== null && _firstEntry$contentRe !== void 0 ? _firstEntry$contentRe : {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n setX(rect.x);\n setY(rect.y);\n setWidth(rect.width);\n setHeight(rect.height);\n }, []);\n useResizeObserver(el, handleResize);\n return {\n ref,\n contentRect\n };\n}\nexport default useContentRect;\n//# sourceMappingURL=useContentRect.js.map","import { useEffect, useMemo } from 'react';\nimport debounce from 'lodash.debounce';\n\n/**\n * Wraps a given callback in a cancelable, debounced function. The debounced\n * callback is automatically cancelled if the callback reference changes or the\n * component unmounts.\n * @param callback callback function to debounce\n * @param debounceMs debounce milliseconds\n * @returns a cancelable, debounced function\n */\nexport function useDebouncedCallback(callback, debounceMs) {\n var debouncedCallback = useMemo(() => debounce(callback, debounceMs), [callback, debounceMs]);\n useEffect(() => () => debouncedCallback.cancel(), [debouncedCallback]);\n return debouncedCallback;\n}\nexport default useDebouncedCallback;\n//# sourceMappingURL=useDebouncedCallback.js.map","import { useCallback, useEffect, useRef } from 'react';\nimport { identityExtractHTMLElement } from '@deephaven/utils';\n\n/**\n * Return a ref that can be used to subscribe to scroll events.\n * @param onScroll Scroll event handler\n * @param extractHTMLElement Optional extraction handler to get the HTML element\n * to subscribe to scroll events. If no extraction handler is given, the argument\n * passed to the callback will be subscribed to if it is an HTML element.\n */\nexport function useOnScrollRef(onScroll) {\n var extractHTMLElement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : identityExtractHTMLElement;\n var cleanupRef = useRef();\n\n // Cleanup on unmount\n useEffect(() => () => {\n var _cleanupRef$current;\n return (_cleanupRef$current = cleanupRef.current) === null || _cleanupRef$current === void 0 ? void 0 : _cleanupRef$current.call(cleanupRef);\n }, []);\n return useCallback(ref => {\n var _cleanupRef$current2;\n (_cleanupRef$current2 = cleanupRef.current) === null || _cleanupRef$current2 === void 0 ? void 0 : _cleanupRef$current2.call(cleanupRef);\n var element = extractHTMLElement(ref);\n if (!element) {\n return;\n }\n element.addEventListener('scroll', onScroll);\n\n // Hold a reference to a function that can cleanup scroll event registration\n cleanupRef.current = () => {\n element.removeEventListener('scroll', onScroll);\n cleanupRef.current = undefined;\n };\n }, [extractHTMLElement, onScroll]);\n}\nexport default useOnScrollRef;\n//# sourceMappingURL=useOnScrollRef.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nimport { useCallback, useEffect, useRef, useState } from 'react';\n/**\n * This hook provides a way to attach a scroll event listener to a scroll area\n * inside a popover component. Popovers for picker components only exist when\n * the picker is open, and they get attached to the DOM outside of the child\n * tree, so we have to provide a function that can find the target DOM element\n * to attach the listener to.\n * @param findScrollArea Function to retreive the DOM element to attach a scroll\n * event listener to\n * @param onScroll Scroll event listener function to attach\n * @param getInitialScrollPosition Function to retrieve the initial scroll\n * position. If no function is given, or if the function returns `null`, no\n * initial scrolling will occur.\n */\nexport function usePopoverOnScrollRef(findScrollArea, onScroll, getInitialScrollPosition) {\n var ref = useRef(null);\n var isScrollOnOpenEnabledRef = useRef(false);\n var [scrollAreaEl, setScrollAreaEl] = useState(null);\n var scrollToInitialPosition = useCallback( /*#__PURE__*/_asyncToGenerator(function* () {\n if (scrollAreaEl == null || getInitialScrollPosition == null) {\n return;\n }\n var position = yield getInitialScrollPosition();\n\n // If the position is null, don't scroll\n if (position == null) {\n return;\n }\n scrollAreaEl.scroll(0, position);\n }), [getInitialScrollPosition, scrollAreaEl]);\n useEffect(() => {\n scrollAreaEl === null || scrollAreaEl === void 0 ? void 0 : scrollAreaEl.addEventListener('scroll', onScroll);\n\n // Ticking tables can cause this effect to fire multiple times while the\n // popover is still open. This check ensures that we only scroll 1x.\n if (isScrollOnOpenEnabledRef.current) {\n scrollToInitialPosition();\n isScrollOnOpenEnabledRef.current = false;\n }\n return () => {\n scrollAreaEl === null || scrollAreaEl === void 0 ? void 0 : scrollAreaEl.removeEventListener('scroll', onScroll);\n };\n }, [onScroll, scrollAreaEl, scrollToInitialPosition]);\n var scrollTimeoutRef = useRef();\n\n // Popovers for picker components only exist when the popover opens, so we\n // have to wait to attach scroll listeners\n var onOpenChange = useCallback(isOpen => {\n window.clearTimeout(scrollTimeoutRef.current);\n if (isOpen) {\n isScrollOnOpenEnabledRef.current = true;\n\n // setTimeout is necessary for popover to be available\n scrollTimeoutRef.current = window.setTimeout(() => {\n setScrollAreaEl(findScrollArea(ref.current));\n }, 0);\n } else {\n setScrollAreaEl(null);\n }\n }, [findScrollArea]);\n return {\n ref,\n onOpenChange\n };\n}\nexport default usePopoverOnScrollRef;\n//# sourceMappingURL=usePopoverOnScrollRef.js.map","/**\n * Color values for the DH color palette exposed to end users in spectrum components.\n */\nexport var ColorValues = ['gray-50', 'gray-75', 'gray-100', 'gray-200', 'gray-300', 'gray-400', 'gray-500', 'gray-600', 'gray-700', 'gray-800', 'gray-900', 'red-100', 'red-200', 'red-300', 'red-400', 'red-500', 'red-600', 'red-700', 'red-800', 'red-900', 'red-1000', 'red-1100', 'red-1200', 'red-1300', 'red-1400', 'orange-100', 'orange-200', 'orange-300', 'orange-400', 'orange-500', 'orange-600', 'orange-700', 'orange-800', 'orange-900', 'orange-1000', 'orange-1100', 'orange-1200', 'orange-1300', 'orange-1400', 'yellow-100', 'yellow-200', 'yellow-300', 'yellow-400', 'yellow-500', 'yellow-600', 'yellow-700', 'yellow-800', 'yellow-900', 'yellow-1000', 'yellow-1100', 'yellow-1200', 'yellow-1300', 'yellow-1400', 'chartreuse-100', 'chartreuse-200', 'chartreuse-300', 'chartreuse-400', 'chartreuse-500', 'chartreuse-600', 'chartreuse-700', 'chartreuse-800', 'chartreuse-900', 'chartreuse-1000', 'chartreuse-1100', 'chartreuse-1200', 'chartreuse-1300', 'chartreuse-1400', 'celery-100', 'celery-200', 'celery-300', 'celery-400', 'celery-500', 'celery-600', 'celery-700', 'celery-800', 'celery-900', 'celery-1000', 'celery-1100', 'celery-1200', 'celery-1300', 'celery-1400', 'green-100', 'green-200', 'green-300', 'green-400', 'green-500', 'green-600', 'green-700', 'green-800', 'green-900', 'green-1000', 'green-1100', 'green-1200', 'green-1300', 'green-1400', 'seafoam-100', 'seafoam-200', 'seafoam-300', 'seafoam-400', 'seafoam-500', 'seafoam-600', 'seafoam-700', 'seafoam-800', 'seafoam-900', 'seafoam-1000', 'seafoam-1100', 'seafoam-1200', 'seafoam-1300', 'seafoam-1400', 'cyan-100', 'cyan-200', 'cyan-300', 'cyan-400', 'cyan-500', 'cyan-600', 'cyan-700', 'cyan-800', 'cyan-900', 'cyan-1000', 'cyan-1100', 'cyan-1200', 'cyan-1300', 'cyan-1400', 'blue-100', 'blue-200', 'blue-300', 'blue-400', 'blue-500', 'blue-600', 'blue-700', 'blue-800', 'blue-900', 'blue-1000', 'blue-1100', 'blue-1200', 'blue-1300', 'blue-1400', 'indigo-100', 'indigo-200', 'indigo-300', 'indigo-400', 'indigo-500', 'indigo-600', 'indigo-700', 'indigo-800', 'indigo-900', 'indigo-1000', 'indigo-1100', 'indigo-1200', 'indigo-1300', 'indigo-1400', 'purple-100', 'purple-200', 'purple-300', 'purple-400', 'purple-500', 'purple-600', 'purple-700', 'purple-800', 'purple-900', 'purple-1000', 'purple-1100', 'purple-1200', 'purple-1300', 'purple-1400', 'fuchsia-100', 'fuchsia-200', 'fuchsia-300', 'fuchsia-400', 'fuchsia-500', 'fuchsia-600', 'fuchsia-700', 'fuchsia-800', 'fuchsia-900', 'fuchsia-1000', 'fuchsia-1100', 'fuchsia-1200', 'fuchsia-1300', 'fuchsia-1400', 'magenta-100', 'magenta-200', 'magenta-300', 'magenta-400', 'magenta-500', 'magenta-600', 'magenta-700', 'magenta-800', 'magenta-900', 'magenta-1000', 'magenta-1100', 'magenta-1200', 'magenta-1300', 'magenta-1400', 'negative', 'notice', 'positive', 'info',\n// Additional DH ColorValues:\n'accent', 'accent-100', 'accent-200', 'accent-300', 'accent-400', 'accent-500', 'accent-600', 'accent-700', 'accent-800', 'accent-900', 'accent-1000', 'accent-1100', 'accent-1200', 'accent-1300', 'accent-1400', 'bg', 'content-bg', 'subdued-content-bg', 'surface-bg', 'fg'];\nexport function isDHColorValue(value) {\n return typeof value === 'string' && ColorValues.includes(value);\n}\n\n/**\n * Returns the a css variable color value for a given theme color.\n * If the color value is a DH color value, it returns the CSS variable.\n * Otherwise, it returns the color value as is.\n *\n * @param value a string representing a color value\n * @returns CSS variable for DH color values, otherwise the color value as is\n *\n * ex. colorValueStyle('blue-1000') => 'var(--dh-color-blue-1000)'\n * ex. colorValueStyle('red') => 'red'\n * ex. colorValueStyle('#F00') => '#F00'\n */\nexport function colorValueStyle(value) {\n if (value != null && isDHColorValue(value)) {\n return \"var(--dh-color-\".concat(value, \")\");\n }\n return value;\n}\n//# sourceMappingURL=colorUtils.js.map","var _excluded = [\"color\", \"UNSAFE_style\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* eslint-disable react/jsx-props-no-spreading */\nimport { forwardRef, useMemo } from 'react';\nimport { Text as SpectrumText } from '@adobe/react-spectrum';\nimport { colorValueStyle } from \"../theme/colorUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * A Text component that re-exports the Spectrum Text component.\n * It overrides ColorValues to accept CSS color strings and custom\n * variable names from our color paletee and semantic colors.\n *\n * @param props The props for the Text component\n * @returns The Text component\n *\n */\nexport var Text = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var {\n color,\n UNSAFE_style\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var style = useMemo(() => _objectSpread(_objectSpread({}, UNSAFE_style), {}, {\n color: colorValueStyle(color)\n }), [color, UNSAFE_style]);\n return /*#__PURE__*/_jsx(SpectrumText, _objectSpread(_objectSpread({}, rest), {}, {\n ref: forwardedRef,\n UNSAFE_style: style\n }));\n});\nText.displayName = 'Text';\nexport default Text;\n//# sourceMappingURL=Text.js.map","import { isElementOfType } from '@deephaven/react-hooks';\nimport { Tooltip } from \"../popper/index.js\";\nimport { Flex } from \"./layout.js\";\nimport { Text } from \"./Text.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Tooltip for `<Item>` content.\n */\nexport function ItemTooltip(_ref) {\n var {\n children,\n options\n } = _ref;\n if (Array.isArray(children)) {\n return /*#__PURE__*/_jsx(Tooltip, {\n options: options,\n children: /*#__PURE__*/_jsx(Flex, {\n direction: \"column\",\n alignItems: \"start\",\n children: children.filter(node => isElementOfType(node, Text))\n })\n });\n }\n return /*#__PURE__*/_jsx(Tooltip, {\n options: options,\n children: children\n });\n}\nexport default ItemTooltip;\n//# sourceMappingURL=ItemTooltip.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { Children, cloneElement, isValidElement, useState } from 'react';\nimport cl from 'classnames';\nimport { isElementOfType, useCheckOverflow } from '@deephaven/react-hooks';\nimport { NON_BREAKING_SPACE } from '@deephaven/utils';\nimport { Text } from \"./Text.js\";\nimport ItemTooltip from \"./ItemTooltip.js\";\nimport stylesCommon from \"../SpectrumComponent.module.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Item content. Text content will be wrapped in a Spectrum Text\n * component with ellipsis overflow handling. If text content overflows and\n * tooltipOptions are provided a tooltip will be displayed when hovering over\n * the item content.\n */\nexport function ItemContent(_ref) {\n var {\n children: content,\n tooltipOptions\n } = _ref;\n var {\n checkOverflow,\n isOverflowing,\n resetIsOverflowing\n } = useCheckOverflow();\n var [previousContent, setPreviousContent] = useState(content);\n\n // Reset `isOverflowing` if content changes. It will get re-calculated as\n // `Text` components render.\n if (previousContent !== content) {\n setPreviousContent(content);\n resetIsOverflowing();\n }\n if ( /*#__PURE__*/isValidElement(content)) {\n return content;\n }\n\n /* eslint-disable no-param-reassign */\n if (content === '') {\n // Prevent the item height from collapsing when the content is empty\n content = NON_BREAKING_SPACE;\n } else if (typeof content === 'boolean') {\n // Boolean values need to be stringified to render\n content = String(content);\n } else if (Array.isArray(content)) {\n // For cases where there are multiple `Text` children, add a css class to\n // handle overflow. The primary use case for multiple text nodes is when a\n // description is provided for an item. e.g.\n // <Item textValue=\"Some Text\">\n // <SomeIcon />\n // <Text>Some Label</Text>\n // <Text slot=\"description\">Some Description</Text>\n // </Item>\n content = Children.map(content, el => isElementOfType(el, Text) ? /*#__PURE__*/cloneElement(el, _objectSpread(_objectSpread({}, el.props), {}, {\n ref: checkOverflow,\n UNSAFE_className: cl(el.props.UNSAFE_className, stylesCommon.spectrumEllipsis)\n })) : el);\n }\n if (typeof content === 'string' || typeof content === 'number') {\n content = /*#__PURE__*/_jsx(Text, {\n ref: checkOverflow,\n UNSAFE_className: stylesCommon.spectrumEllipsis,\n children: content\n });\n }\n /* eslint-enable no-param-reassign */\n\n var tooltip = tooltipOptions == null || !isOverflowing ? null : /*#__PURE__*/_jsx(ItemTooltip, {\n options: tooltipOptions,\n children: content\n });\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [content, tooltip]\n });\n}\nexport default ItemContent;\n//# sourceMappingURL=ItemContent.js.map","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nimport { isElementOfType } from '@deephaven/react-hooks';\nimport { ensureArray } from '@deephaven/utils';\nimport { Item, Section } from \"../shared.js\";\nimport { Text } from \"../Text.js\";\nimport ItemContent from \"../ItemContent.js\";\n/**\n * `Item.textValue` prop needs to be a non-empty string for accessibility\n * purposes. This is not displayed in the UI.\n */\nexport var ITEM_EMPTY_STRING_TEXT_VALUE = 'Empty';\n\n/**\n * React Spectrum <Section> supports an `ItemRenderer` function as a child. The\n * DH picker makes use of this internally, but we don't want to support it as\n * an incoming prop.\n */\n\n// Picker uses `icon` slot. ListView can use `image` or `illustration` slots.\n// https://github.com/adobe/react-spectrum/blob/main/packages/%40react-spectrum/picker/src/Picker.tsx#L194\n// https://github.com/adobe/react-spectrum/blob/main/packages/%40react-spectrum/list/src/ListViewItem.tsx#L266-L267\n/**\n * Augment the Spectrum selection key type to include boolean values.\n * Spectrum collection components already supports this, but the built in types\n * don't reflect it.\n */\n/**\n * Augment the Spectrum selection change handler type to include boolean keys.\n * Spectrum components already supports this, but the built in types don't\n * reflect it.\n */\n/**\n * Spectrum collection components support a variety of item types, including\n * strings, numbers, booleans, and more complex React elements. This type\n * represents a normalized form to make rendering items simpler and keep the\n * logic of transformation in separate util methods. It also adheres to the\n * `KeyedItem` interface to be compatible with Windowed data utils\n * (e.g. `useViewportData`).\n */\n/**\n * DH wrappers of Spectrum collection components use a normalized item that\n * includes a `key` prop and an optional `item` prop. This is mostly to support\n * Windowed data where items are created before their data has been loaded (data\n * gets set in the `item` prop). If data has loaded, return its `key`. If not,\n * return the top-level `key` on the normalized item.\n * @param item The normalized item or section\n * @returns The `key` of the item or section\n */\nexport function getItemKey(item) {\n var _item$item$key, _item$item;\n return (_item$item$key = item === null || item === void 0 ? void 0 : (_item$item = item.item) === null || _item$item === void 0 ? void 0 : _item$item.key) !== null && _item$item$key !== void 0 ? _item$item$key : item === null || item === void 0 ? void 0 : item.key;\n}\n\n/**\n * Get the position of the item with the given selected key in a list of items.\n * @param items The items to search\n * @param itemHeight The height of each item\n * @param selectedKey The key of the selected item\n * @param topOffset The top offset of the list\n * @returns The position of the selected item or the top offset if not found\n */\nexport function getPositionOfSelectedItemElement(_x) {\n return _getPositionOfSelectedItemElement.apply(this, arguments);\n}\n\n/**\n * Determine if a node is a Section element.\n * @param node The node to check\n * @returns True if the node is a Section element\n */\nfunction _getPositionOfSelectedItemElement() {\n _getPositionOfSelectedItemElement = _asyncToGenerator(function* (_ref) {\n var {\n items,\n itemHeight,\n selectedKey,\n topOffset\n } = _ref;\n var position = topOffset;\n if (selectedKey == null) {\n return position;\n }\n for (var i = 0; i < items.length; i += 1) {\n var item = items[i];\n if (item.key === selectedKey) {\n return position;\n }\n position += itemHeight;\n }\n return topOffset;\n });\n return _getPositionOfSelectedItemElement.apply(this, arguments);\n}\nexport function isSectionElement(node) {\n return isElementOfType(node, Section);\n}\n\n/**\n * Determine if a node is an Item element.\n * @param node The node to check\n * @returns True if the node is an Item element\n */\nexport function isItemElement(node) {\n return isElementOfType(node, Item);\n}\n\n/**\n * Determine if a node is an Item element containing a child `Text` element with\n * a `slot` prop set to `description`.\n * @param node The node to check\n * @returns True if the node is an Item element with a description\n */\nexport function isItemElementWithDescription(node) {\n if (!isItemElement(node)) {\n return false;\n }\n\n // If children are wrapped in `ItemContent`, go down 1 level\n var children = isElementOfType(node.props.children, ItemContent) ? node.props.children.props.children : node.props.children;\n var childrenArray = ensureArray(children);\n var result = childrenArray.some(child => {\n var _child$props;\n return isElementOfType(child, Text) && ((_child$props = child.props) === null || _child$props === void 0 ? void 0 : _child$props.slot) === 'description';\n });\n return result;\n}\n\n/**\n * Determine if a node is an array containing normalized items or sections with\n * keys. Note that this only checks the first node in the array.\n * @param node The node to check\n * @returns True if the node is a normalized item or section with keys array\n */\nexport function isNormalizedItemsWithKeysList(node) {\n if (!Array.isArray(node)) {\n return false;\n }\n if (node.length === 0) {\n return true;\n }\n return !isItemOrSection(node[0]) && 'key' in node[0];\n}\n\n/**\n * Determine if an object is a normalized section.\n * @param maybeNormalizedSection The object to check\n * @returns True if the object is a normalized section\n */\nexport function isNormalizedSection(maybeNormalizedSection) {\n return maybeNormalizedSection.item != null && 'items' in maybeNormalizedSection.item;\n}\n\n/**\n * Determine if a node is an item or section. Valid types include strings,\n * numbers, booleans, Item elements, and Section elements.\n * @param node The node to check\n * @returns True if the node is an item or section\n */\nexport function isItemOrSection(node) {\n return typeof node === 'string' || typeof node === 'number' || typeof node === 'boolean' || isItemElement(node) || isSectionElement(node);\n}\n\n/**\n * Returns a TooltipOptions object or null if options is false or null.\n * @param options Tooltip options\n * @param placement Default placement for the tooltip if `options` is set\n * explicitly to `true`\n * @returns TooltipOptions or null\n */\nexport function normalizeTooltipOptions(options) {\n var placement = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'right';\n if (options == null || options === false) {\n return null;\n }\n if (options === true) {\n return {\n placement\n };\n }\n return options;\n}\n\n/**\n * Convert a selection of `ItemKey`s to a selection of strings.\n * @param itemKeys The selection of `ItemKey`s\n * @returns The selection of strings\n */\nexport function itemSelectionToStringSet(itemKeys) {\n if (itemKeys == null || itemKeys === 'all') {\n return itemKeys;\n }\n return new Set([...itemKeys].map(String));\n}\n//# sourceMappingURL=itemUtils.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { cloneElement } from 'react';\nimport { Item } from '@adobe/react-spectrum';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { dh as dhIcons } from '@deephaven/icons';\nimport { isElementOfType } from '@deephaven/react-hooks';\nimport { ensureArray, NON_BREAKING_SPACE } from '@deephaven/utils';\nimport { isItemElement, isSectionElement, ITEM_EMPTY_STRING_TEXT_VALUE } from \"./itemUtils.js\";\nimport { ItemContent } from \"../ItemContent.js\";\nimport { Icon } from \"../icons.js\";\nimport { Text } from \"../Text.js\";\n/**\n * If the given content is a string, wrap it in an Icon component. Otherwise,\n * return the original content. If the key is not found in the dhIcons object,\n * the vsBlank icon will be used.\n * @param maybeIconKey The content to wrap\n * @param slot The slot to use for the Icon component\n * @returns The wrapped content or original content if not a string\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function wrapIcon(maybeIconKey, slot) {\n var _maybeIconKey, _dhIcons$maybeIconKey;\n // eslint-disable-next-line no-param-reassign\n maybeIconKey = (_maybeIconKey = maybeIconKey) !== null && _maybeIconKey !== void 0 ? _maybeIconKey : '';\n if (typeof maybeIconKey !== 'string') {\n return maybeIconKey;\n }\n return /*#__PURE__*/_jsx(Icon, {\n slot: slot,\n children: /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: (_dhIcons$maybeIconKey = dhIcons[maybeIconKey]) !== null && _dhIcons$maybeIconKey !== void 0 ? _dhIcons$maybeIconKey : dhIcons.vsBlank\n })\n });\n}\n\n/**\n * Ensure all primitive children are wrapped in `Item` elements and that all\n * `Item` element content is wrapped in `ItemContent` elements to handle text\n * overflow consistently and to support tooltips.\n * @param itemsOrSections The items or sections to wrap\n * @param tooltipOptions The tooltip options to use when wrapping items\n * @returns The wrapped items or sections\n */\nexport function wrapItemChildren(itemsOrSections, tooltipOptions) {\n var itemsOrSectionsArray = ensureArray(itemsOrSections);\n var result = itemsOrSectionsArray.map(item => {\n if (isItemElement(item)) {\n var _item$key;\n // Item content is already wrapped\n if (isElementOfType(item.props.children, ItemContent)) {\n return item;\n }\n var key = (_item$key = item.key) !== null && _item$key !== void 0 ? _item$key : item.props.textValue;\n var _textValue = item.props.textValue === '' ? ITEM_EMPTY_STRING_TEXT_VALUE : item.props.textValue;\n\n // Wrap in `ItemContent` so we can support tooltips and handle text\n // overflow\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, item.props), {}, {\n key,\n textValue: _textValue,\n children: /*#__PURE__*/_jsx(ItemContent, {\n tooltipOptions: tooltipOptions,\n children: item.props.children\n })\n }));\n }\n if (isSectionElement(item)) {\n var _item$key2;\n return /*#__PURE__*/cloneElement(item, _objectSpread(_objectSpread({}, item.props), {}, {\n key: (_item$key2 = item.key) !== null && _item$key2 !== void 0 ? _item$key2 : typeof item.props.title === 'string' ? item.props.title : undefined,\n children: wrapItemChildren(item.props.children, tooltipOptions)\n }));\n }\n var text = String(item);\n var textValue = text === '' ? ITEM_EMPTY_STRING_TEXT_VALUE : text;\n return /*#__PURE__*/_jsx(Item, {\n textValue: textValue,\n children: /*#__PURE__*/_jsx(ItemContent, {\n tooltipOptions: tooltipOptions,\n children: text\n })\n }, text);\n });\n\n // Keep consistent with original data structure as array or single node\n return Array.isArray(itemsOrSections) ? result : result[0];\n}\n\n/**\n * If the given content is a primitive type, wrap it in a Text component.\n * @param content The content to wrap\n * @param slot The slot to use for the Text component\n * @returns The wrapped content or original content if not a primitive type\n */\nexport function wrapPrimitiveWithText(content, slot) {\n var _content;\n // eslint-disable-next-line no-param-reassign\n content = (_content = content) !== null && _content !== void 0 ? _content : '';\n if (['string', 'boolean', 'number'].includes(typeof content)) {\n return /*#__PURE__*/_jsx(Text, {\n slot: slot,\n children: content === '' ? NON_BREAKING_SPACE : String(content)\n });\n }\n return content;\n}\n//# sourceMappingURL=itemWrapperUtils.js.map","var _excluded = [\"aria-label\", \"aria-labelledby\", \"aria-describedby\", \"aria-details\", \"marginX\", \"marginY\", \"width\", \"height\", \"minWidth\", \"minHeight\", \"maxWidth\", \"maxHeight\", \"flex\", \"flexGrow\", \"flexShrink\", \"flexBasis\", \"justifySelf\", \"alignSelf\", \"order\", \"gridArea\", \"gridColumn\", \"gridRow\", \"gridColumnStart\", \"gridColumnEnd\", \"gridRowStart\", \"gridRowEnd\", \"position\", \"zIndex\", \"top\", \"bottom\", \"start\", \"end\", \"left\", \"right\", \"isHidden\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/**\n * Separate props for Spectrum components into AriaLabelingProps, StyleProps, and\n * any remaining props.\n * @param props The props to separate\n * @returns The separated props\n */\nexport function separateSpectrumProps(props) {\n var {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaHidden,\n marginX,\n marginY,\n width,\n height,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n justifySelf,\n alignSelf,\n order,\n gridArea,\n gridColumn,\n gridRow,\n gridColumnStart,\n gridColumnEnd,\n gridRowStart,\n gridRowEnd,\n position,\n zIndex,\n top,\n bottom,\n start,\n end,\n left,\n right,\n isHidden\n } = props,\n componentProps = _objectWithoutProperties(props, _excluded);\n return {\n ariaLabelProps: {\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaHidden\n },\n styleProps: {\n marginX,\n marginY,\n width,\n height,\n minWidth,\n minHeight,\n maxWidth,\n maxHeight,\n flex,\n flexGrow,\n flexShrink,\n flexBasis,\n justifySelf,\n alignSelf,\n order,\n gridArea,\n gridColumn,\n gridRow,\n gridColumnStart,\n gridColumnEnd,\n gridRowStart,\n gridRowEnd,\n position,\n zIndex,\n top,\n bottom,\n start,\n end,\n left,\n right,\n isHidden\n },\n componentProps: componentProps\n };\n}\nexport default separateSpectrumProps;\n//# sourceMappingURL=propsUtils.js.map","import { useCallback } from 'react';\nimport { ItemContent } from \"../ItemContent.js\";\nimport { Item } from \"../shared.js\";\nimport { getItemKey, ITEM_EMPTY_STRING_TEXT_VALUE } from \"./itemUtils.js\";\nimport { wrapIcon, wrapPrimitiveWithText } from \"./itemWrapperUtils.js\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Returns a render function that can be used to render a normalized item in\n * collection components.\n * @param itemIconSlot Slot to use for item icons\n * @param showItemDescriptions Whether to show item descriptions\n * @param showItemIcons Whether to show item icons\n * @param tooltipOptions Tooltip options to use when rendering the item\n * @returns Render function for normalized items\n */\nexport function useRenderNormalizedItem(_ref) {\n var {\n itemIconSlot,\n showItemDescriptions,\n showItemIcons,\n tooltipOptions\n } = _ref;\n return useCallback(normalizedItem => {\n var _normalizedItem$item, _normalizedItem$item$, _normalizedItem$item2, _normalizedItem$item3, _normalizedItem$item4;\n var key = getItemKey(normalizedItem);\n var content = wrapPrimitiveWithText((_normalizedItem$item = normalizedItem.item) === null || _normalizedItem$item === void 0 ? void 0 : _normalizedItem$item.content);\n var textValue = (_normalizedItem$item$ = (_normalizedItem$item2 = normalizedItem.item) === null || _normalizedItem$item2 === void 0 ? void 0 : _normalizedItem$item2.textValue) !== null && _normalizedItem$item$ !== void 0 ? _normalizedItem$item$ : '';\n var description = showItemDescriptions ? wrapPrimitiveWithText((_normalizedItem$item3 = normalizedItem.item) === null || _normalizedItem$item3 === void 0 ? void 0 : _normalizedItem$item3.description, 'description') : null;\n var icon = showItemIcons ? wrapIcon((_normalizedItem$item4 = normalizedItem.item) === null || _normalizedItem$item4 === void 0 ? void 0 : _normalizedItem$item4.icon, itemIconSlot) : null;\n return /*#__PURE__*/_jsx(Item\n // Note that setting the `key` prop explicitly on `Item` elements\n // causes the picker to expect `selectedKey` and `defaultSelectedKey`\n // to be strings. It also passes the stringified value of the key to\n // `onSelectionChange` handlers` regardless of the actual type of the\n // key. We can't really get around setting in order to support Windowed\n // data, so we'll need to do some manual conversion of keys to strings\n // in other components that use this hook.\n , {\n // The `textValue` prop gets used to provide the content of `<option>`\n // elements that back the Spectrum Picker. These are not visible in the UI,\n // but are used for accessibility purposes, so we set to an arbitrary\n // `ITEM_EMPTY_STRING_TEXT_VALUE` value so that they are not empty strings.\n textValue: textValue === '' ? ITEM_EMPTY_STRING_TEXT_VALUE : textValue,\n children: /*#__PURE__*/_jsxs(ItemContent, {\n tooltipOptions: tooltipOptions,\n children: [icon, content, description]\n })\n }, key);\n }, [itemIconSlot, showItemDescriptions, showItemIcons, tooltipOptions]);\n}\nexport default useRenderNormalizedItem;\n//# sourceMappingURL=useRenderNormalizedItem.js.map","import { useCallback, useMemo } from 'react';\nimport { getItemKey, itemSelectionToStringSet } from \"./itemUtils.js\";\n/**\n * Spectrum collection components treat keys as strings if the `key` prop is\n * explicitly set on `Item` elements. Since we do this in `useRenderNormalizedItem`,\n * we need to ensure that keys are strings in order for selection to work. We\n * then need to convert back to the original key types in the onChange handler.\n * This hook encapsulates converting to and from strings so that keys can match\n * the original key type.\n * @param normalizedItems The normalized items to select from.\n * @param selectedKeys The currently selected keys in the collection.\n * @param defaultSelectedKeys The initial selected keys in the collection.\n * @param disabledKeys The currently disabled keys in the collection.\n * @param onChange Handler that is called when the selection changes.\n * @returns UseStringifiedMultiSelectionResult with stringified key sets and\n * string key selection change handler.\n */\nexport function useStringifiedMultiSelection(_ref) {\n var {\n normalizedItems,\n defaultSelectedKeys,\n disabledKeys,\n selectedKeys,\n onChange\n } = _ref;\n var selectedStringKeys = useMemo(() => itemSelectionToStringSet(selectedKeys), [selectedKeys]);\n var defaultSelectedStringKeys = useMemo(() => itemSelectionToStringSet(defaultSelectedKeys), [defaultSelectedKeys]);\n var disabledStringKeys = useMemo(() => itemSelectionToStringSet(disabledKeys), [disabledKeys]);\n var onStringSelectionChange = useCallback(keys => {\n if (onChange == null) {\n return;\n }\n if (keys === 'all') {\n onChange('all');\n return;\n }\n var actualKeys = new Set();\n normalizedItems.forEach(item => {\n if (keys.has(String(getItemKey(item)))) {\n actualKeys.add(getItemKey(item));\n }\n });\n onChange(actualKeys);\n }, [normalizedItems, onChange]);\n return {\n selectedStringKeys,\n defaultSelectedStringKeys,\n disabledStringKeys,\n onStringSelectionChange\n };\n}\nexport default useStringifiedMultiSelection;\n//# sourceMappingURL=useStringifiedMultiSelection.js.map","import { useCallback, useMemo } from 'react';\nimport { getItemKey, itemSelectionToStringSet } from \"./itemUtils.js\";\n/**\n * Spectrum collection components treat keys as strings if the `key` prop is\n * explicitly set on `Item` elements. Since we do this in `useRenderNormalizedItem`,\n * we need to ensure that keys are strings in order for selection to work. We\n * then need to convert back to the original key types in the onChange handler.\n * This hook encapsulates converting to and from strings so that keys can match\n * the original key type.\n * @param normalizedItems The normalized items to select from.\n * @param selectedKey The currently selected key in the collection.\n * @param defaultSelectedKey The initial selected key in the collection.\n * @param disabledKeys The currently disabled keys in the collection.\n * @param onChange Handler that is called when the selection changes.\n * @returns UseStringifiedSelectionResult with stringified key sets and string\n * key selection change handler.\n */\nexport function useStringifiedSelection(_ref) {\n var {\n normalizedItems,\n defaultSelectedKey,\n selectedKey,\n disabledKeys,\n onChange\n } = _ref;\n var selectedStringKey = useMemo(() => selectedKey == null ? selectedKey : String(selectedKey), [selectedKey]);\n var defaultSelectedStringKey = useMemo(() => defaultSelectedKey == null ? defaultSelectedKey : String(defaultSelectedKey), [defaultSelectedKey]);\n var disabledStringKeys = useMemo(() => itemSelectionToStringSet(disabledKeys), [disabledKeys]);\n var onStringSelectionChange = useCallback(key => {\n var _getItemKey;\n if (onChange == null) {\n return;\n }\n\n // The `key` arg will always be a string due to us setting the `Item` key\n // prop in `renderItem`. We need to find the matching item to determine\n // the actual key.\n var selectedItem = normalizedItems.find(item => String(getItemKey(item)) === key);\n var actualKey = (_getItemKey = getItemKey(selectedItem)) !== null && _getItemKey !== void 0 ? _getItemKey : key;\n onChange(actualKey);\n }, [normalizedItems, onChange]);\n return {\n selectedStringKey,\n defaultSelectedStringKey,\n disabledStringKeys,\n onStringSelectionChange\n };\n}\nexport default useStringifiedSelection;\n//# sourceMappingURL=useStringifiedSelection.js.map","import { useProvider } from '@adobe/react-spectrum';\nexport var useSpectrumThemeProvider = useProvider;\nexport default useSpectrumThemeProvider;\n//# sourceMappingURL=useSpectrumThemeProvider.js.map","var _excluded = [\"onScroll\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { ListView as SpectrumListView } from '@adobe/react-spectrum';\nimport { extractSpectrumHTMLElement, useContentRect, useOnScrollRef } from '@deephaven/react-hooks';\nimport { EMPTY_FUNCTION } from '@deephaven/utils';\nimport cl from 'classnames';\nimport { useSpectrumThemeProvider } from \"../../theme/index.js\";\nimport { Flex } from \"../layout.js\";\nimport { separateSpectrumProps } from \"../utils/index.js\";\nimport \"./ListViewWrapper.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Helper component to wrap a ListView with the appropriate styling + scroll\n * handling. This is used by both the `@deephaven/components` `ListView` and\n * the `@deephaven/jsapi-components` `ListView` (via `ListViewNormalized`) to\n * ensure consistency.\n *\n * Note that This component will usually not be used directly. Instead, it is\n * recommended to use\n * - `@deephaven/components`'s `ListView` for non-table data sources\n * - `@deephaven/jsapi-components`'s `ListView` for table data sources\n */\nexport function ListViewWrapper(props) {\n var _styleProps$minHeight, _listViewProps$densit;\n var {\n ariaLabelProps,\n componentProps,\n styleProps\n } = separateSpectrumProps(props);\n var {\n onScroll = EMPTY_FUNCTION\n } = componentProps,\n listViewProps = _objectWithoutProperties(componentProps, _excluded);\n var {\n scale\n } = useSpectrumThemeProvider();\n var scrollRef = useOnScrollRef(onScroll, extractSpectrumHTMLElement);\n\n // Spectrum ListView crashes when it has zero height. Track the contentRect\n // of the parent container and only render the ListView when it has a non-zero\n // height. See https://github.com/adobe/react-spectrum/issues/6213\n var {\n ref: contentRectRef,\n contentRect\n } = useContentRect(extractSpectrumHTMLElement);\n return /*#__PURE__*/_jsx(Flex, _objectSpread(_objectSpread({\n direction: \"column\",\n ref: contentRectRef\n // eslint-disable-next-line react/jsx-props-no-spreading\n }, styleProps), {}, {\n // Set min-height to 1px so that `ListView` is rendered whenever container\n // is visible. This prevents the height from shrinking to zero as a result\n // of a parent grid or flex container calculating content sizes. The\n // container height can still be zero when it is not being displayed such\n // as when one of its parents have `display: none`.\n minHeight: (_styleProps$minHeight = styleProps.minHeight) !== null && _styleProps$minHeight !== void 0 ? _styleProps$minHeight : 1,\n UNSAFE_className: cl('dh-list-view-wrapper', \"dh-list-view-wrapper-density-\".concat((_listViewProps$densit = listViewProps.density) !== null && _listViewProps$densit !== void 0 ? _listViewProps$densit : 'regular'), \"dh-list-view-wrapper-scale-\".concat(scale), styleProps.UNSAFE_className),\n children: contentRect.height === 0 ? null : /*#__PURE__*/_jsx(SpectrumListView, _objectSpread(_objectSpread({\n ref: scrollRef\n // eslint-disable-next-line react/jsx-props-no-spreading\n }, ariaLabelProps), listViewProps))\n }));\n}\nexport default ListViewWrapper;\n//# sourceMappingURL=ListViewWrapper.js.map","var _excluded = [\"children\", \"tooltip\", \"selectedKeys\", \"defaultSelectedKeys\", \"disabledKeys\", \"UNSAFE_className\", \"onChange\", \"onScroll\", \"onSelectionChange\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useMemo } from 'react';\nimport cl from 'classnames';\nimport { EMPTY_FUNCTION } from '@deephaven/utils';\nimport { normalizeTooltipOptions, wrapItemChildren } from \"../utils/index.js\";\nimport { ListViewWrapper } from \"./ListViewWrapper.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ListView(_ref) {\n var {\n children,\n tooltip = true,\n selectedKeys,\n defaultSelectedKeys,\n disabledKeys,\n UNSAFE_className,\n onChange,\n onScroll = EMPTY_FUNCTION,\n onSelectionChange\n } = _ref,\n spectrumListViewProps = _objectWithoutProperties(_ref, _excluded);\n var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip, 'bottom'), [tooltip]);\n var wrappedItems = useMemo(() => wrapItemChildren(children, tooltipOptions), [children, tooltipOptions]);\n return /*#__PURE__*/_jsx(ListViewWrapper\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, spectrumListViewProps), {}, {\n UNSAFE_className: cl('dh-list-view', UNSAFE_className),\n selectedKeys: selectedKeys,\n defaultSelectedKeys: defaultSelectedKeys,\n disabledKeys: disabledKeys,\n onScroll: onScroll,\n onSelectionChange: onChange !== null && onChange !== void 0 ? onChange : onSelectionChange,\n children: wrappedItems\n }));\n}\nexport default ListView;\n//# sourceMappingURL=ListView.js.map","var _excluded = [\"normalizedItems\", \"tooltip\", \"selectedKeys\", \"defaultSelectedKeys\", \"disabledKeys\", \"showItemIcons\", \"UNSAFE_className\", \"onChange\", \"onSelectionChange\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useMemo } from 'react';\nimport cl from 'classnames';\nimport { normalizeTooltipOptions, useRenderNormalizedItem, useStringifiedMultiSelection } from \"../utils/index.js\";\nimport { ListViewWrapper } from \"./ListViewWrapper.js\";\nimport { createElement as _createElement } from \"react\";\n/**\n * ListView supporting normalized item data. This component mostly exists to\n * decouple some of the logic needed to support table data. Specifically it\n * handles item rendering configurations as well as converting selection keys\n * to / from strings. This makes it easier to test logic in isolation without\n * a dependency on JS apis (e.g. in the Styleguide).\n *\n * Note that This component will usually not be used directly. Instead, it is\n * recommended to use\n * - `@deephaven/components`'s `ListView` for non-table data sources\n * - `@deephaven/jsapi-components`'s `ListView` for table data sources\n */\nexport function ListViewNormalized(_ref) {\n var {\n normalizedItems,\n tooltip = true,\n selectedKeys,\n defaultSelectedKeys,\n disabledKeys,\n showItemIcons,\n UNSAFE_className,\n onChange,\n onSelectionChange\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip, 'bottom'), [tooltip]);\n var renderNormalizedItem = useRenderNormalizedItem({\n itemIconSlot: 'illustration',\n // Descriptions introduce variable item heights which throws off setting\n // viewport on windowed data. For now not going to implement description\n // support in Picker.\n // https://github.com/deephaven/web-client-ui/issues/1958\n showItemDescriptions: false,\n showItemIcons,\n tooltipOptions\n });\n\n // Spectrum doesn't re-render if only the `renderNormalizedItems` function\n // changes, so we create a key from its dependencies that can be used to force\n // re-render.\n var forceRerenderKey = \"\".concat(showItemIcons, \"-\").concat(tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.placement);\n var {\n selectedStringKeys,\n defaultSelectedStringKeys,\n disabledStringKeys,\n onStringSelectionChange\n } = useStringifiedMultiSelection({\n normalizedItems,\n selectedKeys,\n defaultSelectedKeys,\n disabledKeys,\n onChange: onChange !== null && onChange !== void 0 ? onChange : onSelectionChange\n });\n return /*#__PURE__*/_createElement(ListViewWrapper\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, props), {}, {\n UNSAFE_className: cl('dh-list-view-normalized', UNSAFE_className),\n key: forceRerenderKey,\n items: normalizedItems,\n selectedKeys: selectedStringKeys,\n defaultSelectedKeys: defaultSelectedStringKeys,\n disabledKeys: disabledStringKeys,\n onSelectionChange: onStringSelectionChange\n }), renderNormalizedItem);\n}\nexport default ListViewNormalized;\n//# sourceMappingURL=ListViewNormalized.js.map","import { useCallback } from 'react';\nimport { findSpectrumPickerScrollArea, usePopoverOnScrollRef } from '@deephaven/react-hooks';\n/**\n * Handle scroll event registration and scrolling to initial scroll position\n * whenever a Picker popover is opened.\n * @param getInitialScrollPosition Function to get the initial scroll position.\n * @param onScroll Callback for scroll events.\n * @param onOpenChange Callback for open change events.\n * @return A ref to attach to the Picker and a callback to handle open change\n * events for the Picker.\n */\nexport function usePickerScrollOnOpen(_ref) {\n var {\n getInitialScrollPosition,\n onScroll,\n onOpenChange\n } = _ref;\n var {\n ref,\n onOpenChange: popoverOnOpenChange\n } = usePopoverOnScrollRef(findSpectrumPickerScrollArea, onScroll, getInitialScrollPosition);\n var onOpenChangeInternal = useCallback(isOpen => {\n // Attach scroll event handling\n popoverOnOpenChange(isOpen);\n onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(isOpen);\n }, [onOpenChange, popoverOnOpenChange]);\n return {\n ref,\n onOpenChange: onOpenChangeInternal\n };\n}\nexport default usePickerScrollOnOpen;\n//# sourceMappingURL=usePickerScrollOnOpen.js.map","var _excluded = [\"children\", \"tooltip\", \"defaultSelectedKey\", \"selectedKey\", \"onChange\", \"onOpenChange\", \"onScroll\", \"onSelectionChange\", \"UNSAFE_className\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useCallback, useMemo, useState } from 'react';\nimport { Picker as SpectrumPicker } from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport { EMPTY_FUNCTION, ensureArray, PICKER_ITEM_HEIGHTS, PICKER_TOP_OFFSET } from '@deephaven/utils';\nimport { getPositionOfSelectedItemElement, normalizeTooltipOptions, isItemElementWithDescription, isSectionElement } from \"../utils/itemUtils.js\";\nimport { wrapItemChildren } from \"../utils/itemWrapperUtils.js\";\nimport usePickerScrollOnOpen from \"./usePickerScrollOnOpen.js\";\nimport { useSpectrumThemeProvider } from \"../../theme/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Picker component for selecting items from a list of items. Items can be\n * provided via the `children` prop. Each item can be a string,\tnumber, boolean,\n * or a Spectrum <Item> element. The remaining props are just\tpass through props\n * for the Spectrum Picker component.\n * See https://react-spectrum.adobe.com/react-spectrum/Picker.html\n */\nexport function Picker(_ref) {\n var {\n children,\n tooltip = true,\n defaultSelectedKey,\n selectedKey,\n onChange,\n onOpenChange,\n onScroll = EMPTY_FUNCTION,\n onSelectionChange,\n // eslint-disable-next-line camelcase\n UNSAFE_className\n } = _ref,\n spectrumPickerProps = _objectWithoutProperties(_ref, _excluded);\n var {\n scale\n } = useSpectrumThemeProvider();\n var itemHeight = PICKER_ITEM_HEIGHTS[scale];\n var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip), [tooltip]);\n\n // `null` is a valid value for `selectedKey` in controlled mode, so we check\n // for explicit `undefined` to identify uncontrolled mode.\n var isUncontrolled = selectedKey === undefined;\n var [uncontrolledSelectedKey, setUncontrolledSelectedKey] = useState(defaultSelectedKey);\n var wrappedItems = useMemo(() => ensureArray(wrapItemChildren(children, tooltipOptions)), [children, tooltipOptions]);\n\n // Item descriptions and Section elements introduce variable item heights.\n // This throws off scroll position calculations, so we disable auto scrolling\n // if either of these are found.\n var disableScrollOnOpen = useMemo(() => wrappedItems.some(item => isSectionElement(item) || isItemElementWithDescription(item)), [wrappedItems]);\n var getInitialScrollPosition = useCallback( /*#__PURE__*/_asyncToGenerator(function* () {\n return disableScrollOnOpen ? null : getPositionOfSelectedItemElement({\n items: wrappedItems,\n itemHeight,\n selectedKey: isUncontrolled ? uncontrolledSelectedKey : selectedKey,\n topOffset: PICKER_TOP_OFFSET\n });\n }), [disableScrollOnOpen, isUncontrolled, itemHeight, selectedKey, uncontrolledSelectedKey, wrappedItems]);\n var onSelectionChangeInternal = useCallback(key => {\n var _ref3;\n // If our component is uncontrolled, track the selected key internally\n // so that we can scroll to the selected item if the user re-opens\n if (isUncontrolled) {\n setUncontrolledSelectedKey(key);\n }\n (_ref3 = onChange !== null && onChange !== void 0 ? onChange : onSelectionChange) === null || _ref3 === void 0 ? void 0 : _ref3(key);\n }, [isUncontrolled, onChange, onSelectionChange]);\n var {\n ref: scrollRef,\n onOpenChange: onOpenChangeInternal\n } = usePickerScrollOnOpen({\n getInitialScrollPosition,\n onScroll,\n onOpenChange\n });\n return /*#__PURE__*/_jsx(SpectrumPicker\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, spectrumPickerProps), {}, {\n ref: scrollRef,\n UNSAFE_className: cl('dh-picker', UNSAFE_className),\n selectedKey: selectedKey,\n defaultSelectedKey: defaultSelectedKey,\n onSelectionChange: onSelectionChangeInternal,\n onOpenChange: onOpenChangeInternal,\n children: wrappedItems\n }));\n}\nexport default Picker;\n//# sourceMappingURL=Picker.js.map","var _excluded = [\"normalizedItems\", \"tooltip\", \"selectedKey\", \"defaultSelectedKey\", \"disabledKeys\", \"showItemIcons\", \"UNSAFE_className\", \"getInitialScrollPosition\", \"onChange\", \"onOpenChange\", \"onScroll\", \"onSelectionChange\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useMemo } from 'react';\nimport { Picker as SpectrumPicker } from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport { EMPTY_FUNCTION } from '@deephaven/utils';\nimport { Section } from \"../shared.js\";\nimport { getItemKey, isNormalizedSection, normalizeTooltipOptions, useRenderNormalizedItem, useStringifiedSelection } from \"../utils/index.js\";\nimport usePickerScrollOnOpen from \"./usePickerScrollOnOpen.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\n/**\n * Picker that takes an array of `NormalizedItem` or `NormalizedSection` items\n * as children and uses a render item function to render the items. This is\n * necessary to support windowed data.\n */\nexport function PickerNormalized(_ref) {\n var {\n normalizedItems,\n tooltip = true,\n selectedKey,\n defaultSelectedKey,\n disabledKeys,\n showItemIcons,\n UNSAFE_className,\n getInitialScrollPosition,\n onChange,\n onOpenChange,\n onScroll = EMPTY_FUNCTION,\n onSelectionChange\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip), [tooltip]);\n var renderNormalizedItem = useRenderNormalizedItem({\n itemIconSlot: 'icon',\n // Descriptions introduce variable item heights which throws off calculation\n // of initial scroll position and setting viewport on windowed data. For now\n // not going to implement description support in Picker.\n // https://github.com/deephaven/web-client-ui/issues/1958\n showItemDescriptions: false,\n showItemIcons,\n tooltipOptions\n });\n\n // Spectrum doesn't re-render if only the `renderNormalizedItems` function\n // changes, so we create a key from its dependencies that can be used to force\n // re-render.\n var forceRerenderKey = \"\".concat(showItemIcons, \"-\").concat(tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.placement);\n var {\n ref: scrollRef,\n onOpenChange: onOpenChangeInternal\n } = usePickerScrollOnOpen({\n getInitialScrollPosition,\n onScroll,\n onOpenChange\n });\n\n // Spectrum Picker treats keys as strings if the `key` prop is explicitly\n // set on `Item` elements. Since we do this in `renderItem`, we need to\n // map original key types to and from strings so that selection works.\n var {\n selectedStringKey,\n defaultSelectedStringKey,\n disabledStringKeys,\n onStringSelectionChange\n } = useStringifiedSelection({\n normalizedItems,\n selectedKey,\n defaultSelectedKey,\n disabledKeys,\n onChange: onChange !== null && onChange !== void 0 ? onChange : onSelectionChange\n });\n return /*#__PURE__*/_createElement(SpectrumPicker\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, props), {}, {\n key: forceRerenderKey,\n ref: scrollRef,\n UNSAFE_className: cl('dh-picker', 'dh-picker-normalized', UNSAFE_className),\n items: normalizedItems,\n selectedKey: selectedStringKey,\n defaultSelectedKey: defaultSelectedStringKey,\n disabledKeys: disabledStringKeys,\n onSelectionChange: onStringSelectionChange,\n onOpenChange: onOpenChangeInternal\n }), itemOrSection => {\n if (isNormalizedSection(itemOrSection)) {\n var _itemOrSection$item, _itemOrSection$item2;\n return /*#__PURE__*/_jsx(Section, {\n title: (_itemOrSection$item = itemOrSection.item) === null || _itemOrSection$item === void 0 ? void 0 : _itemOrSection$item.title,\n items: (_itemOrSection$item2 = itemOrSection.item) === null || _itemOrSection$item2 === void 0 ? void 0 : _itemOrSection$item2.items,\n children: renderNormalizedItem\n }, getItemKey(itemOrSection));\n }\n return renderNormalizedItem(itemOrSection);\n });\n}\nexport default PickerNormalized;\n//# sourceMappingURL=PickerNormalized.js.map","var _excluded = [\"color\", \"UNSAFE_style\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* eslint-disable react/jsx-props-no-spreading */\nimport { forwardRef, useMemo } from 'react';\nimport { Heading as SpectrumHeading } from '@adobe/react-spectrum';\nimport { colorValueStyle } from \"../theme/colorUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * A Heading component that re-exports the Spectrum Heading component.\n * It overrides ColorValues to accept CSS color strings and custom\n * variable names from our color paletee and semantic colors.\n *\n * @param props The props for the Heading component\n * @returns The Heading component\n *\n */\n\nexport var Heading = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var {\n color,\n UNSAFE_style\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var style = useMemo(() => _objectSpread(_objectSpread({}, UNSAFE_style), {}, {\n color: colorValueStyle(color)\n }), [color, UNSAFE_style]);\n return /*#__PURE__*/_jsx(SpectrumHeading, _objectSpread(_objectSpread({}, rest), {}, {\n ref: forwardedRef,\n UNSAFE_style: style\n }));\n});\nHeading.displayName = 'Heading';\nexport default Heading;\n//# sourceMappingURL=Heading.js.map","var _excluded = [\"backgroundColor\", \"UNSAFE_style\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n/* eslint-disable react/jsx-props-no-spreading */\nimport { forwardRef, useMemo } from 'react';\nimport { View as SpectrumView } from '@adobe/react-spectrum';\nimport { colorValueStyle } from \"../theme/colorUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * A View component that re-exports the Spectrum View component.\n * However, it overrides ColorValues to accept CSS color strings and\n * our custom variable names from our color paletee and semantic colors.\n *\n * @param props The props for the View component\n * @returns The View component\n *\n */\n\nexport var View = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var {\n backgroundColor,\n UNSAFE_style\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var style = useMemo(() => _objectSpread(_objectSpread({}, UNSAFE_style), {}, {\n backgroundColor: colorValueStyle(backgroundColor)\n }), [backgroundColor, UNSAFE_style]);\n return /*#__PURE__*/_jsx(SpectrumView, _objectSpread(_objectSpread({}, rest), {}, {\n ref: forwardedRef,\n UNSAFE_style: style\n }));\n});\nView.displayName = 'View';\nexport default View;\n//# sourceMappingURL=View.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * An Input component that pops and filters auto complete options as you type.\n *\n * props:\n * @param options :[{\n * title: 'option title for display',\n * value: 'option value' //option value\n * }]\n * @param popperOptions options for the Popper\n * @param onChange called when the value is changed from the pulldown\n * @param inputPlaceholder place holder for the input box\n * @param disabled disable both input & drop down\n * @param className an optional class name applied to the input element\n * @param defaultTitle the default title to display\n * @param spellCheck flag to disable spell checking, defaults to true\n * @param onEnter called when the Enter key is typed in the input element\n *\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport memoize from 'memoizee';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { Popper } from \"./popper/index.js\";\nimport \"./AutoCompleteInput.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar DEBOUNCE_DELAY = 100;\nvar MENU_NAVIGATION_DIRECTION;\n(function (MENU_NAVIGATION_DIRECTION) {\n MENU_NAVIGATION_DIRECTION[\"UP\"] = \"UP\";\n MENU_NAVIGATION_DIRECTION[\"DOWN\"] = \"DOWN\";\n})(MENU_NAVIGATION_DIRECTION || (MENU_NAVIGATION_DIRECTION = {}));\nclass AutoCompleteInput extends Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"popper\", void 0);\n _defineProperty(this, \"cbContainer\", void 0);\n _defineProperty(this, \"menuContainer\", void 0);\n _defineProperty(this, \"input\", void 0);\n _defineProperty(this, \"getCachedFilteredOptions\", memoize((options, input) => options.filter(\n // supports partial match\n option => option.title.toLowerCase().indexOf(input.toLowerCase()) >= 0)));\n var {\n popperOptions\n } = this.props;\n popperOptions = _objectSpread({\n placement: 'bottom-end',\n modifiers: {\n preventOverflow: {\n enabled: false\n }\n }\n }, popperOptions);\n this.state = {\n title: '',\n filteredOptions: [],\n keyboardOptionIndex: 0,\n menuIsOpen: false,\n inputWidth: 100,\n invalid: false,\n popperOptions\n };\n this.handleMenuKeyDown = this.handleMenuKeyDown.bind(this);\n this.handleMenuBlur = this.handleMenuBlur.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleInputKeyDown = this.handleInputKeyDown.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n this.handelInputFocus = this.handelInputFocus.bind(this);\n this.handleInputClick = this.handleInputClick.bind(this);\n this.updateInputValue = debounce(this.updateInputValue, DEBOUNCE_DELAY);\n this.handleOptionClick = this.handleOptionClick.bind(this);\n this.handleMenuOpened = this.handleMenuOpened.bind(this);\n this.handleMenuExited = this.handleMenuExited.bind(this);\n this.popper = /*#__PURE__*/React.createRef();\n this.cbContainer = /*#__PURE__*/React.createRef();\n this.menuContainer = /*#__PURE__*/React.createRef();\n this.input = /*#__PURE__*/React.createRef();\n }\n setInputWidth() {\n if (this.cbContainer.current) {\n this.setState({\n inputWidth: this.cbContainer.current.getBoundingClientRect().width\n });\n }\n }\n // validation needs to be an exact case-sensitve match on value\n getValueAndValidate(title) {\n if (!title) {\n this.setState({\n invalid: false\n });\n return {\n value: title,\n isValid: false\n };\n }\n\n // validate\n var {\n options\n } = this.props;\n var result = options.filter(option => option.title.toLowerCase() === title.toLowerCase());\n if (result.length < 1) {\n this.setState({\n invalid: true\n });\n return {\n value: title,\n isValid: false\n };\n }\n this.setState({\n invalid: false\n });\n return {\n value: result[0].value,\n isValid: true\n };\n }\n\n // validate typed entries emit change event using value\n updateInputValue(title) {\n var {\n menuIsOpen\n } = this.state;\n var {\n value,\n isValid\n } = this.getValueAndValidate(title);\n if (menuIsOpen) this.processFilterChange(title);\n this.fireOnChange(value, isValid);\n }\n fireOnChange(value) {\n var isValid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var {\n onChange\n } = this.props;\n onChange(value, isValid);\n }\n processFilterChange(filter) {\n var _this$popper$current;\n var {\n options\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n var filteredOptions = filter ? this.getCachedFilteredOptions(options, filter) : options;\n var perfectMatch = filteredOptions.length === 1 && filteredOptions[0].title === filter;\n this.setState({\n filteredOptions,\n keyboardOptionIndex: 0\n });\n if (perfectMatch && menuIsOpen) {\n this.closeMenu();\n return;\n }\n (_this$popper$current = this.popper.current) === null || _this$popper$current === void 0 ? void 0 : _this$popper$current.scheduleUpdate(); // filtered options list can change size, may need to be repositioned\n }\n\n resetValue() {\n this.setState({\n title: ''\n });\n this.fireOnChange('');\n }\n handleResize() {\n this.setInputWidth();\n }\n handleMenuKeyDown(event) {\n var _this$input$current;\n var {\n filteredOptions,\n keyboardOptionIndex\n } = this.state;\n var option = filteredOptions[keyboardOptionIndex];\n switch (event.key) {\n case 'Enter':\n case 'ArrowRight':\n event.stopPropagation();\n event.preventDefault();\n if (option != null) {\n this.setState({\n title: option.title,\n invalid: false\n });\n this.fireOnChange(option.value);\n }\n this.closeMenu();\n (_this$input$current = this.input.current) === null || _this$input$current === void 0 ? void 0 : _this$input$current.focus();\n break;\n case 'ArrowUp':\n event.stopPropagation();\n event.preventDefault();\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP);\n break;\n case 'ArrowDown':\n event.stopPropagation();\n event.preventDefault();\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN);\n break;\n case 'Tab':\n event.stopPropagation();\n event.preventDefault();\n if (event.shiftKey) {\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP);\n break;\n }\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN);\n break;\n case 'Escape':\n event.preventDefault();\n event.stopPropagation();\n this.closeMenu();\n break;\n default:\n break;\n }\n }\n navigateMenu(direction) {\n var {\n filteredOptions,\n keyboardOptionIndex\n } = this.state;\n var newKeyboardOptionIndex = keyboardOptionIndex;\n if (direction === AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP) {\n if (keyboardOptionIndex > 0) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex - 1) % filteredOptions.length;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n } else if (keyboardOptionIndex === 0) {\n newKeyboardOptionIndex = filteredOptions.length - 1;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n } else if (direction === AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN) {\n if (keyboardOptionIndex < filteredOptions.length) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex + 1) % filteredOptions.length;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n }\n handleInputKeyDown(event) {\n var {\n onEnter\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.handleMenuKeyDown(event);\n } else if (event.key === 'Enter') {\n onEnter();\n } else if (event.key === 'Escape') {\n this.resetValue();\n event.preventDefault();\n event.stopPropagation();\n } else if (!(event.key === 'ArrowRight' || event.key === 'ArrowLeft' || event.key === 'Tab' || event.key === 'Shift')) {\n this.openMenu();\n }\n }\n handleInputChange(event) {\n this.setState({\n title: event.target.value\n });\n this.updateInputValue(event.target.value);\n }\n handleOptionClick(option) {\n var _this$input$current2;\n this.setState({\n title: option.title,\n invalid: false\n });\n this.fireOnChange(option.value);\n this.closeMenu();\n (_this$input$current2 = this.input.current) === null || _this$input$current2 === void 0 ? void 0 : _this$input$current2.focus();\n }\n handelInputFocus() {\n var {\n menuIsOpen\n } = this.state;\n if (!menuIsOpen) {\n this.openMenu();\n }\n }\n handleInputClick() {\n var {\n menuIsOpen\n } = this.state;\n if (!menuIsOpen) {\n this.openMenu();\n }\n }\n handleInputBlur(event) {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen && event.relatedTarget instanceof Element && this.popper.current !== null && this.popper.current.element.contains(event.relatedTarget)) {\n return;\n }\n this.closeMenu(false);\n }\n handleMenuBlur(event) {\n // if blur event is caused by focusing on the input or focus on options don't close menu\n if (event.relatedTarget === this.input.current || event.relatedTarget instanceof Element && this.popper.current !== null && this.popper.current.element.contains(event.relatedTarget)) {\n return;\n }\n this.closeMenu(false);\n }\n handleMenuOpened() {\n var _this$input$current3;\n (_this$input$current3 = this.input.current) === null || _this$input$current3 === void 0 ? void 0 : _this$input$current3.focus();\n }\n handleMenuExited() {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.setState({\n menuIsOpen: false,\n keyboardOptionIndex: 0\n });\n }\n }\n openMenu() {\n var {\n title\n } = this.state;\n this.processFilterChange(title);\n this.setInputWidth();\n this.setState({\n menuIsOpen: true\n });\n\n // https://github.com/reactjs/react-transition-group/issues/382\n window.requestAnimationFrame(() => {\n var _this$popper$current2;\n (_this$popper$current2 = this.popper.current) === null || _this$popper$current2 === void 0 ? void 0 : _this$popper$current2.show();\n });\n }\n closeMenu() {\n var _this$popper$current3;\n var focusInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.setState({\n menuIsOpen: false,\n keyboardOptionIndex: 0\n });\n if (focusInput) {\n var _this$input$current4;\n (_this$input$current4 = this.input.current) === null || _this$input$current4 === void 0 ? void 0 : _this$input$current4.focus();\n }\n (_this$popper$current3 = this.popper.current) === null || _this$popper$current3 === void 0 ? void 0 : _this$popper$current3.hide();\n }\n scrollOptionIntoView(index) {\n if (this.menuContainer.current) {\n var _this$menuContainer$c;\n (_this$menuContainer$c = this.menuContainer.current.children.item(index)) === null || _this$menuContainer$c === void 0 ? void 0 : _this$menuContainer$c.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest'\n });\n }\n }\n renderMenuElement() {\n var {\n inputWidth\n } = this.state;\n return /*#__PURE__*/_jsx(\"div\", {\n className: classNames('aci-options'),\n ref: this.menuContainer,\n role: \"presentation\",\n onKeyDown: this.handleMenuKeyDown,\n style: {\n width: inputWidth\n },\n onBlur: this.handleMenuBlur,\n children: this.renderOptions()\n });\n }\n renderOptions() {\n var {\n noMatchText\n } = this.props;\n var {\n title,\n filteredOptions\n } = this.state;\n if (title && filteredOptions.length === 0) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"no-match\",\n children: noMatchText\n });\n }\n return filteredOptions.map((option, index) => this.renderOption(option, index));\n }\n renderOption(option, index) {\n var {\n keyboardOptionIndex\n } = this.state;\n var key = \"option-\".concat(index, \"-\").concat(option.value);\n return /*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n className: classNames('aci-option-btn', {\n 'keyboard-active': keyboardOptionIndex === index\n }),\n onClick: () => this.handleOptionClick(option),\n onFocus: () => this.setState({\n keyboardOptionIndex: index\n }),\n children: option.title\n }, key);\n }\n render() {\n var {\n options,\n inputPlaceholder,\n disabled,\n className,\n defaultTitle,\n spellCheck,\n 'data-testid': dataTestId\n } = this.props;\n var {\n title,\n menuIsOpen,\n popperOptions,\n invalid\n } = this.state;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"aci-container\",\n ref: this.cbContainer,\n children: [/*#__PURE__*/_jsx(\"input\", {\n value: title || defaultTitle,\n className: classNames('form-control', className, 'aci-input', {\n 'is-invalid': invalid && !menuIsOpen\n }),\n ref: this.input,\n onChange: this.handleInputChange,\n placeholder: inputPlaceholder || options[0].title,\n disabled: disabled,\n onFocus: this.handelInputFocus,\n onClick: this.handleInputClick,\n onBlur: this.handleInputBlur,\n onKeyDown: this.handleInputKeyDown,\n spellCheck: spellCheck,\n \"data-testid\": dataTestId\n }), /*#__PURE__*/_jsx(Popper, {\n ref: this.popper,\n options: popperOptions,\n className: classNames('aci-options-popper interactive'),\n onEntered: this.handleMenuOpened,\n onExited: this.handleMenuExited,\n children: this.renderMenuElement()\n })]\n });\n }\n}\n_defineProperty(AutoCompleteInput, \"propTypes\", {\n options: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired\n })).isRequired,\n popperOptions: PropTypes.shape({}),\n onChange: PropTypes.func,\n inputPlaceholder: PropTypes.string,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n defaultTitle: PropTypes.string,\n spellCheck: PropTypes.bool,\n onEnter: PropTypes.func,\n noMatchText: PropTypes.string,\n 'data-testid': PropTypes.string\n});\n_defineProperty(AutoCompleteInput, \"defaultProps\", {\n onChange() {\n // no-op\n },\n inputPlaceholder: '',\n disabled: false,\n className: '',\n defaultTitle: '',\n popperOptions: null,\n spellCheck: true,\n onEnter() {\n // no-op\n },\n noMatchText: 'No matching items found',\n 'data-testid': undefined\n});\n_defineProperty(AutoCompleteInput, \"MENU_NAVIGATION_DIRECTION\", MENU_NAVIGATION_DIRECTION);\nexport default AutoCompleteInput;\n//# sourceMappingURL=AutoCompleteInput.js.map","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport \"./AutoResizeTextarea.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Makes a textarea that auto resizes based on contents, its height grows with new lines.\n * If a delimeter is set, such as \" -\" or \" \", as used by jvm args or env vars\n * then the field will also \"explode\" the value by the delimiter over new lines\n * on focus, and implode on blur. By default, it doesn't word wrap.\n */\nfunction AutoResizeTextarea(_ref) {\n var {\n className = '',\n value: propsValue,\n onChange,\n spellCheck = false,\n placeholder = '',\n disabled = false,\n delimiter = '',\n id = '',\n 'data-testid': dataTestId\n } = _ref;\n var [value, setValue] = useState(propsValue);\n var [isPastedChange, setIsPastedChange] = useState(false);\n var element = useRef(null);\n useEffect(function syncStateWithProp() {\n // keep state value in sync with prop changes\n setValue(propsValue);\n }, [propsValue]);\n function explode(input) {\n // split by delimiter, commonly \" \" or \" -\"\n // strip empty strings (if delimiter is space, and there are multiple spaces in a row)\n // and join with new line and a trimmed delimeter (get rid of leading spaces)\n return input.trim().split(delimiter).filter(string => string) // remove empty strings\n .join(\"\\n\".concat(delimiter.trim()));\n }\n function implode(input) {\n return input.split('\\n').map(string => string.trim()).join(' ');\n }\n function reCalculateLayout() {\n if (!element.current) {\n return;\n }\n element.current.style.height = '0'; // shrink component to get scrollHeight\n var resizedHeight = element.current.scrollHeight + (element.current.offsetHeight - element.current.clientHeight);\n // accounts for border, padding is captured by scroll height\n if (resizedHeight > 0) element.current.style.height = \"\".concat(resizedHeight, \"px\");\n }\n function handleChange(event) {\n var newValue = event.target.value;\n if (isPastedChange) {\n if (delimiter) newValue = explode(newValue);\n setIsPastedChange(false);\n }\n setValue(newValue);\n onChange(newValue);\n }\n function handleFocus() {\n if (!element.current) {\n return;\n }\n if (delimiter) {\n setValue(explode(value));\n reCalculateLayout();\n }\n element.current.scrollLeft = 0;\n // scroll left as it can be disorienting if you click on a long line\n }\n\n // make it explode when dragging the resize handle\n // by making it trigger focus (which normally doesn't\n // trigger when just resizing).\n function handleMouseDown() {\n if (!element.current) return;\n if (document.activeElement === element.current) return;\n element.current.focus();\n }\n function handleBlur() {\n if (delimiter) {\n setValue(implode(value));\n onChange(implode(value));\n }\n }\n function handlePaste() {\n setIsPastedChange(true);\n }\n useEffect(function reCalculate() {\n reCalculateLayout();\n }, [value]);\n return /*#__PURE__*/_jsx(\"textarea\", {\n ref: element,\n id: id,\n className: classNames(className, 'auto-resize-textarea form-control'),\n placeholder: placeholder,\n value: value,\n rows: 1,\n onChange: handleChange,\n onFocus: handleFocus,\n onMouseDown: handleMouseDown,\n onBlur: handleBlur,\n onPaste: handlePaste,\n spellCheck: spellCheck,\n disabled: disabled,\n \"data-testid\": dataTestId\n });\n}\nAutoResizeTextarea.propTypes = {\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n className: PropTypes.string,\n placeholder: PropTypes.string,\n spellCheck: PropTypes.bool,\n disabled: PropTypes.bool,\n delimiter: PropTypes.string,\n id: PropTypes.string,\n 'data-testid': PropTypes.string\n};\nAutoResizeTextarea.defaultProps = {\n className: '',\n id: '',\n placeholder: '',\n disabled: false,\n spellCheck: false,\n delimiter: '',\n 'data-testid': undefined\n};\nexport default AutoResizeTextarea;\n//# sourceMappingURL=AutoResizeTextarea.js.map","import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport Log from '@deephaven/log';\nimport { TimeUtils } from '@deephaven/utils';\nimport MaskedInput from \"./MaskedInput.js\";\nimport { DEFAULT_GET_PREFERRED_REPLACEMENT_STRING } from \"./MaskedInputUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar log = Log.module('TimeInput');\nvar TIME_PATTERN = '([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]';\nvar EXAMPLES = ['00:00:00', '12:34:56', '23:59:59'];\nfunction fixIncompleteValue(value) {\n // If value is not a complete HH:mm:ss time, fill missing parts with 0\n if (value != null) {\n return \"\".concat(value.substring(0, 8).replace(/\\u2007/g, '0')).concat(\"00:00:00\".substring(value.length));\n }\n return value;\n}\n\n// Forward ref causes a false positive for display-name in eslint:\n// https://github.com/yannickcr/eslint-plugin-react/issues/2269\n// eslint-disable-next-line react/display-name\nvar TimeInput = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n allowValueWrapping = true,\n className = '',\n onChange = () => false,\n value: propsValue = 0,\n onFocus = () => false,\n onBlur = () => false,\n onSelect = () => false,\n 'data-testid': dataTestId\n } = props;\n var [value, setValue] = useState(TimeUtils.formatTime(propsValue));\n var parsedValueRef = useRef(propsValue);\n var [selection, _setSelection] = useState();\n var inputRef = useRef(null);\n useImperativeHandle(ref, () => ({\n focus: () => {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n },\n setSelection: newSelection => {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();\n _setSelection(newSelection);\n }\n }), []);\n useEffect(function setFormattedTime() {\n // Ignore value prop update if it matches the displayed value\n // to preserve the displayed value while typing\n if (parsedValueRef.current !== propsValue) {\n setValue(TimeUtils.formatTime(propsValue));\n parsedValueRef.current = propsValue;\n }\n }, [parsedValueRef, propsValue]);\n function getNextSegmentValue(range, delta, segmentValue) {\n // Delta is backward because negative Y is up\n var maxValue = range.selectionStart === 0 ? 24 : 60;\n var newSegmentValue = parseInt(segmentValue, 10) - delta;\n if (Number.isNaN(newSegmentValue)) {\n newSegmentValue = 0;\n } else if (allowValueWrapping) {\n // Add max value and re-mod so we don't get negative values after mod\n newSegmentValue = (newSegmentValue % maxValue + maxValue) % maxValue;\n } else {\n newSegmentValue = Math.min(Math.max(0, newSegmentValue), maxValue - 1);\n }\n return \"\".concat(newSegmentValue).padStart(2, '0');\n }\n function getPreferredReplacementString(replaceValue, replaceIndex, newChar, selectionStart, selectionEnd) {\n if (selectionStart === 0 && selectionEnd === 2 && replaceIndex === 1 && parseInt(newChar, 10) > 1) {\n // DH-10082 Special case for when typing `3` when it's already 12\n return \"0\".concat(newChar).concat(replaceValue.substring(2));\n }\n return DEFAULT_GET_PREFERRED_REPLACEMENT_STRING(replaceValue, replaceIndex, newChar);\n }\n var handleChange = useCallback(newValue => {\n log.debug('handleChange', newValue);\n setValue(newValue);\n parsedValueRef.current = TimeUtils.parseTime(fixIncompleteValue(newValue));\n onChange(parsedValueRef.current);\n }, [onChange]);\n var handleBlur = useCallback(() => {\n var fixedValue = fixIncompleteValue(value);\n // Update the value displayed in the input\n // onChange with the fixed value already triggered in handleChange\n if (fixedValue !== value) {\n setValue(fixedValue);\n }\n onBlur();\n }, [value, onBlur]);\n var handleSelect = useCallback(newSelection => {\n _setSelection(newSelection);\n onSelect(newSelection);\n }, [onSelect]);\n return /*#__PURE__*/_jsx(MaskedInput, {\n ref: inputRef,\n className: className,\n example: EXAMPLES,\n getNextSegmentValue: getNextSegmentValue,\n getPreferredReplacementString: getPreferredReplacementString,\n onChange: handleChange,\n onSelect: handleSelect,\n pattern: TIME_PATTERN,\n selection: selection,\n value: value,\n onFocus: onFocus,\n onBlur: handleBlur,\n \"data-testid\": dataTestId\n });\n});\nTimeInput.defaultProps = {\n allowValueWrapping: true,\n className: '',\n onChange: () => false,\n onSelect: () => false,\n value: 0,\n onFocus: () => false,\n onBlur: () => false,\n 'data-testid': undefined\n};\nexport default TimeInput;\n//# sourceMappingURL=TimeInput.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsCheck } from '@deephaven/icons';\nimport { TimeUtils } from '@deephaven/utils';\nimport classNames from 'classnames';\nimport TimeInput from \"./TimeInput.js\";\nimport DropdownMenu from \"./menu-actions/DropdownMenu.js\";\nimport \"./CustomTimeSelect.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar CUSTOM_OPTION = -1;\nvar MENU_NAVIGATION_DIRECTION;\n(function (MENU_NAVIGATION_DIRECTION) {\n MENU_NAVIGATION_DIRECTION[\"UP\"] = \"UP\";\n MENU_NAVIGATION_DIRECTION[\"DOWN\"] = \"DOWN\";\n})(MENU_NAVIGATION_DIRECTION || (MENU_NAVIGATION_DIRECTION = {}));\nclass CustomTimeSelect extends Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"csContainer\", void 0);\n _defineProperty(this, \"menuContainer\", void 0);\n _defineProperty(this, \"button\", void 0);\n _defineProperty(this, \"input\", void 0);\n var {\n value,\n valueToTime\n } = props;\n this.toggleMenu = this.toggleMenu.bind(this);\n this.handleMenuKeyDown = this.handleMenuKeyDown.bind(this);\n this.closeMenu = this.closeMenu.bind(this);\n this.handleOptionClick = this.handleOptionClick.bind(this);\n this.handleOptionFocus = this.handleOptionFocus.bind(this);\n this.handleMenuOpened = this.handleMenuOpened.bind(this);\n this.handleMenuExited = this.handleMenuExited.bind(this);\n this.handleCustomInput = this.handleCustomInput.bind(this);\n this.csContainer = /*#__PURE__*/React.createRef();\n this.menuContainer = /*#__PURE__*/React.createRef();\n this.button = /*#__PURE__*/React.createRef();\n this.input = /*#__PURE__*/React.createRef();\n this.state = {\n keyboardOptionIndex: 0,\n menuIsOpen: false,\n inputWidth: 100,\n customTime: valueToTime(value),\n inputFocused: false\n };\n }\n getSelectedText() {\n var {\n options,\n value,\n placeholder\n } = this.props;\n var {\n customTime\n } = this.state;\n if (value === null) {\n return placeholder;\n }\n for (var i = 0; i < options.length; i += 1) {\n var option = options[i];\n if (option.value === value) {\n return option.title;\n }\n }\n return TimeUtils.formatTime(customTime);\n }\n setInputWidth() {\n if (this.csContainer.current) {\n this.setState({\n inputWidth: this.csContainer.current.getBoundingClientRect().width\n });\n }\n }\n focus() {\n var _this$button$current;\n (_this$button$current = this.button.current) === null || _this$button$current === void 0 ? void 0 : _this$button$current.focus();\n }\n updateInputValue(value) {\n var {\n onChange\n } = this.props;\n onChange(value);\n }\n handleResize() {\n this.setInputWidth();\n }\n handleMenuKeyDown(event) {\n var _this$button$current2;\n var {\n keyboardOptionIndex,\n inputFocused\n } = this.state;\n var {\n options\n } = this.props;\n switch (event.key) {\n case 'Enter':\n case ' ':\n // Space Bar\n if (inputFocused) {\n this.updateFromCustom();\n } else {\n this.updateInputValue(options[keyboardOptionIndex].value);\n }\n this.closeMenu();\n (_this$button$current2 = this.button.current) === null || _this$button$current2 === void 0 ? void 0 : _this$button$current2.focus();\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Tab':\n if (event.shiftKey) {\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.UP);\n } else {\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.DOWN);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.UP);\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowDown':\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.DOWN);\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Escape':\n this.closeMenu();\n break;\n default:\n break;\n }\n }\n handleMenuNavigation(direction) {\n var {\n keyboardOptionIndex,\n inputFocused\n } = this.state;\n var {\n options\n } = this.props;\n var menuOptionsLength = options.length;\n var newKeyboardOptionIndex = keyboardOptionIndex;\n switch (direction) {\n case CustomTimeSelect.MENU_NAVIGATION_DIRECTION.UP:\n if (!inputFocused && keyboardOptionIndex === 0) {\n this.focusInput();\n break;\n } else if (inputFocused) {\n this.focusOption(keyboardOptionIndex);\n }\n if (keyboardOptionIndex > 0 && !inputFocused) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex - 1) % menuOptionsLength;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n } else if (keyboardOptionIndex === 0) {\n newKeyboardOptionIndex = menuOptionsLength - 1;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n break;\n case CustomTimeSelect.MENU_NAVIGATION_DIRECTION.DOWN:\n if (!inputFocused && keyboardOptionIndex === menuOptionsLength - 1) {\n this.focusInput();\n break;\n } else if (inputFocused) {\n this.focusOption(keyboardOptionIndex);\n }\n if (keyboardOptionIndex < menuOptionsLength && !(inputFocused && keyboardOptionIndex === 0)) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex + 1) % menuOptionsLength;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n break;\n default:\n break;\n }\n }\n handleOptionClick(event) {\n var optionIndex = Number(event.currentTarget.value);\n var {\n options,\n timeToValue\n } = this.props;\n var {\n customTime\n } = this.state;\n if (optionIndex === CUSTOM_OPTION) {\n var update = timeToValue(customTime);\n this.updateAndClose(update);\n } else {\n this.updateAndClose(options[optionIndex].value);\n }\n }\n updateAndClose(update) {\n var _this$button$current3;\n this.updateInputValue(update);\n this.closeMenu();\n (_this$button$current3 = this.button.current) === null || _this$button$current3 === void 0 ? void 0 : _this$button$current3.focus();\n }\n handleOptionFocus(event) {\n this.setState({\n keyboardOptionIndex: Number(event.target.value)\n });\n }\n handleMenuOpened() {\n var _this$menuContainer$c;\n var {\n options,\n value\n } = this.props;\n var {\n keyboardOptionIndex\n } = this.state;\n this.scrollOptionIntoView(keyboardOptionIndex);\n var activeOption = (_this$menuContainer$c = this.menuContainer.current) === null || _this$menuContainer$c === void 0 ? void 0 : _this$menuContainer$c.querySelector('.cs-option-btn.keyboard-active');\n if (activeOption instanceof HTMLElement) {\n activeOption.focus();\n }\n if (value === null) {\n return;\n }\n var valueIndex = options.map(option => option.value).indexOf(value);\n if (valueIndex < 0) {\n // The custom option should be selected\n this.focusInput();\n }\n }\n focusInput() {\n var _this$input$current;\n (_this$input$current = this.input.current) === null || _this$input$current === void 0 ? void 0 : _this$input$current.focus();\n }\n focusOption(index) {\n var _this$menuContainer$c2;\n var options = (_this$menuContainer$c2 = this.menuContainer.current) === null || _this$menuContainer$c2 === void 0 ? void 0 : _this$menuContainer$c2.querySelector('.cs-options');\n if (options && options.children != null) {\n var option = options.children.item(index);\n if (option instanceof HTMLElement) {\n option.focus();\n }\n }\n }\n handleMenuExited() {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.setState({\n menuIsOpen: false,\n keyboardOptionIndex: 0\n });\n }\n }\n handleCustomInput(value) {\n var {\n timeToValue\n } = this.props;\n var update = timeToValue(value);\n this.updateInputValue(update);\n this.setState({\n customTime: value\n });\n }\n updateFromCustom() {\n var {\n timeToValue\n } = this.props;\n var {\n customTime\n } = this.state;\n var update = timeToValue(customTime);\n this.updateInputValue(update);\n }\n toggleMenu(event) {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.closeMenu();\n } else {\n this.openMenu();\n }\n event.stopPropagation();\n }\n openMenu() {\n this.updateKeyboardIndex();\n this.setInputWidth();\n this.setState({\n menuIsOpen: true\n });\n }\n closeMenu() {\n var focusButton = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.setState({\n menuIsOpen: false\n });\n if (focusButton) {\n var _this$button$current4;\n (_this$button$current4 = this.button.current) === null || _this$button$current4 === void 0 ? void 0 : _this$button$current4.focus();\n }\n }\n updateKeyboardIndex() {\n var {\n options,\n value\n } = this.props;\n if (value === null) {\n return;\n }\n var valueIndex = options.map(option => option.value).indexOf(value);\n if (valueIndex > 0) {\n this.setState({\n keyboardOptionIndex: valueIndex\n });\n }\n }\n scrollOptionIntoView(index) {\n var _this$menuContainer$c3;\n var options = (_this$menuContainer$c3 = this.menuContainer.current) === null || _this$menuContainer$c3 === void 0 ? void 0 : _this$menuContainer$c3.querySelector('.cs-options');\n if (options && options.children != null) {\n var activeOption = options.children.item(index);\n if (activeOption instanceof HTMLElement && activeOption.offsetTop > CustomTimeSelect.DROP_DOWN_MENU_HEIGHT) {\n options.scrollTop = activeOption.offsetTop - CustomTimeSelect.DROP_DOWN_MENU_HEIGHT;\n } else if (activeOption instanceof HTMLElement && activeOption.offsetTop < 0 || index === 0) {\n options.scrollTop = 0;\n }\n }\n }\n renderMenuElement() {\n var {\n inputWidth\n } = this.state;\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"cs-menu-container\",\n ref: this.menuContainer,\n role: \"presentation\",\n onKeyDown: this.handleMenuKeyDown,\n onClick: event => {\n event.stopPropagation();\n },\n style: {\n width: inputWidth\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"cs-options-container\",\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"cs-options\",\n children: this.renderOptions()\n })\n })\n });\n }\n renderOptions() {\n var {\n options,\n value,\n icon,\n customText\n } = this.props;\n var {\n keyboardOptionIndex,\n customTime,\n inputFocused\n } = this.state;\n var matchFound = false;\n var optionArray = [];\n for (var index = 0; index < options.length; index += 1) {\n var option = options[index];\n var key = \"option-\".concat(index, \"-\").concat(option.value);\n matchFound = matchFound || option.value === value;\n optionArray.push( /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n value: index,\n className: classNames('cs-option-btn', {\n 'keyboard-active': keyboardOptionIndex === index && !inputFocused\n }),\n onClick: this.handleOptionClick,\n onFocus: this.handleOptionFocus,\n children: [option.value === value && /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon,\n className: \"mr-2\"\n }), option.value !== value && /*#__PURE__*/_jsx(\"span\", {\n className: \"mr-4\"\n }), option.title]\n }, key));\n }\n optionArray.push( /*#__PURE__*/_jsx(\"hr\", {\n className: \"cs-divider\"\n }, \"option-divider\"));\n optionArray.push( /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n value: CUSTOM_OPTION,\n className: classNames('cs-option-btn', {\n 'keyboard-active': inputFocused\n }),\n onClick: this.handleOptionClick,\n onFocus: this.handleOptionFocus,\n children: [!matchFound && value !== null ? /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon,\n className: \"mr-2\"\n }) : /*#__PURE__*/_jsx(\"span\", {\n className: \"mr-4\"\n }), customText]\n }, \"option-custom-label\"));\n optionArray.push( /*#__PURE__*/_jsxs(\"div\", {\n className: \"cs-custom-container\",\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: \"mr-2\"\n }), /*#__PURE__*/_jsx(TimeInput, {\n ref: this.input,\n onChange: this.handleCustomInput,\n value: customTime,\n onFocus: () => this.setState({\n inputFocused: true\n }),\n onBlur: () => this.setState({\n inputFocused: false\n })\n }, \"option-input\"), /*#__PURE__*/_jsx(\"span\", {\n className: \"ml-2\"\n })]\n }, \"cs-custom-container\"));\n optionArray.push( /*#__PURE__*/_jsx(\"hr\", {\n className: \"mb-2\"\n }, \"option-end\"));\n return optionArray;\n }\n render() {\n var {\n disabled,\n invalid,\n value,\n 'data-testid': dataTestId\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n var {\n popperOptions\n } = this.props;\n popperOptions = _objectSpread({\n placement: 'bottom-end',\n modifiers: {\n preventOverflow: {\n enabled: false\n }\n }\n }, popperOptions);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"input-group cs-container context-menu\",\n ref: this.csContainer,\n \"data-testid\": dataTestId,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames('input-group-append cs-dropdown', {\n 'cs-dropdown-invalid': invalid\n }),\n children: /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n className: classNames('btn cs-btn form-control', {\n 'cs-btn-invalid': invalid\n }),\n ref: this.button,\n onClick: this.toggleMenu,\n disabled: disabled,\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: classNames({\n 'text-muted': value === null\n }),\n children: this.getSelectedText()\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"cs-caret\"\n }), /*#__PURE__*/_jsx(DropdownMenu, {\n isShown: menuIsOpen,\n actions: {\n menuElement: this.renderMenuElement()\n },\n popperOptions: popperOptions,\n popperClassName: \"CustomTimeSelect\",\n onMenuOpened: this.handleMenuOpened,\n onMenuClosed: this.handleMenuExited,\n menuStyle: {\n maxWidth: '100rem'\n }\n })]\n })\n })\n });\n }\n}\n_defineProperty(CustomTimeSelect, \"MENU_NAVIGATION_DIRECTION\", MENU_NAVIGATION_DIRECTION);\n_defineProperty(CustomTimeSelect, \"DROP_DOWN_MENU_HEIGHT\", 125);\n_defineProperty(CustomTimeSelect, \"defaultProps\", {\n onChange() {\n // no-op\n },\n value: null,\n disabled: false,\n popperOptions: {},\n icon: vsCheck,\n customText: 'Custom',\n placeholder: 'Select a time',\n valueToTime: value => value === null ? 0 : Math.round(value / 1000),\n timeToValue: time => time * 1000,\n invalid: false,\n 'data-testid': undefined\n});\nexport default CustomTimeSelect;\n//# sourceMappingURL=CustomTimeSelect.js.map","import React, { useCallback, useState } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport MaskedInput from \"./MaskedInput.js\";\nimport { getNextSegmentValue } from \"./DateInputUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar log = Log.module('DateInput');\nvar DATE_PATTERN = '[12][0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])';\nvar EXAMPLES = ['2000-01-01', '2022-12-31'];\nvar DATE_FORMAT = 'YYYY-MM-DD';\nvar DateInput = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n className = '',\n onChange = () => undefined,\n defaultValue = '',\n onFocus = () => undefined,\n onBlur = () => undefined,\n 'data-testid': dataTestId\n } = props;\n var [value, setValue] = useState(defaultValue);\n var [selection, setSelection] = useState();\n var handleChange = useCallback(newValue => {\n log.debug('handleChange', newValue);\n setValue(newValue);\n onChange(newValue);\n }, [onChange]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"d-flex flex-row align-items-center\",\n children: /*#__PURE__*/_jsx(MaskedInput, {\n ref: ref,\n className: classNames(className),\n example: EXAMPLES,\n getNextSegmentValue: getNextSegmentValue,\n onChange: handleChange,\n onSelect: setSelection,\n pattern: DATE_PATTERN,\n placeholder: DATE_FORMAT,\n selection: selection,\n value: value,\n onFocus: onFocus,\n onBlur: onBlur,\n \"data-testid\": dataTestId\n })\n });\n});\nDateInput.displayName = 'DateInput';\nexport default DateInput;\n//# sourceMappingURL=DateInput.js.map","import React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsDiffAdded, vsDiffRemoved, vsWarning } from '@deephaven/icons';\nimport { useDebouncedCallback, useResizeObserver } from '@deephaven/react-hooks';\nimport CopyButton from \"./CopyButton.js\";\nimport Button from \"./Button.js\";\nimport \"./ErrorView.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Component that displays an error message in a textarea so user can scroll and a copy button.\n */\nfunction ErrorView(_ref) {\n var {\n message,\n isExpanded: isExpandedProp = false,\n type = 'Error'\n } = _ref;\n var [isExpandable, setIsExpandable] = useState(false);\n var [isExpanded, setIsExpanded] = useState(false);\n var viewRef = useRef(null);\n var textRef = useRef(null);\n var handleResize = useCallback(() => {\n if (isExpanded || isExpandedProp || textRef.current == null) {\n return;\n }\n var newIsExpandable = textRef.current.scrollHeight > textRef.current.clientHeight;\n setIsExpandable(newIsExpandable);\n }, [isExpanded, isExpandedProp]);\n var debouncedHandleResize = useDebouncedCallback(handleResize, 100);\n useResizeObserver(viewRef.current, debouncedHandleResize);\n useLayoutEffect(debouncedHandleResize, [debouncedHandleResize]);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: classNames('error-view', {\n expanded: isExpanded || isExpandedProp\n }),\n ref: viewRef,\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: \"error-view-header\",\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: \"error-view-header-text\",\n children: [/*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: vsWarning\n }), /*#__PURE__*/_jsx(\"span\", {\n children: type\n })]\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"error-view-buttons\",\n children: [/*#__PURE__*/_jsx(CopyButton, {\n kind: \"danger\",\n className: \"error-view-copy-button\",\n tooltip: \"Copy exception contents\",\n copy: \"\".concat(type, \": \").concat(message).trim()\n }), (isExpandable || isExpanded) && !isExpandedProp && /*#__PURE__*/_jsx(Button, {\n kind: \"danger\",\n className: \"error-view-expand-button\",\n onClick: () => {\n setIsExpanded(!isExpanded);\n },\n icon: isExpanded ? vsDiffRemoved : vsDiffAdded,\n children: isExpanded ? 'Show Less' : 'Show More'\n })]\n })]\n }), /*#__PURE__*/_jsx(\"pre\", {\n className: \"error-view-text\",\n ref: textRef,\n children: message\n })]\n });\n}\nexport default ErrorView;\n//# sourceMappingURL=ErrorView.js.map","function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport classNames from 'classnames';\nimport Checkbox from \"./Checkbox.js\";\nimport Popper from \"./popper/Popper.js\";\nimport \"./HierarchicalCheckboxMenu.css\";\nimport Button from \"./Button.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * A pull down menu that displays a hierarchy of checkboxes.\n *\n * Currently supports only two levels of check boxes. The input should be a Map\n * where the keys are the parent names. The values can a boolean if the parent\n * has no children or another Map where keys are child names and values are booleans.\n *\n * Here is an example:\n * const INITIAL_TYPE_MAP = new Map([\n * ['Queries', new Map([['Live', true], ['Batch', true]])],\n * [\n * 'DBA Queries',\n * new Map([\n * ['Data Merge', true],\n * ['Data Validation', true],\n * ['Imports', true],\n * ['Data Services', true],\n * ]),\n * ],\n * ['Helper Queries', true],\n * ]);\n *\n * When a checkbox is changed, this component will make a deep copy of the Map\n * with the appropriate booleans changed. It will then call onUpdateValueMap\n * with the new Map.\n */\nclass HierarchicalCheckboxMenu extends Component {\n static isParentSelected(parent, valueMap) {\n var children = valueMap.get(parent);\n if (children === undefined) {\n return false;\n }\n if (typeof children === 'boolean') {\n // This parent has no children\n return children;\n }\n var includesTrue = Array.from(children.values()).includes(true);\n var includesFalse = Array.from(children.values()).includes(false);\n if (includesTrue && includesFalse) {\n // Indeterminate\n return null;\n }\n return includesTrue;\n }\n constructor(props) {\n super(props);\n this.toggleMenu = this.toggleMenu.bind(this);\n this.toggleValueFor = this.toggleValueFor.bind(this);\n this.selectAll = this.selectAll.bind(this);\n this.clear = this.clear.bind(this);\n this.state = {\n menuIsOpen: false\n };\n }\n toggleMenu(event) {\n event.stopPropagation();\n event.preventDefault();\n this.setState(state => {\n var {\n menuIsOpen\n } = state;\n return {\n menuIsOpen: !menuIsOpen\n };\n });\n }\n toggleValueFor(parent, child) {\n var {\n valueMap,\n onUpdateValueMap\n } = this.props;\n\n // Make a deep copy of the Map and toggle the boolean for parent / child\n var map = new Map(valueMap);\n var children = map.get(parent);\n if (children instanceof Map) {\n var newChildren = new Map(children);\n if (child != null) {\n newChildren.set(child, children.get(child) !== true);\n } else {\n var parentSelected = HierarchicalCheckboxMenu.isParentSelected(parent, map);\n var newChildValue = parentSelected == null || !parentSelected;\n children.forEach((_, key) => newChildren.set(key, newChildValue));\n }\n map.set(parent, newChildren);\n } else {\n map.set(parent, children == null || !children);\n }\n\n // The parent was clicked so all children must be toggled\n var currentChildren = map.get(parent);\n if (child === undefined && currentChildren !== undefined && typeof currentChildren !== 'boolean') {\n var _parentSelected = HierarchicalCheckboxMenu.isParentSelected(parent, valueMap);\n if (_parentSelected != null && _parentSelected) {\n currentChildren.forEach((_, key) => currentChildren.set(key, false));\n } else {\n // for parent selection of false or null (indeterminate), select everything\n currentChildren.forEach((_, key) => currentChildren.set(key, true));\n }\n }\n onUpdateValueMap(map);\n }\n setAllValues(value) {\n var {\n valueMap,\n onUpdateValueMap\n } = this.props;\n\n // Make a deep copy of the Map and set everything\n var copy = new Map();\n valueMap.forEach((child, parent) => {\n if (typeof child === 'boolean') {\n copy.set(parent, value);\n } else {\n var children = new Map();\n child.forEach((_, key) => children.set(key, value));\n copy.set(parent, children);\n }\n });\n onUpdateValueMap(copy);\n }\n selectAll() {\n this.setAllValues(true);\n }\n clear() {\n this.setAllValues(false);\n }\n renderMenuElement() {\n var {\n valueMap,\n 'data-testid': dataTestId\n } = this.props;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"hcm-menu-container\",\n children: [Array.from(valueMap.entries()).map(_ref => {\n var [parent, children] = _ref;\n return /*#__PURE__*/_jsxs(\"div\", {\n children: [/*#__PURE__*/_jsx(Checkbox, {\n className: \"hcm-parent\",\n checked: HierarchicalCheckboxMenu.isParentSelected(parent, valueMap),\n onChange: () => this.toggleValueFor(parent),\n children: parent\n }), children !== undefined && typeof children !== 'boolean' && Array.from(children.entries()).map(_ref2 => {\n var [child, value] = _ref2;\n return /*#__PURE__*/_jsx(Checkbox, {\n className: \"hcm-child\",\n checked: value,\n onChange: () => this.toggleValueFor(parent, child),\n children: child\n }, child);\n })]\n }, parent);\n }), /*#__PURE__*/_jsx(Button, {\n kind: \"ghost\",\n onClick: this.selectAll,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-btn-select-all\") : undefined,\n children: \"Select All\"\n }), /*#__PURE__*/_jsx(Button, {\n kind: \"ghost\",\n onClick: this.clear,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-btn-clear\") : undefined,\n children: \"Clear\"\n })]\n });\n }\n render() {\n var {\n menuText,\n className,\n icon,\n id,\n 'data-testid': dataTestId\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n return /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n className: classNames('btn hcm-btn', className),\n onClick: this.toggleMenu,\n id: id,\n \"data-testid\": dataTestId,\n children: [/*#__PURE__*/_jsxs(\"span\", {\n children: [icon && /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon,\n className: \"hcm-icon mr-1\"\n }), menuText]\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"cs-caret\"\n }), /*#__PURE__*/_jsx(Popper, {\n options: {\n placement: 'bottom'\n },\n isShown: menuIsOpen,\n onExited: () => {\n this.setState({\n menuIsOpen: false\n });\n },\n closeOnBlur: true,\n interactive: true,\n children: this.renderMenuElement()\n })]\n });\n }\n}\n_defineProperty(HierarchicalCheckboxMenu, \"defaultProps\", {\n className: '',\n icon: null,\n id: '',\n 'data-testid': undefined\n});\nexport default HierarchicalCheckboxMenu;\n//# sourceMappingURL=HierarchicalCheckboxMenu.js.map","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable react/display-name */\n\nimport React, { useEffect, useState, useRef, useMemo } from 'react';\nimport debounce from 'lodash.debounce';\nimport { assertNotNull } from '@deephaven/utils';\nimport \"./RandomAreaPlotAnimation.css\";\nimport { resolveCssVariablesInRecord, useTheme } from \"./theme/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar VOLATILITY = 0.025; // how spikey the data gets\nvar LOW = 0.9;\nvar HIGH = 0.1;\nvar START_Y = 0.618;\nvar GRID_SIZE = 80;\nvar PATTERN = {\n SIZE: 8,\n DOT_SIZE: 2\n};\nvar PX_PER_SECOND = 18;\nvar RESIZE_DEBOUNCE = 250;\nvar INTERACTION_TIMEOUT = 60 * 1000;\nvar THEME_COLOR_VARIABLES = {\n background: 'var(--dh-color-random-area-plot-animation-bg)',\n foregroundFill: 'var(--dh-color-random-area-plot-animation-fg-fill)',\n foregroundStroke: 'var(--dh-color-random-area-plot-animation-fg-stroke)',\n gridColor: 'var(--dh-color-random-area-plot-animation-grid)'\n};\n\n/**\n * Resolve theme colors needed for our animation.\n */\nfunction getRandomAreaPlotAnimationThemeColors() {\n return resolveCssVariablesInRecord(THEME_COLOR_VARIABLES);\n}\n\n// Draw a background canvas, paint it with a fun chart looking animation\nvar RandomAreaPlotAnimation = /*#__PURE__*/React.memo(() => {\n var {\n activeThemes\n } = useTheme();\n var themeColors = useMemo(getRandomAreaPlotAnimationThemeColors, [activeThemes]);\n var canvas = useRef(null);\n var container = useRef(null);\n var [shade, setShade] = useState(false);\n var scale = window.devicePixelRatio;\n var ctx;\n var pattern;\n var width;\n var height;\n var rAF;\n var lastTimestamp = null;\n var data = [];\n function setCanvasSize() {\n var _ctx;\n // Set canvas size to fill screen\n if (container.current != null) {\n width = container.current.offsetWidth;\n height = container.current.offsetHeight;\n }\n if (canvas.current != null) {\n canvas.current.style.width = \"\".concat(width, \"px\");\n canvas.current.style.height = \"\".concat(height, \"px\");\n canvas.current.width = width * scale;\n canvas.current.height = height * scale;\n }\n (_ctx = ctx) === null || _ctx === void 0 ? void 0 : _ctx.scale(scale, scale);\n }\n\n // Returns the background fill create offscreen as pattern\n function createPatternFill() {\n var {\n foregroundFill,\n foregroundStroke\n } = themeColors;\n\n // create the off-screen canvas\n var canvasPattern = document.createElement('canvas');\n canvasPattern.width = PATTERN.SIZE;\n canvasPattern.height = PATTERN.SIZE;\n var contextPattern = canvasPattern.getContext('2d');\n\n // draw pattern to off-screen context\n if (contextPattern != null) {\n contextPattern.fillStyle = foregroundStroke;\n contextPattern.fillRect(0, 0, PATTERN.DOT_SIZE, PATTERN.DOT_SIZE);\n\n // add an overlay fill\n contextPattern.fillStyle = foregroundFill;\n contextPattern.fillRect(0, 0, PATTERN.SIZE, PATTERN.SIZE);\n }\n return contextPattern === null || contextPattern === void 0 ? void 0 : contextPattern.createPattern(canvasPattern, 'repeat');\n }\n\n /**\n * Generates a step in a random walk between LOW - HIGH given a previous value\n * data is always in 0-1 data space so its scaleable\n * data space is converted to screen space inside draw functions\n * @param prev previous random walk step\n * @return new random walk step\n */\n function randomWalk(prev) {\n var rand = Math.random() - 0.5; // give it directionality\n var change = VOLATILITY * rand; // scale by volatity constant\n\n // ensure directional bounce off approaching edges\n if (prev < HIGH) {\n change = Math.abs(change);\n } else if (prev > LOW) {\n change = -Math.abs(change);\n }\n return prev + change;\n }\n function initData() {\n var startingData = [];\n var y = START_Y; // always start towards the bottom of the screen\n for (var x = 0; x < width + PX_PER_SECOND; x += 1) {\n y = randomWalk(y);\n startingData.push(y);\n }\n return startingData;\n }\n function setDataSize() {\n while (data.length >= width + PX_PER_SECOND) {\n data.pop();\n }\n while (data.length < width + PX_PER_SECOND) {\n data.push(randomWalk(data[data.length - 1]));\n }\n }\n function drawAreaLine(path, context) {\n context.beginPath();\n // start offscreen\n context.moveTo(-1, height + 1);\n context.lineTo(-1, height * path[0]);\n\n // draw the line\n for (var i = 0; i < path.length; i += 1) {\n context.lineTo(i, height * path[i]);\n }\n\n // close offscreen\n context.lineTo(width + PX_PER_SECOND, height * path[path.length - 1]);\n context.lineTo(width + PX_PER_SECOND, height + 1);\n context.closePath();\n }\n function drawGridLines(context) {\n context.beginPath();\n // draw verticals\n for (var x = 1; x < width; x += GRID_SIZE) {\n context.moveTo(x, 0);\n context.lineTo(x, height);\n }\n // draw horizontals\n for (var y = 1; y < height; y += GRID_SIZE) {\n context.moveTo(0, y);\n context.lineTo(width, y);\n }\n }\n\n /**\n * Main draw loop for where the animation happens\n * all the styling happens within drawCanvas from paths generated by other functions\n * @param timestamp passed in callback from requestAnimationFrame\n */\n function drawCanvas(timestamp) {\n var _lastTimestamp, _lastTimestamp2, _lastTimestamp3;\n lastTimestamp = (_lastTimestamp = lastTimestamp) !== null && _lastTimestamp !== void 0 ? _lastTimestamp : timestamp;\n var {\n background,\n foregroundStroke,\n gridColor\n } = themeColors;\n assertNotNull(ctx);\n // clear the canvas\n ctx.fillStyle = background;\n ctx.fillRect(0, 0, width, height);\n drawGridLines(ctx);\n ctx.lineWidth = 1;\n ctx.strokeStyle = gridColor;\n ctx.stroke();\n\n // for speeds less then 60 px per second, subpixel motion is required to look smooth\n var subPixelMotion = (((_lastTimestamp2 = lastTimestamp) !== null && _lastTimestamp2 !== void 0 ? _lastTimestamp2 : 0) - (timestamp !== null && timestamp !== void 0 ? timestamp : 0)) / (1000 / PX_PER_SECOND);\n ctx.translate(subPixelMotion, 0);\n drawAreaLine(data, ctx);\n ctx.lineWidth = 2;\n ctx.strokeStyle = foregroundStroke;\n ctx.stroke();\n ctx.translate(-subPixelMotion, 0); // we don't pattern to shift however\n if (pattern != null) {\n ctx.fillStyle = pattern;\n }\n ctx.fill();\n ctx.setTransform(scale, 0, 0, scale, 0, 0); // reset the translate matrix to normal\n\n // generate new data points\n if ((timestamp !== null && timestamp !== void 0 ? timestamp : 0) - ((_lastTimestamp3 = lastTimestamp) !== null && _lastTimestamp3 !== void 0 ? _lastTimestamp3 : 0) > 1000 / PX_PER_SECOND) {\n var _lastTimestamp4;\n // number of points to add since last update\n var numberOfPoints = Math.floor(((timestamp !== null && timestamp !== void 0 ? timestamp : 0) - ((_lastTimestamp4 = lastTimestamp) !== null && _lastTimestamp4 !== void 0 ? _lastTimestamp4 : 0)) / (1000 / PX_PER_SECOND));\n for (var i = 0; i < numberOfPoints; i += 1) {\n data.shift();\n data.push(randomWalk(data[data.length - 1]));\n }\n lastTimestamp = timestamp;\n }\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n rAF = requestAnimationFrame(drawCanvas);\n }\n\n // debounce the resize so its not overly aggresive\n var debouncedHandleResize = debounce(() => {\n rAF = requestAnimationFrame(timestamp => {\n setCanvasSize(); // setCanvas can cause lag if not debounced\n\n // fill or remove extra data points\n setDataSize();\n\n // opening devtools triggers a blur then resize,\n // need to reset shade as we are restarting animation\n setShade(false);\n drawCanvas(timestamp);\n });\n }, RESIZE_DEBOUNCE, {\n leading: true\n } // resize immediately, once.\n );\n\n function pauseAnimation() {\n // pause animation when browser window is blurred to conserve CPU usage\n setShade(true);\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n rAF = null;\n lastTimestamp = null;\n }\n\n // when timeout expires, pause animation\n var resetIdleTimeout = debounce(() => {\n pauseAnimation();\n }, INTERACTION_TIMEOUT);\n function startAnimation() {\n // can fire multiple times, check if rAF is null first\n // restart animation loop, and fade back in\n if (rAF == null) {\n setShade(false);\n setCanvasSize();\n setDataSize();\n rAF = requestAnimationFrame(drawCanvas);\n }\n resetIdleTimeout();\n }\n function handleActivity() {\n if (document.hasFocus()) {\n // only if document has focus (mousemove can fire on non-focused tabs)\n startAnimation();\n }\n }\n function handleResize() {\n // pause and debounce animation during resize for better resizing performance\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n resetIdleTimeout(); // treat resizing as a form of activity\n debouncedHandleResize();\n }\n\n // react mount/unmount hooks\n useEffect(() => {\n var _canvas$current;\n ctx = (_canvas$current = canvas.current) === null || _canvas$current === void 0 ? void 0 : _canvas$current.getContext('2d', {\n alpha: false\n });\n setCanvasSize();\n data = initData();\n pattern = createPatternFill();\n\n // start draw loop\n drawCanvas();\n resetIdleTimeout();\n window.addEventListener('resize', handleResize);\n window.addEventListener('focus', startAnimation);\n window.addEventListener('blur', pauseAnimation);\n\n // don't burn cpu if the user is \"idle\", start a timer that resets\n // on any user activity, and on timeout expiry pause the animation\n window.addEventListener('mousemove', handleActivity);\n window.addEventListener('keydown', handleActivity);\n return () => {\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n window.removeEventListener('resize', handleResize);\n window.removeEventListener('focus', startAnimation);\n window.removeEventListener('blur', pauseAnimation);\n window.removeEventListener('mousemove', handleActivity);\n window.removeEventListener('keydown', handleActivity);\n resetIdleTimeout.cancel();\n debouncedHandleResize.cancel();\n };\n }, [themeColors]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"random-area-plot-animation-container\",\n ref: container,\n children: /*#__PURE__*/_jsx(\"canvas\", {\n ref: canvas,\n className: shade ? 'shade' : ''\n })\n });\n});\nexport default RandomAreaPlotAnimation;\n//# sourceMappingURL=RandomAreaPlotAnimation.js.map","/* eslint-disable react/no-array-index-key */\n// array maps being used are static, this is fine.\n\nimport React, { useCallback, useMemo, useRef, useState, useEffect } from 'react';\nimport classNames from 'classnames';\nimport TimeInput from \"./TimeInput.js\";\nimport StyleExports from \"./TimeSlider.module.css\";\nimport \"./TimeSlider.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar HANDLE_SIZE = parseInt(StyleExports['handle-size'], 10);\nvar POPOVER_WIDTH = parseInt(StyleExports['popover-width'], 10);\nvar SECONDS_IN_DAY = 24 * 60 * 60 - 1; // Max is actually 23:59:59\nvar SNAP_NEAREST_MINUTES = 5 * 60; // rounds in 5 minute intervals\n\n/**\n * Creates a time slider for setting a start and end time, that can also run overnight\n * @param props takes times in seconds 0 - 86399 and a callback\n */\nfunction TimeSlider(_ref) {\n var {\n startTime: propStartTime,\n endTime: propEndTime,\n onChange,\n isStartModified = false,\n isEndModified = false,\n 'data-testid': dataTestId\n } = _ref;\n var [startTime, setStartTime] = useState(propStartTime);\n var [endTime, setEndTime] = useState(propEndTime);\n var track = useRef(null); // we need the track width while calulculating time from handle drag\n\n // updates state if props change\n useEffect(function setTimeOnPropTimeChange() {\n setStartTime(propStartTime);\n setEndTime(propEndTime);\n }, [propStartTime, propEndTime]);\n var updateTime = useCallback((newStartTime, newEndTime) => {\n var start = newStartTime;\n var end = newEndTime;\n if (start === end) {\n if (end < SECONDS_IN_DAY) {\n end += 1;\n } else {\n start -= 1;\n }\n }\n setStartTime(start);\n setEndTime(end);\n onChange({\n startTime: start,\n endTime: end\n });\n }, [setStartTime, setEndTime, onChange]);\n var handleStartTimeChange = useCallback(newStartTime => {\n updateTime(newStartTime, endTime);\n }, [updateTime, endTime]);\n var handleEndTimeChange = useCallback(newEndTime => {\n updateTime(startTime, newEndTime);\n }, [updateTime, startTime]);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"time-slider\",\n \"data-testid\": dataTestId,\n children: [/*#__PURE__*/_jsx(PopOvers, {\n startTime: startTime,\n endTime: endTime,\n onStartTimeChange: handleStartTimeChange,\n onEndTimeChange: handleEndTimeChange,\n isStartModified: isStartModified,\n isEndModified: isEndModified\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"track\",\n ref: track,\n children: [/*#__PURE__*/_jsx(TrackFills, {\n startTime: startTime,\n endTime: endTime\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"ticks\",\n children: Array(24).fill(null).map((value, index) => /*#__PURE__*/_jsx(\"div\", {\n className: \"tick\"\n }, index))\n }), /*#__PURE__*/_jsx(Handle, {\n track: track,\n time: startTime,\n setTime: handleStartTimeChange\n }), /*#__PURE__*/_jsx(Handle, {\n track: track,\n time: endTime,\n setTime: handleEndTimeChange\n })]\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"tick-labels\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"tick-label\",\n children: \"0:00\"\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"tick-label-wrapper\",\n children: Array(24).fill(null).map((value, index) => /*#__PURE__*/_jsx(\"div\", {\n className: \"tick-label\",\n children: \"\".concat(index + 1, \":00\")\n }, index))\n })]\n })]\n });\n}\nfunction PopOvers(props) {\n var {\n startTime,\n endTime,\n onStartTimeChange,\n onEndTimeChange,\n isStartModified,\n isEndModified,\n 'data-testid': dataTestId\n } = props;\n var swapTimes = startTime > endTime;\n var [firstTime, setFirstTime] = useState(swapTimes ? endTime : startTime);\n var [secondTime, setSecondTime] = useState(swapTimes ? startTime : endTime);\n var firstTimeRef = useRef(null);\n var secondTimeRef = useRef(null);\n // Keep track of selection in both time inputs\n var firstTimeSelectionRef = useRef(null);\n var secondTimeSelectionRef = useRef(null);\n useEffect(function setTimeOnPropTimeChange() {\n setFirstTime(startTime > endTime ? endTime : startTime);\n setSecondTime(startTime > endTime ? startTime : endTime);\n }, [startTime, endTime]);\n useEffect(function setFocusOnSwapTimesChange() {\n if (firstTimeSelectionRef.current !== null) {\n var _secondTimeRef$curren;\n (_secondTimeRef$curren = secondTimeRef.current) === null || _secondTimeRef$curren === void 0 ? void 0 : _secondTimeRef$curren.setSelection(firstTimeSelectionRef.current);\n }\n if (secondTimeSelectionRef.current !== null) {\n var _firstTimeRef$current;\n (_firstTimeRef$current = firstTimeRef.current) === null || _firstTimeRef$current === void 0 ? void 0 : _firstTimeRef$current.setSelection(secondTimeSelectionRef.current);\n }\n }, [swapTimes]);\n function onFirstTimeChange(value) {\n if (startTime <= endTime) {\n onStartTimeChange(value);\n } else {\n onEndTimeChange(value);\n }\n }\n function onSecondTimeChange(value) {\n if (startTime <= endTime) {\n onEndTimeChange(value);\n } else {\n onStartTimeChange(value);\n }\n }\n var onFirstTimeSelect = useCallback(selection => {\n firstTimeSelectionRef.current = selection;\n secondTimeSelectionRef.current = null;\n }, []);\n var onSecondTimeSelect = useCallback(selection => {\n firstTimeSelectionRef.current = null;\n secondTimeSelectionRef.current = selection;\n }, []);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"time-slider-popovers\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"flex\",\n style: {\n flexBasis: \"calc(\".concat(firstTime / SECONDS_IN_DAY * 100, \"% - \").concat(POPOVER_WIDTH / 2, \"px)\")\n }\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"handle-popper\",\n children: [/*#__PURE__*/_jsx(\"label\", {\n className: classNames({\n modified: swapTimes ? isEndModified : isStartModified\n }),\n children: swapTimes ? 'End Time' : 'Start Time'\n }), /*#__PURE__*/_jsx(TimeInput, {\n ref: firstTimeRef,\n allowValueWrapping: false,\n value: firstTime,\n onChange: onFirstTimeChange,\n onSelect: onFirstTimeSelect,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-input-1\") : undefined\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"flex-spacer\"\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"handle-popper\",\n children: [/*#__PURE__*/_jsx(\"label\", {\n className: classNames({\n modified: swapTimes ? isStartModified : isEndModified\n }),\n children: swapTimes ? 'Start Time' : 'End Time'\n }), /*#__PURE__*/_jsx(TimeInput, {\n ref: secondTimeRef,\n allowValueWrapping: false,\n value: secondTime,\n onChange: onSecondTimeChange,\n onSelect: onSecondTimeSelect,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-input-2\") : undefined\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"flex\",\n style: {\n flexBasis: \"calc(\".concat((SECONDS_IN_DAY - secondTime) / SECONDS_IN_DAY * 100, \"% - \").concat(POPOVER_WIDTH / 2, \"px)\")\n }\n })]\n });\n}\n/**\n * Shades the area between or outside of handles according to if start or endtime is greater.\n */\nfunction TrackFills(props) {\n var {\n startTime,\n endTime,\n 'data-testid': dataTestId\n } = props;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"track-fills\",\n \"data-testid\": dataTestId,\n children: [startTime > endTime && /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"track-fill track-fill-start\",\n style: {\n transform: \"scaleX(\".concat(endTime / SECONDS_IN_DAY, \")\")\n }\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"track-fill track-fill-end\",\n style: {\n transform: \"scaleX(\".concat((SECONDS_IN_DAY - startTime) / SECONDS_IN_DAY, \")\")\n }\n })]\n }), startTime < endTime && /*#__PURE__*/_jsx(\"div\", {\n className: \"track-fill track-fill-middle\",\n style: {\n transform: \"translateX(\".concat(startTime / SECONDS_IN_DAY * 100, \"%) scaleX(\").concat((endTime - startTime) / SECONDS_IN_DAY, \")\")\n }\n })]\n });\n}\n/**\n * Creates a draggable handle the sets the time\n */\nfunction Handle(props) {\n var {\n track,\n time,\n setTime,\n 'data-testid': dataTestId\n } = props;\n\n /**\n * Takes the time and generate our translation string taking into account handle offset.\n * The handle offset changes for the first and last tick range dynmaically. Normally,\n * the center of the handle (size/2) is the selection origin, but at edges, it becomes either\n * end of the handle, requireing a relative offset range of 0 - 0.5, and 0.5 - 1 of handle size.\n * @param t time in seconds\n */\n var transform = useMemo(() => {\n var ONE_HOUR = 60 * 60;\n var handleOffset = HANDLE_SIZE / 2;\n if (time < ONE_HOUR) {\n handleOffset = time / ONE_HOUR * (HANDLE_SIZE / 2); // 0 - 0.5 Handle size\n } else if (time > 23 * ONE_HOUR) {\n handleOffset = HANDLE_SIZE / 2 + 1 / (SECONDS_IN_DAY - 23 * ONE_HOUR) * (time - 23 * ONE_HOUR) * (HANDLE_SIZE / 2); // 0.5 - 1 Handle size\n }\n\n return \"translateX(calc(\".concat(time / SECONDS_IN_DAY * 100, \"% - \").concat(handleOffset, \"px))\");\n }, [time]);\n var calculatePositionAsTime = useCallback(clientX => {\n if (!track.current) {\n return 0;\n }\n var trackRect = track.current.getBoundingClientRect();\n var leftEdge = Math.max(clientX - trackRect.left, 0);\n // get position as 0-1 on slider and mulitply by seconds in a day to convert to time\n var preciseTime = SECONDS_IN_DAY * Math.min(1, leftEdge / trackRect.width);\n // snap to nearest N(5) minute interval\n var roundedTime = SNAP_NEAREST_MINUTES * Math.round(preciseTime / SNAP_NEAREST_MINUTES);\n // prevent over-rounding to 24:00:00\n var limitMax = Math.min(SECONDS_IN_DAY, roundedTime);\n return limitMax;\n }, [track]);\n var handleMouseMove = useCallback(_ref2 => {\n var {\n clientX\n } = _ref2;\n setTime(calculatePositionAsTime(clientX));\n }, [setTime, calculatePositionAsTime]);\n var handleMouseUp = useCallback(_ref3 => {\n var {\n clientX\n } = _ref3;\n setTime(calculatePositionAsTime(clientX));\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.remove('drag-pointer-events-none');\n }, [setTime, calculatePositionAsTime, handleMouseMove]);\n var startDragListening = useCallback(() => {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.add('drag-pointer-events-none');\n }, [handleMouseMove, handleMouseUp]);\n var stopDragListening = useCallback(() => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.remove('drag-pointer-events-none');\n }, [handleMouseMove, handleMouseUp]);\n var handleMouseDown = useCallback(() => {\n startDragListening();\n }, [startDragListening]);\n useEffect(function removeListenersOnUnmount() {\n return () => {\n stopDragListening();\n };\n }, [stopDragListening]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"handle-track\",\n style: {\n transform\n },\n children: /*#__PURE__*/_jsx(\"button\", {\n className: \"handle\",\n type: \"button\",\n \"aria-label\": \"Change time\",\n onMouseDown: handleMouseDown,\n \"data-testid\": dataTestId\n })\n });\n}\nexport default TimeSlider;\n//# sourceMappingURL=TimeSlider.js.map","function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\nimport ChartModel from \"./ChartModel.js\";\nimport { defaultChartTheme } from \"./ChartTheme.js\";\nimport ChartUtils from \"./ChartUtils.js\";\n/** Displays a basic random chart */\nclass MockChartModel extends ChartModel {\n static get theme() {\n /* eslint-disable no-underscore-dangle */\n if (MockChartModel._theme == null) {\n MockChartModel._theme = defaultChartTheme();\n }\n return MockChartModel._theme;\n /* eslint-enable no-underscore-dangle */\n }\n\n static makeRandomSeries(offset) {\n var scale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var steps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100;\n var dates = [];\n var values = [];\n var smooth = [];\n var linear = [];\n\n // Setting to a fixed seed date so that e2e tests can be deterministic.\n var startDate = new Date('2018-06-01');\n for (var i = 0; i < steps; i += 1) {\n var date = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() + i - steps);\n dates.push(\"\".concat(date.getFullYear(), \"-\").concat(date.getMonth() + 1, \"-\").concat(date.getDate()));\n var v = (Math.sin(i / steps * offset) * steps / 3 + Math.cos(i * 0.2) * steps / 6 + Math.sin(i * 0.5) * steps / 10 + MockChartModel.random() * steps / 5 + i * MockChartModel.smoothing) * scale;\n v = Math.round(v * 100) / 100; // 2 decimals only\n // using steps acts as amplititude scaling based on value\n // large sine wave for course shape + small sine waves for bumpiness +\n // general randomness noise + index to be constantly up and to the right + smoothing factor\n values.push(v);\n linear.push(40 + i * MockChartModel.smoothing);\n smooth.push(Math.sin(i / steps * offset) * steps / 3 + MockChartModel.random() * steps / 10 + i * MockChartModel.smoothing); // push a smoother version of the same thing\n }\n\n return {\n x: dates,\n y: values,\n s: smooth,\n l: linear\n };\n }\n static makeScatter(series) {\n return {\n name: 'SCTR',\n x: series.x,\n y: series.y,\n type: 'scatter',\n mode: 'markers',\n hoverinfo: 'skip',\n marker: {\n size: 5\n }\n };\n }\n static makeArea(series) {\n return {\n name: 'AREA',\n x: series.x,\n y: series.s,\n type: 'scatter',\n mode: 'line',\n fill: 'tozeroy',\n hoverinfo: 'all',\n line: {\n width: 3\n // area patten gets applied as hack in post render plot.ly callback + css\n }\n };\n }\n\n static makeTrendline(series) {\n return {\n // we probably want to toss the line formula in legend I guess? either that or render it as text manually on plot\n name: 'Trendline <br>R<sup>2</sup> = 0.91',\n x: series.x,\n y: series.l,\n type: 'scatter',\n mode: 'line',\n hoverinfo: 'skip',\n line: {\n width: 3,\n dash: 'dot' // trendlines should follow some sort of color convention + dots/dashed. Remember there can multiple\n // chroma(c.$green).brighten(1.2).hex()\n }\n };\n }\n\n static makeErrorBand(series) {\n // generate continouous error bands values and text\n var erroryforward = [];\n var errorybackward = [];\n for (var i = 0; i < series.y.length; i += 1) {\n var value = series.y[i];\n erroryforward[i] = Math.round((value + 18) * 100) / 100;\n errorybackward[i] = Math.round((value - 18) * 100) / 100;\n }\n\n // makes a closed shape of points winding clockwise for y values\n var errory = erroryforward.concat(errorybackward.reverse());\n return {\n name: 'error',\n x: series.x.concat(series.x.slice().reverse()),\n // winding for x values, that slice just clones so reverse doesn't apply inplace\n y: errory,\n type: 'scatter',\n mode: 'line',\n hoverinfo: 'skip',\n fill: 'toself',\n // there's some ordering bug with scattergl where if the areas traces are ordered after the lines they don't render\n line: {\n width: 0,\n color: MockChartModel.theme.error_band_line_color,\n shape: 'spline'\n }\n };\n }\n static makeLine(series) {\n return {\n name: 'LINE',\n x: series.x,\n y: series.y,\n type: 'scatter',\n mode: 'line',\n hoverinfo: 'x+y+text+name',\n line: {\n width: 3\n }\n };\n }\n static makeRandomData() {\n var series1 = MockChartModel.makeRandomSeries(6);\n var areaPattern = MockChartModel.makeArea(series1);\n var trendLine = MockChartModel.makeTrendline(series1);\n var series2 = MockChartModel.makeRandomSeries(2);\n var line = MockChartModel.makeLine(series2);\n var errorBand = MockChartModel.makeErrorBand(series2);\n return [areaPattern, trendLine, line, errorBand];\n }\n static makeDefaultLayout(dh) {\n var layout = {\n template: new ChartUtils(dh).makeDefaultTemplate(MockChartModel.theme)\n };\n layout.title = 'Chart';\n layout.xaxis = {\n title: 'Datestamp'\n };\n layout.yaxis = {\n title: 'Price'\n };\n return layout;\n }\n constructor(dh) {\n var {\n data = MockChartModel.makeRandomData(),\n layout = MockChartModel.makeDefaultLayout(dh),\n filterFields = []\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super(dh);\n _defineProperty(this, \"data\", void 0);\n _defineProperty(this, \"filterFields\", void 0);\n _defineProperty(this, \"layout\", void 0);\n this.data = data;\n this.layout = layout;\n this.filterFields = filterFields;\n }\n getData() {\n return this.data;\n }\n getLayout() {\n return this.layout;\n }\n getFilterColumnMap() {\n var map = new Map();\n for (var i = 0; i < this.filterFields.length; i += 1) {\n var name = this.filterFields[i];\n var type = 'java.lang.String';\n map.set(name, {\n name,\n type\n });\n }\n return map;\n }\n isFilterRequired() {\n return this.filterFields.length > 0;\n }\n setFilter() {\n this.fireUpdate(this.data);\n }\n}\n_defineProperty(MockChartModel, \"random\", Math.random.bind(Math));\n_defineProperty(MockChartModel, \"smoothing\", 1.5);\n_defineProperty(MockChartModel, \"_theme\", void 0);\nexport default MockChartModel;\n//# sourceMappingURL=MockChartModel.js.map","import React, { createContext, useEffect, useState } from 'react';\nimport '@fontsource/fira-mono/400.css';\nimport '@fontsource/fira-mono/500.css';\nimport '@fontsource/fira-mono/700.css';\nimport '@fontsource/fira-sans/300.css';\nimport '@fontsource/fira-sans/300-italic.css';\nimport '@fontsource/fira-sans/400.css';\nimport '@fontsource/fira-sans/400-italic.css';\nimport '@fontsource/fira-sans/500.css';\nimport '@fontsource/fira-sans/600.css';\nimport '@fontsource/fira-sans/700.css';\nimport '@fontsource/fira-sans/700-italic.css';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport var FontsLoadedContext = /*#__PURE__*/createContext(false);\n/**\n * FontBootstrap component. Handles preloading fonts.\n */\nexport function FontBootstrap(_ref) {\n var {\n fontClassNames = ['fira-sans-regular', 'fira-sans-semibold', 'fira-mono'],\n children\n } = _ref;\n var [isLoaded, setIsLoaded] = useState(false);\n useEffect(function initFonts() {\n document.fonts.ready.then(() => {\n setIsLoaded(true);\n });\n }, []);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(FontsLoadedContext.Provider, {\n value: isLoaded,\n children: children\n }), /*#__PURE__*/_jsx(\"div\", {\n id: \"preload-fonts\",\n style: {\n visibility: 'hidden',\n position: 'absolute',\n top: -10000\n },\n children: fontClassNames.map(className => /*#__PURE__*/_jsx(\"p\", {\n className: className,\n children: \"preload\"\n }, className))\n })]\n });\n}\nexport default FontBootstrap;\n//# sourceMappingURL=FontBootstrap.js.map"],"names":["Section","SpectrumSection","isElementOfType","node","type","isValidElement","asyncGeneratorStep","gen","resolve","reject","_next","_throw","key","arg","info","value","error","_asyncToGenerator","fn","self","args","err","createValidationProps","isValid","errorMessage","extractSpectrumHTMLElement","ref","_ref$UNSAFE_getDOMNod","extractSpectrumLastChildHTMLElement","maybeHTMLElement","identityExtractHTMLElement","findSpectrumComboBoxScrollArea","findSpectrumPopoverScrollArea","findSpectrumPickerScrollArea","triggerElementType","trigger","popupId","scrollArea","getPositionOfSelectedItem","_x","_getPositionOfSelectedItem","_ref","keyedItems","itemHeight","selectedKey","topOffset","item","_item$item$key","_item$item","useCheckOverflow","isOverflowing","setIsOverflowing","useState","checkOverflow","useCallback","elRef","el","resetIsOverflowing","useMappedRef","targetRef","map","useContentRect","x","setX","y","setY","width","setWidth","height","setHeight","contentRect","useMemo","setEl","handleResize","_firstEntry$contentRe","firstEntry","rect","useResizeObserver","useDebouncedCallback","callback","debounceMs","debouncedCallback","debounce","useEffect","useOnScrollRef","onScroll","extractHTMLElement","cleanupRef","useRef","_cleanupRef$current","_cleanupRef$current2","element","usePopoverOnScrollRef","findScrollArea","getInitialScrollPosition","isScrollOnOpenEnabledRef","scrollAreaEl","setScrollAreaEl","scrollToInitialPosition","position","scrollTimeoutRef","onOpenChange","isOpen","ColorValues","isDHColorValue","colorValueStyle","_excluded","ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","i","source","_defineProperty","obj","_toPropertyKey","_toPrimitive","input","hint","prim","res","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","Text","forwardRef","props","forwardedRef","color","UNSAFE_style","rest","style","_jsx","SpectrumText","ItemTooltip","children","options","Tooltip","Flex","ItemContent","content","tooltipOptions","previousContent","setPreviousContent","NON_BREAKING_SPACE","Children","cloneElement","cl","stylesCommon","tooltip","_jsxs","_Fragment","ITEM_EMPTY_STRING_TEXT_VALUE","getItemKey","getPositionOfSelectedItemElement","_getPositionOfSelectedItemElement","items","isSectionElement","isItemElement","Item","isItemElementWithDescription","childrenArray","ensureArray","result","child","_child$props","isNormalizedItemsWithKeysList","isItemOrSection","isNormalizedSection","maybeNormalizedSection","normalizeTooltipOptions","placement","itemSelectionToStringSet","itemKeys","wrapIcon","maybeIconKey","slot","_maybeIconKey","_dhIcons$maybeIconKey","Icon","FontAwesomeIcon","dhIcons","wrapItemChildren","itemsOrSections","itemsOrSectionsArray","_item$key","_textValue","_item$key2","text","textValue","wrapPrimitiveWithText","_content","separateSpectrumProps","ariaLabel","ariaLabelledby","ariaDescribedby","ariaHidden","marginX","marginY","minWidth","minHeight","maxWidth","maxHeight","flex","flexGrow","flexShrink","flexBasis","justifySelf","alignSelf","order","gridArea","gridColumn","gridRow","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","zIndex","top","bottom","start","end","left","right","isHidden","componentProps","useRenderNormalizedItem","itemIconSlot","showItemDescriptions","showItemIcons","normalizedItem","_normalizedItem$item","_normalizedItem$item$","_normalizedItem$item2","_normalizedItem$item3","_normalizedItem$item4","description","icon","useStringifiedMultiSelection","normalizedItems","defaultSelectedKeys","disabledKeys","selectedKeys","onChange","selectedStringKeys","defaultSelectedStringKeys","disabledStringKeys","onStringSelectionChange","actualKeys","useStringifiedSelection","defaultSelectedKey","selectedStringKey","defaultSelectedStringKey","_getItemKey","selectedItem","actualKey","useSpectrumThemeProvider","useProvider","ListViewWrapper","_styleProps$minHeight","_listViewProps$densit","ariaLabelProps","styleProps","EMPTY_FUNCTION","listViewProps","scale","scrollRef","contentRectRef","SpectrumListView","ListView","UNSAFE_className","onSelectionChange","spectrumListViewProps","wrappedItems","ListViewNormalized","renderNormalizedItem","forceRerenderKey","_createElement","usePickerScrollOnOpen","popoverOnOpenChange","onOpenChangeInternal","Picker","spectrumPickerProps","PICKER_ITEM_HEIGHTS","isUncontrolled","uncontrolledSelectedKey","setUncontrolledSelectedKey","disableScrollOnOpen","PICKER_TOP_OFFSET","onSelectionChangeInternal","_ref3","SpectrumPicker","PickerNormalized","itemOrSection","_itemOrSection$item","_itemOrSection$item2","Heading","SpectrumHeading","View","backgroundColor","SpectrumView","DEBOUNCE_DELAY","MENU_NAVIGATION_DIRECTION","AutoCompleteInput","Component","memoize","option","popperOptions","React","title","menuIsOpen","filter","_this$popper$current","filteredOptions","perfectMatch","event","_this$input$current","keyboardOptionIndex","direction","newKeyboardOptionIndex","onEnter","_this$input$current2","_this$input$current3","_this$popper$current2","_this$popper$current3","focusInput","_this$input$current4","index","_this$menuContainer$c","inputWidth","classNames","noMatchText","inputPlaceholder","disabled","className","defaultTitle","spellCheck","dataTestId","invalid","Popper","PropTypes","AutoCompleteInput$1","AutoResizeTextarea","propsValue","placeholder","delimiter","id","setValue","isPastedChange","setIsPastedChange","explode","string","implode","reCalculateLayout","resizedHeight","handleChange","newValue","handleFocus","handleMouseDown","handleBlur","handlePaste","log","Log","TIME_PATTERN","EXAMPLES","fixIncompleteValue","TimeInput","allowValueWrapping","onFocus","onBlur","onSelect","TimeUtils","parsedValueRef","selection","_setSelection","inputRef","useImperativeHandle","_inputRef$current","newSelection","_inputRef$current2","getNextSegmentValue","range","delta","segmentValue","maxValue","newSegmentValue","getPreferredReplacementString","replaceValue","replaceIndex","newChar","selectionStart","selectionEnd","DEFAULT_GET_PREFERRED_REPLACEMENT_STRING","fixedValue","handleSelect","MaskedInput","TimeInput$1","CUSTOM_OPTION","CustomTimeSelect","valueToTime","customTime","_this$button$current","_this$button$current2","inputFocused","menuOptionsLength","optionIndex","timeToValue","update","_this$button$current3","activeOption","valueIndex","_this$menuContainer$c2","focusButton","_this$button$current4","_this$menuContainer$c3","customText","matchFound","optionArray","DropdownMenu","vsCheck","time","CustomTimeSelect$1","DATE_PATTERN","DATE_FORMAT","DateInput","defaultValue","setSelection","DateInput$1","ErrorView","message","isExpandedProp","isExpandable","setIsExpandable","isExpanded","setIsExpanded","viewRef","textRef","newIsExpandable","debouncedHandleResize","useLayoutEffect","vsWarning","CopyButton","Button","vsDiffRemoved","vsDiffAdded","HierarchicalCheckboxMenu","parent","valueMap","includesTrue","includesFalse","state","onUpdateValueMap","newChildren","parentSelected","newChildValue","_","currentChildren","_parentSelected","copy","Checkbox","_ref2","menuText","HierarchicalCheckboxMenu$1","VOLATILITY","LOW","HIGH","START_Y","GRID_SIZE","PATTERN","PX_PER_SECOND","RESIZE_DEBOUNCE","INTERACTION_TIMEOUT","THEME_COLOR_VARIABLES","getRandomAreaPlotAnimationThemeColors","resolveCssVariablesInRecord","RandomAreaPlotAnimation","activeThemes","useTheme","themeColors","canvas","container","shade","setShade","ctx","pattern","rAF","lastTimestamp","data","setCanvasSize","_ctx","createPatternFill","foregroundFill","foregroundStroke","canvasPattern","contextPattern","randomWalk","prev","rand","change","initData","startingData","setDataSize","drawAreaLine","path","context","drawGridLines","drawCanvas","timestamp","_lastTimestamp","_lastTimestamp2","_lastTimestamp3","background","gridColor","assertNotNull","subPixelMotion","_lastTimestamp4","numberOfPoints","pauseAnimation","resetIdleTimeout","startAnimation","handleActivity","_canvas$current","Animation","HANDLE_SIZE","StyleExports","POPOVER_WIDTH","SECONDS_IN_DAY","SNAP_NEAREST_MINUTES","TimeSlider","propStartTime","propEndTime","isStartModified","isEndModified","startTime","setStartTime","endTime","setEndTime","track","updateTime","newStartTime","newEndTime","handleStartTimeChange","handleEndTimeChange","PopOvers","TrackFills","Handle","onStartTimeChange","onEndTimeChange","swapTimes","firstTime","setFirstTime","secondTime","setSecondTime","firstTimeRef","secondTimeRef","firstTimeSelectionRef","secondTimeSelectionRef","_secondTimeRef$curren","_firstTimeRef$current","onFirstTimeChange","onSecondTimeChange","onFirstTimeSelect","onSecondTimeSelect","setTime","transform","ONE_HOUR","handleOffset","calculatePositionAsTime","clientX","trackRect","leftEdge","preciseTime","roundedTime","limitMax","handleMouseMove","handleMouseUp","startDragListening","stopDragListening","MockChartModel","ChartModel","defaultChartTheme","offset","steps","dates","values","smooth","linear","startDate","date","v","series","erroryforward","errorybackward","errory","series1","areaPattern","trendLine","series2","line","errorBand","dh","layout","ChartUtils","filterFields","name","MockChartModel$1","FontsLoadedContext","createContext","FontBootstrap","fontClassNames","isLoaded","setIsLoaded"],"mappings":"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"}