@deephaven/code-studio 1.10.2-lerna-v9.0 → 1.10.2

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 (40) hide show
  1. package/build/assets/{AppRoot-Dsp0-nx9.js → AppRoot-BY4a1UaK.js} +6 -6
  2. package/build/assets/{AppRoot-Dsp0-nx9.js.map → AppRoot-BY4a1UaK.js.map} +1 -1
  3. package/build/assets/{Chart-P_gTGGZ1.js → Chart-DmqNQtr3.js} +2 -2
  4. package/build/assets/{Chart-P_gTGGZ1.js.map → Chart-DmqNQtr3.js.map} +1 -1
  5. package/build/assets/{ControlType-lgZLQmfY.js → ControlType-RBsIk8KS.js} +4 -4
  6. package/build/assets/{ControlType-lgZLQmfY.js.map → ControlType-RBsIk8KS.js.map} +1 -1
  7. package/build/assets/{FormatterUtils-C9ixv8yB.js → FormatterUtils-C3xgIs6_.js} +2 -2
  8. package/build/assets/{FormatterUtils-C9ixv8yB.js.map → FormatterUtils-C3xgIs6_.js.map} +1 -1
  9. package/build/assets/{Grid-DQPrZJGB.js → Grid-B7dO0Sbi.js} +2 -2
  10. package/build/assets/{Grid-DQPrZJGB.js.map → Grid-B7dO0Sbi.js.map} +1 -1
  11. package/build/assets/{GridTokenMouseHandler-X2JErABm.js → GridTokenMouseHandler-Ds5xKqrO.js} +2 -2
  12. package/build/assets/{GridTokenMouseHandler-X2JErABm.js.map → GridTokenMouseHandler-Ds5xKqrO.js.map} +1 -1
  13. package/build/assets/{IrisGrid-m82zJTmT.js → IrisGrid-CFqfz-_M.js} +2 -2
  14. package/build/assets/{IrisGrid-m82zJTmT.js.map → IrisGrid-CFqfz-_M.js.map} +1 -1
  15. package/build/assets/{IrisGridModel-BWX_u8pv.js → IrisGridModel-CfNBLna8.js} +3 -3
  16. package/build/assets/{IrisGridModel-BWX_u8pv.js.map → IrisGridModel-CfNBLna8.js.map} +1 -1
  17. package/build/assets/{IrisGridShortcuts-QN2zgZUQ.js → IrisGridShortcuts-Bw5ADLgT.js} +2 -2
  18. package/build/assets/{IrisGridShortcuts-QN2zgZUQ.js.map → IrisGridShortcuts-Bw5ADLgT.js.map} +1 -1
  19. package/build/assets/{IrisGridThemeProvider-DtrPDGfJ.js → IrisGridThemeProvider-CggmgZiA.js} +2 -2
  20. package/build/assets/{IrisGridThemeProvider-DtrPDGfJ.js.map → IrisGridThemeProvider-CggmgZiA.js.map} +1 -1
  21. package/build/assets/{LocalWorkspaceStorage-C6dxwi4z.js → LocalWorkspaceStorage-DXAI74vd.js} +2 -2
  22. package/build/assets/{LocalWorkspaceStorage-C6dxwi4z.js.map → LocalWorkspaceStorage-DXAI74vd.js.map} +1 -1
  23. package/build/assets/{MarkdownEditor-B4WFJDBT.js → MarkdownEditor-CjiUT8XD.js} +2 -2
  24. package/build/assets/{MarkdownEditor-B4WFJDBT.js.map → MarkdownEditor-CjiUT8XD.js.map} +1 -1
  25. package/build/assets/{MarkdownNotebook-Bw-fDcJ8.js → MarkdownNotebook-CsCP6Muy.js} +2 -2
  26. package/build/assets/{MarkdownNotebook-Bw-fDcJ8.js.map → MarkdownNotebook-CsCP6Muy.js.map} +1 -1
  27. package/build/assets/{MissingPartitionError-Cw7iLwy0.js → MissingPartitionError-DXkc6F4C.js} +2 -2
  28. package/build/assets/{MissingPartitionError-Cw7iLwy0.js.map → MissingPartitionError-DXkc6F4C.js.map} +1 -1
  29. package/build/assets/{MockChartModel-C5m_XRVw.js → MockChartModel-B0Gv2sr1.js} +2 -2
  30. package/build/assets/{MockChartModel-C5m_XRVw.js.map → MockChartModel-B0Gv2sr1.js.map} +1 -1
  31. package/build/assets/{StyleGuideRoot-DGm-hysw.js → StyleGuideRoot-BAYFLFTM.js} +2 -2
  32. package/build/assets/{StyleGuideRoot-DGm-hysw.js.map → StyleGuideRoot-BAYFLFTM.js.map} +1 -1
  33. package/build/assets/{index-LXmN419B.js → index-Bjvh6jhx.js} +4 -4
  34. package/build/assets/{index-LXmN419B.js.map → index-Bjvh6jhx.js.map} +1 -1
  35. package/build/assets/{index-CqIl8EDR.js → index-CVle8e1T.js} +2 -2
  36. package/build/assets/{index-CqIl8EDR.js.map → index-CVle8e1T.js.map} +1 -1
  37. package/build/assets/{index-DmVB6hX1.js → index-Cwc_E41j.js} +3 -3
  38. package/build/assets/{index-DmVB6hX1.js.map → index-Cwc_E41j.js.map} +1 -1
  39. package/build/index.html +2 -2
  40. package/package.json +31 -31
@@ -1 +1 @@
1
- {"version":3,"file":"MockChartModel-C5m_XRVw.js","sources":["../../../react-hooks/dist/useMappedRef.js","../../../react-hooks/dist/useContentRect.js","../../../react-hooks/dist/useOnScrollRef.js","../../../components/dist/spectrum/utils/propsUtils.js","../../../components/dist/spectrum/utils/useStringifiedMultiSelection.js","../../../components/dist/theme/FontBootstrap.js","../../../components/dist/spectrum/comboBox/ComboBoxNormalized.js","../../../components/dist/spectrum/listView/ListViewWrapper.js","../../../components/dist/spectrum/listView/ListView.js","../../../components/dist/spectrum/listView/ListViewNormalized.js","../../../components/dist/spectrum/View.js","../../../components/dist/spectrum/CheckboxGroup.js","../../../components/dist/AutoCompleteInput.js","../../../components/dist/AutoResizeTextarea.js","../../../components/dist/context-actions/ContextMenu.js","../../../components/dist/context-actions/ContextMenuRoot.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"],"sourcesContent":["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 { 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 || _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","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(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\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, 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 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, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport var FontsLoadedContext = /*#__PURE__*/createContext(false);\nFontsLoadedContext.displayName = 'FontsLoadedContext';\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","var _excluded = [\"UNSAFE_className\"],\n _excluded2 = [\"forceRerenderKey\", \"ref\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport { ComboBox as SpectrumComboBox } from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport { usePickerNormalizedProps } from \"../picker/index.js\";\nimport { createElement as _createElement } from \"react\";\n/**\n * ComboBox that takes an array of `NormalizedItem` or `NormalizedSection` items\n * as children and uses a render item function to render the items. `NormalizedItem`\n * and `NormalizedSection` datums always provide a `key` property but have an\n * optional `item` property that can be lazy loaded. This is necessary to support\n * windowed data since we need a representative key for every item in the\n * collection.\n */\nexport function ComboBoxNormalized(_ref) {\n var {\n UNSAFE_className\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var _usePickerNormalizedP = usePickerNormalizedProps(props),\n {\n forceRerenderKey,\n ref\n } = _usePickerNormalizedP,\n pickerProps = _objectWithoutProperties(_usePickerNormalizedP, _excluded2);\n return /*#__PURE__*/_createElement(SpectrumComboBox\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, pickerProps), {}, {\n key: forceRerenderKey,\n ref: ref,\n UNSAFE_className: cl('dh-combobox', 'dh-combobox-normalized', UNSAFE_className)\n }));\n}\nexport default ComboBoxNormalized;\n//# sourceMappingURL=ComboBoxNormalized.js.map","var _excluded = [\"onScroll\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\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(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\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\", \"actions\", \"UNSAFE_className\", \"onChange\", \"onSelectionChange\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport { useMemo, createElement as _createElement } from 'react';\nimport cl from 'classnames';\nimport { normalizeTooltipOptions, useRenderNormalizedItem, useStringifiedMultiSelection } from \"../utils/index.js\";\nimport { ListViewWrapper } from \"./ListViewWrapper.js\";\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 actions,\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 actions\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","var _excluded = [\"backgroundColor\", \"borderColor\", \"borderStartColor\", \"borderEndColor\", \"borderTopColor\", \"borderBottomColor\", \"borderXColor\", \"borderYColor\", \"UNSAFE_style\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* eslint-disable react/jsx-props-no-spreading */\nimport { forwardRef, useMemo } from 'react';\nimport { useLocale, 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 palette and semantic colors.\n *\n * @param props The props for the View component\n * @returns The View component\n *\n */\nexport var View = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var {\n backgroundColor,\n borderColor,\n borderStartColor,\n borderEndColor,\n borderTopColor,\n borderBottomColor,\n borderXColor,\n borderYColor,\n UNSAFE_style\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var {\n direction\n } = useLocale();\n var style = useMemo(() => {\n var borderStyle = {};\n if (borderColor !== undefined) {\n borderStyle.borderColor = colorValueStyle(borderColor);\n }\n if (borderXColor !== undefined) {\n borderStyle.borderLeftColor = colorValueStyle(borderXColor);\n borderStyle.borderRightColor = colorValueStyle(borderXColor);\n }\n if (borderYColor !== undefined) {\n borderStyle.borderTopColor = colorValueStyle(borderYColor);\n borderStyle.borderBottomColor = colorValueStyle(borderYColor);\n }\n if (borderStartColor !== undefined) {\n borderStyle[direction === 'rtl' ? 'borderRightColor' : 'borderLeftColor'] = colorValueStyle(borderStartColor);\n }\n if (borderEndColor !== undefined) {\n borderStyle[direction === 'rtl' ? 'borderLeftColor' : 'borderRightColor'] = colorValueStyle(borderEndColor);\n }\n if (borderTopColor !== undefined) {\n borderStyle.borderTopColor = colorValueStyle(borderTopColor);\n }\n if (borderBottomColor !== undefined) {\n borderStyle.borderBottomColor = colorValueStyle(borderBottomColor);\n }\n return _objectSpread(_objectSpread({}, UNSAFE_style), {}, {\n backgroundColor: colorValueStyle(backgroundColor)\n }, borderStyle);\n }, [backgroundColor, UNSAFE_style, borderColor, borderStartColor, borderEndColor, borderTopColor, borderBottomColor, borderXColor, borderYColor, direction]);\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","var _excluded = [\"children\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* eslint-disable react/no-array-index-key */\nimport { isElementOfType } from '@deephaven/react-hooks';\nimport React, { useMemo } from 'react';\nimport { Checkbox, CheckboxGroup as SpectrumCheckboxGroup } from '@adobe/react-spectrum';\nimport { ensureArray } from '@deephaven/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Augmented version of the Spectrum CheckboxGroup component that supports\n * primitive item children.\n */\nexport function CheckboxGroup(_ref) {\n var {\n children\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var wrappedChildren = useMemo(() => ensureArray(children).map(child => isElementOfType(child, Checkbox) ? child : /*#__PURE__*/_jsx(Checkbox, {\n value: String(child),\n children: String(child)\n }, String(child))), [children]);\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/jsx-props-no-spreading\n _jsx(SpectrumCheckboxGroup, _objectSpread(_objectSpread({}, props), {}, {\n children: wrappedChildren\n }))\n );\n}\nexport default CheckboxGroup;\n//# sourceMappingURL=CheckboxGroup.js.map","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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 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, jsxs as _jsxs } from \"react/jsx-runtime\";\nvar DEBOUNCE_DELAY = 100;\nvar MENU_NAVIGATION_DIRECTION = /*#__PURE__*/function (MENU_NAVIGATION_DIRECTION) {\n MENU_NAVIGATION_DIRECTION[\"UP\"] = \"UP\";\n MENU_NAVIGATION_DIRECTION[\"DOWN\"] = \"DOWN\";\n return MENU_NAVIGATION_DIRECTION;\n}(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 max: 1000\n }));\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 || _this$popper$current.scheduleUpdate(); // filtered options list can change size, may need to be repositioned\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 || _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 || _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 || _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 || _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 || _this$input$current4.focus();\n }\n (_this$popper$current3 = this.popper.current) === null || _this$popper$current3 === 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 || _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, \"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 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}\nexport default AutoResizeTextarea;\n//# sourceMappingURL=AutoResizeTextarea.js.map","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport { PromiseUtils } from '@deephaven/utils';\nimport ContextActionUtils from \"./ContextActionUtils.js\";\nimport ContextMenuItem from \"./ContextMenuItem.js\";\nimport LoadingSpinner from \"../LoadingSpinner.js\";\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nvar log = Log.module('ContextMenu');\n/** Do not use this class directly. Use ContextMenuRoot and ContextActions instead. */\nclass ContextMenu extends PureComponent {\n static handleContextMenu(e) {\n if (e.metaKey) {\n return;\n }\n e.stopPropagation();\n e.preventDefault();\n }\n constructor(props) {\n super(props);\n _defineProperty(this, \"container\", void 0);\n _defineProperty(this, \"oldFocus\", void 0);\n _defineProperty(this, \"activeSubMenuRef\", void 0);\n _defineProperty(this, \"subMenuTimer\", void 0);\n _defineProperty(this, \"rAF\", void 0);\n _defineProperty(this, \"initialPosition\", void 0);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleCloseSubMenu = this.handleCloseSubMenu.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n this.handleMenuItemContextMenu = this.handleMenuItemContextMenu.bind(this);\n this.handleMenuItemMouseMove = this.handleMenuItemMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.container = /*#__PURE__*/React.createRef();\n this.oldFocus = document.activeElement;\n this.activeSubMenuRef = /*#__PURE__*/React.createRef();\n this.subMenuTimer = 0;\n this.rAF = 0;\n this.initialPosition = {\n top: props.top,\n left: props.left\n };\n this.state = {\n menuItems: [],\n pendingItems: [],\n activeSubMenu: null,\n hasOverflow: false,\n subMenuTop: null,\n subMenuLeft: null,\n subMenuParentWidth: 0,\n subMenuParentHeight: 0,\n keyboardIndex: -1,\n mouseIndex: -1\n };\n }\n componentDidMount() {\n this.initMenu();\n this.verifyPosition();\n window.addEventListener('resize', this.handleWindowResize);\n\n // rAF is needed to wait for a submenus popper to be created before\n // attempting to set focus, however on a quick mount/unmount when\n // mousing past an item, the submenu could be unmounted before the\n // async rAF finishes, so it is cancelled in willUnmount()\n this.rAF = window.requestAnimationFrame(() => {\n var _this$container$curre;\n (_this$container$curre = this.container.current) === null || _this$container$curre === void 0 || _this$container$curre.focus();\n var {\n onMenuOpened\n } = this.props;\n onMenuOpened(this);\n });\n }\n componentDidUpdate(prevProps, prevState) {\n var {\n actions\n } = this.props;\n var {\n activeSubMenu\n } = this.state;\n if (activeSubMenu !== prevState.activeSubMenu) {\n if (activeSubMenu == null) {\n var _this$container$curre2;\n // close sub menu, refocus parent menu\n (_this$container$curre2 = this.container.current) === null || _this$container$curre2 === void 0 || _this$container$curre2.focus();\n } else {\n // open sub menu, set its initial position\n this.setActiveSubMenuPosition();\n }\n }\n if (prevProps.actions !== actions) {\n this.initMenu();\n if (this.container.current == null || !this.container.current.contains(document.activeElement)) {\n var _this$container$curre3;\n (_this$container$curre3 = this.container.current) === null || _this$container$curre3 === void 0 || _this$container$curre3.focus();\n }\n }\n this.verifyPosition();\n }\n componentWillUnmount() {\n this.cancelPromises();\n window.removeEventListener('resize', this.handleWindowResize);\n cancelAnimationFrame(this.rAF);\n }\n getKeyboardIndex() {\n var {\n options\n } = this.props;\n if (options.separateKeyboardMouse !== undefined && options.separateKeyboardMouse) {\n var {\n keyboardIndex\n } = this.state;\n return keyboardIndex;\n }\n return this.getMouseIndex();\n }\n setKeyboardIndex(index) {\n var {\n options\n } = this.props;\n if (options.separateKeyboardMouse !== undefined && options.separateKeyboardMouse) {\n this.setState({\n keyboardIndex: index\n });\n } else {\n this.setMouseIndex(index);\n }\n }\n getMouseIndex() {\n var {\n mouseIndex\n } = this.state;\n return mouseIndex;\n }\n setMouseIndex(index) {\n this.setState({\n mouseIndex: index\n });\n }\n initMenu() {\n // cancel any pending close and promises\n this.cancelPromises();\n cancelAnimationFrame(this.rAF);\n var {\n options\n } = this.props;\n var keyboardIndex = options.initialKeyboardIndex;\n if (keyboardIndex === undefined) {\n keyboardIndex = -1;\n }\n var {\n actions\n } = this.props;\n var menuItems = ContextActionUtils.getMenuItems(actions);\n var nonPromiseItems = [];\n for (var i = menuItems.length - 1; i >= 0; i -= 1) {\n var menuItem = menuItems[i];\n if (menuItem instanceof Promise) {\n this.initMenuPromise(menuItem);\n } else {\n nonPromiseItems.push(menuItem);\n }\n }\n this.setState({\n mouseIndex: -1,\n keyboardIndex,\n activeSubMenu: null,\n menuItems: ContextActionUtils.sortActions(nonPromiseItems)\n });\n }\n initMenuPromise(promise) {\n // make all promises cancellable\n var cancellablePromise = PromiseUtils.makeCancelable(promise);\n this.setState(state => ({\n pendingItems: state.pendingItems.concat(cancellablePromise)\n }));\n cancellablePromise.then(resolvedMenuItems => {\n this.setState(state => {\n var index = state.pendingItems.indexOf(cancellablePromise);\n if (index >= 0) {\n var pendingItems = state.pendingItems.slice();\n pendingItems.splice(index, 1);\n return {\n menuItems: ContextActionUtils.sortActions(state.menuItems.concat(resolvedMenuItems)),\n pendingItems\n };\n }\n // This item is stale, don't update the menu\n return null;\n });\n }, error => {\n if (PromiseUtils.isCanceled(error)) {\n return; // Canceled promise is ignored\n }\n\n // remove failed item from pending list\n this.setState(state => {\n var index = state.pendingItems.indexOf(cancellablePromise);\n if (index >= 0) {\n var pendingItems = state.pendingItems.slice();\n pendingItems.splice(index, 1);\n return {\n pendingItems\n };\n }\n return null;\n });\n\n // Log the error\n log.error(error);\n });\n }\n cancelPromises() {\n var {\n pendingItems\n } = this.state;\n pendingItems.map(item => item.cancel());\n }\n\n /**\n * Sets the unverfied start position of a submenu. Submenu then self-verfies\n * its own position and potentially reports back a new position.\n */\n setActiveSubMenuPosition() {\n if (this.activeSubMenuRef.current === null) return;\n var parentRect = this.activeSubMenuRef.current.getBoundingClientRect();\n\n // intentionally rect.right, we want the sub menu to start at the right edge of the current menu\n this.setState({\n subMenuTop: parentRect.top,\n subMenuLeft: parentRect.right,\n subMenuParentHeight: parentRect.height,\n subMenuParentWidth: parentRect.width\n });\n }\n\n /**\n * Verifies the position of this menu in relation to the parent to make sure it's on screen.\n * Will update the top left state (updatePosition) if necessary (causing a re-render)\n * By default it tries to top-align with parent, at the right side of the parent.\n * Because we aren't a native context menu and can't escape window bounds, we also do\n * somethings to better fit on screen, such as the \"nudge\" offset position, and further\n * allow overflow scrolling for large menus in a small window.\n */\n verifyPosition() {\n var _this$container$curre4, _this$container$curre5, _this$container$curre6, _this$container$curre7;\n var {\n options,\n updatePosition,\n subMenuParentWidth,\n subMenuParentHeight,\n top: oldTop,\n left: oldLeft\n } = this.props;\n if (!this.container.current || options.doNotVerifyPosition != null && options.doNotVerifyPosition) {\n return;\n }\n\n // initial position is used rather than current position,\n // as the number of menu items can change (actions can bubble)\n // and menu should always be positioned relative to spawn point\n var {\n top,\n left\n } = this.initialPosition;\n var {\n width,\n height\n } = (_this$container$curre4 = (_this$container$curre5 = this.container.current) === null || _this$container$curre5 === void 0 ? void 0 : _this$container$curre5.getBoundingClientRect()) !== null && _this$container$curre4 !== void 0 ? _this$container$curre4 : {\n width: 0,\n height: 0\n };\n var hasOverflow = ((_this$container$curre6 = (_this$container$curre7 = this.container.current) === null || _this$container$curre7 === void 0 ? void 0 : _this$container$curre7.scrollHeight) !== null && _this$container$curre6 !== void 0 ? _this$container$curre6 : 0) > window.innerHeight;\n if (height === 0 || width === 0) {\n // We don't have a height or width yet, don't bother doing anything\n return;\n }\n\n // does it fit below?\n if (top + height > window.innerHeight) {\n // can it be flipped to above? include offset if submenu (defaults to 0 if not submenu)\n if (top - height - subMenuParentHeight > 0) {\n // flip like a native menu would\n top -= height - subMenuParentHeight;\n } else {\n // still doesnt fit? okay, position at bottom edge\n top = window.innerHeight - height;\n }\n }\n if (left + width > window.innerWidth) {\n // less picky about left right positioning, just keep it going off to right\n left = left - width - subMenuParentWidth;\n }\n if (oldLeft !== left || oldTop !== top) {\n // parent owns positioning as single source of truth, ask to update props\n this.setState({\n hasOverflow\n });\n updatePosition(top, left);\n }\n }\n\n // since window resize doesn't trigger blur, listen and close the menu\n handleWindowResize() {\n if (!this.container.current) {\n return;\n }\n this.closeMenu(true);\n }\n handleBlur(e) {\n if (!this.container.current) {\n log.warn('Container is null!');\n return;\n }\n if (!this.container.current.contains(e.relatedTarget)) {\n var element = e.relatedTarget;\n var isContextMenuChild = false;\n while (element && !isContextMenuChild) {\n isContextMenuChild = element.hasAttribute('data-dh-context-menu');\n element = element.parentElement;\n }\n if (!isContextMenuChild) {\n // close all submenus on blur\n this.closeMenu(true);\n }\n }\n }\n\n /** Returns whether the specified key should remove the menu. Depends on the side the parent is on. */\n isEscapeKey(key) {\n var {\n left\n } = this.props;\n return key === 'Escape' || left < 0 && key === 'ArrowRight' || key === 'ArrowLeft';\n }\n handleKeyDown(e) {\n var {\n menuItems\n } = this.state;\n var oldFocus = this.getKeyboardIndex();\n var newFocus = oldFocus;\n var openSubMenu = false;\n if (e.key === 'Enter' || e.key === ' ') {\n if (oldFocus >= 0 && oldFocus < menuItems.length) {\n this.handleMenuItemClick(menuItems[oldFocus], e);\n }\n return;\n }\n if (e.key === 'ArrowRight') {\n if (oldFocus >= 0 && oldFocus <= menuItems.length) {\n openSubMenu = true;\n } else {\n newFocus = 0;\n }\n } else if (this.isEscapeKey(e.key)) {\n newFocus = null;\n } else if (e.key === 'ArrowUp' || e.shiftKey && e.key === 'Tab') {\n newFocus = ContextActionUtils.getNextMenuItem(newFocus, -1, menuItems);\n } else if (e.key === 'ArrowDown' || e.key === 'Tab') {\n newFocus = ContextActionUtils.getNextMenuItem(newFocus, 1, menuItems);\n }\n if (openSubMenu) {\n this.openSubMenu(oldFocus);\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (oldFocus !== newFocus) {\n if (newFocus !== null) {\n this.setKeyboardIndex(newFocus);\n } else {\n this.closeMenu();\n if (this.oldFocus instanceof HTMLElement) {\n this.oldFocus.focus();\n }\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n openSubMenu(index) {\n var {\n menuItems,\n activeSubMenu\n } = this.state;\n var newSubMenu = menuItems[index].actions ? index : null;\n if (activeSubMenu === newSubMenu) return;\n this.setState({\n activeSubMenu: newSubMenu,\n subMenuTop: null,\n subMenuLeft: null\n });\n }\n closeMenu() {\n var closeAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var {\n closeMenu,\n onMenuClosed\n } = this.props;\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n closeMenu(closeAll);\n onMenuClosed(this);\n });\n }\n closeSubMenu() {\n this.setState({\n activeSubMenu: null\n });\n }\n handleCloseSubMenu(closeAllMenus) {\n if (closeAllMenus) {\n this.closeMenu(true);\n } else {\n this.closeSubMenu();\n }\n }\n handleMenuItemClick(menuItem, e) {\n e.preventDefault();\n e.stopPropagation();\n var {\n menuItems\n } = this.state;\n if (menuItem != null && (menuItem.disabled === undefined || !menuItem.disabled)) {\n if (menuItem.actions != null) {\n this.openSubMenu(menuItems.indexOf(menuItem));\n } else if (menuItem.action != null) {\n menuItem.action(e.nativeEvent);\n this.closeMenu(true);\n }\n }\n }\n handleMenuItemContextMenu(menuItem, e) {\n if (e.metaKey) {\n return;\n }\n this.handleMenuItemClick(menuItem, e);\n }\n handleMenuItemMouseMove(menuItem) {\n var {\n menuItems\n } = this.state;\n var focusIndex = menuItems.indexOf(menuItem);\n this.setMouseIndex(focusIndex);\n if (focusIndex >= 0 && focusIndex < menuItems.length && (menuItem.disabled === undefined || !menuItem.disabled)) {\n this.openSubMenu(focusIndex);\n }\n }\n handleMouseLeave() {\n this.setMouseIndex(-1);\n }\n render() {\n var menuItemElements = [];\n var {\n top,\n left\n } = this.props;\n var {\n activeSubMenu,\n hasOverflow,\n keyboardIndex,\n menuItems,\n mouseIndex,\n pendingItems,\n subMenuTop,\n subMenuLeft,\n subMenuParentWidth,\n subMenuParentHeight\n } = this.state;\n for (var i = 0; i < menuItems.length; i += 1) {\n var menuItem = menuItems[i];\n if (i > 0 && menuItem.group !== menuItems[i - 1].group) {\n menuItemElements.push(/*#__PURE__*/_jsx(\"hr\", {}, \"\".concat(i, \".separator\")));\n }\n var menuItemElement = /*#__PURE__*/_jsx(ContextMenuItem, {\n ref: activeSubMenu === i ? this.activeSubMenuRef : null,\n isKeyboardSelected: keyboardIndex === i,\n isMouseSelected: mouseIndex === i,\n menuItem: menuItem,\n closeMenu: this.handleCloseSubMenu,\n onMenuItemClick: this.handleMenuItemClick,\n onMenuItemMouseMove: this.handleMenuItemMouseMove,\n onMenuItemContextMenu: this.handleMenuItemContextMenu\n }, i);\n menuItemElements.push(menuItemElement);\n }\n var pendingElement = null;\n if (pendingItems.length > 0) {\n pendingElement = /*#__PURE__*/_jsx(\"div\", {\n className: \"loading\",\n children: /*#__PURE__*/_jsx(LoadingSpinner, {\n className: \"loading-spinner-vertical-align\"\n })\n });\n }\n var {\n menuStyle,\n 'data-testid': dataTestId\n } = this.props;\n\n // don't show submenu until it has an position initialized\n var showSubmenu = activeSubMenu !== null && subMenuTop !== null && subMenuLeft !== null;\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: classNames({\n 'has-overflow': hasOverflow\n }, 'context-menu-container'),\n style: _objectSpread({\n top,\n left\n }, menuStyle),\n ref: this.container,\n \"data-dh-context-menu\": true,\n onBlur: this.handleBlur,\n onKeyDown: this.handleKeyDown,\n onMouseLeave: this.handleMouseLeave,\n onContextMenu: ContextMenu.handleContextMenu,\n role: \"menuitem\",\n tabIndex: 0,\n \"data-testid\": dataTestId,\n children: [menuItemElements, pendingElement]\n }), showSubmenu && activeSubMenu !== null && subMenuTop !== null && subMenuLeft !== null && /*#__PURE__*/_jsx(ContextMenu, {\n actions: menuItems[activeSubMenu].actions || [],\n closeMenu: this.handleCloseSubMenu,\n top: subMenuTop,\n left: subMenuLeft,\n updatePosition: (verifiedTop, verifiedLeft) => {\n this.setState({\n subMenuTop: verifiedTop,\n subMenuLeft: verifiedLeft\n });\n },\n subMenuParentWidth: subMenuParentWidth,\n subMenuParentHeight: subMenuParentHeight\n }, \"sub-\".concat(activeSubMenu))]\n });\n }\n}\n_defineProperty(ContextMenu, \"defaultProps\", {\n subMenuParentWidth: 0,\n subMenuParentHeight: 0,\n closeMenu() {\n // no-op\n },\n onMenuOpened() {\n // no-op\n },\n onMenuClosed() {\n // no-op\n },\n options: {},\n menuStyle: {},\n 'data-testid': undefined\n});\nexport default ContextMenu;\n//# sourceMappingURL=ContextMenu.js.map","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport ContextMenu from \"./ContextMenu.js\";\nimport ContextActionUtils from \"./ContextActionUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Put at your root container, any contextmenu events that are unhandled in the root container will be handled by this\n */\nclass ContextMenuRoot extends Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"container\", void 0);\n _defineProperty(this, \"openMenu\", void 0);\n this.handleMenuClose = this.handleMenuClose.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n this.container = /*#__PURE__*/React.createRef();\n this.openMenu = /*#__PURE__*/React.createRef();\n this.state = {\n actions: null,\n left: 0,\n top: 0\n };\n }\n componentDidMount() {\n var _this$container$curre;\n if ((_this$container$curre = this.container.current) !== null && _this$container$curre !== void 0 && _this$container$curre.parentElement) {\n this.container.current.parentElement.addEventListener('contextmenu', this.handleContextMenu);\n }\n }\n componentWillUnmount() {\n var _this$container$curre2;\n if ((_this$container$curre2 = this.container.current) !== null && _this$container$curre2 !== void 0 && _this$container$curre2.parentElement) {\n this.container.current.parentElement.removeEventListener('contextmenu', this.handleContextMenu);\n }\n }\n handleContextMenu(e) {\n if (!this.container.current) {\n return;\n }\n var parentRect = this.container.current.getBoundingClientRect();\n var top = e.clientY - parentRect.top;\n var left = e.clientX - parentRect.left;\n var {\n actions\n } = this.state;\n\n // Context menu is open and user clicked on the context-root blocking layer\n // Mac and Linux appear to trigger contextmenu events on mousedown vs. mouseup on Windows\n // Mouseup on Windows triggers blur before contextmenu which effectively does what this path does\n if (actions != null && e.target === this.container.current) {\n // re-emit right clicks that hit the context-root blocking layer\n // while we already have a custom context menu open\n e.preventDefault();\n\n // Set actions to null removes the menu\n // That allows a new menu to be opened on a different element so initial position is set properly\n // Otherwise the instance of this menu may be reused\n // A new contextmenu event is triggered on the element at the location the user clicked on the blocking layer\n this.setState({\n actions: null\n }, () => {\n var element = document.elementFromPoint(left, top); // x y\n\n var mouseEvent = new MouseEvent('contextmenu', {\n clientX: e.clientX,\n clientY: e.clientY,\n bubbles: true,\n cancelable: true\n });\n element === null || element === void 0 || element.dispatchEvent(mouseEvent);\n });\n return;\n }\n if (!ContextActionUtils.isContextActionEvent(e)) {\n // Open native menu if no custom context actions\n return;\n }\n if (e.metaKey || e.ctrlKey) {\n // debug escape hatch to native menu\n return;\n }\n var contextActions = ContextActionUtils.getMenuItems(e.contextActions);\n if (contextActions.length === 0) {\n // No actions after filtering. Use native menu\n return;\n }\n\n // new clicks, set actions\n e.preventDefault();\n this.setState({\n actions: contextActions,\n top,\n left\n });\n }\n handleMenuClose(menu) {\n if (menu === this.openMenu.current) {\n this.setState({\n actions: null\n });\n }\n }\n render() {\n var menu = null;\n var {\n 'data-testid': dataTestId\n } = this.props;\n var {\n actions,\n top,\n left\n } = this.state;\n if (actions) {\n menu = /*#__PURE__*/_jsx(ContextMenu, {\n ref: this.openMenu,\n actions: actions,\n onMenuClosed: this.handleMenuClose,\n top: top,\n left: left,\n updatePosition: (verifiedTop, verifiedLeft) => {\n this.setState({\n top: verifiedTop,\n left: verifiedLeft\n });\n },\n \"data-testid\": dataTestId\n });\n }\n return /*#__PURE__*/_jsx(\"div\", {\n className: classNames('context-menu-root', {\n active: actions\n }),\n ref: this.container,\n children: menu\n });\n }\n}\nexport default ContextMenuRoot;\n//# sourceMappingURL=ContextMenuRoot.js.map","import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport Log from '@deephaven/log';\nimport { EMPTY_FUNCTION, 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 = EMPTY_FUNCTION,\n value: propsValue = 0,\n onFocus = EMPTY_FUNCTION,\n onBlur = EMPTY_FUNCTION,\n onSelect = EMPTY_FUNCTION,\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 || _inputRef$current.focus();\n },\n setSelection: newSelection => {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === 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});\nexport default TimeInput;\n//# sourceMappingURL=TimeInput.js.map","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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, jsxs as _jsxs } from \"react/jsx-runtime\";\nvar CUSTOM_OPTION = -1;\nvar MENU_NAVIGATION_DIRECTION = /*#__PURE__*/function (MENU_NAVIGATION_DIRECTION) {\n MENU_NAVIGATION_DIRECTION[\"UP\"] = \"UP\";\n MENU_NAVIGATION_DIRECTION[\"DOWN\"] = \"DOWN\";\n return MENU_NAVIGATION_DIRECTION;\n}(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 || _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 || _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 || _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 || _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 || _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, 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(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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, 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 || _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 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 = ((lastTimestamp !== null && lastTimestamp !== void 0 ? lastTimestamp : 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) - (lastTimestamp !== null && lastTimestamp !== void 0 ? lastTimestamp : 0) > 1000 / PX_PER_SECOND) {\n // number of points to add since last update\n var numberOfPoints = Math.floor(((timestamp !== null && timestamp !== void 0 ? timestamp : 0) - (lastTimestamp !== null && lastTimestamp !== void 0 ? lastTimestamp : 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 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, jsxs as _jsxs, 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 || _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 || _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 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(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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 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 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 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 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 = {\n text: 'Chart'\n };\n layout.xaxis = {\n title: {\n text: 'Datestamp'\n }\n };\n layout.yaxis = {\n title: {\n text: 'Price'\n }\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"],"names":["useMappedRef","targetRef","map","useCallback","ref","useContentRect","identityExtractHTMLElement","x","setX","useState","y","setY","width","setWidth","height","setHeight","contentRect","useMemo","el","setEl","handleResize","_ref","_firstEntry$contentRe","firstEntry","rect","useResizeObserver","useOnScrollRef","onScroll","extractHTMLElement","cleanupRef","useRef","useEffect","_cleanupRef$current","_cleanupRef$current2","element","_excluded","_objectWithoutProperties","e","t","o","r","_objectWithoutPropertiesLoose","n","separateSpectrumProps","props","ariaLabel","ariaLabelledby","ariaDescribedby","ariaHidden","marginX","marginY","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","componentProps","useStringifiedMultiSelection","normalizedItems","defaultSelectedKeys","disabledKeys","selectedKeys","onChange","selectedStringKeys","itemSelectionToStringSet","defaultSelectedStringKeys","disabledStringKeys","onStringSelectionChange","keys","actualKeys","item","getItemKey","FontsLoadedContext","createContext","FontBootstrap","fontClassNames","children","isLoaded","setIsLoaded","_jsxs","_Fragment","_jsx","className","_excluded2","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","i","_toPrimitive","ComboBoxNormalized","UNSAFE_className","_usePickerNormalizedP","usePickerNormalizedProps","forceRerenderKey","pickerProps","_createElement","SpectrumComboBox","cl","ListViewWrapper","_styleProps$minHeight","_listViewProps$densit","ariaLabelProps","styleProps","EMPTY_FUNCTION","listViewProps","scale","useSpectrumThemeProvider","scrollRef","extractSpectrumHTMLElement","contentRectRef","Flex","SpectrumListView","ListView","tooltip","onSelectionChange","spectrumListViewProps","tooltipOptions","normalizeTooltipOptions","wrappedItems","wrapItemChildren","ListViewNormalized","showItemIcons","actions","renderNormalizedItem","useRenderNormalizedItem","View","forwardRef","forwardedRef","backgroundColor","borderColor","borderStartColor","borderEndColor","borderTopColor","borderBottomColor","borderXColor","borderYColor","UNSAFE_style","rest","direction","useLocale","style","borderStyle","colorValueStyle","SpectrumView","CheckboxGroup","wrappedChildren","ensureArray","child","isElementOfType","Checkbox","SpectrumCheckboxGroup","DEBOUNCE_DELAY","MENU_NAVIGATION_DIRECTION","AutoCompleteInput","Component","memoize","options","input","option","popperOptions","debounce","React","title","result","menuIsOpen","value","isValid","filter","_this$popper$current","filteredOptions","perfectMatch","event","_this$input$current","keyboardOptionIndex","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","key","inputPlaceholder","disabled","defaultTitle","spellCheck","dataTestId","invalid","Popper","AutoResizeTextarea","propsValue","placeholder","delimiter","id","setValue","isPastedChange","setIsPastedChange","explode","string","implode","reCalculateLayout","resizedHeight","handleChange","newValue","handleFocus","handleMouseDown","handleBlur","handlePaste","log","Log","ContextMenu","PureComponent","_this$container$curre","onMenuOpened","prevProps","prevState","activeSubMenu","_this$container$curre2","_this$container$curre3","keyboardIndex","mouseIndex","menuItems","ContextActionUtils","nonPromiseItems","menuItem","promise","cancellablePromise","PromiseUtils","state","resolvedMenuItems","pendingItems","error","parentRect","_this$container$curre4","_this$container$curre5","_this$container$curre6","_this$container$curre7","updatePosition","subMenuParentWidth","subMenuParentHeight","oldTop","oldLeft","hasOverflow","isContextMenuChild","oldFocus","newFocus","openSubMenu","newSubMenu","closeAll","closeMenu","onMenuClosed","closeAllMenus","focusIndex","menuItemElements","subMenuTop","subMenuLeft","menuItemElement","ContextMenuItem","pendingElement","LoadingSpinner","menuStyle","showSubmenu","verifiedTop","verifiedLeft","ContextMenuRoot","mouseEvent","contextActions","menu","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","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","icon","customText","matchFound","optionArray","FontAwesomeIcon","DropdownMenu","vsCheck","time","DATE_PATTERN","DATE_FORMAT","DateInput","defaultValue","setSelection","ErrorView","message","isExpandedProp","type","isExpandable","setIsExpandable","isExpanded","setIsExpanded","viewRef","textRef","newIsExpandable","debouncedHandleResize","useDebouncedCallback","useLayoutEffect","vsWarning","CopyButton","Button","vsDiffRemoved","vsDiffAdded","HierarchicalCheckboxMenu","parent","valueMap","includesTrue","includesFalse","onUpdateValueMap","newChildren","parentSelected","newChildValue","_","currentChildren","_parentSelected","copy","_ref2","menuText","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","background","gridColor","assertNotNull","subPixelMotion","numberOfPoints","pauseAnimation","resetIdleTimeout","startAnimation","handleActivity","_canvas$current","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","_ref3","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"],"mappings":"yqBAQO,SAASA,GAAaC,EAAWC,EAAK,CAC3C,OAAOC,EAAAA,YAAYC,GAAO,CACpB,OAAOH,GAAc,WACvBA,EAAUC,EAAIE,CAAG,CAAC,EAGlBH,EAAU,QAAUC,EAAIE,CAAG,CAE/B,EAAG,CAACF,EAAKD,CAAS,CAAC,CACrB,CCLO,SAASI,IAAiB,CAC/B,IAAIH,EAAM,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAII,GAC1E,CAACC,EAAGC,CAAI,EAAIC,EAAAA,SAAS,CAAC,EACtB,CAACC,EAAGC,CAAI,EAAIF,EAAAA,SAAS,CAAC,EACtB,CAACG,EAAOC,CAAQ,EAAIJ,EAAAA,SAAS,CAAC,EAC9B,CAACK,EAAQC,CAAS,EAAIN,EAAAA,SAAS,CAAC,EAChCO,EAAcC,EAAAA,QAAQ,IAAM,IAAI,QAAQV,EAAGG,EAAGE,EAAOE,CAAM,EAAG,CAACA,EAAQF,EAAOL,EAAGG,CAAC,CAAC,EACnF,CAACQ,EAAIC,CAAK,EAAIV,EAAAA,SAAS,IAAI,EAG3BL,EAAMJ,GAAamB,EAAOjB,CAAG,EAC7BkB,EAAejB,EAAAA,YAAYkB,GAAQ,CACrC,IAAIC,EACA,CAACC,CAAU,EAAIF,EACfG,GAAQF,EAAwBC,GAAe,KAAgC,OAASA,EAAW,eAAiB,MAAQD,IAA0B,OAASA,EAAwB,CACzL,EAAG,EACH,EAAG,EACH,MAAO,EACP,OAAQ,CACd,EACId,EAAKgB,EAAK,CAAC,EACXb,EAAKa,EAAK,CAAC,EACXX,EAASW,EAAK,KAAK,EACnBT,EAAUS,EAAK,MAAM,CACvB,EAAG,CAAA,CAAE,EACL,OAAAC,GAAkBP,EAAIE,CAAY,EAC3B,CACL,IAAAhB,EACA,YAAAY,CACJ,CACA,CChCO,SAASU,GAAeC,EAAU,CACvC,IAAIC,EAAqB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAItB,GACzFuB,EAAaC,EAAAA,OAAM,EAGvBC,OAAAA,EAAAA,UAAU,IAAM,IAAM,CACpB,IAAIC,EACJ,OAAQA,EAAsBH,EAAW,WAAa,MAAQG,IAAwB,OAAS,OAASA,EAAoB,KAAKH,CAAU,CAC7I,EAAG,CAAA,CAAE,EACE1B,EAAAA,YAAYC,GAAO,CACxB,IAAI6B,GACHA,EAAuBJ,EAAW,WAAa,MAAQI,IAAyB,QAAUA,EAAqB,KAAKJ,CAAU,EAC/H,IAAIK,EAAUN,EAAmBxB,CAAG,EAC/B8B,IAGLA,EAAQ,iBAAiB,SAAUP,CAAQ,EAG3CE,EAAW,QAAU,IAAM,CACzBK,EAAQ,oBAAoB,SAAUP,CAAQ,EAC9CE,EAAW,QAAU,MACvB,EACF,EAAG,CAACD,EAAoBD,CAAQ,CAAC,CACnC,CClCA,IAAIQ,GAAY,CAAC,aAAc,kBAAmB,mBAAoB,eAAgB,UAAW,UAAW,QAAS,SAAU,WAAY,YAAa,WAAY,YAAa,OAAQ,WAAY,aAAc,YAAa,cAAe,YAAa,QAAS,WAAY,aAAc,UAAW,kBAAmB,gBAAiB,eAAgB,aAAc,WAAY,SAAU,MAAO,SAAU,QAAS,MAAO,OAAQ,QAAS,UAAU,EAC9b,SAASC,GAAyBC,EAAGC,EAAG,CAAE,GAAYD,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIE,EAAGC,EAAG,EAAIC,GAA8BJ,EAAGC,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAII,EAAI,OAAO,sBAAsBL,CAAC,EAAG,IAAKG,EAAI,EAAGA,EAAIE,EAAE,OAAQF,IAAKD,EAAIG,EAAEF,CAAC,EAAUF,EAAE,QAAQC,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAKF,EAAGE,CAAC,IAAM,EAAEA,CAAC,EAAIF,EAAEE,CAAC,EAAI,CAAE,OAAO,CAAG,CACrU,SAASE,GAA8B,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,GAAI,IAAI,EAAI,CAAA,EAAI,QAAS,KAAK,EAAG,GAAI,CAAA,EAAG,eAAe,KAAK,EAAG,CAAC,EAAG,CAAE,GAAW,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAU,EAAE,CAAC,EAAI,EAAE,CAAC,CAAG,CAAE,OAAO,CAAG,CAO/L,SAASE,GAAsBC,EAAO,CAC3C,GAAI,CACA,aAAcC,EACd,kBAAmBC,EACnB,mBAAoBC,EACpB,eAAgBC,EAChB,QAAAC,EACA,QAAAC,EACA,MAAAtC,EACA,OAAAE,EACA,SAAAqC,EACA,UAAAC,EACA,SAAAC,EACA,UAAAC,EACA,KAAAC,EACA,SAAAC,EACA,WAAAC,EACA,UAAAC,EACA,YAAAC,EACA,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,WAAAC,EACA,QAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,aAAAC,EACA,WAAAC,EACA,SAAAC,EACA,OAAAC,EACA,IAAAC,EACA,OAAAC,EACA,MAAAC,EACA,IAAAC,EACA,KAAAC,GACA,MAAAC,EACA,SAAAC,EACN,EAAQjC,EACJkC,GAAiB1C,GAAyBQ,EAAOT,EAAS,EAC5D,MAAO,CACL,eAAgB,CACd,aAAcU,EACd,kBAAmBC,EACnB,mBAAoBC,EACpB,eAAgBC,CACtB,EACI,WAAY,CACV,QAAAC,EACA,QAAAC,EACA,MAAAtC,EACA,OAAAE,EACA,SAAAqC,EACA,UAAAC,EACA,SAAAC,EACA,UAAAC,EACA,KAAAC,EACA,SAAAC,EACA,WAAAC,EACA,UAAAC,EACA,YAAAC,EACA,UAAAC,EACA,MAAAC,EACA,SAAAC,EACA,WAAAC,EACA,QAAAC,EACA,gBAAAC,EACA,cAAAC,EACA,aAAAC,EACA,WAAAC,EACA,SAAAC,EACA,OAAAC,EACA,IAAAC,EACA,OAAAC,EACA,MAAAC,EACA,IAAAC,EACA,KAAAC,GACA,MAAAC,EACA,SAAAC,EACN,EACI,eAAgBC,EACpB,CACA,CCzEO,SAASC,GAA6B1D,EAAM,CACjD,GAAI,CACF,gBAAA2D,EACA,oBAAAC,EACA,aAAAC,EACA,aAAAC,EACA,SAAAC,CACJ,EAAM/D,EACAgE,EAAqBpE,EAAAA,QAAQ,IAAMqE,GAAyBH,CAAY,EAAG,CAACA,CAAY,CAAC,EACzFI,EAA4BtE,EAAAA,QAAQ,IAAMqE,GAAyBL,CAAmB,EAAG,CAACA,CAAmB,CAAC,EAC9GO,EAAqBvE,EAAAA,QAAQ,IAAMqE,GAAyBJ,CAAY,EAAG,CAACA,CAAY,CAAC,EACzFO,EAA0BtF,EAAAA,YAAYuF,GAAQ,CAChD,GAAIN,GAAY,KAGhB,IAAIM,IAAS,MAAO,CAClBN,EAAS,KAAK,EACd,MACF,CACA,IAAIO,EAAa,IAAI,IACrBX,EAAgB,QAAQY,GAAQ,CAC1BF,EAAK,IAAI,OAAOG,GAAWD,CAAI,CAAC,CAAC,GACnCD,EAAW,IAAIE,GAAWD,CAAI,CAAC,CAEnC,CAAC,EACDR,EAASO,CAAU,EACrB,EAAG,CAACX,EAAiBI,CAAQ,CAAC,EAC9B,MAAO,CACL,mBAAAC,EACA,0BAAAE,EACA,mBAAAC,EACA,wBAAAC,CACJ,CACA,CCrCU,IAACK,GAAkCC,EAAAA,cAAc,EAAK,EAChED,GAAmB,YAAc,qBAI1B,SAASE,GAAc3E,EAAM,CAClC,GAAI,CACF,eAAA4E,EAAiB,CAAC,oBAAqB,qBAAsB,WAAW,EACxE,SAAAC,CACJ,EAAM7E,EACA,CAAC8E,EAAUC,CAAW,EAAI3F,EAAAA,SAAS,EAAK,EAC5CsB,OAAAA,EAAAA,UAAU,UAAqB,CAC7B,SAAS,MAAM,MAAM,KAAK,IAAM,CAC9BqE,EAAY,EAAI,CAClB,CAAC,CACH,EAAG,CAAA,CAAE,EACeC,EAAAA,KAAMC,EAAAA,SAAW,CACnC,SAAU,CAAcC,EAAAA,IAAKT,GAAmB,SAAU,CACxD,MAAOK,EACP,SAAUD,CAChB,CAAK,EAAgBK,EAAAA,IAAK,MAAO,CAC3B,GAAI,gBACJ,MAAO,CACL,WAAY,SACZ,SAAU,WACV,IAAK,IACb,EACM,SAAUN,EAAe,IAAIO,GAA0BD,EAAAA,IAAK,IAAK,CAC/D,UAAWC,EACX,SAAU,SAClB,EAASA,CAAS,CAAC,CACnB,CAAK,CAAC,CACN,CAAG,CACH,CC9CA,IAAIrE,GAAY,CAAC,kBAAkB,EACjCsE,GAAa,CAAC,mBAAoB,KAAK,EACzC,SAASC,GAAQrE,EAAGG,EAAG,CAAE,IAAI,EAAI,OAAO,KAAKH,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIE,EAAI,OAAO,sBAAsBF,CAAC,EAAGG,IAAMD,EAAIA,EAAE,OAAO,SAAUC,EAAG,CAAE,OAAO,OAAO,yBAAyBH,EAAGG,CAAC,EAAE,UAAY,CAAC,GAAI,EAAE,KAAK,MAAM,EAAGD,CAAC,CAAG,CAAE,OAAO,CAAG,CAC9P,SAASoE,GAActE,EAAG,CAAE,QAASG,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAI,EAAY,UAAUA,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAIkE,GAAQ,OAAO,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUlE,EAAG,CAAEoE,GAAgBvE,EAAGG,EAAG,EAAEA,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiBH,EAAG,OAAO,0BAA0B,CAAC,CAAC,EAAIqE,GAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUlE,EAAG,CAAE,OAAO,eAAeH,EAAGG,EAAG,OAAO,yBAAyB,EAAGA,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAOH,CAAG,CACtb,SAASuE,GAAgBvE,EAAGG,EAAG,EAAG,CAAE,OAAQA,EAAIqE,GAAerE,CAAC,KAAMH,EAAI,OAAO,eAAeA,EAAGG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAIH,EAAEG,CAAC,EAAI,EAAGH,CAAG,CACnL,SAASwE,GAAevE,EAAG,CAAE,IAAIwE,EAAIC,GAAazE,EAAG,QAAQ,EAAG,OAAmB,OAAOwE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAazE,EAAGE,EAAG,CAAE,GAAgB,OAAOF,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIyE,EAAIzE,EAAE,KAAKC,EAAGE,CAAc,EAAG,GAAgB,OAAOsE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBtE,IAAb,SAAiB,OAAS,QAAQF,CAAC,CAAG,CACvT,SAASF,GAAyBC,EAAGC,EAAG,CAAE,GAAYD,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIE,EAAGC,EAAG,EAAIC,GAA8BJ,EAAGC,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAII,EAAI,OAAO,sBAAsBL,CAAC,EAAG,IAAKG,EAAI,EAAGA,EAAIE,EAAE,OAAQF,IAAKD,EAAIG,EAAEF,CAAC,EAAUF,EAAE,QAAQC,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAKF,EAAGE,CAAC,IAAM,EAAEA,CAAC,EAAIF,EAAEE,CAAC,EAAI,CAAE,OAAO,CAAG,CACrU,SAASE,GAA8B,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,GAAI,IAAI,EAAI,CAAA,EAAI,QAAS,KAAK,EAAG,GAAI,CAAA,EAAG,eAAe,KAAK,EAAG,CAAC,EAAG,CAAE,GAAW,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAU,EAAE,CAAC,EAAI,EAAE,CAAC,CAAG,CAAE,OAAO,CAAG,CAa/L,SAASuE,GAAmB3F,EAAM,CACvC,GAAI,CACA,iBAAA4F,CACN,EAAQ5F,EACJuB,EAAQR,GAAyBf,EAAMc,EAAS,EAC9C+E,EAAwBC,GAAyBvE,CAAK,EACxD,CACE,iBAAAwE,EACA,IAAAhH,CACN,EAAQ8G,EACJG,EAAcjF,GAAyB8E,EAAuBT,EAAU,EAC1E,OAAoBa,gBAAeC,GAEjCZ,GAAcA,GAAc,CAAA,EAAIU,CAAW,EAAG,CAAA,EAAI,CAClD,IAAKD,EACL,IAAKhH,EACL,iBAAkBoH,EAAG,cAAe,yBAA0BP,CAAgB,CAClF,CAAG,CAAC,CACJ,CCvCA,IAAI9E,GAAY,CAAC,UAAU,EAC3B,SAASuE,GAAQrE,EAAGG,EAAG,CAAE,IAAI,EAAI,OAAO,KAAKH,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIE,EAAI,OAAO,sBAAsBF,CAAC,EAAGG,IAAMD,EAAIA,EAAE,OAAO,SAAUC,EAAG,CAAE,OAAO,OAAO,yBAAyBH,EAAGG,CAAC,EAAE,UAAY,CAAC,GAAI,EAAE,KAAK,MAAM,EAAGD,CAAC,CAAG,CAAE,OAAO,CAAG,CAC9P,SAASoE,EAActE,EAAG,CAAE,QAASG,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAI,EAAY,UAAUA,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAIkE,GAAQ,OAAO,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUlE,EAAG,CAAEoE,GAAgBvE,EAAGG,EAAG,EAAEA,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiBH,EAAG,OAAO,0BAA0B,CAAC,CAAC,EAAIqE,GAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUlE,EAAG,CAAE,OAAO,eAAeH,EAAGG,EAAG,OAAO,yBAAyB,EAAGA,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAOH,CAAG,CACtb,SAASuE,GAAgBvE,EAAGG,EAAG,EAAG,CAAE,OAAQA,EAAIqE,GAAerE,CAAC,KAAMH,EAAI,OAAO,eAAeA,EAAGG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAIH,EAAEG,CAAC,EAAI,EAAGH,CAAG,CACnL,SAASwE,GAAevE,EAAG,CAAE,IAAIwE,EAAIC,GAAazE,EAAG,QAAQ,EAAG,OAAmB,OAAOwE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAazE,EAAGE,EAAG,CAAE,GAAgB,OAAOF,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIyE,EAAIzE,EAAE,KAAKC,EAAGE,CAAc,EAAG,GAAgB,OAAOsE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBtE,IAAb,SAAiB,OAAS,QAAQF,CAAC,CAAG,CACvT,SAASF,GAAyBC,EAAGC,EAAG,CAAE,GAAYD,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIE,EAAGC,EAAG,EAAIC,GAA8BJ,EAAGC,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAII,EAAI,OAAO,sBAAsBL,CAAC,EAAG,IAAKG,EAAI,EAAGA,EAAIE,EAAE,OAAQF,IAAKD,EAAIG,EAAEF,CAAC,EAAUF,EAAE,QAAQC,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAKF,EAAGE,CAAC,IAAM,EAAEA,CAAC,EAAIF,EAAEE,CAAC,EAAI,CAAE,OAAO,CAAG,CACrU,SAASE,GAA8B,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,GAAI,IAAI,EAAI,CAAA,EAAI,QAAS,KAAK,EAAG,GAAI,CAAA,EAAG,eAAe,KAAK,EAAG,CAAC,EAAG,CAAE,GAAW,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAU,EAAE,CAAC,EAAI,EAAE,CAAC,CAAG,CAAE,OAAO,CAAG,CAqB/L,SAASgF,GAAgB7E,EAAO,CACrC,IAAI8E,EAAuBC,EACvB,CACF,eAAAC,EACA,eAAA9C,EACA,WAAA+C,CACJ,EAAMlF,GAAsBC,CAAK,EAC3B,CACA,SAAAjB,EAAWmG,CACjB,EAAQhD,EACJiD,EAAgB3F,GAAyB0C,EAAgB3C,EAAS,EAChE,CACF,MAAA6F,CACJ,EAAMC,GAAwB,EACxBC,EAAYxG,GAAeC,EAAUwG,EAA0B,EAK/D,CACF,IAAKC,EACL,YAAApH,CACJ,EAAMX,GAAe8H,EAA0B,EAC7C,OAAoB5B,MAAK8B,GAAM1B,EAAcA,EAAc,CACzD,UAAW,SACX,IAAKyB,CAET,EAAKP,CAAU,EAAG,GAAI,CAMlB,WAAYH,EAAwBG,EAAW,aAAe,MAAQH,IAA0B,OAASA,EAAwB,EACjI,iBAAkBF,EAAG,uBAAwB,gCAAgC,QAAQG,EAAwBI,EAAc,WAAa,MAAQJ,IAA0B,OAASA,EAAwB,SAAS,EAAG,8BAA8B,OAAOK,CAAK,EAAGH,EAAW,gBAAgB,EAC/R,SAAU7G,EAAY,SAAW,EAAI,KAAoBuF,MAAK+B,GAAkB3B,EAAcA,EAAc,CAC1G,IAAKuB,CAEX,EAAON,CAAc,EAAGG,CAAa,CAAC,CACtC,CAAG,CAAC,CACJ,CCpEA,IAAI5F,GAAY,CAAC,WAAY,UAAW,eAAgB,sBAAuB,eAAgB,mBAAoB,WAAY,WAAY,mBAAmB,EAC9J,SAASuE,GAAQrE,EAAGG,EAAG,CAAE,IAAI,EAAI,OAAO,KAAKH,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIE,EAAI,OAAO,sBAAsBF,CAAC,EAAGG,IAAMD,EAAIA,EAAE,OAAO,SAAUC,EAAG,CAAE,OAAO,OAAO,yBAAyBH,EAAGG,CAAC,EAAE,UAAY,CAAC,GAAI,EAAE,KAAK,MAAM,EAAGD,CAAC,CAAG,CAAE,OAAO,CAAG,CAC9P,SAASoE,GAActE,EAAG,CAAE,QAASG,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAI,EAAY,UAAUA,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAIkE,GAAQ,OAAO,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUlE,EAAG,CAAEoE,GAAgBvE,EAAGG,EAAG,EAAEA,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiBH,EAAG,OAAO,0BAA0B,CAAC,CAAC,EAAIqE,GAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUlE,EAAG,CAAE,OAAO,eAAeH,EAAGG,EAAG,OAAO,yBAAyB,EAAGA,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAOH,CAAG,CACtb,SAASuE,GAAgBvE,EAAGG,EAAG,EAAG,CAAE,OAAQA,EAAIqE,GAAerE,CAAC,KAAMH,EAAI,OAAO,eAAeA,EAAGG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAIH,EAAEG,CAAC,EAAI,EAAGH,CAAG,CACnL,SAASwE,GAAevE,EAAG,CAAE,IAAIwE,EAAIC,GAAazE,EAAG,QAAQ,EAAG,OAAmB,OAAOwE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAazE,EAAGE,EAAG,CAAE,GAAgB,OAAOF,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIyE,EAAIzE,EAAE,KAAKC,EAAGE,CAAc,EAAG,GAAgB,OAAOsE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBtE,IAAb,SAAiB,OAAS,QAAQF,CAAC,CAAG,CACvT,SAASF,GAAyBC,EAAGC,EAAG,CAAE,GAAYD,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIE,EAAGC,EAAG,EAAIC,GAA8BJ,EAAGC,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAII,EAAI,OAAO,sBAAsBL,CAAC,EAAG,IAAKG,EAAI,EAAGA,EAAIE,EAAE,OAAQF,IAAKD,EAAIG,EAAEF,CAAC,EAAUF,EAAE,QAAQC,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAKF,EAAGE,CAAC,IAAM,EAAEA,CAAC,EAAIF,EAAEE,CAAC,EAAI,CAAE,OAAO,CAAG,CACrU,SAASE,GAA8B,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,GAAI,IAAI,EAAI,CAAA,EAAI,QAAS,KAAK,EAAG,GAAI,CAAA,EAAG,eAAe,KAAK,EAAG,CAAC,EAAG,CAAE,GAAW,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAU,EAAE,CAAC,EAAI,EAAE,CAAC,CAAG,CAAE,OAAO,CAAG,CAO/L,SAAS8F,GAASlH,EAAM,CAC7B,GAAI,CACA,SAAA6E,EACA,QAAAsC,EAAU,GACV,aAAArD,EACA,oBAAAF,EACA,aAAAC,EACA,iBAAA+B,EACA,SAAA7B,EACA,SAAAzD,EAAWmG,EACX,kBAAAW,CACN,EAAQpH,EACJqH,EAAwBtG,GAAyBf,EAAMc,EAAS,EAC9DwG,EAAiB1H,EAAAA,QAAQ,IAAM2H,GAAwBJ,EAAS,QAAQ,EAAG,CAACA,CAAO,CAAC,EACpFK,EAAe5H,UAAQ,IAAM6H,GAAiB5C,EAAUyC,CAAc,EAAG,CAACzC,EAAUyC,CAAc,CAAC,EACvG,OAAoBpC,MAAKkB,GAEvBd,GAAcA,GAAc,CAAA,EAAI+B,CAAqB,EAAG,CAAA,EAAI,CAC5D,iBAAkBlB,EAAG,eAAgBP,CAAgB,EACrD,aAAc9B,EACd,oBAAqBF,EACrB,aAAcC,EACd,SAAUvD,EACV,kBAAmByD,GAAsDqD,EACzE,SAAUI,CACd,CAAG,CAAC,CACJ,CCxCA,IAAI1G,GAAY,CAAC,kBAAmB,UAAW,eAAgB,sBAAuB,eAAgB,gBAAiB,UAAW,mBAAoB,WAAY,mBAAmB,EACrL,SAASuE,GAAQrE,EAAGG,EAAG,CAAE,IAAI,EAAI,OAAO,KAAKH,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIE,EAAI,OAAO,sBAAsBF,CAAC,EAAGG,IAAMD,EAAIA,EAAE,OAAO,SAAUC,EAAG,CAAE,OAAO,OAAO,yBAAyBH,EAAGG,CAAC,EAAE,UAAY,CAAC,GAAI,EAAE,KAAK,MAAM,EAAGD,CAAC,CAAG,CAAE,OAAO,CAAG,CAC9P,SAASoE,GAActE,EAAG,CAAE,QAASG,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAI,EAAY,UAAUA,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAIkE,GAAQ,OAAO,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUlE,EAAG,CAAEoE,GAAgBvE,EAAGG,EAAG,EAAEA,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiBH,EAAG,OAAO,0BAA0B,CAAC,CAAC,EAAIqE,GAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUlE,EAAG,CAAE,OAAO,eAAeH,EAAGG,EAAG,OAAO,yBAAyB,EAAGA,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAOH,CAAG,CACtb,SAASuE,GAAgBvE,EAAGG,EAAG,EAAG,CAAE,OAAQA,EAAIqE,GAAerE,CAAC,KAAMH,EAAI,OAAO,eAAeA,EAAGG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAIH,EAAEG,CAAC,EAAI,EAAGH,CAAG,CACnL,SAASwE,GAAevE,EAAG,CAAE,IAAIwE,EAAIC,GAAazE,EAAG,QAAQ,EAAG,OAAmB,OAAOwE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAazE,EAAGE,EAAG,CAAE,GAAgB,OAAOF,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIyE,EAAIzE,EAAE,KAAKC,EAAGE,CAAc,EAAG,GAAgB,OAAOsE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBtE,IAAb,SAAiB,OAAS,QAAQF,CAAC,CAAG,CACvT,SAASF,GAAyBC,EAAGC,EAAG,CAAE,GAAYD,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIE,EAAGC,EAAG,EAAIC,GAA8BJ,EAAGC,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAII,EAAI,OAAO,sBAAsBL,CAAC,EAAG,IAAKG,EAAI,EAAGA,EAAIE,EAAE,OAAQF,IAAKD,EAAIG,EAAEF,CAAC,EAAUF,EAAE,QAAQC,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAKF,EAAGE,CAAC,IAAM,EAAEA,CAAC,EAAIF,EAAEE,CAAC,EAAI,CAAE,OAAO,CAAG,CACrU,SAASE,GAA8B,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,GAAI,IAAI,EAAI,CAAA,EAAI,QAAS,KAAK,EAAG,GAAI,CAAA,EAAG,eAAe,KAAK,EAAG,CAAC,EAAG,CAAE,GAAW,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAU,EAAE,CAAC,EAAI,EAAE,CAAC,CAAG,CAAE,OAAO,CAAG,CAiB/L,SAASsG,GAAmB1H,EAAM,CACvC,GAAI,CACA,gBAAA2D,EACA,QAAAwD,EAAU,GACV,aAAArD,EACA,oBAAAF,EACA,aAAAC,EACA,cAAA8D,EACA,QAAAC,EACA,iBAAAhC,EACA,SAAA7B,EACA,kBAAAqD,CACN,EAAQpH,EACJuB,EAAQR,GAAyBf,EAAMc,EAAS,EAC9CwG,EAAiB1H,EAAAA,QAAQ,IAAM2H,GAAwBJ,EAAS,QAAQ,EAAG,CAACA,CAAO,CAAC,EACpFU,EAAuBC,GAAwB,CACjD,aAAc,eAKd,qBAAsB,GACtB,cAAAH,EACA,eAAAL,EACA,QAAAM,CACJ,CAAG,EAKG7B,EAAmB,GAAG,OAAO4B,EAAe,GAAG,EAAE,OAAOL,GAAmB,KAAoC,OAASA,EAAe,SAAS,EAChJ,CACF,mBAAAtD,EACA,0BAAAE,EACA,mBAAAC,EACA,wBAAAC,CACJ,EAAMV,GAA6B,CAC/B,gBAAAC,EACA,aAAAG,EACA,oBAAAF,EACA,aAAAC,EACA,SAAUE,GAAsDqD,CACpE,CAAG,EACD,OAAoBnB,gBAAeG,GAEjCd,GAAcA,GAAc,CAAA,EAAI/D,CAAK,EAAG,CAAA,EAAI,CAC5C,iBAAkB4E,EAAG,0BAA2BP,CAAgB,EAChE,IAAKG,EACL,MAAOpC,EACP,aAAcK,EACd,oBAAqBE,EACrB,aAAcC,EACd,kBAAmBC,CACvB,CAAG,EAAGyD,CAAoB,CAC1B,CC9EA,IAAI/G,GAAY,CAAC,kBAAmB,cAAe,mBAAoB,iBAAkB,iBAAkB,oBAAqB,eAAgB,eAAgB,cAAc,EAC9K,SAASuE,GAAQrE,EAAGG,EAAG,CAAE,IAAI,EAAI,OAAO,KAAKH,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIE,EAAI,OAAO,sBAAsBF,CAAC,EAAGG,IAAMD,EAAIA,EAAE,OAAO,SAAUC,EAAG,CAAE,OAAO,OAAO,yBAAyBH,EAAGG,CAAC,EAAE,UAAY,CAAC,GAAI,EAAE,KAAK,MAAM,EAAGD,CAAC,CAAG,CAAE,OAAO,CAAG,CAC9P,SAASoE,GAActE,EAAG,CAAE,QAASG,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAI,EAAY,UAAUA,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAIkE,GAAQ,OAAO,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUlE,EAAG,CAAEoE,GAAgBvE,EAAGG,EAAG,EAAEA,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiBH,EAAG,OAAO,0BAA0B,CAAC,CAAC,EAAIqE,GAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUlE,EAAG,CAAE,OAAO,eAAeH,EAAGG,EAAG,OAAO,yBAAyB,EAAGA,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAOH,CAAG,CACtb,SAASuE,GAAgBvE,EAAGG,EAAG,EAAG,CAAE,OAAQA,EAAIqE,GAAerE,CAAC,KAAMH,EAAI,OAAO,eAAeA,EAAGG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAIH,EAAEG,CAAC,EAAI,EAAGH,CAAG,CACnL,SAASwE,GAAevE,EAAG,CAAE,IAAIwE,EAAIC,GAAazE,EAAG,QAAQ,EAAG,OAAmB,OAAOwE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAazE,EAAGE,EAAG,CAAE,GAAgB,OAAOF,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIyE,EAAIzE,EAAE,KAAKC,EAAGE,CAAc,EAAG,GAAgB,OAAOsE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBtE,IAAb,SAAiB,OAAS,QAAQF,CAAC,CAAG,CACvT,SAASF,GAAyBC,EAAGC,EAAG,CAAE,GAAYD,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIE,EAAGC,EAAG,EAAIC,GAA8BJ,EAAGC,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAII,EAAI,OAAO,sBAAsBL,CAAC,EAAG,IAAKG,EAAI,EAAGA,EAAIE,EAAE,OAAQF,IAAKD,EAAIG,EAAEF,CAAC,EAAUF,EAAE,QAAQC,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAKF,EAAGE,CAAC,IAAM,EAAEA,CAAC,EAAIF,EAAEE,CAAC,EAAI,CAAE,OAAO,CAAG,CACrU,SAASE,GAA8B,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,GAAI,IAAI,EAAI,CAAA,EAAI,QAAS,KAAK,EAAG,GAAI,CAAA,EAAG,eAAe,KAAK,EAAG,CAAC,EAAG,CAAE,GAAW,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAU,EAAE,CAAC,EAAI,EAAE,CAAC,CAAG,CAAE,OAAO,CAAG,CAe5L,IAAC2G,GAAoBC,EAAAA,WAAW,CAACzG,EAAO0G,IAAiB,CACjE,GAAI,CACA,gBAAAC,EACA,YAAAC,EACA,iBAAAC,EACA,eAAAC,EACA,eAAAC,EACA,kBAAAC,EACA,aAAAC,EACA,aAAAC,EACA,aAAAC,CACN,EAAQnH,EACJoH,EAAO5H,GAAyBQ,EAAOT,EAAS,EAC9C,CACF,UAAA8H,CACJ,EAAMC,GAAS,EACTC,EAAQlJ,EAAAA,QAAQ,IAAM,CACxB,IAAImJ,EAAc,CAAA,EAClB,OAAIZ,IAAgB,SAClBY,EAAY,YAAcC,EAAgBb,CAAW,GAEnDK,IAAiB,SACnBO,EAAY,gBAAkBC,EAAgBR,CAAY,EAC1DO,EAAY,iBAAmBC,EAAgBR,CAAY,GAEzDC,IAAiB,SACnBM,EAAY,eAAiBC,EAAgBP,CAAY,EACzDM,EAAY,kBAAoBC,EAAgBP,CAAY,GAE1DL,IAAqB,SACvBW,EAAYH,IAAc,MAAQ,mBAAqB,iBAAiB,EAAII,EAAgBZ,CAAgB,GAE1GC,IAAmB,SACrBU,EAAYH,IAAc,MAAQ,kBAAoB,kBAAkB,EAAII,EAAgBX,CAAc,GAExGC,IAAmB,SACrBS,EAAY,eAAiBC,EAAgBV,CAAc,GAEzDC,IAAsB,SACxBQ,EAAY,kBAAoBC,EAAgBT,CAAiB,GAE5DjD,GAAcA,GAAc,CAAA,EAAIoD,CAAY,EAAG,CAAA,EAAI,CACxD,gBAAiBM,EAAgBd,CAAe,CACtD,EAAOa,CAAW,CAChB,EAAG,CAACb,EAAiBQ,EAAcP,EAAaC,EAAkBC,EAAgBC,EAAgBC,EAAmBC,EAAcC,EAAcG,CAAS,CAAC,EAC3J,OAAoB1D,EAAAA,IAAK+D,GAAc3D,GAAcA,GAAc,GAAIqD,CAAI,EAAG,GAAI,CAChF,IAAKV,EACL,aAAca,CAClB,CAAG,CAAC,CACJ,CAAC,EACDf,GAAK,YAAc,OCxEnB,IAAIjH,GAAY,CAAC,UAAU,EAC3B,SAASuE,GAAQrE,EAAGG,EAAG,CAAE,IAAI,EAAI,OAAO,KAAKH,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIE,EAAI,OAAO,sBAAsBF,CAAC,EAAGG,IAAMD,EAAIA,EAAE,OAAO,SAAUC,EAAG,CAAE,OAAO,OAAO,yBAAyBH,EAAGG,CAAC,EAAE,UAAY,CAAC,GAAI,EAAE,KAAK,MAAM,EAAGD,CAAC,CAAG,CAAE,OAAO,CAAG,CAC9P,SAASoE,GAActE,EAAG,CAAE,QAASG,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAI,EAAY,UAAUA,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAIkE,GAAQ,OAAO,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUlE,EAAG,CAAEoE,GAAgBvE,EAAGG,EAAG,EAAEA,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiBH,EAAG,OAAO,0BAA0B,CAAC,CAAC,EAAIqE,GAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUlE,EAAG,CAAE,OAAO,eAAeH,EAAGG,EAAG,OAAO,yBAAyB,EAAGA,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAOH,CAAG,CACtb,SAASuE,GAAgBvE,EAAGG,EAAG,EAAG,CAAE,OAAQA,EAAIqE,GAAerE,CAAC,KAAMH,EAAI,OAAO,eAAeA,EAAGG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAIH,EAAEG,CAAC,EAAI,EAAGH,CAAG,CACnL,SAASwE,GAAevE,EAAG,CAAE,IAAIwE,EAAIC,GAAazE,EAAG,QAAQ,EAAG,OAAmB,OAAOwE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAazE,EAAGE,EAAG,CAAE,GAAgB,OAAOF,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIyE,EAAIzE,EAAE,KAAKC,EAAGE,CAAc,EAAG,GAAgB,OAAOsE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBtE,IAAb,SAAiB,OAAS,QAAQF,CAAC,CAAG,CACvT,SAASF,GAAyBC,EAAGC,EAAG,CAAE,GAAYD,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIE,EAAGC,EAAG,EAAIC,GAA8BJ,EAAGC,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAII,EAAI,OAAO,sBAAsBL,CAAC,EAAG,IAAKG,EAAI,EAAGA,EAAIE,EAAE,OAAQF,IAAKD,EAAIG,EAAEF,CAAC,EAAUF,EAAE,QAAQC,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAKF,EAAGE,CAAC,IAAM,EAAEA,CAAC,EAAIF,EAAEE,CAAC,EAAI,CAAE,OAAO,CAAG,CACrU,SAASE,GAA8B,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,GAAI,IAAI,EAAI,CAAA,EAAI,QAAS,KAAK,EAAG,GAAI,CAAA,EAAG,eAAe,KAAK,EAAG,CAAC,EAAG,CAAE,GAAW,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAU,EAAE,CAAC,EAAI,EAAE,CAAC,CAAG,CAAE,OAAO,CAAG,CAW/L,SAAS8H,GAAclJ,EAAM,CAClC,GAAI,CACA,SAAA6E,CACN,EAAQ7E,EACJuB,EAAQR,GAAyBf,EAAMc,EAAS,EAC9CqI,EAAkBvJ,EAAAA,QAAQ,IAAMwJ,GAAYvE,CAAQ,EAAE,IAAIwE,GAASC,GAAgBD,EAAOE,EAAQ,EAAIF,EAAqBnE,EAAAA,IAAKqE,GAAU,CAC5I,MAAO,OAAOF,CAAK,EACnB,SAAU,OAAOA,CAAK,CAC1B,EAAK,OAAOA,CAAK,CAAC,CAAC,EAAG,CAACxE,CAAQ,CAAC,EAC9B,OAGEK,EAAAA,IAAKsE,GAAuBlE,GAAcA,GAAc,CAAA,EAAI/D,CAAK,EAAG,GAAI,CACtE,SAAU4H,CAChB,CAAK,CAAC,CAEN,CClCA,SAAS9D,GAAQrE,EAAGG,EAAG,CAAE,IAAI,EAAI,OAAO,KAAKH,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIE,EAAI,OAAO,sBAAsBF,CAAC,EAAGG,IAAMD,EAAIA,EAAE,OAAO,SAAUC,EAAG,CAAE,OAAO,OAAO,yBAAyBH,EAAGG,CAAC,EAAE,UAAY,CAAC,GAAI,EAAE,KAAK,MAAM,EAAGD,CAAC,CAAG,CAAE,OAAO,CAAG,CAC9P,SAASoE,GAActE,EAAG,CAAE,QAASG,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAI,EAAY,UAAUA,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAIkE,GAAQ,OAAO,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUlE,EAAG,CAAEoE,EAAgBvE,EAAGG,EAAG,EAAEA,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiBH,EAAG,OAAO,0BAA0B,CAAC,CAAC,EAAIqE,GAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUlE,EAAG,CAAE,OAAO,eAAeH,EAAGG,EAAG,OAAO,yBAAyB,EAAGA,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAOH,CAAG,CACtb,SAASuE,EAAgBvE,EAAGG,EAAG,EAAG,CAAE,OAAQA,EAAIqE,GAAerE,CAAC,KAAMH,EAAI,OAAO,eAAeA,EAAGG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAIH,EAAEG,CAAC,EAAI,EAAGH,CAAG,CACnL,SAASwE,GAAevE,EAAG,CAAE,IAAIwE,EAAIC,GAAazE,EAAG,QAAQ,EAAG,OAAmB,OAAOwE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAazE,EAAGE,EAAG,CAAE,GAAgB,OAAOF,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIyE,EAAIzE,EAAE,KAAKC,EAAGE,CAAc,EAAG,GAAgB,OAAOsE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBtE,IAAb,SAAiB,OAAS,QAAQF,CAAC,CAAG,CA0BvT,IAAIwI,GAAiB,IACjBC,GAAyC,SAAUA,EAA2B,CAChF,OAAAA,EAA0B,GAAQ,KAClCA,EAA0B,KAAU,OAC7BA,CACT,EAAEA,IAA6B,CAAA,CAAE,EACjC,MAAMC,UAA0BC,EAAAA,SAAU,CACxC,YAAYrI,EAAO,CACjB,MAAMA,CAAK,EACXgE,EAAgB,KAAM,SAAU,MAAM,EACtCA,EAAgB,KAAM,cAAe,MAAM,EAC3CA,EAAgB,KAAM,gBAAiB,MAAM,EAC7CA,EAAgB,KAAM,QAAS,MAAM,EACrCA,EAAgB,KAAM,2BAA4BsE,GAAQ,CAACC,EAASC,IAAUD,EAAQ,OAEtFE,GAAUA,EAAO,MAAM,YAAW,EAAG,QAAQD,EAAM,YAAW,CAAE,GAAK,CAAC,EAAG,CACvE,IAAK,GACX,CAAK,CAAC,EACF,GAAI,CACF,cAAAE,CACN,EAAQ,KAAK,MACTA,EAAgB3E,GAAc,CAC5B,UAAW,aACX,UAAW,CACT,gBAAiB,CACf,QAAS,EACnB,CACA,CACA,EAAO2E,CAAa,EAChB,KAAK,MAAQ,CACX,MAAO,GACP,gBAAiB,CAAA,EACjB,oBAAqB,EACrB,WAAY,GACZ,WAAY,IACZ,QAAS,GACT,cAAAA,CACN,EACI,KAAK,kBAAoB,KAAK,kBAAkB,KAAK,IAAI,EACzD,KAAK,eAAiB,KAAK,eAAe,KAAK,IAAI,EACnD,KAAK,kBAAoB,KAAK,kBAAkB,KAAK,IAAI,EACzD,KAAK,mBAAqB,KAAK,mBAAmB,KAAK,IAAI,EAC3D,KAAK,gBAAkB,KAAK,gBAAgB,KAAK,IAAI,EACrD,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,IAAI,EACvD,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,IAAI,EACvD,KAAK,iBAAmBC,GAAS,KAAK,iBAAkBT,EAAc,EACtE,KAAK,kBAAoB,KAAK,kBAAkB,KAAK,IAAI,EACzD,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,IAAI,EACvD,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,IAAI,EACvD,KAAK,OAAsBU,EAAM,UAAS,EAC1C,KAAK,YAA2BA,EAAM,UAAS,EAC/C,KAAK,cAA6BA,EAAM,UAAS,EACjD,KAAK,MAAqBA,EAAM,UAAS,CAC3C,CACA,eAAgB,CACV,KAAK,YAAY,SACnB,KAAK,SAAS,CACZ,WAAY,KAAK,YAAY,QAAQ,sBAAqB,EAAG,KACrE,CAAO,CAEL,CAEA,oBAAoBC,EAAO,CACzB,GAAI,CAACA,EACH,YAAK,SAAS,CACZ,QAAS,EACjB,CAAO,EACM,CACL,MAAOA,EACP,QAAS,EACjB,EAII,GAAI,CACF,QAAAN,CACN,EAAQ,KAAK,MACLO,EAASP,EAAQ,OAAOE,GAAUA,EAAO,MAAM,YAAW,IAAOI,EAAM,aAAa,EACxF,OAAIC,EAAO,OAAS,GAClB,KAAK,SAAS,CACZ,QAAS,EACjB,CAAO,EACM,CACL,MAAOD,EACP,QAAS,EACjB,IAEI,KAAK,SAAS,CACZ,QAAS,EACf,CAAK,EACM,CACL,MAAOC,EAAO,CAAC,EAAE,MACjB,QAAS,EACf,EACE,CAGA,iBAAiBD,EAAO,CACtB,GAAI,CACF,WAAAE,CACN,EAAQ,KAAK,MACL,CACF,MAAAC,EACA,QAAAC,CACN,EAAQ,KAAK,oBAAoBJ,CAAK,EAC9BE,GAAY,KAAK,oBAAoBF,CAAK,EAC9C,KAAK,aAAaG,EAAOC,CAAO,CAClC,CACA,aAAaD,EAAO,CAClB,IAAIC,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC9E,CACF,SAAAzG,CACN,EAAQ,KAAK,MACTA,EAASwG,EAAOC,CAAO,CACzB,CACA,oBAAoBC,EAAQ,CAC1B,IAAIC,EACA,CACF,QAAAZ,CACN,EAAQ,KAAK,MACL,CACF,WAAAQ,CACN,EAAQ,KAAK,MACLK,EAAkBF,EAAS,KAAK,yBAAyBX,EAASW,CAAM,EAAIX,EAC5Ec,EAAeD,EAAgB,SAAW,GAAKA,EAAgB,CAAC,EAAE,QAAUF,EAKhF,GAJA,KAAK,SAAS,CACZ,gBAAAE,EACA,oBAAqB,CAC3B,CAAK,EACGC,GAAgBN,EAAY,CAC9B,KAAK,UAAS,EACd,MACF,EACCI,EAAuB,KAAK,OAAO,WAAa,MAAQA,IAAyB,QAAUA,EAAqB,gBACnH,CACA,YAAa,CACX,KAAK,SAAS,CACZ,MAAO,EACb,CAAK,EACD,KAAK,aAAa,EAAE,CACtB,CACA,cAAe,CACb,KAAK,cAAa,CACpB,CACA,kBAAkBG,EAAO,CACvB,IAAIC,EACA,CACF,gBAAAH,EACA,oBAAAI,CACN,EAAQ,KAAK,MACLf,EAASW,EAAgBI,CAAmB,EAChD,OAAQF,EAAM,IAAG,CACf,IAAK,QACL,IAAK,aACHA,EAAM,gBAAe,EACrBA,EAAM,eAAc,EAChBb,GAAU,OACZ,KAAK,SAAS,CACZ,MAAOA,EAAO,MACd,QAAS,EACrB,CAAW,EACD,KAAK,aAAaA,EAAO,KAAK,GAEhC,KAAK,UAAS,GACbc,EAAsB,KAAK,MAAM,WAAa,MAAQA,IAAwB,QAAUA,EAAoB,MAAK,EAClH,MACF,IAAK,UACHD,EAAM,gBAAe,EACrBA,EAAM,eAAc,EACpB,KAAK,aAAalB,EAAkB,0BAA0B,EAAE,EAChE,MACF,IAAK,YACHkB,EAAM,gBAAe,EACrBA,EAAM,eAAc,EACpB,KAAK,aAAalB,EAAkB,0BAA0B,IAAI,EAClE,MACF,IAAK,MAGH,GAFAkB,EAAM,gBAAe,EACrBA,EAAM,eAAc,EAChBA,EAAM,SAAU,CAClB,KAAK,aAAalB,EAAkB,0BAA0B,EAAE,EAChE,KACF,CACA,KAAK,aAAaA,EAAkB,0BAA0B,IAAI,EAClE,MACF,IAAK,SACHkB,EAAM,eAAc,EACpBA,EAAM,gBAAe,EACrB,KAAK,UAAS,EACd,KAGR,CACE,CACA,aAAajC,EAAW,CACtB,GAAI,CACF,gBAAA+B,EACA,oBAAAI,CACN,EAAQ,KAAK,MACLC,EAAyBD,EACzBnC,IAAce,EAAkB,0BAA0B,GACxDoB,EAAsB,GACxBC,GAA0BA,EAAyB,GAAKL,EAAgB,OACxE,KAAK,SAAS,CACZ,oBAAqBK,CAC/B,CAAS,GACQD,IAAwB,IACjCC,EAAyBL,EAAgB,OAAS,EAClD,KAAK,SAAS,CACZ,oBAAqBK,CAC/B,CAAS,GAEMpC,IAAce,EAAkB,0BAA0B,MAC/DoB,EAAsBJ,EAAgB,SACxCK,GAA0BA,EAAyB,GAAKL,EAAgB,OACxE,KAAK,SAAS,CACZ,oBAAqBK,CAC/B,CAAS,GAGL,KAAK,qBAAqBA,CAAsB,CAClD,CACA,mBAAmBH,EAAO,CACxB,GAAI,CACF,QAAAI,CACN,EAAQ,KAAK,MACL,CACF,WAAAX,CACN,EAAQ,KAAK,MACLA,EACF,KAAK,kBAAkBO,CAAK,EACnBA,EAAM,MAAQ,QACvBI,EAAO,EACEJ,EAAM,MAAQ,UACvB,KAAK,WAAU,EACfA,EAAM,eAAc,EACpBA,EAAM,gBAAe,GACVA,EAAM,MAAQ,cAAgBA,EAAM,MAAQ,aAAeA,EAAM,MAAQ,OAASA,EAAM,MAAQ,SAC3G,KAAK,SAAQ,CAEjB,CACA,kBAAkBA,EAAO,CACvB,KAAK,SAAS,CACZ,MAAOA,EAAM,OAAO,KAC1B,CAAK,EACD,KAAK,iBAAiBA,EAAM,OAAO,KAAK,CAC1C,CACA,kBAAkBb,EAAQ,CACxB,IAAIkB,EACJ,KAAK,SAAS,CACZ,MAAOlB,EAAO,MACd,QAAS,EACf,CAAK,EACD,KAAK,aAAaA,EAAO,KAAK,EAC9B,KAAK,UAAS,GACbkB,EAAuB,KAAK,MAAM,WAAa,MAAQA,IAAyB,QAAUA,EAAqB,MAAK,CACvH,CACA,kBAAmB,CACjB,GAAI,CACF,WAAAZ,CACN,EAAQ,KAAK,MACJA,GACH,KAAK,SAAQ,CAEjB,CACA,kBAAmB,CACjB,GAAI,CACF,WAAAA,CACN,EAAQ,KAAK,MACJA,GACH,KAAK,SAAQ,CAEjB,CACA,gBAAgBO,EAAO,CACrB,GAAI,CACF,WAAAP,CACN,EAAQ,KAAK,MACLA,GAAcO,EAAM,yBAAyB,SAAW,KAAK,OAAO,UAAY,MAAQ,KAAK,OAAO,QAAQ,QAAQ,SAASA,EAAM,aAAa,GAGpJ,KAAK,UAAU,EAAK,CACtB,CACA,eAAeA,EAAO,CAEhBA,EAAM,gBAAkB,KAAK,MAAM,SAAWA,EAAM,yBAAyB,SAAW,KAAK,OAAO,UAAY,MAAQ,KAAK,OAAO,QAAQ,QAAQ,SAASA,EAAM,aAAa,GAGpL,KAAK,UAAU,EAAK,CACtB,CACA,kBAAmB,CACjB,IAAIM,GACHA,EAAuB,KAAK,MAAM,WAAa,MAAQA,IAAyB,QAAUA,EAAqB,MAAK,CACvH,CACA,kBAAmB,CACjB,GAAI,CACF,WAAAb,CACN,EAAQ,KAAK,MACLA,GACF,KAAK,SAAS,CACZ,WAAY,GACZ,oBAAqB,CAC7B,CAAO,CAEL,CACA,UAAW,CACT,GAAI,CACF,MAAAF,CACN,EAAQ,KAAK,MACT,KAAK,oBAAoBA,CAAK,EAC9B,KAAK,cAAa,EAClB,KAAK,SAAS,CACZ,WAAY,EAClB,CAAK,EAGD,OAAO,sBAAsB,IAAM,CACjC,IAAIgB,GACHA,EAAwB,KAAK,OAAO,WAAa,MAAQA,IAA0B,QAAUA,EAAsB,KAAI,CAC1H,CAAC,CACH,CACA,WAAY,CACV,IAAIC,EACAC,EAAa,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAKrF,GAJA,KAAK,SAAS,CACZ,WAAY,GACZ,oBAAqB,CAC3B,CAAK,EACGA,EAAY,CACd,IAAIC,GACHA,EAAuB,KAAK,MAAM,WAAa,MAAQA,IAAyB,QAAUA,EAAqB,MAAK,CACvH,EACCF,EAAwB,KAAK,OAAO,WAAa,MAAQA,IAA0B,QAAUA,EAAsB,KAAI,CAC1H,CACA,qBAAqBG,EAAO,CAC1B,GAAI,KAAK,cAAc,QAAS,CAC9B,IAAIC,GACHA,EAAwB,KAAK,cAAc,QAAQ,SAAS,KAAKD,CAAK,KAAO,MAAQC,IAA0B,QAAUA,EAAsB,eAAe,CAC7J,SAAU,SACV,MAAO,SACf,CAAO,CACH,CACF,CACA,mBAAoB,CAClB,GAAI,CACF,WAAAC,CACN,EAAQ,KAAK,MACT,OAAoBxG,EAAAA,IAAK,MAAO,CAC9B,UAAWyG,EAAW,aAAa,EACnC,IAAK,KAAK,cACV,KAAM,eACN,UAAW,KAAK,kBAChB,MAAO,CACL,MAAOD,CACf,EACM,OAAQ,KAAK,eACb,SAAU,KAAK,cAAa,CAClC,CAAK,CACH,CACA,eAAgB,CACd,GAAI,CACF,YAAAE,CACN,EAAQ,KAAK,MACL,CACF,MAAAxB,EACA,gBAAAO,CACN,EAAQ,KAAK,MACT,OAAIP,GAASO,EAAgB,SAAW,EAClBzF,EAAAA,IAAK,MAAO,CAC9B,UAAW,WACX,SAAU0G,CAClB,CAAO,EAEIjB,EAAgB,IAAI,CAACX,EAAQwB,IAAU,KAAK,aAAaxB,EAAQwB,CAAK,CAAC,CAChF,CACA,aAAaxB,EAAQwB,EAAO,CAC1B,GAAI,CACF,oBAAAT,CACN,EAAQ,KAAK,MACLc,EAAM,UAAU,OAAOL,EAAO,GAAG,EAAE,OAAOxB,EAAO,KAAK,EAC1D,OAAoB9E,EAAAA,IAAK,SAAU,CACjC,KAAM,SACN,UAAWyG,EAAW,iBAAkB,CACtC,kBAAmBZ,IAAwBS,CACnD,CAAO,EACD,QAAS,IAAM,KAAK,kBAAkBxB,CAAM,EAC5C,QAAS,IAAM,KAAK,SAAS,CAC3B,oBAAqBwB,CAC7B,CAAO,EACD,SAAUxB,EAAO,KACvB,EAAO6B,CAAG,CACR,CACA,QAAS,CACP,GAAI,CACF,QAAA/B,EACA,iBAAAgC,EACA,SAAAC,EACA,UAAA5G,EACA,aAAA6G,EACA,WAAAC,EACA,cAAeC,CACrB,EAAQ,KAAK,MACL,CACF,MAAA9B,EACA,WAAAE,EACA,cAAAL,EACA,QAAAkC,CACN,EAAQ,KAAK,MACT,OAAoBnH,EAAAA,KAAM,MAAO,CAC/B,UAAW,gBACX,IAAK,KAAK,YACV,SAAU,CAAcE,EAAAA,IAAK,QAAS,CACpC,MAAOkF,GAAS4B,EAChB,UAAWL,EAAW,eAAgBxG,EAAW,YAAa,CAC5D,aAAcgH,GAAW,CAAC7B,CACpC,CAAS,EACD,IAAK,KAAK,MACV,SAAU,KAAK,kBACf,YAAawB,GAAoBhC,EAAQ,CAAC,EAAE,MAC5C,SAAUiC,EACV,QAAS,KAAK,iBACd,QAAS,KAAK,iBACd,OAAQ,KAAK,gBACb,UAAW,KAAK,mBAChB,WAAYE,EACZ,cAAeC,CACvB,CAAO,EAAgBhH,EAAAA,IAAKkH,GAAQ,CAC5B,IAAK,KAAK,OACV,QAASnC,EACT,UAAW0B,EAAW,gCAAgC,EACtD,UAAW,KAAK,iBAChB,SAAU,KAAK,iBACf,SAAU,KAAK,kBAAiB,CACxC,CAAO,CAAC,CACR,CAAK,CACH,CACF,CACApG,EAAgBoE,EAAmB,eAAgB,CACjD,UAAW,CAEX,EACA,iBAAkB,GAClB,SAAU,GACV,UAAW,GACX,aAAc,GACd,cAAe,KACf,WAAY,GACZ,SAAU,CAEV,EACA,YAAa,0BACb,cAAe,MACjB,CAAC,EACDpE,EAAgBoE,EAAmB,4BAA6BD,EAAyB,ECxdzF,SAAS2C,GAAmBrM,EAAM,CAChC,GAAI,CACF,UAAAmF,EAAY,GACZ,MAAOmH,EACP,SAAAvI,EACA,WAAAkI,EAAa,GACb,YAAAM,EAAc,GACd,SAAAR,EAAW,GACX,UAAAS,EAAY,GACZ,GAAAC,EAAK,GACL,cAAeP,CACnB,EAAMlM,EACA,CAACuK,EAAOmC,CAAQ,EAAItN,EAAAA,SAASkN,CAAU,EACvC,CAACK,EAAgBC,CAAiB,EAAIxN,EAAAA,SAAS,EAAK,EACpDyB,EAAUJ,EAAAA,OAAO,IAAI,EACzBC,EAAAA,UAAU,UAA6B,CAErCgM,EAASJ,CAAU,CACrB,EAAG,CAACA,CAAU,CAAC,EACf,SAASO,EAAQ9C,EAAO,CAItB,OAAOA,EAAM,KAAI,EAAG,MAAMyC,CAAS,EAAE,OAAOM,GAAUA,CAAM,EAC3D,KAAK;AAAA,EAAK,OAAON,EAAU,KAAI,CAAE,CAAC,CACrC,CACA,SAASO,EAAQhD,EAAO,CACtB,OAAOA,EAAM,MAAM;AAAA,CAAI,EAAE,IAAI+C,GAAUA,EAAO,KAAI,CAAE,EAAE,KAAK,GAAG,CAChE,CACA,SAASE,GAAoB,CAC3B,GAAKnM,EAAQ,QAGb,CAAAA,EAAQ,QAAQ,MAAM,OAAS,IAC/B,IAAIoM,EAAgBpM,EAAQ,QAAQ,cAAgBA,EAAQ,QAAQ,aAAeA,EAAQ,QAAQ,cAE/FoM,EAAgB,IAAGpM,EAAQ,QAAQ,MAAM,OAAS,GAAG,OAAOoM,EAAe,IAAI,GACrF,CACA,SAASC,EAAarC,EAAO,CAC3B,IAAIsC,EAAWtC,EAAM,OAAO,MACxB8B,IACEH,IAAWW,EAAWN,EAAQM,CAAQ,GAC1CP,EAAkB,EAAK,GAEzBF,EAASS,CAAQ,EACjBpJ,EAASoJ,CAAQ,CACnB,CACA,SAASC,GAAc,CAChBvM,EAAQ,UAGT2L,IACFE,EAASG,EAAQtC,CAAK,CAAC,EACvByC,EAAiB,GAEnBnM,EAAQ,QAAQ,WAAa,EAE/B,CAKA,SAASwM,GAAkB,CACpBxM,EAAQ,SACT,SAAS,gBAAkBA,EAAQ,SACvCA,EAAQ,QAAQ,MAAK,CACvB,CACA,SAASyM,GAAa,CAChBd,IACFE,EAASK,EAAQxC,CAAK,CAAC,EACvBxG,EAASgJ,EAAQxC,CAAK,CAAC,EAE3B,CACA,SAASgD,GAAc,CACrBX,EAAkB,EAAI,CACxB,CACAlM,OAAAA,EAAAA,UAAU,UAAuB,CAC/BsM,EAAiB,CACnB,EAAG,CAACzC,CAAK,CAAC,EACUrF,EAAAA,IAAK,WAAY,CACnC,IAAKrE,EACL,GAAI4L,EACJ,UAAWd,EAAWxG,EAAW,mCAAmC,EACpE,YAAaoH,EACb,MAAOhC,EACP,KAAM,EACN,SAAU2C,EACV,QAASE,EACT,YAAaC,EACb,OAAQC,EACR,QAASC,EACT,WAAYtB,EACZ,SAAUF,EACV,cAAeG,CACnB,CAAG,CACH,CCzGA,SAAS7G,GAAQrE,EAAGG,EAAG,CAAE,IAAI,EAAI,OAAO,KAAKH,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIE,EAAI,OAAO,sBAAsBF,CAAC,EAAGG,IAAMD,EAAIA,EAAE,OAAO,SAAUC,EAAG,CAAE,OAAO,OAAO,yBAAyBH,EAAGG,CAAC,EAAE,UAAY,CAAC,GAAI,EAAE,KAAK,MAAM,EAAGD,CAAC,CAAG,CAAE,OAAO,CAAG,CAC9P,SAASoE,GAActE,EAAG,CAAE,QAASG,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAI,EAAY,UAAUA,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAIkE,GAAQ,OAAO,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUlE,EAAG,CAAEoE,EAAgBvE,EAAGG,EAAG,EAAEA,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiBH,EAAG,OAAO,0BAA0B,CAAC,CAAC,EAAIqE,GAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUlE,EAAG,CAAE,OAAO,eAAeH,EAAGG,EAAG,OAAO,yBAAyB,EAAGA,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAOH,CAAG,CACtb,SAASuE,EAAgBvE,EAAGG,EAAG,EAAG,CAAE,OAAQA,EAAIqE,GAAerE,CAAC,KAAMH,EAAI,OAAO,eAAeA,EAAGG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAIH,EAAEG,CAAC,EAAI,EAAGH,CAAG,CACnL,SAASwE,GAAevE,EAAG,CAAE,IAAIwE,EAAIC,GAAazE,EAAG,QAAQ,EAAG,OAAmB,OAAOwE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAazE,EAAGE,EAAG,CAAE,GAAgB,OAAOF,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIyE,EAAIzE,EAAE,KAAKC,EAAGE,CAAc,EAAG,GAAgB,OAAOsE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBtE,IAAb,SAAiB,OAAS,QAAQF,CAAC,CAAG,CASvT,IAAIuM,GAAMC,GAAI,OAAO,aAAa,EAElC,MAAMC,UAAoBC,EAAAA,aAAc,CACtC,OAAO,kBAAkB,EAAG,CACtB,EAAE,UAGN,EAAE,gBAAe,EACjB,EAAE,eAAc,EAClB,CACA,YAAYpM,EAAO,CACjB,MAAMA,CAAK,EACXgE,EAAgB,KAAM,YAAa,MAAM,EACzCA,EAAgB,KAAM,WAAY,MAAM,EACxCA,EAAgB,KAAM,mBAAoB,MAAM,EAChDA,EAAgB,KAAM,eAAgB,MAAM,EAC5CA,EAAgB,KAAM,MAAO,MAAM,EACnCA,EAAgB,KAAM,kBAAmB,MAAM,EAC/C,KAAK,WAAa,KAAK,WAAW,KAAK,IAAI,EAC3C,KAAK,mBAAqB,KAAK,mBAAmB,KAAK,IAAI,EAC3D,KAAK,cAAgB,KAAK,cAAc,KAAK,IAAI,EACjD,KAAK,oBAAsB,KAAK,oBAAoB,KAAK,IAAI,EAC7D,KAAK,0BAA4B,KAAK,0BAA0B,KAAK,IAAI,EACzE,KAAK,wBAA0B,KAAK,wBAAwB,KAAK,IAAI,EACrE,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,IAAI,EACvD,KAAK,mBAAqB,KAAK,mBAAmB,KAAK,IAAI,EAC3D,KAAK,UAAyB4E,EAAM,UAAS,EAC7C,KAAK,SAAW,SAAS,cACzB,KAAK,iBAAgCA,EAAM,UAAS,EACpD,KAAK,aAAe,EACpB,KAAK,IAAM,EACX,KAAK,gBAAkB,CACrB,IAAK5I,EAAM,IACX,KAAMA,EAAM,IAClB,EACI,KAAK,MAAQ,CACX,UAAW,CAAA,EACX,aAAc,CAAA,EACd,cAAe,KACf,YAAa,GACb,WAAY,KACZ,YAAa,KACb,mBAAoB,EACpB,oBAAqB,EACrB,cAAe,GACf,WAAY,EAClB,CACE,CACA,mBAAoB,CAClB,KAAK,SAAQ,EACb,KAAK,eAAc,EACnB,OAAO,iBAAiB,SAAU,KAAK,kBAAkB,EAMzD,KAAK,IAAM,OAAO,sBAAsB,IAAM,CAC5C,IAAIqM,GACHA,EAAwB,KAAK,UAAU,WAAa,MAAQA,IAA0B,QAAUA,EAAsB,MAAK,EAC5H,GAAI,CACF,aAAAC,CACR,EAAU,KAAK,MACTA,EAAa,IAAI,CACnB,CAAC,CACH,CACA,mBAAmBC,EAAWC,EAAW,CACvC,GAAI,CACF,QAAAnG,CACN,EAAQ,KAAK,MACL,CACF,cAAAoG,CACN,EAAQ,KAAK,MACT,GAAIA,IAAkBD,EAAU,cAC9B,GAAIC,GAAiB,KAAM,CACzB,IAAIC,GAEHA,EAAyB,KAAK,UAAU,WAAa,MAAQA,IAA2B,QAAUA,EAAuB,MAAK,CACjI,MAEE,KAAK,yBAAwB,EAGjC,GAAIH,EAAU,UAAYlG,IACxB,KAAK,SAAQ,EACT,KAAK,UAAU,SAAW,MAAQ,CAAC,KAAK,UAAU,QAAQ,SAAS,SAAS,aAAa,GAAG,CAC9F,IAAIsG,GACHA,EAAyB,KAAK,UAAU,WAAa,MAAQA,IAA2B,QAAUA,EAAuB,MAAK,CACjI,CAEF,KAAK,eAAc,CACrB,CACA,sBAAuB,CACrB,KAAK,eAAc,EACnB,OAAO,oBAAoB,SAAU,KAAK,kBAAkB,EAC5D,qBAAqB,KAAK,GAAG,CAC/B,CACA,kBAAmB,CACjB,GAAI,CACF,QAAApE,CACN,EAAQ,KAAK,MACT,GAAIA,EAAQ,wBAA0B,QAAaA,EAAQ,sBAAuB,CAChF,GAAI,CACF,cAAAqE,CACR,EAAU,KAAK,MACT,OAAOA,CACT,CACA,OAAO,KAAK,cAAa,CAC3B,CACA,iBAAiB3C,EAAO,CACtB,GAAI,CACF,QAAA1B,CACN,EAAQ,KAAK,MACLA,EAAQ,wBAA0B,QAAaA,EAAQ,sBACzD,KAAK,SAAS,CACZ,cAAe0B,CACvB,CAAO,EAED,KAAK,cAAcA,CAAK,CAE5B,CACA,eAAgB,CACd,GAAI,CACF,WAAA4C,CACN,EAAQ,KAAK,MACT,OAAOA,CACT,CACA,cAAc5C,EAAO,CACnB,KAAK,SAAS,CACZ,WAAYA,CAClB,CAAK,CACH,CACA,UAAW,CAET,KAAK,eAAc,EACnB,qBAAqB,KAAK,GAAG,EAC7B,GAAI,CACF,QAAA1B,CACN,EAAQ,KAAK,MACLqE,EAAgBrE,EAAQ,qBACxBqE,IAAkB,SACpBA,EAAgB,IAOlB,OALI,CACF,QAAAvG,CACN,EAAQ,KAAK,MACLyG,EAAYC,EAAmB,aAAa1G,CAAO,EACnD2G,EAAkB,CAAA,EACb9I,EAAI4I,EAAU,OAAS,EAAG5I,GAAK,EAAGA,GAAK,EAAG,CACjD,IAAI+I,EAAWH,EAAU5I,CAAC,EACtB+I,aAAoB,QACtB,KAAK,gBAAgBA,CAAQ,EAE7BD,EAAgB,KAAKC,CAAQ,CAEjC,CACA,KAAK,SAAS,CACZ,WAAY,GACZ,cAAAL,EACA,cAAe,KACf,UAAWG,EAAmB,YAAYC,CAAe,CAC/D,CAAK,CACH,CACA,gBAAgBE,EAAS,CAEvB,IAAIC,EAAqBC,GAAa,eAAeF,CAAO,EAC5D,KAAK,SAASG,IAAU,CACtB,aAAcA,EAAM,aAAa,OAAOF,CAAkB,CAChE,EAAM,EACFA,EAAmB,KAAKG,GAAqB,CAC3C,KAAK,SAASD,GAAS,CACrB,IAAIpD,EAAQoD,EAAM,aAAa,QAAQF,CAAkB,EACzD,GAAIlD,GAAS,EAAG,CACd,IAAIsD,EAAeF,EAAM,aAAa,MAAK,EAC3C,OAAAE,EAAa,OAAOtD,EAAO,CAAC,EACrB,CACL,UAAW8C,EAAmB,YAAYM,EAAM,UAAU,OAAOC,CAAiB,CAAC,EACnF,aAAAC,CACZ,CACQ,CAEA,OAAO,IACT,CAAC,CACH,EAAGC,GAAS,CACNJ,GAAa,WAAWI,CAAK,IAKjC,KAAK,SAASH,GAAS,CACrB,IAAIpD,EAAQoD,EAAM,aAAa,QAAQF,CAAkB,EACzD,GAAIlD,GAAS,EAAG,CACd,IAAIsD,EAAeF,EAAM,aAAa,MAAK,EAC3C,OAAAE,EAAa,OAAOtD,EAAO,CAAC,EACrB,CACL,aAAAsD,CACZ,CACQ,CACA,OAAO,IACT,CAAC,EAGDtB,GAAI,MAAMuB,CAAK,EACjB,CAAC,CACH,CACA,gBAAiB,CACf,GAAI,CACF,aAAAD,CACN,EAAQ,KAAK,MACTA,EAAa,IAAIvK,GAAQA,EAAK,OAAM,CAAE,CACxC,CAMA,0BAA2B,CACzB,GAAI,KAAK,iBAAiB,UAAY,KACtC,KAAIyK,EAAa,KAAK,iBAAiB,QAAQ,sBAAqB,EAGpE,KAAK,SAAS,CACZ,WAAYA,EAAW,IACvB,YAAaA,EAAW,MACxB,oBAAqBA,EAAW,OAChC,mBAAoBA,EAAW,KACrC,CAAK,EACH,CAUA,gBAAiB,CACf,IAAIC,EAAwBC,EAAwBC,EAAwBC,EACxE,CACF,QAAAtF,EACA,eAAAuF,EACA,mBAAAC,EACA,oBAAAC,EACA,IAAKC,EACL,KAAMC,CACZ,EAAQ,KAAK,MACT,GAAI,GAAC,KAAK,UAAU,SAAW3F,EAAQ,qBAAuB,MAAQA,EAAQ,qBAO9E,IAAI,CACF,IAAA5G,EACA,KAAAI,CACN,EAAQ,KAAK,gBACL,CACF,MAAA/D,EACA,OAAAE,CACN,GAASwP,GAA0BC,EAAyB,KAAK,UAAU,WAAa,MAAQA,IAA2B,OAAS,OAASA,EAAuB,sBAAqB,KAAQ,MAAQD,IAA2B,OAASA,EAAyB,CAChQ,MAAO,EACP,OAAQ,CACd,EACQS,IAAgBP,GAA0BC,EAAyB,KAAK,UAAU,WAAa,MAAQA,IAA2B,OAAS,OAASA,EAAuB,gBAAkB,MAAQD,IAA2B,OAASA,EAAyB,GAAK,OAAO,YAC9Q1P,IAAW,GAAKF,IAAU,IAM1B2D,EAAMzD,EAAS,OAAO,cAEpByD,EAAMzD,EAAS8P,EAAsB,EAEvCrM,GAAOzD,EAAS8P,EAGhBrM,EAAM,OAAO,YAAczD,GAG3B6D,EAAO/D,EAAQ,OAAO,aAExB+D,EAAOA,EAAO/D,EAAQ+P,IAEpBG,IAAYnM,GAAQkM,IAAWtM,KAEjC,KAAK,SAAS,CACZ,YAAAwM,CACR,CAAO,EACDL,EAAenM,EAAKI,CAAI,IAE5B,CAGA,oBAAqB,CACd,KAAK,UAAU,SAGpB,KAAK,UAAU,EAAI,CACrB,CACA,WAAW,EAAG,CACZ,GAAI,CAAC,KAAK,UAAU,QAAS,CAC3BkK,GAAI,KAAK,oBAAoB,EAC7B,MACF,CACA,GAAI,CAAC,KAAK,UAAU,QAAQ,SAAS,EAAE,aAAa,EAAG,CAGrD,QAFI3M,EAAU,EAAE,cACZ8O,EAAqB,GAClB9O,GAAW,CAAC8O,GACjBA,EAAqB9O,EAAQ,aAAa,sBAAsB,EAChEA,EAAUA,EAAQ,cAEf8O,GAEH,KAAK,UAAU,EAAI,CAEvB,CACF,CAGA,YAAY9D,EAAK,CACf,GAAI,CACF,KAAAvI,CACN,EAAQ,KAAK,MACT,OAAOuI,IAAQ,UAAYvI,EAAO,GAAKuI,IAAQ,cAAgBA,IAAQ,WACzE,CACA,cAAc,EAAG,CACf,GAAI,CACF,UAAAwC,CACN,EAAQ,KAAK,MACLuB,EAAW,KAAK,iBAAgB,EAChCC,EAAWD,EACXE,EAAc,GAClB,GAAI,EAAE,MAAQ,SAAW,EAAE,MAAQ,IAAK,CAClCF,GAAY,GAAKA,EAAWvB,EAAU,QACxC,KAAK,oBAAoBA,EAAUuB,CAAQ,EAAG,CAAC,EAEjD,MACF,CAcA,GAbI,EAAE,MAAQ,aACRA,GAAY,GAAKA,GAAYvB,EAAU,OACzCyB,EAAc,GAEdD,EAAW,EAEJ,KAAK,YAAY,EAAE,GAAG,EAC/BA,EAAW,KACF,EAAE,MAAQ,WAAa,EAAE,UAAY,EAAE,MAAQ,MACxDA,EAAWvB,EAAmB,gBAAgBuB,EAAU,GAAIxB,CAAS,GAC5D,EAAE,MAAQ,aAAe,EAAE,MAAQ,SAC5CwB,EAAWvB,EAAmB,gBAAgBuB,EAAU,EAAGxB,CAAS,GAElEyB,EAAa,CACf,KAAK,YAAYF,CAAQ,EACzB,EAAE,eAAc,EAChB,EAAE,gBAAe,EACjB,MACF,CACIA,IAAaC,IACXA,IAAa,KACf,KAAK,iBAAiBA,CAAQ,GAE9B,KAAK,UAAS,EACV,KAAK,oBAAoB,aAC3B,KAAK,SAAS,MAAK,GAGvB,EAAE,eAAc,EAChB,EAAE,gBAAe,EAErB,CACA,YAAYrE,EAAO,CACjB,GAAI,CACF,UAAA6C,EACA,cAAAL,CACN,EAAQ,KAAK,MACL+B,EAAa1B,EAAU7C,CAAK,EAAE,QAAUA,EAAQ,KAChDwC,IAAkB+B,GACtB,KAAK,SAAS,CACZ,cAAeA,EACf,WAAY,KACZ,YAAa,IACnB,CAAK,CACH,CACA,WAAY,CACV,IAAIC,EAAW,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC/E,CACF,UAAAC,EACA,aAAAC,CACN,EAAQ,KAAK,MACT,qBAAqB,KAAK,GAAG,EAC7B,KAAK,IAAM,OAAO,sBAAsB,IAAM,CAC5CD,EAAUD,CAAQ,EAClBE,EAAa,IAAI,CACnB,CAAC,CACH,CACA,cAAe,CACb,KAAK,SAAS,CACZ,cAAe,IACrB,CAAK,CACH,CACA,mBAAmBC,EAAe,CAC5BA,EACF,KAAK,UAAU,EAAI,EAEnB,KAAK,aAAY,CAErB,CACA,oBAAoB3B,EAAUxN,EAAG,CAC/BA,EAAE,eAAc,EAChBA,EAAE,gBAAe,EACjB,GAAI,CACF,UAAAqN,CACN,EAAQ,KAAK,MACLG,GAAY,OAASA,EAAS,WAAa,QAAa,CAACA,EAAS,YAChEA,EAAS,SAAW,KACtB,KAAK,YAAYH,EAAU,QAAQG,CAAQ,CAAC,EACnCA,EAAS,QAAU,OAC5BA,EAAS,OAAOxN,EAAE,WAAW,EAC7B,KAAK,UAAU,EAAI,GAGzB,CACA,0BAA0BwN,EAAUxN,EAAG,CACjCA,EAAE,SAGN,KAAK,oBAAoBwN,EAAUxN,CAAC,CACtC,CACA,wBAAwBwN,EAAU,CAChC,GAAI,CACF,UAAAH,CACN,EAAQ,KAAK,MACL+B,EAAa/B,EAAU,QAAQG,CAAQ,EAC3C,KAAK,cAAc4B,CAAU,EACzBA,GAAc,GAAKA,EAAa/B,EAAU,SAAWG,EAAS,WAAa,QAAa,CAACA,EAAS,WACpG,KAAK,YAAY4B,CAAU,CAE/B,CACA,kBAAmB,CACjB,KAAK,cAAc,EAAE,CACvB,CACA,QAAS,CAkBP,QAjBIC,EAAmB,CAAA,EACnB,CACF,IAAAnN,EACA,KAAAI,CACN,EAAQ,KAAK,MACL,CACF,cAAA0K,EACA,YAAA0B,EACA,cAAAvB,EACA,UAAAE,EACA,WAAAD,EACA,aAAAU,EACA,WAAAwB,EACA,YAAAC,EACA,mBAAAjB,EACA,oBAAAC,CACN,EAAQ,KAAK,MACA9J,EAAI,EAAGA,EAAI4I,EAAU,OAAQ5I,GAAK,EAAG,CAC5C,IAAI+I,EAAWH,EAAU5I,CAAC,EACtBA,EAAI,GAAK+I,EAAS,QAAUH,EAAU5I,EAAI,CAAC,EAAE,OAC/C4K,EAAiB,KAAkBnL,EAAAA,IAAK,KAAM,CAAA,EAAI,GAAG,OAAOO,EAAG,YAAY,CAAC,CAAC,EAE/E,IAAI+K,EAA+BtL,EAAAA,IAAKuL,GAAiB,CACvD,IAAKzC,IAAkBvI,EAAI,KAAK,iBAAmB,KACnD,mBAAoB0I,IAAkB1I,EACtC,gBAAiB2I,IAAe3I,EAChC,SAAU+I,EACV,UAAW,KAAK,mBAChB,gBAAiB,KAAK,oBACtB,oBAAqB,KAAK,wBAC1B,sBAAuB,KAAK,yBACpC,EAAS/I,CAAC,EACJ4K,EAAiB,KAAKG,CAAe,CACvC,CACA,IAAIE,EAAiB,KACjB5B,EAAa,OAAS,IACxB4B,EAA8BxL,EAAAA,IAAK,MAAO,CACxC,UAAW,UACX,SAAuBA,EAAAA,IAAKyL,GAAgB,CAC1C,UAAW,gCACrB,CAAS,CACT,CAAO,GAEH,GAAI,CACF,UAAAC,EACA,cAAe1E,CACrB,EAAQ,KAAK,MAGL2E,EAAc7C,IAAkB,MAAQsC,IAAe,MAAQC,IAAgB,KACnF,OAAoBvL,EAAAA,KAAMC,EAAAA,SAAW,CACnC,SAAU,CAAcD,EAAAA,KAAM,MAAO,CACnC,UAAW2G,EAAW,CACpB,eAAgB+D,CAC1B,EAAW,wBAAwB,EAC3B,MAAOpK,GAAc,CACnB,IAAApC,EACA,KAAAI,CACV,EAAWsN,CAAS,EACZ,IAAK,KAAK,UACV,uBAAwB,GACxB,OAAQ,KAAK,WACb,UAAW,KAAK,cAChB,aAAc,KAAK,iBACnB,cAAelD,EAAY,kBAC3B,KAAM,WACN,SAAU,EACV,cAAexB,EACf,SAAU,CAACmE,EAAkBK,CAAc,CACnD,CAAO,EAAGG,GAAe7C,IAAkB,MAAQsC,IAAe,MAAQC,IAAgB,MAAqBrL,EAAAA,IAAKwI,EAAa,CACzH,QAASW,EAAUL,CAAa,EAAE,SAAW,CAAA,EAC7C,UAAW,KAAK,mBAChB,IAAKsC,EACL,KAAMC,EACN,eAAgB,CAACO,EAAaC,IAAiB,CAC7C,KAAK,SAAS,CACZ,WAAYD,EACZ,YAAaC,CACzB,CAAW,CACH,EACA,mBAAoBzB,EACpB,oBAAqBC,CAC7B,EAAS,OAAO,OAAOvB,CAAa,CAAC,CAAC,CACtC,CAAK,CACH,CACF,CACAzI,EAAgBmI,EAAa,eAAgB,CAC3C,mBAAoB,EACpB,oBAAqB,EACrB,WAAY,CAEZ,EACA,cAAe,CAEf,EACA,cAAe,CAEf,EACA,QAAS,CAAA,EACT,UAAW,CAAA,EACX,cAAe,MACjB,CAAC,EC/iBD,SAASnI,GAAgBvE,EAAGG,EAAG,EAAG,CAAE,OAAQA,EAAIqE,GAAerE,CAAC,KAAMH,EAAI,OAAO,eAAeA,EAAGG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAIH,EAAEG,CAAC,EAAI,EAAGH,CAAG,CACnL,SAASwE,GAAevE,EAAG,CAAE,IAAIwE,EAAIC,GAAazE,EAAG,QAAQ,EAAG,OAAmB,OAAOwE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAazE,EAAGE,EAAG,CAAE,GAAgB,OAAOF,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIyE,EAAIzE,EAAE,KAAKC,EAAGE,CAAc,EAAG,GAAgB,OAAOsE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBtE,IAAb,SAAiB,OAAS,QAAQF,CAAC,CAAG,CASvT,MAAM+P,WAAwBpH,EAAAA,SAAU,CACtC,YAAYrI,EAAO,CACjB,MAAMA,CAAK,EACXgE,GAAgB,KAAM,YAAa,MAAM,EACzCA,GAAgB,KAAM,WAAY,MAAM,EACxC,KAAK,gBAAkB,KAAK,gBAAgB,KAAK,IAAI,EACrD,KAAK,kBAAoB,KAAK,kBAAkB,KAAK,IAAI,EACzD,KAAK,UAAyB4E,EAAM,UAAS,EAC7C,KAAK,SAAwBA,EAAM,UAAS,EAC5C,KAAK,MAAQ,CACX,QAAS,KACT,KAAM,EACN,IAAK,CACX,CACE,CACA,mBAAoB,CAClB,IAAIyD,GACCA,EAAwB,KAAK,UAAU,WAAa,MAAQA,IAA0B,QAAUA,EAAsB,eACzH,KAAK,UAAU,QAAQ,cAAc,iBAAiB,cAAe,KAAK,iBAAiB,CAE/F,CACA,sBAAuB,CACrB,IAAIK,GACCA,EAAyB,KAAK,UAAU,WAAa,MAAQA,IAA2B,QAAUA,EAAuB,eAC5H,KAAK,UAAU,QAAQ,cAAc,oBAAoB,cAAe,KAAK,iBAAiB,CAElG,CACA,kBAAkB,EAAG,CACnB,GAAK,KAAK,UAAU,QAGpB,KAAIe,EAAa,KAAK,UAAU,QAAQ,sBAAqB,EACzD9L,EAAM,EAAE,QAAU8L,EAAW,IAC7B1L,EAAO,EAAE,QAAU0L,EAAW,KAC9B,CACF,QAAApH,CACN,EAAQ,KAAK,MAKT,GAAIA,GAAW,MAAQ,EAAE,SAAW,KAAK,UAAU,QAAS,CAG1D,EAAE,eAAc,EAMhB,KAAK,SAAS,CACZ,QAAS,IACjB,EAAS,IAAM,CACP,IAAI/G,EAAU,SAAS,iBAAiByC,EAAMJ,CAAG,EAE7C+N,EAAa,IAAI,WAAW,cAAe,CAC7C,QAAS,EAAE,QACX,QAAS,EAAE,QACX,QAAS,GACT,WAAY,EACtB,CAAS,EACDpQ,GAAY,MAA8BA,EAAQ,cAAcoQ,CAAU,CAC5E,CAAC,EACD,MACF,CACA,GAAK3C,EAAmB,qBAAqB,CAAC,GAI1C,IAAE,SAAW,EAAE,SAInB,KAAI4C,EAAiB5C,EAAmB,aAAa,EAAE,cAAc,EACjE4C,EAAe,SAAW,IAM9B,EAAE,eAAc,EAChB,KAAK,SAAS,CACZ,QAASA,EACT,IAAAhO,EACA,KAAAI,CACN,CAAK,IACH,CACA,gBAAgB6N,EAAM,CAChBA,IAAS,KAAK,SAAS,SACzB,KAAK,SAAS,CACZ,QAAS,IACjB,CAAO,CAEL,CACA,QAAS,CACP,IAAIA,EAAO,KACP,CACF,cAAejF,CACrB,EAAQ,KAAK,MACL,CACF,QAAAtE,EACA,IAAA1E,EACA,KAAAI,CACN,EAAQ,KAAK,MACT,OAAIsE,IACFuJ,EAAoBjM,EAAAA,IAAKwI,EAAa,CACpC,IAAK,KAAK,SACV,QAAS9F,EACT,aAAc,KAAK,gBACnB,IAAK1E,EACL,KAAMI,EACN,eAAgB,CAACwN,EAAaC,IAAiB,CAC7C,KAAK,SAAS,CACZ,IAAKD,EACL,KAAMC,CAClB,CAAW,CACH,EACA,cAAe7E,CACvB,CAAO,GAEiBhH,EAAAA,IAAK,MAAO,CAC9B,UAAWyG,EAAW,oBAAqB,CACzC,OAAQ/D,CAChB,CAAO,EACD,IAAK,KAAK,UACV,SAAUuJ,CAChB,CAAK,CACH,CACF,CCrIA,IAAI3D,GAAMC,GAAI,OAAO,WAAW,EAC5B2D,GAAe,2CACfC,GAAW,CAAC,WAAY,WAAY,UAAU,EAClD,SAASC,GAAmB/G,EAAO,CAEjC,OAAIA,GAAS,KACJ,GAAG,OAAOA,EAAM,UAAU,EAAG,CAAC,EAAE,QAAQ,UAAW,GAAG,CAAC,EAAE,OAAO,WAAW,UAAUA,EAAM,MAAM,CAAC,EAEpGA,CACT,CAKG,IAACgH,GAAyBpH,EAAM,WAAW,CAAC5I,EAAOxC,IAAQ,CAC5D,GAAI,CACF,mBAAAyS,EAAqB,GACrB,UAAArM,EAAY,GACZ,SAAApB,EAAW0C,EACX,MAAO6F,EAAa,EACpB,QAAAmF,EAAUhL,EACV,OAAAiL,EAASjL,EACT,SAAAkL,EAAWlL,EACX,cAAeyF,CACnB,EAAM3K,EACA,CAACgJ,EAAOmC,CAAQ,EAAItN,EAAAA,SAASwS,GAAU,WAAWtF,CAAU,CAAC,EAC7DuF,EAAiBpR,EAAAA,OAAO6L,CAAU,EAClC,CAACwF,EAAWC,CAAa,EAAI3S,WAAQ,EACrC4S,EAAWvR,EAAAA,OAAO,IAAI,EAC1BwR,EAAAA,oBAAoBlT,EAAK,KAAO,CAC9B,MAAO,IAAM,CACX,IAAImT,GACHA,EAAoBF,EAAS,WAAa,MAAQE,IAAsB,QAAUA,EAAkB,MAAK,CAC5G,EACA,aAAcC,GAAgB,CAC5B,IAAIC,GACHA,EAAqBJ,EAAS,WAAa,MAAQI,IAAuB,QAAUA,EAAmB,MAAK,EAC7GL,EAAcI,CAAY,CAC5B,CACJ,GAAM,CAAA,CAAE,EACNzR,EAAAA,UAAU,UAA4B,CAGhCmR,EAAe,UAAYvF,IAC7BI,EAASkF,GAAU,WAAWtF,CAAU,CAAC,EACzCuF,EAAe,QAAUvF,EAE7B,EAAG,CAACuF,EAAgBvF,CAAU,CAAC,EAC/B,SAAS+F,EAAoBC,EAAOC,EAAOC,EAAc,CAEvD,IAAIC,EAAWH,EAAM,iBAAmB,EAAI,GAAK,GAC7CI,EAAkB,SAASF,EAAc,EAAE,EAAID,EACnD,OAAI,OAAO,MAAMG,CAAe,EAC9BA,EAAkB,EACTlB,EAETkB,GAAmBA,EAAkBD,EAAWA,GAAYA,EAE5DC,EAAkB,KAAK,IAAI,KAAK,IAAI,EAAGA,CAAe,EAAGD,EAAW,CAAC,EAEhE,GAAG,OAAOC,CAAe,EAAE,SAAS,EAAG,GAAG,CACnD,CACA,SAASC,EAA8BC,EAAcC,EAAcC,EAASC,EAAgBC,EAAc,CACxG,OAAID,IAAmB,GAAKC,IAAiB,GAAKH,IAAiB,GAAK,SAASC,EAAS,EAAE,EAAI,EAEvF,IAAI,OAAOA,CAAO,EAAE,OAAOF,EAAa,UAAU,CAAC,CAAC,EAEtDK,GAAyCL,EAAcC,EAAcC,CAAO,CACrF,CACA,IAAI5F,EAAepO,EAAAA,YAAYqO,GAAY,CACzCK,GAAI,MAAM,eAAgBL,CAAQ,EAClCT,EAASS,CAAQ,EACjB0E,EAAe,QAAUD,GAAU,UAAUN,GAAmBnE,CAAQ,CAAC,EACzEpJ,EAAS8N,EAAe,OAAO,CACjC,EAAG,CAAC9N,CAAQ,CAAC,EACTuJ,EAAaxO,EAAAA,YAAY,IAAM,CACjC,IAAIoU,EAAa5B,GAAmB/G,CAAK,EAGrC2I,IAAe3I,GACjBmC,EAASwG,CAAU,EAErBxB,EAAM,CACR,EAAG,CAACnH,EAAOmH,CAAM,CAAC,EACdyB,EAAerU,EAAAA,YAAYqT,GAAgB,CAC7CJ,EAAcI,CAAY,EAC1BR,EAASQ,CAAY,CACvB,EAAG,CAACR,CAAQ,CAAC,EACb,OAAoBzM,EAAAA,IAAKkO,GAAa,CACpC,IAAKpB,EACL,UAAW7M,EACX,QAASkM,GACT,oBAAqBgB,EACrB,8BAA+BM,EAC/B,SAAUzF,EACV,SAAUiG,EACV,QAAS/B,GACT,UAAWU,EACX,MAAOvH,EACP,QAASkH,EACT,OAAQnE,EACR,cAAepB,CACnB,CAAG,CACH,CAAC,EC7GD,SAAS7G,GAAQrE,EAAGG,EAAG,CAAE,IAAI,EAAI,OAAO,KAAKH,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIE,EAAI,OAAO,sBAAsBF,CAAC,EAAGG,IAAMD,EAAIA,EAAE,OAAO,SAAUC,EAAG,CAAE,OAAO,OAAO,yBAAyBH,EAAGG,CAAC,EAAE,UAAY,CAAC,GAAI,EAAE,KAAK,MAAM,EAAGD,CAAC,CAAG,CAAE,OAAO,CAAG,CAC9P,SAASoE,GAActE,EAAG,CAAE,QAASG,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAI,EAAY,UAAUA,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAIkE,GAAQ,OAAO,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUlE,EAAG,CAAEoE,EAAgBvE,EAAGG,EAAG,EAAEA,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiBH,EAAG,OAAO,0BAA0B,CAAC,CAAC,EAAIqE,GAAQ,OAAO,CAAC,CAAC,EAAE,QAAQ,SAAUlE,EAAG,CAAE,OAAO,eAAeH,EAAGG,EAAG,OAAO,yBAAyB,EAAGA,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAOH,CAAG,CACtb,SAASuE,EAAgBvE,EAAGG,EAAG,EAAG,CAAE,OAAQA,EAAIqE,GAAerE,CAAC,KAAMH,EAAI,OAAO,eAAeA,EAAGG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAIH,EAAEG,CAAC,EAAI,EAAGH,CAAG,CACnL,SAASwE,GAAevE,EAAG,CAAE,IAAIwE,EAAIC,GAAazE,EAAG,QAAQ,EAAG,OAAmB,OAAOwE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAazE,EAAGE,EAAG,CAAE,GAAgB,OAAOF,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIyE,EAAIzE,EAAE,KAAKC,EAAGE,CAAc,EAAG,GAAgB,OAAOsE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBtE,IAAb,SAAiB,OAAS,QAAQF,CAAC,CAAG,CAUvT,IAAIoS,GAAgB,GAChB3J,GAAyC,SAAUA,EAA2B,CAChF,OAAAA,EAA0B,GAAQ,KAClCA,EAA0B,KAAU,OAC7BA,CACT,EAAEA,IAA6B,CAAA,CAAE,EACjC,MAAM4J,UAAyB1J,EAAAA,SAAU,CACvC,YAAYrI,EAAO,CACjB,MAAMA,CAAK,EACXgE,EAAgB,KAAM,cAAe,MAAM,EAC3CA,EAAgB,KAAM,gBAAiB,MAAM,EAC7CA,EAAgB,KAAM,SAAU,MAAM,EACtCA,EAAgB,KAAM,QAAS,MAAM,EACrC,GAAI,CACF,MAAAgF,EACA,YAAAgJ,CACN,EAAQhS,EACJ,KAAK,WAAa,KAAK,WAAW,KAAK,IAAI,EAC3C,KAAK,kBAAoB,KAAK,kBAAkB,KAAK,IAAI,EACzD,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EACzC,KAAK,kBAAoB,KAAK,kBAAkB,KAAK,IAAI,EACzD,KAAK,kBAAoB,KAAK,kBAAkB,KAAK,IAAI,EACzD,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,IAAI,EACvD,KAAK,iBAAmB,KAAK,iBAAiB,KAAK,IAAI,EACvD,KAAK,kBAAoB,KAAK,kBAAkB,KAAK,IAAI,EACzD,KAAK,YAA2B4I,EAAM,UAAS,EAC/C,KAAK,cAA6BA,EAAM,UAAS,EACjD,KAAK,OAAsBA,EAAM,UAAS,EAC1C,KAAK,MAAqBA,EAAM,UAAS,EACzC,KAAK,MAAQ,CACX,oBAAqB,EACrB,WAAY,GACZ,WAAY,IACZ,WAAYoJ,EAAYhJ,CAAK,EAC7B,aAAc,EACpB,CACE,CACA,iBAAkB,CAChB,GAAI,CACF,QAAAT,EACA,MAAAS,EACA,YAAAgC,CACN,EAAQ,KAAK,MACL,CACF,WAAAiH,CACN,EAAQ,KAAK,MACT,GAAIjJ,IAAU,KACZ,OAAOgC,EAET,QAAS9G,EAAI,EAAGA,EAAIqE,EAAQ,OAAQrE,GAAK,EAAG,CAC1C,IAAIuE,EAASF,EAAQrE,CAAC,EACtB,GAAIuE,EAAO,QAAUO,EACnB,OAAOP,EAAO,KAElB,CACA,OAAO4H,GAAU,WAAW4B,CAAU,CACxC,CACA,eAAgB,CACV,KAAK,YAAY,SACnB,KAAK,SAAS,CACZ,WAAY,KAAK,YAAY,QAAQ,sBAAqB,EAAG,KACrE,CAAO,CAEL,CACA,OAAQ,CACN,IAAIC,GACHA,EAAuB,KAAK,OAAO,WAAa,MAAQA,IAAyB,QAAUA,EAAqB,MAAK,CACxH,CACA,iBAAiBlJ,EAAO,CACtB,GAAI,CACF,SAAAxG,CACN,EAAQ,KAAK,MACTA,EAASwG,CAAK,CAChB,CACA,cAAe,CACb,KAAK,cAAa,CACpB,CACA,kBAAkBM,EAAO,CACvB,IAAI6I,EACA,CACF,oBAAA3I,EACA,aAAA4I,CACN,EAAQ,KAAK,MACL,CACF,QAAA7J,CACN,EAAQ,KAAK,MACT,OAAQe,EAAM,IAAG,CACf,IAAK,QACL,IAAK,IAEC8I,EACF,KAAK,iBAAgB,EAErB,KAAK,iBAAiB7J,EAAQiB,CAAmB,EAAE,KAAK,EAE1D,KAAK,UAAS,GACb2I,EAAwB,KAAK,OAAO,WAAa,MAAQA,IAA0B,QAAUA,EAAsB,MAAK,EACzH7I,EAAM,gBAAe,EACrBA,EAAM,eAAc,EACpB,MACF,IAAK,MACCA,EAAM,SACR,KAAK,qBAAqByI,EAAiB,0BAA0B,EAAE,EAEvE,KAAK,qBAAqBA,EAAiB,0BAA0B,IAAI,EAE3EzI,EAAM,gBAAe,EACrBA,EAAM,eAAc,EACpB,MACF,IAAK,UACH,KAAK,qBAAqByI,EAAiB,0BAA0B,EAAE,EACvEzI,EAAM,gBAAe,EACrBA,EAAM,eAAc,EACpB,MACF,IAAK,YACH,KAAK,qBAAqByI,EAAiB,0BAA0B,IAAI,EACzEzI,EAAM,gBAAe,EACrBA,EAAM,eAAc,EACpB,MACF,IAAK,SACH,KAAK,UAAS,EACd,KAGR,CACE,CACA,qBAAqBjC,EAAW,CAC9B,GAAI,CACF,oBAAAmC,EACA,aAAA4I,CACN,EAAQ,KAAK,MACL,CACF,QAAA7J,CACN,EAAQ,KAAK,MACL8J,EAAoB9J,EAAQ,OAC5BkB,EAAyBD,EAC7B,OAAQnC,EAAS,CACf,KAAK0K,EAAiB,0BAA0B,GAC9C,GAAI,CAACK,GAAgB5I,IAAwB,EAAG,CAC9C,KAAK,WAAU,EACf,KACF,MAAW4I,GACT,KAAK,YAAY5I,CAAmB,EAElCA,EAAsB,GAAK,CAAC4I,GAC9B3I,GAA0BA,EAAyB,GAAK4I,EACxD,KAAK,SAAS,CACZ,oBAAqB5I,CACjC,CAAW,GACQD,IAAwB,IACjCC,EAAyB4I,EAAoB,EAC7C,KAAK,SAAS,CACZ,oBAAqB5I,CACjC,CAAW,GAEH,KAAK,qBAAqBA,CAAsB,EAChD,MACF,KAAKsI,EAAiB,0BAA0B,KAC9C,GAAI,CAACK,GAAgB5I,IAAwB6I,EAAoB,EAAG,CAClE,KAAK,WAAU,EACf,KACF,MAAWD,GACT,KAAK,YAAY5I,CAAmB,EAElCA,EAAsB6I,GAAqB,EAAED,GAAgB5I,IAAwB,KACvFC,GAA0BA,EAAyB,GAAK4I,EACxD,KAAK,SAAS,CACZ,oBAAqB5I,CACjC,CAAW,GAEH,KAAK,qBAAqBA,CAAsB,EAChD,KAGR,CACE,CACA,kBAAkBH,EAAO,CACvB,IAAIgJ,EAAc,OAAOhJ,EAAM,cAAc,KAAK,EAC9C,CACF,QAAAf,EACA,YAAAgK,CACN,EAAQ,KAAK,MACL,CACF,WAAAN,CACN,EAAQ,KAAK,MACT,GAAIK,IAAgBR,GAAe,CACjC,IAAIU,EAASD,EAAYN,CAAU,EACnC,KAAK,eAAeO,CAAM,CAC5B,MACE,KAAK,eAAejK,EAAQ+J,CAAW,EAAE,KAAK,CAElD,CACA,eAAeE,EAAQ,CACrB,IAAIC,EACJ,KAAK,iBAAiBD,CAAM,EAC5B,KAAK,UAAS,GACbC,EAAwB,KAAK,OAAO,WAAa,MAAQA,IAA0B,QAAUA,EAAsB,MAAK,CAC3H,CACA,kBAAkBnJ,EAAO,CACvB,KAAK,SAAS,CACZ,oBAAqB,OAAOA,EAAM,OAAO,KAAK,CACpD,CAAK,CACH,CACA,kBAAmB,CACjB,IAAIY,EACA,CACF,QAAA3B,EACA,MAAAS,CACN,EAAQ,KAAK,MACL,CACF,oBAAAQ,CACN,EAAQ,KAAK,MACT,KAAK,qBAAqBA,CAAmB,EAC7C,IAAIkJ,GAAgBxI,EAAwB,KAAK,cAAc,WAAa,MAAQA,IAA0B,OAAS,OAASA,EAAsB,cAAc,gCAAgC,EAIpM,GAHIwI,aAAwB,aAC1BA,EAAa,MAAK,EAEhB1J,IAAU,KAGd,KAAI2J,EAAapK,EAAQ,IAAIE,GAAUA,EAAO,KAAK,EAAE,QAAQO,CAAK,EAC9D2J,EAAa,GAEf,KAAK,WAAU,EAEnB,CACA,YAAa,CACX,IAAIpJ,GACHA,EAAsB,KAAK,MAAM,WAAa,MAAQA,IAAwB,QAAUA,EAAoB,MAAK,CACpH,CACA,YAAYU,EAAO,CACjB,IAAI2I,EACArK,GAAWqK,EAAyB,KAAK,cAAc,WAAa,MAAQA,IAA2B,OAAS,OAASA,EAAuB,cAAc,aAAa,EAC/K,GAAIrK,GAAWA,EAAQ,UAAY,KAAM,CACvC,IAAIE,EAASF,EAAQ,SAAS,KAAK0B,CAAK,EACpCxB,aAAkB,aACpBA,EAAO,MAAK,CAEhB,CACF,CACA,kBAAmB,CACjB,GAAI,CACF,WAAAM,CACN,EAAQ,KAAK,MACLA,GACF,KAAK,SAAS,CACZ,WAAY,GACZ,oBAAqB,CAC7B,CAAO,CAEL,CACA,kBAAkBC,EAAO,CACvB,GAAI,CACF,YAAAuJ,CACN,EAAQ,KAAK,MACLC,EAASD,EAAYvJ,CAAK,EAC9B,KAAK,iBAAiBwJ,CAAM,EAC5B,KAAK,SAAS,CACZ,WAAYxJ,CAClB,CAAK,CACH,CACA,kBAAmB,CACjB,GAAI,CACF,YAAAuJ,CACN,EAAQ,KAAK,MACL,CACF,WAAAN,CACN,EAAQ,KAAK,MACLO,EAASD,EAAYN,CAAU,EACnC,KAAK,iBAAiBO,CAAM,CAC9B,CACA,WAAWlJ,EAAO,CAChB,GAAI,CACF,WAAAP,CACN,EAAQ,KAAK,MACLA,EACF,KAAK,UAAS,EAEd,KAAK,SAAQ,EAEfO,EAAM,gBAAe,CACvB,CACA,UAAW,CACT,KAAK,oBAAmB,EACxB,KAAK,cAAa,EAClB,KAAK,SAAS,CACZ,WAAY,EAClB,CAAK,CACH,CACA,WAAY,CACV,IAAIuJ,EAAc,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAItF,GAHA,KAAK,SAAS,CACZ,WAAY,EAClB,CAAK,EACGA,EAAa,CACf,IAAIC,GACHA,EAAwB,KAAK,OAAO,WAAa,MAAQA,IAA0B,QAAUA,EAAsB,MAAK,CAC3H,CACF,CACA,qBAAsB,CACpB,GAAI,CACF,QAAAvK,EACA,MAAAS,CACN,EAAQ,KAAK,MACT,GAAIA,IAAU,KAGd,KAAI2J,EAAapK,EAAQ,IAAIE,GAAUA,EAAO,KAAK,EAAE,QAAQO,CAAK,EAC9D2J,EAAa,GACf,KAAK,SAAS,CACZ,oBAAqBA,CAC7B,CAAO,EAEL,CACA,qBAAqB1I,EAAO,CAC1B,IAAI8I,EACAxK,GAAWwK,EAAyB,KAAK,cAAc,WAAa,MAAQA,IAA2B,OAAS,OAASA,EAAuB,cAAc,aAAa,EAC/K,GAAIxK,GAAWA,EAAQ,UAAY,KAAM,CACvC,IAAImK,EAAenK,EAAQ,SAAS,KAAK0B,CAAK,EAC1CyI,aAAwB,aAAeA,EAAa,UAAYX,EAAiB,sBACnFxJ,EAAQ,UAAYmK,EAAa,UAAYX,EAAiB,uBACrDW,aAAwB,aAAeA,EAAa,UAAY,GAAKzI,IAAU,KACxF1B,EAAQ,UAAY,EAExB,CACF,CACA,mBAAoB,CAClB,GAAI,CACF,WAAA4B,CACN,EAAQ,KAAK,MACT,OAAoBxG,EAAAA,IAAK,MAAO,CAC9B,UAAW,oBACX,IAAK,KAAK,cACV,KAAM,eACN,UAAW,KAAK,kBAChB,QAAS2F,GAAS,CAChBA,EAAM,gBAAe,CACvB,EACA,MAAO,CACL,MAAOa,CACf,EACM,SAAuBxG,EAAAA,IAAK,MAAO,CACjC,UAAW,uBACX,SAAuBA,EAAAA,IAAK,MAAO,CACjC,UAAW,aACX,SAAU,KAAK,cAAa,CACtC,CAAS,CACT,CAAO,CACP,CAAK,CACH,CACA,eAAgB,CAcd,OAbI,CACF,QAAA4E,EACA,MAAAS,EACA,KAAAgK,EACA,WAAAC,CACN,EAAQ,KAAK,MACL,CACF,oBAAAzJ,EACA,WAAAyI,EACA,aAAAG,CACN,EAAQ,KAAK,MACLc,EAAa,GACbC,EAAc,CAAA,EACTlJ,EAAQ,EAAGA,EAAQ1B,EAAQ,OAAQ0B,GAAS,EAAG,CACtD,IAAIxB,EAASF,EAAQ0B,CAAK,EACtBK,EAAM,UAAU,OAAOL,EAAO,GAAG,EAAE,OAAOxB,EAAO,KAAK,EAC1DyK,EAAaA,GAAczK,EAAO,QAAUO,EAC5CmK,EAAY,KAAkB1P,EAAAA,KAAM,SAAU,CAC5C,KAAM,SACN,MAAOwG,EACP,UAAWG,EAAW,gBAAiB,CACrC,kBAAmBZ,IAAwBS,GAAS,CAACmI,CAC/D,CAAS,EACD,QAAS,KAAK,kBACd,QAAS,KAAK,kBACd,SAAU,CAAC3J,EAAO,QAAUO,GAAsBrF,EAAAA,IAAKyP,GAAiB,CACtE,KAAMJ,EACN,UAAW,MACrB,CAAS,EAAGvK,EAAO,QAAUO,GAAsBrF,EAAAA,IAAK,OAAQ,CACtD,UAAW,MACrB,CAAS,EAAG8E,EAAO,KAAK,CACxB,EAAS6B,CAAG,CAAC,CACT,CACA,OAAA6I,EAAY,KAAkBxP,EAAAA,IAAK,KAAM,CACvC,UAAW,YACjB,EAAO,gBAAgB,CAAC,EACpBwP,EAAY,KAAkB1P,EAAAA,KAAM,SAAU,CAC5C,KAAM,SACN,MAAOqO,GACP,UAAW1H,EAAW,gBAAiB,CACrC,kBAAmBgI,CAC3B,CAAO,EACD,QAAS,KAAK,kBACd,QAAS,KAAK,kBACd,SAAU,CAAC,CAACc,GAAclK,IAAU,KAAoBrF,EAAAA,IAAKyP,GAAiB,CAC5E,KAAMJ,EACN,UAAW,MACnB,CAAO,EAAiBrP,EAAAA,IAAK,OAAQ,CAC7B,UAAW,MACnB,CAAO,EAAGsP,CAAU,CACpB,EAAO,qBAAqB,CAAC,EACzBE,EAAY,KAAkB1P,EAAAA,KAAM,MAAO,CACzC,UAAW,sBACX,SAAU,CAAcE,EAAAA,IAAK,OAAQ,CACnC,UAAW,MACnB,CAAO,EAAgBA,EAAAA,IAAKqM,GAAW,CAC/B,IAAK,KAAK,MACV,SAAU,KAAK,kBACf,MAAOiC,EACP,QAAS,IAAM,KAAK,SAAS,CAC3B,aAAc,EACxB,CAAS,EACD,OAAQ,IAAM,KAAK,SAAS,CAC1B,aAAc,EACxB,CAAS,CACT,EAAS,cAAc,EAAgBtO,EAAAA,IAAK,OAAQ,CAC5C,UAAW,MACnB,CAAO,CAAC,CACR,EAAO,qBAAqB,CAAC,EACzBwP,EAAY,KAAkBxP,EAAAA,IAAK,KAAM,CACvC,UAAW,MACjB,EAAO,YAAY,CAAC,EACTwP,CACT,CACA,QAAS,CACP,GAAI,CACF,SAAA3I,EACA,QAAAI,EACA,MAAA5B,EACA,cAAe2B,CACrB,EAAQ,KAAK,MACL,CACF,WAAA5B,CACN,EAAQ,KAAK,MACL,CACF,cAAAL,CACN,EAAQ,KAAK,MACT,OAAAA,EAAgB3E,GAAc,CAC5B,UAAW,aACX,UAAW,CACT,gBAAiB,CACf,QAAS,EACnB,CACA,CACA,EAAO2E,CAAa,EACI/E,EAAAA,IAAK,MAAO,CAC9B,UAAW,wCACX,IAAK,KAAK,YACV,cAAegH,EACf,SAAuBhH,EAAAA,IAAK,MAAO,CACjC,UAAWyG,EAAW,iCAAkC,CACtD,sBAAuBQ,CACjC,CAAS,EACD,SAAuBnH,EAAAA,KAAM,SAAU,CACrC,KAAM,SACN,UAAW2G,EAAW,0BAA2B,CAC/C,iBAAkBQ,CAC9B,CAAW,EACD,IAAK,KAAK,OACV,QAAS,KAAK,WACd,SAAUJ,EACV,SAAU,CAAc7G,EAAAA,IAAK,OAAQ,CACnC,UAAWyG,EAAW,CACpB,aAAcpB,IAAU,IACtC,CAAa,EACD,SAAU,KAAK,gBAAe,CAC1C,CAAW,EAAgBrF,EAAAA,IAAK,OAAQ,CAC5B,UAAW,UACvB,CAAW,EAAgBA,EAAAA,IAAK0P,GAAc,CAClC,QAAStK,EACT,QAAS,CACP,YAAa,KAAK,kBAAiB,CACjD,EACY,cAAeL,EACf,gBAAiB,mBACjB,aAAc,KAAK,iBACnB,aAAc,KAAK,iBACnB,UAAW,CACT,SAAU,QACxB,CACA,CAAW,CAAC,CACZ,CAAS,CACT,CAAO,CACP,CAAK,CACH,CACF,CACA1E,EAAgB+N,EAAkB,4BAA6B5J,EAAyB,EACxFnE,EAAgB+N,EAAkB,wBAAyB,GAAG,EAC9D/N,EAAgB+N,EAAkB,eAAgB,CAChD,UAAW,CAEX,EACA,MAAO,KACP,SAAU,GACV,cAAe,CAAA,EACf,KAAMuB,GACN,WAAY,SACZ,YAAa,gBACb,YAAatK,GAASA,IAAU,KAAO,EAAI,KAAK,MAAMA,EAAQ,GAAI,EAClE,YAAauK,GAAQA,EAAO,IAC5B,QAAS,GACT,cAAe,MACjB,CAAC,EC/fD,IAAItH,GAAMC,GAAI,OAAO,WAAW,EAC5BsH,GAAe,0DACf1D,GAAW,CAAC,aAAc,YAAY,EACtC2D,GAAc,aACdC,GAAyB9K,EAAM,WAAW,CAAC5I,EAAOxC,IAAQ,CAC5D,GAAI,CACF,UAAAoG,EAAY,GACZ,SAAApB,EAAW,IAAA,GACX,aAAAmR,EAAe,GACf,QAAAzD,EAAU,IAAA,GACV,OAAAC,EAAS,IAAA,GACT,cAAexF,CACnB,EAAM3K,EACA,CAACgJ,EAAOmC,CAAQ,EAAItN,EAAAA,SAAS8V,CAAY,EACzC,CAACpD,EAAWqD,CAAY,EAAI/V,WAAQ,EACpC8N,EAAepO,EAAAA,YAAYqO,GAAY,CACzCK,GAAI,MAAM,eAAgBL,CAAQ,EAClCT,EAASS,CAAQ,EACjBpJ,EAASoJ,CAAQ,CACnB,EAAG,CAACpJ,CAAQ,CAAC,EACb,OAAoBmB,EAAAA,IAAK,MAAO,CAC9B,UAAW,qCACX,SAAuBA,EAAAA,IAAKkO,GAAa,CACvC,IAAKrU,EACL,UAAW4M,EAAWxG,CAAS,EAC/B,QAASkM,GACT,oBAAqBgB,GACrB,SAAUnF,EACV,SAAUiI,EACV,QAASJ,GACT,YAAaC,GACb,UAAWlD,EACX,MAAOvH,EACP,QAASkH,EACT,OAAQC,EACR,cAAexF,CACrB,CAAK,CACL,CAAG,CACH,CAAC,EACD+I,GAAU,YAAc,YCjCxB,SAASG,GAAUpV,EAAM,CACvB,GAAI,CACF,QAAAqV,EACA,WAAYC,EAAiB,GAC7B,KAAAC,EAAO,OACX,EAAMvV,EACA,CAACwV,EAAcC,CAAe,EAAIrW,EAAAA,SAAS,EAAK,EAChD,CAACsW,EAAYC,CAAa,EAAIvW,EAAAA,SAAS,EAAK,EAC5CwW,EAAUnV,EAAAA,OAAO,IAAI,EACrBoV,EAAUpV,EAAAA,OAAO,IAAI,EACrBV,EAAejB,EAAAA,YAAY,IAAM,CACnC,GAAI,EAAA4W,GAAcJ,GAAkBO,EAAQ,SAAW,MAGvD,KAAIC,EAAkBD,EAAQ,QAAQ,aAAeA,EAAQ,QAAQ,aACrEJ,EAAgBK,CAAe,EACjC,EAAG,CAACJ,EAAYJ,CAAc,CAAC,EAC3BS,EAAwBC,GAAqBjW,EAAc,GAAG,EAClE,OAAAK,GAAkBwV,EAAQ,QAASG,CAAqB,EACxDE,kBAAgBF,EAAuB,CAACA,CAAqB,CAAC,EAC1C/Q,EAAAA,KAAM,MAAO,CAC/B,UAAW2G,EAAW,aAAc,CAClC,SAAU+J,GAAcJ,CAC9B,CAAK,EACD,IAAKM,EACL,SAAU,CAAc5Q,EAAAA,KAAM,MAAO,CACnC,UAAW,oBACX,SAAU,CAAcA,EAAAA,KAAM,MAAO,CACnC,UAAW,yBACX,SAAU,CAAcE,EAAAA,IAAKyP,GAAiB,CAC5C,KAAMuB,EAChB,CAAS,EAAgBhR,EAAAA,IAAK,OAAQ,CAC5B,SAAUqQ,CACpB,CAAS,CAAC,CACV,CAAO,EAAgBvQ,EAAAA,KAAM,MAAO,CAC5B,UAAW,qBACX,SAAU,CAAcE,EAAAA,IAAKiR,GAAY,CACvC,KAAM,SACN,UAAW,yBACX,QAAS,0BACT,KAAM,GAAG,OAAOZ,EAAM,IAAI,EAAE,OAAOF,CAAO,EAAE,KAAI,CAC1D,CAAS,GAAIG,GAAgBE,IAAe,CAACJ,GAA+BpQ,EAAAA,IAAKkR,GAAQ,CAC/E,KAAM,SACN,UAAW,2BACX,QAAS,IAAM,CACbT,EAAc,CAACD,CAAU,CAC3B,EACA,KAAMA,EAAaW,GAAgBC,GACnC,SAAUZ,EAAa,YAAc,WAC/C,CAAS,CAAC,CACV,CAAO,CAAC,CACR,CAAK,EAAgBxQ,EAAAA,IAAK,MAAO,CAC3B,UAAW,kBACX,IAAK2Q,EACL,SAAUR,CAChB,CAAK,CAAC,CACN,CAAG,CACH,CCrEA,SAAS9P,GAAgBvE,EAAGG,EAAG,EAAG,CAAE,OAAQA,EAAIqE,GAAerE,CAAC,KAAMH,EAAI,OAAO,eAAeA,EAAGG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAIH,EAAEG,CAAC,EAAI,EAAGH,CAAG,CACnL,SAASwE,GAAevE,EAAG,CAAE,IAAIwE,EAAIC,GAAazE,EAAG,QAAQ,EAAG,OAAmB,OAAOwE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAazE,EAAGE,EAAG,CAAE,GAAgB,OAAOF,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIyE,EAAIzE,EAAE,KAAKC,EAAGE,CAAc,EAAG,GAAgB,OAAOsE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBtE,IAAb,SAAiB,OAAS,QAAQF,CAAC,CAAG,CAmCvT,MAAMsV,UAAiC3M,EAAAA,SAAU,CAC/C,OAAO,iBAAiB4M,EAAQC,EAAU,CACxC,IAAI5R,EAAW4R,EAAS,IAAID,CAAM,EAClC,GAAI3R,IAAa,OACf,MAAO,GAET,GAAI,OAAOA,GAAa,UAEtB,OAAOA,EAET,IAAI6R,EAAe,MAAM,KAAK7R,EAAS,QAAQ,EAAE,SAAS,EAAI,EAC1D8R,EAAgB,MAAM,KAAK9R,EAAS,QAAQ,EAAE,SAAS,EAAK,EAChE,OAAI6R,GAAgBC,EAEX,KAEFD,CACT,CACA,YAAYnV,EAAO,CACjB,MAAMA,CAAK,EACX,KAAK,WAAa,KAAK,WAAW,KAAK,IAAI,EAC3C,KAAK,eAAiB,KAAK,eAAe,KAAK,IAAI,EACnD,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EACzC,KAAK,MAAQ,KAAK,MAAM,KAAK,IAAI,EACjC,KAAK,MAAQ,CACX,WAAY,EAClB,CACE,CACA,WAAWsJ,EAAO,CAChBA,EAAM,gBAAe,EACrBA,EAAM,eAAc,EACpB,KAAK,SAAS+D,GAAS,CACrB,GAAI,CACF,WAAAtE,CACR,EAAUsE,EACJ,MAAO,CACL,WAAY,CAACtE,CACrB,CACI,CAAC,CACH,CACA,eAAekM,EAAQnN,EAAO,CAC5B,GAAI,CACF,SAAAoN,EACA,iBAAAG,CACN,EAAQ,KAAK,MAGL/X,EAAM,IAAI,IAAI4X,CAAQ,EACtB5R,EAAWhG,EAAI,IAAI2X,CAAM,EAC7B,GAAI3R,aAAoB,IAAK,CAC3B,IAAIgS,EAAc,IAAI,IAAIhS,CAAQ,EAClC,GAAIwE,GAAS,KACXwN,EAAY,IAAIxN,EAAOxE,EAAS,IAAIwE,CAAK,IAAM,EAAI,MAC9C,CACL,IAAIyN,EAAiBP,EAAyB,iBAAiBC,EAAQ3X,CAAG,EACtEkY,EAAgBD,GAAkB,MAAQ,CAACA,EAC/CjS,EAAS,QAAQ,CAACmS,EAAGnL,IAAQgL,EAAY,IAAIhL,EAAKkL,CAAa,CAAC,CAClE,CACAlY,EAAI,IAAI2X,EAAQK,CAAW,CAC7B,MACEhY,EAAI,IAAI2X,EAAQ3R,GAAY,MAAQ,CAACA,CAAQ,EAI/C,IAAIoS,EAAkBpY,EAAI,IAAI2X,CAAM,EACpC,GAAInN,IAAU,QAAa4N,IAAoB,QAAa,OAAOA,GAAoB,UAAW,CAChG,IAAIC,EAAkBX,EAAyB,iBAAiBC,EAAQC,CAAQ,EAC5ES,GAAmB,MAAQA,EAC7BD,EAAgB,QAAQ,CAACD,EAAGnL,IAAQoL,EAAgB,IAAIpL,EAAK,EAAK,CAAC,EAGnEoL,EAAgB,QAAQ,CAACD,EAAGnL,IAAQoL,EAAgB,IAAIpL,EAAK,EAAI,CAAC,CAEtE,CACA+K,EAAiB/X,CAAG,CACtB,CACA,aAAa0L,EAAO,CAClB,GAAI,CACF,SAAAkM,EACA,iBAAAG,CACN,EAAQ,KAAK,MAGLO,EAAO,IAAI,IACfV,EAAS,QAAQ,CAACpN,EAAOmN,IAAW,CAClC,GAAI,OAAOnN,GAAU,UACnB8N,EAAK,IAAIX,EAAQjM,CAAK,MACjB,CACL,IAAI1F,EAAW,IAAI,IACnBwE,EAAM,QAAQ,CAAC2N,EAAGnL,IAAQhH,EAAS,IAAIgH,EAAKtB,CAAK,CAAC,EAClD4M,EAAK,IAAIX,EAAQ3R,CAAQ,CAC3B,CACF,CAAC,EACD+R,EAAiBO,CAAI,CACvB,CACA,WAAY,CACV,KAAK,aAAa,EAAI,CACxB,CACA,OAAQ,CACN,KAAK,aAAa,EAAK,CACzB,CACA,mBAAoB,CAClB,GAAI,CACF,SAAAV,EACA,cAAevK,CACrB,EAAQ,KAAK,MACT,OAAoBlH,EAAAA,KAAM,MAAO,CAC/B,UAAW,qBACX,SAAU,CAAC,MAAM,KAAKyR,EAAS,SAAS,EAAE,IAAIzW,GAAQ,CACpD,GAAI,CAACwW,EAAQ3R,CAAQ,EAAI7E,EACzB,OAAoBgF,EAAAA,KAAM,MAAO,CAC/B,SAAU,CAAcE,EAAAA,IAAKqE,GAAU,CACrC,UAAW,aACX,QAASgN,EAAyB,iBAAiBC,EAAQC,CAAQ,EACnE,SAAU,IAAM,KAAK,eAAeD,CAAM,EAC1C,SAAUA,CACtB,CAAW,EAAG3R,IAAa,QAAa,OAAOA,GAAa,WAAa,MAAM,KAAKA,EAAS,QAAO,CAAE,EAAE,IAAIuS,GAAS,CACzG,GAAI,CAAC/N,EAAOkB,CAAK,EAAI6M,EACrB,OAAoBlS,EAAAA,IAAKqE,GAAU,CACjC,UAAW,YACX,QAASgB,EACT,SAAU,IAAM,KAAK,eAAeiM,EAAQnN,CAAK,EACjD,SAAUA,CACxB,EAAeA,CAAK,CACV,CAAC,CAAC,CACZ,EAAWmN,CAAM,CACX,CAAC,EAAgBtR,EAAAA,IAAKkR,GAAQ,CAC5B,KAAM,QACN,QAAS,KAAK,UACd,cAAelK,IAAe,OAAY,GAAG,OAAOA,EAAY,iBAAiB,EAAI,OACrF,SAAU,YAClB,CAAO,EAAgBhH,EAAAA,IAAKkR,GAAQ,CAC5B,KAAM,QACN,QAAS,KAAK,MACd,cAAelK,IAAe,OAAY,GAAG,OAAOA,EAAY,YAAY,EAAI,OAChF,SAAU,OAClB,CAAO,CAAC,CACR,CAAK,CACH,CACA,QAAS,CACP,GAAI,CACF,SAAAmL,EACA,UAAAlS,EACA,KAAAoP,EACA,GAAA9H,EACA,cAAeP,CACrB,EAAQ,KAAK,MACL,CACF,WAAA5B,CACN,EAAQ,KAAK,MACT,OAAoBtF,EAAAA,KAAM,SAAU,CAClC,KAAM,SACN,UAAW2G,EAAW,cAAexG,CAAS,EAC9C,QAAS,KAAK,WACd,GAAIsH,EACJ,cAAeP,EACf,SAAU,CAAclH,EAAAA,KAAM,OAAQ,CACpC,SAAU,CAACuP,GAAqBrP,EAAAA,IAAKyP,GAAiB,CACpD,KAAMJ,EACN,UAAW,eACrB,CAAS,EAAG8C,CAAQ,CACpB,CAAO,EAAgBnS,EAAAA,IAAK,OAAQ,CAC5B,UAAW,UACnB,CAAO,EAAgBA,EAAAA,IAAKkH,GAAQ,CAC5B,QAAS,CACP,UAAW,QACrB,EACQ,QAAS9B,EACT,SAAU,IAAM,CACd,KAAK,SAAS,CACZ,WAAY,EACxB,CAAW,CACH,EACA,YAAa,GACb,YAAa,GACb,SAAU,KAAK,kBAAiB,CACxC,CAAO,CAAC,CACR,CAAK,CACH,CACF,CACA/E,GAAgBgR,EAA0B,eAAgB,CACxD,UAAW,GACX,KAAM,KACN,GAAI,GACJ,cAAe,MACjB,CAAC,ECrND,IAAIe,GAAa,KACbC,GAAM,GACNC,GAAO,GACPC,GAAU,KACVC,GAAY,GACZC,EAAU,CACZ,KAAM,EACN,SAAU,CACZ,EACIC,EAAgB,GAChBC,GAAkB,IAClBC,GAAsB,GAAK,IAC3BC,GAAwB,CAC1B,WAAY,gDACZ,eAAgB,qDAChB,iBAAkB,uDAClB,UAAW,iDACb,EAKA,SAASC,IAAwC,CAC/C,OAAOC,GAA4BF,EAAqB,CAC1D,CAGG,IAACG,GAAuC/N,EAAM,KAAK,IAAM,CAC1D,GAAI,CACF,aAAAgO,CACJ,EAAMC,GAAQ,EACRC,EAAczY,EAAAA,QAAQoY,GAAuC,CAACG,CAAY,CAAC,EAC3EG,EAAS7X,EAAAA,OAAO,IAAI,EACpB8X,EAAY9X,EAAAA,OAAO,IAAI,EACvB,CAAC+X,EAAOC,CAAQ,EAAIrZ,EAAAA,SAAS,EAAK,EAClCuH,EAAQ,OAAO,iBACf+R,EACAC,EACApZ,EACAE,EACAmZ,EACAC,EAAgB,KAChBC,EAAO,CAAA,EACX,SAASC,GAAgB,CACvB,IAAIC,EAEAT,EAAU,SAAW,OACvBhZ,EAAQgZ,EAAU,QAAQ,YAC1B9Y,EAAS8Y,EAAU,QAAQ,cAEzBD,EAAO,SAAW,OACpBA,EAAO,QAAQ,MAAM,MAAQ,GAAG,OAAO/Y,EAAO,IAAI,EAClD+Y,EAAO,QAAQ,MAAM,OAAS,GAAG,OAAO7Y,EAAQ,IAAI,EACpD6Y,EAAO,QAAQ,MAAQ/Y,EAAQoH,EAC/B2R,EAAO,QAAQ,OAAS7Y,EAASkH,IAElCqS,EAAON,KAAS,MAAQM,IAAS,QAAUA,EAAK,MAAMrS,EAAOA,CAAK,CACrE,CAGA,SAASsS,GAAoB,CAC3B,GAAI,CACF,eAAAC,EACA,iBAAAC,CACN,EAAQd,EAGAe,EAAgB,SAAS,cAAc,QAAQ,EACnDA,EAAc,MAAQzB,EAAQ,KAC9ByB,EAAc,OAASzB,EAAQ,KAC/B,IAAI0B,EAAiBD,EAAc,WAAW,IAAI,EAGlD,OAAIC,GAAkB,OACpBA,EAAe,UAAYF,EAC3BE,EAAe,SAAS,EAAG,EAAG1B,EAAQ,SAAUA,EAAQ,QAAQ,EAGhE0B,EAAe,UAAYH,EAC3BG,EAAe,SAAS,EAAG,EAAG1B,EAAQ,KAAMA,EAAQ,IAAI,GAEnD0B,GAAmB,KAAoC,OAASA,EAAe,cAAcD,EAAe,QAAQ,CAC7H,CASA,SAASE,EAAWC,EAAM,CACxB,IAAIC,EAAO,KAAK,OAAM,EAAK,GACvBC,EAASnC,GAAakC,EAG1B,OAAID,EAAO/B,GACTiC,EAAS,KAAK,IAAIA,CAAM,EACfF,EAAOhC,KAChBkC,EAAS,CAAC,KAAK,IAAIA,CAAM,GAEpBF,EAAOE,CAChB,CACA,SAASC,GAAW,CAGlB,QAFIC,EAAe,CAAA,EACfta,EAAIoY,GACCvY,EAAI,EAAGA,EAAIK,EAAQqY,EAAe1Y,GAAK,EAC9CG,EAAIia,EAAWja,CAAC,EAChBsa,EAAa,KAAKta,CAAC,EAErB,OAAOsa,CACT,CACA,SAASC,GAAc,CACrB,KAAOd,EAAK,QAAUvZ,EAAQqY,GAC5BkB,EAAK,IAAG,EAEV,KAAOA,EAAK,OAASvZ,EAAQqY,GAC3BkB,EAAK,KAAKQ,EAAWR,EAAKA,EAAK,OAAS,CAAC,CAAC,CAAC,CAE/C,CACA,SAASe,EAAaC,EAAMC,EAAS,CACnCA,EAAQ,UAAS,EAEjBA,EAAQ,OAAO,GAAIta,EAAS,CAAC,EAC7Bsa,EAAQ,OAAO,GAAIta,EAASqa,EAAK,CAAC,CAAC,EAGnC,QAASrU,EAAI,EAAGA,EAAIqU,EAAK,OAAQrU,GAAK,EACpCsU,EAAQ,OAAOtU,EAAGhG,EAASqa,EAAKrU,CAAC,CAAC,EAIpCsU,EAAQ,OAAOxa,EAAQqY,EAAenY,EAASqa,EAAKA,EAAK,OAAS,CAAC,CAAC,EACpEC,EAAQ,OAAOxa,EAAQqY,EAAenY,EAAS,CAAC,EAChDsa,EAAQ,UAAS,CACnB,CACA,SAASC,EAAcD,EAAS,CAC9BA,EAAQ,UAAS,EAEjB,QAAS7a,EAAI,EAAGA,EAAIK,EAAOL,GAAKwY,GAC9BqC,EAAQ,OAAO7a,EAAG,CAAC,EACnB6a,EAAQ,OAAO7a,EAAGO,CAAM,EAG1B,QAASJ,EAAI,EAAGA,EAAII,EAAQJ,GAAKqY,GAC/BqC,EAAQ,OAAO,EAAG1a,CAAC,EACnB0a,EAAQ,OAAOxa,EAAOF,CAAC,CAE3B,CAOA,SAAS4a,EAAWC,EAAW,CAC7BrB,EAAgBA,GAAqEqB,EACrF,GAAI,CACF,WAAAC,EACA,iBAAAhB,EACA,UAAAiB,CACN,EAAQ/B,EACJgC,GAAc3B,CAAG,EAEjBA,EAAI,UAAYyB,EAChBzB,EAAI,SAAS,EAAG,EAAGnZ,EAAOE,CAAM,EAChCua,EAActB,CAAG,EACjBA,EAAI,UAAY,EAChBA,EAAI,YAAc0B,EAClB1B,EAAI,OAAM,EAGV,IAAI4B,IAAmBzB,GAAqE,IAAMqB,GAAyD,KAAO,IAAOtC,GAczK,GAbAc,EAAI,UAAU4B,EAAgB,CAAC,EAC/BT,EAAaf,EAAMJ,CAAG,EACtBA,EAAI,UAAY,EAChBA,EAAI,YAAcS,EAClBT,EAAI,OAAM,EACVA,EAAI,UAAU,CAAC4B,EAAgB,CAAC,EAC5B3B,GAAW,OACbD,EAAI,UAAYC,GAElBD,EAAI,KAAI,EACRA,EAAI,aAAa/R,EAAO,EAAG,EAAGA,EAAO,EAAG,CAAC,GAGpCuT,GAAyD,IAAMrB,GAAqE,GAAK,IAAOjB,EAAe,CAGlK,QADI2C,GAAiB,KAAK,QAAQL,GAAyD,IAAMrB,GAAqE,KAAO,IAAOjB,EAAc,EACzLnS,EAAI,EAAGA,EAAI8U,GAAgB9U,GAAK,EACvCqT,EAAK,MAAK,EACVA,EAAK,KAAKQ,EAAWR,EAAKA,EAAK,OAAS,CAAC,CAAC,CAAC,EAE7CD,EAAgBqB,CAClB,CACItB,GAAO,MACT,qBAAqBA,CAAG,EAE1BA,EAAM,sBAAsBqB,CAAU,CACxC,CAGA,IAAIlE,EAAwB7L,GAAS,IAAM,CACzC0O,EAAM,sBAAsBsB,GAAa,CACvCnB,IAGAa,EAAW,EAIXnB,EAAS,EAAK,EACdwB,EAAWC,CAAS,CACtB,CAAC,CACH,EAAGrC,GAAiB,CAClB,QAAS,EACb,CACA,EACE,SAAS2C,GAAiB,CAExB/B,EAAS,EAAI,EACTG,GAAO,MACT,qBAAqBA,CAAG,EAE1BA,EAAM,KACNC,EAAgB,IAClB,CAGA,IAAI4B,EAAmBvQ,GAAS,IAAM,CACpCsQ,EAAc,CAChB,EAAG1C,EAAmB,EACtB,SAAS4C,GAAiB,CAGpB9B,GAAO,OACTH,EAAS,EAAK,EACdM,EAAa,EACba,EAAW,EACXhB,EAAM,sBAAsBqB,CAAU,GAExCQ,EAAgB,CAClB,CACA,SAASE,GAAiB,CACpB,SAAS,YAEXD,EAAc,CAElB,CACA,SAAS3a,GAAe,CAElB6Y,GAAO,MACT,qBAAqBA,CAAG,EAE1B6B,IACA1E,EAAqB,CACvB,CAGArV,OAAAA,EAAAA,UAAU,IAAM,CACd,IAAIka,EACJ,OAAAlC,GAAOkC,EAAkBtC,EAAO,WAAa,MAAQsC,IAAoB,OAAS,OAASA,EAAgB,WAAW,KAAM,CAC1H,MAAO,EACb,CAAK,EACD7B,EAAa,EACbD,EAAOY,EAAQ,EACff,EAAUM,EAAiB,EAG3BgB,EAAU,EACVQ,EAAgB,EAChB,OAAO,iBAAiB,SAAU1a,CAAY,EAC9C,OAAO,iBAAiB,QAAS2a,CAAc,EAC/C,OAAO,iBAAiB,OAAQF,CAAc,EAI9C,OAAO,iBAAiB,YAAaG,CAAc,EACnD,OAAO,iBAAiB,UAAWA,CAAc,EAC1C,IAAM,CACP/B,GAAO,MACT,qBAAqBA,CAAG,EAE1B,OAAO,oBAAoB,SAAU7Y,CAAY,EACjD,OAAO,oBAAoB,QAAS2a,CAAc,EAClD,OAAO,oBAAoB,OAAQF,CAAc,EACjD,OAAO,oBAAoB,YAAaG,CAAc,EACtD,OAAO,oBAAoB,UAAWA,CAAc,EACpDF,EAAiB,OAAM,EACvB1E,EAAsB,OAAM,CAC9B,CACF,EAAG,CAACsC,CAAW,CAAC,EACInT,EAAAA,IAAK,MAAO,CAC9B,UAAW,uCACX,IAAKqT,EACL,SAAuBrT,EAAAA,IAAK,SAAU,CACpC,IAAKoT,EACL,UAAWE,EAAQ,QAAU,EACnC,CAAK,CACL,CAAG,CACH,CAAC,yDC5SD,IAAIqC,GAAc,SAASC,GAAa,aAAa,EAAG,EAAE,EACtDC,GAAgB,SAASD,GAAa,eAAe,EAAG,EAAE,EAC1DE,EAAiB,GAAK,GAAK,GAAK,EAChCC,GAAuB,EAAI,GAM/B,SAASC,GAAWlb,EAAM,CACxB,GAAI,CACF,UAAWmb,EACX,QAASC,EACT,SAAArX,EACA,gBAAAsX,EAAkB,GAClB,cAAAC,EAAgB,GAChB,cAAepP,CACnB,EAAMlM,EACA,CAACub,EAAWC,CAAY,EAAIpc,EAAAA,SAAS+b,CAAa,EAClD,CAACM,EAASC,CAAU,EAAItc,EAAAA,SAASgc,CAAW,EAC5CO,EAAQlb,SAAO,IAAI,EAGvBC,EAAAA,UAAU,UAAmC,CAC3C8a,EAAaL,CAAa,EAC1BO,EAAWN,CAAW,CACxB,EAAG,CAACD,EAAeC,CAAW,CAAC,EAC/B,IAAIQ,EAAa9c,EAAAA,YAAY,CAAC+c,EAAcC,IAAe,CACzD,IAAI1Y,EAAQyY,EACRxY,EAAMyY,EACN1Y,IAAUC,IACRA,EAAM2X,EACR3X,GAAO,EAEPD,GAAS,GAGboY,EAAapY,CAAK,EAClBsY,EAAWrY,CAAG,EACdU,EAAS,CACP,UAAWX,EACX,QAASC,CACf,CAAK,CACH,EAAG,CAACmY,EAAcE,EAAY3X,CAAQ,CAAC,EACnCgY,EAAwBjd,EAAAA,YAAY+c,GAAgB,CACtDD,EAAWC,EAAcJ,CAAO,CAClC,EAAG,CAACG,EAAYH,CAAO,CAAC,EACpBO,EAAsBld,EAAAA,YAAYgd,GAAc,CAClDF,EAAWL,EAAWO,CAAU,CAClC,EAAG,CAACF,EAAYL,CAAS,CAAC,EAC1B,OAAoBvW,EAAAA,KAAM,MAAO,CAC/B,UAAW,cACX,cAAekH,EACf,SAAU,CAAchH,EAAAA,IAAK+W,GAAU,CACrC,UAAWV,EACX,QAASE,EACT,kBAAmBM,EACnB,gBAAiBC,EACjB,gBAAiBX,EACjB,cAAeC,CACrB,CAAK,EAAgBtW,EAAAA,KAAM,MAAO,CAC5B,UAAW,QACX,IAAK2W,EACL,SAAU,CAAczW,EAAAA,IAAKgX,GAAY,CACvC,UAAWX,EACX,QAASE,CACjB,CAAO,EAAgBvW,EAAAA,IAAK,MAAO,CAC3B,UAAW,QACX,SAAU,MAAM,EAAE,EAAE,KAAK,IAAI,EAAE,IAAI,CAACqF,EAAOiB,IAAuBtG,EAAAA,IAAK,MAAO,CAC5E,UAAW,MACrB,EAAWsG,CAAK,CAAC,CACjB,CAAO,EAAgBtG,EAAAA,IAAKiX,GAAQ,CAC5B,MAAOR,EACP,KAAMJ,EACN,QAASQ,CACjB,CAAO,EAAgB7W,EAAAA,IAAKiX,GAAQ,CAC5B,MAAOR,EACP,KAAMF,EACN,QAASO,CACjB,CAAO,CAAC,CACR,CAAK,EAAgBhX,EAAAA,KAAM,MAAO,CAC5B,UAAW,cACX,SAAU,CAAcE,EAAAA,IAAK,MAAO,CAClC,UAAW,aACX,SAAU,MAClB,CAAO,EAAgBA,EAAAA,IAAK,MAAO,CAC3B,UAAW,qBACX,SAAU,MAAM,EAAE,EAAE,KAAK,IAAI,EAAE,IAAI,CAACqF,EAAOiB,IAAuBtG,EAAAA,IAAK,MAAO,CAC5E,UAAW,aACX,SAAU,GAAG,OAAOsG,EAAQ,EAAG,KAAK,CAC9C,EAAWA,CAAK,CAAC,CACjB,CAAO,CAAC,CACR,CAAK,CAAC,CACN,CAAG,CACH,CACA,SAASyQ,GAAS1a,EAAO,CACvB,GAAI,CACF,UAAAga,EACA,QAAAE,EACA,kBAAAW,EACA,gBAAAC,EACA,gBAAAhB,EACA,cAAAC,EACA,cAAepP,CACnB,EAAM3K,EACA+a,EAAYf,EAAYE,EACxB,CAACc,EAAWC,CAAY,EAAIpd,EAAAA,SAASkd,EAAYb,EAAUF,CAAS,EACpE,CAACkB,EAAYC,CAAa,EAAItd,EAAAA,SAASkd,EAAYf,EAAYE,CAAO,EACtEkB,EAAelc,EAAAA,OAAO,IAAI,EAC1Bmc,EAAgBnc,EAAAA,OAAO,IAAI,EAE3Boc,EAAwBpc,EAAAA,OAAO,IAAI,EACnCqc,EAAyBrc,EAAAA,OAAO,IAAI,EACxCC,EAAAA,UAAU,UAAmC,CAC3C8b,EAAajB,EAAYE,EAAUA,EAAUF,CAAS,EACtDmB,EAAcnB,EAAYE,EAAUF,EAAYE,CAAO,CACzD,EAAG,CAACF,EAAWE,CAAO,CAAC,EACvB/a,EAAAA,UAAU,UAAqC,CAC7C,GAAImc,EAAsB,UAAY,KAAM,CAC1C,IAAIE,GACHA,EAAwBH,EAAc,WAAa,MAAQG,IAA0B,QAAUA,EAAsB,aAAaF,EAAsB,OAAO,CAClK,CACA,GAAIC,EAAuB,UAAY,KAAM,CAC3C,IAAIE,GACHA,EAAwBL,EAAa,WAAa,MAAQK,IAA0B,QAAUA,EAAsB,aAAaF,EAAuB,OAAO,CAClK,CACF,EAAG,CAACR,CAAS,CAAC,EACd,SAASW,EAAkB1S,EAAO,CAC5BgR,GAAaE,EACfW,EAAkB7R,CAAK,EAEvB8R,EAAgB9R,CAAK,CAEzB,CACA,SAAS2S,EAAmB3S,EAAO,CAC7BgR,GAAaE,EACfY,EAAgB9R,CAAK,EAErB6R,EAAkB7R,CAAK,CAE3B,CACA,IAAI4S,EAAoBre,EAAAA,YAAYgT,GAAa,CAC/C+K,EAAsB,QAAU/K,EAChCgL,EAAuB,QAAU,IACnC,EAAG,CAAA,CAAE,EACDM,EAAqBte,EAAAA,YAAYgT,GAAa,CAChD+K,EAAsB,QAAU,KAChCC,EAAuB,QAAUhL,CACnC,EAAG,CAAA,CAAE,EACL,OAAoB9M,EAAAA,KAAM,MAAO,CAC/B,UAAW,uBACX,SAAU,CAAcE,EAAAA,IAAK,MAAO,CAClC,UAAW,OACX,MAAO,CACL,UAAW,QAAQ,OAAOqX,EAAYvB,EAAiB,IAAK,MAAM,EAAE,OAAOD,GAAgB,EAAG,KAAK,CAC3G,CACA,CAAK,EAAgB/V,EAAAA,KAAM,MAAO,CAC5B,UAAW,gBACX,SAAU,CAAcE,EAAAA,IAAK,QAAS,CACpC,UAAWyG,EAAW,CACpB,SAAU2Q,EAAYhB,EAAgBD,CAChD,CAAS,EACD,SAAUiB,EAAY,WAAa,YAC3C,CAAO,EAAgBpX,EAAAA,IAAKqM,GAAW,CAC/B,IAAKoL,EACL,mBAAoB,GACpB,MAAOJ,EACP,SAAUU,EACV,SAAUE,EACV,cAAejR,IAAe,OAAY,GAAG,OAAOA,EAAY,UAAU,EAAI,MACtF,CAAO,CAAC,CACR,CAAK,EAAgBhH,EAAAA,IAAK,MAAO,CAC3B,UAAW,aACjB,CAAK,EAAgBF,EAAAA,KAAM,MAAO,CAC5B,UAAW,gBACX,SAAU,CAAcE,EAAAA,IAAK,QAAS,CACpC,UAAWyG,EAAW,CACpB,SAAU2Q,EAAYjB,EAAkBC,CAClD,CAAS,EACD,SAAUgB,EAAY,aAAe,UAC7C,CAAO,EAAgBpX,EAAAA,IAAKqM,GAAW,CAC/B,IAAKqL,EACL,mBAAoB,GACpB,MAAOH,EACP,SAAUS,EACV,SAAUE,EACV,cAAelR,IAAe,OAAY,GAAG,OAAOA,EAAY,UAAU,EAAI,MACtF,CAAO,CAAC,CACR,CAAK,EAAgBhH,EAAAA,IAAK,MAAO,CAC3B,UAAW,OACX,MAAO,CACL,UAAW,QAAQ,QAAQ8V,EAAiByB,GAAczB,EAAiB,IAAK,MAAM,EAAE,OAAOD,GAAgB,EAAG,KAAK,CAC/H,CACA,CAAK,CAAC,CACN,CAAG,CACH,CAIA,SAASmB,GAAW3a,EAAO,CACzB,GAAI,CACF,UAAAga,EACA,QAAAE,EACA,cAAevP,CACnB,EAAM3K,EACJ,OAAoByD,EAAAA,KAAM,MAAO,CAC/B,UAAW,cACX,cAAekH,EACf,SAAU,CAACqP,EAAYE,GAAwBzW,EAAAA,KAAMC,EAAAA,SAAW,CAC9D,SAAU,CAAcC,EAAAA,IAAK,MAAO,CAClC,UAAW,8BACX,MAAO,CACL,UAAW,UAAU,OAAOuW,EAAUT,EAAgB,GAAG,CACnE,CACA,CAAO,EAAgB9V,EAAAA,IAAK,MAAO,CAC3B,UAAW,4BACX,MAAO,CACL,UAAW,UAAU,QAAQ8V,EAAiBO,GAAaP,EAAgB,GAAG,CACxF,CACA,CAAO,CAAC,CACR,CAAK,EAAGO,EAAYE,GAAwBvW,EAAAA,IAAK,MAAO,CAClD,UAAW,+BACX,MAAO,CACL,UAAW,cAAc,OAAOqW,EAAYP,EAAiB,IAAK,YAAY,EAAE,QAAQS,EAAUF,GAAaP,EAAgB,GAAG,CAC1I,CACA,CAAK,CAAC,CACN,CAAG,CACH,CAIA,SAASmB,GAAO5a,EAAO,CACrB,GAAI,CACF,MAAAoa,EACA,KAAA7G,EACA,QAAAuI,EACA,cAAenR,CACnB,EAAM3K,EASA+b,EAAY1d,EAAAA,QAAQ,IAAM,CAC5B,IAAI2d,EAAW,KACXC,EAAe3C,GAAc,EACjC,OAAI/F,EAAOyI,EACTC,EAAe1I,EAAOyI,GAAY1C,GAAc,GACvC/F,EAAO,GAAKyI,IACrBC,EAAe3C,GAAc,EAAI,GAAKG,EAAiB,GAAKuC,IAAazI,EAAO,GAAKyI,IAAa1C,GAAc,IAE3G,mBAAmB,OAAO/F,EAAOkG,EAAiB,IAAK,MAAM,EAAE,OAAOwC,EAAc,MAAM,CACnG,EAAG,CAAC1I,CAAI,CAAC,EACL2I,EAA0B3e,EAAAA,YAAY4e,GAAW,CACnD,GAAI,CAAC/B,EAAM,QACT,MAAO,GAET,IAAIgC,EAAYhC,EAAM,QAAQ,sBAAqB,EAC/CiC,EAAW,KAAK,IAAIF,EAAUC,EAAU,KAAM,CAAC,EAE/CE,EAAc7C,EAAiB,KAAK,IAAI,EAAG4C,EAAWD,EAAU,KAAK,EAErEG,EAAc7C,GAAuB,KAAK,MAAM4C,EAAc5C,EAAoB,EAElF8C,EAAW,KAAK,IAAI/C,EAAgB8C,CAAW,EACnD,OAAOC,CACT,EAAG,CAACpC,CAAK,CAAC,EACNqC,EAAkBlf,EAAAA,YAAYsY,GAAS,CACzC,GAAI,CACF,QAAAsG,CACN,EAAQtG,EACJiG,EAAQI,EAAwBC,CAAO,CAAC,CAC1C,EAAG,CAACL,EAASI,CAAuB,CAAC,EACjCQ,EAAgBnf,EAAAA,YAAYof,GAAS,CACvC,GAAI,CACF,QAAAR,CACN,EAAQQ,EACJb,EAAQI,EAAwBC,CAAO,CAAC,EACxC,OAAO,oBAAoB,YAAaM,CAAe,EACvD,OAAO,oBAAoB,UAAWC,CAAa,EACnD,SAAS,gBAAgB,UAAU,OAAO,0BAA0B,CACtE,EAAG,CAACZ,EAASI,EAAyBO,CAAe,CAAC,EAClDG,EAAqBrf,EAAAA,YAAY,IAAM,CACzC,OAAO,iBAAiB,YAAakf,CAAe,EACpD,OAAO,iBAAiB,UAAWC,CAAa,EAChD,SAAS,gBAAgB,UAAU,IAAI,0BAA0B,CACnE,EAAG,CAACD,EAAiBC,CAAa,CAAC,EAC/BG,EAAoBtf,EAAAA,YAAY,IAAM,CACxC,OAAO,oBAAoB,YAAakf,CAAe,EACvD,OAAO,oBAAoB,UAAWC,CAAa,EACnD,SAAS,gBAAgB,UAAU,OAAO,0BAA0B,CACtE,EAAG,CAACD,EAAiBC,CAAa,CAAC,EAC/B5Q,EAAkBvO,EAAAA,YAAY,IAAM,CACtCqf,EAAkB,CACpB,EAAG,CAACA,CAAkB,CAAC,EACvBzd,OAAAA,EAAAA,UAAU,UAAoC,CAC5C,MAAO,IAAM,CACX0d,EAAiB,CACnB,CACF,EAAG,CAACA,CAAiB,CAAC,EACFlZ,EAAAA,IAAK,MAAO,CAC9B,UAAW,eACX,MAAO,CACL,UAAAoY,CACN,EACI,SAAuBpY,EAAAA,IAAK,SAAU,CACpC,UAAW,SACX,KAAM,SACN,aAAc,cACd,YAAamI,EACb,cAAenB,CACrB,CAAK,CACL,CAAG,CACH,CCrUA,SAAS3G,EAAgBvE,EAAGG,EAAG,EAAG,CAAE,OAAQA,EAAIqE,GAAerE,CAAC,KAAMH,EAAI,OAAO,eAAeA,EAAGG,EAAG,CAAE,MAAO,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAIH,EAAEG,CAAC,EAAI,EAAGH,CAAG,CACnL,SAASwE,GAAevE,EAAG,CAAE,IAAIwE,EAAIC,GAAazE,EAAG,QAAQ,EAAG,OAAmB,OAAOwE,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAazE,EAAGE,EAAG,CAAE,GAAgB,OAAOF,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAID,EAAIC,EAAE,OAAO,WAAW,EAAG,GAAeD,IAAX,OAAc,CAAE,IAAIyE,EAAIzE,EAAE,KAAKC,EAAGE,CAAc,EAAG,GAAgB,OAAOsE,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBtE,IAAb,SAAiB,OAAS,QAAQF,CAAC,CAAG,CAOvT,MAAMod,UAAuBC,EAAW,CACtC,WAAW,OAAQ,CAEjB,OAAID,EAAe,QAAU,OAC3BA,EAAe,OAASE,GAAiB,GAEpCF,EAAe,MAExB,CACA,OAAO,iBAAiBG,EAAQ,CAU9B,QATI7X,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,EAC5E8X,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,IAC5EC,EAAQ,CAAA,EACRC,EAAS,CAAA,EACTC,EAAS,CAAA,EACTC,EAAS,CAAA,EAGTC,EAAY,IAAI,KAAK,YAAY,EAC5BrZ,EAAI,EAAGA,EAAIgZ,EAAOhZ,GAAK,EAAG,CACjC,IAAIsZ,EAAO,IAAI,KAAKD,EAAU,YAAW,EAAIA,EAAU,SAAQ,EAAIA,EAAU,UAAYrZ,EAAIgZ,CAAK,EAClGC,EAAM,KAAK,GAAG,OAAOK,EAAK,YAAW,EAAI,GAAG,EAAE,OAAOA,EAAK,SAAQ,EAAK,EAAG,GAAG,EAAE,OAAOA,EAAK,QAAO,CAAE,CAAC,EACrG,IAAIC,GAAK,KAAK,IAAIvZ,EAAIgZ,EAAQD,CAAM,EAAIC,EAAQ,EAAI,KAAK,IAAIhZ,EAAI,EAAG,EAAIgZ,EAAQ,EAAI,KAAK,IAAIhZ,EAAI,EAAG,EAAIgZ,EAAQ,GAAKJ,EAAe,OAAM,EAAKI,EAAQ,EAAIhZ,EAAI4Y,EAAe,WAAa1X,EAC3LqY,EAAI,KAAK,MAAMA,EAAI,GAAG,EAAI,IAI1BL,EAAO,KAAKK,CAAC,EACbH,EAAO,KAAK,GAAKpZ,EAAI4Y,EAAe,SAAS,EAC7CO,EAAO,KAAK,KAAK,IAAInZ,EAAIgZ,EAAQD,CAAM,EAAIC,EAAQ,EAAIJ,EAAe,OAAM,EAAKI,EAAQ,GAAKhZ,EAAI4Y,EAAe,SAAS,CAC5H,CACA,MAAO,CACL,EAAGK,EACH,EAAGC,EACHC,EACA,EAAGC,CACT,CACE,CACA,OAAO,YAAYI,EAAQ,CACzB,MAAO,CACL,KAAM,OACN,EAAGA,EAAO,EACV,EAAGA,EAAO,EACV,KAAM,UACN,KAAM,UACN,UAAW,OACX,OAAQ,CACN,KAAM,CACd,CACA,CACE,CACA,OAAO,SAASA,EAAQ,CACtB,MAAO,CACL,KAAM,OACN,EAAGA,EAAO,EACV,EAAGA,EAAO,EACV,KAAM,UACN,KAAM,OACN,KAAM,UACN,UAAW,MACX,KAAM,CACJ,MAAO,CAEf,CACA,CACE,CACA,OAAO,cAAcA,EAAQ,CAC3B,MAAO,CAEL,KAAM,qCACN,EAAGA,EAAO,EACV,EAAGA,EAAO,EACV,KAAM,UACN,KAAM,OACN,UAAW,OACX,KAAM,CACJ,MAAO,EACP,KAAM,KAEd,CACA,CACE,CACA,OAAO,cAAcA,EAAQ,CAI3B,QAFIC,EAAgB,CAAA,EAChBC,EAAiB,CAAA,EACZ,EAAI,EAAG,EAAIF,EAAO,EAAE,OAAQ,GAAK,EAAG,CAC3C,IAAI1U,EAAQ0U,EAAO,EAAE,CAAC,EACtBC,EAAc,CAAC,EAAI,KAAK,OAAO3U,EAAQ,IAAM,GAAG,EAAI,IACpD4U,EAAe,CAAC,EAAI,KAAK,OAAO5U,EAAQ,IAAM,GAAG,EAAI,GACvD,CAGA,IAAI6U,EAASF,EAAc,OAAOC,EAAe,QAAO,CAAE,EAC1D,MAAO,CACL,KAAM,QACN,EAAGF,EAAO,EAAE,OAAOA,EAAO,EAAE,QAAQ,SAAS,EAE7C,EAAGG,EACH,KAAM,UACN,KAAM,OACN,UAAW,OACX,KAAM,SAEN,KAAM,CACJ,MAAO,EACP,MAAOf,EAAe,MAAM,sBAC5B,MAAO,QACf,CACA,CACE,CACA,OAAO,SAASY,EAAQ,CACtB,MAAO,CACL,KAAM,OACN,EAAGA,EAAO,EACV,EAAGA,EAAO,EACV,KAAM,UACN,KAAM,OACN,UAAW,gBACX,KAAM,CACJ,MAAO,CACf,CACA,CACE,CACA,OAAO,gBAAiB,CACtB,IAAII,EAAUhB,EAAe,iBAAiB,CAAC,EAC3CiB,EAAcjB,EAAe,SAASgB,CAAO,EAC7CE,EAAYlB,EAAe,cAAcgB,CAAO,EAChDG,EAAUnB,EAAe,iBAAiB,CAAC,EAC3CoB,EAAOpB,EAAe,SAASmB,CAAO,EACtCE,EAAYrB,EAAe,cAAcmB,CAAO,EACpD,MAAO,CAACF,EAAaC,EAAWE,EAAMC,CAAS,CACjD,CACA,OAAO,kBAAkBC,EAAI,CAC3B,IAAIC,EAAS,CACX,SAAU,IAAIC,GAAWF,CAAE,EAAE,oBAAoBtB,EAAe,KAAK,CAC3E,EACI,OAAAuB,EAAO,MAAQ,CACb,KAAM,OACZ,EACIA,EAAO,MAAQ,CACb,MAAO,CACL,KAAM,WACd,CACA,EACIA,EAAO,MAAQ,CACb,MAAO,CACL,KAAM,OACd,CACA,EACWA,CACT,CACA,YAAYD,EAAI,CACd,GAAI,CACF,KAAA7G,EAAOuF,EAAe,eAAc,EACpC,OAAAuB,EAASvB,EAAe,kBAAkBsB,CAAE,EAC5C,aAAAG,EAAe,CAAA,CACrB,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAA,EACxE,MAAMH,CAAE,EACRpa,EAAgB,KAAM,OAAQ,MAAM,EACpCA,EAAgB,KAAM,eAAgB,MAAM,EAC5CA,EAAgB,KAAM,SAAU,MAAM,EACtC,KAAK,KAAOuT,EACZ,KAAK,OAAS8G,EACd,KAAK,aAAeE,CACtB,CACA,SAAU,CACR,OAAO,KAAK,IACd,CACA,WAAY,CACV,OAAO,KAAK,MACd,CACA,oBAAqB,CAEnB,QADIjhB,EAAM,IAAI,IACL4G,EAAI,EAAGA,EAAI,KAAK,aAAa,OAAQA,GAAK,EAAG,CACpD,IAAIsa,EAAO,KAAK,aAAata,CAAC,EAC1B8P,EAAO,mBACX1W,EAAI,IAAIkhB,EAAM,CACZ,KAAAA,EACA,KAAAxK,CACR,CAAO,CACH,CACA,OAAO1W,CACT,CACA,kBAAmB,CACjB,OAAO,KAAK,aAAa,OAAS,CACpC,CACA,WAAY,CACV,KAAK,WAAW,KAAK,IAAI,CAC3B,CACF,CACA0G,EAAgB8Y,EAAgB,SAAU,KAAK,OAAO,KAAK,IAAI,CAAC,EAChE9Y,EAAgB8Y,EAAgB,YAAa,GAAG,EAChD9Y,EAAgB8Y,EAAgB,SAAU,MAAM"}
1
+ {"version":3,"file":"MockChartModel-B0Gv2sr1.js","sources":["../../../react-hooks/dist/useMappedRef.js","../../../react-hooks/dist/useContentRect.js","../../../react-hooks/dist/useOnScrollRef.js","../../../components/dist/spectrum/utils/propsUtils.js","../../../components/dist/spectrum/utils/useStringifiedMultiSelection.js","../../../components/dist/theme/FontBootstrap.js","../../../components/dist/spectrum/comboBox/ComboBoxNormalized.js","../../../components/dist/spectrum/listView/ListViewWrapper.js","../../../components/dist/spectrum/listView/ListView.js","../../../components/dist/spectrum/listView/ListViewNormalized.js","../../../components/dist/spectrum/View.js","../../../components/dist/spectrum/CheckboxGroup.js","../../../components/dist/AutoCompleteInput.js","../../../components/dist/AutoResizeTextarea.js","../../../components/dist/context-actions/ContextMenu.js","../../../components/dist/context-actions/ContextMenuRoot.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"],"sourcesContent":["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 { 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 || _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","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(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\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, 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 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, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport var FontsLoadedContext = /*#__PURE__*/createContext(false);\nFontsLoadedContext.displayName = 'FontsLoadedContext';\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","var _excluded = [\"UNSAFE_className\"],\n _excluded2 = [\"forceRerenderKey\", \"ref\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport { ComboBox as SpectrumComboBox } from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport { usePickerNormalizedProps } from \"../picker/index.js\";\nimport { createElement as _createElement } from \"react\";\n/**\n * ComboBox that takes an array of `NormalizedItem` or `NormalizedSection` items\n * as children and uses a render item function to render the items. `NormalizedItem`\n * and `NormalizedSection` datums always provide a `key` property but have an\n * optional `item` property that can be lazy loaded. This is necessary to support\n * windowed data since we need a representative key for every item in the\n * collection.\n */\nexport function ComboBoxNormalized(_ref) {\n var {\n UNSAFE_className\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var _usePickerNormalizedP = usePickerNormalizedProps(props),\n {\n forceRerenderKey,\n ref\n } = _usePickerNormalizedP,\n pickerProps = _objectWithoutProperties(_usePickerNormalizedP, _excluded2);\n return /*#__PURE__*/_createElement(SpectrumComboBox\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, pickerProps), {}, {\n key: forceRerenderKey,\n ref: ref,\n UNSAFE_className: cl('dh-combobox', 'dh-combobox-normalized', UNSAFE_className)\n }));\n}\nexport default ComboBoxNormalized;\n//# sourceMappingURL=ComboBoxNormalized.js.map","var _excluded = [\"onScroll\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\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(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\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\", \"actions\", \"UNSAFE_className\", \"onChange\", \"onSelectionChange\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\nimport { useMemo, createElement as _createElement } from 'react';\nimport cl from 'classnames';\nimport { normalizeTooltipOptions, useRenderNormalizedItem, useStringifiedMultiSelection } from \"../utils/index.js\";\nimport { ListViewWrapper } from \"./ListViewWrapper.js\";\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 actions,\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 actions\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","var _excluded = [\"backgroundColor\", \"borderColor\", \"borderStartColor\", \"borderEndColor\", \"borderTopColor\", \"borderBottomColor\", \"borderXColor\", \"borderYColor\", \"UNSAFE_style\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* eslint-disable react/jsx-props-no-spreading */\nimport { forwardRef, useMemo } from 'react';\nimport { useLocale, 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 palette and semantic colors.\n *\n * @param props The props for the View component\n * @returns The View component\n *\n */\nexport var View = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var {\n backgroundColor,\n borderColor,\n borderStartColor,\n borderEndColor,\n borderTopColor,\n borderBottomColor,\n borderXColor,\n borderYColor,\n UNSAFE_style\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var {\n direction\n } = useLocale();\n var style = useMemo(() => {\n var borderStyle = {};\n if (borderColor !== undefined) {\n borderStyle.borderColor = colorValueStyle(borderColor);\n }\n if (borderXColor !== undefined) {\n borderStyle.borderLeftColor = colorValueStyle(borderXColor);\n borderStyle.borderRightColor = colorValueStyle(borderXColor);\n }\n if (borderYColor !== undefined) {\n borderStyle.borderTopColor = colorValueStyle(borderYColor);\n borderStyle.borderBottomColor = colorValueStyle(borderYColor);\n }\n if (borderStartColor !== undefined) {\n borderStyle[direction === 'rtl' ? 'borderRightColor' : 'borderLeftColor'] = colorValueStyle(borderStartColor);\n }\n if (borderEndColor !== undefined) {\n borderStyle[direction === 'rtl' ? 'borderLeftColor' : 'borderRightColor'] = colorValueStyle(borderEndColor);\n }\n if (borderTopColor !== undefined) {\n borderStyle.borderTopColor = colorValueStyle(borderTopColor);\n }\n if (borderBottomColor !== undefined) {\n borderStyle.borderBottomColor = colorValueStyle(borderBottomColor);\n }\n return _objectSpread(_objectSpread({}, UNSAFE_style), {}, {\n backgroundColor: colorValueStyle(backgroundColor)\n }, borderStyle);\n }, [backgroundColor, UNSAFE_style, borderColor, borderStartColor, borderEndColor, borderTopColor, borderBottomColor, borderXColor, borderYColor, direction]);\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","var _excluded = [\"children\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }\n/* eslint-disable react/no-array-index-key */\nimport { isElementOfType } from '@deephaven/react-hooks';\nimport React, { useMemo } from 'react';\nimport { Checkbox, CheckboxGroup as SpectrumCheckboxGroup } from '@adobe/react-spectrum';\nimport { ensureArray } from '@deephaven/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Augmented version of the Spectrum CheckboxGroup component that supports\n * primitive item children.\n */\nexport function CheckboxGroup(_ref) {\n var {\n children\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var wrappedChildren = useMemo(() => ensureArray(children).map(child => isElementOfType(child, Checkbox) ? child : /*#__PURE__*/_jsx(Checkbox, {\n value: String(child),\n children: String(child)\n }, String(child))), [children]);\n return (\n /*#__PURE__*/\n // eslint-disable-next-line react/jsx-props-no-spreading\n _jsx(SpectrumCheckboxGroup, _objectSpread(_objectSpread({}, props), {}, {\n children: wrappedChildren\n }))\n );\n}\nexport default CheckboxGroup;\n//# sourceMappingURL=CheckboxGroup.js.map","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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 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, jsxs as _jsxs } from \"react/jsx-runtime\";\nvar DEBOUNCE_DELAY = 100;\nvar MENU_NAVIGATION_DIRECTION = /*#__PURE__*/function (MENU_NAVIGATION_DIRECTION) {\n MENU_NAVIGATION_DIRECTION[\"UP\"] = \"UP\";\n MENU_NAVIGATION_DIRECTION[\"DOWN\"] = \"DOWN\";\n return MENU_NAVIGATION_DIRECTION;\n}(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 max: 1000\n }));\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 || _this$popper$current.scheduleUpdate(); // filtered options list can change size, may need to be repositioned\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 || _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 || _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 || _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 || _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 || _this$input$current4.focus();\n }\n (_this$popper$current3 = this.popper.current) === null || _this$popper$current3 === 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 || _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, \"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 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}\nexport default AutoResizeTextarea;\n//# sourceMappingURL=AutoResizeTextarea.js.map","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport { PromiseUtils } from '@deephaven/utils';\nimport ContextActionUtils from \"./ContextActionUtils.js\";\nimport ContextMenuItem from \"./ContextMenuItem.js\";\nimport LoadingSpinner from \"../LoadingSpinner.js\";\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nvar log = Log.module('ContextMenu');\n/** Do not use this class directly. Use ContextMenuRoot and ContextActions instead. */\nclass ContextMenu extends PureComponent {\n static handleContextMenu(e) {\n if (e.metaKey) {\n return;\n }\n e.stopPropagation();\n e.preventDefault();\n }\n constructor(props) {\n super(props);\n _defineProperty(this, \"container\", void 0);\n _defineProperty(this, \"oldFocus\", void 0);\n _defineProperty(this, \"activeSubMenuRef\", void 0);\n _defineProperty(this, \"subMenuTimer\", void 0);\n _defineProperty(this, \"rAF\", void 0);\n _defineProperty(this, \"initialPosition\", void 0);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleCloseSubMenu = this.handleCloseSubMenu.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleMenuItemClick = this.handleMenuItemClick.bind(this);\n this.handleMenuItemContextMenu = this.handleMenuItemContextMenu.bind(this);\n this.handleMenuItemMouseMove = this.handleMenuItemMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleWindowResize = this.handleWindowResize.bind(this);\n this.container = /*#__PURE__*/React.createRef();\n this.oldFocus = document.activeElement;\n this.activeSubMenuRef = /*#__PURE__*/React.createRef();\n this.subMenuTimer = 0;\n this.rAF = 0;\n this.initialPosition = {\n top: props.top,\n left: props.left\n };\n this.state = {\n menuItems: [],\n pendingItems: [],\n activeSubMenu: null,\n hasOverflow: false,\n subMenuTop: null,\n subMenuLeft: null,\n subMenuParentWidth: 0,\n subMenuParentHeight: 0,\n keyboardIndex: -1,\n mouseIndex: -1\n };\n }\n componentDidMount() {\n this.initMenu();\n this.verifyPosition();\n window.addEventListener('resize', this.handleWindowResize);\n\n // rAF is needed to wait for a submenus popper to be created before\n // attempting to set focus, however on a quick mount/unmount when\n // mousing past an item, the submenu could be unmounted before the\n // async rAF finishes, so it is cancelled in willUnmount()\n this.rAF = window.requestAnimationFrame(() => {\n var _this$container$curre;\n (_this$container$curre = this.container.current) === null || _this$container$curre === void 0 || _this$container$curre.focus();\n var {\n onMenuOpened\n } = this.props;\n onMenuOpened(this);\n });\n }\n componentDidUpdate(prevProps, prevState) {\n var {\n actions\n } = this.props;\n var {\n activeSubMenu\n } = this.state;\n if (activeSubMenu !== prevState.activeSubMenu) {\n if (activeSubMenu == null) {\n var _this$container$curre2;\n // close sub menu, refocus parent menu\n (_this$container$curre2 = this.container.current) === null || _this$container$curre2 === void 0 || _this$container$curre2.focus();\n } else {\n // open sub menu, set its initial position\n this.setActiveSubMenuPosition();\n }\n }\n if (prevProps.actions !== actions) {\n this.initMenu();\n if (this.container.current == null || !this.container.current.contains(document.activeElement)) {\n var _this$container$curre3;\n (_this$container$curre3 = this.container.current) === null || _this$container$curre3 === void 0 || _this$container$curre3.focus();\n }\n }\n this.verifyPosition();\n }\n componentWillUnmount() {\n this.cancelPromises();\n window.removeEventListener('resize', this.handleWindowResize);\n cancelAnimationFrame(this.rAF);\n }\n getKeyboardIndex() {\n var {\n options\n } = this.props;\n if (options.separateKeyboardMouse !== undefined && options.separateKeyboardMouse) {\n var {\n keyboardIndex\n } = this.state;\n return keyboardIndex;\n }\n return this.getMouseIndex();\n }\n setKeyboardIndex(index) {\n var {\n options\n } = this.props;\n if (options.separateKeyboardMouse !== undefined && options.separateKeyboardMouse) {\n this.setState({\n keyboardIndex: index\n });\n } else {\n this.setMouseIndex(index);\n }\n }\n getMouseIndex() {\n var {\n mouseIndex\n } = this.state;\n return mouseIndex;\n }\n setMouseIndex(index) {\n this.setState({\n mouseIndex: index\n });\n }\n initMenu() {\n // cancel any pending close and promises\n this.cancelPromises();\n cancelAnimationFrame(this.rAF);\n var {\n options\n } = this.props;\n var keyboardIndex = options.initialKeyboardIndex;\n if (keyboardIndex === undefined) {\n keyboardIndex = -1;\n }\n var {\n actions\n } = this.props;\n var menuItems = ContextActionUtils.getMenuItems(actions);\n var nonPromiseItems = [];\n for (var i = menuItems.length - 1; i >= 0; i -= 1) {\n var menuItem = menuItems[i];\n if (menuItem instanceof Promise) {\n this.initMenuPromise(menuItem);\n } else {\n nonPromiseItems.push(menuItem);\n }\n }\n this.setState({\n mouseIndex: -1,\n keyboardIndex,\n activeSubMenu: null,\n menuItems: ContextActionUtils.sortActions(nonPromiseItems)\n });\n }\n initMenuPromise(promise) {\n // make all promises cancellable\n var cancellablePromise = PromiseUtils.makeCancelable(promise);\n this.setState(state => ({\n pendingItems: state.pendingItems.concat(cancellablePromise)\n }));\n cancellablePromise.then(resolvedMenuItems => {\n this.setState(state => {\n var index = state.pendingItems.indexOf(cancellablePromise);\n if (index >= 0) {\n var pendingItems = state.pendingItems.slice();\n pendingItems.splice(index, 1);\n return {\n menuItems: ContextActionUtils.sortActions(state.menuItems.concat(resolvedMenuItems)),\n pendingItems\n };\n }\n // This item is stale, don't update the menu\n return null;\n });\n }, error => {\n if (PromiseUtils.isCanceled(error)) {\n return; // Canceled promise is ignored\n }\n\n // remove failed item from pending list\n this.setState(state => {\n var index = state.pendingItems.indexOf(cancellablePromise);\n if (index >= 0) {\n var pendingItems = state.pendingItems.slice();\n pendingItems.splice(index, 1);\n return {\n pendingItems\n };\n }\n return null;\n });\n\n // Log the error\n log.error(error);\n });\n }\n cancelPromises() {\n var {\n pendingItems\n } = this.state;\n pendingItems.map(item => item.cancel());\n }\n\n /**\n * Sets the unverfied start position of a submenu. Submenu then self-verfies\n * its own position and potentially reports back a new position.\n */\n setActiveSubMenuPosition() {\n if (this.activeSubMenuRef.current === null) return;\n var parentRect = this.activeSubMenuRef.current.getBoundingClientRect();\n\n // intentionally rect.right, we want the sub menu to start at the right edge of the current menu\n this.setState({\n subMenuTop: parentRect.top,\n subMenuLeft: parentRect.right,\n subMenuParentHeight: parentRect.height,\n subMenuParentWidth: parentRect.width\n });\n }\n\n /**\n * Verifies the position of this menu in relation to the parent to make sure it's on screen.\n * Will update the top left state (updatePosition) if necessary (causing a re-render)\n * By default it tries to top-align with parent, at the right side of the parent.\n * Because we aren't a native context menu and can't escape window bounds, we also do\n * somethings to better fit on screen, such as the \"nudge\" offset position, and further\n * allow overflow scrolling for large menus in a small window.\n */\n verifyPosition() {\n var _this$container$curre4, _this$container$curre5, _this$container$curre6, _this$container$curre7;\n var {\n options,\n updatePosition,\n subMenuParentWidth,\n subMenuParentHeight,\n top: oldTop,\n left: oldLeft\n } = this.props;\n if (!this.container.current || options.doNotVerifyPosition != null && options.doNotVerifyPosition) {\n return;\n }\n\n // initial position is used rather than current position,\n // as the number of menu items can change (actions can bubble)\n // and menu should always be positioned relative to spawn point\n var {\n top,\n left\n } = this.initialPosition;\n var {\n width,\n height\n } = (_this$container$curre4 = (_this$container$curre5 = this.container.current) === null || _this$container$curre5 === void 0 ? void 0 : _this$container$curre5.getBoundingClientRect()) !== null && _this$container$curre4 !== void 0 ? _this$container$curre4 : {\n width: 0,\n height: 0\n };\n var hasOverflow = ((_this$container$curre6 = (_this$container$curre7 = this.container.current) === null || _this$container$curre7 === void 0 ? void 0 : _this$container$curre7.scrollHeight) !== null && _this$container$curre6 !== void 0 ? _this$container$curre6 : 0) > window.innerHeight;\n if (height === 0 || width === 0) {\n // We don't have a height or width yet, don't bother doing anything\n return;\n }\n\n // does it fit below?\n if (top + height > window.innerHeight) {\n // can it be flipped to above? include offset if submenu (defaults to 0 if not submenu)\n if (top - height - subMenuParentHeight > 0) {\n // flip like a native menu would\n top -= height - subMenuParentHeight;\n } else {\n // still doesnt fit? okay, position at bottom edge\n top = window.innerHeight - height;\n }\n }\n if (left + width > window.innerWidth) {\n // less picky about left right positioning, just keep it going off to right\n left = left - width - subMenuParentWidth;\n }\n if (oldLeft !== left || oldTop !== top) {\n // parent owns positioning as single source of truth, ask to update props\n this.setState({\n hasOverflow\n });\n updatePosition(top, left);\n }\n }\n\n // since window resize doesn't trigger blur, listen and close the menu\n handleWindowResize() {\n if (!this.container.current) {\n return;\n }\n this.closeMenu(true);\n }\n handleBlur(e) {\n if (!this.container.current) {\n log.warn('Container is null!');\n return;\n }\n if (!this.container.current.contains(e.relatedTarget)) {\n var element = e.relatedTarget;\n var isContextMenuChild = false;\n while (element && !isContextMenuChild) {\n isContextMenuChild = element.hasAttribute('data-dh-context-menu');\n element = element.parentElement;\n }\n if (!isContextMenuChild) {\n // close all submenus on blur\n this.closeMenu(true);\n }\n }\n }\n\n /** Returns whether the specified key should remove the menu. Depends on the side the parent is on. */\n isEscapeKey(key) {\n var {\n left\n } = this.props;\n return key === 'Escape' || left < 0 && key === 'ArrowRight' || key === 'ArrowLeft';\n }\n handleKeyDown(e) {\n var {\n menuItems\n } = this.state;\n var oldFocus = this.getKeyboardIndex();\n var newFocus = oldFocus;\n var openSubMenu = false;\n if (e.key === 'Enter' || e.key === ' ') {\n if (oldFocus >= 0 && oldFocus < menuItems.length) {\n this.handleMenuItemClick(menuItems[oldFocus], e);\n }\n return;\n }\n if (e.key === 'ArrowRight') {\n if (oldFocus >= 0 && oldFocus <= menuItems.length) {\n openSubMenu = true;\n } else {\n newFocus = 0;\n }\n } else if (this.isEscapeKey(e.key)) {\n newFocus = null;\n } else if (e.key === 'ArrowUp' || e.shiftKey && e.key === 'Tab') {\n newFocus = ContextActionUtils.getNextMenuItem(newFocus, -1, menuItems);\n } else if (e.key === 'ArrowDown' || e.key === 'Tab') {\n newFocus = ContextActionUtils.getNextMenuItem(newFocus, 1, menuItems);\n }\n if (openSubMenu) {\n this.openSubMenu(oldFocus);\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (oldFocus !== newFocus) {\n if (newFocus !== null) {\n this.setKeyboardIndex(newFocus);\n } else {\n this.closeMenu();\n if (this.oldFocus instanceof HTMLElement) {\n this.oldFocus.focus();\n }\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n openSubMenu(index) {\n var {\n menuItems,\n activeSubMenu\n } = this.state;\n var newSubMenu = menuItems[index].actions ? index : null;\n if (activeSubMenu === newSubMenu) return;\n this.setState({\n activeSubMenu: newSubMenu,\n subMenuTop: null,\n subMenuLeft: null\n });\n }\n closeMenu() {\n var closeAll = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var {\n closeMenu,\n onMenuClosed\n } = this.props;\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n closeMenu(closeAll);\n onMenuClosed(this);\n });\n }\n closeSubMenu() {\n this.setState({\n activeSubMenu: null\n });\n }\n handleCloseSubMenu(closeAllMenus) {\n if (closeAllMenus) {\n this.closeMenu(true);\n } else {\n this.closeSubMenu();\n }\n }\n handleMenuItemClick(menuItem, e) {\n e.preventDefault();\n e.stopPropagation();\n var {\n menuItems\n } = this.state;\n if (menuItem != null && (menuItem.disabled === undefined || !menuItem.disabled)) {\n if (menuItem.actions != null) {\n this.openSubMenu(menuItems.indexOf(menuItem));\n } else if (menuItem.action != null) {\n menuItem.action(e.nativeEvent);\n this.closeMenu(true);\n }\n }\n }\n handleMenuItemContextMenu(menuItem, e) {\n if (e.metaKey) {\n return;\n }\n this.handleMenuItemClick(menuItem, e);\n }\n handleMenuItemMouseMove(menuItem) {\n var {\n menuItems\n } = this.state;\n var focusIndex = menuItems.indexOf(menuItem);\n this.setMouseIndex(focusIndex);\n if (focusIndex >= 0 && focusIndex < menuItems.length && (menuItem.disabled === undefined || !menuItem.disabled)) {\n this.openSubMenu(focusIndex);\n }\n }\n handleMouseLeave() {\n this.setMouseIndex(-1);\n }\n render() {\n var menuItemElements = [];\n var {\n top,\n left\n } = this.props;\n var {\n activeSubMenu,\n hasOverflow,\n keyboardIndex,\n menuItems,\n mouseIndex,\n pendingItems,\n subMenuTop,\n subMenuLeft,\n subMenuParentWidth,\n subMenuParentHeight\n } = this.state;\n for (var i = 0; i < menuItems.length; i += 1) {\n var menuItem = menuItems[i];\n if (i > 0 && menuItem.group !== menuItems[i - 1].group) {\n menuItemElements.push(/*#__PURE__*/_jsx(\"hr\", {}, \"\".concat(i, \".separator\")));\n }\n var menuItemElement = /*#__PURE__*/_jsx(ContextMenuItem, {\n ref: activeSubMenu === i ? this.activeSubMenuRef : null,\n isKeyboardSelected: keyboardIndex === i,\n isMouseSelected: mouseIndex === i,\n menuItem: menuItem,\n closeMenu: this.handleCloseSubMenu,\n onMenuItemClick: this.handleMenuItemClick,\n onMenuItemMouseMove: this.handleMenuItemMouseMove,\n onMenuItemContextMenu: this.handleMenuItemContextMenu\n }, i);\n menuItemElements.push(menuItemElement);\n }\n var pendingElement = null;\n if (pendingItems.length > 0) {\n pendingElement = /*#__PURE__*/_jsx(\"div\", {\n className: \"loading\",\n children: /*#__PURE__*/_jsx(LoadingSpinner, {\n className: \"loading-spinner-vertical-align\"\n })\n });\n }\n var {\n menuStyle,\n 'data-testid': dataTestId\n } = this.props;\n\n // don't show submenu until it has an position initialized\n var showSubmenu = activeSubMenu !== null && subMenuTop !== null && subMenuLeft !== null;\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsxs(\"div\", {\n className: classNames({\n 'has-overflow': hasOverflow\n }, 'context-menu-container'),\n style: _objectSpread({\n top,\n left\n }, menuStyle),\n ref: this.container,\n \"data-dh-context-menu\": true,\n onBlur: this.handleBlur,\n onKeyDown: this.handleKeyDown,\n onMouseLeave: this.handleMouseLeave,\n onContextMenu: ContextMenu.handleContextMenu,\n role: \"menuitem\",\n tabIndex: 0,\n \"data-testid\": dataTestId,\n children: [menuItemElements, pendingElement]\n }), showSubmenu && activeSubMenu !== null && subMenuTop !== null && subMenuLeft !== null && /*#__PURE__*/_jsx(ContextMenu, {\n actions: menuItems[activeSubMenu].actions || [],\n closeMenu: this.handleCloseSubMenu,\n top: subMenuTop,\n left: subMenuLeft,\n updatePosition: (verifiedTop, verifiedLeft) => {\n this.setState({\n subMenuTop: verifiedTop,\n subMenuLeft: verifiedLeft\n });\n },\n subMenuParentWidth: subMenuParentWidth,\n subMenuParentHeight: subMenuParentHeight\n }, \"sub-\".concat(activeSubMenu))]\n });\n }\n}\n_defineProperty(ContextMenu, \"defaultProps\", {\n subMenuParentWidth: 0,\n subMenuParentHeight: 0,\n closeMenu() {\n // no-op\n },\n onMenuOpened() {\n // no-op\n },\n onMenuClosed() {\n // no-op\n },\n options: {},\n menuStyle: {},\n 'data-testid': undefined\n});\nexport default ContextMenu;\n//# sourceMappingURL=ContextMenu.js.map","function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport ContextMenu from \"./ContextMenu.js\";\nimport ContextActionUtils from \"./ContextActionUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Put at your root container, any contextmenu events that are unhandled in the root container will be handled by this\n */\nclass ContextMenuRoot extends Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"container\", void 0);\n _defineProperty(this, \"openMenu\", void 0);\n this.handleMenuClose = this.handleMenuClose.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n this.container = /*#__PURE__*/React.createRef();\n this.openMenu = /*#__PURE__*/React.createRef();\n this.state = {\n actions: null,\n left: 0,\n top: 0\n };\n }\n componentDidMount() {\n var _this$container$curre;\n if ((_this$container$curre = this.container.current) !== null && _this$container$curre !== void 0 && _this$container$curre.parentElement) {\n this.container.current.parentElement.addEventListener('contextmenu', this.handleContextMenu);\n }\n }\n componentWillUnmount() {\n var _this$container$curre2;\n if ((_this$container$curre2 = this.container.current) !== null && _this$container$curre2 !== void 0 && _this$container$curre2.parentElement) {\n this.container.current.parentElement.removeEventListener('contextmenu', this.handleContextMenu);\n }\n }\n handleContextMenu(e) {\n if (!this.container.current) {\n return;\n }\n var parentRect = this.container.current.getBoundingClientRect();\n var top = e.clientY - parentRect.top;\n var left = e.clientX - parentRect.left;\n var {\n actions\n } = this.state;\n\n // Context menu is open and user clicked on the context-root blocking layer\n // Mac and Linux appear to trigger contextmenu events on mousedown vs. mouseup on Windows\n // Mouseup on Windows triggers blur before contextmenu which effectively does what this path does\n if (actions != null && e.target === this.container.current) {\n // re-emit right clicks that hit the context-root blocking layer\n // while we already have a custom context menu open\n e.preventDefault();\n\n // Set actions to null removes the menu\n // That allows a new menu to be opened on a different element so initial position is set properly\n // Otherwise the instance of this menu may be reused\n // A new contextmenu event is triggered on the element at the location the user clicked on the blocking layer\n this.setState({\n actions: null\n }, () => {\n var element = document.elementFromPoint(left, top); // x y\n\n var mouseEvent = new MouseEvent('contextmenu', {\n clientX: e.clientX,\n clientY: e.clientY,\n bubbles: true,\n cancelable: true\n });\n element === null || element === void 0 || element.dispatchEvent(mouseEvent);\n });\n return;\n }\n if (!ContextActionUtils.isContextActionEvent(e)) {\n // Open native menu if no custom context actions\n return;\n }\n if (e.metaKey || e.ctrlKey) {\n // debug escape hatch to native menu\n return;\n }\n var contextActions = ContextActionUtils.getMenuItems(e.contextActions);\n if (contextActions.length === 0) {\n // No actions after filtering. Use native menu\n return;\n }\n\n // new clicks, set actions\n e.preventDefault();\n this.setState({\n actions: contextActions,\n top,\n left\n });\n }\n handleMenuClose(menu) {\n if (menu === this.openMenu.current) {\n this.setState({\n actions: null\n });\n }\n }\n render() {\n var menu = null;\n var {\n 'data-testid': dataTestId\n } = this.props;\n var {\n actions,\n top,\n left\n } = this.state;\n if (actions) {\n menu = /*#__PURE__*/_jsx(ContextMenu, {\n ref: this.openMenu,\n actions: actions,\n onMenuClosed: this.handleMenuClose,\n top: top,\n left: left,\n updatePosition: (verifiedTop, verifiedLeft) => {\n this.setState({\n top: verifiedTop,\n left: verifiedLeft\n });\n },\n \"data-testid\": dataTestId\n });\n }\n return /*#__PURE__*/_jsx(\"div\", {\n className: classNames('context-menu-root', {\n active: actions\n }),\n ref: this.container,\n children: menu\n });\n }\n}\nexport default ContextMenuRoot;\n//# sourceMappingURL=ContextMenuRoot.js.map","import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport Log from '@deephaven/log';\nimport { EMPTY_FUNCTION, 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 = EMPTY_FUNCTION,\n value: propsValue = 0,\n onFocus = EMPTY_FUNCTION,\n onBlur = EMPTY_FUNCTION,\n onSelect = EMPTY_FUNCTION,\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 || _inputRef$current.focus();\n },\n setSelection: newSelection => {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === 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});\nexport default TimeInput;\n//# sourceMappingURL=TimeInput.js.map","function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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, jsxs as _jsxs } from \"react/jsx-runtime\";\nvar CUSTOM_OPTION = -1;\nvar MENU_NAVIGATION_DIRECTION = /*#__PURE__*/function (MENU_NAVIGATION_DIRECTION) {\n MENU_NAVIGATION_DIRECTION[\"UP\"] = \"UP\";\n MENU_NAVIGATION_DIRECTION[\"DOWN\"] = \"DOWN\";\n return MENU_NAVIGATION_DIRECTION;\n}(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 || _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 || _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 || _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 || _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 || _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, 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(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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, 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 || _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 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 = ((lastTimestamp !== null && lastTimestamp !== void 0 ? lastTimestamp : 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) - (lastTimestamp !== null && lastTimestamp !== void 0 ? lastTimestamp : 0) > 1000 / PX_PER_SECOND) {\n // number of points to add since last update\n var numberOfPoints = Math.floor(((timestamp !== null && timestamp !== void 0 ? timestamp : 0) - (lastTimestamp !== null && lastTimestamp !== void 0 ? lastTimestamp : 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 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, jsxs as _jsxs, 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 || _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 || _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 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(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\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 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 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 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 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 = {\n text: 'Chart'\n };\n layout.xaxis = {\n title: {\n text: 'Datestamp'\n }\n };\n layout.yaxis = {\n title: {\n text: 'Price'\n }\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"],"names":["useMappedRef","targetRef","map","useCallback","ref","useContentRect","identityExtractHTMLElement","x","setX","useState","y","setY","width","setWidth","height","setHeight","contentRect","useMemo","el","setEl","handleResize","_ref","_firstEntry$contentRe","firstEntry","rect","useResizeObserver","useOnScrollRef","onScroll","extractHTMLElement","cleanupRef","useRef","useEffect","_cleanupRef$current","_cleanupRef$current2","element","_excluded","_objectWithoutProperties","e","t","o","r","_objectWithoutPropertiesLoose","n","separateSpectrumProps","props","ariaLabel","ariaLabelledby","ariaDescribedby","ariaHidden","marginX","marginY","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","componentProps","useStringifiedMultiSelection","normalizedItems","defaultSelectedKeys","disabledKeys","selectedKeys","onChange","selectedStringKeys","itemSelectionToStringSet","defaultSelectedStringKeys","disabledStringKeys","onStringSelectionChange","keys","actualKeys","item","getItemKey","FontsLoadedContext","createContext","FontBootstrap","fontClassNames","children","isLoaded","setIsLoaded","_jsxs","_Fragment","_jsx","className","_excluded2","ownKeys","_objectSpread","_defineProperty","_toPropertyKey","i","_toPrimitive","ComboBoxNormalized","UNSAFE_className","_usePickerNormalizedP","usePickerNormalizedProps","forceRerenderKey","pickerProps","_createElement","SpectrumComboBox","cl","ListViewWrapper","_styleProps$minHeight","_listViewProps$densit","ariaLabelProps","styleProps","EMPTY_FUNCTION","listViewProps","scale","useSpectrumThemeProvider","scrollRef","extractSpectrumHTMLElement","contentRectRef","Flex","SpectrumListView","ListView","tooltip","onSelectionChange","spectrumListViewProps","tooltipOptions","normalizeTooltipOptions","wrappedItems","wrapItemChildren","ListViewNormalized","showItemIcons","actions","renderNormalizedItem","useRenderNormalizedItem","View","forwardRef","forwardedRef","backgroundColor","borderColor","borderStartColor","borderEndColor","borderTopColor","borderBottomColor","borderXColor","borderYColor","UNSAFE_style","rest","direction","useLocale","style","borderStyle","colorValueStyle","SpectrumView","CheckboxGroup","wrappedChildren","ensureArray","child","isElementOfType","Checkbox","SpectrumCheckboxGroup","DEBOUNCE_DELAY","MENU_NAVIGATION_DIRECTION","AutoCompleteInput","Component","memoize","options","input","option","popperOptions","debounce","React","title","result","menuIsOpen","value","isValid","filter","_this$popper$current","filteredOptions","perfectMatch","event","_this$input$current","keyboardOptionIndex","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","key","inputPlaceholder","disabled","defaultTitle","spellCheck","dataTestId","invalid","Popper","AutoResizeTextarea","propsValue","placeholder","delimiter","id","setValue","isPastedChange","setIsPastedChange","explode","string","implode","reCalculateLayout","resizedHeight","handleChange","newValue","handleFocus","handleMouseDown","handleBlur","handlePaste","log","Log","ContextMenu","PureComponent","_this$container$curre","onMenuOpened","prevProps","prevState","activeSubMenu","_this$container$curre2","_this$container$curre3","keyboardIndex","mouseIndex","menuItems","ContextActionUtils","nonPromiseItems","menuItem","promise","cancellablePromise","PromiseUtils","state","resolvedMenuItems","pendingItems","error","parentRect","_this$container$curre4","_this$container$curre5","_this$container$curre6","_this$container$curre7","updatePosition","subMenuParentWidth","subMenuParentHeight","oldTop","oldLeft","hasOverflow","isContextMenuChild","oldFocus","newFocus","openSubMenu","newSubMenu","closeAll","closeMenu","onMenuClosed","closeAllMenus","focusIndex","menuItemElements","subMenuTop","subMenuLeft","menuItemElement","ContextMenuItem","pendingElement","LoadingSpinner","menuStyle","showSubmenu","verifiedTop","verifiedLeft","ContextMenuRoot","mouseEvent","contextActions","menu","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","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","icon","customText","matchFound","optionArray","FontAwesomeIcon","DropdownMenu","vsCheck","time","DATE_PATTERN","DATE_FORMAT","DateInput","defaultValue","setSelection","ErrorView","message","isExpandedProp","type","isExpandable","setIsExpandable","isExpanded","setIsExpanded","viewRef","textRef","newIsExpandable","debouncedHandleResize","useDebouncedCallback","useLayoutEffect","vsWarning","CopyButton","Button","vsDiffRemoved","vsDiffAdded","HierarchicalCheckboxMenu","parent","valueMap","includesTrue","includesFalse","onUpdateValueMap","newChildren","parentSelected","newChildValue","_","currentChildren","_parentSelected","copy","_ref2","menuText","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","background","gridColor","assertNotNull","subPixelMotion","numberOfPoints","pauseAnimation","resetIdleTimeout","startAnimation","handleActivity","_canvas$current","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","_ref3","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"],"mappings":"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"}