@deephaven/code-studio 0.70.0 → 0.70.1-alpha-picker-table.35

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 (58) hide show
  1. package/build/assets/AppRoot-8fbba59a.js +5 -0
  2. package/build/assets/AppRoot-8fbba59a.js.map +1 -0
  3. package/build/assets/{Chart-0e56189b.js → Chart-49593479.js} +2 -2
  4. package/build/assets/{Chart-0e56189b.js.map → Chart-49593479.js.map} +1 -1
  5. package/build/assets/ControlType-43d413ba.js +22 -0
  6. package/build/assets/ControlType-43d413ba.js.map +1 -0
  7. package/build/assets/FontBootstrap-2f91f6bb.js +4 -0
  8. package/build/assets/FontBootstrap-2f91f6bb.js.map +1 -0
  9. package/build/assets/{FormatterUtils-fffc2387.js → FormatterUtils-dbab8b84.js} +2 -2
  10. package/build/assets/{FormatterUtils-fffc2387.js.map → FormatterUtils-dbab8b84.js.map} +1 -1
  11. package/build/assets/{Grid-f3209873.js → Grid-cb3653e5.js} +2 -2
  12. package/build/assets/{Grid-f3209873.js.map → Grid-cb3653e5.js.map} +1 -1
  13. package/build/assets/GridRenderer-7b447c86.js +2 -0
  14. package/build/assets/GridRenderer-7b447c86.js.map +1 -0
  15. package/build/assets/IrisGrid-7c65a74c.js +3 -0
  16. package/build/assets/IrisGrid-7c65a74c.js.map +1 -0
  17. package/build/assets/{IrisGridModel-0998ffa6.js → IrisGridModel-3cc97aec.js} +2 -2
  18. package/build/assets/{IrisGridModel-0998ffa6.js.map → IrisGridModel-3cc97aec.js.map} +1 -1
  19. package/build/assets/IrisGridShortcuts-929f2007.js +2 -0
  20. package/build/assets/IrisGridShortcuts-929f2007.js.map +1 -0
  21. package/build/assets/IrisGridThemeProvider-bc978029.js +11 -0
  22. package/build/assets/IrisGridThemeProvider-bc978029.js.map +1 -0
  23. package/build/assets/{MarkdownEditor-73f2a5e2.js → MarkdownEditor-7db3103d.js} +2 -2
  24. package/build/assets/{MarkdownEditor-73f2a5e2.js.map → MarkdownEditor-7db3103d.js.map} +1 -1
  25. package/build/assets/{MarkdownNotebook-349f5bfd.js → MarkdownNotebook-e640b4b8.js} +2 -2
  26. package/build/assets/{MarkdownNotebook-349f5bfd.js.map → MarkdownNotebook-e640b4b8.js.map} +1 -1
  27. package/build/assets/{MissingPartitionError-4a077854.js → MissingPartitionError-b63f09c6.js} +2 -2
  28. package/build/assets/{MissingPartitionError-4a077854.js.map → MissingPartitionError-b63f09c6.js.map} +1 -1
  29. package/build/assets/{StyleGuideRoot-da28e6c2.js → StyleGuideRoot-3dcdb14f.js} +6 -6
  30. package/build/assets/{StyleGuideRoot-da28e6c2.js.map → StyleGuideRoot-3dcdb14f.js.map} +1 -1
  31. package/build/assets/{index-429abb41.js → index-04bee0e3.js} +2 -2
  32. package/build/assets/{index-429abb41.js.map → index-04bee0e3.js.map} +1 -1
  33. package/build/assets/index-6cba7ffb.js +2 -0
  34. package/build/assets/index-6cba7ffb.js.map +1 -0
  35. package/build/assets/index-de8060f3.js +9 -0
  36. package/build/assets/index-de8060f3.js.map +1 -0
  37. package/build/assets/{useUser-93a51119.js → useUser-46c889c3.js} +2 -2
  38. package/build/assets/{useUser-93a51119.js.map → useUser-46c889c3.js.map} +1 -1
  39. package/build/index.html +1 -1
  40. package/package.json +30 -30
  41. package/build/assets/AppRoot-92ccf013.js +0 -5
  42. package/build/assets/AppRoot-92ccf013.js.map +0 -1
  43. package/build/assets/ControlType-7c0baaa0.js +0 -22
  44. package/build/assets/ControlType-7c0baaa0.js.map +0 -1
  45. package/build/assets/FontBootstrap-198bc02a.js +0 -4
  46. package/build/assets/FontBootstrap-198bc02a.js.map +0 -1
  47. package/build/assets/GridRenderer-ecdfd753.js +0 -2
  48. package/build/assets/GridRenderer-ecdfd753.js.map +0 -1
  49. package/build/assets/IrisGrid-3f213496.js +0 -3
  50. package/build/assets/IrisGrid-3f213496.js.map +0 -1
  51. package/build/assets/IrisGridShortcuts-71bf0b60.js +0 -2
  52. package/build/assets/IrisGridShortcuts-71bf0b60.js.map +0 -1
  53. package/build/assets/IrisGridThemeProvider-74374677.js +0 -11
  54. package/build/assets/IrisGridThemeProvider-74374677.js.map +0 -1
  55. package/build/assets/index-6c176a84.js +0 -9
  56. package/build/assets/index-6c176a84.js.map +0 -1
  57. package/build/assets/index-97e41698.js +0 -2
  58. package/build/assets/index-97e41698.js.map +0 -1
@@ -1,4 +0,0 @@
1
- import{r as u,U as Ve,T as X,M as R,I as s,K as k,V as N,L as Y,aP as Ee,ai as Ne,a8 as J,bd as $e,ay as Le}from"./vendor-323142a4.js";import{ak as xe,d as G,H as Ue,C as se,B as le,a$ as Ke,s as Be,bt as We}from"./ControlType-7c0baaa0.js";import{L as ne,aG as He,a9 as ze,e as Ge}from"./index-429abb41.js";import{M as we,D as qe,g as Ze}from"./GridRenderer-ecdfd753.js";import{C as Xe,b as Ye}from"./IrisGridModel-0998ffa6.js";function Ce(n,e){return u.isValidElement(n)&&n.type===e}const Je="_spectrumActionBar_1ji6m_5",Qe="_spectrumDialogComponentHeading_1ji6m_9",et="_spectrumEllipsis_1ji6m_14",oe={spectrumActionBar:Je,spectrumDialogComponentHeading:Qe,spectrumEllipsis:et};function ue(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),t.push.apply(t,r)}return t}function tt(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ue(Object(t),!0).forEach(function(r){F(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):ue(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function F(n,e,t){return e=nt(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function nt(n){var e=rt(n,"string");return typeof e=="symbol"?e:String(e)}function rt(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var at=100,Q;(function(n){n.UP="UP",n.DOWN="DOWN"})(Q||(Q={}));class A extends u.Component{constructor(e){super(e),F(this,"popper",void 0),F(this,"cbContainer",void 0),F(this,"menuContainer",void 0),F(this,"input",void 0),F(this,"getCachedFilteredOptions",Ve((r,a)=>r.filter(i=>i.title.toLowerCase().indexOf(a.toLowerCase())>=0)));var{popperOptions:t}=this.props;t=tt({placement:"bottom-end",modifiers:{preventOverflow:{enabled:!1}}},t),this.state={title:"",filteredOptions:[],keyboardOptionIndex:0,menuIsOpen:!1,inputWidth:100,invalid:!1,popperOptions:t},this.handleMenuKeyDown=this.handleMenuKeyDown.bind(this),this.handleMenuBlur=this.handleMenuBlur.bind(this),this.handleInputChange=this.handleInputChange.bind(this),this.handleInputKeyDown=this.handleInputKeyDown.bind(this),this.handleInputBlur=this.handleInputBlur.bind(this),this.handelInputFocus=this.handelInputFocus.bind(this),this.handleInputClick=this.handleInputClick.bind(this),this.updateInputValue=X(this.updateInputValue,at),this.handleOptionClick=this.handleOptionClick.bind(this),this.handleMenuOpened=this.handleMenuOpened.bind(this),this.handleMenuExited=this.handleMenuExited.bind(this),this.popper=R.createRef(),this.cbContainer=R.createRef(),this.menuContainer=R.createRef(),this.input=R.createRef()}setInputWidth(){this.cbContainer.current&&this.setState({inputWidth:this.cbContainer.current.getBoundingClientRect().width})}getValueAndValidate(e){if(!e)return this.setState({invalid:!1}),{value:e,isValid:!1};var{options:t}=this.props,r=t.filter(a=>a.title.toLowerCase()===e.toLowerCase());return r.length<1?(this.setState({invalid:!0}),{value:e,isValid:!1}):(this.setState({invalid:!1}),{value:r[0].value,isValid:!0})}updateInputValue(e){var{menuIsOpen:t}=this.state,{value:r,isValid:a}=this.getValueAndValidate(e);t&&this.processFilterChange(e),this.fireOnChange(r,a)}fireOnChange(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,{onChange:r}=this.props;r(e,t)}processFilterChange(e){var t,{options:r}=this.props,{menuIsOpen:a}=this.state,i=e?this.getCachedFilteredOptions(r,e):r,l=i.length===1&&i[0].title===e;if(this.setState({filteredOptions:i,keyboardOptionIndex:0}),l&&a){this.closeMenu();return}(t=this.popper.current)===null||t===void 0||t.scheduleUpdate()}resetValue(){this.setState({title:""}),this.fireOnChange("")}handleResize(){this.setInputWidth()}handleMenuKeyDown(e){var t,{filteredOptions:r,keyboardOptionIndex:a}=this.state,i=r[a];switch(e.key){case"Enter":case"ArrowRight":e.stopPropagation(),e.preventDefault(),i!=null&&(this.setState({title:i.title,invalid:!1}),this.fireOnChange(i.value)),this.closeMenu(),(t=this.input.current)===null||t===void 0||t.focus();break;case"ArrowUp":e.stopPropagation(),e.preventDefault(),this.navigateMenu(A.MENU_NAVIGATION_DIRECTION.UP);break;case"ArrowDown":e.stopPropagation(),e.preventDefault(),this.navigateMenu(A.MENU_NAVIGATION_DIRECTION.DOWN);break;case"Tab":if(e.stopPropagation(),e.preventDefault(),e.shiftKey){this.navigateMenu(A.MENU_NAVIGATION_DIRECTION.UP);break}this.navigateMenu(A.MENU_NAVIGATION_DIRECTION.DOWN);break;case"Escape":e.preventDefault(),e.stopPropagation(),this.closeMenu();break}}navigateMenu(e){var{filteredOptions:t,keyboardOptionIndex:r}=this.state,a=r;e===A.MENU_NAVIGATION_DIRECTION.UP?r>0?(a=(a-1)%t.length,this.setState({keyboardOptionIndex:a})):r===0&&(a=t.length-1,this.setState({keyboardOptionIndex:a})):e===A.MENU_NAVIGATION_DIRECTION.DOWN&&r<t.length&&(a=(a+1)%t.length,this.setState({keyboardOptionIndex:a})),this.scrollOptionIntoView(a)}handleInputKeyDown(e){var{onEnter:t}=this.props,{menuIsOpen:r}=this.state;r?this.handleMenuKeyDown(e):e.key==="Enter"?t():e.key==="Escape"?(this.resetValue(),e.preventDefault(),e.stopPropagation()):e.key==="ArrowRight"||e.key==="ArrowLeft"||e.key==="Tab"||e.key==="Shift"||this.openMenu()}handleInputChange(e){this.setState({title:e.target.value}),this.updateInputValue(e.target.value)}handleOptionClick(e){var t;this.setState({title:e.title,invalid:!1}),this.fireOnChange(e.value),this.closeMenu(),(t=this.input.current)===null||t===void 0||t.focus()}handelInputFocus(){var{menuIsOpen:e}=this.state;e||this.openMenu()}handleInputClick(){var{menuIsOpen:e}=this.state;e||this.openMenu()}handleInputBlur(e){var{menuIsOpen:t}=this.state;t&&e.relatedTarget instanceof Element&&this.popper.current!==null&&this.popper.current.element.contains(e.relatedTarget)||this.closeMenu(!1)}handleMenuBlur(e){e.relatedTarget===this.input.current||e.relatedTarget instanceof Element&&this.popper.current!==null&&this.popper.current.element.contains(e.relatedTarget)||this.closeMenu(!1)}handleMenuOpened(){var e;(e=this.input.current)===null||e===void 0||e.focus()}handleMenuExited(){var{menuIsOpen:e}=this.state;e&&this.setState({menuIsOpen:!1,keyboardOptionIndex:0})}openMenu(){var{title:e}=this.state;this.processFilterChange(e),this.setInputWidth(),this.setState({menuIsOpen:!0}),window.requestAnimationFrame(()=>{var t;(t=this.popper.current)===null||t===void 0||t.show()})}closeMenu(){var e,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;if(this.setState({menuIsOpen:!1,keyboardOptionIndex:0}),t){var r;(r=this.input.current)===null||r===void 0||r.focus()}(e=this.popper.current)===null||e===void 0||e.hide()}scrollOptionIntoView(e){if(this.menuContainer.current){var t;(t=this.menuContainer.current.children.item(e))===null||t===void 0||t.scrollIntoView({behavior:"smooth",block:"nearest"})}}renderMenuElement(){var{inputWidth:e}=this.state;return s.jsx("div",{className:k("aci-options"),ref:this.menuContainer,role:"presentation",onKeyDown:this.handleMenuKeyDown,style:{width:e},onBlur:this.handleMenuBlur,children:this.renderOptions()})}renderOptions(){var{noMatchText:e}=this.props,{title:t,filteredOptions:r}=this.state;return t&&r.length===0?s.jsx("div",{className:"no-match",children:e}):r.map((a,i)=>this.renderOption(a,i))}renderOption(e,t){var{keyboardOptionIndex:r}=this.state,a="option-".concat(t,"-").concat(e.value);return s.jsx("button",{type:"button",className:k("aci-option-btn",{"keyboard-active":r===t}),onClick:()=>this.handleOptionClick(e),onFocus:()=>this.setState({keyboardOptionIndex:t}),children:e.title},a)}render(){var{options:e,inputPlaceholder:t,disabled:r,className:a,defaultTitle:i,spellCheck:l,"data-testid":o}=this.props,{title:f,menuIsOpen:c,popperOptions:d,invalid:p}=this.state;return s.jsxs("div",{className:"aci-container",ref:this.cbContainer,children:[s.jsx("input",{value:f||i,className:k("form-control",a,"aci-input",{"is-invalid":p&&!c}),ref:this.input,onChange:this.handleInputChange,placeholder:t||e[0].title,disabled:r,onFocus:this.handelInputFocus,onClick:this.handleInputClick,onBlur:this.handleInputBlur,onKeyDown:this.handleInputKeyDown,spellCheck:l,"data-testid":o}),s.jsx(xe,{ref:this.popper,options:d,className:k("aci-options-popper interactive"),onEntered:this.handleMenuOpened,onExited:this.handleMenuExited,children:this.renderMenuElement()})]})}}F(A,"propTypes",{options:N.arrayOf(N.shape({title:N.string.isRequired,value:N.string.isRequired})).isRequired,popperOptions:N.shape({}),onChange:N.func,inputPlaceholder:N.string,disabled:N.bool,className:N.string,defaultTitle:N.string,spellCheck:N.bool,onEnter:N.func,noMatchText:N.string,"data-testid":N.string});F(A,"defaultProps",{onChange(){},inputPlaceholder:"",disabled:!1,className:"",defaultTitle:"",popperOptions:null,spellCheck:!0,onEnter(){},noMatchText:"No matching items found","data-testid":void 0});F(A,"MENU_NAVIGATION_DIRECTION",Q);const an=A;function ke(n){var{className:e="",value:t,onChange:r,spellCheck:a=!1,placeholder:i="",disabled:l=!1,delimiter:o="",id:f="","data-testid":c}=n,[d,p]=u.useState(t),[h,m]=u.useState(!1),b=u.useRef(null);u.useEffect(function(){p(t)},[t]);function y(I){return I.trim().split(o).filter(w=>w).join(`
2
- `.concat(o.trim()))}function x(I){return I.split(`
3
- `).map(w=>w.trim()).join(" ")}function P(){if(b.current){b.current.style.height="0";var I=b.current.scrollHeight+(b.current.offsetHeight-b.current.clientHeight);I>0&&(b.current.style.height="".concat(I,"px"))}}function S(I){var w=I.target.value;h&&(o&&(w=y(w)),m(!1)),p(w),r(w)}function L(){b.current&&(o&&(p(y(d)),P()),b.current.scrollLeft=0)}function U(){b.current&&document.activeElement!==b.current&&b.current.focus()}function g(){o&&(p(x(d)),r(x(d)))}function C(){m(!0)}return u.useEffect(function(){P()},[d]),s.jsx("textarea",{ref:b,id:f,className:k(e,"auto-resize-textarea form-control"),placeholder:i,value:d,rows:1,onChange:S,onFocus:L,onMouseDown:U,onBlur:g,onPaste:C,spellCheck:a,disabled:l,"data-testid":c})}ke.propTypes={value:N.string.isRequired,onChange:N.func.isRequired,className:N.string,placeholder:N.string,spellCheck:N.bool,disabled:N.bool,delimiter:N.string,id:N.string,"data-testid":N.string};ke.defaultProps={className:"",id:"",placeholder:"",disabled:!1,spellCheck:!1,delimiter:"","data-testid":void 0};var it=ne.module("TimeInput"),st="([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]",lt=["00:00:00","12:34:56","23:59:59"];function de(n){return n!=null?"".concat(n.substring(0,8).replace(/\u2007/g,"0")).concat("00:00:00".substring(n.length)):n}var Pe=R.forwardRef((n,e)=>{var{allowValueWrapping:t=!0,className:r="",onChange:a=()=>!1,value:i=0,onFocus:l=()=>!1,onBlur:o=()=>!1,onSelect:f=()=>!1,"data-testid":c}=n,[d,p]=u.useState(G.formatTime(i)),h=u.useRef(i),[m,b]=u.useState(),y=u.useRef(null);u.useImperativeHandle(e,()=>({focus:()=>{var g;(g=y.current)===null||g===void 0||g.focus()},setSelection:g=>{var C;(C=y.current)===null||C===void 0||C.focus(),b(g)}}),[]),u.useEffect(function(){h.current!==i&&(p(G.formatTime(i)),h.current=i)},[h,i]);function x(g,C,I){var w=g.selectionStart===0?24:60,_=parseInt(I,10)-C;return Number.isNaN(_)?_=0:t?_=(_%w+w)%w:_=Math.min(Math.max(0,_),w-1),"".concat(_).padStart(2,"0")}function P(g,C,I,w,_){return w===0&&_===2&&C===1&&parseInt(I,10)>1?"0".concat(I).concat(g.substring(2)):qe(g,C,I)}var S=u.useCallback(g=>{it.debug("handleChange",g),p(g),h.current=G.parseTime(de(g)),a(h.current)},[a]),L=u.useCallback(()=>{var g=de(d);g!==d&&p(g),o()},[d,o]),U=u.useCallback(g=>{b(g),f(g)},[f]);return s.jsx(we,{ref:y,className:r,example:lt,getNextSegmentValue:x,getPreferredReplacementString:P,onChange:S,onSelect:U,pattern:st,selection:m,value:d,onFocus:l,onBlur:L,"data-testid":c})});Pe.defaultProps={allowValueWrapping:!0,className:"",onChange:()=>!1,onSelect:()=>!1,value:0,onFocus:()=>!1,onBlur:()=>!1,"data-testid":void 0};const ee=Pe;function ce(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),t.push.apply(t,r)}return t}function ot(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ce(Object(t),!0).forEach(function(r){$(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):ce(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function $(n,e,t){return e=ut(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function ut(n){var e=dt(n,"string");return typeof e=="symbol"?e:String(e)}function dt(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}var pe=-1,te;(function(n){n.UP="UP",n.DOWN="DOWN"})(te||(te={}));class j extends u.Component{constructor(e){super(e),$(this,"csContainer",void 0),$(this,"menuContainer",void 0),$(this,"button",void 0),$(this,"input",void 0);var{value:t,valueToTime:r}=e;this.toggleMenu=this.toggleMenu.bind(this),this.handleMenuKeyDown=this.handleMenuKeyDown.bind(this),this.closeMenu=this.closeMenu.bind(this),this.handleOptionClick=this.handleOptionClick.bind(this),this.handleOptionFocus=this.handleOptionFocus.bind(this),this.handleMenuOpened=this.handleMenuOpened.bind(this),this.handleMenuExited=this.handleMenuExited.bind(this),this.handleCustomInput=this.handleCustomInput.bind(this),this.csContainer=R.createRef(),this.menuContainer=R.createRef(),this.button=R.createRef(),this.input=R.createRef(),this.state={keyboardOptionIndex:0,menuIsOpen:!1,inputWidth:100,customTime:r(t),inputFocused:!1}}getSelectedText(){var{options:e,value:t,placeholder:r}=this.props,{customTime:a}=this.state;if(t===null)return r;for(var i=0;i<e.length;i+=1){var l=e[i];if(l.value===t)return l.title}return G.formatTime(a)}setInputWidth(){this.csContainer.current&&this.setState({inputWidth:this.csContainer.current.getBoundingClientRect().width})}focus(){var e;(e=this.button.current)===null||e===void 0||e.focus()}updateInputValue(e){var{onChange:t}=this.props;t(e)}handleResize(){this.setInputWidth()}handleMenuKeyDown(e){var t,{keyboardOptionIndex:r,inputFocused:a}=this.state,{options:i}=this.props;switch(e.key){case"Enter":case" ":a?this.updateFromCustom():this.updateInputValue(i[r].value),this.closeMenu(),(t=this.button.current)===null||t===void 0||t.focus(),e.stopPropagation(),e.preventDefault();break;case"Tab":e.shiftKey?this.handleMenuNavigation(j.MENU_NAVIGATION_DIRECTION.UP):this.handleMenuNavigation(j.MENU_NAVIGATION_DIRECTION.DOWN),e.stopPropagation(),e.preventDefault();break;case"ArrowUp":this.handleMenuNavigation(j.MENU_NAVIGATION_DIRECTION.UP),e.stopPropagation(),e.preventDefault();break;case"ArrowDown":this.handleMenuNavigation(j.MENU_NAVIGATION_DIRECTION.DOWN),e.stopPropagation(),e.preventDefault();break;case"Escape":this.closeMenu();break}}handleMenuNavigation(e){var{keyboardOptionIndex:t,inputFocused:r}=this.state,{options:a}=this.props,i=a.length,l=t;switch(e){case j.MENU_NAVIGATION_DIRECTION.UP:if(!r&&t===0){this.focusInput();break}else r&&this.focusOption(t);t>0&&!r?(l=(l-1)%i,this.setState({keyboardOptionIndex:l})):t===0&&(l=i-1,this.setState({keyboardOptionIndex:l})),this.scrollOptionIntoView(l);break;case j.MENU_NAVIGATION_DIRECTION.DOWN:if(!r&&t===i-1){this.focusInput();break}else r&&this.focusOption(t);t<i&&!(r&&t===0)&&(l=(l+1)%i,this.setState({keyboardOptionIndex:l})),this.scrollOptionIntoView(l);break}}handleOptionClick(e){var t=Number(e.currentTarget.value),{options:r,timeToValue:a}=this.props,{customTime:i}=this.state;if(t===pe){var l=a(i);this.updateAndClose(l)}else this.updateAndClose(r[t].value)}updateAndClose(e){var t;this.updateInputValue(e),this.closeMenu(),(t=this.button.current)===null||t===void 0||t.focus()}handleOptionFocus(e){this.setState({keyboardOptionIndex:Number(e.target.value)})}handleMenuOpened(){var e,{options:t,value:r}=this.props,{keyboardOptionIndex:a}=this.state;this.scrollOptionIntoView(a);var i=(e=this.menuContainer.current)===null||e===void 0?void 0:e.querySelector(".cs-option-btn.keyboard-active");if(i instanceof HTMLElement&&i.focus(),r!==null){var l=t.map(o=>o.value).indexOf(r);l<0&&this.focusInput()}}focusInput(){var e;(e=this.input.current)===null||e===void 0||e.focus()}focusOption(e){var t,r=(t=this.menuContainer.current)===null||t===void 0?void 0:t.querySelector(".cs-options");if(r&&r.children!=null){var a=r.children.item(e);a instanceof HTMLElement&&a.focus()}}handleMenuExited(){var{menuIsOpen:e}=this.state;e&&this.setState({menuIsOpen:!1,keyboardOptionIndex:0})}handleCustomInput(e){var{timeToValue:t}=this.props,r=t(e);this.updateInputValue(r),this.setState({customTime:e})}updateFromCustom(){var{timeToValue:e}=this.props,{customTime:t}=this.state,r=e(t);this.updateInputValue(r)}toggleMenu(e){var{menuIsOpen:t}=this.state;t?this.closeMenu():this.openMenu(),e.stopPropagation()}openMenu(){this.updateKeyboardIndex(),this.setInputWidth(),this.setState({menuIsOpen:!0})}closeMenu(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;if(this.setState({menuIsOpen:!1}),e){var t;(t=this.button.current)===null||t===void 0||t.focus()}}updateKeyboardIndex(){var{options:e,value:t}=this.props;if(t!==null){var r=e.map(a=>a.value).indexOf(t);r>0&&this.setState({keyboardOptionIndex:r})}}scrollOptionIntoView(e){var t,r=(t=this.menuContainer.current)===null||t===void 0?void 0:t.querySelector(".cs-options");if(r&&r.children!=null){var a=r.children.item(e);a instanceof HTMLElement&&a.offsetTop>j.DROP_DOWN_MENU_HEIGHT?r.scrollTop=a.offsetTop-j.DROP_DOWN_MENU_HEIGHT:(a instanceof HTMLElement&&a.offsetTop<0||e===0)&&(r.scrollTop=0)}}renderMenuElement(){var{inputWidth:e}=this.state;return s.jsx("div",{className:"cs-menu-container",ref:this.menuContainer,role:"presentation",onKeyDown:this.handleMenuKeyDown,onClick:t=>{t.stopPropagation()},style:{width:e},children:s.jsx("div",{className:"cs-options-container",children:s.jsx("div",{className:"cs-options",children:this.renderOptions()})})})}renderOptions(){for(var{options:e,value:t,icon:r,customText:a}=this.props,{keyboardOptionIndex:i,customTime:l,inputFocused:o}=this.state,f=!1,c=[],d=0;d<e.length;d+=1){var p=e[d],h="option-".concat(d,"-").concat(p.value);f=f||p.value===t,c.push(s.jsxs("button",{type:"button",value:d,className:k("cs-option-btn",{"keyboard-active":i===d&&!o}),onClick:this.handleOptionClick,onFocus:this.handleOptionFocus,children:[p.value===t&&s.jsx(Y,{icon:r,className:"mr-2"}),p.value!==t&&s.jsx("span",{className:"mr-4"}),p.title]},h))}return c.push(s.jsx("hr",{className:"cs-divider"},"option-divider")),c.push(s.jsxs("button",{type:"button",value:pe,className:k("cs-option-btn",{"keyboard-active":o}),onClick:this.handleOptionClick,onFocus:this.handleOptionFocus,children:[!f&&t!==null?s.jsx(Y,{icon:r,className:"mr-2"}):s.jsx("span",{className:"mr-4"}),a]},"option-custom-label")),c.push(s.jsxs("div",{className:"cs-custom-container",children:[s.jsx("span",{className:"mr-2"}),s.jsx(ee,{ref:this.input,onChange:this.handleCustomInput,value:l,onFocus:()=>this.setState({inputFocused:!0}),onBlur:()=>this.setState({inputFocused:!1})},"option-input"),s.jsx("span",{className:"ml-2"})]},"cs-custom-container")),c.push(s.jsx("hr",{className:"mb-2"},"option-end")),c}render(){var{disabled:e,invalid:t,value:r,"data-testid":a}=this.props,{menuIsOpen:i}=this.state,{popperOptions:l}=this.props;return l=ot({placement:"bottom-end",modifiers:{preventOverflow:{enabled:!1}}},l),s.jsx("div",{className:"input-group cs-container context-menu",ref:this.csContainer,"data-testid":a,children:s.jsx("div",{className:k("input-group-append cs-dropdown",{"cs-dropdown-invalid":t}),children:s.jsxs("button",{type:"button",className:k("btn cs-btn form-control",{"cs-btn-invalid":t}),ref:this.button,onClick:this.toggleMenu,disabled:e,children:[s.jsx("span",{className:k({"text-muted":r===null}),children:this.getSelectedText()}),s.jsx("span",{className:"cs-caret"}),s.jsx(Ue,{isShown:i,actions:{menuElement:this.renderMenuElement()},popperOptions:l,popperClassName:"CustomTimeSelect",onMenuOpened:this.handleMenuOpened,onMenuClosed:this.handleMenuExited,menuStyle:{maxWidth:"100rem"}})]})})})}}$(j,"MENU_NAVIGATION_DIRECTION",te);$(j,"DROP_DOWN_MENU_HEIGHT",125);$(j,"defaultProps",{onChange(){},value:null,disabled:!1,popperOptions:{},icon:He,customText:"Custom",placeholder:"Select a time",valueToTime:n=>n===null?0:Math.round(n/1e3),timeToValue:n=>n*1e3,invalid:!1,"data-testid":void 0});const sn=j;var ct=ne.module("DateInput"),pt="[12][0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])",ht=["2000-01-01","2022-12-31"],ft="YYYY-MM-DD",Se=R.forwardRef((n,e)=>{var{className:t="",onChange:r=()=>{},defaultValue:a="",onFocus:i=()=>{},onBlur:l=()=>{},"data-testid":o}=n,[f,c]=u.useState(a),[d,p]=u.useState(),h=u.useCallback(m=>{ct.debug("handleChange",m),c(m),r(m)},[r]);return s.jsx("div",{className:"d-flex flex-row align-items-center",children:s.jsx(we,{ref:e,className:k(t),example:ht,getNextSegmentValue:Ze,onChange:h,onSelect:p,pattern:pt,placeholder:ft,selection:d,value:f,onFocus:i,onBlur:l,"data-testid":o})})});Se.displayName="DateInput";const ln=Se;function mt(n,e,t){return e=vt(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function vt(n){var e=gt(n,"string");return typeof e=="symbol"?e:String(e)}function gt(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class B extends u.Component{static isParentSelected(e,t){var r=t.get(e);if(r===void 0)return!1;if(typeof r=="boolean")return r;var a=Array.from(r.values()).includes(!0),i=Array.from(r.values()).includes(!1);return a&&i?null:a}constructor(e){super(e),this.toggleMenu=this.toggleMenu.bind(this),this.toggleValueFor=this.toggleValueFor.bind(this),this.selectAll=this.selectAll.bind(this),this.clear=this.clear.bind(this),this.state={menuIsOpen:!1}}toggleMenu(e){e.stopPropagation(),e.preventDefault(),this.setState(t=>{var{menuIsOpen:r}=t;return{menuIsOpen:!r}})}toggleValueFor(e,t){var{valueMap:r,onUpdateValueMap:a}=this.props,i=new Map(r),l=i.get(e);if(l instanceof Map){var o=new Map(l);if(t!=null)o.set(t,l.get(t)===void 0);else{var f=B.isParentSelected(e,i),c=f==null||!f;l.forEach((h,m)=>o.set(m,c))}i.set(e,o)}else i.set(e,l==null||!l);var d=i.get(e);if(t===void 0&&d!==void 0&&typeof d!="boolean"){var p=B.isParentSelected(e,r);p!=null&&p?d.forEach((h,m)=>d.set(m,!1)):d.forEach((h,m)=>d.set(m,!0))}a(i)}setAllValues(e){var{valueMap:t,onUpdateValueMap:r}=this.props,a=new Map;t.forEach((i,l)=>{if(typeof i=="boolean")a.set(l,e);else{var o=new Map;i.forEach((f,c)=>o.set(c,e)),a.set(l,o)}}),r(a)}selectAll(){this.setAllValues(!0)}clear(){this.setAllValues(!1)}renderMenuElement(){var{valueMap:e,"data-testid":t}=this.props;return s.jsxs("div",{className:"hcm-menu-container",children:[Array.from(e.entries()).map(r=>{var[a,i]=r;return s.jsxs("div",{children:[s.jsx(se,{className:"hcm-parent",checked:B.isParentSelected(a,e),onChange:()=>this.toggleValueFor(a),children:a}),i!==void 0&&typeof i!="boolean"&&Array.from(i.entries()).map(l=>{var[o,f]=l;return s.jsx(se,{className:"hcm-child",checked:f,onChange:()=>this.toggleValueFor(a,o),children:o},o)})]},a)}),s.jsx(le,{kind:"ghost",onClick:this.selectAll,"data-testid":t!==void 0?"".concat(t,"-btn-select-all"):void 0,children:"Select All"}),s.jsx(le,{kind:"ghost",onClick:this.clear,"data-testid":t!==void 0?"".concat(t,"-btn-clear"):void 0,children:"Clear"})]})}render(){var{menuText:e,className:t,icon:r,id:a,"data-testid":i}=this.props,{menuIsOpen:l}=this.state;return s.jsxs("button",{type:"button",className:k("btn hcm-btn",t),onClick:this.toggleMenu,id:a,"data-testid":i,children:[s.jsxs("span",{children:[r&&s.jsx(Y,{icon:r,className:"hcm-icon mr-1"}),e]}),s.jsx("span",{className:"cs-caret"}),s.jsx(xe,{options:{placement:"bottom"},isShown:l,onExited:()=>{this.setState({menuIsOpen:!1})},closeOnBlur:!0,interactive:!0,children:this.renderMenuElement()})]})}}mt(B,"defaultProps",{className:"",icon:null,id:"","data-testid":void 0});const on=B;var bt=.025,yt=.9,Ot=.1,It=.618,he=80,K={SIZE:8,DOT_SIZE:2},V=18,Tt=250,Et=60*1e3,Nt={background:"var(--dh-color-random-area-plot-animation-bg)",foregroundFill:"var(--dh-color-random-area-plot-animation-fg-fill)",foregroundStroke:"var(--dh-color-random-area-plot-animation-fg-stroke)",gridColor:"var(--dh-color-random-area-plot-animation-grid)"};function xt(){return ze(Nt)}var wt=R.memo(()=>{var{activeThemes:n}=Ke(),e=u.useMemo(xt,[n]),t=u.useRef(null),r=u.useRef(null),[a,i]=u.useState(!1),l=window.devicePixelRatio,o,f,c,d,p,h=null,m=[];function b(){var v;r.current!=null&&(c=r.current.offsetWidth,d=r.current.offsetHeight),t.current!=null&&(t.current.style.width="".concat(c,"px"),t.current.style.height="".concat(d,"px"),t.current.width=c*l,t.current.height=d*l),(v=o)===null||v===void 0||v.scale(l,l)}function y(){var{foregroundFill:v,foregroundStroke:T}=e,O=document.createElement("canvas");O.width=K.SIZE,O.height=K.SIZE;var D=O.getContext("2d");return D!=null&&(D.fillStyle=T,D.fillRect(0,0,K.DOT_SIZE,K.DOT_SIZE),D.fillStyle=v,D.fillRect(0,0,K.SIZE,K.SIZE)),D?.createPattern(O,"repeat")}function x(v){var T=Math.random()-.5,O=bt*T;return v<Ot?O=Math.abs(O):v>yt&&(O=-Math.abs(O)),v+O}function P(){for(var v=[],T=It,O=0;O<c+V;O+=1)T=x(T),v.push(T);return v}function S(){for(;m.length>=c+V;)m.pop();for(;m.length<c+V;)m.push(x(m[m.length-1]))}function L(v,T){T.beginPath(),T.moveTo(-1,d+1),T.lineTo(-1,d*v[0]);for(var O=0;O<v.length;O+=1)T.lineTo(O,d*v[O]);T.lineTo(c+V,d*v[v.length-1]),T.lineTo(c+V,d+1),T.closePath()}function U(v){v.beginPath();for(var T=1;T<c;T+=he)v.moveTo(T,0),v.lineTo(T,d);for(var O=1;O<d;O+=he)v.moveTo(0,O),v.lineTo(c,O)}function g(v){var T,O,D;h=(T=h)!==null&&T!==void 0?T:v;var{background:De,foregroundStroke:Ae,gridColor:Re}=e;Ge(o),o.fillStyle=De,o.fillRect(0,0,c,d),U(o),o.lineWidth=1,o.strokeStyle=Re,o.stroke();var ae=(((O=h)!==null&&O!==void 0?O:0)-(v??0))/(1e3/V);if(o.translate(ae,0),L(m,o),o.lineWidth=2,o.strokeStyle=Ae,o.stroke(),o.translate(-ae,0),f!=null&&(o.fillStyle=f),o.fill(),o.setTransform(l,0,0,l,0,0),(v??0)-((D=h)!==null&&D!==void 0?D:0)>1e3/V){for(var Z,Fe=Math.floor(((v??0)-((Z=h)!==null&&Z!==void 0?Z:0))/(1e3/V)),ie=0;ie<Fe;ie+=1)m.shift(),m.push(x(m[m.length-1]));h=v}p!=null&&cancelAnimationFrame(p),p=requestAnimationFrame(g)}var C=X(()=>{p=requestAnimationFrame(v=>{b(),S(),i(!1),g(v)})},Tt,{leading:!0});function I(){i(!0),p!=null&&cancelAnimationFrame(p),p=null,h=null}var w=X(()=>{I()},Et);function _(){p==null&&(i(!1),b(),S(),p=requestAnimationFrame(g)),w()}function H(){document.hasFocus()&&_()}function re(){p!=null&&cancelAnimationFrame(p),w(),C()}return u.useEffect(()=>{var v;return o=(v=t.current)===null||v===void 0?void 0:v.getContext("2d",{alpha:!1}),b(),m=P(),f=y(),g(),w(),window.addEventListener("resize",re),window.addEventListener("focus",_),window.addEventListener("blur",I),window.addEventListener("mousemove",H),window.addEventListener("keydown",H),()=>{p!=null&&cancelAnimationFrame(p),window.removeEventListener("resize",re),window.removeEventListener("focus",_),window.removeEventListener("blur",I),window.removeEventListener("mousemove",H),window.removeEventListener("keydown",H),w.cancel(),C.cancel()}},[e]),s.jsx("div",{className:"random-area-plot-animation-container",ref:r,children:s.jsx("canvas",{ref:t,className:a?"shade":""})})});const un=wt;var Ct=ne.module("PickerUtils"),fe="Picker items must be strings, numbers, booleans, <Item> or <Section> elements:";function q(n){return u.isValidElement(n)&&n.type===Ee}function _e(n){return u.isValidElement(n)&&n.type===Ne}function kt(n){return typeof n=="string"||typeof n=="number"||typeof n=="boolean"||_e(n)||q(n)}function Pt(n){return"items"in n}function me(n){var e;return typeof n!="object"?n:n.key!=null?n.key:q(n)?typeof n.props.title=="string"?n.props.title:void 0:(e=n.props.textValue)!==null&&e!==void 0?e:typeof n.props.children=="string"?n.props.children:void 0}function St(n){if(typeof n!="object")return String(n);if(n.props.textValue!=null)return n.props.textValue;if(typeof n.props.children=="string")return n.props.children}function _t(n){if(!kt(n))throw Ct.debug(fe,n),new Error(fe);if(q(n)){var e=me(n),{title:t}=n.props,r=je(n.props.children).filter(o=>!q(o));return{key:e,title:t,items:r}}var a=me(n),i=_e(n)?n.props.children:n,l=St(n);return{key:a,content:i,textValue:l}}function je(n){var e=Array.isArray(n)?n:[n];return e.map(_t)}function jt(n){return n==null||n===!1?null:n===!0?{placement:"right"}:n}function ve(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),t.push.apply(t,r)}return t}function ge(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?ve(Object(t),!0).forEach(function(r){Mt(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):ve(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function Mt(n,e,t){return e=Dt(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Dt(n){var e=At(n,"string");return typeof e=="symbol"?e:String(e)}function At(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function Rt(n){var{children:e}=n;return u.isValidElement(e)?e:(e===""?e=" ":typeof e=="boolean"?e=String(e):Array.isArray(e)&&(e=u.Children.map(e,(t,r)=>Ce(t,J)?u.cloneElement(t,ge(ge({},t.props),{},{UNSAFE_className:k(t.props.UNSAFE_className,oe.spectrumEllipsis)})):t)),typeof e=="string"||typeof e=="number"?s.jsx(J,{UNSAFE_className:oe.spectrumEllipsis,children:e}):s.jsx(s.Fragment,{children:e}))}var Ft=["children","tooltip","defaultSelectedKey","selectedKey","onChange","onSelectionChange","UNSAFE_className"];function be(n,e){var t=Object.keys(n);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(n);e&&(r=r.filter(function(a){return Object.getOwnPropertyDescriptor(n,a).enumerable})),t.push.apply(t,r)}return t}function ye(n){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?be(Object(t),!0).forEach(function(r){Vt(n,r,t[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(n,Object.getOwnPropertyDescriptors(t)):be(Object(t)).forEach(function(r){Object.defineProperty(n,r,Object.getOwnPropertyDescriptor(t,r))})}return n}function Vt(n,e,t){return e=$t(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function $t(n){var e=Lt(n,"string");return typeof e=="symbol"?e:String(e)}function Lt(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}function Ut(n,e){if(n==null)return{};var t=Kt(n,e),r,a;if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(n);for(a=0;a<i.length;a++)r=i[a],!(e.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(n,r)&&(t[r]=n[r])}return t}function Kt(n,e){if(n==null)return{};var t={},r=Object.keys(n),a,i;for(i=0;i<r.length;i++)a=r[i],!(e.indexOf(a)>=0)&&(t[a]=n[a]);return t}function Bt(n){return typeof n=="boolean"?String(n):Array.isArray(n)?s.jsx(Le,{direction:"column",alignItems:"start",children:n.filter(e=>Ce(e,J))}):n}function dn(n){var{children:e,tooltip:t=!0,defaultSelectedKey:r,selectedKey:a,onChange:i,onSelectionChange:l,UNSAFE_className:o}=n,f=Ut(n,Ft),c=u.useMemo(()=>je(e),[e]),d=u.useMemo(()=>jt(t),[t]),p=u.useCallback(h=>{var{key:m,content:b,textValue:y}=h;return s.jsxs(Ne,{textValue:y===""||y==null?"Empty":y,children:[s.jsx(Rt,{children:b}),d==null||b===""?null:s.jsx(Be,{options:d,children:Bt(b)})]},m)},[d]);return s.jsx($e,ye(ye({},f),{},{UNSAFE_className:k("dh-picker",o),items:c,selectedKey:a,defaultSelectedKey:r,onSelectionChange:i??l,children:h=>Pt(h)?s.jsx(Ee,{title:h.title,items:h.items,children:p},h.key):p(h)}))}const Wt="_modified_5rbci_24",Ht="_track_5rbci_35",zt="_handle_5rbci_15",Gt="_ticks_5rbci_103",Me={"handle-size":"15px","popover-width":"90px","time-slider":"_time-slider_5rbci_5","time-slider-popovers":"_time-slider-popovers_5rbci_10","handle-popper":"_handle-popper_5rbci_15",modified:Wt,"flex-spacer":"_flex-spacer_5rbci_31",track:Ht,"track-fills":"_track-fills_5rbci_42","track-fill":"_track-fill_5rbci_42","track-fill-start":"_track-fill-start_5rbci_60","track-fill-middle":"_track-fill-middle_5rbci_61","track-fill-end":"_track-fill-end_5rbci_64","handle-track":"_handle-track_5rbci_67",handle:zt,ticks:Gt,"tick-labels":"_tick-labels_5rbci_121","tick-label":"_tick-label_5rbci_121","tick-label-wrapper":"_tick-label-wrapper_5rbci_137"};var z=parseInt(Me["handle-size"],10),Oe=parseInt(Me["popover-width"],10),M=24*60*60-1,Ie=5*60;function cn(n){var{startTime:e,endTime:t,onChange:r,isStartModified:a=!1,isEndModified:i=!1,"data-testid":l}=n,[o,f]=u.useState(e),[c,d]=u.useState(t),p=u.useRef(null);u.useEffect(function(){f(e),d(t)},[e,t]);var h=u.useCallback((y,x)=>{var P=y,S=x;P===S&&(S<M?S+=1:P-=1),f(P),d(S),r({startTime:P,endTime:S})},[f,d,r]),m=u.useCallback(y=>{h(y,c)},[h,c]),b=u.useCallback(y=>{h(o,y)},[h,o]);return s.jsxs("div",{className:"time-slider","data-testid":l,children:[s.jsx(qt,{startTime:o,endTime:c,onStartTimeChange:m,onEndTimeChange:b,isStartModified:a,isEndModified:i}),s.jsxs("div",{className:"track",ref:p,children:[s.jsx(Zt,{startTime:o,endTime:c}),s.jsx("div",{className:"ticks",children:Array(24).fill(null).map((y,x)=>s.jsx("div",{className:"tick"},x))}),s.jsx(Te,{track:p,time:o,setTime:m}),s.jsx(Te,{track:p,time:c,setTime:b})]}),s.jsxs("div",{className:"tick-labels",children:[s.jsx("div",{className:"tick-label",children:"0:00"}),s.jsx("div",{className:"tick-label-wrapper",children:Array(24).fill(null).map((y,x)=>s.jsx("div",{className:"tick-label",children:"".concat(x+1,":00")},x))})]})]})}function qt(n){var{startTime:e,endTime:t,onStartTimeChange:r,onEndTimeChange:a,isStartModified:i,isEndModified:l,"data-testid":o}=n,f=e>t,[c,d]=u.useState(f?t:e),[p,h]=u.useState(f?e:t),m=u.useRef(null),b=u.useRef(null),y=u.useRef(null),x=u.useRef(null);u.useEffect(function(){d(e>t?t:e),h(e>t?e:t)},[e,t]),u.useEffect(function(){if(y.current!==null){var C;(C=b.current)===null||C===void 0||C.setSelection(y.current)}if(x.current!==null){var I;(I=m.current)===null||I===void 0||I.setSelection(x.current)}},[f]);function P(g){e<=t?r(g):a(g)}function S(g){e<=t?a(g):r(g)}var L=u.useCallback(g=>{y.current=g,x.current=null},[]),U=u.useCallback(g=>{y.current=null,x.current=g},[]);return s.jsxs("div",{className:"time-slider-popovers",children:[s.jsx("div",{className:"flex",style:{flexBasis:"calc(".concat(c/M*100,"% - ").concat(Oe/2,"px)")}}),s.jsxs("div",{className:"handle-popper",children:[s.jsx("label",{className:k({modified:f?l:i}),children:f?"End Time":"Start Time"}),s.jsx(ee,{ref:m,allowValueWrapping:!1,value:c,onChange:P,onSelect:L,"data-testid":o!==void 0?"".concat(o,"-input-1"):void 0})]}),s.jsx("div",{className:"flex-spacer"}),s.jsxs("div",{className:"handle-popper",children:[s.jsx("label",{className:k({modified:f?i:l}),children:f?"Start Time":"End Time"}),s.jsx(ee,{ref:b,allowValueWrapping:!1,value:p,onChange:S,onSelect:U,"data-testid":o!==void 0?"".concat(o,"-input-2"):void 0})]}),s.jsx("div",{className:"flex",style:{flexBasis:"calc(".concat((M-p)/M*100,"% - ").concat(Oe/2,"px)")}})]})}function Zt(n){var{startTime:e,endTime:t,"data-testid":r}=n;return s.jsxs("div",{className:"track-fills","data-testid":r,children:[e>t&&s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"track-fill track-fill-start",style:{transform:"scaleX(".concat(t/M,")")}}),s.jsx("div",{className:"track-fill track-fill-end",style:{transform:"scaleX(".concat((M-e)/M,")")}})]}),e<t&&s.jsx("div",{className:"track-fill track-fill-middle",style:{transform:"translateX(".concat(e/M*100,"%) scaleX(").concat((t-e)/M,")")}})]})}function Te(n){var{track:e,time:t,setTime:r,"data-testid":a}=n,i=u.useMemo(()=>{var h=3600,m=z/2;return t<h?m=t/h*(z/2):t>23*h&&(m=z/2+1/(M-23*h)*(t-23*h)*(z/2)),"translateX(calc(".concat(t/M*100,"% - ").concat(m,"px))")},[t]),l=u.useCallback(h=>{if(!e.current)return 0;var m=e.current.getBoundingClientRect(),b=Math.max(h-m.left,0),y=M*Math.min(1,b/m.width),x=Ie*Math.round(y/Ie),P=Math.min(M,x);return P},[e]),o=u.useCallback(h=>{var{clientX:m}=h;r(l(m))},[r,l]),f=u.useCallback(h=>{var{clientX:m}=h;r(l(m)),window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",f),document.documentElement.classList.remove("drag-pointer-events-none")},[r,l,o]),c=u.useCallback(()=>{window.addEventListener("mousemove",o),window.addEventListener("mouseup",f),document.documentElement.classList.add("drag-pointer-events-none")},[o,f]),d=u.useCallback(()=>{window.removeEventListener("mousemove",o),window.removeEventListener("mouseup",f),document.documentElement.classList.remove("drag-pointer-events-none")},[o,f]),p=u.useCallback(()=>{c()},[c]);return u.useEffect(function(){return()=>{d()}},[d]),s.jsx("div",{className:"handle-track",style:{transform:i},children:s.jsx("button",{className:"handle",type:"button","aria-label":"Change time",onMouseDown:p,"data-testid":a})})}function W(n,e,t){return e=Xt(e),e in n?Object.defineProperty(n,e,{value:t,enumerable:!0,configurable:!0,writable:!0}):n[e]=t,n}function Xt(n){var e=Yt(n,"string");return typeof e=="symbol"?e:String(e)}function Yt(n,e){if(typeof n!="object"||n===null)return n;var t=n[Symbol.toPrimitive];if(t!==void 0){var r=t.call(n,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(n)}class E extends Xe{static get theme(){return E._theme==null&&(E._theme=We()),E._theme}static makeRandomSeries(e){for(var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:1,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:100,a=[],i=[],l=[],o=[],f=new Date("2018-06-01"),c=0;c<r;c+=1){var d=new Date(f.getFullYear(),f.getMonth(),f.getDate()+c-r);a.push("".concat(d.getFullYear(),"-").concat(d.getMonth()+1,"-").concat(d.getDate()));var p=(Math.sin(c/r*e)*r/3+Math.cos(c*.2)*r/6+Math.sin(c*.5)*r/10+E.random()*r/5+c*E.smoothing)*t;p=Math.round(p*100)/100,i.push(p),o.push(40+c*E.smoothing),l.push(Math.sin(c/r*e)*r/3+E.random()*r/10+c*E.smoothing)}return{x:a,y:i,s:l,l:o}}static makeScatter(e){return{name:"SCTR",x:e.x,y:e.y,type:"scatter",mode:"markers",hoverinfo:"skip",marker:{size:5}}}static makeArea(e){return{name:"AREA",x:e.x,y:e.s,type:"scatter",mode:"line",fill:"tozeroy",hoverinfo:"all",line:{width:3}}}static makeTrendline(e){return{name:"Trendline <br>R<sup>2</sup> = 0.91",x:e.x,y:e.l,type:"scatter",mode:"line",hoverinfo:"skip",line:{width:3,dash:"dot"}}}static makeErrorBand(e){for(var t=[],r=[],a=0;a<e.y.length;a+=1){var i=e.y[a];t[a]=Math.round((i+18)*100)/100,r[a]=Math.round((i-18)*100)/100}var l=t.concat(r.reverse());return{name:"error",x:e.x.concat(e.x.slice().reverse()),y:l,type:"scatter",mode:"line",hoverinfo:"skip",fill:"toself",line:{width:0,color:E.theme.error_band_line_color,shape:"spline"}}}static makeLine(e){return{name:"LINE",x:e.x,y:e.y,type:"scatter",mode:"line",hoverinfo:"x+y+text+name",line:{width:3}}}static makeRandomData(){var e=E.makeRandomSeries(6),t=E.makeArea(e),r=E.makeTrendline(e),a=E.makeRandomSeries(2),i=E.makeLine(a),l=E.makeErrorBand(a);return[t,r,i,l]}static makeDefaultLayout(e){var t={template:new Ye(e).makeDefaultTemplate(E.theme)};return t.title="Chart",t.xaxis={title:"Datestamp"},t.yaxis={title:"Price"},t}constructor(e){var{data:t=E.makeRandomData(),layout:r=E.makeDefaultLayout(e),filterFields:a=[]}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(e),W(this,"data",void 0),W(this,"filterFields",void 0),W(this,"layout",void 0),this.data=t,this.layout=r,this.filterFields=a}getData(){return this.data}getLayout(){return this.layout}getFilterColumnMap(){for(var e=new Map,t=0;t<this.filterFields.length;t+=1){var r=this.filterFields[t],a="java.lang.String";e.set(r,{name:r,type:a})}return e}isFilterRequired(){return this.filterFields.length>0}setFilter(){this.fireUpdate(this.data)}}W(E,"random",Math.random.bind(Math));W(E,"smoothing",1.5);W(E,"_theme",void 0);const pn=E;var Jt=u.createContext(!1);function hn(n){var{fontClassNames:e=["fira-sans-regular","fira-sans-semibold","fira-mono"],children:t}=n,[r,a]=u.useState(!1);return u.useEffect(function(){document.fonts.ready.then(()=>{a(!0)})},[]),s.jsxs(s.Fragment,{children:[s.jsx(Jt.Provider,{value:r,children:t}),s.jsx("div",{id:"preload-fonts",style:{visibility:"hidden",position:"absolute",top:-1e4},children:e.map(i=>s.jsx("p",{className:i,children:"preload"},i))})]})}export{an as A,sn as C,ln as D,Jt as F,on as H,fe as I,pn as M,dn as P,ee as T,ke as a,un as b,cn as c,_e as d,Pt as e,kt as f,q as g,jt as h,Ce as i,hn as j,je as n,oe as s};
4
- //# sourceMappingURL=FontBootstrap-198bc02a.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FontBootstrap-198bc02a.js","sources":["../../../react-hooks/dist/ElementUtils.js","../../../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/spectrum/picker/PickerUtils.js","../../../components/dist/spectrum/picker/PickerItemContent.js","../../../components/dist/spectrum/picker/Picker.js","../../../components/dist/TimeSlider.js","../../../chart/dist/MockChartModel.js","../../../app-utils/dist/components/FontBootstrap.js"],"sourcesContent":["import { isValidElement } from 'react';\n/**\n * Check if a node is a React element of a specific type.\n * @param node The node to check\n * @param type The type to check against\n * @returns True if the node is a React element of the specified type\n */\nexport function isElementOfType(node, type) {\n return /*#__PURE__*/isValidElement(node) && node.type === type;\n}\nexport default isElementOfType;\n//# sourceMappingURL=ElementUtils.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/**\n * An Input component that pops and filters auto complete options as you type.\n *\n * props:\n * @param options :[{\n * title: 'option title for display',\n * value: 'option value' //option value\n * }]\n * @param popperOptions options for the Popper\n * @param onChange called when the value is changed from the pulldown\n * @param inputPlaceholder place holder for the input box\n * @param disabled disable both input & drop down\n * @param className an optional class name applied to the input element\n * @param defaultTitle the default title to display\n * @param spellCheck flag to disable spell checking, defaults to true\n * @param onEnter called when the Enter key is typed in the input element\n *\n */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport memoize from 'memoizee';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { Popper } from \"./popper/index.js\";\nimport \"./AutoCompleteInput.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar DEBOUNCE_DELAY = 100;\nvar MENU_NAVIGATION_DIRECTION;\n(function (MENU_NAVIGATION_DIRECTION) {\n MENU_NAVIGATION_DIRECTION[\"UP\"] = \"UP\";\n MENU_NAVIGATION_DIRECTION[\"DOWN\"] = \"DOWN\";\n})(MENU_NAVIGATION_DIRECTION || (MENU_NAVIGATION_DIRECTION = {}));\nclass AutoCompleteInput extends Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"popper\", void 0);\n _defineProperty(this, \"cbContainer\", void 0);\n _defineProperty(this, \"menuContainer\", void 0);\n _defineProperty(this, \"input\", void 0);\n _defineProperty(this, \"getCachedFilteredOptions\", memoize((options, input) => options.filter(\n // supports partial match\n option => option.title.toLowerCase().indexOf(input.toLowerCase()) >= 0)));\n var {\n popperOptions\n } = this.props;\n popperOptions = _objectSpread({\n placement: 'bottom-end',\n modifiers: {\n preventOverflow: {\n enabled: false\n }\n }\n }, popperOptions);\n this.state = {\n title: '',\n filteredOptions: [],\n keyboardOptionIndex: 0,\n menuIsOpen: false,\n inputWidth: 100,\n invalid: false,\n popperOptions\n };\n this.handleMenuKeyDown = this.handleMenuKeyDown.bind(this);\n this.handleMenuBlur = this.handleMenuBlur.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.handleInputKeyDown = this.handleInputKeyDown.bind(this);\n this.handleInputBlur = this.handleInputBlur.bind(this);\n this.handelInputFocus = this.handelInputFocus.bind(this);\n this.handleInputClick = this.handleInputClick.bind(this);\n this.updateInputValue = debounce(this.updateInputValue, DEBOUNCE_DELAY);\n this.handleOptionClick = this.handleOptionClick.bind(this);\n this.handleMenuOpened = this.handleMenuOpened.bind(this);\n this.handleMenuExited = this.handleMenuExited.bind(this);\n this.popper = /*#__PURE__*/React.createRef();\n this.cbContainer = /*#__PURE__*/React.createRef();\n this.menuContainer = /*#__PURE__*/React.createRef();\n this.input = /*#__PURE__*/React.createRef();\n }\n setInputWidth() {\n if (this.cbContainer.current) {\n this.setState({\n inputWidth: this.cbContainer.current.getBoundingClientRect().width\n });\n }\n }\n // validation needs to be an exact case-sensitve match on value\n getValueAndValidate(title) {\n if (!title) {\n this.setState({\n invalid: false\n });\n return {\n value: title,\n isValid: false\n };\n }\n\n // validate\n var {\n options\n } = this.props;\n var result = options.filter(option => option.title.toLowerCase() === title.toLowerCase());\n if (result.length < 1) {\n this.setState({\n invalid: true\n });\n return {\n value: title,\n isValid: false\n };\n }\n this.setState({\n invalid: false\n });\n return {\n value: result[0].value,\n isValid: true\n };\n }\n\n // validate typed entries emit change event using value\n updateInputValue(title) {\n var {\n menuIsOpen\n } = this.state;\n var {\n value,\n isValid\n } = this.getValueAndValidate(title);\n if (menuIsOpen) this.processFilterChange(title);\n this.fireOnChange(value, isValid);\n }\n fireOnChange(value) {\n var isValid = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var {\n onChange\n } = this.props;\n onChange(value, isValid);\n }\n processFilterChange(filter) {\n var _this$popper$current;\n var {\n options\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n var filteredOptions = filter ? this.getCachedFilteredOptions(options, filter) : options;\n var perfectMatch = filteredOptions.length === 1 && filteredOptions[0].title === filter;\n this.setState({\n filteredOptions,\n keyboardOptionIndex: 0\n });\n if (perfectMatch && menuIsOpen) {\n this.closeMenu();\n return;\n }\n (_this$popper$current = this.popper.current) === null || _this$popper$current === void 0 ? void 0 : _this$popper$current.scheduleUpdate(); // filtered options list can change size, may need to be repositioned\n }\n\n resetValue() {\n this.setState({\n title: ''\n });\n this.fireOnChange('');\n }\n handleResize() {\n this.setInputWidth();\n }\n handleMenuKeyDown(event) {\n var _this$input$current;\n var {\n filteredOptions,\n keyboardOptionIndex\n } = this.state;\n var option = filteredOptions[keyboardOptionIndex];\n switch (event.key) {\n case 'Enter':\n case 'ArrowRight':\n event.stopPropagation();\n event.preventDefault();\n if (option != null) {\n this.setState({\n title: option.title,\n invalid: false\n });\n this.fireOnChange(option.value);\n }\n this.closeMenu();\n (_this$input$current = this.input.current) === null || _this$input$current === void 0 ? void 0 : _this$input$current.focus();\n break;\n case 'ArrowUp':\n event.stopPropagation();\n event.preventDefault();\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP);\n break;\n case 'ArrowDown':\n event.stopPropagation();\n event.preventDefault();\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN);\n break;\n case 'Tab':\n event.stopPropagation();\n event.preventDefault();\n if (event.shiftKey) {\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP);\n break;\n }\n this.navigateMenu(AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN);\n break;\n case 'Escape':\n event.preventDefault();\n event.stopPropagation();\n this.closeMenu();\n break;\n default:\n break;\n }\n }\n navigateMenu(direction) {\n var {\n filteredOptions,\n keyboardOptionIndex\n } = this.state;\n var newKeyboardOptionIndex = keyboardOptionIndex;\n if (direction === AutoCompleteInput.MENU_NAVIGATION_DIRECTION.UP) {\n if (keyboardOptionIndex > 0) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex - 1) % filteredOptions.length;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n } else if (keyboardOptionIndex === 0) {\n newKeyboardOptionIndex = filteredOptions.length - 1;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n } else if (direction === AutoCompleteInput.MENU_NAVIGATION_DIRECTION.DOWN) {\n if (keyboardOptionIndex < filteredOptions.length) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex + 1) % filteredOptions.length;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n }\n handleInputKeyDown(event) {\n var {\n onEnter\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.handleMenuKeyDown(event);\n } else if (event.key === 'Enter') {\n onEnter();\n } else if (event.key === 'Escape') {\n this.resetValue();\n event.preventDefault();\n event.stopPropagation();\n } else if (!(event.key === 'ArrowRight' || event.key === 'ArrowLeft' || event.key === 'Tab' || event.key === 'Shift')) {\n this.openMenu();\n }\n }\n handleInputChange(event) {\n this.setState({\n title: event.target.value\n });\n this.updateInputValue(event.target.value);\n }\n handleOptionClick(option) {\n var _this$input$current2;\n this.setState({\n title: option.title,\n invalid: false\n });\n this.fireOnChange(option.value);\n this.closeMenu();\n (_this$input$current2 = this.input.current) === null || _this$input$current2 === void 0 ? void 0 : _this$input$current2.focus();\n }\n handelInputFocus() {\n var {\n menuIsOpen\n } = this.state;\n if (!menuIsOpen) {\n this.openMenu();\n }\n }\n handleInputClick() {\n var {\n menuIsOpen\n } = this.state;\n if (!menuIsOpen) {\n this.openMenu();\n }\n }\n handleInputBlur(event) {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen && event.relatedTarget instanceof Element && this.popper.current !== null && this.popper.current.element.contains(event.relatedTarget)) {\n return;\n }\n this.closeMenu(false);\n }\n handleMenuBlur(event) {\n // if blur event is caused by focusing on the input or focus on options don't close menu\n if (event.relatedTarget === this.input.current || event.relatedTarget instanceof Element && this.popper.current !== null && this.popper.current.element.contains(event.relatedTarget)) {\n return;\n }\n this.closeMenu(false);\n }\n handleMenuOpened() {\n var _this$input$current3;\n (_this$input$current3 = this.input.current) === null || _this$input$current3 === void 0 ? void 0 : _this$input$current3.focus();\n }\n handleMenuExited() {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.setState({\n menuIsOpen: false,\n keyboardOptionIndex: 0\n });\n }\n }\n openMenu() {\n var {\n title\n } = this.state;\n this.processFilterChange(title);\n this.setInputWidth();\n this.setState({\n menuIsOpen: true\n });\n\n // https://github.com/reactjs/react-transition-group/issues/382\n window.requestAnimationFrame(() => {\n var _this$popper$current2;\n (_this$popper$current2 = this.popper.current) === null || _this$popper$current2 === void 0 ? void 0 : _this$popper$current2.show();\n });\n }\n closeMenu() {\n var _this$popper$current3;\n var focusInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.setState({\n menuIsOpen: false,\n keyboardOptionIndex: 0\n });\n if (focusInput) {\n var _this$input$current4;\n (_this$input$current4 = this.input.current) === null || _this$input$current4 === void 0 ? void 0 : _this$input$current4.focus();\n }\n (_this$popper$current3 = this.popper.current) === null || _this$popper$current3 === void 0 ? void 0 : _this$popper$current3.hide();\n }\n scrollOptionIntoView(index) {\n if (this.menuContainer.current) {\n var _this$menuContainer$c;\n (_this$menuContainer$c = this.menuContainer.current.children.item(index)) === null || _this$menuContainer$c === void 0 ? void 0 : _this$menuContainer$c.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest'\n });\n }\n }\n renderMenuElement() {\n var {\n inputWidth\n } = this.state;\n return /*#__PURE__*/_jsx(\"div\", {\n className: classNames('aci-options'),\n ref: this.menuContainer,\n role: \"presentation\",\n onKeyDown: this.handleMenuKeyDown,\n style: {\n width: inputWidth\n },\n onBlur: this.handleMenuBlur,\n children: this.renderOptions()\n });\n }\n renderOptions() {\n var {\n noMatchText\n } = this.props;\n var {\n title,\n filteredOptions\n } = this.state;\n if (title && filteredOptions.length === 0) {\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"no-match\",\n children: noMatchText\n });\n }\n return filteredOptions.map((option, index) => this.renderOption(option, index));\n }\n renderOption(option, index) {\n var {\n keyboardOptionIndex\n } = this.state;\n var key = \"option-\".concat(index, \"-\").concat(option.value);\n return /*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n className: classNames('aci-option-btn', {\n 'keyboard-active': keyboardOptionIndex === index\n }),\n onClick: () => this.handleOptionClick(option),\n onFocus: () => this.setState({\n keyboardOptionIndex: index\n }),\n children: option.title\n }, key);\n }\n render() {\n var {\n options,\n inputPlaceholder,\n disabled,\n className,\n defaultTitle,\n spellCheck,\n 'data-testid': dataTestId\n } = this.props;\n var {\n title,\n menuIsOpen,\n popperOptions,\n invalid\n } = this.state;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"aci-container\",\n ref: this.cbContainer,\n children: [/*#__PURE__*/_jsx(\"input\", {\n value: title || defaultTitle,\n className: classNames('form-control', className, 'aci-input', {\n 'is-invalid': invalid && !menuIsOpen\n }),\n ref: this.input,\n onChange: this.handleInputChange,\n placeholder: inputPlaceholder || options[0].title,\n disabled: disabled,\n onFocus: this.handelInputFocus,\n onClick: this.handleInputClick,\n onBlur: this.handleInputBlur,\n onKeyDown: this.handleInputKeyDown,\n spellCheck: spellCheck,\n \"data-testid\": dataTestId\n }), /*#__PURE__*/_jsx(Popper, {\n ref: this.popper,\n options: popperOptions,\n className: classNames('aci-options-popper interactive'),\n onEntered: this.handleMenuOpened,\n onExited: this.handleMenuExited,\n children: this.renderMenuElement()\n })]\n });\n }\n}\n_defineProperty(AutoCompleteInput, \"propTypes\", {\n options: PropTypes.arrayOf(PropTypes.shape({\n title: PropTypes.string.isRequired,\n value: PropTypes.string.isRequired\n })).isRequired,\n popperOptions: PropTypes.shape({}),\n onChange: PropTypes.func,\n inputPlaceholder: PropTypes.string,\n disabled: PropTypes.bool,\n className: PropTypes.string,\n defaultTitle: PropTypes.string,\n spellCheck: PropTypes.bool,\n onEnter: PropTypes.func,\n noMatchText: PropTypes.string,\n 'data-testid': PropTypes.string\n});\n_defineProperty(AutoCompleteInput, \"defaultProps\", {\n onChange() {\n // no-op\n },\n inputPlaceholder: '',\n disabled: false,\n className: '',\n defaultTitle: '',\n popperOptions: null,\n spellCheck: true,\n onEnter() {\n // no-op\n },\n noMatchText: 'No matching items found',\n 'data-testid': undefined\n});\n_defineProperty(AutoCompleteInput, \"MENU_NAVIGATION_DIRECTION\", MENU_NAVIGATION_DIRECTION);\nexport default AutoCompleteInput;\n//# sourceMappingURL=AutoCompleteInput.js.map","import React, { useState, useRef, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport \"./AutoResizeTextarea.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Makes a textarea that auto resizes based on contents, its height grows with new lines.\n * If a delimeter is set, such as \" -\" or \" \", as used by jvm args or env vars\n * then the field will also \"explode\" the value by the delimiter over new lines\n * on focus, and implode on blur. By default, it doesn't word wrap.\n */\nfunction AutoResizeTextarea(_ref) {\n var {\n className = '',\n value: propsValue,\n onChange,\n spellCheck = false,\n placeholder = '',\n disabled = false,\n delimiter = '',\n id = '',\n 'data-testid': dataTestId\n } = _ref;\n var [value, setValue] = useState(propsValue);\n var [isPastedChange, setIsPastedChange] = useState(false);\n var element = useRef(null);\n useEffect(function syncStateWithProp() {\n // keep state value in sync with prop changes\n setValue(propsValue);\n }, [propsValue]);\n function explode(input) {\n // split by delimiter, commonly \" \" or \" -\"\n // strip empty strings (if delimiter is space, and there are multiple spaces in a row)\n // and join with new line and a trimmed delimeter (get rid of leading spaces)\n return input.trim().split(delimiter).filter(string => string) // remove empty strings\n .join(\"\\n\".concat(delimiter.trim()));\n }\n function implode(input) {\n return input.split('\\n').map(string => string.trim()).join(' ');\n }\n function reCalculateLayout() {\n if (!element.current) {\n return;\n }\n element.current.style.height = '0'; // shrink component to get scrollHeight\n var resizedHeight = element.current.scrollHeight + (element.current.offsetHeight - element.current.clientHeight);\n // accounts for border, padding is captured by scroll height\n if (resizedHeight > 0) element.current.style.height = \"\".concat(resizedHeight, \"px\");\n }\n function handleChange(event) {\n var newValue = event.target.value;\n if (isPastedChange) {\n if (delimiter) newValue = explode(newValue);\n setIsPastedChange(false);\n }\n setValue(newValue);\n onChange(newValue);\n }\n function handleFocus() {\n if (!element.current) {\n return;\n }\n if (delimiter) {\n setValue(explode(value));\n reCalculateLayout();\n }\n element.current.scrollLeft = 0;\n // scroll left as it can be disorienting if you click on a long line\n }\n\n // make it explode when dragging the resize handle\n // by making it trigger focus (which normally doesn't\n // trigger when just resizing).\n function handleMouseDown() {\n if (!element.current) return;\n if (document.activeElement === element.current) return;\n element.current.focus();\n }\n function handleBlur() {\n if (delimiter) {\n setValue(implode(value));\n onChange(implode(value));\n }\n }\n function handlePaste() {\n setIsPastedChange(true);\n }\n useEffect(function reCalculate() {\n reCalculateLayout();\n }, [value]);\n return /*#__PURE__*/_jsx(\"textarea\", {\n ref: element,\n id: id,\n className: classNames(className, 'auto-resize-textarea form-control'),\n placeholder: placeholder,\n value: value,\n rows: 1,\n onChange: handleChange,\n onFocus: handleFocus,\n onMouseDown: handleMouseDown,\n onBlur: handleBlur,\n onPaste: handlePaste,\n spellCheck: spellCheck,\n disabled: disabled,\n \"data-testid\": dataTestId\n });\n}\nAutoResizeTextarea.propTypes = {\n value: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n className: PropTypes.string,\n placeholder: PropTypes.string,\n spellCheck: PropTypes.bool,\n disabled: PropTypes.bool,\n delimiter: PropTypes.string,\n id: PropTypes.string,\n 'data-testid': PropTypes.string\n};\nAutoResizeTextarea.defaultProps = {\n className: '',\n id: '',\n placeholder: '',\n disabled: false,\n spellCheck: false,\n delimiter: '',\n 'data-testid': undefined\n};\nexport default AutoResizeTextarea;\n//# sourceMappingURL=AutoResizeTextarea.js.map","import React, { useCallback, useEffect, useImperativeHandle, useRef, useState } from 'react';\nimport Log from '@deephaven/log';\nimport { TimeUtils } from '@deephaven/utils';\nimport MaskedInput from \"./MaskedInput.js\";\nimport { DEFAULT_GET_PREFERRED_REPLACEMENT_STRING } from \"./MaskedInputUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar log = Log.module('TimeInput');\nvar TIME_PATTERN = '([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]';\nvar EXAMPLES = ['00:00:00', '12:34:56', '23:59:59'];\nfunction fixIncompleteValue(value) {\n // If value is not a complete HH:mm:ss time, fill missing parts with 0\n if (value != null) {\n return \"\".concat(value.substring(0, 8).replace(/\\u2007/g, '0')).concat(\"00:00:00\".substring(value.length));\n }\n return value;\n}\n\n// Forward ref causes a false positive for display-name in eslint:\n// https://github.com/yannickcr/eslint-plugin-react/issues/2269\n// eslint-disable-next-line react/display-name\nvar TimeInput = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n allowValueWrapping = true,\n className = '',\n onChange = () => false,\n value: propsValue = 0,\n onFocus = () => false,\n onBlur = () => false,\n onSelect = () => false,\n 'data-testid': dataTestId\n } = props;\n var [value, setValue] = useState(TimeUtils.formatTime(propsValue));\n var parsedValueRef = useRef(propsValue);\n var [selection, _setSelection] = useState();\n var inputRef = useRef(null);\n useImperativeHandle(ref, () => ({\n focus: () => {\n var _inputRef$current;\n (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.focus();\n },\n setSelection: newSelection => {\n var _inputRef$current2;\n (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();\n _setSelection(newSelection);\n }\n }), []);\n useEffect(function setFormattedTime() {\n // Ignore value prop update if it matches the displayed value\n // to preserve the displayed value while typing\n if (parsedValueRef.current !== propsValue) {\n setValue(TimeUtils.formatTime(propsValue));\n parsedValueRef.current = propsValue;\n }\n }, [parsedValueRef, propsValue]);\n function getNextSegmentValue(range, delta, segmentValue) {\n // Delta is backward because negative Y is up\n var maxValue = range.selectionStart === 0 ? 24 : 60;\n var newSegmentValue = parseInt(segmentValue, 10) - delta;\n if (Number.isNaN(newSegmentValue)) {\n newSegmentValue = 0;\n } else if (allowValueWrapping) {\n // Add max value and re-mod so we don't get negative values after mod\n newSegmentValue = (newSegmentValue % maxValue + maxValue) % maxValue;\n } else {\n newSegmentValue = Math.min(Math.max(0, newSegmentValue), maxValue - 1);\n }\n return \"\".concat(newSegmentValue).padStart(2, '0');\n }\n function getPreferredReplacementString(replaceValue, replaceIndex, newChar, selectionStart, selectionEnd) {\n if (selectionStart === 0 && selectionEnd === 2 && replaceIndex === 1 && parseInt(newChar, 10) > 1) {\n // DH-10082 Special case for when typing `3` when it's already 12\n return \"0\".concat(newChar).concat(replaceValue.substring(2));\n }\n return DEFAULT_GET_PREFERRED_REPLACEMENT_STRING(replaceValue, replaceIndex, newChar);\n }\n var handleChange = useCallback(newValue => {\n log.debug('handleChange', newValue);\n setValue(newValue);\n parsedValueRef.current = TimeUtils.parseTime(fixIncompleteValue(newValue));\n onChange(parsedValueRef.current);\n }, [onChange]);\n var handleBlur = useCallback(() => {\n var fixedValue = fixIncompleteValue(value);\n // Update the value displayed in the input\n // onChange with the fixed value already triggered in handleChange\n if (fixedValue !== value) {\n setValue(fixedValue);\n }\n onBlur();\n }, [value, onBlur]);\n var handleSelect = useCallback(newSelection => {\n _setSelection(newSelection);\n onSelect(newSelection);\n }, [onSelect]);\n return /*#__PURE__*/_jsx(MaskedInput, {\n ref: inputRef,\n className: className,\n example: EXAMPLES,\n getNextSegmentValue: getNextSegmentValue,\n getPreferredReplacementString: getPreferredReplacementString,\n onChange: handleChange,\n onSelect: handleSelect,\n pattern: TIME_PATTERN,\n selection: selection,\n value: value,\n onFocus: onFocus,\n onBlur: handleBlur,\n \"data-testid\": dataTestId\n });\n});\nTimeInput.defaultProps = {\n allowValueWrapping: true,\n className: '',\n onChange: () => false,\n onSelect: () => false,\n value: 0,\n onFocus: () => false,\n onBlur: () => false,\n 'data-testid': undefined\n};\nexport default TimeInput;\n//# sourceMappingURL=TimeInput.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsCheck } from '@deephaven/icons';\nimport { TimeUtils } from '@deephaven/utils';\nimport classNames from 'classnames';\nimport TimeInput from \"./TimeInput.js\";\nimport DropdownMenu from \"./menu-actions/DropdownMenu.js\";\nimport \"./CustomTimeSelect.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nvar CUSTOM_OPTION = -1;\nvar MENU_NAVIGATION_DIRECTION;\n(function (MENU_NAVIGATION_DIRECTION) {\n MENU_NAVIGATION_DIRECTION[\"UP\"] = \"UP\";\n MENU_NAVIGATION_DIRECTION[\"DOWN\"] = \"DOWN\";\n})(MENU_NAVIGATION_DIRECTION || (MENU_NAVIGATION_DIRECTION = {}));\nclass CustomTimeSelect extends Component {\n constructor(props) {\n super(props);\n _defineProperty(this, \"csContainer\", void 0);\n _defineProperty(this, \"menuContainer\", void 0);\n _defineProperty(this, \"button\", void 0);\n _defineProperty(this, \"input\", void 0);\n var {\n value,\n valueToTime\n } = props;\n this.toggleMenu = this.toggleMenu.bind(this);\n this.handleMenuKeyDown = this.handleMenuKeyDown.bind(this);\n this.closeMenu = this.closeMenu.bind(this);\n this.handleOptionClick = this.handleOptionClick.bind(this);\n this.handleOptionFocus = this.handleOptionFocus.bind(this);\n this.handleMenuOpened = this.handleMenuOpened.bind(this);\n this.handleMenuExited = this.handleMenuExited.bind(this);\n this.handleCustomInput = this.handleCustomInput.bind(this);\n this.csContainer = /*#__PURE__*/React.createRef();\n this.menuContainer = /*#__PURE__*/React.createRef();\n this.button = /*#__PURE__*/React.createRef();\n this.input = /*#__PURE__*/React.createRef();\n this.state = {\n keyboardOptionIndex: 0,\n menuIsOpen: false,\n inputWidth: 100,\n customTime: valueToTime(value),\n inputFocused: false\n };\n }\n getSelectedText() {\n var {\n options,\n value,\n placeholder\n } = this.props;\n var {\n customTime\n } = this.state;\n if (value === null) {\n return placeholder;\n }\n for (var i = 0; i < options.length; i += 1) {\n var option = options[i];\n if (option.value === value) {\n return option.title;\n }\n }\n return TimeUtils.formatTime(customTime);\n }\n setInputWidth() {\n if (this.csContainer.current) {\n this.setState({\n inputWidth: this.csContainer.current.getBoundingClientRect().width\n });\n }\n }\n focus() {\n var _this$button$current;\n (_this$button$current = this.button.current) === null || _this$button$current === void 0 ? void 0 : _this$button$current.focus();\n }\n updateInputValue(value) {\n var {\n onChange\n } = this.props;\n onChange(value);\n }\n handleResize() {\n this.setInputWidth();\n }\n handleMenuKeyDown(event) {\n var _this$button$current2;\n var {\n keyboardOptionIndex,\n inputFocused\n } = this.state;\n var {\n options\n } = this.props;\n switch (event.key) {\n case 'Enter':\n case ' ':\n // Space Bar\n if (inputFocused) {\n this.updateFromCustom();\n } else {\n this.updateInputValue(options[keyboardOptionIndex].value);\n }\n this.closeMenu();\n (_this$button$current2 = this.button.current) === null || _this$button$current2 === void 0 ? void 0 : _this$button$current2.focus();\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Tab':\n if (event.shiftKey) {\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.UP);\n } else {\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.DOWN);\n }\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowUp':\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.UP);\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'ArrowDown':\n this.handleMenuNavigation(CustomTimeSelect.MENU_NAVIGATION_DIRECTION.DOWN);\n event.stopPropagation();\n event.preventDefault();\n break;\n case 'Escape':\n this.closeMenu();\n break;\n default:\n break;\n }\n }\n handleMenuNavigation(direction) {\n var {\n keyboardOptionIndex,\n inputFocused\n } = this.state;\n var {\n options\n } = this.props;\n var menuOptionsLength = options.length;\n var newKeyboardOptionIndex = keyboardOptionIndex;\n switch (direction) {\n case CustomTimeSelect.MENU_NAVIGATION_DIRECTION.UP:\n if (!inputFocused && keyboardOptionIndex === 0) {\n this.focusInput();\n break;\n } else if (inputFocused) {\n this.focusOption(keyboardOptionIndex);\n }\n if (keyboardOptionIndex > 0 && !inputFocused) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex - 1) % menuOptionsLength;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n } else if (keyboardOptionIndex === 0) {\n newKeyboardOptionIndex = menuOptionsLength - 1;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n break;\n case CustomTimeSelect.MENU_NAVIGATION_DIRECTION.DOWN:\n if (!inputFocused && keyboardOptionIndex === menuOptionsLength - 1) {\n this.focusInput();\n break;\n } else if (inputFocused) {\n this.focusOption(keyboardOptionIndex);\n }\n if (keyboardOptionIndex < menuOptionsLength && !(inputFocused && keyboardOptionIndex === 0)) {\n newKeyboardOptionIndex = (newKeyboardOptionIndex + 1) % menuOptionsLength;\n this.setState({\n keyboardOptionIndex: newKeyboardOptionIndex\n });\n }\n this.scrollOptionIntoView(newKeyboardOptionIndex);\n break;\n default:\n break;\n }\n }\n handleOptionClick(event) {\n var optionIndex = Number(event.currentTarget.value);\n var {\n options,\n timeToValue\n } = this.props;\n var {\n customTime\n } = this.state;\n if (optionIndex === CUSTOM_OPTION) {\n var update = timeToValue(customTime);\n this.updateAndClose(update);\n } else {\n this.updateAndClose(options[optionIndex].value);\n }\n }\n updateAndClose(update) {\n var _this$button$current3;\n this.updateInputValue(update);\n this.closeMenu();\n (_this$button$current3 = this.button.current) === null || _this$button$current3 === void 0 ? void 0 : _this$button$current3.focus();\n }\n handleOptionFocus(event) {\n this.setState({\n keyboardOptionIndex: Number(event.target.value)\n });\n }\n handleMenuOpened() {\n var _this$menuContainer$c;\n var {\n options,\n value\n } = this.props;\n var {\n keyboardOptionIndex\n } = this.state;\n this.scrollOptionIntoView(keyboardOptionIndex);\n var activeOption = (_this$menuContainer$c = this.menuContainer.current) === null || _this$menuContainer$c === void 0 ? void 0 : _this$menuContainer$c.querySelector('.cs-option-btn.keyboard-active');\n if (activeOption instanceof HTMLElement) {\n activeOption.focus();\n }\n if (value === null) {\n return;\n }\n var valueIndex = options.map(option => option.value).indexOf(value);\n if (valueIndex < 0) {\n // The custom option should be selected\n this.focusInput();\n }\n }\n focusInput() {\n var _this$input$current;\n (_this$input$current = this.input.current) === null || _this$input$current === void 0 ? void 0 : _this$input$current.focus();\n }\n focusOption(index) {\n var _this$menuContainer$c2;\n var options = (_this$menuContainer$c2 = this.menuContainer.current) === null || _this$menuContainer$c2 === void 0 ? void 0 : _this$menuContainer$c2.querySelector('.cs-options');\n if (options && options.children != null) {\n var option = options.children.item(index);\n if (option instanceof HTMLElement) {\n option.focus();\n }\n }\n }\n handleMenuExited() {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.setState({\n menuIsOpen: false,\n keyboardOptionIndex: 0\n });\n }\n }\n handleCustomInput(value) {\n var {\n timeToValue\n } = this.props;\n var update = timeToValue(value);\n this.updateInputValue(update);\n this.setState({\n customTime: value\n });\n }\n updateFromCustom() {\n var {\n timeToValue\n } = this.props;\n var {\n customTime\n } = this.state;\n var update = timeToValue(customTime);\n this.updateInputValue(update);\n }\n toggleMenu(event) {\n var {\n menuIsOpen\n } = this.state;\n if (menuIsOpen) {\n this.closeMenu();\n } else {\n this.openMenu();\n }\n event.stopPropagation();\n }\n openMenu() {\n this.updateKeyboardIndex();\n this.setInputWidth();\n this.setState({\n menuIsOpen: true\n });\n }\n closeMenu() {\n var focusButton = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.setState({\n menuIsOpen: false\n });\n if (focusButton) {\n var _this$button$current4;\n (_this$button$current4 = this.button.current) === null || _this$button$current4 === void 0 ? void 0 : _this$button$current4.focus();\n }\n }\n updateKeyboardIndex() {\n var {\n options,\n value\n } = this.props;\n if (value === null) {\n return;\n }\n var valueIndex = options.map(option => option.value).indexOf(value);\n if (valueIndex > 0) {\n this.setState({\n keyboardOptionIndex: valueIndex\n });\n }\n }\n scrollOptionIntoView(index) {\n var _this$menuContainer$c3;\n var options = (_this$menuContainer$c3 = this.menuContainer.current) === null || _this$menuContainer$c3 === void 0 ? void 0 : _this$menuContainer$c3.querySelector('.cs-options');\n if (options && options.children != null) {\n var activeOption = options.children.item(index);\n if (activeOption instanceof HTMLElement && activeOption.offsetTop > CustomTimeSelect.DROP_DOWN_MENU_HEIGHT) {\n options.scrollTop = activeOption.offsetTop - CustomTimeSelect.DROP_DOWN_MENU_HEIGHT;\n } else if (activeOption instanceof HTMLElement && activeOption.offsetTop < 0 || index === 0) {\n options.scrollTop = 0;\n }\n }\n }\n renderMenuElement() {\n var {\n inputWidth\n } = this.state;\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"cs-menu-container\",\n ref: this.menuContainer,\n role: \"presentation\",\n onKeyDown: this.handleMenuKeyDown,\n onClick: event => {\n event.stopPropagation();\n },\n style: {\n width: inputWidth\n },\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"cs-options-container\",\n children: /*#__PURE__*/_jsx(\"div\", {\n className: \"cs-options\",\n children: this.renderOptions()\n })\n })\n });\n }\n renderOptions() {\n var {\n options,\n value,\n icon,\n customText\n } = this.props;\n var {\n keyboardOptionIndex,\n customTime,\n inputFocused\n } = this.state;\n var matchFound = false;\n var optionArray = [];\n for (var index = 0; index < options.length; index += 1) {\n var option = options[index];\n var key = \"option-\".concat(index, \"-\").concat(option.value);\n matchFound = matchFound || option.value === value;\n optionArray.push( /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n value: index,\n className: classNames('cs-option-btn', {\n 'keyboard-active': keyboardOptionIndex === index && !inputFocused\n }),\n onClick: this.handleOptionClick,\n onFocus: this.handleOptionFocus,\n children: [option.value === value && /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon,\n className: \"mr-2\"\n }), option.value !== value && /*#__PURE__*/_jsx(\"span\", {\n className: \"mr-4\"\n }), option.title]\n }, key));\n }\n optionArray.push( /*#__PURE__*/_jsx(\"hr\", {\n className: \"cs-divider\"\n }, \"option-divider\"));\n optionArray.push( /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n value: CUSTOM_OPTION,\n className: classNames('cs-option-btn', {\n 'keyboard-active': inputFocused\n }),\n onClick: this.handleOptionClick,\n onFocus: this.handleOptionFocus,\n children: [!matchFound && value !== null ? /*#__PURE__*/_jsx(FontAwesomeIcon, {\n icon: icon,\n className: \"mr-2\"\n }) : /*#__PURE__*/_jsx(\"span\", {\n className: \"mr-4\"\n }), customText]\n }, \"option-custom-label\"));\n optionArray.push( /*#__PURE__*/_jsxs(\"div\", {\n className: \"cs-custom-container\",\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: \"mr-2\"\n }), /*#__PURE__*/_jsx(TimeInput, {\n ref: this.input,\n onChange: this.handleCustomInput,\n value: customTime,\n onFocus: () => this.setState({\n inputFocused: true\n }),\n onBlur: () => this.setState({\n inputFocused: false\n })\n }, \"option-input\"), /*#__PURE__*/_jsx(\"span\", {\n className: \"ml-2\"\n })]\n }, \"cs-custom-container\"));\n optionArray.push( /*#__PURE__*/_jsx(\"hr\", {\n className: \"mb-2\"\n }, \"option-end\"));\n return optionArray;\n }\n render() {\n var {\n disabled,\n invalid,\n value,\n 'data-testid': dataTestId\n } = this.props;\n var {\n menuIsOpen\n } = this.state;\n var {\n popperOptions\n } = this.props;\n popperOptions = _objectSpread({\n placement: 'bottom-end',\n modifiers: {\n preventOverflow: {\n enabled: false\n }\n }\n }, popperOptions);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"input-group cs-container context-menu\",\n ref: this.csContainer,\n \"data-testid\": dataTestId,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: classNames('input-group-append cs-dropdown', {\n 'cs-dropdown-invalid': invalid\n }),\n children: /*#__PURE__*/_jsxs(\"button\", {\n type: \"button\",\n className: classNames('btn cs-btn form-control', {\n 'cs-btn-invalid': invalid\n }),\n ref: this.button,\n onClick: this.toggleMenu,\n disabled: disabled,\n children: [/*#__PURE__*/_jsx(\"span\", {\n className: classNames({\n 'text-muted': value === null\n }),\n children: this.getSelectedText()\n }), /*#__PURE__*/_jsx(\"span\", {\n className: \"cs-caret\"\n }), /*#__PURE__*/_jsx(DropdownMenu, {\n isShown: menuIsOpen,\n actions: {\n menuElement: this.renderMenuElement()\n },\n popperOptions: popperOptions,\n popperClassName: \"CustomTimeSelect\",\n onMenuOpened: this.handleMenuOpened,\n onMenuClosed: this.handleMenuExited,\n menuStyle: {\n maxWidth: '100rem'\n }\n })]\n })\n })\n });\n }\n}\n_defineProperty(CustomTimeSelect, \"MENU_NAVIGATION_DIRECTION\", MENU_NAVIGATION_DIRECTION);\n_defineProperty(CustomTimeSelect, \"DROP_DOWN_MENU_HEIGHT\", 125);\n_defineProperty(CustomTimeSelect, \"defaultProps\", {\n onChange() {\n // no-op\n },\n value: null,\n disabled: false,\n popperOptions: {},\n icon: vsCheck,\n customText: 'Custom',\n placeholder: 'Select a time',\n valueToTime: value => value === null ? 0 : Math.round(value / 1000),\n timeToValue: time => time * 1000,\n invalid: false,\n 'data-testid': undefined\n});\nexport default CustomTimeSelect;\n//# sourceMappingURL=CustomTimeSelect.js.map","import React, { useCallback, useState } from 'react';\nimport classNames from 'classnames';\nimport Log from '@deephaven/log';\nimport MaskedInput from \"./MaskedInput.js\";\nimport { getNextSegmentValue } from \"./DateInputUtils.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar log = Log.module('DateInput');\nvar DATE_PATTERN = '[12][0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])';\nvar EXAMPLES = ['2000-01-01', '2022-12-31'];\nvar DATE_FORMAT = 'YYYY-MM-DD';\nvar DateInput = /*#__PURE__*/React.forwardRef((props, ref) => {\n var {\n className = '',\n onChange = () => undefined,\n defaultValue = '',\n onFocus = () => undefined,\n onBlur = () => undefined,\n 'data-testid': dataTestId\n } = props;\n var [value, setValue] = useState(defaultValue);\n var [selection, setSelection] = useState();\n var handleChange = useCallback(newValue => {\n log.debug('handleChange', newValue);\n setValue(newValue);\n onChange(newValue);\n }, [onChange]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"d-flex flex-row align-items-center\",\n children: /*#__PURE__*/_jsx(MaskedInput, {\n ref: ref,\n className: classNames(className),\n example: EXAMPLES,\n getNextSegmentValue: getNextSegmentValue,\n onChange: handleChange,\n onSelect: setSelection,\n pattern: DATE_PATTERN,\n placeholder: DATE_FORMAT,\n selection: selection,\n value: value,\n onFocus: onFocus,\n onBlur: onBlur,\n \"data-testid\": dataTestId\n })\n });\n});\nDateInput.displayName = 'DateInput';\nexport default DateInput;\n//# sourceMappingURL=DateInput.js.map","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, useMemo } from 'react';\nimport debounce from 'lodash.debounce';\nimport { assertNotNull } from '@deephaven/utils';\nimport \"./RandomAreaPlotAnimation.css\";\nimport { resolveCssVariablesInRecord, useTheme } from \"./theme/index.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nvar VOLATILITY = 0.025; // how spikey the data gets\nvar LOW = 0.9;\nvar HIGH = 0.1;\nvar START_Y = 0.618;\nvar GRID_SIZE = 80;\nvar PATTERN = {\n SIZE: 8,\n DOT_SIZE: 2\n};\nvar PX_PER_SECOND = 18;\nvar RESIZE_DEBOUNCE = 250;\nvar INTERACTION_TIMEOUT = 60 * 1000;\nvar THEME_COLOR_VARIABLES = {\n background: 'var(--dh-color-random-area-plot-animation-bg)',\n foregroundFill: 'var(--dh-color-random-area-plot-animation-fg-fill)',\n foregroundStroke: 'var(--dh-color-random-area-plot-animation-fg-stroke)',\n gridColor: 'var(--dh-color-random-area-plot-animation-grid)'\n};\n\n/**\n * Resolve theme colors needed for our animation.\n */\nfunction getRandomAreaPlotAnimationThemeColors() {\n return resolveCssVariablesInRecord(THEME_COLOR_VARIABLES);\n}\n\n// Draw a background canvas, paint it with a fun chart looking animation\nvar RandomAreaPlotAnimation = /*#__PURE__*/React.memo(() => {\n var {\n activeThemes\n } = useTheme();\n var themeColors = useMemo(getRandomAreaPlotAnimationThemeColors, [activeThemes]);\n var canvas = useRef(null);\n var container = useRef(null);\n var [shade, setShade] = useState(false);\n var scale = window.devicePixelRatio;\n var ctx;\n var pattern;\n var width;\n var height;\n var rAF;\n var lastTimestamp = null;\n var data = [];\n function setCanvasSize() {\n var _ctx;\n // Set canvas size to fill screen\n if (container.current != null) {\n width = container.current.offsetWidth;\n height = container.current.offsetHeight;\n }\n if (canvas.current != null) {\n canvas.current.style.width = \"\".concat(width, \"px\");\n canvas.current.style.height = \"\".concat(height, \"px\");\n canvas.current.width = width * scale;\n canvas.current.height = height * scale;\n }\n (_ctx = ctx) === null || _ctx === void 0 ? void 0 : _ctx.scale(scale, scale);\n }\n\n // Returns the background fill create offscreen as pattern\n function createPatternFill() {\n var {\n foregroundFill,\n foregroundStroke\n } = themeColors;\n\n // create the off-screen canvas\n var canvasPattern = document.createElement('canvas');\n canvasPattern.width = PATTERN.SIZE;\n canvasPattern.height = PATTERN.SIZE;\n var contextPattern = canvasPattern.getContext('2d');\n\n // draw pattern to off-screen context\n if (contextPattern != null) {\n contextPattern.fillStyle = foregroundStroke;\n contextPattern.fillRect(0, 0, PATTERN.DOT_SIZE, PATTERN.DOT_SIZE);\n\n // add an overlay fill\n contextPattern.fillStyle = foregroundFill;\n contextPattern.fillRect(0, 0, PATTERN.SIZE, PATTERN.SIZE);\n }\n return contextPattern === null || contextPattern === void 0 ? void 0 : contextPattern.createPattern(canvasPattern, 'repeat');\n }\n\n /**\n * Generates a step in a random walk between LOW - HIGH given a previous value\n * data is always in 0-1 data space so its scaleable\n * data space is converted to screen space inside draw functions\n * @param prev previous random walk step\n * @return new random walk step\n */\n function randomWalk(prev) {\n var rand = Math.random() - 0.5; // give it directionality\n var change = VOLATILITY * rand; // scale by volatity constant\n\n // ensure directional bounce off approaching edges\n if (prev < HIGH) {\n change = Math.abs(change);\n } else if (prev > LOW) {\n change = -Math.abs(change);\n }\n return prev + change;\n }\n function initData() {\n var startingData = [];\n var y = START_Y; // always start towards the bottom of the screen\n for (var x = 0; x < width + PX_PER_SECOND; x += 1) {\n y = randomWalk(y);\n startingData.push(y);\n }\n return startingData;\n }\n function setDataSize() {\n while (data.length >= width + PX_PER_SECOND) {\n data.pop();\n }\n while (data.length < width + PX_PER_SECOND) {\n data.push(randomWalk(data[data.length - 1]));\n }\n }\n function drawAreaLine(path, context) {\n context.beginPath();\n // start offscreen\n context.moveTo(-1, height + 1);\n context.lineTo(-1, height * path[0]);\n\n // draw the line\n for (var i = 0; i < path.length; i += 1) {\n context.lineTo(i, height * path[i]);\n }\n\n // close offscreen\n context.lineTo(width + PX_PER_SECOND, height * path[path.length - 1]);\n context.lineTo(width + PX_PER_SECOND, height + 1);\n context.closePath();\n }\n function drawGridLines(context) {\n context.beginPath();\n // draw verticals\n for (var x = 1; x < width; x += GRID_SIZE) {\n context.moveTo(x, 0);\n context.lineTo(x, height);\n }\n // draw horizontals\n for (var y = 1; y < height; y += GRID_SIZE) {\n context.moveTo(0, y);\n context.lineTo(width, y);\n }\n }\n\n /**\n * Main draw loop for where the animation happens\n * all the styling happens within drawCanvas from paths generated by other functions\n * @param timestamp passed in callback from requestAnimationFrame\n */\n function drawCanvas(timestamp) {\n var _lastTimestamp, _lastTimestamp2, _lastTimestamp3;\n lastTimestamp = (_lastTimestamp = lastTimestamp) !== null && _lastTimestamp !== void 0 ? _lastTimestamp : timestamp;\n var {\n background,\n foregroundStroke,\n gridColor\n } = themeColors;\n assertNotNull(ctx);\n // clear the canvas\n ctx.fillStyle = background;\n ctx.fillRect(0, 0, width, height);\n drawGridLines(ctx);\n ctx.lineWidth = 1;\n ctx.strokeStyle = gridColor;\n ctx.stroke();\n\n // for speeds less then 60 px per second, subpixel motion is required to look smooth\n var subPixelMotion = (((_lastTimestamp2 = lastTimestamp) !== null && _lastTimestamp2 !== void 0 ? _lastTimestamp2 : 0) - (timestamp !== null && timestamp !== void 0 ? timestamp : 0)) / (1000 / PX_PER_SECOND);\n ctx.translate(subPixelMotion, 0);\n drawAreaLine(data, ctx);\n ctx.lineWidth = 2;\n ctx.strokeStyle = foregroundStroke;\n ctx.stroke();\n ctx.translate(-subPixelMotion, 0); // we don't pattern to shift however\n if (pattern != null) {\n ctx.fillStyle = pattern;\n }\n ctx.fill();\n ctx.setTransform(scale, 0, 0, scale, 0, 0); // reset the translate matrix to normal\n\n // generate new data points\n if ((timestamp !== null && timestamp !== void 0 ? timestamp : 0) - ((_lastTimestamp3 = lastTimestamp) !== null && _lastTimestamp3 !== void 0 ? _lastTimestamp3 : 0) > 1000 / PX_PER_SECOND) {\n var _lastTimestamp4;\n // number of points to add since last update\n var numberOfPoints = Math.floor(((timestamp !== null && timestamp !== void 0 ? timestamp : 0) - ((_lastTimestamp4 = lastTimestamp) !== null && _lastTimestamp4 !== void 0 ? _lastTimestamp4 : 0)) / (1000 / PX_PER_SECOND));\n for (var i = 0; i < numberOfPoints; i += 1) {\n data.shift();\n data.push(randomWalk(data[data.length - 1]));\n }\n lastTimestamp = timestamp;\n }\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n rAF = requestAnimationFrame(drawCanvas);\n }\n\n // debounce the resize so its not overly aggresive\n var debouncedHandleResize = debounce(() => {\n rAF = requestAnimationFrame(timestamp => {\n setCanvasSize(); // setCanvas can cause lag if not debounced\n\n // fill or remove extra data points\n setDataSize();\n\n // opening devtools triggers a blur then resize,\n // need to reset shade as we are restarting animation\n setShade(false);\n drawCanvas(timestamp);\n });\n }, RESIZE_DEBOUNCE, {\n leading: true\n } // resize immediately, once.\n );\n\n function pauseAnimation() {\n // pause animation when browser window is blurred to conserve CPU usage\n setShade(true);\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n rAF = null;\n lastTimestamp = null;\n }\n\n // when timeout expires, pause animation\n var resetIdleTimeout = debounce(() => {\n pauseAnimation();\n }, INTERACTION_TIMEOUT);\n function startAnimation() {\n // can fire multiple times, check if rAF is null first\n // restart animation loop, and fade back in\n if (rAF == null) {\n setShade(false);\n setCanvasSize();\n setDataSize();\n rAF = requestAnimationFrame(drawCanvas);\n }\n resetIdleTimeout();\n }\n function handleActivity() {\n if (document.hasFocus()) {\n // only if document has focus (mousemove can fire on non-focused tabs)\n startAnimation();\n }\n }\n function handleResize() {\n // pause and debounce animation during resize for better resizing performance\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n resetIdleTimeout(); // treat resizing as a form of activity\n debouncedHandleResize();\n }\n\n // react mount/unmount hooks\n useEffect(() => {\n var _canvas$current;\n ctx = (_canvas$current = canvas.current) === null || _canvas$current === void 0 ? void 0 : _canvas$current.getContext('2d', {\n alpha: false\n });\n setCanvasSize();\n data = initData();\n pattern = createPatternFill();\n\n // start draw loop\n drawCanvas();\n resetIdleTimeout();\n window.addEventListener('resize', handleResize);\n window.addEventListener('focus', startAnimation);\n window.addEventListener('blur', pauseAnimation);\n\n // don't burn cpu if the user is \"idle\", start a timer that resets\n // on any user activity, and on timeout expiry pause the animation\n window.addEventListener('mousemove', handleActivity);\n window.addEventListener('keydown', handleActivity);\n return () => {\n if (rAF != null) {\n cancelAnimationFrame(rAF);\n }\n window.removeEventListener('resize', handleResize);\n window.removeEventListener('focus', startAnimation);\n window.removeEventListener('blur', pauseAnimation);\n window.removeEventListener('mousemove', handleActivity);\n window.removeEventListener('keydown', handleActivity);\n resetIdleTimeout.cancel();\n debouncedHandleResize.cancel();\n };\n }, [themeColors]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"random-area-plot-animation-container\",\n ref: container,\n children: /*#__PURE__*/_jsx(\"canvas\", {\n ref: canvas,\n className: shade ? 'shade' : ''\n })\n });\n});\nexport default RandomAreaPlotAnimation;\n//# sourceMappingURL=RandomAreaPlotAnimation.js.map","import { isValidElement } from 'react';\nimport Log from '@deephaven/log';\nimport { Item, Section } from \"../shared.js\";\nvar log = Log.module('PickerUtils');\nexport var INVALID_PICKER_ITEM_ERROR_MESSAGE = 'Picker items must be strings, numbers, booleans, <Item> or <Section> elements:';\n\n/**\n * React Spectrum <Section> supports an `ItemRenderer` function as a child. The\n * DH picker makes use of this internally, but we don't want to support it as\n * an incoming prop.\n */\n\n/**\n * Augment the Spectrum selection key type to include boolean values.\n * The Spectrum Picker already supports this, but the built in types don't\n * reflect it.\n */\n\n/**\n * Augment the Spectrum selection change handler type to include boolean keys.\n * The Spectrum Picker already supports this, but the built in types don't\n * reflect it.\n */\n\n/**\n * The Picker supports a variety of item types, including strings, numbers,\n * booleans, and more complex React elements. This type represents a normalized\n * form to make rendering items simpler and keep the logic of transformation\n * in separate util methods.\n */\n\n/**\n * Determine if a node is a Section element.\n * @param node The node to check\n * @returns True if the node is a Section element\n */\nexport function isSectionElement(node) {\n return /*#__PURE__*/isValidElement(node) && node.type === Section;\n}\n\n/**\n * Determine if a node is an Item element.\n * @param node The node to check\n * @returns True if the node is an Item element\n */\nexport function isItemElement(node) {\n return /*#__PURE__*/isValidElement(node) && node.type === Item;\n}\n\n/**\n * Determine if a node is a Picker item or section. Valid types include strings,\n * numbers, booleans, Item elements, and Section elements.\n * @param node The node to check\n * @returns True if the node is a Picker item or section\n */\nexport function isPickerItemOrSection(node) {\n return typeof node === 'string' || typeof node === 'number' || typeof node === 'boolean' || isItemElement(node) || isSectionElement(node);\n}\n\n/**\n * Determine if an object is a normalized Picker section.\n * @param maybeNormalizedPickerSection The object to check\n * @returns True if the object is a normalized Picker section\n */\nexport function isNormalizedPickerSection(maybeNormalizedPickerSection) {\n return 'items' in maybeNormalizedPickerSection;\n}\n\n/**\n * Determine the `key` of a picker item or section.\n * @param itemOrSection The picker item or section\n * @returns A `PickerItemKey` for the picker item or undefined if a key can't be determined\n */\n\nfunction normalizeItemKey(itemOrSection) {\n var _itemOrSection$props$;\n // string, number, or boolean\n if (typeof itemOrSection !== 'object') {\n return itemOrSection;\n }\n\n // If `key` prop is explicitly set\n if (itemOrSection.key != null) {\n return itemOrSection.key;\n }\n\n // Section element\n if (isSectionElement(itemOrSection)) {\n return typeof itemOrSection.props.title === 'string' ? itemOrSection.props.title : undefined;\n }\n\n // Item element\n return (_itemOrSection$props$ = itemOrSection.props.textValue) !== null && _itemOrSection$props$ !== void 0 ? _itemOrSection$props$ : typeof itemOrSection.props.children === 'string' ? itemOrSection.props.children : undefined;\n}\n\n/**\n * Get a normalized `textValue` for a picker item ensuring it is a string.\n * @param item The picker item\n * @returns A string `textValue` for the picker item\n */\nfunction normalizeTextValue(item) {\n if (typeof item !== 'object') {\n return String(item);\n }\n if (item.props.textValue != null) {\n return item.props.textValue;\n }\n if (typeof item.props.children === 'string') {\n return item.props.children;\n }\n return undefined;\n}\n\n/**\n * Normalize a picker item to an object form.\n * @param itemOrSection item to normalize\n * @returns NormalizedPickerItem object\n */\nfunction normalizePickerItem(itemOrSection) {\n if (!isPickerItemOrSection(itemOrSection)) {\n log.debug(INVALID_PICKER_ITEM_ERROR_MESSAGE, itemOrSection);\n throw new Error(INVALID_PICKER_ITEM_ERROR_MESSAGE);\n }\n if (isSectionElement(itemOrSection)) {\n var _key = normalizeItemKey(itemOrSection);\n var {\n title\n } = itemOrSection.props;\n var items = normalizePickerItemList(itemOrSection.props.children).filter(\n // We don't support nested section elements\n childItem => !isSectionElement(childItem));\n return {\n key: _key,\n title,\n items\n };\n }\n var key = normalizeItemKey(itemOrSection);\n var content = isItemElement(itemOrSection) ? itemOrSection.props.children : itemOrSection;\n var textValue = normalizeTextValue(itemOrSection);\n return {\n key,\n content,\n textValue\n };\n}\n\n/**\n * Get normalized picker items from a picker item or array of picker items.\n * @param itemsOrSections A picker item or array of picker items\n * @returns An array of normalized picker items\n */\nexport function normalizePickerItemList(itemsOrSections) {\n var itemsArray = Array.isArray(itemsOrSections) ? itemsOrSections : [itemsOrSections];\n return itemsArray.map(normalizePickerItem);\n}\n\n/**\n * Returns a TooltipOptions object or null if options is false or null.\n * @param options\n * @returns TooltipOptions or null\n */\nexport function normalizeTooltipOptions(options) {\n if (options == null || options === false) {\n return null;\n }\n if (options === true) {\n return {\n placement: 'right'\n };\n }\n return options;\n}\n//# sourceMappingURL=PickerUtils.js.map","function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nimport { Children, cloneElement, isValidElement } from 'react';\nimport { Text } from '@adobe/react-spectrum';\nimport cl from 'classnames';\nimport { isElementOfType } from '@deephaven/react-hooks';\nimport stylesCommon from \"../../SpectrumComponent.module.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\n/**\n * Picker item content. Text content will be wrapped in a Spectrum Text\n * component with ellipsis overflow handling.\n */\nexport function PickerItemContent(_ref) {\n var {\n children: content\n } = _ref;\n if ( /*#__PURE__*/isValidElement(content)) {\n return content;\n }\n\n /* eslint-disable no-param-reassign */\n if (content === '') {\n // Prevent the item height from collapsing when the content is empty\n content = '\\xa0'; // Non-breaking space\n } else if (typeof content === 'boolean') {\n // Boolean values need to be stringified to render\n content = String(content);\n } else if (Array.isArray(content)) {\n // For cases where there are multiple `Text` children, add a css class to\n // handle overflow. The primary use case for multiple text nodes is when a\n // description is provided for an item. e.g.\n // <Item textValue=\"Some Text\">\n // <SomeIcon />\n // <Text>Some Label</Text>\n // <Text slot=\"description\">Some Description</Text>\n // </Item>\n content = Children.map(content, (el, i) => isElementOfType(el, Text) ? /*#__PURE__*/cloneElement(el, _objectSpread(_objectSpread({}, el.props), {}, {\n UNSAFE_className: cl(el.props.UNSAFE_className, stylesCommon.spectrumEllipsis)\n })) : el);\n }\n /* eslint-enable no-param-reassign */\n\n return typeof content === 'string' || typeof content === 'number' ? /*#__PURE__*/_jsx(Text, {\n UNSAFE_className: stylesCommon.spectrumEllipsis,\n children: content\n }) :\n /*#__PURE__*/\n // eslint-disable-next-line react/jsx-no-useless-fragment\n _jsx(_Fragment, {\n children: content\n });\n}\nexport default PickerItemContent;\n//# sourceMappingURL=PickerItemContent.js.map","var _excluded = [\"children\", \"tooltip\", \"defaultSelectedKey\", \"selectedKey\", \"onChange\", \"onSelectionChange\", \"UNSAFE_className\"];\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nimport { useCallback, useMemo } from 'react';\nimport { Flex, Picker as SpectrumPicker, Text } from '@adobe/react-spectrum';\nimport { isElementOfType } from '@deephaven/react-hooks';\nimport cl from 'classnames';\nimport { Tooltip } from \"../../popper/index.js\";\nimport { normalizePickerItemList, normalizeTooltipOptions, isNormalizedPickerSection } from \"./PickerUtils.js\";\nimport { PickerItemContent } from \"./PickerItemContent.js\";\nimport { Item, Section } from \"../shared.js\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n/**\n * Create tooltip content optionally wrapping with a Flex column for array\n * content. This is needed for Items containing description `Text` elements.\n */\nfunction createTooltipContent(content) {\n if (typeof content === 'boolean') {\n return String(content);\n }\n if (Array.isArray(content)) {\n return /*#__PURE__*/_jsx(Flex, {\n direction: \"column\",\n alignItems: \"start\",\n children: content.filter(node => isElementOfType(node, Text))\n });\n }\n return content;\n}\n\n/**\n * Picker component for selecting items from a list of items. Items can be\n * provided via the `items` prop or as children. Each item can be a string,\n * number, boolean, or a Spectrum <Item> element. The remaining props are just\n * pass through props for the Spectrum Picker component.\n * See https://react-spectrum.adobe.com/react-spectrum/Picker.html\n */\nexport function Picker(_ref) {\n var {\n children,\n tooltip = true,\n defaultSelectedKey,\n selectedKey,\n onChange,\n onSelectionChange,\n // eslint-disable-next-line camelcase\n UNSAFE_className\n } = _ref,\n spectrumPickerProps = _objectWithoutProperties(_ref, _excluded);\n var normalizedItems = useMemo(() => normalizePickerItemList(children), [children]);\n var tooltipOptions = useMemo(() => normalizeTooltipOptions(tooltip), [tooltip]);\n var renderItem = useCallback(_ref2 => {\n var {\n key,\n content,\n textValue\n } = _ref2;\n return (\n /*#__PURE__*/\n // The `textValue` prop gets used to provide the content of `<option>`\n // elements that back the Spectrum Picker. These are not visible in the UI,\n // but are used for accessibility purposes, so we set to an arbitrary\n // 'Empty' value so that they are not empty strings.\n _jsxs(Item, {\n textValue: textValue === '' || textValue == null ? 'Empty' : textValue,\n children: [/*#__PURE__*/_jsx(PickerItemContent, {\n children: content\n }), tooltipOptions == null || content === '' ? null : /*#__PURE__*/_jsx(Tooltip, {\n options: tooltipOptions,\n children: createTooltipContent(content)\n })]\n }, key)\n );\n }, [tooltipOptions]);\n return /*#__PURE__*/_jsx(SpectrumPicker\n // eslint-disable-next-line react/jsx-props-no-spreading\n , _objectSpread(_objectSpread({}, spectrumPickerProps), {}, {\n UNSAFE_className: cl('dh-picker', UNSAFE_className),\n items: normalizedItems\n // Type assertions are necessary for `selectedKey`, `defaultSelectedKey`,\n // and `onSelectionChange` due to Spectrum types not accounting for\n // `boolean` keys\n ,\n selectedKey: selectedKey,\n defaultSelectedKey: defaultSelectedKey\n // `onChange` is just an alias for `onSelectionChange`\n ,\n onSelectionChange: onChange !== null && onChange !== void 0 ? onChange : onSelectionChange,\n children: itemOrSection => {\n if (isNormalizedPickerSection(itemOrSection)) {\n return /*#__PURE__*/_jsx(Section, {\n title: itemOrSection.title,\n items: itemOrSection.items,\n children: renderItem\n }, itemOrSection.key);\n }\n return renderItem(itemOrSection);\n }\n }));\n}\nexport default Picker;\n//# sourceMappingURL=Picker.js.map","/* eslint-disable react/no-array-index-key */\n// array maps being used are static, this is fine.\n\nimport React, { useCallback, useMemo, useRef, useState, useEffect } from 'react';\nimport classNames from 'classnames';\nimport TimeInput from \"./TimeInput.js\";\nimport StyleExports from \"./TimeSlider.module.css\";\nimport \"./TimeSlider.css\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Fragment as _Fragment } from \"react/jsx-runtime\";\nvar HANDLE_SIZE = parseInt(StyleExports['handle-size'], 10);\nvar POPOVER_WIDTH = parseInt(StyleExports['popover-width'], 10);\nvar SECONDS_IN_DAY = 24 * 60 * 60 - 1; // Max is actually 23:59:59\nvar SNAP_NEAREST_MINUTES = 5 * 60; // rounds in 5 minute intervals\n\n/**\n * Creates a time slider for setting a start and end time, that can also run overnight\n * @param props takes times in seconds 0 - 86399 and a callback\n */\nfunction TimeSlider(_ref) {\n var {\n startTime: propStartTime,\n endTime: propEndTime,\n onChange,\n isStartModified = false,\n isEndModified = false,\n 'data-testid': dataTestId\n } = _ref;\n var [startTime, setStartTime] = useState(propStartTime);\n var [endTime, setEndTime] = useState(propEndTime);\n var track = useRef(null); // we need the track width while calulculating time from handle drag\n\n // updates state if props change\n useEffect(function setTimeOnPropTimeChange() {\n setStartTime(propStartTime);\n setEndTime(propEndTime);\n }, [propStartTime, propEndTime]);\n var updateTime = useCallback((newStartTime, newEndTime) => {\n var start = newStartTime;\n var end = newEndTime;\n if (start === end) {\n if (end < SECONDS_IN_DAY) {\n end += 1;\n } else {\n start -= 1;\n }\n }\n setStartTime(start);\n setEndTime(end);\n onChange({\n startTime: start,\n endTime: end\n });\n }, [setStartTime, setEndTime, onChange]);\n var handleStartTimeChange = useCallback(newStartTime => {\n updateTime(newStartTime, endTime);\n }, [updateTime, endTime]);\n var handleEndTimeChange = useCallback(newEndTime => {\n updateTime(startTime, newEndTime);\n }, [updateTime, startTime]);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"time-slider\",\n \"data-testid\": dataTestId,\n children: [/*#__PURE__*/_jsx(PopOvers, {\n startTime: startTime,\n endTime: endTime,\n onStartTimeChange: handleStartTimeChange,\n onEndTimeChange: handleEndTimeChange,\n isStartModified: isStartModified,\n isEndModified: isEndModified\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"track\",\n ref: track,\n children: [/*#__PURE__*/_jsx(TrackFills, {\n startTime: startTime,\n endTime: endTime\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"ticks\",\n children: Array(24).fill(null).map((value, index) => /*#__PURE__*/_jsx(\"div\", {\n className: \"tick\"\n }, index))\n }), /*#__PURE__*/_jsx(Handle, {\n track: track,\n time: startTime,\n setTime: handleStartTimeChange\n }), /*#__PURE__*/_jsx(Handle, {\n track: track,\n time: endTime,\n setTime: handleEndTimeChange\n })]\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"tick-labels\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"tick-label\",\n children: \"0:00\"\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"tick-label-wrapper\",\n children: Array(24).fill(null).map((value, index) => /*#__PURE__*/_jsx(\"div\", {\n className: \"tick-label\",\n children: \"\".concat(index + 1, \":00\")\n }, index))\n })]\n })]\n });\n}\nfunction PopOvers(props) {\n var {\n startTime,\n endTime,\n onStartTimeChange,\n onEndTimeChange,\n isStartModified,\n isEndModified,\n 'data-testid': dataTestId\n } = props;\n var swapTimes = startTime > endTime;\n var [firstTime, setFirstTime] = useState(swapTimes ? endTime : startTime);\n var [secondTime, setSecondTime] = useState(swapTimes ? startTime : endTime);\n var firstTimeRef = useRef(null);\n var secondTimeRef = useRef(null);\n // Keep track of selection in both time inputs\n var firstTimeSelectionRef = useRef(null);\n var secondTimeSelectionRef = useRef(null);\n useEffect(function setTimeOnPropTimeChange() {\n setFirstTime(startTime > endTime ? endTime : startTime);\n setSecondTime(startTime > endTime ? startTime : endTime);\n }, [startTime, endTime]);\n useEffect(function setFocusOnSwapTimesChange() {\n if (firstTimeSelectionRef.current !== null) {\n var _secondTimeRef$curren;\n (_secondTimeRef$curren = secondTimeRef.current) === null || _secondTimeRef$curren === void 0 ? void 0 : _secondTimeRef$curren.setSelection(firstTimeSelectionRef.current);\n }\n if (secondTimeSelectionRef.current !== null) {\n var _firstTimeRef$current;\n (_firstTimeRef$current = firstTimeRef.current) === null || _firstTimeRef$current === void 0 ? void 0 : _firstTimeRef$current.setSelection(secondTimeSelectionRef.current);\n }\n }, [swapTimes]);\n function onFirstTimeChange(value) {\n if (startTime <= endTime) {\n onStartTimeChange(value);\n } else {\n onEndTimeChange(value);\n }\n }\n function onSecondTimeChange(value) {\n if (startTime <= endTime) {\n onEndTimeChange(value);\n } else {\n onStartTimeChange(value);\n }\n }\n var onFirstTimeSelect = useCallback(selection => {\n firstTimeSelectionRef.current = selection;\n secondTimeSelectionRef.current = null;\n }, []);\n var onSecondTimeSelect = useCallback(selection => {\n firstTimeSelectionRef.current = null;\n secondTimeSelectionRef.current = selection;\n }, []);\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"time-slider-popovers\",\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"flex\",\n style: {\n flexBasis: \"calc(\".concat(firstTime / SECONDS_IN_DAY * 100, \"% - \").concat(POPOVER_WIDTH / 2, \"px)\")\n }\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"handle-popper\",\n children: [/*#__PURE__*/_jsx(\"label\", {\n className: classNames({\n modified: swapTimes ? isEndModified : isStartModified\n }),\n children: swapTimes ? 'End Time' : 'Start Time'\n }), /*#__PURE__*/_jsx(TimeInput, {\n ref: firstTimeRef,\n allowValueWrapping: false,\n value: firstTime,\n onChange: onFirstTimeChange,\n onSelect: onFirstTimeSelect,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-input-1\") : undefined\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"flex-spacer\"\n }), /*#__PURE__*/_jsxs(\"div\", {\n className: \"handle-popper\",\n children: [/*#__PURE__*/_jsx(\"label\", {\n className: classNames({\n modified: swapTimes ? isStartModified : isEndModified\n }),\n children: swapTimes ? 'Start Time' : 'End Time'\n }), /*#__PURE__*/_jsx(TimeInput, {\n ref: secondTimeRef,\n allowValueWrapping: false,\n value: secondTime,\n onChange: onSecondTimeChange,\n onSelect: onSecondTimeSelect,\n \"data-testid\": dataTestId !== undefined ? \"\".concat(dataTestId, \"-input-2\") : undefined\n })]\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"flex\",\n style: {\n flexBasis: \"calc(\".concat((SECONDS_IN_DAY - secondTime) / SECONDS_IN_DAY * 100, \"% - \").concat(POPOVER_WIDTH / 2, \"px)\")\n }\n })]\n });\n}\n/**\n * Shades the area between or outside of handles according to if start or endtime is greater.\n */\nfunction TrackFills(props) {\n var {\n startTime,\n endTime,\n 'data-testid': dataTestId\n } = props;\n return /*#__PURE__*/_jsxs(\"div\", {\n className: \"track-fills\",\n \"data-testid\": dataTestId,\n children: [startTime > endTime && /*#__PURE__*/_jsxs(_Fragment, {\n children: [/*#__PURE__*/_jsx(\"div\", {\n className: \"track-fill track-fill-start\",\n style: {\n transform: \"scaleX(\".concat(endTime / SECONDS_IN_DAY, \")\")\n }\n }), /*#__PURE__*/_jsx(\"div\", {\n className: \"track-fill track-fill-end\",\n style: {\n transform: \"scaleX(\".concat((SECONDS_IN_DAY - startTime) / SECONDS_IN_DAY, \")\")\n }\n })]\n }), startTime < endTime && /*#__PURE__*/_jsx(\"div\", {\n className: \"track-fill track-fill-middle\",\n style: {\n transform: \"translateX(\".concat(startTime / SECONDS_IN_DAY * 100, \"%) scaleX(\").concat((endTime - startTime) / SECONDS_IN_DAY, \")\")\n }\n })]\n });\n}\n/**\n * Creates a draggable handle the sets the time\n */\nfunction Handle(props) {\n var {\n track,\n time,\n setTime,\n 'data-testid': dataTestId\n } = props;\n\n /**\n * Takes the time and generate our translation string taking into account handle offset.\n * The handle offset changes for the first and last tick range dynmaically. Normally,\n * the center of the handle (size/2) is the selection origin, but at edges, it becomes either\n * end of the handle, requireing a relative offset range of 0 - 0.5, and 0.5 - 1 of handle size.\n * @param t time in seconds\n */\n var transform = useMemo(() => {\n var ONE_HOUR = 60 * 60;\n var handleOffset = HANDLE_SIZE / 2;\n if (time < ONE_HOUR) {\n handleOffset = time / ONE_HOUR * (HANDLE_SIZE / 2); // 0 - 0.5 Handle size\n } else if (time > 23 * ONE_HOUR) {\n handleOffset = HANDLE_SIZE / 2 + 1 / (SECONDS_IN_DAY - 23 * ONE_HOUR) * (time - 23 * ONE_HOUR) * (HANDLE_SIZE / 2); // 0.5 - 1 Handle size\n }\n\n return \"translateX(calc(\".concat(time / SECONDS_IN_DAY * 100, \"% - \").concat(handleOffset, \"px))\");\n }, [time]);\n var calculatePositionAsTime = useCallback(clientX => {\n if (!track.current) {\n return 0;\n }\n var trackRect = track.current.getBoundingClientRect();\n var leftEdge = Math.max(clientX - trackRect.left, 0);\n // get position as 0-1 on slider and mulitply by seconds in a day to convert to time\n var preciseTime = SECONDS_IN_DAY * Math.min(1, leftEdge / trackRect.width);\n // snap to nearest N(5) minute interval\n var roundedTime = SNAP_NEAREST_MINUTES * Math.round(preciseTime / SNAP_NEAREST_MINUTES);\n // prevent over-rounding to 24:00:00\n var limitMax = Math.min(SECONDS_IN_DAY, roundedTime);\n return limitMax;\n }, [track]);\n var handleMouseMove = useCallback(_ref2 => {\n var {\n clientX\n } = _ref2;\n setTime(calculatePositionAsTime(clientX));\n }, [setTime, calculatePositionAsTime]);\n var handleMouseUp = useCallback(_ref3 => {\n var {\n clientX\n } = _ref3;\n setTime(calculatePositionAsTime(clientX));\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.remove('drag-pointer-events-none');\n }, [setTime, calculatePositionAsTime, handleMouseMove]);\n var startDragListening = useCallback(() => {\n window.addEventListener('mousemove', handleMouseMove);\n window.addEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.add('drag-pointer-events-none');\n }, [handleMouseMove, handleMouseUp]);\n var stopDragListening = useCallback(() => {\n window.removeEventListener('mousemove', handleMouseMove);\n window.removeEventListener('mouseup', handleMouseUp);\n document.documentElement.classList.remove('drag-pointer-events-none');\n }, [handleMouseMove, handleMouseUp]);\n var handleMouseDown = useCallback(() => {\n startDragListening();\n }, [startDragListening]);\n useEffect(function removeListenersOnUnmount() {\n return () => {\n stopDragListening();\n };\n }, [stopDragListening]);\n return /*#__PURE__*/_jsx(\"div\", {\n className: \"handle-track\",\n style: {\n transform\n },\n children: /*#__PURE__*/_jsx(\"button\", {\n className: \"handle\",\n type: \"button\",\n \"aria-label\": \"Change time\",\n onMouseDown: handleMouseDown,\n \"data-testid\": dataTestId\n })\n });\n}\nexport default TimeSlider;\n//# sourceMappingURL=TimeSlider.js.map","function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\nimport ChartModel from \"./ChartModel.js\";\nimport { defaultChartTheme } from \"./ChartTheme.js\";\nimport ChartUtils from \"./ChartUtils.js\";\n/** Displays a basic random chart */\nclass MockChartModel extends ChartModel {\n static get theme() {\n /* eslint-disable no-underscore-dangle */\n if (MockChartModel._theme == null) {\n MockChartModel._theme = defaultChartTheme();\n }\n return MockChartModel._theme;\n /* eslint-enable no-underscore-dangle */\n }\n\n static makeRandomSeries(offset) {\n var scale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var steps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 100;\n var dates = [];\n var values = [];\n var smooth = [];\n var linear = [];\n\n // Setting to a fixed seed date so that e2e tests can be deterministic.\n var startDate = new Date('2018-06-01');\n for (var i = 0; i < steps; i += 1) {\n var date = new Date(startDate.getFullYear(), startDate.getMonth(), startDate.getDate() + i - steps);\n dates.push(\"\".concat(date.getFullYear(), \"-\").concat(date.getMonth() + 1, \"-\").concat(date.getDate()));\n var v = (Math.sin(i / steps * offset) * steps / 3 + Math.cos(i * 0.2) * steps / 6 + Math.sin(i * 0.5) * steps / 10 + MockChartModel.random() * steps / 5 + i * MockChartModel.smoothing) * scale;\n v = Math.round(v * 100) / 100; // 2 decimals only\n // using steps acts as amplititude scaling based on value\n // large sine wave for course shape + small sine waves for bumpiness +\n // general randomness noise + index to be constantly up and to the right + smoothing factor\n values.push(v);\n linear.push(40 + i * MockChartModel.smoothing);\n smooth.push(Math.sin(i / steps * offset) * steps / 3 + MockChartModel.random() * steps / 10 + i * MockChartModel.smoothing); // push a smoother version of the same thing\n }\n\n return {\n x: dates,\n y: values,\n s: smooth,\n l: linear\n };\n }\n static makeScatter(series) {\n return {\n name: 'SCTR',\n x: series.x,\n y: series.y,\n type: 'scatter',\n mode: 'markers',\n hoverinfo: 'skip',\n marker: {\n size: 5\n }\n };\n }\n static makeArea(series) {\n return {\n name: 'AREA',\n x: series.x,\n y: series.s,\n type: 'scatter',\n mode: 'line',\n fill: 'tozeroy',\n hoverinfo: 'all',\n line: {\n width: 3\n // area patten gets applied as hack in post render plot.ly callback + css\n }\n };\n }\n\n static makeTrendline(series) {\n return {\n // we probably want to toss the line formula in legend I guess? either that or render it as text manually on plot\n name: 'Trendline <br>R<sup>2</sup> = 0.91',\n x: series.x,\n y: series.l,\n type: 'scatter',\n mode: 'line',\n hoverinfo: 'skip',\n line: {\n width: 3,\n dash: 'dot' // trendlines should follow some sort of color convention + dots/dashed. Remember there can multiple\n // chroma(c.$green).brighten(1.2).hex()\n }\n };\n }\n\n static makeErrorBand(series) {\n // generate continouous error bands values and text\n var erroryforward = [];\n var errorybackward = [];\n for (var i = 0; i < series.y.length; i += 1) {\n var value = series.y[i];\n erroryforward[i] = Math.round((value + 18) * 100) / 100;\n errorybackward[i] = Math.round((value - 18) * 100) / 100;\n }\n\n // makes a closed shape of points winding clockwise for y values\n var errory = erroryforward.concat(errorybackward.reverse());\n return {\n name: 'error',\n x: series.x.concat(series.x.slice().reverse()),\n // winding for x values, that slice just clones so reverse doesn't apply inplace\n y: errory,\n type: 'scatter',\n mode: 'line',\n hoverinfo: 'skip',\n fill: 'toself',\n // there's some ordering bug with scattergl where if the areas traces are ordered after the lines they don't render\n line: {\n width: 0,\n color: MockChartModel.theme.error_band_line_color,\n shape: 'spline'\n }\n };\n }\n static makeLine(series) {\n return {\n name: 'LINE',\n x: series.x,\n y: series.y,\n type: 'scatter',\n mode: 'line',\n hoverinfo: 'x+y+text+name',\n line: {\n width: 3\n }\n };\n }\n static makeRandomData() {\n var series1 = MockChartModel.makeRandomSeries(6);\n var areaPattern = MockChartModel.makeArea(series1);\n var trendLine = MockChartModel.makeTrendline(series1);\n var series2 = MockChartModel.makeRandomSeries(2);\n var line = MockChartModel.makeLine(series2);\n var errorBand = MockChartModel.makeErrorBand(series2);\n return [areaPattern, trendLine, line, errorBand];\n }\n static makeDefaultLayout(dh) {\n var layout = {\n template: new ChartUtils(dh).makeDefaultTemplate(MockChartModel.theme)\n };\n layout.title = 'Chart';\n layout.xaxis = {\n title: 'Datestamp'\n };\n layout.yaxis = {\n title: 'Price'\n };\n return layout;\n }\n constructor(dh) {\n var {\n data = MockChartModel.makeRandomData(),\n layout = MockChartModel.makeDefaultLayout(dh),\n filterFields = []\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n super(dh);\n _defineProperty(this, \"data\", void 0);\n _defineProperty(this, \"filterFields\", void 0);\n _defineProperty(this, \"layout\", void 0);\n this.data = data;\n this.layout = layout;\n this.filterFields = filterFields;\n }\n getData() {\n return this.data;\n }\n getLayout() {\n return this.layout;\n }\n getFilterColumnMap() {\n var map = new Map();\n for (var i = 0; i < this.filterFields.length; i += 1) {\n var name = this.filterFields[i];\n var type = 'java.lang.String';\n map.set(name, {\n name,\n type\n });\n }\n return map;\n }\n isFilterRequired() {\n return this.filterFields.length > 0;\n }\n setFilter() {\n this.fireUpdate(this.data);\n }\n}\n_defineProperty(MockChartModel, \"random\", Math.random.bind(Math));\n_defineProperty(MockChartModel, \"smoothing\", 1.5);\n_defineProperty(MockChartModel, \"_theme\", void 0);\nexport default MockChartModel;\n//# sourceMappingURL=MockChartModel.js.map","import React, { createContext, useEffect, useState } from 'react';\nimport '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":["isElementOfType","node","type","isValidElement","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","fixIncompleteValue","TimeInput","ref","allowValueWrapping","onFocus","onBlur","onSelect","TimeUtils","parsedValueRef","selection","_setSelection","inputRef","useImperativeHandle","_inputRef$current","newSelection","_inputRef$current2","getNextSegmentValue","range","delta","segmentValue","maxValue","newSegmentValue","getPreferredReplacementString","replaceValue","replaceIndex","newChar","selectionStart","selectionEnd","DEFAULT_GET_PREFERRED_REPLACEMENT_STRING","useCallback","fixedValue","handleSelect","MaskedInput","TimeInput$1","CUSTOM_OPTION","CustomTimeSelect","valueToTime","customTime","_this$button$current","_this$button$current2","inputFocused","menuOptionsLength","optionIndex","timeToValue","update","_this$button$current3","activeOption","valueIndex","_this$menuContainer$c2","focusButton","_this$button$current4","_this$menuContainer$c3","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","THEME_COLOR_VARIABLES","getRandomAreaPlotAnimationThemeColors","resolveCssVariablesInRecord","RandomAreaPlotAnimation","activeThemes","useTheme","themeColors","useMemo","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","INVALID_PICKER_ITEM_ERROR_MESSAGE","isSectionElement","Section","isItemElement","Item","isPickerItemOrSection","isNormalizedPickerSection","maybeNormalizedPickerSection","normalizeItemKey","itemOrSection","_itemOrSection$props$","normalizeTextValue","item","normalizePickerItem","_key","items","normalizePickerItemList","childItem","content","textValue","itemsOrSections","itemsArray","normalizeTooltipOptions","PickerItemContent","Children","el","Text","cloneElement","cl","stylesCommon","_Fragment","_excluded","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceSymbolKeys","sourceKeys","createTooltipContent","Flex","Picker","tooltip","defaultSelectedKey","selectedKey","onSelectionChange","UNSAFE_className","spectrumPickerProps","normalizedItems","tooltipOptions","renderItem","Tooltip","SpectrumPicker","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","setTime","transform","ONE_HOUR","handleOffset","calculatePositionAsTime","clientX","trackRect","leftEdge","preciseTime","roundedTime","limitMax","handleMouseMove","handleMouseUp","_ref3","startDragListening","stopDragListening","MockChartModel","ChartModel","defaultChartTheme","offset","steps","dates","values","smooth","linear","startDate","date","v","series","erroryforward","errorybackward","errory","series1","areaPattern","trendLine","series2","line","errorBand","dh","layout","ChartUtils","filterFields","name","MockChartModel$1","FontsLoadedContext","createContext","FontBootstrap","fontClassNames","isLoaded","setIsLoaded"],"mappings":"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"}