@deephaven/code-studio 0.55.1-alpha-theming-bootstrap.77 → 0.55.1-alpha-theme-spectrum.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -25
- package/build/assets/{AppRoot-4ea9bec5.js → AppRoot-c2848a27.js} +3 -3
- package/build/assets/{AppRoot-4ea9bec5.js.map → AppRoot-c2848a27.js.map} +1 -1
- package/build/assets/{ControlType-1da5feb1.js → ControlType-72c7ebcd.js} +2 -2
- package/build/assets/{ControlType-1da5feb1.js.map → ControlType-72c7ebcd.js.map} +1 -1
- package/build/assets/FontBootstrap-a6edce48.js +4 -0
- package/build/assets/FontBootstrap-a6edce48.js.map +1 -0
- package/build/assets/{IrisGrid-32512153.js → IrisGrid-338898e8.js} +3 -3
- package/build/assets/{IrisGrid-32512153.js.map → IrisGrid-338898e8.js.map} +1 -1
- package/build/assets/IrisGridModelFactory-78357444.js +3 -0
- package/build/assets/IrisGridModelFactory-78357444.js.map +1 -0
- package/build/assets/{StyleGuideRoot-bdd2ca31.js → StyleGuideRoot-b6cb87c2.js} +12 -12
- package/build/assets/StyleGuideRoot-b6cb87c2.js.map +1 -0
- package/build/assets/{index-6c881333.js → index-0b3c357f.js} +2 -2
- package/build/assets/{index-6c881333.js.map → index-0b3c357f.js.map} +1 -1
- package/build/assets/{index-d508f5e2.css → index-12181a3f.css} +1 -1
- package/build/assets/{index-defd1935.js → index-5714d8a8.js} +5 -5
- package/build/assets/index-5714d8a8.js.map +1 -0
- package/build/assets/index-98bbd1a8.js +3 -0
- package/build/assets/index-98bbd1a8.js.map +1 -0
- package/build/assets/usePlugins-9d389880.js +3 -0
- package/build/assets/usePlugins-9d389880.js.map +1 -0
- package/build/assets/{useUser-a066a97a.js → useUser-be5cd878.js} +2 -2
- package/build/assets/{useUser-a066a97a.js.map → useUser-be5cd878.js.map} +1 -1
- package/build/index.html +2 -6
- package/package.json +31 -31
- package/build/assets/FontBootstrap-b18db812.js +0 -4
- package/build/assets/FontBootstrap-b18db812.js.map +0 -1
- package/build/assets/IrisGridModelFactory-5ab07d80.js +0 -3
- package/build/assets/IrisGridModelFactory-5ab07d80.js.map +0 -1
- package/build/assets/StyleGuideRoot-bdd2ca31.js.map +0 -1
- package/build/assets/index-00d795e3.js +0 -3
- package/build/assets/index-00d795e3.js.map +0 -1
- package/build/assets/index-defd1935.js.map +0 -1
- package/build/assets/usePlugins-2f74626c.js +0 -3
- package/build/assets/usePlugins-2f74626c.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FontBootstrap-b18db812.js","sources":["../../../components/dist/AutoCompleteInput.js","../../../components/dist/AutoResizeTextarea.js","../../../components/dist/TimeInput.js","../../../components/dist/CustomTimeSelect.js","../../../components/dist/DateInput.js","../../../components/dist/HierarchicalCheckboxMenu.js","../../../components/dist/RandomAreaPlotAnimation.js","../../../components/dist/TimeSlider.js","../../../components/dist/ValidateLabelInput.js","../../../chart/dist/MockChartModel.js","../../../app-utils/dist/components/FontBootstrap.js"],"sourcesContent":["function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * An Input component that pops and filters auto complete options as you type.\n *\n * props:\n * @param options :[{\n * title: 'option title for display',\n * value: 'option value' //option value\n * }]\n * @param popperOptions options for the Popper\n * @param onChange called when the value is changed from the pulldown\n * @param inputPlaceholder place holder for the input box\n * @param disabled disable both input & drop down\n * @param className an optional class name applied to the input element\n * @param defaultTitle the default title to display\n * @param spellCheck flag to disable spell checking, defaults to true\n * @param onEnter called when the Enter key is typed in the input element\n *\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport memoize from 'memoizee';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { Popper } from \"./popper/index.js\";\nimport \"./AutoCompleteInput.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar DEBOUNCE_DELAY = 100;\nvar MENU_NAVIGATION_DIRECTION;\n(function (MENU_NAVIGATION_DIRECTION) {\n MENU_NAVIGATION_DIRECTION[\"UP\"] = \"UP\";\n MENU_NAVIGATION_DIRECTION[\"DOWN\"] = \"DOWN\";\n})(MENU_NAVIGATION_DIRECTION || (MENU_NAVIGATION_DIRECTION = {}));\nclass AutoCompleteInput extends Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"popper\", void 0);\n _defineProperty(this, \"cbContainer\", void 0);\n _defineProperty(this, \"menuContainer\", void 0);\n _defineProperty(this, \"input\", void 0);\n _defineProperty(this, \"getCachedFilteredOptions\", memoize((options, input) => options.filter(\n // supports partial match\n option => option.title.toLowerCase().indexOf(input.toLowerCase()) >= 0)));\n var {\n popperOptions\n } = this.props;\n popperOptions = _objectSpread({\n placement: 'bottom-end',\n modifiers: {\n preventOverflow: {\n enabled: false\n }\n }\n }, popperOptions);\n this.state = {\n title: '',\n filteredOptions: [],\n keyboardOptionIndex: 0,\n menuIsOpen: false,\n inputWidth: 100,\n invalid: false,\n popperOptions\n };\n this.handleMenuKeyDown = this.handleMenuKeyDown.bind(this);\n this.handleMenuBlur = this.handleMenuBlur.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleInputKeyDown = this.handleInputKeyDown.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n this.handelInputFocus = this.handelInputFocus.bind(this);\n this.handleInputClick = this.handleInputClick.bind(this);\n this.updateInputValue = debounce(this.updateInputValue, DEBOUNCE_DELAY);\n this.handleOptionClick = this.handleOptionClick.bind(this);\n this.handleMenuOpened = this.handleMenuOpened.bind(this);\n this.handleMenuExited = this.handleMenuExited.bind(this);\n this.popper = /*#__PURE__*/React.createRef();\n this.cbContainer = /*#__PURE__*/React.createRef();\n this.menuContainer = /*#__PURE__*/React.createRef();\n this.input = /*#__PURE__*/React.createRef();\n }\n setInputWidth() {\n if (this.cbContainer.current) {\n this.setState({\n inputWidth: this.cbContainer.current.getBoundingClientRect().width\n });\n }\n }\n // validation needs to be an exact case-sensitve match on value\n getValueAndValidate(title) {\n if (!title) {\n this.setState({\n invalid: false\n });\n return {\n value: title,\n isValid: false\n };\n }\n\n // validate\n var {\n options\n } = this.props;\n var result = options.filter(option => option.title.toLowerCase() === title.toLowerCase());\n if (result.length < 1) {\n this.setState({\n invalid: true\n });\n return {\n value: title,\n isValid: false\n };\n }\n this.setState({\n invalid: false\n });\n return {\n value: result[0].value,\n isValid: true\n };\n }\n\n // validate typed entries emit change event using value\n updateInputValue(title) {\n var {\n menuIsOpen\n } = this.state;\n var {\n value,\n isValid\n } = this.getValueAndValidate(title);\n if (menuIsOpen) this.processFilterChange(title);\n this.fireOnChange(value, isValid);\n }\n fireOnChange(value) {\n var isValid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var {\n onChange\n } = this.props;\n onChange(value, isValid);\n }\n processFilterChange(filter) {\n var _this$popper$current;\n var {\n options\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n var filteredOptions = filter ? this.getCachedFilteredOptions(options, filter) : options;\n var perfectMatch = filteredOptions.length === 1 && filteredOptions[0].title === filter;\n this.setState({\n filteredOptions,\n keyboardOptionIndex: 0\n });\n if (perfectMatch && menuIsOpen) {\n this.closeMenu();\n return;\n }\n (_this$popper$current = this.popper.current) === null || _this$popper$current === void 0 ? void 0 : _this$popper$current.scheduleUpdate(); // filtered options list can change size, may need to be repositioned\n }\n\n resetValue() {\n this.setState({\n title: ''\n });\n this.fireOnChange('');\n }\n handleResize() {\n this.setInputWidth();\n }\n handleMenuKeyDown(event) {\n var _this$input$current;\n var {\n filteredOptions,\n keyboardOptionIndex\n } = this.state;\n var option = filteredOptions[keyboardOptionIndex];\n switch (event.key) {\n case 'Enter':\n case 'ArrowRight':\n event.stopPropagation();\n event.preventDefault();\n if (option != null) {\n this.setState({\n title: option.title,\n invalid: false\n });\n this.fireOnChange(option.value);\n }\n this.closeMenu();\n (_this$input$current = this.input.current) === null || _this$input$current === void 0 ? void 0 : _this$input$current.focus();\n break;\n case 'ArrowUp':\n event.stopPropagation();\n event.preventDefault();\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP);\n break;\n case 'ArrowDown':\n event.stopPropagation();\n event.preventDefault();\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN);\n break;\n case 'Tab':\n event.stopPropagation();\n event.preventDefault();\n if (event.shiftKey) {\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP);\n break;\n }\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN);\n break;\n case 'Escape':\n event.preventDefault();\n event.stopPropagation();\n this.closeMenu();\n break;\n default:\n break;\n }\n }\n navigateMenu(direction) {\n var {\n filteredOptions,\n keyboardOptionIndex\n } = this.state;\n var newKeyboardOptionIndex = keyboardOptionIndex;\n if (direction === AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP) {\n if (keyboardOptionIndex > 0) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex - 1) % filteredOptions.length;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n } else if (keyboardOptionIndex === 0) {\n newKeyboardOptionIndex = filteredOptions.length - 1;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n } else if (direction === AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN) {\n if (keyboardOptionIndex < filteredOptions.length) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex + 1) % filteredOptions.length;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n }\n handleInputKeyDown(event) {\n var {\n onEnter\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.handleMenuKeyDown(event);\n } else if (event.key === 'Enter') {\n onEnter();\n } else if (event.key === 'Escape') {\n this.resetValue();\n event.preventDefault();\n event.stopPropagation();\n } else if (!(event.key === 'ArrowRight' || event.key === 'ArrowLeft' || event.key === 'Tab' || event.key === 'Shift')) {\n this.openMenu();\n }\n }\n handleInputChange(event) {\n this.setState({\n title: event.target.value\n });\n this.updateInputValue(event.target.value);\n }\n handleOptionClick(option) {\n var _this$input$current2;\n this.setState({\n title: option.title,\n invalid: false\n });\n this.fireOnChange(option.value);\n this.closeMenu();\n (_this$input$current2 = this.input.current) === null || _this$input$current2 === void 0 ? void 0 : _this$input$current2.focus();\n }\n handelInputFocus() {\n var {\n menuIsOpen\n } = this.state;\n if (!menuIsOpen) {\n this.openMenu();\n }\n }\n handleInputClick() {\n var {\n menuIsOpen\n } = this.state;\n if (!menuIsOpen) {\n this.openMenu();\n }\n }\n handleInputBlur(event) {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen && event.relatedTarget instanceof Element && this.popper.current !== null && this.popper.current.element.contains(event.relatedTarget)) {\n return;\n }\n this.closeMenu(false);\n }\n handleMenuBlur(event) {\n // if blur event is caused by focusing on the input or focus on options don't close menu\n if (event.relatedTarget === this.input.current || event.relatedTarget instanceof Element && this.popper.current !== null && this.popper.current.element.contains(event.relatedTarget)) {\n return;\n }\n this.closeMenu(false);\n }\n handleMenuOpened() {\n var _this$input$current3;\n (_this$input$current3 = this.input.current) === null || _this$input$current3 === void 0 ? void 0 : _this$input$current3.focus();\n }\n handleMenuExited() {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.setState({\n menuIsOpen: false,\n keyboardOptionIndex: 0\n });\n }\n }\n openMenu() {\n var {\n title\n } = this.state;\n this.processFilterChange(title);\n this.setInputWidth();\n this.setState({\n menuIsOpen: true\n });\n\n // https://github.com/reactjs/react-transition-group/issues/382\n window.requestAnimationFrame(() => {\n var _this$popper$current2;\n (_this$popper$current2 = this.popper.current) === null || _this$popper$current2 === void 0 ? void 0 : _this$popper$current2.show();\n });\n }\n closeMenu() {\n var _this$popper$current3;\n var focusInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.setState({\n menuIsOpen: false,\n keyboardOptionIndex: 0\n });\n if (focusInput) {\n var _this$input$current4;\n (_this$input$current4 = this.input.current) === null || _this$input$current4 === void 0 ? void 0 : _this$input$current4.focus();\n }\n (_this$popper$current3 = this.popper.current) === null || _this$popper$current3 === void 0 ? void 0 : _this$popper$current3.hide();\n }\n scrollOptionIntoView(index) {\n if (this.menuContainer.current) {\n var _this$menuContainer$c;\n (_this$menuContainer$c = this.menuContainer.current.children.item(index)) === null || _this$menuContainer$c === void 0 ? void 0 : _this$menuContainer$c.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest'\n });\n }\n }\n renderMenuElement() {\n var {\n inputWidth\n } = this.state;\n return /*#__PURE__*/_jsx(\"div\", {\n className: classNames('aci-options'),\n ref: this.menuContainer,\n role: \"presentation\",\n onKeyDown: this.handleMenuKeyDown,\n style: {\n width: inputWidth\n },\n onBlur: this.handleMenuBlur,\n children: this.renderOptions()\n });\n }\n renderOptions() {\n var {\n noMatchText\n } = this.props;\n var {\n title,\n filteredOptions\n } = this.state;\n if (title && filteredOptions.length === 0) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"no-match\",\n children: noMatchText\n });\n }\n return filteredOptions.map((option, index) => this.renderOption(option, index));\n }\n renderOption(option, index) {\n var {\n keyboardOptionIndex\n } = this.state;\n var key = \"option-\".concat(index, \"-\").concat(option.value);\n return /*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n className: classNames('aci-option-btn', {\n 'keyboard-active': keyboardOptionIndex === index\n }),\n onClick: () => this.handleOptionClick(option),\n onFocus: () => this.setState({\n keyboardOptionIndex: index\n }),\n children: option.title\n }, key);\n }\n render() {\n var {\n options,\n inputPlaceholder,\n disabled,\n className,\n defaultTitle,\n spellCheck,\n 'data-testid': dataTestId\n } = this.props;\n var {\n title,\n menuIsOpen,\n popperOptions,\n invalid\n } = this.state;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"aci-container\",\n ref: this.cbContainer,\n children: [/*#__PURE__*/_jsx(\"input\", {\n value: title || defaultTitle,\n className: classNames('form-control', className, 'aci-input', {\n 'is-invalid': invalid && !menuIsOpen\n }),\n ref: this.input,\n onChange: this.handleInputChange,\n placeholder: inputPlaceholder || options[0].title,\n disabled: disabled,\n onFocus: this.handelInputFocus,\n onClick: this.handleInputClick,\n onBlur: this.handleInputBlur,\n onKeyDown: this.handleInputKeyDown,\n spellCheck: spellCheck,\n \"data-testid\": dataTestId\n }), /*#__PURE__*/_jsx(Popper, {\n ref: this.popper,\n options: popperOptions,\n className: classNames('aci-options-popper interactive'),\n onEntered: this.handleMenuOpened,\n onExited: this.handleMenuExited,\n children: this.renderMenuElement()\n })]\n });\n }\n}\n_defineProperty(AutoCompleteInput, \"propTypes\", {\n options: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired\n })).isRequired,\n popperOptions: PropTypes.shape({}),\n onChange: PropTypes.func,\n inputPlaceholder: PropTypes.string,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n defaultTitle: PropTypes.string,\n spellCheck: PropTypes.bool,\n onEnter: PropTypes.func,\n noMatchText: PropTypes.string,\n 'data-testid': PropTypes.string\n});\n_defineProperty(AutoCompleteInput, \"defaultProps\", {\n onChange() {\n // no-op\n },\n inputPlaceholder: '',\n disabled: false,\n className: '',\n defaultTitle: '',\n popperOptions: null,\n spellCheck: true,\n onEnter() {\n // no-op\n },\n noMatchText: 'No matching items found',\n 'data-testid': undefined\n});\n_defineProperty(AutoCompleteInput, \"MENU_NAVIGATION_DIRECTION\", MENU_NAVIGATION_DIRECTION);\nexport default AutoCompleteInput;\n//# sourceMappingURL=AutoCompleteInput.js.map","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport \"./AutoResizeTextarea.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Makes a textarea that auto resizes based on contents, its height grows with new lines.\n * If a delimeter is set, such as \" -\" or \" \", as used by jvm args or env vars\n * then the field will also \"explode\" the value by the delimiter over new lines\n * on focus, and implode on blur. By default, it doesn't word wrap.\n */\nfunction AutoResizeTextarea(_ref) {\n var {\n className = '',\n value: propsValue,\n onChange,\n spellCheck = false,\n placeholder = '',\n disabled = false,\n delimiter = '',\n id = '',\n 'data-testid': dataTestId\n } = _ref;\n var [value, setValue] = useState(propsValue);\n var [isPastedChange, setIsPastedChange] = useState(false);\n var element = useRef(null);\n useEffect(function syncStateWithProp() {\n // keep state value in sync with prop changes\n setValue(propsValue);\n }, [propsValue]);\n function explode(input) {\n // split by delimiter, commonly \" \" or \" -\"\n // strip empty strings (if delimiter is space, and there are multiple spaces in a row)\n // and join with new line and a trimmed delimeter (get rid of leading spaces)\n return input.trim().split(delimiter).filter(string => string) // remove empty strings\n .join(\"\\n\".concat(delimiter.trim()));\n }\n function implode(input) {\n return input.split('\\n').map(string => string.trim()).join(' ');\n }\n function reCalculateLayout() {\n if (!element.current) {\n return;\n }\n element.current.style.height = '0'; // shrink component to get scrollHeight\n var resizedHeight = element.current.scrollHeight + (element.current.offsetHeight - element.current.clientHeight);\n // accounts for border, padding is captured by scroll height\n if (resizedHeight > 0) element.current.style.height = \"\".concat(resizedHeight, \"px\");\n }\n function handleChange(event) {\n var newValue = event.target.value;\n if (isPastedChange) {\n if (delimiter) newValue = explode(newValue);\n setIsPastedChange(false);\n }\n setValue(newValue);\n onChange(newValue);\n }\n function handleFocus() {\n if (!element.current) {\n return;\n }\n if (delimiter) {\n setValue(explode(value));\n reCalculateLayout();\n }\n element.current.scrollLeft = 0;\n // scroll left as it can be disorienting if you click on a long line\n }\n\n // make it explode when dragging the resize handle\n // by making it trigger focus (which normally doesn't\n // trigger when just resizing).\n function handleMouseDown() {\n if (!element.current) return;\n if (document.activeElement === element.current) return;\n element.current.focus();\n }\n function handleBlur() {\n if (delimiter) {\n setValue(implode(value));\n onChange(implode(value));\n }\n }\n function handlePaste() {\n setIsPastedChange(true);\n }\n useEffect(function reCalculate() {\n reCalculateLayout();\n }, [value]);\n return /*#__PURE__*/_jsx(\"textarea\", {\n ref: element,\n id: id,\n className: classNames(className, 'auto-resize-textarea form-control'),\n placeholder: placeholder,\n value: value,\n rows: 1,\n onChange: handleChange,\n onFocus: handleFocus,\n onMouseDown: handleMouseDown,\n onBlur: handleBlur,\n onPaste: handlePaste,\n spellCheck: spellCheck,\n disabled: disabled,\n \"data-testid\": dataTestId\n });\n}\nAutoResizeTextarea.propTypes = {\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n className: PropTypes.string,\n placeholder: PropTypes.string,\n spellCheck: PropTypes.bool,\n disabled: PropTypes.bool,\n delimiter: PropTypes.string,\n id: PropTypes.string,\n 'data-testid': PropTypes.string\n};\nAutoResizeTextarea.defaultProps = {\n className: '',\n id: '',\n placeholder: '',\n disabled: false,\n spellCheck: false,\n delimiter: '',\n 'data-testid': undefined\n};\nexport default AutoResizeTextarea;\n//# sourceMappingURL=AutoResizeTextarea.js.map","import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport Log from '@deephaven/log';\nimport { TimeUtils } from '@deephaven/utils';\nimport MaskedInput from \"./MaskedInput.js\";\nimport { DEFAULT_GET_PREFERRED_REPLACEMENT_STRING } from \"./MaskedInputUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar log = Log.module('TimeInput');\nvar TIME_PATTERN = '([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]';\nvar EXAMPLES = ['00:00:00', '12:34:56', '23:59:59'];\n// Forward ref causes a false positive for display-name in eslint:\n// https://github.com/yannickcr/eslint-plugin-react/issues/2269\n// eslint-disable-next-line react/display-name\nvar TimeInput = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n allowValueWrapping = true,\n className = '',\n onChange = () => false,\n value: propsValue = 0,\n onFocus = () => false,\n onBlur = () => false,\n onSelect = () => false,\n 'data-testid': dataTestId\n } = props;\n var [value, setValue] = useState(TimeUtils.formatTime(propsValue));\n var [selection, _setSelection] = useState();\n var inputRef = useRef(null);\n useImperativeHandle(ref, () => ({\n focus: () => {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n },\n setSelection: newSelection => {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();\n _setSelection(newSelection);\n }\n }), []);\n useEffect(function setFormattedTime() {\n setValue(TimeUtils.formatTime(propsValue));\n }, [propsValue]);\n function getNextSegmentValue(range, delta, segmentValue) {\n // Delta is backward because negative Y is up\n var maxValue = range.selectionStart === 0 ? 24 : 60;\n var newSegmentValue = parseInt(segmentValue, 10) - delta;\n if (Number.isNaN(newSegmentValue)) {\n newSegmentValue = 0;\n } else if (allowValueWrapping) {\n // Add max value and re-mod so we don't get negative values after mod\n newSegmentValue = (newSegmentValue % maxValue + maxValue) % maxValue;\n } else {\n newSegmentValue = Math.min(Math.max(0, newSegmentValue), maxValue - 1);\n }\n return \"\".concat(newSegmentValue).padStart(2, '0');\n }\n function getPreferredReplacementString(replaceValue, replaceIndex, newChar, selectionStart, selectionEnd) {\n if (selectionStart === 0 && selectionEnd === 2 && replaceIndex === 1 && parseInt(newChar, 10) > 1) {\n // DH-10082 Special case for when typing `3` when it's already 12\n return \"0\".concat(newChar).concat(replaceValue.substring(2));\n }\n return DEFAULT_GET_PREFERRED_REPLACEMENT_STRING(replaceValue, replaceIndex, newChar);\n }\n function handleChange(newValue) {\n log.debug('handleChange', newValue);\n setValue(newValue);\n\n // Only send a change if the value is actually valid\n if (TimeUtils.isTimeString(newValue)) {\n onChange(TimeUtils.parseTime(newValue));\n }\n }\n var handleSelect = useCallback(newSelection => {\n _setSelection(newSelection);\n onSelect(newSelection);\n }, [onSelect]);\n return /*#__PURE__*/_jsx(MaskedInput, {\n ref: inputRef,\n className: className,\n example: EXAMPLES,\n getNextSegmentValue: getNextSegmentValue,\n getPreferredReplacementString: getPreferredReplacementString,\n onChange: handleChange,\n onSelect: handleSelect,\n pattern: TIME_PATTERN,\n selection: selection,\n value: value,\n onFocus: onFocus,\n onBlur: onBlur,\n \"data-testid\": dataTestId\n });\n});\nTimeInput.defaultProps = {\n allowValueWrapping: true,\n className: '',\n onChange: () => false,\n onSelect: () => false,\n value: 0,\n onFocus: () => false,\n onBlur: () => false,\n 'data-testid': undefined\n};\nexport default TimeInput;\n//# sourceMappingURL=TimeInput.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsCheck } from '@deephaven/icons';\nimport { TimeUtils } from '@deephaven/utils';\nimport classNames from 'classnames';\nimport TimeInput from \"./TimeInput.js\";\nimport DropdownMenu from \"./menu-actions/DropdownMenu.js\";\nimport \"./CustomTimeSelect.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar CUSTOM_OPTION = -1;\nvar MENU_NAVIGATION_DIRECTION;\n(function (MENU_NAVIGATION_DIRECTION) {\n MENU_NAVIGATION_DIRECTION[\"UP\"] = \"UP\";\n MENU_NAVIGATION_DIRECTION[\"DOWN\"] = \"DOWN\";\n})(MENU_NAVIGATION_DIRECTION || (MENU_NAVIGATION_DIRECTION = {}));\nclass CustomTimeSelect extends Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"csContainer\", void 0);\n _defineProperty(this, \"menuContainer\", void 0);\n _defineProperty(this, \"button\", void 0);\n _defineProperty(this, \"input\", void 0);\n var {\n value,\n valueToTime\n } = props;\n this.toggleMenu = this.toggleMenu.bind(this);\n this.handleMenuKeyDown = this.handleMenuKeyDown.bind(this);\n this.closeMenu = this.closeMenu.bind(this);\n this.handleOptionClick = this.handleOptionClick.bind(this);\n this.handleOptionFocus = this.handleOptionFocus.bind(this);\n this.handleMenuOpened = this.handleMenuOpened.bind(this);\n this.handleMenuExited = this.handleMenuExited.bind(this);\n this.handleCustomInput = this.handleCustomInput.bind(this);\n this.csContainer = /*#__PURE__*/React.createRef();\n this.menuContainer = /*#__PURE__*/React.createRef();\n this.button = /*#__PURE__*/React.createRef();\n this.input = /*#__PURE__*/React.createRef();\n this.state = {\n keyboardOptionIndex: 0,\n menuIsOpen: false,\n inputWidth: 100,\n customTime: valueToTime(value),\n inputFocused: false\n };\n }\n getSelectedText() {\n var {\n options,\n value,\n placeholder\n } = this.props;\n var {\n customTime\n } = this.state;\n if (value === null) {\n return placeholder;\n }\n for (var i = 0; i < options.length; i += 1) {\n var option = options[i];\n if (option.value === value) {\n return option.title;\n }\n }\n return TimeUtils.formatTime(customTime);\n }\n setInputWidth() {\n if (this.csContainer.current) {\n this.setState({\n inputWidth: this.csContainer.current.getBoundingClientRect().width\n });\n }\n }\n focus() {\n var _this$button$current;\n (_this$button$current = this.button.current) === null || _this$button$current === void 0 ? void 0 : _this$button$current.focus();\n }\n updateInputValue(value) {\n var {\n onChange\n } = this.props;\n onChange(value);\n }\n handleResize() {\n this.setInputWidth();\n }\n handleMenuKeyDown(event) {\n var _this$button$current2;\n var {\n keyboardOptionIndex,\n inputFocused\n } = this.state;\n var {\n options\n } = this.props;\n switch (event.key) {\n case 'Enter':\n case ' ':\n // Space Bar\n if (inputFocused) {\n this.updateFromCustom();\n } else {\n this.updateInputValue(options[keyboardOptionIndex].value);\n }\n this.closeMenu();\n (_this$button$current2 = this.button.current) === null || _this$button$current2 === void 0 ? void 0 : _this$button$current2.focus();\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Tab':\n if (event.shiftKey) {\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.UP);\n } else {\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.DOWN);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.UP);\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowDown':\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.DOWN);\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Escape':\n this.closeMenu();\n break;\n default:\n break;\n }\n }\n handleMenuNavigation(direction) {\n var {\n keyboardOptionIndex,\n inputFocused\n } = this.state;\n var {\n options\n } = this.props;\n var menuOptionsLength = options.length;\n var newKeyboardOptionIndex = keyboardOptionIndex;\n switch (direction) {\n case CustomTimeSelect.MENU_NAVIGATION_DIRECTION.UP:\n if (!inputFocused && keyboardOptionIndex === 0) {\n this.focusInput();\n break;\n } else if (inputFocused) {\n this.focusOption(keyboardOptionIndex);\n }\n if (keyboardOptionIndex > 0 && !inputFocused) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex - 1) % menuOptionsLength;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n } else if (keyboardOptionIndex === 0) {\n newKeyboardOptionIndex = menuOptionsLength - 1;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n break;\n case CustomTimeSelect.MENU_NAVIGATION_DIRECTION.DOWN:\n if (!inputFocused && keyboardOptionIndex === menuOptionsLength - 1) {\n this.focusInput();\n break;\n } else if (inputFocused) {\n this.focusOption(keyboardOptionIndex);\n }\n if (keyboardOptionIndex < menuOptionsLength && !(inputFocused && keyboardOptionIndex === 0)) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex + 1) % menuOptionsLength;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n break;\n default:\n break;\n }\n }\n handleOptionClick(event) {\n var optionIndex = Number(event.currentTarget.value);\n var {\n options,\n timeToValue\n } = this.props;\n var {\n customTime\n } = this.state;\n if (optionIndex === CUSTOM_OPTION) {\n var update = timeToValue(customTime);\n this.updateAndClose(update);\n } else {\n this.updateAndClose(options[optionIndex].value);\n }\n }\n updateAndClose(update) {\n var _this$button$current3;\n this.updateInputValue(update);\n this.closeMenu();\n (_this$button$current3 = this.button.current) === null || _this$button$current3 === void 0 ? void 0 : _this$button$current3.focus();\n }\n handleOptionFocus(event) {\n this.setState({\n keyboardOptionIndex: Number(event.target.value)\n });\n }\n handleMenuOpened() {\n var _this$menuContainer$c;\n var {\n options,\n value\n } = this.props;\n var {\n keyboardOptionIndex\n } = this.state;\n this.scrollOptionIntoView(keyboardOptionIndex);\n var activeOption = (_this$menuContainer$c = this.menuContainer.current) === null || _this$menuContainer$c === void 0 ? void 0 : _this$menuContainer$c.querySelector('.cs-option-btn.keyboard-active');\n if (activeOption instanceof HTMLElement) {\n activeOption.focus();\n }\n if (value === null) {\n return;\n }\n var valueIndex = options.map(option => option.value).indexOf(value);\n if (valueIndex < 0) {\n // The custom option should be selected\n this.focusInput();\n }\n }\n focusInput() {\n var _this$input$current;\n (_this$input$current = this.input.current) === null || _this$input$current === void 0 ? void 0 : _this$input$current.focus();\n }\n focusOption(index) {\n var _this$menuContainer$c2;\n var options = (_this$menuContainer$c2 = this.menuContainer.current) === null || _this$menuContainer$c2 === void 0 ? void 0 : _this$menuContainer$c2.querySelector('.cs-options');\n if (options && options.children != null) {\n var option = options.children.item(index);\n if (option instanceof HTMLElement) {\n option.focus();\n }\n }\n }\n handleMenuExited() {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.setState({\n menuIsOpen: false,\n keyboardOptionIndex: 0\n });\n }\n }\n handleCustomInput(value) {\n var {\n timeToValue\n } = this.props;\n var update = timeToValue(value);\n this.updateInputValue(update);\n this.setState({\n customTime: value\n });\n }\n updateFromCustom() {\n var {\n timeToValue\n } = this.props;\n var {\n customTime\n } = this.state;\n var update = timeToValue(customTime);\n this.updateInputValue(update);\n }\n toggleMenu(event) {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.closeMenu();\n } else {\n this.openMenu();\n }\n event.stopPropagation();\n }\n openMenu() {\n this.updateKeyboardIndex();\n this.setInputWidth();\n this.setState({\n menuIsOpen: true\n });\n }\n closeMenu() {\n var focusButton = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.setState({\n menuIsOpen: false\n });\n if (focusButton) {\n var _this$button$current4;\n (_this$button$current4 = this.button.current) === null || _this$button$current4 === void 0 ? void 0 : _this$button$current4.focus();\n }\n }\n updateKeyboardIndex() {\n var {\n options,\n value\n } = this.props;\n if (value === null) {\n return;\n }\n var valueIndex = options.map(option => option.value).indexOf(value);\n if (valueIndex > 0) {\n this.setState({\n keyboardOptionIndex: valueIndex\n });\n }\n }\n scrollOptionIntoView(index) {\n var _this$menuContainer$c3;\n var options = (_this$menuContainer$c3 = this.menuContainer.current) === null || _this$menuContainer$c3 === void 0 ? void 0 : _this$menuContainer$c3.querySelector('.cs-options');\n if (options && options.children != null) {\n var activeOption = options.children.item(index);\n if (activeOption instanceof HTMLElement && activeOption.offsetTop > CustomTimeSelect.DROP_DOWN_MENU_HEIGHT) {\n options.scrollTop = activeOption.offsetTop - CustomTimeSelect.DROP_DOWN_MENU_HEIGHT;\n } else if (activeOption instanceof HTMLElement && activeOption.offsetTop < 0 || index === 0) {\n options.scrollTop = 0;\n }\n }\n }\n renderMenuElement() {\n var {\n inputWidth\n } = this.state;\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"cs-menu-container\",\n ref: this.menuContainer,\n role: \"presentation\",\n onKeyDown: this.handleMenuKeyDown,\n onClick: event => {\n event.stopPropagation();\n },\n style: {\n width: inputWidth\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"cs-options-container\",\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"cs-options\",\n children: this.renderOptions()\n })\n })\n });\n }\n renderOptions() {\n var {\n options,\n value,\n icon,\n customText\n } = this.props;\n var {\n keyboardOptionIndex,\n customTime,\n inputFocused\n } = this.state;\n var matchFound = false;\n var optionArray = [];\n for (var index = 0; index < options.length; index += 1) {\n var option = options[index];\n var key = \"option-\".concat(index, \"-\").concat(option.value);\n matchFound = matchFound || option.value === value;\n optionArray.push( /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n value: index,\n className: classNames('cs-option-btn', {\n 'keyboard-active': keyboardOptionIndex === index && !inputFocused\n }),\n onClick: this.handleOptionClick,\n onFocus: this.handleOptionFocus,\n children: [option.value === value && /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon,\n className: \"mr-2\"\n }), option.value !== value && /*#__PURE__*/_jsx(\"span\", {\n className: \"mr-4\"\n }), option.title]\n }, key));\n }\n optionArray.push( /*#__PURE__*/_jsx(\"hr\", {\n className: \"cs-divider\"\n }, \"option-divider\"));\n optionArray.push( /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n value: CUSTOM_OPTION,\n className: classNames('cs-option-btn', {\n 'keyboard-active': inputFocused\n }),\n onClick: this.handleOptionClick,\n onFocus: this.handleOptionFocus,\n children: [!matchFound && value !== null ? /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon,\n className: \"mr-2\"\n }) : /*#__PURE__*/_jsx(\"span\", {\n className: \"mr-4\"\n }), customText]\n }, \"option-custom-label\"));\n optionArray.push( /*#__PURE__*/_jsxs(\"div\", {\n className: \"cs-custom-container\",\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: \"mr-2\"\n }), /*#__PURE__*/_jsx(TimeInput, {\n ref: this.input,\n onChange: this.handleCustomInput,\n value: customTime,\n onFocus: () => this.setState({\n inputFocused: true\n }),\n onBlur: () => this.setState({\n inputFocused: false\n })\n }, \"option-input\"), /*#__PURE__*/_jsx(\"span\", {\n className: \"ml-2\"\n })]\n }, \"cs-custom-container\"));\n optionArray.push( /*#__PURE__*/_jsx(\"hr\", {\n className: \"mb-2\"\n }, \"option-end\"));\n return optionArray;\n }\n render() {\n var {\n disabled,\n invalid,\n value,\n 'data-testid': dataTestId\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n var {\n popperOptions\n } = this.props;\n popperOptions = _objectSpread({\n placement: 'bottom-end',\n modifiers: {\n preventOverflow: {\n enabled: false\n }\n }\n }, popperOptions);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"input-group cs-container context-menu\",\n ref: this.csContainer,\n \"data-testid\": dataTestId,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames('input-group-append cs-dropdown', {\n 'cs-dropdown-invalid': invalid\n }),\n children: /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n className: classNames('btn cs-btn form-control', {\n 'cs-btn-invalid': invalid\n }),\n ref: this.button,\n onClick: this.toggleMenu,\n disabled: disabled,\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: classNames({\n 'text-muted': value === null\n }),\n children: this.getSelectedText()\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"cs-caret\"\n }), /*#__PURE__*/_jsx(DropdownMenu, {\n isShown: menuIsOpen,\n actions: {\n menuElement: this.renderMenuElement()\n },\n popperOptions: popperOptions,\n popperClassName: \"CustomTimeSelect\",\n onMenuOpened: this.handleMenuOpened,\n onMenuClosed: this.handleMenuExited,\n menuStyle: {\n maxWidth: '100rem'\n }\n })]\n })\n })\n });\n }\n}\n_defineProperty(CustomTimeSelect, \"MENU_NAVIGATION_DIRECTION\", MENU_NAVIGATION_DIRECTION);\n_defineProperty(CustomTimeSelect, \"DROP_DOWN_MENU_HEIGHT\", 125);\n_defineProperty(CustomTimeSelect, \"defaultProps\", {\n onChange() {\n // no-op\n },\n value: null,\n disabled: false,\n popperOptions: {},\n icon: vsCheck,\n customText: 'Custom',\n placeholder: 'Select a time',\n valueToTime: value => value === null ? 0 : Math.round(value / 1000),\n timeToValue: time => time * 1000,\n invalid: false,\n 'data-testid': undefined\n});\nexport default CustomTimeSelect;\n//# sourceMappingURL=CustomTimeSelect.js.map","import React, { useCallback, useState } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport MaskedInput from \"./MaskedInput.js\";\nimport { getNextSegmentValue } from \"./DateInputUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar log = Log.module('DateInput');\nvar DATE_PATTERN = '[12][0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])';\nvar EXAMPLES = ['2000-01-01', '2022-12-31'];\nvar DATE_FORMAT = 'YYYY-MM-DD';\nvar DateInput = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n className = '',\n onChange = () => undefined,\n defaultValue = '',\n onFocus = () => undefined,\n onBlur = () => undefined,\n 'data-testid': dataTestId\n } = props;\n var [value, setValue] = useState(defaultValue);\n var [selection, setSelection] = useState();\n var handleChange = useCallback(newValue => {\n log.debug('handleChange', newValue);\n setValue(newValue);\n onChange(newValue);\n }, [onChange]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"d-flex flex-row align-items-center\",\n children: /*#__PURE__*/_jsx(MaskedInput, {\n ref: ref,\n className: classNames(className),\n example: EXAMPLES,\n getNextSegmentValue: getNextSegmentValue,\n onChange: handleChange,\n onSelect: setSelection,\n pattern: DATE_PATTERN,\n placeholder: DATE_FORMAT,\n selection: selection,\n value: value,\n onFocus: onFocus,\n onBlur: onBlur,\n \"data-testid\": dataTestId\n })\n });\n});\nDateInput.displayName = 'DateInput';\nexport default DateInput;\n//# sourceMappingURL=DateInput.js.map","function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport classNames from 'classnames';\nimport Checkbox from \"./Checkbox.js\";\nimport Popper from \"./popper/Popper.js\";\nimport \"./HierarchicalCheckboxMenu.css\";\nimport Button from \"./Button.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * A pull down menu that displays a hierarchy of checkboxes.\n *\n * Currently supports only two levels of check boxes. The input should be a Map\n * where the keys are the parent names. The values can a boolean if the parent\n * has no children or another Map where keys are child names and values are booleans.\n *\n * Here is an example:\n * const INITIAL_TYPE_MAP = new Map([\n * ['Queries', new Map([['Live', true], ['Batch', true]])],\n * [\n * 'DBA Queries',\n * new Map([\n * ['Data Merge', true],\n * ['Data Validation', true],\n * ['Imports', true],\n * ['Data Services', true],\n * ]),\n * ],\n * ['Helper Queries', true],\n * ]);\n *\n * When a checkbox is changed, this component will make a deep copy of the Map\n * with the appropriate booleans changed. It will then call onUpdateValueMap\n * with the new Map.\n */\nclass HierarchicalCheckboxMenu extends Component {\n static isParentSelected(parent, valueMap) {\n var children = valueMap.get(parent);\n if (children === undefined) {\n return false;\n }\n if (typeof children === 'boolean') {\n // This parent has no children\n return children;\n }\n var includesTrue = Array.from(children.values()).includes(true);\n var includesFalse = Array.from(children.values()).includes(false);\n if (includesTrue && includesFalse) {\n // Indeterminate\n return null;\n }\n return includesTrue;\n }\n constructor(props) {\n super(props);\n this.toggleMenu = this.toggleMenu.bind(this);\n this.toggleValueFor = this.toggleValueFor.bind(this);\n this.selectAll = this.selectAll.bind(this);\n this.clear = this.clear.bind(this);\n this.state = {\n menuIsOpen: false\n };\n }\n toggleMenu(event) {\n event.stopPropagation();\n event.preventDefault();\n this.setState(state => {\n var {\n menuIsOpen\n } = state;\n return {\n menuIsOpen: !menuIsOpen\n };\n });\n }\n toggleValueFor(parent, child) {\n var {\n valueMap,\n onUpdateValueMap\n } = this.props;\n\n // Make a deep copy of the Map and toggle the boolean for parent / child\n var map = new Map(valueMap);\n var children = map.get(parent);\n if (children instanceof Map) {\n var newChildren = new Map(children);\n if (child != null) {\n newChildren.set(child, children.get(child) === undefined);\n } else {\n var parentSelected = HierarchicalCheckboxMenu.isParentSelected(parent, map);\n var newChildValue = parentSelected == null || !parentSelected;\n children.forEach((_, key) => newChildren.set(key, newChildValue));\n }\n map.set(parent, newChildren);\n } else {\n map.set(parent, children == null || !children);\n }\n\n // The parent was clicked so all children must be toggled\n var currentChildren = map.get(parent);\n if (child === undefined && currentChildren !== undefined && typeof currentChildren !== 'boolean') {\n var _parentSelected = HierarchicalCheckboxMenu.isParentSelected(parent, valueMap);\n if (_parentSelected != null && _parentSelected) {\n currentChildren.forEach((_, key) => currentChildren.set(key, false));\n } else {\n // for parent selection of false or null (indeterminate), select everything\n currentChildren.forEach((_, key) => currentChildren.set(key, true));\n }\n }\n onUpdateValueMap(map);\n }\n setAllValues(value) {\n var {\n valueMap,\n onUpdateValueMap\n } = this.props;\n\n // Make a deep copy of the Map and set everything\n var copy = new Map();\n valueMap.forEach((child, parent) => {\n if (typeof child === 'boolean') {\n copy.set(parent, value);\n } else {\n var children = new Map();\n child.forEach((_, key) => children.set(key, value));\n copy.set(parent, children);\n }\n });\n onUpdateValueMap(copy);\n }\n selectAll() {\n this.setAllValues(true);\n }\n clear() {\n this.setAllValues(false);\n }\n renderMenuElement() {\n var {\n valueMap,\n 'data-testid': dataTestId\n } = this.props;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"hcm-menu-container\",\n children: [Array.from(valueMap.entries()).map(_ref => {\n var [parent, children] = _ref;\n return /*#__PURE__*/_jsxs(\"div\", {\n children: [/*#__PURE__*/_jsx(Checkbox, {\n className: \"hcm-parent\",\n checked: HierarchicalCheckboxMenu.isParentSelected(parent, valueMap),\n onChange: () => this.toggleValueFor(parent),\n children: parent\n }), children !== undefined && typeof children !== 'boolean' && Array.from(children.entries()).map(_ref2 => {\n var [child, value] = _ref2;\n return /*#__PURE__*/_jsx(Checkbox, {\n className: \"hcm-child\",\n checked: value,\n onChange: () => this.toggleValueFor(parent, child),\n children: child\n }, child);\n })]\n }, parent);\n }), /*#__PURE__*/_jsx(Button, {\n kind: \"ghost\",\n onClick: this.selectAll,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-btn-select-all\") : undefined,\n children: \"Select All\"\n }), /*#__PURE__*/_jsx(Button, {\n kind: \"ghost\",\n onClick: this.clear,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-btn-clear\") : undefined,\n children: \"Clear\"\n })]\n });\n }\n render() {\n var {\n menuText,\n className,\n icon,\n id,\n 'data-testid': dataTestId\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n return /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n className: classNames('btn hcm-btn', className),\n onClick: this.toggleMenu,\n id: id,\n \"data-testid\": dataTestId,\n children: [/*#__PURE__*/_jsxs(\"span\", {\n children: [icon && /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon,\n className: \"hcm-icon mr-1\"\n }), menuText]\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"cs-caret\"\n }), /*#__PURE__*/_jsx(Popper, {\n options: {\n placement: 'bottom'\n },\n isShown: menuIsOpen,\n onExited: () => {\n this.setState({\n menuIsOpen: false\n });\n },\n closeOnBlur: true,\n interactive: true,\n children: this.renderMenuElement()\n })]\n });\n }\n}\n_defineProperty(HierarchicalCheckboxMenu, \"defaultProps\", {\n className: '',\n icon: null,\n id: '',\n 'data-testid': undefined\n});\nexport default HierarchicalCheckboxMenu;\n//# sourceMappingURL=HierarchicalCheckboxMenu.js.map","/* eslint-disable react-hooks/exhaustive-deps */\n/* eslint-disable react/display-name */\n\nimport React, { useEffect, useState, useRef } from 'react';\nimport debounce from 'lodash.debounce';\nimport { assertNotNull } from '@deephaven/utils';\nimport \"./RandomAreaPlotAnimation.css\";\nimport { getRandomAreaPlotAnimationThemeColors, useTheme } from \"./theme/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar VOLATILITY = 0.025; // how spikey the data gets\nvar LOW = 0.9;\nvar HIGH = 0.1;\nvar START_Y = 0.618;\nvar GRID_SIZE = 80;\nvar PATTERN = {\n SIZE: 8,\n DOT_SIZE: 2\n};\nvar PX_PER_SECOND = 18;\nvar RESIZE_DEBOUNCE = 250;\nvar INTERACTION_TIMEOUT = 60 * 1000;\n\n// Draw a background canvas, paint it with a fun chart looking animation\nvar RandomAreaPlotAnimation = /*#__PURE__*/React.memo(() => {\n var {\n activeThemes\n } = useTheme();\n var [themeColors, setThemeColors] = useState(null);\n useEffect(() => {\n setThemeColors(getRandomAreaPlotAnimationThemeColors());\n }, [activeThemes]);\n var canvas = useRef(null);\n var container = useRef(null);\n var [shade, setShade] = useState(false);\n var scale = window.devicePixelRatio;\n var ctx;\n var pattern;\n var width;\n var height;\n var rAF;\n var lastTimestamp = null;\n var data = [];\n function setCanvasSize() {\n var _ctx;\n // Set canvas size to fill screen\n if (container.current != null) {\n width = container.current.offsetWidth;\n height = container.current.offsetHeight;\n }\n if (canvas.current != null) {\n canvas.current.style.width = \"\".concat(width, \"px\");\n canvas.current.style.height = \"\".concat(height, \"px\");\n canvas.current.width = width * scale;\n canvas.current.height = height * scale;\n }\n (_ctx = ctx) === null || _ctx === void 0 ? void 0 : _ctx.scale(scale, scale);\n }\n\n // Returns the background fill create offscreen as pattern\n function createPatternFill() {\n if (themeColors == null) {\n return null;\n }\n var {\n foregroundFill,\n foregroundStroke\n } = themeColors;\n\n // create the off-screen canvas\n var canvasPattern = document.createElement('canvas');\n canvasPattern.width = PATTERN.SIZE;\n canvasPattern.height = PATTERN.SIZE;\n var contextPattern = canvasPattern.getContext('2d');\n\n // draw pattern to off-screen context\n if (contextPattern != null) {\n contextPattern.fillStyle = foregroundStroke;\n contextPattern.fillRect(0, 0, PATTERN.DOT_SIZE, PATTERN.DOT_SIZE);\n\n // add an overlay fill\n contextPattern.fillStyle = foregroundFill;\n contextPattern.fillRect(0, 0, PATTERN.SIZE, PATTERN.SIZE);\n }\n return contextPattern === null || contextPattern === void 0 ? void 0 : contextPattern.createPattern(canvasPattern, 'repeat');\n }\n\n /**\n * Generates a step in a random walk between LOW - HIGH given a previous value\n * data is always in 0-1 data space so its scaleable\n * data space is converted to screen space inside draw functions\n * @param prev previous random walk step\n * @return new random walk step\n */\n function randomWalk(prev) {\n var rand = Math.random() - 0.5; // give it directionality\n var change = VOLATILITY * rand; // scale by volatity constant\n\n // ensure directional bounce off approaching edges\n if (prev < HIGH) {\n change = Math.abs(change);\n } else if (prev > LOW) {\n change = -Math.abs(change);\n }\n return prev + change;\n }\n function initData() {\n var startingData = [];\n var y = START_Y; // always start towards the bottom of the screen\n for (var x = 0; x < width + PX_PER_SECOND; x += 1) {\n y = randomWalk(y);\n startingData.push(y);\n }\n return startingData;\n }\n function setDataSize() {\n while (data.length >= width + PX_PER_SECOND) {\n data.pop();\n }\n while (data.length < width + PX_PER_SECOND) {\n data.push(randomWalk(data[data.length - 1]));\n }\n }\n function drawAreaLine(path, context) {\n context.beginPath();\n // start offscreen\n context.moveTo(-1, height + 1);\n context.lineTo(-1, height * path[0]);\n\n // draw the line\n for (var i = 0; i < path.length; i += 1) {\n context.lineTo(i, height * path[i]);\n }\n\n // close offscreen\n context.lineTo(width + PX_PER_SECOND, height * path[path.length - 1]);\n context.lineTo(width + PX_PER_SECOND, height + 1);\n context.closePath();\n }\n function drawGridLines(context) {\n context.beginPath();\n // draw verticals\n for (var x = 1; x < width; x += GRID_SIZE) {\n context.moveTo(x, 0);\n context.lineTo(x, height);\n }\n // draw horizontals\n for (var y = 1; y < height; y += GRID_SIZE) {\n context.moveTo(0, y);\n context.lineTo(width, y);\n }\n }\n\n /**\n * Main draw loop for where the animation happens\n * all the styling happens within drawCanvas from paths generated by other functions\n * @param timestamp passed in callback from requestAnimationFrame\n */\n function drawCanvas(timestamp) {\n var _lastTimestamp, _lastTimestamp2, _lastTimestamp3;\n if (themeColors == null) {\n return;\n }\n lastTimestamp = (_lastTimestamp = lastTimestamp) !== null && _lastTimestamp !== void 0 ? _lastTimestamp : timestamp;\n var {\n background,\n foregroundStroke,\n gridColor\n } = themeColors;\n assertNotNull(ctx);\n // clear the canvas\n ctx.fillStyle = background;\n ctx.fillRect(0, 0, width, height);\n drawGridLines(ctx);\n ctx.lineWidth = 1;\n ctx.strokeStyle = gridColor;\n ctx.stroke();\n\n // for speeds less then 60 px per second, subpixel motion is required to look smooth\n var subPixelMotion = (((_lastTimestamp2 = lastTimestamp) !== null && _lastTimestamp2 !== void 0 ? _lastTimestamp2 : 0) - (timestamp !== null && timestamp !== void 0 ? timestamp : 0)) / (1000 / PX_PER_SECOND);\n ctx.translate(subPixelMotion, 0);\n drawAreaLine(data, ctx);\n ctx.lineWidth = 2;\n ctx.strokeStyle = foregroundStroke;\n ctx.stroke();\n ctx.translate(-subPixelMotion, 0); // we don't pattern to shift however\n if (pattern != null) {\n ctx.fillStyle = pattern;\n }\n ctx.fill();\n ctx.setTransform(scale, 0, 0, scale, 0, 0); // reset the translate matrix to normal\n\n // generate new data points\n if ((timestamp !== null && timestamp !== void 0 ? timestamp : 0) - ((_lastTimestamp3 = lastTimestamp) !== null && _lastTimestamp3 !== void 0 ? _lastTimestamp3 : 0) > 1000 / PX_PER_SECOND) {\n var _lastTimestamp4;\n // number of points to add since last update\n var numberOfPoints = Math.floor(((timestamp !== null && timestamp !== void 0 ? timestamp : 0) - ((_lastTimestamp4 = lastTimestamp) !== null && _lastTimestamp4 !== void 0 ? _lastTimestamp4 : 0)) / (1000 / PX_PER_SECOND));\n for (var i = 0; i < numberOfPoints; i += 1) {\n data.shift();\n data.push(randomWalk(data[data.length - 1]));\n }\n lastTimestamp = timestamp;\n }\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n rAF = requestAnimationFrame(drawCanvas);\n }\n\n // debounce the resize so its not overly aggresive\n var debouncedHandleResize = debounce(() => {\n rAF = requestAnimationFrame(timestamp => {\n setCanvasSize(); // setCanvas can cause lag if not debounced\n\n // fill or remove extra data points\n setDataSize();\n\n // opening devtools triggers a blur then resize,\n // need to reset shade as we are restarting animation\n setShade(false);\n drawCanvas(timestamp);\n });\n }, RESIZE_DEBOUNCE, {\n leading: true\n } // resize immediately, once.\n );\n\n function pauseAnimation() {\n // pause animation when browser window is blurred to conserve CPU usage\n setShade(true);\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n rAF = null;\n lastTimestamp = null;\n }\n\n // when timeout expires, pause animation\n var resetIdleTimeout = debounce(() => {\n pauseAnimation();\n }, INTERACTION_TIMEOUT);\n function startAnimation() {\n // can fire multiple times, check if rAF is null first\n // restart animation loop, and fade back in\n if (rAF == null) {\n setShade(false);\n setCanvasSize();\n setDataSize();\n rAF = requestAnimationFrame(drawCanvas);\n }\n resetIdleTimeout();\n }\n function handleActivity() {\n if (document.hasFocus()) {\n // only if document has focus (mousemove can fire on non-focused tabs)\n startAnimation();\n }\n }\n function handleResize() {\n // pause and debounce animation during resize for better resizing performance\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n resetIdleTimeout(); // treat resizing as a form of activity\n debouncedHandleResize();\n }\n\n // react mount/unmount hooks\n useEffect(() => {\n var _canvas$current;\n ctx = (_canvas$current = canvas.current) === null || _canvas$current === void 0 ? void 0 : _canvas$current.getContext('2d', {\n alpha: false\n });\n setCanvasSize();\n data = initData();\n pattern = createPatternFill();\n\n // start draw loop\n drawCanvas();\n resetIdleTimeout();\n window.addEventListener('resize', handleResize);\n window.addEventListener('focus', startAnimation);\n window.addEventListener('blur', pauseAnimation);\n\n // don't burn cpu if the user is \"idle\", start a timer that resets\n // on any user activity, and on timeout expiry pause the animation\n window.addEventListener('mousemove', handleActivity);\n window.addEventListener('keydown', handleActivity);\n return () => {\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n window.removeEventListener('resize', handleResize);\n window.removeEventListener('focus', startAnimation);\n window.removeEventListener('blur', pauseAnimation);\n window.removeEventListener('mousemove', handleActivity);\n window.removeEventListener('keydown', handleActivity);\n resetIdleTimeout.cancel();\n debouncedHandleResize.cancel();\n };\n }, [themeColors]);\n return themeColors && /*#__PURE__*/_jsx(\"div\", {\n className: \"random-area-plot-animation-container\",\n ref: container,\n children: /*#__PURE__*/_jsx(\"canvas\", {\n ref: canvas,\n className: shade ? 'shade' : ''\n })\n });\n});\nexport default RandomAreaPlotAnimation;\n//# sourceMappingURL=RandomAreaPlotAnimation.js.map","/* eslint-disable react/no-array-index-key */\n// array maps being used are static, this is fine.\n\nimport React, { useCallback, useMemo, useRef, useState, useEffect } from 'react';\nimport classNames from 'classnames';\nimport TimeInput from \"./TimeInput.js\";\nimport StyleExports from \"./TimeSlider.module.css\";\nimport \"./TimeSlider.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar HANDLE_SIZE = parseInt(StyleExports['handle-size'], 10);\nvar POPOVER_WIDTH = parseInt(StyleExports['popover-width'], 10);\nvar SECONDS_IN_DAY = 24 * 60 * 60 - 1; // Max is actually 23:59:59\nvar SNAP_NEAREST_MINUTES = 5 * 60; // rounds in 5 minute intervals\n\n/**\n * Creates a time slider for setting a start and end time, that can also run overnight\n * @param props takes times in seconds 0 - 86399 and a callback\n */\nfunction TimeSlider(_ref) {\n var {\n startTime: propStartTime,\n endTime: propEndTime,\n onChange,\n isStartModified = false,\n isEndModified = false,\n 'data-testid': dataTestId\n } = _ref;\n var [startTime, setStartTime] = useState(propStartTime);\n var [endTime, setEndTime] = useState(propEndTime);\n var track = useRef(null); // we need the track width while calulculating time from handle drag\n\n // updates state if props change\n useEffect(function setTimeOnPropTimeChange() {\n setStartTime(propStartTime);\n setEndTime(propEndTime);\n }, [propStartTime, propEndTime]);\n var updateTime = useCallback((newStartTime, newEndTime) => {\n var start = newStartTime;\n var end = newEndTime;\n if (start === end) {\n if (end < SECONDS_IN_DAY) {\n end += 1;\n } else {\n start -= 1;\n }\n }\n setStartTime(start);\n setEndTime(end);\n onChange({\n startTime: start,\n endTime: end\n });\n }, [setStartTime, setEndTime, onChange]);\n var handleStartTimeChange = useCallback(newStartTime => {\n updateTime(newStartTime, endTime);\n }, [updateTime, endTime]);\n var handleEndTimeChange = useCallback(newEndTime => {\n updateTime(startTime, newEndTime);\n }, [updateTime, startTime]);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"time-slider\",\n \"data-testid\": dataTestId,\n children: [/*#__PURE__*/_jsx(PopOvers, {\n startTime: startTime,\n endTime: endTime,\n onStartTimeChange: handleStartTimeChange,\n onEndTimeChange: handleEndTimeChange,\n isStartModified: isStartModified,\n isEndModified: isEndModified\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"track\",\n ref: track,\n children: [/*#__PURE__*/_jsx(TrackFills, {\n startTime: startTime,\n endTime: endTime\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"ticks\",\n children: Array(24).fill(null).map((value, index) => /*#__PURE__*/_jsx(\"div\", {\n className: \"tick\"\n }, index))\n }), /*#__PURE__*/_jsx(Handle, {\n track: track,\n time: startTime,\n setTime: handleStartTimeChange\n }), /*#__PURE__*/_jsx(Handle, {\n track: track,\n time: endTime,\n setTime: handleEndTimeChange\n })]\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"tick-labels\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"tick-label\",\n children: \"0:00\"\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"tick-label-wrapper\",\n children: Array(24).fill(null).map((value, index) => /*#__PURE__*/_jsx(\"div\", {\n className: \"tick-label\",\n children: \"\".concat(index + 1, \":00\")\n }, index))\n })]\n })]\n });\n}\nfunction PopOvers(props) {\n var {\n startTime,\n endTime,\n onStartTimeChange,\n onEndTimeChange,\n isStartModified,\n isEndModified,\n 'data-testid': dataTestId\n } = props;\n var swapTimes = startTime > endTime;\n var [firstTime, setFirstTime] = useState(swapTimes ? endTime : startTime);\n var [secondTime, setSecondTime] = useState(swapTimes ? startTime : endTime);\n var firstTimeRef = useRef(null);\n var secondTimeRef = useRef(null);\n // Keep track of selection in both time inputs\n var firstTimeSelectionRef = useRef(null);\n var secondTimeSelectionRef = useRef(null);\n useEffect(function setTimeOnPropTimeChange() {\n setFirstTime(startTime > endTime ? endTime : startTime);\n setSecondTime(startTime > endTime ? startTime : endTime);\n }, [startTime, endTime]);\n useEffect(function setFocusOnSwapTimesChange() {\n if (firstTimeSelectionRef.current !== null) {\n var _secondTimeRef$curren;\n (_secondTimeRef$curren = secondTimeRef.current) === null || _secondTimeRef$curren === void 0 ? void 0 : _secondTimeRef$curren.setSelection(firstTimeSelectionRef.current);\n }\n if (secondTimeSelectionRef.current !== null) {\n var _firstTimeRef$current;\n (_firstTimeRef$current = firstTimeRef.current) === null || _firstTimeRef$current === void 0 ? void 0 : _firstTimeRef$current.setSelection(secondTimeSelectionRef.current);\n }\n }, [swapTimes]);\n function onFirstTimeChange(value) {\n if (startTime <= endTime) {\n onStartTimeChange(value);\n } else {\n onEndTimeChange(value);\n }\n }\n function onSecondTimeChange(value) {\n if (startTime <= endTime) {\n onEndTimeChange(value);\n } else {\n onStartTimeChange(value);\n }\n }\n var onFirstTimeSelect = useCallback(selection => {\n firstTimeSelectionRef.current = selection;\n secondTimeSelectionRef.current = null;\n }, []);\n var onSecondTimeSelect = useCallback(selection => {\n firstTimeSelectionRef.current = null;\n secondTimeSelectionRef.current = selection;\n }, []);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"time-slider-popovers\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"flex\",\n style: {\n flexBasis: \"calc(\".concat(firstTime / SECONDS_IN_DAY * 100, \"% - \").concat(POPOVER_WIDTH / 2, \"px)\")\n }\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"handle-popper\",\n children: [/*#__PURE__*/_jsx(\"label\", {\n className: classNames({\n modified: swapTimes ? isEndModified : isStartModified\n }),\n children: swapTimes ? 'End Time' : 'Start Time'\n }), /*#__PURE__*/_jsx(TimeInput, {\n ref: firstTimeRef,\n allowValueWrapping: false,\n value: firstTime,\n onChange: onFirstTimeChange,\n onSelect: onFirstTimeSelect,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-input-1\") : undefined\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"flex-spacer\"\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"handle-popper\",\n children: [/*#__PURE__*/_jsx(\"label\", {\n className: classNames({\n modified: swapTimes ? isStartModified : isEndModified\n }),\n children: swapTimes ? 'Start Time' : 'End Time'\n }), /*#__PURE__*/_jsx(TimeInput, {\n ref: secondTimeRef,\n allowValueWrapping: false,\n value: secondTime,\n onChange: onSecondTimeChange,\n onSelect: onSecondTimeSelect,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-input-2\") : undefined\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"flex\",\n style: {\n flexBasis: \"calc(\".concat((SECONDS_IN_DAY - secondTime) / SECONDS_IN_DAY * 100, \"% - \").concat(POPOVER_WIDTH / 2, \"px)\")\n }\n })]\n });\n}\n/**\n * Shades the area between or outside of handles according to if start or endtime is greater.\n */\nfunction TrackFills(props) {\n var {\n startTime,\n endTime,\n 'data-testid': dataTestId\n } = props;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"track-fills\",\n \"data-testid\": dataTestId,\n children: [startTime > endTime && /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"track-fill track-fill-start\",\n style: {\n transform: \"scaleX(\".concat(endTime / SECONDS_IN_DAY, \")\")\n }\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"track-fill track-fill-end\",\n style: {\n transform: \"scaleX(\".concat((SECONDS_IN_DAY - startTime) / SECONDS_IN_DAY, \")\")\n }\n })]\n }), startTime < endTime && /*#__PURE__*/_jsx(\"div\", {\n className: \"track-fill track-fill-middle\",\n style: {\n transform: \"translateX(\".concat(startTime / SECONDS_IN_DAY * 100, \"%) scaleX(\").concat((endTime - startTime) / SECONDS_IN_DAY, \")\")\n }\n })]\n });\n}\n/**\n * Creates a draggable handle the sets the time\n */\nfunction Handle(props) {\n var {\n track,\n time,\n setTime,\n 'data-testid': dataTestId\n } = props;\n\n /**\n * Takes the time and generate our translation string taking into account handle offset.\n * The handle offset changes for the first and last tick range dynmaically. Normally,\n * the center of the handle (size/2) is the selection origin, but at edges, it becomes either\n * end of the handle, requireing a relative offset range of 0 - 0.5, and 0.5 - 1 of handle size.\n * @param t time in seconds\n */\n var transform = useMemo(() => {\n var ONE_HOUR = 60 * 60;\n var handleOffset = HANDLE_SIZE / 2;\n if (time < ONE_HOUR) {\n handleOffset = time / ONE_HOUR * (HANDLE_SIZE / 2); // 0 - 0.5 Handle size\n } else if (time > 23 * ONE_HOUR) {\n handleOffset = HANDLE_SIZE / 2 + 1 / (SECONDS_IN_DAY - 23 * ONE_HOUR) * (time - 23 * ONE_HOUR) * (HANDLE_SIZE / 2); // 0.5 - 1 Handle size\n }\n\n return \"translateX(calc(\".concat(time / SECONDS_IN_DAY * 100, \"% - \").concat(handleOffset, \"px))\");\n }, [time]);\n var calculatePositionAsTime = useCallback(clientX => {\n if (!track.current) {\n return 0;\n }\n var trackRect = track.current.getBoundingClientRect();\n var leftEdge = Math.max(clientX - trackRect.left, 0);\n // get position as 0-1 on slider and mulitply by seconds in a day to convert to time\n var preciseTime = SECONDS_IN_DAY * Math.min(1, leftEdge / trackRect.width);\n // snap to nearest N(5) minute interval\n var roundedTime = SNAP_NEAREST_MINUTES * Math.round(preciseTime / SNAP_NEAREST_MINUTES);\n // prevent over-rounding to 24:00:00\n var limitMax = Math.min(SECONDS_IN_DAY, roundedTime);\n return limitMax;\n }, [track]);\n var handleMouseMove = useCallback(_ref2 => {\n var {\n clientX\n } = _ref2;\n setTime(calculatePositionAsTime(clientX));\n }, [setTime, calculatePositionAsTime]);\n var handleMouseUp = useCallback(_ref3 => {\n var {\n clientX\n } = _ref3;\n setTime(calculatePositionAsTime(clientX));\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.remove('drag-pointer-events-none');\n }, [setTime, calculatePositionAsTime, handleMouseMove]);\n var startDragListening = useCallback(() => {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.add('drag-pointer-events-none');\n }, [handleMouseMove, handleMouseUp]);\n var stopDragListening = useCallback(() => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.remove('drag-pointer-events-none');\n }, [handleMouseMove, handleMouseUp]);\n var handleMouseDown = useCallback(() => {\n startDragListening();\n }, [startDragListening]);\n useEffect(function removeListenersOnUnmount() {\n return () => {\n stopDragListening();\n };\n }, [stopDragListening]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"handle-track\",\n style: {\n transform\n },\n children: /*#__PURE__*/_jsx(\"button\", {\n className: \"handle\",\n type: \"button\",\n \"aria-label\": \"Change time\",\n onMouseDown: handleMouseDown,\n \"data-testid\": dataTestId\n })\n });\n}\nexport default TimeSlider;\n//# sourceMappingURL=TimeSlider.js.map","import React, { useRef } from 'react';\nimport classNames from 'classnames';\nimport shortid from 'shortid';\nimport \"./ValidateLabelInput.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Takes a child and add a label and validaton error\n */\nexport function ValidateLabelInput(props) {\n var {\n children,\n className,\n labelText,\n hintText,\n isModified,\n validationError,\n showValidationError = true,\n 'data-testid': dataTestId,\n id: idProp\n } = props;\n var {\n current: id\n } = useRef(idProp !== null && idProp !== void 0 ? idProp : shortid());\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(\"label\", {\n className: classNames('validate-label', className, {\n modified: isModified\n }),\n htmlFor: id,\n \"data-testid\": dataTestId,\n children: labelText\n }), React.Children.toArray(children).map(child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n // eslint-disable-next-line react/jsx-key\n return /*#__PURE__*/_jsx(\"div\", {\n className: classNames(className),\n children: child\n });\n }\n\n // toArray strips null children\n return /*#__PURE__*/React.cloneElement(child, {\n className: classNames(child.props.className, {\n 'is-invalid': validationError\n })\n });\n }), hintText !== undefined && /*#__PURE__*/_jsx(\"small\", {\n className: \"form-text text-muted\",\n children: hintText\n }), validationError !== undefined && showValidationError && /*#__PURE__*/_jsx(\"p\", {\n className: \"validate-label-error text-danger\",\n children: validationError\n })]\n });\n}\nexport default ValidateLabelInput;\n//# sourceMappingURL=ValidateLabelInput.js.map","function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\nimport ChartModel from \"./ChartModel.js\";\nimport { defaultChartTheme } from \"./ChartTheme.js\";\nimport ChartUtils from \"./ChartUtils.js\";\n/** Displays a basic random chart */\nclass MockChartModel extends ChartModel {\n static get theme() {\n /* eslint-disable no-underscore-dangle */\n if (MockChartModel._theme == null) {\n MockChartModel._theme = defaultChartTheme();\n }\n return MockChartModel._theme;\n /* eslint-enable no-underscore-dangle */\n }\n\n static makeRandomSeries(offset) {\n var scale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var steps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100;\n var dates = [];\n var values = [];\n var smooth = [];\n var linear = [];\n\n // Setting to a fixed seed date so that e2e tests can be deterministic.\n var startDate = new Date('2018-06-01');\n for (var i = 0; i < steps; i += 1) {\n var date = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() + i - steps);\n dates.push(\"\".concat(date.getFullYear(), \"-\").concat(date.getMonth() + 1, \"-\").concat(date.getDate()));\n var v = (Math.sin(i / steps * offset) * steps / 3 + Math.cos(i * 0.2) * steps / 6 + Math.sin(i * 0.5) * steps / 10 + MockChartModel.random() * steps / 5 + i * MockChartModel.smoothing) * scale;\n v = Math.round(v * 100) / 100; // 2 decimals only\n // using steps acts as amplititude scaling based on value\n // large sine wave for course shape + small sine waves for bumpiness +\n // general randomness noise + index to be constantly up and to the right + smoothing factor\n values.push(v);\n linear.push(40 + i * MockChartModel.smoothing);\n smooth.push(Math.sin(i / steps * offset) * steps / 3 + MockChartModel.random() * steps / 10 + i * MockChartModel.smoothing); // push a smoother version of the same thing\n }\n\n return {\n x: dates,\n y: values,\n s: smooth,\n l: linear\n };\n }\n static makeScatter(series) {\n return {\n name: 'SCTR',\n x: series.x,\n y: series.y,\n type: 'scatter',\n mode: 'markers',\n hoverinfo: 'skip',\n marker: {\n size: 5\n }\n };\n }\n static makeArea(series) {\n return {\n name: 'AREA',\n x: series.x,\n y: series.s,\n type: 'scatter',\n mode: 'line',\n fill: 'tozeroy',\n hoverinfo: 'all',\n line: {\n color: MockChartModel.theme.area_color,\n width: 3\n // area patten gets applied as hack in post render plot.ly callback + css\n }\n };\n }\n\n static makeTrendline(series) {\n return {\n // we probably want to toss the line formula in legend I guess? either that or render it as text manually on plot\n name: 'Trendline <br>R<sup>2</sup> = 0.91',\n x: series.x,\n y: series.l,\n type: 'scatter',\n mode: 'line',\n hoverinfo: 'skip',\n line: {\n width: 3,\n dash: 'dot',\n // trendlines should follow some sort of color convention + dots/dashed. Remember there can multiple\n color: MockChartModel.theme.trend_color\n // chroma(c.$green).brighten(1.2).hex()\n }\n };\n }\n\n static makeErrorBand(series) {\n // generate continouous error bands values and text\n var erroryforward = [];\n var errorybackward = [];\n for (var i = 0; i < series.y.length; i += 1) {\n var value = series.y[i];\n erroryforward[i] = Math.round((value + 18) * 100) / 100;\n errorybackward[i] = Math.round((value - 18) * 100) / 100;\n }\n\n // makes a closed shape of points winding clockwise for y values\n var errory = erroryforward.concat(errorybackward.reverse());\n return {\n name: 'error',\n x: series.x.concat(series.x.slice().reverse()),\n // winding for x values, that slice just clones so reverse doesn't apply inplace\n y: errory,\n type: 'scatter',\n mode: 'line',\n hoverinfo: 'skip',\n fill: 'toself',\n // there's some ordering bug with scattergl where if the areas traces are ordered after the lines they don't render\n fillcolor: MockChartModel.theme.error_band_fill_color,\n line: {\n width: 0,\n color: MockChartModel.theme.error_band_line_color,\n shape: 'spline'\n }\n };\n }\n static makeLine(series) {\n return {\n name: 'LINE',\n x: series.x,\n y: series.y,\n type: 'scatter',\n mode: 'line',\n hoverinfo: 'x+y+text+name',\n line: {\n color: MockChartModel.theme.line_color,\n width: 3\n }\n };\n }\n static makeRandomData() {\n var series1 = MockChartModel.makeRandomSeries(6);\n var areaPattern = MockChartModel.makeArea(series1);\n var trendLine = MockChartModel.makeTrendline(series1);\n var series2 = MockChartModel.makeRandomSeries(2);\n var line = MockChartModel.makeLine(series2);\n var errorBand = MockChartModel.makeErrorBand(series2);\n return [areaPattern, trendLine, line, errorBand];\n }\n static makeDefaultLayout(dh) {\n var layout = new ChartUtils(dh).makeDefaultLayout(MockChartModel.theme);\n layout.title = 'Chart';\n if (layout.xaxis) {\n layout.xaxis.title = 'Datestamp';\n }\n if (layout.yaxis) {\n layout.yaxis.title = 'Price';\n }\n return layout;\n }\n constructor(dh) {\n var {\n data = MockChartModel.makeRandomData(),\n layout = MockChartModel.makeDefaultLayout(dh),\n filterFields = []\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super(dh);\n _defineProperty(this, \"data\", void 0);\n _defineProperty(this, \"filterFields\", void 0);\n _defineProperty(this, \"layout\", void 0);\n this.data = data;\n this.layout = layout;\n this.filterFields = filterFields;\n }\n getData() {\n return this.data;\n }\n getLayout() {\n return this.layout;\n }\n getFilterColumnMap() {\n var map = new Map();\n for (var i = 0; i < this.filterFields.length; i += 1) {\n var name = this.filterFields[i];\n var type = 'java.lang.String';\n map.set(name, {\n name,\n type\n });\n }\n return map;\n }\n isFilterRequired() {\n return this.filterFields.length > 0;\n }\n setFilter() {\n this.fireUpdate(this.data);\n }\n}\n_defineProperty(MockChartModel, \"random\", Math.random.bind(Math));\n_defineProperty(MockChartModel, \"smoothing\", 1.5);\n_defineProperty(MockChartModel, \"_theme\", void 0);\nexport default MockChartModel;\n//# sourceMappingURL=MockChartModel.js.map","import React, { createContext, useEffect, useState } from 'react';\nimport 'fira';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nexport var FontsLoadedContext = /*#__PURE__*/createContext(false);\n/**\n * FontBootstrap component. Handles preloading fonts.\n */\nexport function FontBootstrap(_ref) {\n var {\n fontClassNames = ['fira-sans-regular', 'fira-sans-semibold', 'fira-mono'],\n children\n } = _ref;\n var [isLoaded, setIsLoaded] = useState(false);\n useEffect(function initFonts() {\n document.fonts.ready.then(() => {\n setIsLoaded(true);\n });\n }, []);\n return /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(FontsLoadedContext.Provider, {\n value: isLoaded,\n children: children\n }), /*#__PURE__*/_jsx(\"div\", {\n id: \"preload-fonts\",\n style: {\n visibility: 'hidden',\n position: 'absolute',\n top: -10000\n },\n children: fontClassNames.map(className => /*#__PURE__*/_jsx(\"p\", {\n className: className,\n children: \"preload\"\n }, className))\n })]\n });\n}\nexport default FontBootstrap;\n//# sourceMappingURL=FontBootstrap.js.map"],"names":["ownKeys","object","enumerableOnly","keys","symbols","sym","_objectSpread","target","i","source","key","_defineProperty","obj","value","_toPropertyKey","arg","_toPrimitive","input","hint","prim","res","DEBOUNCE_DELAY","MENU_NAVIGATION_DIRECTION","AutoCompleteInput","Component","props","memoize","options","option","popperOptions","debounce","React","title","result","menuIsOpen","isValid","onChange","filter","_this$popper$current","filteredOptions","perfectMatch","event","_this$input$current","keyboardOptionIndex","direction","newKeyboardOptionIndex","onEnter","_this$input$current2","_this$input$current3","_this$popper$current2","_this$popper$current3","focusInput","_this$input$current4","index","_this$menuContainer$c","inputWidth","_jsx","classNames","noMatchText","inputPlaceholder","disabled","className","defaultTitle","spellCheck","dataTestId","invalid","_jsxs","Popper","PropTypes","AutoCompleteInput$1","AutoResizeTextarea","_ref","propsValue","placeholder","delimiter","id","setValue","useState","isPastedChange","setIsPastedChange","element","useRef","useEffect","explode","string","implode","reCalculateLayout","resizedHeight","handleChange","newValue","handleFocus","handleMouseDown","handleBlur","handlePaste","log","Log","TIME_PATTERN","EXAMPLES","TimeInput","ref","allowValueWrapping","onFocus","onBlur","onSelect","TimeUtils","selection","_setSelection","inputRef","useImperativeHandle","_inputRef$current","newSelection","_inputRef$current2","getNextSegmentValue","range","delta","segmentValue","maxValue","newSegmentValue","getPreferredReplacementString","replaceValue","replaceIndex","newChar","selectionStart","selectionEnd","DEFAULT_GET_PREFERRED_REPLACEMENT_STRING","handleSelect","useCallback","MaskedInput","TimeInput$1","CUSTOM_OPTION","CustomTimeSelect","valueToTime","customTime","_this$button$current","_this$button$current2","inputFocused","menuOptionsLength","optionIndex","timeToValue","update","_this$button$current3","activeOption","valueIndex","_this$menuContainer$c2","focusButton","_this$button$current4","_this$menuContainer$c3","icon","customText","matchFound","optionArray","FontAwesomeIcon","DropdownMenu","vsCheck","time","CustomTimeSelect$1","DATE_PATTERN","DATE_FORMAT","DateInput","defaultValue","setSelection","DateInput$1","HierarchicalCheckboxMenu","parent","valueMap","children","includesTrue","includesFalse","state","child","onUpdateValueMap","map","newChildren","parentSelected","newChildValue","_","currentChildren","_parentSelected","copy","Checkbox","_ref2","Button","menuText","HierarchicalCheckboxMenu$1","VOLATILITY","LOW","HIGH","START_Y","GRID_SIZE","PATTERN","PX_PER_SECOND","RESIZE_DEBOUNCE","INTERACTION_TIMEOUT","RandomAreaPlotAnimation","activeThemes","useTheme","themeColors","setThemeColors","getRandomAreaPlotAnimationThemeColors","canvas","container","shade","setShade","scale","ctx","pattern","width","height","rAF","lastTimestamp","data","setCanvasSize","_ctx","createPatternFill","foregroundFill","foregroundStroke","canvasPattern","contextPattern","randomWalk","prev","rand","change","initData","startingData","y","x","setDataSize","drawAreaLine","path","context","drawGridLines","drawCanvas","timestamp","_lastTimestamp","_lastTimestamp2","_lastTimestamp3","background","gridColor","assertNotNull","subPixelMotion","_lastTimestamp4","numberOfPoints","debouncedHandleResize","pauseAnimation","resetIdleTimeout","startAnimation","handleActivity","handleResize","_canvas$current","Animation","HANDLE_SIZE","StyleExports","POPOVER_WIDTH","SECONDS_IN_DAY","SNAP_NEAREST_MINUTES","TimeSlider","propStartTime","propEndTime","isStartModified","isEndModified","startTime","setStartTime","endTime","setEndTime","track","updateTime","newStartTime","newEndTime","start","end","handleStartTimeChange","handleEndTimeChange","PopOvers","TrackFills","Handle","onStartTimeChange","onEndTimeChange","swapTimes","firstTime","setFirstTime","secondTime","setSecondTime","firstTimeRef","secondTimeRef","firstTimeSelectionRef","secondTimeSelectionRef","_secondTimeRef$curren","_firstTimeRef$current","onFirstTimeChange","onSecondTimeChange","onFirstTimeSelect","onSecondTimeSelect","_Fragment","setTime","transform","useMemo","ONE_HOUR","handleOffset","calculatePositionAsTime","clientX","trackRect","leftEdge","preciseTime","roundedTime","limitMax","handleMouseMove","handleMouseUp","_ref3","startDragListening","stopDragListening","ValidateLabelInput","labelText","hintText","isModified","validationError","showValidationError","idProp","shortid","MockChartModel","ChartModel","defaultChartTheme","offset","steps","dates","values","smooth","linear","startDate","date","v","series","erroryforward","errorybackward","errory","series1","areaPattern","trendLine","series2","line","errorBand","dh","layout","ChartUtils","filterFields","name","type","MockChartModel$1","FontsLoadedContext","createContext","FontBootstrap","fontClassNames","isLoaded","setIsLoaded"],"mappings":"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"}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{r as J,C as le,F as xe,K as $e,L as Z,ax as Oe,S as ce,Q as G,am as Le}from"./vendor-90228628.js";import{n as Ue,o as L,L as P,a7 as fe,F as Ge,U as k,a8 as oe,a9 as we,aa as F,G as Q,ab as z,ac as q}from"./IrisGrid-32512153.js";import{L as re,e as D}from"./index-defd1935.js";import{F as ie,c as I,be as A,P as te}from"./usePlugins-2f74626c.js";function ft(s){var{className:e,isFlipped:r,children:t,"data-testid":i}=s,n=u=>{if(t.length!==2)throw new Error("CardFlip requires 2 children to function");return t[u]},a=J.useRef(null),l=J.useCallback(u=>{u.target===u.currentTarget&&document.body.classList.add("card-flip--is-flipping")},[]),o=J.useCallback(u=>{u.target===u.currentTarget&&document.body.classList.remove("card-flip--is-flipping")},[]);return J.useEffect(function(){if(!a.current)throw Error("ref undefined");a.current.addEventListener("transitionstart",l);var d=a.current;return function(){if(d!=null)return d.removeEventListener("transitionstart",l)}},[l]),le.jsxs("div",{className:xe(e,{"card-flip--show-front":r,"card-flip--show-back":!r}),"data-testid":i,children:[le.jsx("div",{className:"card-flip--back",children:n(0)}),le.jsx("div",{ref:a,className:"card-flip--front",onTransitionEnd:o,children:n(1)})]})}function be(s,e){var r=Object.keys(s);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(s);e&&(t=t.filter(function(i){return Object.getOwnPropertyDescriptor(s,i).enumerable})),r.push.apply(r,t)}return r}function Ce(s){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?be(Object(r),!0).forEach(function(t){V(s,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(r)):be(Object(r)).forEach(function(t){Object.defineProperty(s,t,Object.getOwnPropertyDescriptor(r,t))})}return s}function V(s,e,r){return e=Ie(e),e in s?Object.defineProperty(s,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):s[e]=r,s}function Ie(s){var e=He(s,"string");return typeof e=="symbol"?e:String(e)}function He(s,e){if(typeof s!="object"||s===null)return s;var r=s[Symbol.toPrimitive];if(r!==void 0){var t=r.call(s,e||"default");if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(s)}var x=re.module("FigureChartModel");class ne extends Ue{constructor(e,r,t){var i,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(e),i=this,V(this,"chartUtils",void 0),V(this,"dh",void 0),V(this,"figure",void 0),V(this,"settings",void 0),V(this,"theme",void 0),V(this,"data",void 0),V(this,"layout",void 0),V(this,"seriesDataMap",void 0),V(this,"pendingSeries",void 0),V(this,"oneClicks",void 0),V(this,"filterColumnMap",void 0),V(this,"lastFilter",void 0),V(this,"isConnected",void 0),V(this,"seriesToProcess",void 0),V(this,"addPendingSeries",$e(()=>{for(var l=L.getAllAxes(this.figure),{pendingSeries:o}=this,u=function(){var f,v=o[d],c=i.figure.charts.find(h=>h.series.includes(v));i.addSeries(v,l,(f=c?.showLegend)!==null&&f!==void 0?f:null),v.subscribe()},d=0;d<o.length;d+=1)u();this.pendingSeries=[]},ne.ADD_SERIES_DEBOUNCE)),V(this,"getTimeZone",Z((l,o)=>{if(o!=null){var u=o.getColumnTypeFormatter(l);if(u!=null)return u.dhTimeZone}})),V(this,"getValueTranslator",Z((l,o)=>{var u=this.getTimeZone(l,o);return d=>this.chartUtils.unwrapValue(d,u)})),V(this,"getValueParser",Z((l,o)=>{var u=this.getTimeZone(l,o);return d=>this.chartUtils.wrapValue(d,l,u)})),V(this,"getRangeParser",Z((l,o)=>u=>{var[d,p]=u,f=this.getValueParser(l,o);return d=f(d),p=f(p),[d,p]})),V(this,"getAxisRangeParser",Z((l,o)=>u=>{var d=L.getSourceForAxis(l,u);return d!=null?this.getRangeParser(d.columnType,o):p=>p})),this.handleFigureUpdated=this.handleFigureUpdated.bind(this),this.handleFigureDisconnected=this.handleFigureDisconnected.bind(this),this.handleFigureReconnected=this.handleFigureReconnected.bind(this),this.handleFigureSeriesAdded=this.handleFigureSeriesAdded.bind(this),this.handleDownsampleStart=this.handleDownsampleStart.bind(this),this.handleDownsampleFinish=this.handleDownsampleFinish.bind(this),this.handleDownsampleFail=this.handleDownsampleFail.bind(this),this.handleDownsampleNeeded=this.handleDownsampleNeeded.bind(this),this.handleRequestFailed=this.handleRequestFailed.bind(this),this.dh=e,this.chartUtils=new L(e),this.figure=r,this.settings=n,this.theme=t,this.data=[];var a={data:{},layout:this.chartUtils.makeDefaultLayout(t)};this.layout={grid:{rows:r.rows,columns:r.cols,pattern:"independent"},template:a},this.seriesDataMap=new Map,this.pendingSeries=[],this.oneClicks=[],this.filterColumnMap=new Map,this.lastFilter=new Map,this.isConnected=!0,this.seriesToProcess=new Set,this.setTitle(this.getDefaultTitle()),this.initAllSeries(),this.updateAxisPositions(),this.startListeningFigure()}close(){this.figure.close(),this.addPendingSeries.cancel(),this.stopListeningFigure()}getDefaultTitle(){if(this.figure.charts.length>0){var e=this.figure.charts[0];return e.title}return""}initAllSeries(){this.oneClicks=[],this.filterColumnMap.clear();for(var{charts:e}=this.figure,r=L.getAllAxes(this.figure),t=[],i=0;i<e.length;i+=1)for(var n=e[i],a=0;a<n.series.length;a+=1){var l=n.series[a];t.push(l.name),this.addSeries(l,r,n.showLegend)}for(var o=[...this.seriesDataMap.keys()],u=o.filter(f=>t.indexOf(f)<0),d=0;d<u.length;d+=1){var p=u[d];this.seriesDataMap.delete(p)}this.seriesToProcess=new Set([...this.seriesDataMap.keys()])}addSeries(e,r,t){var{dh:i}=this,n=L.groupArray(r,"type"),a=this.chartUtils.makeSeriesDataFromSeries(e,n,L.getSeriesVisibility(e.name,this.settings),this.theme,t);if(this.seriesDataMap.set(e.name,a),this.data=[...this.seriesDataMap.values()],e.plotStyle===i.plot.SeriesPlotStyle.STACKED_BAR?this.layout.barmode="stack":e.plotStyle===i.plot.SeriesPlotStyle.PIE&&(this.layout.hiddenlabels=L.getHiddenLabels(this.settings)),this.layout.showlegend=this.data.length>1||e.plotStyle===i.plot.SeriesPlotStyle.PIE?t??void 0:!1,e.oneClick!=null){for(var{oneClick:l}=e,{columns:o}=l,u=0;u<o.length;u+=1)this.filterColumnMap.set(o[u].name,o[u]);this.oneClicks.push(l)}this.updateLayoutFormats()}subscribe(e){super.subscribe(e),this.listeners.length===1&&(this.initAllSeries(),this.subscribeFigure())}unsubscribe(e){super.unsubscribe(e),this.listeners.length===0&&this.unsubscribeFigure()}subscribeFigure(){if(!this.isConnected){x.debug("Ignoring subscribe when figure in disconnected state");return}this.figure.subscribe(this.isDownsamplingDisabled?this.dh.plot.DownsampleOptions.DISABLE:this.dh.plot.DownsampleOptions.DEFAULT),this.figure.errors.length>0&&(x.error("Errors in figure",this.figure.errors),this.fireError(this.figure.errors))}unsubscribeFigure(){this.figure.unsubscribe()}startListeningFigure(){var{dh:e}=this;this.figure.addEventListener(e.plot.Figure.EVENT_UPDATED,this.handleFigureUpdated),this.figure.addEventListener(e.plot.Figure.EVENT_SERIES_ADDED,this.handleFigureSeriesAdded),this.figure.addEventListener(e.plot.Figure.EVENT_DISCONNECT,this.handleFigureDisconnected),this.figure.addEventListener(e.plot.Figure.EVENT_RECONNECT,this.handleFigureReconnected),this.figure.addEventListener(e.plot.Figure.EVENT_DOWNSAMPLESTARTED,this.handleDownsampleStart),this.figure.addEventListener(e.plot.Figure.EVENT_DOWNSAMPLEFINISHED,this.handleDownsampleFinish),this.figure.addEventListener(e.plot.Figure.EVENT_DOWNSAMPLEFAILED,this.handleDownsampleFail),this.figure.addEventListener(e.plot.Figure.EVENT_DOWNSAMPLENEEDED,this.handleDownsampleNeeded),this.figure.addEventListener(e.Client.EVENT_REQUEST_FAILED,this.handleRequestFailed)}stopListeningFigure(){var{dh:e}=this;this.figure.removeEventListener(e.plot.Figure.EVENT_UPDATED,this.handleFigureUpdated),this.figure.removeEventListener(e.plot.Figure.EVENT_SERIES_ADDED,this.handleFigureSeriesAdded),this.figure.removeEventListener(e.plot.Figure.EVENT_DISCONNECT,this.handleFigureDisconnected),this.figure.removeEventListener(e.plot.Figure.EVENT_RECONNECT,this.handleFigureReconnected),this.figure.removeEventListener(e.plot.Figure.EVENT_DOWNSAMPLESTARTED,this.handleDownsampleStart),this.figure.removeEventListener(e.plot.Figure.EVENT_DOWNSAMPLEFINISHED,this.handleDownsampleFinish),this.figure.removeEventListener(e.plot.Figure.EVENT_DOWNSAMPLEFAILED,this.handleDownsampleFail),this.figure.removeEventListener(e.plot.Figure.EVENT_DOWNSAMPLENEEDED,this.handleDownsampleNeeded),this.figure.removeEventListener(e.Client.EVENT_REQUEST_FAILED,this.handleRequestFailed)}handleDownsampleStart(e){x.debug("Downsample started",e),this.fireDownsampleStart(e.detail)}handleDownsampleFinish(e){x.debug("Downsample finished",e),this.fireDownsampleFinish(e.detail)}handleDownsampleFail(e){x.error("Downsample failed",e),this.fireDownsampleFail(e.detail)}handleDownsampleNeeded(e){x.info("Downsample needed",e),this.fireDownsampleNeeded(e.detail)}handleFigureUpdated(e){var{detail:r}=e,{series:t}=r;x.debug2("handleFigureUpdated",t);for(var i=0;i<t.length;i+=1){var n=t[i];x.debug2("handleFigureUpdated updating series",n.name);for(var{sources:a}=n,l=0;l<a.length;l+=1){var o=a[l],{columnType:u,type:d}=o,p=this.getValueTranslator(u,this.formatter),f=r.getArray(n,d,p);this.setDataArrayForSeries(n,d,f)}this.seriesToProcess.delete(n.name),this.cleanSeries(n)}this.seriesToProcess.size===0&&this.fireLoadFinished();var{data:v}=this;this.fireUpdate(v)}handleRequestFailed(e){x.error("Request failed",e),this.fireError(["".concat(e.detail)])}resubscribe(){this.listeners.length>0&&(this.unsubscribeFigure(),this.subscribeFigure())}setFormatter(e){super.setFormatter(e),this.updateLayoutFormats(),this.resubscribe()}setDownsamplingDisabled(e){super.setDownsamplingDisabled(e),this.resubscribe()}handleFigureDisconnected(e){x.debug("Figure disconnected",e),this.isConnected=!1,this.listeners.length>0&&this.unsubscribeFigure(),this.fireDisconnect()}handleFigureReconnected(e){x.debug("Figure reconnected",e),this.isConnected=!0,this.initAllSeries(),this.fireReconnect(),this.listeners.length>0&&this.subscribeFigure()}handleFigureSeriesAdded(e){var{detail:r}=e;x.debug("handleFigureSeriesAdded",r),this.pendingSeries.push(r),this.addPendingSeries()}setDimensions(e){super.setDimensions(e),this.updateAxisPositions()}setTitle(e){var r,t;super.setTitle(e);var i=(r=(t=(e??"").match(/<br>/g))===null||t===void 0?void 0:t.length)!==null&&r!==void 0?r:0,n=L.DEFAULT_MARGIN.t+i*L.SUBTITLE_LINE_HEIGHT;this.layout.margin?this.layout.margin.t=n:this.layout.margin={t:n},typeof this.layout.title=="string"?this.layout.title=e:(this.layout.title=Ce({},this.layout.title),this.layout.title.text=e,this.layout.title.pad=Ce({},this.layout.title.pad),this.layout.title.pad.t=L.DEFAULT_TITLE_PADDING.t+i*L.SUBTITLE_LINE_HEIGHT*.5)}getPlotWidth(){var e,r,t,i;return!this.rect||!this.rect.width?0:Math.max(this.rect.width-((e=(r=this.layout.margin)===null||r===void 0?void 0:r.l)!==null&&e!==void 0?e:0)-((t=(i=this.layout.margin)===null||i===void 0?void 0:i.r)!==null&&t!==void 0?t:0),0)}getPlotHeight(){var e,r,t,i;return!this.rect||!this.rect.height?0:Math.max(this.rect.height-((e=(r=this.layout.margin)===null||r===void 0?void 0:r.t)!==null&&e!==void 0?e:0)-((t=(i=this.layout.margin)===null||i===void 0?void 0:i.b)!==null&&t!==void 0?t:0),0)}updateAxisPositions(){var e=this.getPlotWidth(),r=this.getPlotHeight();this.chartUtils.updateFigureAxes(this.layout,this.figure,this.theme,t=>this.getAxisRangeParser(t,this.formatter),e,r)}updateLayoutFormats(){if(this.formatter){var e=this.chartUtils.getAxisFormats(this.figure,this.formatter);e.forEach((r,t)=>{x.debug("Assigning ".concat(t),this.layout[t],r);var i=this.layout[t];i!=null?Object.assign(i,r):x.debug("Ignoring null layout.".concat(t))})}}setDataArrayForSeries(e,r,t){var{name:i,plotStyle:n}=e,a=this.seriesDataMap.get(i),l=this.chartUtils.getPlotlyProperty(n,r);a&&Oe(a,l,t)}cleanSeries(e){var{dh:r}=this,{name:t,plotStyle:i}=e,n=this.seriesDataMap.get(t);if(n!=null){if(i===r.plot.SeriesPlotStyle.HISTOGRAM){var{xLow:a,xHigh:l}=n;if(a&&l&&a.length===l.length){for(var o=[],u=0;u<a.length;u+=1)o.push(l[u]-a[u]);n.width=o}}else if(i===r.plot.SeriesPlotStyle.LINE||i===r.plot.SeriesPlotStyle.ERROR_BAR||i===r.plot.SeriesPlotStyle.BAR){var{x:d,xLow:p,xHigh:f,y:v,yLow:c,yHigh:h}=n;p&&f&&p!==d&&(n.error_x=L.getPlotlyErrorBars(d,p,f,this.theme)),c&&h&&c!==v&&(n.error_y=L.getPlotlyErrorBars(v,c,h,this.theme))}else if(i===r.plot.SeriesPlotStyle.TREEMAP){var{ids:m,labels:g}=n;m!==void 0&&g===void 0&&(n.labels=m)}}}getData(){return this.data}getLayout(){return this.layout}getFilterColumnMap(){return new Map(this.filterColumnMap)}isFilterRequired(){return this.oneClicks.find(e=>e.requireAllFiltersToDisplay)!=null}setFilter(e){var r=this;if(this.oneClicks.length===0){x.warn("Trying to set a filter, but no one click!");return}x.debug("setFilter",e);for(var t=function(){var a=r.oneClicks[i],{columns:l}=a,o=new Set([...e.keys(),...r.lastFilter.keys()]);o.forEach(u=>{var d=e.get(u);r.lastFilter.get(u)!==d&&l.find(p=>p.name===u)!=null&&a.setValueForColumn(u,d)})},i=0;i<this.oneClicks.length;i+=1)t();this.lastFilter=new Map(e)}setFigure(e){this.close(),this.figure=e,this.setTitle(this.getDefaultTitle()),this.initAllSeries(),this.updateAxisPositions(),this.startListeningFigure(),this.listeners.length>0&&this.subscribeFigure()}updateSettings(e){this.settings=e}}V(ne,"ADD_SERIES_DEBOUNCE",50);const Ee=ne;function Te(s,e,r,t,i,n,a){try{var l=s[n](a),o=l.value}catch(u){r(u);return}l.done?e(o):Promise.resolve(o).then(t,i)}function se(s){return function(){var e=this,r=arguments;return new Promise(function(t,i){var n=s.apply(e,r);function a(o){Te(n,t,i,a,l,"next",o)}function l(o){Te(n,t,i,a,l,"throw",o)}a(void 0)})}}class me{static makeModelFromSettings(e,r,t,i){return se(function*(){var n=yield me.makeFigureFromSettings(e,r,t);return new Ee(e,n,i,r)})()}static makeFigureFromSettings(e,r,t){return se(function*(){var i=yield t.copy();return i.applyCustomColumns(t.customColumns),i.applyFilter(t.filter),i.applySort(t.sort),e.plot.Figure.create(new L(e).makeFigureSettings(r,i))})()}static makeModel(e,r,t,i){return se(function*(){return new Ee(e,t,i,r)})()}}const wt=me;function bt(s){return s.setFigure!==void 0}function ae(s,e,r){return e=ke(e),e in s?Object.defineProperty(s,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):s[e]=r,s}function ke(s){var e=ze(s,"string");return typeof e=="symbol"?e:String(e)}function ze(s,e){if(typeof s!="object"||s===null)return s;var r=s[Symbol.toPrimitive];if(r!==void 0){var t=r.call(s,e||"default");if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(s)}class Be extends Error{constructor(e,r){super("".concat(r," can't be empty (on pending row ").concat(e+1,")")),ae(this,"isMissingKey",!0),ae(this,"rowIndex",void 0),ae(this,"columnName",void 0),this.rowIndex=e,this.columnName=r}}const je=Be;function De(s,e){var r=Object.keys(s);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(s);e&&(t=t.filter(function(i){return Object.getOwnPropertyDescriptor(s,i).enumerable})),r.push.apply(r,t)}return r}function X(s){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?De(Object(r),!0).forEach(function(t){y(s,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(r)):De(Object(r)).forEach(function(t){Object.defineProperty(s,t,Object.getOwnPropertyDescriptor(r,t))})}return s}function ye(s,e,r,t,i,n,a){try{var l=s[n](a),o=l.value}catch(u){r(u);return}l.done?e(o):Promise.resolve(o).then(t,i)}function B(s){return function(){var e=this,r=arguments;return new Promise(function(t,i){var n=s.apply(e,r);function a(o){ye(n,t,i,a,l,"next",o)}function l(o){ye(n,t,i,a,l,"throw",o)}a(void 0)})}}function y(s,e,r){return e=qe(e),e in s?Object.defineProperty(s,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):s[e]=r,s}function qe(s){var e=Ke(s,"string");return typeof e=="symbol"?e:String(e)}function Ke(s,e){if(typeof s!="object"||s===null)return s;var r=s[Symbol.toPrimitive];if(r!==void 0){var t=r.call(s,e||"default");if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(s)}var N=re.module("IrisGridTableModel"),We=150,Ze=0,Qe=[];function ee(s){return s.table!==void 0}class Y extends P{seekRow(e,r,t,i,n,a,l){throw new Error("Method not implemented.")}export(){throw new Error("Method not implemented.")}columnStatistics(e){throw new Error("Method not implemented.")}get customColumns(){return[]}set customColumns(e){throw new Error("Method not implemented.")}get formatColumns(){return[]}set formatColumns(e){throw new Error("Method not implemented.")}updateFrozenColumns(e){throw new Error("Method not implemented.")}get rollupConfig(){throw new Error("Method not implemented.")}set rollupConfig(e){throw new Error("Method not implemented.")}get selectDistinctColumns(){throw new Error("Method not implemented.")}set selectDistinctColumns(e){throw new Error("Method not implemented.")}get columns(){return this.table.columns}constructor(e,r){var t,i,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new ie(e),a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;super(e),y(this,"dh",void 0),y(this,"irisGridUtils",void 0),y(this,"tableUtils",void 0),y(this,"irisFormatter",void 0),y(this,"inputTable",void 0),y(this,"subscription",void 0),y(this,"table",void 0),y(this,"viewport",void 0),y(this,"viewportData",void 0),y(this,"formattedStringData",void 0),y(this,"pendingStringData",void 0),y(this,"isSaveInProgress",void 0),y(this,"totalsTable",void 0),y(this,"totalsTablePromise",void 0),y(this,"totals",void 0),y(this,"totalsDataMap",void 0),y(this,"pendingNewDataMap",void 0),y(this,"pendingNewRowCount",0),y(this,"_columnHeaderGroupMap",new Map),y(this,"columnHeaderParentMap",new Map),y(this,"_columnHeaderMaxDepth",null),y(this,"_columnHeaderGroups",[]),y(this,"_movedColumns",null),y(this,"getMemoizedInitialMovedColumns",G(l=>{var o;if(!l)return[];var u=[],{groupMap:d}=k.parseColumnHeaderGroups(this,(o=l?.columnGroups)!==null&&o!==void 0?o:[]),p=(w,R)=>{var M=this.getColumnIndexByName(w);if(M==null)throw new Error("Unknown layout hint column: ".concat(w));var S=Q.getVisibleIndex(M,u);u=Q.moveItem(S,R,u)},f=(w,R)=>{var M=d.get(w);if(M==null)throw new Error("Unknown layout hint group: ".concat(w));var S=M.getVisibleRange(u);u=Q.moveRange(S,R,u)},{frontColumns:v=[],backColumns:c=[],frozenColumns:h=[]}=l;if(v.length||c.length||h.length){var m=new Set,g=0;h.forEach(w=>{if(m.has(w))throw new Error("Column specified in multiple layout hints: ".concat(w));p(w,g),g+=1}),v.forEach(w=>{if(m.has(w))throw new Error("Column specified in multiple layout hints: ".concat(w));p(w,g),g+=1});var C=this.columnMap.size-1;c.forEach(w=>{if(m.has(w))throw new Error("Column specified in multiple layout hints: ".concat(w));p(w,C),C-=1})}var b=l?.columnGroups;if(b){var T=[...d.values()];T.sort((w,R)=>w.depth-R.depth),T.forEach(w=>{var R=w.children[0],M=this.getColumnIndexByName(R),S;if(M!=null)S=Q.getVisibleIndex(M,u);else{var _=d.get(R);if(!_)throw new Error("Unknown column ".concat(R," in group ").concat(w.name));var $=_.getVisibleRange(u);[,S]=$}for(var U=1;U<w.children.length;U+=1){var O=w.children[U],H=d.get(O),ve=this.getColumnIndexByName(O);if(H){var Ne=H.getVisibleRange(u)[0]<S,pe=Ne?S-H.childIndexes.length+1:S+1;f(O,pe),S=pe+H.childIndexes.length-1}else if(ve!=null){var Ve=Q.getVisibleIndex(ve,u)<S,ge=Ve?S:S+1;p(O,ge),S=ge}}})}return this._movedColumns=u,u})),y(this,"getMemoizedInitialColumnHeaderGroups",G(l=>{var o;return k.parseColumnHeaderGroups(this,(o=l?.columnGroups)!==null&&o!==void 0?o:[]).groups})),y(this,"getMemoizedColumnMap",G(l=>{var o=new Map;return l.forEach(u=>o.set(u.name,u)),o})),y(this,"getColumnIndicesByNameMap",G(l=>{var o=new Map;return l.forEach((u,d)=>{var{name:p}=u;return o.set(p,d)}),o})),y(this,"setViewport",ce((l,o,u)=>{if(o<l){N.error("Invalid viewport",l,o);return}var{viewport:d}=this;if(d!=null&&d.top===l&&d.bottom===o&&d.columns===u){N.debug2("Ignoring duplicate viewport",d);return}this.viewport={top:l,bottom:o,columns:u},N.debug2("setViewport",this.viewport),this.applyViewport()},We)),y(this,"applyViewport",ce(()=>{if(this.viewport){N.debug2("applyViewport",this.viewport);var{top:l,bottom:o,columns:u}=this.viewport,[d,p]=this.getCachedViewportRowRange(l,o);this.applyBufferedViewport(d,p,u)}},Ze,{leading:!1})),y(this,"getCachedFormattedString",fe((l,o,u,d,p)=>l.getFormattedString(o,u,d,p),{max:1e4})),y(this,"getCachedCustomColumnFormatFlag",fe(Ge.isCustomColumnFormatDefined,{max:1e4})),y(this,"getCachedViewportRowRange",G((l,o)=>{var u=o-l,d=Math.max(0,l-u*Y.ROW_BUFFER_PAGES),p=o+u*Y.ROW_BUFFER_PAGES;return[d,p]})),y(this,"getCachedPendingErrors",G((l,o,u)=>{var d=new Map;return l.forEach((p,f)=>{for(var{data:v}=p,c=0;c<u;c+=1)if(!v.has(c)){var h;d.has(f)||d.set(f,[]),(h=d.get(f))===null||h===void 0||h.push(new je(f,o[c].name))}}),d})),this.handleTableDisconnect=this.handleTableDisconnect.bind(this),this.handleTableReconnect=this.handleTableReconnect.bind(this),this.handleTableUpdate=this.handleTableUpdate.bind(this),this.handleTotalsUpdate=this.handleTotalsUpdate.bind(this),this.handleRequestFailed=this.handleRequestFailed.bind(this),this.handleCustomColumnsChanged=this.handleCustomColumnsChanged.bind(this),this.dh=e,this.irisFormatter=n,this.irisGridUtils=new k(e),this.inputTable=a,this.subscription=null,this.table=r,this.tableUtils=new I(e),this.viewport=null,this.viewportData=null,this.formattedStringData=[],this.pendingStringData=[],this.isSaveInProgress=!1,this.totalsTable=null,this.totalsTablePromise=null,this.totals=null,this.totalsDataMap=null,this.pendingNewDataMap=new Map,this.pendingNewRowCount=0,this.columnHeaderGroups=k.parseColumnHeaderGroups(this,(t=(i=this.layoutHints)===null||i===void 0?void 0:i.columnGroups)!==null&&t!==void 0?t:[]).groups}close(){this.table.close(),this.totalsTable!==null&&this.totalsTable.close(),this.totalsTablePromise!==null&&this.totalsTablePromise.cancel()}startListening(){super.startListening();var{dh:e}=this;this.table.addEventListener(e.Table.EVENT_DISCONNECT,this.handleTableDisconnect),this.table.addEventListener(e.Table.EVENT_RECONNECT,this.handleTableReconnect),this.table.addEventListener(e.Table.EVENT_UPDATED,this.handleTableUpdate),this.table.addEventListener(e.Client.EVENT_REQUEST_FAILED,this.handleRequestFailed),this.table.addEventListener(e.Table.EVENT_CUSTOMCOLUMNSCHANGED,this.handleCustomColumnsChanged),this.totalsTable!=null&&this.addTotalsListeners(this.totalsTable),this.applyViewport()}stopListening(){super.stopListening();var{dh:e}=this;this.table.removeEventListener(e.Table.EVENT_DISCONNECT,this.handleTableDisconnect),this.table.removeEventListener(e.Table.EVENT_RECONNECT,this.handleTableReconnect),this.table.removeEventListener(e.Table.EVENT_UPDATED,this.handleTableUpdate),this.table.removeEventListener(e.Client.EVENT_REQUEST_FAILED,this.handleRequestFailed),this.table.removeEventListener(e.Table.EVENT_CUSTOMCOLUMNSCHANGED,this.handleCustomColumnsChanged),this.totalsTable!=null&&this.removeTotalsListeners(this.totalsTable),this.closeSubscription()}addTotalsListeners(e){var{dh:r}=this;e.addEventListener(r.Table.EVENT_UPDATED,this.handleTotalsUpdate),e.setViewport(0,0)}removeTotalsListeners(e){var{dh:r}=this;e.removeEventListener(r.Table.EVENT_UPDATED,this.handleTotalsUpdate)}handleTableDisconnect(){this.dispatchEvent(new A(P.EVENT.DISCONNECT))}handleTableReconnect(){this.dispatchEvent(new A(P.EVENT.RECONNECT))}handleTableUpdate(e){this.copyViewportData(e.detail),this.dispatchEvent(new A(P.EVENT.UPDATED))}handleTotalsUpdate(e){this.copyTotalsData(e.detail),this.dispatchEvent(new A(P.EVENT.UPDATED))}handleRequestFailed(e){this.dispatchEvent(new A(P.EVENT.REQUEST_FAILED,e))}handleCustomColumnsChanged(){this.dispatchEvent(new A(P.EVENT.COLUMNS_CHANGED,{detail:this.columns}))}get rowCount(){var e,r,t;return this.table.size+this.pendingNewRowCount+((e=(r=this.totals)===null||r===void 0||(t=r.operationOrder)===null||t===void 0?void 0:t.length)!==null&&e!==void 0?e:0)}get pendingDataErrors(){var e,r;return this.getCachedPendingErrors(this.pendingNewDataMap,this.columns,(e=(r=this.inputTable)===null||r===void 0?void 0:r.keyColumns.length)!==null&&e!==void 0?e:0)}get pendingDataMap(){return this.pendingNewDataMap}set pendingDataMap(e){e!==this.pendingNewDataMap&&(e.forEach((r,t)=>{if(!k.isValidIndex(t))throw new Error("Invalid rowIndex ".concat(t));var{data:i}=r;i.forEach((n,a)=>{if(!k.isValidIndex(a))throw new Error("Invalid columnIndex ".concat(a))})}),this.pendingNewDataMap=e,this.pendingNewRowCount=Math.max(this.pendingNewRowCount,this.maxPendingDataRow),this.formattedStringData=[],this.dispatchEvent(new A(P.EVENT.PENDING_DATA_UPDATED)))}get pendingRowCount(){return this.pendingNewRowCount}set pendingRowCount(e){e!==this.pendingNewRowCount&&(this.pendingNewRowCount=Math.max(0,e,this.maxPendingDataRow),this.dispatchEvent(new A(P.EVENT.UPDATED)))}get maxPendingDataRow(){return this.pendingNewDataMap.size>0?Math.max(...this.pendingNewDataMap.keys())+1:0}get columnCount(){return this.columns.length}get floatingBottomRowCount(){var e,r,t;return this.totals!=null&&this.totals.showOnTop?0:(e=(r=this.totals)===null||r===void 0||(t=r.operationOrder)===null||t===void 0?void 0:t.length)!==null&&e!==void 0?e:0}get floatingTopRowCount(){var e,r,t;return this.totals!=null&&this.totals.showOnTop&&(e=(r=this.totals)===null||r===void 0||(t=r.operationOrder)===null||t===void 0?void 0:t.length)!==null&&e!==void 0?e:0}get isChartBuilderAvailable(){return!0}get isTotalsAvailable(){return this.table.getTotalsTable!=null}get isEditable(){return!this.isSaveInProgress&&this.inputTable!=null}cacheFormattedValue(e,r,t){this.formattedStringData[e]==null&&(this.formattedStringData[e]=[]),this.formattedStringData[e][r]=t}cachePendingValue(e,r,t){this.pendingStringData[e]==null&&(this.pendingStringData[e]=[]),this.pendingStringData[e][r]=t}clearPendingValue(e,r){var t=this.pendingStringData[e];t!=null&&delete t[r]}textValueForCell(e,r){var t,i;if(((t=this.pendingStringData[e])===null||t===void 0?void 0:t[r])!==void 0)return this.pendingStringData[e][r];if(((i=this.formattedStringData[e])===null||i===void 0?void 0:i[r])===void 0){var n,a=this.valueForCell(e,r);if(a===null)return null;if(a===void 0)return;var l=(n=this.totalsColumn(e,r))!==null&&n!==void 0?n:this.columns[e],o=this.getCachedCustomColumnFormatFlag(this.formatter,l.name,l.type),u;if(!o){var d=this.formatForCell(e,r);d?.formatString!=null&&(u=d)}var p=this.displayString(a,l.type,l.name,u);this.cacheFormattedValue(e,r,p)}return this.formattedStringData[e][r]}textForCell(e,r){var t,i=this.textValueForCell(e,r);if(i==null&&this.isKeyColumn(e)){var n=this.pendingRow(r);if(n!=null&&this.pendingDataMap.has(n))return"*"}if(I.isTextType((t=this.columns[e])===null||t===void 0?void 0:t.type)){if(i===null)return"null";if(i==="")return"empty"}return i??""}truncationCharForCell(e){var r=this.columns[e],{type:t}=r;if(I.isNumberType(t)&&this.formatter.truncateNumbersWithPound)return"#"}colorForCell(e,r,t){var i=this.dataForCell(e,r);if(i){var{format:n,value:a}=i;if(a==null||a==="")return D(t.nullStringColor),t.nullStringColor;if(n&&n.color)return n.color;if(this.isPendingRow(r))return D(t.pendingTextColor),t.pendingTextColor;if(a!=null){var l,o=(l=this.totalsColumn(e,r))!==null&&l!==void 0?l:this.columns[e];if(I.isDateType(o.type)||o.name==="Date")return D(t.dateColor),t.dateColor;if(I.isNumberType(o.type))return a>0?(D(t.positiveNumberColor),t.positiveNumberColor):a<0?(D(t.negativeNumberColor),t.negativeNumberColor):(D(t.zeroNumberColor),t.zeroNumberColor)}}else if(this.isPendingRow(r)&&this.isKeyColumn(e))return D(t.errorTextColor),t.errorTextColor;return t.textColor}backgroundColorForCell(e,r){var t,i;return(t=(i=this.formatForCell(e,r))===null||i===void 0?void 0:i.backgroundColor)!==null&&t!==void 0?t:null}textAlignForCell(e){var r=this.columns[e],{type:t}=r;return I.isNumberType(t)?"right":I.isDateType(t)||r.name==="Date"?"center":"left"}dataBarOptionsForCell(e,r,t){var i,n,a,l,o=this.formatForCell(e,r);D(o);var{axis:u,direction:d,max:p,min:f,valuePlacement:v,value:c,marker:h}=o.formatDataBar,{positiveColor:m,negativeColor:g,markerColor:C,opacity:b}=o.formatDataBar;m=(i=m)!==null&&i!==void 0?i:t.positiveBarColor,g=(n=g)!==null&&n!==void 0?n:t.negativeBarColor;var T=(a=o.color)!==null&&a!==void 0?a:c>=0?m:g;T.includes(",")&&(T=T.split(",")),C=(l=C)!==null&&l!==void 0?l:t.markerBarColor,b=v.toLowerCase()==="overlap"?.5:b;var w={axis:u.toLowerCase(),direction:d.toUpperCase(),columnMax:p,columnMin:f,opacity:b,color:T,valuePlacement:v.toLowerCase(),value:c,markers:[{value:h,color:C}]};return w}renderTypeForCell(e,r){var t=this.formatForCell(e,r);return t?.formatDataBar!=null?"dataBar":"text"}textForColumnHeader(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=this.columnAtDepth(e,r);return oe(t)?t.isNew?"":t.name:t?.name}colorForColumnHeader(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,t=this.columnAtDepth(e,r);if(oe(t)){var i;return(i=t.color)!==null&&i!==void 0?i:null}return null}getColumnHeaderGroup(e,r){var t=this.columnAtDepth(e,r);if(oe(t))return t}getColumnHeaderParentGroup(e,r){var t,i;return this.columnHeaderParentMap.get((t=(i=this.columnAtDepth(e,r))===null||i===void 0?void 0:i.name)!==null&&t!==void 0?t:"")}columnAtDepth(e){var r,t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;if(t===0)return this.columns[e];var i=(r=this.columns[e])===null||r===void 0?void 0:r.name,n=this.columnHeaderParentMap.get(i);if(n){for(var a=n.depth;a<t;){if(n=this.columnHeaderParentMap.get(n.name),!n)return;a=n.depth}if(n.depth===t)return n}}textForRowFooter(e){var r=this.totalsRow(e);return r!=null&&this.totals?this.totals.operationOrder[r]:""}get initialMovedColumns(){var e;return this.getMemoizedInitialMovedColumns((e=this.layoutHints)!==null&&e!==void 0?e:void 0)}get initialMovedRows(){return Qe}get initialColumnHeaderGroups(){var e;return this.getMemoizedInitialColumnHeaderGroups((e=this.layoutHints)!==null&&e!==void 0?e:void 0)}get columnMap(){return this.getMemoizedColumnMap(this.table.columns)}get columnHeaderMaxDepth(){var e;return(e=this._columnHeaderMaxDepth)!==null&&e!==void 0?e:1}set columnHeaderMaxDepth(e){this._columnHeaderMaxDepth=e}get columnHeaderGroupMap(){return this._columnHeaderGroupMap}get columnHeaderGroups(){return this._columnHeaderGroups}set columnHeaderGroups(e){if(e!==this._columnHeaderGroups){var{groups:r,maxDepth:t,parentMap:i,groupMap:n}=k.parseColumnHeaderGroups(this,e??this.initialColumnHeaderGroups);this._columnHeaderGroups=r,this.columnHeaderMaxDepth=t,this.columnHeaderParentMap=i,this._columnHeaderGroupMap=n}}get groupedColumns(){return[]}row(e){var r,t,i,n,a,l,o,u,d,p,f=(r=(t=this.totals)===null||t===void 0||(i=t.operationOrder)===null||i===void 0?void 0:i.length)!==null&&r!==void 0?r:0,v=(n=(a=this.totals)===null||a===void 0?void 0:a.showOnTop)!==null&&n!==void 0?n:!1,c=this.totalsRow(e);if(c!=null){var h,m,g,C=(h=this.totals)===null||h===void 0?void 0:h.operationOrder[c];return D(C),(m=(g=this.totalsDataMap)===null||g===void 0?void 0:g.get(C))!==null&&m!==void 0?m:null}var b=this.pendingRow(e);if(b!=null){var T;return(T=this.pendingNewDataMap.get(b))!==null&&T!==void 0?T:null}var w=(l=(o=this.viewportData)===null||o===void 0?void 0:o.offset)!==null&&l!==void 0?l:0,R=(v?e-f:e)-w;return(u=(d=this.viewportData)===null||d===void 0||(p=d.rows)===null||p===void 0?void 0:p[R])!==null&&u!==void 0?u:null}totalsColumn(e,r){var t,i,n,a,l=this.totalsRow(r);if(l==null)return null;var o=(t=this.totals)===null||t===void 0?void 0:t.operationOrder[l],u=(i=(n=this.totals)===null||n===void 0?void 0:n.defaultOperation)!==null&&i!==void 0?i:we.SUM,d=this.columns[e];return(a=this.totalsTable)===null||a===void 0?void 0:a.columns.find(p=>{var f;return p.name==="".concat(d.name,"__").concat(o)||(o===u||((f=this.totals)===null||f===void 0?void 0:f.operationOrder.length)===1)&&p.name===d.name})}totalsRow(e){var r,t,i,n,a,l=(r=(t=this.totals)===null||t===void 0||(i=t.operationOrder)===null||i===void 0?void 0:i.length)!==null&&r!==void 0?r:0,o=(n=(a=this.totals)===null||a===void 0?void 0:a.showOnTop)!==null&&n!==void 0?n:!1,u=o?e:e-this.table.size;return u>=0&&u<l?u:null}pendingRow(e){var r=e-this.floatingTopRowCount-this.table.size;return r>=0&&r<this.pendingNewRowCount?r:null}isTotalsRow(e){return this.totalsRow(e)!=null}isPendingRow(e){return this.pendingRow(e)!=null}dataForCell(e,r){var t;return(t=this.row(r))===null||t===void 0?void 0:t.data.get(e)}formatForCell(e,r){var t;return(t=this.dataForCell(e,r))===null||t===void 0?void 0:t.format}valueForCell(e,r){var t=this.dataForCell(e,r);if(t){var i;return(i=t.value)!==null&&i!==void 0?i:null}}copyViewportData(e){if(e==null){N.warn("invalid data!");return}this.viewportData=this.extractViewportData(e),this.formattedStringData=[]}copyTotalsData(e){var r,t,i,n=this;if(e==null){N.warn("invalid data!");return}var{columns:a,rows:l}=e;if(l.length!==1){N.error("Unexpected number of rows received for totals table, ignoring update");return}for(var o=new Map,u=l[0],d=(r=(t=this.totals)===null||t===void 0?void 0:t.defaultOperation)!==null&&r!==void 0?r:we.SUM,p=(i=this.totals)===null||i===void 0?void 0:i.operationMap,f=function(){var h,m,g=a[v],[C,b=(h=p==null||(m=p[C])===null||m===void 0?void 0:m[0])!==null&&h!==void 0?h:d]=g.name.split("__");o.has(b)||o.set(b,{data:new Map});var{data:T}=o.get(b),w=n.columns.findIndex(R=>R.name===C);T.set(w,{value:u.get(g),format:u.getFormat(g)})},v=0;v<a.length;v+=1)f();N.debug2("copyTotalsData",o),this.totalsDataMap=o,this.formattedStringData=[]}getColumnIndexByName(e){return this.getColumnIndicesByNameMap(this.columns).get(e)}extractViewportData(e){for(var r={offset:e.offset,rows:[]},{columns:t}=e,i=0;i<e.rows.length;i+=1){var n=e.rows[i],a=this.extractViewportRow(n,t);r.rows.push(a)}return r}extractViewportRow(e,r){for(var t=new Map,i=0;i<r.length;i+=1){var n=r[i],a=this.getColumnIndexByName(n.name);D(a),t.set(a,{value:e.get(n),format:e.getFormat(n)})}return{data:t}}closeSubscription(){N.debug2("closeSubscription",this.subscription),this.subscription&&(this.subscription.close(),this.subscription=null),this.setViewport.cancel(),this.applyViewport.cancel()}get filter(){return this.table.filter}set filter(e){this.closeSubscription(),this.table.applyFilter(e),this.applyViewport()}get formatter(){return this.irisFormatter}set formatter(e){this.irisFormatter=e,this.formattedStringData=[],this.dispatchEvent(new A(P.EVENT.FORMATTER_UPDATED))}displayString(e,r){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"",i=arguments.length>3?arguments[3]:void 0;return this.getCachedFormattedString(this.formatter,e,r,t,i)}get sort(){return this.table.sort}set sort(e){this.closeSubscription(),this.table.applySort(e),this.applyViewport()}set totalsConfig(e){if(N.debug("set totalsConfig",e),e!==this.totals){if(this.totals=e,this.formattedStringData=[],this.totalsTablePromise!=null&&this.totalsTablePromise.cancel(),this.setTotalsTable(null),e==null){this.dispatchEvent(new A(P.EVENT.UPDATED));return}this.totalsTablePromise=te.makeCancelable(this.table.getTotalsTable(e),r=>r.close()),this.totalsTablePromise.then(r=>{this.totalsTablePromise=null,this.setTotalsTable(r)}).catch(r=>{te.isCanceled(r)||(N.error("Unable to set next totalsTable",r),this.totalsTablePromise=null,this.dispatchEvent(new A(P.EVENT.REQUEST_FAILED,{detail:r})))})}}setTotalsTable(e){N.debug("setTotalsTable",e),this.totalsTable!==null&&(this.listenerCount>0&&this.removeTotalsListeners(this.totalsTable),this.totalsTable.close()),this.totalsTable=e,this.totalsDataMap=null,this.listenerCount>0&&this.totalsTable!=null&&this.addTotalsListeners(this.totalsTable)}applyBufferedViewport(e,r,t){N.debug2("applyBufferedViewport",e,r,t),this.subscription==null?(N.debug2("applyBufferedViewport creating new subscription"),this.subscription=this.table.setViewport(e,r,t)):(N.debug2("applyBufferedViewport using existing subscription"),this.subscription.setViewport(e,r,t))}snapshot(e){var r=arguments,t=this;return B(function*(){var i=r.length>1&&r[1]!==void 0?r[1]:!1,n=r.length>2&&r[2]!==void 0?r[2]:_=>_,a=r.length>3&&r[3]!==void 0?r[3]:!0;if(t.subscription==null)throw new Error("No subscription available");var l=a?F.consolidate(e):e;if(!k.isValidSnapshotRanges(l))throw new Error("Invalid snapshot ranges ".concat(e));for(var o=new Set,u=[],d=new Set,p=0;p<l.length;p+=1){var f=l[p];D(f.endRow),D(f.startRow);for(var v=f.startRow;v<=f.endRow&&v<t.floatingTopRowCount;v+=1)o.add(v);f.endRow>=t.floatingTopRowCount&&f.startRow<=t.floatingTopRowCount+t.table.size&&u.push(new F(f.startColumn,Math.min(Math.max(0,f.startRow-t.floatingTopRowCount)),f.endColumn,Math.min(Math.max(0,f.endRow-t.floatingTopRowCount),t.table.size-t.floatingTopRowCount)));for(var c=Math.max(f.startRow,t.floatingTopRowCount+t.table.size);c<=f.endRow&&c<t.floatingTopRowCount+t.table.size+t.floatingBottomRowCount;c+=1)d.add(c)}var h=k.columnsFromRanges(l,t.columns),m=[];i&&m.push(h.map(_=>_.name));for(var g=[...o].sort(),C=function*(){var $=g[b],U=h.map(O=>{var H=t.getColumnIndexByName(O.name);return D(H),n(t.valueForCell(H,$),O)});i&&U.push(t.textForRowFooter($)),m.push(U)},b=0;b<g.length;b+=1)yield*C();if(u.length>0){var T=t.irisGridUtils.rangeSetFromRanges(u),w=yield t.subscription.snapshot(T,h);m.push(...w.rows.map(_=>h.map($=>n(_.get($),$))))}for(var R=[...d].sort(),M=function*(){var $=R[S],U=h.map(O=>{var H=t.getColumnIndexByName(O.name);return D(H),n(t.valueForCell(H,$),O)});i&&U.push(t.textForRowFooter($)),m.push(U)},S=0;S<R.length;S+=1)yield*M();return m})()}textSnapshot(e){var r=arguments,t=this;return B(function*(){var i=r.length>1&&r[1]!==void 0?r[1]:!1,n=r.length>2&&r[2]!==void 0?r[2]:l=>"".concat(l);N.debug2("textSnapshot",e,i);var a=yield t.snapshot(e,i,n,!1);return a.map(l=>l.join(" ")).join(`
|
|
2
|
-
`)})()}valuesTable(e){var r=this;return B(function*(){var t=null;try{return t=yield r.table.copy(),t.applyFilter([]),t.applySort([]),t.selectDistinct(Array.isArray(e)?e:[e])}finally{t?.close()}})()}isColumnMovable(e,r){if(e<0||e>=this.columnCount)return!1;if(r>0)return!0;var t=this.columns[e].name;return this.frontColumns.includes(t)||this.backColumns.includes(t)||this.frozenColumns.includes(t)||!t?!1:!this.isKeyColumn(e)}isColumnSortable(e){var r;return(r=this.columns[e].isSortable)!==null&&r!==void 0?r:!0}isKeyColumn(e){var r,t;return e<((r=(t=this.inputTable)===null||t===void 0?void 0:t.keyColumns.length)!==null&&r!==void 0?r:0)}isRowMovable(){return!1}isEditableRange(e){if(this.inputTable==null||!F.isBounded(e))return!1;var r=this.isPendingRow(e.startRow)&&this.isPendingRow(e.endRow);return!(!(r||this.inputTable.keyColumns.length!==0&&e.startColumn>=this.inputTable.keyColumns.length&&e.endColumn>=this.inputTable.keyColumns.length)||e.startRow<this.floatingTopRowCount||e.startRow>=this.floatingTopRowCount+this.table.size+this.pendingRowCount||e.endRow>=this.floatingTopRowCount+this.table.size+this.pendingRowCount)}isDeletableRange(e){return this.inputTable!=null&&e.startRow!=null&&e.endRow!=null&&e.startRow>=this.floatingTopRowCount&&e.startRow<this.floatingTopRowCount+this.table.size+this.pendingRowCount&&e.endRow<this.floatingTopRowCount+this.table.size+this.pendingRowCount}isEditableRanges(e){return e.every(r=>this.isEditableRange(r))}isDeletableRanges(e){return e.every(r=>this.isDeletableRange(r))}getTableAreaRange(){return new F(null,this.floatingTopRowCount,null,this.floatingTopRowCount+this.table.size-1)}getPendingAreaRange(){return new F(null,this.floatingTopRowCount+this.table.size,null,this.floatingTopRowCount+this.table.size+this.pendingNewRowCount-1)}setValueForCell(e,r,t){var i=this;return B(function*(){return i.setValueForRanges([new F(e,r,e,r)],t)})()}setValueForRanges(e,r){var t=this;return B(function*(){if(!t.isEditableRanges(e))throw new Error("Uneditable ranges ".concat(e));try{var i=new Set,n=[];F.forEachCell(e,(h,m)=>{var g=t.columns[h];if(i.add(g),n[h]===void 0){var C=t.tableUtils.makeValue(g.type,r,t.formatter.timeZone);n[h]=C!=null?t.displayString(C,g.type,g.name):null}t.cachePendingValue(h,m,n[h])});var a=t.getPendingAreaRange(),l=e.map(h=>F.intersection(a,h)).filter(h=>h!=null).map(h=>(D(h),F.offset(h,0,-(t.floatingTopRowCount+t.table.size))));if(l.length>0){var o=new Map(t.pendingNewDataMap);F.forEachCell(l,(h,m)=>{o.has(m)||o.set(m,{data:new Map});var g=t.columns[h],C=o.get(m);D(C);var{data:b}=C,T=new Map(b),w=t.tableUtils.makeValue(g.type,r,t.formatter.timeZone);w!=null?T.set(h,{value:w}):T.delete(h),T.size>0?o.set(m,X(X({},C),{},{data:T})):o.delete(m)}),t.pendingDataMap=o}t.dispatchEvent(new A(P.EVENT.UPDATED));var u=t.getTableAreaRange(),d=e.map(h=>F.intersection(u,h)).filter(h=>h!=null);if(d.length>0){var p,f=yield t.snapshot(d.map(h=>{var m,g;return new F(null,(m=h?.startRow)!==null&&m!==void 0?m:null,null,(g=h?.endRow)!==null&&g!==void 0?g:null)})),v=f.map(h=>{for(var m={},g=0;g<t.columns.length;g+=1)m[t.columns[g].name]=h[g];return i.forEach(C=>{m[C.name]=t.tableUtils.makeValue(C.type,r,t.formatter.timeZone)}),m}),c=yield(p=t.inputTable)===null||p===void 0?void 0:p.addRows(v);N.debug("setValueForRanges(",e,",",r,") set tableRanges",d,"result",c)}F.forEachCell(e,(h,m)=>{var g=n[h];D(g),t.cacheFormattedValue(h,m,g)})}catch(h){N.error("Unable to set ranges",e,r,h)}finally{F.forEachCell(e,(h,m)=>{t.clearPendingValue(h,m)})}})()}setValues(){var e=arguments,r=this;return B(function*(){var t=e.length>0&&e[0]!==void 0?e[0]:[];if(N.debug("setValues(",t,")"),!t.every(v=>{var c,h;return r.isEditableRange(F.makeCell((c=v.column)!==null&&c!==void 0?c:v.x,(h=v.row)!==null&&h!==void 0?h:v.y))}))throw new Error("Uneditable ranges ".concat(t));try{var i=new Map(r.pendingNewDataMap);t.forEach(v=>{var c,h,{text:m}=v,g=(c=v.column)!==null&&c!==void 0?c:v.x,C=(h=v.row)!==null&&h!==void 0?h:v.y,b=r.columns[g],T=r.tableUtils.makeValue(b.type,m,r.formatter.timeZone),w=T!=null?r.displayString(T,b.type,b.name):null;r.cachePendingValue(g,C,w);var R=r.pendingRow(C);if(R!=null){i.has(R)||i.set(R,{data:new Map});var M=i.get(R);D(M);var{data:S}=M,_=new Map(S);T!=null?_.set(g,{value:T}):_.delete(g),_.size>0?i.set(R,X(X({},M),{},{data:_})):i.delete(R)}}),r.pendingDataMap=i,r.dispatchEvent(new A(P.EVENT.UPDATED));var n=t.reduce((v,c)=>{var h,m,g=(h=c.row)!==null&&h!==void 0?h:c.y;return v.has(g)||v.set(g,[]),(m=v.get(g))===null||m===void 0||m.push(c),v},new Map),a=F.consolidate(t.map(v=>{var c,h;return F.makeCell((c=v.column)!==null&&c!==void 0?c:v.x,(h=v.row)!==null&&h!==void 0?h:v.y)})),l=r.getTableAreaRange(),o=a.map(v=>F.intersection(l,v)).filter(v=>v!=null);if(o.length>0){var u,d=yield r.snapshot(o.map(v=>(D(v),new F(null,v.startRow,null,v.endRow)))),p=d.map((v,c)=>{for(var h=null,m=c,g=0;g<o.length;g+=1){var C=o[g];D(C);var b=F.rowCount([C]);if(m<b){D(C.startRow),h=C.startRow+m;break}m-=b}for(var T={},w=0;w<r.columns.length;w+=1)T[r.columns[w].name]=v[w];D(h);var R=n.get(h);return R?.forEach(M=>{var S,_=r.columns[(S=M.column)!==null&&S!==void 0?S:M.x];T[_.name]=r.tableUtils.makeValue(_.type,M.text,r.formatter.timeZone)}),T});N.info("setValues setting tableRanges",o);var f=yield(u=r.inputTable)===null||u===void 0?void 0:u.addRows(p);N.info("setValues set tableRanges",o,"SUCCESS",f)}t.forEach(v=>{var c,h,{text:m}=v,g=(c=v.column)!==null&&c!==void 0?c:v.x,C=(h=v.row)!==null&&h!==void 0?h:v.y,b=r.columns[g],T=r.tableUtils.makeValue(b.type,m,r.formatter.timeZone),w=T!=null?r.displayString(T,b.type,b.name):null;r.cacheFormattedValue(g,C,w)})}finally{t.forEach(v=>{r.clearPendingValue(v.column,v.row)})}})()}commitPending(){var e=this;return B(function*(){if(e.pendingNewDataMap.size<=0)throw new Error("No pending changes to commit");try{var r,t,i;e.isSaveInProgress=!0;var n=[];e.pendingNewDataMap.forEach(l=>{var o={};l.data.forEach((u,d)=>{var{value:p}=u,f=e.columns[d];o[f.name]=p}),n.push(o)});var a=yield(r=e.inputTable)===null||r===void 0?void 0:r.addRows(n);N.debug("commitPending()",e.pendingNewDataMap,"result",a),e.pendingNewDataMap=new Map,e.pendingNewRowCount=Math.max(0,((t=(i=e.viewport)===null||i===void 0?void 0:i.bottom)!==null&&t!==void 0?t:0)-e.table.size),e.formattedStringData=[],e.dispatchEvent(new A(P.EVENT.PENDING_DATA_UPDATED))}finally{e.isSaveInProgress=!1}})()}editValueForCell(e,r){return this.textValueForCell(e,r)}delete(e){var r=this;return B(function*(){if(!r.isDeletableRanges(e))throw new Error("Undeletable ranges ".concat(e));D(r.inputTable);var{keyColumns:t}=r.inputTable;if(t.length===0)throw new Error("No key columns to allow deletion");var i=r.getPendingAreaRange(),n=e.map(m=>F.intersection(i,m)).filter(m=>m!=null).map(m=>(D(m),F.offset(m,0,-(r.floatingTopRowCount+r.table.size))));if(n.length>0){for(var a=new Map(r.pendingNewDataMap),l=0;l<n.length;l+=1){var o=n[l];D(o.startRow),D(o.endRow);for(var u=o.startRow;u<=o.endRow;u+=1)a.delete(u)}r.pendingNewDataMap=a,r.formattedStringData=[],r.dispatchEvent(new A(P.EVENT.PENDING_DATA_UPDATED)),r.dispatchEvent(new A(P.EVENT.UPDATED))}var d=r.getTableAreaRange(),p=e.map(m=>F.intersection(d,m)).filter(m=>m!=null);if(!(p.length<=0)){var[f,v]=yield Promise.all([r.snapshot(p.map(m=>(D(m),new F(0,m.startRow,t.length-1,m.endRow)))),r.table.copy()]),c=f.map(m=>{for(var g=[],C=0;C<t.length;C+=1){var b=t[C],T=m[C],w=r.tableUtils.makeFilterRawValue(b.type,T),R=b.filter().eq(w);g.push(R)}return g.reduce((M,S)=>{var _;return(_=M?.and(S))!==null&&_!==void 0?_:S})}),h=c.reduce((m,g)=>{var C;return(C=m?.or(g))!==null&&C!==void 0?C:g});v.applyFilter([h]),v.close()}})()}isValidForCell(e,r,t){try{var i=this.columns[e];return this.tableUtils.makeValue(i.type,t,this.formatter.timeZone),!0}catch{return!1}}}y(Y,"ROW_BUFFER_PAGES",1);const Ae=Y;function Re(s,e,r,t,i,n,a){try{var l=s[n](a),o=l.value}catch(u){r(u);return}l.done?e(o):Promise.resolve(o).then(t,i)}function ue(s){return function(){var e=this,r=arguments;return new Promise(function(t,i){var n=s.apply(e,r);function a(o){Re(n,t,i,a,l,"next",o)}function l(o){Re(n,t,i,a,l,"throw",o)}a(void 0)})}}function K(s,e,r){return e=Ye(e),e in s?Object.defineProperty(s,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):s[e]=r,s}function Ye(s){var e=Je(s,"string");return typeof e=="symbol"?e:String(e)}function Je(s,e){if(typeof s!="object"||s===null)return s;var r=s[Symbol.toPrimitive];if(r!==void 0){var t=r.call(s,e||"default");if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(s)}var W=re.module("IrisGridTableModel");class Xe extends Ae{constructor(e,r){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new ie(e),i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;super(e,r,t,i),K(this,"userFrozenColumns",void 0),K(this,"customColumnList",void 0),K(this,"formatColumnList",void 0),K(this,"getMemoizedFrontColumns",G(n=>n??[])),K(this,"getMemoizedBackColumns",G(n=>n??[])),K(this,"getMemoizedFrozenColumns",G((n,a)=>{var l;return(l=a??n)!==null&&l!==void 0?l:[]})),K(this,"getCachedFilterableColumnSet",G(n=>new Set(n.map((a,l)=>l)))),this.customColumnList=[],this.formatColumnList=[]}get isExportAvailable(){return this.table.freeze!=null}get isColumnStatisticsAvailable(){return this.table.getColumnStatistics!=null}get isValuesTableAvailable(){return this.table.selectDistinct!=null&&this.table.copy!=null}get isRollupAvailable(){return this.table.rollup!=null}get isSelectDistinctAvailable(){return this.table.selectDistinct!=null}get isCustomColumnsAvailable(){return this.table.applyCustomColumns!=null}get isFormatColumnsAvailable(){return this.table.applyCustomColumns!=null}get frontColumns(){var e;return this.getMemoizedFrontColumns((e=this.layoutHints)===null||e===void 0?void 0:e.frontColumns)}get backColumns(){var e;return this.getMemoizedBackColumns((e=this.layoutHints)===null||e===void 0?void 0:e.backColumns)}get frozenColumns(){var e;return this.getMemoizedFrozenColumns((e=this.layoutHints)===null||e===void 0?void 0:e.frozenColumns,this.userFrozenColumns)}get layoutHints(){return this.table.layoutHints}get floatingLeftColumnCount(){return this.frozenColumns.length}get description(){return this.table.description}get customColumns(){return this.customColumnList}set customColumns(e){if(W.debug2("set customColumns",e,this.customColumnList,e===this.customColumnList),this.customColumnList.length===0&&e.length===0){W.debug("Ignore empty initial customColumns"),this.customColumnList=e;return}if(this.customColumnList===e){W.debug("Ignore same customColumns");return}this.closeSubscription(),this.customColumnList=e,this.table.applyCustomColumns([...e,...this.formatColumns]),this.applyViewport()}get formatColumns(){return this.formatColumnList}set formatColumns(e){if(W.debug2("set formatColumns",e,this.formatColumnList,e===this.formatColumnList),this.formatColumnList.length===0&&e.length===0){W.debug("Ignore empty initial formatColumns"),this.formatColumnList=e;return}if(this.formatColumnList===e){W.debug("Ignore same formatColumns");return}this.closeSubscription(),this.formatColumnList=e,this.table.applyCustomColumns([...this.customColumns,...e]),this.applyViewport()}updateFrozenColumns(e){this.userFrozenColumns=e,this.dispatchEvent(new A(P.EVENT.TABLE_CHANGED,{detail:this.table}))}get isFilterRequired(){return this.table.isUncoalesced}isFilterable(e){return this.getCachedFilterableColumnSet(this.columns).has(e)}export(){var e=this;return ue(function*(){return e.table.freeze()})()}columnStatistics(e){return this.table.getColumnStatistics(e)}isColumnMovable(e){var r=this.columns[e].name;return this.frontColumns.includes(r)||this.backColumns.includes(r)||this.frozenColumns.includes(r)?!1:!this.isKeyColumn(e)}isColumnFrozen(e){return this.frozenColumns.includes(this.columns[e].name)}delete(e){var r=()=>super.pendingDataMap,t=n=>super.pendingDataMap=n,i=this;return ue(function*(){var n;if(!i.isDeletableRanges(e))throw new Error("Undeletable ranges ".concat(e));D(i.inputTable);var{keyColumns:a}=i.inputTable;if(a.length===0)throw new Error("No key columns to allow deletion");var l=i.getPendingAreaRange(),o=e.map(b=>F.intersection(l,b)).filter(b=>b!=null).map(b=>(D(b),F.offset(b,0,-(i.floatingTopRowCount+i.table.size))));if(o.length>0){for(var u=new Map(r()),d=0;d<o.length;d+=1){var p=o[d];D(p.startRow),D(p.endRow);for(var f=p.startRow;f<=p.endRow;f+=1)u.delete(f)}t(u),i.formattedStringData=[],i.dispatchEvent(new A(P.EVENT.PENDING_DATA_UPDATED)),i.dispatchEvent(new A(P.EVENT.UPDATED))}var v=i.getTableAreaRange(),c=e.map(b=>F.intersection(v,b)).filter(b=>b!=null);if(!(c.length<=0)){var[h,m]=yield Promise.all([i.snapshot(c.map(b=>(D(b),new F(0,b.startRow,a.length-1,b.endRow)))),i.table.copy()]),g=h.map(b=>{for(var T=[],w=0;w<a.length;w+=1){var R=a[w],M=b[w],S=i.tableUtils.makeFilterRawValue(R.type,M),_=R.filter().eq(S);T.push(_)}return T.reduce(($,U)=>{var O;return(O=$?.and(U))!==null&&O!==void 0?O:U})}),C=g.reduce((b,T)=>{var w;return(w=b?.or(T))!==null&&w!==void 0?w:T});m.applyFilter([C]),yield(n=i.inputTable)===null||n===void 0?void 0:n.deleteTable(m),m.close()}})()}seekRow(e,r,t,i,n,a,l){var o=this;return ue(function*(){return o.table.seekRow(e,r,t,i,n,a,l)})()}get isSeekRowAvailable(){return this.table.seekRow!=null}}const et=Xe;function Fe(s,e,r,t,i,n,a){try{var l=s[n](a),o=l.value}catch(u){r(u);return}l.done?e(o):Promise.resolve(o).then(t,i)}function tt(s){return function(){var e=this,r=arguments;return new Promise(function(t,i){var n=s.apply(e,r);function a(o){Fe(n,t,i,a,l,"next",o)}function l(o){Fe(n,t,i,a,l,"throw",o)}a(void 0)})}}function Se(s,e){var r=Object.keys(s);if(Object.getOwnPropertySymbols){var t=Object.getOwnPropertySymbols(s);e&&(t=t.filter(function(i){return Object.getOwnPropertyDescriptor(s,i).enumerable})),r.push.apply(r,t)}return r}function Pe(s){for(var e=1;e<arguments.length;e++){var r=arguments[e]!=null?arguments[e]:{};e%2?Se(Object(r),!0).forEach(function(t){he(s,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(s,Object.getOwnPropertyDescriptors(r)):Se(Object(r)).forEach(function(t){Object.defineProperty(s,t,Object.getOwnPropertyDescriptor(r,t))})}return s}function he(s,e,r){return e=rt(e),e in s?Object.defineProperty(s,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):s[e]=r,s}function rt(s){var e=it(s,"string");return typeof e=="symbol"?e:String(e)}function it(s,e){if(typeof s!="object"||s===null)return s;var r=s[Symbol.toPrimitive];if(r!==void 0){var t=r.call(s,e||"default");if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(s)}class nt extends Ae{constructor(){super(...arguments),he(this,"getCachedFilterableColumnSet",G((e,r)=>new Set((r?.length>0?r:e).map(t=>e.findIndex(i=>t.name===i.name))))),he(this,"getCachedGroupedColumnSet",G(e=>new Set(e.map(r=>this.columns.findIndex(t=>r.name===t.name)))))}applyBufferedViewport(e,r,t){this.table.setViewport(e,r,t)}textForCell(e,r){var t=this.columns[e],i=this.row(r);if(i!=null&&t!=null){if(!i.hasChildren&&t.constituentType!=null){var n=this.valueForCell(e,r);return this.displayString(n,t.constituentType,t.name)}if(i.hasChildren&&i.depth<=e+1&&this.valueForCell(e,r)===null&&this.getCachedGroupedColumnSet(this.groupedColumns).has(e))return""}return super.textForCell(e,r)}extractViewportRow(e,r){var{isExpanded:t,hasChildren:i,depth:n}=e;return Pe(Pe({},super.extractViewportRow(e,r)),{},{isExpanded:t,hasChildren:i,depth:n})}snapshot(e,r,t){var i=this;return tt(function*(){var n;D(i.viewport),D(i.viewportData);var{columns:a}=i.viewport,l=[];r!=null&&r&&l.push(a.map(m=>m.name));for(var o=new F(0,(n=i.viewportData)===null||n===void 0?void 0:n.offset,a.length,i.viewportData.offset+i.viewportData.rows.length),u=0;u<e.length;u+=1){var d=F.intersection(o,e[u]);D(d),D(d.startRow),D(d.endRow);for(var p=d.startRow;p<=d.endRow;p+=1){var f=[],v=i.viewportData.rows[p-i.viewportData.offset];D(d.startColumn),D(d.endColumn);for(var c=d.startColumn;c<=d.endColumn;c+=1){var h;D(t),f.push(t((h=v.data.get(c))===null||h===void 0?void 0:h.value,i.columns[c]))}l.push(f)}}return l})()}get groupedColumns(){return this.table.groupedColumns}get hasExpandableRows(){return!0}get isExpandAllAvailable(){return this.table.expandAll!==void 0}get isChartBuilderAvailable(){return!1}get isSelectDistinctAvailable(){return!1}get isReversible(){return!1}isFilterable(e){return this.getCachedFilterableColumnSet(this.columns,this.groupedColumns).has(e)}isColumnMovable(e){return e>=this.groupedColumns.length}isRowExpandable(e){var r,t=this.row(e);return(r=t?.hasChildren)!==null&&r!==void 0?r:!1}isRowExpanded(e){var r,t=this.row(e);return(r=t?.isExpanded)!==null&&r!==void 0?r:!1}setRowExpanded(e,r){var t=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!1;this.isExpandAllAvailable?this.table.setExpanded(e,r,t):this.table.setExpanded(e,r)}expandAll(){this.table.expandAll&&this.table.expandAll()}collapseAll(){this.table.collapseAll&&this.table.collapseAll()}depthForRow(e){var r,t=this.row(e);return((r=t?.depth)!==null&&r!==void 0?r:1)-1}updateFrozenColumns(e){if(e.length>0)throw new Error("Cannot freeze columns on a tree table")}}const lt=nt;function Me(s,e,r,t,i,n,a){try{var l=s[n](a),o=l.value}catch(u){r(u);return}l.done?e(o):Promise.resolve(o).then(t,i)}function ot(s){return function(){var e=this,r=arguments;return new Promise(function(t,i){var n=s.apply(e,r);function a(o){Me(n,t,i,a,l,"next",o)}function l(o){Me(n,t,i,a,l,"throw",o)}a(void 0)})}}function E(s,e,r){return e=st(e),e in s?Object.defineProperty(s,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):s[e]=r,s}function st(s){var e=at(s,"string");return typeof e=="symbol"?e:String(e)}function at(s,e){if(typeof s!="object"||s===null)return s;var r=s[Symbol.toPrimitive];if(r!==void 0){var t=r.call(s,e||"default");if(typeof t!="object")return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(s)}var j=re.module("IrisGridProxyModel");function de(s,e,r,t){return I.isTreeTable(e)?new lt(s,e,r):new et(s,e,r,t)}class ut extends P{constructor(e,r){var t,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:new ie(e),n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null;super(e),t=this,E(this,"dh",void 0),E(this,"originalModel",void 0),E(this,"model",void 0),E(this,"modelPromise",void 0),E(this,"rollup",void 0),E(this,"selectDistinct",void 0),E(this,"textForCell",function(){return t.model.textForCell(...arguments)}),E(this,"truncationCharForCell",function(){return t.model.truncationCharForCell(...arguments)}),E(this,"textAlignForCell",function(){return t.model.textAlignForCell(...arguments)}),E(this,"colorForCell",function(){return t.model.colorForCell(...arguments)}),E(this,"backgroundColorForCell",function(){return t.model.backgroundColorForCell(...arguments)}),E(this,"textForColumnHeader",function(){return t.model.textForColumnHeader(...arguments)}),E(this,"colorForColumnHeader",function(){return t.model.colorForColumnHeader(...arguments)}),E(this,"textForRowHeader",function(){return t.model.textForRowHeader(...arguments)}),E(this,"textForRowFooter",function(){return t.model.textForRowFooter(...arguments)}),E(this,"isRowMovable",function(){return t.model.isRowMovable(...arguments)}),E(this,"isColumnMovable",function(){return t.model.isColumnMovable(...arguments)}),E(this,"isRowExpandable",function(){return z(t.model)?t.model.isRowExpandable(...arguments):!1}),E(this,"isRowExpanded",function(){return z(t.model)?t.model.isRowExpanded(...arguments):!1}),E(this,"setRowExpanded",function(){if(z(t.model))return t.model.setRowExpanded(...arguments);throw Error("Function setRowExpanded does not exist on IrisGridTableModel")}),E(this,"expandAll",()=>{if(z(this.model))return this.model.expandAll();throw Error("Function expandAll does not exist on IrisGridTableModel")}),E(this,"collapseAll",()=>{if(z(this.model))return this.model.collapseAll();throw Error("Function collapseAll does not exist on IrisGridTableModel")}),E(this,"depthForRow",function(){return z(t.model)?t.model.depthForRow(...arguments):0}),E(this,"getColumnHeaderGroup",function(){return t.model.getColumnHeaderGroup(...arguments)}),E(this,"getColumnHeaderParentGroup",function(){return t.model.getColumnHeaderParentGroup(...arguments)}),E(this,"formatForCell",function(){return t.model.formatForCell(...arguments)}),E(this,"valueForCell",function(){return t.model.valueForCell(...arguments)}),E(this,"renderTypeForCell",function(){return t.model.renderTypeForCell(...arguments)}),E(this,"dataBarOptionsForCell",function(){return t.model.dataBarOptionsForCell(...arguments)}),E(this,"displayString",function(){return t.model.displayString(...arguments)}),E(this,"isEditableRange",function(){return q(t.model)?t.model.isEditableRange(...arguments):!1}),E(this,"isFilterable",function(){return t.model.isFilterable(...arguments)}),E(this,"setViewport",(l,o,u)=>this.model.setViewport(l,o,u)),E(this,"snapshot",function(){return t.model.snapshot(...arguments)}),E(this,"textSnapshot",function(){return t.model.textSnapshot(...arguments)}),E(this,"valuesTable",function(){return t.model.valuesTable(...arguments)}),E(this,"editValueForCell",function(){return q(t.model)?t.model.editValueForCell(...arguments):""}),E(this,"setValueForCell",function(){return q(t.model)?t.model.setValueForCell(...arguments):Promise.reject(new Error("Model is not editable"))}),E(this,"setValueForRanges",function(){return q(t.model)?t.model.setValueForRanges(...arguments):Promise.reject(new Error("Model is not editable"))}),E(this,"setValues",function(){return q(t.model)?t.model.setValues(...arguments):Promise.resolve()}),E(this,"isValidForCell",function(){return q(t.model)?t.model.isValidForCell(...arguments):!1}),E(this,"delete",function(){return t.model.delete(...arguments)}),E(this,"commitPending",function(){return t.model.commitPending(...arguments)}),this.handleModelEvent=this.handleModelEvent.bind(this);var a=de(e,r,i,n);this.dh=e,this.originalModel=a,this.model=a,this.modelPromise=null,this.rollup=null,this.selectDistinct=[]}close(){this.originalModel.close(),this.model!==this.originalModel&&this.model.close(),this.modelPromise!=null&&this.modelPromise.cancel()}handleModelEvent(e){j.debug2("handleModelEvent",e);var{detail:r,type:t}=e;this.dispatchEvent(new A(t,{detail:r}))}setModel(e){j.debug("setModel",e);var r=this.model;r!==this.originalModel&&r.close(),this.model=e,this.listenerCount>0&&this.addListeners(e),this.dispatchEvent(new A(P.EVENT.COLUMNS_CHANGED,{detail:e.columns})),ee(e)&&this.dispatchEvent(new A(P.EVENT.TABLE_CHANGED,{detail:e.table}))}setNextModel(e){j.debug2("setNextModel"),this.modelPromise&&this.modelPromise.cancel(),this.listenerCount>0&&this.removeListeners(this.model),this.modelPromise=te.makeCancelable(e,r=>r.close()),this.modelPromise.then(r=>{this.modelPromise=null,this.setModel(r)}).catch(r=>{if(te.isCanceled(r)){j.debug2("setNextModel cancelled");return}j.error("Unable to set next model",r),this.modelPromise=null,this.dispatchEvent(new A(P.EVENT.REQUEST_FAILED,{detail:r}))})}startListening(){super.startListening(),this.addListeners(this.model)}stopListening(){super.stopListening(),this.removeListeners(this.model)}addListeners(e){for(var r=Object.keys(P.EVENT),t=0;t<r.length;t+=1)e.addEventListener(r[t],this.handleModelEvent)}removeListeners(e){for(var r=Object.keys(P.EVENT),t=0;t<r.length;t+=1)e.removeEventListener(r[t],this.handleModelEvent)}get rowCount(){return this.model.rowCount}get columnCount(){return this.model.columnCount}get floatingTopRowCount(){return this.model.floatingTopRowCount}get floatingBottomRowCount(){return this.model.floatingBottomRowCount}get floatingLeftColumnCount(){return this.model.floatingLeftColumnCount}get floatingRightColumnCount(){return this.model.floatingRightColumnCount}isColumnFrozen(e){return this.model.isColumnFrozen(e)}isColumnSortable(e){return this.model.isColumnSortable(e)}get hasExpandableRows(){return z(this.model)?this.model.hasExpandableRows:!1}get isExpandAllAvailable(){if(z(this.model)){var e;return(e=this.model.isExpandAllAvailable)!==null&&e!==void 0?e:!1}return!1}get isExportAvailable(){return this.model.isExportAvailable}get isColumnStatisticsAvailable(){return this.model.isColumnStatisticsAvailable}get isValuesTableAvailable(){return this.model.isValuesTableAvailable}get isCustomColumnsAvailable(){return this.model.isCustomColumnsAvailable&&!(this.isSelectDistinctAvailable&&this.selectDistinctColumns.length>0)}get isFormatColumnsAvailable(){return this.model.isFormatColumnsAvailable}get isChartBuilderAvailable(){return this.model.isChartBuilderAvailable}get isRollupAvailable(){return(this.originalModel.isRollupAvailable||this.rollup!=null)&&this.selectDistinct.length===0}get isSelectDistinctAvailable(){return(this.originalModel.isSelectDistinctAvailable||this.selectDistinct.length>0)&&this.rollup==null}get isTotalsAvailable(){return this.model.isTotalsAvailable}get isReversible(){return this.model.isReversible}get columns(){return this.model.columns}get initialMovedColumns(){return this.model.initialMovedColumns}get initialMovedRows(){return this.model.initialMovedRows}get layoutHints(){return this.model.layoutHints}get frontColumns(){return this.model.frontColumns}get backColumns(){return this.model.backColumns}get frozenColumns(){return this.model.frozenColumns}get columnHeaderGroups(){return this.model.columnHeaderGroups}set columnHeaderGroups(e){this.model.columnHeaderGroups=e}get initialColumnHeaderGroups(){return this.model.initialColumnHeaderGroups}get columnHeaderGroupMap(){return this.model.columnHeaderGroupMap}get columnHeaderMaxDepth(){return this.model.columnHeaderMaxDepth}updateFrozenColumns(e){return this.model.updateFrozenColumns(e)}get originalColumns(){return this.originalModel.columns}get groupedColumns(){return this.model.groupedColumns}get description(){return this.model.description}get filter(){return this.model.filter}set filter(e){this.model.filter=e}get formatter(){return this.model.formatter}set formatter(e){this.model.formatter=e}get sort(){return this.model.sort}set sort(e){this.model.sort=e}get customColumns(){return this.model.customColumns}set customColumns(e){this.model.customColumns=e}get formatColumns(){return this.model.formatColumns}set formatColumns(e){this.model.formatColumns=e}get rollupConfig(){return this.rollup}set rollupConfig(e){if(j.debug("set rollupConfig",e),!this.isRollupAvailable)throw new Error("Rollup Rows are not available");if(!Le(e,this.rollup)){this.rollup=e;var r=Promise.resolve(this.originalModel);ee(this.originalModel)&&e!=null&&(r=this.originalModel.table.rollup(e).then(t=>de(this.dh,t,this.formatter))),this.setNextModel(r)}}get selectDistinctColumns(){return this.selectDistinct}set selectDistinctColumns(e){if(j.debug("set selectDistinctColumns",e),!this.isSelectDistinctAvailable)throw new Error("Select distinct is not available");if(e===this.selectDistinctColumns||e.length===0&&this.selectDistinctColumns.length===0){j.debug("Ignore same selectDistinctColumns",e);return}this.selectDistinct=e;var r=e.map(i=>this.originalColumns.find(n=>n.name===i)).filter(i=>i!=null),t=Promise.resolve(this.originalModel);ee(this.originalModel)&&r.length>0&&(t=this.originalModel.table.selectDistinct(r).then(i=>de(this.dh,i,this.formatter))),this.setNextModel(t)}get table(){if(ee(this.model))return this.model.table}get totalsConfig(){return this.model.totalsConfig}set totalsConfig(e){this.model.totalsConfig=e}get isFilterRequired(){return this.model.isFilterRequired}get isEditable(){return q(this.model)&&this.model.isEditable}export(){if(I.isTreeTable(this.model))throw new Error("TreeTable has no 'export' property");return this.model.export()}columnStatistics(e){if(I.isTreeTable(this.model))throw new Error("TreeTable has no 'columnStatistics' function");return this.model.columnStatistics(e)}get pendingDataMap(){return this.model.pendingDataMap}set pendingDataMap(e){this.model.pendingDataMap=e}get pendingRowCount(){return this.model.pendingRowCount}set pendingRowCount(e){this.model.pendingRowCount=e}get pendingDataErrors(){return this.model.pendingDataErrors}getColumnIndexByName(e){return this.model.getColumnIndexByName(e)}seekRow(e,r,t,i,n,a,l){var o=this;return ot(function*(){return o.model.seekRow(e,r,t,i,n,a,l)})()}get isSeekRowAvailable(){return this.model.isSeekRowAvailable}}const dt=ut;function _e(s,e,r,t,i,n,a){try{var l=s[n](a),o=l.value}catch(u){r(u);return}l.done?e(o):Promise.resolve(o).then(t,i)}function ht(s){return function(){var e=this,r=arguments;return new Promise(function(t,i){var n=s.apply(e,r);function a(o){_e(n,t,i,a,l,"next",o)}function l(o){_e(n,t,i,a,l,"throw",o)}a(void 0)})}}class mt{static makeModel(e,r){var t=arguments;return ht(function*(){var i=t.length>2&&t[2]!==void 0?t[2]:new ie(e),n=null;return!I.isTreeTable(r)&&r.hasInputTable&&(n=yield r.inputTable()),new dt(e,r,i,n)})()}}const Ct=mt;export{ft as C,Ee as F,dt as I,wt as a,Ct as b,et as c,Ae as d,lt as e,ee as f,bt as i};
|
|
3
|
-
//# sourceMappingURL=IrisGridModelFactory-5ab07d80.js.map
|