@deephaven/jsapi-components 0.84.0 → 0.84.1-alpha-shared-types.2
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/spectrum/ComboBox.d.ts +7 -0
- package/dist/spectrum/ComboBox.d.ts.map +1 -0
- package/dist/spectrum/ComboBox.js +31 -0
- package/dist/spectrum/ComboBox.js.map +1 -0
- package/dist/spectrum/Picker.d.ts +2 -11
- package/dist/spectrum/Picker.d.ts.map +1 -1
- package/dist/spectrum/Picker.js +5 -102
- package/dist/spectrum/Picker.js.map +1 -1
- package/dist/spectrum/PickerProps.d.ts +12 -0
- package/dist/spectrum/PickerProps.d.ts.map +1 -0
- package/dist/spectrum/PickerProps.js +2 -0
- package/dist/spectrum/PickerProps.js.map +1 -0
- package/dist/spectrum/index.d.ts +2 -0
- package/dist/spectrum/index.d.ts.map +1 -1
- package/dist/spectrum/index.js +2 -0
- package/dist/spectrum/index.js.map +1 -1
- package/dist/spectrum/utils/index.d.ts +1 -0
- package/dist/spectrum/utils/index.d.ts.map +1 -1
- package/dist/spectrum/utils/index.js +1 -0
- package/dist/spectrum/utils/index.js.map +1 -1
- package/dist/spectrum/utils/useItemRowDeserializer.d.ts +1 -1
- package/dist/spectrum/utils/useItemRowDeserializer.d.ts.map +1 -1
- package/dist/spectrum/utils/useItemRowDeserializer.js +12 -4
- package/dist/spectrum/utils/useItemRowDeserializer.js.map +1 -1
- package/dist/spectrum/utils/usePickerProps.d.ts +22 -0
- package/dist/spectrum/utils/usePickerProps.d.ts.map +1 -0
- package/dist/spectrum/utils/usePickerProps.js +136 -0
- package/dist/spectrum/utils/usePickerProps.js.map +1 -0
- package/dist/useGetItemIndexByValue.d.ts +1 -1
- package/dist/useGetItemIndexByValue.d.ts.map +1 -1
- package/dist/useGetItemIndexByValue.js +1 -1
- package/dist/useGetItemIndexByValue.js.map +1 -1
- package/dist/useViewportData.d.ts +1 -1
- package/dist/useViewportData.d.ts.map +1 -1
- package/dist/useViewportData.js.map +1 -1
- package/package.json +9 -9
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { NormalizedItem, SpectrumComboBoxProps } from '@deephaven/components';
|
|
3
|
+
import { PickerWithTableProps } from './PickerProps';
|
|
4
|
+
export type ComboBoxProps = PickerWithTableProps<SpectrumComboBoxProps<NormalizedItem>>;
|
|
5
|
+
export declare function ComboBox(props: ComboBoxProps): JSX.Element;
|
|
6
|
+
export default ComboBox;
|
|
7
|
+
//# sourceMappingURL=ComboBox.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ComboBox.d.ts","sourceRoot":"","sources":["../../src/spectrum/ComboBox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAEL,cAAc,EACd,qBAAqB,EACtB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,MAAM,MAAM,aAAa,GAAG,oBAAoB,CAC9C,qBAAqB,CAAC,cAAc,CAAC,CACtC,CAAC;AAEF,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,GAAG,CAAC,OAAO,CAsB1D;AAED,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
var _excluded = ["onInputChange", "onSearchTextChange"];
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
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; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
6
|
+
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); }
|
|
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
|
+
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
|
+
import { ComboBoxNormalized } from '@deephaven/components';
|
|
10
|
+
import { useCallback } from 'react';
|
|
11
|
+
import { usePickerProps } from "./utils/index.js";
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
export function ComboBox(props) {
|
|
14
|
+
var _usePickerProps = usePickerProps(props),
|
|
15
|
+
{
|
|
16
|
+
onInputChange: onInputChangeInternal,
|
|
17
|
+
onSearchTextChange
|
|
18
|
+
} = _usePickerProps,
|
|
19
|
+
pickerProps = _objectWithoutProperties(_usePickerProps, _excluded);
|
|
20
|
+
var onInputChange = useCallback(value => {
|
|
21
|
+
onInputChangeInternal === null || onInputChangeInternal === void 0 ? void 0 : onInputChangeInternal(value);
|
|
22
|
+
onSearchTextChange(value);
|
|
23
|
+
}, [onInputChangeInternal, onSearchTextChange]);
|
|
24
|
+
return /*#__PURE__*/_jsx(ComboBoxNormalized
|
|
25
|
+
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
26
|
+
, _objectSpread(_objectSpread({}, pickerProps), {}, {
|
|
27
|
+
onInputChange: onInputChange
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
export default ComboBox;
|
|
31
|
+
//# sourceMappingURL=ComboBox.js.map
|
|
@@ -0,0 +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 NormalizedItem,\n SpectrumComboBoxProps,\n} from '@deephaven/components';\nimport { useCallback } from 'react';\nimport { 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,QAGb,uBAAuB;AAC9B,SAASC,WAAW,QAAQ,OAAO;AAAC,SAE3BC,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,IAAML,aAAa,GAAGP,WAAW,CAC9Ba,KAAa,IAAK;IACjBL,qBAAqB,aAArBA,qBAAqB,uBAArBA,qBAAqB,CAAGK,KAAK,CAAC;IAC9BJ,kBAAkB,CAACI,KAAK,CAAC;EAC3B,CAAC,EACD,CAACL,qBAAqB,EAAEC,kBAAkB,CAC5C,CAAC;EAED,oBACEN,IAAA,CAACJ;EACC;EAAA,EAAAe,aAAA,CAAAA,aAAA,KACIJ,WAAW;IACfH,aAAa,EAAEA;EAAc,EAC9B,CAAC;AAEN;AAEA,eAAeH,QAAQ"}
|
|
@@ -1,14 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { PickerProps
|
|
3
|
-
|
|
4
|
-
import { Settings } from '@deephaven/jsapi-utils';
|
|
5
|
-
export interface PickerProps extends Omit<PickerBaseProps, 'children'> {
|
|
6
|
-
table: DhType.Table;
|
|
7
|
-
keyColumn?: string;
|
|
8
|
-
labelColumn?: string;
|
|
9
|
-
iconColumn?: string;
|
|
10
|
-
settings?: Settings;
|
|
11
|
-
}
|
|
12
|
-
export declare function Picker({ table, keyColumn: keyColumnName, labelColumn: labelColumnName, iconColumn: iconColumnName, settings, onChange, onSelectionChange, ...props }: PickerProps): JSX.Element;
|
|
2
|
+
import { PickerProps } from './PickerProps';
|
|
3
|
+
export declare function Picker(props: PickerProps): JSX.Element;
|
|
13
4
|
export default Picker;
|
|
14
5
|
//# sourceMappingURL=Picker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../src/spectrum/Picker.tsx"],"names":[],"mappings":";AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"Picker.d.ts","sourceRoot":"","sources":["../../src/spectrum/Picker.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAG5C,wBAAgB,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,OAAO,CAStD;AAED,eAAe,MAAM,CAAC"}
|
package/dist/spectrum/Picker.js
CHANGED
|
@@ -1,113 +1,16 @@
|
|
|
1
|
-
var _excluded = ["table", "keyColumn", "labelColumn", "iconColumn", "settings", "onChange", "onSelectionChange"];
|
|
2
1
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
2
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
3
|
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; }
|
|
5
4
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
6
5
|
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); }
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
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; }
|
|
10
|
-
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; }
|
|
11
|
-
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
12
|
-
import { PickerNormalized, useSpectrumThemeProvider } from '@deephaven/components';
|
|
13
|
-
import Log from '@deephaven/log';
|
|
14
|
-
import { PICKER_ITEM_HEIGHTS, PICKER_TOP_OFFSET } from '@deephaven/utils';
|
|
15
|
-
import useFormatter from "../useFormatter.js";
|
|
16
|
-
import useGetItemIndexByValue from "../useGetItemIndexByValue.js";
|
|
17
|
-
import { useViewportData } from "../useViewportData.js";
|
|
18
|
-
import { getItemKeyColumn } from "./utils/itemUtils.js";
|
|
19
|
-
import { useItemRowDeserializer } from "./utils/useItemRowDeserializer.js";
|
|
6
|
+
import { PickerNormalized } from '@deephaven/components';
|
|
7
|
+
import { usePickerProps } from "./utils/index.js";
|
|
20
8
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
var {
|
|
24
|
-
table,
|
|
25
|
-
keyColumn: keyColumnName,
|
|
26
|
-
labelColumn: labelColumnName,
|
|
27
|
-
iconColumn: iconColumnName,
|
|
28
|
-
settings,
|
|
29
|
-
onChange,
|
|
30
|
-
onSelectionChange
|
|
31
|
-
} = _ref,
|
|
32
|
-
props = _objectWithoutProperties(_ref, _excluded);
|
|
33
|
-
var {
|
|
34
|
-
scale
|
|
35
|
-
} = useSpectrumThemeProvider();
|
|
36
|
-
var itemHeight = PICKER_ITEM_HEIGHTS[scale];
|
|
37
|
-
var {
|
|
38
|
-
getFormattedString: formatValue
|
|
39
|
-
} = useFormatter(settings);
|
|
40
|
-
|
|
41
|
-
// `null` is a valid value for `selectedKey` in controlled mode, so we check
|
|
42
|
-
// for explicit `undefined` to identify uncontrolled mode.
|
|
43
|
-
var isUncontrolled = props.selectedKey === undefined;
|
|
44
|
-
var [uncontrolledSelectedKey, setUncontrolledSelectedKey] = useState(props.defaultSelectedKey);
|
|
45
|
-
var keyColumn = useMemo(() => getItemKeyColumn(table, keyColumnName), [keyColumnName, table]);
|
|
46
|
-
var deserializeRow = useItemRowDeserializer({
|
|
47
|
-
table,
|
|
48
|
-
iconColumnName,
|
|
49
|
-
keyColumnName,
|
|
50
|
-
labelColumnName,
|
|
51
|
-
formatValue
|
|
52
|
-
});
|
|
53
|
-
var getItemIndexByValue = useGetItemIndexByValue({
|
|
54
|
-
table,
|
|
55
|
-
columnName: keyColumn.name,
|
|
56
|
-
value: isUncontrolled ? uncontrolledSelectedKey : props.selectedKey
|
|
57
|
-
});
|
|
58
|
-
var getInitialScrollPosition = useCallback( /*#__PURE__*/_asyncToGenerator(function* () {
|
|
59
|
-
var index = yield getItemIndexByValue();
|
|
60
|
-
if (index == null) {
|
|
61
|
-
return null;
|
|
62
|
-
}
|
|
63
|
-
return index * itemHeight + PICKER_TOP_OFFSET;
|
|
64
|
-
}), [getItemIndexByValue, itemHeight]);
|
|
65
|
-
var {
|
|
66
|
-
viewportData,
|
|
67
|
-
onScroll,
|
|
68
|
-
setViewport
|
|
69
|
-
} = useViewportData({
|
|
70
|
-
reuseItemsOnTableResize: true,
|
|
71
|
-
table,
|
|
72
|
-
itemHeight,
|
|
73
|
-
deserializeRow
|
|
74
|
-
});
|
|
75
|
-
var normalizedItems = viewportData.items;
|
|
76
|
-
useEffect(
|
|
77
|
-
// Set viewport to include the selected item so that its data will load and
|
|
78
|
-
// the real `key` will be available to show the selection in the UI.
|
|
79
|
-
function setViewportFromSelectedKey() {
|
|
80
|
-
var isCanceled = false;
|
|
81
|
-
getItemIndexByValue().then(index => {
|
|
82
|
-
if (index == null || isCanceled) {
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
85
|
-
setViewport(index);
|
|
86
|
-
}).catch(err => {
|
|
87
|
-
log.error('Error setting viewport from selected key', err);
|
|
88
|
-
});
|
|
89
|
-
return () => {
|
|
90
|
-
isCanceled = true;
|
|
91
|
-
};
|
|
92
|
-
}, [getItemIndexByValue, settings, setViewport]);
|
|
93
|
-
var onSelectionChangeInternal = useCallback(key => {
|
|
94
|
-
var _ref3;
|
|
95
|
-
// If our component is uncontrolled, track the selected key internally
|
|
96
|
-
// so that we can scroll to the selected item if the user re-opens
|
|
97
|
-
if (isUncontrolled) {
|
|
98
|
-
setUncontrolledSelectedKey(key);
|
|
99
|
-
}
|
|
100
|
-
(_ref3 = onChange !== null && onChange !== void 0 ? onChange : onSelectionChange) === null || _ref3 === void 0 ? void 0 : _ref3(key);
|
|
101
|
-
}, [isUncontrolled, onChange, onSelectionChange]);
|
|
9
|
+
export function Picker(props) {
|
|
10
|
+
var pickerProps = usePickerProps(props);
|
|
102
11
|
return /*#__PURE__*/_jsx(PickerNormalized
|
|
103
12
|
// eslint-disable-next-line react/jsx-props-no-spreading
|
|
104
|
-
, _objectSpread(
|
|
105
|
-
normalizedItems: normalizedItems,
|
|
106
|
-
showItemIcons: iconColumnName != null,
|
|
107
|
-
getInitialScrollPosition: getInitialScrollPosition,
|
|
108
|
-
onChange: onSelectionChangeInternal,
|
|
109
|
-
onScroll: onScroll
|
|
110
|
-
}));
|
|
13
|
+
, _objectSpread({}, pickerProps));
|
|
111
14
|
}
|
|
112
15
|
export default Picker;
|
|
113
16
|
//# sourceMappingURL=Picker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Picker.js","names":["
|
|
1
|
+
{"version":3,"file":"Picker.js","names":["PickerNormalized","usePickerProps","jsx","_jsx","Picker","props","pickerProps","_objectSpread"],"sources":["../../src/spectrum/Picker.tsx"],"sourcesContent":["import { PickerNormalized } from '@deephaven/components';\nimport { PickerProps } from './PickerProps';\nimport { usePickerProps } from './utils';\n\nexport function Picker(props: PickerProps): JSX.Element {\n const pickerProps = usePickerProps<PickerProps>(props);\n\n return (\n <PickerNormalized\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...pickerProps}\n />\n );\n}\n\nexport default Picker;\n"],"mappings":";;;;;AAAA,SAASA,gBAAgB,QAAQ,uBAAuB;AAAC,SAEhDC,cAAc;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEvB,OAAO,SAASC,MAAMA,CAACC,KAAkB,EAAe;EACtD,IAAMC,WAAW,GAAGL,cAAc,CAAcI,KAAK,CAAC;EAEtD,oBACEF,IAAA,CAACH;EACC;EAAA,EAAAO,aAAA,KACID,WAAW,CAChB,CAAC;AAEN;AAEA,eAAeF,MAAM"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { NormalizedItem, PickerPropsT, SpectrumPickerProps } from '@deephaven/components';
|
|
2
|
+
import { dh as DhType } from '@deephaven/jsapi-types';
|
|
3
|
+
import { Settings } from '@deephaven/jsapi-utils';
|
|
4
|
+
export type PickerWithTableProps<TProps> = Omit<PickerPropsT<TProps>, 'children'> & {
|
|
5
|
+
table: DhType.Table;
|
|
6
|
+
keyColumn?: string;
|
|
7
|
+
labelColumn?: string;
|
|
8
|
+
iconColumn?: string;
|
|
9
|
+
settings?: Settings;
|
|
10
|
+
};
|
|
11
|
+
export type PickerProps = PickerWithTableProps<SpectrumPickerProps<NormalizedItem>>;
|
|
12
|
+
//# sourceMappingURL=PickerProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PickerProps.d.ts","sourceRoot":"","sources":["../../src/spectrum/PickerProps.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,YAAY,EACZ,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,MAAM,MAAM,oBAAoB,CAAC,MAAM,IAAI,IAAI,CAC7C,YAAY,CAAC,MAAM,CAAC,EACpB,UAAU,CACX,GAAG;IACF,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;IAEpB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,oBAAoB,CAC5C,mBAAmB,CAAC,cAAc,CAAC,CACpC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PickerProps.js","names":[],"sources":["../../src/spectrum/PickerProps.ts"],"sourcesContent":["import {\n NormalizedItem,\n PickerPropsT,\n SpectrumPickerProps,\n} from '@deephaven/components';\nimport { dh as DhType } from '@deephaven/jsapi-types';\nimport { Settings } from '@deephaven/jsapi-utils';\n\nexport type PickerWithTableProps<TProps> = Omit<\n PickerPropsT<TProps>,\n 'children'\n> & {\n table: DhType.Table;\n /* The column of values to use as item keys. Defaults to the first column. */\n keyColumn?: string;\n /* The column of values to display as primary text. Defaults to the `keyColumn` value. */\n labelColumn?: string;\n\n /* The column of values to map to icons. */\n iconColumn?: string;\n\n settings?: Settings;\n};\n\nexport type PickerProps = PickerWithTableProps<\n SpectrumPickerProps<NormalizedItem>\n>;\n"],"mappings":""}
|
package/dist/spectrum/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/spectrum/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/spectrum/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC"}
|
package/dist/spectrum/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/spectrum/index.ts"],"sourcesContent":["export * from './ListView';\nexport * from './Picker';\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/spectrum/index.ts"],"sourcesContent":["export * from './ComboBox';\nexport * from './ListView';\nexport * from './Picker';\nexport * from './PickerProps';\n"],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spectrum/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/spectrum/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../../src/spectrum/utils/index.ts"],"sourcesContent":["export * from './itemUtils';\nexport * from './useItemRowDeserializer';\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../../src/spectrum/utils/index.ts"],"sourcesContent":["export * from './itemUtils';\nexport * from './useItemRowDeserializer';\nexport * from './usePickerProps';\n"],"mappings":""}
|
|
@@ -11,7 +11,7 @@ import { dh } from '@deephaven/jsapi-types';
|
|
|
11
11
|
* @returns A function that deserializes a row into a normalized item data object
|
|
12
12
|
*/
|
|
13
13
|
export declare function useItemRowDeserializer({ table, descriptionColumnName, iconColumnName, keyColumnName, labelColumnName, formatValue, }: {
|
|
14
|
-
table
|
|
14
|
+
table?: dh.Table | null;
|
|
15
15
|
descriptionColumnName?: string;
|
|
16
16
|
iconColumnName?: string;
|
|
17
17
|
keyColumnName?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useItemRowDeserializer.d.ts","sourceRoot":"","sources":["../../../src/spectrum/utils/useItemRowDeserializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"useItemRowDeserializer.d.ts","sourceRoot":"","sources":["../../../src/spectrum/utils/useItemRowDeserializer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAoB5C;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,KAAK,EACL,qBAAqB,EACrB,cAAc,EACd,aAAa,EACb,eAAe,EACf,WAAgC,GACjC,EAAE;IACD,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9D,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,kBAAkB,CA8DtC;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { useCallback, useMemo } from 'react';
|
|
2
|
+
import { assertNotNull } from '@deephaven/utils';
|
|
2
3
|
import { getItemKeyColumn, getItemLabelColumn } from "./itemUtils.js";
|
|
3
4
|
function defaultFormatKey(value) {
|
|
4
5
|
if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {
|
|
@@ -29,11 +30,18 @@ export function useItemRowDeserializer(_ref) {
|
|
|
29
30
|
labelColumnName,
|
|
30
31
|
formatValue = defaultFormatValue
|
|
31
32
|
} = _ref;
|
|
32
|
-
var keyColumn = useMemo(() => getItemKeyColumn(table, keyColumnName), [keyColumnName, table]);
|
|
33
|
-
var labelColumn = useMemo(() => getItemLabelColumn(table, keyColumn, labelColumnName), [keyColumn, labelColumnName, table]);
|
|
34
|
-
var descriptionColumn = useMemo(() => descriptionColumnName == null ? null : table.findColumn(descriptionColumnName), [descriptionColumnName, table]);
|
|
35
|
-
var iconColumn = useMemo(() => iconColumnName == null ? null : table.findColumn(iconColumnName), [iconColumnName, table]);
|
|
33
|
+
var keyColumn = useMemo(() => table == null ? null : getItemKeyColumn(table, keyColumnName), [keyColumnName, table]);
|
|
34
|
+
var labelColumn = useMemo(() => table == null || keyColumn == null ? null : getItemLabelColumn(table, keyColumn, labelColumnName), [keyColumn, labelColumnName, table]);
|
|
35
|
+
var descriptionColumn = useMemo(() => table == null || descriptionColumnName == null ? null : table.findColumn(descriptionColumnName), [descriptionColumnName, table]);
|
|
36
|
+
var iconColumn = useMemo(() => table == null || iconColumnName == null ? null : table.findColumn(iconColumnName), [iconColumnName, table]);
|
|
36
37
|
var deserializeRow = useCallback(row => {
|
|
38
|
+
// `deserializeRow` can be created on a null `table` which results in null
|
|
39
|
+
// `keyColumn` + `labelColumn`, but it should never actually be called.
|
|
40
|
+
// The assumption is that the `table` will eventually be non-null,
|
|
41
|
+
// `deserializeRow` will be recreated, and then applied to the non-null
|
|
42
|
+
// table.
|
|
43
|
+
assertNotNull(keyColumn, 'keyColumn cannot be null.');
|
|
44
|
+
assertNotNull(labelColumn, 'labelColumn cannot be null.');
|
|
37
45
|
var key = defaultFormatKey(row.get(keyColumn));
|
|
38
46
|
var content = formatValue(row.get(labelColumn), labelColumn.type);
|
|
39
47
|
var description = descriptionColumn == null ? undefined : formatValue(row.get(descriptionColumn), descriptionColumn.type);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useItemRowDeserializer.js","names":["useCallback","useMemo","getItemKeyColumn","getItemLabelColumn","defaultFormatKey","value","String","defaultFormatValue","_columnType","useItemRowDeserializer","_ref","table","descriptionColumnName","iconColumnName","keyColumnName","labelColumnName","formatValue","keyColumn","labelColumn","descriptionColumn","findColumn","iconColumn","deserializeRow","row","key","get","content","type","description","undefined","icon","textValue"],"sources":["../../../src/spectrum/utils/useItemRowDeserializer.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { NormalizedItemData } from '@deephaven/components';\nimport { dh } from '@deephaven/jsapi-types';\nimport { getItemKeyColumn, getItemLabelColumn } from './itemUtils';\n\nfunction defaultFormatKey(value: unknown): string | number | boolean {\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return value;\n }\n\n return String(value);\n}\n\nfunction defaultFormatValue(value: unknown, _columnType: string): string {\n return String(value);\n}\n\n/**\n * Returns a function that deserializes a row into a normalized item data object.\n * @param table The table to get the key and label columns from\n * @param descriptionColumnName The name of the column to use for description data\n * @param iconColumnName The name of the column to use for icon data\n * @param keyColumnName The name of the column to use for key data\n * @param labelColumnName The name of the column to use for label data\n * @param formatValue Optional function to format the label value\n * @returns A function that deserializes a row into a normalized item data object\n */\nexport function useItemRowDeserializer({\n table,\n descriptionColumnName,\n iconColumnName,\n keyColumnName,\n labelColumnName,\n formatValue = defaultFormatValue,\n}: {\n table
|
|
1
|
+
{"version":3,"file":"useItemRowDeserializer.js","names":["useCallback","useMemo","assertNotNull","getItemKeyColumn","getItemLabelColumn","defaultFormatKey","value","String","defaultFormatValue","_columnType","useItemRowDeserializer","_ref","table","descriptionColumnName","iconColumnName","keyColumnName","labelColumnName","formatValue","keyColumn","labelColumn","descriptionColumn","findColumn","iconColumn","deserializeRow","row","key","get","content","type","description","undefined","icon","textValue"],"sources":["../../../src/spectrum/utils/useItemRowDeserializer.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { NormalizedItemData } from '@deephaven/components';\nimport { dh } from '@deephaven/jsapi-types';\nimport { assertNotNull } from '@deephaven/utils';\nimport { getItemKeyColumn, getItemLabelColumn } from './itemUtils';\n\nfunction defaultFormatKey(value: unknown): string | number | boolean {\n if (\n typeof value === 'string' ||\n typeof value === 'number' ||\n typeof value === 'boolean'\n ) {\n return value;\n }\n\n return String(value);\n}\n\nfunction defaultFormatValue(value: unknown, _columnType: string): string {\n return String(value);\n}\n\n/**\n * Returns a function that deserializes a row into a normalized item data object.\n * @param table The table to get the key and label columns from\n * @param descriptionColumnName The name of the column to use for description data\n * @param iconColumnName The name of the column to use for icon data\n * @param keyColumnName The name of the column to use for key data\n * @param labelColumnName The name of the column to use for label data\n * @param formatValue Optional function to format the label value\n * @returns A function that deserializes a row into a normalized item data object\n */\nexport function useItemRowDeserializer({\n table,\n descriptionColumnName,\n iconColumnName,\n keyColumnName,\n labelColumnName,\n formatValue = defaultFormatValue,\n}: {\n table?: dh.Table | null;\n descriptionColumnName?: string;\n iconColumnName?: string;\n keyColumnName?: string;\n labelColumnName?: string;\n formatValue?: (value: unknown, columnType: string) => string;\n}): (row: dh.Row) => NormalizedItemData {\n const keyColumn = useMemo(\n () => (table == null ? null : getItemKeyColumn(table, keyColumnName)),\n [keyColumnName, table]\n );\n\n const labelColumn = useMemo(\n () =>\n table == null || keyColumn == null\n ? null\n : getItemLabelColumn(table, keyColumn, labelColumnName),\n [keyColumn, labelColumnName, table]\n );\n\n const descriptionColumn = useMemo(\n () =>\n table == null || descriptionColumnName == null\n ? null\n : table.findColumn(descriptionColumnName),\n [descriptionColumnName, table]\n );\n\n const iconColumn = useMemo(\n () =>\n table == null || iconColumnName == null\n ? null\n : table.findColumn(iconColumnName),\n [iconColumnName, table]\n );\n\n const deserializeRow = useCallback(\n (row: dh.Row): NormalizedItemData => {\n // `deserializeRow` can be created on a null `table` which results in null\n // `keyColumn` + `labelColumn`, but it should never actually be called.\n // The assumption is that the `table` will eventually be non-null,\n // `deserializeRow` will be recreated, and then applied to the non-null\n // table.\n assertNotNull(keyColumn, 'keyColumn cannot be null.');\n assertNotNull(labelColumn, 'labelColumn cannot be null.');\n\n const key = defaultFormatKey(row.get(keyColumn));\n const content = formatValue(row.get(labelColumn), labelColumn.type);\n\n const description =\n descriptionColumn == null\n ? undefined\n : formatValue(row.get(descriptionColumn), descriptionColumn.type);\n\n const icon = iconColumn == null ? undefined : row.get(iconColumn);\n\n return {\n key,\n content,\n textValue: content,\n description,\n icon,\n };\n },\n [descriptionColumn, formatValue, iconColumn, keyColumn, labelColumn]\n );\n\n return deserializeRow;\n}\n\nexport default useItemRowDeserializer;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAG5C,SAASC,aAAa,QAAQ,kBAAkB;AAAC,SACxCC,gBAAgB,EAAEC,kBAAkB;AAE7C,SAASC,gBAAgBA,CAACC,KAAc,EAA6B;EACnE,IACE,OAAOA,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,QAAQ,IACzB,OAAOA,KAAK,KAAK,SAAS,EAC1B;IACA,OAAOA,KAAK;EACd;EAEA,OAAOC,MAAM,CAACD,KAAK,CAAC;AACtB;AAEA,SAASE,kBAAkBA,CAACF,KAAc,EAAEG,WAAmB,EAAU;EACvE,OAAOF,MAAM,CAACD,KAAK,CAAC;AACtB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASI,sBAAsBA,CAAAC,IAAA,EAcE;EAAA,IAdD;IACrCC,KAAK;IACLC,qBAAqB;IACrBC,cAAc;IACdC,aAAa;IACbC,eAAe;IACfC,WAAW,GAAGT;EAQhB,CAAC,GAAAG,IAAA;EACC,IAAMO,SAAS,GAAGjB,OAAO,CACvB,MAAOW,KAAK,IAAI,IAAI,GAAG,IAAI,GAAGT,gBAAgB,CAACS,KAAK,EAAEG,aAAa,CAAE,EACrE,CAACA,aAAa,EAAEH,KAAK,CACvB,CAAC;EAED,IAAMO,WAAW,GAAGlB,OAAO,CACzB,MACEW,KAAK,IAAI,IAAI,IAAIM,SAAS,IAAI,IAAI,GAC9B,IAAI,GACJd,kBAAkB,CAACQ,KAAK,EAAEM,SAAS,EAAEF,eAAe,CAAC,EAC3D,CAACE,SAAS,EAAEF,eAAe,EAAEJ,KAAK,CACpC,CAAC;EAED,IAAMQ,iBAAiB,GAAGnB,OAAO,CAC/B,MACEW,KAAK,IAAI,IAAI,IAAIC,qBAAqB,IAAI,IAAI,GAC1C,IAAI,GACJD,KAAK,CAACS,UAAU,CAACR,qBAAqB,CAAC,EAC7C,CAACA,qBAAqB,EAAED,KAAK,CAC/B,CAAC;EAED,IAAMU,UAAU,GAAGrB,OAAO,CACxB,MACEW,KAAK,IAAI,IAAI,IAAIE,cAAc,IAAI,IAAI,GACnC,IAAI,GACJF,KAAK,CAACS,UAAU,CAACP,cAAc,CAAC,EACtC,CAACA,cAAc,EAAEF,KAAK,CACxB,CAAC;EAED,IAAMW,cAAc,GAAGvB,WAAW,CAC/BwB,GAAW,IAAyB;IACnC;IACA;IACA;IACA;IACA;IACAtB,aAAa,CAACgB,SAAS,EAAE,2BAA2B,CAAC;IACrDhB,aAAa,CAACiB,WAAW,EAAE,6BAA6B,CAAC;IAEzD,IAAMM,GAAG,GAAGpB,gBAAgB,CAACmB,GAAG,CAACE,GAAG,CAACR,SAAS,CAAC,CAAC;IAChD,IAAMS,OAAO,GAAGV,WAAW,CAACO,GAAG,CAACE,GAAG,CAACP,WAAW,CAAC,EAAEA,WAAW,CAACS,IAAI,CAAC;IAEnE,IAAMC,WAAW,GACfT,iBAAiB,IAAI,IAAI,GACrBU,SAAS,GACTb,WAAW,CAACO,GAAG,CAACE,GAAG,CAACN,iBAAiB,CAAC,EAAEA,iBAAiB,CAACQ,IAAI,CAAC;IAErE,IAAMG,IAAI,GAAGT,UAAU,IAAI,IAAI,GAAGQ,SAAS,GAAGN,GAAG,CAACE,GAAG,CAACJ,UAAU,CAAC;IAEjE,OAAO;MACLG,GAAG;MACHE,OAAO;MACPK,SAAS,EAAEL,OAAO;MAClBE,WAAW;MACXE;IACF,CAAC;EACH,CAAC,EACD,CAACX,iBAAiB,EAAEH,WAAW,EAAEK,UAAU,EAAEJ,SAAS,EAAEC,WAAW,CACrE,CAAC;EAED,OAAOI,cAAc;AACvB;AAEA,eAAeb,sBAAsB"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ItemKey, NormalizedItem, NormalizedSection } from '@deephaven/components';
|
|
2
|
+
import type { PickerWithTableProps } from '../PickerProps';
|
|
3
|
+
/** Props that are derived by `usePickerProps`. */
|
|
4
|
+
export type UsePickerDerivedProps = {
|
|
5
|
+
normalizedItems: (NormalizedItem | NormalizedSection)[];
|
|
6
|
+
showItemIcons: boolean;
|
|
7
|
+
getInitialScrollPosition: () => Promise<number | null>;
|
|
8
|
+
onChange: (key: ItemKey | null) => void;
|
|
9
|
+
onScroll: (event: Event) => void;
|
|
10
|
+
onSearchTextChange: (searchText: string) => void;
|
|
11
|
+
};
|
|
12
|
+
/**
|
|
13
|
+
* Props that are passed through untouched. (should exclude all of the
|
|
14
|
+
* destructured props passed into `usePickerProps` that are not in the spread
|
|
15
|
+
* ...props)
|
|
16
|
+
) */
|
|
17
|
+
export type UsePickerPassthroughProps<TProps> = Omit<PickerWithTableProps<TProps>, 'table' | 'keyColumn' | 'labelColumn' | 'iconColumn' | 'settings' | 'onChange' | 'onSelectionChange'>;
|
|
18
|
+
/** Props returned by `usePickerProps` hook. */
|
|
19
|
+
export type UsePickerProps<TProps> = UsePickerDerivedProps & UsePickerPassthroughProps<TProps>;
|
|
20
|
+
export declare function usePickerProps<TProps>({ table: tableSource, keyColumn: keyColumnName, labelColumn: labelColumnName, iconColumn: iconColumnName, settings, onChange, onSelectionChange, ...props }: PickerWithTableProps<TProps>): UsePickerProps<TProps>;
|
|
21
|
+
export default usePickerProps;
|
|
22
|
+
//# sourceMappingURL=usePickerProps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePickerProps.d.ts","sourceRoot":"","sources":["../../../src/spectrum/utils/usePickerProps.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,cAAc,EACd,iBAAiB,EAElB,MAAM,uBAAuB,CAAC;AAM/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAQ3D,kDAAkD;AAClD,MAAM,MAAM,qBAAqB,GAAG;IAClC,eAAe,EAAE,CAAC,cAAc,GAAG,iBAAiB,CAAC,EAAE,CAAC;IACxD,aAAa,EAAE,OAAO,CAAC;IACvB,wBAAwB,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IACvD,QAAQ,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,KAAK,IAAI,CAAC;IACxC,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,kBAAkB,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;CAClD,CAAC;AAEF;;;;IAII;AACJ,MAAM,MAAM,yBAAyB,CAAC,MAAM,IAAI,IAAI,CAClD,oBAAoB,CAAC,MAAM,CAAC,EAC1B,OAAO,GACP,WAAW,GACX,aAAa,GACb,YAAY,GACZ,UAAU,GACV,UAAU,GACV,mBAAmB,CACtB,CAAC;AAEF,+CAA+C;AAC/C,MAAM,MAAM,cAAc,CAAC,MAAM,IAAI,qBAAqB,GACxD,yBAAyB,CAAC,MAAM,CAAC,CAAC;AAEpC,wBAAgB,cAAc,CAAC,MAAM,EAAE,EACrC,KAAK,EAAE,WAAW,EAClB,SAAS,EAAE,aAAa,EACxB,WAAW,EAAE,eAAe,EAC5B,UAAU,EAAE,cAAc,EAC1B,QAAQ,EACR,QAAQ,EACR,iBAAiB,EACjB,GAAG,KAAK,EACT,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAAG,cAAc,CAAC,MAAM,CAAC,CAwHvD;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
var _excluded = ["table", "keyColumn", "labelColumn", "iconColumn", "settings", "onChange", "onSelectionChange"];
|
|
2
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
3
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
4
|
+
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; }
|
|
5
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
6
|
+
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); }
|
|
7
|
+
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); } }
|
|
8
|
+
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); }); }; }
|
|
9
|
+
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; }
|
|
10
|
+
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; }
|
|
11
|
+
import { useCallback, useEffect, useMemo, useState } from 'react';
|
|
12
|
+
import { usePickerItemScale } from '@deephaven/components';
|
|
13
|
+
import { TableUtils } from '@deephaven/jsapi-utils';
|
|
14
|
+
import Log from '@deephaven/log';
|
|
15
|
+
import { usePromiseFactory } from '@deephaven/react-hooks';
|
|
16
|
+
import { PICKER_TOP_OFFSET } from '@deephaven/utils';
|
|
17
|
+
import useFormatter from "../../useFormatter.js";
|
|
18
|
+
import { getItemKeyColumn, getItemLabelColumn } from "./itemUtils.js";
|
|
19
|
+
import { useItemRowDeserializer } from "./useItemRowDeserializer.js";
|
|
20
|
+
import { useGetItemIndexByValue } from "../../useGetItemIndexByValue.js";
|
|
21
|
+
import useSearchableViewportData from "../../useSearchableViewportData.js";
|
|
22
|
+
var log = Log.module('jsapi-components.usePickerProps');
|
|
23
|
+
|
|
24
|
+
/** Props that are derived by `usePickerProps`. */
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* Props that are passed through untouched. (should exclude all of the
|
|
28
|
+
* destructured props passed into `usePickerProps` that are not in the spread
|
|
29
|
+
* ...props)
|
|
30
|
+
) */
|
|
31
|
+
|
|
32
|
+
/** Props returned by `usePickerProps` hook. */
|
|
33
|
+
|
|
34
|
+
export function usePickerProps(_ref) {
|
|
35
|
+
var _keyColumn$name;
|
|
36
|
+
var {
|
|
37
|
+
table: tableSource,
|
|
38
|
+
keyColumn: keyColumnName,
|
|
39
|
+
labelColumn: labelColumnName,
|
|
40
|
+
iconColumn: iconColumnName,
|
|
41
|
+
settings,
|
|
42
|
+
onChange,
|
|
43
|
+
onSelectionChange
|
|
44
|
+
} = _ref,
|
|
45
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
46
|
+
var {
|
|
47
|
+
itemHeight
|
|
48
|
+
} = usePickerItemScale();
|
|
49
|
+
var {
|
|
50
|
+
getFormattedString: formatValue,
|
|
51
|
+
timeZone
|
|
52
|
+
} = useFormatter(settings);
|
|
53
|
+
|
|
54
|
+
// `null` is a valid value for `selectedKey` in controlled mode, so we check
|
|
55
|
+
// for explicit `undefined` to identify uncontrolled mode.
|
|
56
|
+
var isUncontrolled = props.selectedKey === undefined;
|
|
57
|
+
var [uncontrolledSelectedKey, setUncontrolledSelectedKey] = useState(props.defaultSelectedKey);
|
|
58
|
+
|
|
59
|
+
// Copy table so we can apply filters without affecting the original table.
|
|
60
|
+
// (Note that this call is not actually applying any filters. Filter will be
|
|
61
|
+
// applied in `useSearchableViewportData`.)
|
|
62
|
+
var {
|
|
63
|
+
data: tableCopy
|
|
64
|
+
} = usePromiseFactory(TableUtils.copyTableAndApplyFilters, [tableSource]);
|
|
65
|
+
var keyColumn = useMemo(() => tableCopy == null ? null : getItemKeyColumn(tableCopy, keyColumnName), [keyColumnName, tableCopy]);
|
|
66
|
+
var labelColumn = useMemo(() => tableCopy == null || keyColumn == null ? null : getItemLabelColumn(tableCopy, keyColumn, labelColumnName), [keyColumn, labelColumnName, tableCopy]);
|
|
67
|
+
var searchColumnNames = useMemo(() => labelColumn == null ? [] : [labelColumn.name], [labelColumn]);
|
|
68
|
+
var deserializeRow = useItemRowDeserializer({
|
|
69
|
+
table: tableCopy,
|
|
70
|
+
iconColumnName,
|
|
71
|
+
keyColumnName,
|
|
72
|
+
labelColumnName,
|
|
73
|
+
formatValue
|
|
74
|
+
});
|
|
75
|
+
var getItemIndexByValue = useGetItemIndexByValue({
|
|
76
|
+
table: tableCopy,
|
|
77
|
+
columnName: (_keyColumn$name = keyColumn === null || keyColumn === void 0 ? void 0 : keyColumn.name) !== null && _keyColumn$name !== void 0 ? _keyColumn$name : null,
|
|
78
|
+
value: isUncontrolled ? uncontrolledSelectedKey : props.selectedKey
|
|
79
|
+
});
|
|
80
|
+
var getInitialScrollPosition = useCallback( /*#__PURE__*/_asyncToGenerator(function* () {
|
|
81
|
+
var index = yield getItemIndexByValue();
|
|
82
|
+
if (index == null) {
|
|
83
|
+
return null;
|
|
84
|
+
}
|
|
85
|
+
return index * itemHeight + PICKER_TOP_OFFSET;
|
|
86
|
+
}), [getItemIndexByValue, itemHeight]);
|
|
87
|
+
var {
|
|
88
|
+
onScroll,
|
|
89
|
+
onSearchTextChange,
|
|
90
|
+
setViewport,
|
|
91
|
+
viewportData
|
|
92
|
+
} = useSearchableViewportData({
|
|
93
|
+
reuseItemsOnTableResize: true,
|
|
94
|
+
table: tableCopy,
|
|
95
|
+
itemHeight,
|
|
96
|
+
deserializeRow,
|
|
97
|
+
searchColumnNames,
|
|
98
|
+
timeZone
|
|
99
|
+
});
|
|
100
|
+
useEffect(
|
|
101
|
+
// Set viewport to include the selected item so that its data will load and
|
|
102
|
+
// the real `key` will be available to show the selection in the UI.
|
|
103
|
+
function setViewportFromSelectedKey() {
|
|
104
|
+
var isCanceled = false;
|
|
105
|
+
getItemIndexByValue().then(index => {
|
|
106
|
+
if (index == null || isCanceled) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
setViewport(index);
|
|
110
|
+
}).catch(err => {
|
|
111
|
+
log.error('Error setting viewport from selected key', err);
|
|
112
|
+
});
|
|
113
|
+
return () => {
|
|
114
|
+
isCanceled = true;
|
|
115
|
+
};
|
|
116
|
+
}, [getItemIndexByValue, settings, setViewport]);
|
|
117
|
+
var onSelectionChangeInternal = useCallback(key => {
|
|
118
|
+
var _ref3;
|
|
119
|
+
// If our component is uncontrolled, track the selected key internally
|
|
120
|
+
// so that we can scroll to the selected item if the user re-opens
|
|
121
|
+
if (isUncontrolled) {
|
|
122
|
+
setUncontrolledSelectedKey(key);
|
|
123
|
+
}
|
|
124
|
+
(_ref3 = onChange !== null && onChange !== void 0 ? onChange : onSelectionChange) === null || _ref3 === void 0 ? void 0 : _ref3(key);
|
|
125
|
+
}, [isUncontrolled, onChange, onSelectionChange]);
|
|
126
|
+
return _objectSpread(_objectSpread({}, props), {}, {
|
|
127
|
+
normalizedItems: viewportData.items,
|
|
128
|
+
showItemIcons: iconColumnName != null,
|
|
129
|
+
getInitialScrollPosition,
|
|
130
|
+
onChange: onSelectionChangeInternal,
|
|
131
|
+
onScroll,
|
|
132
|
+
onSearchTextChange
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
export default usePickerProps;
|
|
136
|
+
//# sourceMappingURL=usePickerProps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePickerProps.js","names":["useCallback","useEffect","useMemo","useState","usePickerItemScale","TableUtils","Log","usePromiseFactory","PICKER_TOP_OFFSET","useFormatter","getItemKeyColumn","getItemLabelColumn","useItemRowDeserializer","useGetItemIndexByValue","useSearchableViewportData","log","module","usePickerProps","_ref","_keyColumn$name","table","tableSource","keyColumn","keyColumnName","labelColumn","labelColumnName","iconColumn","iconColumnName","settings","onChange","onSelectionChange","props","_objectWithoutProperties","_excluded","itemHeight","getFormattedString","formatValue","timeZone","isUncontrolled","selectedKey","undefined","uncontrolledSelectedKey","setUncontrolledSelectedKey","defaultSelectedKey","data","tableCopy","copyTableAndApplyFilters","searchColumnNames","name","deserializeRow","getItemIndexByValue","columnName","value","getInitialScrollPosition","_asyncToGenerator","index","onScroll","onSearchTextChange","setViewport","viewportData","reuseItemsOnTableResize","setViewportFromSelectedKey","isCanceled","then","catch","err","error","onSelectionChangeInternal","key","_ref3","_objectSpread","normalizedItems","items","showItemIcons"],"sources":["../../../src/spectrum/utils/usePickerProps.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useState } from 'react';\nimport {\n ItemKey,\n NormalizedItem,\n NormalizedSection,\n usePickerItemScale,\n} from '@deephaven/components';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { usePromiseFactory } from '@deephaven/react-hooks';\nimport { PICKER_TOP_OFFSET } from '@deephaven/utils';\nimport useFormatter from '../../useFormatter';\nimport type { PickerWithTableProps } from '../PickerProps';\nimport { getItemKeyColumn, getItemLabelColumn } from './itemUtils';\nimport { useItemRowDeserializer } from './useItemRowDeserializer';\nimport { useGetItemIndexByValue } from '../../useGetItemIndexByValue';\nimport useSearchableViewportData from '../../useSearchableViewportData';\n\nconst log = Log.module('jsapi-components.usePickerProps');\n\n/** Props that are derived by `usePickerProps`. */\nexport type UsePickerDerivedProps = {\n normalizedItems: (NormalizedItem | NormalizedSection)[];\n showItemIcons: boolean;\n getInitialScrollPosition: () => Promise<number | null>;\n onChange: (key: ItemKey | null) => void;\n onScroll: (event: Event) => void;\n onSearchTextChange: (searchText: string) => void;\n};\n\n/** \n * Props that are passed through untouched. (should exclude all of the\n * destructured props passed into `usePickerProps` that are not in the spread\n * ...props)\n) */\nexport type UsePickerPassthroughProps<TProps> = Omit<\n PickerWithTableProps<TProps>,\n | 'table'\n | 'keyColumn'\n | 'labelColumn'\n | 'iconColumn'\n | 'settings'\n | 'onChange'\n | 'onSelectionChange'\n>;\n\n/** Props returned by `usePickerProps` hook. */\nexport type UsePickerProps<TProps> = UsePickerDerivedProps &\n UsePickerPassthroughProps<TProps>;\n\nexport function usePickerProps<TProps>({\n table: tableSource,\n keyColumn: keyColumnName,\n labelColumn: labelColumnName,\n iconColumn: iconColumnName,\n settings,\n onChange,\n onSelectionChange,\n ...props\n}: PickerWithTableProps<TProps>): UsePickerProps<TProps> {\n const { itemHeight } = usePickerItemScale();\n\n const { getFormattedString: formatValue, timeZone } = useFormatter(settings);\n\n // `null` is a valid value for `selectedKey` in controlled mode, so we check\n // for explicit `undefined` to identify uncontrolled mode.\n const isUncontrolled = props.selectedKey === undefined;\n const [uncontrolledSelectedKey, setUncontrolledSelectedKey] = useState<\n ItemKey | null | undefined\n >(props.defaultSelectedKey);\n\n // Copy table so we can apply filters without affecting the original table.\n // (Note that this call is not actually applying any filters. Filter will be\n // applied in `useSearchableViewportData`.)\n const { data: tableCopy } = usePromiseFactory(\n TableUtils.copyTableAndApplyFilters,\n [tableSource]\n );\n\n const keyColumn = useMemo(\n () =>\n tableCopy == null ? null : getItemKeyColumn(tableCopy, keyColumnName),\n [keyColumnName, tableCopy]\n );\n\n const labelColumn = useMemo(\n () =>\n tableCopy == null || keyColumn == null\n ? null\n : getItemLabelColumn(tableCopy, keyColumn, labelColumnName),\n [keyColumn, labelColumnName, tableCopy]\n );\n\n const searchColumnNames = useMemo(\n () => (labelColumn == null ? [] : [labelColumn.name]),\n [labelColumn]\n );\n\n const deserializeRow = useItemRowDeserializer({\n table: tableCopy,\n iconColumnName,\n keyColumnName,\n labelColumnName,\n formatValue,\n });\n\n const getItemIndexByValue = useGetItemIndexByValue({\n table: tableCopy,\n columnName: keyColumn?.name ?? null,\n value: isUncontrolled ? uncontrolledSelectedKey : props.selectedKey,\n });\n\n const getInitialScrollPosition = useCallback(async () => {\n const index = await getItemIndexByValue();\n\n if (index == null) {\n return null;\n }\n\n return index * itemHeight + PICKER_TOP_OFFSET;\n }, [getItemIndexByValue, itemHeight]);\n\n const { onScroll, onSearchTextChange, setViewport, viewportData } =\n useSearchableViewportData({\n reuseItemsOnTableResize: true,\n table: tableCopy,\n itemHeight,\n deserializeRow,\n searchColumnNames,\n timeZone,\n });\n\n useEffect(\n // Set viewport to include the selected item so that its data will load and\n // the real `key` will be available to show the selection in the UI.\n function setViewportFromSelectedKey() {\n let isCanceled = false;\n\n getItemIndexByValue()\n .then(index => {\n if (index == null || isCanceled) {\n return;\n }\n\n setViewport(index);\n })\n .catch(err => {\n log.error('Error setting viewport from selected key', err);\n });\n\n return () => {\n isCanceled = true;\n };\n },\n [getItemIndexByValue, settings, setViewport]\n );\n\n const onSelectionChangeInternal = useCallback(\n (key: ItemKey | null): void => {\n // If our component is uncontrolled, track the selected key internally\n // so that we can scroll to the selected item if the user re-opens\n if (isUncontrolled) {\n setUncontrolledSelectedKey(key);\n }\n\n (onChange ?? onSelectionChange)?.(key);\n },\n [isUncontrolled, onChange, onSelectionChange]\n );\n\n return {\n ...props,\n normalizedItems: viewportData.items,\n showItemIcons: iconColumnName != null,\n getInitialScrollPosition,\n onChange: onSelectionChangeInternal,\n onScroll,\n onSearchTextChange,\n };\n}\n\nexport default usePickerProps;\n"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { dh } from '@deephaven/jsapi-types';
|
|
|
9
9
|
* matching value, or `null` if no match is found
|
|
10
10
|
*/
|
|
11
11
|
export declare function useGetItemIndexByValue<TValue>({ columnName, value, table, }: {
|
|
12
|
-
columnName: string;
|
|
12
|
+
columnName: string | null;
|
|
13
13
|
table: dh.Table | null;
|
|
14
14
|
value: TValue | null | undefined;
|
|
15
15
|
}): () => Promise<number | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetItemIndexByValue.d.ts","sourceRoot":"","sources":["../src/useGetItemIndexByValue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAG5C;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,EAC7C,UAAU,EACV,KAAK,EACL,KAAK,GACN,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"useGetItemIndexByValue.d.ts","sourceRoot":"","sources":["../src/useGetItemIndexByValue.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAG5C;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,EAC7C,UAAU,EACV,KAAK,EACL,KAAK,GACN,EAAE;IACD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,KAAK,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAClC,GAAG,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAc/B;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -19,7 +19,7 @@ export function useGetItemIndexByValue(_ref) {
|
|
|
19
19
|
} = _ref;
|
|
20
20
|
var tableUtils = useTableUtils();
|
|
21
21
|
return useCallback( /*#__PURE__*/_asyncToGenerator(function* () {
|
|
22
|
-
if (table == null || value == null) {
|
|
22
|
+
if (table == null || value == null || columnName == null) {
|
|
23
23
|
return null;
|
|
24
24
|
}
|
|
25
25
|
var column = table.findColumn(columnName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useGetItemIndexByValue.js","names":["useCallback","useTableUtils","useGetItemIndexByValue","_ref","columnName","value","table","tableUtils","_asyncToGenerator","column","findColumn","columnValueType","getValueType","type","index","seekRow"],"sources":["../src/useGetItemIndexByValue.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { dh } from '@deephaven/jsapi-types';\nimport { useTableUtils } from './useTableUtils';\n\n/**\n * Returns a function that gets the index of the first row containing a column\n * value.\n * @param columnName The name of the column to search\n * @param value The value to search for\n * @param table The table to search in\n * @returns A function that returns the index of the first row containing the\n * matching value, or `null` if no match is found\n */\nexport function useGetItemIndexByValue<TValue>({\n columnName,\n value,\n table,\n}: {\n columnName: string;\n table: dh.Table | null;\n value: TValue | null | undefined;\n}): () => Promise<number | null> {\n const tableUtils = useTableUtils();\n\n return useCallback(async () => {\n if (table == null || value == null) {\n return null;\n }\n\n const column = table.findColumn(columnName);\n const columnValueType = tableUtils.getValueType(column.type);\n\n const index = await table.seekRow(0, column, columnValueType, value);\n return index === -1 ? null : index;\n }, [columnName, table, tableUtils, value]);\n}\n\nexport default useGetItemIndexByValue;\n"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAAC,SAE3BC,aAAa;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAAC,IAAA,EAQL;EAAA,IARc;IAC7CC,UAAU;IACVC,KAAK;IACLC;EAKF,CAAC,GAAAH,IAAA;EACC,IAAMI,UAAU,GAAGN,aAAa,CAAC,CAAC;EAElC,OAAOD,WAAW,eAAAQ,iBAAA,CAAC,aAAY;IAC7B,IAAIF,KAAK,IAAI,IAAI,IAAID,KAAK,IAAI,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"useGetItemIndexByValue.js","names":["useCallback","useTableUtils","useGetItemIndexByValue","_ref","columnName","value","table","tableUtils","_asyncToGenerator","column","findColumn","columnValueType","getValueType","type","index","seekRow"],"sources":["../src/useGetItemIndexByValue.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { dh } from '@deephaven/jsapi-types';\nimport { useTableUtils } from './useTableUtils';\n\n/**\n * Returns a function that gets the index of the first row containing a column\n * value.\n * @param columnName The name of the column to search\n * @param value The value to search for\n * @param table The table to search in\n * @returns A function that returns the index of the first row containing the\n * matching value, or `null` if no match is found\n */\nexport function useGetItemIndexByValue<TValue>({\n columnName,\n value,\n table,\n}: {\n columnName: string | null;\n table: dh.Table | null;\n value: TValue | null | undefined;\n}): () => Promise<number | null> {\n const tableUtils = useTableUtils();\n\n return useCallback(async () => {\n if (table == null || value == null || columnName == null) {\n return null;\n }\n\n const column = table.findColumn(columnName);\n const columnValueType = tableUtils.getValueType(column.type);\n\n const index = await table.seekRow(0, column, columnValueType, value);\n return index === -1 ? null : index;\n }, [columnName, table, tableUtils, value]);\n}\n\nexport default useGetItemIndexByValue;\n"],"mappings":";;AAAA,SAASA,WAAW,QAAQ,OAAO;AAAC,SAE3BC,aAAa;AAEtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,sBAAsBA,CAAAC,IAAA,EAQL;EAAA,IARc;IAC7CC,UAAU;IACVC,KAAK;IACLC;EAKF,CAAC,GAAAH,IAAA;EACC,IAAMI,UAAU,GAAGN,aAAa,CAAC,CAAC;EAElC,OAAOD,WAAW,eAAAQ,iBAAA,CAAC,aAAY;IAC7B,IAAIF,KAAK,IAAI,IAAI,IAAID,KAAK,IAAI,IAAI,IAAID,UAAU,IAAI,IAAI,EAAE;MACxD,OAAO,IAAI;IACb;IAEA,IAAMK,MAAM,GAAGH,KAAK,CAACI,UAAU,CAACN,UAAU,CAAC;IAC3C,IAAMO,eAAe,GAAGJ,UAAU,CAACK,YAAY,CAACH,MAAM,CAACI,IAAI,CAAC;IAE5D,IAAMC,KAAK,SAASR,KAAK,CAACS,OAAO,CAAC,CAAC,EAAEN,MAAM,EAAEE,eAAe,EAAEN,KAAK,CAAC;IACpE,OAAOS,KAAK,KAAK,CAAC,CAAC,GAAG,IAAI,GAAGA,KAAK;EACpC,CAAC,GAAE,CAACV,UAAU,EAAEE,KAAK,EAAEC,UAAU,EAAEF,KAAK,CAAC,CAAC;AAC5C;AAEA,eAAeH,sBAAsB"}
|
|
@@ -7,8 +7,8 @@ export interface UseViewportDataProps<TItem, TTable extends dh.Table | dh.TreeTa
|
|
|
7
7
|
table: TTable | null;
|
|
8
8
|
itemHeight?: number;
|
|
9
9
|
scrollDebounce?: number;
|
|
10
|
-
viewportSize?: number;
|
|
11
10
|
viewportPadding?: number;
|
|
11
|
+
viewportSize?: number;
|
|
12
12
|
deserializeRow?: RowDeserializer<TItem>;
|
|
13
13
|
}
|
|
14
14
|
export interface UseViewportDataResult<TItem, TTable extends dh.Table | dh.TreeTable> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useViewportData.d.ts","sourceRoot":"","sources":["../src/useViewportData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,eAAe,EAKhB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAEL,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAsB,MAAM,kBAAkB,CAAC;AAQjE,MAAM,WAAW,oBAAoB,CACnC,KAAK,EACL,MAAM,SAAS,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS;IAEtC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,
|
|
1
|
+
{"version":3,"file":"useViewportData.d.ts","sourceRoot":"","sources":["../src/useViewportData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EACL,eAAe,EAKhB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAEL,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAsB,MAAM,kBAAkB,CAAC;AAQjE,MAAM,WAAW,oBAAoB,CACnC,KAAK,EACL,MAAM,SAAS,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS;IAEtC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB,CACpC,KAAK,EACL,MAAM,SAAS,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS;IAEtC,gEAAgE;IAChE,YAAY,EAAE,gBAAgB,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,0CAA0C;IAC1C,sBAAsB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,eAAe,EAAE,KAAK,IAAI,CAAC;IAChE,oCAAoC;IACpC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,mDAAmD;IACnD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CAClC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,SAAS,EAAE,CAAC,KAAK,GAAG,EAAE,CAAC,SAAS,EAAE,EAC7E,KAAK,EACL,UAAc,EACd,cAAmC,EACnC,YAAiB,EACjB,eAAoB,EACpB,cAAuC,EACvC,uBAA+B,GAChC,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAwF5E;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useViewportData.js","names":["useCallback","useEffect","useMemo","useRef","defaultRowDeserializer","isClosed","createOnTableUpdatedHandler","Log","useApi","useOnScrollOffsetChangeCallback","SCROLL_DEBOUNCE_MS","useInitializeViewportData","useSetPaddedViewportCallback","useTableSize","useTableListener","log","module","useViewportData","_ref","table","itemHeight","scrollDebounce","viewportSize","viewportPadding","deserializeRow","reuseItemsOnTableResize","currentViewportFirstRowRef","viewportData","setPaddedViewport","setViewport","firstRow","current","debug","applyFiltersAndRefresh","filters","applyFilter","dh","onTableUpdatedRef","onTableUpdated","event","_onTableUpdatedRef$cu","call","Table","EVENT_UPDATED","size","onScroll"],"sources":["../src/useViewportData.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n RowDeserializer,\n defaultRowDeserializer,\n isClosed,\n createOnTableUpdatedHandler,\n OnTableUpdatedEvent,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport {\n useOnScrollOffsetChangeCallback,\n WindowedListData,\n} from '@deephaven/react-hooks';\nimport { KeyedItem, SCROLL_DEBOUNCE_MS } from '@deephaven/utils';\nimport useInitializeViewportData from './useInitializeViewportData';\nimport useSetPaddedViewportCallback from './useSetPaddedViewportCallback';\nimport useTableSize from './useTableSize';\nimport useTableListener from './useTableListener';\n\nconst log = Log.module('useViewportData');\n\nexport interface UseViewportDataProps<\n TItem,\n TTable extends dh.Table | dh.TreeTable,\n> {\n reuseItemsOnTableResize?: boolean;\n table: TTable | null;\n itemHeight?: number;\n scrollDebounce?: number;\n
|
|
1
|
+
{"version":3,"file":"useViewportData.js","names":["useCallback","useEffect","useMemo","useRef","defaultRowDeserializer","isClosed","createOnTableUpdatedHandler","Log","useApi","useOnScrollOffsetChangeCallback","SCROLL_DEBOUNCE_MS","useInitializeViewportData","useSetPaddedViewportCallback","useTableSize","useTableListener","log","module","useViewportData","_ref","table","itemHeight","scrollDebounce","viewportSize","viewportPadding","deserializeRow","reuseItemsOnTableResize","currentViewportFirstRowRef","viewportData","setPaddedViewport","setViewport","firstRow","current","debug","applyFiltersAndRefresh","filters","applyFilter","dh","onTableUpdatedRef","onTableUpdated","event","_onTableUpdatedRef$cu","call","Table","EVENT_UPDATED","size","onScroll"],"sources":["../src/useViewportData.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo, useRef } from 'react';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n RowDeserializer,\n defaultRowDeserializer,\n isClosed,\n createOnTableUpdatedHandler,\n OnTableUpdatedEvent,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport {\n useOnScrollOffsetChangeCallback,\n WindowedListData,\n} from '@deephaven/react-hooks';\nimport { KeyedItem, SCROLL_DEBOUNCE_MS } from '@deephaven/utils';\nimport useInitializeViewportData from './useInitializeViewportData';\nimport useSetPaddedViewportCallback from './useSetPaddedViewportCallback';\nimport useTableSize from './useTableSize';\nimport useTableListener from './useTableListener';\n\nconst log = Log.module('useViewportData');\n\nexport interface UseViewportDataProps<\n TItem,\n TTable extends dh.Table | dh.TreeTable,\n> {\n reuseItemsOnTableResize?: boolean;\n table: TTable | null;\n itemHeight?: number;\n scrollDebounce?: number;\n viewportPadding?: number;\n viewportSize?: number;\n deserializeRow?: RowDeserializer<TItem>;\n}\n\nexport interface UseViewportDataResult<\n TItem,\n TTable extends dh.Table | dh.TreeTable,\n> {\n /** Manages deserialized row items associated with a DH Table */\n viewportData: WindowedListData<KeyedItem<TItem>>;\n /** Size of the underlying Table */\n size: number;\n\n table: TTable | null;\n /** Apply filters and refresh viewport. */\n applyFiltersAndRefresh: (filters: dh.FilterCondition[]) => void;\n /** Set the viewport of the Table */\n setViewport: (firstRow: number) => void;\n /** Handler for scroll events to update viewport */\n onScroll: (event: Event) => void;\n}\n\n/**\n * Sets up state management for windowed Table viewports. Returns a ListData\n * instance for managing items associated with the Table + a `setViewport`\n * callback for changing the current viewport.\n *\n * IMPORTANT: this will create an empty KeyedItem object for every row in the\n * source table. This is intended for \"human\" sized tables such as those used in\n * admin panels. This is not suitable for \"machine\" scale with millions+ rows.\n * @param table The Table to viewport.\n * @param itemHeight The height of each item in the viewport.\n * @param scrollDebounce The number of milliseconds to debounce scroll events.\n * @param viewportSize The number of items to display in the viewport.\n * @param viewportPadding The number of items to fetch at start and end of the viewport.\n * @param deserializeRow A function to deserialize a row from the Table.\n * @param reuseItemsOnTableResize If true, existing items will be re-used when\n * the table size changes.\n * @returns An object for managing Table viewport state.\n */\nexport function useViewportData<TItem, TTable extends dh.Table | dh.TreeTable>({\n table,\n itemHeight = 1,\n scrollDebounce = SCROLL_DEBOUNCE_MS,\n viewportSize = 10,\n viewportPadding = 50,\n deserializeRow = defaultRowDeserializer,\n reuseItemsOnTableResize = false,\n}: UseViewportDataProps<TItem, TTable>): UseViewportDataResult<TItem, TTable> {\n const currentViewportFirstRowRef = useRef<number>(0);\n\n const viewportData = useInitializeViewportData<TItem>(\n table,\n reuseItemsOnTableResize\n );\n\n const setPaddedViewport = useSetPaddedViewportCallback(\n table,\n viewportSize,\n viewportPadding\n );\n\n const setViewport = useCallback(\n (firstRow: number) => {\n currentViewportFirstRowRef.current = firstRow;\n\n if (table && !isClosed(table)) {\n setPaddedViewport(firstRow);\n } else {\n log.debug('setViewport called on closed table.', table);\n }\n },\n [table, setPaddedViewport]\n );\n\n const applyFiltersAndRefresh = useCallback(\n (filters: dh.FilterCondition[]) => {\n if (table && !isClosed(table)) {\n table.applyFilter(filters);\n setViewport(0);\n } else {\n log.debug('applyFiltersAndRefresh called on closed table.', table);\n }\n },\n [setViewport, table]\n );\n\n const dh = useApi();\n\n // Store the memoized callback in a ref so that changes to `viewportData`\n // don't invalidate the memoization of `onTableUpdated`. This prevents\n // `useTableListener` from unnecessarily re-subscribing to the same event over\n // and over.\n const onTableUpdatedRef = useRef<(event: OnTableUpdatedEvent) => void>();\n onTableUpdatedRef.current = useMemo(\n () => createOnTableUpdatedHandler(viewportData, deserializeRow),\n [deserializeRow, viewportData]\n );\n\n const onTableUpdated = useCallback((event: OnTableUpdatedEvent) => {\n onTableUpdatedRef.current?.(event);\n }, []);\n\n useTableListener(table, dh.Table.EVENT_UPDATED, onTableUpdated);\n\n const size = useTableSize(table);\n\n useEffect(() => {\n log.debug('Initializing viewport');\n\n // Hydrate the viewport with real data. This will fetch data from index\n // 0 to the end of the viewport + padding.\n setViewport(0);\n }, [table, setViewport]);\n\n useEffect(() => {\n setViewport(currentViewportFirstRowRef.current);\n }, [setViewport, size]);\n\n const onScroll = useOnScrollOffsetChangeCallback(\n itemHeight,\n setViewport,\n scrollDebounce\n );\n\n return useMemo(\n () => ({\n viewportData,\n size,\n table,\n applyFiltersAndRefresh,\n setViewport,\n onScroll,\n }),\n [applyFiltersAndRefresh, onScroll, setViewport, size, table, viewportData]\n );\n}\n\nexport default useViewportData;\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/jsapi-components",
|
|
3
|
-
"version": "0.84.
|
|
3
|
+
"version": "0.84.1-alpha-shared-types.2+63e86071",
|
|
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.84.
|
|
26
|
-
"@deephaven/jsapi-bootstrap": "^0.84.
|
|
25
|
+
"@deephaven/components": "^0.84.1-alpha-shared-types.2+63e86071",
|
|
26
|
+
"@deephaven/jsapi-bootstrap": "^0.84.1-alpha-shared-types.2+63e86071",
|
|
27
27
|
"@deephaven/jsapi-types": "1.0.0-dev0.34.0",
|
|
28
|
-
"@deephaven/jsapi-utils": "^0.84.
|
|
29
|
-
"@deephaven/log": "^0.84.
|
|
30
|
-
"@deephaven/react-hooks": "^0.84.
|
|
31
|
-
"@deephaven/utils": "^0.84.
|
|
28
|
+
"@deephaven/jsapi-utils": "^0.84.1-alpha-shared-types.2+63e86071",
|
|
29
|
+
"@deephaven/log": "^0.84.1-alpha-shared-types.2+63e86071",
|
|
30
|
+
"@deephaven/react-hooks": "^0.84.1-alpha-shared-types.2+63e86071",
|
|
31
|
+
"@deephaven/utils": "^0.84.1-alpha-shared-types.2+63e86071",
|
|
32
32
|
"@types/js-cookie": "^3.0.3",
|
|
33
33
|
"classnames": "^2.3.2",
|
|
34
34
|
"js-cookie": "^3.0.5",
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
"prop-types": "^15.8.1"
|
|
37
37
|
},
|
|
38
38
|
"devDependencies": {
|
|
39
|
-
"@deephaven/jsapi-shim": "^0.84.
|
|
39
|
+
"@deephaven/jsapi-shim": "^0.84.1-alpha-shared-types.2+63e86071",
|
|
40
40
|
"react-test-renderer": "^17.0.2"
|
|
41
41
|
},
|
|
42
42
|
"peerDependencies": {
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "63e86071a6914cfacb8cd40ec6baa41432f7d72b"
|
|
55
55
|
}
|