@deephaven/iris-grid 0.29.1-jsapi-core-module.9 → 0.29.1-jsapi-module.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/GotoRow.js CHANGED
@@ -1,7 +1,6 @@
1
1
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
2
2
  import { vsClose, vsArrowUp, vsArrowDown } from '@deephaven/icons';
3
3
  import React, { useEffect, useRef, useState } from 'react';
4
- import dh from '@deephaven/jsapi-shim';
5
4
  import { Type as FilterType } from '@deephaven/filters';
6
5
  import { Button, DateTimeInput } from '@deephaven/components';
7
6
  import { TableUtils } from '@deephaven/jsapi-utils';
@@ -1 +1 @@
1
- {"version":3,"file":"GotoRow.js","names":["FontAwesomeIcon","vsClose","vsArrowUp","vsArrowDown","React","useEffect","useRef","useState","dh","Type","FilterType","Button","DateTimeInput","TableUtils","assertNotNull","classNames","IrisGridBottomBar","isIrisGridProxyModel","model","undefined","DEFAULT_FORMAT_STRING","GotoRow","gotoRow","gotoRowError","gotoValueError","onGotoRowSubmit","isShown","onEntering","onEntered","onExiting","onExited","onGotoRowNumberChanged","onClose","gotoValueSelectedColumnName","gotoValue","onGotoValueSelectedColumnNameChanged","onGotoValueSelectedFilterChanged","onGotoValueChanged","onGotoValueSubmit","gotoRowInputRef","gotoValueInputRef","isGotoRowActive","setIsGotoRowActive","columns","table","res","rowCount","handleGotoValueKeyDown","e","key","stopPropagation","preventDefault","index","getColumnIndexByName","selectedColumn","columnType","type","normalizedType","getNormalizedType","onGotoValueInputChanged","value","selectInput","document","activeElement","current","select","renderValueInput","dataType","DECIMAL","INT","target","DATETIME","STRING","event","eq","contains","eqIgnoreCase","BOOLEAN","i18n","NumberFormat","format","marginRight","isSeekRowAvailable","columnName","map","column","name"],"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 useEffect,\n useRef,\n useState,\n} from 'react';\nimport dh, { Column } from '@deephaven/jsapi-shim';\nimport {\n Type as FilterType,\n TypeValue as FilterTypeValue,\n} from '@deephaven/filters';\nimport { Button, DateTimeInput } from '@deephaven/components';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { assertNotNull } from '@deephaven/utils';\nimport classNames from 'classnames';\nimport './GotoRow.scss';\nimport IrisGridModel from './IrisGridModel';\nimport IrisGridProxyModel from './IrisGridProxyModel';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport { ColumnName } from './CommonTypes';\n\nexport function 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 onGotoValueSelectedColumnNameChanged: (columnName: ColumnName) => void;\n onGotoValueSelectedFilterChanged: (filter: FilterTypeValue) => void;\n onGotoValueChanged: (input: string) => void;\n onGotoValueSubmit: (isBackward?: boolean) => void;\n}\n\nfunction GotoRow({\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 onGotoValueSelectedColumnNameChanged,\n onGotoValueSelectedFilterChanged,\n onGotoValueChanged,\n onGotoValueSubmit,\n}: GotoRowProps): ReactElement {\n const gotoRowInputRef = useRef<HTMLInputElement>(null);\n const gotoValueInputRef = useRef<HTMLInputElement>(null);\n\n const [isGotoRowActive, setIsGotoRowActive] = useState(false);\n let columns: Column[] = [];\n\n if (isIrisGridProxyModel(model) && model.table !== undefined) {\n ({ columns } = model.table);\n }\n\n const res = 'Row number';\n\n const { rowCount } = model;\n const handleGotoValueKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoValueSubmit();\n }\n };\n\n const index = model.getColumnIndexByName(gotoValueSelectedColumnName);\n\n assertNotNull(index);\n const selectedColumn = columns[index];\n\n const columnType = selectedColumn?.type;\n\n const normalizedType = TableUtils.getNormalizedType(columnType);\n const onGotoValueInputChanged = (value?: string) => {\n onGotoValueChanged(value ?? '');\n };\n const selectInput = () => {\n // when row changes without focus (i.e. via context menu), re-select input\n if (isGotoRowActive && document.activeElement !== gotoRowInputRef.current) {\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, gotoRow, gotoValue]);\n\n const renderValueInput = () => {\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 type=\"number\"\n className={classNames('form-control', {\n 'is-invalid': gotoValueError !== '',\n })}\n onKeyDown={handleGotoValueKeyDown}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\n />\n </div>\n );\n case TableUtils.dataType.DATETIME:\n return (\n <div className=\"goto-value-date-time-input\">\n <DateTimeInput\n className={classNames(\n 'form-control',\n 'goto-value-date-time-input',\n {\n 'is-invalid': gotoValueError !== '',\n }\n )}\n onChange={onGotoValueInputChanged}\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={event => {\n onGotoValueSelectedFilterChanged(\n event.target.value as FilterTypeValue\n );\n }}\n >\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 <option\n key={FilterType.eqIgnoreCase}\n value={FilterType.eqIgnoreCase}\n >\n EqIgnoreCase\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={handleGotoValueKeyDown}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\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={event => {\n onGotoValueInputChanged(event.target.value);\n }}\n value={gotoValue}\n >\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={handleGotoValueKeyDown}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\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 <div className=\"goto-row-text\">Go to row</div>\n <div className=\"goto-row-input\">\n <input\n ref={gotoRowInputRef}\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={res}\n onChange={event => {\n onGotoRowNumberChanged(event);\n }}\n value={gotoRow}\n />\n </div>\n <div className=\"goto-row-text\">\n of {dh.i18n.NumberFormat.format(DEFAULT_FORMAT_STRING, rowCount)}\n </div>\n {gotoRowError && <div className=\"text-danger\">{gotoRowError}</div>}\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={event => {\n const columnName = event.target.value;\n onGotoValueSelectedColumnNameChanged(columnName);\n }}\n value={gotoValueSelectedColumnName}\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 kind=\"ghost\"\n disabled={gotoValue === ''}\n onClick={() => {\n onGotoValueSubmit(true);\n }}\n >\n <FontAwesomeIcon icon={vsArrowUp} />\n </Button>\n <Button\n kind=\"ghost\"\n disabled={gotoValue === ''}\n onClick={() => {\n onGotoValueSubmit(false);\n }}\n >\n <FontAwesomeIcon icon={vsArrowDown} />\n </Button>\n </div>\n {gotoValueError && (\n <div className=\"text-danger\">{gotoValueError}</div>\n )}\n </div>\n </div>\n )}\n </>\n </IrisGridBottomBar>\n );\n}\n\nexport default GotoRow;\n"],"mappings":"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"}
1
+ {"version":3,"file":"GotoRow.js","names":["FontAwesomeIcon","vsClose","vsArrowUp","vsArrowDown","React","useEffect","useRef","useState","Type","FilterType","Button","DateTimeInput","TableUtils","assertNotNull","classNames","IrisGridBottomBar","isIrisGridProxyModel","model","undefined","DEFAULT_FORMAT_STRING","GotoRow","gotoRow","gotoRowError","gotoValueError","onGotoRowSubmit","isShown","onEntering","onEntered","onExiting","onExited","onGotoRowNumberChanged","onClose","gotoValueSelectedColumnName","gotoValue","onGotoValueSelectedColumnNameChanged","onGotoValueSelectedFilterChanged","onGotoValueChanged","onGotoValueSubmit","gotoRowInputRef","gotoValueInputRef","isGotoRowActive","setIsGotoRowActive","columns","table","res","rowCount","handleGotoValueKeyDown","e","key","stopPropagation","preventDefault","index","getColumnIndexByName","selectedColumn","columnType","type","normalizedType","getNormalizedType","onGotoValueInputChanged","value","selectInput","document","activeElement","current","select","renderValueInput","dataType","DECIMAL","INT","target","DATETIME","STRING","event","eq","contains","eqIgnoreCase","BOOLEAN","dh","i18n","NumberFormat","format","marginRight","isSeekRowAvailable","columnName","map","column","name"],"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 useEffect,\n useRef,\n useState,\n} from 'react';\nimport { Column } from '@deephaven/jsapi-shim';\nimport {\n Type as FilterType,\n TypeValue as FilterTypeValue,\n} from '@deephaven/filters';\nimport { Button, DateTimeInput } from '@deephaven/components';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { assertNotNull } from '@deephaven/utils';\nimport classNames from 'classnames';\nimport './GotoRow.scss';\nimport IrisGridModel from './IrisGridModel';\nimport IrisGridProxyModel from './IrisGridProxyModel';\nimport IrisGridBottomBar from './IrisGridBottomBar';\nimport { ColumnName } from './CommonTypes';\n\nexport function 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 onGotoValueSelectedColumnNameChanged: (columnName: ColumnName) => void;\n onGotoValueSelectedFilterChanged: (filter: FilterTypeValue) => void;\n onGotoValueChanged: (input: string) => void;\n onGotoValueSubmit: (isBackward?: boolean) => void;\n}\n\nfunction GotoRow({\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 onGotoValueSelectedColumnNameChanged,\n onGotoValueSelectedFilterChanged,\n onGotoValueChanged,\n onGotoValueSubmit,\n}: GotoRowProps): ReactElement {\n const gotoRowInputRef = useRef<HTMLInputElement>(null);\n const gotoValueInputRef = useRef<HTMLInputElement>(null);\n\n const [isGotoRowActive, setIsGotoRowActive] = useState(false);\n let columns: Column[] = [];\n\n if (isIrisGridProxyModel(model) && model.table !== undefined) {\n ({ columns } = model.table);\n }\n\n const res = 'Row number';\n\n const { rowCount } = model;\n const handleGotoValueKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.stopPropagation();\n e.preventDefault();\n onGotoValueSubmit();\n }\n };\n\n const index = model.getColumnIndexByName(gotoValueSelectedColumnName);\n\n assertNotNull(index);\n const selectedColumn = columns[index];\n\n const columnType = selectedColumn?.type;\n\n const normalizedType = TableUtils.getNormalizedType(columnType);\n const onGotoValueInputChanged = (value?: string) => {\n onGotoValueChanged(value ?? '');\n };\n const selectInput = () => {\n // when row changes without focus (i.e. via context menu), re-select input\n if (isGotoRowActive && document.activeElement !== gotoRowInputRef.current) {\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, gotoRow, gotoValue]);\n\n const renderValueInput = () => {\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 type=\"number\"\n className={classNames('form-control', {\n 'is-invalid': gotoValueError !== '',\n })}\n onKeyDown={handleGotoValueKeyDown}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\n />\n </div>\n );\n case TableUtils.dataType.DATETIME:\n return (\n <div className=\"goto-value-date-time-input\">\n <DateTimeInput\n className={classNames(\n 'form-control',\n 'goto-value-date-time-input',\n {\n 'is-invalid': gotoValueError !== '',\n }\n )}\n onChange={onGotoValueInputChanged}\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={event => {\n onGotoValueSelectedFilterChanged(\n event.target.value as FilterTypeValue\n );\n }}\n >\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 <option\n key={FilterType.eqIgnoreCase}\n value={FilterType.eqIgnoreCase}\n >\n EqIgnoreCase\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={handleGotoValueKeyDown}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\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={event => {\n onGotoValueInputChanged(event.target.value);\n }}\n value={gotoValue}\n >\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={handleGotoValueKeyDown}\n placeholder=\"value\"\n onChange={e => onGotoValueInputChanged(e.target.value)}\n value={gotoValue}\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 <div className=\"goto-row-text\">Go to row</div>\n <div className=\"goto-row-input\">\n <input\n ref={gotoRowInputRef}\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={res}\n onChange={event => {\n onGotoRowNumberChanged(event);\n }}\n value={gotoRow}\n />\n </div>\n <div className=\"goto-row-text\">\n of {dh.i18n.NumberFormat.format(DEFAULT_FORMAT_STRING, rowCount)}\n </div>\n {gotoRowError && <div className=\"text-danger\">{gotoRowError}</div>}\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={event => {\n const columnName = event.target.value;\n onGotoValueSelectedColumnNameChanged(columnName);\n }}\n value={gotoValueSelectedColumnName}\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 kind=\"ghost\"\n disabled={gotoValue === ''}\n onClick={() => {\n onGotoValueSubmit(true);\n }}\n >\n <FontAwesomeIcon icon={vsArrowUp} />\n </Button>\n <Button\n kind=\"ghost\"\n disabled={gotoValue === ''}\n onClick={() => {\n onGotoValueSubmit(false);\n }}\n >\n <FontAwesomeIcon icon={vsArrowDown} />\n </Button>\n </div>\n {gotoValueError && (\n <div className=\"text-danger\">{gotoValueError}</div>\n )}\n </div>\n </div>\n )}\n </>\n </IrisGridBottomBar>\n );\n}\n\nexport default GotoRow;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionalFormattingAPIUtils.d.ts","sourceRoot":"","sources":["../../../src/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.ts"],"names":[],"mappings":"AAAA,OAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EACL,gBAAgB,EAGjB,MAAM,8BAA8B,CAAC;AAMtC,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CAOpB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE9D;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,YAAY,CAEd"}
1
+ {"version":3,"file":"ConditionalFormattingAPIUtils.d.ts","sourceRoot":"","sources":["../../../src/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EACL,gBAAgB,EAGjB,MAAM,8BAA8B,CAAC;AAMtC,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,MAAM,GACf,MAAM,GAAG,SAAS,CAOpB;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAE9D;AAED,wBAAgB,sBAAsB,CACpC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GACX,YAAY,CAEd"}
@@ -1,4 +1,3 @@
1
- import dh from '@deephaven/jsapi-shim';
2
1
  import { getConditionDBString, getStyleDBString } from "./ConditionalFormattingUtils.js"; // Conditional formatting API utils in a separate file
3
2
  // to make ConditionalFormattingUtils.ts easier to test.
4
3
  // https://github.com/facebook/jest/issues/936#issuecomment-545080082
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionalFormattingAPIUtils.js","names":["dh","getConditionDBString","getStyleDBString","makeTernaryFormatRule","config","prevRule","styleDBString","undefined","conditionDBString","makeRowFormatColumn","rule","Column","formatRowColor","makeColumnFormatColumn","col","formatColor"],"sources":["../../../src/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.ts"],"sourcesContent":["import dh, { Column, CustomColumn } from '@deephaven/jsapi-shim';\nimport {\n BaseFormatConfig,\n getConditionDBString,\n getStyleDBString,\n} from './ConditionalFormattingUtils';\n\n// Conditional formatting API utils in a separate file\n// to make ConditionalFormattingUtils.ts easier to test.\n// https://github.com/facebook/jest/issues/936#issuecomment-545080082\n\nexport function makeTernaryFormatRule(\n config: BaseFormatConfig,\n prevRule: string\n): string | undefined {\n const styleDBString = getStyleDBString(config);\n if (styleDBString === undefined) {\n return undefined;\n }\n const conditionDBString = getConditionDBString(config);\n return `${conditionDBString} ? ${styleDBString} : ${prevRule}`;\n}\n\nexport function makeRowFormatColumn(rule: string): CustomColumn {\n return dh.Column.formatRowColor(rule);\n}\n\nexport function makeColumnFormatColumn(\n col: Column,\n rule: string\n): CustomColumn {\n return col.formatColor(rule);\n}\n"],"mappings":"AAAA,OAAOA,EAAE,MAAgC,uBAAuB;AAAC,SAG/DC,oBAAoB,EACpBC,gBAAgB,2CAGlB;AACA;AACA;AAEA,OAAO,SAASC,qBAAqB,CACnCC,MAAwB,EACxBC,QAAgB,EACI;EACpB,IAAMC,aAAa,GAAGJ,gBAAgB,CAACE,MAAM,CAAC;EAC9C,IAAIE,aAAa,KAAKC,SAAS,EAAE;IAC/B,OAAOA,SAAS;EAClB;EACA,IAAMC,iBAAiB,GAAGP,oBAAoB,CAACG,MAAM,CAAC;EACtD,iBAAUI,iBAAiB,gBAAMF,aAAa,gBAAMD,QAAQ;AAC9D;AAEA,OAAO,SAASI,mBAAmB,CAACC,IAAY,EAAgB;EAC9D,OAAOV,EAAE,CAACW,MAAM,CAACC,cAAc,CAACF,IAAI,CAAC;AACvC;AAEA,OAAO,SAASG,sBAAsB,CACpCC,GAAW,EACXJ,IAAY,EACE;EACd,OAAOI,GAAG,CAACC,WAAW,CAACL,IAAI,CAAC;AAC9B"}
1
+ {"version":3,"file":"ConditionalFormattingAPIUtils.js","names":["getConditionDBString","getStyleDBString","makeTernaryFormatRule","config","prevRule","styleDBString","undefined","conditionDBString","makeRowFormatColumn","rule","dh","Column","formatRowColor","makeColumnFormatColumn","col","formatColor"],"sources":["../../../src/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.ts"],"sourcesContent":["import { Column, CustomColumn } from '@deephaven/jsapi-shim';\nimport {\n BaseFormatConfig,\n getConditionDBString,\n getStyleDBString,\n} from './ConditionalFormattingUtils';\n\n// Conditional formatting API utils in a separate file\n// to make ConditionalFormattingUtils.ts easier to test.\n// https://github.com/facebook/jest/issues/936#issuecomment-545080082\n\nexport function makeTernaryFormatRule(\n config: BaseFormatConfig,\n prevRule: string\n): string | undefined {\n const styleDBString = getStyleDBString(config);\n if (styleDBString === undefined) {\n return undefined;\n }\n const conditionDBString = getConditionDBString(config);\n return `${conditionDBString} ? ${styleDBString} : ${prevRule}`;\n}\n\nexport function makeRowFormatColumn(rule: string): CustomColumn {\n return dh.Column.formatRowColor(rule);\n}\n\nexport function makeColumnFormatColumn(\n col: Column,\n rule: string\n): CustomColumn {\n return col.formatColor(rule);\n}\n"],"mappings":"SAGEA,oBAAoB,EACpBC,gBAAgB,2CAGlB;AACA;AACA;AAEA,OAAO,SAASC,qBAAqB,CACnCC,MAAwB,EACxBC,QAAgB,EACI;EACpB,IAAMC,aAAa,GAAGJ,gBAAgB,CAACE,MAAM,CAAC;EAC9C,IAAIE,aAAa,KAAKC,SAAS,EAAE;IAC/B,OAAOA,SAAS;EAClB;EACA,IAAMC,iBAAiB,GAAGP,oBAAoB,CAACG,MAAM,CAAC;EACtD,iBAAUI,iBAAiB,gBAAMF,aAAa,gBAAMD,QAAQ;AAC9D;AAEA,OAAO,SAASI,mBAAmB,CAACC,IAAY,EAAgB;EAC9D,OAAOC,EAAE,CAACC,MAAM,CAACC,cAAc,CAACH,IAAI,CAAC;AACvC;AAEA,OAAO,SAASI,sBAAsB,CACpCC,GAAW,EACXL,IAAY,EACE;EACd,OAAOK,GAAG,CAACC,WAAW,CAACN,IAAI,CAAC;AAC9B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/iris-grid",
3
- "version": "0.29.1-jsapi-core-module.9+d6ec7d4",
3
+ "version": "0.29.1-jsapi-module.6+a77fbc2",
4
4
  "description": "Deephaven Iris Grid",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -23,17 +23,17 @@
23
23
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
24
24
  },
25
25
  "dependencies": {
26
- "@deephaven/components": "^0.29.1-jsapi-core-module.9+d6ec7d4",
27
- "@deephaven/console": "^0.29.1-jsapi-core-module.9+d6ec7d4",
28
- "@deephaven/filters": "^0.29.1-jsapi-core-module.9+d6ec7d4",
29
- "@deephaven/grid": "^0.29.1-jsapi-core-module.9+d6ec7d4",
30
- "@deephaven/icons": "^0.29.1-jsapi-core-module.9+d6ec7d4",
31
- "@deephaven/jsapi-shim": "^0.29.1-jsapi-core-module.9+d6ec7d4",
32
- "@deephaven/jsapi-utils": "^0.29.1-jsapi-core-module.9+d6ec7d4",
33
- "@deephaven/log": "^0.29.1-jsapi-core-module.9+d6ec7d4",
34
- "@deephaven/react-hooks": "^0.29.1-jsapi-core-module.9+d6ec7d4",
35
- "@deephaven/storage": "^0.29.1-jsapi-core-module.9+d6ec7d4",
36
- "@deephaven/utils": "^0.29.1-jsapi-core-module.9+d6ec7d4",
26
+ "@deephaven/components": "^0.29.1-jsapi-module.6+a77fbc2",
27
+ "@deephaven/console": "^0.29.1-jsapi-module.6+a77fbc2",
28
+ "@deephaven/filters": "^0.29.1-jsapi-module.6+a77fbc2",
29
+ "@deephaven/grid": "^0.29.1-jsapi-module.6+a77fbc2",
30
+ "@deephaven/icons": "^0.29.1-jsapi-module.6+a77fbc2",
31
+ "@deephaven/jsapi-shim": "^0.29.1-jsapi-module.6+a77fbc2",
32
+ "@deephaven/jsapi-utils": "^0.29.1-jsapi-module.6+a77fbc2",
33
+ "@deephaven/log": "^0.29.1-jsapi-module.6+a77fbc2",
34
+ "@deephaven/react-hooks": "^0.29.1-jsapi-module.6+a77fbc2",
35
+ "@deephaven/storage": "^0.29.1-jsapi-module.6+a77fbc2",
36
+ "@deephaven/utils": "^0.29.1-jsapi-module.6+a77fbc2",
37
37
  "@dnd-kit/core": "^6.0.5",
38
38
  "@dnd-kit/sortable": "^7.0.0",
39
39
  "@dnd-kit/utilities": "^3.2.0",
@@ -57,8 +57,8 @@
57
57
  "react-dom": "^17.x"
58
58
  },
59
59
  "devDependencies": {
60
- "@deephaven/mocks": "^0.29.1-jsapi-core-module.9+d6ec7d4",
61
- "@deephaven/tsconfig": "^0.29.1-jsapi-core-module.9+d6ec7d4"
60
+ "@deephaven/mocks": "^0.29.1-jsapi-module.6+a77fbc2",
61
+ "@deephaven/tsconfig": "^0.29.1-jsapi-module.6+a77fbc2"
62
62
  },
63
63
  "files": [
64
64
  "dist"
@@ -69,5 +69,5 @@
69
69
  "publishConfig": {
70
70
  "access": "public"
71
71
  },
72
- "gitHead": "d6ec7d4232417c2e42e3fb0bc2f2a3dd1971022c"
72
+ "gitHead": "a77fbc2394762d405ea033603c7120f71f68cc3e"
73
73
  }