@deephaven/jsapi-components 1.1.1-react-v18-grid-fix.0 → 1.1.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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePickerProps.d.ts","sourceRoot":"","sources":["../../../src/spectrum/utils/usePickerProps.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAGvB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"usePickerProps.d.ts","sourceRoot":"","sources":["../../../src/spectrum/utils/usePickerProps.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,iBAAiB,EAGvB,MAAM,uBAAuB,CAAC;AAK/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAS3D,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,CA0HvD;AAED,eAAe,cAAc,CAAC"}
|
|
@@ -18,6 +18,7 @@ import { getItemKeyColumn, getItemLabelColumn } from "./itemUtils.js";
|
|
|
18
18
|
import { useItemRowDeserializer } from "./useItemRowDeserializer.js";
|
|
19
19
|
import { useGetItemIndexByValue } from "../../useGetItemIndexByValue.js";
|
|
20
20
|
import useSearchableViewportData from "../../useSearchableViewportData.js";
|
|
21
|
+
import useTableClose from "../../useTableClose.js";
|
|
21
22
|
var log = Log.module('jsapi-components.usePickerProps');
|
|
22
23
|
|
|
23
24
|
/** Props that are derived by `usePickerProps`. */
|
|
@@ -61,6 +62,7 @@ export function usePickerProps(_ref) {
|
|
|
61
62
|
var {
|
|
62
63
|
data: tableCopy
|
|
63
64
|
} = usePromiseFactory(TableUtils.copyTableAndApplyFilters, [tableSource]);
|
|
65
|
+
useTableClose(tableCopy);
|
|
64
66
|
var keyColumn = useMemo(() => tableCopy == null ? null : getItemKeyColumn(tableCopy, keyColumnName), [keyColumnName, tableCopy]);
|
|
65
67
|
var labelColumn = useMemo(() => tableCopy == null || keyColumn == null ? null : getItemLabelColumn(tableCopy, keyColumn, labelColumnName), [keyColumn, labelColumnName, tableCopy]);
|
|
66
68
|
var searchColumnNames = useMemo(() => labelColumn == null ? [] : [labelColumn.name], [labelColumn]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePickerProps.js","names":["useCallback","useEffect","useMemo","useState","PICKER_TOP_OFFSET","usePickerItemScale","TableUtils","Log","usePromiseFactory","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 type ItemKey,\n type NormalizedItem,\n type NormalizedSection,\n PICKER_TOP_OFFSET,\n usePickerItemScale,\n} from '@deephaven/components';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { usePromiseFactory } from '@deephaven/react-hooks';\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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"}
|
|
1
|
+
{"version":3,"file":"usePickerProps.js","names":["useCallback","useEffect","useMemo","useState","PICKER_TOP_OFFSET","usePickerItemScale","TableUtils","Log","usePromiseFactory","useFormatter","getItemKeyColumn","getItemLabelColumn","useItemRowDeserializer","useGetItemIndexByValue","useSearchableViewportData","useTableClose","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 type ItemKey,\n type NormalizedItem,\n type NormalizedSection,\n PICKER_TOP_OFFSET,\n usePickerItemScale,\n} from '@deephaven/components';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport { usePromiseFactory } from '@deephaven/react-hooks';\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';\nimport useTableClose from '../../useTableClose';\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 useTableClose(tableCopy);\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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/jsapi-components",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.2-beta.0+0de18610",
|
|
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": "^1.1.
|
|
26
|
-
"@deephaven/jsapi-bootstrap": "^1.1.
|
|
25
|
+
"@deephaven/components": "^1.1.2-beta.0+0de18610",
|
|
26
|
+
"@deephaven/jsapi-bootstrap": "^1.1.2-beta.0+0de18610",
|
|
27
27
|
"@deephaven/jsapi-types": "^1.0.0-dev0.39.4",
|
|
28
|
-
"@deephaven/jsapi-utils": "^1.1.
|
|
29
|
-
"@deephaven/log": "^1.1.
|
|
30
|
-
"@deephaven/react-hooks": "^1.1.
|
|
31
|
-
"@deephaven/utils": "^1.1.
|
|
28
|
+
"@deephaven/jsapi-utils": "^1.1.2-beta.0+0de18610",
|
|
29
|
+
"@deephaven/log": "^1.1.2-beta.0+0de18610",
|
|
30
|
+
"@deephaven/react-hooks": "^1.1.2-beta.0+0de18610",
|
|
31
|
+
"@deephaven/utils": "^1.1.2-beta.0+0de18610",
|
|
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": "^1.1.
|
|
40
|
-
"@deephaven/test-utils": "^1.1.
|
|
39
|
+
"@deephaven/jsapi-shim": "^1.1.2-beta.0+0de18610",
|
|
40
|
+
"@deephaven/test-utils": "^1.1.2-beta.0+0de18610",
|
|
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": "0de18610304cf9b6e013a89b4a4a43a7b7911534"
|
|
56
56
|
}
|