@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":"index-CqIl8EDR.js","sources":["../../../components/dist/spectrum/TabPanels.js","../../../react-hooks/dist/SelectionUtils.js","../../../react-hooks/dist/useCallbackWithAction.js","../../../react-hooks/dist/useChangeEventValueCallback.js","../../../react-hooks/dist/useDelay.js","../../../react-hooks/dist/useDependentState.js","../../../react-hooks/dist/useEffectNTimesWhen.js","../../../react-hooks/dist/useIsEqualMemo.js","../../../react-hooks/dist/useFormWithDetachedSubmitButton.js","../../../react-hooks/dist/useMappedSelection.js","../../../react-hooks/dist/usePropChangeCallback.js","../../../react-hooks/dist/useDebouncedValue.js","../../../react-hooks/dist/useSetAttributesCallback.js","../../../react-hooks/dist/useSpectrumDisableSpellcheckRef.js","../../../components/dist/theme/useExternalTheme.js","../../../components/dist/theme/FontsLoaded.js","../../../components/dist/dialogs/ActionButtonDialogTrigger.js","../../../components/dist/dialogs/ConfirmationDialog.js","../../../components/dist/actions/ConfirmActionButton.js","../../../components/dist/actions/IconActionButton.js","../../../components/dist/modal/DebouncedModal.js","../../../components/dist/modal/InfoModal.js","../../../components/dist/BulkActionBar.js","../../../components/dist/EditableItemList.js","../../../components/dist/TextWithTooltip.js","../../../components/dist/SearchableCombobox.js","../../../components/dist/TableViewEmptyState.js","../../../components/dist/ToastNotification.js","../../../jsapi-bootstrap/dist/DeferredApiBootstrap.js","../../../jsapi-bootstrap/dist/useObjectFetch.js","../../../jsapi-bootstrap/dist/useWidget.js","../../../console/dist/monaco/MonacoThemeProvider.js","../../../jsapi-utils/dist/ConnectionUtils.js","../../../jsapi-components/dist/HookTestUtils.js","../../../jsapi-components/dist/ColumnNameError.js","../../../jsapi-components/dist/TableDisconnectError.js","../../../jsapi-components/dist/useTable.js","../../../jsapi-components/dist/useTableColumn.js","../../../jsapi-components/dist/TableInput.js","../../../jsapi-components/dist/spectrum/ComboBox.js","../../../jsapi-components/dist/spectrum/ListView.js","../../../jsapi-components/dist/TableDropdown.js","../../../jsapi-components/dist/useBroadcastChannel.js","../../../jsapi-components/dist/useBroadcastLoginListener.js","../../../jsapi-components/dist/useCheckIfExistsValue.js","../../../jsapi-components/dist/useDebouncedViewportSearch.js","../../../jsapi-components/dist/useDebouncedViewportSelectionFilter.js","../../../jsapi-components/dist/useFilteredItemsWithDefaultValue.js","../../../jsapi-components/dist/useGetItemPosition.js","../../../jsapi-components/dist/useNotNullOrEmptyFilter.js","../../../jsapi-components/dist/usePickerWithSelectedValues.js","../../../jsapi-components/dist/useSelectDistinctTable.js","../../../jsapi-components/dist/useShowOnlyEmptyFilter.js","../../../jsapi-components/dist/useValueFilter.js","../../../iris-grid/dist/IrisGridTestUtils.js","../../../dashboard/dist/layout/useDashboardPanel.js","../../../dashboard/dist/redux/hooks.js","../../../plugin/dist/useCustomThemes.js","../../../plugin/dist/WidgetView.js","../../../plugin/dist/usePluginsElementMap.js","../../../auth-plugins/dist/AuthPlugin.js","../../../auth-plugins/dist/AuthHandlerTypes.js","../../../auth-plugins/dist/AuthenticationError.js","../../../auth-plugins/dist/AuthPluginBase.js","../../../auth-plugins/dist/AuthPluginAnonymous.js","../../../auth-plugins/dist/AuthPluginParent.js","../../../auth-plugins/dist/LoginForm.js","../../../auth-plugins/dist/Login.js","../../../auth-plugins/dist/AuthPluginPsk.js","../../../auth-plugins/dist/UserUtils.js","../../../app-utils/dist/plugins/remote-component.config.js","../../../app-utils/dist/plugins/loadRemoteModule.js","../../../app-utils/dist/plugins/PluginUtils.js","../../../app-utils/dist/plugins/RemoteComponent.js","../../../app-utils/dist/components/PluginsBootstrap.js","../../../app-utils/dist/components/LoginNotifier.js","../../../app-utils/dist/components/AuthBootstrap.js","../../../app-utils/dist/components/ConnectionBootstrap.js","../../../app-utils/dist/utils/ConnectUtils.js","../../../app-utils/dist/components/UserBootstrap.js","../../../app-utils/dist/components/ThemeBootstrap.js","../../../app-utils/dist/components/AppBootstrap.js"],"sourcesContent":["var _excluded = [\"children\", \"keepMounted\"];\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 React, { useMemo, useRef } from 'react';\nimport { createHtmlPortalNode, InPortal, OutPortal } from 'react-reverse-portal';\nimport { Item, TabPanels } from '@adobe/react-spectrum';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Wrapper for react-spectrum TabPanels that adds support for keeping panels mounted\n * when not visible using the `keepMounted` prop.\n * Panels created with a render function will not be kept mounted.\n */\nexport function DHCTabPanels(props) {\n var {\n children,\n keepMounted: keepMountedProp = false\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var keepMounted = keepMountedProp && typeof children !== 'function';\n var portalNodeMap = useRef(new Map());\n var portalNodes = useMemo(() => {\n var nodes = [];\n var nextNodeMap = new Map(); // Keep track of the portals we use so we can clean up stale portals\n if (!keepMounted) {\n portalNodeMap.current = nextNodeMap;\n return nodes;\n }\n React.Children.forEach(children, child => {\n // Spectrum would ignore these anyway because it uses Item key to determine if the panel mounts\n if (child == null || child.key == null) {\n return;\n }\n\n // Skip children with function-based content (i.e. ItemRenderer) as it can't be portaled\n if (typeof child.props.children === 'function') {\n throw new Error('DHCTabPanels cannot use keepMounted with an ItemRenderer function as its children');\n }\n var portal = portalNodeMap.current.get(child.key);\n if (portal == null) {\n portal = createHtmlPortalNode({\n attributes: {\n // Should make the placeholder div not affect layout and act as if children are mounted directly to the parent\n style: 'display: contents'\n }\n });\n }\n nextNodeMap.set(child.key, portal);\n nodes.push(/*#__PURE__*/_jsx(InPortal, {\n node: portal,\n children: child.props.children\n }, child.key));\n });\n portalNodeMap.current = nextNodeMap;\n return nodes;\n }, [children, keepMounted]);\n var mappedChildren = useMemo(() => {\n var newChildren = [];\n if (!keepMounted) {\n return newChildren;\n }\n // Need to use forEach instead of map because map always changes the key of the returned elements\n React.Children.forEach(children, child => {\n if (child == null || child.key == null) {\n newChildren.push(child);\n return;\n }\n var portal = portalNodeMap.current.get(child.key);\n if (portal == null) {\n newChildren.push(child);\n return;\n }\n newChildren.push(/*#__PURE__*/_jsx(Item, {\n children: /*#__PURE__*/_jsx(OutPortal, {\n node: portal\n })\n }, child.key));\n });\n return newChildren;\n }, [children, keepMounted]);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [keepMounted && portalNodes, /*#__PURE__*/_jsx(TabPanels\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, rest), {}, {\n children: keepMounted ? mappedChildren : children\n }))]\n });\n}\n//# sourceMappingURL=TabPanels.js.map","import { generateRange } from '@deephaven/utils';\n\n/**\n * Returns the number of selected items or 'all' if all items are selected.\n * @param size Total size of collection that can have selections\n * @param selection Set of selected keys or 'all'\n */\nexport function getSelectedItemCountOrAll(size, selection) {\n if (size === 0) {\n return 0;\n }\n if (selection === 'all' || size === selection.size) {\n return 'all';\n }\n return selection.size;\n}\n\n/**\n * Check 2 SelectionT objects for value equality.\n * @param selectionA\n * @param selectionB\n */\nexport function isSelectionEqual(selectionA, selectionB) {\n if (selectionA === selectionB) {\n return true;\n }\n if (selectionA === 'all' || selectionB === 'all') {\n return false;\n }\n if (selectionA.size !== selectionB.size) {\n return false;\n }\n return [...selectionA.keys()].every(key => selectionB.has(key));\n}\n\n/**\n * Check 2 `SelectionMaybeInverted` instances for value equality.\n * @param selectionA\n * @param selectionB\n */\nexport function isSelectionMaybeInvertedEqual(selectionA, selectionB) {\n return selectionA.isInverted === selectionB.isInverted && isSelectionEqual(selectionA.selection, selectionB.selection);\n}\n\n/**\n * Map a React Spectrum `Selection` to another `Selection`\n * @param selectedItemKeys\n * @param getItem\n * @param mapItem\n */\nexport function mapSelection(selectedItemKeys, getItem, mapItem) {\n if (selectedItemKeys === 'all') {\n return 'all';\n }\n var keys = [...selectedItemKeys.keys()];\n return new Set(keys.map(key => {\n var item = getItem(key);\n if (item === undefined) {\n throw new Error(\"Could not find item with key \".concat(key));\n }\n return mapItem(item);\n }));\n}\n\n/**\n * Takes a Selection state and determines if there is a more optimal selection\n * that can be used. For example, if the user selects all and then deselects an\n * item, we want to filter by \"not that value\" instead of equal to all selected\n * values. Similarly, if 'all' items are selected, we want to optimize this as\n * \"no filter\".\n * @param selection The selection to optimize\n * @param totalRecords The total number of records that can potentially be selected\n * @param getKey A function to get the key for a given index.\n */\nexport function optimizeSelection(selection, totalRecords, getKey) {\n var isInverted = selection === 'all' || selection.size > totalRecords / 2;\n var optimizedSelection = selection;\n if (isInverted) {\n optimizedSelection = selection === 'all' ? new Set() : new Set(\n // Create a new set from any key that is not selected\n [...generateRange(0, totalRecords - 1)].map(getKey).filter(key => !selection.has(key)));\n }\n return {\n selection: optimizedSelection,\n isInverted\n };\n}\n//# sourceMappingURL=SelectionUtils.js.map","import { useCallback } from 'react';\n\n/**\n * Wrap a callback function + an additional \"action\" function in\n * a new function. The new function takes the parameters belonging to\n * the callback and passes them through. The action function will\n * not receive any parameters.\n * @param callback Function\n * @param action Parameterless function to call after the callback\n */\nexport function useCallbackWithAction(callback, action) {\n return useCallback(function () {\n var result = callback(...arguments);\n action();\n return result;\n }, [action, callback]);\n}\nexport default useCallbackWithAction;\n//# sourceMappingURL=useCallbackWithAction.js.map","import { useCallback } from 'react';\n\n/**\n * Returns a callback function that calls the given callback with the `target.value` of\n * an input change event.\n * @param callback the callback to call with the `target.value`\n * @returns a callback function that calls the given callback with the `target.value`\n * @example\n * const [value, setValue] = useState('');\n * const onChange = useChangeEventValueCallback(setValue);\n * <input value={value} onChange={onChange} />\n */\nexport function useChangeEventValueCallback(callback) {\n return useCallback(event => {\n callback(event.target.value);\n }, [callback]);\n}\nexport default useChangeEventValueCallback;\n//# sourceMappingURL=useChangeEventValueCallback.js.map","import { useEffect, useState } from 'react';\n\n/**\n * Sets a delay, and returns a boolean indicating whether the delay is still active.\n * @param delayMs The delay in milliseconds\n * @returns A boolean indicating whether the delay is still active\n */\nexport function useDelay(delayMs) {\n var [isDelayed, setIsDelayed] = useState(true);\n useEffect(() => {\n var timeout = setTimeout(() => {\n setIsDelayed(false);\n }, delayMs);\n return () => {\n clearTimeout(timeout);\n };\n }, [delayMs]);\n return isDelayed;\n}\nexport default useDelay;\n//# sourceMappingURL=useDelay.js.map","import { useEffect, useState } from 'react';\n\n/**\n * Returns a stateful value, and a function to update it. The value will also\n * be updated if the input value changes.\n * @param inputValue This will be used as the initial state value and will also\n * update the state if it changes.\n */\nexport function useDependentState(inputValue) {\n var [state, setState] = useState(inputValue);\n useEffect(() => {\n setState(inputValue);\n }, [inputValue]);\n return [state, setState];\n}\nexport default useDependentState;\n//# sourceMappingURL=useDependentState.js.map","import { useEffect, useRef } from 'react';\n\n/**\n * Custom useEffect hook that runs an effect function up to `n` times as long\n * as a given `condition` value is true.\n *\n * The effect will be evaluated whenever the dependency array, the value of `n`,\n * or the `condition` value changes. If the counter is < n and the condition is\n * true, the effectCallback will be run, and the counter will be incremented.\n * Note that the counter will never get reset even if parameters change.\n * @param effectCallback Effect function to run\n * @param effectCallbackDependencies Dependencies for the effect function\n * @param n Number of times to run when condition is met\n * @param condition Condition that must be true to run\n */\nexport function useEffectNTimesWhen(effectCallback, effectCallbackDependencies, n, condition) {\n var countRef = useRef(0);\n useEffect(() => {\n if (countRef.current >= n) {\n return;\n }\n if (condition) {\n countRef.current += 1;\n effectCallback();\n }\n // The `effectCallback` is intentionally excluded from the dependencies list\n // below since its reference may change on every render. Instead, the\n // `effectCallbackDependencies` arg is used to indicate when a change should\n // invalidate the `effectCallback` reference. The eslint configuration for\n // `react-hooks/exhaustive-deps` will validate that the `effectCallback` and\n // `effectCallbackDependencies` args are in sync at the call site of\n // `useEffectNTimesWhen`.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [n, condition, ...effectCallbackDependencies]);\n}\nexport default useEffectNTimesWhen;\n//# sourceMappingURL=useEffectNTimesWhen.js.map","import { useRef } from 'react';\n\n/**\n * Memoize a value based on an isEqual predicate instead of reference equality.\n * @param value Value to memoize\n * @param isEqual Predicate to see if value has changed since last render\n */\nexport function useIsEqualMemo(value, isEqual) {\n var previousValueRef = useRef(value);\n var currentValue = isEqual(previousValueRef.current, value) ? previousValueRef.current : value;\n previousValueRef.current = currentValue;\n return currentValue;\n}\nexport default useIsEqualMemo;\n//# sourceMappingURL=useIsEqualMemo.js.map","import { useCallback, useMemo } from 'react';\nimport { nanoid } from 'nanoid';\nfunction preventDefault(event) {\n event.preventDefault();\n}\n/**\n * Returns props to associate a form with a submit button. It generates a unique\n * id that will be assigned to the form `id` attribute and a button `form`\n * attribute. Useful for cases where a submit button exists outside of the form.\n *\n * e.g.\n *\n * const preventDefaultFormSubmit = true;\n * const { formProps, submitButtonProps } = useFormWithDetachedSubmitButton(preventDefaultFormSubmit);\n *\n * <form {...formProps}></form>\n * <button {...submitButtonProps} type=\"submit\">Submit</button>\n *\n * @param enableDefaultFormSubmitBehavior Optionally enable default form submit behavior.\n * @returns props that can be spread on a form component + a submit button component.\n */\nexport default function useFormWithDetachedSubmitButton() {\n var enableDefaultFormSubmitBehavior = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var formId = useMemo(() => \"useSubmitButtonRef-\".concat(nanoid()), []);\n var submitButtonRef = useCallback(buttonEl => {\n var _buttonEl$UNSAFE_getD;\n buttonEl === null || buttonEl === void 0 || (_buttonEl$UNSAFE_getD = buttonEl.UNSAFE_getDOMNode()) === null || _buttonEl$UNSAFE_getD === void 0 || _buttonEl$UNSAFE_getD.setAttribute('form', formId);\n }, [formId]);\n var formProps = useMemo(() => ({\n id: formId,\n onSubmit: enableDefaultFormSubmitBehavior ? undefined : preventDefault\n }), [formId, enableDefaultFormSubmitBehavior]);\n var submitButtonProps = useMemo(() => ({\n form: formId,\n ref: submitButtonRef\n }), [formId, submitButtonRef]);\n return {\n formProps,\n submitButtonProps\n };\n}\n//# sourceMappingURL=useFormWithDetachedSubmitButton.js.map","import { useMemo } from 'react';\nimport { mapSelection, optimizeSelection } from \"./SelectionUtils.js\";\n/**\n * Given viewport data, maps the current selectedKeys to an optimized selection.\n * The keys are mapped to new values via a `mapItem` function.\n * @param viewportData The viewport to map selections for\n * @param mapItem A function to map an item in the viewport to a new value\n * @param getKey A function to get the key for an item in the viewport.\n */\nexport function useMappedSelection(viewportData, mapItem, getKey) {\n var {\n getItem,\n selectedKeys,\n items\n } = viewportData;\n return useMemo(() => {\n var {\n selection,\n isInverted\n } = optimizeSelection(selectedKeys, items.length, getKey);\n return {\n selection: mapSelection(selection, getItem, mapItem),\n isInverted\n };\n }, [selectedKeys, items.length, getKey, getItem, mapItem]);\n}\nexport default useMappedSelection;\n//# sourceMappingURL=useMappedSelection.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 { useCallback } from 'react';\n\n/**\n * Returns a callback that can update a prop on an object. The update is done\n * by making a copy of the original object with an updated version of the prop\n * and passing the copy to a callback function.\n *\n * e.g.\n * const [value, setValue] = useState({\n * first: 'John',\n * last: 'Doe'\n * });\n *\n * const onLastNameChange = usePropChangeCallback(\n * value,\n * 'last',\n * setValue\n * );\n *\n * // This will create a new object { first: 'John', last: 'Smith' } and pass it to `setValue`\n * onLastNameChange('Smith');\n *\n * The optional `defaultValue` controls the callback signature. If provided, the\n * callback will support passing in null or undefined values.\n *\n * e.g.\n *\n * const onLastNameChange = usePropChangeCallback(\n * value,\n * 'last',\n * setValue,\n * ''\n * );\n *\n * onLastNameChange('Smith'); // { first: 'John', last: 'Smith' }\n * onLastNameChange(null); // { first: 'John', last: '' }\n * onLastNameChange(undefined); // { first: 'John', last: '' }\n *\n * @param value The object to update\n * @param propName The prop name to update\n * @param onChange A callback to pass the newly created object with updated prop value\n * @param defaultValue Optional default value. If provided, the returned callback\n * signature will allow null or undefined values to be passed in.\n */\n\nexport function usePropChangeCallback(value, propName, onChange, defaultValue) {\n var hasDefault = arguments.length === 4;\n return useCallback(propValue => {\n var newValue = hasDefault ? propValue !== null && propValue !== void 0 ? propValue : defaultValue : propValue;\n onChange(_objectSpread(_objectSpread({}, value), {}, {\n [propName]: newValue\n }));\n }, [onChange, value, propName, hasDefault, defaultValue]);\n}\nexport default usePropChangeCallback;\n//# sourceMappingURL=usePropChangeCallback.js.map","import { useEffect, useState } from 'react';\n\n/**\n * Debounces a value.\n * Returns the initial value immediately.\n * Returns the latest value after no changes have occurred for the debounce duration.\n * @param value Value to debounce\n * @param debounceMs Amount of time to debounce\n * @returns The debounced value + whether the value is still debouncing\n */\nexport function useDebouncedValue(value, debounceMs) {\n var [isDebouncing, setIsDebouncing] = useState(true);\n var [debouncedValue, setDebouncedValue] = useState(value);\n\n // Keep `isDebouncing` in sync with `value` and `debounceMs` by setting state\n // during render instead of in `useEffect`\n // https://react.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n var [previousValue, setPreviousValue] = useState(value);\n var [previousDebounceMs, setPreviousDebounceMs] = useState(debounceMs);\n if (value !== previousValue || debounceMs !== previousDebounceMs) {\n setIsDebouncing(true);\n setPreviousValue(value);\n setPreviousDebounceMs(debounceMs);\n }\n useEffect(() => {\n var isCancelled = false;\n var timeoutId = setTimeout(() => {\n if (!isCancelled) {\n setIsDebouncing(false);\n setDebouncedValue(value);\n }\n }, debounceMs);\n return () => {\n isCancelled = true;\n clearTimeout(timeoutId);\n };\n }, [value, debounceMs]);\n return {\n isDebouncing,\n value: debouncedValue\n };\n}\nexport default useDebouncedValue;\n//# sourceMappingURL=useDebouncedValue.js.map","import { useCallback } from 'react';\n\n/**\n * Returns a callback that sets attributes on elements based on given selectors.\n * @param attributes Attributes object containing prop name + values to set\n * @param selectors Optional `querySelector` param to target child elements. If\n * omitted, will target the rootEl\n */\nexport function useSetAttributesCallback(attributes, selectors) {\n return useCallback(rootEl => {\n if (rootEl == null) {\n return;\n }\n var targets = selectors == null ? [rootEl] : rootEl.querySelectorAll(selectors);\n targets.forEach(target => {\n Object.entries(attributes).forEach(_ref => {\n var [prop, value] = _ref;\n target.setAttribute(prop, value);\n });\n });\n }, [attributes, selectors]);\n}\nexport default useSetAttributesCallback;\n//# sourceMappingURL=useSetAttributesCallback.js.map","import { extractSpectrumHTMLElement } from \"./SpectrumUtils.js\";\nimport useMappedRef from \"./useMappedRef.js\";\nimport useSetAttributesCallback from \"./useSetAttributesCallback.js\";\nexport var SPELLCHECK_FALSE_ATTRIBUTE = {\n spellCheck: false\n};\n\n/**\n * Returns a callback ref that can be assigned to a React Spectrum component.\n * to set `spellCheck=false` on child elements based on given selectors.\n * @param selectors Optional `querySelector` argument to target child elements.\n * If omitted, the attributes will be applied to the root element returned by\n * `UNSAFE_getDOMNode()` on the component ref.\n */\nexport function useSpectrumDisableSpellcheckRef(selectors) {\n var disableSpellcheck = useSetAttributesCallback(SPELLCHECK_FALSE_ATTRIBUTE, selectors);\n return useMappedRef(disableSpellcheck, extractSpectrumHTMLElement);\n}\nexport default useSpectrumDisableSpellcheckRef;\n//# sourceMappingURL=useSpectrumDisableSpellcheckRef.js.map","import { useCallback, useEffect, useState } from 'react';\nimport Log from '@deephaven/log';\nimport { getWindowParent } from '@deephaven/utils';\nimport { MSG_REQUEST_SET_THEME } from \"./ThemeModel.js\";\nimport { isExternalThemeData, isExternalThemeEnabled, parseExternalThemeData, requestExternalThemeData } from \"./ThemeUtils.js\";\nvar logger = Log.module('useExternalTheme');\n/**\n * If external theme is configured via `theme=EXTERNAL_THEME_KEY` query param,\n * handle `postMessage` communication to retrieve the theme data from the parent\n * Window. The hook will also listen for `MSG_REQUEST_SET_THEME` messages from\n * the parent and current Window to allow explicitly setting the theme.\n */\nexport function useExternalTheme() {\n var [result, setResult] = useState(() => {\n var isEnabled = isExternalThemeEnabled();\n return {\n isEnabled,\n isPending: isEnabled\n };\n });\n\n /** Parse external theme data and update the result */\n var handleExternalThemeData = useCallback(externalThemeData => {\n var themeData = parseExternalThemeData(externalThemeData);\n setResult({\n isEnabled: true,\n isPending: false,\n themeData\n });\n }, []);\n useEffect(() => {\n if (!result.isEnabled) {\n return;\n }\n logger.debug('Requesting external theme data');\n\n /** Parent or current Window can explicitly set the theme */\n function onMessage(event) {\n var parent = getWindowParent();\n\n // Allow messages from parent or current window\n if (event.source !== window && event.source !== parent) {\n return;\n }\n if (event.data.message === MSG_REQUEST_SET_THEME) {\n if (isExternalThemeData(event.data.payload)) {\n handleExternalThemeData(event.data.payload);\n }\n }\n }\n window.addEventListener('message', onMessage);\n\n /** Request initial theme data from parent window */\n requestExternalThemeData().then(handleExternalThemeData).catch(err => {\n logger.error(err);\n setResult({\n isEnabled: true,\n isPending: false\n });\n });\n return () => {\n window.removeEventListener('message', onMessage);\n };\n }, [handleExternalThemeData, result.isEnabled]);\n return result;\n}\nexport default useExternalTheme;\n//# sourceMappingURL=useExternalTheme.js.map","import React, { useContext } from 'react';\nimport LoadingOverlay from \"../LoadingOverlay.js\";\nimport { FontsLoadedContext } from \"./FontBootstrap.js\";\nimport { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nexport function FontsLoaded(_ref) {\n var {\n children\n } = _ref;\n var isFontsLoaded = useContext(FontsLoadedContext);\n if (!isFontsLoaded) {\n return /*#__PURE__*/_jsx(LoadingOverlay, {\n \"data-testid\": \"fonts-loaded-loading\"\n });\n }\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children\n });\n}\nexport default FontsLoaded;\n//# sourceMappingURL=FontsLoaded.js.map","var _excluded = [\"ariaLabel\", \"icon\", \"isQuiet\", \"labelText\", \"children\", \"onOpenChange\", \"tooltip\"];\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 { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ActionButton, DialogTrigger, Icon, Text } from \"../spectrum/index.js\";\nimport { Tooltip } from \"../popper/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Dialog trigger based on an ActionButton.\n */\nexport function ActionButtonDialogTrigger(_ref) {\n var {\n ariaLabel,\n icon,\n isQuiet,\n labelText,\n children,\n onOpenChange,\n tooltip\n } = _ref,\n styleProps = _objectWithoutProperties(_ref, _excluded);\n var iconClassName = labelText == null && tooltip != null ? 'action-button-icon-with-tooltip' : undefined;\n return /*#__PURE__*/_jsxs(DialogTrigger, {\n type: \"popover\",\n onOpenChange: onOpenChange,\n children: [/*#__PURE__*/_jsxs(ActionButton\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, styleProps), {}, {\n \"aria-label\": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : labelText,\n isQuiet: isQuiet,\n children: [/*#__PURE__*/_jsx(Icon, {\n UNSAFE_className: iconClassName,\n children: /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon\n })\n }), labelText == null ? null : /*#__PURE__*/_jsx(Text, {\n children: labelText\n }), tooltip == null ? null : /*#__PURE__*/_jsx(Tooltip, {\n children: tooltip\n })]\n })), children]\n });\n}\nexport default ActionButtonDialogTrigger;\n//# sourceMappingURL=ActionButtonDialogTrigger.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/* eslint-disable react/jsx-props-no-spreading */\n\nimport { useFormWithDetachedSubmitButton } from '@deephaven/react-hooks';\nimport { SpectrumButton, ButtonGroup, Content, Dialog, Divider, Form, Heading } from \"../spectrum/index.js\";\nimport styles from \"../SpectrumComponent.module.css\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function ConfirmationDialog(_ref) {\n var {\n heading,\n confirmationButtonLabel,\n children,\n onCancel,\n onConfirm\n } = _ref;\n var {\n formProps,\n submitButtonProps\n } = useFormWithDetachedSubmitButton();\n return /*#__PURE__*/_jsxs(Dialog, {\n children: [/*#__PURE__*/_jsx(Heading, {\n level: 3,\n UNSAFE_className: styles.spectrumDialogComponentHeading,\n children: heading\n }), /*#__PURE__*/_jsx(Divider, {}), /*#__PURE__*/_jsx(Content, {\n children: /*#__PURE__*/_jsx(Form\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, formProps), {}, {\n children: children\n }))\n }), /*#__PURE__*/_jsxs(ButtonGroup, {\n children: [/*#__PURE__*/_jsx(SpectrumButton, {\n variant: \"secondary\",\n onPress: onCancel,\n children: \"Cancel\"\n }), /*#__PURE__*/_jsx(SpectrumButton, _objectSpread(_objectSpread({}, submitButtonProps), {}, {\n // eslint-disable-next-line react/style-prop-object\n style: \"fill\",\n variant: \"negative\",\n onPress: onConfirm,\n type: \"submit\",\n children: confirmationButtonLabel\n }))]\n })]\n });\n}\nexport default ConfirmationDialog;\n//# sourceMappingURL=ConfirmationDialog.js.map","import { useCallback } from 'react';\nimport { vsTrash } from '@deephaven/icons';\nimport { ActionButtonDialogTrigger, ConfirmationDialog } from \"../dialogs/index.js\";\nimport { ACTION_ICON_HEIGHT } from \"../UIConstants.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ConfirmActionButton(_ref) {\n var {\n ariaLabel,\n heading,\n confirmationButtonLabel,\n isHidden,\n children,\n tooltip,\n onConfirm: _onConfirm\n } = _ref;\n var renderDialog = useCallback(close => /*#__PURE__*/_jsx(ConfirmationDialog, {\n heading: heading,\n confirmationButtonLabel: confirmationButtonLabel,\n onCancel: close,\n onConfirm: () => {\n close();\n _onConfirm();\n },\n children: children\n }), [children, confirmationButtonLabel, heading, _onConfirm]);\n return /*#__PURE__*/_jsx(ActionButtonDialogTrigger, {\n ariaLabel: ariaLabel,\n icon: vsTrash,\n isHidden: isHidden,\n isQuiet: true,\n height: ACTION_ICON_HEIGHT,\n tooltip: tooltip,\n children: renderDialog\n });\n}\nexport default ConfirmActionButton;\n//# sourceMappingURL=ConfirmActionButton.js.map","var _excluded = [\"icon\", \"label\", \"tooltip\"];\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 { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ActionButton, Icon } from \"../spectrum/index.js\";\nimport { Tooltip } from \"../popper/index.js\";\nimport { ACTION_ICON_HEIGHT } from \"../UIConstants.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function IconActionButton(_ref) {\n var {\n icon,\n label,\n tooltip\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/_jsxs(ActionButton, _objectSpread(_objectSpread({}, props), {}, {\n \"aria-label\": label,\n isQuiet: true,\n height: ACTION_ICON_HEIGHT,\n children: [/*#__PURE__*/_jsx(Icon, {\n UNSAFE_className: tooltip == null ? undefined : 'action-button-icon-with-tooltip',\n children: /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon\n })\n }), tooltip == null ? null : /*#__PURE__*/_jsx(Tooltip, {\n children: tooltip\n })]\n }));\n}\nIconActionButton.displayName = 'IconActionButton';\nexport default IconActionButton;\n//# sourceMappingURL=IconActionButton.js.map","import React from 'react';\nimport { useDebouncedValue } from '@deephaven/react-hooks';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Display a modal after a debounce time. Blocks the screen from interaction immediately,\n * but then waits the set debounce time before rendering the modal.\n */\nfunction DebouncedModal(_ref) {\n var {\n blockInteraction = true,\n children,\n debounceMs,\n isOpen = false\n } = _ref;\n var {\n value: debouncedIsOpen\n } = useDebouncedValue(isOpen, debounceMs);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [blockInteraction && isOpen && /*#__PURE__*/_jsx(\"div\", {\n className: \"modal-backdrop\",\n style: {\n backgroundColor: 'transparent'\n },\n \"data-testid\": \"debounced-modal-backdrop\"\n }), /*#__PURE__*/React.cloneElement(children, {\n isOpen: isOpen && debouncedIsOpen\n })]\n });\n}\nexport default DebouncedModal;\n//# sourceMappingURL=DebouncedModal.js.map","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport Modal from \"./Modal.js\";\nimport ModalBody from \"./ModalBody.js\";\nimport \"./InfoModal.css\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * A modal that displays a message with an icon. Can be used for informational messages, warnings, or errors.\n * Does not have any buttons and cannot be dismissed.\n */\nfunction InfoModal(_ref) {\n var {\n className,\n icon,\n isOpen = false,\n subtitle,\n title\n } = _ref;\n return /*#__PURE__*/_jsx(Modal, {\n isOpen: isOpen,\n className: className,\n children: /*#__PURE__*/_jsx(ModalBody, {\n children: /*#__PURE__*/_jsxs(\"div\", {\n className: \"info-modal\",\n children: [icon != null && /*#__PURE__*/_jsx(\"div\", {\n className: \"message-icon\",\n children: /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon\n })\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"message-header\",\n children: title\n }), subtitle != null && /*#__PURE__*/_jsx(\"div\", {\n className: \"message-content\",\n children: subtitle\n })]\n })\n })\n });\n}\nexport default InfoModal;\n//# sourceMappingURL=InfoModal.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 { ActionBar } from \"./spectrum/index.js\";\nimport commonStyles from \"./SpectrumComponent.module.css\"; // The action bar will still show the item count + a clear selection button\n// even if there are no actions. Our only consumer is currently the ACL Editor,\n// but group action functionality has not yet been prioritized (see DH-15221).\n// For now we'll just pass it an empty action items array.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar noActions = [];\nexport function BulkActionBar(_ref) {\n var {\n styleProps,\n selectedItemCount,\n onClearSelection\n } = _ref;\n return /*#__PURE__*/_jsx(ActionBar, _objectSpread(_objectSpread({\n UNSAFE_className: commonStyles.spectrumActionBar\n // eslint-disable-next-line react/jsx-props-no-spreading\n }, styleProps), {}, {\n isEmphasized: true,\n selectedItemCount: selectedItemCount,\n onClearSelection: onClearSelection,\n children: noActions\n }));\n}\nexport default BulkActionBar;\n//# sourceMappingURL=BulkActionBar.js.map","import React, { useCallback, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport clamp from 'lodash.clamp';\nimport { vsAdd, vsTrash } from '@deephaven/icons';\nimport { RangeUtils } from '@deephaven/utils';\nimport Button from \"./Button.js\";\nimport ItemList from \"./ItemList.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n// Display a list of items with an input for adding new items, and Add/Delete buttons\nfunction EditableItemList(props) {\n var {\n isInvalid = false,\n items,\n onAdd = () => undefined,\n onDelete = () => undefined,\n validate = () => null\n } = props;\n var [inputError, setInputError] = useState(null);\n var [selectedRanges, setSelectedRanges] = useState([]);\n var [value, setValue] = useState('');\n var handleSelectionChange = useCallback(ranges => {\n setSelectedRanges(ranges);\n }, []);\n var handleDelete = useCallback(() => {\n onDelete(RangeUtils.getItemsInRanges(items, selectedRanges));\n setSelectedRanges([]);\n }, [items, selectedRanges, onDelete]);\n var handleAdd = useCallback(() => {\n if (value === '') {\n return;\n }\n var validationError = validate(value);\n if (validationError == null) {\n onAdd(value);\n setValue('');\n } else {\n setInputError(validationError);\n }\n }, [value, onAdd, validate]);\n var handleInputChange = useCallback(event => {\n var {\n value: inputValue\n } = event.target;\n setValue(inputValue);\n setInputError(inputValue === '' ? null : validate(inputValue));\n }, [validate]);\n var handleInputFocus = useCallback(() => {\n setSelectedRanges([]);\n }, []);\n var handleInputKeyDown = useCallback(event => {\n if (event.key === 'Enter') {\n handleAdd();\n }\n }, [handleAdd]);\n var containerHeight = useMemo(() => 14 + clamp(items.length, 1, 6) * ItemList.DEFAULT_ROW_HEIGHT, [items.length]);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: classNames('editable-item-list-container', {\n 'is-invalid': isInvalid\n }),\n children: [/*#__PURE__*/_jsx(\"div\", {\n style: {\n height: containerHeight\n },\n children: /*#__PURE__*/_jsx(ItemList, {\n itemCount: items.length,\n items: items.map((item, index) => ({\n value: item,\n isSelected: RangeUtils.isSelected(selectedRanges, index)\n })),\n offset: 0,\n selectedRanges: selectedRanges,\n onSelectionChange: handleSelectionChange,\n isMultiSelect: true\n })\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"d-flex flex-row pt-2\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"d-flex flex-grow-1\",\n children: /*#__PURE__*/_jsx(\"input\", {\n className: classNames('form-control', {\n 'is-invalid': inputError != null\n }),\n placeholder: \"Enter value\",\n type: \"text\",\n value: value,\n onChange: handleInputChange,\n onFocus: handleInputFocus,\n onKeyDown: handleInputKeyDown\n })\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"d-flex align-items-start mt-1 ml-2\",\n children: [/*#__PURE__*/_jsx(Button, {\n kind: \"ghost\",\n onClick: handleAdd,\n disabled: inputError != null || value === '',\n icon: vsAdd,\n tooltip: \"Add new item\",\n \"data-testid\": \"add-item-button\"\n }), /*#__PURE__*/_jsx(Button, {\n kind: \"ghost\",\n onClick: handleDelete,\n disabled: selectedRanges.length === 0,\n icon: vsTrash,\n tooltip: \"Delete selected items\",\n \"data-testid\": \"delete-item-button\"\n })]\n })]\n })]\n });\n}\nexport default EditableItemList;\n//# sourceMappingURL=EditableItemList.js.map","import { useMemo } from 'react';\nimport { Text } from \"./spectrum/index.js\";\nimport stylesCommon from \"./SpectrumComponent.module.css\";\nimport { Tooltip } from \"./popper/index.js\";\nimport { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function TextWithTooltip(_ref) {\n var {\n text,\n placement = 'top-start'\n } = _ref;\n var options = useMemo(() => ({\n placement\n }), [placement]);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(Text, {\n UNSAFE_className: stylesCommon.spectrumEllipsis,\n children: text !== null && text !== void 0 ? text :\n /*#__PURE__*/\n /* &nbsp; so that height doesn't collapse when empty */\n _jsx(_Fragment, {\n children: \"\\xA0\"\n })\n }), text == null || text === '' ? null : /*#__PURE__*/_jsx(Tooltip, {\n options: options,\n children: text\n })]\n });\n}\nexport default TextWithTooltip;\n//# sourceMappingURL=TextWithTooltip.js.map","var _excluded = [\"scrollRef\", \"getItemDisplayText\", \"getKey\"];\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 { useCallback } from 'react';\nimport { SpectrumComboBox, Item } from \"./spectrum/index.js\";\nimport TextWithTooltip from \"./TextWithTooltip.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function SearchableCombobox(_ref) {\n var {\n scrollRef,\n getItemDisplayText,\n getKey\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var renderItem = useCallback(item => {\n var key = getKey(item);\n var displayText = getItemDisplayText(item);\n return /*#__PURE__*/_jsx(Item, {\n textValue: displayText !== null && displayText !== void 0 ? displayText : String(key),\n children: /*#__PURE__*/_jsx(TextWithTooltip, {\n text: displayText\n })\n }, key);\n }, [getItemDisplayText, getKey]);\n return /*#__PURE__*/_jsx(SpectrumComboBox, _objectSpread(_objectSpread({}, props), {}, {\n // The `ref`prop type defined by React Spectrum is incorrect here\n ref: scrollRef,\n menuTrigger: \"focus\"\n // Type assertion is necessary since <ComboBox> types don't recognize the\n // generic key arg\n ,\n onSelectionChange: props.onSelectionChange,\n children: renderItem\n }));\n}\nexport default SearchableCombobox;\n//# sourceMappingURL=SearchableCombobox.js.map","import { useEffect, useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsEmptyWindow } from '@deephaven/icons';\nimport { Content, Heading, Icon, IllustratedMessage } from \"./spectrum/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nvar DEFAULT_DELAY_MS = 500;\nexport function TableViewEmptyState(_ref) {\n var {\n heading,\n content,\n delayMs = DEFAULT_DELAY_MS\n } = _ref;\n var [show, setShow] = useState(false);\n\n // Spectrum `TableView` will render the result of `renderEmptyState` prop\n // immediately, and it will be hidden once data loads. In cases where the data\n // load is quick, there is a jarring flicker, and the empty data message is\n // not helpful. This delay will avoid showing the message if data loads within\n // the `delayMs`.\n useEffect(() => {\n window.setTimeout(() => {\n setShow(true);\n }, delayMs);\n }, [delayMs]);\n return show ? /*#__PURE__*/_jsxs(IllustratedMessage, {\n children: [/*#__PURE__*/_jsx(Icon, {\n size: \"XXL\",\n children: /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: vsEmptyWindow\n })\n }), /*#__PURE__*/_jsx(Heading, {\n children: heading\n }), content == null ? null : /*#__PURE__*/_jsx(Content, {\n children: content\n })]\n }) : null;\n}\nexport default TableViewEmptyState;\n//# sourceMappingURL=TableViewEmptyState.js.map","import React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport { vsClose } from '@deephaven/icons';\nimport Button from \"./Button.js\";\nimport ThemeExport from \"./ThemeExport.js\";\nimport \"./ToastNotification.css\";\nimport { FadeTransition } from \"./transitions/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction ToastNotification(_ref) {\n var {\n buttons,\n isShown = false,\n classNames: classNamesProp,\n message,\n type,\n onClick,\n onDismiss,\n 'data-testid': dataTestId\n } = _ref;\n var nodeRef = useRef(null);\n var hasButtons = buttons && buttons.length !== 0;\n return /*#__PURE__*/_jsx(CSSTransition, {\n in: isShown,\n timeout: ThemeExport.transitionMs,\n classNames: \"toast-notification-slide-up\",\n mountOnEnter: true,\n unmountOnExit: true,\n nodeRef: nodeRef,\n children: /*#__PURE__*/_jsxs(\"div\", {\n ref: nodeRef,\n className: classNames('toast-notification', classNamesProp, type),\n role: \"presentation\",\n onClick: onClick,\n onKeyPress: onClick,\n \"data-testid\": dataTestId,\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"message-container\",\n children: /*#__PURE__*/_jsx(\"span\", {\n className: \"message\",\n children: message\n })\n }), /*#__PURE__*/_jsx(FadeTransition, {\n in: hasButtons,\n timeout: ThemeExport.transitionSlowMs,\n mountOnEnter: true,\n unmountOnExit: true,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"buttons-container\",\n children: buttons\n })\n }), onDismiss && /*#__PURE__*/_jsx(Button, {\n kind: \"ghost\",\n icon: vsClose,\n tooltip: \"Close notification\",\n className: \"my-2\",\n onClick: onDismiss\n })]\n })\n });\n}\nToastNotification.TYPE = Object.freeze({\n ERROR: 'error'\n});\nexport default ToastNotification;\n//# sourceMappingURL=ToastNotification.js.map","import React from 'react';\nimport useDeferredApi from \"./useDeferredApi.js\";\nimport { ApiContext } from \"./ApiBootstrap.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Does not render children until the deferred API is resolved.\n */\nexport var DeferredApiBootstrap = /*#__PURE__*/React.memo(_ref => {\n var {\n children,\n onError,\n widget\n } = _ref;\n var [api, apiError] = useDeferredApi(widget);\n if (apiError != null) {\n onError === null || onError === void 0 || onError(apiError);\n return null;\n }\n if (api == null) {\n // Still waiting for the API to load\n return null;\n }\n return /*#__PURE__*/_jsx(ApiContext.Provider, {\n value: api,\n children: children\n });\n});\nDeferredApiBootstrap.displayName = 'DeferredApiBootstrap';\nexport default DeferredApiBootstrap;\n//# sourceMappingURL=DeferredApiBootstrap.js.map","import { createContext, useContext, useEffect, useState } from 'react';\n\n/** Function for unsubscribing from a given subscription */\n\n/** Update when the ObjectFetch is still loading */\n\n/** Update when the ObjectFetch has errored */\n\n/** Update when the object is ready */\n\n/**\n * Update with the current `fetch` function and status of the object.\n * - If both `fetch` and `error` are `null`, it is still loading the fetcher\n * - If `fetch` is not `null`, the object is ready to be fetched\n * - If `error` is not `null`, there was an error loading the object\n */\n\n/** ObjectFetchManager for managing a subscription to an object using a VariableDescriptor */\n\n/** Context for tracking an implementation of the ObjectFetchManager. */\nexport var ObjectFetchManagerContext = /*#__PURE__*/createContext(null);\nObjectFetchManagerContext.displayName = 'ObjectFetchManagerContext';\n\n/**\n * Retrieve a `fetch` function for the given variable descriptor.\n *\n * @param descriptor Descriptor or URI to get the `fetch` function for\n * @returns An object with the current `fetch` function, OR an error status set if there was an issue fetching the object.\n * Retrying is left up to the ObjectManager implementation used from this context.\n */\nexport function useObjectFetch(descriptor) {\n var [currentUpdate, setCurrentUpdate] = useState({\n status: 'loading'\n });\n var objectFetchManager = useContext(ObjectFetchManagerContext);\n useEffect(() => {\n if (objectFetchManager == null) {\n setCurrentUpdate({\n error: new Error('No ObjectFetchManager available in context'),\n status: 'error'\n });\n return;\n }\n // Update to signal we're still loading, if we're not already in a loading state.\n setCurrentUpdate(oldUpdate => oldUpdate.status === 'loading' ? oldUpdate : {\n status: 'loading'\n });\n return objectFetchManager.subscribe(descriptor, setCurrentUpdate);\n }, [descriptor, objectFetchManager]);\n return currentUpdate;\n}\n//# sourceMappingURL=useObjectFetch.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); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport Log from '@deephaven/log';\nimport { assertNotNull } from '@deephaven/utils';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useObjectFetch } from \"./useObjectFetch.js\";\nimport useDeferredApi from \"./useDeferredApi.js\";\nimport useApi from \"./useApi.js\";\nvar log = Log.module('useWidget');\n\n/**\n * Types of widgets that can be fetched with this hook.\n */\n\n/**\n * Wrapper object for a widget and error status. Both widget and error will be `null` if it is still loading.\n */\n\n/**\n * Retrieve a widget for the given variable descriptor. Note that if the widget is successfully fetched, ownership of the widget is passed to the consumer and will need to close the object as well.\n * @param descriptor Descriptor or URI to get the widget for. Should be stable to avoid infinite re-fetching.\n * @returns A WidgetWrapper object that contains the widget and JS API, or an error status if there was an issue fetching the widget. Will contain nulls if still loading.\n */\nexport function useWidget(descriptor) {\n var [wrapper, setWrapper] = useState(() => ({\n widget: null,\n error: null\n }));\n var objectFetch = useObjectFetch(descriptor);\n var [descriptorApi, descriptorApiError] = useDeferredApi(descriptor);\n var defaultApi = useApi();\n var api = descriptorApi !== null && descriptorApi !== void 0 ? descriptorApi : defaultApi;\n useEffect(function loadWidget() {\n log.debug('loadWidget', descriptor);\n var {\n status\n } = objectFetch;\n if (status === 'error') {\n // We can't fetch if there's an error getting the fetcher, just return an error\n setWrapper({\n widget: null,\n error: objectFetch.error\n });\n return;\n }\n if (status === 'loading') {\n // Still loading\n setWrapper({\n widget: null,\n error: null\n });\n return;\n }\n var {\n fetch\n } = objectFetch;\n // We should be able to load the widget. Load it asynchronously, and set the widget when it's done.\n // If we get cancelled before the fetch is done, we should close the widget and its exported objects.\n // If not though, the consumer of the widget is expected to take ownership and close the widget appropriately.\n var isCancelled = false;\n function loadWidgetInternal() {\n return _loadWidgetInternal.apply(this, arguments);\n }\n function _loadWidgetInternal() {\n _loadWidgetInternal = _asyncToGenerator(function* () {\n try {\n assertNotNull(fetch);\n var newWidget = yield fetch();\n if (isCancelled) {\n log.debug2('loadWidgetInternal cancelled', descriptor, newWidget);\n newWidget.close();\n if ('exportedObjects' in newWidget) {\n newWidget.exportedObjects.forEach(exportedObject => {\n exportedObject.close();\n });\n }\n return;\n }\n log.debug('loadWidgetInternal done', descriptor, newWidget);\n setWrapper({\n widget: newWidget,\n error: null\n });\n } catch (e) {\n if (isCancelled) {\n return;\n }\n log.error('loadWidgetInternal error', descriptor, e);\n setWrapper({\n widget: null,\n error: e !== null && e !== void 0 ? e : new Error('Null error')\n });\n }\n });\n return _loadWidgetInternal.apply(this, arguments);\n }\n loadWidgetInternal();\n return () => {\n isCancelled = true;\n };\n }, [descriptor, objectFetch]);\n var wrapperWithApi = useMemo(() => {\n var _wrapper$error;\n return _objectSpread(_objectSpread({}, wrapper), {}, {\n error: (_wrapper$error = wrapper.error) !== null && _wrapper$error !== void 0 ? _wrapper$error : descriptorApiError,\n api: wrapper.widget != null ? api : null\n });\n }, [wrapper, api, descriptorApiError]);\n return wrapperWithApi;\n}\nexport default useWidget;\n//# sourceMappingURL=useWidget.js.map","import { useEffect } from 'react';\nimport { useTheme } from '@deephaven/components';\nimport MonacoUtils from \"./MonacoUtils.js\";\nimport { Fragment as _Fragment, jsx as _jsx } from \"react/jsx-runtime\";\nexport function MonacoThemeProvider(_ref) {\n var {\n children\n } = _ref;\n var {\n activeThemes\n } = useTheme();\n useEffect(function refreshMonacoTheme() {\n if (activeThemes != null) {\n MonacoUtils.initTheme();\n }\n }, [activeThemes]);\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children\n });\n}\n//# sourceMappingURL=MonacoThemeProvider.js.map","import { TimeoutError } from '@deephaven/utils';\n\n/** Default timeout for fetching a variable definition */\nexport var FETCH_TIMEOUT = 10000;\n\n/**\n * Fetch the definition for a variable given a connection. Subscribes to field updates and triggers when the variable is found.\n * @param connection Connection to get the variable from\n * @param name Name of the definition to fetch\n * @param timeout Timeout for the fetch\n * @returns Promise the resolves to the variable definition if found, or rejects if there's an error or the timeout has exceeded\n */\nexport function fetchVariableDefinition(connection, name) {\n var timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : FETCH_TIMEOUT;\n return new Promise((resolve, reject) => {\n var removeListener;\n var timeoutId = setTimeout(() => {\n var _removeListener;\n (_removeListener = removeListener) === null || _removeListener === void 0 || _removeListener();\n reject(new TimeoutError(\"Timeout looking for variable \".concat(name)));\n }, timeout);\n\n /**\n * Checks if the variable we're looking for is in the changes, and resolves the promise if it does\n * @param changes Variables changes that have occurred\n */\n function handleFieldUpdates(changes) {\n var _removeListener2;\n var definition = changes.created.find(def => def.title === name);\n clearTimeout(timeoutId);\n (_removeListener2 = removeListener) === null || _removeListener2 === void 0 || _removeListener2();\n if (definition != null) {\n resolve(definition);\n } else {\n reject(new Error(\"Variable \".concat(name, \" not found\")));\n }\n }\n removeListener = connection.subscribeToFieldUpdates(handleFieldUpdates);\n });\n}\n//# sourceMappingURL=ConnectionUtils.js.map","import React from 'react';\nimport { ApiContext } from '@deephaven/jsapi-bootstrap';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function makeApiContextWrapper(dh) {\n return function ApiContextWrapper(_ref) {\n var {\n children\n } = _ref;\n return /*#__PURE__*/_jsx(ApiContext.Provider, {\n value: dh,\n children: children\n });\n };\n}\nexport default {\n makeApiContextWrapper\n};\n//# sourceMappingURL=HookTestUtils.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); }\nclass ColumnNameError extends Error {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"isColumnNameError\", true);\n }\n}\nexport default ColumnNameError;\n//# sourceMappingURL=ColumnNameError.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); }\nclass TableDisconnectError extends Error {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"isTableDisconnectError\", true);\n }\n}\nexport default TableDisconnectError;\n//# sourceMappingURL=TableDisconnectError.js.map","import { useCallback, useEffect, useState } from 'react';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport Log from '@deephaven/log';\nimport useTableListener from \"./useTableListener.js\";\nimport ColumnNameError from \"./ColumnNameError.js\";\nimport TableDisconnectError from \"./TableDisconnectError.js\";\nvar log = Log.module('useTable');\nvar useTable = (table, firstRow, lastRow, columnNames) => {\n var dh = useApi();\n var [columns, setColumns] = useState(undefined);\n var [data, setData] = useState([]);\n var [columnError, setColumnError] = useState(null);\n var [tableError, setTableError] = useState(null);\n useEffect(() => {\n if (columnNames === undefined) {\n setColumns(table === null || table === void 0 ? void 0 : table.columns);\n setColumnError(null);\n return;\n }\n try {\n setColumns(table === null || table === void 0 ? void 0 : table.findColumns(columnNames));\n setColumnError(null);\n } catch (e) {\n log.error(\"Column not found\", e, columnNames);\n setColumnError(new ColumnNameError('Invalid columnNames argument'));\n }\n }, [table, columnNames]);\n useEffect(() => {\n if (!columns || !table) {\n log.debug2('Table or column not initialized, skip viewport update.');\n return;\n }\n log.debug2('Setting viewport', firstRow, lastRow);\n table.setViewport(firstRow, lastRow, columns);\n }, [columns, table, firstRow, lastRow]);\n var handleUpdate = useCallback(_ref => {\n var {\n detail\n } = _ref;\n if (!columns) {\n log.error('Columns not initialized.');\n return;\n }\n var viewportData = columns.map(column => detail.rows.map(r => r.get(column)));\n setData(viewportData);\n }, [columns]);\n var handleDisconnect = useCallback(() => {\n setTableError(new TableDisconnectError('Table disconnected'));\n }, []);\n var handleReconnect = useCallback(() => {\n setTableError(null);\n }, []);\n useTableListener(table, dh.Table.EVENT_UPDATED, handleUpdate);\n useTableListener(table, dh.Table.EVENT_DISCONNECT, handleDisconnect);\n useTableListener(table, dh.Table.EVENT_RECONNECT, handleReconnect);\n return {\n columns,\n data,\n error: tableError !== null && tableError !== void 0 ? tableError : columnError\n };\n};\nexport default useTable;\n//# sourceMappingURL=useTable.js.map","import { useMemo } from 'react';\nimport useTable from \"./useTable.js\";\n/**\n * Subscribe to viewport updates on a single table column\n * @param table Table to get the data from\n * @param firstRow First viewport row\n * @param lastRow Last viewport row\n * @param columnName Column to get the data from\n * @returns Column object, data array for the column, error, setViewport method\n */\nvar useTableColumn = (table, firstRow, lastRow, columnName) => {\n var columnNames = useMemo(() => [columnName], [columnName]);\n var {\n columns = [],\n data = [],\n error\n } = useTable(table, firstRow, lastRow, columnNames);\n return {\n column: columns[0],\n data: data[0],\n error\n };\n};\nexport default useTableColumn;\n//# sourceMappingURL=useTableColumn.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React, { useCallback, useState, useRef, useEffect, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { LoadingOverlay, SearchInput, SelectValueList } from '@deephaven/components';\nimport { EMPTY_FUNCTION, PromiseUtils } from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport { Formatter, FormatterUtils } from '@deephaven/jsapi-utils';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport useTableColumn from \"./useTableColumn.js\";\nimport \"./TableInput.css\";\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nvar log = Log.module('TableInput');\nvar SIZE_LIMIT = 250;\nfunction TableInput(props) {\n var _table$size, _error$message;\n var {\n className = undefined,\n columnName,\n settings,\n defaultValue = [],\n isInvalid = false,\n onChange = EMPTY_FUNCTION,\n onBlur = EMPTY_FUNCTION,\n table: tablePromise\n } = props;\n var parentRef = useRef(null);\n var dh = useApi();\n var formatter = useMemo(() => {\n var columnFormats = FormatterUtils.getColumnFormats(settings);\n var dateTimeFormatterOptions = FormatterUtils.getDateTimeFormatterOptions(settings);\n var {\n defaultDecimalFormatOptions = {},\n defaultIntegerFormatOptions = {}\n } = settings;\n return new Formatter(dh, columnFormats, dateTimeFormatterOptions, defaultDecimalFormatOptions, defaultIntegerFormatOptions);\n }, [dh, settings]);\n var [searchValue, setSearchValue] = useState('');\n var [selection, setSelection] = useState(new Set(defaultValue));\n var [table, setTable] = useState();\n var listRef = useRef(null);\n var itemCount = Math.min((_table$size = table === null || table === void 0 ? void 0 : table.size) !== null && _table$size !== void 0 ? _table$size : 0, SIZE_LIMIT);\n var {\n column,\n data,\n error\n } = useTableColumn(table, 0, SIZE_LIMIT - 1, columnName);\n var formatValue = useCallback(value => column ? formatter.getFormattedString(value, column.type, column.name) : \"\".concat(value), [column, formatter]);\n var [items, updatedSelection] = useMemo(() => {\n var removedItems = new Set(selection);\n var result = [];\n if (data == null) {\n // Viewport not initialized\n return [result, null];\n }\n data.forEach(v => {\n var value = \"\".concat(v);\n var isSelected = selection.has(value);\n if (isSelected) {\n removedItems.delete(value);\n }\n result.push({\n value,\n displayValue: formatValue(v),\n isSelected\n });\n });\n if (removedItems.size > 0) {\n log.debug2('Selection has items that are missing from the viewport');\n var newSelection = new Set(selection);\n Array.from(removedItems).forEach(value => {\n newSelection.delete(value);\n });\n return [result, newSelection];\n }\n return [result, null];\n }, [data, selection, formatValue]);\n useEffect(() => {\n if (updatedSelection !== null) {\n setSelection(updatedSelection);\n onChange(Array.from(updatedSelection));\n }\n }, [onChange, updatedSelection]);\n var initTable = useCallback(/*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (promise) {\n try {\n var resolved = yield promise;\n log.debug('Table resolved', resolved);\n setTable(resolved);\n } catch (e) {\n if (PromiseUtils.isCanceled(e)) {\n return;\n }\n log.error(e);\n }\n });\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }(), []);\n useEffect(() => {\n var cancelablePromise = PromiseUtils.makeCancelable(tablePromise);\n initTable(cancelablePromise);\n return () => {\n log.debug2('Cancel table promise');\n cancelablePromise.cancel();\n };\n }, [tablePromise, initTable]);\n\n // Scroll the item matching the input into view\n var handleSearchChange = useCallback(e => {\n var {\n value\n } = e.target;\n setSearchValue(value);\n var index = items.findIndex(item => item.displayValue.includes(value));\n if (index > -1) {\n var _listRef$current;\n log.debug2(\"Found \".concat(value, \" at index \").concat(index));\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.scrollIntoView(index);\n } else {\n log.debug2(\"\".concat(value, \" not found\"));\n }\n }, [items, listRef]);\n var handleSelect = useCallback(index => {\n log.debug('handleSelect', index);\n if (index >= items.length) {\n log.error('Invalid index', index);\n return;\n }\n var selectedValue = items[index].value;\n var newSelection = new Set(selection);\n if (items[index].isSelected) {\n newSelection.delete(selectedValue);\n } else {\n newSelection.add(selectedValue);\n }\n setSelection(newSelection);\n onChange(Array.from(newSelection));\n }, [onChange, items, selection]);\n var handleSelectAll = useCallback(() => {\n var values = items.map(item => item.value);\n var newSelection = new Set(values);\n setSelection(newSelection);\n onChange(values);\n }, [items, onChange]);\n var handleClearSelection = useCallback(() => {\n setSelection(new Set());\n onChange([]);\n }, [onChange]);\n var handleViewportChange = useCallback(() => {\n // no-op\n }, []);\n var handleChildBlur = useCallback(e => {\n var _parentRef$current;\n var {\n relatedTarget\n } = e;\n log.debug('handleChildBlur', relatedTarget, relatedTarget instanceof HTMLElement, parentRef.current, (_parentRef$current = parentRef.current) === null || _parentRef$current === void 0 ? void 0 : _parentRef$current.contains(relatedTarget));\n if (!relatedTarget || parentRef.current && relatedTarget instanceof HTMLElement && !parentRef.current.contains(relatedTarget)) {\n onBlur();\n }\n }, [onBlur]);\n var isEmpty = items.length === 0;\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: parentRef,\n className: classNames('table-input-container d-flex flex-column position-relative', className),\n children: [/*#__PURE__*/_jsx(SearchInput, {\n disabled: !!error || isEmpty,\n value: searchValue,\n placeholder: \"Search\",\n onChange: handleSearchChange,\n className: \"mb-2 d-flex\",\n onBlur: handleChildBlur\n }), /*#__PURE__*/_jsx(SelectValueList, {\n className: \"table-input-list\",\n disabled: table === undefined || isEmpty,\n isInvalid: isInvalid,\n items: isEmpty ? [{\n value: 'Empty',\n isSelected: false\n }] : items,\n itemCount: itemCount,\n offset: 0,\n onSelect: handleSelect,\n onViewportChange: handleViewportChange,\n ref: listRef,\n onBlur: handleChildBlur\n }), table && /*#__PURE__*/_jsxs(\"div\", {\n className: \"meta-row\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"d-flex align-items-center text-muted small\",\n children: table != null && table.size > itemCount && /*#__PURE__*/_jsxs(_Fragment, {\n children: [\"Table is too large, showing the first \", SIZE_LIMIT, \" items.\"]\n })\n }), /*#__PURE__*/_jsxs(\"div\", {\n children: [/*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n className: \"btn btn-link\",\n onBlur: handleChildBlur,\n onClick: handleSelectAll,\n children: \"Select All\"\n }), /*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n className: \"btn btn-link mr-a\",\n onBlur: handleChildBlur,\n onClick: handleClearSelection,\n children: \"Clear\"\n })]\n })]\n }), table == null || error && /*#__PURE__*/_jsx(\"div\", {\n className: \"h-100 w-100 position-absolute\",\n children: /*#__PURE__*/_jsx(LoadingOverlay, {\n isLoaded: table != null,\n isLoading: table == null && error == null,\n errorMessage: (_error$message = error === null || error === void 0 ? void 0 : error.message) !== null && _error$message !== void 0 ? _error$message : null,\n \"data-testid\": \"table-input-loading\"\n })\n })]\n });\n}\nexport default TableInput;\n//# sourceMappingURL=TableInput.js.map","var _excluded = [\"onInputChange\", \"onSearchTextChange\"];\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 { ComboBoxNormalized } from '@deephaven/components';\nimport { useCallback, useRef } from 'react';\nimport { usePickerProps } from \"./utils/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ComboBox(props) {\n var _usePickerProps = usePickerProps(props),\n {\n onInputChange: onInputChangeInternal,\n onSearchTextChange\n } = _usePickerProps,\n pickerProps = _objectWithoutProperties(_usePickerProps, _excluded);\n var isOpenRef = useRef(false);\n var inputValueRef = useRef('');\n var onInputChange = useCallback(value => {\n onInputChangeInternal === null || onInputChangeInternal === void 0 || onInputChangeInternal(value);\n\n // Only apply search text if ComboBox is open.\n if (isOpenRef.current) {\n onSearchTextChange(value);\n }\n // When the ComboBox is closed, `onInputChange` may have been called as a\n // result of user search input, ComboBox selection, or by selected key\n // prop changes. We can't determine the source here, so we clear the search\n // text and store the search value so that the list is unfiltered the next\n // time the ComboBox is opened. We also store the search value so we can\n // re-apply it in `onOpenChange` if the ComboBox is opened by user search\n // input.\n else {\n onSearchTextChange('');\n inputValueRef.current = value;\n }\n }, [onInputChangeInternal, onSearchTextChange]);\n var onOpenChange = useCallback((isOpen, menuTrigger) => {\n var _pickerProps$onOpenCh;\n (_pickerProps$onOpenCh = pickerProps.onOpenChange) === null || _pickerProps$onOpenCh === void 0 || _pickerProps$onOpenCh.call(pickerProps, isOpen);\n\n // Reset the search text when the ComboBox is closed.\n if (!isOpen) {\n onSearchTextChange('');\n }\n // Restore search text when ComboBox has been opened by user input.\n else if (menuTrigger === 'input') {\n onSearchTextChange(inputValueRef.current);\n }\n\n // Store the open state so that `onInputChange` has access to it.\n isOpenRef.current = isOpen;\n }, [onSearchTextChange, pickerProps]);\n return /*#__PURE__*/_jsx(ComboBoxNormalized\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, pickerProps), {}, {\n onInputChange: onInputChange,\n onOpenChange: onOpenChange\n }));\n}\nexport default ComboBox;\n//# sourceMappingURL=ComboBox.js.map","var _excluded = [\"table\", \"keyColumn\", \"labelColumn\", \"iconColumn\", \"settings\"];\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 { LIST_VIEW_ROW_HEIGHTS, ListViewNormalized, useSpectrumThemeProvider } from '@deephaven/components';\nimport useFormatter from \"../useFormatter.js\";\nimport useViewportData from \"../useViewportData.js\";\nimport { useItemRowDeserializer } from \"./utils/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ListView(_ref) {\n var _props$density;\n var {\n table,\n keyColumn: keyColumnName,\n labelColumn: labelColumnName,\n iconColumn: iconColumnName,\n settings\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var {\n scale\n } = useSpectrumThemeProvider();\n var itemHeight = LIST_VIEW_ROW_HEIGHTS[(_props$density = props.density) !== null && _props$density !== void 0 ? _props$density : 'regular'][scale];\n var {\n getFormattedString: formatValue\n } = useFormatter(settings);\n var deserializeRow = useItemRowDeserializer({\n table,\n iconColumnName,\n keyColumnName,\n labelColumnName,\n formatValue\n });\n var {\n viewportData,\n onScroll\n } = useViewportData({\n reuseItemsOnTableResize: true,\n table,\n itemHeight,\n deserializeRow\n });\n return /*#__PURE__*/_jsx(ListViewNormalized\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, props), {}, {\n normalizedItems: viewportData.items,\n showItemIcons: iconColumnName != null,\n onScroll: onScroll\n }));\n}\nexport default ListView;\n//# sourceMappingURL=ListView.js.map","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Option, Select } from '@deephaven/components';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { EMPTY_ARRAY } from '@deephaven/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isJavaObject(value) {\n return typeof value === 'object' && value != null && 'equals' in value && typeof value.equals === 'function';\n}\nfunction defaultFormatValue(value) {\n return \"\".concat(value);\n}\n/**\n * Dropdown that displays the values of a column in a table.\n */\nexport function TableDropdown(_ref) {\n var {\n column,\n table,\n filter = EMPTY_ARRAY,\n onChange,\n selectedValue,\n disabled,\n className,\n formatValue = defaultFormatValue,\n maxSize = 1000\n } = _ref;\n var dh = useApi();\n var [values, setValues] = useState([]);\n useEffect(() => {\n if (table == null) {\n setValues([]);\n return undefined;\n }\n var tableColumn = column !== null && column !== void 0 ? column : table.columns[0];\n // Need to set a viewport on the table and start listening to get the values to populate the dropdown\n table.applyFilter(filter);\n var subscription = table.setViewport(0, maxSize, [tableColumn]);\n subscription.addEventListener(dh.Table.EVENT_UPDATED, event => {\n var {\n detail\n } = event;\n // Core JSAPI returns undefined for null table values,\n // coalesce with null to differentiate null from no selection in the dropdown\n // https://github.com/deephaven/deephaven-core/issues/5400\n var newValues = detail.rows.map(row => {\n var _row$get;\n return (_row$get = row.get(tableColumn)) !== null && _row$get !== void 0 ? _row$get : null;\n });\n setValues(newValues);\n });\n return () => {\n subscription.close();\n };\n }, [column, dh, filter, maxSize, table]);\n\n // If the selected value is undefined, add a placeholder item\n var allValues = useMemo(() => {\n if (selectedValue === undefined) {\n return [undefined, ...values];\n }\n return values;\n }, [selectedValue, values]);\n\n // Since values could be anything, not just strings, track the selected index based on the current data\n var selectedIndex = useMemo(() => allValues.findIndex(value => value === selectedValue || isJavaObject(value) && value.equals(selectedValue)), [selectedValue, allValues]);\n var handleChange = useCallback(newSelectedValue => {\n var newSelectedIndex = parseInt(newSelectedValue, 10);\n onChange(allValues[newSelectedIndex]);\n }, [onChange, allValues]);\n return /*#__PURE__*/_jsx(Select, {\n className: className,\n value: selectedIndex,\n onChange: handleChange,\n disabled: disabled,\n children: allValues.map((value, i) =>\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n _jsx(Option, {\n value: i,\n children: formatValue(value)\n }, \"\".concat(i)))\n });\n}\nexport default TableDropdown;\n//# sourceMappingURL=TableDropdown.js.map","import { BROADCAST_CHANNEL_NAME } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { EMPTY_FUNCTION, isMessage } from '@deephaven/utils';\nimport { useEffect, useMemo } from 'react';\nvar log = Log.module('useBroadcastChannel');\nexport function useBroadcastChannel() {\n var onEvent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_FUNCTION;\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : BROADCAST_CHANNEL_NAME;\n var channel = useMemo(() => new BroadcastChannel(name), [name]);\n useEffect(() => () => {\n channel.close();\n }, [channel]);\n useEffect(() => {\n function handleEvent(event) {\n var {\n data\n } = event;\n if (!isMessage(data)) {\n log.debug('Ignoring non-deephaven message', data);\n return;\n }\n log.debug('event received', data);\n onEvent(event);\n }\n channel.addEventListener('message', handleEvent);\n return () => {\n channel.removeEventListener('message', handleEvent);\n };\n }, [channel, onEvent]);\n return channel;\n}\nexport default useBroadcastChannel;\n//# sourceMappingURL=useBroadcastChannel.js.map","import { isBroadcastLoginMessage, isBroadcastLogoutMessage } from '@deephaven/jsapi-utils';\nimport { useCallback } from 'react';\nimport useBroadcastChannel from \"./useBroadcastChannel.js\";\nexport function useBroadcastLoginListener(onLogin, onLogout) {\n var onMessage = useCallback(event => {\n if (isBroadcastLoginMessage(event.data)) {\n onLogin === null || onLogin === void 0 || onLogin(event.data);\n } else if (isBroadcastLogoutMessage(event.data)) {\n onLogout === null || onLogout === void 0 || onLogout(event.data);\n }\n }, [onLogin, onLogout]);\n useBroadcastChannel(onMessage);\n}\nexport default useBroadcastLoginListener;\n//# sourceMappingURL=useBroadcastLoginListener.js.map","import { useCallback, useState } from 'react';\nimport { useDebouncedValue, usePromiseFactory } from '@deephaven/react-hooks';\nimport useTableUtils from \"./useTableUtils.js\";\n/**\n * Manage a trimmed text value and check if it exists in a list of table columns.\n * @param table The table to check for the value\n * @param columnNames The column names to check\n * @param debounceMs Debounce timer for re-checking the value\n * @param isCaseSensitive Whether the value check is case sensitive\n */\nexport function useCheckIfExistsValue(table, columnNames, debounceMs, isCaseSensitive) {\n var tableUtils = useTableUtils();\n var [valueTrimmed, setValueTrimmed] = useState('');\n var {\n value: valueTrimmedDebounced\n } = useDebouncedValue(valueTrimmed, debounceMs);\n var trimAndUpdateValue = useCallback(text => {\n setValueTrimmed(text.trim());\n }, []);\n var {\n data: valueExistsData,\n isLoading: valueExistsIsLoading\n } = usePromiseFactory(tableUtils.doesColumnValueExist, [table, columnNames, valueTrimmedDebounced, isCaseSensitive]);\n\n // If value check is loading or if debounce hasn't settled, set\n // `matchesExistingValue` to null since it is indeterminate\n var valueExists = valueExistsIsLoading || valueTrimmed !== valueTrimmedDebounced ? null : valueExistsData;\n return {\n valueTrimmed,\n valueTrimmedDebounced,\n valueExists,\n trimAndUpdateValue\n };\n}\nexport default useCheckIfExistsValue;\n//# sourceMappingURL=useCheckIfExistsValue.js.map","import debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport { useEffect, useMemo } from 'react';\nimport useTableUtils from \"./useTableUtils.js\";\nvar log = Log.module('useDebouncedViewportSearch');\nexport var DEBOUNCE_VIEWPORT_SEARCH_MS = 200;\n\n/**\n * React hook that returns a debounced search callback for filtering a table\n * viewport.\n * @param viewportData Table viewport to filter\n * @param columnName Column name to filter by\n * @param debounceMs Millisecond value to debounce\n * @returns A debounced search function\n */\nexport function useDebouncedViewportSearch(viewportData, columnName) {\n var debounceMs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEBOUNCE_VIEWPORT_SEARCH_MS;\n var tableUtils = useTableUtils();\n var {\n table,\n applyFiltersAndRefresh\n } = viewportData;\n var debouncedSearch = useMemo(() => debounce(searchText => {\n log.debug(\"Applying debounced searchText '\".concat(searchText, \"'\"));\n if (table == null) {\n return;\n }\n var searchTextTrimmed = searchText.trim();\n if (searchTextTrimmed === '') {\n applyFiltersAndRefresh([]);\n return;\n }\n var column = table.findColumn(columnName);\n var value = tableUtils.makeFilterValue(column.type, searchTextTrimmed);\n var filter = [column.filter().contains(value)];\n applyFiltersAndRefresh(filter);\n }, debounceMs), [applyFiltersAndRefresh, columnName, debounceMs, table, tableUtils]);\n useEffect(() => () => {\n log.debug('Cancelling debounced search function');\n debouncedSearch.cancel();\n }, [debouncedSearch]);\n return debouncedSearch;\n}\nexport default useDebouncedViewportSearch;\n//# sourceMappingURL=useDebouncedViewportSearch.js.map","import { createKeyedItemKey, createSelectedValuesFilter } from '@deephaven/jsapi-utils';\nimport { isSelectionMaybeInvertedEqual, useDebouncedValue, useIsEqualMemo, useMappedSelection } from '@deephaven/react-hooks';\nimport { useMemo } from 'react';\nimport useTableUtils from \"./useTableUtils.js\";\nexport var DEBOUNCE_MS = 300;\n/**\n * Creates a filter factory for the current selected keys of a viewport. The\n * selected keys will be mapped to values to match in a given column name. The\n * resulting filter factory is debounced to allow some cushion for cases where\n * a user rapidly changes selections, e.g. in a checkbox list.\n */\nexport function useDebouncedViewportSelectionFilter(_ref) {\n var {\n viewportData,\n columnName,\n shouldSelectAllOnNoSelection,\n mapItemToValue\n } = _ref;\n var tableUtils = useTableUtils();\n\n // Map selection to values contained in the column to filter\n var valuesSelection = useMappedSelection(viewportData, mapItemToValue, createKeyedItemKey);\n\n // Debounce so user can rapidly select multiple items in a row without the\n // cost of updating the table on each change\n var {\n value: debouncedValuesSelection\n } = useDebouncedValue(valuesSelection, DEBOUNCE_MS);\n\n // In cases where a user rapidly selects then deselects the selection\n // reference will change, but the state it represents will remain unchanged.\n // Memoize based on the selection value to avoid unnecessarily re-applying\n // table filters.\n var memoValuesSelection = useIsEqualMemo(debouncedValuesSelection, isSelectionMaybeInvertedEqual);\n return useMemo(() => createSelectedValuesFilter(tableUtils, columnName, memoValuesSelection.selection, shouldSelectAllOnNoSelection, memoValuesSelection.isInverted), [columnName, memoValuesSelection, shouldSelectAllOnNoSelection, tableUtils]);\n}\nexport default useDebouncedViewportSelectionFilter;\n//# sourceMappingURL=useDebouncedViewportSelectionFilter.js.map","import { useMemo, useRef } from 'react';\n/**\n * Takes an array of items and adds a default item to the top of the list if:\n * 1. defaultDisplayValue is provided\n * 2. The `searchText` is empty or\n * The `searchText` is contained (case insensitive) in the default item display text.\n * @param items List of items filtered on `searchText`\n * @param displayProp The item prop containing display text\n * @param searchText The current search text that is filtering the items\n * @param defaultDisplayValue The display text to set as the default item `displayProp` value\n */\nexport function useFilteredItemsWithDefaultValue(items, displayProp, searchText, defaultDisplayValue) {\n // Exclude search text from updating the memo. This ensures that adding /\n // removing of the default item stays in sync with data loading. Otherwise,\n // the item can move while data is still loading.\n var searchTextRef = useRef('');\n searchTextRef.current = searchText;\n return useMemo(() => {\n // If the list is still loading, items will exist, but their item prop will be undefined\n var isLoading = items.length > 0 && items[0].item == null;\n if (!isLoading && defaultDisplayValue != null && (searchTextRef.current === '' || defaultDisplayValue.toLowerCase().includes(searchTextRef.current.toLowerCase()))) {\n return [{\n key: defaultDisplayValue,\n item: {\n [displayProp]: defaultDisplayValue\n }\n }, ...items];\n }\n return items;\n }, [defaultDisplayValue, displayProp, items]);\n}\nexport default useFilteredItemsWithDefaultValue;\n//# sourceMappingURL=useFilteredItemsWithDefaultValue.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport { useCallback } from 'react';\n/**\n * Gets an item's position in a list of items based on its row index in a table.\n * @param table Table to search for the item in\n * @param columnName Column name to search for the item in\n * @param defaultValue Optional default value. This would be the first item in\n * the list and not expected to be in the Table.\n * @param itemHeight Height of each item in the list\n * @param topOffset Optional pixel offset from the top of the list\n * @param value Value to search for in the column\n */\nexport function useGetItemPosition(_ref) {\n var {\n table,\n columnName,\n defaultValue,\n itemHeight,\n topOffset = 0,\n value\n } = _ref;\n return useCallback(/*#__PURE__*/_asyncToGenerator(function* () {\n if (table == null || value === '' || value === defaultValue) {\n return topOffset;\n }\n var column = table.findColumn(columnName);\n var rowIndex = yield table.seekRow(0, column, 'String', value);\n\n // If a default item exists at the top of the list, offset the item index by 1\n var defaultItemOffset = defaultValue == null ? 0 : 1;\n return (rowIndex + defaultItemOffset) * itemHeight + topOffset;\n }), [columnName, defaultValue, itemHeight, table, topOffset, value]);\n}\nexport default useGetItemPosition;\n//# sourceMappingURL=useGetItemPosition.js.map","import { useMemo } from 'react';\nimport { createFilterConditionFactory, createNotNullOrEmptyFilterCondition } from '@deephaven/jsapi-utils';\nimport useTableUtils from \"./useTableUtils.js\";\nexport function useNotNullOrEmptyFilter(columnNames) {\n var conditionOperator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'or';\n var tableUtils = useTableUtils();\n var notNullOrEmptyFilterCondition = useMemo(() => createNotNullOrEmptyFilterCondition(tableUtils), [tableUtils]);\n return useMemo(() => createFilterConditionFactory(columnNames, notNullOrEmptyFilterCondition, conditionOperator), [columnNames, conditionOperator, notNullOrEmptyFilterCondition]);\n}\nexport default useNotNullOrEmptyFilter;\n//# sourceMappingURL=useNotNullOrEmptyFilter.js.map","import { useCallback, useMemo, useState } from 'react';\nimport { createSearchTextFilter, createSelectedValuesFilter } from '@deephaven/jsapi-utils';\nimport { useDebouncedCallback, useDebouncedValue, usePromiseFactory } from '@deephaven/react-hooks';\nimport { usePickerItemScale } from '@deephaven/components';\nimport useFilterConditionFactories from \"./useFilterConditionFactories.js\";\nimport useViewportData from \"./useViewportData.js\";\nimport useViewportFilter from \"./useViewportFilter.js\";\nimport useTableUtils from \"./useTableUtils.js\";\nimport useWidgetClose from \"./useWidgetClose.js\";\nimport { SEARCH_DEBOUNCE_MS, VIEWPORT_PADDING, VIEWPORT_SIZE } from \"./Constants.js\";\n/**\n * Manages a list of available items that can be searched and selected. Selected\n * items are removed from the list and managed in a selectedValueMap data\n * structure. Useful for components that contain a picker but show selected\n * values in a separate component.\n * @param maybeTable The table to get the list of items from\n * @param columnName The column name to get the list of items from\n * @param mapItemToValue A function to map an item to a value\n * @param filterConditionFactories Optional filter condition factories to apply to the list\n * @param trimSearchText Whether to trim the search text before filtering. Defaults to false\n * @param timeZone The timezone to use for date parsing\n */\nexport function usePickerWithSelectedValues(_ref) {\n var {\n maybeTable,\n columnName,\n mapItemToValue,\n filterConditionFactories = [],\n trimSearchText = false,\n timeZone\n } = _ref;\n var {\n itemHeight\n } = usePickerItemScale();\n var tableUtils = useTableUtils();\n\n // `searchText` should always be up to date for controlled search input.\n // `appliedSearchText` will get updated after a delay to avoid updating\n // filters on every key stroke. It will also be trimmed of leading / trailing\n // spaces if `trimSearchText` is true.\n var [searchText, setSearchText] = useState('');\n var [appliedSearchText, setAppliedSearchText] = useState('');\n var applySearchText = useCallback(text => {\n setAppliedSearchText(trimSearchText ? text.trim() : text);\n }, [trimSearchText]);\n var searchTextMaybeTrimmed = useMemo(() => trimSearchText ? searchText.trim() : searchText, [searchText, trimSearchText]);\n var [selectedKey, setSelectedKey] = useState(null);\n var [selectedValueMap, setSelectedValueMap] = useState(() => new Map());\n var {\n data: valueExists,\n isLoading: valueExistsIsLoading\n } = usePromiseFactory(tableUtils.doesColumnValueExist, [maybeTable, columnName, appliedSearchText, false /* isCaseSensitive */]);\n\n // The `searchTextFilter` starts getting applied to the list whenever\n // `appliedSearchText` changes, after which there is a small delay before the\n // items are in sync. Use a debounce timer to allow a little extra time\n // before calculating `searchTextExists` below. Note that there are 2 debounce\n // timers at play here:\n // 1. `onDebouncedSearchTextChange` applies the search text after user stops typing\n // 2. `useDebouncedValue` debounces whenever the result of the first debounce\n // changes, and `isApplyingFilter` will be true while this 2nd timer is active.\n var {\n isDebouncing: isApplyingFilter\n } = useDebouncedValue(appliedSearchText, SEARCH_DEBOUNCE_MS);\n\n // If value exists check is still loading or if debounce hasn't completed, set\n // `searchTextExists` to null since it is indeterminate.\n var searchTextExists = isApplyingFilter || valueExistsIsLoading ? null : valueExists;\n var searchTextFilter = useMemo(() => createSearchTextFilter(tableUtils, columnName, appliedSearchText, timeZone), [appliedSearchText, columnName, tableUtils, timeZone]);\n\n // Filter out selected values from the picker\n var excludeSelectedValuesFilter = useMemo(() => createSelectedValuesFilter(tableUtils, columnName, new Set(selectedValueMap.keys()), false, true), [columnName, selectedValueMap, tableUtils]);\n var {\n data: listTable\n } = usePromiseFactory(tableUtils.createDistinctSortedColumnTable, [maybeTable, columnName, 'asc', ...filterConditionFactories]);\n useWidgetClose(listTable);\n var list = useViewportData({\n table: listTable,\n itemHeight,\n viewportSize: VIEWPORT_SIZE,\n viewportPadding: VIEWPORT_PADDING\n });\n var hasSearchTextWithZeroResults = searchTextMaybeTrimmed.length > 0 && list.size === 0;\n var searchTextIsInSelectedValues = selectedValueMap.has(searchTextMaybeTrimmed);\n var onDebouncedSearchTextChange = useDebouncedCallback(applySearchText, SEARCH_DEBOUNCE_MS);\n var onSearchTextChange = useCallback(text => {\n setSearchText(text);\n onDebouncedSearchTextChange(text);\n }, [onDebouncedSearchTextChange]);\n var setSelectedKeyOnNextFrame = useDebouncedCallback(setSelectedKey, 0);\n var onSelectKey = useCallback(key => {\n setSearchText('');\n applySearchText('');\n\n // Set the selection temporarily to avoid the picker staying open\n setSelectedKey(key);\n\n // Clear the selection on next frame since selected items get removed from\n // the list and added to `selectedValues` Map\n setSelectedKeyOnNextFrame(null);\n\n // key will be null in scenarios where search text doesn't match an item\n // and user clicks outside of picker\n if (key == null) {\n return;\n }\n var item = list.viewportData.findItem(key);\n if (item == null) {\n return;\n }\n var value = mapItemToValue(item);\n setSelectedValueMap(prev => {\n var next = new Map(prev);\n next.set(value, {\n value\n });\n return next;\n });\n }, [applySearchText, setSelectedKeyOnNextFrame, list.viewportData, mapItemToValue]);\n var onAddValues = useCallback(values => {\n setSelectedValueMap(prev => {\n if (values.size === 0) {\n return prev;\n }\n var next = new Map(prev);\n\n // eslint-disable-next-line no-restricted-syntax\n for (var value of values) {\n next.set(value, {\n value\n });\n }\n return next;\n });\n }, []);\n var onRemoveValues = useCallback(values => {\n setSelectedValueMap(prev => {\n if (values === 'all') {\n return new Map();\n }\n var next = new Map(prev);\n\n // eslint-disable-next-line no-restricted-syntax\n for (var value of values) {\n next.delete(value);\n }\n return next;\n });\n }, []);\n var filter = useFilterConditionFactories(list.table, searchTextFilter, excludeSelectedValuesFilter);\n useViewportFilter(list, filter);\n return useMemo(() => ({\n list,\n hasSearchTextWithZeroResults,\n searchText,\n searchTextExists,\n searchTextIsInSelectedValues,\n selectedKey,\n selectedValueMap,\n onSearchTextChange,\n onSelectKey,\n onAddValues,\n onRemoveValues\n }), [hasSearchTextWithZeroResults, list, onAddValues, onRemoveValues, onSearchTextChange, onSelectKey, searchText, searchTextExists, searchTextIsInSelectedValues, selectedKey, selectedValueMap]);\n}\nexport default usePickerWithSelectedValues;\n//# sourceMappingURL=usePickerWithSelectedValues.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport { useCallback, useEffect } from 'react';\nimport { usePromiseFactory } from '@deephaven/react-hooks';\n\n/**\n * Return type of `useSelectDistinctTable` hook.\n */\n\n/**\n * Creates and subscribes to a `selectDistinct` derived table and unsubscribes\n * on unmount.\n * @param table The table to call `selectDistinct` on.\n * @param columnNames The list of column names to pass to `selectDistinct`.\n */\nexport default function useSelectDistinctTable(table) {\n for (var _len = arguments.length, columnNames = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n columnNames[_key - 1] = arguments[_key];\n }\n var selectDistinct = useCallback(/*#__PURE__*/_asyncToGenerator(function* () {\n var _table$selectDistinct;\n return (_table$selectDistinct = table === null || table === void 0 ? void 0 : table.selectDistinct(table.findColumns(columnNames))) !== null && _table$selectDistinct !== void 0 ? _table$selectDistinct : null;\n }),\n // Disabling the exhaustive checks due to the spreading of `columnNames`\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [table, ...columnNames]);\n var {\n data: distinctTable,\n error,\n isError,\n isLoading\n } = usePromiseFactory(selectDistinct, []);\n useEffect(() => () => {\n distinctTable === null || distinctTable === void 0 || distinctTable.close();\n }, [distinctTable]);\n return {\n distinctTable,\n error,\n isError,\n isLoading\n };\n}\n//# sourceMappingURL=useSelectDistinctTable.js.map","import { useMemo } from 'react';\nimport { createFilterConditionFactory, createShowOnlyEmptyFilterCondition } from '@deephaven/jsapi-utils';\nimport useTableUtils from \"./useTableUtils.js\";\n/**\n * Creates a filter condition factory that can be toggle on or off. If on, the\n * filter will match only values that are null or empty strings. If off, the\n * filter will match all values.\n * @param isOn Whether the filter is on or off\n * @param columnNames Column names to filter\n */\nexport function useShowOnlyEmptyFilter(isOn, columnNames) {\n var tableUtils = useTableUtils();\n var createColumnCondition = useMemo(() => createShowOnlyEmptyFilterCondition(tableUtils, isOn), [isOn, tableUtils]);\n return useMemo(() => createFilterConditionFactory(columnNames, createColumnCondition), [columnNames, createColumnCondition]);\n}\nexport default useShowOnlyEmptyFilter;\n//# sourceMappingURL=useShowOnlyEmptyFilter.js.map","import { useMemo } from 'react';\nimport { createValueFilter } from '@deephaven/jsapi-utils';\nimport useTableUtils from \"./useTableUtils.js\";\n/**\n * Create a filter condition factory for a filter operator that matches the given value.\n * @param columnNames Column names to compare value to\n * @param value Value to match\n * @param operator Operator to use for matching\n */\nexport function useValueFilter(columnNames, value, operator) {\n var tableUtils = useTableUtils();\n return useMemo(() => createValueFilter(tableUtils, columnNames, value, operator), [columnNames, operator, tableUtils, value]);\n}\nexport default useValueFilter;\n//# sourceMappingURL=useValueFilter.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 { Formatter } from '@deephaven/jsapi-utils';\nimport IrisGridProxyModel from \"./IrisGridProxyModel.js\";\nimport IrisGridUtils from \"./IrisGridUtils.js\";\nclass IrisGridTestUtils {\n static valueForCell(rowIndex, columnIndex, formatValue) {\n var value = \"\".concat(rowIndex, \",\").concat(columnIndex);\n if (formatValue !== undefined && formatValue) {\n value = \"(\".concat(value, \")\");\n }\n return value;\n }\n constructor(dh) {\n _defineProperty(this, \"dh\", void 0);\n _defineProperty(this, \"irisGridUtils\", void 0);\n this.dh = dh;\n this.irisGridUtils = new IrisGridUtils(dh);\n }\n makeColumn(name) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : IrisGridTestUtils.DEFAULT_TYPE;\n var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.dh.Column({\n index,\n name,\n type\n });\n }\n makeRollupTableConfig() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.dh.RollupTableConfig();\n }\n makeColumns() {\n var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var columns = [];\n for (var i = 0; i < count; i += 1) {\n columns.push(this.makeColumn(\"\".concat(prefix).concat(i), IrisGridTestUtils.DEFAULT_TYPE, i));\n }\n return columns;\n }\n static makeUserColumnWidths() {\n var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5;\n var userColumnWidths = new Map();\n for (var i = 0; i < count; i += 1) {\n userColumnWidths.set(i.toString(), 100);\n }\n return userColumnWidths;\n }\n makeRow(i) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var row = new this.dh.Row({\n index: i,\n name: \"\".concat(i)\n });\n row.get = jest.fn(column => IrisGridTestUtils.valueForCell(i, column.index));\n return row;\n }\n makeFilter() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.dh.FilterCondition();\n }\n makeSort() {\n var column = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.makeColumn();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.dh.Sort({\n column\n });\n }\n hydrateSort(sortDescriptor, columns) {\n return this.irisGridUtils.hydrateDhSort(columns, sortDescriptor);\n }\n makeTable() {\n var {\n columns = this.makeColumns(),\n size = 1000000000,\n sort = [],\n layoutHints = {}\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var table = new this.dh.Table({\n columns,\n size,\n sort\n });\n table.copy = jest.fn(() => Promise.resolve(table));\n table.freeze = jest.fn(() => Promise.resolve(table));\n table.layoutHints = layoutHints;\n return table;\n }\n makeTreeTable() {\n var columns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.makeColumns();\n var aggregatedColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var groupedColumns = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var size = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1000000000;\n var sort = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var layoutHints = arguments.length > 5 ? arguments[5] : undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var table = new this.dh.TreeTable({\n columns,\n aggregatedColumns,\n groupedColumns,\n size,\n sort,\n layoutHints\n });\n table.copy = jest.fn(() => Promise.resolve(table));\n return table;\n }\n static makeInputTable() {\n var keyColumns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var valueColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var {\n keys,\n values\n } = [...keyColumns, ...valueColumns].reduce((acc, col) => {\n if (keyColumns.includes(col)) acc.keys.push(col.name);else acc.values.push(col.name);\n return acc;\n }, {\n keys: [],\n values: []\n });\n return {\n keys,\n values\n };\n }\n makeSubscription() {\n var table = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.makeTable();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.dh.TableViewportSubscription({\n table\n });\n }\n makeModel() {\n var table = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.makeTable();\n var formatter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var inputTable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var {\n dh\n } = this;\n return new IrisGridProxyModel(dh, table, formatter !== null && formatter !== void 0 ? formatter : new Formatter(dh), inputTable);\n }\n}\n_defineProperty(IrisGridTestUtils, \"DEFAULT_TYPE\", 'java.lang.String');\nexport default IrisGridTestUtils;\n//# sourceMappingURL=IrisGridTestUtils.js.map","import { useCallback } from 'react';\nimport { nanoid } from 'nanoid';\nimport { usePanelOpenListener } from \"../PanelEvent.js\";\nimport LayoutUtils from \"./LayoutUtils.js\";\nimport usePanelRegistration from \"./usePanelRegistration.js\";\n/**\n * Register a panel that will be opened when one of the `supportedTypes` objects is triggered.\n */\nexport function useDashboardPanel(_ref) {\n var {\n dashboardProps,\n componentName,\n component,\n supportedTypes,\n hydrate,\n dehydrate\n } = _ref;\n var {\n id,\n layout,\n registerComponent\n } = dashboardProps;\n var handlePanelOpen = useCallback(_ref2 => {\n var {\n dragEvent,\n panelId = nanoid(),\n widget\n } = _ref2;\n var {\n name,\n type\n } = widget;\n var isSupportedType = type != null && (Array.isArray(supportedTypes) && supportedTypes.includes(type) || type === supportedTypes);\n if (!isSupportedType) {\n // Only want to listen for your custom variable types\n return;\n }\n var props = {\n localDashboardId: id,\n metadata: widget\n };\n if (hydrate != null) {\n props = hydrate(props, id);\n }\n var config = {\n type: 'react-component',\n component: componentName,\n props,\n title: name !== null && name !== void 0 ? name : undefined,\n id: panelId\n };\n var {\n root\n } = layout;\n LayoutUtils.openComponent({\n root,\n config,\n dragEvent\n });\n }, [componentName, hydrate, id, layout, supportedTypes]);\n\n /**\n * Register our custom component type so the layout know hows to open it\n */\n usePanelRegistration(registerComponent, component, hydrate, dehydrate);\n\n /**\n * Listen for panel open events so we know when to open a panel\n */\n usePanelOpenListener(layout.eventHub, handlePanelOpen);\n}\nexport default useDashboardPanel;\n//# sourceMappingURL=useDashboardPanel.js.map","import { useCallback } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getPluginDataForDashboard } from \"./selectors.js\";\nimport { setDashboardPluginData } from \"./actions.js\";\n/**\n * Custom hook that provides access to plugin data for a specific dashboard and plugin.\n * @param dashboardId - The ID of the dashboard.\n * @param pluginId - The ID of the plugin.\n * @returns A tuple containing the plugin data and a function to update the plugin data.\n */\nexport function useDashboardPluginData(dashboardId, pluginId) {\n var dispatch = useDispatch();\n var data = useSelector(store => getPluginDataForDashboard(store, dashboardId, pluginId));\n var setData = useCallback(newData => dispatch(setDashboardPluginData(dashboardId, pluginId, newData)), [dashboardId, pluginId, dispatch]);\n return [data, setData];\n}\nexport default {\n useDashboardPluginData\n};\n//# sourceMappingURL=hooks.js.map","import { useMemo } from 'react';\nimport { useExternalTheme } from '@deephaven/components';\nimport { getThemeDataFromPlugins } from \"./PluginUtils.js\";\n/**\n * Use custom external or plugin themes.\n * @param pluginModules The plugin modules to get themes from when external\n * themes are disabled.\n */\nexport function useCustomThemes(pluginModules) {\n var {\n isEnabled: isExternalThemeEnabled,\n isPending: isExternalThemePending,\n themeData: externalThemeData\n } = useExternalTheme();\n return useMemo(() => {\n // Get theme from parent window via `postMessage` apis\n if (isExternalThemeEnabled) {\n if (isExternalThemePending) {\n return null;\n }\n return externalThemeData ? [externalThemeData] : [];\n }\n\n // Get themes from plugins\n return pluginModules == null ? null : getThemeDataFromPlugins(pluginModules);\n }, [isExternalThemeEnabled, isExternalThemePending, externalThemeData, pluginModules]);\n}\nexport default useCustomThemes;\n//# sourceMappingURL=useCustomThemes.js.map","import React, { useMemo } from 'react';\nimport usePlugins from \"./usePlugins.js\";\nimport { isWidgetPlugin } from \"./PluginTypes.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function WidgetView(_ref) {\n var {\n fetch,\n type\n } = _ref;\n var plugins = usePlugins();\n var plugin = useMemo(() => [...plugins.values()].filter(isWidgetPlugin).find(p => [p.supportedTypes].flat().includes(type)), [plugins, type]);\n if (plugin != null) {\n var Component = plugin.component;\n return /*#__PURE__*/_jsx(Component, {\n fetch: fetch\n });\n }\n throw new Error(\"Unknown widget type '\".concat(type, \"'\"));\n}\nexport default WidgetView;\n//# sourceMappingURL=WidgetView.js.map","import { useMemo } from 'react';\nimport { usePlugins } from \"./usePlugins.js\";\nimport { getPluginsElementMap } from \"./PluginUtils.js\";\n/**\n * Get all ElementPlugin elements from the plugins context\n * @returns ElementPlugin mapping as a Map of plugin name to component type\n */\nexport function usePluginsElementMap() {\n // Get all plugins from the context\n var plugins = usePlugins();\n var elementPlugins = useMemo(() => getPluginsElementMap(plugins), [plugins]);\n return elementPlugins;\n}\nexport default usePluginsElementMap;\n//# sourceMappingURL=usePluginsElementMap.js.map","/**\n * Map from auth config keys to their values\n * E.g. Map { AuthHandlers → \"io.deephaven.auth.AnonymousAuthenticationHandler\" }\n */\n\n/**\n * Props for the auth plugin component to render\n */\n\n/**\n * Whether the auth plugin is available given the current configuration\n */\n\nexport function isAuthPlugin(plugin) {\n if (plugin == null) return false;\n var authPlugin = plugin;\n return authPlugin.Component !== undefined && typeof authPlugin.isAvailable === 'function';\n}\n//# sourceMappingURL=AuthPlugin.js.map","export var AUTH_HANDLER_TYPE_ANONYMOUS = 'io.deephaven.auth.AnonymousAuthenticationHandler';\nexport var AUTH_HANDLER_TYPE_PSK = 'io.deephaven.authentication.psk.PskAuthenticationHandler';\n//# sourceMappingURL=AuthHandlerTypes.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); }\nexport class AuthenticationError extends Error {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"name\", 'AuthenticationError');\n _defineProperty(this, \"isAuthenticationError\", true);\n }\n}\nexport default AuthenticationError;\n//# sourceMappingURL=AuthenticationError.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React, { useEffect, useState } from 'react';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { useClient } from '@deephaven/jsapi-bootstrap';\nimport Log from '@deephaven/log';\nimport { CanceledPromiseError, getErrorMessage } from '@deephaven/utils';\nimport AuthenticationError from \"./AuthenticationError.js\";\nimport { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nvar log = Log.module('AuthPluginBase');\n/**\n * Base AuthPlugin that gets passed a function for retrieving the login options, and then attempting to login with them.\n * @param getLoginOptions Function that returns a promise for the login options\n */\nfunction AuthPluginBase(_ref) {\n var {\n children,\n getLoginOptions\n } = _ref;\n var client = useClient();\n var [error, setError] = useState();\n var [isLoggedIn, setIsLoggedIn] = useState(false);\n useEffect(() => {\n var isCanceled = false;\n function verifyNotCanceled() {\n if (isCanceled) {\n throw new CanceledPromiseError('Login canceled.');\n }\n }\n function login() {\n return _login.apply(this, arguments);\n }\n function _login() {\n _login = _asyncToGenerator(function* () {\n try {\n var loginOptions = yield getLoginOptions();\n verifyNotCanceled();\n log.info('Logging in...');\n yield client.login(loginOptions);\n verifyNotCanceled();\n setIsLoggedIn(true);\n } catch (e) {\n if (!isCanceled) {\n var _getErrorMessage;\n log.error('Unable to login:', e);\n var message = (_getErrorMessage = getErrorMessage(e)) !== null && _getErrorMessage !== void 0 ? _getErrorMessage : 'Unable to login. Verify credentials.';\n setError(new AuthenticationError(message));\n setIsLoggedIn(false);\n }\n }\n });\n return _login.apply(this, arguments);\n }\n login();\n return () => {\n isCanceled = true;\n };\n }, [client, getLoginOptions]);\n if (!isLoggedIn) {\n return /*#__PURE__*/_jsx(LoadingOverlay, {\n \"data-testid\": \"auth-base-loading\",\n isLoading: error == null,\n isLoaded: false,\n errorMessage: getErrorMessage(error)\n });\n }\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children\n });\n}\nexport default AuthPluginBase;\n//# sourceMappingURL=AuthPluginBase.js.map","import React, { useCallback } from 'react';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { AUTH_HANDLER_TYPE_ANONYMOUS } from \"./AuthHandlerTypes.js\";\nimport AuthPluginBase from \"./AuthPluginBase.js\";\nimport { UserPermissionsOverrideContext } from \"./UserContexts.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar permissionsOverrides = {\n canLogout: false\n};\n\n/**\n * AuthPlugin that tries to login anonymously. Fails if anonymous login fails\n */\nfunction Component(_ref) {\n var {\n children\n } = _ref;\n var dh = useApi();\n var getLoginOptions = useCallback(() => ({\n type: dh.CoreClient.LOGIN_TYPE_ANONYMOUS\n }), [dh]);\n return /*#__PURE__*/_jsx(AuthPluginBase, {\n getLoginOptions: getLoginOptions,\n children: /*#__PURE__*/_jsx(UserPermissionsOverrideContext.Provider, {\n value: permissionsOverrides,\n children: children\n })\n });\n}\nvar AuthPluginAnonymous = {\n Component,\n isAvailable: authHandlers => authHandlers.includes(AUTH_HANDLER_TYPE_ANONYMOUS)\n};\nexport default AuthPluginAnonymous;\n//# sourceMappingURL=AuthPluginAnonymous.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React from 'react';\nimport { LOGIN_OPTIONS_REQUEST } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { getWindowParent, requestParentResponse } from '@deephaven/utils';\nimport AuthPluginBase from \"./AuthPluginBase.js\";\nimport { UserPermissionsOverrideContext } from \"./UserContexts.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar log = Log.module('AuthPluginParent');\nvar permissionsOverrides = {\n canLogout: false\n};\nfunction isLoginOptions(options) {\n return options != null && typeof options.type === 'string';\n}\nfunction getLoginOptions() {\n return _getLoginOptions.apply(this, arguments);\n}\nfunction _getLoginOptions() {\n _getLoginOptions = _asyncToGenerator(function* () {\n log.info('Logging in by delegating to parent window...');\n var response = yield requestParentResponse(LOGIN_OPTIONS_REQUEST);\n if (!isLoginOptions(response)) {\n throw new Error(\"Unexpected login options response: \".concat(response));\n }\n return response;\n });\n return _getLoginOptions.apply(this, arguments);\n}\nfunction getWindowAuthProvider() {\n var _URLSearchParams$get;\n return (_URLSearchParams$get = new URLSearchParams(window.location.search).get('authProvider')) !== null && _URLSearchParams$get !== void 0 ? _URLSearchParams$get : '';\n}\n\n/**\n * AuthPlugin that tries to delegate to the parent window for authentication. Fails if there is no parent window.\n */\nfunction Component(_ref) {\n var {\n children\n } = _ref;\n return /*#__PURE__*/_jsx(AuthPluginBase, {\n getLoginOptions: getLoginOptions,\n children: /*#__PURE__*/_jsx(UserPermissionsOverrideContext.Provider, {\n value: permissionsOverrides,\n children: children\n })\n });\n}\nvar AuthPluginParent = {\n Component,\n isAvailable: () => getWindowParent() != null && getWindowAuthProvider() === 'parent'\n};\nexport default AuthPluginParent;\n//# sourceMappingURL=AuthPluginParent.js.map","import { LoadingSpinner } from '@deephaven/components';\nimport classNames from 'classnames';\nimport React from 'react';\nimport \"./LoginForm.css\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function LoginForm(_ref) {\n var {\n children,\n errorMessage,\n isLoggingIn = false,\n onSubmit: _onSubmit\n } = _ref;\n return /*#__PURE__*/_jsxs(\"form\", {\n className: \"login-form\",\n onSubmit: event => {\n event.preventDefault();\n event.stopPropagation();\n _onSubmit === null || _onSubmit === void 0 || _onSubmit(event);\n },\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"flex-spacer\"\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"flex-wrapper\",\n children: [/*#__PURE__*/_jsx(\"fieldset\", {\n disabled: isLoggingIn,\n className: \"container-fluid\",\n children: children\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"form-group d-flex justify-content-end align-items-center mb-0\",\n children: /*#__PURE__*/_jsxs(\"button\", {\n type: \"submit\",\n className: classNames('btn btn-primary', {\n 'btn-spinner': isLoggingIn\n }, {\n 'btn-cancelable': isLoggingIn\n }),\n \"data-testid\": \"btn-login\",\n children: [isLoggingIn && /*#__PURE__*/_jsxs(\"span\", {\n children: [/*#__PURE__*/_jsx(LoadingSpinner, {\n className: \"mr-2 loading-spinner-vertical-align\"\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"btn-normal-content\",\n children: \"Logging in\"\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"btn-hover-content\",\n children: \"Cancel\"\n })]\n }), !isLoggingIn && 'Login']\n })\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"flex-spacer\",\n children: errorMessage != null && /*#__PURE__*/_jsx(\"p\", {\n className: \"error-message mb-0\",\n role: \"alert\",\n children: \"\".concat(errorMessage)\n })\n })]\n });\n}\nexport default LoginForm;\n//# sourceMappingURL=LoginForm.js.map","import React from 'react';\nimport { RandomAreaPlotAnimation } from '@deephaven/components';\nimport \"./Login.css\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function Login(_ref) {\n var {\n children,\n logoPath = './logo.png'\n } = _ref;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"login-container\",\n children: [/*#__PURE__*/_jsx(RandomAreaPlotAnimation, {}), /*#__PURE__*/_jsxs(\"div\", {\n className: \"login-box\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/_jsx(\"img\", {\n src: logoPath,\n alt: \"Deephaven Data Labs\"\n })\n }), children, /*#__PURE__*/_jsxs(\"p\", {\n className: \"footer\",\n children: [\"\\xA9 2016-\", new Date().getFullYear(), \" Deephaven Data Labs LLC. Patent Pending.\"]\n })]\n })]\n });\n}\nexport default Login;\n//# sourceMappingURL=Login.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { FadeTransition, LoadingOverlay } from '@deephaven/components';\nimport { useClient } from '@deephaven/jsapi-bootstrap';\nimport { useBroadcastLoginListener } from '@deephaven/jsapi-components';\nimport Log from '@deephaven/log';\nimport { getErrorMessage } from '@deephaven/utils';\nimport Cookies from 'js-cookie';\nimport LoginForm from \"./LoginForm.js\";\nimport Login from \"./Login.js\";\nimport AuthenticationError from \"./AuthenticationError.js\";\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nvar AUTH_TYPE = 'io.deephaven.authentication.psk.PskAuthenticationHandler';\nvar PSK_QUERY_PARAM_KEY = 'psk';\nvar PSK_TOKEN_KEY = 'io.deephaven.web.client.auth.psk.token';\nvar log = Log.module('AuthPluginPsk');\nfunction getWindowToken() {\n return new URLSearchParams(window.location.search).get(PSK_QUERY_PARAM_KEY);\n}\nfunction clearWindowToken() {\n log.debug2('clearWindowToken');\n var url = new URL(window.location.href);\n url.searchParams.delete(PSK_QUERY_PARAM_KEY);\n window.history.replaceState(null, '', url.href);\n}\nfunction readCookieToken() {\n var _Cookies$get;\n return (_Cookies$get = Cookies.get(PSK_TOKEN_KEY)) !== null && _Cookies$get !== void 0 ? _Cookies$get : null;\n}\nfunction storeCookieToken(token) {\n log.debug2('Storing token in cookie', token);\n if (token != null) {\n Cookies.set(PSK_TOKEN_KEY, token, {\n secure: true,\n sameSite: 'strict'\n });\n } else {\n Cookies.remove(PSK_TOKEN_KEY);\n }\n}\n/**\n * AuthPlugin that tries to login using a pre-shared key.\n * Add the `psk=<token>` parameter to your URL string to set the token.\n */\nfunction Component(_ref) {\n var {\n children,\n logoPath\n } = _ref;\n var client = useClient();\n var inputField = useRef(null);\n var loginPromise = useRef(null);\n var [error, setError] = useState();\n var [isInputRequired, setIsInputRequired] = useState(false);\n var [isLoggedIn, setIsLoggedIn] = useState(false);\n var [isLoggingIn, setIsLoggingIn] = useState(false);\n var [token, setToken] = useState('');\n var login = useCallback(\n /*#__PURE__*/\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\n function () {\n var _ref2 = _asyncToGenerator(function* (loginToken) {\n var showError = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n log.info('Logging in...');\n setIsLoggingIn(true);\n var newLoginPromise = null;\n try {\n newLoginPromise = client.login({\n type: AUTH_TYPE,\n token: loginToken\n });\n loginPromise.current = newLoginPromise;\n yield newLoginPromise;\n log.info('Logged in successfully');\n if (loginPromise.current !== newLoginPromise) {\n return;\n }\n storeCookieToken(loginToken);\n setIsLoggedIn(true);\n } catch (e) {\n if (loginPromise.current !== newLoginPromise) {\n return;\n }\n setIsInputRequired(true);\n if (showError) {\n var _getErrorMessage;\n log.error('Unable to login', e);\n var message = (_getErrorMessage = getErrorMessage(e)) !== null && _getErrorMessage !== void 0 ? _getErrorMessage : 'Unable to login: Verify credentials.';\n setError(new AuthenticationError(message));\n }\n }\n setIsLoggingIn(false);\n });\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }(), [client]);\n var cancelLogin = useCallback(() => {\n loginPromise.current = null;\n setIsLoggingIn(false);\n }, []);\n var onLogin = useCallback(/*#__PURE__*/_asyncToGenerator(function* () {\n log.debug('onLogin');\n\n // User logged in successfully in another tab, we should be able to read the token from the cookie and login\n var newToken = readCookieToken();\n if (isLoggedIn || isLoggingIn || newToken == null) {\n return;\n }\n login(newToken, false);\n }), [isLoggedIn, isLoggingIn, login]);\n var onLogout = useCallback(() => {\n storeCookieToken(null);\n }, []);\n useBroadcastLoginListener(onLogin, onLogout);\n useEffect(() => {\n var isCanceled = false;\n function initialLogin() {\n return _initialLogin.apply(this, arguments);\n }\n function _initialLogin() {\n _initialLogin = _asyncToGenerator(function* () {\n var _getWindowToken;\n var initialToken = (_getWindowToken = getWindowToken()) !== null && _getWindowToken !== void 0 ? _getWindowToken : readCookieToken();\n clearWindowToken();\n if (initialToken == null) {\n setIsInputRequired(true);\n return;\n }\n setIsLoggingIn(true);\n try {\n yield client.login({\n type: AUTH_TYPE,\n token: initialToken\n });\n if (!isCanceled) {\n storeCookieToken(initialToken);\n setIsLoggedIn(true);\n setIsLoggingIn(false);\n }\n } catch (e) {\n if (!isCanceled) {\n setIsInputRequired(true);\n setIsLoggingIn(false);\n }\n }\n });\n return _initialLogin.apply(this, arguments);\n }\n initialLogin();\n return () => {\n isCanceled = true;\n };\n }, [client]);\n var handleSubmit = useCallback(() => {\n if (!isLoggingIn) {\n login(token);\n } else {\n cancelLogin();\n }\n }, [cancelLogin, isLoggingIn, login, token]);\n useEffect(function autoFocusInput() {\n var _inputField$current;\n (_inputField$current = inputField.current) === null || _inputField$current === void 0 || _inputField$current.focus();\n }, [inputField, isInputRequired]);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [isLoggedIn && children, isInputRequired && /*#__PURE__*/_jsx(FadeTransition, {\n in: !isLoggedIn,\n mountOnEnter: true,\n unmountOnExit: true,\n children: /*#__PURE__*/_jsx(Login, {\n logoPath: logoPath,\n children: /*#__PURE__*/_jsx(LoginForm, {\n errorMessage: getErrorMessage(error),\n isLoggingIn: isLoggingIn,\n onSubmit: handleSubmit,\n children: /*#__PURE__*/_jsxs(\"div\", {\n className: \"form-group\",\n children: [/*#__PURE__*/_jsx(\"label\", {\n htmlFor: \"auth-psk-token-input\",\n children: \"Token\"\n }), /*#__PURE__*/_jsx(\"input\", {\n id: \"auth-psk-token-input\",\n name: \"token\",\n className: \"input-token form-control\",\n type: \"text\",\n autoComplete: \"username\",\n autoCapitalize: \"none\",\n autoCorrect: \"off\",\n spellCheck: \"false\",\n ref: inputField,\n value: token,\n onChange: event => {\n setError(undefined);\n setToken(event.target.value);\n }\n })]\n })\n })\n })\n }), /*#__PURE__*/_jsx(LoadingOverlay, {\n \"data-testid\": \"auth-psk-loading\",\n isLoaded: isLoggedIn || isInputRequired,\n isLoading: !isLoggedIn && !isInputRequired\n })]\n });\n}\nvar AuthPluginPsk = {\n Component,\n isAvailable: authHandlers => authHandlers.includes(AUTH_TYPE)\n};\nexport default AuthPluginPsk;\n//# sourceMappingURL=AuthPluginPsk.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 Log from '@deephaven/log';\nvar log = Log.module('UserUtils');\n\n/**\n * Retrieve a value from the AppInit config\n * @param serverConfig Server config map\n * @param key The AppInit key to retrieve\n * @returns The value for the AppInit key\n */\nexport function getAppInitValue(serverConfig, key) {\n return serverConfig.get(\"internal.webClient.appInit.\".concat(key));\n}\n\n/**\n * Retrieve a user object provided the server config and overrides\n * @param serverConfig Server config map\n * @param overrides Override values for the user\n * @param permissionsOverrides Override specific permissions for the user\n * @returns The user object\n */\nexport function getUserFromConfig(serverConfig) {\n var _getValue, _getValue2, _getValue$split, _getValue3;\n var overrides = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var permissionsOverrides = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n function getValue(key) {\n return getAppInitValue(serverConfig, key);\n }\n function getBooleanValue(key, defaultValue) {\n var value = getValue(key);\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value !== undefined) {\n log.warn(\"Unexpected value for \".concat(key, \": \").concat(value));\n }\n return defaultValue;\n }\n var name = (_getValue = getValue('name')) !== null && _getValue !== void 0 ? _getValue : '';\n var operateAs = (_getValue2 = getValue('operateAs')) !== null && _getValue2 !== void 0 ? _getValue2 : name;\n var groups = (_getValue$split = (_getValue3 = getValue('groups')) === null || _getValue3 === void 0 ? void 0 : _getValue3.split(',')) !== null && _getValue$split !== void 0 ? _getValue$split : [];\n var canCopy = getBooleanValue('canCopy', true);\n var canDownloadCsv = getBooleanValue('canDownloadCsv', true);\n var canUsePanels = getBooleanValue('canUsePanels', true);\n var canLogout = getBooleanValue('canLogout', true);\n return _objectSpread(_objectSpread({\n name,\n operateAs,\n groups\n }, overrides), {}, {\n permissions: _objectSpread({\n canUsePanels,\n canCopy,\n canDownloadCsv,\n canLogout\n }, permissionsOverrides)\n });\n}\nexport default {\n getAppInitValue,\n getUser: getUserFromConfig\n};\n//# sourceMappingURL=UserUtils.js.map","/**\n * remote-component.config.js\n *\n * Dependencies for Remote Components\n */\nimport react from 'react';\nimport * as redux from 'redux';\nimport * as reactRedux from 'react-redux';\nimport ReactDOM from 'react-dom';\n// eslint-disable-next-line no-restricted-imports\nimport * as AdobeReactSpectrum from '@adobe/react-spectrum';\nimport * as DeephavenAuthPlugins from '@deephaven/auth-plugins';\nimport * as DeephavenChart from '@deephaven/chart';\nimport * as DeephavenComponents from '@deephaven/components';\nimport * as DeephavenDashboard from '@deephaven/dashboard';\nimport * as DeephavenDashboardCorePlugins from '@deephaven/dashboard-core-plugins';\nimport * as DeephavenIcons from '@deephaven/icons';\nimport * as DeephavenIrisGrid from '@deephaven/iris-grid';\nimport * as DeephavenJsapiBootstrap from '@deephaven/jsapi-bootstrap';\nimport * as DeephavenJsapiComponents from '@deephaven/jsapi-components';\nimport * as DeephavenJsapiUtils from '@deephaven/jsapi-utils';\nimport * as DeephavenConsole from '@deephaven/console';\nimport DeephavenLog from '@deephaven/log';\nimport * as DeephavenReactHooks from '@deephaven/react-hooks';\nimport * as DeephavenPlugin from '@deephaven/plugin';\n\n// eslint-disable-next-line import/prefer-default-export\nexport var resolve = {\n react,\n 'react-dom': ReactDOM,\n redux,\n 'react-redux': reactRedux,\n '@adobe/react-spectrum': AdobeReactSpectrum,\n '@deephaven/auth-plugins': DeephavenAuthPlugins,\n '@deephaven/chart': DeephavenChart,\n '@deephaven/components': DeephavenComponents,\n '@deephaven/console': DeephavenConsole,\n '@deephaven/dashboard': DeephavenDashboard,\n '@deephaven/dashboard-core-plugins': DeephavenDashboardCorePlugins,\n '@deephaven/icons': DeephavenIcons,\n '@deephaven/iris-grid': DeephavenIrisGrid,\n '@deephaven/jsapi-bootstrap': DeephavenJsapiBootstrap,\n '@deephaven/jsapi-components': DeephavenJsapiComponents,\n '@deephaven/jsapi-utils': DeephavenJsapiUtils,\n '@deephaven/log': DeephavenLog,\n '@deephaven/plugin': DeephavenPlugin,\n '@deephaven/react-hooks': DeephavenReactHooks\n};\n//# sourceMappingURL=remote-component.config.js.map","import createLoadRemoteModule, { createRequires } from '@paciolan/remote-module-loader';\nimport { resolve } from \"./remote-component.config.js\";\nvar requires = createRequires(resolve);\nexport var loadRemoteModule = createLoadRemoteModule({\n requires\n});\nexport default loadRemoteModule;\n//# sourceMappingURL=loadRemoteModule.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); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport Log from '@deephaven/log';\nimport { isAuthPlugin, PluginType, isLegacyAuthPlugin, isLegacyPlugin, isPlugin } from '@deephaven/plugin';\nimport loadRemoteModule from \"./loadRemoteModule.js\";\nvar log = Log.module('@deephaven/app-utils.PluginUtils');\n/**\n * Imports a commonjs plugin module from the provided URL\n * @param pluginUrl The URL of the plugin to load\n * @returns The loaded module\n */\nexport function loadModulePlugin(_x) {\n return _loadModulePlugin.apply(this, arguments);\n}\n\n/**\n * Loads a JSON file and returns the JSON object\n * @param jsonUrl The URL of the JSON file to load\n * @returns The JSON object of the manifest file\n */\nfunction _loadModulePlugin() {\n _loadModulePlugin = _asyncToGenerator(function* (pluginUrl) {\n var myModule = yield loadRemoteModule(pluginUrl);\n return myModule;\n });\n return _loadModulePlugin.apply(this, arguments);\n}\nexport function loadJson(_x2) {\n return _loadJson.apply(this, arguments);\n}\nfunction _loadJson() {\n _loadJson = _asyncToGenerator(function* (jsonUrl) {\n var res = yield fetch(jsonUrl);\n if (!res.ok) {\n throw new Error(res.statusText);\n }\n try {\n return yield res.json();\n } catch (_unused) {\n throw new Error('Could not be parsed as JSON');\n }\n });\n return _loadJson.apply(this, arguments);\n}\nfunction hasDefaultExport(value) {\n return typeof value === 'object' && value != null && typeof value.default === 'object';\n}\nexport function getPluginModuleValue(value) {\n // TypeScript builds CJS default exports differently depending on\n // whether there are also named exports. If the default is the only\n // export, it will be the value. If there are also named exports,\n // it will be assigned to the `default` property on the value.\n if (isPlugin(value)) {\n return value;\n }\n if (hasDefaultExport(value) && isPlugin(value.default)) {\n return value.default;\n }\n if (isLegacyPlugin(value)) {\n return value;\n }\n return null;\n}\n\n/**\n * Load all plugin modules available based on the manifest file at the provided base URL\n * @param modulePluginsUrl The base URL of the module plugins to load\n * @returns A map from the name of the plugin to the plugin module that was loaded\n */\nexport function loadModulePlugins(_x3) {\n return _loadModulePlugins.apply(this, arguments);\n}\nfunction _loadModulePlugins() {\n _loadModulePlugins = _asyncToGenerator(function* (modulePluginsUrl) {\n log.debug('Loading plugins...');\n try {\n var manifest = yield loadJson(\"\".concat(modulePluginsUrl, \"/manifest.json\"));\n if (!Array.isArray(manifest.plugins)) {\n throw new Error('Plugin manifest JSON does not contain plugins array');\n }\n log.debug('Plugin manifest loaded:', manifest);\n var pluginPromises = [];\n for (var i = 0; i < manifest.plugins.length; i += 1) {\n var {\n name,\n main\n } = manifest.plugins[i];\n var pluginMainUrl = \"\".concat(modulePluginsUrl, \"/\").concat(name, \"/\").concat(main);\n pluginPromises.push(loadModulePlugin(pluginMainUrl));\n }\n var pluginModules = yield Promise.allSettled(pluginPromises);\n var pluginMap = new Map();\n for (var _i = 0; _i < pluginModules.length; _i += 1) {\n var module = pluginModules[_i];\n var {\n name: _name,\n version\n } = manifest.plugins[_i];\n if (module.status === 'fulfilled') {\n var moduleValue = getPluginModuleValue(module.value);\n if (moduleValue == null) {\n log.error(\"Plugin '\".concat(_name, \"' is missing an exported value.\"));\n } else {\n pluginMap.set(_name, _objectSpread(_objectSpread({}, moduleValue), {}, {\n version\n }));\n }\n } else {\n log.error(\"Unable to load plugin '\".concat(_name, \"'\"), module.reason);\n }\n }\n log.info('Plugins loaded:', pluginMap);\n return pluginMap;\n } catch (e) {\n log.error('Unable to load plugins:', e);\n return new Map();\n }\n });\n return _loadModulePlugins.apply(this, arguments);\n}\nexport function getAuthHandlers(authConfigValues) {\n var _authConfigValues$get, _authConfigValues$get2;\n return (_authConfigValues$get = (_authConfigValues$get2 = authConfigValues.get('AuthHandlers')) === null || _authConfigValues$get2 === void 0 ? void 0 : _authConfigValues$get2.split(',')) !== null && _authConfigValues$get !== void 0 ? _authConfigValues$get : [];\n}\n\n/**\n * Get the auth plugin component from the plugin map and current configuration\n * Throws if no auth plugin is available\n *\n * @param pluginMap Map of plugins loaded from the server\n * @param authConfigValues Auth config values from the server\n * @param corePlugins Map of core auth plugins to include in the list. They are added after the loaded plugins\n * @returns The auth plugin component to render\n */\nexport function getAuthPluginComponent(pluginMap, authConfigValues) {\n var corePlugins = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Map();\n var authHandlers = getAuthHandlers(authConfigValues);\n // User plugins take priority over core plugins\n var authPlugins = [...pluginMap.entries(), ...corePlugins.entries()].filter(_ref => {\n var [, plugin] = _ref;\n return isAuthPlugin(plugin) || isLegacyAuthPlugin(plugin);\n }).map(_ref2 => {\n var [name, plugin] = _ref2;\n if (isLegacyAuthPlugin(plugin)) {\n return {\n type: PluginType.AUTH_PLUGIN,\n name,\n component: plugin.AuthPlugin.Component,\n isAvailable: plugin.AuthPlugin.isAvailable\n };\n }\n return plugin;\n });\n\n // Filter the available auth plugins\n var availableAuthPlugins = authPlugins.filter(_ref3 => {\n var {\n isAvailable\n } = _ref3;\n return isAvailable(authHandlers, authConfigValues);\n });\n if (availableAuthPlugins.length === 0) {\n throw new Error(\"No login plugins found, please register a login plugin for auth handlers: \".concat(authHandlers));\n } else if (availableAuthPlugins.length > 1) {\n log.warn('More than one login plugin available, will use the first one: ', availableAuthPlugins.map(_ref4 => {\n var {\n name\n } = _ref4;\n return name;\n }).join(', '));\n }\n var {\n name,\n component\n } = availableAuthPlugins[0];\n log.info('Using LoginPlugin', name);\n return component;\n}\n//# sourceMappingURL=PluginUtils.js.map","import { createRemoteComponent, createRequires } from '@paciolan/remote-component';\nimport { resolve } from \"./remote-component.config.js\";\nvar requires = createRequires(() => resolve);\nexport var RemoteComponent = createRemoteComponent({\n requires\n});\nexport default RemoteComponent;\n//# sourceMappingURL=RemoteComponent.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React, { useEffect, useState } from 'react';\nimport { PluginsContext } from '@deephaven/plugin';\nimport { loadModulePlugins } from \"../plugins/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * PluginsBootstrap component. Handles loading the plugins.\n */\nexport function PluginsBootstrap(_ref) {\n var {\n pluginsUrl,\n getCorePlugins,\n children\n } = _ref;\n var [plugins, setPlugins] = useState(null);\n useEffect(function initPlugins() {\n var isCanceled = false;\n function loadPlugins() {\n return _loadPlugins.apply(this, arguments);\n }\n function _loadPlugins() {\n _loadPlugins = _asyncToGenerator(function* () {\n var _yield$getCorePlugins;\n var corePlugins = (_yield$getCorePlugins = yield getCorePlugins === null || getCorePlugins === void 0 ? void 0 : getCorePlugins()) !== null && _yield$getCorePlugins !== void 0 ? _yield$getCorePlugins : [];\n var pluginModules = yield loadModulePlugins(pluginsUrl);\n if (!isCanceled) {\n var corePluginPairs = corePlugins.map(plugin => [plugin.name, plugin]);\n setPlugins(new Map([...corePluginPairs, ...pluginModules]));\n }\n });\n return _loadPlugins.apply(this, arguments);\n }\n loadPlugins();\n return () => {\n isCanceled = true;\n };\n }, [pluginsUrl, getCorePlugins]);\n return /*#__PURE__*/_jsx(PluginsContext.Provider, {\n value: plugins,\n children: children\n });\n}\nexport default PluginsBootstrap;\n//# sourceMappingURL=PluginsBootstrap.js.map","import { useBroadcastChannel } from '@deephaven/jsapi-components';\nimport { BROADCAST_LOGIN_MESSAGE } from '@deephaven/jsapi-utils';\nimport { makeMessage } from '@deephaven/utils';\nimport { useEffect } from 'react';\n\n/**\n * Component that broadcasts a message when mounted. Should be mounted after the user has logged in.\n */\nexport function LoginNotifier() {\n var channel = useBroadcastChannel();\n useEffect(function notifyLogin() {\n channel.postMessage(makeMessage(BROADCAST_LOGIN_MESSAGE));\n }, [channel]);\n return null;\n}\nexport default LoginNotifier;\n//# sourceMappingURL=LoginNotifier.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { AuthPluginAnonymous, AuthPluginParent, AuthPluginPsk } from '@deephaven/auth-plugins';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { useClient } from '@deephaven/jsapi-bootstrap';\nimport { getErrorMessage } from '@deephaven/utils';\nimport { PluginsContext } from '@deephaven/plugin';\nimport { getAuthPluginComponent } from \"../plugins/index.js\";\nimport LoginNotifier from \"./LoginNotifier.js\";\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\n/** Core auth plugins that are always loaded */\nvar CORE_AUTH_PLUGINS = new Map([['@deephaven/auth-plugins.AuthPluginParent', {\n AuthPlugin: AuthPluginParent\n}], ['@deephaven/auth-plugins.AuthPluginPsk', {\n AuthPlugin: AuthPluginPsk\n}], ['@deephaven/auth-plugins.AuthPluginAnonymous', {\n AuthPlugin: AuthPluginAnonymous\n}]]);\n\n/**\n * AuthBootstrap component. Handles displaying the auth plugin and authenticating.\n */\nexport function AuthBootstrap(_ref) {\n var {\n children\n } = _ref;\n var client = useClient();\n // `useContext` instead of `usePlugins` so that we don't have to wait for the plugins to load\n // We want to load the auth config values in parallel with the plugins\n var plugins = useContext(PluginsContext);\n var [authConfig, setAuthConfig] = useState();\n var [error, setError] = useState();\n useEffect(function initAuthConfigValues() {\n var isCanceled = false;\n function loadAuthConfigValues() {\n return _loadAuthConfigValues.apply(this, arguments);\n }\n function _loadAuthConfigValues() {\n _loadAuthConfigValues = _asyncToGenerator(function* () {\n try {\n var newAuthConfigValues = yield client.getAuthConfigValues();\n if (!isCanceled) {\n setAuthConfig(new Map(newAuthConfigValues));\n }\n } catch (e) {\n if (!isCanceled) {\n setError(e);\n }\n }\n });\n return _loadAuthConfigValues.apply(this, arguments);\n }\n loadAuthConfigValues();\n return () => {\n isCanceled = true;\n };\n }, [client]);\n var AuthComponent = useMemo(() => {\n if (plugins == null || authConfig == null) {\n return undefined;\n }\n try {\n return getAuthPluginComponent(plugins, authConfig, CORE_AUTH_PLUGINS);\n } catch (e) {\n setError(e);\n }\n }, [authConfig, plugins]);\n var isLoading = AuthComponent == null || authConfig == null;\n if (isLoading || error != null) {\n return /*#__PURE__*/_jsx(LoadingOverlay, {\n isLoading: isLoading && error == null,\n errorMessage: getErrorMessage(error),\n \"data-testid\": \"auth-bootstrap-loading-error\"\n });\n }\n return /*#__PURE__*/_jsx(AuthComponent, {\n authConfigValues: authConfig,\n children: /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(LoginNotifier, {}), children]\n })\n });\n}\nexport default AuthBootstrap;\n//# sourceMappingURL=AuthBootstrap.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { BasicModal, DebouncedModal, InfoModal, LoadingOverlay, LoadingSpinner } from '@deephaven/components';\nimport { ObjectFetcherContext, ObjectFetchManagerContext, sanitizeVariableDescriptor, useApi, useClient } from '@deephaven/jsapi-bootstrap';\nimport Log from '@deephaven/log';\nimport { assertNotNull } from '@deephaven/utils';\nimport { vsDebugDisconnect } from '@deephaven/icons';\nimport ConnectionContext from \"./ConnectionContext.js\";\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nvar log = Log.module('@deephaven/app-utils.ConnectionBootstrap');\n/**\n * ConnectionBootstrap component. Handles initializing the connection.\n */\nexport function ConnectionBootstrap(_ref) {\n var {\n children\n } = _ref;\n var api = useApi();\n var client = useClient();\n var [error, setError] = useState();\n var [connection, setConnection] = useState();\n var [connectionState, setConnectionState] = useState('connecting');\n var isAuthFailed = connectionState === 'failed';\n var isShutdown = connectionState === 'shutdown';\n var isReconnecting = connectionState === 'reconnecting';\n var isNotConnecting = connectionState === 'not_connecting';\n useEffect(function initConnection() {\n var isCanceled = false;\n function loadConnection() {\n return _loadConnection.apply(this, arguments);\n }\n function _loadConnection() {\n _loadConnection = _asyncToGenerator(function* () {\n try {\n var newConnection = yield client.getAsIdeConnection();\n if (isCanceled) {\n return;\n }\n setConnection(newConnection);\n setConnectionState('connected');\n } catch (e) {\n if (isCanceled) {\n return;\n }\n setError(e);\n setConnectionState('not_connecting');\n }\n });\n return _loadConnection.apply(this, arguments);\n }\n loadConnection();\n return () => {\n isCanceled = true;\n };\n }, [api, client]);\n useEffect(function listenForDisconnect() {\n if (connection == null || isShutdown) return;\n\n // handles the disconnect event\n function handleDisconnect(event) {\n var {\n detail\n } = event;\n log.info('Disconnect', \"\".concat(JSON.stringify(detail)));\n setConnectionState('reconnecting');\n }\n var removerFn = connection.addEventListener(api.IdeConnection.EVENT_DISCONNECT, handleDisconnect);\n return removerFn;\n }, [api, connection, isShutdown]);\n useEffect(function listenForReconnect() {\n if (connection == null || isShutdown) return;\n\n // handles the reconnect event\n function handleReconnect(event) {\n var {\n detail\n } = event;\n log.info('Reconnect', \"\".concat(JSON.stringify(detail)));\n setConnectionState('connected');\n }\n var removerFn = connection.addEventListener(api.CoreClient.EVENT_RECONNECT, handleReconnect);\n return removerFn;\n }, [api, connection, isShutdown]);\n useEffect(function listenForShutdown() {\n if (connection == null) return;\n\n // handles the shutdown event\n function handleShutdown(event) {\n var {\n detail\n } = event;\n log.info('Shutdown', \"\".concat(JSON.stringify(detail)));\n setError(\"Server shutdown: \".concat(detail !== null && detail !== void 0 ? detail : 'Unknown reason'));\n setConnectionState('shutdown');\n }\n var removerFn = connection.addEventListener(api.IdeConnection.EVENT_SHUTDOWN, handleShutdown);\n return removerFn;\n }, [api, connection]);\n useEffect(function listenForAuthFailed() {\n if (connection == null || isShutdown) return;\n\n // handles the auth failed event\n function handleAuthFailed(event) {\n var {\n detail\n } = event;\n log.warn('Reconnect authentication failed', \"\".concat(JSON.stringify(detail)));\n setError(\"Reconnect authentication failed: \".concat(detail !== null && detail !== void 0 ? detail : 'Unknown reason'));\n setConnectionState('failed');\n }\n var removerFn = connection.addEventListener(api.CoreClient.EVENT_RECONNECT_AUTH_FAILED, handleAuthFailed);\n return removerFn;\n }, [api, connection, isShutdown]);\n var objectFetcher = useCallback(/*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(function* (descriptor) {\n assertNotNull(connection, 'No connection available to fetch object with');\n if (typeof descriptor === 'string') {\n throw new Error('No URI resolvers available in Core');\n }\n return connection.getObject(sanitizeVariableDescriptor(descriptor));\n });\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }(), [connection]);\n\n /** We don't really need to do anything fancy in Core to manage an object, just fetch it */\n var objectManager = useMemo(() => ({\n subscribe: (descriptor, onUpdate) => {\n // We send an update with the fetch right away\n onUpdate({\n fetch: () => objectFetcher(descriptor),\n status: 'ready'\n });\n return () => {\n // no-op\n // For Core, if the server dies then we can't reconnect anyway, so no need to bother listening for subscription or cleaning up\n };\n }\n }), [objectFetcher]);\n function handleRefresh() {\n log.info('Refreshing application');\n window.location.reload();\n }\n if (isShutdown || connectionState === 'connecting' || isNotConnecting) {\n return /*#__PURE__*/_jsx(LoadingOverlay, {\n \"data-testid\": \"connection-bootstrap-loading\",\n isLoading: error == null,\n errorMessage: error != null ? \"\".concat(error) : undefined\n });\n }\n return /*#__PURE__*/_jsx(ConnectionContext.Provider, {\n value: connection !== null && connection !== void 0 ? connection : null,\n children: /*#__PURE__*/_jsx(ObjectFetcherContext.Provider, {\n value: objectFetcher,\n children: /*#__PURE__*/_jsxs(ObjectFetchManagerContext.Provider, {\n value: objectManager,\n children: [children, /*#__PURE__*/_jsx(DebouncedModal, {\n isOpen: isReconnecting,\n debounceMs: 1000,\n children: /*#__PURE__*/_jsx(InfoModal, {\n icon: vsDebugDisconnect,\n title: /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(LoadingSpinner, {}), \" Attempting to reconnect...\"]\n }),\n subtitle: \"Please check your network connection.\"\n })\n }), /*#__PURE__*/_jsx(BasicModal, {\n confirmButtonText: \"Refresh\",\n onConfirm: handleRefresh,\n isOpen: isAuthFailed,\n headerText: \"Authentication failed\",\n bodyText: \"Credentials are invalid. Please refresh your browser to try and reconnect.\"\n })]\n })\n })\n });\n}\nexport default ConnectionBootstrap;\n//# sourceMappingURL=ConnectionBootstrap.js.map","/**\n * Get the base URL of the API\n * @param apiUrl API URL\n * @returns URL for the base of the API\n */\nexport function getBaseUrl(apiUrl) {\n return new URL(apiUrl, \"\".concat(window.location));\n}\n\n/**\n * Get the Envoy prefix header value\n * @returns Envoy prefix header value\n */\nexport function getEnvoyPrefix() {\n var searchParams = new URLSearchParams(window.location.search);\n return searchParams.get('envoyPrefix');\n}\nexport function getConnectOptions() {\n var envoyPrefix = getEnvoyPrefix();\n return envoyPrefix != null ? {\n headers: {\n 'envoy-prefix': envoyPrefix\n }\n } : {\n headers: {}\n };\n}\n//# sourceMappingURL=ConnectUtils.js.map","import React, { useContext } from 'react';\nimport { UserContext, UserOverrideContext, UserPermissionsOverrideContext, getUserFromConfig } from '@deephaven/auth-plugins';\nimport useServerConfig from \"./useServerConfig.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * UserBootstrap component. Derives the UserContext from the ServerConfigContext, UserOverrideContext, and UserPermissionsOverrideContext.\n */\nexport function UserBootstrap(_ref) {\n var {\n children\n } = _ref;\n var serverConfig = useServerConfig();\n var overrides = useContext(UserOverrideContext);\n var permissionsOverrides = useContext(UserPermissionsOverrideContext);\n var user = getUserFromConfig(serverConfig, overrides, permissionsOverrides);\n return /*#__PURE__*/_jsx(UserContext.Provider, {\n value: user,\n children: children\n });\n}\nexport default UserBootstrap;\n//# sourceMappingURL=UserBootstrap.js.map","import { useContext } from 'react';\nimport { ChartThemeProvider } from '@deephaven/chart';\nimport { MonacoThemeProvider } from '@deephaven/console';\nimport { isExternalThemeEnabled, ThemeProvider } from '@deephaven/components';\nimport { useAppSelector } from '@deephaven/dashboard';\nimport { IrisGridThemeProvider } from '@deephaven/iris-grid';\nimport { PluginsContext, useCustomThemes } from '@deephaven/plugin';\nimport { getSettings } from '@deephaven/redux';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ThemeBootstrap(_ref) {\n var {\n children\n } = _ref;\n var settings = useAppSelector(getSettings);\n\n // The `usePlugins` hook throws if the context value is null. Since this is\n // the state while plugins load asynchronously, we are using `useContext`\n // directly to avoid the exception.\n var pluginModules = useContext(PluginsContext);\n var themes = useCustomThemes(pluginModules);\n var waitForActivation = isExternalThemeEnabled();\n return /*#__PURE__*/_jsx(ThemeProvider, {\n themes: themes,\n waitForActivation: waitForActivation,\n children: /*#__PURE__*/_jsx(ChartThemeProvider, {\n children: /*#__PURE__*/_jsx(MonacoThemeProvider, {\n children: /*#__PURE__*/_jsx(IrisGridThemeProvider, {\n density: settings.gridDensity,\n children: children\n })\n })\n })\n });\n}\nexport default ThemeBootstrap;\n//# sourceMappingURL=ThemeBootstrap.js.map","import React, { useCallback, useMemo, useState } from 'react';\nimport { Provider } from 'react-redux';\nimport { store } from '@deephaven/redux';\nimport '@deephaven/components/scss/BaseStyleSheet.scss';\nimport { ClientBootstrap } from '@deephaven/jsapi-bootstrap';\nimport { useBroadcastLoginListener } from '@deephaven/jsapi-components';\nimport { ContextActions, ContextMenuRoot, FontBootstrap, FontsLoaded } from '@deephaven/components';\nimport PluginsBootstrap from \"./PluginsBootstrap.js\";\nimport AuthBootstrap from \"./AuthBootstrap.js\";\nimport ConnectionBootstrap from \"./ConnectionBootstrap.js\";\nimport { getConnectOptions, createExportLogsContextAction } from \"../utils/index.js\";\nimport UserBootstrap from \"./UserBootstrap.js\";\nimport ServerConfigBootstrap from \"./ServerConfigBootstrap.js\";\nimport ThemeBootstrap from \"./ThemeBootstrap.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * AppBootstrap component. Handles loading the fonts, client, and authentication.\n * Will display the children when everything is loaded and authenticated.\n */\nexport function AppBootstrap(_ref) {\n var {\n fontClassNames,\n pluginsUrl,\n getCorePlugins,\n serverUrl,\n logMetadata,\n children\n } = _ref;\n var clientOptions = useMemo(() => getConnectOptions(), []);\n\n // On logout, we reset the client and have user login again\n var [logoutCount, setLogoutCount] = useState(0);\n var onLogin = useCallback(() => undefined, []);\n var onLogout = useCallback(() => {\n requestAnimationFrame(() => {\n setLogoutCount(value => value + 1);\n });\n }, []);\n useBroadcastLoginListener(onLogin, onLogout);\n var contextActions = useMemo(() => [createExportLogsContextAction(logMetadata, true)], [logMetadata]);\n return /*#__PURE__*/_jsxs(Provider, {\n store: store,\n children: [/*#__PURE__*/_jsx(FontBootstrap, {\n fontClassNames: fontClassNames,\n children: /*#__PURE__*/_jsx(PluginsBootstrap, {\n getCorePlugins: getCorePlugins,\n pluginsUrl: pluginsUrl,\n children: /*#__PURE__*/_jsx(ThemeBootstrap, {\n children: /*#__PURE__*/_jsxs(ClientBootstrap, {\n serverUrl: serverUrl,\n options: clientOptions,\n children: [/*#__PURE__*/_jsx(AuthBootstrap, {\n children: /*#__PURE__*/_jsx(ServerConfigBootstrap, {\n children: /*#__PURE__*/_jsx(UserBootstrap, {\n children: /*#__PURE__*/_jsx(ConnectionBootstrap, {\n children: /*#__PURE__*/_jsx(FontsLoaded, {\n children: children\n })\n })\n })\n })\n }), /*#__PURE__*/_jsx(ContextActions, {\n actions: contextActions\n })]\n }, logoutCount)\n })\n })\n }), /*#__PURE__*/_jsx(ContextMenuRoot, {})]\n });\n}\nexport default AppBootstrap;\n//# sourceMappingURL=AppBootstrap.js.map"],"names":["_excluded","ownKeys","r","t","o","_objectSpread","_defineProperty","_toPropertyKey","i","_toPrimitive","e","_objectWithoutProperties","_objectWithoutPropertiesLoose","n","DHCTabPanels","props","children","keepMountedProp","rest","keepMounted","portalNodeMap","useRef","portalNodes","useMemo","nodes","nextNodeMap","React","child","portal","createHtmlPortalNode","_jsx","InPortal","mappedChildren","newChildren","Item","OutPortal","_jsxs","_Fragment","TabPanels","getSelectedItemCountOrAll","size","selection","isSelectionEqual","selectionA","selectionB","key","isSelectionMaybeInvertedEqual","mapSelection","selectedItemKeys","getItem","mapItem","keys","item","optimizeSelection","totalRecords","getKey","isInverted","optimizedSelection","generateRange","useCallbackWithAction","callback","action","useCallback","result","useChangeEventValueCallback","event","useDelay","delayMs","isDelayed","setIsDelayed","useState","useEffect","timeout","useDependentState","inputValue","state","setState","useEffectNTimesWhen","effectCallback","effectCallbackDependencies","condition","countRef","useIsEqualMemo","value","isEqual","previousValueRef","currentValue","preventDefault","useFormWithDetachedSubmitButton","enableDefaultFormSubmitBehavior","formId","nanoid","submitButtonRef","buttonEl","_buttonEl$UNSAFE_getD","formProps","submitButtonProps","useMappedSelection","viewportData","selectedKeys","items","usePropChangeCallback","propName","onChange","defaultValue","hasDefault","propValue","newValue","useDebouncedValue","debounceMs","isDebouncing","setIsDebouncing","debouncedValue","setDebouncedValue","previousValue","setPreviousValue","previousDebounceMs","setPreviousDebounceMs","isCancelled","timeoutId","useSetAttributesCallback","attributes","selectors","rootEl","targets","target","_ref","prop","SPELLCHECK_FALSE_ATTRIBUTE","useSpectrumDisableSpellcheckRef","disableSpellcheck","useMappedRef","extractSpectrumHTMLElement","logger","Log","useExternalTheme","setResult","isEnabled","isExternalThemeEnabled","handleExternalThemeData","externalThemeData","themeData","parseExternalThemeData","onMessage","parent","getWindowParent","MSG_REQUEST_SET_THEME","isExternalThemeData","requestExternalThemeData","err","FontsLoaded","isFontsLoaded","useContext","FontsLoadedContext","LoadingOverlay","ActionButtonDialogTrigger","ariaLabel","icon","isQuiet","labelText","onOpenChange","tooltip","styleProps","iconClassName","DialogTrigger","ActionButton","Icon","FontAwesomeIcon","Text","Tooltip","ConfirmationDialog","heading","confirmationButtonLabel","onCancel","onConfirm","Dialog","Heading","styles","Divider","Content","Form","ButtonGroup","SpectrumButton","ConfirmActionButton","isHidden","_onConfirm","renderDialog","close","vsTrash","ACTION_ICON_HEIGHT","IconActionButton","label","DebouncedModal","blockInteraction","isOpen","debouncedIsOpen","InfoModal","className","subtitle","title","Modal","ModalBody","noActions","BulkActionBar","selectedItemCount","onClearSelection","ActionBar","commonStyles","EditableItemList","isInvalid","onAdd","onDelete","validate","inputError","setInputError","selectedRanges","setSelectedRanges","setValue","handleSelectionChange","ranges","handleDelete","RangeUtils","handleAdd","validationError","handleInputChange","handleInputFocus","handleInputKeyDown","containerHeight","clamp","ItemList","classNames","index","Button","vsAdd","TextWithTooltip","text","placement","options","stylesCommon","SearchableCombobox","scrollRef","getItemDisplayText","renderItem","displayText","SpectrumComboBox","DEFAULT_DELAY_MS","TableViewEmptyState","content","show","setShow","IllustratedMessage","vsEmptyWindow","ToastNotification","buttons","isShown","classNamesProp","message","type","onClick","onDismiss","dataTestId","nodeRef","hasButtons","CSSTransition","ThemeExport","FadeTransition","vsClose","DeferredApiBootstrap","onError","widget","api","apiError","useDeferredApi","ApiContext","ObjectFetchManagerContext","createContext","useObjectFetch","descriptor","currentUpdate","setCurrentUpdate","objectFetchManager","oldUpdate","asyncGeneratorStep","a","c","u","_asyncToGenerator","_next","_throw","log","useWidget","wrapper","setWrapper","objectFetch","descriptorApi","descriptorApiError","defaultApi","useApi","status","fetch","loadWidgetInternal","_loadWidgetInternal","assertNotNull","newWidget","exportedObject","wrapperWithApi","_wrapper$error","MonacoThemeProvider","activeThemes","useTheme","MonacoUtils","FETCH_TIMEOUT","fetchVariableDefinition","connection","name","resolve","reject","removeListener","_removeListener","TimeoutError","handleFieldUpdates","changes","_removeListener2","definition","def","makeApiContextWrapper","dh","ColumnNameError","TableDisconnectError","useTable","table","firstRow","lastRow","columnNames","columns","setColumns","data","setData","columnError","setColumnError","tableError","setTableError","handleUpdate","detail","column","handleDisconnect","handleReconnect","useTableListener","useTableColumn","columnName","error","SIZE_LIMIT","TableInput","_table$size","_error$message","settings","EMPTY_FUNCTION","onBlur","tablePromise","parentRef","formatter","columnFormats","FormatterUtils","dateTimeFormatterOptions","defaultDecimalFormatOptions","defaultIntegerFormatOptions","Formatter","searchValue","setSearchValue","setSelection","setTable","listRef","itemCount","formatValue","updatedSelection","removedItems","v","isSelected","newSelection","initTable","promise","resolved","PromiseUtils","_x","cancelablePromise","handleSearchChange","_listRef$current","handleSelect","selectedValue","handleSelectAll","values","handleClearSelection","handleViewportChange","handleChildBlur","_parentRef$current","relatedTarget","isEmpty","SearchInput","SelectValueList","ComboBox","_usePickerProps","usePickerProps","onInputChangeInternal","onSearchTextChange","pickerProps","isOpenRef","inputValueRef","onInputChange","menuTrigger","_pickerProps$onOpenCh","ComboBoxNormalized","ListView","_props$density","keyColumnName","labelColumnName","iconColumnName","scale","useSpectrumThemeProvider","itemHeight","LIST_VIEW_ROW_HEIGHTS","useFormatter","deserializeRow","useItemRowDeserializer","onScroll","useViewportData","ListViewNormalized","isJavaObject","defaultFormatValue","TableDropdown","filter","EMPTY_ARRAY","disabled","maxSize","setValues","tableColumn","subscription","newValues","row","_row$get","allValues","selectedIndex","handleChange","newSelectedValue","newSelectedIndex","Select","Option","useBroadcastChannel","onEvent","BROADCAST_CHANNEL_NAME","channel","handleEvent","isMessage","useBroadcastLoginListener","onLogin","onLogout","isBroadcastLoginMessage","isBroadcastLogoutMessage","useCheckIfExistsValue","isCaseSensitive","tableUtils","useTableUtils","valueTrimmed","setValueTrimmed","valueTrimmedDebounced","trimAndUpdateValue","valueExistsData","valueExistsIsLoading","usePromiseFactory","valueExists","DEBOUNCE_VIEWPORT_SEARCH_MS","useDebouncedViewportSearch","applyFiltersAndRefresh","debouncedSearch","debounce","searchText","searchTextTrimmed","DEBOUNCE_MS","useDebouncedViewportSelectionFilter","shouldSelectAllOnNoSelection","mapItemToValue","valuesSelection","createKeyedItemKey","debouncedValuesSelection","memoValuesSelection","createSelectedValuesFilter","useFilteredItemsWithDefaultValue","displayProp","defaultDisplayValue","searchTextRef","isLoading","useGetItemPosition","topOffset","rowIndex","defaultItemOffset","useNotNullOrEmptyFilter","conditionOperator","notNullOrEmptyFilterCondition","createNotNullOrEmptyFilterCondition","createFilterConditionFactory","usePickerWithSelectedValues","maybeTable","filterConditionFactories","trimSearchText","timeZone","usePickerItemScale","setSearchText","appliedSearchText","setAppliedSearchText","applySearchText","searchTextMaybeTrimmed","selectedKey","setSelectedKey","selectedValueMap","setSelectedValueMap","isApplyingFilter","SEARCH_DEBOUNCE_MS","searchTextExists","searchTextFilter","createSearchTextFilter","excludeSelectedValuesFilter","listTable","useWidgetClose","list","VIEWPORT_SIZE","VIEWPORT_PADDING","hasSearchTextWithZeroResults","searchTextIsInSelectedValues","onDebouncedSearchTextChange","useDebouncedCallback","setSelectedKeyOnNextFrame","onSelectKey","prev","next","onAddValues","onRemoveValues","useFilterConditionFactories","useViewportFilter","useSelectDistinctTable","_len","_key","selectDistinct","_table$selectDistinct","distinctTable","isError","useShowOnlyEmptyFilter","isOn","createColumnCondition","createShowOnlyEmptyFilterCondition","useValueFilter","operator","createValueFilter","IrisGridTestUtils","columnIndex","IrisGridUtils","count","prefix","userColumnWidths","sortDescriptor","sort","layoutHints","aggregatedColumns","groupedColumns","keyColumns","valueColumns","acc","col","inputTable","IrisGridProxyModel","useDashboardPanel","dashboardProps","componentName","component","supportedTypes","hydrate","dehydrate","id","layout","registerComponent","handlePanelOpen","_ref2","dragEvent","panelId","isSupportedType","config","root","LayoutUtils","usePanelRegistration","usePanelOpenListener","useDashboardPluginData","dashboardId","pluginId","dispatch","useDispatch","useSelector","store","getPluginDataForDashboard","newData","setDashboardPluginData","useCustomThemes","pluginModules","isExternalThemePending","getThemeDataFromPlugins","WidgetView","plugins","usePlugins","plugin","isWidgetPlugin","p","Component","usePluginsElementMap","elementPlugins","getPluginsElementMap","isAuthPlugin","authPlugin","AUTH_HANDLER_TYPE_ANONYMOUS","AUTH_HANDLER_TYPE_PSK","AuthenticationError","AuthPluginBase","getLoginOptions","client","useClient","setError","isLoggedIn","setIsLoggedIn","isCanceled","verifyNotCanceled","CanceledPromiseError","login","_login","loginOptions","_getErrorMessage","getErrorMessage","permissionsOverrides","UserPermissionsOverrideContext","AuthPluginAnonymous","authHandlers","isLoginOptions","_getLoginOptions","response","requestParentResponse","LOGIN_OPTIONS_REQUEST","getWindowAuthProvider","_URLSearchParams$get","AuthPluginParent","LoginForm","errorMessage","isLoggingIn","_onSubmit","LoadingSpinner","Login","logoPath","RandomAreaPlotAnimation","AUTH_TYPE","PSK_QUERY_PARAM_KEY","PSK_TOKEN_KEY","getWindowToken","clearWindowToken","url","readCookieToken","_Cookies$get","Cookies","storeCookieToken","token","inputField","loginPromise","isInputRequired","setIsInputRequired","setIsLoggingIn","setToken","loginToken","showError","newLoginPromise","cancelLogin","newToken","initialLogin","_initialLogin","_getWindowToken","initialToken","handleSubmit","_inputField$current","AuthPluginPsk","getAppInitValue","serverConfig","getUserFromConfig","_getValue","_getValue2","_getValue$split","_getValue3","overrides","getValue","getBooleanValue","operateAs","groups","canCopy","canDownloadCsv","canUsePanels","canLogout","react","ReactDOM","redux","reactRedux","AdobeReactSpectrum","DeephavenAuthPlugins","DeephavenChart","DeephavenComponents","DeephavenConsole","DeephavenDashboard","DeephavenDashboardCorePlugins","DeephavenIcons","DeephavenIrisGrid","DeephavenJsapiBootstrap","DeephavenJsapiComponents","DeephavenJsapiUtils","DeephavenLog","DeephavenPlugin","DeephavenReactHooks","requires","createRequires","loadRemoteModule","createLoadRemoteModule","loadModulePlugin","_loadModulePlugin","pluginUrl","myModule","loadJson","_x2","_loadJson","jsonUrl","res","hasDefaultExport","getPluginModuleValue","isPlugin","isLegacyPlugin","loadModulePlugins","_x3","_loadModulePlugins","modulePluginsUrl","manifest","pluginPromises","main","pluginMainUrl","pluginMap","_i","module","_name","version","moduleValue","getAuthHandlers","authConfigValues","_authConfigValues$get","_authConfigValues$get2","getAuthPluginComponent","corePlugins","authPlugins","isLegacyAuthPlugin","PluginType","availableAuthPlugins","_ref3","isAvailable","_ref4","RemoteComponent","createRemoteComponent","PluginsBootstrap","pluginsUrl","getCorePlugins","setPlugins","loadPlugins","_loadPlugins","_yield$getCorePlugins","corePluginPairs","PluginsContext","LoginNotifier","makeMessage","BROADCAST_LOGIN_MESSAGE","CORE_AUTH_PLUGINS","AuthBootstrap","authConfig","setAuthConfig","loadAuthConfigValues","_loadAuthConfigValues","newAuthConfigValues","AuthComponent","ConnectionBootstrap","setConnection","connectionState","setConnectionState","isAuthFailed","isShutdown","isReconnecting","isNotConnecting","loadConnection","_loadConnection","newConnection","removerFn","handleShutdown","handleAuthFailed","objectFetcher","sanitizeVariableDescriptor","objectManager","onUpdate","handleRefresh","ConnectionContext","ObjectFetcherContext","vsDebugDisconnect","BasicModal","getBaseUrl","apiUrl","getEnvoyPrefix","searchParams","getConnectOptions","envoyPrefix","UserBootstrap","useServerConfig","UserOverrideContext","user","UserContext","ThemeBootstrap","useAppSelector","getSettings","themes","waitForActivation","ThemeProvider","ChartThemeProvider","IrisGridThemeProvider","AppBootstrap","fontClassNames","serverUrl","logMetadata","clientOptions","logoutCount","setLogoutCount","contextActions","createExportLogsContextAction","Provider","FontBootstrap","ClientBootstrap","ServerConfigBootstrap","ContextActions","ContextMenuRoot"],"mappings":"8vLAAA,IAAIA,GAAY,CAAC,WAAY,aAAa,EAC1C,SAASC,GAAQ,EAAGC,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAGF,IAAME,EAAIA,EAAE,OAAO,SAAUF,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAY,CAAC,GAAIC,EAAE,KAAK,MAAMA,EAAGC,CAAC,CAAG,CAAE,OAAOD,CAAG,CAC9P,SAASE,GAAc,EAAG,CAAE,QAASH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAID,GAAQ,OAAOE,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAEI,GAAgB,EAAGJ,EAAGC,EAAED,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIF,GAAQ,OAAOE,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAO,CAAG,CACtb,SAASI,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CACvT,SAASQ,GAAyB,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIP,EAAGF,EAAGM,EAAII,GAA8B,EAAG,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAG,IAAKX,EAAI,EAAGA,EAAIW,EAAE,OAAQX,IAAKE,EAAIS,EAAEX,CAAC,EAAU,EAAE,QAAQE,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAK,EAAGA,CAAC,IAAMI,EAAEJ,CAAC,EAAI,EAAEA,CAAC,EAAI,CAAE,OAAOI,CAAG,CACrU,SAASI,GAA8BV,EAAGQ,EAAG,CAAE,GAAYR,GAAR,KAAW,MAAO,GAAI,IAAIC,EAAI,CAAA,EAAI,QAAS,KAAKD,EAAG,GAAI,CAAA,EAAG,eAAe,KAAKA,EAAG,CAAC,EAAG,CAAE,GAAWQ,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAUP,EAAE,CAAC,EAAID,EAAE,CAAC,CAAG,CAAE,OAAOC,CAAG,CAU/L,SAASW,GAAaC,EAAO,CAClC,GAAI,CACA,SAAAC,EACA,YAAaC,EAAkB,EACrC,EAAQF,EACJG,EAAOP,GAAyBI,EAAOf,EAAS,EAC9CmB,EAAcF,GAAmB,OAAOD,GAAa,WACrDI,EAAgBC,EAAAA,OAAO,IAAI,GAAK,EAChCC,EAAcC,EAAAA,QAAQ,IAAM,CAC9B,IAAIC,EAAQ,CAAA,EACRC,EAAc,IAAI,IACtB,OAAKN,GAILO,EAAM,SAAS,QAAQV,EAAUW,GAAS,CAExC,GAAI,EAAAA,GAAS,MAAQA,EAAM,KAAO,MAKlC,IAAI,OAAOA,EAAM,MAAM,UAAa,WAClC,MAAM,IAAI,MAAM,mFAAmF,EAErG,IAAIC,EAASR,EAAc,QAAQ,IAAIO,EAAM,GAAG,EAC5CC,GAAU,OACZA,EAASC,GAAqB,CAC5B,WAAY,CAEV,MAAO,mBACnB,CACA,CAAS,GAEHJ,EAAY,IAAIE,EAAM,IAAKC,CAAM,EACjCJ,EAAM,KAAkBM,EAAAA,IAAKC,GAAU,CACrC,KAAMH,EACN,SAAUD,EAAM,MAAM,QAC9B,EAASA,EAAM,GAAG,CAAC,EACf,CAAC,EACDP,EAAc,QAAUK,EACjBD,IA7BLJ,EAAc,QAAUK,EACjBD,EA6BX,EAAG,CAACR,EAAUG,CAAW,CAAC,EACtBa,EAAiBT,EAAAA,QAAQ,IAAM,CACjC,IAAIU,EAAc,CAAA,EAClB,OAAKd,GAILO,EAAM,SAAS,QAAQV,EAAUW,GAAS,CACxC,GAAIA,GAAS,MAAQA,EAAM,KAAO,KAAM,CACtCM,EAAY,KAAKN,CAAK,EACtB,MACF,CACA,IAAIC,EAASR,EAAc,QAAQ,IAAIO,EAAM,GAAG,EAChD,GAAIC,GAAU,KAAM,CAClBK,EAAY,KAAKN,CAAK,EACtB,MACF,CACAM,EAAY,KAAkBH,EAAAA,IAAKI,GAAM,CACvC,SAAuBJ,EAAAA,IAAKK,GAAW,CACrC,KAAMP,CAChB,CAAS,CACT,EAASD,EAAM,GAAG,CAAC,CACf,CAAC,EACMM,CACT,EAAG,CAACjB,EAAUG,CAAW,CAAC,EAC1B,OAAoBiB,EAAAA,KAAMC,EAAAA,SAAW,CACnC,SAAU,CAAClB,GAAeG,EAA0BQ,MAAKQ,GAEvDjC,GAAcA,GAAc,CAAA,EAAIa,CAAI,EAAG,CAAA,EAAI,CAC3C,SAAUC,EAAca,EAAiBhB,CAC/C,CAAK,CAAC,CAAC,CACP,CAAG,CACH,CCpFO,SAASuB,GAA0BC,EAAMC,EAAW,CACzD,OAAID,IAAS,EACJ,EAELC,IAAc,OAASD,IAASC,EAAU,KACrC,MAEFA,EAAU,IACnB,CAOO,SAASC,GAAiBC,EAAYC,EAAY,CACvD,OAAID,IAAeC,EACV,GAELD,IAAe,OAASC,IAAe,OAGvCD,EAAW,OAASC,EAAW,KAC1B,GAEF,CAAC,GAAGD,EAAW,MAAM,EAAE,MAAME,GAAOD,EAAW,IAAIC,CAAG,CAAC,CAChE,CAOO,SAASC,GAA8BH,EAAYC,EAAY,CACpE,OAAOD,EAAW,aAAeC,EAAW,YAAcF,GAAiBC,EAAW,UAAWC,EAAW,SAAS,CACvH,CAQO,SAASG,GAAaC,EAAkBC,EAASC,EAAS,CAC/D,GAAIF,IAAqB,MACvB,MAAO,MAET,IAAIG,EAAO,CAAC,GAAGH,EAAiB,KAAI,CAAE,EACtC,OAAO,IAAI,IAAIG,EAAK,IAAIN,GAAO,CAC7B,IAAIO,EAAOH,EAAQJ,CAAG,EACtB,GAAIO,IAAS,OACX,MAAM,IAAI,MAAM,gCAAgC,OAAOP,CAAG,CAAC,EAE7D,OAAOK,EAAQE,CAAI,CACrB,CAAC,CAAC,CACJ,CAYO,SAASC,GAAkBZ,EAAWa,EAAcC,EAAQ,CACjE,IAAIC,EAAaf,IAAc,OAASA,EAAU,KAAOa,EAAe,EACpEG,EAAqBhB,EACzB,OAAIe,IACFC,EAAqBhB,IAAc,MAAQ,IAAI,IAAQ,IAAI,IAE3D,CAAC,GAAGiB,GAAc,EAAGJ,EAAe,CAAC,CAAC,EAAE,IAAIC,CAAM,EAAE,OAAOV,GAAO,CAACJ,EAAU,IAAII,CAAG,CAAC,CAAC,GAEjF,CACL,UAAWY,EACX,WAAAD,CACJ,CACA,CC5EO,SAASG,GAAsBC,EAAUC,EAAQ,CACtD,OAAOC,EAAAA,YAAY,UAAY,CAC7B,IAAIC,EAASH,EAAS,GAAG,SAAS,EAClC,OAAAC,EAAM,EACCE,CACT,EAAG,CAACF,EAAQD,CAAQ,CAAC,CACvB,CCJO,SAASI,GAA4BJ,EAAU,CACpD,OAAOE,EAAAA,YAAYG,GAAS,CAC1BL,EAASK,EAAM,OAAO,KAAK,CAC7B,EAAG,CAACL,CAAQ,CAAC,CACf,CCTO,SAASM,GAASC,EAAS,CAChC,GAAI,CAACC,EAAWC,CAAY,EAAIC,EAAAA,SAAS,EAAI,EAC7CC,OAAAA,EAAAA,UAAU,IAAM,CACd,IAAIC,EAAU,WAAW,IAAM,CAC7BH,EAAa,EAAK,CACpB,EAAGF,CAAO,EACV,MAAO,IAAM,CACX,aAAaK,CAAO,CACtB,CACF,EAAG,CAACL,CAAO,CAAC,EACLC,CACT,CCVO,SAASK,GAAkBC,EAAY,CAC5C,GAAI,CAACC,EAAOC,CAAQ,EAAIN,EAAAA,SAASI,CAAU,EAC3CH,OAAAA,EAAAA,UAAU,IAAM,CACdK,EAASF,CAAU,CACrB,EAAG,CAACA,CAAU,CAAC,EACR,CAACC,EAAOC,CAAQ,CACzB,CCCO,SAASC,GAAoBC,EAAgBC,EAA4BlE,EAAGmE,EAAW,CAC5F,IAAIC,EAAW5D,EAAAA,OAAO,CAAC,EACvBkD,EAAAA,UAAU,IAAM,CACVU,EAAS,SAAWpE,GAGpBmE,IACFC,EAAS,SAAW,EACpBH,EAAc,EAUlB,EAAG,CAACjE,EAAGmE,EAAW,GAAGD,CAA0B,CAAC,CAClD,CC3BO,SAASG,GAAeC,EAAOC,EAAS,CAC7C,IAAIC,EAAmBhE,EAAAA,OAAO8D,CAAK,EAC/BG,EAAeF,EAAQC,EAAiB,QAASF,CAAK,EAAIE,EAAiB,QAAUF,EACzF,OAAAE,EAAiB,QAAUC,EACpBA,CACT,CCVA,SAASC,GAAetB,EAAO,CAC7BA,EAAM,eAAc,CACtB,CAiBe,SAASuB,IAAkC,CACxD,IAAIC,EAAkC,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACtGC,EAASnE,EAAAA,QAAQ,IAAM,sBAAsB,OAAOoE,GAAM,CAAE,EAAG,EAAE,EACjEC,EAAkB9B,EAAAA,YAAY+B,GAAY,CAC5C,IAAIC,EACJD,GAAa,OAAgCC,EAAwBD,EAAS,kBAAiB,KAAQ,MAAQC,IAA0B,QAAUA,EAAsB,aAAa,OAAQJ,CAAM,CACtM,EAAG,CAACA,CAAM,CAAC,EACPK,EAAYxE,EAAAA,QAAQ,KAAO,CAC7B,GAAImE,EACJ,SAAUD,EAAkC,OAAYF,EAC5D,GAAM,CAACG,EAAQD,CAA+B,CAAC,EACzCO,EAAoBzE,EAAAA,QAAQ,KAAO,CACrC,KAAMmE,EACN,IAAKE,CACT,GAAM,CAACF,EAAQE,CAAe,CAAC,EAC7B,MAAO,CACL,UAAAG,EACA,kBAAAC,CACJ,CACA,CC/BO,SAASC,GAAmBC,EAAchD,EAASK,EAAQ,CAChE,GAAI,CACF,QAAAN,EACA,aAAAkD,EACA,MAAAC,CACJ,EAAMF,EACJ,OAAO3E,EAAAA,QAAQ,IAAM,CACnB,GAAI,CACF,UAAAkB,EACA,WAAAe,CACN,EAAQH,GAAkB8C,EAAcC,EAAM,OAAQ7C,CAAM,EACxD,MAAO,CACL,UAAWR,GAAaN,EAAWQ,EAASC,CAAO,EACnD,WAAAM,CACN,CACE,EAAG,CAAC2C,EAAcC,EAAM,OAAQ7C,EAAQN,EAASC,CAAO,CAAC,CAC3D,CCzBA,SAASjD,GAAQ,EAAGC,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAGF,IAAME,EAAIA,EAAE,OAAO,SAAUF,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAY,CAAC,GAAIC,EAAE,KAAK,MAAMA,EAAGC,CAAC,CAAG,CAAE,OAAOD,CAAG,CAC9P,SAASE,GAAc,EAAG,CAAE,QAASH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAID,GAAQ,OAAOE,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAEI,GAAgB,EAAGJ,EAAGC,EAAED,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIF,GAAQ,OAAOE,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAO,CAAG,CACtb,SAASI,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CA8ChT,SAASkG,GAAsBlB,EAAOmB,EAAUC,EAAUC,EAAc,CAC7E,IAAIC,EAAa,UAAU,SAAW,EACtC,OAAO3C,EAAAA,YAAY4C,GAAa,CAC9B,IAAIC,EAAWF,EAAaC,GAAyDF,EAAeE,EACpGH,EAASlG,GAAcA,GAAc,CAAA,EAAI8E,CAAK,EAAG,CAAA,EAAI,CACnD,CAACmB,CAAQ,EAAGK,CAClB,CAAK,CAAC,CACJ,EAAG,CAACJ,EAAUpB,EAAOmB,EAAUG,EAAYD,CAAY,CAAC,CAC1D,CChDO,SAASI,EAAkBzB,EAAO0B,EAAY,CACnD,GAAI,CAACC,EAAcC,CAAe,EAAIzC,EAAAA,SAAS,EAAI,EAC/C,CAAC0C,EAAgBC,CAAiB,EAAI3C,EAAAA,SAASa,CAAK,EAKpD,CAAC+B,EAAeC,CAAgB,EAAI7C,EAAAA,SAASa,CAAK,EAClD,CAACiC,EAAoBC,CAAqB,EAAI/C,EAAAA,SAASuC,CAAU,EACrE,OAAI1B,IAAU+B,GAAiBL,IAAeO,KAC5CL,EAAgB,EAAI,EACpBI,EAAiBhC,CAAK,EACtBkC,EAAsBR,CAAU,GAElCtC,EAAAA,UAAU,IAAM,CACd,IAAI+C,EAAc,GACdC,EAAY,WAAW,IAAM,CAC1BD,IACHP,EAAgB,EAAK,EACrBE,EAAkB9B,CAAK,EAE3B,EAAG0B,CAAU,EACb,MAAO,IAAM,CACXS,EAAc,GACd,aAAaC,CAAS,CACxB,CACF,EAAG,CAACpC,EAAO0B,CAAU,CAAC,EACf,CACL,aAAAC,EACA,MAAOE,CACX,CACA,CCjCO,SAASQ,GAAyBC,EAAYC,EAAW,CAC9D,OAAO5D,EAAAA,YAAY6D,GAAU,CAC3B,GAAIA,GAAU,KAGd,KAAIC,EAAUF,GAAa,KAAO,CAACC,CAAM,EAAIA,EAAO,iBAAiBD,CAAS,EAC9EE,EAAQ,QAAQC,GAAU,CACxB,OAAO,QAAQJ,CAAU,EAAE,QAAQK,GAAQ,CACzC,GAAI,CAACC,EAAM5C,CAAK,EAAI2C,EACpBD,EAAO,aAAaE,EAAM5C,CAAK,CACjC,CAAC,CACH,CAAC,EACH,EAAG,CAACsC,EAAYC,CAAS,CAAC,CAC5B,CClBO,IAAIM,GAA6B,CACtC,WAAY,EACd,EASO,SAASC,GAAgCP,EAAW,CACzD,IAAIQ,EAAoBV,GAAyBQ,GAA4BN,CAAS,EACtF,OAAOS,GAAaD,EAAmBE,EAA0B,CACnE,muCCZA,IAAIC,GAASC,EAAI,OAAO,kBAAkB,EAOnC,SAASC,IAAmB,CACjC,GAAI,CAACxE,EAAQyE,CAAS,EAAIlE,EAAAA,SAAS,IAAM,CACvC,IAAImE,EAAYC,GAAsB,EACtC,MAAO,CACL,UAAAD,EACA,UAAWA,CACjB,CACE,CAAC,EAGGE,EAA0B7E,EAAAA,YAAY8E,GAAqB,CAC7D,IAAIC,EAAYC,GAAuBF,CAAiB,EACxDJ,EAAU,CACR,UAAW,GACX,UAAW,GACX,UAAAK,CACN,CAAK,CACH,EAAG,CAAA,CAAE,EACLtE,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAI,CAACR,EAAO,UACV,OAEFsE,GAAO,MAAM,gCAAgC,EAG7C,SAASU,EAAU9E,EAAO,CACxB,IAAI+E,EAASC,GAAe,EAGxBhF,EAAM,SAAW,QAAUA,EAAM,SAAW+E,GAG5C/E,EAAM,KAAK,UAAYiF,IACrBC,GAAoBlF,EAAM,KAAK,OAAO,GACxC0E,EAAwB1E,EAAM,KAAK,OAAO,CAGhD,CACA,cAAO,iBAAiB,UAAW8E,CAAS,EAG5CK,GAAwB,EAAG,KAAKT,CAAuB,EAAE,MAAMU,GAAO,CACpEhB,GAAO,MAAMgB,CAAG,EAChBb,EAAU,CACR,UAAW,GACX,UAAW,EACnB,CAAO,CACH,CAAC,EACM,IAAM,CACX,OAAO,oBAAoB,UAAWO,CAAS,CACjD,CACF,EAAG,CAACJ,EAAyB5E,EAAO,SAAS,CAAC,EACvCA,CACT,CC7DO,SAASuF,GAAYxB,EAAM,CAChC,GAAI,CACF,SAAA9G,CACJ,EAAM8G,EACAyB,EAAgBC,EAAAA,WAAWC,EAAkB,EACjD,OAAKF,EAOezH,EAAAA,IAAKO,EAAAA,SAAW,CAClC,SAAUrB,CACd,CAAG,EARqBc,EAAAA,IAAK4H,EAAgB,CACvC,cAAe,sBACrB,CAAK,CAOL,CCnBA,IAAI1J,GAAY,CAAC,YAAa,OAAQ,UAAW,YAAa,WAAY,eAAgB,SAAS,EACnG,SAASC,GAAQ,EAAGC,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAGF,IAAME,EAAIA,EAAE,OAAO,SAAUF,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAY,CAAC,GAAIC,EAAE,KAAK,MAAMA,EAAGC,CAAC,CAAG,CAAE,OAAOD,CAAG,CAC9P,SAASE,GAAc,EAAG,CAAE,QAASH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAID,GAAQ,OAAOE,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAEI,GAAgB,EAAGJ,EAAGC,EAAED,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIF,GAAQ,OAAOE,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAO,CAAG,CACtb,SAASI,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CACvT,SAASQ,GAAyB,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIP,EAAGF,EAAGM,EAAII,GAA8B,EAAG,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAG,IAAKX,EAAI,EAAGA,EAAIW,EAAE,OAAQX,IAAKE,EAAIS,EAAEX,CAAC,EAAU,EAAE,QAAQE,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAK,EAAGA,CAAC,IAAMI,EAAEJ,CAAC,EAAI,EAAEA,CAAC,EAAI,CAAE,OAAOI,CAAG,CACrU,SAASI,GAA8BV,EAAGQ,EAAG,CAAE,GAAYR,GAAR,KAAW,MAAO,GAAI,IAAIC,EAAI,CAAA,EAAI,QAAS,KAAKD,EAAG,GAAI,CAAA,EAAG,eAAe,KAAKA,EAAG,CAAC,EAAG,CAAE,GAAWQ,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAUP,EAAE,CAAC,EAAID,EAAE,CAAC,CAAG,CAAE,OAAOC,CAAG,CAQ/L,SAASwJ,GAA0B7B,EAAM,CAC9C,GAAI,CACA,UAAA8B,EACA,KAAAC,EACA,QAAAC,EACA,UAAAC,EACA,SAAA/I,EACA,aAAAgJ,EACA,QAAAC,CACN,EAAQnC,EACJoC,EAAavJ,GAAyBmH,EAAM9H,EAAS,EACnDmK,EAAgBJ,GAAa,MAAQE,GAAW,KAAO,kCAAoC,OAC/F,OAAoB7H,EAAAA,KAAMgI,GAAe,CACvC,KAAM,UACN,aAAcJ,EACd,SAAU,CAAc5H,EAAAA,KAAMiI,GAE5BhK,GAAcA,GAAc,CAAA,EAAI6J,CAAU,EAAG,CAAA,EAAI,CACjD,aAAcN,GAAyDG,EACvE,QAASD,EACT,SAAU,CAAchI,EAAAA,IAAKwI,GAAM,CACjC,iBAAkBH,EAClB,SAAuBrI,EAAAA,IAAKyI,GAAiB,CAC3C,KAAMV,CAChB,CAAS,CACT,CAAO,EAAGE,GAAa,KAAO,KAAoBjI,EAAAA,IAAK0I,GAAM,CACrD,SAAUT,CAClB,CAAO,EAAGE,GAAW,KAAO,KAAoBnI,EAAAA,IAAK2I,GAAS,CACtD,SAAUR,CAClB,CAAO,CAAC,CACR,CAAK,CAAC,EAAGjJ,CAAQ,CACjB,CAAG,CACH,CC/CA,SAASf,GAAQ,EAAGC,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAGF,IAAME,EAAIA,EAAE,OAAO,SAAUF,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAY,CAAC,GAAIC,EAAE,KAAK,MAAMA,EAAGC,CAAC,CAAG,CAAE,OAAOD,CAAG,CAC9P,SAASE,GAAc,EAAG,CAAE,QAASH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAID,GAAQ,OAAOE,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAEI,GAAgB,EAAGJ,EAAGC,EAAED,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIF,GAAQ,OAAOE,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAO,CAAG,CACtb,SAASI,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CAOhT,SAASuK,GAAmB5C,EAAM,CACvC,GAAI,CACF,QAAA6C,EACA,wBAAAC,EACA,SAAA5J,EACA,SAAA6J,EACA,UAAAC,CACJ,EAAMhD,EACA,CACF,UAAA/B,EACA,kBAAAC,CACJ,EAAMR,GAA+B,EACnC,OAAoBpD,EAAAA,KAAM2I,GAAQ,CAChC,SAAU,CAAcjJ,EAAAA,IAAKkJ,GAAS,CACpC,MAAO,EACP,iBAAkBC,GAAO,+BACzB,SAAUN,CAChB,CAAK,EAAgB7I,EAAAA,IAAKoJ,GAAS,CAAA,CAAE,EAAgBpJ,EAAAA,IAAKqJ,GAAS,CAC7D,SAAuBrJ,EAAAA,IAAKsJ,GAE1B/K,GAAcA,GAAc,CAAA,EAAI0F,CAAS,EAAG,CAAA,EAAI,CAChD,SAAU/E,CAClB,CAAO,CAAC,CACR,CAAK,EAAgBoB,EAAAA,KAAMiJ,GAAa,CAClC,SAAU,CAAcvJ,EAAAA,IAAKwJ,GAAgB,CAC3C,QAAS,YACT,QAAST,EACT,SAAU,QAClB,CAAO,EAAgB/I,EAAAA,IAAKwJ,GAAgBjL,GAAcA,GAAc,GAAI2F,CAAiB,EAAG,GAAI,CAE5F,MAAO,OACP,QAAS,WACT,QAAS8E,EACT,KAAM,SACN,SAAUF,CAClB,CAAO,CAAC,CAAC,CACT,CAAK,CAAC,CACN,CAAG,CACH,CC5CO,SAASW,GAAoBzD,EAAM,CACxC,GAAI,CACF,UAAA8B,EACA,QAAAe,EACA,wBAAAC,EACA,SAAAY,EACA,SAAAxK,EACA,QAAAiJ,EACA,UAAWwB,CACf,EAAM3D,EACA4D,EAAe5H,EAAAA,YAAY6H,GAAsB7J,EAAAA,IAAK4I,GAAoB,CAC5E,QAASC,EACT,wBAAyBC,EACzB,SAAUe,EACV,UAAW,IAAM,CACfA,EAAK,EACLF,EAAU,CACZ,EACA,SAAUzK,CACd,CAAG,EAAG,CAACA,EAAU4J,EAAyBD,EAASc,CAAU,CAAC,EAC5D,OAAoB3J,EAAAA,IAAK6H,GAA2B,CAClD,UAAWC,EACX,KAAMgC,GACN,SAAUJ,EACV,QAAS,GACT,OAAQK,GACR,QAAS5B,EACT,SAAUyB,CACd,CAAG,CACH,CClCA,IAAI1L,GAAY,CAAC,OAAQ,QAAS,SAAS,EAC3C,SAASC,GAAQ,EAAGC,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAGF,IAAME,EAAIA,EAAE,OAAO,SAAUF,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAY,CAAC,GAAIC,EAAE,KAAK,MAAMA,EAAGC,CAAC,CAAG,CAAE,OAAOD,CAAG,CAC9P,SAASE,GAAc,EAAG,CAAE,QAASH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAID,GAAQ,OAAOE,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAEI,GAAgB,EAAGJ,EAAGC,EAAED,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIF,GAAQ,OAAOE,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAO,CAAG,CACtb,SAASI,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CACvT,SAASQ,GAAyB,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIP,EAAGF,EAAGM,EAAII,GAA8B,EAAG,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAG,IAAKX,EAAI,EAAGA,EAAIW,EAAE,OAAQX,IAAKE,EAAIS,EAAEX,CAAC,EAAU,EAAE,QAAQE,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAK,EAAGA,CAAC,IAAMI,EAAEJ,CAAC,EAAI,EAAEA,CAAC,EAAI,CAAE,OAAOI,CAAG,CACrU,SAASI,GAA8BV,EAAGQ,EAAG,CAAE,GAAYR,GAAR,KAAW,MAAO,GAAI,IAAIC,EAAI,CAAA,EAAI,QAAS,KAAKD,EAAG,GAAI,CAAA,EAAG,eAAe,KAAKA,EAAG,CAAC,EAAG,CAAE,GAAWQ,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAUP,EAAE,CAAC,EAAID,EAAE,CAAC,CAAG,CAAE,OAAOC,CAAG,CAO/L,SAAS2L,GAAiBhE,EAAM,CACrC,GAAI,CACA,KAAA+B,EACA,MAAAkC,EACA,QAAA9B,CACN,EAAQnC,EACJ/G,EAAQJ,GAAyBmH,EAAM9H,EAAS,EAClD,OAAoBoC,EAAAA,KAAMiI,GAAchK,GAAcA,GAAc,GAAIU,CAAK,EAAG,GAAI,CAClF,aAAcgL,EACd,QAAS,GACT,OAAQF,GACR,SAAU,CAAc/J,EAAAA,IAAKwI,GAAM,CACjC,iBAAkBL,GAAW,KAAO,OAAY,kCAChD,SAAuBnI,EAAAA,IAAKyI,GAAiB,CAC3C,KAAMV,CACd,CAAO,CACP,CAAK,EAAGI,GAAW,KAAO,KAAoBnI,EAAAA,IAAK2I,GAAS,CACtD,SAAUR,CAChB,CAAK,CAAC,CACN,CAAG,CAAC,CACJ,CACA6B,GAAiB,YAAc,mBC5B/B,SAASE,GAAelE,EAAM,CAC5B,GAAI,CACF,iBAAAmE,EAAmB,GACnB,SAAAjL,EACA,WAAA6F,EACA,OAAAqF,EAAS,EACb,EAAMpE,EACA,CACF,MAAOqE,CACX,EAAMvF,EAAkBsF,EAAQrF,CAAU,EACxC,OAAoBzE,EAAAA,KAAMC,EAAAA,SAAW,CACnC,SAAU,CAAC4J,GAAoBC,GAAuBpK,EAAAA,IAAK,MAAO,CAChE,UAAW,iBACX,MAAO,CACL,gBAAiB,aACzB,EACM,cAAe,0BACrB,CAAK,EAAgBJ,EAAM,aAAaV,EAAU,CAC5C,OAAQkL,GAAUC,CACxB,CAAK,CAAC,CACN,CAAG,CACH,CClBA,SAASC,GAAUtE,EAAM,CACvB,GAAI,CACF,UAAAuE,EACA,KAAAxC,EACA,OAAAqC,EAAS,GACT,SAAAI,EACA,MAAAC,CACJ,EAAMzE,EACJ,OAAoBhG,EAAAA,IAAK0K,GAAO,CAC9B,OAAQN,EACR,UAAWG,EACX,SAAuBvK,EAAAA,IAAK2K,GAAW,CACrC,SAAuBrK,EAAAA,KAAM,MAAO,CAClC,UAAW,aACX,SAAU,CAACyH,GAAQ,MAAqB/H,EAAAA,IAAK,MAAO,CAClD,UAAW,eACX,SAAuBA,EAAAA,IAAKyI,GAAiB,CAC3C,KAAMV,CAClB,CAAW,CACX,CAAS,EAAgB/H,EAAAA,IAAK,MAAO,CAC3B,UAAW,iBACX,SAAUyK,CACpB,CAAS,EAAGD,GAAY,MAAqBxK,EAAAA,IAAK,MAAO,CAC/C,UAAW,kBACX,SAAUwK,CACpB,CAAS,CAAC,CACV,CAAO,CACP,CAAK,CACL,CAAG,CACH,CCvCA,SAASrM,GAAQ,EAAGC,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAGF,IAAME,EAAIA,EAAE,OAAO,SAAUF,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAY,CAAC,GAAIC,EAAE,KAAK,MAAMA,EAAGC,CAAC,CAAG,CAAE,OAAOD,CAAG,CAC9P,SAASE,GAAc,EAAG,CAAE,QAASH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAID,GAAQ,OAAOE,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAEI,GAAgB,EAAGJ,EAAGC,EAAED,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIF,GAAQ,OAAOE,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAO,CAAG,CACtb,SAASI,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CAOvT,IAAIuM,GAAY,CAAA,EACT,SAASC,GAAc7E,EAAM,CAClC,GAAI,CACF,WAAAoC,EACA,kBAAA0C,EACA,iBAAAC,CACJ,EAAM/E,EACJ,OAAoBhG,MAAKgL,GAAWzM,GAAcA,GAAc,CAC9D,iBAAkB0M,GAAa,iBAEnC,EAAK7C,CAAU,EAAG,GAAI,CAClB,aAAc,GACd,kBAAmB0C,EACnB,iBAAkBC,EAClB,SAAUH,EACd,CAAG,CAAC,CACJ,CClBA,SAASM,GAAiBjM,EAAO,CAC/B,GAAI,CACF,UAAAkM,EAAY,GACZ,MAAA7G,EACA,MAAA8G,EAAQ,IAAA,GACR,SAAAC,EAAW,IAAA,GACX,SAAAC,EAAW,IAAM,IACrB,EAAMrM,EACA,CAACsM,EAAYC,CAAa,EAAIhJ,EAAAA,SAAS,IAAI,EAC3C,CAACiJ,EAAgBC,CAAiB,EAAIlJ,EAAAA,SAAS,CAAA,CAAE,EACjD,CAACa,EAAOsI,CAAQ,EAAInJ,EAAAA,SAAS,EAAE,EAC/BoJ,EAAwB5J,EAAAA,YAAY6J,GAAU,CAChDH,EAAkBG,CAAM,CAC1B,EAAG,CAAA,CAAE,EACDC,EAAe9J,EAAAA,YAAY,IAAM,CACnCqJ,EAASU,GAAW,iBAAiBzH,EAAOmH,CAAc,CAAC,EAC3DC,EAAkB,CAAA,CAAE,CACtB,EAAG,CAACpH,EAAOmH,EAAgBJ,CAAQ,CAAC,EAChCW,EAAYhK,EAAAA,YAAY,IAAM,CAChC,GAAIqB,IAAU,GAGd,KAAI4I,EAAkBX,EAASjI,CAAK,EAChC4I,GAAmB,MACrBb,EAAM/H,CAAK,EACXsI,EAAS,EAAE,GAEXH,EAAcS,CAAe,EAEjC,EAAG,CAAC5I,EAAO+H,EAAOE,CAAQ,CAAC,EACvBY,EAAoBlK,EAAAA,YAAYG,GAAS,CAC3C,GAAI,CACF,MAAOS,CACb,EAAQT,EAAM,OACVwJ,EAAS/I,CAAU,EACnB4I,EAAc5I,IAAe,GAAK,KAAO0I,EAAS1I,CAAU,CAAC,CAC/D,EAAG,CAAC0I,CAAQ,CAAC,EACTa,EAAmBnK,EAAAA,YAAY,IAAM,CACvC0J,EAAkB,CAAA,CAAE,CACtB,EAAG,CAAA,CAAE,EACDU,EAAqBpK,EAAAA,YAAYG,GAAS,CACxCA,EAAM,MAAQ,SAChB6J,EAAS,CAEb,EAAG,CAACA,CAAS,CAAC,EACVK,EAAkB5M,EAAAA,QAAQ,IAAM,GAAK6M,GAAMhI,EAAM,OAAQ,EAAG,CAAC,EAAIiI,GAAS,mBAAoB,CAACjI,EAAM,MAAM,CAAC,EAChH,OAAoBhE,EAAAA,KAAM,MAAO,CAC/B,UAAWkM,EAAW,+BAAgC,CACpD,aAAcrB,CACpB,CAAK,EACD,SAAU,CAAcnL,EAAAA,IAAK,MAAO,CAClC,MAAO,CACL,OAAQqM,CAChB,EACM,SAAuBrM,EAAAA,IAAKuM,GAAU,CACpC,UAAWjI,EAAM,OACjB,MAAOA,EAAM,IAAI,CAAChD,EAAMmL,KAAW,CACjC,MAAOnL,EACP,WAAYyK,GAAW,WAAWN,EAAgBgB,CAAK,CACjE,EAAU,EACF,OAAQ,EACR,eAAgBhB,EAChB,kBAAmBG,EACnB,cAAe,EACvB,CAAO,CACP,CAAK,EAAgBtL,EAAAA,KAAM,MAAO,CAC5B,UAAW,uBACX,SAAU,CAAcN,EAAAA,IAAK,MAAO,CAClC,UAAW,qBACX,SAAuBA,EAAAA,IAAK,QAAS,CACnC,UAAWwM,EAAW,eAAgB,CACpC,aAAcjB,GAAc,IACxC,CAAW,EACD,YAAa,cACb,KAAM,OACN,MAAOlI,EACP,SAAU6I,EACV,QAASC,EACT,UAAWC,CACrB,CAAS,CACT,CAAO,EAAgB9L,EAAAA,KAAM,MAAO,CAC5B,UAAW,qCACX,SAAU,CAAcN,EAAAA,IAAK0M,GAAQ,CACnC,KAAM,QACN,QAASV,EACT,SAAUT,GAAc,MAAQlI,IAAU,GAC1C,KAAMsJ,GACN,QAAS,eACT,cAAe,iBACzB,CAAS,EAAgB3M,EAAAA,IAAK0M,GAAQ,CAC5B,KAAM,QACN,QAASZ,EACT,SAAUL,EAAe,SAAW,EACpC,KAAM3B,GACN,QAAS,wBACT,cAAe,oBACzB,CAAS,CAAC,CACV,CAAO,CAAC,CACR,CAAK,CAAC,CACN,CAAG,CACH,CCxGO,SAAS8C,GAAgB5G,EAAM,CACpC,GAAI,CACF,KAAA6G,EACA,UAAAC,EAAY,WAChB,EAAM9G,EACA+G,EAAUtN,EAAAA,QAAQ,KAAO,CAC3B,UAAAqN,CACJ,GAAM,CAACA,CAAS,CAAC,EACf,OAAoBxM,EAAAA,KAAMC,EAAAA,SAAW,CACnC,SAAU,CAAcP,EAAAA,IAAK0I,GAAM,CACjC,iBAAkBsE,GAAa,iBAC/B,SAAUH,GAGV7M,EAAAA,IAAKO,EAAAA,SAAW,CACd,SAAU,GAClB,CAAO,CACP,CAAK,EAAGsM,GAAQ,MAAQA,IAAS,GAAK,KAAoB7M,EAAAA,IAAK2I,GAAS,CAClE,QAASoE,EACT,SAAUF,CAChB,CAAK,CAAC,CACN,CAAG,CACH,CC3BA,IAAI3O,GAAY,CAAC,YAAa,qBAAsB,QAAQ,EAC5D,SAASC,GAAQ,EAAGC,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAGF,IAAME,EAAIA,EAAE,OAAO,SAAUF,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAY,CAAC,GAAIC,EAAE,KAAK,MAAMA,EAAGC,CAAC,CAAG,CAAE,OAAOD,CAAG,CAC9P,SAASE,GAAc,EAAG,CAAE,QAASH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAID,GAAQ,OAAOE,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAEI,GAAgB,EAAGJ,EAAGC,EAAED,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIF,GAAQ,OAAOE,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAO,CAAG,CACtb,SAASI,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CACvT,SAASQ,GAAyB,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIP,EAAGF,EAAGM,EAAII,GAA8B,EAAG,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAG,IAAKX,EAAI,EAAGA,EAAIW,EAAE,OAAQX,IAAKE,EAAIS,EAAEX,CAAC,EAAU,EAAE,QAAQE,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAK,EAAGA,CAAC,IAAMI,EAAEJ,CAAC,EAAI,EAAEA,CAAC,EAAI,CAAE,OAAOI,CAAG,CACrU,SAASI,GAA8BV,EAAGQ,EAAG,CAAE,GAAYR,GAAR,KAAW,MAAO,GAAI,IAAIC,EAAI,CAAA,EAAI,QAAS,KAAKD,EAAG,GAAI,CAAA,EAAG,eAAe,KAAKA,EAAG,CAAC,EAAG,CAAE,GAAWQ,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAUP,EAAE,CAAC,EAAID,EAAE,CAAC,CAAG,CAAE,OAAOC,CAAG,CAM/L,SAAS4O,GAAmBjH,EAAM,CACvC,GAAI,CACA,UAAAkH,EACA,mBAAAC,EACA,OAAA1L,CACN,EAAQuE,EACJ/G,EAAQJ,GAAyBmH,EAAM9H,EAAS,EAC9CkP,EAAapL,EAAAA,YAAYV,GAAQ,CACnC,IAAIP,EAAMU,EAAOH,CAAI,EACjB+L,EAAcF,EAAmB7L,CAAI,EACzC,OAAoBtB,EAAAA,IAAKI,GAAM,CAC7B,UAAWiN,GAA+D,OAAOtM,CAAG,EACpF,SAAuBf,EAAAA,IAAK4M,GAAiB,CAC3C,KAAMS,CACd,CAAO,CACP,EAAOtM,CAAG,CACR,EAAG,CAACoM,EAAoB1L,CAAM,CAAC,EAC/B,OAAoBzB,EAAAA,IAAKsN,GAAkB/O,GAAcA,GAAc,GAAIU,CAAK,EAAG,GAAI,CAErF,IAAKiO,EACL,YAAa,QAIb,kBAAmBjO,EAAM,kBACzB,SAAUmO,CACd,CAAG,CAAC,CACJ,CCnCA,IAAIG,GAAmB,IAChB,SAASC,GAAoBxH,EAAM,CACxC,GAAI,CACF,QAAA6C,EACA,QAAA4E,EACA,QAAApL,EAAUkL,EACd,EAAMvH,EACA,CAAC0H,EAAMC,CAAO,EAAInL,EAAAA,SAAS,EAAK,EAOpCC,OAAAA,EAAAA,UAAU,IAAM,CACd,OAAO,WAAW,IAAM,CACtBkL,EAAQ,EAAI,CACd,EAAGtL,CAAO,CACZ,EAAG,CAACA,CAAO,CAAC,EACLqL,EAAoBpN,EAAAA,KAAMsN,GAAoB,CACnD,SAAU,CAAc5N,EAAAA,IAAKwI,GAAM,CACjC,KAAM,MACN,SAAuBxI,EAAAA,IAAKyI,GAAiB,CAC3C,KAAMoF,EACd,CAAO,CACP,CAAK,EAAgB7N,EAAAA,IAAKkJ,GAAS,CAC7B,SAAUL,CAChB,CAAK,EAAG4E,GAAW,KAAO,KAAoBzN,EAAAA,IAAKqJ,GAAS,CACtD,SAAUoE,CAChB,CAAK,CAAC,CACN,CAAG,EAAI,IACP,CC3BA,SAASK,GAAkB9H,EAAM,CAC/B,GAAI,CACF,QAAA+H,EACA,QAAAC,EAAU,GACV,WAAYC,EACZ,QAAAC,EACA,KAAAC,EACA,QAAAC,EACA,UAAAC,EACA,cAAeC,CACnB,EAAMtI,EACAuI,EAAUhP,EAAAA,OAAO,IAAI,EACrBiP,EAAaT,GAAWA,EAAQ,SAAW,EAC/C,OAAoB/N,EAAAA,IAAKyO,GAAe,CACtC,GAAIT,EACJ,QAASU,GAAY,aACrB,WAAY,8BACZ,aAAc,GACd,cAAe,GACf,QAASH,EACT,SAAuBjO,EAAAA,KAAM,MAAO,CAClC,IAAKiO,EACL,UAAW/B,EAAW,qBAAsByB,EAAgBE,CAAI,EAChE,KAAM,eACN,QAASC,EACT,WAAYA,EACZ,cAAeE,EACf,SAAU,CAActO,EAAAA,IAAK,MAAO,CAClC,UAAW,oBACX,SAAuBA,EAAAA,IAAK,OAAQ,CAClC,UAAW,UACX,SAAUkO,CACpB,CAAS,CACT,CAAO,EAAgBlO,EAAAA,IAAK2O,GAAgB,CACpC,GAAIH,EACJ,QAASE,GAAY,iBACrB,aAAc,GACd,cAAe,GACf,SAAuB1O,EAAAA,IAAK,MAAO,CACjC,UAAW,oBACX,SAAU+N,CACpB,CAAS,CACT,CAAO,EAAGM,GAA0BrO,EAAAA,IAAK0M,GAAQ,CACzC,KAAM,QACN,KAAMkC,GACN,QAAS,qBACT,UAAW,OACX,QAASP,CACjB,CAAO,CAAC,CACR,CAAK,CACL,CAAG,CACH,CACAP,GAAkB,KAAO,OAAO,OAAO,CACrC,MAAO,OACT,CAAC,8vJCxDM,IAAIe,GAAoCjP,EAAM,KAAKoG,GAAQ,CAChE,GAAI,CACF,SAAA9G,EACA,QAAA4P,EACA,OAAAC,CACJ,EAAM/I,EACA,CAACgJ,EAAKC,CAAQ,EAAIC,GAAeH,CAAM,EAC3C,OAAIE,GAAY,MACdH,GAAY,MAA8BA,EAAQG,CAAQ,EACnD,MAELD,GAAO,KAEF,KAEWhP,EAAAA,IAAKmP,GAAW,SAAU,CAC5C,MAAOH,EACP,SAAU9P,CACd,CAAG,CACH,CAAC,EACD2P,GAAqB,YAAc,uBCP5B,IAAIO,GAAyCC,EAAAA,cAAc,IAAI,EACtED,GAA0B,YAAc,4BASjC,SAASE,GAAeC,EAAY,CACzC,GAAI,CAACC,EAAeC,CAAgB,EAAIjN,WAAS,CAC/C,OAAQ,SACZ,CAAG,EACGkN,EAAqBhI,EAAAA,WAAW0H,EAAyB,EAC7D3M,OAAAA,EAAAA,UAAU,IAAM,CACd,GAAIiN,GAAsB,KAAM,CAC9BD,EAAiB,CACf,MAAO,IAAI,MAAM,4CAA4C,EAC7D,OAAQ,OAChB,CAAO,EACD,MACF,CAEA,OAAAA,EAAiBE,GAAaA,EAAU,SAAW,UAAYA,EAAY,CACzE,OAAQ,SACd,CAAK,EACMD,EAAmB,UAAUH,EAAYE,CAAgB,CAClE,EAAG,CAACF,EAAYG,CAAkB,CAAC,EAC5BF,CACT,CClDA,SAASrR,GAAQ,EAAGC,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAGF,IAAME,EAAIA,EAAE,OAAO,SAAUF,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAY,CAAC,GAAIC,EAAE,KAAK,MAAMA,EAAGC,CAAC,CAAG,CAAE,OAAOD,CAAG,CAC9P,SAASE,GAAc,EAAG,CAAE,QAASH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAID,GAAQ,OAAOE,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAEI,GAAgB,EAAGJ,EAAGC,EAAED,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIF,GAAQ,OAAOE,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAO,CAAG,CACtb,SAASI,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CACvT,SAASuR,GAAmB7Q,EAAG,EAAGH,EAAGR,EAAGE,EAAGuR,EAAGC,EAAG,CAAE,GAAI,CAAE,IAAIpR,EAAIK,EAAE8Q,CAAC,EAAEC,CAAC,EAAGC,EAAIrR,EAAE,KAAO,OAASK,EAAG,CAAE,OAAO,KAAKH,EAAEG,CAAC,CAAG,CAAEL,EAAE,KAAO,EAAEqR,CAAC,EAAI,QAAQ,QAAQA,CAAC,EAAE,KAAK3R,EAAGE,CAAC,CAAG,CACxK,SAAS0R,GAAkBjR,EAAG,CAAE,OAAO,UAAY,CAAE,IAAI,EAAI,KAAMH,EAAI,UAAW,OAAO,IAAI,QAAQ,SAAUR,EAAGE,EAAG,CAAE,IAAIuR,EAAI9Q,EAAE,MAAM,EAAGH,CAAC,EAAG,SAASqR,EAAMlR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,OAAQnR,CAAC,CAAG,CAAE,SAASmR,EAAOnR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,QAASnR,CAAC,CAAG,CAAEkR,EAAM,MAAM,CAAG,CAAC,CAAG,CAAG,CAOhU,IAAIE,GAAM3J,EAAI,OAAO,WAAW,EAezB,SAAS4J,GAAUb,EAAY,CACpC,GAAI,CAACc,EAASC,CAAU,EAAI9N,EAAAA,SAAS,KAAO,CAC1C,OAAQ,KACR,MAAO,IACX,EAAI,EACE+N,EAAcjB,GAAeC,CAAU,EACvC,CAACiB,EAAeC,CAAkB,EAAIvB,GAAeK,CAAU,EAC/DmB,EAAaC,EAAM,EACnB3B,EAAMwB,GAAqEE,EAC/EjO,EAAAA,UAAU,UAAsB,CAC9B0N,GAAI,MAAM,aAAcZ,CAAU,EAClC,GAAI,CACF,OAAAqB,CACN,EAAQL,EACJ,GAAIK,IAAW,QAAS,CAEtBN,EAAW,CACT,OAAQ,KACR,MAAOC,EAAY,KAC3B,CAAO,EACD,MACF,CACA,GAAIK,IAAW,UAAW,CAExBN,EAAW,CACT,OAAQ,KACR,MAAO,IACf,CAAO,EACD,MACF,CACA,GAAI,CACF,MAAAO,CACN,EAAQN,EAIA/K,EAAc,GAClB,SAASsL,GAAqB,CAC5B,OAAOC,EAAoB,MAAM,KAAM,SAAS,CAClD,CACA,SAASA,GAAsB,CAC7B,OAAAA,EAAsBf,GAAkB,WAAa,CACnD,GAAI,CACFgB,GAAcH,CAAK,EACnB,IAAII,EAAY,MAAMJ,EAAK,EAC3B,GAAIrL,EAAa,CACf2K,GAAI,OAAO,+BAAgCZ,EAAY0B,CAAS,EAChEA,EAAU,MAAK,EACX,oBAAqBA,GACvBA,EAAU,gBAAgB,QAAQC,GAAkB,CAClDA,EAAe,MAAK,CACtB,CAAC,EAEH,MACF,CACAf,GAAI,MAAM,0BAA2BZ,EAAY0B,CAAS,EAC1DX,EAAW,CACT,OAAQW,EACR,MAAO,IACnB,CAAW,CACH,OAASrS,EAAG,CACV,GAAI4G,EACF,OAEF2K,GAAI,MAAM,2BAA4BZ,EAAY3Q,CAAC,EACnD0R,EAAW,CACT,OAAQ,KACR,MAAO1R,GAAiC,IAAI,MAAM,YAAY,CAC1E,CAAW,CACH,CACF,CAAC,EACMmS,EAAoB,MAAM,KAAM,SAAS,CAClD,CACA,OAAAD,EAAkB,EACX,IAAM,CACXtL,EAAc,EAChB,CACF,EAAG,CAAC+J,EAAYgB,CAAW,CAAC,EAC5B,IAAIY,EAAiB1R,EAAAA,QAAQ,IAAM,CACjC,IAAI2R,EACJ,OAAO7S,GAAcA,GAAc,CAAA,EAAI8R,CAAO,EAAG,CAAA,EAAI,CACnD,OAAQe,EAAiBf,EAAQ,SAAW,MAAQe,IAAmB,OAASA,EAAiBX,EACjG,IAAKJ,EAAQ,QAAU,KAAOrB,EAAM,IAC1C,CAAK,CACH,EAAG,CAACqB,EAASrB,EAAKyB,CAAkB,CAAC,EACrC,OAAOU,CACT,yeC9GO,SAASE,GAAoBrL,EAAM,CACxC,GAAI,CACF,SAAA9G,CACJ,EAAM8G,EACA,CACF,aAAAsL,CACJ,EAAMC,GAAQ,EACZ9O,OAAAA,EAAAA,UAAU,UAA8B,CAClC6O,GAAgB,MAClBE,GAAY,UAAS,CAEzB,EAAG,CAACF,CAAY,CAAC,EAGGtR,EAAAA,IAAKO,EAAAA,SAAW,CAClC,SAAUrB,CACd,CAAG,CACH,CClBO,IAAIuS,GAAgB,IASpB,SAASC,GAAwBC,EAAYC,EAAM,CACxD,IAAIlP,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI+O,GAClF,OAAO,IAAI,QAAQ,CAACI,EAASC,IAAW,CACtC,IAAIC,EACAtM,EAAY,WAAW,IAAM,CAC/B,IAAIuM,GACHA,EAAkBD,KAAoB,MAAQC,IAAoB,QAAUA,EAAe,EAC5FF,EAAO,IAAIG,GAAa,gCAAgC,OAAOL,CAAI,CAAC,CAAC,CACvE,EAAGlP,CAAO,EAMV,SAASwP,EAAmBC,EAAS,CACnC,IAAIC,EACAC,EAAaF,EAAQ,QAAQ,KAAKG,GAAOA,EAAI,QAAUV,CAAI,EAC/D,aAAanM,CAAS,GACrB2M,EAAmBL,KAAoB,MAAQK,IAAqB,QAAUA,EAAgB,EAC3FC,GAAc,KAChBR,EAAQQ,CAAU,EAElBP,EAAO,IAAI,MAAM,YAAY,OAAOF,EAAM,YAAY,CAAC,CAAC,CAE5D,CACAG,EAAiBJ,EAAW,wBAAwBO,CAAkB,CACxE,CAAC,CACH,4yECpCO,SAASK,GAAsBC,EAAI,CACxC,OAAO,SAA2BxM,EAAM,CACtC,GAAI,CACF,SAAA9G,CACN,EAAQ8G,EACJ,OAAoBhG,EAAAA,IAAKmP,GAAW,SAAU,CAC5C,MAAOqD,EACP,SAAUtT,CAChB,CAAK,CACH,CACF,CCbA,SAASV,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CACvT,MAAMoU,WAAwB,KAAM,CAClC,aAAc,CACZ,MAAM,GAAG,SAAS,EAClBjU,GAAgB,KAAM,oBAAqB,EAAI,CACjD,CACF,CCRA,SAASA,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CACvT,MAAMqU,WAA6B,KAAM,CACvC,aAAc,CACZ,MAAM,GAAG,SAAS,EAClBlU,GAAgB,KAAM,yBAA0B,EAAI,CACtD,CACF,CCFA,IAAI2R,GAAM3J,EAAI,OAAO,UAAU,EAC3BmM,GAAW,CAACC,EAAOC,EAAUC,EAASC,IAAgB,CACxD,IAAIP,EAAK7B,EAAM,EACX,CAACqC,EAASC,CAAU,EAAIzQ,EAAAA,SAAS,MAAS,EAC1C,CAAC0Q,EAAMC,CAAO,EAAI3Q,EAAAA,SAAS,CAAA,CAAE,EAC7B,CAAC4Q,EAAaC,CAAc,EAAI7Q,EAAAA,SAAS,IAAI,EAC7C,CAAC8Q,EAAYC,CAAa,EAAI/Q,EAAAA,SAAS,IAAI,EAC/CC,EAAAA,UAAU,IAAM,CACd,GAAIsQ,IAAgB,OAAW,CAC7BE,EAAWL,GAAU,KAA2B,OAASA,EAAM,OAAO,EACtES,EAAe,IAAI,EACnB,MACF,CACA,GAAI,CACFJ,EAAWL,GAAU,KAA2B,OAASA,EAAM,YAAYG,CAAW,CAAC,EACvFM,EAAe,IAAI,CACrB,OAASzU,EAAG,CACVuR,GAAI,MAAM,mBAAoBvR,EAAGmU,CAAW,EAC5CM,EAAe,IAAIZ,GAAgB,8BAA8B,CAAC,CACpE,CACF,EAAG,CAACG,EAAOG,CAAW,CAAC,EACvBtQ,EAAAA,UAAU,IAAM,CACd,GAAI,CAACuQ,GAAW,CAACJ,EAAO,CACtBzC,GAAI,OAAO,wDAAwD,EACnE,MACF,CACAA,GAAI,OAAO,mBAAoB0C,EAAUC,CAAO,EAChDF,EAAM,YAAYC,EAAUC,EAASE,CAAO,CAC9C,EAAG,CAACA,EAASJ,EAAOC,EAAUC,CAAO,CAAC,EACtC,IAAIU,EAAexR,EAAAA,YAAYgE,GAAQ,CACrC,GAAI,CACF,OAAAyN,CACN,EAAQzN,EACJ,GAAI,CAACgN,EAAS,CACZ7C,GAAI,MAAM,0BAA0B,EACpC,MACF,CACA,IAAI/L,EAAe4O,EAAQ,IAAIU,GAAUD,EAAO,KAAK,IAAIrV,GAAKA,EAAE,IAAIsV,CAAM,CAAC,CAAC,EAC5EP,EAAQ/O,CAAY,CACtB,EAAG,CAAC4O,CAAO,CAAC,EACRW,EAAmB3R,EAAAA,YAAY,IAAM,CACvCuR,EAAc,IAAIb,GAAqB,oBAAoB,CAAC,CAC9D,EAAG,CAAA,CAAE,EACDkB,EAAkB5R,EAAAA,YAAY,IAAM,CACtCuR,EAAc,IAAI,CACpB,EAAG,CAAA,CAAE,EACL,OAAAM,GAAiBjB,EAAOJ,EAAG,MAAM,cAAegB,CAAY,EAC5DK,GAAiBjB,EAAOJ,EAAG,MAAM,iBAAkBmB,CAAgB,EACnEE,GAAiBjB,EAAOJ,EAAG,MAAM,gBAAiBoB,CAAe,EAC1D,CACL,QAAAZ,EACA,KAAAE,EACA,MAAOI,GAA4DF,CACvE,CACA,EClDIU,GAAiB,CAAClB,EAAOC,EAAUC,EAASiB,IAAe,CAC7D,IAAIhB,EAActT,EAAAA,QAAQ,IAAM,CAACsU,CAAU,EAAG,CAACA,CAAU,CAAC,EACtD,CACF,QAAAf,EAAU,CAAA,EACV,KAAAE,EAAO,CAAA,EACP,MAAAc,CACJ,EAAMrB,GAASC,EAAOC,EAAUC,EAASC,CAAW,EAClD,MAAO,CACL,OAAQC,EAAQ,CAAC,EACjB,KAAME,EAAK,CAAC,EACZ,MAAAc,CACJ,CACA,ECtBA,SAASpE,GAAmB7Q,EAAG,EAAGH,EAAGR,EAAGE,EAAGuR,EAAGC,EAAG,CAAE,GAAI,CAAE,IAAIpR,EAAIK,EAAE8Q,CAAC,EAAEC,CAAC,EAAGC,EAAIrR,EAAE,KAAO,OAASK,EAAG,CAAE,OAAO,KAAKH,EAAEG,CAAC,CAAG,CAAEL,EAAE,KAAO,EAAEqR,CAAC,EAAI,QAAQ,QAAQA,CAAC,EAAE,KAAK3R,EAAGE,CAAC,CAAG,CACxK,SAAS0R,GAAkBjR,EAAG,CAAE,OAAO,UAAY,CAAE,IAAI,EAAI,KAAMH,EAAI,UAAW,OAAO,IAAI,QAAQ,SAAUR,EAAGE,EAAG,CAAE,IAAIuR,EAAI9Q,EAAE,MAAM,EAAGH,CAAC,EAAG,SAASqR,EAAMlR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,OAAQnR,CAAC,CAAG,CAAE,SAASmR,EAAOnR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,QAASnR,CAAC,CAAG,CAAEkR,EAAM,MAAM,CAAG,CAAC,CAAG,CAAG,CAWhU,IAAIE,EAAM3J,EAAI,OAAO,YAAY,EAC7ByN,GAAa,IACjB,SAASC,GAAWjV,EAAO,CACzB,IAAIkV,EAAaC,EACb,CACF,UAAA7J,EAAY,OACZ,WAAAwJ,EACA,SAAAM,EACA,aAAA3P,EAAe,CAAA,EACf,UAAAyG,EAAY,GACZ,SAAA1G,EAAW6P,GACX,OAAAC,EAASD,GACT,MAAOE,CACX,EAAMvV,EACAwV,EAAYlV,EAAAA,OAAO,IAAI,EACvBiT,EAAK7B,EAAM,EACX+D,EAAYjV,EAAAA,QAAQ,IAAM,CAC5B,IAAIkV,EAAgBC,GAAe,iBAAiBP,CAAQ,EACxDQ,EAA2BD,GAAe,4BAA4BP,CAAQ,EAC9E,CACF,4BAAAS,EAA8B,CAAA,EAC9B,4BAAAC,EAA8B,CAAA,CACpC,EAAQV,EACJ,OAAO,IAAIW,GAAUxC,EAAImC,EAAeE,EAA0BC,EAA6BC,CAA2B,CAC5H,EAAG,CAACvC,EAAI6B,CAAQ,CAAC,EACb,CAACY,EAAaC,CAAc,EAAI1S,EAAAA,SAAS,EAAE,EAC3C,CAAC7B,EAAWwU,CAAY,EAAI3S,EAAAA,SAAS,IAAI,IAAIkC,CAAY,CAAC,EAC1D,CAACkO,EAAOwC,CAAQ,EAAI5S,WAAQ,EAC5B6S,EAAU9V,EAAAA,OAAO,IAAI,EACrB+V,EAAY,KAAK,KAAKnB,EAAcvB,GAAU,KAA2B,OAASA,EAAM,QAAU,MAAQuB,IAAgB,OAASA,EAAc,EAAGF,EAAU,EAC9J,CACF,OAAAP,EACA,KAAAR,EACA,MAAAc,CACJ,EAAMF,GAAelB,EAAO,EAAGqB,GAAa,EAAGF,CAAU,EACnDwB,EAAcvT,EAAAA,YAAYqB,GAASqQ,EAASgB,EAAU,mBAAmBrR,EAAOqQ,EAAO,KAAMA,EAAO,IAAI,EAAI,GAAG,OAAOrQ,CAAK,EAAG,CAACqQ,EAAQgB,CAAS,CAAC,EACjJ,CAACpQ,EAAOkR,CAAgB,EAAI/V,EAAAA,QAAQ,IAAM,CAC5C,IAAIgW,EAAe,IAAI,IAAI9U,CAAS,EAChCsB,EAAS,CAAA,EACb,GAAIiR,GAAQ,KAEV,MAAO,CAACjR,EAAQ,IAAI,EActB,GAZAiR,EAAK,QAAQwC,GAAK,CAChB,IAAIrS,EAAQ,GAAG,OAAOqS,CAAC,EACnBC,GAAahV,EAAU,IAAI0C,CAAK,EAChCsS,IACFF,EAAa,OAAOpS,CAAK,EAE3BpB,EAAO,KAAK,CACV,MAAAoB,EACA,aAAckS,EAAYG,CAAC,EAC3B,WAAAC,EACR,CAAO,CACH,CAAC,EACGF,EAAa,KAAO,EAAG,CACzBtF,EAAI,OAAO,wDAAwD,EACnE,IAAIyF,EAAe,IAAI,IAAIjV,CAAS,EACpC,aAAM,KAAK8U,CAAY,EAAE,QAAQpS,GAAS,CACxCuS,EAAa,OAAOvS,CAAK,CAC3B,CAAC,EACM,CAACpB,EAAQ2T,CAAY,CAC9B,CACA,MAAO,CAAC3T,EAAQ,IAAI,CACtB,EAAG,CAACiR,EAAMvS,EAAW4U,CAAW,CAAC,EACjC9S,EAAAA,UAAU,IAAM,CACV+S,IAAqB,OACvBL,EAAaK,CAAgB,EAC7B/Q,EAAS,MAAM,KAAK+Q,CAAgB,CAAC,EAEzC,EAAG,CAAC/Q,EAAU+Q,CAAgB,CAAC,EAC/B,IAAIK,EAAY7T,EAAAA,YAAyB,UAAY,CACnD,IAAIgE,EAAOgK,GAAkB,UAAW8F,EAAS,CAC/C,GAAI,CACF,IAAIC,EAAW,MAAMD,EACrB3F,EAAI,MAAM,iBAAkB4F,CAAQ,EACpCX,EAASW,CAAQ,CACnB,OAASnX,EAAG,CACV,GAAIoX,GAAa,WAAWpX,CAAC,EAC3B,OAEFuR,EAAI,MAAMvR,CAAC,CACb,CACF,CAAC,EACD,OAAO,SAAUqX,EAAI,CACnB,OAAOjQ,EAAK,MAAM,KAAM,SAAS,CACnC,CACF,EAAC,EAAI,CAAA,CAAE,EACPvD,EAAAA,UAAU,IAAM,CACd,IAAIyT,EAAoBF,GAAa,eAAexB,CAAY,EAChE,OAAAqB,EAAUK,CAAiB,EACpB,IAAM,CACX/F,EAAI,OAAO,sBAAsB,EACjC+F,EAAkB,OAAM,CAC1B,CACF,EAAG,CAAC1B,EAAcqB,CAAS,CAAC,EAG5B,IAAIM,EAAqBnU,EAAAA,YAAYpD,GAAK,CACxC,GAAI,CACF,MAAAyE,CACN,EAAQzE,EAAE,OACNsW,EAAe7R,CAAK,EACpB,IAAIoJ,EAAQnI,EAAM,UAAUhD,GAAQA,EAAK,aAAa,SAAS+B,CAAK,CAAC,EACrE,GAAIoJ,EAAQ,GAAI,CACd,IAAI2J,EACJjG,EAAI,OAAO,SAAS,OAAO9M,EAAO,YAAY,EAAE,OAAOoJ,CAAK,CAAC,GAC5D2J,EAAmBf,EAAQ,WAAa,MAAQe,IAAqB,QAAUA,EAAiB,eAAe3J,CAAK,CACvH,MACE0D,EAAI,OAAO,GAAG,OAAO9M,EAAO,YAAY,CAAC,CAE7C,EAAG,CAACiB,EAAO+Q,CAAO,CAAC,EACfgB,GAAerU,EAAAA,YAAYyK,GAAS,CAEtC,GADA0D,EAAI,MAAM,eAAgB1D,CAAK,EAC3BA,GAASnI,EAAM,OAAQ,CACzB6L,EAAI,MAAM,gBAAiB1D,CAAK,EAChC,MACF,CACA,IAAI6J,EAAgBhS,EAAMmI,CAAK,EAAE,MAC7BmJ,EAAe,IAAI,IAAIjV,CAAS,EAChC2D,EAAMmI,CAAK,EAAE,WACfmJ,EAAa,OAAOU,CAAa,EAEjCV,EAAa,IAAIU,CAAa,EAEhCnB,EAAaS,CAAY,EACzBnR,EAAS,MAAM,KAAKmR,CAAY,CAAC,CACnC,EAAG,CAACnR,EAAUH,EAAO3D,CAAS,CAAC,EAC3B4V,GAAkBvU,EAAAA,YAAY,IAAM,CACtC,IAAIwU,EAASlS,EAAM,IAAIhD,GAAQA,EAAK,KAAK,EACrCsU,EAAe,IAAI,IAAIY,CAAM,EACjCrB,EAAaS,CAAY,EACzBnR,EAAS+R,CAAM,CACjB,EAAG,CAAClS,EAAOG,CAAQ,CAAC,EAChBgS,GAAuBzU,EAAAA,YAAY,IAAM,CAC3CmT,EAAa,IAAI,GAAK,EACtB1Q,EAAS,CAAA,CAAE,CACb,EAAG,CAACA,CAAQ,CAAC,EACTiS,GAAuB1U,EAAAA,YAAY,IAAM,CAE7C,EAAG,CAAA,CAAE,EACD2U,EAAkB3U,EAAAA,YAAYpD,GAAK,CACrC,IAAIgY,EACA,CACF,cAAAC,CACN,EAAQjY,EACJuR,EAAI,MAAM,kBAAmB0G,EAAeA,aAAyB,YAAapC,EAAU,SAAUmC,EAAqBnC,EAAU,WAAa,MAAQmC,IAAuB,OAAS,OAASA,EAAmB,SAASC,CAAa,CAAC,GACzO,CAACA,GAAiBpC,EAAU,SAAWoC,aAAyB,aAAe,CAACpC,EAAU,QAAQ,SAASoC,CAAa,IAC1HtC,EAAM,CAEV,EAAG,CAACA,CAAM,CAAC,EACPuC,EAAUxS,EAAM,SAAW,EAC/B,OAAoBhE,EAAAA,KAAM,MAAO,CAC/B,IAAKmU,EACL,UAAWjI,EAAW,6DAA8DjC,CAAS,EAC7F,SAAU,CAAcvK,EAAAA,IAAK+W,GAAa,CACxC,SAAU,CAAC,CAAC/C,GAAS8C,EACrB,MAAO7B,EACP,YAAa,SACb,SAAUkB,EACV,UAAW,cACX,OAAQQ,CACd,CAAK,EAAgB3W,EAAAA,IAAKgX,GAAiB,CACrC,UAAW,mBACX,SAAUpE,IAAU,QAAakE,EACjC,UAAW3L,EACX,MAAO2L,EAAU,CAAC,CAChB,MAAO,QACP,WAAY,EACpB,CAAO,EAAIxS,EACL,UAAWgR,EACX,OAAQ,EACR,SAAUe,GACV,iBAAkBK,GAClB,IAAKrB,EACL,OAAQsB,CACd,CAAK,EAAG/D,GAAsBtS,EAAAA,KAAM,MAAO,CACrC,UAAW,WACX,SAAU,CAAcN,EAAAA,IAAK,MAAO,CAClC,UAAW,6CACX,SAAU4S,GAAS,MAAQA,EAAM,KAAO0C,GAA0BhV,EAAAA,KAAMC,WAAW,CACjF,SAAU,CAAC,yCAA0C0T,GAAY,SAAS,CACpF,CAAS,CACT,CAAO,EAAgB3T,EAAAA,KAAM,MAAO,CAC5B,SAAU,CAAcN,EAAAA,IAAK,SAAU,CACrC,KAAM,SACN,UAAW,eACX,OAAQ2W,EACR,QAASJ,GACT,SAAU,YACpB,CAAS,EAAgBvW,EAAAA,IAAK,SAAU,CAC9B,KAAM,SACN,UAAW,oBACX,OAAQ2W,EACR,QAASF,GACT,SAAU,OACpB,CAAS,CAAC,CACV,CAAO,CAAC,CACR,CAAK,EAAG7D,GAAS,MAAQoB,GAAsBhU,EAAAA,IAAK,MAAO,CACrD,UAAW,gCACX,SAAuBA,EAAAA,IAAK4H,EAAgB,CAC1C,SAAUgL,GAAS,KACnB,UAAWA,GAAS,MAAQoB,GAAS,KACrC,cAAeI,EAAiBJ,GAAU,KAA2B,OAASA,EAAM,WAAa,MAAQI,IAAmB,OAASA,EAAiB,KACtJ,cAAe,qBACvB,CAAO,CACP,CAAK,CAAC,CACN,CAAG,CACH,CC5NA,IAAIlW,GAAY,CAAC,gBAAiB,oBAAoB,EACtD,SAASC,GAAQ,EAAGC,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAGF,IAAME,EAAIA,EAAE,OAAO,SAAUF,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAY,CAAC,GAAIC,EAAE,KAAK,MAAMA,EAAGC,CAAC,CAAG,CAAE,OAAOD,CAAG,CAC9P,SAASE,GAAc,EAAG,CAAE,QAASH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAID,GAAQ,OAAOE,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAEI,GAAgB,EAAGJ,EAAGC,EAAED,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIF,GAAQ,OAAOE,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAO,CAAG,CACtb,SAASI,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CACvT,SAASQ,GAAyB,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIP,EAAGF,EAAGM,EAAII,GAA8B,EAAG,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAG,IAAKX,EAAI,EAAGA,EAAIW,EAAE,OAAQX,IAAKE,EAAIS,EAAEX,CAAC,EAAU,EAAE,QAAQE,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAK,EAAGA,CAAC,IAAMI,EAAEJ,CAAC,EAAI,EAAEA,CAAC,EAAI,CAAE,OAAOI,CAAG,CACrU,SAASI,GAA8BV,EAAGQ,EAAG,CAAE,GAAYR,GAAR,KAAW,MAAO,GAAI,IAAIC,EAAI,CAAA,EAAI,QAAS,KAAKD,EAAG,GAAI,CAAA,EAAG,eAAe,KAAKA,EAAG,CAAC,EAAG,CAAE,GAAWQ,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAUP,EAAE,CAAC,EAAID,EAAE,CAAC,CAAG,CAAE,OAAOC,CAAG,CAK/L,SAAS4Y,GAAShY,EAAO,CAC9B,IAAIiY,EAAkBC,GAAelY,CAAK,EACxC,CACE,cAAemY,EACf,mBAAAC,CACN,EAAQH,EACJI,EAAczY,GAAyBqY,EAAiBhZ,EAAS,EAC/DqZ,EAAYhY,EAAAA,OAAO,EAAK,EACxBiY,EAAgBjY,EAAAA,OAAO,EAAE,EACzBkY,EAAgBzV,EAAAA,YAAYqB,GAAS,CACvC+T,GAA0B,MAA4CA,EAAsB/T,CAAK,EAG7FkU,EAAU,QACZF,EAAmBhU,CAAK,GAUxBgU,EAAmB,EAAE,EACrBG,EAAc,QAAUnU,EAE5B,EAAG,CAAC+T,EAAuBC,CAAkB,CAAC,EAC1CnP,EAAelG,EAAAA,YAAY,CAACoI,EAAQsN,IAAgB,CACtD,IAAIC,GACHA,EAAwBL,EAAY,gBAAkB,MAAQK,IAA0B,QAAUA,EAAsB,KAAKL,EAAalN,CAAM,EAG5IA,EAIIsN,IAAgB,SACvBL,EAAmBG,EAAc,OAAO,EAJxCH,EAAmB,EAAE,EAQvBE,EAAU,QAAUnN,CACtB,EAAG,CAACiN,EAAoBC,CAAW,CAAC,EACpC,OAAoBtX,MAAK4X,GAEvBrZ,GAAcA,GAAc,CAAA,EAAI+Y,CAAW,EAAG,CAAA,EAAI,CAClD,cAAeG,EACf,aAAcvP,CAClB,CAAG,CAAC,CACJ,CC9DA,IAAIhK,GAAY,CAAC,QAAS,YAAa,cAAe,aAAc,UAAU,EAC9E,SAASC,GAAQ,EAAGC,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAGF,IAAME,EAAIA,EAAE,OAAO,SAAUF,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAY,CAAC,GAAIC,EAAE,KAAK,MAAMA,EAAGC,CAAC,CAAG,CAAE,OAAOD,CAAG,CAC9P,SAASE,GAAc,EAAG,CAAE,QAASH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAID,GAAQ,OAAOE,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAEI,GAAgB,EAAGJ,EAAGC,EAAED,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIF,GAAQ,OAAOE,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAO,CAAG,CACtb,SAASI,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CACvT,SAASQ,GAAyB,EAAG,EAAG,CAAE,GAAY,GAAR,KAAW,MAAO,CAAA,EAAI,IAAIP,EAAGF,EAAGM,EAAII,GAA8B,EAAG,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAG,IAAKX,EAAI,EAAGA,EAAIW,EAAE,OAAQX,IAAKE,EAAIS,EAAEX,CAAC,EAAU,EAAE,QAAQE,CAAC,IAAlB,IAAuB,CAAA,EAAG,qBAAqB,KAAK,EAAGA,CAAC,IAAMI,EAAEJ,CAAC,EAAI,EAAEA,CAAC,EAAI,CAAE,OAAOI,CAAG,CACrU,SAASI,GAA8BV,EAAGQ,EAAG,CAAE,GAAYR,GAAR,KAAW,MAAO,GAAI,IAAIC,EAAI,CAAA,EAAI,QAAS,KAAKD,EAAG,GAAI,CAAA,EAAG,eAAe,KAAKA,EAAG,CAAC,EAAG,CAAE,GAAWQ,EAAE,QAAQ,CAAC,IAAlB,GAAqB,SAAUP,EAAE,CAAC,EAAID,EAAE,CAAC,CAAG,CAAE,OAAOC,CAAG,CAM/L,SAASwZ,GAAS7R,EAAM,CAC7B,IAAI8R,EACA,CACA,MAAAlF,EACA,UAAWmF,EACX,YAAaC,EACb,WAAYC,EACZ,SAAA5D,CACN,EAAQrO,EACJ/G,EAAQJ,GAAyBmH,EAAM9H,EAAS,EAC9C,CACF,MAAAga,CACJ,EAAMC,GAAwB,EACxBC,EAAaC,IAAuBP,EAAiB7Y,EAAM,WAAa,MAAQ6Y,IAAmB,OAASA,EAAiB,SAAS,EAAEI,CAAK,EAC7I,CACF,mBAAoB3C,CACxB,EAAM+C,GAAajE,CAAQ,EACrBkE,EAAiBC,GAAuB,CAC1C,MAAA5F,EACA,eAAAqF,EACA,cAAAF,EACA,gBAAAC,EACA,YAAAzC,CACJ,CAAG,EACG,CACF,aAAAnR,EACA,SAAAqU,CACJ,EAAMC,GAAgB,CAClB,wBAAyB,GACzB,MAAA9F,EACA,WAAAwF,EACA,eAAAG,CACJ,CAAG,EACD,OAAoBvY,MAAK2Y,GAEvBpa,GAAcA,GAAc,CAAA,EAAIU,CAAK,EAAG,CAAA,EAAI,CAC5C,gBAAiBmF,EAAa,MAC9B,cAAe6T,GAAkB,KACjC,SAAUQ,CACd,CAAG,CAAC,CACJ,CChDA,SAASG,GAAavV,EAAO,CAC3B,OAAO,OAAOA,GAAU,UAAYA,GAAS,MAAQ,WAAYA,GAAS,OAAOA,EAAM,QAAW,UACpG,CACA,SAASwV,GAAmBxV,EAAO,CACjC,MAAO,GAAG,OAAOA,CAAK,CACxB,CAIO,SAASyV,GAAc9S,EAAM,CAClC,GAAI,CACF,OAAA0N,EACA,MAAAd,EACA,OAAAmG,EAASC,GACT,SAAAvU,EACA,cAAA6R,EACA,SAAA2C,EACA,UAAA1O,EACA,YAAAgL,EAAcsD,GACd,QAAAK,EAAU,GACd,EAAMlT,EACAwM,EAAK7B,EAAM,EACX,CAAC6F,EAAQ2C,CAAS,EAAI3W,EAAAA,SAAS,CAAA,CAAE,EACrCC,EAAAA,UAAU,IAAM,CACd,GAAImQ,GAAS,KAAM,CACjBuG,EAAU,CAAA,CAAE,EACZ,MACF,CACA,IAAIC,EAAc1F,GAAgDd,EAAM,QAAQ,CAAC,EAEjFA,EAAM,YAAYmG,CAAM,EACxB,IAAIM,EAAezG,EAAM,YAAY,EAAGsG,EAAS,CAACE,CAAW,CAAC,EAC9D,OAAAC,EAAa,iBAAiB7G,EAAG,MAAM,cAAerQ,GAAS,CAC7D,GAAI,CACF,OAAAsR,CACR,EAAUtR,EAIAmX,EAAY7F,EAAO,KAAK,IAAI8F,GAAO,CACrC,IAAIC,EACJ,OAAQA,EAAWD,EAAI,IAAIH,CAAW,KAAO,MAAQI,IAAa,OAASA,EAAW,IACxF,CAAC,EACDL,EAAUG,CAAS,CACrB,CAAC,EACM,IAAM,CACXD,EAAa,MAAK,CACpB,CACF,EAAG,CAAC3F,EAAQlB,EAAIuG,EAAQG,EAAStG,CAAK,CAAC,EAGvC,IAAI6G,EAAYha,EAAAA,QAAQ,IAClB6W,IAAkB,OACb,CAAC,OAAW,GAAGE,CAAM,EAEvBA,EACN,CAACF,EAAeE,CAAM,CAAC,EAGtBkD,EAAgBja,EAAAA,QAAQ,IAAMga,EAAU,UAAUpW,GAASA,IAAUiT,GAAiBsC,GAAavV,CAAK,GAAKA,EAAM,OAAOiT,CAAa,CAAC,EAAG,CAACA,EAAemD,CAAS,CAAC,EACrKE,EAAe3X,EAAAA,YAAY4X,GAAoB,CACjD,IAAIC,EAAmB,SAASD,EAAkB,EAAE,EACpDnV,EAASgV,EAAUI,CAAgB,CAAC,CACtC,EAAG,CAACpV,EAAUgV,CAAS,CAAC,EACxB,OAAoBzZ,EAAAA,IAAK8Z,GAAQ,CAC/B,UAAWvP,EACX,MAAOmP,EACP,SAAUC,EACV,SAAUV,EACV,SAAUQ,EAAU,IAAI,CAACpW,EAAO3E,IAGhCsB,EAAAA,IAAK+Z,GAAQ,CACX,MAAOrb,EACP,SAAU6W,EAAYlS,CAAK,CACjC,EAAO,GAAG,OAAO3E,CAAC,CAAC,CAAC,CACpB,CAAG,CACH,CC9EA,IAAIyR,GAAM3J,EAAI,OAAO,qBAAqB,EACnC,SAASwT,IAAsB,CACpC,IAAIC,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI3F,GAC9E1C,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAIsI,GAC3EC,EAAU1a,EAAAA,QAAQ,IAAM,IAAI,iBAAiBmS,CAAI,EAAG,CAACA,CAAI,CAAC,EAC9DnP,OAAAA,EAAAA,UAAU,IAAM,IAAM,CACpB0X,EAAQ,MAAK,CACf,EAAG,CAACA,CAAO,CAAC,EACZ1X,EAAAA,UAAU,IAAM,CACd,SAAS2X,EAAYjY,EAAO,CAC1B,GAAI,CACF,KAAA+Q,CACR,EAAU/Q,EACJ,GAAI,CAACkY,GAAUnH,CAAI,EAAG,CACpB/C,GAAI,MAAM,iCAAkC+C,CAAI,EAChD,MACF,CACA/C,GAAI,MAAM,iBAAkB+C,CAAI,EAChC+G,EAAQ9X,CAAK,CACf,CACA,OAAAgY,EAAQ,iBAAiB,UAAWC,CAAW,EACxC,IAAM,CACXD,EAAQ,oBAAoB,UAAWC,CAAW,CACpD,CACF,EAAG,CAACD,EAASF,CAAO,CAAC,EACdE,CACT,CC3BO,SAASG,GAA0BC,EAASC,EAAU,CAC3D,IAAIvT,EAAYjF,EAAAA,YAAYG,GAAS,CAC/BsY,GAAwBtY,EAAM,IAAI,EACpCoY,GAAY,MAA8BA,EAAQpY,EAAM,IAAI,EACnDuY,GAAyBvY,EAAM,IAAI,IAC5CqY,GAAa,MAA+BA,EAASrY,EAAM,IAAI,EAEnE,EAAG,CAACoY,EAASC,CAAQ,CAAC,EACtBR,GAAoB/S,CAAS,CAC/B,CCFO,SAAS0T,GAAsB/H,EAAOG,EAAahO,EAAY6V,EAAiB,CACrF,IAAIC,EAAaC,EAAa,EAC1B,CAACC,EAAcC,CAAe,EAAIxY,EAAAA,SAAS,EAAE,EAC7C,CACF,MAAOyY,CACX,EAAMnW,EAAkBiW,EAAchW,CAAU,EAC1CmW,EAAqBlZ,EAAAA,YAAY6K,GAAQ,CAC3CmO,EAAgBnO,EAAK,MAAM,CAC7B,EAAG,CAAA,CAAE,EACD,CACF,KAAMsO,EACN,UAAWC,CACf,EAAMC,EAAkBR,EAAW,qBAAsB,CAACjI,EAAOG,EAAakI,EAAuBL,CAAe,CAAC,EAI/GU,EAAcF,GAAwBL,IAAiBE,EAAwB,KAAOE,EAC1F,MAAO,CACL,aAAAJ,EACA,sBAAAE,EACA,YAAAK,EACA,mBAAAJ,CACJ,CACA,CC7BA,IAAI/K,GAAM3J,EAAI,OAAO,4BAA4B,EACtC+U,GAA8B,IAUlC,SAASC,GAA2BpX,EAAc2P,EAAY,CACnE,IAAIhP,EAAa,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAIwW,GACjFV,EAAaC,EAAa,EAC1B,CACF,MAAAlI,EACA,uBAAA6I,CACJ,EAAMrX,EACAsX,EAAkBjc,EAAAA,QAAQ,IAAMkc,GAASC,GAAc,CAEzD,GADAzL,GAAI,MAAM,kCAAkC,OAAOyL,EAAY,GAAG,CAAC,EAC/DhJ,GAAS,KAGb,KAAIiJ,EAAoBD,EAAW,KAAI,EACvC,GAAIC,IAAsB,GAAI,CAC5BJ,EAAuB,CAAA,CAAE,EACzB,MACF,CACA,IAAI/H,EAASd,EAAM,WAAWmB,CAAU,EACpC1Q,EAAQwX,EAAW,gBAAgBnH,EAAO,KAAMmI,CAAiB,EACjE9C,EAAS,CAACrF,EAAO,OAAM,EAAG,SAASrQ,CAAK,CAAC,EAC7CoY,EAAuB1C,CAAM,EAC/B,EAAGhU,CAAU,EAAG,CAAC0W,EAAwB1H,EAAYhP,EAAY6N,EAAOiI,CAAU,CAAC,EACnFpY,OAAAA,EAAAA,UAAU,IAAM,IAAM,CACpB0N,GAAI,MAAM,sCAAsC,EAChDuL,EAAgB,OAAM,CACxB,EAAG,CAACA,CAAe,CAAC,EACbA,CACT,CCtCO,IAAII,GAAc,IAOlB,SAASC,GAAoC/V,EAAM,CACxD,GAAI,CACF,aAAA5B,EACA,WAAA2P,EACA,6BAAAiI,EACA,eAAAC,CACJ,EAAMjW,EACA6U,EAAaC,EAAa,EAG1BoB,EAAkB/X,GAAmBC,EAAc6X,EAAgBE,EAAkB,EAIrF,CACF,MAAOC,CACX,EAAMtX,EAAkBoX,EAAiBJ,EAAW,EAM9CO,EAAsBjZ,GAAegZ,EAA0Bpb,EAA6B,EAChG,OAAOvB,EAAAA,QAAQ,IAAM6c,GAA2BzB,EAAY9G,EAAYsI,EAAoB,UAAWL,EAA8BK,EAAoB,UAAU,EAAG,CAACtI,EAAYsI,EAAqBL,EAA8BnB,CAAU,CAAC,CACnP,CCxBO,SAAS0B,GAAiCjY,EAAOkY,EAAaZ,EAAYa,EAAqB,CAIpG,IAAIC,EAAgBnd,EAAAA,OAAO,EAAE,EAC7B,OAAAmd,EAAc,QAAUd,EACjBnc,EAAAA,QAAQ,IAAM,CAEnB,IAAIkd,EAAYrY,EAAM,OAAS,GAAKA,EAAM,CAAC,EAAE,MAAQ,KACrD,MAAI,CAACqY,GAAaF,GAAuB,OAASC,EAAc,UAAY,IAAMD,EAAoB,YAAW,EAAG,SAASC,EAAc,QAAQ,YAAW,CAAE,GACvJ,CAAC,CACN,IAAKD,EACL,KAAM,CACJ,CAACD,CAAW,EAAGC,CACzB,CACA,EAAS,GAAGnY,CAAK,EAENA,CACT,EAAG,CAACmY,EAAqBD,EAAalY,CAAK,CAAC,CAC9C,CC9BA,SAASsL,GAAmB7Q,EAAG,EAAGH,EAAGR,EAAGE,EAAGuR,EAAGC,EAAG,CAAE,GAAI,CAAE,IAAIpR,EAAIK,EAAE8Q,CAAC,EAAEC,CAAC,EAAGC,EAAIrR,EAAE,KAAO,OAASK,EAAG,CAAE,OAAO,KAAKH,EAAEG,CAAC,CAAG,CAAEL,EAAE,KAAO,EAAEqR,CAAC,EAAI,QAAQ,QAAQA,CAAC,EAAE,KAAK3R,EAAGE,CAAC,CAAG,CACxK,SAAS0R,GAAkBjR,EAAG,CAAE,OAAO,UAAY,CAAE,IAAI,EAAI,KAAMH,EAAI,UAAW,OAAO,IAAI,QAAQ,SAAUR,EAAGE,EAAG,CAAE,IAAIuR,EAAI9Q,EAAE,MAAM,EAAGH,CAAC,EAAG,SAASqR,EAAMlR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,OAAQnR,CAAC,CAAG,CAAE,SAASmR,EAAOnR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,QAASnR,CAAC,CAAG,CAAEkR,EAAM,MAAM,CAAG,CAAC,CAAG,CAAG,CAYzT,SAAS2M,GAAmB5W,EAAM,CACvC,GAAI,CACF,MAAA4M,EACA,WAAAmB,EACA,aAAArP,EACA,WAAA0T,EACA,UAAAyE,EAAY,EACZ,MAAAxZ,CACJ,EAAM2C,EACJ,OAAOhE,EAAAA,YAAyBgO,GAAkB,WAAa,CAC7D,GAAI4C,GAAS,MAAQvP,IAAU,IAAMA,IAAUqB,EAC7C,OAAOmY,EAET,IAAInJ,EAASd,EAAM,WAAWmB,CAAU,EACpC+I,EAAW,MAAMlK,EAAM,QAAQ,EAAGc,EAAQ,SAAUrQ,CAAK,EAGzD0Z,EAAoBrY,GAAgB,KAAO,EAAI,EACnD,OAAQoY,EAAWC,GAAqB3E,EAAayE,CACvD,CAAC,EAAG,CAAC9I,EAAYrP,EAAc0T,EAAYxF,EAAOiK,EAAWxZ,CAAK,CAAC,CACrE,CC9BO,SAAS2Z,GAAwBjK,EAAa,CACnD,IAAIkK,EAAoB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KACxFpC,EAAaC,EAAa,EAC1BoC,EAAgCzd,EAAAA,QAAQ,IAAM0d,GAAoCtC,CAAU,EAAG,CAACA,CAAU,CAAC,EAC/G,OAAOpb,UAAQ,IAAM2d,GAA6BrK,EAAamK,EAA+BD,CAAiB,EAAG,CAAClK,EAAakK,EAAmBC,CAA6B,CAAC,CACnL,CCcO,SAASG,GAA4BrX,EAAM,CAChD,GAAI,CACF,WAAAsX,EACA,WAAAvJ,EACA,eAAAkI,EACA,yBAAAsB,EAA2B,CAAA,EAC3B,eAAAC,EAAiB,GACjB,SAAAC,CACJ,EAAMzX,EACA,CACF,WAAAoS,CACJ,EAAMsF,GAAkB,EAClB7C,EAAaC,EAAa,EAM1B,CAACc,EAAY+B,CAAa,EAAInb,EAAAA,SAAS,EAAE,EACzC,CAACob,EAAmBC,CAAoB,EAAIrb,EAAAA,SAAS,EAAE,EACvDsb,EAAkB9b,EAAAA,YAAY6K,GAAQ,CACxCgR,EAAqBL,EAAiB3Q,EAAK,KAAI,EAAKA,CAAI,CAC1D,EAAG,CAAC2Q,CAAc,CAAC,EACfO,EAAyBte,EAAAA,QAAQ,IAAM+d,EAAiB5B,EAAW,KAAI,EAAKA,EAAY,CAACA,EAAY4B,CAAc,CAAC,EACpH,CAACQ,EAAaC,CAAc,EAAIzb,EAAAA,SAAS,IAAI,EAC7C,CAAC0b,EAAkBC,CAAmB,EAAI3b,EAAAA,SAAS,IAAM,IAAI,GAAK,EAClE,CACF,KAAM8Y,EACN,UAAWF,CACf,EAAMC,EAAkBR,EAAW,qBAAsB,CAACyC,EAAYvJ,EAAY6J,EAAmB,GAA4B,EAU3H,CACF,aAAcQ,CAClB,EAAMtZ,EAAkB8Y,EAAmBS,EAAkB,EAIvDC,EAAmBF,GAAoBhD,EAAuB,KAAOE,EACrEiD,EAAmB9e,EAAAA,QAAQ,IAAM+e,GAAuB3D,EAAY9G,EAAY6J,EAAmBH,CAAQ,EAAG,CAACG,EAAmB7J,EAAY8G,EAAY4C,CAAQ,CAAC,EAGnKgB,EAA8Bhf,EAAAA,QAAQ,IAAM6c,GAA2BzB,EAAY9G,EAAY,IAAI,IAAImK,EAAiB,KAAI,CAAE,EAAG,GAAO,EAAI,EAAG,CAACnK,EAAYmK,EAAkBrD,CAAU,CAAC,EACzL,CACF,KAAM6D,CACV,EAAMrD,EAAkBR,EAAW,gCAAiC,CAACyC,EAAYvJ,EAAY,MAAO,GAAGwJ,CAAwB,CAAC,EAC9HoB,GAAeD,CAAS,EACxB,IAAIE,EAAOlG,GAAgB,CACzB,MAAOgG,EACP,WAAAtG,EACA,aAAcyG,GACd,gBAAiBC,EACrB,CAAG,EACGC,EAA+BhB,EAAuB,OAAS,GAAKa,EAAK,OAAS,EAClFI,EAA+Bd,EAAiB,IAAIH,CAAsB,EAC1EkB,EAA8BC,GAAqBpB,EAAiBO,EAAkB,EACtFhH,GAAqBrV,EAAAA,YAAY6K,GAAQ,CAC3C8Q,EAAc9Q,CAAI,EAClBoS,EAA4BpS,CAAI,CAClC,EAAG,CAACoS,CAA2B,CAAC,EAC5BE,GAA4BD,GAAqBjB,EAAgB,CAAC,EAClEmB,GAAcpd,EAAAA,YAAYjB,GAAO,CAanC,GAZA4c,EAAc,EAAE,EAChBG,EAAgB,EAAE,EAGlBG,EAAeld,CAAG,EAIlBoe,GAA0B,IAAI,EAI1Bpe,GAAO,KAGX,KAAIO,EAAOsd,EAAK,aAAa,SAAS7d,CAAG,EACzC,GAAIO,GAAQ,KAGZ,KAAI+B,EAAQ4Y,EAAe3a,CAAI,EAC/B6c,EAAoBkB,GAAQ,CAC1B,IAAIC,EAAO,IAAI,IAAID,CAAI,EACvB,OAAAC,EAAK,IAAIjc,EAAO,CACd,MAAAA,CACR,CAAO,EACMic,CACT,CAAC,GACH,EAAG,CAACxB,EAAiBqB,GAA2BP,EAAK,aAAc3C,CAAc,CAAC,EAC9EsD,GAAcvd,EAAAA,YAAYwU,GAAU,CACtC2H,EAAoBkB,GAAQ,CAC1B,GAAI7I,EAAO,OAAS,EAClB,OAAO6I,EAET,IAAIC,EAAO,IAAI,IAAID,CAAI,EAGvB,QAAShc,KAASmT,EAChB8I,EAAK,IAAIjc,EAAO,CACd,MAAAA,CACV,CAAS,EAEH,OAAOic,CACT,CAAC,CACH,EAAG,CAAA,CAAE,EACDE,EAAiBxd,EAAAA,YAAYwU,GAAU,CACzC2H,EAAoBkB,GAAQ,CAC1B,GAAI7I,IAAW,MACb,OAAO,IAAI,IAEb,IAAI8I,EAAO,IAAI,IAAID,CAAI,EAGvB,QAAShc,KAASmT,EAChB8I,EAAK,OAAOjc,CAAK,EAEnB,OAAOic,CACT,CAAC,CACH,EAAG,CAAA,CAAE,EACDvG,EAAS0G,GAA4Bb,EAAK,MAAOL,EAAkBE,CAA2B,EAClG,OAAAiB,GAAkBd,EAAM7F,CAAM,EACvBtZ,EAAAA,QAAQ,KAAO,CACpB,KAAAmf,EACA,6BAAAG,EACA,WAAAnD,EACA,iBAAA0C,EACA,6BAAAU,EACA,YAAAhB,EACA,iBAAAE,EACA,mBAAA7G,GACA,YAAA+H,GACA,YAAAG,GACA,eAAAC,CACJ,GAAM,CAACT,EAA8BH,EAAMW,GAAaC,EAAgBnI,GAAoB+H,GAAaxD,EAAY0C,EAAkBU,EAA8BhB,EAAaE,CAAgB,CAAC,CACnM,CCpKA,SAAStO,GAAmB7Q,EAAG,EAAGH,EAAGR,EAAGE,EAAGuR,EAAGC,EAAG,CAAE,GAAI,CAAE,IAAIpR,EAAIK,EAAE8Q,CAAC,EAAEC,CAAC,EAAGC,EAAIrR,EAAE,KAAO,OAASK,EAAG,CAAE,OAAO,KAAKH,EAAEG,CAAC,CAAG,CAAEL,EAAE,KAAO,EAAEqR,CAAC,EAAI,QAAQ,QAAQA,CAAC,EAAE,KAAK3R,EAAGE,CAAC,CAAG,CACxK,SAAS0R,GAAkBjR,EAAG,CAAE,OAAO,UAAY,CAAE,IAAI,EAAI,KAAMH,EAAI,UAAW,OAAO,IAAI,QAAQ,SAAUR,EAAGE,EAAG,CAAE,IAAIuR,EAAI9Q,EAAE,MAAM,EAAGH,CAAC,EAAG,SAASqR,EAAMlR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,OAAQnR,CAAC,CAAG,CAAE,SAASmR,EAAOnR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,QAASnR,CAAC,CAAG,CAAEkR,EAAM,MAAM,CAAG,CAAC,CAAG,CAAG,CAcjT,SAAS0P,GAAuB/M,EAAO,CACpD,QAASgN,EAAO,UAAU,OAAQ7M,EAAc,IAAI,MAAM6M,EAAO,EAAIA,EAAO,EAAI,CAAC,EAAGC,EAAO,EAAGA,EAAOD,EAAMC,IACzG9M,EAAY8M,EAAO,CAAC,EAAI,UAAUA,CAAI,EAExC,IAAIC,EAAiB9d,cAAyBgO,GAAkB,WAAa,CAC3E,IAAI+P,EACJ,OAAQA,EAAwBnN,GAAU,KAA2B,OAASA,EAAM,eAAeA,EAAM,YAAYG,CAAW,CAAC,KAAO,MAAQgN,IAA0B,OAASA,EAAwB,IAC7M,CAAC,EAGD,CAACnN,EAAO,GAAGG,CAAW,CAAC,EACnB,CACF,KAAMiN,EACN,MAAAhM,EACA,QAAAiM,EACA,UAAAtD,CACJ,EAAMtB,EAAkByE,EAAgB,EAAE,EACxCrd,OAAAA,EAAAA,UAAU,IAAM,IAAM,CACpBud,GAAkB,MAAoCA,EAAc,MAAK,CAC3E,EAAG,CAACA,CAAa,CAAC,EACX,CACL,cAAAA,EACA,MAAAhM,EACA,QAAAiM,EACA,UAAAtD,CACJ,CACA,CC/BO,SAASuD,GAAuBC,EAAMpN,EAAa,CACxD,IAAI8H,EAAaC,EAAa,EAC1BsF,EAAwB3gB,UAAQ,IAAM4gB,GAAmCxF,EAAYsF,CAAI,EAAG,CAACA,EAAMtF,CAAU,CAAC,EAClH,OAAOpb,EAAAA,QAAQ,IAAM2d,GAA6BrK,EAAaqN,CAAqB,EAAG,CAACrN,EAAaqN,CAAqB,CAAC,CAC7H,CCLO,SAASE,GAAevN,EAAa1P,EAAOkd,EAAU,CAC3D,IAAI1F,EAAaC,EAAa,EAC9B,OAAOrb,EAAAA,QAAQ,IAAM+gB,GAAkB3F,EAAY9H,EAAa1P,EAAOkd,CAAQ,EAAG,CAACxN,EAAawN,EAAU1F,EAAYxX,CAAK,CAAC,CAC9H,01BCZA,SAAS7E,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CAIvT,MAAMoiB,CAAkB,CACtB,OAAO,aAAa3D,EAAU4D,EAAanL,EAAa,CACtD,IAAIlS,EAAQ,GAAG,OAAOyZ,EAAU,GAAG,EAAE,OAAO4D,CAAW,EACvD,OAAInL,IAAgB,QAAaA,IAC/BlS,EAAQ,IAAI,OAAOA,EAAO,GAAG,GAExBA,CACT,CACA,YAAYmP,EAAI,CACdhU,GAAgB,KAAM,KAAM,MAAM,EAClCA,GAAgB,KAAM,gBAAiB,MAAM,EAC7C,KAAK,GAAKgU,EACV,KAAK,cAAgB,IAAImO,GAAcnO,CAAE,CAC3C,CACA,WAAWZ,EAAM,CACf,IAAIzD,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAIsS,EAAkB,aAC7FhU,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,EAEhF,OAAO,IAAI,KAAK,GAAG,OAAO,CACxB,MAAAA,EACA,KAAAmF,EACA,KAAAzD,CACN,CAAK,CACH,CACA,uBAAwB,CAEtB,OAAO,IAAI,KAAK,GAAG,iBACrB,CACA,aAAc,CAIZ,QAHIyS,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,EAC5EC,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GAC7E7N,EAAU,CAAA,EACLtU,EAAI,EAAGA,EAAIkiB,EAAOliB,GAAK,EAC9BsU,EAAQ,KAAK,KAAK,WAAW,GAAG,OAAO6N,CAAM,EAAE,OAAOniB,CAAC,EAAG+hB,EAAkB,aAAc/hB,CAAC,CAAC,EAE9F,OAAOsU,CACT,CACA,OAAO,sBAAuB,CAG5B,QAFI4N,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,EAC5EE,EAAmB,IAAI,IAClBpiB,EAAI,EAAGA,EAAIkiB,EAAOliB,GAAK,EAC9BoiB,EAAiB,IAAIpiB,EAAE,SAAQ,EAAI,GAAG,EAExC,OAAOoiB,CACT,CACA,QAAQpiB,EAAG,CAET,IAAI6a,EAAM,IAAI,KAAK,GAAG,IAAI,CACxB,MAAO7a,EACP,KAAM,GAAG,OAAOA,CAAC,CACvB,CAAK,EACD,OAAA6a,EAAI,IAAM,KAAK,GAAG7F,GAAU+M,EAAkB,aAAa/hB,EAAGgV,EAAO,KAAK,CAAC,EACpE6F,CACT,CACA,YAAa,CAEX,OAAO,IAAI,KAAK,GAAG,eACrB,CACA,UAAW,CACT,IAAI7F,EAAS,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAAK,WAAU,EAEhG,OAAO,IAAI,KAAK,GAAG,KAAK,CACtB,OAAAA,CACN,CAAK,CACH,CACA,YAAYqN,EAAgB/N,EAAS,CACnC,OAAO,KAAK,cAAc,cAAcA,EAAS+N,CAAc,CACjE,CACA,WAAY,CACV,GAAI,CACF,QAAA/N,EAAU,KAAK,YAAW,EAC1B,KAAAtS,EAAO,IACP,KAAAsgB,EAAO,CAAA,EACP,YAAAC,EAAc,CAAA,CACpB,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAA,EAEpErO,EAAQ,IAAI,KAAK,GAAG,MAAM,CAC5B,QAAAI,EACA,KAAAtS,EACA,KAAAsgB,CACN,CAAK,EACD,OAAApO,EAAM,KAAO,KAAK,GAAG,IAAM,QAAQ,QAAQA,CAAK,CAAC,EACjDA,EAAM,OAAS,KAAK,GAAG,IAAM,QAAQ,QAAQA,CAAK,CAAC,EACnDA,EAAM,YAAcqO,EACbrO,CACT,CACA,eAAgB,CACd,IAAII,EAAU,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAAK,YAAW,EAC9FkO,EAAoB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAA,EACxFC,EAAiB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAA,EACrFzgB,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,IAC3EsgB,EAAO,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAA,EAC3EC,EAAc,UAAU,OAAS,EAAI,UAAU,CAAC,EAAI,OAEpDrO,EAAQ,IAAI,KAAK,GAAG,UAAU,CAChC,QAAAI,EACA,kBAAAkO,EACA,eAAAC,EACA,KAAAzgB,EACA,KAAAsgB,EACA,YAAAC,CACN,CAAK,EACD,OAAArO,EAAM,KAAO,KAAK,GAAG,IAAM,QAAQ,QAAQA,CAAK,CAAC,EAC1CA,CACT,CACA,OAAO,gBAAiB,CACtB,IAAIwO,EAAa,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAA,EACjFC,EAAe,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAA,EACnF,CACF,KAAAhgB,EACA,OAAAmV,CACN,EAAQ,CAAC,GAAG4K,EAAY,GAAGC,CAAY,EAAE,OAAO,CAACC,EAAKC,KAC5CH,EAAW,SAASG,CAAG,EAAGD,EAAI,KAAK,KAAKC,EAAI,IAAI,EAAOD,EAAI,OAAO,KAAKC,EAAI,IAAI,EAC5ED,GACN,CACD,KAAM,CAAA,EACN,OAAQ,CAAA,CACd,CAAK,EACD,MAAO,CACL,KAAAjgB,EACA,OAAAmV,CACN,CACE,CACA,kBAAmB,CACjB,IAAI5D,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAAK,UAAS,EAE9F,OAAO,IAAI,KAAK,GAAG,0BAA0B,CAC3C,MAAAA,CACN,CAAK,CACH,CACA,WAAY,CACV,IAAIA,EAAQ,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAAK,UAAS,EAC1F8B,EAAY,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KAChF8M,EAAa,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,KACjF,CACF,GAAAhP,CACN,EAAQ,KACJ,OAAO,IAAIiP,GAAmBjP,EAAII,EAAO8B,GAAyD,IAAIM,GAAUxC,CAAE,EAAGgP,CAAU,CACjI,CACF,CACAhjB,GAAgBiiB,EAAmB,eAAgB,kBAAkB,6+CC1I9D,SAASiB,GAAkB1b,EAAM,CACtC,GAAI,CACF,eAAA2b,EACA,cAAAC,EACA,UAAAC,EACA,eAAAC,EACA,QAAAC,EACA,UAAAC,CACJ,EAAMhc,EACA,CACF,GAAAic,EACA,OAAAC,EACA,kBAAAC,CACJ,EAAMR,EACAS,EAAkBpgB,EAAAA,YAAYqgB,GAAS,CACzC,GAAI,CACF,UAAAC,EACA,QAAAC,EAAU1e,GAAM,EAChB,OAAAkL,CACN,EAAQsT,EACA,CACF,KAAAzQ,EACA,KAAAzD,CACN,EAAQY,EACAyT,EAAkBrU,GAAQ,OAAS,MAAM,QAAQ2T,CAAc,GAAKA,EAAe,SAAS3T,CAAI,GAAKA,IAAS2T,GAClH,GAAKU,EAIL,KAAIvjB,EAAQ,CACV,iBAAkBgjB,EAClB,SAAUlT,CAChB,EACQgT,GAAW,OACb9iB,EAAQ8iB,EAAQ9iB,EAAOgjB,CAAE,GAE3B,IAAIQ,EAAS,CACX,KAAM,kBACN,UAAWb,EACX,MAAA3iB,EACA,MAAO2S,GAA0C,OACjD,GAAI2Q,CACV,EACQ,CACF,KAAAG,CACN,EAAQR,EACJS,GAAY,cAAc,CACxB,KAAAD,EACA,OAAAD,EACA,UAAAH,CACN,CAAK,EACH,EAAG,CAACV,EAAeG,EAASE,EAAIC,EAAQJ,CAAc,CAAC,EAKvDc,GAAqBT,EAAmBN,EAAWE,EAASC,CAAS,EAKrEa,GAAqBX,EAAO,SAAUE,CAAe,CACvD,CC5DO,SAASU,GAAuBC,EAAaC,EAAU,CAC5D,IAAIC,EAAWC,GAAW,EACtBhQ,EAAOiQ,GAAYC,GAASC,GAA0BD,EAAOL,EAAaC,CAAQ,CAAC,EACnF7P,EAAUnR,EAAAA,YAAYshB,GAAWL,EAASM,GAAuBR,EAAaC,EAAUM,CAAO,CAAC,EAAG,CAACP,EAAaC,EAAUC,CAAQ,CAAC,EACxI,MAAO,CAAC/P,EAAMC,CAAO,CACvB,4jDCPO,SAASqQ,GAAgBC,EAAe,CAC7C,GAAI,CACF,UAAW7c,EACX,UAAW8c,EACX,UAAW5c,CACf,EAAML,GAAgB,EACpB,OAAOhH,EAAAA,QAAQ,IAETmH,EACE8c,EACK,KAEF5c,EAAoB,CAACA,CAAiB,EAAI,CAAA,EAI5C2c,GAAiB,KAAO,KAAOE,GAAwBF,CAAa,EAC1E,CAAC7c,EAAwB8c,EAAwB5c,EAAmB2c,CAAa,CAAC,CACvF,CCtBO,SAASG,GAAW5d,EAAM,CAC/B,GAAI,CACF,MAAA6K,EACA,KAAA1C,CACJ,EAAMnI,EACA6d,EAAUC,GAAU,EACpBC,EAAStkB,UAAQ,IAAM,CAAC,GAAGokB,EAAQ,OAAM,CAAE,EAAE,OAAOG,EAAc,EAAE,KAAKC,GAAK,CAACA,EAAE,cAAc,EAAE,OAAO,SAAS9V,CAAI,CAAC,EAAG,CAAC0V,EAAS1V,CAAI,CAAC,EAC5I,GAAI4V,GAAU,KAAM,CAClB,IAAIG,EAAYH,EAAO,UACvB,OAAoB/jB,EAAAA,IAAKkkB,EAAW,CAClC,MAAOrT,CACb,CAAK,CACH,CACA,MAAM,IAAI,MAAM,wBAAwB,OAAO1C,EAAM,GAAG,CAAC,CAC3D,CCXO,SAASgW,IAAuB,CAErC,IAAIN,EAAUC,GAAU,EACpBM,EAAiB3kB,EAAAA,QAAQ,IAAM4kB,GAAqBR,CAAO,EAAG,CAACA,CAAO,CAAC,EAC3E,OAAOO,CACT,onBCCO,SAASE,GAAaP,EAAQ,CACnC,GAAIA,GAAU,KAAM,MAAO,GAC3B,IAAIQ,EAAaR,EACjB,OAAOQ,EAAW,YAAc,QAAa,OAAOA,EAAW,aAAgB,UACjF,CCjBO,IAAIC,GAA8B,mDAC9BC,GAAwB,2DCDnC,SAASjmB,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CAChT,MAAMqmB,WAA4B,KAAM,CAC7C,aAAc,CACZ,MAAM,GAAG,SAAS,EAClBlmB,GAAgB,KAAM,OAAQ,qBAAqB,EACnDA,GAAgB,KAAM,wBAAyB,EAAI,CACrD,CACF,CCTA,SAASoR,GAAmB7Q,EAAG,EAAGH,EAAGR,EAAGE,EAAGuR,EAAGC,EAAG,CAAE,GAAI,CAAE,IAAIpR,EAAIK,EAAE8Q,CAAC,EAAEC,CAAC,EAAGC,EAAIrR,EAAE,KAAO,OAASK,EAAG,CAAE,OAAO,KAAKH,EAAEG,CAAC,CAAG,CAAEL,EAAE,KAAO,EAAEqR,CAAC,EAAI,QAAQ,QAAQA,CAAC,EAAE,KAAK3R,EAAGE,CAAC,CAAG,CACxK,SAAS0R,GAAkBjR,EAAG,CAAE,OAAO,UAAY,CAAE,IAAI,EAAI,KAAMH,EAAI,UAAW,OAAO,IAAI,QAAQ,SAAUR,EAAGE,EAAG,CAAE,IAAIuR,EAAI9Q,EAAE,MAAM,EAAGH,CAAC,EAAG,SAASqR,EAAMlR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,OAAQnR,CAAC,CAAG,CAAE,SAASmR,EAAOnR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,QAASnR,CAAC,CAAG,CAAEkR,EAAM,MAAM,CAAG,CAAC,CAAG,CAAG,CAQhU,IAAIE,GAAM3J,EAAI,OAAO,gBAAgB,EAKrC,SAASme,GAAe3e,EAAM,CAC5B,GAAI,CACF,SAAA9G,EACA,gBAAA0lB,CACJ,EAAM5e,EACA6e,EAASC,EAAS,EAClB,CAAC9Q,EAAO+Q,CAAQ,EAAIviB,WAAQ,EAC5B,CAACwiB,EAAYC,CAAa,EAAIziB,EAAAA,SAAS,EAAK,EAqChD,OApCAC,EAAAA,UAAU,IAAM,CACd,IAAIyiB,EAAa,GACjB,SAASC,GAAoB,CAC3B,GAAID,EACF,MAAM,IAAIE,GAAqB,iBAAiB,CAEpD,CACA,SAASC,GAAQ,CACf,OAAOC,EAAO,MAAM,KAAM,SAAS,CACrC,CACA,SAASA,GAAS,CAChB,OAAAA,EAAStV,GAAkB,WAAa,CACtC,GAAI,CACF,IAAIuV,EAAe,MAAMX,EAAe,EACxCO,EAAiB,EACjBhV,GAAI,KAAK,eAAe,EACxB,MAAM0U,EAAO,MAAMU,CAAY,EAC/BJ,EAAiB,EACjBF,EAAc,EAAI,CACpB,OAASrmB,EAAG,CACV,GAAI,CAACsmB,EAAY,CACf,IAAIM,EACJrV,GAAI,MAAM,mBAAoBvR,CAAC,EAC/B,IAAIsP,GAAWsX,EAAmBC,EAAgB7mB,CAAC,KAAO,MAAQ4mB,IAAqB,OAASA,EAAmB,uCACnHT,EAAS,IAAIL,GAAoBxW,CAAO,CAAC,EACzC+W,EAAc,EAAK,CACrB,CACF,CACF,CAAC,EACMK,EAAO,MAAM,KAAM,SAAS,CACrC,CACA,OAAAD,EAAK,EACE,IAAM,CACXH,EAAa,EACf,CACF,EAAG,CAACL,EAAQD,CAAe,CAAC,EACvBI,EAUehlB,EAAAA,IAAKO,EAAAA,SAAW,CAClC,SAAUrB,CACd,CAAG,EAXqBc,EAAAA,IAAK4H,EAAgB,CACvC,cAAe,oBACf,UAAWoM,GAAS,KACpB,SAAU,GACV,aAAcyR,EAAgBzR,CAAK,CACzC,CAAK,CAOL,CCjEA,IAAI0R,GAAuB,CACzB,UAAW,EACb,EAKA,SAASxB,GAAUle,EAAM,CACvB,GAAI,CACF,SAAA9G,CACJ,EAAM8G,EACAwM,EAAK7B,EAAM,EACXiU,EAAkB5iB,EAAAA,YAAY,KAAO,CACvC,KAAMwQ,EAAG,WAAW,oBACxB,GAAM,CAACA,CAAE,CAAC,EACR,OAAoBxS,EAAAA,IAAK2kB,GAAgB,CACvC,gBAAiBC,EACjB,SAAuB5kB,EAAAA,IAAK2lB,GAA+B,SAAU,CACnE,MAAOD,GACP,SAAUxmB,CAChB,CAAK,CACL,CAAG,CACH,CACA,IAAI0mB,GAAsB,CAC1B,UAAE1B,GACA,YAAa2B,GAAgBA,EAAa,SAASrB,EAA2B,CAChF,EChCA,SAAS5U,GAAmB7Q,EAAG,EAAGH,EAAGR,EAAGE,EAAGuR,EAAGC,EAAG,CAAE,GAAI,CAAE,IAAIpR,EAAIK,EAAE8Q,CAAC,EAAEC,CAAC,EAAGC,EAAIrR,EAAE,KAAO,OAASK,EAAG,CAAE,OAAO,KAAKH,EAAEG,CAAC,CAAG,CAAEL,EAAE,KAAO,EAAEqR,CAAC,EAAI,QAAQ,QAAQA,CAAC,EAAE,KAAK3R,EAAGE,CAAC,CAAG,CACxK,SAAS0R,GAAkBjR,EAAG,CAAE,OAAO,UAAY,CAAE,IAAI,EAAI,KAAMH,EAAI,UAAW,OAAO,IAAI,QAAQ,SAAUR,EAAGE,EAAG,CAAE,IAAIuR,EAAI9Q,EAAE,MAAM,EAAGH,CAAC,EAAG,SAASqR,EAAMlR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,OAAQnR,CAAC,CAAG,CAAE,SAASmR,EAAOnR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,QAASnR,CAAC,CAAG,CAAEkR,EAAM,MAAM,CAAG,CAAC,CAAG,CAAG,CAQhU,IAAIE,GAAM3J,EAAI,OAAO,kBAAkB,EACnCkf,GAAuB,CACzB,UAAW,EACb,EACA,SAASI,GAAe/Y,EAAS,CAC/B,OAAOA,GAAW,MAAQ,OAAOA,EAAQ,MAAS,QACpD,CACA,SAAS6X,IAAkB,CACzB,OAAOmB,GAAiB,MAAM,KAAM,SAAS,CAC/C,CACA,SAASA,IAAmB,CAC1B,OAAAA,GAAmB/V,GAAkB,WAAa,CAChDG,GAAI,KAAK,8CAA8C,EACvD,IAAI6V,EAAW,MAAMC,GAAsBC,EAAqB,EAChE,GAAI,CAACJ,GAAeE,CAAQ,EAC1B,MAAM,IAAI,MAAM,sCAAsC,OAAOA,CAAQ,CAAC,EAExE,OAAOA,CACT,CAAC,EACMD,GAAiB,MAAM,KAAM,SAAS,CAC/C,CACA,SAASI,IAAwB,CAC/B,IAAIC,EACJ,OAAQA,EAAuB,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAI,cAAc,KAAO,MAAQA,IAAyB,OAASA,EAAuB,EACvK,CAKA,SAASlC,GAAUle,EAAM,CACvB,GAAI,CACF,SAAA9G,CACJ,EAAM8G,EACJ,OAAoBhG,EAAAA,IAAK2kB,GAAgB,CACvC,gBAAiBC,GACjB,SAAuB5kB,EAAAA,IAAK2lB,GAA+B,SAAU,CACnE,MAAOD,GACP,SAAUxmB,CAChB,CAAK,CACL,CAAG,CACH,CACA,IAAImnB,GAAmB,CACvB,UAAEnC,GACA,YAAa,IAAM/c,GAAe,GAAM,MAAQgf,GAAqB,IAAO,QAC9E,EChDO,SAASG,GAAUtgB,EAAM,CAC9B,GAAI,CACF,SAAA9G,EACA,aAAAqnB,EACA,YAAAC,EAAc,GACd,SAAUC,CACd,EAAMzgB,EACJ,OAAoB1F,EAAAA,KAAM,OAAQ,CAChC,UAAW,aACX,SAAU6B,GAAS,CACjBA,EAAM,eAAc,EACpBA,EAAM,gBAAe,EACrBskB,GAAc,MAAgCA,EAAUtkB,CAAK,CAC/D,EACA,SAAU,CAAcnC,EAAAA,IAAK,MAAO,CAClC,UAAW,aACjB,CAAK,EAAgBM,EAAAA,KAAM,MAAO,CAC5B,UAAW,eACX,SAAU,CAAcN,EAAAA,IAAK,WAAY,CACvC,SAAUwmB,EACV,UAAW,kBACX,SAAUtnB,CAClB,CAAO,EAAgBc,EAAAA,IAAK,MAAO,CAC3B,UAAW,gEACX,SAAuBM,EAAAA,KAAM,SAAU,CACrC,KAAM,SACN,UAAWkM,EAAW,kBAAmB,CACvC,cAAega,CAC3B,EAAa,CACD,iBAAkBA,CAC9B,CAAW,EACD,cAAe,YACf,SAAU,CAACA,GAA4BlmB,EAAAA,KAAM,OAAQ,CACnD,SAAU,CAAcN,EAAAA,IAAK0mB,GAAgB,CAC3C,UAAW,qCACzB,CAAa,EAAgB1mB,EAAAA,IAAK,OAAQ,CAC5B,UAAW,qBACX,SAAU,YACxB,CAAa,EAAgBA,EAAAA,IAAK,OAAQ,CAC5B,UAAW,oBACX,SAAU,QACxB,CAAa,CAAC,CACd,CAAW,EAAG,CAACwmB,GAAe,OAAO,CACrC,CAAS,CACT,CAAO,CAAC,CACR,CAAK,EAAgBxmB,EAAAA,IAAK,MAAO,CAC3B,UAAW,cACX,SAAUumB,GAAgB,MAAqBvmB,EAAAA,IAAK,IAAK,CACvD,UAAW,qBACX,KAAM,QACN,SAAU,GAAG,OAAOumB,CAAY,CACxC,CAAO,CACP,CAAK,CAAC,CACN,CAAG,CACH,CCvDO,SAASI,GAAM3gB,EAAM,CAC1B,GAAI,CACF,SAAA9G,EACA,SAAA0nB,EAAW,YACf,EAAM5gB,EACJ,OAAoB1F,EAAAA,KAAM,MAAO,CAC/B,UAAW,kBACX,SAAU,CAAcN,EAAAA,IAAK6mB,GAAyB,CAAA,CAAE,EAAgBvmB,EAAAA,KAAM,MAAO,CACnF,UAAW,YACX,SAAU,CAAcN,EAAAA,IAAK,MAAO,CAClC,UAAW,OACX,SAAuBA,EAAAA,IAAK,MAAO,CACjC,IAAK4mB,EACL,IAAK,qBACf,CAAS,CACT,CAAO,EAAG1nB,EAAuBoB,EAAAA,KAAM,IAAK,CACpC,UAAW,SACX,SAAU,CAAC,UAAc,IAAI,KAAI,EAAG,YAAW,EAAI,2CAA2C,CACtG,CAAO,CAAC,CACR,CAAK,CAAC,CACN,CAAG,CACH,CCzBA,SAASsP,GAAmB7Q,EAAG,EAAGH,EAAGR,EAAGE,EAAGuR,EAAGC,EAAG,CAAE,GAAI,CAAE,IAAIpR,EAAIK,EAAE8Q,CAAC,EAAEC,CAAC,EAAGC,EAAIrR,EAAE,KAAO,OAASK,EAAG,CAAE,OAAO,KAAKH,EAAEG,CAAC,CAAG,CAAEL,EAAE,KAAO,EAAEqR,CAAC,EAAI,QAAQ,QAAQA,CAAC,EAAE,KAAK3R,EAAGE,CAAC,CAAG,CACxK,SAAS0R,GAAkBjR,EAAG,CAAE,OAAO,UAAY,CAAE,IAAI,EAAI,KAAMH,EAAI,UAAW,OAAO,IAAI,QAAQ,SAAUR,EAAGE,EAAG,CAAE,IAAIuR,EAAI9Q,EAAE,MAAM,EAAGH,CAAC,EAAG,SAASqR,EAAMlR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,OAAQnR,CAAC,CAAG,CAAE,SAASmR,EAAOnR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,QAASnR,CAAC,CAAG,CAAEkR,EAAM,MAAM,CAAG,CAAC,CAAG,CAAG,CAYhU,IAAI6W,GAAY,2DACZC,GAAsB,MACtBC,GAAgB,yCAChB7W,EAAM3J,EAAI,OAAO,eAAe,EACpC,SAASygB,IAAiB,CACxB,OAAO,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAAE,IAAIF,EAAmB,CAC5E,CACA,SAASG,IAAmB,CAC1B/W,EAAI,OAAO,kBAAkB,EAC7B,IAAIgX,EAAM,IAAI,IAAI,OAAO,SAAS,IAAI,EACtCA,EAAI,aAAa,OAAOJ,EAAmB,EAC3C,OAAO,QAAQ,aAAa,KAAM,GAAII,EAAI,IAAI,CAChD,CACA,SAASC,IAAkB,CACzB,IAAIC,EACJ,OAAQA,EAAeC,GAAQ,IAAIN,EAAa,KAAO,MAAQK,IAAiB,OAASA,EAAe,IAC1G,CACA,SAASE,GAAiBC,EAAO,CAC/BrX,EAAI,OAAO,0BAA2BqX,CAAK,EACvCA,GAAS,KACXF,GAAQ,IAAIN,GAAeQ,EAAO,CAChC,OAAQ,GACR,SAAU,QAChB,CAAK,EAEDF,GAAQ,OAAON,EAAa,CAEhC,CAKA,SAAS9C,GAAUle,EAAM,CACvB,GAAI,CACF,SAAA9G,EACA,SAAA0nB,CACJ,EAAM5gB,EACA6e,EAASC,EAAS,EAClB2C,EAAaloB,EAAAA,OAAO,IAAI,EACxBmoB,EAAenoB,EAAAA,OAAO,IAAI,EAC1B,CAACyU,EAAO+Q,CAAQ,EAAIviB,WAAQ,EAC5B,CAACmlB,EAAiBC,CAAkB,EAAIplB,EAAAA,SAAS,EAAK,EACtD,CAACwiB,EAAYC,CAAa,EAAIziB,EAAAA,SAAS,EAAK,EAC5C,CAACgkB,EAAaqB,CAAc,EAAIrlB,EAAAA,SAAS,EAAK,EAC9C,CAACglB,EAAOM,CAAQ,EAAItlB,EAAAA,SAAS,EAAE,EAC/B6iB,EAAQrjB,EAAAA,YAGZ,UAAY,CACV,IAAIqgB,EAAQrS,GAAkB,UAAW+X,EAAY,CACnD,IAAIC,EAAY,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,GACpF7X,EAAI,KAAK,eAAe,EACxB0X,EAAe,EAAI,EACnB,IAAII,EAAkB,KACtB,GAAI,CAQF,GAPAA,EAAkBpD,EAAO,MAAM,CAC7B,KAAMiC,GACN,MAAOiB,CACjB,CAAS,EACDL,EAAa,QAAUO,EACvB,MAAMA,EACN9X,EAAI,KAAK,wBAAwB,EAC7BuX,EAAa,UAAYO,EAC3B,OAEFV,GAAiBQ,CAAU,EAC3B9C,EAAc,EAAI,CACpB,OAASrmB,EAAG,CACV,GAAI8oB,EAAa,UAAYO,EAC3B,OAGF,GADAL,EAAmB,EAAI,EACnBI,EAAW,CACb,IAAIxC,EACJrV,EAAI,MAAM,kBAAmBvR,CAAC,EAC9B,IAAIsP,GAAWsX,EAAmBC,EAAgB7mB,CAAC,KAAO,MAAQ4mB,IAAqB,OAASA,EAAmB,uCACnHT,EAAS,IAAIL,GAAoBxW,CAAO,CAAC,CAC3C,CACF,CACA2Z,EAAe,EAAK,CACtB,CAAC,EACD,OAAO,SAAU5R,EAAI,CACnB,OAAOoM,EAAM,MAAM,KAAM,SAAS,CACpC,CACF,EAAC,EAAI,CAACwC,CAAM,CAAC,EACTqD,EAAclmB,EAAAA,YAAY,IAAM,CAClC0lB,EAAa,QAAU,KACvBG,EAAe,EAAK,CACtB,EAAG,CAAA,CAAE,EACDtN,EAAUvY,cAAyBgO,GAAkB,WAAa,CACpEG,EAAI,MAAM,SAAS,EAGnB,IAAIgY,EAAWf,GAAe,EAC1BpC,GAAcwB,GAAe2B,GAAY,MAG7C9C,EAAM8C,EAAU,EAAK,CACvB,CAAC,EAAG,CAACnD,EAAYwB,EAAanB,CAAK,CAAC,EAChC7K,EAAWxY,EAAAA,YAAY,IAAM,CAC/BulB,GAAiB,IAAI,CACvB,EAAG,CAAA,CAAE,EACLjN,GAA0BC,EAASC,CAAQ,EAC3C/X,EAAAA,UAAU,IAAM,CACd,IAAIyiB,EAAa,GACjB,SAASkD,GAAe,CACtB,OAAOC,EAAc,MAAM,KAAM,SAAS,CAC5C,CACA,SAASA,GAAgB,CACvB,OAAAA,EAAgBrY,GAAkB,WAAa,CAC7C,IAAIsY,EACAC,GAAgBD,EAAkBrB,GAAc,KAAQ,MAAQqB,IAAoB,OAASA,EAAkBlB,GAAe,EAElI,GADAF,GAAgB,EACZqB,GAAgB,KAAM,CACxBX,EAAmB,EAAI,EACvB,MACF,CACAC,EAAe,EAAI,EACnB,GAAI,CACF,MAAMhD,EAAO,MAAM,CACjB,KAAMiC,GACN,MAAOyB,CACnB,CAAW,EACIrD,IACHqC,GAAiBgB,CAAY,EAC7BtD,EAAc,EAAI,EAClB4C,EAAe,EAAK,EAExB,MAAY,CACL3C,IACH0C,EAAmB,EAAI,EACvBC,EAAe,EAAK,EAExB,CACF,CAAC,EACMQ,EAAc,MAAM,KAAM,SAAS,CAC5C,CACA,OAAAD,EAAY,EACL,IAAM,CACXlD,EAAa,EACf,CACF,EAAG,CAACL,CAAM,CAAC,EACX,IAAI2D,EAAexmB,EAAAA,YAAY,IAAM,CAC9BwkB,EAGH0B,EAAW,EAFX7C,EAAMmC,CAAK,CAIf,EAAG,CAACU,EAAa1B,EAAanB,EAAOmC,CAAK,CAAC,EAC3C/kB,OAAAA,EAAAA,UAAU,UAA0B,CAClC,IAAIgmB,GACHA,EAAsBhB,EAAW,WAAa,MAAQgB,IAAwB,QAAUA,EAAoB,MAAK,CACpH,EAAG,CAAChB,EAAYE,CAAe,CAAC,EACZrnB,EAAAA,KAAMC,EAAAA,SAAW,CACnC,SAAU,CAACykB,GAAc9lB,EAAUyoB,GAAgC3nB,EAAAA,IAAK2O,GAAgB,CACtF,GAAI,CAACqW,EACL,aAAc,GACd,cAAe,GACf,SAAuBhlB,EAAAA,IAAK2mB,GAAO,CACjC,SAAUC,EACV,SAAuB5mB,EAAAA,IAAKsmB,GAAW,CACrC,aAAcb,EAAgBzR,CAAK,EACnC,YAAawS,EACb,SAAUgC,EACV,SAAuBloB,EAAAA,KAAM,MAAO,CAClC,UAAW,aACX,SAAU,CAAcN,EAAAA,IAAK,QAAS,CACpC,QAAS,uBACT,SAAU,OACxB,CAAa,EAAgBA,EAAAA,IAAK,QAAS,CAC7B,GAAI,uBACJ,KAAM,QACN,UAAW,2BACX,KAAM,OACN,aAAc,WACd,eAAgB,OAChB,YAAa,MACb,WAAY,QACZ,IAAKynB,EACL,MAAOD,EACP,SAAUrlB,GAAS,CACjB4iB,EAAS,MAAS,EAClB+C,EAAS3lB,EAAM,OAAO,KAAK,CAC7B,CACd,CAAa,CAAC,CACd,CAAW,CACX,CAAS,CACT,CAAO,CACP,CAAK,EAAgBnC,EAAAA,IAAK4H,EAAgB,CACpC,cAAe,mBACf,SAAUod,GAAc2C,EACxB,UAAW,CAAC3C,GAAc,CAAC2C,CACjC,CAAK,CAAC,CACN,CAAG,CACH,CACA,IAAIe,GAAgB,CAClB,UAAAxE,GACA,YAAa2B,GAAgBA,EAAa,SAASiB,EAAS,CAC9D,ECnNA,SAAS3oB,GAAQ,EAAGC,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAGF,IAAME,EAAIA,EAAE,OAAO,SAAUF,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAY,CAAC,GAAIC,EAAE,KAAK,MAAMA,EAAGC,CAAC,CAAG,CAAE,OAAOD,CAAG,CAC9P,SAASE,GAAc,EAAG,CAAE,QAASH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAID,GAAQ,OAAOE,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAEI,GAAgB,EAAGJ,EAAGC,EAAED,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIF,GAAQ,OAAOE,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAO,CAAG,CACtb,SAASI,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CAEvT,IAAI8R,GAAM3J,EAAI,OAAO,WAAW,EAQzB,SAASmiB,GAAgBC,EAAc7nB,EAAK,CACjD,OAAO6nB,EAAa,IAAI,8BAA8B,OAAO7nB,CAAG,CAAC,CACnE,CASO,SAAS8nB,GAAkBD,EAAc,CAC9C,IAAIE,EAAWC,EAAYC,EAAiBC,EACxCC,EAAY,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAA,EAChFxD,EAAuB,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,CAAA,EAC/F,SAASyD,EAASpoB,EAAK,CACrB,OAAO4nB,GAAgBC,EAAc7nB,CAAG,CAC1C,CACA,SAASqoB,EAAgBroB,EAAK2D,EAAc,CAC1C,IAAIrB,EAAQ8lB,EAASpoB,CAAG,EACxB,OAAIsC,IAAU,OACL,GAELA,IAAU,QACL,IAELA,IAAU,QACZ8M,GAAI,KAAK,wBAAwB,OAAOpP,EAAK,IAAI,EAAE,OAAOsC,CAAK,CAAC,EAE3DqB,EACT,CACA,IAAIkN,GAAQkX,EAAYK,EAAS,MAAM,KAAO,MAAQL,IAAc,OAASA,EAAY,GACrFO,GAAaN,EAAaI,EAAS,WAAW,KAAO,MAAQJ,IAAe,OAASA,EAAanX,EAClG0X,GAAUN,GAAmBC,EAAaE,EAAS,QAAQ,KAAO,MAAQF,IAAe,OAAS,OAASA,EAAW,MAAM,GAAG,KAAO,MAAQD,IAAoB,OAASA,EAAkB,CAAA,EAC7LO,EAAUH,EAAgB,UAAW,EAAI,EACzCI,EAAiBJ,EAAgB,iBAAkB,EAAI,EACvDK,EAAeL,EAAgB,eAAgB,EAAI,EACnDM,EAAYN,EAAgB,YAAa,EAAI,EACjD,OAAO7qB,GAAcA,GAAc,CACjC,KAAAqT,EACA,UAAAyX,EACA,OAAAC,CACJ,EAAKJ,CAAS,EAAG,GAAI,CACjB,YAAa3qB,GAAc,CACzB,aAAAkrB,EACA,QAAAF,EACA,eAAAC,EACA,UAAAE,CACN,EAAOhE,CAAoB,CAC3B,CAAG,CACH,iYCrCO,IAAI7T,GAAU,CACrB,MAAE8X,EACA,YAAaC,GACb,MAAAC,GACA,cAAeC,GACf,wBAAyBC,GACzB,0BAA2BC,GAC3B,mBAAoBC,GACpB,wBAAyBC,GACzB,qBAAsBC,GACtB,uBAAwBC,GACxB,oCAAqCC,GACrC,mBAAoBC,GACpB,uBAAwBC,GACxB,6BAA8BC,GAC9B,8BAA+BC,GAC/B,yBAA0BC,GAC1B,iBAAkBC,EAClB,oBAAqBC,GACrB,yBAA0BC,EAC5B,EC7CIC,GAAWC,GAAAA,eAAelZ,EAAO,EAC1BmZ,GAAmBC,GAAuB,CACrD,SAAEH,EACF,CAAC,ECLD,SAAS3sB,GAAQ,EAAGC,EAAG,CAAE,IAAIC,EAAI,OAAO,KAAK,CAAC,EAAG,GAAI,OAAO,sBAAuB,CAAE,IAAIC,EAAI,OAAO,sBAAsB,CAAC,EAAGF,IAAME,EAAIA,EAAE,OAAO,SAAUF,EAAG,CAAE,OAAO,OAAO,yBAAyB,EAAGA,CAAC,EAAE,UAAY,CAAC,GAAIC,EAAE,KAAK,MAAMA,EAAGC,CAAC,CAAG,CAAE,OAAOD,CAAG,CAC9P,SAASE,GAAc,EAAG,CAAE,QAASH,EAAI,EAAGA,EAAI,UAAU,OAAQA,IAAK,CAAE,IAAIC,EAAY,UAAUD,CAAC,GAAnB,KAAuB,UAAUA,CAAC,EAAI,CAAA,EAAIA,EAAI,EAAID,GAAQ,OAAOE,CAAC,EAAG,EAAE,EAAE,QAAQ,SAAUD,EAAG,CAAEI,GAAgB,EAAGJ,EAAGC,EAAED,CAAC,CAAC,CAAG,CAAC,EAAI,OAAO,0BAA4B,OAAO,iBAAiB,EAAG,OAAO,0BAA0BC,CAAC,CAAC,EAAIF,GAAQ,OAAOE,CAAC,CAAC,EAAE,QAAQ,SAAUD,EAAG,CAAE,OAAO,eAAe,EAAGA,EAAG,OAAO,yBAAyBC,EAAGD,CAAC,CAAC,CAAG,CAAC,CAAG,CAAE,OAAO,CAAG,CACtb,SAASI,GAAgB,EAAGJ,EAAGC,EAAG,CAAE,OAAQD,EAAIK,GAAeL,CAAC,KAAM,EAAI,OAAO,eAAe,EAAGA,EAAG,CAAE,MAAOC,EAAG,WAAY,GAAI,aAAc,GAAI,SAAU,EAAE,CAAE,EAAI,EAAED,CAAC,EAAIC,EAAG,CAAG,CACnL,SAASI,GAAeJ,EAAG,CAAE,IAAIK,EAAIC,GAAaN,EAAG,QAAQ,EAAG,OAAmB,OAAOK,GAAnB,SAAuBA,EAAIA,EAAI,EAAI,CAC1G,SAASC,GAAaN,EAAGD,EAAG,CAAE,GAAgB,OAAOC,GAAnB,UAAwB,CAACA,EAAG,OAAOA,EAAG,IAAIO,EAAIP,EAAE,OAAO,WAAW,EAAG,GAAeO,IAAX,OAAc,CAAE,IAAIF,EAAIE,EAAE,KAAKP,EAAGD,CAAc,EAAG,GAAgB,OAAOM,GAAnB,SAAsB,OAAOA,EAAG,MAAM,IAAI,UAAU,8CAA8C,CAAG,CAAE,OAAqBN,IAAb,SAAiB,OAAS,QAAQC,CAAC,CAAG,CACvT,SAASuR,GAAmB7Q,EAAG,EAAGH,EAAGR,EAAGE,EAAGuR,EAAGC,EAAG,CAAE,GAAI,CAAE,IAAIpR,EAAIK,EAAE8Q,CAAC,EAAEC,CAAC,EAAGC,EAAIrR,EAAE,KAAO,OAASK,EAAG,CAAE,OAAO,KAAKH,EAAEG,CAAC,CAAG,CAAEL,EAAE,KAAO,EAAEqR,CAAC,EAAI,QAAQ,QAAQA,CAAC,EAAE,KAAK3R,EAAGE,CAAC,CAAG,CACxK,SAAS0R,GAAkBjR,EAAG,CAAE,OAAO,UAAY,CAAE,IAAI,EAAI,KAAMH,EAAI,UAAW,OAAO,IAAI,QAAQ,SAAUR,EAAGE,EAAG,CAAE,IAAIuR,EAAI9Q,EAAE,MAAM,EAAGH,CAAC,EAAG,SAASqR,EAAMlR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,OAAQnR,CAAC,CAAG,CAAE,SAASmR,EAAOnR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,QAASnR,CAAC,CAAG,CAAEkR,EAAM,MAAM,CAAG,CAAC,CAAG,CAAG,CAIhU,IAAIE,EAAM3J,EAAI,OAAO,kCAAkC,EAMhD,SAAS0kB,GAAiBjV,EAAI,CACnC,OAAOkV,GAAkB,MAAM,KAAM,SAAS,CAChD,CAOA,SAASA,IAAoB,CAC3B,OAAAA,GAAoBnb,GAAkB,UAAWob,EAAW,CAC1D,IAAIC,EAAW,MAAML,GAAiBI,CAAS,EAC/C,OAAOC,CACT,CAAC,EACMF,GAAkB,MAAM,KAAM,SAAS,CAChD,CACO,SAASG,GAASC,EAAK,CAC5B,OAAOC,GAAU,MAAM,KAAM,SAAS,CACxC,CACA,SAASA,IAAY,CACnB,OAAAA,GAAYxb,GAAkB,UAAWyb,EAAS,CAChD,IAAIC,EAAM,MAAM,MAAMD,CAAO,EAC7B,GAAI,CAACC,EAAI,GACP,MAAM,IAAI,MAAMA,EAAI,UAAU,EAEhC,GAAI,CACF,OAAO,MAAMA,EAAI,KAAI,CACvB,MAAkB,CAChB,MAAM,IAAI,MAAM,6BAA6B,CAC/C,CACF,CAAC,EACMF,GAAU,MAAM,KAAM,SAAS,CACxC,CACA,SAASG,GAAiBtoB,EAAO,CAC/B,OAAO,OAAOA,GAAU,UAAYA,GAAS,MAAQ,OAAOA,EAAM,SAAY,QAChF,CACO,SAASuoB,GAAqBvoB,EAAO,CAK1C,OAAIwoB,GAASxoB,CAAK,EACTA,EAELsoB,GAAiBtoB,CAAK,GAAKwoB,GAASxoB,EAAM,OAAO,EAC5CA,EAAM,QAEXyoB,GAAezoB,CAAK,EACfA,EAEF,IACT,CAOO,SAAS0oB,GAAkBC,EAAK,CACrC,OAAOC,GAAmB,MAAM,KAAM,SAAS,CACjD,CACA,SAASA,IAAqB,CAC5B,OAAAA,GAAqBjc,GAAkB,UAAWkc,EAAkB,CAClE/b,EAAI,MAAM,oBAAoB,EAC9B,GAAI,CACF,IAAIgc,EAAW,MAAMb,GAAS,GAAG,OAAOY,EAAkB,gBAAgB,CAAC,EAC3E,GAAI,CAAC,MAAM,QAAQC,EAAS,OAAO,EACjC,MAAM,IAAI,MAAM,qDAAqD,EAEvEhc,EAAI,MAAM,0BAA2Bgc,CAAQ,EAE7C,QADIC,EAAiB,CAAA,EACZ1tB,EAAI,EAAGA,EAAIytB,EAAS,QAAQ,OAAQztB,GAAK,EAAG,CACnD,GAAI,CACF,KAAAkT,EACA,KAAAya,CACV,EAAYF,EAAS,QAAQztB,CAAC,EAClB4tB,EAAgB,GAAG,OAAOJ,EAAkB,GAAG,EAAE,OAAOta,EAAM,GAAG,EAAE,OAAOya,CAAI,EAClFD,EAAe,KAAKlB,GAAiBoB,CAAa,CAAC,CACrD,CAGA,QAFI7I,EAAgB,MAAM,QAAQ,WAAW2I,CAAc,EACvDG,EAAY,IAAI,IACXC,EAAK,EAAGA,EAAK/I,EAAc,OAAQ+I,GAAM,EAAG,CACnD,IAAIC,EAAShJ,EAAc+I,CAAE,EACzB,CACF,KAAME,EACN,QAAAC,CACV,EAAYR,EAAS,QAAQK,CAAE,EACvB,GAAIC,EAAO,SAAW,YAAa,CACjC,IAAIG,EAAchB,GAAqBa,EAAO,KAAK,EAC/CG,GAAe,KACjBzc,EAAI,MAAM,WAAW,OAAOuc,EAAO,iCAAiC,CAAC,EAErEH,EAAU,IAAIG,EAAOnuB,GAAcA,GAAc,GAAIquB,CAAW,EAAG,GAAI,CACrE,QAAAD,CACd,CAAa,CAAC,CAEN,MACExc,EAAI,MAAM,0BAA0B,OAAOuc,EAAO,GAAG,EAAGD,EAAO,MAAM,CAEzE,CACAtc,OAAAA,EAAI,KAAK,kBAAmBoc,CAAS,EAC9BA,CACT,OAAS3tB,EAAG,CACVuR,OAAAA,EAAI,MAAM,0BAA2BvR,CAAC,EAC/B,IAAI,GACb,CACF,CAAC,EACMqtB,GAAmB,MAAM,KAAM,SAAS,CACjD,CACO,SAASY,GAAgBC,EAAkB,CAChD,IAAIC,EAAuBC,EAC3B,OAAQD,GAAyBC,EAAyBF,EAAiB,IAAI,cAAc,KAAO,MAAQE,IAA2B,OAAS,OAASA,EAAuB,MAAM,GAAG,KAAO,MAAQD,IAA0B,OAASA,EAAwB,CAAA,CACrQ,CAWO,SAASE,GAAuBV,EAAWO,EAAkB,CAClE,IAAII,EAAc,UAAU,OAAS,GAAK,UAAU,CAAC,IAAM,OAAY,UAAU,CAAC,EAAI,IAAI,IACtFrH,EAAegH,GAAgBC,CAAgB,EAE/CK,EAAc,CAAC,GAAGZ,EAAU,QAAO,EAAI,GAAGW,EAAY,QAAO,CAAE,EAAE,OAAOlnB,GAAQ,CAClF,GAAI,CAAA,CAAG+d,CAAM,EAAI/d,EACjB,OAAOse,GAAaP,CAAM,GAAKqJ,GAAmBrJ,CAAM,CAC1D,CAAC,EAAE,IAAI1B,GAAS,CACd,GAAI,CAACzQ,EAAMmS,CAAM,EAAI1B,EACrB,OAAI+K,GAAmBrJ,CAAM,EACpB,CACL,KAAMsJ,GAAW,YACjB,KAAAzb,EACA,UAAWmS,EAAO,WAAW,UAC7B,YAAaA,EAAO,WAAW,WACvC,EAEWA,CACT,CAAC,EAGGuJ,EAAuBH,EAAY,OAAOI,GAAS,CACrD,GAAI,CACF,YAAAC,CACN,EAAQD,EACJ,OAAOC,EAAY3H,EAAciH,CAAgB,CACnD,CAAC,EACD,GAAIQ,EAAqB,SAAW,EAClC,MAAM,IAAI,MAAM,6EAA6E,OAAOzH,CAAY,CAAC,EACxGyH,EAAqB,OAAS,GACvCnd,EAAI,KAAK,iEAAkEmd,EAAqB,IAAIG,GAAS,CAC3G,GAAI,CACF,KAAA7b,CACR,EAAU6b,EACJ,OAAO7b,CACT,CAAC,EAAE,KAAK,IAAI,CAAC,EAEf,GAAI,CACF,KAAAA,EACA,UAAAiQ,CACJ,EAAMyL,EAAqB,CAAC,EAC1Bnd,OAAAA,EAAI,KAAK,oBAAqByB,CAAI,EAC3BiQ,CACT,CCpLA,IAAIiJ,GAAWC,GAAAA,eAAe,IAAMlZ,EAAO,EAChC6b,GAAkBC,GAAAA,sBAAsB,CACjD,SAAA7C,EACF,CAAC,ECLD,SAASlb,GAAmB7Q,EAAG,EAAGH,EAAGR,EAAGE,EAAGuR,EAAGC,EAAG,CAAE,GAAI,CAAE,IAAIpR,EAAIK,EAAE8Q,CAAC,EAAEC,CAAC,EAAGC,EAAIrR,EAAE,KAAO,OAASK,EAAG,CAAE,OAAO,KAAKH,EAAEG,CAAC,CAAG,CAAEL,EAAE,KAAO,EAAEqR,CAAC,EAAI,QAAQ,QAAQA,CAAC,EAAE,KAAK3R,EAAGE,CAAC,CAAG,CACxK,SAAS0R,GAAkBjR,EAAG,CAAE,OAAO,UAAY,CAAE,IAAI,EAAI,KAAMH,EAAI,UAAW,OAAO,IAAI,QAAQ,SAAUR,EAAGE,EAAG,CAAE,IAAIuR,EAAI9Q,EAAE,MAAM,EAAGH,CAAC,EAAG,SAASqR,EAAMlR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,OAAQnR,CAAC,CAAG,CAAE,SAASmR,EAAOnR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,QAASnR,CAAC,CAAG,CAAEkR,EAAM,MAAM,CAAG,CAAC,CAAG,CAAG,CAQzT,SAAS2d,GAAiB5nB,EAAM,CACrC,GAAI,CACF,WAAA6nB,EACA,eAAAC,EACA,SAAA5uB,CACJ,EAAM8G,EACA,CAAC6d,EAASkK,CAAU,EAAIvrB,EAAAA,SAAS,IAAI,EACzCC,OAAAA,EAAAA,UAAU,UAAuB,CAC/B,IAAIyiB,EAAa,GACjB,SAAS8I,GAAc,CACrB,OAAOC,EAAa,MAAM,KAAM,SAAS,CAC3C,CACA,SAASA,GAAe,CACtB,OAAAA,EAAeje,GAAkB,WAAa,CAC5C,IAAIke,EACAhB,GAAegB,EAAwB,MAAMJ,GAAmB,KAAoC,OAASA,EAAc,KAAQ,MAAQI,IAA0B,OAASA,EAAwB,CAAA,EACtMzK,EAAgB,MAAMsI,GAAkB8B,CAAU,EACtD,GAAI,CAAC3I,EAAY,CACf,IAAIiJ,EAAkBjB,EAAY,IAAInJ,GAAU,CAACA,EAAO,KAAMA,CAAM,CAAC,EACrEgK,EAAW,IAAI,IAAI,CAAC,GAAGI,EAAiB,GAAG1K,CAAa,CAAC,CAAC,CAC5D,CACF,CAAC,EACMwK,EAAa,MAAM,KAAM,SAAS,CAC3C,CACA,OAAAD,EAAW,EACJ,IAAM,CACX9I,EAAa,EACf,CACF,EAAG,CAAC2I,EAAYC,CAAc,CAAC,EACX9tB,EAAAA,IAAKouB,GAAe,SAAU,CAChD,MAAOvK,EACP,SAAU3kB,CACd,CAAG,CACH,CClCO,SAASmvB,IAAgB,CAC9B,IAAIlU,EAAUH,GAAmB,EACjCvX,OAAAA,EAAAA,UAAU,UAAuB,CAC/B0X,EAAQ,YAAYmU,GAAYC,EAAuB,CAAC,CAC1D,EAAG,CAACpU,CAAO,CAAC,EACL,IACT,CCdA,SAASvK,GAAmB7Q,EAAG,EAAGH,EAAGR,EAAGE,EAAGuR,EAAGC,EAAG,CAAE,GAAI,CAAE,IAAIpR,EAAIK,EAAE8Q,CAAC,EAAEC,CAAC,EAAGC,EAAIrR,EAAE,KAAO,OAASK,EAAG,CAAE,OAAO,KAAKH,EAAEG,CAAC,CAAG,CAAEL,EAAE,KAAO,EAAEqR,CAAC,EAAI,QAAQ,QAAQA,CAAC,EAAE,KAAK3R,EAAGE,CAAC,CAAG,CACxK,SAAS0R,GAAkBjR,EAAG,CAAE,OAAO,UAAY,CAAE,IAAI,EAAI,KAAMH,EAAI,UAAW,OAAO,IAAI,QAAQ,SAAUR,EAAGE,EAAG,CAAE,IAAIuR,EAAI9Q,EAAE,MAAM,EAAGH,CAAC,EAAG,SAASqR,EAAMlR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,OAAQnR,CAAC,CAAG,CAAE,SAASmR,EAAOnR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,QAASnR,CAAC,CAAG,CAAEkR,EAAM,MAAM,CAAG,CAAC,CAAG,CAAG,CAWhU,IAAIue,GAAoB,IAAI,IAAI,CAAC,CAAC,2CAA4C,CAC5E,WAAYnI,EACd,CAAC,EAAG,CAAC,wCAAyC,CAC5C,WAAYqC,EACd,CAAC,EAAG,CAAC,8CAA+C,CAClD,WAAY9C,EACd,CAAC,CAAC,CAAC,EAKI,SAAS6I,GAAczoB,EAAM,CAClC,GAAI,CACF,SAAA9G,CACJ,EAAM8G,EACA6e,EAASC,EAAS,EAGlBjB,EAAUnc,EAAAA,WAAW0mB,EAAc,EACnC,CAACM,EAAYC,CAAa,EAAInsB,WAAQ,EACtC,CAACwR,EAAO+Q,CAAQ,EAAIviB,WAAQ,EAChCC,EAAAA,UAAU,UAAgC,CACxC,IAAIyiB,EAAa,GACjB,SAAS0J,GAAuB,CAC9B,OAAOC,EAAsB,MAAM,KAAM,SAAS,CACpD,CACA,SAASA,GAAwB,CAC/B,OAAAA,EAAwB7e,GAAkB,WAAa,CACrD,GAAI,CACF,IAAI8e,EAAsB,MAAMjK,EAAO,oBAAmB,EACrDK,GACHyJ,EAAc,IAAI,IAAIG,CAAmB,CAAC,CAE9C,OAASlwB,EAAG,CACLsmB,GACHH,EAASnmB,CAAC,CAEd,CACF,CAAC,EACMiwB,EAAsB,MAAM,KAAM,SAAS,CACpD,CACA,OAAAD,EAAoB,EACb,IAAM,CACX1J,EAAa,EACf,CACF,EAAG,CAACL,CAAM,CAAC,EACX,IAAIkK,EAAgBtvB,EAAAA,QAAQ,IAAM,CAChC,GAAI,EAAAokB,GAAW,MAAQ6K,GAAc,MAGrC,GAAI,CACF,OAAOzB,GAAuBpJ,EAAS6K,EAAYF,EAAiB,CACtE,OAAS5vB,EAAG,CACVmmB,EAASnmB,CAAC,CACZ,CACF,EAAG,CAAC8vB,EAAY7K,CAAO,CAAC,EACpBlH,EAAYoS,GAAiB,MAAQL,GAAc,KACvD,OAAI/R,GAAa3I,GAAS,KACJhU,EAAAA,IAAK4H,EAAgB,CACvC,UAAW+U,GAAa3I,GAAS,KACjC,aAAcyR,EAAgBzR,CAAK,EACnC,cAAe,8BACrB,CAAK,EAEiBhU,EAAAA,IAAK+uB,EAAe,CACtC,iBAAkBL,EAClB,SAAuBpuB,EAAAA,KAAMC,WAAW,CACtC,SAAU,CAAcP,EAAAA,IAAKquB,GAAe,CAAA,CAAE,EAAGnvB,CAAQ,CAC/D,CAAK,CACL,CAAG,CACH,CClFA,SAAS0Q,GAAmB7Q,EAAG,EAAGH,EAAGR,EAAGE,EAAGuR,EAAGC,EAAG,CAAE,GAAI,CAAE,IAAIpR,EAAIK,EAAE8Q,CAAC,EAAEC,CAAC,EAAGC,EAAIrR,EAAE,KAAO,OAASK,EAAG,CAAE,OAAO,KAAKH,EAAEG,CAAC,CAAG,CAAEL,EAAE,KAAO,EAAEqR,CAAC,EAAI,QAAQ,QAAQA,CAAC,EAAE,KAAK3R,EAAGE,CAAC,CAAG,CACxK,SAAS0R,GAAkBjR,EAAG,CAAE,OAAO,UAAY,CAAE,IAAI,EAAI,KAAMH,EAAI,UAAW,OAAO,IAAI,QAAQ,SAAUR,EAAGE,EAAG,CAAE,IAAIuR,EAAI9Q,EAAE,MAAM,EAAGH,CAAC,EAAG,SAASqR,EAAMlR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,OAAQnR,CAAC,CAAG,CAAE,SAASmR,EAAOnR,EAAG,CAAE6Q,GAAmBC,EAAGzR,EAAGE,EAAG2R,EAAOC,EAAQ,QAASnR,CAAC,CAAG,CAAEkR,EAAM,MAAM,CAAG,CAAC,CAAG,CAAG,CAShU,IAAIE,EAAM3J,EAAI,OAAO,0CAA0C,EAIxD,SAASwoB,GAAoBhpB,EAAM,CACxC,GAAI,CACF,SAAA9G,CACJ,EAAM8G,EACAgJ,EAAM2B,EAAM,EACZkU,EAASC,EAAS,EAClB,CAAC9Q,EAAO+Q,CAAQ,EAAIviB,WAAQ,EAC5B,CAACmP,EAAYsd,CAAa,EAAIzsB,WAAQ,EACtC,CAAC0sB,EAAiBC,CAAkB,EAAI3sB,EAAAA,SAAS,YAAY,EAC7D4sB,EAAeF,IAAoB,SACnCG,EAAaH,IAAoB,WACjCI,EAAiBJ,IAAoB,eACrCK,EAAkBL,IAAoB,iBAC1CzsB,EAAAA,UAAU,UAA0B,CAClC,IAAIyiB,EAAa,GACjB,SAASsK,GAAiB,CACxB,OAAOC,EAAgB,MAAM,KAAM,SAAS,CAC9C,CACA,SAASA,GAAkB,CACzB,OAAAA,EAAkBzf,GAAkB,WAAa,CAC/C,GAAI,CACF,IAAI0f,EAAgB,MAAM7K,EAAO,mBAAkB,EACnD,GAAIK,EACF,OAEF+J,EAAcS,CAAa,EAC3BP,EAAmB,WAAW,CAChC,OAASvwB,EAAG,CACV,GAAIsmB,EACF,OAEFH,EAASnmB,CAAC,EACVuwB,EAAmB,gBAAgB,CACrC,CACF,CAAC,EACMM,EAAgB,MAAM,KAAM,SAAS,CAC9C,CACA,OAAAD,EAAc,EACP,IAAM,CACXtK,EAAa,EACf,CACF,EAAG,CAAClW,EAAK6V,CAAM,CAAC,EAChBpiB,EAAAA,UAAU,UAA+B,CACvC,GAAIkP,GAAc,MAAQ0d,EAAY,OAGtC,SAAS1b,EAAiBxR,EAAO,CAC/B,GAAI,CACF,OAAAsR,CACR,EAAUtR,EACJgO,EAAI,KAAK,aAAc,GAAG,OAAO,KAAK,UAAUsD,CAAM,CAAC,CAAC,EACxD0b,EAAmB,cAAc,CACnC,CACA,IAAIQ,EAAYhe,EAAW,iBAAiB3C,EAAI,cAAc,iBAAkB2E,CAAgB,EAChG,OAAOgc,CACT,EAAG,CAAC3gB,EAAK2C,EAAY0d,CAAU,CAAC,EAChC5sB,EAAAA,UAAU,UAA8B,CACtC,GAAIkP,GAAc,MAAQ0d,EAAY,OAGtC,SAASzb,EAAgBzR,EAAO,CAC9B,GAAI,CACF,OAAAsR,CACR,EAAUtR,EACJgO,EAAI,KAAK,YAAa,GAAG,OAAO,KAAK,UAAUsD,CAAM,CAAC,CAAC,EACvD0b,EAAmB,WAAW,CAChC,CACA,IAAIQ,EAAYhe,EAAW,iBAAiB3C,EAAI,WAAW,gBAAiB4E,CAAe,EAC3F,OAAO+b,CACT,EAAG,CAAC3gB,EAAK2C,EAAY0d,CAAU,CAAC,EAChC5sB,EAAAA,UAAU,UAA6B,CACrC,GAAIkP,GAAc,KAAM,OAGxB,SAASie,EAAeztB,EAAO,CAC7B,GAAI,CACF,OAAAsR,CACR,EAAUtR,EACJgO,EAAI,KAAK,WAAY,GAAG,OAAO,KAAK,UAAUsD,CAAM,CAAC,CAAC,EACtDsR,EAAS,oBAAoB,OAAOtR,GAAgD,gBAAgB,CAAC,EACrG0b,EAAmB,UAAU,CAC/B,CACA,IAAIQ,EAAYhe,EAAW,iBAAiB3C,EAAI,cAAc,eAAgB4gB,CAAc,EAC5F,OAAOD,CACT,EAAG,CAAC3gB,EAAK2C,CAAU,CAAC,EACpBlP,EAAAA,UAAU,UAA+B,CACvC,GAAIkP,GAAc,MAAQ0d,EAAY,OAGtC,SAASQ,EAAiB1tB,EAAO,CAC/B,GAAI,CACF,OAAAsR,CACR,EAAUtR,EACJgO,EAAI,KAAK,kCAAmC,GAAG,OAAO,KAAK,UAAUsD,CAAM,CAAC,CAAC,EAC7EsR,EAAS,oCAAoC,OAAOtR,GAAgD,gBAAgB,CAAC,EACrH0b,EAAmB,QAAQ,CAC7B,CACA,IAAIQ,EAAYhe,EAAW,iBAAiB3C,EAAI,WAAW,4BAA6B6gB,CAAgB,EACxG,OAAOF,CACT,EAAG,CAAC3gB,EAAK2C,EAAY0d,CAAU,CAAC,EAChC,IAAIS,EAAgB9tB,EAAAA,YAAyB,UAAY,CACvD,IAAIqgB,EAAQrS,GAAkB,UAAWT,EAAY,CAEnD,GADAyB,GAAcW,EAAY,8CAA8C,EACpE,OAAOpC,GAAe,SACxB,MAAM,IAAI,MAAM,oCAAoC,EAEtD,OAAOoC,EAAW,UAAUoe,GAA2BxgB,CAAU,CAAC,CACpE,CAAC,EACD,OAAO,SAAU0G,EAAI,CACnB,OAAOoM,EAAM,MAAM,KAAM,SAAS,CACpC,CACF,EAAC,EAAI,CAAC1Q,CAAU,CAAC,EAGbqe,EAAgBvwB,EAAAA,QAAQ,KAAO,CACjC,UAAW,CAAC8P,EAAY0gB,KAEtBA,EAAS,CACP,MAAO,IAAMH,EAAcvgB,CAAU,EACrC,OAAQ,OAChB,CAAO,EACM,IAAM,CAGb,EAEN,GAAM,CAACugB,CAAa,CAAC,EACnB,SAASI,GAAgB,CACvB/f,EAAI,KAAK,wBAAwB,EACjC,OAAO,SAAS,OAAM,CACxB,CACA,OAAIkf,GAAcH,IAAoB,cAAgBK,EAChCvvB,EAAAA,IAAK4H,EAAgB,CACvC,cAAe,+BACf,UAAWoM,GAAS,KACpB,aAAcA,GAAS,KAAO,GAAG,OAAOA,CAAK,EAAI,MACvD,CAAK,EAEiBhU,EAAAA,IAAKmwB,GAAkB,SAAU,CACnD,MAAOxe,GAA4D,KACnE,SAAuB3R,EAAAA,IAAKowB,GAAqB,SAAU,CACzD,MAAON,EACP,SAAuBxvB,EAAAA,KAAM8O,GAA0B,SAAU,CAC/D,MAAO4gB,EACP,SAAU,CAAC9wB,EAAuBc,EAAAA,IAAKkK,GAAgB,CACrD,OAAQolB,EACR,WAAY,IACZ,SAAuBtvB,EAAAA,IAAKsK,GAAW,CACrC,KAAM+lB,GACN,MAAoB/vB,EAAAA,KAAMC,WAAW,CACnC,SAAU,CAAcP,EAAAA,IAAK0mB,GAAgB,CAAA,CAAE,EAAG,6BAA6B,CAC7F,CAAa,EACD,SAAU,uCACtB,CAAW,CACX,CAAS,EAAgB1mB,EAAAA,IAAKswB,GAAY,CAChC,kBAAmB,UACnB,UAAWJ,EACX,OAAQd,EACR,WAAY,wBACZ,SAAU,4EACpB,CAAS,CAAC,CACV,CAAO,CACP,CAAK,CACL,CAAG,CACH,CC7KO,SAASmB,GAAWC,EAAQ,CACjC,OAAO,IAAI,IAAIA,EAAQ,GAAG,OAAO,OAAO,QAAQ,CAAC,CACnD,CAMO,SAASC,IAAiB,CAC/B,IAAIC,EAAe,IAAI,gBAAgB,OAAO,SAAS,MAAM,EAC7D,OAAOA,EAAa,IAAI,aAAa,CACvC,CACO,SAASC,IAAoB,CAClC,IAAIC,EAAcH,GAAc,EAChC,OAAOG,GAAe,KAAO,CAC3B,QAAS,CACP,eAAgBA,CACtB,CACA,EAAM,CACF,QAAS,CAAA,CACb,CACA,CCnBO,SAASC,GAAc7qB,EAAM,CAClC,GAAI,CACF,SAAA9G,CACJ,EAAM8G,EACA4iB,EAAekI,GAAe,EAC9B5H,EAAYxhB,EAAAA,WAAWqpB,EAAmB,EAC1CrL,EAAuBhe,EAAAA,WAAWie,EAA8B,EAChEqL,EAAOnI,GAAkBD,EAAcM,EAAWxD,CAAoB,EAC1E,OAAoB1lB,EAAAA,IAAKixB,GAAY,SAAU,CAC7C,MAAOD,EACP,SAAU9xB,CACd,CAAG,CACH,CCVO,SAASgyB,GAAelrB,EAAM,CACnC,GAAI,CACF,SAAA9G,CACJ,EAAM8G,EACAqO,EAAW8c,GAAeC,EAAW,EAKrC3N,EAAgB/b,EAAAA,WAAW0mB,EAAc,EACzCiD,EAAS7N,GAAgBC,CAAa,EACtC6N,EAAoB1qB,GAAsB,EAC9C,OAAoB5G,EAAAA,IAAKuxB,GAAe,CACtC,OAAQF,EACR,kBAAmBC,EACnB,SAAuBtxB,EAAAA,IAAKwxB,GAAoB,CAC9C,SAAuBxxB,EAAAA,IAAKqR,GAAqB,CAC/C,SAAuBrR,EAAAA,IAAKyxB,GAAuB,CACjD,QAASpd,EAAS,YAClB,SAAUnV,CACpB,CAAS,CACT,CAAO,CACP,CAAK,CACL,CAAG,CACH,CCdO,SAASwyB,GAAa1rB,EAAM,CACjC,GAAI,CACF,eAAA2rB,EACA,WAAA9D,EACA,eAAAC,EACA,UAAA8D,EACA,YAAAC,EACA,SAAA3yB,CACJ,EAAM8G,EACA8rB,EAAgBryB,EAAAA,QAAQ,IAAMkxB,GAAiB,EAAI,CAAA,CAAE,EAGrD,CAACoB,EAAaC,CAAc,EAAIxvB,EAAAA,SAAS,CAAC,EAC1C+X,EAAUvY,EAAAA,YAAY,IAAA,GAAiB,CAAA,CAAE,EACzCwY,EAAWxY,EAAAA,YAAY,IAAM,CAC/B,sBAAsB,IAAM,CAC1BgwB,EAAe3uB,GAASA,EAAQ,CAAC,CACnC,CAAC,CACH,EAAG,CAAA,CAAE,EACLiX,GAA0BC,EAASC,CAAQ,EAC3C,IAAIyX,EAAiBxyB,UAAQ,IAAM,CAACyyB,GAA8BL,EAAa,EAAI,CAAC,EAAG,CAACA,CAAW,CAAC,EACpG,OAAoBvxB,EAAAA,KAAM6xB,GAAU,CAClC,MAAO/O,GACP,SAAU,CAAcpjB,EAAAA,IAAKoyB,GAAe,CAC1C,eAAgBT,EAChB,SAAuB3xB,EAAAA,IAAK4tB,GAAkB,CAC5C,eAAgBE,EAChB,WAAYD,EACZ,SAAuB7tB,EAAAA,IAAKkxB,GAAgB,CAC1C,SAAuB5wB,EAAAA,KAAM+xB,GAAiB,CAC5C,UAAWT,EACX,QAASE,EACT,SAAU,CAAc9xB,EAAAA,IAAKyuB,GAAe,CAC1C,SAAuBzuB,EAAAA,IAAKsyB,GAAuB,CACjD,SAAuBtyB,EAAAA,IAAK6wB,GAAe,CACzC,SAAuB7wB,EAAAA,IAAKgvB,GAAqB,CAC/C,SAAuBhvB,EAAAA,IAAKwH,GAAa,CACvC,SAAUtI,CAChC,CAAqB,CACrB,CAAmB,CACnB,CAAiB,CACjB,CAAe,CACf,CAAa,EAAgBc,EAAAA,IAAKuyB,GAAgB,CACpC,QAASN,CACvB,CAAa,CAAC,CACd,EAAaF,CAAW,CACxB,CAAS,CACT,CAAO,CACP,CAAK,EAAgB/xB,EAAAA,IAAKwyB,GAAiB,EAAE,CAAC,CAC9C,CAAG,CACH"}
1
+ {"version":3,"file":"index-CVle8e1T.js","sources":["../../../components/dist/spectrum/TabPanels.js","../../../react-hooks/dist/SelectionUtils.js","../../../react-hooks/dist/useCallbackWithAction.js","../../../react-hooks/dist/useChangeEventValueCallback.js","../../../react-hooks/dist/useDelay.js","../../../react-hooks/dist/useDependentState.js","../../../react-hooks/dist/useEffectNTimesWhen.js","../../../react-hooks/dist/useIsEqualMemo.js","../../../react-hooks/dist/useFormWithDetachedSubmitButton.js","../../../react-hooks/dist/useMappedSelection.js","../../../react-hooks/dist/usePropChangeCallback.js","../../../react-hooks/dist/useDebouncedValue.js","../../../react-hooks/dist/useSetAttributesCallback.js","../../../react-hooks/dist/useSpectrumDisableSpellcheckRef.js","../../../components/dist/theme/useExternalTheme.js","../../../components/dist/theme/FontsLoaded.js","../../../components/dist/dialogs/ActionButtonDialogTrigger.js","../../../components/dist/dialogs/ConfirmationDialog.js","../../../components/dist/actions/ConfirmActionButton.js","../../../components/dist/actions/IconActionButton.js","../../../components/dist/modal/DebouncedModal.js","../../../components/dist/modal/InfoModal.js","../../../components/dist/BulkActionBar.js","../../../components/dist/EditableItemList.js","../../../components/dist/TextWithTooltip.js","../../../components/dist/SearchableCombobox.js","../../../components/dist/TableViewEmptyState.js","../../../components/dist/ToastNotification.js","../../../jsapi-bootstrap/dist/DeferredApiBootstrap.js","../../../jsapi-bootstrap/dist/useObjectFetch.js","../../../jsapi-bootstrap/dist/useWidget.js","../../../console/dist/monaco/MonacoThemeProvider.js","../../../jsapi-utils/dist/ConnectionUtils.js","../../../jsapi-components/dist/HookTestUtils.js","../../../jsapi-components/dist/ColumnNameError.js","../../../jsapi-components/dist/TableDisconnectError.js","../../../jsapi-components/dist/useTable.js","../../../jsapi-components/dist/useTableColumn.js","../../../jsapi-components/dist/TableInput.js","../../../jsapi-components/dist/spectrum/ComboBox.js","../../../jsapi-components/dist/spectrum/ListView.js","../../../jsapi-components/dist/TableDropdown.js","../../../jsapi-components/dist/useBroadcastChannel.js","../../../jsapi-components/dist/useBroadcastLoginListener.js","../../../jsapi-components/dist/useCheckIfExistsValue.js","../../../jsapi-components/dist/useDebouncedViewportSearch.js","../../../jsapi-components/dist/useDebouncedViewportSelectionFilter.js","../../../jsapi-components/dist/useFilteredItemsWithDefaultValue.js","../../../jsapi-components/dist/useGetItemPosition.js","../../../jsapi-components/dist/useNotNullOrEmptyFilter.js","../../../jsapi-components/dist/usePickerWithSelectedValues.js","../../../jsapi-components/dist/useSelectDistinctTable.js","../../../jsapi-components/dist/useShowOnlyEmptyFilter.js","../../../jsapi-components/dist/useValueFilter.js","../../../iris-grid/dist/IrisGridTestUtils.js","../../../dashboard/dist/layout/useDashboardPanel.js","../../../dashboard/dist/redux/hooks.js","../../../plugin/dist/useCustomThemes.js","../../../plugin/dist/WidgetView.js","../../../plugin/dist/usePluginsElementMap.js","../../../auth-plugins/dist/AuthPlugin.js","../../../auth-plugins/dist/AuthHandlerTypes.js","../../../auth-plugins/dist/AuthenticationError.js","../../../auth-plugins/dist/AuthPluginBase.js","../../../auth-plugins/dist/AuthPluginAnonymous.js","../../../auth-plugins/dist/AuthPluginParent.js","../../../auth-plugins/dist/LoginForm.js","../../../auth-plugins/dist/Login.js","../../../auth-plugins/dist/AuthPluginPsk.js","../../../auth-plugins/dist/UserUtils.js","../../../app-utils/dist/plugins/remote-component.config.js","../../../app-utils/dist/plugins/loadRemoteModule.js","../../../app-utils/dist/plugins/PluginUtils.js","../../../app-utils/dist/plugins/RemoteComponent.js","../../../app-utils/dist/components/PluginsBootstrap.js","../../../app-utils/dist/components/LoginNotifier.js","../../../app-utils/dist/components/AuthBootstrap.js","../../../app-utils/dist/components/ConnectionBootstrap.js","../../../app-utils/dist/utils/ConnectUtils.js","../../../app-utils/dist/components/UserBootstrap.js","../../../app-utils/dist/components/ThemeBootstrap.js","../../../app-utils/dist/components/AppBootstrap.js"],"sourcesContent":["var _excluded = [\"children\", \"keepMounted\"];\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 React, { useMemo, useRef } from 'react';\nimport { createHtmlPortalNode, InPortal, OutPortal } from 'react-reverse-portal';\nimport { Item, TabPanels } from '@adobe/react-spectrum';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Wrapper for react-spectrum TabPanels that adds support for keeping panels mounted\n * when not visible using the `keepMounted` prop.\n * Panels created with a render function will not be kept mounted.\n */\nexport function DHCTabPanels(props) {\n var {\n children,\n keepMounted: keepMountedProp = false\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var keepMounted = keepMountedProp && typeof children !== 'function';\n var portalNodeMap = useRef(new Map());\n var portalNodes = useMemo(() => {\n var nodes = [];\n var nextNodeMap = new Map(); // Keep track of the portals we use so we can clean up stale portals\n if (!keepMounted) {\n portalNodeMap.current = nextNodeMap;\n return nodes;\n }\n React.Children.forEach(children, child => {\n // Spectrum would ignore these anyway because it uses Item key to determine if the panel mounts\n if (child == null || child.key == null) {\n return;\n }\n\n // Skip children with function-based content (i.e. ItemRenderer) as it can't be portaled\n if (typeof child.props.children === 'function') {\n throw new Error('DHCTabPanels cannot use keepMounted with an ItemRenderer function as its children');\n }\n var portal = portalNodeMap.current.get(child.key);\n if (portal == null) {\n portal = createHtmlPortalNode({\n attributes: {\n // Should make the placeholder div not affect layout and act as if children are mounted directly to the parent\n style: 'display: contents'\n }\n });\n }\n nextNodeMap.set(child.key, portal);\n nodes.push(/*#__PURE__*/_jsx(InPortal, {\n node: portal,\n children: child.props.children\n }, child.key));\n });\n portalNodeMap.current = nextNodeMap;\n return nodes;\n }, [children, keepMounted]);\n var mappedChildren = useMemo(() => {\n var newChildren = [];\n if (!keepMounted) {\n return newChildren;\n }\n // Need to use forEach instead of map because map always changes the key of the returned elements\n React.Children.forEach(children, child => {\n if (child == null || child.key == null) {\n newChildren.push(child);\n return;\n }\n var portal = portalNodeMap.current.get(child.key);\n if (portal == null) {\n newChildren.push(child);\n return;\n }\n newChildren.push(/*#__PURE__*/_jsx(Item, {\n children: /*#__PURE__*/_jsx(OutPortal, {\n node: portal\n })\n }, child.key));\n });\n return newChildren;\n }, [children, keepMounted]);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [keepMounted && portalNodes, /*#__PURE__*/_jsx(TabPanels\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, rest), {}, {\n children: keepMounted ? mappedChildren : children\n }))]\n });\n}\n//# sourceMappingURL=TabPanels.js.map","import { generateRange } from '@deephaven/utils';\n\n/**\n * Returns the number of selected items or 'all' if all items are selected.\n * @param size Total size of collection that can have selections\n * @param selection Set of selected keys or 'all'\n */\nexport function getSelectedItemCountOrAll(size, selection) {\n if (size === 0) {\n return 0;\n }\n if (selection === 'all' || size === selection.size) {\n return 'all';\n }\n return selection.size;\n}\n\n/**\n * Check 2 SelectionT objects for value equality.\n * @param selectionA\n * @param selectionB\n */\nexport function isSelectionEqual(selectionA, selectionB) {\n if (selectionA === selectionB) {\n return true;\n }\n if (selectionA === 'all' || selectionB === 'all') {\n return false;\n }\n if (selectionA.size !== selectionB.size) {\n return false;\n }\n return [...selectionA.keys()].every(key => selectionB.has(key));\n}\n\n/**\n * Check 2 `SelectionMaybeInverted` instances for value equality.\n * @param selectionA\n * @param selectionB\n */\nexport function isSelectionMaybeInvertedEqual(selectionA, selectionB) {\n return selectionA.isInverted === selectionB.isInverted && isSelectionEqual(selectionA.selection, selectionB.selection);\n}\n\n/**\n * Map a React Spectrum `Selection` to another `Selection`\n * @param selectedItemKeys\n * @param getItem\n * @param mapItem\n */\nexport function mapSelection(selectedItemKeys, getItem, mapItem) {\n if (selectedItemKeys === 'all') {\n return 'all';\n }\n var keys = [...selectedItemKeys.keys()];\n return new Set(keys.map(key => {\n var item = getItem(key);\n if (item === undefined) {\n throw new Error(\"Could not find item with key \".concat(key));\n }\n return mapItem(item);\n }));\n}\n\n/**\n * Takes a Selection state and determines if there is a more optimal selection\n * that can be used. For example, if the user selects all and then deselects an\n * item, we want to filter by \"not that value\" instead of equal to all selected\n * values. Similarly, if 'all' items are selected, we want to optimize this as\n * \"no filter\".\n * @param selection The selection to optimize\n * @param totalRecords The total number of records that can potentially be selected\n * @param getKey A function to get the key for a given index.\n */\nexport function optimizeSelection(selection, totalRecords, getKey) {\n var isInverted = selection === 'all' || selection.size > totalRecords / 2;\n var optimizedSelection = selection;\n if (isInverted) {\n optimizedSelection = selection === 'all' ? new Set() : new Set(\n // Create a new set from any key that is not selected\n [...generateRange(0, totalRecords - 1)].map(getKey).filter(key => !selection.has(key)));\n }\n return {\n selection: optimizedSelection,\n isInverted\n };\n}\n//# sourceMappingURL=SelectionUtils.js.map","import { useCallback } from 'react';\n\n/**\n * Wrap a callback function + an additional \"action\" function in\n * a new function. The new function takes the parameters belonging to\n * the callback and passes them through. The action function will\n * not receive any parameters.\n * @param callback Function\n * @param action Parameterless function to call after the callback\n */\nexport function useCallbackWithAction(callback, action) {\n return useCallback(function () {\n var result = callback(...arguments);\n action();\n return result;\n }, [action, callback]);\n}\nexport default useCallbackWithAction;\n//# sourceMappingURL=useCallbackWithAction.js.map","import { useCallback } from 'react';\n\n/**\n * Returns a callback function that calls the given callback with the `target.value` of\n * an input change event.\n * @param callback the callback to call with the `target.value`\n * @returns a callback function that calls the given callback with the `target.value`\n * @example\n * const [value, setValue] = useState('');\n * const onChange = useChangeEventValueCallback(setValue);\n * <input value={value} onChange={onChange} />\n */\nexport function useChangeEventValueCallback(callback) {\n return useCallback(event => {\n callback(event.target.value);\n }, [callback]);\n}\nexport default useChangeEventValueCallback;\n//# sourceMappingURL=useChangeEventValueCallback.js.map","import { useEffect, useState } from 'react';\n\n/**\n * Sets a delay, and returns a boolean indicating whether the delay is still active.\n * @param delayMs The delay in milliseconds\n * @returns A boolean indicating whether the delay is still active\n */\nexport function useDelay(delayMs) {\n var [isDelayed, setIsDelayed] = useState(true);\n useEffect(() => {\n var timeout = setTimeout(() => {\n setIsDelayed(false);\n }, delayMs);\n return () => {\n clearTimeout(timeout);\n };\n }, [delayMs]);\n return isDelayed;\n}\nexport default useDelay;\n//# sourceMappingURL=useDelay.js.map","import { useEffect, useState } from 'react';\n\n/**\n * Returns a stateful value, and a function to update it. The value will also\n * be updated if the input value changes.\n * @param inputValue This will be used as the initial state value and will also\n * update the state if it changes.\n */\nexport function useDependentState(inputValue) {\n var [state, setState] = useState(inputValue);\n useEffect(() => {\n setState(inputValue);\n }, [inputValue]);\n return [state, setState];\n}\nexport default useDependentState;\n//# sourceMappingURL=useDependentState.js.map","import { useEffect, useRef } from 'react';\n\n/**\n * Custom useEffect hook that runs an effect function up to `n` times as long\n * as a given `condition` value is true.\n *\n * The effect will be evaluated whenever the dependency array, the value of `n`,\n * or the `condition` value changes. If the counter is < n and the condition is\n * true, the effectCallback will be run, and the counter will be incremented.\n * Note that the counter will never get reset even if parameters change.\n * @param effectCallback Effect function to run\n * @param effectCallbackDependencies Dependencies for the effect function\n * @param n Number of times to run when condition is met\n * @param condition Condition that must be true to run\n */\nexport function useEffectNTimesWhen(effectCallback, effectCallbackDependencies, n, condition) {\n var countRef = useRef(0);\n useEffect(() => {\n if (countRef.current >= n) {\n return;\n }\n if (condition) {\n countRef.current += 1;\n effectCallback();\n }\n // The `effectCallback` is intentionally excluded from the dependencies list\n // below since its reference may change on every render. Instead, the\n // `effectCallbackDependencies` arg is used to indicate when a change should\n // invalidate the `effectCallback` reference. The eslint configuration for\n // `react-hooks/exhaustive-deps` will validate that the `effectCallback` and\n // `effectCallbackDependencies` args are in sync at the call site of\n // `useEffectNTimesWhen`.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [n, condition, ...effectCallbackDependencies]);\n}\nexport default useEffectNTimesWhen;\n//# sourceMappingURL=useEffectNTimesWhen.js.map","import { useRef } from 'react';\n\n/**\n * Memoize a value based on an isEqual predicate instead of reference equality.\n * @param value Value to memoize\n * @param isEqual Predicate to see if value has changed since last render\n */\nexport function useIsEqualMemo(value, isEqual) {\n var previousValueRef = useRef(value);\n var currentValue = isEqual(previousValueRef.current, value) ? previousValueRef.current : value;\n previousValueRef.current = currentValue;\n return currentValue;\n}\nexport default useIsEqualMemo;\n//# sourceMappingURL=useIsEqualMemo.js.map","import { useCallback, useMemo } from 'react';\nimport { nanoid } from 'nanoid';\nfunction preventDefault(event) {\n event.preventDefault();\n}\n/**\n * Returns props to associate a form with a submit button. It generates a unique\n * id that will be assigned to the form `id` attribute and a button `form`\n * attribute. Useful for cases where a submit button exists outside of the form.\n *\n * e.g.\n *\n * const preventDefaultFormSubmit = true;\n * const { formProps, submitButtonProps } = useFormWithDetachedSubmitButton(preventDefaultFormSubmit);\n *\n * <form {...formProps}></form>\n * <button {...submitButtonProps} type=\"submit\">Submit</button>\n *\n * @param enableDefaultFormSubmitBehavior Optionally enable default form submit behavior.\n * @returns props that can be spread on a form component + a submit button component.\n */\nexport default function useFormWithDetachedSubmitButton() {\n var enableDefaultFormSubmitBehavior = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var formId = useMemo(() => \"useSubmitButtonRef-\".concat(nanoid()), []);\n var submitButtonRef = useCallback(buttonEl => {\n var _buttonEl$UNSAFE_getD;\n buttonEl === null || buttonEl === void 0 || (_buttonEl$UNSAFE_getD = buttonEl.UNSAFE_getDOMNode()) === null || _buttonEl$UNSAFE_getD === void 0 || _buttonEl$UNSAFE_getD.setAttribute('form', formId);\n }, [formId]);\n var formProps = useMemo(() => ({\n id: formId,\n onSubmit: enableDefaultFormSubmitBehavior ? undefined : preventDefault\n }), [formId, enableDefaultFormSubmitBehavior]);\n var submitButtonProps = useMemo(() => ({\n form: formId,\n ref: submitButtonRef\n }), [formId, submitButtonRef]);\n return {\n formProps,\n submitButtonProps\n };\n}\n//# sourceMappingURL=useFormWithDetachedSubmitButton.js.map","import { useMemo } from 'react';\nimport { mapSelection, optimizeSelection } from \"./SelectionUtils.js\";\n/**\n * Given viewport data, maps the current selectedKeys to an optimized selection.\n * The keys are mapped to new values via a `mapItem` function.\n * @param viewportData The viewport to map selections for\n * @param mapItem A function to map an item in the viewport to a new value\n * @param getKey A function to get the key for an item in the viewport.\n */\nexport function useMappedSelection(viewportData, mapItem, getKey) {\n var {\n getItem,\n selectedKeys,\n items\n } = viewportData;\n return useMemo(() => {\n var {\n selection,\n isInverted\n } = optimizeSelection(selectedKeys, items.length, getKey);\n return {\n selection: mapSelection(selection, getItem, mapItem),\n isInverted\n };\n }, [selectedKeys, items.length, getKey, getItem, mapItem]);\n}\nexport default useMappedSelection;\n//# sourceMappingURL=useMappedSelection.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 { useCallback } from 'react';\n\n/**\n * Returns a callback that can update a prop on an object. The update is done\n * by making a copy of the original object with an updated version of the prop\n * and passing the copy to a callback function.\n *\n * e.g.\n * const [value, setValue] = useState({\n * first: 'John',\n * last: 'Doe'\n * });\n *\n * const onLastNameChange = usePropChangeCallback(\n * value,\n * 'last',\n * setValue\n * );\n *\n * // This will create a new object { first: 'John', last: 'Smith' } and pass it to `setValue`\n * onLastNameChange('Smith');\n *\n * The optional `defaultValue` controls the callback signature. If provided, the\n * callback will support passing in null or undefined values.\n *\n * e.g.\n *\n * const onLastNameChange = usePropChangeCallback(\n * value,\n * 'last',\n * setValue,\n * ''\n * );\n *\n * onLastNameChange('Smith'); // { first: 'John', last: 'Smith' }\n * onLastNameChange(null); // { first: 'John', last: '' }\n * onLastNameChange(undefined); // { first: 'John', last: '' }\n *\n * @param value The object to update\n * @param propName The prop name to update\n * @param onChange A callback to pass the newly created object with updated prop value\n * @param defaultValue Optional default value. If provided, the returned callback\n * signature will allow null or undefined values to be passed in.\n */\n\nexport function usePropChangeCallback(value, propName, onChange, defaultValue) {\n var hasDefault = arguments.length === 4;\n return useCallback(propValue => {\n var newValue = hasDefault ? propValue !== null && propValue !== void 0 ? propValue : defaultValue : propValue;\n onChange(_objectSpread(_objectSpread({}, value), {}, {\n [propName]: newValue\n }));\n }, [onChange, value, propName, hasDefault, defaultValue]);\n}\nexport default usePropChangeCallback;\n//# sourceMappingURL=usePropChangeCallback.js.map","import { useEffect, useState } from 'react';\n\n/**\n * Debounces a value.\n * Returns the initial value immediately.\n * Returns the latest value after no changes have occurred for the debounce duration.\n * @param value Value to debounce\n * @param debounceMs Amount of time to debounce\n * @returns The debounced value + whether the value is still debouncing\n */\nexport function useDebouncedValue(value, debounceMs) {\n var [isDebouncing, setIsDebouncing] = useState(true);\n var [debouncedValue, setDebouncedValue] = useState(value);\n\n // Keep `isDebouncing` in sync with `value` and `debounceMs` by setting state\n // during render instead of in `useEffect`\n // https://react.dev/learn/you-might-not-need-an-effect#adjusting-some-state-when-a-prop-changes\n var [previousValue, setPreviousValue] = useState(value);\n var [previousDebounceMs, setPreviousDebounceMs] = useState(debounceMs);\n if (value !== previousValue || debounceMs !== previousDebounceMs) {\n setIsDebouncing(true);\n setPreviousValue(value);\n setPreviousDebounceMs(debounceMs);\n }\n useEffect(() => {\n var isCancelled = false;\n var timeoutId = setTimeout(() => {\n if (!isCancelled) {\n setIsDebouncing(false);\n setDebouncedValue(value);\n }\n }, debounceMs);\n return () => {\n isCancelled = true;\n clearTimeout(timeoutId);\n };\n }, [value, debounceMs]);\n return {\n isDebouncing,\n value: debouncedValue\n };\n}\nexport default useDebouncedValue;\n//# sourceMappingURL=useDebouncedValue.js.map","import { useCallback } from 'react';\n\n/**\n * Returns a callback that sets attributes on elements based on given selectors.\n * @param attributes Attributes object containing prop name + values to set\n * @param selectors Optional `querySelector` param to target child elements. If\n * omitted, will target the rootEl\n */\nexport function useSetAttributesCallback(attributes, selectors) {\n return useCallback(rootEl => {\n if (rootEl == null) {\n return;\n }\n var targets = selectors == null ? [rootEl] : rootEl.querySelectorAll(selectors);\n targets.forEach(target => {\n Object.entries(attributes).forEach(_ref => {\n var [prop, value] = _ref;\n target.setAttribute(prop, value);\n });\n });\n }, [attributes, selectors]);\n}\nexport default useSetAttributesCallback;\n//# sourceMappingURL=useSetAttributesCallback.js.map","import { extractSpectrumHTMLElement } from \"./SpectrumUtils.js\";\nimport useMappedRef from \"./useMappedRef.js\";\nimport useSetAttributesCallback from \"./useSetAttributesCallback.js\";\nexport var SPELLCHECK_FALSE_ATTRIBUTE = {\n spellCheck: false\n};\n\n/**\n * Returns a callback ref that can be assigned to a React Spectrum component.\n * to set `spellCheck=false` on child elements based on given selectors.\n * @param selectors Optional `querySelector` argument to target child elements.\n * If omitted, the attributes will be applied to the root element returned by\n * `UNSAFE_getDOMNode()` on the component ref.\n */\nexport function useSpectrumDisableSpellcheckRef(selectors) {\n var disableSpellcheck = useSetAttributesCallback(SPELLCHECK_FALSE_ATTRIBUTE, selectors);\n return useMappedRef(disableSpellcheck, extractSpectrumHTMLElement);\n}\nexport default useSpectrumDisableSpellcheckRef;\n//# sourceMappingURL=useSpectrumDisableSpellcheckRef.js.map","import { useCallback, useEffect, useState } from 'react';\nimport Log from '@deephaven/log';\nimport { getWindowParent } from '@deephaven/utils';\nimport { MSG_REQUEST_SET_THEME } from \"./ThemeModel.js\";\nimport { isExternalThemeData, isExternalThemeEnabled, parseExternalThemeData, requestExternalThemeData } from \"./ThemeUtils.js\";\nvar logger = Log.module('useExternalTheme');\n/**\n * If external theme is configured via `theme=EXTERNAL_THEME_KEY` query param,\n * handle `postMessage` communication to retrieve the theme data from the parent\n * Window. The hook will also listen for `MSG_REQUEST_SET_THEME` messages from\n * the parent and current Window to allow explicitly setting the theme.\n */\nexport function useExternalTheme() {\n var [result, setResult] = useState(() => {\n var isEnabled = isExternalThemeEnabled();\n return {\n isEnabled,\n isPending: isEnabled\n };\n });\n\n /** Parse external theme data and update the result */\n var handleExternalThemeData = useCallback(externalThemeData => {\n var themeData = parseExternalThemeData(externalThemeData);\n setResult({\n isEnabled: true,\n isPending: false,\n themeData\n });\n }, []);\n useEffect(() => {\n if (!result.isEnabled) {\n return;\n }\n logger.debug('Requesting external theme data');\n\n /** Parent or current Window can explicitly set the theme */\n function onMessage(event) {\n var parent = getWindowParent();\n\n // Allow messages from parent or current window\n if (event.source !== window && event.source !== parent) {\n return;\n }\n if (event.data.message === MSG_REQUEST_SET_THEME) {\n if (isExternalThemeData(event.data.payload)) {\n handleExternalThemeData(event.data.payload);\n }\n }\n }\n window.addEventListener('message', onMessage);\n\n /** Request initial theme data from parent window */\n requestExternalThemeData().then(handleExternalThemeData).catch(err => {\n logger.error(err);\n setResult({\n isEnabled: true,\n isPending: false\n });\n });\n return () => {\n window.removeEventListener('message', onMessage);\n };\n }, [handleExternalThemeData, result.isEnabled]);\n return result;\n}\nexport default useExternalTheme;\n//# sourceMappingURL=useExternalTheme.js.map","import React, { useContext } from 'react';\nimport LoadingOverlay from \"../LoadingOverlay.js\";\nimport { FontsLoadedContext } from \"./FontBootstrap.js\";\nimport { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nexport function FontsLoaded(_ref) {\n var {\n children\n } = _ref;\n var isFontsLoaded = useContext(FontsLoadedContext);\n if (!isFontsLoaded) {\n return /*#__PURE__*/_jsx(LoadingOverlay, {\n \"data-testid\": \"fonts-loaded-loading\"\n });\n }\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children\n });\n}\nexport default FontsLoaded;\n//# sourceMappingURL=FontsLoaded.js.map","var _excluded = [\"ariaLabel\", \"icon\", \"isQuiet\", \"labelText\", \"children\", \"onOpenChange\", \"tooltip\"];\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 { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ActionButton, DialogTrigger, Icon, Text } from \"../spectrum/index.js\";\nimport { Tooltip } from \"../popper/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Dialog trigger based on an ActionButton.\n */\nexport function ActionButtonDialogTrigger(_ref) {\n var {\n ariaLabel,\n icon,\n isQuiet,\n labelText,\n children,\n onOpenChange,\n tooltip\n } = _ref,\n styleProps = _objectWithoutProperties(_ref, _excluded);\n var iconClassName = labelText == null && tooltip != null ? 'action-button-icon-with-tooltip' : undefined;\n return /*#__PURE__*/_jsxs(DialogTrigger, {\n type: \"popover\",\n onOpenChange: onOpenChange,\n children: [/*#__PURE__*/_jsxs(ActionButton\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, styleProps), {}, {\n \"aria-label\": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : labelText,\n isQuiet: isQuiet,\n children: [/*#__PURE__*/_jsx(Icon, {\n UNSAFE_className: iconClassName,\n children: /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon\n })\n }), labelText == null ? null : /*#__PURE__*/_jsx(Text, {\n children: labelText\n }), tooltip == null ? null : /*#__PURE__*/_jsx(Tooltip, {\n children: tooltip\n })]\n })), children]\n });\n}\nexport default ActionButtonDialogTrigger;\n//# sourceMappingURL=ActionButtonDialogTrigger.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/* eslint-disable react/jsx-props-no-spreading */\n\nimport { useFormWithDetachedSubmitButton } from '@deephaven/react-hooks';\nimport { SpectrumButton, ButtonGroup, Content, Dialog, Divider, Form, Heading } from \"../spectrum/index.js\";\nimport styles from \"../SpectrumComponent.module.css\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function ConfirmationDialog(_ref) {\n var {\n heading,\n confirmationButtonLabel,\n children,\n onCancel,\n onConfirm\n } = _ref;\n var {\n formProps,\n submitButtonProps\n } = useFormWithDetachedSubmitButton();\n return /*#__PURE__*/_jsxs(Dialog, {\n children: [/*#__PURE__*/_jsx(Heading, {\n level: 3,\n UNSAFE_className: styles.spectrumDialogComponentHeading,\n children: heading\n }), /*#__PURE__*/_jsx(Divider, {}), /*#__PURE__*/_jsx(Content, {\n children: /*#__PURE__*/_jsx(Form\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, formProps), {}, {\n children: children\n }))\n }), /*#__PURE__*/_jsxs(ButtonGroup, {\n children: [/*#__PURE__*/_jsx(SpectrumButton, {\n variant: \"secondary\",\n onPress: onCancel,\n children: \"Cancel\"\n }), /*#__PURE__*/_jsx(SpectrumButton, _objectSpread(_objectSpread({}, submitButtonProps), {}, {\n // eslint-disable-next-line react/style-prop-object\n style: \"fill\",\n variant: \"negative\",\n onPress: onConfirm,\n type: \"submit\",\n children: confirmationButtonLabel\n }))]\n })]\n });\n}\nexport default ConfirmationDialog;\n//# sourceMappingURL=ConfirmationDialog.js.map","import { useCallback } from 'react';\nimport { vsTrash } from '@deephaven/icons';\nimport { ActionButtonDialogTrigger, ConfirmationDialog } from \"../dialogs/index.js\";\nimport { ACTION_ICON_HEIGHT } from \"../UIConstants.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ConfirmActionButton(_ref) {\n var {\n ariaLabel,\n heading,\n confirmationButtonLabel,\n isHidden,\n children,\n tooltip,\n onConfirm: _onConfirm\n } = _ref;\n var renderDialog = useCallback(close => /*#__PURE__*/_jsx(ConfirmationDialog, {\n heading: heading,\n confirmationButtonLabel: confirmationButtonLabel,\n onCancel: close,\n onConfirm: () => {\n close();\n _onConfirm();\n },\n children: children\n }), [children, confirmationButtonLabel, heading, _onConfirm]);\n return /*#__PURE__*/_jsx(ActionButtonDialogTrigger, {\n ariaLabel: ariaLabel,\n icon: vsTrash,\n isHidden: isHidden,\n isQuiet: true,\n height: ACTION_ICON_HEIGHT,\n tooltip: tooltip,\n children: renderDialog\n });\n}\nexport default ConfirmActionButton;\n//# sourceMappingURL=ConfirmActionButton.js.map","var _excluded = [\"icon\", \"label\", \"tooltip\"];\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 { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ActionButton, Icon } from \"../spectrum/index.js\";\nimport { Tooltip } from \"../popper/index.js\";\nimport { ACTION_ICON_HEIGHT } from \"../UIConstants.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function IconActionButton(_ref) {\n var {\n icon,\n label,\n tooltip\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/_jsxs(ActionButton, _objectSpread(_objectSpread({}, props), {}, {\n \"aria-label\": label,\n isQuiet: true,\n height: ACTION_ICON_HEIGHT,\n children: [/*#__PURE__*/_jsx(Icon, {\n UNSAFE_className: tooltip == null ? undefined : 'action-button-icon-with-tooltip',\n children: /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon\n })\n }), tooltip == null ? null : /*#__PURE__*/_jsx(Tooltip, {\n children: tooltip\n })]\n }));\n}\nIconActionButton.displayName = 'IconActionButton';\nexport default IconActionButton;\n//# sourceMappingURL=IconActionButton.js.map","import React from 'react';\nimport { useDebouncedValue } from '@deephaven/react-hooks';\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Display a modal after a debounce time. Blocks the screen from interaction immediately,\n * but then waits the set debounce time before rendering the modal.\n */\nfunction DebouncedModal(_ref) {\n var {\n blockInteraction = true,\n children,\n debounceMs,\n isOpen = false\n } = _ref;\n var {\n value: debouncedIsOpen\n } = useDebouncedValue(isOpen, debounceMs);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [blockInteraction && isOpen && /*#__PURE__*/_jsx(\"div\", {\n className: \"modal-backdrop\",\n style: {\n backgroundColor: 'transparent'\n },\n \"data-testid\": \"debounced-modal-backdrop\"\n }), /*#__PURE__*/React.cloneElement(children, {\n isOpen: isOpen && debouncedIsOpen\n })]\n });\n}\nexport default DebouncedModal;\n//# sourceMappingURL=DebouncedModal.js.map","import React from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport Modal from \"./Modal.js\";\nimport ModalBody from \"./ModalBody.js\";\nimport \"./InfoModal.css\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * A modal that displays a message with an icon. Can be used for informational messages, warnings, or errors.\n * Does not have any buttons and cannot be dismissed.\n */\nfunction InfoModal(_ref) {\n var {\n className,\n icon,\n isOpen = false,\n subtitle,\n title\n } = _ref;\n return /*#__PURE__*/_jsx(Modal, {\n isOpen: isOpen,\n className: className,\n children: /*#__PURE__*/_jsx(ModalBody, {\n children: /*#__PURE__*/_jsxs(\"div\", {\n className: \"info-modal\",\n children: [icon != null && /*#__PURE__*/_jsx(\"div\", {\n className: \"message-icon\",\n children: /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon\n })\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"message-header\",\n children: title\n }), subtitle != null && /*#__PURE__*/_jsx(\"div\", {\n className: \"message-content\",\n children: subtitle\n })]\n })\n })\n });\n}\nexport default InfoModal;\n//# sourceMappingURL=InfoModal.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 { ActionBar } from \"./spectrum/index.js\";\nimport commonStyles from \"./SpectrumComponent.module.css\"; // The action bar will still show the item count + a clear selection button\n// even if there are no actions. Our only consumer is currently the ACL Editor,\n// but group action functionality has not yet been prioritized (see DH-15221).\n// For now we'll just pass it an empty action items array.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar noActions = [];\nexport function BulkActionBar(_ref) {\n var {\n styleProps,\n selectedItemCount,\n onClearSelection\n } = _ref;\n return /*#__PURE__*/_jsx(ActionBar, _objectSpread(_objectSpread({\n UNSAFE_className: commonStyles.spectrumActionBar\n // eslint-disable-next-line react/jsx-props-no-spreading\n }, styleProps), {}, {\n isEmphasized: true,\n selectedItemCount: selectedItemCount,\n onClearSelection: onClearSelection,\n children: noActions\n }));\n}\nexport default BulkActionBar;\n//# sourceMappingURL=BulkActionBar.js.map","import React, { useCallback, useMemo, useState } from 'react';\nimport classNames from 'classnames';\nimport clamp from 'lodash.clamp';\nimport { vsAdd, vsTrash } from '@deephaven/icons';\nimport { RangeUtils } from '@deephaven/utils';\nimport Button from \"./Button.js\";\nimport ItemList from \"./ItemList.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n// Display a list of items with an input for adding new items, and Add/Delete buttons\nfunction EditableItemList(props) {\n var {\n isInvalid = false,\n items,\n onAdd = () => undefined,\n onDelete = () => undefined,\n validate = () => null\n } = props;\n var [inputError, setInputError] = useState(null);\n var [selectedRanges, setSelectedRanges] = useState([]);\n var [value, setValue] = useState('');\n var handleSelectionChange = useCallback(ranges => {\n setSelectedRanges(ranges);\n }, []);\n var handleDelete = useCallback(() => {\n onDelete(RangeUtils.getItemsInRanges(items, selectedRanges));\n setSelectedRanges([]);\n }, [items, selectedRanges, onDelete]);\n var handleAdd = useCallback(() => {\n if (value === '') {\n return;\n }\n var validationError = validate(value);\n if (validationError == null) {\n onAdd(value);\n setValue('');\n } else {\n setInputError(validationError);\n }\n }, [value, onAdd, validate]);\n var handleInputChange = useCallback(event => {\n var {\n value: inputValue\n } = event.target;\n setValue(inputValue);\n setInputError(inputValue === '' ? null : validate(inputValue));\n }, [validate]);\n var handleInputFocus = useCallback(() => {\n setSelectedRanges([]);\n }, []);\n var handleInputKeyDown = useCallback(event => {\n if (event.key === 'Enter') {\n handleAdd();\n }\n }, [handleAdd]);\n var containerHeight = useMemo(() => 14 + clamp(items.length, 1, 6) * ItemList.DEFAULT_ROW_HEIGHT, [items.length]);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: classNames('editable-item-list-container', {\n 'is-invalid': isInvalid\n }),\n children: [/*#__PURE__*/_jsx(\"div\", {\n style: {\n height: containerHeight\n },\n children: /*#__PURE__*/_jsx(ItemList, {\n itemCount: items.length,\n items: items.map((item, index) => ({\n value: item,\n isSelected: RangeUtils.isSelected(selectedRanges, index)\n })),\n offset: 0,\n selectedRanges: selectedRanges,\n onSelectionChange: handleSelectionChange,\n isMultiSelect: true\n })\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"d-flex flex-row pt-2\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"d-flex flex-grow-1\",\n children: /*#__PURE__*/_jsx(\"input\", {\n className: classNames('form-control', {\n 'is-invalid': inputError != null\n }),\n placeholder: \"Enter value\",\n type: \"text\",\n value: value,\n onChange: handleInputChange,\n onFocus: handleInputFocus,\n onKeyDown: handleInputKeyDown\n })\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"d-flex align-items-start mt-1 ml-2\",\n children: [/*#__PURE__*/_jsx(Button, {\n kind: \"ghost\",\n onClick: handleAdd,\n disabled: inputError != null || value === '',\n icon: vsAdd,\n tooltip: \"Add new item\",\n \"data-testid\": \"add-item-button\"\n }), /*#__PURE__*/_jsx(Button, {\n kind: \"ghost\",\n onClick: handleDelete,\n disabled: selectedRanges.length === 0,\n icon: vsTrash,\n tooltip: \"Delete selected items\",\n \"data-testid\": \"delete-item-button\"\n })]\n })]\n })]\n });\n}\nexport default EditableItemList;\n//# sourceMappingURL=EditableItemList.js.map","import { useMemo } from 'react';\nimport { Text } from \"./spectrum/index.js\";\nimport stylesCommon from \"./SpectrumComponent.module.css\";\nimport { Tooltip } from \"./popper/index.js\";\nimport { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function TextWithTooltip(_ref) {\n var {\n text,\n placement = 'top-start'\n } = _ref;\n var options = useMemo(() => ({\n placement\n }), [placement]);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(Text, {\n UNSAFE_className: stylesCommon.spectrumEllipsis,\n children: text !== null && text !== void 0 ? text :\n /*#__PURE__*/\n /* &nbsp; so that height doesn't collapse when empty */\n _jsx(_Fragment, {\n children: \"\\xA0\"\n })\n }), text == null || text === '' ? null : /*#__PURE__*/_jsx(Tooltip, {\n options: options,\n children: text\n })]\n });\n}\nexport default TextWithTooltip;\n//# sourceMappingURL=TextWithTooltip.js.map","var _excluded = [\"scrollRef\", \"getItemDisplayText\", \"getKey\"];\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 { useCallback } from 'react';\nimport { SpectrumComboBox, Item } from \"./spectrum/index.js\";\nimport TextWithTooltip from \"./TextWithTooltip.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function SearchableCombobox(_ref) {\n var {\n scrollRef,\n getItemDisplayText,\n getKey\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var renderItem = useCallback(item => {\n var key = getKey(item);\n var displayText = getItemDisplayText(item);\n return /*#__PURE__*/_jsx(Item, {\n textValue: displayText !== null && displayText !== void 0 ? displayText : String(key),\n children: /*#__PURE__*/_jsx(TextWithTooltip, {\n text: displayText\n })\n }, key);\n }, [getItemDisplayText, getKey]);\n return /*#__PURE__*/_jsx(SpectrumComboBox, _objectSpread(_objectSpread({}, props), {}, {\n // The `ref`prop type defined by React Spectrum is incorrect here\n ref: scrollRef,\n menuTrigger: \"focus\"\n // Type assertion is necessary since <ComboBox> types don't recognize the\n // generic key arg\n ,\n onSelectionChange: props.onSelectionChange,\n children: renderItem\n }));\n}\nexport default SearchableCombobox;\n//# sourceMappingURL=SearchableCombobox.js.map","import { useEffect, useState } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsEmptyWindow } from '@deephaven/icons';\nimport { Content, Heading, Icon, IllustratedMessage } from \"./spectrum/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nvar DEFAULT_DELAY_MS = 500;\nexport function TableViewEmptyState(_ref) {\n var {\n heading,\n content,\n delayMs = DEFAULT_DELAY_MS\n } = _ref;\n var [show, setShow] = useState(false);\n\n // Spectrum `TableView` will render the result of `renderEmptyState` prop\n // immediately, and it will be hidden once data loads. In cases where the data\n // load is quick, there is a jarring flicker, and the empty data message is\n // not helpful. This delay will avoid showing the message if data loads within\n // the `delayMs`.\n useEffect(() => {\n window.setTimeout(() => {\n setShow(true);\n }, delayMs);\n }, [delayMs]);\n return show ? /*#__PURE__*/_jsxs(IllustratedMessage, {\n children: [/*#__PURE__*/_jsx(Icon, {\n size: \"XXL\",\n children: /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: vsEmptyWindow\n })\n }), /*#__PURE__*/_jsx(Heading, {\n children: heading\n }), content == null ? null : /*#__PURE__*/_jsx(Content, {\n children: content\n })]\n }) : null;\n}\nexport default TableViewEmptyState;\n//# sourceMappingURL=TableViewEmptyState.js.map","import React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport { vsClose } from '@deephaven/icons';\nimport Button from \"./Button.js\";\nimport ThemeExport from \"./ThemeExport.js\";\nimport \"./ToastNotification.css\";\nimport { FadeTransition } from \"./transitions/index.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction ToastNotification(_ref) {\n var {\n buttons,\n isShown = false,\n classNames: classNamesProp,\n message,\n type,\n onClick,\n onDismiss,\n 'data-testid': dataTestId\n } = _ref;\n var nodeRef = useRef(null);\n var hasButtons = buttons && buttons.length !== 0;\n return /*#__PURE__*/_jsx(CSSTransition, {\n in: isShown,\n timeout: ThemeExport.transitionMs,\n classNames: \"toast-notification-slide-up\",\n mountOnEnter: true,\n unmountOnExit: true,\n nodeRef: nodeRef,\n children: /*#__PURE__*/_jsxs(\"div\", {\n ref: nodeRef,\n className: classNames('toast-notification', classNamesProp, type),\n role: \"presentation\",\n onClick: onClick,\n onKeyPress: onClick,\n \"data-testid\": dataTestId,\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"message-container\",\n children: /*#__PURE__*/_jsx(\"span\", {\n className: \"message\",\n children: message\n })\n }), /*#__PURE__*/_jsx(FadeTransition, {\n in: hasButtons,\n timeout: ThemeExport.transitionSlowMs,\n mountOnEnter: true,\n unmountOnExit: true,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"buttons-container\",\n children: buttons\n })\n }), onDismiss && /*#__PURE__*/_jsx(Button, {\n kind: \"ghost\",\n icon: vsClose,\n tooltip: \"Close notification\",\n className: \"my-2\",\n onClick: onDismiss\n })]\n })\n });\n}\nToastNotification.TYPE = Object.freeze({\n ERROR: 'error'\n});\nexport default ToastNotification;\n//# sourceMappingURL=ToastNotification.js.map","import React from 'react';\nimport useDeferredApi from \"./useDeferredApi.js\";\nimport { ApiContext } from \"./ApiBootstrap.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Does not render children until the deferred API is resolved.\n */\nexport var DeferredApiBootstrap = /*#__PURE__*/React.memo(_ref => {\n var {\n children,\n onError,\n widget\n } = _ref;\n var [api, apiError] = useDeferredApi(widget);\n if (apiError != null) {\n onError === null || onError === void 0 || onError(apiError);\n return null;\n }\n if (api == null) {\n // Still waiting for the API to load\n return null;\n }\n return /*#__PURE__*/_jsx(ApiContext.Provider, {\n value: api,\n children: children\n });\n});\nDeferredApiBootstrap.displayName = 'DeferredApiBootstrap';\nexport default DeferredApiBootstrap;\n//# sourceMappingURL=DeferredApiBootstrap.js.map","import { createContext, useContext, useEffect, useState } from 'react';\n\n/** Function for unsubscribing from a given subscription */\n\n/** Update when the ObjectFetch is still loading */\n\n/** Update when the ObjectFetch has errored */\n\n/** Update when the object is ready */\n\n/**\n * Update with the current `fetch` function and status of the object.\n * - If both `fetch` and `error` are `null`, it is still loading the fetcher\n * - If `fetch` is not `null`, the object is ready to be fetched\n * - If `error` is not `null`, there was an error loading the object\n */\n\n/** ObjectFetchManager for managing a subscription to an object using a VariableDescriptor */\n\n/** Context for tracking an implementation of the ObjectFetchManager. */\nexport var ObjectFetchManagerContext = /*#__PURE__*/createContext(null);\nObjectFetchManagerContext.displayName = 'ObjectFetchManagerContext';\n\n/**\n * Retrieve a `fetch` function for the given variable descriptor.\n *\n * @param descriptor Descriptor or URI to get the `fetch` function for\n * @returns An object with the current `fetch` function, OR an error status set if there was an issue fetching the object.\n * Retrying is left up to the ObjectManager implementation used from this context.\n */\nexport function useObjectFetch(descriptor) {\n var [currentUpdate, setCurrentUpdate] = useState({\n status: 'loading'\n });\n var objectFetchManager = useContext(ObjectFetchManagerContext);\n useEffect(() => {\n if (objectFetchManager == null) {\n setCurrentUpdate({\n error: new Error('No ObjectFetchManager available in context'),\n status: 'error'\n });\n return;\n }\n // Update to signal we're still loading, if we're not already in a loading state.\n setCurrentUpdate(oldUpdate => oldUpdate.status === 'loading' ? oldUpdate : {\n status: 'loading'\n });\n return objectFetchManager.subscribe(descriptor, setCurrentUpdate);\n }, [descriptor, objectFetchManager]);\n return currentUpdate;\n}\n//# sourceMappingURL=useObjectFetch.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); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport Log from '@deephaven/log';\nimport { assertNotNull } from '@deephaven/utils';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useObjectFetch } from \"./useObjectFetch.js\";\nimport useDeferredApi from \"./useDeferredApi.js\";\nimport useApi from \"./useApi.js\";\nvar log = Log.module('useWidget');\n\n/**\n * Types of widgets that can be fetched with this hook.\n */\n\n/**\n * Wrapper object for a widget and error status. Both widget and error will be `null` if it is still loading.\n */\n\n/**\n * Retrieve a widget for the given variable descriptor. Note that if the widget is successfully fetched, ownership of the widget is passed to the consumer and will need to close the object as well.\n * @param descriptor Descriptor or URI to get the widget for. Should be stable to avoid infinite re-fetching.\n * @returns A WidgetWrapper object that contains the widget and JS API, or an error status if there was an issue fetching the widget. Will contain nulls if still loading.\n */\nexport function useWidget(descriptor) {\n var [wrapper, setWrapper] = useState(() => ({\n widget: null,\n error: null\n }));\n var objectFetch = useObjectFetch(descriptor);\n var [descriptorApi, descriptorApiError] = useDeferredApi(descriptor);\n var defaultApi = useApi();\n var api = descriptorApi !== null && descriptorApi !== void 0 ? descriptorApi : defaultApi;\n useEffect(function loadWidget() {\n log.debug('loadWidget', descriptor);\n var {\n status\n } = objectFetch;\n if (status === 'error') {\n // We can't fetch if there's an error getting the fetcher, just return an error\n setWrapper({\n widget: null,\n error: objectFetch.error\n });\n return;\n }\n if (status === 'loading') {\n // Still loading\n setWrapper({\n widget: null,\n error: null\n });\n return;\n }\n var {\n fetch\n } = objectFetch;\n // We should be able to load the widget. Load it asynchronously, and set the widget when it's done.\n // If we get cancelled before the fetch is done, we should close the widget and its exported objects.\n // If not though, the consumer of the widget is expected to take ownership and close the widget appropriately.\n var isCancelled = false;\n function loadWidgetInternal() {\n return _loadWidgetInternal.apply(this, arguments);\n }\n function _loadWidgetInternal() {\n _loadWidgetInternal = _asyncToGenerator(function* () {\n try {\n assertNotNull(fetch);\n var newWidget = yield fetch();\n if (isCancelled) {\n log.debug2('loadWidgetInternal cancelled', descriptor, newWidget);\n newWidget.close();\n if ('exportedObjects' in newWidget) {\n newWidget.exportedObjects.forEach(exportedObject => {\n exportedObject.close();\n });\n }\n return;\n }\n log.debug('loadWidgetInternal done', descriptor, newWidget);\n setWrapper({\n widget: newWidget,\n error: null\n });\n } catch (e) {\n if (isCancelled) {\n return;\n }\n log.error('loadWidgetInternal error', descriptor, e);\n setWrapper({\n widget: null,\n error: e !== null && e !== void 0 ? e : new Error('Null error')\n });\n }\n });\n return _loadWidgetInternal.apply(this, arguments);\n }\n loadWidgetInternal();\n return () => {\n isCancelled = true;\n };\n }, [descriptor, objectFetch]);\n var wrapperWithApi = useMemo(() => {\n var _wrapper$error;\n return _objectSpread(_objectSpread({}, wrapper), {}, {\n error: (_wrapper$error = wrapper.error) !== null && _wrapper$error !== void 0 ? _wrapper$error : descriptorApiError,\n api: wrapper.widget != null ? api : null\n });\n }, [wrapper, api, descriptorApiError]);\n return wrapperWithApi;\n}\nexport default useWidget;\n//# sourceMappingURL=useWidget.js.map","import { useEffect } from 'react';\nimport { useTheme } from '@deephaven/components';\nimport MonacoUtils from \"./MonacoUtils.js\";\nimport { Fragment as _Fragment, jsx as _jsx } from \"react/jsx-runtime\";\nexport function MonacoThemeProvider(_ref) {\n var {\n children\n } = _ref;\n var {\n activeThemes\n } = useTheme();\n useEffect(function refreshMonacoTheme() {\n if (activeThemes != null) {\n MonacoUtils.initTheme();\n }\n }, [activeThemes]);\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children\n });\n}\n//# sourceMappingURL=MonacoThemeProvider.js.map","import { TimeoutError } from '@deephaven/utils';\n\n/** Default timeout for fetching a variable definition */\nexport var FETCH_TIMEOUT = 10000;\n\n/**\n * Fetch the definition for a variable given a connection. Subscribes to field updates and triggers when the variable is found.\n * @param connection Connection to get the variable from\n * @param name Name of the definition to fetch\n * @param timeout Timeout for the fetch\n * @returns Promise the resolves to the variable definition if found, or rejects if there's an error or the timeout has exceeded\n */\nexport function fetchVariableDefinition(connection, name) {\n var timeout = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : FETCH_TIMEOUT;\n return new Promise((resolve, reject) => {\n var removeListener;\n var timeoutId = setTimeout(() => {\n var _removeListener;\n (_removeListener = removeListener) === null || _removeListener === void 0 || _removeListener();\n reject(new TimeoutError(\"Timeout looking for variable \".concat(name)));\n }, timeout);\n\n /**\n * Checks if the variable we're looking for is in the changes, and resolves the promise if it does\n * @param changes Variables changes that have occurred\n */\n function handleFieldUpdates(changes) {\n var _removeListener2;\n var definition = changes.created.find(def => def.title === name);\n clearTimeout(timeoutId);\n (_removeListener2 = removeListener) === null || _removeListener2 === void 0 || _removeListener2();\n if (definition != null) {\n resolve(definition);\n } else {\n reject(new Error(\"Variable \".concat(name, \" not found\")));\n }\n }\n removeListener = connection.subscribeToFieldUpdates(handleFieldUpdates);\n });\n}\n//# sourceMappingURL=ConnectionUtils.js.map","import React from 'react';\nimport { ApiContext } from '@deephaven/jsapi-bootstrap';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function makeApiContextWrapper(dh) {\n return function ApiContextWrapper(_ref) {\n var {\n children\n } = _ref;\n return /*#__PURE__*/_jsx(ApiContext.Provider, {\n value: dh,\n children: children\n });\n };\n}\nexport default {\n makeApiContextWrapper\n};\n//# sourceMappingURL=HookTestUtils.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); }\nclass ColumnNameError extends Error {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"isColumnNameError\", true);\n }\n}\nexport default ColumnNameError;\n//# sourceMappingURL=ColumnNameError.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); }\nclass TableDisconnectError extends Error {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"isTableDisconnectError\", true);\n }\n}\nexport default TableDisconnectError;\n//# sourceMappingURL=TableDisconnectError.js.map","import { useCallback, useEffect, useState } from 'react';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport Log from '@deephaven/log';\nimport useTableListener from \"./useTableListener.js\";\nimport ColumnNameError from \"./ColumnNameError.js\";\nimport TableDisconnectError from \"./TableDisconnectError.js\";\nvar log = Log.module('useTable');\nvar useTable = (table, firstRow, lastRow, columnNames) => {\n var dh = useApi();\n var [columns, setColumns] = useState(undefined);\n var [data, setData] = useState([]);\n var [columnError, setColumnError] = useState(null);\n var [tableError, setTableError] = useState(null);\n useEffect(() => {\n if (columnNames === undefined) {\n setColumns(table === null || table === void 0 ? void 0 : table.columns);\n setColumnError(null);\n return;\n }\n try {\n setColumns(table === null || table === void 0 ? void 0 : table.findColumns(columnNames));\n setColumnError(null);\n } catch (e) {\n log.error(\"Column not found\", e, columnNames);\n setColumnError(new ColumnNameError('Invalid columnNames argument'));\n }\n }, [table, columnNames]);\n useEffect(() => {\n if (!columns || !table) {\n log.debug2('Table or column not initialized, skip viewport update.');\n return;\n }\n log.debug2('Setting viewport', firstRow, lastRow);\n table.setViewport(firstRow, lastRow, columns);\n }, [columns, table, firstRow, lastRow]);\n var handleUpdate = useCallback(_ref => {\n var {\n detail\n } = _ref;\n if (!columns) {\n log.error('Columns not initialized.');\n return;\n }\n var viewportData = columns.map(column => detail.rows.map(r => r.get(column)));\n setData(viewportData);\n }, [columns]);\n var handleDisconnect = useCallback(() => {\n setTableError(new TableDisconnectError('Table disconnected'));\n }, []);\n var handleReconnect = useCallback(() => {\n setTableError(null);\n }, []);\n useTableListener(table, dh.Table.EVENT_UPDATED, handleUpdate);\n useTableListener(table, dh.Table.EVENT_DISCONNECT, handleDisconnect);\n useTableListener(table, dh.Table.EVENT_RECONNECT, handleReconnect);\n return {\n columns,\n data,\n error: tableError !== null && tableError !== void 0 ? tableError : columnError\n };\n};\nexport default useTable;\n//# sourceMappingURL=useTable.js.map","import { useMemo } from 'react';\nimport useTable from \"./useTable.js\";\n/**\n * Subscribe to viewport updates on a single table column\n * @param table Table to get the data from\n * @param firstRow First viewport row\n * @param lastRow Last viewport row\n * @param columnName Column to get the data from\n * @returns Column object, data array for the column, error, setViewport method\n */\nvar useTableColumn = (table, firstRow, lastRow, columnName) => {\n var columnNames = useMemo(() => [columnName], [columnName]);\n var {\n columns = [],\n data = [],\n error\n } = useTable(table, firstRow, lastRow, columnNames);\n return {\n column: columns[0],\n data: data[0],\n error\n };\n};\nexport default useTableColumn;\n//# sourceMappingURL=useTableColumn.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React, { useCallback, useState, useRef, useEffect, useMemo } from 'react';\nimport classNames from 'classnames';\nimport { LoadingOverlay, SearchInput, SelectValueList } from '@deephaven/components';\nimport { EMPTY_FUNCTION, PromiseUtils } from '@deephaven/utils';\nimport Log from '@deephaven/log';\nimport { Formatter, FormatterUtils } from '@deephaven/jsapi-utils';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport useTableColumn from \"./useTableColumn.js\";\nimport \"./TableInput.css\";\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nvar log = Log.module('TableInput');\nvar SIZE_LIMIT = 250;\nfunction TableInput(props) {\n var _table$size, _error$message;\n var {\n className = undefined,\n columnName,\n settings,\n defaultValue = [],\n isInvalid = false,\n onChange = EMPTY_FUNCTION,\n onBlur = EMPTY_FUNCTION,\n table: tablePromise\n } = props;\n var parentRef = useRef(null);\n var dh = useApi();\n var formatter = useMemo(() => {\n var columnFormats = FormatterUtils.getColumnFormats(settings);\n var dateTimeFormatterOptions = FormatterUtils.getDateTimeFormatterOptions(settings);\n var {\n defaultDecimalFormatOptions = {},\n defaultIntegerFormatOptions = {}\n } = settings;\n return new Formatter(dh, columnFormats, dateTimeFormatterOptions, defaultDecimalFormatOptions, defaultIntegerFormatOptions);\n }, [dh, settings]);\n var [searchValue, setSearchValue] = useState('');\n var [selection, setSelection] = useState(new Set(defaultValue));\n var [table, setTable] = useState();\n var listRef = useRef(null);\n var itemCount = Math.min((_table$size = table === null || table === void 0 ? void 0 : table.size) !== null && _table$size !== void 0 ? _table$size : 0, SIZE_LIMIT);\n var {\n column,\n data,\n error\n } = useTableColumn(table, 0, SIZE_LIMIT - 1, columnName);\n var formatValue = useCallback(value => column ? formatter.getFormattedString(value, column.type, column.name) : \"\".concat(value), [column, formatter]);\n var [items, updatedSelection] = useMemo(() => {\n var removedItems = new Set(selection);\n var result = [];\n if (data == null) {\n // Viewport not initialized\n return [result, null];\n }\n data.forEach(v => {\n var value = \"\".concat(v);\n var isSelected = selection.has(value);\n if (isSelected) {\n removedItems.delete(value);\n }\n result.push({\n value,\n displayValue: formatValue(v),\n isSelected\n });\n });\n if (removedItems.size > 0) {\n log.debug2('Selection has items that are missing from the viewport');\n var newSelection = new Set(selection);\n Array.from(removedItems).forEach(value => {\n newSelection.delete(value);\n });\n return [result, newSelection];\n }\n return [result, null];\n }, [data, selection, formatValue]);\n useEffect(() => {\n if (updatedSelection !== null) {\n setSelection(updatedSelection);\n onChange(Array.from(updatedSelection));\n }\n }, [onChange, updatedSelection]);\n var initTable = useCallback(/*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (promise) {\n try {\n var resolved = yield promise;\n log.debug('Table resolved', resolved);\n setTable(resolved);\n } catch (e) {\n if (PromiseUtils.isCanceled(e)) {\n return;\n }\n log.error(e);\n }\n });\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }(), []);\n useEffect(() => {\n var cancelablePromise = PromiseUtils.makeCancelable(tablePromise);\n initTable(cancelablePromise);\n return () => {\n log.debug2('Cancel table promise');\n cancelablePromise.cancel();\n };\n }, [tablePromise, initTable]);\n\n // Scroll the item matching the input into view\n var handleSearchChange = useCallback(e => {\n var {\n value\n } = e.target;\n setSearchValue(value);\n var index = items.findIndex(item => item.displayValue.includes(value));\n if (index > -1) {\n var _listRef$current;\n log.debug2(\"Found \".concat(value, \" at index \").concat(index));\n (_listRef$current = listRef.current) === null || _listRef$current === void 0 || _listRef$current.scrollIntoView(index);\n } else {\n log.debug2(\"\".concat(value, \" not found\"));\n }\n }, [items, listRef]);\n var handleSelect = useCallback(index => {\n log.debug('handleSelect', index);\n if (index >= items.length) {\n log.error('Invalid index', index);\n return;\n }\n var selectedValue = items[index].value;\n var newSelection = new Set(selection);\n if (items[index].isSelected) {\n newSelection.delete(selectedValue);\n } else {\n newSelection.add(selectedValue);\n }\n setSelection(newSelection);\n onChange(Array.from(newSelection));\n }, [onChange, items, selection]);\n var handleSelectAll = useCallback(() => {\n var values = items.map(item => item.value);\n var newSelection = new Set(values);\n setSelection(newSelection);\n onChange(values);\n }, [items, onChange]);\n var handleClearSelection = useCallback(() => {\n setSelection(new Set());\n onChange([]);\n }, [onChange]);\n var handleViewportChange = useCallback(() => {\n // no-op\n }, []);\n var handleChildBlur = useCallback(e => {\n var _parentRef$current;\n var {\n relatedTarget\n } = e;\n log.debug('handleChildBlur', relatedTarget, relatedTarget instanceof HTMLElement, parentRef.current, (_parentRef$current = parentRef.current) === null || _parentRef$current === void 0 ? void 0 : _parentRef$current.contains(relatedTarget));\n if (!relatedTarget || parentRef.current && relatedTarget instanceof HTMLElement && !parentRef.current.contains(relatedTarget)) {\n onBlur();\n }\n }, [onBlur]);\n var isEmpty = items.length === 0;\n return /*#__PURE__*/_jsxs(\"div\", {\n ref: parentRef,\n className: classNames('table-input-container d-flex flex-column position-relative', className),\n children: [/*#__PURE__*/_jsx(SearchInput, {\n disabled: !!error || isEmpty,\n value: searchValue,\n placeholder: \"Search\",\n onChange: handleSearchChange,\n className: \"mb-2 d-flex\",\n onBlur: handleChildBlur\n }), /*#__PURE__*/_jsx(SelectValueList, {\n className: \"table-input-list\",\n disabled: table === undefined || isEmpty,\n isInvalid: isInvalid,\n items: isEmpty ? [{\n value: 'Empty',\n isSelected: false\n }] : items,\n itemCount: itemCount,\n offset: 0,\n onSelect: handleSelect,\n onViewportChange: handleViewportChange,\n ref: listRef,\n onBlur: handleChildBlur\n }), table && /*#__PURE__*/_jsxs(\"div\", {\n className: \"meta-row\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"d-flex align-items-center text-muted small\",\n children: table != null && table.size > itemCount && /*#__PURE__*/_jsxs(_Fragment, {\n children: [\"Table is too large, showing the first \", SIZE_LIMIT, \" items.\"]\n })\n }), /*#__PURE__*/_jsxs(\"div\", {\n children: [/*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n className: \"btn btn-link\",\n onBlur: handleChildBlur,\n onClick: handleSelectAll,\n children: \"Select All\"\n }), /*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n className: \"btn btn-link mr-a\",\n onBlur: handleChildBlur,\n onClick: handleClearSelection,\n children: \"Clear\"\n })]\n })]\n }), table == null || error && /*#__PURE__*/_jsx(\"div\", {\n className: \"h-100 w-100 position-absolute\",\n children: /*#__PURE__*/_jsx(LoadingOverlay, {\n isLoaded: table != null,\n isLoading: table == null && error == null,\n errorMessage: (_error$message = error === null || error === void 0 ? void 0 : error.message) !== null && _error$message !== void 0 ? _error$message : null,\n \"data-testid\": \"table-input-loading\"\n })\n })]\n });\n}\nexport default TableInput;\n//# sourceMappingURL=TableInput.js.map","var _excluded = [\"onInputChange\", \"onSearchTextChange\"];\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 { ComboBoxNormalized } from '@deephaven/components';\nimport { useCallback, useRef } from 'react';\nimport { usePickerProps } from \"./utils/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ComboBox(props) {\n var _usePickerProps = usePickerProps(props),\n {\n onInputChange: onInputChangeInternal,\n onSearchTextChange\n } = _usePickerProps,\n pickerProps = _objectWithoutProperties(_usePickerProps, _excluded);\n var isOpenRef = useRef(false);\n var inputValueRef = useRef('');\n var onInputChange = useCallback(value => {\n onInputChangeInternal === null || onInputChangeInternal === void 0 || onInputChangeInternal(value);\n\n // Only apply search text if ComboBox is open.\n if (isOpenRef.current) {\n onSearchTextChange(value);\n }\n // When the ComboBox is closed, `onInputChange` may have been called as a\n // result of user search input, ComboBox selection, or by selected key\n // prop changes. We can't determine the source here, so we clear the search\n // text and store the search value so that the list is unfiltered the next\n // time the ComboBox is opened. We also store the search value so we can\n // re-apply it in `onOpenChange` if the ComboBox is opened by user search\n // input.\n else {\n onSearchTextChange('');\n inputValueRef.current = value;\n }\n }, [onInputChangeInternal, onSearchTextChange]);\n var onOpenChange = useCallback((isOpen, menuTrigger) => {\n var _pickerProps$onOpenCh;\n (_pickerProps$onOpenCh = pickerProps.onOpenChange) === null || _pickerProps$onOpenCh === void 0 || _pickerProps$onOpenCh.call(pickerProps, isOpen);\n\n // Reset the search text when the ComboBox is closed.\n if (!isOpen) {\n onSearchTextChange('');\n }\n // Restore search text when ComboBox has been opened by user input.\n else if (menuTrigger === 'input') {\n onSearchTextChange(inputValueRef.current);\n }\n\n // Store the open state so that `onInputChange` has access to it.\n isOpenRef.current = isOpen;\n }, [onSearchTextChange, pickerProps]);\n return /*#__PURE__*/_jsx(ComboBoxNormalized\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, pickerProps), {}, {\n onInputChange: onInputChange,\n onOpenChange: onOpenChange\n }));\n}\nexport default ComboBox;\n//# sourceMappingURL=ComboBox.js.map","var _excluded = [\"table\", \"keyColumn\", \"labelColumn\", \"iconColumn\", \"settings\"];\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 { LIST_VIEW_ROW_HEIGHTS, ListViewNormalized, useSpectrumThemeProvider } from '@deephaven/components';\nimport useFormatter from \"../useFormatter.js\";\nimport useViewportData from \"../useViewportData.js\";\nimport { useItemRowDeserializer } from \"./utils/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ListView(_ref) {\n var _props$density;\n var {\n table,\n keyColumn: keyColumnName,\n labelColumn: labelColumnName,\n iconColumn: iconColumnName,\n settings\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n var {\n scale\n } = useSpectrumThemeProvider();\n var itemHeight = LIST_VIEW_ROW_HEIGHTS[(_props$density = props.density) !== null && _props$density !== void 0 ? _props$density : 'regular'][scale];\n var {\n getFormattedString: formatValue\n } = useFormatter(settings);\n var deserializeRow = useItemRowDeserializer({\n table,\n iconColumnName,\n keyColumnName,\n labelColumnName,\n formatValue\n });\n var {\n viewportData,\n onScroll\n } = useViewportData({\n reuseItemsOnTableResize: true,\n table,\n itemHeight,\n deserializeRow\n });\n return /*#__PURE__*/_jsx(ListViewNormalized\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, props), {}, {\n normalizedItems: viewportData.items,\n showItemIcons: iconColumnName != null,\n onScroll: onScroll\n }));\n}\nexport default ListView;\n//# sourceMappingURL=ListView.js.map","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Option, Select } from '@deephaven/components';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { EMPTY_ARRAY } from '@deephaven/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction isJavaObject(value) {\n return typeof value === 'object' && value != null && 'equals' in value && typeof value.equals === 'function';\n}\nfunction defaultFormatValue(value) {\n return \"\".concat(value);\n}\n/**\n * Dropdown that displays the values of a column in a table.\n */\nexport function TableDropdown(_ref) {\n var {\n column,\n table,\n filter = EMPTY_ARRAY,\n onChange,\n selectedValue,\n disabled,\n className,\n formatValue = defaultFormatValue,\n maxSize = 1000\n } = _ref;\n var dh = useApi();\n var [values, setValues] = useState([]);\n useEffect(() => {\n if (table == null) {\n setValues([]);\n return undefined;\n }\n var tableColumn = column !== null && column !== void 0 ? column : table.columns[0];\n // Need to set a viewport on the table and start listening to get the values to populate the dropdown\n table.applyFilter(filter);\n var subscription = table.setViewport(0, maxSize, [tableColumn]);\n subscription.addEventListener(dh.Table.EVENT_UPDATED, event => {\n var {\n detail\n } = event;\n // Core JSAPI returns undefined for null table values,\n // coalesce with null to differentiate null from no selection in the dropdown\n // https://github.com/deephaven/deephaven-core/issues/5400\n var newValues = detail.rows.map(row => {\n var _row$get;\n return (_row$get = row.get(tableColumn)) !== null && _row$get !== void 0 ? _row$get : null;\n });\n setValues(newValues);\n });\n return () => {\n subscription.close();\n };\n }, [column, dh, filter, maxSize, table]);\n\n // If the selected value is undefined, add a placeholder item\n var allValues = useMemo(() => {\n if (selectedValue === undefined) {\n return [undefined, ...values];\n }\n return values;\n }, [selectedValue, values]);\n\n // Since values could be anything, not just strings, track the selected index based on the current data\n var selectedIndex = useMemo(() => allValues.findIndex(value => value === selectedValue || isJavaObject(value) && value.equals(selectedValue)), [selectedValue, allValues]);\n var handleChange = useCallback(newSelectedValue => {\n var newSelectedIndex = parseInt(newSelectedValue, 10);\n onChange(allValues[newSelectedIndex]);\n }, [onChange, allValues]);\n return /*#__PURE__*/_jsx(Select, {\n className: className,\n value: selectedIndex,\n onChange: handleChange,\n disabled: disabled,\n children: allValues.map((value, i) =>\n /*#__PURE__*/\n // eslint-disable-next-line react/no-array-index-key\n _jsx(Option, {\n value: i,\n children: formatValue(value)\n }, \"\".concat(i)))\n });\n}\nexport default TableDropdown;\n//# sourceMappingURL=TableDropdown.js.map","import { BROADCAST_CHANNEL_NAME } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { EMPTY_FUNCTION, isMessage } from '@deephaven/utils';\nimport { useEffect, useMemo } from 'react';\nvar log = Log.module('useBroadcastChannel');\nexport function useBroadcastChannel() {\n var onEvent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : EMPTY_FUNCTION;\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : BROADCAST_CHANNEL_NAME;\n var channel = useMemo(() => new BroadcastChannel(name), [name]);\n useEffect(() => () => {\n channel.close();\n }, [channel]);\n useEffect(() => {\n function handleEvent(event) {\n var {\n data\n } = event;\n if (!isMessage(data)) {\n log.debug('Ignoring non-deephaven message', data);\n return;\n }\n log.debug('event received', data);\n onEvent(event);\n }\n channel.addEventListener('message', handleEvent);\n return () => {\n channel.removeEventListener('message', handleEvent);\n };\n }, [channel, onEvent]);\n return channel;\n}\nexport default useBroadcastChannel;\n//# sourceMappingURL=useBroadcastChannel.js.map","import { isBroadcastLoginMessage, isBroadcastLogoutMessage } from '@deephaven/jsapi-utils';\nimport { useCallback } from 'react';\nimport useBroadcastChannel from \"./useBroadcastChannel.js\";\nexport function useBroadcastLoginListener(onLogin, onLogout) {\n var onMessage = useCallback(event => {\n if (isBroadcastLoginMessage(event.data)) {\n onLogin === null || onLogin === void 0 || onLogin(event.data);\n } else if (isBroadcastLogoutMessage(event.data)) {\n onLogout === null || onLogout === void 0 || onLogout(event.data);\n }\n }, [onLogin, onLogout]);\n useBroadcastChannel(onMessage);\n}\nexport default useBroadcastLoginListener;\n//# sourceMappingURL=useBroadcastLoginListener.js.map","import { useCallback, useState } from 'react';\nimport { useDebouncedValue, usePromiseFactory } from '@deephaven/react-hooks';\nimport useTableUtils from \"./useTableUtils.js\";\n/**\n * Manage a trimmed text value and check if it exists in a list of table columns.\n * @param table The table to check for the value\n * @param columnNames The column names to check\n * @param debounceMs Debounce timer for re-checking the value\n * @param isCaseSensitive Whether the value check is case sensitive\n */\nexport function useCheckIfExistsValue(table, columnNames, debounceMs, isCaseSensitive) {\n var tableUtils = useTableUtils();\n var [valueTrimmed, setValueTrimmed] = useState('');\n var {\n value: valueTrimmedDebounced\n } = useDebouncedValue(valueTrimmed, debounceMs);\n var trimAndUpdateValue = useCallback(text => {\n setValueTrimmed(text.trim());\n }, []);\n var {\n data: valueExistsData,\n isLoading: valueExistsIsLoading\n } = usePromiseFactory(tableUtils.doesColumnValueExist, [table, columnNames, valueTrimmedDebounced, isCaseSensitive]);\n\n // If value check is loading or if debounce hasn't settled, set\n // `matchesExistingValue` to null since it is indeterminate\n var valueExists = valueExistsIsLoading || valueTrimmed !== valueTrimmedDebounced ? null : valueExistsData;\n return {\n valueTrimmed,\n valueTrimmedDebounced,\n valueExists,\n trimAndUpdateValue\n };\n}\nexport default useCheckIfExistsValue;\n//# sourceMappingURL=useCheckIfExistsValue.js.map","import debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport { useEffect, useMemo } from 'react';\nimport useTableUtils from \"./useTableUtils.js\";\nvar log = Log.module('useDebouncedViewportSearch');\nexport var DEBOUNCE_VIEWPORT_SEARCH_MS = 200;\n\n/**\n * React hook that returns a debounced search callback for filtering a table\n * viewport.\n * @param viewportData Table viewport to filter\n * @param columnName Column name to filter by\n * @param debounceMs Millisecond value to debounce\n * @returns A debounced search function\n */\nexport function useDebouncedViewportSearch(viewportData, columnName) {\n var debounceMs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEBOUNCE_VIEWPORT_SEARCH_MS;\n var tableUtils = useTableUtils();\n var {\n table,\n applyFiltersAndRefresh\n } = viewportData;\n var debouncedSearch = useMemo(() => debounce(searchText => {\n log.debug(\"Applying debounced searchText '\".concat(searchText, \"'\"));\n if (table == null) {\n return;\n }\n var searchTextTrimmed = searchText.trim();\n if (searchTextTrimmed === '') {\n applyFiltersAndRefresh([]);\n return;\n }\n var column = table.findColumn(columnName);\n var value = tableUtils.makeFilterValue(column.type, searchTextTrimmed);\n var filter = [column.filter().contains(value)];\n applyFiltersAndRefresh(filter);\n }, debounceMs), [applyFiltersAndRefresh, columnName, debounceMs, table, tableUtils]);\n useEffect(() => () => {\n log.debug('Cancelling debounced search function');\n debouncedSearch.cancel();\n }, [debouncedSearch]);\n return debouncedSearch;\n}\nexport default useDebouncedViewportSearch;\n//# sourceMappingURL=useDebouncedViewportSearch.js.map","import { createKeyedItemKey, createSelectedValuesFilter } from '@deephaven/jsapi-utils';\nimport { isSelectionMaybeInvertedEqual, useDebouncedValue, useIsEqualMemo, useMappedSelection } from '@deephaven/react-hooks';\nimport { useMemo } from 'react';\nimport useTableUtils from \"./useTableUtils.js\";\nexport var DEBOUNCE_MS = 300;\n/**\n * Creates a filter factory for the current selected keys of a viewport. The\n * selected keys will be mapped to values to match in a given column name. The\n * resulting filter factory is debounced to allow some cushion for cases where\n * a user rapidly changes selections, e.g. in a checkbox list.\n */\nexport function useDebouncedViewportSelectionFilter(_ref) {\n var {\n viewportData,\n columnName,\n shouldSelectAllOnNoSelection,\n mapItemToValue\n } = _ref;\n var tableUtils = useTableUtils();\n\n // Map selection to values contained in the column to filter\n var valuesSelection = useMappedSelection(viewportData, mapItemToValue, createKeyedItemKey);\n\n // Debounce so user can rapidly select multiple items in a row without the\n // cost of updating the table on each change\n var {\n value: debouncedValuesSelection\n } = useDebouncedValue(valuesSelection, DEBOUNCE_MS);\n\n // In cases where a user rapidly selects then deselects the selection\n // reference will change, but the state it represents will remain unchanged.\n // Memoize based on the selection value to avoid unnecessarily re-applying\n // table filters.\n var memoValuesSelection = useIsEqualMemo(debouncedValuesSelection, isSelectionMaybeInvertedEqual);\n return useMemo(() => createSelectedValuesFilter(tableUtils, columnName, memoValuesSelection.selection, shouldSelectAllOnNoSelection, memoValuesSelection.isInverted), [columnName, memoValuesSelection, shouldSelectAllOnNoSelection, tableUtils]);\n}\nexport default useDebouncedViewportSelectionFilter;\n//# sourceMappingURL=useDebouncedViewportSelectionFilter.js.map","import { useMemo, useRef } from 'react';\n/**\n * Takes an array of items and adds a default item to the top of the list if:\n * 1. defaultDisplayValue is provided\n * 2. The `searchText` is empty or\n * The `searchText` is contained (case insensitive) in the default item display text.\n * @param items List of items filtered on `searchText`\n * @param displayProp The item prop containing display text\n * @param searchText The current search text that is filtering the items\n * @param defaultDisplayValue The display text to set as the default item `displayProp` value\n */\nexport function useFilteredItemsWithDefaultValue(items, displayProp, searchText, defaultDisplayValue) {\n // Exclude search text from updating the memo. This ensures that adding /\n // removing of the default item stays in sync with data loading. Otherwise,\n // the item can move while data is still loading.\n var searchTextRef = useRef('');\n searchTextRef.current = searchText;\n return useMemo(() => {\n // If the list is still loading, items will exist, but their item prop will be undefined\n var isLoading = items.length > 0 && items[0].item == null;\n if (!isLoading && defaultDisplayValue != null && (searchTextRef.current === '' || defaultDisplayValue.toLowerCase().includes(searchTextRef.current.toLowerCase()))) {\n return [{\n key: defaultDisplayValue,\n item: {\n [displayProp]: defaultDisplayValue\n }\n }, ...items];\n }\n return items;\n }, [defaultDisplayValue, displayProp, items]);\n}\nexport default useFilteredItemsWithDefaultValue;\n//# sourceMappingURL=useFilteredItemsWithDefaultValue.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport { useCallback } from 'react';\n/**\n * Gets an item's position in a list of items based on its row index in a table.\n * @param table Table to search for the item in\n * @param columnName Column name to search for the item in\n * @param defaultValue Optional default value. This would be the first item in\n * the list and not expected to be in the Table.\n * @param itemHeight Height of each item in the list\n * @param topOffset Optional pixel offset from the top of the list\n * @param value Value to search for in the column\n */\nexport function useGetItemPosition(_ref) {\n var {\n table,\n columnName,\n defaultValue,\n itemHeight,\n topOffset = 0,\n value\n } = _ref;\n return useCallback(/*#__PURE__*/_asyncToGenerator(function* () {\n if (table == null || value === '' || value === defaultValue) {\n return topOffset;\n }\n var column = table.findColumn(columnName);\n var rowIndex = yield table.seekRow(0, column, 'String', value);\n\n // If a default item exists at the top of the list, offset the item index by 1\n var defaultItemOffset = defaultValue == null ? 0 : 1;\n return (rowIndex + defaultItemOffset) * itemHeight + topOffset;\n }), [columnName, defaultValue, itemHeight, table, topOffset, value]);\n}\nexport default useGetItemPosition;\n//# sourceMappingURL=useGetItemPosition.js.map","import { useMemo } from 'react';\nimport { createFilterConditionFactory, createNotNullOrEmptyFilterCondition } from '@deephaven/jsapi-utils';\nimport useTableUtils from \"./useTableUtils.js\";\nexport function useNotNullOrEmptyFilter(columnNames) {\n var conditionOperator = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'or';\n var tableUtils = useTableUtils();\n var notNullOrEmptyFilterCondition = useMemo(() => createNotNullOrEmptyFilterCondition(tableUtils), [tableUtils]);\n return useMemo(() => createFilterConditionFactory(columnNames, notNullOrEmptyFilterCondition, conditionOperator), [columnNames, conditionOperator, notNullOrEmptyFilterCondition]);\n}\nexport default useNotNullOrEmptyFilter;\n//# sourceMappingURL=useNotNullOrEmptyFilter.js.map","import { useCallback, useMemo, useState } from 'react';\nimport { createSearchTextFilter, createSelectedValuesFilter } from '@deephaven/jsapi-utils';\nimport { useDebouncedCallback, useDebouncedValue, usePromiseFactory } from '@deephaven/react-hooks';\nimport { usePickerItemScale } from '@deephaven/components';\nimport useFilterConditionFactories from \"./useFilterConditionFactories.js\";\nimport useViewportData from \"./useViewportData.js\";\nimport useViewportFilter from \"./useViewportFilter.js\";\nimport useTableUtils from \"./useTableUtils.js\";\nimport useWidgetClose from \"./useWidgetClose.js\";\nimport { SEARCH_DEBOUNCE_MS, VIEWPORT_PADDING, VIEWPORT_SIZE } from \"./Constants.js\";\n/**\n * Manages a list of available items that can be searched and selected. Selected\n * items are removed from the list and managed in a selectedValueMap data\n * structure. Useful for components that contain a picker but show selected\n * values in a separate component.\n * @param maybeTable The table to get the list of items from\n * @param columnName The column name to get the list of items from\n * @param mapItemToValue A function to map an item to a value\n * @param filterConditionFactories Optional filter condition factories to apply to the list\n * @param trimSearchText Whether to trim the search text before filtering. Defaults to false\n * @param timeZone The timezone to use for date parsing\n */\nexport function usePickerWithSelectedValues(_ref) {\n var {\n maybeTable,\n columnName,\n mapItemToValue,\n filterConditionFactories = [],\n trimSearchText = false,\n timeZone\n } = _ref;\n var {\n itemHeight\n } = usePickerItemScale();\n var tableUtils = useTableUtils();\n\n // `searchText` should always be up to date for controlled search input.\n // `appliedSearchText` will get updated after a delay to avoid updating\n // filters on every key stroke. It will also be trimmed of leading / trailing\n // spaces if `trimSearchText` is true.\n var [searchText, setSearchText] = useState('');\n var [appliedSearchText, setAppliedSearchText] = useState('');\n var applySearchText = useCallback(text => {\n setAppliedSearchText(trimSearchText ? text.trim() : text);\n }, [trimSearchText]);\n var searchTextMaybeTrimmed = useMemo(() => trimSearchText ? searchText.trim() : searchText, [searchText, trimSearchText]);\n var [selectedKey, setSelectedKey] = useState(null);\n var [selectedValueMap, setSelectedValueMap] = useState(() => new Map());\n var {\n data: valueExists,\n isLoading: valueExistsIsLoading\n } = usePromiseFactory(tableUtils.doesColumnValueExist, [maybeTable, columnName, appliedSearchText, false /* isCaseSensitive */]);\n\n // The `searchTextFilter` starts getting applied to the list whenever\n // `appliedSearchText` changes, after which there is a small delay before the\n // items are in sync. Use a debounce timer to allow a little extra time\n // before calculating `searchTextExists` below. Note that there are 2 debounce\n // timers at play here:\n // 1. `onDebouncedSearchTextChange` applies the search text after user stops typing\n // 2. `useDebouncedValue` debounces whenever the result of the first debounce\n // changes, and `isApplyingFilter` will be true while this 2nd timer is active.\n var {\n isDebouncing: isApplyingFilter\n } = useDebouncedValue(appliedSearchText, SEARCH_DEBOUNCE_MS);\n\n // If value exists check is still loading or if debounce hasn't completed, set\n // `searchTextExists` to null since it is indeterminate.\n var searchTextExists = isApplyingFilter || valueExistsIsLoading ? null : valueExists;\n var searchTextFilter = useMemo(() => createSearchTextFilter(tableUtils, columnName, appliedSearchText, timeZone), [appliedSearchText, columnName, tableUtils, timeZone]);\n\n // Filter out selected values from the picker\n var excludeSelectedValuesFilter = useMemo(() => createSelectedValuesFilter(tableUtils, columnName, new Set(selectedValueMap.keys()), false, true), [columnName, selectedValueMap, tableUtils]);\n var {\n data: listTable\n } = usePromiseFactory(tableUtils.createDistinctSortedColumnTable, [maybeTable, columnName, 'asc', ...filterConditionFactories]);\n useWidgetClose(listTable);\n var list = useViewportData({\n table: listTable,\n itemHeight,\n viewportSize: VIEWPORT_SIZE,\n viewportPadding: VIEWPORT_PADDING\n });\n var hasSearchTextWithZeroResults = searchTextMaybeTrimmed.length > 0 && list.size === 0;\n var searchTextIsInSelectedValues = selectedValueMap.has(searchTextMaybeTrimmed);\n var onDebouncedSearchTextChange = useDebouncedCallback(applySearchText, SEARCH_DEBOUNCE_MS);\n var onSearchTextChange = useCallback(text => {\n setSearchText(text);\n onDebouncedSearchTextChange(text);\n }, [onDebouncedSearchTextChange]);\n var setSelectedKeyOnNextFrame = useDebouncedCallback(setSelectedKey, 0);\n var onSelectKey = useCallback(key => {\n setSearchText('');\n applySearchText('');\n\n // Set the selection temporarily to avoid the picker staying open\n setSelectedKey(key);\n\n // Clear the selection on next frame since selected items get removed from\n // the list and added to `selectedValues` Map\n setSelectedKeyOnNextFrame(null);\n\n // key will be null in scenarios where search text doesn't match an item\n // and user clicks outside of picker\n if (key == null) {\n return;\n }\n var item = list.viewportData.findItem(key);\n if (item == null) {\n return;\n }\n var value = mapItemToValue(item);\n setSelectedValueMap(prev => {\n var next = new Map(prev);\n next.set(value, {\n value\n });\n return next;\n });\n }, [applySearchText, setSelectedKeyOnNextFrame, list.viewportData, mapItemToValue]);\n var onAddValues = useCallback(values => {\n setSelectedValueMap(prev => {\n if (values.size === 0) {\n return prev;\n }\n var next = new Map(prev);\n\n // eslint-disable-next-line no-restricted-syntax\n for (var value of values) {\n next.set(value, {\n value\n });\n }\n return next;\n });\n }, []);\n var onRemoveValues = useCallback(values => {\n setSelectedValueMap(prev => {\n if (values === 'all') {\n return new Map();\n }\n var next = new Map(prev);\n\n // eslint-disable-next-line no-restricted-syntax\n for (var value of values) {\n next.delete(value);\n }\n return next;\n });\n }, []);\n var filter = useFilterConditionFactories(list.table, searchTextFilter, excludeSelectedValuesFilter);\n useViewportFilter(list, filter);\n return useMemo(() => ({\n list,\n hasSearchTextWithZeroResults,\n searchText,\n searchTextExists,\n searchTextIsInSelectedValues,\n selectedKey,\n selectedValueMap,\n onSearchTextChange,\n onSelectKey,\n onAddValues,\n onRemoveValues\n }), [hasSearchTextWithZeroResults, list, onAddValues, onRemoveValues, onSearchTextChange, onSelectKey, searchText, searchTextExists, searchTextIsInSelectedValues, selectedKey, selectedValueMap]);\n}\nexport default usePickerWithSelectedValues;\n//# sourceMappingURL=usePickerWithSelectedValues.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport { useCallback, useEffect } from 'react';\nimport { usePromiseFactory } from '@deephaven/react-hooks';\n\n/**\n * Return type of `useSelectDistinctTable` hook.\n */\n\n/**\n * Creates and subscribes to a `selectDistinct` derived table and unsubscribes\n * on unmount.\n * @param table The table to call `selectDistinct` on.\n * @param columnNames The list of column names to pass to `selectDistinct`.\n */\nexport default function useSelectDistinctTable(table) {\n for (var _len = arguments.length, columnNames = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n columnNames[_key - 1] = arguments[_key];\n }\n var selectDistinct = useCallback(/*#__PURE__*/_asyncToGenerator(function* () {\n var _table$selectDistinct;\n return (_table$selectDistinct = table === null || table === void 0 ? void 0 : table.selectDistinct(table.findColumns(columnNames))) !== null && _table$selectDistinct !== void 0 ? _table$selectDistinct : null;\n }),\n // Disabling the exhaustive checks due to the spreading of `columnNames`\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [table, ...columnNames]);\n var {\n data: distinctTable,\n error,\n isError,\n isLoading\n } = usePromiseFactory(selectDistinct, []);\n useEffect(() => () => {\n distinctTable === null || distinctTable === void 0 || distinctTable.close();\n }, [distinctTable]);\n return {\n distinctTable,\n error,\n isError,\n isLoading\n };\n}\n//# sourceMappingURL=useSelectDistinctTable.js.map","import { useMemo } from 'react';\nimport { createFilterConditionFactory, createShowOnlyEmptyFilterCondition } from '@deephaven/jsapi-utils';\nimport useTableUtils from \"./useTableUtils.js\";\n/**\n * Creates a filter condition factory that can be toggle on or off. If on, the\n * filter will match only values that are null or empty strings. If off, the\n * filter will match all values.\n * @param isOn Whether the filter is on or off\n * @param columnNames Column names to filter\n */\nexport function useShowOnlyEmptyFilter(isOn, columnNames) {\n var tableUtils = useTableUtils();\n var createColumnCondition = useMemo(() => createShowOnlyEmptyFilterCondition(tableUtils, isOn), [isOn, tableUtils]);\n return useMemo(() => createFilterConditionFactory(columnNames, createColumnCondition), [columnNames, createColumnCondition]);\n}\nexport default useShowOnlyEmptyFilter;\n//# sourceMappingURL=useShowOnlyEmptyFilter.js.map","import { useMemo } from 'react';\nimport { createValueFilter } from '@deephaven/jsapi-utils';\nimport useTableUtils from \"./useTableUtils.js\";\n/**\n * Create a filter condition factory for a filter operator that matches the given value.\n * @param columnNames Column names to compare value to\n * @param value Value to match\n * @param operator Operator to use for matching\n */\nexport function useValueFilter(columnNames, value, operator) {\n var tableUtils = useTableUtils();\n return useMemo(() => createValueFilter(tableUtils, columnNames, value, operator), [columnNames, operator, tableUtils, value]);\n}\nexport default useValueFilter;\n//# sourceMappingURL=useValueFilter.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 { Formatter } from '@deephaven/jsapi-utils';\nimport IrisGridProxyModel from \"./IrisGridProxyModel.js\";\nimport IrisGridUtils from \"./IrisGridUtils.js\";\nclass IrisGridTestUtils {\n static valueForCell(rowIndex, columnIndex, formatValue) {\n var value = \"\".concat(rowIndex, \",\").concat(columnIndex);\n if (formatValue !== undefined && formatValue) {\n value = \"(\".concat(value, \")\");\n }\n return value;\n }\n constructor(dh) {\n _defineProperty(this, \"dh\", void 0);\n _defineProperty(this, \"irisGridUtils\", void 0);\n this.dh = dh;\n this.irisGridUtils = new IrisGridUtils(dh);\n }\n makeColumn(name) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : IrisGridTestUtils.DEFAULT_TYPE;\n var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.dh.Column({\n index,\n name,\n type\n });\n }\n makeRollupTableConfig() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.dh.RollupTableConfig();\n }\n makeColumns() {\n var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5;\n var prefix = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n var columns = [];\n for (var i = 0; i < count; i += 1) {\n columns.push(this.makeColumn(\"\".concat(prefix).concat(i), IrisGridTestUtils.DEFAULT_TYPE, i));\n }\n return columns;\n }\n static makeUserColumnWidths() {\n var count = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 5;\n var userColumnWidths = new Map();\n for (var i = 0; i < count; i += 1) {\n userColumnWidths.set(i.toString(), 100);\n }\n return userColumnWidths;\n }\n makeRow(i) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var row = new this.dh.Row({\n index: i,\n name: \"\".concat(i)\n });\n row.get = jest.fn(column => IrisGridTestUtils.valueForCell(i, column.index));\n return row;\n }\n makeFilter() {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.dh.FilterCondition();\n }\n makeSort() {\n var column = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.makeColumn();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.dh.Sort({\n column\n });\n }\n hydrateSort(sortDescriptor, columns) {\n return this.irisGridUtils.hydrateDhSort(columns, sortDescriptor);\n }\n makeTable() {\n var {\n columns = this.makeColumns(),\n size = 1000000000,\n sort = [],\n layoutHints = {}\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var table = new this.dh.Table({\n columns,\n size,\n sort\n });\n table.copy = jest.fn(() => Promise.resolve(table));\n table.freeze = jest.fn(() => Promise.resolve(table));\n table.layoutHints = layoutHints;\n return table;\n }\n makeTreeTable() {\n var columns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.makeColumns();\n var aggregatedColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var groupedColumns = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var size = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 1000000000;\n var sort = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : [];\n var layoutHints = arguments.length > 5 ? arguments[5] : undefined;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var table = new this.dh.TreeTable({\n columns,\n aggregatedColumns,\n groupedColumns,\n size,\n sort,\n layoutHints\n });\n table.copy = jest.fn(() => Promise.resolve(table));\n return table;\n }\n static makeInputTable() {\n var keyColumns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var valueColumns = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n var {\n keys,\n values\n } = [...keyColumns, ...valueColumns].reduce((acc, col) => {\n if (keyColumns.includes(col)) acc.keys.push(col.name);else acc.values.push(col.name);\n return acc;\n }, {\n keys: [],\n values: []\n });\n return {\n keys,\n values\n };\n }\n makeSubscription() {\n var table = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.makeTable();\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return new this.dh.TableViewportSubscription({\n table\n });\n }\n makeModel() {\n var table = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.makeTable();\n var formatter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n var inputTable = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : null;\n var {\n dh\n } = this;\n return new IrisGridProxyModel(dh, table, formatter !== null && formatter !== void 0 ? formatter : new Formatter(dh), inputTable);\n }\n}\n_defineProperty(IrisGridTestUtils, \"DEFAULT_TYPE\", 'java.lang.String');\nexport default IrisGridTestUtils;\n//# sourceMappingURL=IrisGridTestUtils.js.map","import { useCallback } from 'react';\nimport { nanoid } from 'nanoid';\nimport { usePanelOpenListener } from \"../PanelEvent.js\";\nimport LayoutUtils from \"./LayoutUtils.js\";\nimport usePanelRegistration from \"./usePanelRegistration.js\";\n/**\n * Register a panel that will be opened when one of the `supportedTypes` objects is triggered.\n */\nexport function useDashboardPanel(_ref) {\n var {\n dashboardProps,\n componentName,\n component,\n supportedTypes,\n hydrate,\n dehydrate\n } = _ref;\n var {\n id,\n layout,\n registerComponent\n } = dashboardProps;\n var handlePanelOpen = useCallback(_ref2 => {\n var {\n dragEvent,\n panelId = nanoid(),\n widget\n } = _ref2;\n var {\n name,\n type\n } = widget;\n var isSupportedType = type != null && (Array.isArray(supportedTypes) && supportedTypes.includes(type) || type === supportedTypes);\n if (!isSupportedType) {\n // Only want to listen for your custom variable types\n return;\n }\n var props = {\n localDashboardId: id,\n metadata: widget\n };\n if (hydrate != null) {\n props = hydrate(props, id);\n }\n var config = {\n type: 'react-component',\n component: componentName,\n props,\n title: name !== null && name !== void 0 ? name : undefined,\n id: panelId\n };\n var {\n root\n } = layout;\n LayoutUtils.openComponent({\n root,\n config,\n dragEvent\n });\n }, [componentName, hydrate, id, layout, supportedTypes]);\n\n /**\n * Register our custom component type so the layout know hows to open it\n */\n usePanelRegistration(registerComponent, component, hydrate, dehydrate);\n\n /**\n * Listen for panel open events so we know when to open a panel\n */\n usePanelOpenListener(layout.eventHub, handlePanelOpen);\n}\nexport default useDashboardPanel;\n//# sourceMappingURL=useDashboardPanel.js.map","import { useCallback } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { getPluginDataForDashboard } from \"./selectors.js\";\nimport { setDashboardPluginData } from \"./actions.js\";\n/**\n * Custom hook that provides access to plugin data for a specific dashboard and plugin.\n * @param dashboardId - The ID of the dashboard.\n * @param pluginId - The ID of the plugin.\n * @returns A tuple containing the plugin data and a function to update the plugin data.\n */\nexport function useDashboardPluginData(dashboardId, pluginId) {\n var dispatch = useDispatch();\n var data = useSelector(store => getPluginDataForDashboard(store, dashboardId, pluginId));\n var setData = useCallback(newData => dispatch(setDashboardPluginData(dashboardId, pluginId, newData)), [dashboardId, pluginId, dispatch]);\n return [data, setData];\n}\nexport default {\n useDashboardPluginData\n};\n//# sourceMappingURL=hooks.js.map","import { useMemo } from 'react';\nimport { useExternalTheme } from '@deephaven/components';\nimport { getThemeDataFromPlugins } from \"./PluginUtils.js\";\n/**\n * Use custom external or plugin themes.\n * @param pluginModules The plugin modules to get themes from when external\n * themes are disabled.\n */\nexport function useCustomThemes(pluginModules) {\n var {\n isEnabled: isExternalThemeEnabled,\n isPending: isExternalThemePending,\n themeData: externalThemeData\n } = useExternalTheme();\n return useMemo(() => {\n // Get theme from parent window via `postMessage` apis\n if (isExternalThemeEnabled) {\n if (isExternalThemePending) {\n return null;\n }\n return externalThemeData ? [externalThemeData] : [];\n }\n\n // Get themes from plugins\n return pluginModules == null ? null : getThemeDataFromPlugins(pluginModules);\n }, [isExternalThemeEnabled, isExternalThemePending, externalThemeData, pluginModules]);\n}\nexport default useCustomThemes;\n//# sourceMappingURL=useCustomThemes.js.map","import React, { useMemo } from 'react';\nimport usePlugins from \"./usePlugins.js\";\nimport { isWidgetPlugin } from \"./PluginTypes.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function WidgetView(_ref) {\n var {\n fetch,\n type\n } = _ref;\n var plugins = usePlugins();\n var plugin = useMemo(() => [...plugins.values()].filter(isWidgetPlugin).find(p => [p.supportedTypes].flat().includes(type)), [plugins, type]);\n if (plugin != null) {\n var Component = plugin.component;\n return /*#__PURE__*/_jsx(Component, {\n fetch: fetch\n });\n }\n throw new Error(\"Unknown widget type '\".concat(type, \"'\"));\n}\nexport default WidgetView;\n//# sourceMappingURL=WidgetView.js.map","import { useMemo } from 'react';\nimport { usePlugins } from \"./usePlugins.js\";\nimport { getPluginsElementMap } from \"./PluginUtils.js\";\n/**\n * Get all ElementPlugin elements from the plugins context\n * @returns ElementPlugin mapping as a Map of plugin name to component type\n */\nexport function usePluginsElementMap() {\n // Get all plugins from the context\n var plugins = usePlugins();\n var elementPlugins = useMemo(() => getPluginsElementMap(plugins), [plugins]);\n return elementPlugins;\n}\nexport default usePluginsElementMap;\n//# sourceMappingURL=usePluginsElementMap.js.map","/**\n * Map from auth config keys to their values\n * E.g. Map { AuthHandlers → \"io.deephaven.auth.AnonymousAuthenticationHandler\" }\n */\n\n/**\n * Props for the auth plugin component to render\n */\n\n/**\n * Whether the auth plugin is available given the current configuration\n */\n\nexport function isAuthPlugin(plugin) {\n if (plugin == null) return false;\n var authPlugin = plugin;\n return authPlugin.Component !== undefined && typeof authPlugin.isAvailable === 'function';\n}\n//# sourceMappingURL=AuthPlugin.js.map","export var AUTH_HANDLER_TYPE_ANONYMOUS = 'io.deephaven.auth.AnonymousAuthenticationHandler';\nexport var AUTH_HANDLER_TYPE_PSK = 'io.deephaven.authentication.psk.PskAuthenticationHandler';\n//# sourceMappingURL=AuthHandlerTypes.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); }\nexport class AuthenticationError extends Error {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"name\", 'AuthenticationError');\n _defineProperty(this, \"isAuthenticationError\", true);\n }\n}\nexport default AuthenticationError;\n//# sourceMappingURL=AuthenticationError.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React, { useEffect, useState } from 'react';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { useClient } from '@deephaven/jsapi-bootstrap';\nimport Log from '@deephaven/log';\nimport { CanceledPromiseError, getErrorMessage } from '@deephaven/utils';\nimport AuthenticationError from \"./AuthenticationError.js\";\nimport { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nvar log = Log.module('AuthPluginBase');\n/**\n * Base AuthPlugin that gets passed a function for retrieving the login options, and then attempting to login with them.\n * @param getLoginOptions Function that returns a promise for the login options\n */\nfunction AuthPluginBase(_ref) {\n var {\n children,\n getLoginOptions\n } = _ref;\n var client = useClient();\n var [error, setError] = useState();\n var [isLoggedIn, setIsLoggedIn] = useState(false);\n useEffect(() => {\n var isCanceled = false;\n function verifyNotCanceled() {\n if (isCanceled) {\n throw new CanceledPromiseError('Login canceled.');\n }\n }\n function login() {\n return _login.apply(this, arguments);\n }\n function _login() {\n _login = _asyncToGenerator(function* () {\n try {\n var loginOptions = yield getLoginOptions();\n verifyNotCanceled();\n log.info('Logging in...');\n yield client.login(loginOptions);\n verifyNotCanceled();\n setIsLoggedIn(true);\n } catch (e) {\n if (!isCanceled) {\n var _getErrorMessage;\n log.error('Unable to login:', e);\n var message = (_getErrorMessage = getErrorMessage(e)) !== null && _getErrorMessage !== void 0 ? _getErrorMessage : 'Unable to login. Verify credentials.';\n setError(new AuthenticationError(message));\n setIsLoggedIn(false);\n }\n }\n });\n return _login.apply(this, arguments);\n }\n login();\n return () => {\n isCanceled = true;\n };\n }, [client, getLoginOptions]);\n if (!isLoggedIn) {\n return /*#__PURE__*/_jsx(LoadingOverlay, {\n \"data-testid\": \"auth-base-loading\",\n isLoading: error == null,\n isLoaded: false,\n errorMessage: getErrorMessage(error)\n });\n }\n\n // eslint-disable-next-line react/jsx-no-useless-fragment\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children\n });\n}\nexport default AuthPluginBase;\n//# sourceMappingURL=AuthPluginBase.js.map","import React, { useCallback } from 'react';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { AUTH_HANDLER_TYPE_ANONYMOUS } from \"./AuthHandlerTypes.js\";\nimport AuthPluginBase from \"./AuthPluginBase.js\";\nimport { UserPermissionsOverrideContext } from \"./UserContexts.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar permissionsOverrides = {\n canLogout: false\n};\n\n/**\n * AuthPlugin that tries to login anonymously. Fails if anonymous login fails\n */\nfunction Component(_ref) {\n var {\n children\n } = _ref;\n var dh = useApi();\n var getLoginOptions = useCallback(() => ({\n type: dh.CoreClient.LOGIN_TYPE_ANONYMOUS\n }), [dh]);\n return /*#__PURE__*/_jsx(AuthPluginBase, {\n getLoginOptions: getLoginOptions,\n children: /*#__PURE__*/_jsx(UserPermissionsOverrideContext.Provider, {\n value: permissionsOverrides,\n children: children\n })\n });\n}\nvar AuthPluginAnonymous = {\n Component,\n isAvailable: authHandlers => authHandlers.includes(AUTH_HANDLER_TYPE_ANONYMOUS)\n};\nexport default AuthPluginAnonymous;\n//# sourceMappingURL=AuthPluginAnonymous.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React from 'react';\nimport { LOGIN_OPTIONS_REQUEST } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { getWindowParent, requestParentResponse } from '@deephaven/utils';\nimport AuthPluginBase from \"./AuthPluginBase.js\";\nimport { UserPermissionsOverrideContext } from \"./UserContexts.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar log = Log.module('AuthPluginParent');\nvar permissionsOverrides = {\n canLogout: false\n};\nfunction isLoginOptions(options) {\n return options != null && typeof options.type === 'string';\n}\nfunction getLoginOptions() {\n return _getLoginOptions.apply(this, arguments);\n}\nfunction _getLoginOptions() {\n _getLoginOptions = _asyncToGenerator(function* () {\n log.info('Logging in by delegating to parent window...');\n var response = yield requestParentResponse(LOGIN_OPTIONS_REQUEST);\n if (!isLoginOptions(response)) {\n throw new Error(\"Unexpected login options response: \".concat(response));\n }\n return response;\n });\n return _getLoginOptions.apply(this, arguments);\n}\nfunction getWindowAuthProvider() {\n var _URLSearchParams$get;\n return (_URLSearchParams$get = new URLSearchParams(window.location.search).get('authProvider')) !== null && _URLSearchParams$get !== void 0 ? _URLSearchParams$get : '';\n}\n\n/**\n * AuthPlugin that tries to delegate to the parent window for authentication. Fails if there is no parent window.\n */\nfunction Component(_ref) {\n var {\n children\n } = _ref;\n return /*#__PURE__*/_jsx(AuthPluginBase, {\n getLoginOptions: getLoginOptions,\n children: /*#__PURE__*/_jsx(UserPermissionsOverrideContext.Provider, {\n value: permissionsOverrides,\n children: children\n })\n });\n}\nvar AuthPluginParent = {\n Component,\n isAvailable: () => getWindowParent() != null && getWindowAuthProvider() === 'parent'\n};\nexport default AuthPluginParent;\n//# sourceMappingURL=AuthPluginParent.js.map","import { LoadingSpinner } from '@deephaven/components';\nimport classNames from 'classnames';\nimport React from 'react';\nimport \"./LoginForm.css\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function LoginForm(_ref) {\n var {\n children,\n errorMessage,\n isLoggingIn = false,\n onSubmit: _onSubmit\n } = _ref;\n return /*#__PURE__*/_jsxs(\"form\", {\n className: \"login-form\",\n onSubmit: event => {\n event.preventDefault();\n event.stopPropagation();\n _onSubmit === null || _onSubmit === void 0 || _onSubmit(event);\n },\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"flex-spacer\"\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"flex-wrapper\",\n children: [/*#__PURE__*/_jsx(\"fieldset\", {\n disabled: isLoggingIn,\n className: \"container-fluid\",\n children: children\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"form-group d-flex justify-content-end align-items-center mb-0\",\n children: /*#__PURE__*/_jsxs(\"button\", {\n type: \"submit\",\n className: classNames('btn btn-primary', {\n 'btn-spinner': isLoggingIn\n }, {\n 'btn-cancelable': isLoggingIn\n }),\n \"data-testid\": \"btn-login\",\n children: [isLoggingIn && /*#__PURE__*/_jsxs(\"span\", {\n children: [/*#__PURE__*/_jsx(LoadingSpinner, {\n className: \"mr-2 loading-spinner-vertical-align\"\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"btn-normal-content\",\n children: \"Logging in\"\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"btn-hover-content\",\n children: \"Cancel\"\n })]\n }), !isLoggingIn && 'Login']\n })\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"flex-spacer\",\n children: errorMessage != null && /*#__PURE__*/_jsx(\"p\", {\n className: \"error-message mb-0\",\n role: \"alert\",\n children: \"\".concat(errorMessage)\n })\n })]\n });\n}\nexport default LoginForm;\n//# sourceMappingURL=LoginForm.js.map","import React from 'react';\nimport { RandomAreaPlotAnimation } from '@deephaven/components';\nimport \"./Login.css\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nexport function Login(_ref) {\n var {\n children,\n logoPath = './logo.png'\n } = _ref;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"login-container\",\n children: [/*#__PURE__*/_jsx(RandomAreaPlotAnimation, {}), /*#__PURE__*/_jsxs(\"div\", {\n className: \"login-box\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"logo\",\n children: /*#__PURE__*/_jsx(\"img\", {\n src: logoPath,\n alt: \"Deephaven Data Labs\"\n })\n }), children, /*#__PURE__*/_jsxs(\"p\", {\n className: \"footer\",\n children: [\"\\xA9 2016-\", new Date().getFullYear(), \" Deephaven Data Labs LLC. Patent Pending.\"]\n })]\n })]\n });\n}\nexport default Login;\n//# sourceMappingURL=Login.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { FadeTransition, LoadingOverlay } from '@deephaven/components';\nimport { useClient } from '@deephaven/jsapi-bootstrap';\nimport { useBroadcastLoginListener } from '@deephaven/jsapi-components';\nimport Log from '@deephaven/log';\nimport { getErrorMessage } from '@deephaven/utils';\nimport Cookies from 'js-cookie';\nimport LoginForm from \"./LoginForm.js\";\nimport Login from \"./Login.js\";\nimport AuthenticationError from \"./AuthenticationError.js\";\nimport { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nvar AUTH_TYPE = 'io.deephaven.authentication.psk.PskAuthenticationHandler';\nvar PSK_QUERY_PARAM_KEY = 'psk';\nvar PSK_TOKEN_KEY = 'io.deephaven.web.client.auth.psk.token';\nvar log = Log.module('AuthPluginPsk');\nfunction getWindowToken() {\n return new URLSearchParams(window.location.search).get(PSK_QUERY_PARAM_KEY);\n}\nfunction clearWindowToken() {\n log.debug2('clearWindowToken');\n var url = new URL(window.location.href);\n url.searchParams.delete(PSK_QUERY_PARAM_KEY);\n window.history.replaceState(null, '', url.href);\n}\nfunction readCookieToken() {\n var _Cookies$get;\n return (_Cookies$get = Cookies.get(PSK_TOKEN_KEY)) !== null && _Cookies$get !== void 0 ? _Cookies$get : null;\n}\nfunction storeCookieToken(token) {\n log.debug2('Storing token in cookie', token);\n if (token != null) {\n Cookies.set(PSK_TOKEN_KEY, token, {\n secure: true,\n sameSite: 'strict'\n });\n } else {\n Cookies.remove(PSK_TOKEN_KEY);\n }\n}\n/**\n * AuthPlugin that tries to login using a pre-shared key.\n * Add the `psk=<token>` parameter to your URL string to set the token.\n */\nfunction Component(_ref) {\n var {\n children,\n logoPath\n } = _ref;\n var client = useClient();\n var inputField = useRef(null);\n var loginPromise = useRef(null);\n var [error, setError] = useState();\n var [isInputRequired, setIsInputRequired] = useState(false);\n var [isLoggedIn, setIsLoggedIn] = useState(false);\n var [isLoggingIn, setIsLoggingIn] = useState(false);\n var [token, setToken] = useState('');\n var login = useCallback(\n /*#__PURE__*/\n // eslint-disable-next-line @typescript-eslint/no-inferrable-types\n function () {\n var _ref2 = _asyncToGenerator(function* (loginToken) {\n var showError = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n log.info('Logging in...');\n setIsLoggingIn(true);\n var newLoginPromise = null;\n try {\n newLoginPromise = client.login({\n type: AUTH_TYPE,\n token: loginToken\n });\n loginPromise.current = newLoginPromise;\n yield newLoginPromise;\n log.info('Logged in successfully');\n if (loginPromise.current !== newLoginPromise) {\n return;\n }\n storeCookieToken(loginToken);\n setIsLoggedIn(true);\n } catch (e) {\n if (loginPromise.current !== newLoginPromise) {\n return;\n }\n setIsInputRequired(true);\n if (showError) {\n var _getErrorMessage;\n log.error('Unable to login', e);\n var message = (_getErrorMessage = getErrorMessage(e)) !== null && _getErrorMessage !== void 0 ? _getErrorMessage : 'Unable to login: Verify credentials.';\n setError(new AuthenticationError(message));\n }\n }\n setIsLoggingIn(false);\n });\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }(), [client]);\n var cancelLogin = useCallback(() => {\n loginPromise.current = null;\n setIsLoggingIn(false);\n }, []);\n var onLogin = useCallback(/*#__PURE__*/_asyncToGenerator(function* () {\n log.debug('onLogin');\n\n // User logged in successfully in another tab, we should be able to read the token from the cookie and login\n var newToken = readCookieToken();\n if (isLoggedIn || isLoggingIn || newToken == null) {\n return;\n }\n login(newToken, false);\n }), [isLoggedIn, isLoggingIn, login]);\n var onLogout = useCallback(() => {\n storeCookieToken(null);\n }, []);\n useBroadcastLoginListener(onLogin, onLogout);\n useEffect(() => {\n var isCanceled = false;\n function initialLogin() {\n return _initialLogin.apply(this, arguments);\n }\n function _initialLogin() {\n _initialLogin = _asyncToGenerator(function* () {\n var _getWindowToken;\n var initialToken = (_getWindowToken = getWindowToken()) !== null && _getWindowToken !== void 0 ? _getWindowToken : readCookieToken();\n clearWindowToken();\n if (initialToken == null) {\n setIsInputRequired(true);\n return;\n }\n setIsLoggingIn(true);\n try {\n yield client.login({\n type: AUTH_TYPE,\n token: initialToken\n });\n if (!isCanceled) {\n storeCookieToken(initialToken);\n setIsLoggedIn(true);\n setIsLoggingIn(false);\n }\n } catch (e) {\n if (!isCanceled) {\n setIsInputRequired(true);\n setIsLoggingIn(false);\n }\n }\n });\n return _initialLogin.apply(this, arguments);\n }\n initialLogin();\n return () => {\n isCanceled = true;\n };\n }, [client]);\n var handleSubmit = useCallback(() => {\n if (!isLoggingIn) {\n login(token);\n } else {\n cancelLogin();\n }\n }, [cancelLogin, isLoggingIn, login, token]);\n useEffect(function autoFocusInput() {\n var _inputField$current;\n (_inputField$current = inputField.current) === null || _inputField$current === void 0 || _inputField$current.focus();\n }, [inputField, isInputRequired]);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [isLoggedIn && children, isInputRequired && /*#__PURE__*/_jsx(FadeTransition, {\n in: !isLoggedIn,\n mountOnEnter: true,\n unmountOnExit: true,\n children: /*#__PURE__*/_jsx(Login, {\n logoPath: logoPath,\n children: /*#__PURE__*/_jsx(LoginForm, {\n errorMessage: getErrorMessage(error),\n isLoggingIn: isLoggingIn,\n onSubmit: handleSubmit,\n children: /*#__PURE__*/_jsxs(\"div\", {\n className: \"form-group\",\n children: [/*#__PURE__*/_jsx(\"label\", {\n htmlFor: \"auth-psk-token-input\",\n children: \"Token\"\n }), /*#__PURE__*/_jsx(\"input\", {\n id: \"auth-psk-token-input\",\n name: \"token\",\n className: \"input-token form-control\",\n type: \"text\",\n autoComplete: \"username\",\n autoCapitalize: \"none\",\n autoCorrect: \"off\",\n spellCheck: \"false\",\n ref: inputField,\n value: token,\n onChange: event => {\n setError(undefined);\n setToken(event.target.value);\n }\n })]\n })\n })\n })\n }), /*#__PURE__*/_jsx(LoadingOverlay, {\n \"data-testid\": \"auth-psk-loading\",\n isLoaded: isLoggedIn || isInputRequired,\n isLoading: !isLoggedIn && !isInputRequired\n })]\n });\n}\nvar AuthPluginPsk = {\n Component,\n isAvailable: authHandlers => authHandlers.includes(AUTH_TYPE)\n};\nexport default AuthPluginPsk;\n//# sourceMappingURL=AuthPluginPsk.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 Log from '@deephaven/log';\nvar log = Log.module('UserUtils');\n\n/**\n * Retrieve a value from the AppInit config\n * @param serverConfig Server config map\n * @param key The AppInit key to retrieve\n * @returns The value for the AppInit key\n */\nexport function getAppInitValue(serverConfig, key) {\n return serverConfig.get(\"internal.webClient.appInit.\".concat(key));\n}\n\n/**\n * Retrieve a user object provided the server config and overrides\n * @param serverConfig Server config map\n * @param overrides Override values for the user\n * @param permissionsOverrides Override specific permissions for the user\n * @returns The user object\n */\nexport function getUserFromConfig(serverConfig) {\n var _getValue, _getValue2, _getValue$split, _getValue3;\n var overrides = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var permissionsOverrides = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n function getValue(key) {\n return getAppInitValue(serverConfig, key);\n }\n function getBooleanValue(key, defaultValue) {\n var value = getValue(key);\n if (value === 'true') {\n return true;\n }\n if (value === 'false') {\n return false;\n }\n if (value !== undefined) {\n log.warn(\"Unexpected value for \".concat(key, \": \").concat(value));\n }\n return defaultValue;\n }\n var name = (_getValue = getValue('name')) !== null && _getValue !== void 0 ? _getValue : '';\n var operateAs = (_getValue2 = getValue('operateAs')) !== null && _getValue2 !== void 0 ? _getValue2 : name;\n var groups = (_getValue$split = (_getValue3 = getValue('groups')) === null || _getValue3 === void 0 ? void 0 : _getValue3.split(',')) !== null && _getValue$split !== void 0 ? _getValue$split : [];\n var canCopy = getBooleanValue('canCopy', true);\n var canDownloadCsv = getBooleanValue('canDownloadCsv', true);\n var canUsePanels = getBooleanValue('canUsePanels', true);\n var canLogout = getBooleanValue('canLogout', true);\n return _objectSpread(_objectSpread({\n name,\n operateAs,\n groups\n }, overrides), {}, {\n permissions: _objectSpread({\n canUsePanels,\n canCopy,\n canDownloadCsv,\n canLogout\n }, permissionsOverrides)\n });\n}\nexport default {\n getAppInitValue,\n getUser: getUserFromConfig\n};\n//# sourceMappingURL=UserUtils.js.map","/**\n * remote-component.config.js\n *\n * Dependencies for Remote Components\n */\nimport react from 'react';\nimport * as redux from 'redux';\nimport * as reactRedux from 'react-redux';\nimport ReactDOM from 'react-dom';\n// eslint-disable-next-line no-restricted-imports\nimport * as AdobeReactSpectrum from '@adobe/react-spectrum';\nimport * as DeephavenAuthPlugins from '@deephaven/auth-plugins';\nimport * as DeephavenChart from '@deephaven/chart';\nimport * as DeephavenComponents from '@deephaven/components';\nimport * as DeephavenDashboard from '@deephaven/dashboard';\nimport * as DeephavenDashboardCorePlugins from '@deephaven/dashboard-core-plugins';\nimport * as DeephavenIcons from '@deephaven/icons';\nimport * as DeephavenIrisGrid from '@deephaven/iris-grid';\nimport * as DeephavenJsapiBootstrap from '@deephaven/jsapi-bootstrap';\nimport * as DeephavenJsapiComponents from '@deephaven/jsapi-components';\nimport * as DeephavenJsapiUtils from '@deephaven/jsapi-utils';\nimport * as DeephavenConsole from '@deephaven/console';\nimport DeephavenLog from '@deephaven/log';\nimport * as DeephavenReactHooks from '@deephaven/react-hooks';\nimport * as DeephavenPlugin from '@deephaven/plugin';\n\n// eslint-disable-next-line import/prefer-default-export\nexport var resolve = {\n react,\n 'react-dom': ReactDOM,\n redux,\n 'react-redux': reactRedux,\n '@adobe/react-spectrum': AdobeReactSpectrum,\n '@deephaven/auth-plugins': DeephavenAuthPlugins,\n '@deephaven/chart': DeephavenChart,\n '@deephaven/components': DeephavenComponents,\n '@deephaven/console': DeephavenConsole,\n '@deephaven/dashboard': DeephavenDashboard,\n '@deephaven/dashboard-core-plugins': DeephavenDashboardCorePlugins,\n '@deephaven/icons': DeephavenIcons,\n '@deephaven/iris-grid': DeephavenIrisGrid,\n '@deephaven/jsapi-bootstrap': DeephavenJsapiBootstrap,\n '@deephaven/jsapi-components': DeephavenJsapiComponents,\n '@deephaven/jsapi-utils': DeephavenJsapiUtils,\n '@deephaven/log': DeephavenLog,\n '@deephaven/plugin': DeephavenPlugin,\n '@deephaven/react-hooks': DeephavenReactHooks\n};\n//# sourceMappingURL=remote-component.config.js.map","import createLoadRemoteModule, { createRequires } from '@paciolan/remote-module-loader';\nimport { resolve } from \"./remote-component.config.js\";\nvar requires = createRequires(resolve);\nexport var loadRemoteModule = createLoadRemoteModule({\n requires\n});\nexport default loadRemoteModule;\n//# sourceMappingURL=loadRemoteModule.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); }\nfunction asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport Log from '@deephaven/log';\nimport { isAuthPlugin, PluginType, isLegacyAuthPlugin, isLegacyPlugin, isPlugin } from '@deephaven/plugin';\nimport loadRemoteModule from \"./loadRemoteModule.js\";\nvar log = Log.module('@deephaven/app-utils.PluginUtils');\n/**\n * Imports a commonjs plugin module from the provided URL\n * @param pluginUrl The URL of the plugin to load\n * @returns The loaded module\n */\nexport function loadModulePlugin(_x) {\n return _loadModulePlugin.apply(this, arguments);\n}\n\n/**\n * Loads a JSON file and returns the JSON object\n * @param jsonUrl The URL of the JSON file to load\n * @returns The JSON object of the manifest file\n */\nfunction _loadModulePlugin() {\n _loadModulePlugin = _asyncToGenerator(function* (pluginUrl) {\n var myModule = yield loadRemoteModule(pluginUrl);\n return myModule;\n });\n return _loadModulePlugin.apply(this, arguments);\n}\nexport function loadJson(_x2) {\n return _loadJson.apply(this, arguments);\n}\nfunction _loadJson() {\n _loadJson = _asyncToGenerator(function* (jsonUrl) {\n var res = yield fetch(jsonUrl);\n if (!res.ok) {\n throw new Error(res.statusText);\n }\n try {\n return yield res.json();\n } catch (_unused) {\n throw new Error('Could not be parsed as JSON');\n }\n });\n return _loadJson.apply(this, arguments);\n}\nfunction hasDefaultExport(value) {\n return typeof value === 'object' && value != null && typeof value.default === 'object';\n}\nexport function getPluginModuleValue(value) {\n // TypeScript builds CJS default exports differently depending on\n // whether there are also named exports. If the default is the only\n // export, it will be the value. If there are also named exports,\n // it will be assigned to the `default` property on the value.\n if (isPlugin(value)) {\n return value;\n }\n if (hasDefaultExport(value) && isPlugin(value.default)) {\n return value.default;\n }\n if (isLegacyPlugin(value)) {\n return value;\n }\n return null;\n}\n\n/**\n * Load all plugin modules available based on the manifest file at the provided base URL\n * @param modulePluginsUrl The base URL of the module plugins to load\n * @returns A map from the name of the plugin to the plugin module that was loaded\n */\nexport function loadModulePlugins(_x3) {\n return _loadModulePlugins.apply(this, arguments);\n}\nfunction _loadModulePlugins() {\n _loadModulePlugins = _asyncToGenerator(function* (modulePluginsUrl) {\n log.debug('Loading plugins...');\n try {\n var manifest = yield loadJson(\"\".concat(modulePluginsUrl, \"/manifest.json\"));\n if (!Array.isArray(manifest.plugins)) {\n throw new Error('Plugin manifest JSON does not contain plugins array');\n }\n log.debug('Plugin manifest loaded:', manifest);\n var pluginPromises = [];\n for (var i = 0; i < manifest.plugins.length; i += 1) {\n var {\n name,\n main\n } = manifest.plugins[i];\n var pluginMainUrl = \"\".concat(modulePluginsUrl, \"/\").concat(name, \"/\").concat(main);\n pluginPromises.push(loadModulePlugin(pluginMainUrl));\n }\n var pluginModules = yield Promise.allSettled(pluginPromises);\n var pluginMap = new Map();\n for (var _i = 0; _i < pluginModules.length; _i += 1) {\n var module = pluginModules[_i];\n var {\n name: _name,\n version\n } = manifest.plugins[_i];\n if (module.status === 'fulfilled') {\n var moduleValue = getPluginModuleValue(module.value);\n if (moduleValue == null) {\n log.error(\"Plugin '\".concat(_name, \"' is missing an exported value.\"));\n } else {\n pluginMap.set(_name, _objectSpread(_objectSpread({}, moduleValue), {}, {\n version\n }));\n }\n } else {\n log.error(\"Unable to load plugin '\".concat(_name, \"'\"), module.reason);\n }\n }\n log.info('Plugins loaded:', pluginMap);\n return pluginMap;\n } catch (e) {\n log.error('Unable to load plugins:', e);\n return new Map();\n }\n });\n return _loadModulePlugins.apply(this, arguments);\n}\nexport function getAuthHandlers(authConfigValues) {\n var _authConfigValues$get, _authConfigValues$get2;\n return (_authConfigValues$get = (_authConfigValues$get2 = authConfigValues.get('AuthHandlers')) === null || _authConfigValues$get2 === void 0 ? void 0 : _authConfigValues$get2.split(',')) !== null && _authConfigValues$get !== void 0 ? _authConfigValues$get : [];\n}\n\n/**\n * Get the auth plugin component from the plugin map and current configuration\n * Throws if no auth plugin is available\n *\n * @param pluginMap Map of plugins loaded from the server\n * @param authConfigValues Auth config values from the server\n * @param corePlugins Map of core auth plugins to include in the list. They are added after the loaded plugins\n * @returns The auth plugin component to render\n */\nexport function getAuthPluginComponent(pluginMap, authConfigValues) {\n var corePlugins = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Map();\n var authHandlers = getAuthHandlers(authConfigValues);\n // User plugins take priority over core plugins\n var authPlugins = [...pluginMap.entries(), ...corePlugins.entries()].filter(_ref => {\n var [, plugin] = _ref;\n return isAuthPlugin(plugin) || isLegacyAuthPlugin(plugin);\n }).map(_ref2 => {\n var [name, plugin] = _ref2;\n if (isLegacyAuthPlugin(plugin)) {\n return {\n type: PluginType.AUTH_PLUGIN,\n name,\n component: plugin.AuthPlugin.Component,\n isAvailable: plugin.AuthPlugin.isAvailable\n };\n }\n return plugin;\n });\n\n // Filter the available auth plugins\n var availableAuthPlugins = authPlugins.filter(_ref3 => {\n var {\n isAvailable\n } = _ref3;\n return isAvailable(authHandlers, authConfigValues);\n });\n if (availableAuthPlugins.length === 0) {\n throw new Error(\"No login plugins found, please register a login plugin for auth handlers: \".concat(authHandlers));\n } else if (availableAuthPlugins.length > 1) {\n log.warn('More than one login plugin available, will use the first one: ', availableAuthPlugins.map(_ref4 => {\n var {\n name\n } = _ref4;\n return name;\n }).join(', '));\n }\n var {\n name,\n component\n } = availableAuthPlugins[0];\n log.info('Using LoginPlugin', name);\n return component;\n}\n//# sourceMappingURL=PluginUtils.js.map","import { createRemoteComponent, createRequires } from '@paciolan/remote-component';\nimport { resolve } from \"./remote-component.config.js\";\nvar requires = createRequires(() => resolve);\nexport var RemoteComponent = createRemoteComponent({\n requires\n});\nexport default RemoteComponent;\n//# sourceMappingURL=RemoteComponent.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React, { useEffect, useState } from 'react';\nimport { PluginsContext } from '@deephaven/plugin';\nimport { loadModulePlugins } from \"../plugins/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * PluginsBootstrap component. Handles loading the plugins.\n */\nexport function PluginsBootstrap(_ref) {\n var {\n pluginsUrl,\n getCorePlugins,\n children\n } = _ref;\n var [plugins, setPlugins] = useState(null);\n useEffect(function initPlugins() {\n var isCanceled = false;\n function loadPlugins() {\n return _loadPlugins.apply(this, arguments);\n }\n function _loadPlugins() {\n _loadPlugins = _asyncToGenerator(function* () {\n var _yield$getCorePlugins;\n var corePlugins = (_yield$getCorePlugins = yield getCorePlugins === null || getCorePlugins === void 0 ? void 0 : getCorePlugins()) !== null && _yield$getCorePlugins !== void 0 ? _yield$getCorePlugins : [];\n var pluginModules = yield loadModulePlugins(pluginsUrl);\n if (!isCanceled) {\n var corePluginPairs = corePlugins.map(plugin => [plugin.name, plugin]);\n setPlugins(new Map([...corePluginPairs, ...pluginModules]));\n }\n });\n return _loadPlugins.apply(this, arguments);\n }\n loadPlugins();\n return () => {\n isCanceled = true;\n };\n }, [pluginsUrl, getCorePlugins]);\n return /*#__PURE__*/_jsx(PluginsContext.Provider, {\n value: plugins,\n children: children\n });\n}\nexport default PluginsBootstrap;\n//# sourceMappingURL=PluginsBootstrap.js.map","import { useBroadcastChannel } from '@deephaven/jsapi-components';\nimport { BROADCAST_LOGIN_MESSAGE } from '@deephaven/jsapi-utils';\nimport { makeMessage } from '@deephaven/utils';\nimport { useEffect } from 'react';\n\n/**\n * Component that broadcasts a message when mounted. Should be mounted after the user has logged in.\n */\nexport function LoginNotifier() {\n var channel = useBroadcastChannel();\n useEffect(function notifyLogin() {\n channel.postMessage(makeMessage(BROADCAST_LOGIN_MESSAGE));\n }, [channel]);\n return null;\n}\nexport default LoginNotifier;\n//# sourceMappingURL=LoginNotifier.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React, { useContext, useEffect, useMemo, useState } from 'react';\nimport { AuthPluginAnonymous, AuthPluginParent, AuthPluginPsk } from '@deephaven/auth-plugins';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { useClient } from '@deephaven/jsapi-bootstrap';\nimport { getErrorMessage } from '@deephaven/utils';\nimport { PluginsContext } from '@deephaven/plugin';\nimport { getAuthPluginComponent } from \"../plugins/index.js\";\nimport LoginNotifier from \"./LoginNotifier.js\";\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\n/** Core auth plugins that are always loaded */\nvar CORE_AUTH_PLUGINS = new Map([['@deephaven/auth-plugins.AuthPluginParent', {\n AuthPlugin: AuthPluginParent\n}], ['@deephaven/auth-plugins.AuthPluginPsk', {\n AuthPlugin: AuthPluginPsk\n}], ['@deephaven/auth-plugins.AuthPluginAnonymous', {\n AuthPlugin: AuthPluginAnonymous\n}]]);\n\n/**\n * AuthBootstrap component. Handles displaying the auth plugin and authenticating.\n */\nexport function AuthBootstrap(_ref) {\n var {\n children\n } = _ref;\n var client = useClient();\n // `useContext` instead of `usePlugins` so that we don't have to wait for the plugins to load\n // We want to load the auth config values in parallel with the plugins\n var plugins = useContext(PluginsContext);\n var [authConfig, setAuthConfig] = useState();\n var [error, setError] = useState();\n useEffect(function initAuthConfigValues() {\n var isCanceled = false;\n function loadAuthConfigValues() {\n return _loadAuthConfigValues.apply(this, arguments);\n }\n function _loadAuthConfigValues() {\n _loadAuthConfigValues = _asyncToGenerator(function* () {\n try {\n var newAuthConfigValues = yield client.getAuthConfigValues();\n if (!isCanceled) {\n setAuthConfig(new Map(newAuthConfigValues));\n }\n } catch (e) {\n if (!isCanceled) {\n setError(e);\n }\n }\n });\n return _loadAuthConfigValues.apply(this, arguments);\n }\n loadAuthConfigValues();\n return () => {\n isCanceled = true;\n };\n }, [client]);\n var AuthComponent = useMemo(() => {\n if (plugins == null || authConfig == null) {\n return undefined;\n }\n try {\n return getAuthPluginComponent(plugins, authConfig, CORE_AUTH_PLUGINS);\n } catch (e) {\n setError(e);\n }\n }, [authConfig, plugins]);\n var isLoading = AuthComponent == null || authConfig == null;\n if (isLoading || error != null) {\n return /*#__PURE__*/_jsx(LoadingOverlay, {\n isLoading: isLoading && error == null,\n errorMessage: getErrorMessage(error),\n \"data-testid\": \"auth-bootstrap-loading-error\"\n });\n }\n return /*#__PURE__*/_jsx(AuthComponent, {\n authConfigValues: authConfig,\n children: /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(LoginNotifier, {}), children]\n })\n });\n}\nexport default AuthBootstrap;\n//# sourceMappingURL=AuthBootstrap.js.map","function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }\nfunction _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n); } _next(void 0); }); }; }\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { BasicModal, DebouncedModal, InfoModal, LoadingOverlay, LoadingSpinner } from '@deephaven/components';\nimport { ObjectFetcherContext, ObjectFetchManagerContext, sanitizeVariableDescriptor, useApi, useClient } from '@deephaven/jsapi-bootstrap';\nimport Log from '@deephaven/log';\nimport { assertNotNull } from '@deephaven/utils';\nimport { vsDebugDisconnect } from '@deephaven/icons';\nimport ConnectionContext from \"./ConnectionContext.js\";\nimport { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from \"react/jsx-runtime\";\nvar log = Log.module('@deephaven/app-utils.ConnectionBootstrap');\n/**\n * ConnectionBootstrap component. Handles initializing the connection.\n */\nexport function ConnectionBootstrap(_ref) {\n var {\n children\n } = _ref;\n var api = useApi();\n var client = useClient();\n var [error, setError] = useState();\n var [connection, setConnection] = useState();\n var [connectionState, setConnectionState] = useState('connecting');\n var isAuthFailed = connectionState === 'failed';\n var isShutdown = connectionState === 'shutdown';\n var isReconnecting = connectionState === 'reconnecting';\n var isNotConnecting = connectionState === 'not_connecting';\n useEffect(function initConnection() {\n var isCanceled = false;\n function loadConnection() {\n return _loadConnection.apply(this, arguments);\n }\n function _loadConnection() {\n _loadConnection = _asyncToGenerator(function* () {\n try {\n var newConnection = yield client.getAsIdeConnection();\n if (isCanceled) {\n return;\n }\n setConnection(newConnection);\n setConnectionState('connected');\n } catch (e) {\n if (isCanceled) {\n return;\n }\n setError(e);\n setConnectionState('not_connecting');\n }\n });\n return _loadConnection.apply(this, arguments);\n }\n loadConnection();\n return () => {\n isCanceled = true;\n };\n }, [api, client]);\n useEffect(function listenForDisconnect() {\n if (connection == null || isShutdown) return;\n\n // handles the disconnect event\n function handleDisconnect(event) {\n var {\n detail\n } = event;\n log.info('Disconnect', \"\".concat(JSON.stringify(detail)));\n setConnectionState('reconnecting');\n }\n var removerFn = connection.addEventListener(api.IdeConnection.EVENT_DISCONNECT, handleDisconnect);\n return removerFn;\n }, [api, connection, isShutdown]);\n useEffect(function listenForReconnect() {\n if (connection == null || isShutdown) return;\n\n // handles the reconnect event\n function handleReconnect(event) {\n var {\n detail\n } = event;\n log.info('Reconnect', \"\".concat(JSON.stringify(detail)));\n setConnectionState('connected');\n }\n var removerFn = connection.addEventListener(api.CoreClient.EVENT_RECONNECT, handleReconnect);\n return removerFn;\n }, [api, connection, isShutdown]);\n useEffect(function listenForShutdown() {\n if (connection == null) return;\n\n // handles the shutdown event\n function handleShutdown(event) {\n var {\n detail\n } = event;\n log.info('Shutdown', \"\".concat(JSON.stringify(detail)));\n setError(\"Server shutdown: \".concat(detail !== null && detail !== void 0 ? detail : 'Unknown reason'));\n setConnectionState('shutdown');\n }\n var removerFn = connection.addEventListener(api.IdeConnection.EVENT_SHUTDOWN, handleShutdown);\n return removerFn;\n }, [api, connection]);\n useEffect(function listenForAuthFailed() {\n if (connection == null || isShutdown) return;\n\n // handles the auth failed event\n function handleAuthFailed(event) {\n var {\n detail\n } = event;\n log.warn('Reconnect authentication failed', \"\".concat(JSON.stringify(detail)));\n setError(\"Reconnect authentication failed: \".concat(detail !== null && detail !== void 0 ? detail : 'Unknown reason'));\n setConnectionState('failed');\n }\n var removerFn = connection.addEventListener(api.CoreClient.EVENT_RECONNECT_AUTH_FAILED, handleAuthFailed);\n return removerFn;\n }, [api, connection, isShutdown]);\n var objectFetcher = useCallback(/*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(function* (descriptor) {\n assertNotNull(connection, 'No connection available to fetch object with');\n if (typeof descriptor === 'string') {\n throw new Error('No URI resolvers available in Core');\n }\n return connection.getObject(sanitizeVariableDescriptor(descriptor));\n });\n return function (_x) {\n return _ref2.apply(this, arguments);\n };\n }(), [connection]);\n\n /** We don't really need to do anything fancy in Core to manage an object, just fetch it */\n var objectManager = useMemo(() => ({\n subscribe: (descriptor, onUpdate) => {\n // We send an update with the fetch right away\n onUpdate({\n fetch: () => objectFetcher(descriptor),\n status: 'ready'\n });\n return () => {\n // no-op\n // For Core, if the server dies then we can't reconnect anyway, so no need to bother listening for subscription or cleaning up\n };\n }\n }), [objectFetcher]);\n function handleRefresh() {\n log.info('Refreshing application');\n window.location.reload();\n }\n if (isShutdown || connectionState === 'connecting' || isNotConnecting) {\n return /*#__PURE__*/_jsx(LoadingOverlay, {\n \"data-testid\": \"connection-bootstrap-loading\",\n isLoading: error == null,\n errorMessage: error != null ? \"\".concat(error) : undefined\n });\n }\n return /*#__PURE__*/_jsx(ConnectionContext.Provider, {\n value: connection !== null && connection !== void 0 ? connection : null,\n children: /*#__PURE__*/_jsx(ObjectFetcherContext.Provider, {\n value: objectFetcher,\n children: /*#__PURE__*/_jsxs(ObjectFetchManagerContext.Provider, {\n value: objectManager,\n children: [children, /*#__PURE__*/_jsx(DebouncedModal, {\n isOpen: isReconnecting,\n debounceMs: 1000,\n children: /*#__PURE__*/_jsx(InfoModal, {\n icon: vsDebugDisconnect,\n title: /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(LoadingSpinner, {}), \" Attempting to reconnect...\"]\n }),\n subtitle: \"Please check your network connection.\"\n })\n }), /*#__PURE__*/_jsx(BasicModal, {\n confirmButtonText: \"Refresh\",\n onConfirm: handleRefresh,\n isOpen: isAuthFailed,\n headerText: \"Authentication failed\",\n bodyText: \"Credentials are invalid. Please refresh your browser to try and reconnect.\"\n })]\n })\n })\n });\n}\nexport default ConnectionBootstrap;\n//# sourceMappingURL=ConnectionBootstrap.js.map","/**\n * Get the base URL of the API\n * @param apiUrl API URL\n * @returns URL for the base of the API\n */\nexport function getBaseUrl(apiUrl) {\n return new URL(apiUrl, \"\".concat(window.location));\n}\n\n/**\n * Get the Envoy prefix header value\n * @returns Envoy prefix header value\n */\nexport function getEnvoyPrefix() {\n var searchParams = new URLSearchParams(window.location.search);\n return searchParams.get('envoyPrefix');\n}\nexport function getConnectOptions() {\n var envoyPrefix = getEnvoyPrefix();\n return envoyPrefix != null ? {\n headers: {\n 'envoy-prefix': envoyPrefix\n }\n } : {\n headers: {}\n };\n}\n//# sourceMappingURL=ConnectUtils.js.map","import React, { useContext } from 'react';\nimport { UserContext, UserOverrideContext, UserPermissionsOverrideContext, getUserFromConfig } from '@deephaven/auth-plugins';\nimport useServerConfig from \"./useServerConfig.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * UserBootstrap component. Derives the UserContext from the ServerConfigContext, UserOverrideContext, and UserPermissionsOverrideContext.\n */\nexport function UserBootstrap(_ref) {\n var {\n children\n } = _ref;\n var serverConfig = useServerConfig();\n var overrides = useContext(UserOverrideContext);\n var permissionsOverrides = useContext(UserPermissionsOverrideContext);\n var user = getUserFromConfig(serverConfig, overrides, permissionsOverrides);\n return /*#__PURE__*/_jsx(UserContext.Provider, {\n value: user,\n children: children\n });\n}\nexport default UserBootstrap;\n//# sourceMappingURL=UserBootstrap.js.map","import { useContext } from 'react';\nimport { ChartThemeProvider } from '@deephaven/chart';\nimport { MonacoThemeProvider } from '@deephaven/console';\nimport { isExternalThemeEnabled, ThemeProvider } from '@deephaven/components';\nimport { useAppSelector } from '@deephaven/dashboard';\nimport { IrisGridThemeProvider } from '@deephaven/iris-grid';\nimport { PluginsContext, useCustomThemes } from '@deephaven/plugin';\nimport { getSettings } from '@deephaven/redux';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport function ThemeBootstrap(_ref) {\n var {\n children\n } = _ref;\n var settings = useAppSelector(getSettings);\n\n // The `usePlugins` hook throws if the context value is null. Since this is\n // the state while plugins load asynchronously, we are using `useContext`\n // directly to avoid the exception.\n var pluginModules = useContext(PluginsContext);\n var themes = useCustomThemes(pluginModules);\n var waitForActivation = isExternalThemeEnabled();\n return /*#__PURE__*/_jsx(ThemeProvider, {\n themes: themes,\n waitForActivation: waitForActivation,\n children: /*#__PURE__*/_jsx(ChartThemeProvider, {\n children: /*#__PURE__*/_jsx(MonacoThemeProvider, {\n children: /*#__PURE__*/_jsx(IrisGridThemeProvider, {\n density: settings.gridDensity,\n children: children\n })\n })\n })\n });\n}\nexport default ThemeBootstrap;\n//# sourceMappingURL=ThemeBootstrap.js.map","import React, { useCallback, useMemo, useState } from 'react';\nimport { Provider } from 'react-redux';\nimport { store } from '@deephaven/redux';\nimport '@deephaven/components/scss/BaseStyleSheet.scss';\nimport { ClientBootstrap } from '@deephaven/jsapi-bootstrap';\nimport { useBroadcastLoginListener } from '@deephaven/jsapi-components';\nimport { ContextActions, ContextMenuRoot, FontBootstrap, FontsLoaded } from '@deephaven/components';\nimport PluginsBootstrap from \"./PluginsBootstrap.js\";\nimport AuthBootstrap from \"./AuthBootstrap.js\";\nimport ConnectionBootstrap from \"./ConnectionBootstrap.js\";\nimport { getConnectOptions, createExportLogsContextAction } from \"../utils/index.js\";\nimport UserBootstrap from \"./UserBootstrap.js\";\nimport ServerConfigBootstrap from \"./ServerConfigBootstrap.js\";\nimport ThemeBootstrap from \"./ThemeBootstrap.js\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * AppBootstrap component. Handles loading the fonts, client, and authentication.\n * Will display the children when everything is loaded and authenticated.\n */\nexport function AppBootstrap(_ref) {\n var {\n fontClassNames,\n pluginsUrl,\n getCorePlugins,\n serverUrl,\n logMetadata,\n children\n } = _ref;\n var clientOptions = useMemo(() => getConnectOptions(), []);\n\n // On logout, we reset the client and have user login again\n var [logoutCount, setLogoutCount] = useState(0);\n var onLogin = useCallback(() => undefined, []);\n var onLogout = useCallback(() => {\n requestAnimationFrame(() => {\n setLogoutCount(value => value + 1);\n });\n }, []);\n useBroadcastLoginListener(onLogin, onLogout);\n var contextActions = useMemo(() => [createExportLogsContextAction(logMetadata, true)], [logMetadata]);\n return /*#__PURE__*/_jsxs(Provider, {\n store: store,\n children: [/*#__PURE__*/_jsx(FontBootstrap, {\n fontClassNames: fontClassNames,\n children: /*#__PURE__*/_jsx(PluginsBootstrap, {\n getCorePlugins: getCorePlugins,\n pluginsUrl: pluginsUrl,\n children: /*#__PURE__*/_jsx(ThemeBootstrap, {\n children: /*#__PURE__*/_jsxs(ClientBootstrap, {\n serverUrl: serverUrl,\n options: clientOptions,\n children: [/*#__PURE__*/_jsx(AuthBootstrap, {\n children: /*#__PURE__*/_jsx(ServerConfigBootstrap, {\n children: /*#__PURE__*/_jsx(UserBootstrap, {\n children: /*#__PURE__*/_jsx(ConnectionBootstrap, {\n children: /*#__PURE__*/_jsx(FontsLoaded, {\n children: children\n })\n })\n })\n })\n }), /*#__PURE__*/_jsx(ContextActions, {\n actions: contextActions\n })]\n }, logoutCount)\n })\n })\n }), /*#__PURE__*/_jsx(ContextMenuRoot, {})]\n });\n}\nexport default AppBootstrap;\n//# sourceMappingURL=AppBootstrap.js.map"],"names":["_excluded","ownKeys","r","t","o","_objectSpread","_defineProperty","_toPropertyKey","i","_toPrimitive","e","_objectWithoutProperties","_objectWithoutPropertiesLoose","n","DHCTabPanels","props","children","keepMountedProp","rest","keepMounted","portalNodeMap","useRef","portalNodes","useMemo","nodes","nextNodeMap","React","child","portal","createHtmlPortalNode","_jsx","InPortal","mappedChildren","newChildren","Item","OutPortal","_jsxs","_Fragment","TabPanels","getSelectedItemCountOrAll","size","selection","isSelectionEqual","selectionA","selectionB","key","isSelectionMaybeInvertedEqual","mapSelection","selectedItemKeys","getItem","mapItem","keys","item","optimizeSelection","totalRecords","getKey","isInverted","optimizedSelection","generateRange","useCallbackWithAction","callback","action","useCallback","result","useChangeEventValueCallback","event","useDelay","delayMs","isDelayed","setIsDelayed","useState","useEffect","timeout","useDependentState","inputValue","state","setState","useEffectNTimesWhen","effectCallback","effectCallbackDependencies","condition","countRef","useIsEqualMemo","value","isEqual","previousValueRef","currentValue","preventDefault","useFormWithDetachedSubmitButton","enableDefaultFormSubmitBehavior","formId","nanoid","submitButtonRef","buttonEl","_buttonEl$UNSAFE_getD","formProps","submitButtonProps","useMappedSelection","viewportData","selectedKeys","items","usePropChangeCallback","propName","onChange","defaultValue","hasDefault","propValue","newValue","useDebouncedValue","debounceMs","isDebouncing","setIsDebouncing","debouncedValue","setDebouncedValue","previousValue","setPreviousValue","previousDebounceMs","setPreviousDebounceMs","isCancelled","timeoutId","useSetAttributesCallback","attributes","selectors","rootEl","targets","target","_ref","prop","SPELLCHECK_FALSE_ATTRIBUTE","useSpectrumDisableSpellcheckRef","disableSpellcheck","useMappedRef","extractSpectrumHTMLElement","logger","Log","useExternalTheme","setResult","isEnabled","isExternalThemeEnabled","handleExternalThemeData","externalThemeData","themeData","parseExternalThemeData","onMessage","parent","getWindowParent","MSG_REQUEST_SET_THEME","isExternalThemeData","requestExternalThemeData","err","FontsLoaded","isFontsLoaded","useContext","FontsLoadedContext","LoadingOverlay","ActionButtonDialogTrigger","ariaLabel","icon","isQuiet","labelText","onOpenChange","tooltip","styleProps","iconClassName","DialogTrigger","ActionButton","Icon","FontAwesomeIcon","Text","Tooltip","ConfirmationDialog","heading","confirmationButtonLabel","onCancel","onConfirm","Dialog","Heading","styles","Divider","Content","Form","ButtonGroup","SpectrumButton","ConfirmActionButton","isHidden","_onConfirm","renderDialog","close","vsTrash","ACTION_ICON_HEIGHT","IconActionButton","label","DebouncedModal","blockInteraction","isOpen","debouncedIsOpen","InfoModal","className","subtitle","title","Modal","ModalBody","noActions","BulkActionBar","selectedItemCount","onClearSelection","ActionBar","commonStyles","EditableItemList","isInvalid","onAdd","onDelete","validate","inputError","setInputError","selectedRanges","setSelectedRanges","setValue","handleSelectionChange","ranges","handleDelete","RangeUtils","handleAdd","validationError","handleInputChange","handleInputFocus","handleInputKeyDown","containerHeight","clamp","ItemList","classNames","index","Button","vsAdd","TextWithTooltip","text","placement","options","stylesCommon","SearchableCombobox","scrollRef","getItemDisplayText","renderItem","displayText","SpectrumComboBox","DEFAULT_DELAY_MS","TableViewEmptyState","content","show","setShow","IllustratedMessage","vsEmptyWindow","ToastNotification","buttons","isShown","classNamesProp","message","type","onClick","onDismiss","dataTestId","nodeRef","hasButtons","CSSTransition","ThemeExport","FadeTransition","vsClose","DeferredApiBootstrap","onError","widget","api","apiError","useDeferredApi","ApiContext","ObjectFetchManagerContext","createContext","useObjectFetch","descriptor","currentUpdate","setCurrentUpdate","objectFetchManager","oldUpdate","asyncGeneratorStep","a","c","u","_asyncToGenerator","_next","_throw","log","useWidget","wrapper","setWrapper","objectFetch","descriptorApi","descriptorApiError","defaultApi","useApi","status","fetch","loadWidgetInternal","_loadWidgetInternal","assertNotNull","newWidget","exportedObject","wrapperWithApi","_wrapper$error","MonacoThemeProvider","activeThemes","useTheme","MonacoUtils","FETCH_TIMEOUT","fetchVariableDefinition","connection","name","resolve","reject","removeListener","_removeListener","TimeoutError","handleFieldUpdates","changes","_removeListener2","definition","def","makeApiContextWrapper","dh","ColumnNameError","TableDisconnectError","useTable","table","firstRow","lastRow","columnNames","columns","setColumns","data","setData","columnError","setColumnError","tableError","setTableError","handleUpdate","detail","column","handleDisconnect","handleReconnect","useTableListener","useTableColumn","columnName","error","SIZE_LIMIT","TableInput","_table$size","_error$message","settings","EMPTY_FUNCTION","onBlur","tablePromise","parentRef","formatter","columnFormats","FormatterUtils","dateTimeFormatterOptions","defaultDecimalFormatOptions","defaultIntegerFormatOptions","Formatter","searchValue","setSearchValue","setSelection","setTable","listRef","itemCount","formatValue","updatedSelection","removedItems","v","isSelected","newSelection","initTable","promise","resolved","PromiseUtils","_x","cancelablePromise","handleSearchChange","_listRef$current","handleSelect","selectedValue","handleSelectAll","values","handleClearSelection","handleViewportChange","handleChildBlur","_parentRef$current","relatedTarget","isEmpty","SearchInput","SelectValueList","ComboBox","_usePickerProps","usePickerProps","onInputChangeInternal","onSearchTextChange","pickerProps","isOpenRef","inputValueRef","onInputChange","menuTrigger","_pickerProps$onOpenCh","ComboBoxNormalized","ListView","_props$density","keyColumnName","labelColumnName","iconColumnName","scale","useSpectrumThemeProvider","itemHeight","LIST_VIEW_ROW_HEIGHTS","useFormatter","deserializeRow","useItemRowDeserializer","onScroll","useViewportData","ListViewNormalized","isJavaObject","defaultFormatValue","TableDropdown","filter","EMPTY_ARRAY","disabled","maxSize","setValues","tableColumn","subscription","newValues","row","_row$get","allValues","selectedIndex","handleChange","newSelectedValue","newSelectedIndex","Select","Option","useBroadcastChannel","onEvent","BROADCAST_CHANNEL_NAME","channel","handleEvent","isMessage","useBroadcastLoginListener","onLogin","onLogout","isBroadcastLoginMessage","isBroadcastLogoutMessage","useCheckIfExistsValue","isCaseSensitive","tableUtils","useTableUtils","valueTrimmed","setValueTrimmed","valueTrimmedDebounced","trimAndUpdateValue","valueExistsData","valueExistsIsLoading","usePromiseFactory","valueExists","DEBOUNCE_VIEWPORT_SEARCH_MS","useDebouncedViewportSearch","applyFiltersAndRefresh","debouncedSearch","debounce","searchText","searchTextTrimmed","DEBOUNCE_MS","useDebouncedViewportSelectionFilter","shouldSelectAllOnNoSelection","mapItemToValue","valuesSelection","createKeyedItemKey","debouncedValuesSelection","memoValuesSelection","createSelectedValuesFilter","useFilteredItemsWithDefaultValue","displayProp","defaultDisplayValue","searchTextRef","isLoading","useGetItemPosition","topOffset","rowIndex","defaultItemOffset","useNotNullOrEmptyFilter","conditionOperator","notNullOrEmptyFilterCondition","createNotNullOrEmptyFilterCondition","createFilterConditionFactory","usePickerWithSelectedValues","maybeTable","filterConditionFactories","trimSearchText","timeZone","usePickerItemScale","setSearchText","appliedSearchText","setAppliedSearchText","applySearchText","searchTextMaybeTrimmed","selectedKey","setSelectedKey","selectedValueMap","setSelectedValueMap","isApplyingFilter","SEARCH_DEBOUNCE_MS","searchTextExists","searchTextFilter","createSearchTextFilter","excludeSelectedValuesFilter","listTable","useWidgetClose","list","VIEWPORT_SIZE","VIEWPORT_PADDING","hasSearchTextWithZeroResults","searchTextIsInSelectedValues","onDebouncedSearchTextChange","useDebouncedCallback","setSelectedKeyOnNextFrame","onSelectKey","prev","next","onAddValues","onRemoveValues","useFilterConditionFactories","useViewportFilter","useSelectDistinctTable","_len","_key","selectDistinct","_table$selectDistinct","distinctTable","isError","useShowOnlyEmptyFilter","isOn","createColumnCondition","createShowOnlyEmptyFilterCondition","useValueFilter","operator","createValueFilter","IrisGridTestUtils","columnIndex","IrisGridUtils","count","prefix","userColumnWidths","sortDescriptor","sort","layoutHints","aggregatedColumns","groupedColumns","keyColumns","valueColumns","acc","col","inputTable","IrisGridProxyModel","useDashboardPanel","dashboardProps","componentName","component","supportedTypes","hydrate","dehydrate","id","layout","registerComponent","handlePanelOpen","_ref2","dragEvent","panelId","isSupportedType","config","root","LayoutUtils","usePanelRegistration","usePanelOpenListener","useDashboardPluginData","dashboardId","pluginId","dispatch","useDispatch","useSelector","store","getPluginDataForDashboard","newData","setDashboardPluginData","useCustomThemes","pluginModules","isExternalThemePending","getThemeDataFromPlugins","WidgetView","plugins","usePlugins","plugin","isWidgetPlugin","p","Component","usePluginsElementMap","elementPlugins","getPluginsElementMap","isAuthPlugin","authPlugin","AUTH_HANDLER_TYPE_ANONYMOUS","AUTH_HANDLER_TYPE_PSK","AuthenticationError","AuthPluginBase","getLoginOptions","client","useClient","setError","isLoggedIn","setIsLoggedIn","isCanceled","verifyNotCanceled","CanceledPromiseError","login","_login","loginOptions","_getErrorMessage","getErrorMessage","permissionsOverrides","UserPermissionsOverrideContext","AuthPluginAnonymous","authHandlers","isLoginOptions","_getLoginOptions","response","requestParentResponse","LOGIN_OPTIONS_REQUEST","getWindowAuthProvider","_URLSearchParams$get","AuthPluginParent","LoginForm","errorMessage","isLoggingIn","_onSubmit","LoadingSpinner","Login","logoPath","RandomAreaPlotAnimation","AUTH_TYPE","PSK_QUERY_PARAM_KEY","PSK_TOKEN_KEY","getWindowToken","clearWindowToken","url","readCookieToken","_Cookies$get","Cookies","storeCookieToken","token","inputField","loginPromise","isInputRequired","setIsInputRequired","setIsLoggingIn","setToken","loginToken","showError","newLoginPromise","cancelLogin","newToken","initialLogin","_initialLogin","_getWindowToken","initialToken","handleSubmit","_inputField$current","AuthPluginPsk","getAppInitValue","serverConfig","getUserFromConfig","_getValue","_getValue2","_getValue$split","_getValue3","overrides","getValue","getBooleanValue","operateAs","groups","canCopy","canDownloadCsv","canUsePanels","canLogout","react","ReactDOM","redux","reactRedux","AdobeReactSpectrum","DeephavenAuthPlugins","DeephavenChart","DeephavenComponents","DeephavenConsole","DeephavenDashboard","DeephavenDashboardCorePlugins","DeephavenIcons","DeephavenIrisGrid","DeephavenJsapiBootstrap","DeephavenJsapiComponents","DeephavenJsapiUtils","DeephavenLog","DeephavenPlugin","DeephavenReactHooks","requires","createRequires","loadRemoteModule","createLoadRemoteModule","loadModulePlugin","_loadModulePlugin","pluginUrl","myModule","loadJson","_x2","_loadJson","jsonUrl","res","hasDefaultExport","getPluginModuleValue","isPlugin","isLegacyPlugin","loadModulePlugins","_x3","_loadModulePlugins","modulePluginsUrl","manifest","pluginPromises","main","pluginMainUrl","pluginMap","_i","module","_name","version","moduleValue","getAuthHandlers","authConfigValues","_authConfigValues$get","_authConfigValues$get2","getAuthPluginComponent","corePlugins","authPlugins","isLegacyAuthPlugin","PluginType","availableAuthPlugins","_ref3","isAvailable","_ref4","RemoteComponent","createRemoteComponent","PluginsBootstrap","pluginsUrl","getCorePlugins","setPlugins","loadPlugins","_loadPlugins","_yield$getCorePlugins","corePluginPairs","PluginsContext","LoginNotifier","makeMessage","BROADCAST_LOGIN_MESSAGE","CORE_AUTH_PLUGINS","AuthBootstrap","authConfig","setAuthConfig","loadAuthConfigValues","_loadAuthConfigValues","newAuthConfigValues","AuthComponent","ConnectionBootstrap","setConnection","connectionState","setConnectionState","isAuthFailed","isShutdown","isReconnecting","isNotConnecting","loadConnection","_loadConnection","newConnection","removerFn","handleShutdown","handleAuthFailed","objectFetcher","sanitizeVariableDescriptor","objectManager","onUpdate","handleRefresh","ConnectionContext","ObjectFetcherContext","vsDebugDisconnect","BasicModal","getBaseUrl","apiUrl","getEnvoyPrefix","searchParams","getConnectOptions","envoyPrefix","UserBootstrap","useServerConfig","UserOverrideContext","user","UserContext","ThemeBootstrap","useAppSelector","getSettings","themes","waitForActivation","ThemeProvider","ChartThemeProvider","IrisGridThemeProvider","AppBootstrap","fontClassNames","serverUrl","logMetadata","clientOptions","logoutCount","setLogoutCount","contextActions","createExportLogsContextAction","Provider","FontBootstrap","ClientBootstrap","ServerConfigBootstrap","ContextActions","ContextMenuRoot"],"mappings":"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"}