@deephaven/components 0.43.0 → 0.44.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/dist/AutoCompleteInput.css +35 -0
  2. package/dist/AutoCompleteInput.css.map +1 -0
  3. package/dist/AutoCompleteInput.js +496 -0
  4. package/dist/AutoCompleteInput.js.map +1 -0
  5. package/dist/AutoResizeTextarea.css +11 -0
  6. package/dist/AutoResizeTextarea.css.map +1 -0
  7. package/dist/AutoResizeTextarea.js +128 -0
  8. package/dist/AutoResizeTextarea.js.map +1 -0
  9. package/dist/BasicModal.js +112 -0
  10. package/dist/BasicModal.js.map +1 -0
  11. package/dist/Button.d.ts +1 -1
  12. package/dist/Button.js +193 -0
  13. package/dist/Button.js.map +1 -0
  14. package/dist/ButtonGroup.js +31 -0
  15. package/dist/ButtonGroup.js.map +1 -0
  16. package/dist/ButtonOld.js +41 -0
  17. package/dist/ButtonOld.js.map +1 -0
  18. package/dist/CardFlip.css +36 -0
  19. package/dist/CardFlip.css.map +1 -0
  20. package/dist/CardFlip.js +61 -0
  21. package/dist/CardFlip.js.map +1 -0
  22. package/dist/Checkbox.js +104 -0
  23. package/dist/Checkbox.js.map +1 -0
  24. package/dist/Collapse.js +89 -0
  25. package/dist/Collapse.js.map +1 -0
  26. package/dist/ComboBox.css +50 -0
  27. package/dist/ComboBox.css.map +1 -0
  28. package/dist/ComboBox.js +487 -0
  29. package/dist/ComboBox.js.map +1 -0
  30. package/dist/CopyButton.js +30 -0
  31. package/dist/CopyButton.js.map +1 -0
  32. package/dist/CustomTimeSelect.css +65 -0
  33. package/dist/CustomTimeSelect.css.map +1 -0
  34. package/dist/CustomTimeSelect.js +516 -0
  35. package/dist/CustomTimeSelect.js.map +1 -0
  36. package/dist/DateInput.js +54 -0
  37. package/dist/DateInput.js.map +1 -0
  38. package/dist/DateInputUtils.js +33 -0
  39. package/dist/DateInputUtils.js.map +1 -0
  40. package/dist/DateTimeInput.js +84 -0
  41. package/dist/DateTimeInput.js.map +1 -0
  42. package/dist/DateTimeInputUtils.js +8 -0
  43. package/dist/DateTimeInputUtils.js.map +1 -0
  44. package/dist/DebouncedSearchInput.js +79 -0
  45. package/dist/DebouncedSearchInput.js.map +1 -0
  46. package/dist/DragUtils.js +68 -0
  47. package/dist/DragUtils.js.map +1 -0
  48. package/dist/DraggableItemList.css +118 -0
  49. package/dist/DraggableItemList.css.map +1 -0
  50. package/dist/DraggableItemList.js +268 -0
  51. package/dist/DraggableItemList.js.map +1 -0
  52. package/dist/EditableItemList.js +105 -0
  53. package/dist/EditableItemList.js.map +1 -0
  54. package/dist/HierarchicalCheckboxMenu.css +30 -0
  55. package/dist/HierarchicalCheckboxMenu.css.map +1 -0
  56. package/dist/HierarchicalCheckboxMenu.js +218 -0
  57. package/dist/HierarchicalCheckboxMenu.js.map +1 -0
  58. package/dist/ItemList.css +13 -0
  59. package/dist/ItemList.css.map +1 -0
  60. package/dist/ItemList.js +686 -0
  61. package/dist/ItemList.js.map +1 -0
  62. package/dist/ItemListItem.css +48 -0
  63. package/dist/ItemListItem.css.map +1 -0
  64. package/dist/ItemListItem.js +214 -0
  65. package/dist/ItemListItem.js.map +1 -0
  66. package/dist/LoadingOverlay.css +24 -0
  67. package/dist/LoadingOverlay.css.map +1 -0
  68. package/dist/LoadingOverlay.js +48 -0
  69. package/dist/LoadingOverlay.js.map +1 -0
  70. package/dist/LoadingSpinner.css +8 -0
  71. package/dist/LoadingSpinner.css.map +1 -0
  72. package/dist/LoadingSpinner.js +24 -0
  73. package/dist/LoadingSpinner.js.map +1 -0
  74. package/dist/MaskedInput.css +7 -0
  75. package/dist/MaskedInput.css.map +1 -0
  76. package/dist/MaskedInput.js +394 -0
  77. package/dist/MaskedInput.js.map +1 -0
  78. package/dist/MaskedInputUtils.js +36 -0
  79. package/dist/MaskedInputUtils.js.map +1 -0
  80. package/dist/Option.js +16 -0
  81. package/dist/Option.js.map +1 -0
  82. package/dist/RadioGroup.js +34 -0
  83. package/dist/RadioGroup.js.map +1 -0
  84. package/dist/RadioItem.js +55 -0
  85. package/dist/RadioItem.js.map +1 -0
  86. package/dist/RandomAreaPlotAnimation.css +18 -0
  87. package/dist/RandomAreaPlotAnimation.css.map +1 -0
  88. package/dist/RandomAreaPlotAnimation.js +290 -0
  89. package/dist/RandomAreaPlotAnimation.js.map +1 -0
  90. package/dist/SearchInput.css +43 -0
  91. package/dist/SearchInput.css.map +1 -0
  92. package/dist/SearchInput.js +66 -0
  93. package/dist/SearchInput.js.map +1 -0
  94. package/dist/Select.js +30 -0
  95. package/dist/Select.js.map +1 -0
  96. package/dist/SelectValueList.css +38 -0
  97. package/dist/SelectValueList.css.map +1 -0
  98. package/dist/SelectValueList.js +175 -0
  99. package/dist/SelectValueList.js.map +1 -0
  100. package/dist/SocketedButton.css +123 -0
  101. package/dist/SocketedButton.css.map +1 -0
  102. package/dist/SocketedButton.js +63 -0
  103. package/dist/SocketedButton.js.map +1 -0
  104. package/dist/SpectrumThemeDark.module.css +9 -0
  105. package/dist/SpectrumThemeDark.module.css.map +1 -0
  106. package/dist/SpectrumThemeLight.module.css +9 -0
  107. package/dist/SpectrumThemeLight.module.css.map +1 -0
  108. package/dist/SpectrumUtils.js +59 -0
  109. package/dist/SpectrumUtils.js.map +1 -0
  110. package/dist/ThemeExport.js +15 -0
  111. package/dist/ThemeExport.js.map +1 -0
  112. package/dist/ThemeExport.module.css +40 -0
  113. package/dist/ThemeExport.module.css.map +1 -0
  114. package/dist/TimeInput.js +101 -0
  115. package/dist/TimeInput.js.map +1 -0
  116. package/dist/TimeSlider.css +178 -0
  117. package/dist/TimeSlider.css.map +1 -0
  118. package/dist/TimeSlider.js +314 -0
  119. package/dist/TimeSlider.js.map +1 -0
  120. package/dist/TimeSlider.module.css +185 -0
  121. package/dist/TimeSlider.module.css.map +1 -0
  122. package/dist/ToastNotification.css +62 -0
  123. package/dist/ToastNotification.css.map +1 -0
  124. package/dist/ToastNotification.js +56 -0
  125. package/dist/ToastNotification.js.map +1 -0
  126. package/dist/UISwitch.css +94 -0
  127. package/dist/UISwitch.css.map +1 -0
  128. package/dist/UISwitch.js +30 -0
  129. package/dist/UISwitch.js.map +1 -0
  130. package/dist/ValidateLabelInput.css +9 -0
  131. package/dist/ValidateLabelInput.css.map +1 -0
  132. package/dist/ValidateLabelInput.js +50 -0
  133. package/dist/ValidateLabelInput.js.map +1 -0
  134. package/dist/context-actions/ContextActionUtils.js +142 -0
  135. package/dist/context-actions/ContextActionUtils.js.map +1 -0
  136. package/dist/context-actions/ContextActions.css +157 -0
  137. package/dist/context-actions/ContextActions.css.map +1 -0
  138. package/dist/context-actions/ContextActions.js +182 -0
  139. package/dist/context-actions/ContextActions.js.map +1 -0
  140. package/dist/context-actions/ContextMenu.js +559 -0
  141. package/dist/context-actions/ContextMenu.js.map +1 -0
  142. package/dist/context-actions/ContextMenuItem.js +139 -0
  143. package/dist/context-actions/ContextMenuItem.js.map +1 -0
  144. package/dist/context-actions/ContextMenuRoot.js +135 -0
  145. package/dist/context-actions/ContextMenuRoot.js.map +1 -0
  146. package/dist/context-actions/GlobalContextAction.js +53 -0
  147. package/dist/context-actions/GlobalContextAction.js.map +1 -0
  148. package/dist/context-actions/GlobalContextActions.js +28 -0
  149. package/dist/context-actions/GlobalContextActions.js.map +1 -0
  150. package/dist/context-actions/index.js +5 -0
  151. package/dist/context-actions/index.js.map +1 -0
  152. package/dist/declaration.d.js +2 -0
  153. package/dist/declaration.d.js.map +1 -0
  154. package/dist/index.js +52 -0
  155. package/dist/index.js.map +1 -0
  156. package/dist/menu-actions/DropdownMenu.css +39 -0
  157. package/dist/menu-actions/DropdownMenu.css.map +1 -0
  158. package/dist/menu-actions/DropdownMenu.js +174 -0
  159. package/dist/menu-actions/DropdownMenu.js.map +1 -0
  160. package/dist/menu-actions/Menu.js +244 -0
  161. package/dist/menu-actions/Menu.js.map +1 -0
  162. package/dist/menu-actions/index.js +4 -0
  163. package/dist/menu-actions/index.js.map +1 -0
  164. package/dist/modal/DebouncedModal.js +26 -0
  165. package/dist/modal/DebouncedModal.js.map +1 -0
  166. package/dist/modal/InfoModal.css +24 -0
  167. package/dist/modal/InfoModal.css.map +1 -0
  168. package/dist/modal/InfoModal.js +34 -0
  169. package/dist/modal/InfoModal.js.map +1 -0
  170. package/dist/modal/Modal.js +122 -0
  171. package/dist/modal/Modal.js.map +1 -0
  172. package/dist/modal/ModalBody.js +16 -0
  173. package/dist/modal/ModalBody.js.map +1 -0
  174. package/dist/modal/ModalFooter.js +14 -0
  175. package/dist/modal/ModalFooter.js.map +1 -0
  176. package/dist/modal/ModalHeader.js +27 -0
  177. package/dist/modal/ModalHeader.js.map +1 -0
  178. package/dist/modal/index.js +7 -0
  179. package/dist/modal/index.js.map +1 -0
  180. package/dist/navigation/Menu.css +13 -0
  181. package/dist/navigation/Menu.css.map +1 -0
  182. package/dist/navigation/Menu.js +25 -0
  183. package/dist/navigation/Menu.js.map +1 -0
  184. package/dist/navigation/MenuItem.css +46 -0
  185. package/dist/navigation/MenuItem.css.map +1 -0
  186. package/dist/navigation/MenuItem.js +65 -0
  187. package/dist/navigation/MenuItem.js.map +1 -0
  188. package/dist/navigation/Page.css +34 -0
  189. package/dist/navigation/Page.css.map +1 -0
  190. package/dist/navigation/Page.js +46 -0
  191. package/dist/navigation/Page.js.map +1 -0
  192. package/dist/navigation/Stack.css +24 -0
  193. package/dist/navigation/Stack.css.map +1 -0
  194. package/dist/navigation/Stack.js +82 -0
  195. package/dist/navigation/Stack.js.map +1 -0
  196. package/dist/navigation/index.js +5 -0
  197. package/dist/navigation/index.js.map +1 -0
  198. package/dist/popper/Popper.css +127 -0
  199. package/dist/popper/Popper.css.map +1 -0
  200. package/dist/popper/Popper.js +283 -0
  201. package/dist/popper/Popper.js.map +1 -0
  202. package/dist/popper/Tooltip.js +283 -0
  203. package/dist/popper/Tooltip.js.map +1 -0
  204. package/dist/popper/index.js +3 -0
  205. package/dist/popper/index.js.map +1 -0
  206. package/dist/shortcuts/GlobalShortcuts.js +47 -0
  207. package/dist/shortcuts/GlobalShortcuts.js.map +1 -0
  208. package/dist/shortcuts/Shortcut.js +393 -0
  209. package/dist/shortcuts/Shortcut.js.map +1 -0
  210. package/dist/shortcuts/ShortcutRegistry.js +78 -0
  211. package/dist/shortcuts/ShortcutRegistry.js.map +1 -0
  212. package/dist/shortcuts/index.js +5 -0
  213. package/dist/shortcuts/index.js.map +1 -0
  214. package/package.json +7 -7
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Popper.js","names":["React","Component","ReactDOM","classNames","CSSTransition","PopperJs","PropTypes","ThemeExport","Popper","constructor","props","handleEnter","bind","handleExit","handleBlur","element","document","createElement","className","container","createRef","rAF","isShown","state","show","popper","componentDidUpdate","prevProps","cancelAnimationFrame","window","requestAnimationFrame","hide","componentWillUnmount","destroyPopper","getVisibleElement","clientHeight","clientWidth","parentElement","initPopper","closeOnBlur","referenceObject","current","options","placement","modifiers","preventOverflow","boundariesElement","body","appendChild","parent","scheduleUpdate","contains","activeElement","elem","firstElementChild","HTMLElement","focus","setState","updateState","destroy","removeChild","e","relatedTarget","onEntered","onExited","renderContent","children","timeout","interactive","stopPropagation","key","undefined","render","dataTestId","display","createPortal","node","isRequired","shape","string","number","func","bool","transitionMs"],"sources":["../../src/popper/Popper.tsx"],"sourcesContent":["/**\n * A component for creating popover dialogs. Only requires child element.\n *\n * <Popper\n * options={popperOptions}\n * className=\"whatever\"\n * onEntered={this.handleEnter}\n * onExited={this.handleExit}\n * closeOnBlur // if you want dialog to self close, on click outside\n * interactive // if popper contents will be interactable\n * isShown={variable} // controls if its shown or not,\n * ref={this.popper} // or via ref and this.popper.show() or this.popper.hide()\n * >\n * <ChildContent />\n * </Popper>\n */\n\nimport React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { CSSTransition } from 'react-transition-group';\nimport PopperJs, { PopperOptions, ReferenceObject } from 'popper.js';\nimport PropTypes from 'prop-types';\nimport ThemeExport from '../ThemeExport';\nimport './Popper.scss';\n\ninterface PopperProps {\n options: PopperOptions;\n className: string;\n timeout: number;\n onEntered: () => void;\n onExited: () => void;\n isShown: boolean;\n closeOnBlur: boolean;\n interactive: boolean;\n referenceObject: ReferenceObject | null;\n 'data-testid'?: string;\n}\n\ninterface PopperState {\n show: boolean;\n popper: PopperJs | null;\n}\n\nclass Popper extends Component<PopperProps, PopperState> {\n static propTypes = {\n children: PropTypes.node.isRequired,\n options: PropTypes.shape({}),\n className: PropTypes.string,\n timeout: PropTypes.number,\n onEntered: PropTypes.func,\n onExited: PropTypes.func,\n isShown: PropTypes.bool,\n closeOnBlur: PropTypes.bool,\n interactive: PropTypes.bool,\n referenceObject: PropTypes.shape({}),\n 'data-testid': PropTypes.string,\n };\n\n static defaultProps = {\n options: {},\n className: '',\n timeout: ThemeExport.transitionMs,\n onEntered(): void {\n // no-op\n },\n onExited(): void {\n // no-op\n },\n isShown: false,\n interactive: false,\n closeOnBlur: false,\n referenceObject: null,\n 'data-testid': undefined,\n };\n\n constructor(props: PopperProps) {\n super(props);\n\n this.handleEnter = this.handleEnter.bind(this);\n this.handleExit = this.handleExit.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.element = document.createElement('div');\n this.element.className = 'popper-container';\n this.container = React.createRef<HTMLDivElement>();\n\n // cancelAnimationFrame does nothing if the handle isn't recognized\n // requestAnimationFrame provides a non-zero number, so 0 as a default should be safe\n this.rAF = 0;\n\n const { isShown } = this.props;\n\n this.state = {\n show: isShown,\n popper: null,\n };\n }\n\n componentDidUpdate(prevProps: PopperProps): void {\n const { isShown } = this.props;\n\n if (prevProps.isShown !== isShown) {\n if (isShown) {\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n this.show();\n });\n } else {\n this.hide();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.destroyPopper(false);\n }\n\n element: HTMLDivElement;\n\n container: React.RefObject<HTMLDivElement>;\n\n // This is the request animation frame handle number\n rAF: number;\n\n /** Goes through an element and it's parents until the first visible element is found */\n getVisibleElement(element: HTMLElement | null): HTMLElement | null {\n if (\n element == null ||\n element.clientHeight > 0 ||\n element.clientWidth > 0\n ) {\n return element;\n }\n\n return this.getVisibleElement(element.parentElement);\n }\n\n initPopper(): void {\n let { popper } = this.state;\n const { closeOnBlur, referenceObject } = this.props;\n\n if (popper) {\n return;\n }\n\n if (this.container.current === null) {\n return;\n }\n\n let { options } = this.props;\n options = {\n placement: 'auto',\n modifiers: { preventOverflow: { boundariesElement: 'viewport' } },\n ...options,\n };\n document.body.appendChild(this.element);\n\n let parent = this.getVisibleElement(this.container.current);\n if (parent == null) {\n parent = this.container.current;\n }\n\n popper = new PopperJs(referenceObject || parent, this.element, options);\n popper.scheduleUpdate();\n\n // delayed due to scheduleUpdate\n cancelAnimationFrame(this.rAF);\n this.rAF = window.requestAnimationFrame(() => {\n // for blur on close to work, focus needs to be on or within the popper\n if (closeOnBlur && !this.element.contains(document.activeElement)) {\n // only set focus, if a focus isn't already set within\n const elem = this.element.firstElementChild;\n if (elem instanceof HTMLElement) {\n elem.focus(); // first child of the portal element\n }\n }\n });\n\n this.setState({ popper });\n }\n\n destroyPopper(updateState = true): void {\n cancelAnimationFrame(this.rAF);\n\n const { popper } = this.state;\n if (!popper) {\n return;\n }\n\n popper.destroy();\n\n // If component is exiting and unmounted in\n // the same frame, destroy can be called twice.\n // Check to make sure removeChild isn't called twice.\n if (document.body.contains(this.element)) {\n document.body.removeChild(this.element);\n }\n\n if (updateState) {\n this.setState({ popper: null });\n }\n }\n\n show(): void {\n this.initPopper();\n this.setState({ show: true });\n }\n\n hide(): void {\n this.setState({ show: false });\n }\n\n scheduleUpdate(): void {\n const { popper } = this.state;\n if (popper) popper.scheduleUpdate();\n }\n\n handleBlur(e: React.FocusEvent): void {\n if (!(e.relatedTarget instanceof HTMLElement)) {\n return;\n }\n if (!this.element.contains(e.relatedTarget)) {\n this.hide();\n }\n }\n\n handleEnter(): void {\n const { onEntered } = this.props;\n onEntered(); // trigger any parent component waiting for enter handler\n }\n\n handleExit(): void {\n const { onExited } = this.props;\n const { show } = this.state;\n if (!show) {\n this.destroyPopper();\n }\n onExited(); // trigger any parent component waiting for exited handler\n }\n\n renderContent(): JSX.Element {\n const {\n className,\n children,\n timeout,\n interactive,\n closeOnBlur,\n } = this.props;\n const { show } = this.state;\n\n return (\n <CSSTransition\n in={show}\n timeout={timeout}\n classNames=\"popper-transition\"\n onEntered={this.handleEnter}\n onExited={this.handleExit}\n >\n <div\n onClick={e => {\n // stop click events from escaping popper\n e.stopPropagation();\n }}\n onKeyDown={e => {\n if (e.key === 'Escape') this.hide();\n }}\n className={classNames('popper', { interactive }, className)}\n onBlur={closeOnBlur ? this.handleBlur : undefined}\n tabIndex={closeOnBlur ? -1 : undefined}\n role=\"presentation\"\n >\n <div className=\"popper-content\">\n {children}\n {/* eslint-disable-next-line react/no-unknown-property */}\n <div className=\"popper-arrow\" x-arrow=\"\" />\n </div>\n </div>\n </CSSTransition>\n );\n }\n\n render(): JSX.Element {\n const { popper } = this.state;\n const { 'data-testid': dataTestId } = this.props;\n return (\n <div\n className=\"popper-parent-container\"\n ref={this.container}\n style={{ display: 'none' }}\n data-testid={dataTestId}\n >\n {popper && ReactDOM.createPortal(this.renderContent(), this.element)}\n </div>\n );\n }\n}\n\nexport default Popper;\nexport type { PopperOptions, ReferenceObject };\n"],"mappings":"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"}
@@ -0,0 +1,283 @@
1
+ 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; }
2
+ function _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; }
3
+ 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; }
4
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
+ function _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); }
6
+ import React, { Component } from 'react';
7
+ import classNames from 'classnames';
8
+ import Log from '@deephaven/log';
9
+ import Popper from "./Popper.js";
10
+ var log = Log.module('Tooltip');
11
+ /**
12
+ * Component that can be added to an element to automatically display a tooltip.
13
+ * Content is mounted lazily, so don't worry about complex tooltips!
14
+ *
15
+ * Usage:
16
+ * <div className="parent-container">
17
+ * Hover this container to see a tooltip
18
+ * <Tooltip>
19
+ * <div>My tooltip content goes here!</div>
20
+ * </Tooltip>
21
+ * </div>
22
+ */
23
+ class Tooltip extends Component {
24
+ static handleHidden() {
25
+ Tooltip.shownTooltipCount -= 1;
26
+ if (Tooltip.shownTooltipCount === 0) {
27
+ Tooltip.lastHiddenTime = Date.now();
28
+ }
29
+ }
30
+ static handleShown() {
31
+ Tooltip.shownTooltipCount += 1;
32
+ }
33
+ constructor(props) {
34
+ super(props);
35
+ _defineProperty(this, "container", void 0);
36
+ _defineProperty(this, "popper", void 0);
37
+ _defineProperty(this, "parent", void 0);
38
+ _defineProperty(this, "timer", void 0);
39
+ this.handleMouseMove = this.handleMouseMove.bind(this);
40
+ this.handleMouseLeave = this.handleMouseLeave.bind(this);
41
+ this.handleWindowMouseMove = this.handleWindowMouseMove.bind(this);
42
+ this.handleWheel = this.handleWheel.bind(this);
43
+ this.handleTimeout = this.handleTimeout.bind(this);
44
+ this.handleExited = this.handleExited.bind(this);
45
+ this.stopShowingTooltip = this.stopShowingTooltip.bind(this);
46
+ this.container = /*#__PURE__*/React.createRef();
47
+ this.popper = /*#__PURE__*/React.createRef();
48
+ this.parent = null;
49
+ this.timer = null;
50
+ this.state = {
51
+ isShown: false
52
+ };
53
+ }
54
+ componentDidMount() {
55
+ this.startListening();
56
+ var {
57
+ timeout
58
+ } = this.props;
59
+ if (timeout === 0) {
60
+ this.show();
61
+ }
62
+ }
63
+ componentDidUpdate(prevProps, prevState) {
64
+ var {
65
+ isShown: oldIsShown
66
+ } = prevState;
67
+ var {
68
+ isShown
69
+ } = this.state;
70
+ if (isShown !== oldIsShown) {
71
+ if (isShown) {
72
+ Tooltip.handleShown();
73
+ } else {
74
+ Tooltip.handleHidden();
75
+ }
76
+ }
77
+ }
78
+ componentWillUnmount() {
79
+ this.stopListening();
80
+ this.stopListeningWindow();
81
+ this.stopTimer();
82
+ var {
83
+ isShown
84
+ } = this.state;
85
+ if (isShown) {
86
+ Tooltip.handleHidden();
87
+ }
88
+ }
89
+ startListening() {
90
+ if (!this.container.current || !this.container.current.parentElement) {
91
+ log.error("Tooltip doesn't have a container or a parent set!");
92
+ return;
93
+ }
94
+ this.parent = this.container.current.parentElement;
95
+ this.parent.addEventListener('mousemove', this.handleMouseMove);
96
+ this.parent.addEventListener('mouseleave', this.handleMouseLeave);
97
+ this.parent.addEventListener('mousedown', this.stopShowingTooltip);
98
+ }
99
+ stopListening() {
100
+ if (!this.parent) {
101
+ return;
102
+ }
103
+ this.parent.removeEventListener('mousemove', this.handleMouseMove);
104
+ this.parent.removeEventListener('mouseleave', this.handleMouseLeave);
105
+ this.parent.removeEventListener('mousedown', this.stopShowingTooltip);
106
+ }
107
+ startListeningWindow() {
108
+ window.addEventListener('mousemove', this.handleWindowMouseMove, true);
109
+ window.addEventListener('contextmenu', this.stopShowingTooltip, true);
110
+ window.addEventListener('wheel', this.handleWheel);
111
+ }
112
+ stopListeningWindow() {
113
+ window.removeEventListener('mousemove', this.handleWindowMouseMove, true);
114
+ window.removeEventListener('contextmenu', this.stopShowingTooltip, true);
115
+ window.removeEventListener('wheel', this.handleWheel);
116
+ }
117
+ handleMouseMove() {
118
+ this.startTimer();
119
+ }
120
+ handleWheel() {
121
+ var {
122
+ isShown
123
+ } = this.state;
124
+ if (this.popper.current && this.parent && isShown) {
125
+ if (!this.popper.current.element.matches(':hover') && !this.parent.matches(':hover')) {
126
+ this.stopTimer();
127
+ this.hide();
128
+ }
129
+ }
130
+ }
131
+ handleMouseLeave() {
132
+ var {
133
+ isShown
134
+ } = this.state;
135
+ this.stopTimer();
136
+ var {
137
+ interactive
138
+ } = this.props;
139
+ if (!interactive && isShown) {
140
+ this.hide();
141
+ }
142
+ }
143
+ handleTimeout() {
144
+ this.show();
145
+ }
146
+ handleWindowMouseMove(event) {
147
+ var mouseX = event.clientX;
148
+ var mouseY = event.clientY;
149
+ var {
150
+ isShown
151
+ } = this.state;
152
+ if (!this.popper.current || !this.parent) {
153
+ return;
154
+ }
155
+ var popperRect = this.popper.current.element.getBoundingClientRect();
156
+ var parentRect = this.parent.getBoundingClientRect();
157
+ if (mouseX >= popperRect.left && mouseX <= popperRect.left + popperRect.width && mouseY >= popperRect.top && mouseY <= popperRect.top + popperRect.height) {
158
+ this.handleMouseMove();
159
+ } else if (mouseX >= parentRect.left && mouseX <= parentRect.left + parentRect.width && mouseY >= parentRect.top && mouseY <= parentRect.top + parentRect.height) {
160
+ this.handleMouseMove();
161
+ } else if (isShown) {
162
+ this.stopTimer();
163
+ this.hide();
164
+ }
165
+ }
166
+ startTimer() {
167
+ this.stopTimer();
168
+ var {
169
+ timeout,
170
+ reshowTimeout
171
+ } = this.props;
172
+ var timerTimeout = timeout;
173
+ if (Tooltip.shownTooltipCount > 0 || Date.now() - Tooltip.lastHiddenTime < Tooltip.triggerReshowThreshold) {
174
+ timerTimeout = reshowTimeout;
175
+ }
176
+ this.timer = window.setTimeout(this.handleTimeout, timerTimeout);
177
+ }
178
+ stopTimer() {
179
+ if (this.timer != null) {
180
+ clearTimeout(this.timer);
181
+ this.timer = null;
182
+ }
183
+ }
184
+ show() {
185
+ var {
186
+ isShown
187
+ } = this.state;
188
+ this.stopTimer();
189
+ if (!isShown) {
190
+ var _this$popper$current;
191
+ (_this$popper$current = this.popper.current) === null || _this$popper$current === void 0 ? void 0 : _this$popper$current.show();
192
+ this.setState({
193
+ isShown: true
194
+ });
195
+ var {
196
+ interactive
197
+ } = this.props;
198
+ if (interactive) {
199
+ this.startListeningWindow();
200
+ }
201
+ }
202
+ }
203
+ hide() {
204
+ var _this$popper$current2;
205
+ (_this$popper$current2 = this.popper.current) === null || _this$popper$current2 === void 0 ? void 0 : _this$popper$current2.hide();
206
+ this.stopListeningWindow();
207
+ }
208
+ update() {
209
+ var _this$popper$current3;
210
+ (_this$popper$current3 = this.popper.current) === null || _this$popper$current3 === void 0 ? void 0 : _this$popper$current3.scheduleUpdate();
211
+ }
212
+ handleExited() {
213
+ this.setState({
214
+ isShown: false
215
+ });
216
+ var {
217
+ onExited
218
+ } = this.props;
219
+ onExited();
220
+ }
221
+ stopShowingTooltip() {
222
+ var {
223
+ isShown
224
+ } = this.state;
225
+ this.stopTimer();
226
+ if (isShown) {
227
+ this.hide();
228
+ }
229
+ }
230
+ render() {
231
+ var {
232
+ interactive,
233
+ children,
234
+ referenceObject,
235
+ popperClassName,
236
+ 'data-testid': dataTestId,
237
+ onEntered
238
+ } = this.props;
239
+ var {
240
+ isShown
241
+ } = this.state;
242
+ var {
243
+ options
244
+ } = this.props;
245
+ options = _objectSpread({
246
+ placement: 'bottom'
247
+ }, options);
248
+ return /*#__PURE__*/React.createElement("div", {
249
+ ref: this.container,
250
+ style: {
251
+ display: 'none'
252
+ },
253
+ "data-testid": dataTestId
254
+ }, /*#__PURE__*/React.createElement(Popper, {
255
+ className: classNames(popperClassName),
256
+ options: options,
257
+ ref: this.popper,
258
+ onEntered: onEntered,
259
+ onExited: this.handleExited,
260
+ interactive: interactive,
261
+ referenceObject: referenceObject
262
+ }, /*#__PURE__*/React.createElement("div", {
263
+ className: "tooltip-content"
264
+ }, " ", isShown && children)));
265
+ }
266
+ }
267
+ _defineProperty(Tooltip, "defaultTimeout", 500);
268
+ _defineProperty(Tooltip, "defaultReshowTimeout", 100);
269
+ _defineProperty(Tooltip, "triggerReshowThreshold", 300);
270
+ _defineProperty(Tooltip, "shownTooltipCount", 0);
271
+ _defineProperty(Tooltip, "lastHiddenTime", Date.now());
272
+ _defineProperty(Tooltip, "defaultProps", {
273
+ interactive: false,
274
+ options: {},
275
+ popperClassName: '',
276
+ reshowTimeout: Tooltip.defaultReshowTimeout,
277
+ timeout: Tooltip.defaultTimeout,
278
+ onEntered: () => undefined,
279
+ onExited: () => undefined,
280
+ 'data-testid': undefined
281
+ });
282
+ export default Tooltip;
283
+ //# sourceMappingURL=Tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.js","names":["React","Component","classNames","Log","Popper","log","module","Tooltip","handleHidden","shownTooltipCount","lastHiddenTime","Date","now","handleShown","constructor","props","handleMouseMove","bind","handleMouseLeave","handleWindowMouseMove","handleWheel","handleTimeout","handleExited","stopShowingTooltip","container","createRef","popper","parent","timer","state","isShown","componentDidMount","startListening","timeout","show","componentDidUpdate","prevProps","prevState","oldIsShown","componentWillUnmount","stopListening","stopListeningWindow","stopTimer","current","parentElement","error","addEventListener","removeEventListener","startListeningWindow","window","startTimer","element","matches","hide","interactive","event","mouseX","clientX","mouseY","clientY","popperRect","getBoundingClientRect","parentRect","left","width","top","height","reshowTimeout","timerTimeout","triggerReshowThreshold","setTimeout","clearTimeout","setState","update","scheduleUpdate","onExited","render","children","referenceObject","popperClassName","dataTestId","onEntered","options","placement","display","defaultReshowTimeout","defaultTimeout","undefined"],"sources":["../../src/popper/Tooltip.tsx"],"sourcesContent":["import React, { Component } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport Popper, { PopperOptions, ReferenceObject } from './Popper';\n\nconst log = Log.module('Tooltip');\n\ntype TooltipProps = typeof Tooltip.defaultProps & {\n children: React.ReactNode;\n interactive?: boolean;\n options?: PopperOptions;\n popperClassName?: string;\n reshowTimeout?: number;\n timeout?: number;\n referenceObject?: ReferenceObject | null;\n onEntered?: () => void;\n onExited?: () => void;\n 'data-testid'?: string;\n};\ninterface TooltipState {\n isShown: boolean;\n}\n\n/**\n * Component that can be added to an element to automatically display a tooltip.\n * Content is mounted lazily, so don't worry about complex tooltips!\n *\n * Usage:\n * <div className=\"parent-container\">\n * Hover this container to see a tooltip\n * <Tooltip>\n * <div>My tooltip content goes here!</div>\n * </Tooltip>\n * </div>\n */\nclass Tooltip extends Component<TooltipProps, TooltipState> {\n static defaultTimeout = 500;\n\n static defaultReshowTimeout = 100;\n\n static triggerReshowThreshold = 300;\n\n static shownTooltipCount = 0;\n\n static lastHiddenTime = Date.now();\n\n static defaultProps = {\n interactive: false,\n options: {},\n popperClassName: '',\n reshowTimeout: Tooltip.defaultReshowTimeout,\n timeout: Tooltip.defaultTimeout,\n onEntered: (): void => undefined,\n onExited: (): void => undefined,\n 'data-testid': undefined,\n };\n\n static handleHidden(): void {\n Tooltip.shownTooltipCount -= 1;\n\n if (Tooltip.shownTooltipCount === 0) {\n Tooltip.lastHiddenTime = Date.now();\n }\n }\n\n static handleShown(): void {\n Tooltip.shownTooltipCount += 1;\n }\n\n constructor(props: TooltipProps) {\n super(props);\n\n this.handleMouseMove = this.handleMouseMove.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleWindowMouseMove = this.handleWindowMouseMove.bind(this);\n this.handleWheel = this.handleWheel.bind(this);\n this.handleTimeout = this.handleTimeout.bind(this);\n this.handleExited = this.handleExited.bind(this);\n this.stopShowingTooltip = this.stopShowingTooltip.bind(this);\n\n this.container = React.createRef();\n this.popper = React.createRef();\n this.parent = null;\n this.timer = null;\n\n this.state = {\n isShown: false,\n };\n }\n\n componentDidMount(): void {\n this.startListening();\n\n const { timeout } = this.props;\n if (timeout === 0) {\n this.show();\n }\n }\n\n componentDidUpdate(prevProps: TooltipProps, prevState: TooltipState): void {\n const { isShown: oldIsShown } = prevState;\n const { isShown } = this.state;\n\n if (isShown !== oldIsShown) {\n if (isShown) {\n Tooltip.handleShown();\n } else {\n Tooltip.handleHidden();\n }\n }\n }\n\n componentWillUnmount(): void {\n this.stopListening();\n this.stopListeningWindow();\n this.stopTimer();\n\n const { isShown } = this.state;\n\n if (isShown) {\n Tooltip.handleHidden();\n }\n }\n\n container: React.RefObject<HTMLDivElement>;\n\n popper: React.RefObject<Popper>;\n\n parent: HTMLElement | null;\n\n // This is platform dependent of Node/DOM\n // Jest requires Node types\n timer: number | null;\n\n startListening(): void {\n if (!this.container.current || !this.container.current.parentElement) {\n log.error(\"Tooltip doesn't have a container or a parent set!\");\n return;\n }\n\n this.parent = this.container.current.parentElement;\n this.parent.addEventListener('mousemove', this.handleMouseMove);\n this.parent.addEventListener('mouseleave', this.handleMouseLeave);\n this.parent.addEventListener('mousedown', this.stopShowingTooltip);\n }\n\n stopListening(): void {\n if (!this.parent) {\n return;\n }\n\n this.parent.removeEventListener('mousemove', this.handleMouseMove);\n this.parent.removeEventListener('mouseleave', this.handleMouseLeave);\n this.parent.removeEventListener('mousedown', this.stopShowingTooltip);\n }\n\n startListeningWindow(): void {\n window.addEventListener('mousemove', this.handleWindowMouseMove, true);\n window.addEventListener('contextmenu', this.stopShowingTooltip, true);\n window.addEventListener('wheel', this.handleWheel);\n }\n\n stopListeningWindow(): void {\n window.removeEventListener('mousemove', this.handleWindowMouseMove, true);\n window.removeEventListener('contextmenu', this.stopShowingTooltip, true);\n window.removeEventListener('wheel', this.handleWheel);\n }\n\n handleMouseMove(): void {\n this.startTimer();\n }\n\n handleWheel(): void {\n const { isShown } = this.state;\n if (this.popper.current && this.parent && isShown) {\n if (\n !this.popper.current.element.matches(':hover') &&\n !this.parent.matches(':hover')\n ) {\n this.stopTimer();\n this.hide();\n }\n }\n }\n\n handleMouseLeave(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n const { interactive } = this.props;\n if (!interactive && isShown) {\n this.hide();\n }\n }\n\n handleTimeout(): void {\n this.show();\n }\n\n handleWindowMouseMove(event: MouseEvent): void {\n const mouseX = event.clientX;\n const mouseY = event.clientY;\n const { isShown } = this.state;\n\n if (!this.popper.current || !this.parent) {\n return;\n }\n const popperRect = this.popper.current.element.getBoundingClientRect();\n const parentRect = this.parent.getBoundingClientRect();\n\n if (\n mouseX >= popperRect.left &&\n mouseX <= popperRect.left + popperRect.width &&\n mouseY >= popperRect.top &&\n mouseY <= popperRect.top + popperRect.height\n ) {\n this.handleMouseMove();\n } else if (\n mouseX >= parentRect.left &&\n mouseX <= parentRect.left + parentRect.width &&\n mouseY >= parentRect.top &&\n mouseY <= parentRect.top + parentRect.height\n ) {\n this.handleMouseMove();\n } else if (isShown) {\n this.stopTimer();\n this.hide();\n }\n }\n\n startTimer(): void {\n this.stopTimer();\n\n const { timeout, reshowTimeout } = this.props;\n let timerTimeout = timeout;\n if (\n Tooltip.shownTooltipCount > 0 ||\n Date.now() - Tooltip.lastHiddenTime < Tooltip.triggerReshowThreshold\n ) {\n timerTimeout = reshowTimeout;\n }\n this.timer = window.setTimeout(this.handleTimeout, timerTimeout);\n }\n\n stopTimer(): void {\n if (this.timer != null) {\n clearTimeout(this.timer);\n this.timer = null;\n }\n }\n\n show(): void {\n const { isShown } = this.state;\n this.stopTimer();\n\n if (!isShown) {\n this.popper.current?.show();\n this.setState({ isShown: true });\n\n const { interactive } = this.props;\n if (interactive) {\n this.startListeningWindow();\n }\n }\n }\n\n hide(): void {\n this.popper.current?.hide();\n this.stopListeningWindow();\n }\n\n update(): void {\n this.popper.current?.scheduleUpdate();\n }\n\n handleExited(): void {\n this.setState({ isShown: false });\n const { onExited } = this.props;\n onExited();\n }\n\n stopShowingTooltip(): void {\n const { isShown } = this.state;\n this.stopTimer();\n if (isShown) {\n this.hide();\n }\n }\n\n render(): JSX.Element {\n const {\n interactive,\n children,\n referenceObject,\n popperClassName,\n 'data-testid': dataTestId,\n onEntered,\n } = this.props;\n const { isShown } = this.state;\n\n let { options } = this.props;\n options = {\n placement: 'bottom',\n ...options,\n };\n\n return (\n <div\n ref={this.container}\n style={{ display: 'none' }}\n data-testid={dataTestId}\n >\n <Popper\n className={classNames(popperClassName)}\n options={options}\n ref={this.popper}\n onEntered={onEntered}\n onExited={this.handleExited}\n interactive={interactive}\n referenceObject={referenceObject}\n >\n <div className=\"tooltip-content\"> {isShown && children}</div>\n </Popper>\n </div>\n );\n }\n}\n\nexport default Tooltip;\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ export { default as Popper } from "./Popper.js";
2
+ export { default as Tooltip } from "./Tooltip.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["default","Popper","Tooltip"],"sources":["../../src/popper/index.ts"],"sourcesContent":["export { default as Popper } from './Popper';\nexport type { PopperOptions, ReferenceObject } from './Popper';\nexport { default as Tooltip } from './Tooltip';\n"],"mappings":"SAASA,OAAO,IAAIC,MAAM;AAAA,SAEjBD,OAAO,IAAIE,OAAO"}
@@ -0,0 +1,47 @@
1
+ import ShortcutRegistry from "./ShortcutRegistry.js";
2
+ import { MODIFIER, KEY } from "./Shortcut.js";
3
+ var GLOBAL_SHORTCUTS = {
4
+ COPY: ShortcutRegistry.createAndAdd({
5
+ id: 'GLOBAL.COPY',
6
+ name: 'Copy',
7
+ shortcut: [MODIFIER.CTRL, KEY.C],
8
+ macShortcut: [MODIFIER.CMD, KEY.C],
9
+ isEditable: false
10
+ }),
11
+ PASTE: ShortcutRegistry.createAndAdd({
12
+ id: 'GLOBAL.PASTE',
13
+ name: 'Paste',
14
+ shortcut: [MODIFIER.CTRL, KEY.V],
15
+ macShortcut: [MODIFIER.CMD, KEY.V],
16
+ isEditable: false
17
+ }),
18
+ SAVE: ShortcutRegistry.createAndAdd({
19
+ id: 'GLOBAL.SAVE',
20
+ name: 'Save',
21
+ shortcut: [MODIFIER.CTRL, KEY.S],
22
+ macShortcut: [MODIFIER.CMD, KEY.S],
23
+ isEditable: false
24
+ }),
25
+ SELECT_ALL: ShortcutRegistry.createAndAdd({
26
+ id: 'GLOBAL.SELECT_ALL',
27
+ name: 'Select All',
28
+ shortcut: [MODIFIER.CTRL, KEY.A],
29
+ macShortcut: [MODIFIER.CMD, KEY.A],
30
+ isEditable: false
31
+ }),
32
+ LINKER: ShortcutRegistry.createAndAdd({
33
+ id: 'GLOBAL.LINKER',
34
+ name: 'Linker',
35
+ shortcut: [MODIFIER.CTRL, KEY.L],
36
+ macShortcut: [MODIFIER.CMD, KEY.L]
37
+ }),
38
+ LINKER_CLOSE: ShortcutRegistry.createAndAdd({
39
+ id: 'GLOBAL.LINKER_CLOSE',
40
+ name: 'Close Linker Overlay',
41
+ shortcut: [KEY.ESCAPE],
42
+ macShortcut: [KEY.ESCAPE],
43
+ isEditable: false
44
+ })
45
+ };
46
+ export default GLOBAL_SHORTCUTS;
47
+ //# sourceMappingURL=GlobalShortcuts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GlobalShortcuts.js","names":["ShortcutRegistry","MODIFIER","KEY","GLOBAL_SHORTCUTS","COPY","createAndAdd","id","name","shortcut","CTRL","C","macShortcut","CMD","isEditable","PASTE","V","SAVE","S","SELECT_ALL","A","LINKER","L","LINKER_CLOSE","ESCAPE"],"sources":["../../src/shortcuts/GlobalShortcuts.ts"],"sourcesContent":["import ShortcutRegistry from './ShortcutRegistry';\nimport { MODIFIER, KEY } from './Shortcut';\n\nconst GLOBAL_SHORTCUTS = {\n COPY: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.COPY',\n name: 'Copy',\n shortcut: [MODIFIER.CTRL, KEY.C],\n macShortcut: [MODIFIER.CMD, KEY.C],\n isEditable: false,\n }),\n PASTE: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.PASTE',\n name: 'Paste',\n shortcut: [MODIFIER.CTRL, KEY.V],\n macShortcut: [MODIFIER.CMD, KEY.V],\n isEditable: false,\n }),\n SAVE: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.SAVE',\n name: 'Save',\n shortcut: [MODIFIER.CTRL, KEY.S],\n macShortcut: [MODIFIER.CMD, KEY.S],\n isEditable: false,\n }),\n SELECT_ALL: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.SELECT_ALL',\n name: 'Select All',\n shortcut: [MODIFIER.CTRL, KEY.A],\n macShortcut: [MODIFIER.CMD, KEY.A],\n isEditable: false,\n }),\n LINKER: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.LINKER',\n name: 'Linker',\n shortcut: [MODIFIER.CTRL, KEY.L],\n macShortcut: [MODIFIER.CMD, KEY.L],\n }),\n LINKER_CLOSE: ShortcutRegistry.createAndAdd({\n id: 'GLOBAL.LINKER_CLOSE',\n name: 'Close Linker Overlay',\n shortcut: [KEY.ESCAPE],\n macShortcut: [KEY.ESCAPE],\n isEditable: false,\n }),\n};\n\nexport default GLOBAL_SHORTCUTS;\n"],"mappings":"OAAOA,gBAAgB;AAAA,SACdC,QAAQ,EAAEC,GAAG;AAEtB,IAAMC,gBAAgB,GAAG;EACvBC,IAAI,EAAEJ,gBAAgB,CAACK,YAAY,CAAC;IAClCC,EAAE,EAAE,aAAa;IACjBC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACQ,CAAC,CAAC;IAChCC,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACQ,CAAC,CAAC;IAClCG,UAAU,EAAE;EACd,CAAC,CAAC;EACFC,KAAK,EAAEd,gBAAgB,CAACK,YAAY,CAAC;IACnCC,EAAE,EAAE,cAAc;IAClBC,IAAI,EAAE,OAAO;IACbC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACa,CAAC,CAAC;IAChCJ,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACa,CAAC,CAAC;IAClCF,UAAU,EAAE;EACd,CAAC,CAAC;EACFG,IAAI,EAAEhB,gBAAgB,CAACK,YAAY,CAAC;IAClCC,EAAE,EAAE,aAAa;IACjBC,IAAI,EAAE,MAAM;IACZC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACe,CAAC,CAAC;IAChCN,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACe,CAAC,CAAC;IAClCJ,UAAU,EAAE;EACd,CAAC,CAAC;EACFK,UAAU,EAAElB,gBAAgB,CAACK,YAAY,CAAC;IACxCC,EAAE,EAAE,mBAAmB;IACvBC,IAAI,EAAE,YAAY;IAClBC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACiB,CAAC,CAAC;IAChCR,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACiB,CAAC,CAAC;IAClCN,UAAU,EAAE;EACd,CAAC,CAAC;EACFO,MAAM,EAAEpB,gBAAgB,CAACK,YAAY,CAAC;IACpCC,EAAE,EAAE,eAAe;IACnBC,IAAI,EAAE,QAAQ;IACdC,QAAQ,EAAE,CAACP,QAAQ,CAACQ,IAAI,EAAEP,GAAG,CAACmB,CAAC,CAAC;IAChCV,WAAW,EAAE,CAACV,QAAQ,CAACW,GAAG,EAAEV,GAAG,CAACmB,CAAC;EACnC,CAAC,CAAC;EACFC,YAAY,EAAEtB,gBAAgB,CAACK,YAAY,CAAC;IAC1CC,EAAE,EAAE,qBAAqB;IACzBC,IAAI,EAAE,sBAAsB;IAC5BC,QAAQ,EAAE,CAACN,GAAG,CAACqB,MAAM,CAAC;IACtBZ,WAAW,EAAE,CAACT,GAAG,CAACqB,MAAM,CAAC;IACzBV,UAAU,EAAE;EACd,CAAC;AACH,CAAC;AAED,eAAeV,gBAAgB"}