@deephaven/iris-grid 0.84.0 → 0.84.1-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/GotoRow.d.ts.map +1 -1
- package/dist/GotoRow.js +2 -4
- package/dist/GotoRow.js.map +1 -1
- package/dist/IrisGridProxyModel.d.ts +10 -116
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +42 -369
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/package.json +15 -15
package/dist/GotoRow.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GotoRow.d.ts","sourceRoot":"","sources":["../src/GotoRow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EACZ,WAAW,EASZ,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,SAAS,IAAI,eAAe,EAC7B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,gBAAgB,CAAC;AAExB,OAAO,aAAa,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"GotoRow.d.ts","sourceRoot":"","sources":["../src/GotoRow.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EACZ,WAAW,EASZ,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,SAAS,IAAI,eAAe,EAC7B,MAAM,oBAAoB,CAAC;AAI5B,OAAO,gBAAgB,CAAC;AAExB,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,UAAU,YAAY;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,KAAK,EAAE,aAAa,CAAC;IACrB,sBAAsB,EAAE,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;IACvE,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;IAErB,2BAA2B,EAAE,UAAU,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,eAAe,CAAC;IACjC,oCAAoC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IACvE,gCAAgC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,CAAC;IACpE,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,iBAAiB,EAAE,CAAC,UAAU,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACnD;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,KAAK,EAAE,MAAM,IAAI,CAAA;CAAE,CAAC;AAEnD,QAAA,MAAM,OAAO,qFAmWZ,CAAC;AAGF,eAAe,OAAO,CAAC"}
|
package/dist/GotoRow.js
CHANGED
|
@@ -8,12 +8,10 @@ import classNames from 'classnames';
|
|
|
8
8
|
import "./GotoRow.css";
|
|
9
9
|
import { nanoid } from 'nanoid';
|
|
10
10
|
import IrisGridBottomBar from "./IrisGridBottomBar.js";
|
|
11
|
+
import { isIrisGridTableModelTemplate } from "./IrisGridTableModelTemplate.js";
|
|
11
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
12
13
|
import { jsxs as _jsxs } from "react/jsx-runtime";
|
|
13
14
|
import { Fragment as _Fragment } from "react/jsx-runtime";
|
|
14
|
-
function isIrisGridProxyModel(model) {
|
|
15
|
-
return model.model !== undefined;
|
|
16
|
-
}
|
|
17
15
|
var DEFAULT_FORMAT_STRING = '###,##0';
|
|
18
16
|
var GotoRow = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
19
17
|
var {
|
|
@@ -41,7 +39,7 @@ var GotoRow = /*#__PURE__*/forwardRef((_ref, ref) => {
|
|
|
41
39
|
var gotoValueInputRef = useRef(null);
|
|
42
40
|
var [isGotoRowActive, setIsGotoRowActive] = useState(false);
|
|
43
41
|
var columns = [];
|
|
44
|
-
if (
|
|
42
|
+
if (isIrisGridTableModelTemplate(model)) {
|
|
45
43
|
({
|
|
46
44
|
columns
|
|
47
45
|
} = model.table);
|
package/dist/GotoRow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GotoRow.js","names":["FontAwesomeIcon","vsClose","vsArrowUp","vsArrowDown","React","forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","Type","FilterType","Button","DateTimeInput","Select","TableUtils","classNames","nanoid","IrisGridBottomBar","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","isIrisGridProxyModel","model","undefined","DEFAULT_FORMAT_STRING","GotoRow","_ref","ref","gotoRow","gotoRowError","gotoValueError","onGotoRowSubmit","isShown","onEntering","onEntered","onExiting","onExited","onGotoRowNumberChanged","onClose","gotoValueSelectedColumnName","gotoValue","gotoValueFilter","onGotoValueSelectedColumnNameChanged","onGotoValueSelectedFilterChanged","onGotoValueChanged","onGotoValueSubmit","gotoRowInputRef","gotoValueInputRef","isGotoRowActive","setIsGotoRowActive","columns","table","dh","rowCount","gotoRowInputId","concat","handleGotoValueNumberKeyDown","e","key","stopPropagation","preventDefault","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","onGotoValueInputChanged","handleGotoValueKeySubmit","shiftKey","index","getColumnIndexByName","selectedColumn","columnType","type","normalizedType","getNormalizedType","value","focus","_gotoRowInputRef$curr","current","select","selectInput","document","activeElement","_gotoRowInputRef$curr2","_gotoValueInputRef$cu","renderValueInput","dataType","DECIMAL","INT","className","children","onKeyDown","placeholder","onChange","target","toLowerCase","test","DATETIME","defaultValue","onSubmit","STRING","eventTargetValue","eqIgnoreCase","containsIgnoreCase","eq","contains","BOOLEAN","onClick","onFocus","role","htmlFor","event","id","i18n","NumberFormat","format","kind","icon","style","marginRight","isSeekRowAvailable","columnName","map","column","name","tooltip","disabled","displayName"],"sources":["../src/GotoRow.tsx"],"sourcesContent":["import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsClose, vsArrowUp, vsArrowDown } from '@deephaven/icons';\nimport React, {\n ChangeEvent,\n KeyboardEvent,\n ReactElement,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n Type as FilterType,\n TypeValue as FilterTypeValue,\n} from '@deephaven/filters';\nimport { Button, DateTimeInput, Select } from '@deephaven/components';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport classNames from 'classnames';\nimport './GotoRow.scss';\nimport { nanoid } from 'nanoid';\nimport IrisGridModel from './IrisGridModel';\nimport IrisGridProxyModel from './IrisGridProxyModel';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport { ColumnName } from './CommonTypes';\n\nfunction isIrisGridProxyModel(\n model: IrisGridModel\n): model is IrisGridProxyModel {\n return (model as IrisGridProxyModel).model !== undefined;\n}\n\nconst DEFAULT_FORMAT_STRING = '###,##0';\n\ninterface GotoRowProps {\n gotoRow: string;\n gotoRowError: string;\n gotoValueError: string;\n onGotoRowSubmit: () => void;\n model: IrisGridModel;\n onGotoRowNumberChanged: (event: ChangeEvent<HTMLInputElement>) => void;\n onClose: () => void;\n isShown: boolean;\n onEntering: () => void;\n onEntered: () => void;\n onExiting: () => void;\n onExited: () => void;\n\n gotoValueSelectedColumnName: ColumnName;\n gotoValue: string;\n gotoValueFilter: FilterTypeValue;\n onGotoValueSelectedColumnNameChanged: (columnName: ColumnName) => void;\n onGotoValueSelectedFilterChanged: (filter: FilterTypeValue) => void;\n onGotoValueChanged: (input: string) => void;\n onGotoValueSubmit: (isBackward?: boolean) => void;\n}\n\nexport type GotoRowElement = { focus: () => void };\n\nconst GotoRow = forwardRef<GotoRowElement, GotoRowProps>(\n (\n {\n gotoRow,\n gotoRowError,\n gotoValueError,\n onGotoRowSubmit,\n isShown,\n onEntering,\n onEntered,\n onExiting,\n onExited,\n model,\n onGotoRowNumberChanged,\n onClose,\n gotoValueSelectedColumnName,\n gotoValue,\n gotoValueFilter,\n onGotoValueSelectedColumnNameChanged,\n onGotoValueSelectedFilterChanged,\n onGotoValueChanged,\n onGotoValueSubmit,\n }: GotoRowProps,\n ref\n ): ReactElement => {\n const gotoRowInputRef = useRef<HTMLInputElement>(null);\n const gotoValueInputRef = useRef<HTMLInputElement>(null);\n\n const [isGotoRowActive, setIsGotoRowActive] = useState(false);\n let columns: dh.Column[] = [];\n\n if (isIrisGridProxyModel(model) && model.table !== undefined) {\n ({ columns } = model.table);\n }\n\n const { dh, rowCount } = model;\n\n const gotoRowInputId = useMemo(() => `goto-row-input-${nanoid()}`, []);\n\n const handleGotoValueNumberKeyDown = (\n e: KeyboardEvent<HTMLInputElement>\n ): void => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoValueSubmit();\n } else if (\n (e.key === 'Backspace' || e.key === 'Delete') &&\n (gotoValue === `${Number.POSITIVE_INFINITY}` ||\n gotoValue === `${Number.NEGATIVE_INFINITY}`)\n ) {\n onGotoValueInputChanged('');\n }\n };\n\n const handleGotoValueKeySubmit = (\n e: KeyboardEvent<HTMLInputElement>\n ): void => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoValueSubmit(e.shiftKey);\n }\n };\n\n const index = model.getColumnIndexByName(gotoValueSelectedColumnName);\n\n const selectedColumn = columns[index ?? 0];\n\n const columnType = selectedColumn?.type;\n\n const normalizedType = TableUtils.getNormalizedType(columnType);\n const onGotoValueInputChanged = (value?: string): void => {\n onGotoValueChanged(value ?? '');\n };\n useImperativeHandle(ref, () => ({\n focus(): void {\n setIsGotoRowActive(true);\n gotoRowInputRef.current?.select();\n },\n }));\n const selectInput = (): void => {\n // when row changes without focus (i.e. via context menu), re-select input\n if (\n isGotoRowActive &&\n document.activeElement !== gotoRowInputRef.current\n ) {\n gotoRowInputRef.current?.select();\n } else if (\n !isGotoRowActive &&\n document.activeElement !== gotoValueInputRef.current\n ) {\n gotoValueInputRef.current?.select();\n }\n };\n useEffect(selectInput, [isGotoRowActive]);\n\n const renderValueInput = (): JSX.Element => {\n switch (normalizedType) {\n case TableUtils.dataType.DECIMAL:\n case TableUtils.dataType.INT:\n return (\n <div className=\"goto-row-input\">\n <input\n ref={gotoValueInputRef}\n className={classNames('form-control', {\n 'is-invalid': gotoValueError !== '',\n })}\n onKeyDown={handleGotoValueNumberKeyDown}\n placeholder=\"value\"\n onChange={e => {\n const value = e.target.value.toLowerCase();\n // regex tests for\n if (/^-?[0-9]*\\.?[0-9]*$/.test(e.target.value)) {\n onGotoValueInputChanged(e.target.value);\n } else if (value === '-i' || value === '-infinity') {\n onGotoValueInputChanged(`${Number.NEGATIVE_INFINITY}`);\n } else if (value === 'i' || value === 'infinity') {\n onGotoValueInputChanged(`${Number.POSITIVE_INFINITY}`);\n }\n }}\n value={gotoValue}\n aria-label=\"Value Input\"\n />\n </div>\n );\n case TableUtils.dataType.DATETIME:\n return (\n <div className=\"goto-value-date-time-input\">\n <DateTimeInput\n ref={gotoValueInputRef}\n className={classNames(\n 'form-control',\n 'goto-value-date-time-input',\n {\n 'is-invalid': gotoValueError !== '',\n }\n )}\n defaultValue={gotoValue}\n onChange={onGotoValueInputChanged}\n onSubmit={handleGotoValueKeySubmit}\n aria-label=\"Value Input\"\n />\n </div>\n );\n case TableUtils.dataType.STRING:\n return (\n <>\n <div className=\"goto-row-input\">\n <Select\n className=\"custom-select\"\n onChange={eventTargetValue => {\n onGotoValueSelectedFilterChanged(\n eventTargetValue as FilterTypeValue\n );\n }}\n value={gotoValueFilter}\n aria-label=\"filter-type-select\"\n >\n <option\n key={FilterType.eqIgnoreCase}\n value={FilterType.eqIgnoreCase}\n >\n Equals (case-insensitive)\n </option>\n <option\n key={FilterType.containsIgnoreCase}\n value={FilterType.containsIgnoreCase}\n >\n Contains (case-insensitive)\n </option>\n <option key={FilterType.eq} value={FilterType.eq}>\n Equals\n </option>\n <option key={FilterType.contains} value={FilterType.contains}>\n Contains\n </option>\n </Select>\n </div>\n <div className=\"goto-row-input\">\n <input\n ref={gotoValueInputRef}\n className={classNames('form-control', {\n 'is-invalid': gotoValueError !== '',\n })}\n onKeyDown={handleGotoValueKeySubmit}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\n aria-label=\"Value Input\"\n />\n </div>\n </>\n );\n case TableUtils.dataType.BOOLEAN:\n return (\n <div className=\"goto-row-input\">\n <Select\n className=\"custom-select\"\n onChange={eventTargetValue => {\n onGotoValueInputChanged(eventTargetValue);\n }}\n value={gotoValue}\n aria-label=\"Value Input\"\n >\n <option aria-label=\"null value\" key=\"null\" value=\"\" />\n <option key=\"true\" value=\"true\">\n true\n </option>\n <option key=\"false\" value=\"false\">\n false\n </option>\n </Select>\n </div>\n );\n default:\n return (\n <div className=\"goto-row-input\">\n <input\n ref={gotoValueInputRef}\n className=\"form-control\"\n onKeyDown={handleGotoValueKeySubmit}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\n aria-label=\"Value Input\"\n />\n </div>\n );\n }\n };\n return (\n <IrisGridBottomBar\n isShown={isShown}\n className={classNames('goto-row')}\n onEntering={onEntering}\n onEntered={() => {\n onEntered();\n selectInput();\n }}\n onExiting={onExiting}\n onExited={onExited}\n >\n <>\n <div className=\"goto-row-row\">\n <div\n className={classNames('goto-row-wrapper', {\n 'is-inactive': !isGotoRowActive,\n })}\n onClick={() => setIsGotoRowActive(true)}\n onFocus={() => setIsGotoRowActive(true)}\n role=\"group\"\n >\n <label className=\"goto-row-text\" htmlFor={gotoRowInputId}>\n Go to row\n </label>\n <div className=\"goto-row-input\">\n <input\n ref={gotoRowInputRef}\n data-testid=\"goto-row-input\"\n type=\"number\"\n onKeyDown={e => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoRowSubmit();\n }\n }}\n className={classNames('form-control', {\n 'is-invalid': gotoRowError !== '',\n })}\n placeholder=\"Row number\"\n onChange={event => {\n onGotoRowNumberChanged(event);\n }}\n value={gotoRow}\n id={gotoRowInputId}\n />\n </div>\n <div className=\"goto-row-text\">\n of{' '}\n {dh.i18n.NumberFormat.format(DEFAULT_FORMAT_STRING, rowCount)}\n </div>\n {gotoRowError && (\n <div className=\"text-danger\">{gotoRowError}</div>\n )}\n </div>\n <div className=\"goto-row-close\">\n <Button kind=\"ghost\" onClick={onClose}>\n <FontAwesomeIcon icon={vsClose} style={{ marginRight: '0' }} />\n </Button>\n </div>\n </div>\n {model.isSeekRowAvailable && (\n <div className=\"goto-row-row\">\n <div\n className={classNames('goto-row-wrapper', {\n 'is-inactive': isGotoRowActive,\n })}\n onClick={() => setIsGotoRowActive(false)}\n onFocus={() => setIsGotoRowActive(false)}\n role=\"group\"\n >\n <div className=\"goto-row-text\">Go to value</div>\n <div className=\"goto-row-input\">\n <Select\n className=\"custom-select\"\n onChange={eventTargetValue => {\n const columnName = eventTargetValue;\n onGotoValueSelectedColumnNameChanged(columnName);\n }}\n value={gotoValueSelectedColumnName}\n aria-label=\"column-name-select\"\n id=\"column-name-select\"\n >\n {columns.map(column => (\n <option key={column.name} value={column.name}>\n {column.name}\n </option>\n ))}\n </Select>\n </div>\n\n {renderValueInput()}\n\n <div>\n <Button\n tooltip=\"Previous match\"\n icon={vsArrowUp}\n kind=\"ghost\"\n disabled={gotoValue === ''}\n onClick={() => {\n onGotoValueSubmit(true);\n }}\n />\n <Button\n tooltip=\"Next match\"\n icon={vsArrowDown}\n kind=\"ghost\"\n disabled={gotoValue === ''}\n onClick={() => {\n onGotoValueSubmit(false);\n }}\n />\n </div>\n {gotoValueError && (\n <div className=\"text-danger\">{gotoValueError}</div>\n )}\n </div>\n </div>\n )}\n </>\n </IrisGridBottomBar>\n );\n }\n);\nGotoRow.displayName = 'GotoRow';\n\nexport default GotoRow;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"GotoRow.js","names":["FontAwesomeIcon","vsClose","vsArrowUp","vsArrowDown","React","forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","Type","FilterType","Button","DateTimeInput","Select","TableUtils","classNames","nanoid","IrisGridBottomBar","isIrisGridTableModelTemplate","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","DEFAULT_FORMAT_STRING","GotoRow","_ref","ref","gotoRow","gotoRowError","gotoValueError","onGotoRowSubmit","isShown","onEntering","onEntered","onExiting","onExited","model","onGotoRowNumberChanged","onClose","gotoValueSelectedColumnName","gotoValue","gotoValueFilter","onGotoValueSelectedColumnNameChanged","onGotoValueSelectedFilterChanged","onGotoValueChanged","onGotoValueSubmit","gotoRowInputRef","gotoValueInputRef","isGotoRowActive","setIsGotoRowActive","columns","table","dh","rowCount","gotoRowInputId","concat","handleGotoValueNumberKeyDown","e","key","stopPropagation","preventDefault","Number","POSITIVE_INFINITY","NEGATIVE_INFINITY","onGotoValueInputChanged","handleGotoValueKeySubmit","shiftKey","index","getColumnIndexByName","selectedColumn","columnType","type","normalizedType","getNormalizedType","value","focus","_gotoRowInputRef$curr","current","select","selectInput","document","activeElement","_gotoRowInputRef$curr2","_gotoValueInputRef$cu","renderValueInput","dataType","DECIMAL","INT","className","children","onKeyDown","placeholder","onChange","target","toLowerCase","test","DATETIME","defaultValue","onSubmit","STRING","eventTargetValue","eqIgnoreCase","containsIgnoreCase","eq","contains","BOOLEAN","onClick","onFocus","role","htmlFor","event","id","i18n","NumberFormat","format","kind","icon","style","marginRight","isSeekRowAvailable","columnName","map","column","name","tooltip","disabled","displayName"],"sources":["../src/GotoRow.tsx"],"sourcesContent":["import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsClose, vsArrowUp, vsArrowDown } from '@deephaven/icons';\nimport React, {\n ChangeEvent,\n KeyboardEvent,\n ReactElement,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n Type as FilterType,\n TypeValue as FilterTypeValue,\n} from '@deephaven/filters';\nimport { Button, DateTimeInput, Select } from '@deephaven/components';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport classNames from 'classnames';\nimport './GotoRow.scss';\nimport { nanoid } from 'nanoid';\nimport IrisGridModel from './IrisGridModel';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport { ColumnName } from './CommonTypes';\nimport { isIrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\n\nconst DEFAULT_FORMAT_STRING = '###,##0';\n\ninterface GotoRowProps {\n gotoRow: string;\n gotoRowError: string;\n gotoValueError: string;\n onGotoRowSubmit: () => void;\n model: IrisGridModel;\n onGotoRowNumberChanged: (event: ChangeEvent<HTMLInputElement>) => void;\n onClose: () => void;\n isShown: boolean;\n onEntering: () => void;\n onEntered: () => void;\n onExiting: () => void;\n onExited: () => void;\n\n gotoValueSelectedColumnName: ColumnName;\n gotoValue: string;\n gotoValueFilter: FilterTypeValue;\n onGotoValueSelectedColumnNameChanged: (columnName: ColumnName) => void;\n onGotoValueSelectedFilterChanged: (filter: FilterTypeValue) => void;\n onGotoValueChanged: (input: string) => void;\n onGotoValueSubmit: (isBackward?: boolean) => void;\n}\n\nexport type GotoRowElement = { focus: () => void };\n\nconst GotoRow = forwardRef<GotoRowElement, GotoRowProps>(\n (\n {\n gotoRow,\n gotoRowError,\n gotoValueError,\n onGotoRowSubmit,\n isShown,\n onEntering,\n onEntered,\n onExiting,\n onExited,\n model,\n onGotoRowNumberChanged,\n onClose,\n gotoValueSelectedColumnName,\n gotoValue,\n gotoValueFilter,\n onGotoValueSelectedColumnNameChanged,\n onGotoValueSelectedFilterChanged,\n onGotoValueChanged,\n onGotoValueSubmit,\n }: GotoRowProps,\n ref\n ): ReactElement => {\n const gotoRowInputRef = useRef<HTMLInputElement>(null);\n const gotoValueInputRef = useRef<HTMLInputElement>(null);\n\n const [isGotoRowActive, setIsGotoRowActive] = useState(false);\n let columns: dh.Column[] = [];\n\n if (isIrisGridTableModelTemplate(model)) {\n ({ columns } = model.table);\n }\n\n const { dh, rowCount } = model;\n\n const gotoRowInputId = useMemo(() => `goto-row-input-${nanoid()}`, []);\n\n const handleGotoValueNumberKeyDown = (\n e: KeyboardEvent<HTMLInputElement>\n ): void => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoValueSubmit();\n } else if (\n (e.key === 'Backspace' || e.key === 'Delete') &&\n (gotoValue === `${Number.POSITIVE_INFINITY}` ||\n gotoValue === `${Number.NEGATIVE_INFINITY}`)\n ) {\n onGotoValueInputChanged('');\n }\n };\n\n const handleGotoValueKeySubmit = (\n e: KeyboardEvent<HTMLInputElement>\n ): void => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoValueSubmit(e.shiftKey);\n }\n };\n\n const index = model.getColumnIndexByName(gotoValueSelectedColumnName);\n\n const selectedColumn = columns[index ?? 0];\n\n const columnType = selectedColumn?.type;\n\n const normalizedType = TableUtils.getNormalizedType(columnType);\n const onGotoValueInputChanged = (value?: string): void => {\n onGotoValueChanged(value ?? '');\n };\n useImperativeHandle(ref, () => ({\n focus(): void {\n setIsGotoRowActive(true);\n gotoRowInputRef.current?.select();\n },\n }));\n const selectInput = (): void => {\n // when row changes without focus (i.e. via context menu), re-select input\n if (\n isGotoRowActive &&\n document.activeElement !== gotoRowInputRef.current\n ) {\n gotoRowInputRef.current?.select();\n } else if (\n !isGotoRowActive &&\n document.activeElement !== gotoValueInputRef.current\n ) {\n gotoValueInputRef.current?.select();\n }\n };\n useEffect(selectInput, [isGotoRowActive]);\n\n const renderValueInput = (): JSX.Element => {\n switch (normalizedType) {\n case TableUtils.dataType.DECIMAL:\n case TableUtils.dataType.INT:\n return (\n <div className=\"goto-row-input\">\n <input\n ref={gotoValueInputRef}\n className={classNames('form-control', {\n 'is-invalid': gotoValueError !== '',\n })}\n onKeyDown={handleGotoValueNumberKeyDown}\n placeholder=\"value\"\n onChange={e => {\n const value = e.target.value.toLowerCase();\n // regex tests for\n if (/^-?[0-9]*\\.?[0-9]*$/.test(e.target.value)) {\n onGotoValueInputChanged(e.target.value);\n } else if (value === '-i' || value === '-infinity') {\n onGotoValueInputChanged(`${Number.NEGATIVE_INFINITY}`);\n } else if (value === 'i' || value === 'infinity') {\n onGotoValueInputChanged(`${Number.POSITIVE_INFINITY}`);\n }\n }}\n value={gotoValue}\n aria-label=\"Value Input\"\n />\n </div>\n );\n case TableUtils.dataType.DATETIME:\n return (\n <div className=\"goto-value-date-time-input\">\n <DateTimeInput\n ref={gotoValueInputRef}\n className={classNames(\n 'form-control',\n 'goto-value-date-time-input',\n {\n 'is-invalid': gotoValueError !== '',\n }\n )}\n defaultValue={gotoValue}\n onChange={onGotoValueInputChanged}\n onSubmit={handleGotoValueKeySubmit}\n aria-label=\"Value Input\"\n />\n </div>\n );\n case TableUtils.dataType.STRING:\n return (\n <>\n <div className=\"goto-row-input\">\n <Select\n className=\"custom-select\"\n onChange={eventTargetValue => {\n onGotoValueSelectedFilterChanged(\n eventTargetValue as FilterTypeValue\n );\n }}\n value={gotoValueFilter}\n aria-label=\"filter-type-select\"\n >\n <option\n key={FilterType.eqIgnoreCase}\n value={FilterType.eqIgnoreCase}\n >\n Equals (case-insensitive)\n </option>\n <option\n key={FilterType.containsIgnoreCase}\n value={FilterType.containsIgnoreCase}\n >\n Contains (case-insensitive)\n </option>\n <option key={FilterType.eq} value={FilterType.eq}>\n Equals\n </option>\n <option key={FilterType.contains} value={FilterType.contains}>\n Contains\n </option>\n </Select>\n </div>\n <div className=\"goto-row-input\">\n <input\n ref={gotoValueInputRef}\n className={classNames('form-control', {\n 'is-invalid': gotoValueError !== '',\n })}\n onKeyDown={handleGotoValueKeySubmit}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\n aria-label=\"Value Input\"\n />\n </div>\n </>\n );\n case TableUtils.dataType.BOOLEAN:\n return (\n <div className=\"goto-row-input\">\n <Select\n className=\"custom-select\"\n onChange={eventTargetValue => {\n onGotoValueInputChanged(eventTargetValue);\n }}\n value={gotoValue}\n aria-label=\"Value Input\"\n >\n <option aria-label=\"null value\" key=\"null\" value=\"\" />\n <option key=\"true\" value=\"true\">\n true\n </option>\n <option key=\"false\" value=\"false\">\n false\n </option>\n </Select>\n </div>\n );\n default:\n return (\n <div className=\"goto-row-input\">\n <input\n ref={gotoValueInputRef}\n className=\"form-control\"\n onKeyDown={handleGotoValueKeySubmit}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\n aria-label=\"Value Input\"\n />\n </div>\n );\n }\n };\n return (\n <IrisGridBottomBar\n isShown={isShown}\n className={classNames('goto-row')}\n onEntering={onEntering}\n onEntered={() => {\n onEntered();\n selectInput();\n }}\n onExiting={onExiting}\n onExited={onExited}\n >\n <>\n <div className=\"goto-row-row\">\n <div\n className={classNames('goto-row-wrapper', {\n 'is-inactive': !isGotoRowActive,\n })}\n onClick={() => setIsGotoRowActive(true)}\n onFocus={() => setIsGotoRowActive(true)}\n role=\"group\"\n >\n <label className=\"goto-row-text\" htmlFor={gotoRowInputId}>\n Go to row\n </label>\n <div className=\"goto-row-input\">\n <input\n ref={gotoRowInputRef}\n data-testid=\"goto-row-input\"\n type=\"number\"\n onKeyDown={e => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoRowSubmit();\n }\n }}\n className={classNames('form-control', {\n 'is-invalid': gotoRowError !== '',\n })}\n placeholder=\"Row number\"\n onChange={event => {\n onGotoRowNumberChanged(event);\n }}\n value={gotoRow}\n id={gotoRowInputId}\n />\n </div>\n <div className=\"goto-row-text\">\n of{' '}\n {dh.i18n.NumberFormat.format(DEFAULT_FORMAT_STRING, rowCount)}\n </div>\n {gotoRowError && (\n <div className=\"text-danger\">{gotoRowError}</div>\n )}\n </div>\n <div className=\"goto-row-close\">\n <Button kind=\"ghost\" onClick={onClose}>\n <FontAwesomeIcon icon={vsClose} style={{ marginRight: '0' }} />\n </Button>\n </div>\n </div>\n {model.isSeekRowAvailable && (\n <div className=\"goto-row-row\">\n <div\n className={classNames('goto-row-wrapper', {\n 'is-inactive': isGotoRowActive,\n })}\n onClick={() => setIsGotoRowActive(false)}\n onFocus={() => setIsGotoRowActive(false)}\n role=\"group\"\n >\n <div className=\"goto-row-text\">Go to value</div>\n <div className=\"goto-row-input\">\n <Select\n className=\"custom-select\"\n onChange={eventTargetValue => {\n const columnName = eventTargetValue;\n onGotoValueSelectedColumnNameChanged(columnName);\n }}\n value={gotoValueSelectedColumnName}\n aria-label=\"column-name-select\"\n id=\"column-name-select\"\n >\n {columns.map(column => (\n <option key={column.name} value={column.name}>\n {column.name}\n </option>\n ))}\n </Select>\n </div>\n\n {renderValueInput()}\n\n <div>\n <Button\n tooltip=\"Previous match\"\n icon={vsArrowUp}\n kind=\"ghost\"\n disabled={gotoValue === ''}\n onClick={() => {\n onGotoValueSubmit(true);\n }}\n />\n <Button\n tooltip=\"Next match\"\n icon={vsArrowDown}\n kind=\"ghost\"\n disabled={gotoValue === ''}\n onClick={() => {\n onGotoValueSubmit(false);\n }}\n />\n </div>\n {gotoValueError && (\n <div className=\"text-danger\">{gotoValueError}</div>\n )}\n </div>\n </div>\n )}\n </>\n </IrisGridBottomBar>\n );\n }\n);\nGotoRow.displayName = 'GotoRow';\n\nexport default GotoRow;\n"],"mappings":"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"}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import { Formatter } from '@deephaven/jsapi-utils';
|
|
2
|
-
import { CancelablePromise } from '@deephaven/utils';
|
|
3
2
|
import type { dh as DhType } from '@deephaven/jsapi-types';
|
|
4
|
-
import { EditableGridModel, ModelIndex, MoveOperation } from '@deephaven/grid';
|
|
5
|
-
import IrisGridTableModel from './IrisGridTableModel';
|
|
6
|
-
import IrisGridTreeTableModel from './IrisGridTreeTableModel';
|
|
7
3
|
import IrisGridModel from './IrisGridModel';
|
|
8
|
-
import { ColumnName
|
|
9
|
-
import type ColumnHeaderGroup from './ColumnHeaderGroup';
|
|
4
|
+
import { ColumnName } from './CommonTypes';
|
|
10
5
|
import { PartitionConfig, PartitionedGridModel } from './PartitionedGridModel';
|
|
11
6
|
/**
|
|
12
7
|
* Model which proxies calls to other IrisGridModels.
|
|
13
8
|
* This allows for operations that generate new tables, like rollups.
|
|
9
|
+
* The proxy model will call any methods it has implemented and delegate any
|
|
10
|
+
* it does not implement to the underlying model.
|
|
14
11
|
*/
|
|
15
12
|
declare class IrisGridProxyModel extends IrisGridModel implements PartitionedGridModel {
|
|
16
13
|
/**
|
|
@@ -19,18 +16,14 @@ declare class IrisGridProxyModel extends IrisGridModel implements PartitionedGri
|
|
|
19
16
|
* @param formatter The formatter to use when getting formats
|
|
20
17
|
* @param inputTable Iris input table associated with this table
|
|
21
18
|
*/
|
|
22
|
-
dh: typeof DhType;
|
|
23
|
-
originalModel: IrisGridModel;
|
|
24
19
|
model: IrisGridModel;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
columns?: DhType.Column[];
|
|
33
|
-
};
|
|
20
|
+
dh: typeof DhType;
|
|
21
|
+
private originalModel;
|
|
22
|
+
private modelPromise;
|
|
23
|
+
private rollup;
|
|
24
|
+
private partition;
|
|
25
|
+
private selectDistinct;
|
|
26
|
+
private currentViewport?;
|
|
34
27
|
constructor(dh: typeof DhType, table: DhType.Table | DhType.TreeTable | DhType.PartitionedTable, formatter?: Formatter, inputTable?: DhType.InputTable | null);
|
|
35
28
|
close(): void;
|
|
36
29
|
handleModelEvent(event: CustomEvent): void;
|
|
@@ -40,122 +33,23 @@ declare class IrisGridProxyModel extends IrisGridModel implements PartitionedGri
|
|
|
40
33
|
stopListening(): void;
|
|
41
34
|
addListeners(model: IrisGridModel): void;
|
|
42
35
|
removeListeners(model: IrisGridModel): void;
|
|
43
|
-
get rowCount(): number;
|
|
44
|
-
get columnCount(): number;
|
|
45
|
-
get floatingTopRowCount(): number;
|
|
46
|
-
get floatingBottomRowCount(): number;
|
|
47
|
-
get floatingLeftColumnCount(): number;
|
|
48
|
-
get floatingRightColumnCount(): number;
|
|
49
|
-
textForCell: IrisGridModel['textForCell'];
|
|
50
|
-
truncationCharForCell: IrisGridModel['truncationCharForCell'];
|
|
51
|
-
textAlignForCell: IrisGridModel['textAlignForCell'];
|
|
52
|
-
colorForCell: IrisGridModel['colorForCell'];
|
|
53
|
-
backgroundColorForCell: IrisGridModel['backgroundColorForCell'];
|
|
54
|
-
textForColumnHeader: IrisGridModel['textForColumnHeader'];
|
|
55
|
-
colorForColumnHeader: IrisGridModel['colorForColumnHeader'];
|
|
56
|
-
textForRowHeader: IrisGridModel['textForRowHeader'];
|
|
57
|
-
textForRowFooter: IrisGridModel['textForRowFooter'];
|
|
58
|
-
isRowMovable: IrisGridModel['isRowMovable'];
|
|
59
|
-
isColumnMovable: IrisGridModel['isColumnMovable'];
|
|
60
|
-
isColumnFrozen(x: ModelIndex): boolean;
|
|
61
|
-
isColumnSortable(index: number): boolean;
|
|
62
|
-
get hasExpandableRows(): boolean;
|
|
63
|
-
get isExpandAllAvailable(): boolean;
|
|
64
|
-
isRowExpandable: IrisGridTreeTableModel['isRowExpandable'];
|
|
65
|
-
isRowExpanded: IrisGridTreeTableModel['isRowExpanded'];
|
|
66
|
-
setRowExpanded: IrisGridTreeTableModel['setRowExpanded'];
|
|
67
|
-
expandAll: IrisGridTreeTableModel['expandAll'];
|
|
68
|
-
collapseAll: IrisGridTreeTableModel['collapseAll'];
|
|
69
|
-
depthForRow: IrisGridTreeTableModel['depthForRow'];
|
|
70
|
-
get isExportAvailable(): boolean;
|
|
71
|
-
get isColumnStatisticsAvailable(): boolean;
|
|
72
|
-
get isValuesTableAvailable(): boolean;
|
|
73
36
|
get isCustomColumnsAvailable(): boolean;
|
|
74
|
-
get isFormatColumnsAvailable(): boolean;
|
|
75
|
-
get isChartBuilderAvailable(): boolean;
|
|
76
37
|
get isRollupAvailable(): boolean;
|
|
77
38
|
get isSelectDistinctAvailable(): boolean;
|
|
78
|
-
get isTotalsAvailable(): boolean;
|
|
79
|
-
get isReversible(): boolean;
|
|
80
|
-
get columns(): readonly DhType.Column[];
|
|
81
|
-
get initialMovedColumns(): readonly MoveOperation[];
|
|
82
|
-
get initialMovedRows(): readonly MoveOperation[];
|
|
83
|
-
get layoutHints(): DhType.LayoutHints | null | undefined;
|
|
84
|
-
get frontColumns(): readonly ColumnName[];
|
|
85
|
-
get backColumns(): readonly ColumnName[];
|
|
86
|
-
get frozenColumns(): readonly ColumnName[];
|
|
87
|
-
get keyColumnSet(): Set<ColumnName>;
|
|
88
|
-
getColumnHeaderGroup: IrisGridModel['getColumnHeaderGroup'];
|
|
89
|
-
get columnHeaderGroups(): readonly ColumnHeaderGroup[];
|
|
90
|
-
set columnHeaderGroups(groups: readonly ColumnHeaderGroup[]);
|
|
91
|
-
get initialColumnHeaderGroups(): readonly ColumnHeaderGroup[];
|
|
92
|
-
getColumnHeaderParentGroup: IrisGridModel['getColumnHeaderParentGroup'];
|
|
93
|
-
get columnHeaderGroupMap(): ReadonlyMap<string, ColumnHeaderGroup>;
|
|
94
|
-
get columnHeaderMaxDepth(): number;
|
|
95
|
-
updateFrozenColumns(columns: readonly ColumnName[]): void;
|
|
96
39
|
get originalColumns(): readonly DhType.Column[];
|
|
97
|
-
get groupedColumns(): readonly DhType.Column[];
|
|
98
40
|
get partitionColumns(): readonly DhType.Column[];
|
|
99
|
-
sourceForCell: IrisGridModel['sourceForCell'];
|
|
100
|
-
getClearFilterRange: IrisGridModel['getClearFilterRange'];
|
|
101
|
-
get description(): string;
|
|
102
|
-
formatForCell: IrisGridModel['formatForCell'];
|
|
103
|
-
valueForCell: IrisGridModel['valueForCell'];
|
|
104
|
-
renderTypeForCell: IrisGridModel['renderTypeForCell'];
|
|
105
|
-
dataBarOptionsForCell: IrisGridModel['dataBarOptionsForCell'];
|
|
106
|
-
get filter(): readonly DhType.FilterCondition[];
|
|
107
|
-
set filter(filter: readonly DhType.FilterCondition[]);
|
|
108
41
|
get partitionConfig(): PartitionConfig | null;
|
|
109
42
|
set partitionConfig(partitionConfig: PartitionConfig | null);
|
|
110
43
|
partitionKeysTable(): Promise<DhType.Table>;
|
|
111
44
|
partitionMergedTable(): Promise<DhType.Table>;
|
|
112
45
|
partitionTable(partitions: unknown[]): Promise<DhType.Table>;
|
|
113
|
-
get formatter(): Formatter;
|
|
114
|
-
set formatter(formatter: Formatter);
|
|
115
|
-
displayString: IrisGridModel['displayString'];
|
|
116
|
-
get sort(): readonly DhType.Sort[];
|
|
117
|
-
set sort(sort: readonly DhType.Sort[]);
|
|
118
|
-
get customColumns(): readonly ColumnName[];
|
|
119
|
-
set customColumns(customColumns: readonly ColumnName[]);
|
|
120
|
-
get formatColumns(): readonly DhType.CustomColumn[];
|
|
121
|
-
set formatColumns(formatColumns: readonly DhType.CustomColumn[]);
|
|
122
46
|
get rollupConfig(): DhType.RollupConfig | null;
|
|
123
47
|
set rollupConfig(rollupConfig: DhType.RollupConfig | null);
|
|
124
48
|
get selectDistinctColumns(): ColumnName[];
|
|
125
49
|
set selectDistinctColumns(columnNames: string[]);
|
|
126
|
-
get table(): DhType.Table | DhType.TreeTable | undefined;
|
|
127
|
-
get totalsConfig(): UITotalsTableConfig | null;
|
|
128
|
-
set totalsConfig(totalsConfig: UITotalsTableConfig | null);
|
|
129
50
|
get isFilterRequired(): boolean;
|
|
130
51
|
get isPartitionRequired(): boolean;
|
|
131
|
-
get isEditable(): boolean;
|
|
132
|
-
get isDeletable(): boolean;
|
|
133
|
-
get isViewportPending(): boolean;
|
|
134
|
-
isEditableRange: IrisGridTableModel['isEditableRange'];
|
|
135
|
-
isDeletableRange: IrisGridTableModel['isDeletableRange'];
|
|
136
|
-
isDeletableRanges: IrisGridTableModel['isDeletableRanges'];
|
|
137
|
-
isFilterable: IrisGridTableModel['isFilterable'];
|
|
138
52
|
setViewport: (top: number, bottom: number, columns?: DhType.Column[]) => void;
|
|
139
|
-
snapshot: IrisGridModel['snapshot'];
|
|
140
|
-
textSnapshot: IrisGridTableModel['textSnapshot'];
|
|
141
|
-
export(): Promise<DhType.Table>;
|
|
142
|
-
valuesTable: IrisGridTableModel['valuesTable'];
|
|
143
|
-
columnStatistics(column: DhType.Column): Promise<DhType.ColumnStatistics>;
|
|
144
|
-
editValueForCell: IrisGridTableModel['editValueForCell'];
|
|
145
|
-
setValueForCell: IrisGridTableModel['setValueForCell'];
|
|
146
|
-
setValueForRanges: IrisGridTableModel['setValueForRanges'];
|
|
147
|
-
setValues: EditableGridModel['setValues'];
|
|
148
|
-
isValidForCell: IrisGridTableModel['isValidForCell'];
|
|
149
|
-
delete: IrisGridTableModel['delete'];
|
|
150
|
-
get pendingDataMap(): PendingDataMap<UIRow>;
|
|
151
|
-
set pendingDataMap(map: PendingDataMap<UIRow>);
|
|
152
|
-
get pendingRowCount(): number;
|
|
153
|
-
set pendingRowCount(count: number);
|
|
154
|
-
get pendingDataErrors(): PendingDataErrorMap;
|
|
155
|
-
commitPending: IrisGridTableModel['commitPending'];
|
|
156
|
-
getColumnIndexByName(name: ColumnName): number | undefined;
|
|
157
|
-
seekRow(startRow: number, column: DhType.Column, valueType: DhType.ValueTypeType, value: unknown, insensitive?: boolean, contains?: boolean, isBackwards?: boolean): Promise<number>;
|
|
158
|
-
get isSeekRowAvailable(): boolean;
|
|
159
53
|
}
|
|
160
54
|
export default IrisGridProxyModel;
|
|
161
55
|
//# sourceMappingURL=IrisGridProxyModel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridProxyModel.d.ts","sourceRoot":"","sources":["../src/IrisGridProxyModel.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IrisGridProxyModel.d.ts","sourceRoot":"","sources":["../src/IrisGridProxyModel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAc,MAAM,wBAAwB,CAAC;AAO/D,OAAO,KAAK,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAI3D,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EACL,eAAe,EACf,oBAAoB,EAErB,MAAM,wBAAwB,CAAC;AAmBhC;;;;;GAKG;AAGH,cAAM,kBAAmB,SAAQ,aAAc,YAAW,oBAAoB;IAC5E;;;;;OAKG;IAEH,KAAK,EAAE,aAAa,CAAC;IAErB,EAAE,EAAE,OAAO,MAAM,CAAC;IAElB,OAAO,CAAC,aAAa,CAAgB;IAErC,OAAO,CAAC,YAAY,CAA0C;IAE9D,OAAO,CAAC,MAAM,CAA6B;IAE3C,OAAO,CAAC,SAAS,CAAyB;IAE1C,OAAO,CAAC,cAAc,CAAe;IAErC,OAAO,CAAC,eAAe,CAAC,CAItB;gBAGA,EAAE,EAAE,OAAO,MAAM,EACjB,KAAK,EAAE,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,SAAS,GAAG,MAAM,CAAC,gBAAgB,EAChE,SAAS,YAAoB,EAC7B,UAAU,GAAE,MAAM,CAAC,UAAU,GAAG,IAAW;IA8D7C,KAAK,IAAI,IAAI;IAUb,gBAAgB,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI;IAO1C,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAqCpC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;IAqCxD,cAAc,IAAI,IAAI;IAMtB,aAAa,IAAI,IAAI;IAMrB,YAAY,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IASxC,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAS3C,IAAI,wBAAwB,IAAI,OAAO,CAMtC;IAED,IAAI,iBAAiB,IAAI,OAAO,CAK/B;IAED,IAAI,yBAAyB,IAAI,OAAO,CAMvC;IAED,IAAI,eAAe,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,CAE9C;IAED,IAAI,gBAAgB,IAAI,SAAS,MAAM,CAAC,MAAM,EAAE,CAK/C;IAED,IAAI,eAAe,IAAI,eAAe,GAAG,IAAI,CAQ5C;IAED,IAAI,eAAe,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,EA4B1D;IAED,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAO3C,oBAAoB,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAO7C,cAAc,CAAC,UAAU,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;IAO5D,IAAI,YAAY,IAAI,MAAM,CAAC,YAAY,GAAG,IAAI,CAE7C;IAED,IAAI,YAAY,CAAC,YAAY,EAAE,MAAM,CAAC,YAAY,GAAG,IAAI,EA0BxD;IAED,IAAI,qBAAqB,IAAI,UAAU,EAAE,CAExC;IAED,IAAI,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,EAgC9C;IAED,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAED,IAAI,mBAAmB,IAAI,OAAO,CAIjC;IAED,WAAW,QACJ,MAAM,UACH,MAAM,YACJ,OAAO,MAAM,EAAE,KACxB,IAAI,CAGL;CACH;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -1,14 +1,10 @@
|
|
|
1
|
-
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
2
|
-
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
3
1
|
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
4
2
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
5
3
|
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
6
|
-
/* eslint class-methods-use-this: "off" */
|
|
7
4
|
import deepEqual from 'fast-deep-equal';
|
|
8
5
|
import { Formatter, TableUtils } from '@deephaven/jsapi-utils';
|
|
9
6
|
import Log from '@deephaven/log';
|
|
10
7
|
import { EventShimCustomEvent, PromiseUtils } from '@deephaven/utils';
|
|
11
|
-
import { isEditableGridModel, isExpandableGridModel, isDeletableGridModel } from '@deephaven/grid';
|
|
12
8
|
import IrisGridTableModel from "./IrisGridTableModel.js";
|
|
13
9
|
import IrisGridPartitionedTableModel from "./IrisGridPartitionedTableModel.js";
|
|
14
10
|
import IrisGridTreeTableModel from "./IrisGridTreeTableModel.js";
|
|
@@ -29,7 +25,11 @@ function makeModel(dh, table, formatter, inputTable) {
|
|
|
29
25
|
/**
|
|
30
26
|
* Model which proxies calls to other IrisGridModels.
|
|
31
27
|
* This allows for operations that generate new tables, like rollups.
|
|
28
|
+
* The proxy model will call any methods it has implemented and delegate any
|
|
29
|
+
* it does not implement to the underlying model.
|
|
32
30
|
*/
|
|
31
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
32
|
+
// @ts-ignore
|
|
33
33
|
class IrisGridProxyModel extends IrisGridModel {
|
|
34
34
|
/**
|
|
35
35
|
* @param dh JSAPI instance
|
|
@@ -39,137 +39,20 @@ class IrisGridProxyModel extends IrisGridModel {
|
|
|
39
39
|
*/
|
|
40
40
|
|
|
41
41
|
constructor(dh, table) {
|
|
42
|
-
var _this;
|
|
43
42
|
var formatter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : new Formatter(dh);
|
|
44
43
|
var inputTable = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
|
|
45
44
|
super(dh);
|
|
46
|
-
|
|
45
|
+
|
|
46
|
+
// The EventTarget methods must be bound to this instance
|
|
47
|
+
// Otherwise they throw errors because of the Proxy
|
|
48
|
+
_defineProperty(this, "model", void 0);
|
|
47
49
|
_defineProperty(this, "dh", void 0);
|
|
48
50
|
_defineProperty(this, "originalModel", void 0);
|
|
49
|
-
_defineProperty(this, "model", void 0);
|
|
50
51
|
_defineProperty(this, "modelPromise", void 0);
|
|
51
52
|
_defineProperty(this, "rollup", void 0);
|
|
52
53
|
_defineProperty(this, "partition", void 0);
|
|
53
54
|
_defineProperty(this, "selectDistinct", void 0);
|
|
54
55
|
_defineProperty(this, "currentViewport", void 0);
|
|
55
|
-
_defineProperty(this, "textForCell", function () {
|
|
56
|
-
return _this.model.textForCell(...arguments);
|
|
57
|
-
});
|
|
58
|
-
_defineProperty(this, "truncationCharForCell", function () {
|
|
59
|
-
return _this.model.truncationCharForCell(...arguments);
|
|
60
|
-
});
|
|
61
|
-
_defineProperty(this, "textAlignForCell", function () {
|
|
62
|
-
return _this.model.textAlignForCell(...arguments);
|
|
63
|
-
});
|
|
64
|
-
_defineProperty(this, "colorForCell", function () {
|
|
65
|
-
return _this.model.colorForCell(...arguments);
|
|
66
|
-
});
|
|
67
|
-
_defineProperty(this, "backgroundColorForCell", function () {
|
|
68
|
-
return _this.model.backgroundColorForCell(...arguments);
|
|
69
|
-
});
|
|
70
|
-
_defineProperty(this, "textForColumnHeader", function () {
|
|
71
|
-
return _this.model.textForColumnHeader(...arguments);
|
|
72
|
-
});
|
|
73
|
-
_defineProperty(this, "colorForColumnHeader", function () {
|
|
74
|
-
return _this.model.colorForColumnHeader(...arguments);
|
|
75
|
-
});
|
|
76
|
-
_defineProperty(this, "textForRowHeader", function () {
|
|
77
|
-
return _this.model.textForRowHeader(...arguments);
|
|
78
|
-
});
|
|
79
|
-
_defineProperty(this, "textForRowFooter", function () {
|
|
80
|
-
return _this.model.textForRowFooter(...arguments);
|
|
81
|
-
});
|
|
82
|
-
_defineProperty(this, "isRowMovable", function () {
|
|
83
|
-
return _this.model.isRowMovable(...arguments);
|
|
84
|
-
});
|
|
85
|
-
_defineProperty(this, "isColumnMovable", function () {
|
|
86
|
-
return _this.model.isColumnMovable(...arguments);
|
|
87
|
-
});
|
|
88
|
-
_defineProperty(this, "isRowExpandable", function () {
|
|
89
|
-
if (isExpandableGridModel(_this.model)) {
|
|
90
|
-
return _this.model.isRowExpandable(...arguments);
|
|
91
|
-
}
|
|
92
|
-
return false;
|
|
93
|
-
});
|
|
94
|
-
_defineProperty(this, "isRowExpanded", function () {
|
|
95
|
-
if (isExpandableGridModel(_this.model)) {
|
|
96
|
-
return _this.model.isRowExpanded(...arguments);
|
|
97
|
-
}
|
|
98
|
-
return false;
|
|
99
|
-
});
|
|
100
|
-
_defineProperty(this, "setRowExpanded", function () {
|
|
101
|
-
if (isExpandableGridModel(_this.model)) {
|
|
102
|
-
return _this.model.setRowExpanded(...arguments);
|
|
103
|
-
}
|
|
104
|
-
throw Error('Function setRowExpanded does not exist on IrisGridTableModel');
|
|
105
|
-
});
|
|
106
|
-
_defineProperty(this, "expandAll", () => {
|
|
107
|
-
if (isExpandableGridModel(this.model)) {
|
|
108
|
-
return this.model.expandAll();
|
|
109
|
-
}
|
|
110
|
-
throw Error('Function expandAll does not exist on IrisGridTableModel');
|
|
111
|
-
});
|
|
112
|
-
_defineProperty(this, "collapseAll", () => {
|
|
113
|
-
if (isExpandableGridModel(this.model)) {
|
|
114
|
-
return this.model.collapseAll();
|
|
115
|
-
}
|
|
116
|
-
throw Error('Function collapseAll does not exist on IrisGridTableModel');
|
|
117
|
-
});
|
|
118
|
-
_defineProperty(this, "depthForRow", function () {
|
|
119
|
-
if (isExpandableGridModel(_this.model)) {
|
|
120
|
-
return _this.model.depthForRow(...arguments);
|
|
121
|
-
}
|
|
122
|
-
return 0;
|
|
123
|
-
// throw Error('Function depthForRow does not exist on IrisGridTableModel');
|
|
124
|
-
});
|
|
125
|
-
_defineProperty(this, "getColumnHeaderGroup", function () {
|
|
126
|
-
return _this.model.getColumnHeaderGroup(...arguments);
|
|
127
|
-
});
|
|
128
|
-
_defineProperty(this, "getColumnHeaderParentGroup", function () {
|
|
129
|
-
return _this.model.getColumnHeaderParentGroup(...arguments);
|
|
130
|
-
});
|
|
131
|
-
_defineProperty(this, "sourceForCell", function () {
|
|
132
|
-
return _this.model.sourceForCell(...arguments);
|
|
133
|
-
});
|
|
134
|
-
_defineProperty(this, "getClearFilterRange", function () {
|
|
135
|
-
return _this.model.getClearFilterRange(...arguments);
|
|
136
|
-
});
|
|
137
|
-
_defineProperty(this, "formatForCell", function () {
|
|
138
|
-
return _this.model.formatForCell(...arguments);
|
|
139
|
-
});
|
|
140
|
-
_defineProperty(this, "valueForCell", function () {
|
|
141
|
-
return _this.model.valueForCell(...arguments);
|
|
142
|
-
});
|
|
143
|
-
_defineProperty(this, "renderTypeForCell", function () {
|
|
144
|
-
return _this.model.renderTypeForCell(...arguments);
|
|
145
|
-
});
|
|
146
|
-
_defineProperty(this, "dataBarOptionsForCell", function () {
|
|
147
|
-
return _this.model.dataBarOptionsForCell(...arguments);
|
|
148
|
-
});
|
|
149
|
-
_defineProperty(this, "displayString", function () {
|
|
150
|
-
return _this.model.displayString(...arguments);
|
|
151
|
-
});
|
|
152
|
-
_defineProperty(this, "isEditableRange", function () {
|
|
153
|
-
if (isEditableGridModel(_this.model)) {
|
|
154
|
-
return _this.model.isEditableRange(...arguments);
|
|
155
|
-
}
|
|
156
|
-
return false;
|
|
157
|
-
});
|
|
158
|
-
_defineProperty(this, "isDeletableRange", function () {
|
|
159
|
-
if (isDeletableGridModel(_this.model)) {
|
|
160
|
-
return _this.model.isDeletableRange(...arguments);
|
|
161
|
-
}
|
|
162
|
-
return false;
|
|
163
|
-
});
|
|
164
|
-
_defineProperty(this, "isDeletableRanges", function () {
|
|
165
|
-
if (isDeletableGridModel(_this.model)) {
|
|
166
|
-
return _this.model.isDeletableRanges(...arguments);
|
|
167
|
-
}
|
|
168
|
-
return false;
|
|
169
|
-
});
|
|
170
|
-
_defineProperty(this, "isFilterable", function () {
|
|
171
|
-
return _this.model.isFilterable(...arguments);
|
|
172
|
-
});
|
|
173
56
|
_defineProperty(this, "setViewport", (top, bottom, columns) => {
|
|
174
57
|
this.currentViewport = {
|
|
175
58
|
top,
|
|
@@ -178,54 +61,9 @@ class IrisGridProxyModel extends IrisGridModel {
|
|
|
178
61
|
};
|
|
179
62
|
this.model.setViewport(top, bottom, columns);
|
|
180
63
|
});
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
_defineProperty(this, "textSnapshot", function () {
|
|
185
|
-
return _this.model.textSnapshot(...arguments);
|
|
186
|
-
});
|
|
187
|
-
_defineProperty(this, "valuesTable", function () {
|
|
188
|
-
return _this.model.valuesTable(...arguments);
|
|
189
|
-
});
|
|
190
|
-
_defineProperty(this, "editValueForCell", function () {
|
|
191
|
-
if (isEditableGridModel(_this.model)) {
|
|
192
|
-
return _this.model.editValueForCell(...arguments);
|
|
193
|
-
}
|
|
194
|
-
return '';
|
|
195
|
-
});
|
|
196
|
-
_defineProperty(this, "setValueForCell", function () {
|
|
197
|
-
if (isEditableGridModel(_this.model)) {
|
|
198
|
-
return _this.model.setValueForCell(...arguments);
|
|
199
|
-
}
|
|
200
|
-
return Promise.reject(new Error('Model is not editable'));
|
|
201
|
-
});
|
|
202
|
-
_defineProperty(this, "setValueForRanges", function () {
|
|
203
|
-
if (isEditableGridModel(_this.model)) {
|
|
204
|
-
return _this.model.setValueForRanges(...arguments);
|
|
205
|
-
}
|
|
206
|
-
return Promise.reject(new Error('Model is not editable'));
|
|
207
|
-
});
|
|
208
|
-
_defineProperty(this, "setValues", function () {
|
|
209
|
-
if (isEditableGridModel(_this.model)) {
|
|
210
|
-
return _this.model.setValues(...arguments);
|
|
211
|
-
}
|
|
212
|
-
return Promise.resolve();
|
|
213
|
-
});
|
|
214
|
-
_defineProperty(this, "isValidForCell", function () {
|
|
215
|
-
if (isEditableGridModel(_this.model)) {
|
|
216
|
-
return _this.model.isValidForCell(...arguments);
|
|
217
|
-
}
|
|
218
|
-
return false;
|
|
219
|
-
});
|
|
220
|
-
_defineProperty(this, "delete", function () {
|
|
221
|
-
if (isDeletableGridModel(_this.model)) {
|
|
222
|
-
return _this.model.delete(...arguments);
|
|
223
|
-
}
|
|
224
|
-
return Promise.reject(new Error('Model is not deletable'));
|
|
225
|
-
});
|
|
226
|
-
_defineProperty(this, "commitPending", function () {
|
|
227
|
-
return _this.model.commitPending(...arguments);
|
|
228
|
-
});
|
|
64
|
+
this.addEventListener = this.addEventListener.bind(this);
|
|
65
|
+
this.removeEventListener = this.removeEventListener.bind(this);
|
|
66
|
+
this.dispatchEvent = this.dispatchEvent.bind(this);
|
|
229
67
|
this.handleModelEvent = this.handleModelEvent.bind(this);
|
|
230
68
|
var model = makeModel(dh, table, formatter, inputTable);
|
|
231
69
|
this.dh = dh;
|
|
@@ -235,6 +73,37 @@ class IrisGridProxyModel extends IrisGridModel {
|
|
|
235
73
|
this.rollup = null;
|
|
236
74
|
this.partition = null;
|
|
237
75
|
this.selectDistinct = [];
|
|
76
|
+
|
|
77
|
+
// eslint-disable-next-line no-constructor-return
|
|
78
|
+
return new Proxy(this, {
|
|
79
|
+
// We want to use any properties on the proxy model if defined
|
|
80
|
+
// If not, then proxy to the underlying model
|
|
81
|
+
get(target, prop, receiver) {
|
|
82
|
+
var _Object$getOwnPropert;
|
|
83
|
+
// Does this class have a getter for the prop
|
|
84
|
+
// Getter functions are on the prototype
|
|
85
|
+
var proxyHasGetter = ((_Object$getOwnPropert = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(target), prop)) === null || _Object$getOwnPropert === void 0 ? void 0 : _Object$getOwnPropert.get) != null;
|
|
86
|
+
if (proxyHasGetter) {
|
|
87
|
+
return Reflect.get(target, prop, receiver);
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
// Does this class implement the property
|
|
91
|
+
var proxyHasProp = Object.prototype.hasOwnProperty.call(target, prop);
|
|
92
|
+
|
|
93
|
+
// Does the class implement a function for the property
|
|
94
|
+
var proxyHasFn = Object.prototype.hasOwnProperty.call(Object.getPrototypeOf(target), prop);
|
|
95
|
+
var trueTarget = proxyHasProp || proxyHasFn ? target : target.model;
|
|
96
|
+
return Reflect.get(trueTarget, prop);
|
|
97
|
+
},
|
|
98
|
+
set(target, prop, value) {
|
|
99
|
+
var _Object$getOwnPropert2;
|
|
100
|
+
var proxyHasSetter = ((_Object$getOwnPropert2 = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(target), prop)) === null || _Object$getOwnPropert2 === void 0 ? void 0 : _Object$getOwnPropert2.set) != null;
|
|
101
|
+
if (proxyHasSetter) {
|
|
102
|
+
return Reflect.set(target, prop, value, target);
|
|
103
|
+
}
|
|
104
|
+
return Reflect.set(target.model, prop, value, target.model);
|
|
105
|
+
}
|
|
106
|
+
});
|
|
238
107
|
}
|
|
239
108
|
close() {
|
|
240
109
|
this.originalModel.close();
|
|
@@ -335,138 +204,26 @@ class IrisGridProxyModel extends IrisGridModel {
|
|
|
335
204
|
model.removeEventListener(events[i], this.handleModelEvent);
|
|
336
205
|
}
|
|
337
206
|
}
|
|
338
|
-
get rowCount() {
|
|
339
|
-
return this.model.rowCount;
|
|
340
|
-
}
|
|
341
|
-
get columnCount() {
|
|
342
|
-
return this.model.columnCount;
|
|
343
|
-
}
|
|
344
|
-
get floatingTopRowCount() {
|
|
345
|
-
return this.model.floatingTopRowCount;
|
|
346
|
-
}
|
|
347
|
-
get floatingBottomRowCount() {
|
|
348
|
-
return this.model.floatingBottomRowCount;
|
|
349
|
-
}
|
|
350
|
-
get floatingLeftColumnCount() {
|
|
351
|
-
return this.model.floatingLeftColumnCount;
|
|
352
|
-
}
|
|
353
|
-
get floatingRightColumnCount() {
|
|
354
|
-
return this.model.floatingRightColumnCount;
|
|
355
|
-
}
|
|
356
|
-
isColumnFrozen(x) {
|
|
357
|
-
return this.model.isColumnFrozen(x);
|
|
358
|
-
}
|
|
359
|
-
isColumnSortable(index) {
|
|
360
|
-
return this.model.isColumnSortable(index);
|
|
361
|
-
}
|
|
362
|
-
get hasExpandableRows() {
|
|
363
|
-
if (isExpandableGridModel(this.model)) {
|
|
364
|
-
return this.model.hasExpandableRows;
|
|
365
|
-
}
|
|
366
|
-
return false;
|
|
367
|
-
}
|
|
368
|
-
get isExpandAllAvailable() {
|
|
369
|
-
if (isExpandableGridModel(this.model)) {
|
|
370
|
-
var _this$model$isExpandA;
|
|
371
|
-
return (_this$model$isExpandA = this.model.isExpandAllAvailable) !== null && _this$model$isExpandA !== void 0 ? _this$model$isExpandA : false;
|
|
372
|
-
}
|
|
373
|
-
return false;
|
|
374
|
-
}
|
|
375
|
-
get isExportAvailable() {
|
|
376
|
-
return this.model.isExportAvailable;
|
|
377
|
-
}
|
|
378
|
-
get isColumnStatisticsAvailable() {
|
|
379
|
-
return this.model.isColumnStatisticsAvailable;
|
|
380
|
-
}
|
|
381
|
-
get isValuesTableAvailable() {
|
|
382
|
-
return this.model.isValuesTableAvailable;
|
|
383
|
-
}
|
|
384
207
|
get isCustomColumnsAvailable() {
|
|
385
208
|
return this.model.isCustomColumnsAvailable &&
|
|
386
209
|
// Disable for selectDistinct tables
|
|
387
210
|
!(this.isSelectDistinctAvailable && this.selectDistinctColumns.length > 0);
|
|
388
211
|
}
|
|
389
|
-
get isFormatColumnsAvailable() {
|
|
390
|
-
return this.model.isFormatColumnsAvailable;
|
|
391
|
-
}
|
|
392
|
-
get isChartBuilderAvailable() {
|
|
393
|
-
return this.model.isChartBuilderAvailable;
|
|
394
|
-
}
|
|
395
212
|
get isRollupAvailable() {
|
|
396
213
|
return (this.originalModel.isRollupAvailable || this.rollup != null) && this.selectDistinct.length === 0;
|
|
397
214
|
}
|
|
398
215
|
get isSelectDistinctAvailable() {
|
|
399
216
|
return (this.originalModel.isSelectDistinctAvailable || this.selectDistinct.length > 0) && this.rollup == null;
|
|
400
217
|
}
|
|
401
|
-
get isTotalsAvailable() {
|
|
402
|
-
return this.model.isTotalsAvailable;
|
|
403
|
-
}
|
|
404
|
-
get isReversible() {
|
|
405
|
-
return this.model.isReversible;
|
|
406
|
-
}
|
|
407
|
-
get columns() {
|
|
408
|
-
return this.model.columns;
|
|
409
|
-
}
|
|
410
|
-
get initialMovedColumns() {
|
|
411
|
-
return this.model.initialMovedColumns;
|
|
412
|
-
}
|
|
413
|
-
get initialMovedRows() {
|
|
414
|
-
return this.model.initialMovedRows;
|
|
415
|
-
}
|
|
416
|
-
get layoutHints() {
|
|
417
|
-
return this.model.layoutHints;
|
|
418
|
-
}
|
|
419
|
-
get frontColumns() {
|
|
420
|
-
return this.model.frontColumns;
|
|
421
|
-
}
|
|
422
|
-
get backColumns() {
|
|
423
|
-
return this.model.backColumns;
|
|
424
|
-
}
|
|
425
|
-
get frozenColumns() {
|
|
426
|
-
return this.model.frozenColumns;
|
|
427
|
-
}
|
|
428
|
-
get keyColumnSet() {
|
|
429
|
-
return this.model.keyColumnSet;
|
|
430
|
-
}
|
|
431
|
-
get columnHeaderGroups() {
|
|
432
|
-
return this.model.columnHeaderGroups;
|
|
433
|
-
}
|
|
434
|
-
set columnHeaderGroups(groups) {
|
|
435
|
-
this.model.columnHeaderGroups = groups;
|
|
436
|
-
}
|
|
437
|
-
get initialColumnHeaderGroups() {
|
|
438
|
-
return this.model.initialColumnHeaderGroups;
|
|
439
|
-
}
|
|
440
|
-
get columnHeaderGroupMap() {
|
|
441
|
-
return this.model.columnHeaderGroupMap;
|
|
442
|
-
}
|
|
443
|
-
get columnHeaderMaxDepth() {
|
|
444
|
-
return this.model.columnHeaderMaxDepth;
|
|
445
|
-
}
|
|
446
|
-
updateFrozenColumns(columns) {
|
|
447
|
-
return this.model.updateFrozenColumns(columns);
|
|
448
|
-
}
|
|
449
218
|
get originalColumns() {
|
|
450
219
|
return this.originalModel.columns;
|
|
451
220
|
}
|
|
452
|
-
get groupedColumns() {
|
|
453
|
-
return this.model.groupedColumns;
|
|
454
|
-
}
|
|
455
221
|
get partitionColumns() {
|
|
456
222
|
if (!isPartitionedGridModelProvider(this.originalModel)) {
|
|
457
223
|
return [];
|
|
458
224
|
}
|
|
459
225
|
return this.originalModel.partitionColumns;
|
|
460
226
|
}
|
|
461
|
-
get description() {
|
|
462
|
-
return this.model.description;
|
|
463
|
-
}
|
|
464
|
-
get filter() {
|
|
465
|
-
return this.model.filter;
|
|
466
|
-
}
|
|
467
|
-
set filter(filter) {
|
|
468
|
-
this.model.filter = filter;
|
|
469
|
-
}
|
|
470
227
|
get partitionConfig() {
|
|
471
228
|
if (!isPartitionedGridModelProvider(this.originalModel) || !this.originalModel.isPartitionRequired) {
|
|
472
229
|
return null;
|
|
@@ -509,30 +266,6 @@ class IrisGridProxyModel extends IrisGridModel {
|
|
|
509
266
|
}
|
|
510
267
|
return this.originalModel.partitionTable(partitions);
|
|
511
268
|
}
|
|
512
|
-
get formatter() {
|
|
513
|
-
return this.model.formatter;
|
|
514
|
-
}
|
|
515
|
-
set formatter(formatter) {
|
|
516
|
-
this.model.formatter = formatter;
|
|
517
|
-
}
|
|
518
|
-
get sort() {
|
|
519
|
-
return this.model.sort;
|
|
520
|
-
}
|
|
521
|
-
set sort(sort) {
|
|
522
|
-
this.model.sort = sort;
|
|
523
|
-
}
|
|
524
|
-
get customColumns() {
|
|
525
|
-
return this.model.customColumns;
|
|
526
|
-
}
|
|
527
|
-
set customColumns(customColumns) {
|
|
528
|
-
this.model.customColumns = customColumns;
|
|
529
|
-
}
|
|
530
|
-
get formatColumns() {
|
|
531
|
-
return this.model.formatColumns;
|
|
532
|
-
}
|
|
533
|
-
set formatColumns(formatColumns) {
|
|
534
|
-
this.model.formatColumns = formatColumns;
|
|
535
|
-
}
|
|
536
269
|
get rollupConfig() {
|
|
537
270
|
return this.rollup;
|
|
538
271
|
}
|
|
@@ -574,72 +307,12 @@ class IrisGridProxyModel extends IrisGridModel {
|
|
|
574
307
|
}
|
|
575
308
|
this.setNextModel(modelPromise);
|
|
576
309
|
}
|
|
577
|
-
get table() {
|
|
578
|
-
if (isIrisGridTableModelTemplate(this.model)) {
|
|
579
|
-
return this.model.table;
|
|
580
|
-
}
|
|
581
|
-
return undefined;
|
|
582
|
-
}
|
|
583
|
-
get totalsConfig() {
|
|
584
|
-
return this.model.totalsConfig;
|
|
585
|
-
}
|
|
586
|
-
set totalsConfig(totalsConfig) {
|
|
587
|
-
this.model.totalsConfig = totalsConfig;
|
|
588
|
-
}
|
|
589
310
|
get isFilterRequired() {
|
|
590
311
|
return this.originalModel.isFilterRequired;
|
|
591
312
|
}
|
|
592
313
|
get isPartitionRequired() {
|
|
593
314
|
return isPartitionedGridModelProvider(this.originalModel) ? this.originalModel.isPartitionRequired : false;
|
|
594
315
|
}
|
|
595
|
-
get isEditable() {
|
|
596
|
-
return isEditableGridModel(this.model) && this.model.isEditable;
|
|
597
|
-
}
|
|
598
|
-
get isDeletable() {
|
|
599
|
-
return isDeletableGridModel(this.model) && this.model.isDeletable;
|
|
600
|
-
}
|
|
601
|
-
get isViewportPending() {
|
|
602
|
-
return this.model.isViewportPending;
|
|
603
|
-
}
|
|
604
|
-
export() {
|
|
605
|
-
if (TableUtils.isTreeTable(this.model)) {
|
|
606
|
-
throw new Error("TreeTable has no 'export' property");
|
|
607
|
-
}
|
|
608
|
-
return this.model.export();
|
|
609
|
-
}
|
|
610
|
-
columnStatistics(column) {
|
|
611
|
-
if (TableUtils.isTreeTable(this.model)) {
|
|
612
|
-
throw new Error("TreeTable has no 'columnStatistics' function");
|
|
613
|
-
}
|
|
614
|
-
return this.model.columnStatistics(column);
|
|
615
|
-
}
|
|
616
|
-
get pendingDataMap() {
|
|
617
|
-
return this.model.pendingDataMap;
|
|
618
|
-
}
|
|
619
|
-
set pendingDataMap(map) {
|
|
620
|
-
this.model.pendingDataMap = map;
|
|
621
|
-
}
|
|
622
|
-
get pendingRowCount() {
|
|
623
|
-
return this.model.pendingRowCount;
|
|
624
|
-
}
|
|
625
|
-
set pendingRowCount(count) {
|
|
626
|
-
this.model.pendingRowCount = count;
|
|
627
|
-
}
|
|
628
|
-
get pendingDataErrors() {
|
|
629
|
-
return this.model.pendingDataErrors;
|
|
630
|
-
}
|
|
631
|
-
getColumnIndexByName(name) {
|
|
632
|
-
return this.model.getColumnIndexByName(name);
|
|
633
|
-
}
|
|
634
|
-
seekRow(startRow, column, valueType, value, insensitive, contains, isBackwards) {
|
|
635
|
-
var _this2 = this;
|
|
636
|
-
return _asyncToGenerator(function* () {
|
|
637
|
-
return _this2.model.seekRow(startRow, column, valueType, value, insensitive, contains, isBackwards);
|
|
638
|
-
})();
|
|
639
|
-
}
|
|
640
|
-
get isSeekRowAvailable() {
|
|
641
|
-
return this.model.isSeekRowAvailable;
|
|
642
|
-
}
|
|
643
316
|
}
|
|
644
317
|
export default IrisGridProxyModel;
|
|
645
318
|
//# sourceMappingURL=IrisGridProxyModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGridProxyModel.js","names":["deepEqual","Formatter","TableUtils","Log","EventShimCustomEvent","PromiseUtils","isEditableGridModel","isExpandableGridModel","isDeletableGridModel","IrisGridTableModel","IrisGridPartitionedTableModel","IrisGridTreeTableModel","IrisGridModel","isIrisGridTableModelTemplate","isPartitionedGridModelProvider","log","module","makeModel","dh","table","formatter","inputTable","isTreeTable","isPartitionedTable","IrisGridProxyModel","constructor","_this","arguments","length","undefined","this","_defineProperty","model","textForCell","truncationCharForCell","textAlignForCell","colorForCell","backgroundColorForCell","textForColumnHeader","colorForColumnHeader","textForRowHeader","textForRowFooter","isRowMovable","isColumnMovable","isRowExpandable","isRowExpanded","setRowExpanded","Error","expandAll","collapseAll","depthForRow","getColumnHeaderGroup","getColumnHeaderParentGroup","sourceForCell","getClearFilterRange","formatForCell","valueForCell","renderTypeForCell","dataBarOptionsForCell","displayString","isEditableRange","isDeletableRange","isDeletableRanges","isFilterable","top","bottom","columns","currentViewport","setViewport","snapshot","textSnapshot","valuesTable","editValueForCell","setValueForCell","Promise","reject","setValueForRanges","setValues","resolve","isValidForCell","delete","commitPending","handleModelEvent","bind","originalModel","modelPromise","rollup","partition","selectDistinct","close","cancel","event","debug2","detail","type","dispatchEvent","setModel","debug","oldModel","oldColumns","listenerCount","addListeners","EVENT","COLUMNS_CHANGED","TABLE_CHANGED","setNextModel","removeListeners","makeCancelable","then","catch","err","isCanceled","error","REQUEST_FAILED","startListening","stopListening","events","Object","keys","i","addEventListener","removeEventListener","rowCount","columnCount","floatingTopRowCount","floatingBottomRowCount","floatingLeftColumnCount","floatingRightColumnCount","isColumnFrozen","x","isColumnSortable","index","hasExpandableRows","isExpandAllAvailable","_this$model$isExpandA","isExportAvailable","isColumnStatisticsAvailable","isValuesTableAvailable","isCustomColumnsAvailable","isSelectDistinctAvailable","selectDistinctColumns","isFormatColumnsAvailable","isChartBuilderAvailable","isRollupAvailable","isTotalsAvailable","isReversible","initialMovedColumns","initialMovedRows","layoutHints","frontColumns","backColumns","frozenColumns","keyColumnSet","columnHeaderGroups","groups","initialColumnHeaderGroups","columnHeaderGroupMap","columnHeaderMaxDepth","updateFrozenColumns","originalColumns","groupedColumns","partitionColumns","description","filter","partitionConfig","isPartitionRequired","mode","partitionKeysTable","partitionMergedTable","partitionTable","partitions","sort","customColumns","formatColumns","rollupConfig","columnNames","map","name","find","column","totalsConfig","isFilterRequired","isEditable","isDeletable","isViewportPending","export","columnStatistics","pendingDataMap","pendingRowCount","count","pendingDataErrors","getColumnIndexByName","seekRow","startRow","valueType","value","insensitive","contains","isBackwards","_this2","_asyncToGenerator","isSeekRowAvailable"],"sources":["../src/IrisGridProxyModel.ts"],"sourcesContent":["/* eslint class-methods-use-this: \"off\" */\nimport deepEqual from 'fast-deep-equal';\nimport { Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n CancelablePromise,\n EventShimCustomEvent,\n PromiseUtils,\n} from '@deephaven/utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport {\n EditableGridModel,\n isEditableGridModel,\n isExpandableGridModel,\n ModelIndex,\n MoveOperation,\n isDeletableGridModel,\n} from '@deephaven/grid';\nimport IrisGridTableModel from './IrisGridTableModel';\nimport IrisGridPartitionedTableModel from './IrisGridPartitionedTableModel';\nimport IrisGridTreeTableModel from './IrisGridTreeTableModel';\nimport IrisGridModel from './IrisGridModel';\nimport {\n ColumnName,\n UITotalsTableConfig,\n PendingDataMap,\n UIRow,\n PendingDataErrorMap,\n} from './CommonTypes';\nimport { isIrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\nimport type ColumnHeaderGroup from './ColumnHeaderGroup';\nimport {\n PartitionConfig,\n PartitionedGridModel,\n isPartitionedGridModelProvider,\n} from './PartitionedGridModel';\n\nconst log = Log.module('IrisGridProxyModel');\n\nfunction makeModel(\n dh: typeof DhType,\n table: DhType.Table | DhType.TreeTable | DhType.PartitionedTable,\n formatter?: Formatter,\n inputTable?: DhType.InputTable | null\n): IrisGridModel {\n if (TableUtils.isTreeTable(table)) {\n return new IrisGridTreeTableModel(dh, table, formatter);\n }\n if (TableUtils.isPartitionedTable(table)) {\n return new IrisGridPartitionedTableModel(dh, table, formatter);\n }\n return new IrisGridTableModel(dh, table, formatter, inputTable);\n}\n\n/**\n * Model which proxies calls to other IrisGridModels.\n * This allows for operations that generate new tables, like rollups.\n */\nclass IrisGridProxyModel extends IrisGridModel implements PartitionedGridModel {\n /**\n * @param dh JSAPI instance\n * @param table Iris data table to be used in the model\n * @param formatter The formatter to use when getting formats\n * @param inputTable Iris input table associated with this table\n */\n\n dh: typeof DhType;\n\n originalModel: IrisGridModel;\n\n model: IrisGridModel;\n\n modelPromise: CancelablePromise<IrisGridModel> | null;\n\n rollup: DhType.RollupConfig | null;\n\n partition: PartitionConfig | null;\n\n selectDistinct: ColumnName[];\n\n currentViewport?: {\n top: number;\n bottom: number;\n columns?: DhType.Column[];\n };\n\n constructor(\n dh: typeof DhType,\n table: DhType.Table | DhType.TreeTable | DhType.PartitionedTable,\n formatter = new Formatter(dh),\n inputTable: DhType.InputTable | null = null\n ) {\n super(dh);\n\n this.handleModelEvent = this.handleModelEvent.bind(this);\n\n const model = makeModel(dh, table, formatter, inputTable);\n this.dh = dh;\n this.originalModel = model;\n this.model = model;\n this.modelPromise = null;\n this.rollup = null;\n this.partition = null;\n this.selectDistinct = [];\n }\n\n close(): void {\n this.originalModel.close();\n if (this.model !== this.originalModel) {\n this.model.close();\n }\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n }\n }\n\n handleModelEvent(event: CustomEvent): void {\n log.debug2('handleModelEvent', event);\n\n const { detail, type } = event;\n this.dispatchEvent(new EventShimCustomEvent(type, { detail }));\n }\n\n setModel(model: IrisGridModel): void {\n log.debug('setModel', model);\n\n const oldModel = this.model;\n const { columns: oldColumns } = oldModel;\n\n if (oldModel !== this.originalModel) {\n oldModel.close();\n }\n\n this.model = model;\n\n if (this.listenerCount > 0) {\n this.addListeners(model);\n }\n\n if (oldColumns !== model.columns) {\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.COLUMNS_CHANGED, {\n detail: model.columns,\n })\n );\n } else if (this.currentViewport != null) {\n // If the columns haven't changed, the current viewport should still valid, and needs to be set on the new model\n const { top, bottom, columns } = this.currentViewport;\n model.setViewport(top, bottom, columns);\n }\n\n if (isIrisGridTableModelTemplate(model)) {\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.TABLE_CHANGED, {\n detail: model.table,\n })\n );\n }\n }\n\n setNextModel(modelPromise: Promise<IrisGridModel>): void {\n log.debug2('setNextModel');\n\n if (this.modelPromise) {\n this.modelPromise.cancel();\n }\n\n if (this.listenerCount > 0) {\n this.removeListeners(this.model);\n }\n\n this.modelPromise = PromiseUtils.makeCancelable(\n modelPromise,\n (model: IrisGridModel) => model.close()\n );\n this.modelPromise\n .then(model => {\n this.modelPromise = null;\n this.setModel(model);\n })\n .catch((err: unknown) => {\n if (PromiseUtils.isCanceled(err)) {\n log.debug2('setNextModel cancelled');\n return;\n }\n\n log.error('Unable to set next model', err);\n this.modelPromise = null;\n\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.REQUEST_FAILED, {\n detail: err,\n })\n );\n });\n }\n\n startListening(): void {\n super.startListening();\n\n this.addListeners(this.model);\n }\n\n stopListening(): void {\n super.stopListening();\n\n this.removeListeners(this.model);\n }\n\n addListeners(model: IrisGridModel): void {\n const events = Object.keys(IrisGridModel.EVENT);\n for (let i = 0; i < events.length; i += 1) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n model.addEventListener(events[i], this.handleModelEvent);\n }\n }\n\n removeListeners(model: IrisGridModel): void {\n const events = Object.keys(IrisGridModel.EVENT);\n for (let i = 0; i < events.length; i += 1) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n model.removeEventListener(events[i], this.handleModelEvent);\n }\n }\n\n get rowCount(): number {\n return this.model.rowCount;\n }\n\n get columnCount(): number {\n return this.model.columnCount;\n }\n\n get floatingTopRowCount(): number {\n return this.model.floatingTopRowCount;\n }\n\n get floatingBottomRowCount(): number {\n return this.model.floatingBottomRowCount;\n }\n\n get floatingLeftColumnCount(): number {\n return this.model.floatingLeftColumnCount;\n }\n\n get floatingRightColumnCount(): number {\n return this.model.floatingRightColumnCount;\n }\n\n textForCell: IrisGridModel['textForCell'] = (...args) =>\n this.model.textForCell(...args);\n\n truncationCharForCell: IrisGridModel['truncationCharForCell'] = (...args) =>\n this.model.truncationCharForCell(...args);\n\n textAlignForCell: IrisGridModel['textAlignForCell'] = (...args) =>\n this.model.textAlignForCell(...args);\n\n colorForCell: IrisGridModel['colorForCell'] = (...args) =>\n this.model.colorForCell(...args);\n\n backgroundColorForCell: IrisGridModel['backgroundColorForCell'] = (...args) =>\n this.model.backgroundColorForCell(...args);\n\n textForColumnHeader: IrisGridModel['textForColumnHeader'] = (...args) =>\n this.model.textForColumnHeader(...args);\n\n colorForColumnHeader: IrisGridModel['colorForColumnHeader'] = (...args) =>\n this.model.colorForColumnHeader(...args);\n\n textForRowHeader: IrisGridModel['textForRowHeader'] = (...args) =>\n this.model.textForRowHeader(...args);\n\n textForRowFooter: IrisGridModel['textForRowFooter'] = (...args) =>\n this.model.textForRowFooter(...args);\n\n isRowMovable: IrisGridModel['isRowMovable'] = (...args) =>\n this.model.isRowMovable(...args);\n\n isColumnMovable: IrisGridModel['isColumnMovable'] = (...args) =>\n this.model.isColumnMovable(...args);\n\n isColumnFrozen(x: ModelIndex): boolean {\n return this.model.isColumnFrozen(x);\n }\n\n isColumnSortable(index: number): boolean {\n return this.model.isColumnSortable(index);\n }\n\n get hasExpandableRows(): boolean {\n if (isExpandableGridModel(this.model)) {\n return this.model.hasExpandableRows;\n }\n return false;\n }\n\n get isExpandAllAvailable(): boolean {\n if (isExpandableGridModel(this.model)) {\n return this.model.isExpandAllAvailable ?? false;\n }\n return false;\n }\n\n isRowExpandable: IrisGridTreeTableModel['isRowExpandable'] = (...args) => {\n if (isExpandableGridModel(this.model)) {\n return this.model.isRowExpandable(...args);\n }\n return false;\n };\n\n isRowExpanded: IrisGridTreeTableModel['isRowExpanded'] = (...args) => {\n if (isExpandableGridModel(this.model)) {\n return this.model.isRowExpanded(...args);\n }\n return false;\n };\n\n setRowExpanded: IrisGridTreeTableModel['setRowExpanded'] = (...args) => {\n if (isExpandableGridModel(this.model)) {\n return this.model.setRowExpanded(...args);\n }\n throw Error('Function setRowExpanded does not exist on IrisGridTableModel');\n };\n\n expandAll: IrisGridTreeTableModel['expandAll'] = () => {\n if (isExpandableGridModel(this.model)) {\n return this.model.expandAll();\n }\n throw Error('Function expandAll does not exist on IrisGridTableModel');\n };\n\n collapseAll: IrisGridTreeTableModel['collapseAll'] = () => {\n if (isExpandableGridModel(this.model)) {\n return this.model.collapseAll();\n }\n throw Error('Function collapseAll does not exist on IrisGridTableModel');\n };\n\n depthForRow: IrisGridTreeTableModel['depthForRow'] = (...args) => {\n if (isExpandableGridModel(this.model)) {\n return this.model.depthForRow(...args);\n }\n return 0;\n // throw Error('Function depthForRow does not exist on IrisGridTableModel');\n };\n\n get isExportAvailable(): boolean {\n return this.model.isExportAvailable;\n }\n\n get isColumnStatisticsAvailable(): boolean {\n return this.model.isColumnStatisticsAvailable;\n }\n\n get isValuesTableAvailable(): boolean {\n return this.model.isValuesTableAvailable;\n }\n\n get isCustomColumnsAvailable(): boolean {\n return (\n this.model.isCustomColumnsAvailable &&\n // Disable for selectDistinct tables\n !(this.isSelectDistinctAvailable && this.selectDistinctColumns.length > 0)\n );\n }\n\n get isFormatColumnsAvailable(): boolean {\n return this.model.isFormatColumnsAvailable;\n }\n\n get isChartBuilderAvailable(): boolean {\n return this.model.isChartBuilderAvailable;\n }\n\n get isRollupAvailable(): boolean {\n return (\n (this.originalModel.isRollupAvailable || this.rollup != null) &&\n this.selectDistinct.length === 0\n );\n }\n\n get isSelectDistinctAvailable(): boolean {\n return (\n (this.originalModel.isSelectDistinctAvailable ||\n this.selectDistinct.length > 0) &&\n this.rollup == null\n );\n }\n\n get isTotalsAvailable(): boolean {\n return this.model.isTotalsAvailable;\n }\n\n get isReversible(): boolean {\n return this.model.isReversible;\n }\n\n get columns(): readonly DhType.Column[] {\n return this.model.columns;\n }\n\n get initialMovedColumns(): readonly MoveOperation[] {\n return this.model.initialMovedColumns;\n }\n\n get initialMovedRows(): readonly MoveOperation[] {\n return this.model.initialMovedRows;\n }\n\n get layoutHints(): DhType.LayoutHints | null | undefined {\n return this.model.layoutHints;\n }\n\n get frontColumns(): readonly ColumnName[] {\n return this.model.frontColumns;\n }\n\n get backColumns(): readonly ColumnName[] {\n return this.model.backColumns;\n }\n\n get frozenColumns(): readonly ColumnName[] {\n return this.model.frozenColumns;\n }\n\n get keyColumnSet(): Set<ColumnName> {\n return this.model.keyColumnSet;\n }\n\n getColumnHeaderGroup: IrisGridModel['getColumnHeaderGroup'] = (...args) =>\n this.model.getColumnHeaderGroup(...args);\n\n get columnHeaderGroups(): readonly ColumnHeaderGroup[] {\n return this.model.columnHeaderGroups;\n }\n\n set columnHeaderGroups(groups: readonly ColumnHeaderGroup[]) {\n this.model.columnHeaderGroups = groups;\n }\n\n get initialColumnHeaderGroups(): readonly ColumnHeaderGroup[] {\n return this.model.initialColumnHeaderGroups;\n }\n\n getColumnHeaderParentGroup: IrisGridModel['getColumnHeaderParentGroup'] = (\n ...args\n ) => this.model.getColumnHeaderParentGroup(...args);\n\n get columnHeaderGroupMap(): ReadonlyMap<string, ColumnHeaderGroup> {\n return this.model.columnHeaderGroupMap;\n }\n\n get columnHeaderMaxDepth(): number {\n return this.model.columnHeaderMaxDepth;\n }\n\n updateFrozenColumns(columns: readonly ColumnName[]): void {\n return this.model.updateFrozenColumns(columns);\n }\n\n get originalColumns(): readonly DhType.Column[] {\n return this.originalModel.columns;\n }\n\n get groupedColumns(): readonly DhType.Column[] {\n return this.model.groupedColumns;\n }\n\n get partitionColumns(): readonly DhType.Column[] {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n return [];\n }\n return this.originalModel.partitionColumns;\n }\n\n sourceForCell: IrisGridModel['sourceForCell'] = (...args) =>\n this.model.sourceForCell(...args);\n\n getClearFilterRange: IrisGridModel['getClearFilterRange'] = (...args) =>\n this.model.getClearFilterRange(...args);\n\n get description(): string {\n return this.model.description;\n }\n\n formatForCell: IrisGridModel['formatForCell'] = (...args) =>\n this.model.formatForCell(...args);\n\n valueForCell: IrisGridModel['valueForCell'] = (...args) =>\n this.model.valueForCell(...args);\n\n renderTypeForCell: IrisGridModel['renderTypeForCell'] = (...args) =>\n this.model.renderTypeForCell(...args);\n\n dataBarOptionsForCell: IrisGridModel['dataBarOptionsForCell'] = (...args) =>\n this.model.dataBarOptionsForCell(...args);\n\n get filter(): readonly DhType.FilterCondition[] {\n return this.model.filter;\n }\n\n set filter(filter: readonly DhType.FilterCondition[]) {\n this.model.filter = filter;\n }\n\n get partitionConfig(): PartitionConfig | null {\n if (\n !isPartitionedGridModelProvider(this.originalModel) ||\n !this.originalModel.isPartitionRequired\n ) {\n return null;\n }\n return this.partition;\n }\n\n set partitionConfig(partitionConfig: PartitionConfig | null) {\n if (!this.isPartitionRequired) {\n throw new Error('Partitions are not available');\n }\n log.debug('set partitionConfig', partitionConfig);\n this.partition = partitionConfig;\n\n let modelPromise = Promise.resolve(this.originalModel);\n if (\n partitionConfig != null &&\n isPartitionedGridModelProvider(this.originalModel)\n ) {\n if (partitionConfig.mode === 'keys') {\n modelPromise = this.originalModel\n .partitionKeysTable()\n .then(table => makeModel(this.dh, table, this.formatter));\n } else if (partitionConfig.mode === 'merged') {\n modelPromise = this.originalModel\n .partitionMergedTable()\n .then(table => makeModel(this.dh, table, this.formatter));\n } else {\n modelPromise = this.originalModel\n .partitionTable(partitionConfig.partitions)\n .then(table => makeModel(this.dh, table, this.formatter));\n }\n }\n\n this.setNextModel(modelPromise);\n }\n\n partitionKeysTable(): Promise<DhType.Table> {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n throw new Error('Partitions are not available');\n }\n return this.originalModel.partitionKeysTable();\n }\n\n partitionMergedTable(): Promise<DhType.Table> {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n throw new Error('Partitions are not available');\n }\n return this.originalModel.partitionMergedTable();\n }\n\n partitionTable(partitions: unknown[]): Promise<DhType.Table> {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n throw new Error('Partitions are not available');\n }\n return this.originalModel.partitionTable(partitions);\n }\n\n get formatter(): Formatter {\n return this.model.formatter;\n }\n\n set formatter(formatter: Formatter) {\n this.model.formatter = formatter;\n }\n\n displayString: IrisGridModel['displayString'] = (...args) =>\n this.model.displayString(...args);\n\n get sort(): readonly DhType.Sort[] {\n return this.model.sort;\n }\n\n set sort(sort: readonly DhType.Sort[]) {\n this.model.sort = sort;\n }\n\n get customColumns(): readonly ColumnName[] {\n return this.model.customColumns;\n }\n\n set customColumns(customColumns: readonly ColumnName[]) {\n this.model.customColumns = customColumns;\n }\n\n get formatColumns(): readonly DhType.CustomColumn[] {\n return this.model.formatColumns;\n }\n\n set formatColumns(formatColumns: readonly DhType.CustomColumn[]) {\n this.model.formatColumns = formatColumns;\n }\n\n get rollupConfig(): DhType.RollupConfig | null {\n return this.rollup;\n }\n\n set rollupConfig(rollupConfig: DhType.RollupConfig | null) {\n log.debug('set rollupConfig', rollupConfig);\n\n if (!this.isRollupAvailable) {\n throw new Error('Rollup Rows are not available');\n }\n\n // Prevent model update when IrisGridModelUpdater is mounted\n // if rollup is already initialized in IrisGridPanel\n if (deepEqual(rollupConfig, this.rollup)) {\n return;\n }\n\n this.rollup = rollupConfig;\n\n let modelPromise = Promise.resolve(this.originalModel);\n\n if (\n isIrisGridTableModelTemplate(this.originalModel) &&\n rollupConfig != null\n ) {\n modelPromise = this.originalModel.table\n .rollup(rollupConfig)\n .then(table => makeModel(this.dh, table, this.formatter));\n }\n this.setNextModel(modelPromise);\n }\n\n get selectDistinctColumns(): ColumnName[] {\n return this.selectDistinct;\n }\n\n set selectDistinctColumns(columnNames: string[]) {\n log.debug('set selectDistinctColumns', columnNames);\n\n if (!this.isSelectDistinctAvailable) {\n throw new Error('Select distinct is not available');\n }\n\n if (\n columnNames === this.selectDistinctColumns ||\n (columnNames.length === 0 && this.selectDistinctColumns.length === 0)\n ) {\n log.debug('Ignore same selectDistinctColumns', columnNames);\n return;\n }\n\n this.selectDistinct = columnNames;\n\n const selectDistinctColumns = columnNames\n .map(name => this.originalColumns.find(column => column.name === name))\n .filter(column => column != null) as DhType.Column[];\n\n let modelPromise = Promise.resolve(this.originalModel);\n\n if (\n isIrisGridTableModelTemplate(this.originalModel) &&\n selectDistinctColumns.length > 0\n ) {\n modelPromise = this.originalModel.table\n .selectDistinct(selectDistinctColumns)\n .then(table => makeModel(this.dh, table, this.formatter));\n }\n this.setNextModel(modelPromise);\n }\n\n get table(): DhType.Table | DhType.TreeTable | undefined {\n if (isIrisGridTableModelTemplate(this.model)) {\n return this.model.table;\n }\n\n return undefined;\n }\n\n get totalsConfig(): UITotalsTableConfig | null {\n return this.model.totalsConfig;\n }\n\n set totalsConfig(totalsConfig: UITotalsTableConfig | null) {\n this.model.totalsConfig = totalsConfig;\n }\n\n get isFilterRequired(): boolean {\n return this.originalModel.isFilterRequired;\n }\n\n get isPartitionRequired(): boolean {\n return isPartitionedGridModelProvider(this.originalModel)\n ? this.originalModel.isPartitionRequired\n : false;\n }\n\n get isEditable(): boolean {\n return isEditableGridModel(this.model) && this.model.isEditable;\n }\n\n get isDeletable(): boolean {\n return isDeletableGridModel(this.model) && this.model.isDeletable;\n }\n\n get isViewportPending(): boolean {\n return this.model.isViewportPending;\n }\n\n isEditableRange: IrisGridTableModel['isEditableRange'] = (\n ...args\n ): boolean => {\n if (isEditableGridModel(this.model)) {\n return this.model.isEditableRange(...args);\n }\n return false;\n };\n\n isDeletableRange: IrisGridTableModel['isDeletableRange'] = (\n ...args\n ): boolean => {\n if (isDeletableGridModel(this.model)) {\n return this.model.isDeletableRange(...args);\n }\n return false;\n };\n\n isDeletableRanges: IrisGridTableModel['isDeletableRanges'] = (\n ...args\n ): boolean => {\n if (isDeletableGridModel(this.model)) {\n return this.model.isDeletableRanges(...args);\n }\n return false;\n };\n\n isFilterable: IrisGridTableModel['isFilterable'] = (...args) =>\n this.model.isFilterable(...args);\n\n setViewport = (\n top: number,\n bottom: number,\n columns?: DhType.Column[]\n ): void => {\n this.currentViewport = { top, bottom, columns };\n this.model.setViewport(top, bottom, columns);\n };\n\n snapshot: IrisGridModel['snapshot'] = (...args) =>\n this.model.snapshot(...args);\n\n textSnapshot: IrisGridTableModel['textSnapshot'] = (...args) =>\n this.model.textSnapshot(...args);\n\n export(): Promise<DhType.Table> {\n if (TableUtils.isTreeTable(this.model)) {\n throw new Error(\"TreeTable has no 'export' property\");\n }\n return (this.model as IrisGridTableModel).export();\n }\n\n valuesTable: IrisGridTableModel['valuesTable'] = (...args) =>\n this.model.valuesTable(...args);\n\n columnStatistics(column: DhType.Column): Promise<DhType.ColumnStatistics> {\n if (TableUtils.isTreeTable(this.model)) {\n throw new Error(\"TreeTable has no 'columnStatistics' function\");\n }\n return (this.model as IrisGridTableModel).columnStatistics(column);\n }\n\n editValueForCell: IrisGridTableModel['editValueForCell'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.editValueForCell(...args);\n }\n return '';\n };\n\n setValueForCell: IrisGridTableModel['setValueForCell'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.setValueForCell(...args);\n }\n return Promise.reject(new Error('Model is not editable'));\n };\n\n setValueForRanges: IrisGridTableModel['setValueForRanges'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.setValueForRanges(...args);\n }\n return Promise.reject(new Error('Model is not editable'));\n };\n\n setValues: EditableGridModel['setValues'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.setValues(...args);\n }\n return Promise.resolve();\n };\n\n isValidForCell: IrisGridTableModel['isValidForCell'] = (...args) => {\n if (isEditableGridModel(this.model)) {\n return this.model.isValidForCell(...args);\n }\n return false;\n };\n\n delete: IrisGridTableModel['delete'] = (...args) => {\n if (isDeletableGridModel(this.model)) {\n return this.model.delete(...args);\n }\n return Promise.reject(new Error('Model is not deletable'));\n };\n\n get pendingDataMap(): PendingDataMap<UIRow> {\n return this.model.pendingDataMap;\n }\n\n set pendingDataMap(map: PendingDataMap<UIRow>) {\n this.model.pendingDataMap = map;\n }\n\n get pendingRowCount(): number {\n return this.model.pendingRowCount;\n }\n\n set pendingRowCount(count: number) {\n this.model.pendingRowCount = count;\n }\n\n get pendingDataErrors(): PendingDataErrorMap {\n return this.model.pendingDataErrors;\n }\n\n commitPending: IrisGridTableModel['commitPending'] = (...args) =>\n this.model.commitPending(...args);\n\n getColumnIndexByName(name: ColumnName): number | undefined {\n return this.model.getColumnIndexByName(name);\n }\n\n async seekRow(\n startRow: number,\n column: DhType.Column,\n valueType: DhType.ValueTypeType,\n value: unknown,\n insensitive?: boolean,\n contains?: boolean,\n isBackwards?: boolean\n ): Promise<number> {\n return this.model.seekRow(\n startRow,\n column,\n valueType,\n value,\n insensitive,\n contains,\n isBackwards\n );\n }\n\n get isSeekRowAvailable(): boolean {\n return this.model.isSeekRowAvailable;\n }\n}\n\nexport default IrisGridProxyModel;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"IrisGridProxyModel.js","names":["deepEqual","Formatter","TableUtils","Log","EventShimCustomEvent","PromiseUtils","IrisGridTableModel","IrisGridPartitionedTableModel","IrisGridTreeTableModel","IrisGridModel","isIrisGridTableModelTemplate","isPartitionedGridModelProvider","log","module","makeModel","dh","table","formatter","inputTable","isTreeTable","isPartitionedTable","IrisGridProxyModel","constructor","arguments","length","undefined","_defineProperty","top","bottom","columns","currentViewport","model","setViewport","addEventListener","bind","removeEventListener","dispatchEvent","handleModelEvent","originalModel","modelPromise","rollup","partition","selectDistinct","Proxy","get","target","prop","receiver","_Object$getOwnPropert","proxyHasGetter","Object","getOwnPropertyDescriptor","getPrototypeOf","Reflect","proxyHasProp","prototype","hasOwnProperty","call","proxyHasFn","trueTarget","set","value","_Object$getOwnPropert2","proxyHasSetter","close","cancel","event","debug2","detail","type","setModel","debug","oldModel","oldColumns","listenerCount","addListeners","EVENT","COLUMNS_CHANGED","TABLE_CHANGED","setNextModel","removeListeners","makeCancelable","then","catch","err","isCanceled","error","REQUEST_FAILED","startListening","stopListening","events","keys","i","isCustomColumnsAvailable","isSelectDistinctAvailable","selectDistinctColumns","isRollupAvailable","originalColumns","partitionColumns","partitionConfig","isPartitionRequired","Error","Promise","resolve","mode","partitionKeysTable","partitionMergedTable","partitionTable","partitions","rollupConfig","columnNames","map","name","find","column","filter","isFilterRequired"],"sources":["../src/IrisGridProxyModel.ts"],"sourcesContent":["import deepEqual from 'fast-deep-equal';\nimport { Formatter, TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n CancelablePromise,\n EventShimCustomEvent,\n PromiseUtils,\n} from '@deephaven/utils';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport IrisGridTableModel from './IrisGridTableModel';\nimport IrisGridPartitionedTableModel from './IrisGridPartitionedTableModel';\nimport IrisGridTreeTableModel from './IrisGridTreeTableModel';\nimport IrisGridModel from './IrisGridModel';\nimport { ColumnName } from './CommonTypes';\nimport { isIrisGridTableModelTemplate } from './IrisGridTableModelTemplate';\nimport {\n PartitionConfig,\n PartitionedGridModel,\n isPartitionedGridModelProvider,\n} from './PartitionedGridModel';\n\nconst log = Log.module('IrisGridProxyModel');\n\nfunction makeModel(\n dh: typeof DhType,\n table: DhType.Table | DhType.TreeTable | DhType.PartitionedTable,\n formatter?: Formatter,\n inputTable?: DhType.InputTable | null\n): IrisGridModel {\n if (TableUtils.isTreeTable(table)) {\n return new IrisGridTreeTableModel(dh, table, formatter);\n }\n if (TableUtils.isPartitionedTable(table)) {\n return new IrisGridPartitionedTableModel(dh, table, formatter);\n }\n return new IrisGridTableModel(dh, table, formatter, inputTable);\n}\n\n/**\n * Model which proxies calls to other IrisGridModels.\n * This allows for operations that generate new tables, like rollups.\n * The proxy model will call any methods it has implemented and delegate any\n * it does not implement to the underlying model.\n */\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore\nclass IrisGridProxyModel extends IrisGridModel implements PartitionedGridModel {\n /**\n * @param dh JSAPI instance\n * @param table Iris data table to be used in the model\n * @param formatter The formatter to use when getting formats\n * @param inputTable Iris input table associated with this table\n */\n\n model: IrisGridModel;\n\n dh: typeof DhType;\n\n private originalModel: IrisGridModel;\n\n private modelPromise: CancelablePromise<IrisGridModel> | null;\n\n private rollup: DhType.RollupConfig | null;\n\n private partition: PartitionConfig | null;\n\n private selectDistinct: ColumnName[];\n\n private currentViewport?: {\n top: number;\n bottom: number;\n columns?: DhType.Column[];\n };\n\n constructor(\n dh: typeof DhType,\n table: DhType.Table | DhType.TreeTable | DhType.PartitionedTable,\n formatter = new Formatter(dh),\n inputTable: DhType.InputTable | null = null\n ) {\n super(dh);\n\n // The EventTarget methods must be bound to this instance\n // Otherwise they throw errors because of the Proxy\n this.addEventListener = this.addEventListener.bind(this);\n this.removeEventListener = this.removeEventListener.bind(this);\n this.dispatchEvent = this.dispatchEvent.bind(this);\n\n this.handleModelEvent = this.handleModelEvent.bind(this);\n\n const model = makeModel(dh, table, formatter, inputTable);\n this.dh = dh;\n this.originalModel = model;\n this.model = model;\n this.modelPromise = null;\n this.rollup = null;\n this.partition = null;\n this.selectDistinct = [];\n\n // eslint-disable-next-line no-constructor-return\n return new Proxy(this, {\n // We want to use any properties on the proxy model if defined\n // If not, then proxy to the underlying model\n get(target, prop, receiver) {\n // Does this class have a getter for the prop\n // Getter functions are on the prototype\n const proxyHasGetter =\n Object.getOwnPropertyDescriptor(Object.getPrototypeOf(target), prop)\n ?.get != null;\n\n if (proxyHasGetter) {\n return Reflect.get(target, prop, receiver);\n }\n\n // Does this class implement the property\n const proxyHasProp = Object.prototype.hasOwnProperty.call(target, prop);\n\n // Does the class implement a function for the property\n const proxyHasFn = Object.prototype.hasOwnProperty.call(\n Object.getPrototypeOf(target),\n prop\n );\n\n const trueTarget = proxyHasProp || proxyHasFn ? target : target.model;\n return Reflect.get(trueTarget, prop);\n },\n set(target, prop, value) {\n const proxyHasSetter =\n Object.getOwnPropertyDescriptor(Object.getPrototypeOf(target), prop)\n ?.set != null;\n\n if (proxyHasSetter) {\n return Reflect.set(target, prop, value, target);\n }\n\n return Reflect.set(target.model, prop, value, target.model);\n },\n });\n }\n\n close(): void {\n this.originalModel.close();\n if (this.model !== this.originalModel) {\n this.model.close();\n }\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n }\n }\n\n handleModelEvent(event: CustomEvent): void {\n log.debug2('handleModelEvent', event);\n\n const { detail, type } = event;\n this.dispatchEvent(new EventShimCustomEvent(type, { detail }));\n }\n\n setModel(model: IrisGridModel): void {\n log.debug('setModel', model);\n\n const oldModel = this.model;\n const { columns: oldColumns } = oldModel;\n\n if (oldModel !== this.originalModel) {\n oldModel.close();\n }\n\n this.model = model;\n\n if (this.listenerCount > 0) {\n this.addListeners(model);\n }\n\n if (oldColumns !== model.columns) {\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.COLUMNS_CHANGED, {\n detail: model.columns,\n })\n );\n } else if (this.currentViewport != null) {\n // If the columns haven't changed, the current viewport should still valid, and needs to be set on the new model\n const { top, bottom, columns } = this.currentViewport;\n model.setViewport(top, bottom, columns);\n }\n\n if (isIrisGridTableModelTemplate(model)) {\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.TABLE_CHANGED, {\n detail: model.table,\n })\n );\n }\n }\n\n setNextModel(modelPromise: Promise<IrisGridModel>): void {\n log.debug2('setNextModel');\n\n if (this.modelPromise) {\n this.modelPromise.cancel();\n }\n\n if (this.listenerCount > 0) {\n this.removeListeners(this.model);\n }\n\n this.modelPromise = PromiseUtils.makeCancelable(\n modelPromise,\n (model: IrisGridModel) => model.close()\n );\n this.modelPromise\n .then(model => {\n this.modelPromise = null;\n this.setModel(model);\n })\n .catch((err: unknown) => {\n if (PromiseUtils.isCanceled(err)) {\n log.debug2('setNextModel cancelled');\n return;\n }\n\n log.error('Unable to set next model', err);\n this.modelPromise = null;\n\n this.dispatchEvent(\n new EventShimCustomEvent(IrisGridModel.EVENT.REQUEST_FAILED, {\n detail: err,\n })\n );\n });\n }\n\n startListening(): void {\n super.startListening();\n\n this.addListeners(this.model);\n }\n\n stopListening(): void {\n super.stopListening();\n\n this.removeListeners(this.model);\n }\n\n addListeners(model: IrisGridModel): void {\n const events = Object.keys(IrisGridModel.EVENT);\n for (let i = 0; i < events.length; i += 1) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n model.addEventListener(events[i], this.handleModelEvent);\n }\n }\n\n removeListeners(model: IrisGridModel): void {\n const events = Object.keys(IrisGridModel.EVENT);\n for (let i = 0; i < events.length; i += 1) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n model.removeEventListener(events[i], this.handleModelEvent);\n }\n }\n\n get isCustomColumnsAvailable(): boolean {\n return (\n this.model.isCustomColumnsAvailable &&\n // Disable for selectDistinct tables\n !(this.isSelectDistinctAvailable && this.selectDistinctColumns.length > 0)\n );\n }\n\n get isRollupAvailable(): boolean {\n return (\n (this.originalModel.isRollupAvailable || this.rollup != null) &&\n this.selectDistinct.length === 0\n );\n }\n\n get isSelectDistinctAvailable(): boolean {\n return (\n (this.originalModel.isSelectDistinctAvailable ||\n this.selectDistinct.length > 0) &&\n this.rollup == null\n );\n }\n\n get originalColumns(): readonly DhType.Column[] {\n return this.originalModel.columns;\n }\n\n get partitionColumns(): readonly DhType.Column[] {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n return [];\n }\n return this.originalModel.partitionColumns;\n }\n\n get partitionConfig(): PartitionConfig | null {\n if (\n !isPartitionedGridModelProvider(this.originalModel) ||\n !this.originalModel.isPartitionRequired\n ) {\n return null;\n }\n return this.partition;\n }\n\n set partitionConfig(partitionConfig: PartitionConfig | null) {\n if (!this.isPartitionRequired) {\n throw new Error('Partitions are not available');\n }\n log.debug('set partitionConfig', partitionConfig);\n this.partition = partitionConfig;\n\n let modelPromise = Promise.resolve(this.originalModel);\n if (\n partitionConfig != null &&\n isPartitionedGridModelProvider(this.originalModel)\n ) {\n if (partitionConfig.mode === 'keys') {\n modelPromise = this.originalModel\n .partitionKeysTable()\n .then(table => makeModel(this.dh, table, this.formatter));\n } else if (partitionConfig.mode === 'merged') {\n modelPromise = this.originalModel\n .partitionMergedTable()\n .then(table => makeModel(this.dh, table, this.formatter));\n } else {\n modelPromise = this.originalModel\n .partitionTable(partitionConfig.partitions)\n .then(table => makeModel(this.dh, table, this.formatter));\n }\n }\n\n this.setNextModel(modelPromise);\n }\n\n partitionKeysTable(): Promise<DhType.Table> {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n throw new Error('Partitions are not available');\n }\n return this.originalModel.partitionKeysTable();\n }\n\n partitionMergedTable(): Promise<DhType.Table> {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n throw new Error('Partitions are not available');\n }\n return this.originalModel.partitionMergedTable();\n }\n\n partitionTable(partitions: unknown[]): Promise<DhType.Table> {\n if (!isPartitionedGridModelProvider(this.originalModel)) {\n throw new Error('Partitions are not available');\n }\n return this.originalModel.partitionTable(partitions);\n }\n\n get rollupConfig(): DhType.RollupConfig | null {\n return this.rollup;\n }\n\n set rollupConfig(rollupConfig: DhType.RollupConfig | null) {\n log.debug('set rollupConfig', rollupConfig);\n\n if (!this.isRollupAvailable) {\n throw new Error('Rollup Rows are not available');\n }\n\n // Prevent model update when IrisGridModelUpdater is mounted\n // if rollup is already initialized in IrisGridPanel\n if (deepEqual(rollupConfig, this.rollup)) {\n return;\n }\n\n this.rollup = rollupConfig;\n\n let modelPromise = Promise.resolve(this.originalModel);\n\n if (\n isIrisGridTableModelTemplate(this.originalModel) &&\n rollupConfig != null\n ) {\n modelPromise = this.originalModel.table\n .rollup(rollupConfig)\n .then(table => makeModel(this.dh, table, this.formatter));\n }\n this.setNextModel(modelPromise);\n }\n\n get selectDistinctColumns(): ColumnName[] {\n return this.selectDistinct;\n }\n\n set selectDistinctColumns(columnNames: string[]) {\n log.debug('set selectDistinctColumns', columnNames);\n\n if (!this.isSelectDistinctAvailable) {\n throw new Error('Select distinct is not available');\n }\n\n if (\n columnNames === this.selectDistinctColumns ||\n (columnNames.length === 0 && this.selectDistinctColumns.length === 0)\n ) {\n log.debug('Ignore same selectDistinctColumns', columnNames);\n return;\n }\n\n this.selectDistinct = columnNames;\n\n const selectDistinctColumns = columnNames\n .map(name => this.originalColumns.find(column => column.name === name))\n .filter(column => column != null) as DhType.Column[];\n\n let modelPromise = Promise.resolve(this.originalModel);\n\n if (\n isIrisGridTableModelTemplate(this.originalModel) &&\n selectDistinctColumns.length > 0\n ) {\n modelPromise = this.originalModel.table\n .selectDistinct(selectDistinctColumns)\n .then(table => makeModel(this.dh, table, this.formatter));\n }\n this.setNextModel(modelPromise);\n }\n\n get isFilterRequired(): boolean {\n return this.originalModel.isFilterRequired;\n }\n\n get isPartitionRequired(): boolean {\n return isPartitionedGridModelProvider(this.originalModel)\n ? this.originalModel.isPartitionRequired\n : false;\n }\n\n setViewport = (\n top: number,\n bottom: number,\n columns?: DhType.Column[]\n ): void => {\n this.currentViewport = { top, bottom, columns };\n this.model.setViewport(top, bottom, columns);\n };\n}\n\nexport default IrisGridProxyModel;\n"],"mappings":";;;AAAA,OAAOA,SAAS,MAAM,iBAAiB;AACvC,SAASC,SAAS,EAAEC,UAAU,QAAQ,wBAAwB;AAC9D,OAAOC,GAAG,MAAM,gBAAgB;AAChC,SAEEC,oBAAoB,EACpBC,YAAY,QACP,kBAAkB;AAAC,OAEnBC,kBAAkB;AAAA,OAClBC,6BAA6B;AAAA,OAC7BC,sBAAsB;AAAA,OACtBC,aAAa;AAAA,SAEXC,4BAA4B;AAAA,SAInCC,8BAA8B;AAGhC,IAAMC,GAAG,GAAGT,GAAG,CAACU,MAAM,CAAC,oBAAoB,CAAC;AAE5C,SAASC,SAASA,CAChBC,EAAiB,EACjBC,KAAgE,EAChEC,SAAqB,EACrBC,UAAqC,EACtB;EACf,IAAIhB,UAAU,CAACiB,WAAW,CAACH,KAAK,CAAC,EAAE;IACjC,OAAO,IAAIR,sBAAsB,CAACO,EAAE,EAAEC,KAAK,EAAEC,SAAS,CAAC;EACzD;EACA,IAAIf,UAAU,CAACkB,kBAAkB,CAACJ,KAAK,CAAC,EAAE;IACxC,OAAO,IAAIT,6BAA6B,CAACQ,EAAE,EAAEC,KAAK,EAAEC,SAAS,CAAC;EAChE;EACA,OAAO,IAAIX,kBAAkB,CAACS,EAAE,EAAEC,KAAK,EAAEC,SAAS,EAAEC,UAAU,CAAC;AACjE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,kBAAkB,SAASZ,aAAa,CAAiC;EAC7E;AACF;AACA;AACA;AACA;AACA;;EAsBEa,WAAWA,CACTP,EAAiB,EACjBC,KAAgE,EAGhE;IAAA,IAFAC,SAAS,GAAAM,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAItB,SAAS,CAACc,EAAE,CAAC;IAAA,IAC7BG,UAAoC,GAAAK,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,IAAI;IAE3C,KAAK,CAACR,EAAE,CAAC;;IAET;IACA;IAAAW,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,sBAiWY,CACZC,GAAW,EACXC,MAAc,EACdC,OAAyB,KAChB;MACT,IAAI,CAACC,eAAe,GAAG;QAAEH,GAAG;QAAEC,MAAM;QAAEC;MAAQ,CAAC;MAC/C,IAAI,CAACE,KAAK,CAACC,WAAW,CAACL,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;IAC9C,CAAC;IAvWC,IAAI,CAACI,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACC,IAAI,CAAC,IAAI,CAAC;IACxD,IAAI,CAACC,mBAAmB,GAAG,IAAI,CAACA,mBAAmB,CAACD,IAAI,CAAC,IAAI,CAAC;IAC9D,IAAI,CAACE,aAAa,GAAG,IAAI,CAACA,aAAa,CAACF,IAAI,CAAC,IAAI,CAAC;IAElD,IAAI,CAACG,gBAAgB,GAAG,IAAI,CAACA,gBAAgB,CAACH,IAAI,CAAC,IAAI,CAAC;IAExD,IAAMH,KAAK,GAAGjB,SAAS,CAACC,EAAE,EAAEC,KAAK,EAAEC,SAAS,EAAEC,UAAU,CAAC;IACzD,IAAI,CAACH,EAAE,GAAGA,EAAE;IACZ,IAAI,CAACuB,aAAa,GAAGP,KAAK;IAC1B,IAAI,CAACA,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACQ,YAAY,GAAG,IAAI;IACxB,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB,IAAI,CAACC,SAAS,GAAG,IAAI;IACrB,IAAI,CAACC,cAAc,GAAG,EAAE;;IAExB;IACA,OAAO,IAAIC,KAAK,CAAC,IAAI,EAAE;MACrB;MACA;MACAC,GAAGA,CAACC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAE;QAAA,IAAAC,qBAAA;QAC1B;QACA;QACA,IAAMC,cAAc,GAClB,EAAAD,qBAAA,GAAAE,MAAM,CAACC,wBAAwB,CAACD,MAAM,CAACE,cAAc,CAACP,MAAM,CAAC,EAAEC,IAAI,CAAC,cAAAE,qBAAA,uBAApEA,qBAAA,CACIJ,GAAG,KAAI,IAAI;QAEjB,IAAIK,cAAc,EAAE;UAClB,OAAOI,OAAO,CAACT,GAAG,CAACC,MAAM,EAAEC,IAAI,EAAEC,QAAQ,CAAC;QAC5C;;QAEA;QACA,IAAMO,YAAY,GAAGJ,MAAM,CAACK,SAAS,CAACC,cAAc,CAACC,IAAI,CAACZ,MAAM,EAAEC,IAAI,CAAC;;QAEvE;QACA,IAAMY,UAAU,GAAGR,MAAM,CAACK,SAAS,CAACC,cAAc,CAACC,IAAI,CACrDP,MAAM,CAACE,cAAc,CAACP,MAAM,CAAC,EAC7BC,IACF,CAAC;QAED,IAAMa,UAAU,GAAGL,YAAY,IAAII,UAAU,GAAGb,MAAM,GAAGA,MAAM,CAACd,KAAK;QACrE,OAAOsB,OAAO,CAACT,GAAG,CAACe,UAAU,EAAEb,IAAI,CAAC;MACtC,CAAC;MACDc,GAAGA,CAACf,MAAM,EAAEC,IAAI,EAAEe,KAAK,EAAE;QAAA,IAAAC,sBAAA;QACvB,IAAMC,cAAc,GAClB,EAAAD,sBAAA,GAAAZ,MAAM,CAACC,wBAAwB,CAACD,MAAM,CAACE,cAAc,CAACP,MAAM,CAAC,EAAEC,IAAI,CAAC,cAAAgB,sBAAA,uBAApEA,sBAAA,CACIF,GAAG,KAAI,IAAI;QAEjB,IAAIG,cAAc,EAAE;UAClB,OAAOV,OAAO,CAACO,GAAG,CAACf,MAAM,EAAEC,IAAI,EAAEe,KAAK,EAAEhB,MAAM,CAAC;QACjD;QAEA,OAAOQ,OAAO,CAACO,GAAG,CAACf,MAAM,CAACd,KAAK,EAAEe,IAAI,EAAEe,KAAK,EAAEhB,MAAM,CAACd,KAAK,CAAC;MAC7D;IACF,CAAC,CAAC;EACJ;EAEAiC,KAAKA,CAAA,EAAS;IACZ,IAAI,CAAC1B,aAAa,CAAC0B,KAAK,CAAC,CAAC;IAC1B,IAAI,IAAI,CAACjC,KAAK,KAAK,IAAI,CAACO,aAAa,EAAE;MACrC,IAAI,CAACP,KAAK,CAACiC,KAAK,CAAC,CAAC;IACpB;IACA,IAAI,IAAI,CAACzB,YAAY,IAAI,IAAI,EAAE;MAC7B,IAAI,CAACA,YAAY,CAAC0B,MAAM,CAAC,CAAC;IAC5B;EACF;EAEA5B,gBAAgBA,CAAC6B,KAAkB,EAAQ;IACzCtD,GAAG,CAACuD,MAAM,CAAC,kBAAkB,EAAED,KAAK,CAAC;IAErC,IAAM;MAAEE,MAAM;MAAEC;IAAK,CAAC,GAAGH,KAAK;IAC9B,IAAI,CAAC9B,aAAa,CAAC,IAAIhC,oBAAoB,CAACiE,IAAI,EAAE;MAAED;IAAO,CAAC,CAAC,CAAC;EAChE;EAEAE,QAAQA,CAACvC,KAAoB,EAAQ;IACnCnB,GAAG,CAAC2D,KAAK,CAAC,UAAU,EAAExC,KAAK,CAAC;IAE5B,IAAMyC,QAAQ,GAAG,IAAI,CAACzC,KAAK;IAC3B,IAAM;MAAEF,OAAO,EAAE4C;IAAW,CAAC,GAAGD,QAAQ;IAExC,IAAIA,QAAQ,KAAK,IAAI,CAAClC,aAAa,EAAE;MACnCkC,QAAQ,CAACR,KAAK,CAAC,CAAC;IAClB;IAEA,IAAI,CAACjC,KAAK,GAAGA,KAAK;IAElB,IAAI,IAAI,CAAC2C,aAAa,GAAG,CAAC,EAAE;MAC1B,IAAI,CAACC,YAAY,CAAC5C,KAAK,CAAC;IAC1B;IAEA,IAAI0C,UAAU,KAAK1C,KAAK,CAACF,OAAO,EAAE;MAChC,IAAI,CAACO,aAAa,CAChB,IAAIhC,oBAAoB,CAACK,aAAa,CAACmE,KAAK,CAACC,eAAe,EAAE;QAC5DT,MAAM,EAAErC,KAAK,CAACF;MAChB,CAAC,CACH,CAAC;IACH,CAAC,MAAM,IAAI,IAAI,CAACC,eAAe,IAAI,IAAI,EAAE;MACvC;MACA,IAAM;QAAEH,GAAG;QAAEC,MAAM;QAAEC;MAAQ,CAAC,GAAG,IAAI,CAACC,eAAe;MACrDC,KAAK,CAACC,WAAW,CAACL,GAAG,EAAEC,MAAM,EAAEC,OAAO,CAAC;IACzC;IAEA,IAAInB,4BAA4B,CAACqB,KAAK,CAAC,EAAE;MACvC,IAAI,CAACK,aAAa,CAChB,IAAIhC,oBAAoB,CAACK,aAAa,CAACmE,KAAK,CAACE,aAAa,EAAE;QAC1DV,MAAM,EAAErC,KAAK,CAACf;MAChB,CAAC,CACH,CAAC;IACH;EACF;EAEA+D,YAAYA,CAACxC,YAAoC,EAAQ;IACvD3B,GAAG,CAACuD,MAAM,CAAC,cAAc,CAAC;IAE1B,IAAI,IAAI,CAAC5B,YAAY,EAAE;MACrB,IAAI,CAACA,YAAY,CAAC0B,MAAM,CAAC,CAAC;IAC5B;IAEA,IAAI,IAAI,CAACS,aAAa,GAAG,CAAC,EAAE;MAC1B,IAAI,CAACM,eAAe,CAAC,IAAI,CAACjD,KAAK,CAAC;IAClC;IAEA,IAAI,CAACQ,YAAY,GAAGlC,YAAY,CAAC4E,cAAc,CAC7C1C,YAAY,EACXR,KAAoB,IAAKA,KAAK,CAACiC,KAAK,CAAC,CACxC,CAAC;IACD,IAAI,CAACzB,YAAY,CACd2C,IAAI,CAACnD,KAAK,IAAI;MACb,IAAI,CAACQ,YAAY,GAAG,IAAI;MACxB,IAAI,CAAC+B,QAAQ,CAACvC,KAAK,CAAC;IACtB,CAAC,CAAC,CACDoD,KAAK,CAAEC,GAAY,IAAK;MACvB,IAAI/E,YAAY,CAACgF,UAAU,CAACD,GAAG,CAAC,EAAE;QAChCxE,GAAG,CAACuD,MAAM,CAAC,wBAAwB,CAAC;QACpC;MACF;MAEAvD,GAAG,CAAC0E,KAAK,CAAC,0BAA0B,EAAEF,GAAG,CAAC;MAC1C,IAAI,CAAC7C,YAAY,GAAG,IAAI;MAExB,IAAI,CAACH,aAAa,CAChB,IAAIhC,oBAAoB,CAACK,aAAa,CAACmE,KAAK,CAACW,cAAc,EAAE;QAC3DnB,MAAM,EAAEgB;MACV,CAAC,CACH,CAAC;IACH,CAAC,CAAC;EACN;EAEAI,cAAcA,CAAA,EAAS;IACrB,KAAK,CAACA,cAAc,CAAC,CAAC;IAEtB,IAAI,CAACb,YAAY,CAAC,IAAI,CAAC5C,KAAK,CAAC;EAC/B;EAEA0D,aAAaA,CAAA,EAAS;IACpB,KAAK,CAACA,aAAa,CAAC,CAAC;IAErB,IAAI,CAACT,eAAe,CAAC,IAAI,CAACjD,KAAK,CAAC;EAClC;EAEA4C,YAAYA,CAAC5C,KAAoB,EAAQ;IACvC,IAAM2D,MAAM,GAAGxC,MAAM,CAACyC,IAAI,CAAClF,aAAa,CAACmE,KAAK,CAAC;IAC/C,KAAK,IAAIgB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAAClE,MAAM,EAAEoE,CAAC,IAAI,CAAC,EAAE;MACzC;MACA;MACA7D,KAAK,CAACE,gBAAgB,CAACyD,MAAM,CAACE,CAAC,CAAC,EAAE,IAAI,CAACvD,gBAAgB,CAAC;IAC1D;EACF;EAEA2C,eAAeA,CAACjD,KAAoB,EAAQ;IAC1C,IAAM2D,MAAM,GAAGxC,MAAM,CAACyC,IAAI,CAAClF,aAAa,CAACmE,KAAK,CAAC;IAC/C,KAAK,IAAIgB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGF,MAAM,CAAClE,MAAM,EAAEoE,CAAC,IAAI,CAAC,EAAE;MACzC;MACA;MACA7D,KAAK,CAACI,mBAAmB,CAACuD,MAAM,CAACE,CAAC,CAAC,EAAE,IAAI,CAACvD,gBAAgB,CAAC;IAC7D;EACF;EAEA,IAAIwD,wBAAwBA,CAAA,EAAY;IACtC,OACE,IAAI,CAAC9D,KAAK,CAAC8D,wBAAwB;IACnC;IACA,EAAE,IAAI,CAACC,yBAAyB,IAAI,IAAI,CAACC,qBAAqB,CAACvE,MAAM,GAAG,CAAC,CAAC;EAE9E;EAEA,IAAIwE,iBAAiBA,CAAA,EAAY;IAC/B,OACE,CAAC,IAAI,CAAC1D,aAAa,CAAC0D,iBAAiB,IAAI,IAAI,CAACxD,MAAM,IAAI,IAAI,KAC5D,IAAI,CAACE,cAAc,CAAClB,MAAM,KAAK,CAAC;EAEpC;EAEA,IAAIsE,yBAAyBA,CAAA,EAAY;IACvC,OACE,CAAC,IAAI,CAACxD,aAAa,CAACwD,yBAAyB,IAC3C,IAAI,CAACpD,cAAc,CAAClB,MAAM,GAAG,CAAC,KAChC,IAAI,CAACgB,MAAM,IAAI,IAAI;EAEvB;EAEA,IAAIyD,eAAeA,CAAA,EAA6B;IAC9C,OAAO,IAAI,CAAC3D,aAAa,CAACT,OAAO;EACnC;EAEA,IAAIqE,gBAAgBA,CAAA,EAA6B;IAC/C,IAAI,CAACvF,8BAA8B,CAAC,IAAI,CAAC2B,aAAa,CAAC,EAAE;MACvD,OAAO,EAAE;IACX;IACA,OAAO,IAAI,CAACA,aAAa,CAAC4D,gBAAgB;EAC5C;EAEA,IAAIC,eAAeA,CAAA,EAA2B;IAC5C,IACE,CAACxF,8BAA8B,CAAC,IAAI,CAAC2B,aAAa,CAAC,IACnD,CAAC,IAAI,CAACA,aAAa,CAAC8D,mBAAmB,EACvC;MACA,OAAO,IAAI;IACb;IACA,OAAO,IAAI,CAAC3D,SAAS;EACvB;EAEA,IAAI0D,eAAeA,CAACA,eAAuC,EAAE;IAC3D,IAAI,CAAC,IAAI,CAACC,mBAAmB,EAAE;MAC7B,MAAM,IAAIC,KAAK,CAAC,8BAA8B,CAAC;IACjD;IACAzF,GAAG,CAAC2D,KAAK,CAAC,qBAAqB,EAAE4B,eAAe,CAAC;IACjD,IAAI,CAAC1D,SAAS,GAAG0D,eAAe;IAEhC,IAAI5D,YAAY,GAAG+D,OAAO,CAACC,OAAO,CAAC,IAAI,CAACjE,aAAa,CAAC;IACtD,IACE6D,eAAe,IAAI,IAAI,IACvBxF,8BAA8B,CAAC,IAAI,CAAC2B,aAAa,CAAC,EAClD;MACA,IAAI6D,eAAe,CAACK,IAAI,KAAK,MAAM,EAAE;QACnCjE,YAAY,GAAG,IAAI,CAACD,aAAa,CAC9BmE,kBAAkB,CAAC,CAAC,CACpBvB,IAAI,CAAClE,KAAK,IAAIF,SAAS,CAAC,IAAI,CAACC,EAAE,EAAEC,KAAK,EAAE,IAAI,CAACC,SAAS,CAAC,CAAC;MAC7D,CAAC,MAAM,IAAIkF,eAAe,CAACK,IAAI,KAAK,QAAQ,EAAE;QAC5CjE,YAAY,GAAG,IAAI,CAACD,aAAa,CAC9BoE,oBAAoB,CAAC,CAAC,CACtBxB,IAAI,CAAClE,KAAK,IAAIF,SAAS,CAAC,IAAI,CAACC,EAAE,EAAEC,KAAK,EAAE,IAAI,CAACC,SAAS,CAAC,CAAC;MAC7D,CAAC,MAAM;QACLsB,YAAY,GAAG,IAAI,CAACD,aAAa,CAC9BqE,cAAc,CAACR,eAAe,CAACS,UAAU,CAAC,CAC1C1B,IAAI,CAAClE,KAAK,IAAIF,SAAS,CAAC,IAAI,CAACC,EAAE,EAAEC,KAAK,EAAE,IAAI,CAACC,SAAS,CAAC,CAAC;MAC7D;IACF;IAEA,IAAI,CAAC8D,YAAY,CAACxC,YAAY,CAAC;EACjC;EAEAkE,kBAAkBA,CAAA,EAA0B;IAC1C,IAAI,CAAC9F,8BAA8B,CAAC,IAAI,CAAC2B,aAAa,CAAC,EAAE;MACvD,MAAM,IAAI+D,KAAK,CAAC,8BAA8B,CAAC;IACjD;IACA,OAAO,IAAI,CAAC/D,aAAa,CAACmE,kBAAkB,CAAC,CAAC;EAChD;EAEAC,oBAAoBA,CAAA,EAA0B;IAC5C,IAAI,CAAC/F,8BAA8B,CAAC,IAAI,CAAC2B,aAAa,CAAC,EAAE;MACvD,MAAM,IAAI+D,KAAK,CAAC,8BAA8B,CAAC;IACjD;IACA,OAAO,IAAI,CAAC/D,aAAa,CAACoE,oBAAoB,CAAC,CAAC;EAClD;EAEAC,cAAcA,CAACC,UAAqB,EAAyB;IAC3D,IAAI,CAACjG,8BAA8B,CAAC,IAAI,CAAC2B,aAAa,CAAC,EAAE;MACvD,MAAM,IAAI+D,KAAK,CAAC,8BAA8B,CAAC;IACjD;IACA,OAAO,IAAI,CAAC/D,aAAa,CAACqE,cAAc,CAACC,UAAU,CAAC;EACtD;EAEA,IAAIC,YAAYA,CAAA,EAA+B;IAC7C,OAAO,IAAI,CAACrE,MAAM;EACpB;EAEA,IAAIqE,YAAYA,CAACA,YAAwC,EAAE;IACzDjG,GAAG,CAAC2D,KAAK,CAAC,kBAAkB,EAAEsC,YAAY,CAAC;IAE3C,IAAI,CAAC,IAAI,CAACb,iBAAiB,EAAE;MAC3B,MAAM,IAAIK,KAAK,CAAC,+BAA+B,CAAC;IAClD;;IAEA;IACA;IACA,IAAIrG,SAAS,CAAC6G,YAAY,EAAE,IAAI,CAACrE,MAAM,CAAC,EAAE;MACxC;IACF;IAEA,IAAI,CAACA,MAAM,GAAGqE,YAAY;IAE1B,IAAItE,YAAY,GAAG+D,OAAO,CAACC,OAAO,CAAC,IAAI,CAACjE,aAAa,CAAC;IAEtD,IACE5B,4BAA4B,CAAC,IAAI,CAAC4B,aAAa,CAAC,IAChDuE,YAAY,IAAI,IAAI,EACpB;MACAtE,YAAY,GAAG,IAAI,CAACD,aAAa,CAACtB,KAAK,CACpCwB,MAAM,CAACqE,YAAY,CAAC,CACpB3B,IAAI,CAAClE,KAAK,IAAIF,SAAS,CAAC,IAAI,CAACC,EAAE,EAAEC,KAAK,EAAE,IAAI,CAACC,SAAS,CAAC,CAAC;IAC7D;IACA,IAAI,CAAC8D,YAAY,CAACxC,YAAY,CAAC;EACjC;EAEA,IAAIwD,qBAAqBA,CAAA,EAAiB;IACxC,OAAO,IAAI,CAACrD,cAAc;EAC5B;EAEA,IAAIqD,qBAAqBA,CAACe,WAAqB,EAAE;IAC/ClG,GAAG,CAAC2D,KAAK,CAAC,2BAA2B,EAAEuC,WAAW,CAAC;IAEnD,IAAI,CAAC,IAAI,CAAChB,yBAAyB,EAAE;MACnC,MAAM,IAAIO,KAAK,CAAC,kCAAkC,CAAC;IACrD;IAEA,IACES,WAAW,KAAK,IAAI,CAACf,qBAAqB,IACzCe,WAAW,CAACtF,MAAM,KAAK,CAAC,IAAI,IAAI,CAACuE,qBAAqB,CAACvE,MAAM,KAAK,CAAE,EACrE;MACAZ,GAAG,CAAC2D,KAAK,CAAC,mCAAmC,EAAEuC,WAAW,CAAC;MAC3D;IACF;IAEA,IAAI,CAACpE,cAAc,GAAGoE,WAAW;IAEjC,IAAMf,qBAAqB,GAAGe,WAAW,CACtCC,GAAG,CAACC,IAAI,IAAI,IAAI,CAACf,eAAe,CAACgB,IAAI,CAACC,MAAM,IAAIA,MAAM,CAACF,IAAI,KAAKA,IAAI,CAAC,CAAC,CACtEG,MAAM,CAACD,MAAM,IAAIA,MAAM,IAAI,IAAI,CAAoB;IAEtD,IAAI3E,YAAY,GAAG+D,OAAO,CAACC,OAAO,CAAC,IAAI,CAACjE,aAAa,CAAC;IAEtD,IACE5B,4BAA4B,CAAC,IAAI,CAAC4B,aAAa,CAAC,IAChDyD,qBAAqB,CAACvE,MAAM,GAAG,CAAC,EAChC;MACAe,YAAY,GAAG,IAAI,CAACD,aAAa,CAACtB,KAAK,CACpC0B,cAAc,CAACqD,qBAAqB,CAAC,CACrCb,IAAI,CAAClE,KAAK,IAAIF,SAAS,CAAC,IAAI,CAACC,EAAE,EAAEC,KAAK,EAAE,IAAI,CAACC,SAAS,CAAC,CAAC;IAC7D;IACA,IAAI,CAAC8D,YAAY,CAACxC,YAAY,CAAC;EACjC;EAEA,IAAI6E,gBAAgBA,CAAA,EAAY;IAC9B,OAAO,IAAI,CAAC9E,aAAa,CAAC8E,gBAAgB;EAC5C;EAEA,IAAIhB,mBAAmBA,CAAA,EAAY;IACjC,OAAOzF,8BAA8B,CAAC,IAAI,CAAC2B,aAAa,CAAC,GACrD,IAAI,CAACA,aAAa,CAAC8D,mBAAmB,GACtC,KAAK;EACX;AAUF;AAEA,eAAe/E,kBAAkB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/iris-grid",
|
|
3
|
-
"version": "0.84.0",
|
|
3
|
+
"version": "0.84.1-beta.0+e3aa3920",
|
|
4
4
|
"description": "Deephaven Iris Grid",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -31,18 +31,18 @@
|
|
|
31
31
|
"build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
|
|
32
32
|
},
|
|
33
33
|
"dependencies": {
|
|
34
|
-
"@deephaven/components": "^0.84.0",
|
|
35
|
-
"@deephaven/console": "^0.84.0",
|
|
36
|
-
"@deephaven/filters": "^0.84.0",
|
|
37
|
-
"@deephaven/grid": "^0.84.0",
|
|
38
|
-
"@deephaven/icons": "^0.84.0",
|
|
39
|
-
"@deephaven/jsapi-components": "^0.84.0",
|
|
34
|
+
"@deephaven/components": "^0.84.1-beta.0+e3aa3920",
|
|
35
|
+
"@deephaven/console": "^0.84.1-beta.0+e3aa3920",
|
|
36
|
+
"@deephaven/filters": "^0.84.1-beta.0+e3aa3920",
|
|
37
|
+
"@deephaven/grid": "^0.84.1-beta.0+e3aa3920",
|
|
38
|
+
"@deephaven/icons": "^0.84.1-beta.0+e3aa3920",
|
|
39
|
+
"@deephaven/jsapi-components": "^0.84.1-beta.0+e3aa3920",
|
|
40
40
|
"@deephaven/jsapi-types": "1.0.0-dev0.34.0",
|
|
41
|
-
"@deephaven/jsapi-utils": "^0.84.0",
|
|
42
|
-
"@deephaven/log": "^0.84.0",
|
|
43
|
-
"@deephaven/react-hooks": "^0.84.0",
|
|
44
|
-
"@deephaven/storage": "^0.84.0",
|
|
45
|
-
"@deephaven/utils": "^0.84.0",
|
|
41
|
+
"@deephaven/jsapi-utils": "^0.84.1-beta.0+e3aa3920",
|
|
42
|
+
"@deephaven/log": "^0.84.1-beta.0+e3aa3920",
|
|
43
|
+
"@deephaven/react-hooks": "^0.84.1-beta.0+e3aa3920",
|
|
44
|
+
"@deephaven/storage": "^0.84.1-beta.0+e3aa3920",
|
|
45
|
+
"@deephaven/utils": "^0.84.1-beta.0+e3aa3920",
|
|
46
46
|
"@dnd-kit/core": "^6.1.0",
|
|
47
47
|
"@dnd-kit/sortable": "^7.0.2",
|
|
48
48
|
"@dnd-kit/utilities": "^3.2.2",
|
|
@@ -65,8 +65,8 @@
|
|
|
65
65
|
"react-dom": ">=16.8.0"
|
|
66
66
|
},
|
|
67
67
|
"devDependencies": {
|
|
68
|
-
"@deephaven/jsapi-shim": "^0.84.0",
|
|
69
|
-
"@deephaven/mocks": "^0.84.0",
|
|
68
|
+
"@deephaven/jsapi-shim": "^0.84.1-beta.0+e3aa3920",
|
|
69
|
+
"@deephaven/mocks": "^0.84.1-beta.0+e3aa3920",
|
|
70
70
|
"deep-equal": "2.2.3"
|
|
71
71
|
},
|
|
72
72
|
"files": [
|
|
@@ -79,5 +79,5 @@
|
|
|
79
79
|
"publishConfig": {
|
|
80
80
|
"access": "public"
|
|
81
81
|
},
|
|
82
|
-
"gitHead": "
|
|
82
|
+
"gitHead": "e3aa3920b8c40dcebb2d3e91a570e2df55bfa190"
|
|
83
83
|
}
|