@deephaven/grid 0.16.1-beta.1 → 0.16.1-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CellInputField.js.map +1 -1
- package/dist/ColumnHeaderGroup.js.map +1 -1
- package/dist/EditableGridModel.js.map +1 -1
- package/dist/EventHandlerResult.js.map +1 -1
- package/dist/ExpandableGridModel.js.map +1 -1
- package/dist/Grid.js.map +1 -1
- package/dist/GridAxisRange.js.map +1 -1
- package/dist/GridColorUtils.js.map +1 -1
- package/dist/GridMetricCalculator.js.map +1 -1
- package/dist/GridMetrics.js.map +1 -1
- package/dist/GridModel.js.map +1 -1
- package/dist/GridMouseHandler.js.map +1 -1
- package/dist/GridRange.js.map +1 -1
- package/dist/GridRenderer.js.map +1 -1
- package/dist/GridTestUtils.js.map +1 -1
- package/dist/GridTheme.js.map +1 -1
- package/dist/GridUtils.js.map +1 -1
- package/dist/KeyHandler.js.map +1 -1
- package/dist/MockGridData.js.map +1 -1
- package/dist/MockGridModel.js.map +1 -1
- package/dist/MockTreeGridModel.js.map +1 -1
- package/dist/StaticDataGridModel.js.map +1 -1
- package/dist/ThemeContext.js.map +1 -1
- package/dist/ViewportDataGridModel.js.map +1 -1
- package/dist/errors/AssertionError.js.map +1 -1
- package/dist/errors/PasteError.js.map +1 -1
- package/dist/errors/assertIsDefined.js.map +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/key-handlers/EditKeyHandler.js.map +1 -1
- package/dist/key-handlers/PasteKeyHandler.js.map +1 -1
- package/dist/key-handlers/SelectionKeyHandler.js.map +1 -1
- package/dist/key-handlers/TreeKeyHandler.js.map +1 -1
- package/dist/key-handlers/index.js.map +1 -1
- package/dist/memoizeClear.js.map +1 -1
- package/dist/mouse-handlers/EditMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridColumnSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridHorizontalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowMoveMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridRowTreeMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridScrollBarCornerMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSelectionMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridSeparatorMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/GridVerticalScrollBarMouseHandler.js.map +1 -1
- package/dist/mouse-handlers/index.js.map +1 -1
- package/package.json +3 -3
|
@@ -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","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"}
|
|
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 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"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ColumnHeaderGroup.js","names":[],"sources":["../src/ColumnHeaderGroup.ts"],"sourcesContent":["import { MoveOperation } from './GridMetrics';\nimport { BoundedAxisRange } from './GridAxisRange';\n\nexport interface IColumnHeaderGroup {\n name: string;\n depth: number;\n color?: string;\n getVisibleRange(movedColumns: MoveOperation[]): BoundedAxisRange;\n}\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"EditableGridModel.js","names":["AssertionError","isEditableGridModel","model","isEditable","undefined","assertIsEditableGridModel"],"sources":["../src/EditableGridModel.ts"],"sourcesContent":["import GridRange from './GridRange';\nimport { ModelIndex } from './GridMetrics';\nimport GridModel from './GridModel';\nimport { AssertionError } from './errors';\n\nexport function isEditableGridModel(\n model: GridModel\n): model is EditableGridModel {\n return (model as EditableGridModel)?.isEditable !== undefined;\n}\n\nexport function assertIsEditableGridModel(\n model: GridModel\n): asserts model is EditableGridModel {\n if (!isEditableGridModel(model)) {\n throw new AssertionError(\n `Expected 'model' to be editable, but received ${model}`\n );\n }\n}\n\n/**\n * Edit operation when applying multiple edits\n */\nexport type EditOperation = {\n /** Column to set the value for */\n column: ModelIndex;\n\n /** Row to set the value for */\n row: ModelIndex;\n\n /** Text value to set */\n text: string;\n\n /** @deprecated use `column` instead */\n x?: ModelIndex;\n /** @deprecated use `row` instead */\n y?: ModelIndex;\n};\n\n/**\n * Model for an editable grid\n */\nexport interface EditableGridModel extends GridModel {\n isEditable: boolean;\n\n /**\n * Check if a given range is editable\n * @param range The range to check if it is editable\n * @returns True if the range is editable\n */\n isEditableRange(range: GridRange): boolean;\n\n /**\n * Get the edit text for a cell as a string\n * @param column Column to get\n * @param row Row to get\n * @returns The value to use for editing\n */\n editValueForCell(column: ModelIndex, row: ModelIndex): string;\n\n /**\n * Set value in an editable table\n * @param column Column to set\n * @param row Row to set\n * @param value The value to set\n * @returns A promise that resolves successfully when the operation is complete, or rejects if there's an error\n */\n setValueForCell(\n column: ModelIndex,\n row: ModelIndex,\n value: string\n ): Promise<void>;\n\n /**\n * Set value in an editable table\n * @param ranges The ranges to set\n * @param value The value to set\n * @returns A promise that resolves successfully when the operation is complete, or rejects if there's an error\n */\n setValueForRanges(ranges: GridRange[], value: string): Promise<void>;\n\n /**\n * Apply edits to the model\n * @param edits Edits to apply to the model\n * @returns A promise that resolves successfully when the operation is complete or rejects if there's an error\n */\n setValues(edits: EditOperation[]): Promise<void>;\n\n /**\n * Check if a text value is a valid edit for a cell\n * @param column Column to check\n * @param row Row to check\n * @param value Value to check if it's a valid value or not\n * @returns True if it's a valid value, false otherwise\n */\n isValidForCell(column: ModelIndex, row: ModelIndex, value: string): boolean;\n}\n\nexport default EditableGridModel;\n"],"mappings":"SAGSA,c;AAET,OAAO,SAASC,mBAAT,CACLC,KADK,EAEuB;EAC5B,OAAO,CAACA,KAAD,aAACA,KAAD,uBAACA,KAAD,CAA8BC,UAA9B,MAA6CC,SAApD;AACD;AAED,OAAO,SAASC,yBAAT,CACLH,KADK,EAE+B;EACpC,IAAI,CAACD,mBAAmB,CAACC,KAAD,CAAxB,EAAiC;IAC/B,MAAM,IAAIF,cAAJ,yDAC6CE,KAD7C,EAAN;EAGD;AACF;AAED;AACA;AACA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"EventHandlerResult.js","names":[],"sources":["../src/EventHandlerResult.ts"],"sourcesContent":["/**\n * An options object can be returned as the result to control\n * if event.stopPropagation() and event.preventDefault() should be called\n */\nexport type EventHandlerResultOptions = {\n stopPropagation?: boolean;\n preventDefault?: boolean;\n};\n\n/**\n * Result from the event handler for an event.\n * Return one of the following:\n * - `false` if the event was not consumed and should be passed to other registered grid event handlers\n * - `true` to stop the event from being passed along to other registered grid event handlers, as well as call event.stopPropagation() and event.preventDefault()\n * - An `EventHandlerResultOptions` object to stop the event from being passed along to other registered grid event handlers, and decide whether to call event.stopPropagation() and/or event.preventDefault()\n */\nexport type EventHandlerResult = boolean | EventHandlerResultOptions;\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"ExpandableGridModel.js","names":["isExpandableGridModel","model","hasExpandableRows","undefined"],"sources":["../src/ExpandableGridModel.ts"],"sourcesContent":["import GridModel from './GridModel';\nimport { ModelIndex } from './GridMetrics';\n\nexport function isExpandableGridModel(\n model: GridModel\n): model is ExpandableGridModel {\n return (model as ExpandableGridModel)?.hasExpandableRows !== undefined;\n}\n\n/**\n * Expandable grid model. Allows for a grid with rows that can expand (e.g. A Tree Table)\n */\nexport interface ExpandableGridModel extends GridModel {\n /** Whether the grid has rows that can be expanded */\n hasExpandableRows: boolean;\n\n /**\n * @param row Row to check\n * @returns True if the row is expandable\n */\n isRowExpandable(row: ModelIndex): boolean;\n\n /**\n * @param row Row to check\n * @returns True if the row is currently expanded\n */\n isRowExpanded(row: ModelIndex): boolean;\n\n /**\n * Change the expanded status of an expandable row\n * @param row Row to expand\n * @param isExpanded True to expand the row, false to collapse\n */\n setRowExpanded(row: ModelIndex, isExpanded: boolean): void;\n\n /**\n * Get the depth of a row (ie. How indented the row should be)\n * @param row Row to check\n * @returns Depth of the row\n */\n depthForRow(row: ModelIndex): number;\n}\n\nexport default ExpandableGridModel;\n"],"mappings":"AAGA,OAAO,SAASA,qBAAT,CACLC,KADK,EAEyB;EAC9B,OAAO,CAACA,KAAD,aAACA,KAAD,uBAACA,KAAD,CAAgCC,iBAAhC,MAAsDC,SAA7D;AACD;AAED;AACA;AACA"}
|