@deephaven/jsapi-components 0.102.1-beta.0 → 0.102.2-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/TableDropdown.js.map +1 -1
- package/dist/spectrum/ComboBox.d.ts.map +1 -1
- package/dist/spectrum/ComboBox.js +37 -3
- package/dist/spectrum/ComboBox.js.map +1 -1
- package/dist/useTableListener.d.ts +1 -1
- package/dist/useTableListener.d.ts.map +1 -1
- package/dist/useTableListener.js.map +1 -1
- package/package.json +11 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableDropdown.js","names":["React","useCallback","useEffect","useMemo","useState","Option","Select","useApi","EMPTY_ARRAY","jsx","_jsx","isJavaObject","value","equals","defaultFormatValue","concat","TableDropdown","_ref","column","table","filter","onChange","selectedValue","disabled","className","formatValue","maxSize","dh","values","setValues","undefined","tableColumn","columns","applyFilter","subscription","setViewport","addEventListener","Table","EVENT_UPDATED","event","detail","newValues","rows","map","row","_row$get","get","close","allValues","selectedIndex","findIndex","handleChange","newSelectedIndex","children","i"],"sources":["../src/TableDropdown.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Option, Select } from '@deephaven/components';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { type dh as DhType } from '@deephaven/jsapi-types';\nimport { EMPTY_ARRAY } from '@deephaven/utils';\n\ntype JavaObject = {\n equals: (other: unknown) => boolean;\n};\n\nfunction isJavaObject(value: unknown): value is JavaObject {\n return (\n typeof value === 'object' &&\n value != null &&\n 'equals' in value &&\n typeof value.equals === 'function'\n );\n}\n\nfunction defaultFormatValue(value: unknown): string {\n return `${value}`;\n}\n\nexport type TableDropdownProps = {\n /** Table to use as the source of data. Does not own the table, does not close it on unmount. */\n table?: DhType.Table;\n\n /** Column to read data from the table. Defaults to the first column in the table if it's not provided. */\n column?: DhType.Column;\n\n /** Triggered when the dropdown selection has changed */\n onChange: (value: unknown) => void;\n\n /** Filter to apply on the table */\n filter?: readonly DhType.FilterCondition[];\n\n /** The currently selected value */\n selectedValue?: unknown;\n\n /** Whether the control is disabled */\n disabled?: boolean;\n\n /** Class to apply to the select element */\n className?: string;\n\n /** Optional function to format the value for display */\n formatValue?: (value: unknown) => string;\n\n /** Maximum number of elements to load */\n maxSize?: number;\n};\n\n/**\n * Dropdown that displays the values of a column in a table.\n */\nexport function TableDropdown({\n column,\n table,\n filter = EMPTY_ARRAY,\n onChange,\n selectedValue,\n disabled,\n className,\n formatValue = defaultFormatValue,\n maxSize = 1000,\n}: TableDropdownProps): JSX.Element {\n const dh = useApi();\n const [values, setValues] = useState<unknown[]>([]);\n\n useEffect(() => {\n if (table == null) {\n setValues([]);\n return undefined;\n }\n\n const tableColumn = column ?? table.columns[0];\n // Need to set a viewport on the table and start listening to get the values to populate the dropdown\n table.applyFilter(filter as DhType.FilterCondition[]);\n const subscription = table.setViewport(0, maxSize, [tableColumn]);\n\n subscription.addEventListener(\n dh.Table.EVENT_UPDATED,\n (event:
|
|
1
|
+
{"version":3,"file":"TableDropdown.js","names":["React","useCallback","useEffect","useMemo","useState","Option","Select","useApi","EMPTY_ARRAY","jsx","_jsx","isJavaObject","value","equals","defaultFormatValue","concat","TableDropdown","_ref","column","table","filter","onChange","selectedValue","disabled","className","formatValue","maxSize","dh","values","setValues","undefined","tableColumn","columns","applyFilter","subscription","setViewport","addEventListener","Table","EVENT_UPDATED","event","detail","newValues","rows","map","row","_row$get","get","close","allValues","selectedIndex","findIndex","handleChange","newSelectedIndex","children","i"],"sources":["../src/TableDropdown.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { Option, Select } from '@deephaven/components';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { type dh as DhType } from '@deephaven/jsapi-types';\nimport { EMPTY_ARRAY } from '@deephaven/utils';\n\ntype JavaObject = {\n equals: (other: unknown) => boolean;\n};\n\nfunction isJavaObject(value: unknown): value is JavaObject {\n return (\n typeof value === 'object' &&\n value != null &&\n 'equals' in value &&\n typeof value.equals === 'function'\n );\n}\n\nfunction defaultFormatValue(value: unknown): string {\n return `${value}`;\n}\n\nexport type TableDropdownProps = {\n /** Table to use as the source of data. Does not own the table, does not close it on unmount. */\n table?: DhType.Table;\n\n /** Column to read data from the table. Defaults to the first column in the table if it's not provided. */\n column?: DhType.Column;\n\n /** Triggered when the dropdown selection has changed */\n onChange: (value: unknown) => void;\n\n /** Filter to apply on the table */\n filter?: readonly DhType.FilterCondition[];\n\n /** The currently selected value */\n selectedValue?: unknown;\n\n /** Whether the control is disabled */\n disabled?: boolean;\n\n /** Class to apply to the select element */\n className?: string;\n\n /** Optional function to format the value for display */\n formatValue?: (value: unknown) => string;\n\n /** Maximum number of elements to load */\n maxSize?: number;\n};\n\n/**\n * Dropdown that displays the values of a column in a table.\n */\nexport function TableDropdown({\n column,\n table,\n filter = EMPTY_ARRAY,\n onChange,\n selectedValue,\n disabled,\n className,\n formatValue = defaultFormatValue,\n maxSize = 1000,\n}: TableDropdownProps): JSX.Element {\n const dh = useApi();\n const [values, setValues] = useState<unknown[]>([]);\n\n useEffect(() => {\n if (table == null) {\n setValues([]);\n return undefined;\n }\n\n const tableColumn = column ?? table.columns[0];\n // Need to set a viewport on the table and start listening to get the values to populate the dropdown\n table.applyFilter(filter as DhType.FilterCondition[]);\n const subscription = table.setViewport(0, maxSize, [tableColumn]);\n\n subscription.addEventListener(\n dh.Table.EVENT_UPDATED,\n (event: DhType.Event<DhType.ViewportData>) => {\n const { detail } = event;\n // Core JSAPI returns undefined for null table values,\n // coalesce with null to differentiate null from no selection in the dropdown\n // https://github.com/deephaven/deephaven-core/issues/5400\n const newValues = detail.rows.map(row => row.get(tableColumn) ?? null);\n setValues(newValues);\n }\n );\n\n return () => {\n subscription.close();\n };\n }, [column, dh, filter, maxSize, table]);\n\n // If the selected value is undefined, add a placeholder item\n const allValues = useMemo(() => {\n if (selectedValue === undefined) {\n return [undefined, ...values];\n }\n return values;\n }, [selectedValue, values]);\n\n // Since values could be anything, not just strings, track the selected index based on the current data\n const selectedIndex = useMemo(\n // eslint-disable-next-line eqeqeq\n () =>\n allValues.findIndex(\n value =>\n value === selectedValue ||\n (isJavaObject(value) && value.equals(selectedValue))\n ),\n [selectedValue, allValues]\n );\n\n const handleChange = useCallback(\n newSelectedIndex => {\n onChange(allValues[newSelectedIndex]);\n },\n [onChange, allValues]\n );\n\n return (\n <Select\n className={className}\n value={selectedIndex}\n onChange={handleChange}\n disabled={disabled}\n >\n {allValues.map((value, i) => (\n // eslint-disable-next-line react/no-array-index-key\n <Option key={`${i}`} value={i}>\n {formatValue(value)}\n </Option>\n ))}\n </Select>\n );\n}\n\nexport default TableDropdown;\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../src/spectrum/ComboBox.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../src/spectrum/ComboBox.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC3B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAG1D,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAC9C,qBAAqB,CAAC,cAAc,CAAC,CACtC,CAAC;AAEF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CA4D1D;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -7,7 +7,7 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
|
|
|
7
7
|
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
8
8
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
9
9
|
import { ComboBoxNormalized } from '@deephaven/components';
|
|
10
|
-
import { useCallback } from 'react';
|
|
10
|
+
import { useCallback, useRef } from 'react';
|
|
11
11
|
import { usePickerProps } from "./utils/index.js";
|
|
12
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
13
|
export function ComboBox(props) {
|
|
@@ -17,14 +17,48 @@ export function ComboBox(props) {
|
|
|
17
17
|
onSearchTextChange
|
|
18
18
|
} = _usePickerProps,
|
|
19
19
|
pickerProps = _objectWithoutProperties(_usePickerProps, _excluded);
|
|
20
|
+
var isOpenRef = useRef(false);
|
|
21
|
+
var inputValueRef = useRef('');
|
|
20
22
|
var onInputChange = useCallback(value => {
|
|
21
23
|
onInputChangeInternal === null || onInputChangeInternal === void 0 ? void 0 : onInputChangeInternal(value);
|
|
22
|
-
|
|
24
|
+
|
|
25
|
+
// Only apply search text if ComboBox is open.
|
|
26
|
+
if (isOpenRef.current) {
|
|
27
|
+
onSearchTextChange(value);
|
|
28
|
+
}
|
|
29
|
+
// When the ComboBox is closed, `onInputChange` may have been called as a
|
|
30
|
+
// result of user search input, ComboBox selection, or by selected key
|
|
31
|
+
// prop changes. We can't determine the source here, so we clear the search
|
|
32
|
+
// text and store the search value so that the list is unfiltered the next
|
|
33
|
+
// time the ComboBox is opened. We also store the search value so we can
|
|
34
|
+
// re-apply it in `onOpenChange` if the ComboBox is opened by user search
|
|
35
|
+
// input.
|
|
36
|
+
else {
|
|
37
|
+
onSearchTextChange('');
|
|
38
|
+
inputValueRef.current = value;
|
|
39
|
+
}
|
|
23
40
|
}, [onInputChangeInternal, onSearchTextChange]);
|
|
41
|
+
var onOpenChange = useCallback((isOpen, menuTrigger) => {
|
|
42
|
+
var _pickerProps$onOpenCh;
|
|
43
|
+
(_pickerProps$onOpenCh = pickerProps.onOpenChange) === null || _pickerProps$onOpenCh === void 0 ? void 0 : _pickerProps$onOpenCh.call(pickerProps, isOpen);
|
|
44
|
+
|
|
45
|
+
// Reset the search text when the ComboBox is closed.
|
|
46
|
+
if (!isOpen) {
|
|
47
|
+
onSearchTextChange('');
|
|
48
|
+
}
|
|
49
|
+
// Restore search text when ComboBox has been opened by user input.
|
|
50
|
+
else if (menuTrigger === 'input') {
|
|
51
|
+
onSearchTextChange(inputValueRef.current);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Store the open state so that `onInputChange` has access to it.
|
|
55
|
+
isOpenRef.current = isOpen;
|
|
56
|
+
}, [onSearchTextChange, pickerProps]);
|
|
24
57
|
return /*#__PURE__*/_jsx(ComboBoxNormalized
|
|
25
58
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
26
59
|
, _objectSpread(_objectSpread({}, pickerProps), {}, {
|
|
27
|
-
onInputChange: onInputChange
|
|
60
|
+
onInputChange: onInputChange,
|
|
61
|
+
onOpenChange: onOpenChange
|
|
28
62
|
}));
|
|
29
63
|
}
|
|
30
64
|
export default ComboBox;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboBox.js","names":["ComboBoxNormalized","useCallback","usePickerProps","jsx","_jsx","ComboBox","props","_usePickerProps","onInputChange","onInputChangeInternal","onSearchTextChange","pickerProps","_objectWithoutProperties","_excluded","value","_objectSpread"],"sources":["../../src/spectrum/ComboBox.tsx"],"sourcesContent":["import {\n ComboBoxNormalized,\n type NormalizedItem,\n type SpectrumComboBoxProps,\n} from '@deephaven/components';\nimport { useCallback } from 'react';\nimport { type PickerWithTableProps } from './PickerProps';\nimport { usePickerProps } from './utils';\n\nexport type ComboBoxProps = PickerWithTableProps<\n SpectrumComboBoxProps<NormalizedItem>\n>;\n\nexport function ComboBox(props: ComboBoxProps): JSX.Element {\n const {\n onInputChange: onInputChangeInternal,\n onSearchTextChange,\n ...pickerProps\n } = usePickerProps<ComboBoxProps>(props);\n\n const onInputChange = useCallback(\n (value: string) => {\n onInputChangeInternal?.(value);\n onSearchTextChange(value);\n },\n [onInputChangeInternal, onSearchTextChange]\n );\n\n return (\n <ComboBoxNormalized\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...pickerProps}\n onInputChange={onInputChange}\n />\n );\n}\n\nexport default ComboBox;\n"],"mappings":";;;;;;;;AAAA,SACEA,kBAAkB,
|
|
1
|
+
{"version":3,"file":"ComboBox.js","names":["ComboBoxNormalized","useCallback","useRef","usePickerProps","jsx","_jsx","ComboBox","props","_usePickerProps","onInputChange","onInputChangeInternal","onSearchTextChange","pickerProps","_objectWithoutProperties","_excluded","isOpenRef","inputValueRef","value","current","onOpenChange","isOpen","menuTrigger","_pickerProps$onOpenCh","call","_objectSpread"],"sources":["../../src/spectrum/ComboBox.tsx"],"sourcesContent":["import {\n ComboBoxNormalized,\n type MenuTriggerAction,\n type NormalizedItem,\n type SpectrumComboBoxProps,\n} from '@deephaven/components';\nimport { useCallback, useRef } from 'react';\nimport { type PickerWithTableProps } from './PickerProps';\nimport { usePickerProps } from './utils';\n\nexport type ComboBoxProps = PickerWithTableProps<\n SpectrumComboBoxProps<NormalizedItem>\n>;\n\nexport function ComboBox(props: ComboBoxProps): JSX.Element {\n const {\n onInputChange: onInputChangeInternal,\n onSearchTextChange,\n ...pickerProps\n } = usePickerProps<ComboBoxProps>(props);\n\n const isOpenRef = useRef(false);\n const inputValueRef = useRef('');\n\n const onInputChange = useCallback(\n (value: string) => {\n onInputChangeInternal?.(value);\n\n // Only apply search text if ComboBox is open.\n if (isOpenRef.current) {\n onSearchTextChange(value);\n }\n // When the ComboBox is closed, `onInputChange` may have been called as a\n // result of user search input, ComboBox selection, or by selected key\n // prop changes. We can't determine the source here, so we clear the search\n // text and store the search value so that the list is unfiltered the next\n // time the ComboBox is opened. We also store the search value so we can\n // re-apply it in `onOpenChange` if the ComboBox is opened by user search\n // input.\n else {\n onSearchTextChange('');\n inputValueRef.current = value;\n }\n },\n [onInputChangeInternal, onSearchTextChange]\n );\n\n const onOpenChange = useCallback(\n (isOpen: boolean, menuTrigger?: MenuTriggerAction) => {\n pickerProps.onOpenChange?.(isOpen);\n\n // Reset the search text when the ComboBox is closed.\n if (!isOpen) {\n onSearchTextChange('');\n }\n // Restore search text when ComboBox has been opened by user input.\n else if (menuTrigger === 'input') {\n onSearchTextChange(inputValueRef.current);\n }\n\n // Store the open state so that `onInputChange` has access to it.\n isOpenRef.current = isOpen;\n },\n [onSearchTextChange, pickerProps]\n );\n\n return (\n <ComboBoxNormalized\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...pickerProps}\n onInputChange={onInputChange}\n onOpenChange={onOpenChange}\n />\n );\n}\n\nexport default ComboBox;\n"],"mappings":";;;;;;;;AAAA,SACEA,kBAAkB,QAIb,uBAAuB;AAC9B,SAASC,WAAW,EAAEC,MAAM,QAAQ,OAAO;AAAC,SAEnCC,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAMvB,OAAO,SAASC,QAAQA,CAACC,KAAoB,EAAe;EAC1D,IAAAC,eAAA,GAIIL,cAAc,CAAgBI,KAAK,CAAC;IAJlC;MACJE,aAAa,EAAEC,qBAAqB;MACpCC;IAEF,CAAC,GAAAH,eAAA;IADII,WAAW,GAAAC,wBAAA,CAAAL,eAAA,EAAAM,SAAA;EAGhB,IAAMC,SAAS,GAAGb,MAAM,CAAC,KAAK,CAAC;EAC/B,IAAMc,aAAa,GAAGd,MAAM,CAAC,EAAE,CAAC;EAEhC,IAAMO,aAAa,GAAGR,WAAW,CAC9BgB,KAAa,IAAK;IACjBP,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAGO,KAAK,CAAC;;IAE9B;IACA,IAAIF,SAAS,CAACG,OAAO,EAAE;MACrBP,kBAAkB,CAACM,KAAK,CAAC;IAC3B;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IAAA,KACK;MACHN,kBAAkB,CAAC,EAAE,CAAC;MACtBK,aAAa,CAACE,OAAO,GAAGD,KAAK;IAC/B;EACF,CAAC,EACD,CAACP,qBAAqB,EAAEC,kBAAkB,CAC5C,CAAC;EAED,IAAMQ,YAAY,GAAGlB,WAAW,CAC9B,CAACmB,MAAe,EAAEC,WAA+B,KAAK;IAAA,IAAAC,qBAAA;IACpD,CAAAA,qBAAA,GAAAV,WAAW,CAACO,YAAY,cAAAG,qBAAA,uBAAxBA,qBAAA,CAAAC,IAAA,CAAAX,WAAW,EAAgBQ,MAAM,CAAC;;IAElC;IACA,IAAI,CAACA,MAAM,EAAE;MACXT,kBAAkB,CAAC,EAAE,CAAC;IACxB;IACA;IAAA,KACK,IAAIU,WAAW,KAAK,OAAO,EAAE;MAChCV,kBAAkB,CAACK,aAAa,CAACE,OAAO,CAAC;IAC3C;;IAEA;IACAH,SAAS,CAACG,OAAO,GAAGE,MAAM;EAC5B,CAAC,EACD,CAACT,kBAAkB,EAAEC,WAAW,CAClC,CAAC;EAED,oBACEP,IAAA,CAACL;EACC;EAAA,EAAAwB,aAAA,CAAAA,aAAA,KACIZ,WAAW;IACfH,aAAa,EAAEA,aAAc;IAC7BU,YAAY,EAAEA;EAAa,EAC5B,CAAC;AAEN;AAEA,eAAeb,QAAQ"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { dh } from '@deephaven/jsapi-types';
|
|
2
|
-
export declare const useTableListener: <T = unknown>(eventEmitter: dh.HasEventHandling | undefined | null, eventName: string, callback: (event:
|
|
2
|
+
export declare const useTableListener: <T = unknown>(eventEmitter: dh.HasEventHandling | undefined | null, eventName: string, callback: (event: dh.Event<T>) => void) => void;
|
|
3
3
|
export default useTableListener;
|
|
4
4
|
//# sourceMappingURL=useTableListener.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableListener.d.ts","sourceRoot":"","sources":["../src/useTableListener.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAKjD,eAAO,MAAM,gBAAgB,GAAI,CAAC,0BAClB,EAAE,CAAC,gBAAgB,GAAG,SAAS,GAAG,IAAI,aACzC,MAAM,YACP,CAAC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"useTableListener.d.ts","sourceRoot":"","sources":["../src/useTableListener.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAKjD,eAAO,MAAM,gBAAgB,GAAI,CAAC,0BAClB,EAAE,CAAC,gBAAgB,GAAG,SAAS,GAAG,IAAI,aACzC,MAAM,YACP,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,IAAI,KACrC,IAWA,CAAC;AAEJ,eAAe,gBAAgB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableListener.js","names":["useEffect","Log","log","module","useTableListener","eventEmitter","eventName","callback","initEventEmitter","debug2","addEventListener"],"sources":["../src/useTableListener.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('useTableListener');\n\nexport const useTableListener = <T = unknown>(\n eventEmitter: dh.HasEventHandling | undefined | null,\n eventName: string,\n callback: (event:
|
|
1
|
+
{"version":3,"file":"useTableListener.js","names":["useEffect","Log","log","module","useTableListener","eventEmitter","eventName","callback","initEventEmitter","debug2","addEventListener"],"sources":["../src/useTableListener.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport Log from '@deephaven/log';\n\nconst log = Log.module('useTableListener');\n\nexport const useTableListener = <T = unknown>(\n eventEmitter: dh.HasEventHandling | undefined | null,\n eventName: string,\n callback: (event: dh.Event<T>) => void\n): void =>\n useEffect(\n function initEventEmitter() {\n if (eventEmitter == null) {\n log.debug2('Emitter undefined, skipping addEventListener', eventName);\n return;\n }\n log.debug2('Adding listener', eventName);\n return eventEmitter.addEventListener(eventName, callback);\n },\n [eventEmitter, eventName, callback]\n );\n\nexport default useTableListener;\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AAEjC,OAAOC,GAAG,MAAM,gBAAgB;AAEhC,IAAMC,GAAG,GAAGD,GAAG,CAACE,MAAM,CAAC,kBAAkB,CAAC;AAE1C,OAAO,IAAMC,gBAAgB,GAAGA,CAC9BC,YAAoD,EACpDC,SAAiB,EACjBC,QAAsC,KAEtCP,SAAS,CACP,SAASQ,gBAAgBA,CAAA,EAAG;EAC1B,IAAIH,YAAY,IAAI,IAAI,EAAE;IACxBH,GAAG,CAACO,MAAM,CAAC,8CAA8C,EAAEH,SAAS,CAAC;IACrE;EACF;EACAJ,GAAG,CAACO,MAAM,CAAC,iBAAiB,EAAEH,SAAS,CAAC;EACxC,OAAOD,YAAY,CAACK,gBAAgB,CAACJ,SAAS,EAAEC,QAAQ,CAAC;AAC3D,CAAC,EACD,CAACF,YAAY,EAAEC,SAAS,EAAEC,QAAQ,CACpC,CAAC;AAEH,eAAeH,gBAAgB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/jsapi-components",
|
|
3
|
-
"version": "0.102.
|
|
3
|
+
"version": "0.102.2-beta.0+5f6c8d6a",
|
|
4
4
|
"description": "Deephaven JSAPI Components",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -22,13 +22,13 @@
|
|
|
22
22
|
"build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
|
|
23
23
|
},
|
|
24
24
|
"dependencies": {
|
|
25
|
-
"@deephaven/components": "^0.102.
|
|
26
|
-
"@deephaven/jsapi-bootstrap": "^0.102.
|
|
27
|
-
"@deephaven/jsapi-types": "^1.0.0-dev0.
|
|
28
|
-
"@deephaven/jsapi-utils": "^0.102.
|
|
29
|
-
"@deephaven/log": "^0.102.
|
|
30
|
-
"@deephaven/react-hooks": "^0.102.
|
|
31
|
-
"@deephaven/utils": "^0.102.
|
|
25
|
+
"@deephaven/components": "^0.102.2-beta.0+5f6c8d6a",
|
|
26
|
+
"@deephaven/jsapi-bootstrap": "^0.102.2-beta.0+5f6c8d6a",
|
|
27
|
+
"@deephaven/jsapi-types": "^1.0.0-dev0.37.2",
|
|
28
|
+
"@deephaven/jsapi-utils": "^0.102.2-beta.0+5f6c8d6a",
|
|
29
|
+
"@deephaven/log": "^0.102.2-beta.0+5f6c8d6a",
|
|
30
|
+
"@deephaven/react-hooks": "^0.102.2-beta.0+5f6c8d6a",
|
|
31
|
+
"@deephaven/utils": "^0.102.2-beta.0+5f6c8d6a",
|
|
32
32
|
"@types/js-cookie": "^3.0.3",
|
|
33
33
|
"classnames": "^2.3.2",
|
|
34
34
|
"js-cookie": "^3.0.5",
|
|
@@ -36,8 +36,8 @@
|
|
|
36
36
|
"prop-types": "^15.8.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@deephaven/jsapi-shim": "^0.102.
|
|
40
|
-
"@deephaven/test-utils": "^0.102.
|
|
39
|
+
"@deephaven/jsapi-shim": "^0.102.2-beta.0+5f6c8d6a",
|
|
40
|
+
"@deephaven/test-utils": "^0.102.2-beta.0+5f6c8d6a",
|
|
41
41
|
"react-test-renderer": "^17.0.2"
|
|
42
42
|
},
|
|
43
43
|
"peerDependencies": {
|
|
@@ -52,5 +52,5 @@
|
|
|
52
52
|
"publishConfig": {
|
|
53
53
|
"access": "public"
|
|
54
54
|
},
|
|
55
|
-
"gitHead": "
|
|
55
|
+
"gitHead": "5f6c8d6a30099ac33fc6e35536b2ddfa9df528ca"
|
|
56
56
|
}
|