@deephaven/grid 0.32.1-beta.1 → 0.32.1-beta.6

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.
@@ -17,7 +17,6 @@ export type CellInputFieldProps = {
17
17
  onContextMenu?: React.MouseEventHandler<HTMLTextAreaElement>;
18
18
  style?: React.CSSProperties;
19
19
  };
20
- export declare const directionForKey: (key: string) => SELECTION_DIRECTION | undefined;
21
20
  export declare function CellInputField({ selectionRange, className, disabled, value: propsValue, isQuickEdit: propsIsQuickEdit, onChange, onCancel, onDone, onContextMenu, style, }: CellInputFieldProps): JSX.Element;
22
21
  export declare namespace CellInputField {
23
22
  var propTypes: {
@@ -1 +1 @@
1
- {"version":3,"file":"CellInputField.d.ts","sourceRoot":"","sources":["../src/CellInputField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,uBAAuB,CAAC;AAE/B,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,CACP,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;QACvC,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,KACE,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IAC7D,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,eAAe,QACrB,MAAM,KACV,mBAAmB,GAAG,SAaxB,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,cAA0B,EAC1B,SAAc,EACd,QAAgB,EAChB,KAAK,EAAE,UAAe,EACtB,WAAW,EAAE,gBAAuB,EACpC,QAA0B,EAC1B,QAA0B,EAC1B,MAAwB,EACxB,aAA+B,EAC/B,KAAU,GACX,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CA0JnC;yBArKe,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;AAiM9B,eAAe,cAAc,CAAC"}
1
+ {"version":3,"file":"CellInputField.d.ts","sourceRoot":"","sources":["../src/CellInputField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AACxE,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,uBAAuB,CAAC;AAE/B,MAAM,MAAM,mBAAmB,GAAG;IAChC,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,MAAM,CAAC,EAAE,CACP,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,mBAAmB,GAAG,IAAI,CAAC;QACvC,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,KACE,IAAI,CAAC;IACV,aAAa,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IAC7D,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B,CAAC;AAiBF,wBAAgB,cAAc,CAAC,EAC7B,cAA0B,EAC1B,SAAc,EACd,QAAgB,EAChB,KAAK,EAAE,UAAe,EACtB,WAAW,EAAE,gBAAuB,EACpC,QAA0B,EAC1B,QAA0B,EAC1B,MAAwB,EACxB,aAA+B,EAC/B,KAAU,GACX,EAAE,mBAAmB,GAAG,GAAG,CAAC,OAAO,CA0JnC;yBArKe,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;AAiM9B,eAAe,cAAc,CAAC"}
@@ -4,7 +4,7 @@ import classNames from 'classnames';
4
4
  import { SELECTION_DIRECTION } from "./GridRange.js";
5
5
  import GridUtils from "./GridUtils.js";
6
6
  import "./CellInputField.css";
7
- export var directionForKey = key => {
7
+ var directionForKey = key => {
8
8
  switch (key) {
9
9
  case 'ArrowDown':
10
10
  return SELECTION_DIRECTION.DOWN;
@@ -1 +1 @@
1
- {"version":3,"file":"CellInputField.js","names":["React","useCallback","useEffect","useRef","useState","PropTypes","classNames","SELECTION_DIRECTION","GridUtils","directionForKey","key","DOWN","UP","LEFT","RIGHT","undefined","CellInputField","selectionRange","className","disabled","value","propsValue","isQuickEdit","propsIsQuickEdit","onChange","onCancel","onDone","onContextMenu","style","inputField","isCancelled","initialValue","isChanged","setIsChanged","setIsQuickEdit","setValue","selectInputField","current","field","focus","setSelectionRange","length","sendUpdate","newValue","handleChange","event","target","handleCancel","handleClick","handleCommit","direction","fillRange","handleBlur","handleKeyDown","stopPropagation","preventDefault","isModifierKeyDown","altKey","shiftKey","handleContextMenu","propTypes","arrayOf","number","string","bool","func","shape","defaultProps"],"sources":["../src/CellInputField.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { SELECTION_DIRECTION } from './GridRange';\nimport GridUtils from './GridUtils';\nimport './CellInputField.scss';\n\nexport type CellInputFieldProps = {\n selectionRange?: number[];\n className?: string;\n disabled?: boolean;\n isQuickEdit?: boolean;\n value?: string;\n onChange?: (value: string) => void;\n onCancel?: () => void;\n onDone?: (\n value: string,\n options: {\n direction?: SELECTION_DIRECTION | null;\n fillRange?: boolean;\n }\n ) => void;\n onContextMenu?: React.MouseEventHandler<HTMLTextAreaElement>;\n style?: React.CSSProperties;\n};\n\nexport const directionForKey = (\n key: string\n): SELECTION_DIRECTION | undefined => {\n switch (key) {\n case 'ArrowDown':\n return SELECTION_DIRECTION.DOWN;\n case 'ArrowUp':\n return SELECTION_DIRECTION.UP;\n case 'ArrowLeft':\n return SELECTION_DIRECTION.LEFT;\n case 'ArrowRight':\n return SELECTION_DIRECTION.RIGHT;\n default:\n return undefined;\n }\n};\n\nexport function CellInputField({\n selectionRange = undefined,\n className = '',\n disabled = false,\n value: propsValue = '',\n isQuickEdit: propsIsQuickEdit = true,\n onChange = () => undefined,\n onCancel = () => undefined,\n onDone = () => undefined,\n onContextMenu = () => undefined,\n style = {},\n}: CellInputFieldProps): JSX.Element {\n const inputField = useRef<HTMLTextAreaElement>(null);\n // Use a ref for `isCancelled` as we need to know when it's cancelled after it's called by the event handlers as well\n const isCancelled = useRef<boolean>(false);\n const [initialValue] = useState(propsValue);\n const [isChanged, setIsChanged] = useState(false);\n const [isQuickEdit, setIsQuickEdit] = useState(propsIsQuickEdit);\n const [value, setValue] = useState(propsValue);\n\n // Init field selection\n useEffect(\n function selectInputField() {\n const { current: field } = inputField;\n if (field == null) {\n return;\n }\n\n field.focus();\n if (selectionRange) {\n field.setSelectionRange(selectionRange[0], selectionRange[1]);\n } else {\n field.setSelectionRange(field.value.length, field.value.length);\n }\n },\n [selectionRange]\n );\n\n const sendUpdate = useCallback(\n (newValue: string) => {\n onChange(newValue);\n },\n [onChange]\n );\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n const { value: newValue } = event.target;\n setValue(newValue);\n setIsChanged(true);\n sendUpdate(newValue);\n },\n [sendUpdate, setValue, setIsChanged]\n );\n\n const handleCancel = useCallback(() => {\n isCancelled.current = true;\n if (isChanged) {\n sendUpdate(initialValue);\n }\n\n setIsChanged(false);\n onCancel();\n }, [initialValue, isChanged, onCancel, sendUpdate]);\n\n const handleClick = useCallback(() => {\n setIsQuickEdit(false);\n }, [setIsQuickEdit]);\n\n const handleCommit = useCallback(\n (direction?: SELECTION_DIRECTION | null, fillRange = false) => {\n onDone(value, { direction, fillRange });\n },\n [onDone, value]\n );\n\n const handleBlur = useCallback(() => {\n if (isCancelled.current) {\n return;\n }\n\n handleCommit(null);\n }, [isCancelled, handleCommit]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLTextAreaElement>) => {\n event.stopPropagation();\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n handleCancel();\n break;\n case 'Enter':\n event.preventDefault();\n if (GridUtils.isModifierKeyDown(event)) {\n handleCommit(undefined, true);\n } else if (event.altKey) {\n const newValue = `${value}\\n`;\n setValue(newValue);\n setIsChanged(true);\n sendUpdate(newValue);\n } else {\n handleCommit(\n event.shiftKey ? SELECTION_DIRECTION.UP : SELECTION_DIRECTION.DOWN\n );\n }\n break;\n case 'Tab':\n event.preventDefault();\n handleCommit(\n event.shiftKey\n ? SELECTION_DIRECTION.LEFT\n : SELECTION_DIRECTION.RIGHT\n );\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n case 'ArrowLeft':\n case 'ArrowRight':\n if (isQuickEdit) {\n event.preventDefault();\n handleCommit(directionForKey(event.key));\n }\n break;\n default:\n break;\n }\n },\n [\n handleCancel,\n handleCommit,\n isQuickEdit,\n setValue,\n setIsChanged,\n sendUpdate,\n value,\n ]\n );\n\n const handleContextMenu = useCallback(\n (event: React.MouseEvent<HTMLTextAreaElement, MouseEvent>) => {\n onContextMenu(event);\n },\n [onContextMenu]\n );\n\n return (\n <textarea\n ref={inputField}\n className={classNames('grid-cell-input-field', className)}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onContextMenu={handleContextMenu}\n onClick={handleClick}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n disabled={disabled}\n style={style}\n />\n );\n}\n\nCellInputField.propTypes = {\n selectionRange: PropTypes.arrayOf(PropTypes.number),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n isQuickEdit: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onCancel: PropTypes.func,\n onDone: PropTypes.func,\n onContextMenu: PropTypes.func,\n style: PropTypes.shape({}),\n};\n\nCellInputField.defaultProps = {\n selectionRange: null,\n className: '',\n disabled: false,\n value: '',\n isQuickEdit: true,\n onChange: () => undefined,\n onCancel: () => undefined,\n onDone: () => undefined,\n onContextMenu: () => undefined,\n style: {},\n};\n\nexport default CellInputField;\n"],"mappings":"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"}
1
+ {"version":3,"file":"CellInputField.js","names":["React","useCallback","useEffect","useRef","useState","PropTypes","classNames","SELECTION_DIRECTION","GridUtils","directionForKey","key","DOWN","UP","LEFT","RIGHT","undefined","CellInputField","selectionRange","className","disabled","value","propsValue","isQuickEdit","propsIsQuickEdit","onChange","onCancel","onDone","onContextMenu","style","inputField","isCancelled","initialValue","isChanged","setIsChanged","setIsQuickEdit","setValue","selectInputField","current","field","focus","setSelectionRange","length","sendUpdate","newValue","handleChange","event","target","handleCancel","handleClick","handleCommit","direction","fillRange","handleBlur","handleKeyDown","stopPropagation","preventDefault","isModifierKeyDown","altKey","shiftKey","handleContextMenu","propTypes","arrayOf","number","string","bool","func","shape","defaultProps"],"sources":["../src/CellInputField.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { SELECTION_DIRECTION } from './GridRange';\nimport GridUtils from './GridUtils';\nimport './CellInputField.scss';\n\nexport type CellInputFieldProps = {\n selectionRange?: number[];\n className?: string;\n disabled?: boolean;\n isQuickEdit?: boolean;\n value?: string;\n onChange?: (value: string) => void;\n onCancel?: () => void;\n onDone?: (\n value: string,\n options: {\n direction?: SELECTION_DIRECTION | null;\n fillRange?: boolean;\n }\n ) => void;\n onContextMenu?: React.MouseEventHandler<HTMLTextAreaElement>;\n style?: React.CSSProperties;\n};\n\nconst directionForKey = (key: string): SELECTION_DIRECTION | undefined => {\n switch (key) {\n case 'ArrowDown':\n return SELECTION_DIRECTION.DOWN;\n case 'ArrowUp':\n return SELECTION_DIRECTION.UP;\n case 'ArrowLeft':\n return SELECTION_DIRECTION.LEFT;\n case 'ArrowRight':\n return SELECTION_DIRECTION.RIGHT;\n default:\n return undefined;\n }\n};\n\nexport function CellInputField({\n selectionRange = undefined,\n className = '',\n disabled = false,\n value: propsValue = '',\n isQuickEdit: propsIsQuickEdit = true,\n onChange = () => undefined,\n onCancel = () => undefined,\n onDone = () => undefined,\n onContextMenu = () => undefined,\n style = {},\n}: CellInputFieldProps): JSX.Element {\n const inputField = useRef<HTMLTextAreaElement>(null);\n // Use a ref for `isCancelled` as we need to know when it's cancelled after it's called by the event handlers as well\n const isCancelled = useRef<boolean>(false);\n const [initialValue] = useState(propsValue);\n const [isChanged, setIsChanged] = useState(false);\n const [isQuickEdit, setIsQuickEdit] = useState(propsIsQuickEdit);\n const [value, setValue] = useState(propsValue);\n\n // Init field selection\n useEffect(\n function selectInputField() {\n const { current: field } = inputField;\n if (field == null) {\n return;\n }\n\n field.focus();\n if (selectionRange) {\n field.setSelectionRange(selectionRange[0], selectionRange[1]);\n } else {\n field.setSelectionRange(field.value.length, field.value.length);\n }\n },\n [selectionRange]\n );\n\n const sendUpdate = useCallback(\n (newValue: string) => {\n onChange(newValue);\n },\n [onChange]\n );\n\n const handleChange = useCallback(\n (event: React.ChangeEvent<HTMLTextAreaElement>) => {\n const { value: newValue } = event.target;\n setValue(newValue);\n setIsChanged(true);\n sendUpdate(newValue);\n },\n [sendUpdate, setValue, setIsChanged]\n );\n\n const handleCancel = useCallback(() => {\n isCancelled.current = true;\n if (isChanged) {\n sendUpdate(initialValue);\n }\n\n setIsChanged(false);\n onCancel();\n }, [initialValue, isChanged, onCancel, sendUpdate]);\n\n const handleClick = useCallback(() => {\n setIsQuickEdit(false);\n }, [setIsQuickEdit]);\n\n const handleCommit = useCallback(\n (direction?: SELECTION_DIRECTION | null, fillRange = false) => {\n onDone(value, { direction, fillRange });\n },\n [onDone, value]\n );\n\n const handleBlur = useCallback(() => {\n if (isCancelled.current) {\n return;\n }\n\n handleCommit(null);\n }, [isCancelled, handleCommit]);\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLTextAreaElement>) => {\n event.stopPropagation();\n\n switch (event.key) {\n case 'Escape':\n event.preventDefault();\n handleCancel();\n break;\n case 'Enter':\n event.preventDefault();\n if (GridUtils.isModifierKeyDown(event)) {\n handleCommit(undefined, true);\n } else if (event.altKey) {\n const newValue = `${value}\\n`;\n setValue(newValue);\n setIsChanged(true);\n sendUpdate(newValue);\n } else {\n handleCommit(\n event.shiftKey ? SELECTION_DIRECTION.UP : SELECTION_DIRECTION.DOWN\n );\n }\n break;\n case 'Tab':\n event.preventDefault();\n handleCommit(\n event.shiftKey\n ? SELECTION_DIRECTION.LEFT\n : SELECTION_DIRECTION.RIGHT\n );\n break;\n case 'ArrowDown':\n case 'ArrowUp':\n case 'ArrowLeft':\n case 'ArrowRight':\n if (isQuickEdit) {\n event.preventDefault();\n handleCommit(directionForKey(event.key));\n }\n break;\n default:\n break;\n }\n },\n [\n handleCancel,\n handleCommit,\n isQuickEdit,\n setValue,\n setIsChanged,\n sendUpdate,\n value,\n ]\n );\n\n const handleContextMenu = useCallback(\n (event: React.MouseEvent<HTMLTextAreaElement, MouseEvent>) => {\n onContextMenu(event);\n },\n [onContextMenu]\n );\n\n return (\n <textarea\n ref={inputField}\n className={classNames('grid-cell-input-field', className)}\n value={value}\n onBlur={handleBlur}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onContextMenu={handleContextMenu}\n onClick={handleClick}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n disabled={disabled}\n style={style}\n />\n );\n}\n\nCellInputField.propTypes = {\n selectionRange: PropTypes.arrayOf(PropTypes.number),\n className: PropTypes.string,\n disabled: PropTypes.bool,\n isQuickEdit: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func,\n onCancel: PropTypes.func,\n onDone: PropTypes.func,\n onContextMenu: PropTypes.func,\n style: PropTypes.shape({}),\n};\n\nCellInputField.defaultProps = {\n selectionRange: null,\n className: '',\n disabled: false,\n value: '',\n isQuickEdit: true,\n onChange: () => undefined,\n onCancel: () => undefined,\n onDone: () => undefined,\n onContextMenu: () => undefined,\n style: {},\n};\n\nexport default CellInputField;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,SAAS,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACvE,OAAOC,SAAS,MAAM,YAAY;AAClC,OAAOC,UAAU,MAAM,YAAY;AAAC,SAC3BC,mBAAmB;AAAA,OACrBC,SAAS;AAAA;AAsBhB,IAAMC,eAAe,GAAIC,GAAW,IAAsC;EACxE,QAAQA,GAAG;IACT,KAAK,WAAW;MACd,OAAOH,mBAAmB,CAACI,IAAI;IACjC,KAAK,SAAS;MACZ,OAAOJ,mBAAmB,CAACK,EAAE;IAC/B,KAAK,WAAW;MACd,OAAOL,mBAAmB,CAACM,IAAI;IACjC,KAAK,YAAY;MACf,OAAON,mBAAmB,CAACO,KAAK;IAClC;MACE,OAAOC,SAAS;EAAC;AAEvB,CAAC;AAED,OAAO,SAASC,cAAc,OAWO;EAAA,IAXN;IAC7BC,cAAc,GAAGF,SAAS;IAC1BG,SAAS,GAAG,EAAE;IACdC,QAAQ,GAAG,KAAK;IAChBC,KAAK,EAAEC,UAAU,GAAG,EAAE;IACtBC,WAAW,EAAEC,gBAAgB,GAAG,IAAI;IACpCC,QAAQ,GAAG,MAAMT,SAAS;IAC1BU,QAAQ,GAAG,MAAMV,SAAS;IAC1BW,MAAM,GAAG,MAAMX,SAAS;IACxBY,aAAa,GAAG,MAAMZ,SAAS;IAC/Ba,KAAK,GAAG,CAAC;EACU,CAAC;EACpB,IAAMC,UAAU,GAAG1B,MAAM,CAAsB,IAAI,CAAC;EACpD;EACA,IAAM2B,WAAW,GAAG3B,MAAM,CAAU,KAAK,CAAC;EAC1C,IAAM,CAAC4B,YAAY,CAAC,GAAG3B,QAAQ,CAACiB,UAAU,CAAC;EAC3C,IAAM,CAACW,SAAS,EAAEC,YAAY,CAAC,GAAG7B,QAAQ,CAAC,KAAK,CAAC;EACjD,IAAM,CAACkB,WAAW,EAAEY,cAAc,CAAC,GAAG9B,QAAQ,CAACmB,gBAAgB,CAAC;EAChE,IAAM,CAACH,KAAK,EAAEe,QAAQ,CAAC,GAAG/B,QAAQ,CAACiB,UAAU,CAAC;;EAE9C;EACAnB,SAAS,CACP,SAASkC,gBAAgB,GAAG;IAC1B,IAAM;MAAEC,OAAO,EAAEC;IAAM,CAAC,GAAGT,UAAU;IACrC,IAAIS,KAAK,IAAI,IAAI,EAAE;MACjB;IACF;IAEAA,KAAK,CAACC,KAAK,EAAE;IACb,IAAItB,cAAc,EAAE;MAClBqB,KAAK,CAACE,iBAAiB,CAACvB,cAAc,CAAC,CAAC,CAAC,EAAEA,cAAc,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC,MAAM;MACLqB,KAAK,CAACE,iBAAiB,CAACF,KAAK,CAAClB,KAAK,CAACqB,MAAM,EAAEH,KAAK,CAAClB,KAAK,CAACqB,MAAM,CAAC;IACjE;EACF,CAAC,EACD,CAACxB,cAAc,CAAC,CACjB;EAED,IAAMyB,UAAU,GAAGzC,WAAW,CAC3B0C,QAAgB,IAAK;IACpBnB,QAAQ,CAACmB,QAAQ,CAAC;EACpB,CAAC,EACD,CAACnB,QAAQ,CAAC,CACX;EAED,IAAMoB,YAAY,GAAG3C,WAAW,CAC7B4C,KAA6C,IAAK;IACjD,IAAM;MAAEzB,KAAK,EAAEuB;IAAS,CAAC,GAAGE,KAAK,CAACC,MAAM;IACxCX,QAAQ,CAACQ,QAAQ,CAAC;IAClBV,YAAY,CAAC,IAAI,CAAC;IAClBS,UAAU,CAACC,QAAQ,CAAC;EACtB,CAAC,EACD,CAACD,UAAU,EAAEP,QAAQ,EAAEF,YAAY,CAAC,CACrC;EAED,IAAMc,YAAY,GAAG9C,WAAW,CAAC,MAAM;IACrC6B,WAAW,CAACO,OAAO,GAAG,IAAI;IAC1B,IAAIL,SAAS,EAAE;MACbU,UAAU,CAACX,YAAY,CAAC;IAC1B;IAEAE,YAAY,CAAC,KAAK,CAAC;IACnBR,QAAQ,EAAE;EACZ,CAAC,EAAE,CAACM,YAAY,EAAEC,SAAS,EAAEP,QAAQ,EAAEiB,UAAU,CAAC,CAAC;EAEnD,IAAMM,WAAW,GAAG/C,WAAW,CAAC,MAAM;IACpCiC,cAAc,CAAC,KAAK,CAAC;EACvB,CAAC,EAAE,CAACA,cAAc,CAAC,CAAC;EAEpB,IAAMe,YAAY,GAAGhD,WAAW,CAC9B,UAACiD,SAAsC,EAAwB;IAAA,IAAtBC,SAAS,uEAAG,KAAK;IACxDzB,MAAM,CAACN,KAAK,EAAE;MAAE8B,SAAS;MAAEC;IAAU,CAAC,CAAC;EACzC,CAAC,EACD,CAACzB,MAAM,EAAEN,KAAK,CAAC,CAChB;EAED,IAAMgC,UAAU,GAAGnD,WAAW,CAAC,MAAM;IACnC,IAAI6B,WAAW,CAACO,OAAO,EAAE;MACvB;IACF;IAEAY,YAAY,CAAC,IAAI,CAAC;EACpB,CAAC,EAAE,CAACnB,WAAW,EAAEmB,YAAY,CAAC,CAAC;EAE/B,IAAMI,aAAa,GAAGpD,WAAW,CAC9B4C,KAA+C,IAAK;IACnDA,KAAK,CAACS,eAAe,EAAE;IAEvB,QAAQT,KAAK,CAACnC,GAAG;MACf,KAAK,QAAQ;QACXmC,KAAK,CAACU,cAAc,EAAE;QACtBR,YAAY,EAAE;QACd;MACF,KAAK,OAAO;QACVF,KAAK,CAACU,cAAc,EAAE;QACtB,IAAI/C,SAAS,CAACgD,iBAAiB,CAACX,KAAK,CAAC,EAAE;UACtCI,YAAY,CAAClC,SAAS,EAAE,IAAI,CAAC;QAC/B,CAAC,MAAM,IAAI8B,KAAK,CAACY,MAAM,EAAE;UACvB,IAAMd,QAAQ,aAAMvB,KAAK,OAAI;UAC7Be,QAAQ,CAACQ,QAAQ,CAAC;UAClBV,YAAY,CAAC,IAAI,CAAC;UAClBS,UAAU,CAACC,QAAQ,CAAC;QACtB,CAAC,MAAM;UACLM,YAAY,CACVJ,KAAK,CAACa,QAAQ,GAAGnD,mBAAmB,CAACK,EAAE,GAAGL,mBAAmB,CAACI,IAAI,CACnE;QACH;QACA;MACF,KAAK,KAAK;QACRkC,KAAK,CAACU,cAAc,EAAE;QACtBN,YAAY,CACVJ,KAAK,CAACa,QAAQ,GACVnD,mBAAmB,CAACM,IAAI,GACxBN,mBAAmB,CAACO,KAAK,CAC9B;QACD;MACF,KAAK,WAAW;MAChB,KAAK,SAAS;MACd,KAAK,WAAW;MAChB,KAAK,YAAY;QACf,IAAIQ,WAAW,EAAE;UACfuB,KAAK,CAACU,cAAc,EAAE;UACtBN,YAAY,CAACxC,eAAe,CAACoC,KAAK,CAACnC,GAAG,CAAC,CAAC;QAC1C;QACA;MACF;QACE;IAAM;EAEZ,CAAC,EACD,CACEqC,YAAY,EACZE,YAAY,EACZ3B,WAAW,EACXa,QAAQ,EACRF,YAAY,EACZS,UAAU,EACVtB,KAAK,CACN,CACF;EAED,IAAMuC,iBAAiB,GAAG1D,WAAW,CAClC4C,KAAwD,IAAK;IAC5DlB,aAAa,CAACkB,KAAK,CAAC;EACtB,CAAC,EACD,CAAClB,aAAa,CAAC,CAChB;EAED,oBACE;IACE,GAAG,EAAEE,UAAW;IAChB,SAAS,EAAEvB,UAAU,CAAC,uBAAuB,EAAEY,SAAS,CAAE;IAC1D,KAAK,EAAEE,KAAM;IACb,MAAM,EAAEgC,UAAW;IACnB,QAAQ,EAAER,YAAa;IACvB,SAAS,EAAES,aAAc;IACzB,aAAa,EAAEM,iBAAkB;IACjC,OAAO,EAAEX,WAAY;IACrB,YAAY,EAAC,KAAK;IAClB,WAAW,EAAC,KAAK;IACjB,cAAc,EAAC,KAAK;IACpB,UAAU,EAAC,OAAO;IAClB,QAAQ,EAAE7B,QAAS;IACnB,KAAK,EAAES;EAAM,EACb;AAEN;AAEAZ,cAAc,CAAC4C,SAAS,GAAG;EACzB3C,cAAc,EAAEZ,SAAS,CAACwD,OAAO,CAACxD,SAAS,CAACyD,MAAM,CAAC;EACnD5C,SAAS,EAAEb,SAAS,CAAC0D,MAAM;EAC3B5C,QAAQ,EAAEd,SAAS,CAAC2D,IAAI;EACxB1C,WAAW,EAAEjB,SAAS,CAAC2D,IAAI;EAC3B5C,KAAK,EAAEf,SAAS,CAAC0D,MAAM;EACvBvC,QAAQ,EAAEnB,SAAS,CAAC4D,IAAI;EACxBxC,QAAQ,EAAEpB,SAAS,CAAC4D,IAAI;EACxBvC,MAAM,EAAErB,SAAS,CAAC4D,IAAI;EACtBtC,aAAa,EAAEtB,SAAS,CAAC4D,IAAI;EAC7BrC,KAAK,EAAEvB,SAAS,CAAC6D,KAAK,CAAC,CAAC,CAAC;AAC3B,CAAC;AAEDlD,cAAc,CAACmD,YAAY,GAAG;EAC5BlD,cAAc,EAAE,IAAI;EACpBC,SAAS,EAAE,EAAE;EACbC,QAAQ,EAAE,KAAK;EACfC,KAAK,EAAE,EAAE;EACTE,WAAW,EAAE,IAAI;EACjBE,QAAQ,EAAE,MAAMT,SAAS;EACzBU,QAAQ,EAAE,MAAMV,SAAS;EACzBW,MAAM,EAAE,MAAMX,SAAS;EACvBY,aAAa,EAAE,MAAMZ,SAAS;EAC9Ba,KAAK,EAAE,CAAC;AACV,CAAC;AAED,eAAeZ,cAAc"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/grid",
3
- "version": "0.32.1-beta.1+362928f",
3
+ "version": "0.32.1-beta.6+e83d7c9",
4
4
  "description": "Deephaven React grid component",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -25,13 +25,13 @@
25
25
  "react": "^17.0.0"
26
26
  },
27
27
  "devDependencies": {
28
- "@deephaven/tsconfig": "^0.32.1-beta.1+362928f"
28
+ "@deephaven/tsconfig": "^0.32.1-beta.6+e83d7c9"
29
29
  },
30
30
  "files": [
31
31
  "dist"
32
32
  ],
33
33
  "dependencies": {
34
- "@deephaven/utils": "^0.32.1-beta.1+362928f",
34
+ "@deephaven/utils": "^0.32.1-beta.6+e83d7c9",
35
35
  "classnames": "^2.3.1",
36
36
  "color-convert": "^2.0.1",
37
37
  "event-target-shim": "^6.0.2",
@@ -44,5 +44,5 @@
44
44
  "publishConfig": {
45
45
  "access": "public"
46
46
  },
47
- "gitHead": "362928fbf9e5e1fdfcdb84748c38ed9d09acf599"
47
+ "gitHead": "e83d7c9f7265fc6402a347fa8826cef16ad3c93f"
48
48
  }