@deephaven/grid 0.11.10-beta.0 → 0.11.10-beta.1
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.
|
@@ -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,oBAAY,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,eAAO,MAAM,cAAc;mJAWxB,mBAAmB,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
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,oBAAY,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,eAAO,MAAM,cAAc;mJAWxB,mBAAmB,GAAG,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;CA0JnC,CAAC;AA4BF,eAAe,cAAc,CAAC"}
|
package/dist/CellInputField.js
CHANGED
|
@@ -43,7 +43,7 @@ export var CellInputField = _ref => {
|
|
|
43
43
|
var [isQuickEdit, setIsQuickEdit] = useState(propsIsQuickEdit);
|
|
44
44
|
var [value, setValue] = useState(propsValue); // Init field selection
|
|
45
45
|
|
|
46
|
-
useEffect(()
|
|
46
|
+
useEffect(function selectInputField() {
|
|
47
47
|
var {
|
|
48
48
|
current: field
|
|
49
49
|
} = inputField;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/CellInputField.tsx"],"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","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"],"mappings":"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","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 const 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 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 }, [selectionRange]);\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"],"file":"CellInputField.js"}
|
|
1
|
+
{"version":3,"sources":["../src/CellInputField.tsx"],"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"],"mappings":"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","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 const 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"],"file":"CellInputField.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/grid",
|
|
3
|
-
"version": "0.11.10-beta.
|
|
3
|
+
"version": "0.11.10-beta.1+981349f",
|
|
4
4
|
"description": "Deephaven React grid component",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"react": "^17.0.0"
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
|
-
"@deephaven/tsconfig": "^0.11.10-beta.
|
|
36
|
+
"@deephaven/tsconfig": "^0.11.10-beta.1+981349f"
|
|
37
37
|
},
|
|
38
38
|
"files": [
|
|
39
39
|
"dist"
|
|
@@ -50,5 +50,5 @@
|
|
|
50
50
|
"publishConfig": {
|
|
51
51
|
"access": "public"
|
|
52
52
|
},
|
|
53
|
-
"gitHead": "
|
|
53
|
+
"gitHead": "981349fbbde1dcacd9a5f4ac1386d08c2c3da371"
|
|
54
54
|
}
|