@deephaven/jsapi-components 0.38.1-beta.0 → 0.38.1-beta.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/index.d.ts CHANGED
@@ -3,11 +3,16 @@ export * from './RefreshTokenBootstrap';
3
3
  export * from './RefreshTokenUtils';
4
4
  export { default as useBroadcastChannel } from './useBroadcastChannel';
5
5
  export { default as useBroadcastLoginListener } from './useBroadcastLoginListener';
6
+ export { default as useDebouncedViewportSearch } from './useDebouncedViewportSearch';
6
7
  export { default as useInitializeViewportData } from './useInitializeViewportData';
7
8
  export { default as useTable } from './useTable';
8
9
  export { default as useTableColumn } from './useTableColumn';
9
10
  export { default as useTableListener } from './useTableListener';
10
11
  export { default as useSelectDistinctTable } from './useSelectDistinctTable';
11
12
  export { default as useSetPaddedViewportCallback } from './useSetPaddedViewportCallback';
13
+ export { default as useTableClose } from './useTableClose';
14
+ export { default as useTableSize } from './useTableSize';
12
15
  export { default as useViewportData } from './useViewportData';
16
+ export type { UseSelectDistinctTableResult } from './useSelectDistinctTable';
17
+ export type { UseViewportDataResult } from './useViewportData';
13
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,cAAc,yBAAyB,CAAC;AACxC,cAAc,qBAAqB,CAAC;AACpC,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACnF,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC/D,YAAY,EAAE,4BAA4B,EAAE,MAAM,0BAA0B,CAAC;AAC7E,YAAY,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -3,11 +3,14 @@ export * from "./RefreshTokenBootstrap.js";
3
3
  export * from "./RefreshTokenUtils.js";
4
4
  export { default as useBroadcastChannel } from "./useBroadcastChannel.js";
5
5
  export { default as useBroadcastLoginListener } from "./useBroadcastLoginListener.js";
6
+ export { default as useDebouncedViewportSearch } from "./useDebouncedViewportSearch.js";
6
7
  export { default as useInitializeViewportData } from "./useInitializeViewportData.js";
7
8
  export { default as useTable } from "./useTable.js";
8
9
  export { default as useTableColumn } from "./useTableColumn.js";
9
10
  export { default as useTableListener } from "./useTableListener.js";
10
11
  export { default as useSelectDistinctTable } from "./useSelectDistinctTable.js";
11
12
  export { default as useSetPaddedViewportCallback } from "./useSetPaddedViewportCallback.js";
13
+ export { default as useTableClose } from "./useTableClose.js";
14
+ export { default as useTableSize } from "./useTableSize.js";
12
15
  export { default as useViewportData } from "./useViewportData.js";
13
16
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","TableInput","useBroadcastChannel","useBroadcastLoginListener","useInitializeViewportData","useTable","useTableColumn","useTableListener","useSelectDistinctTable","useSetPaddedViewportCallback","useViewportData"],"sources":["../src/index.ts"],"sourcesContent":["export { default as TableInput } from './TableInput';\nexport * from './RefreshTokenBootstrap';\nexport * from './RefreshTokenUtils';\nexport { default as useBroadcastChannel } from './useBroadcastChannel';\nexport { default as useBroadcastLoginListener } from './useBroadcastLoginListener';\nexport { default as useInitializeViewportData } from './useInitializeViewportData';\nexport { default as useTable } from './useTable';\nexport { default as useTableColumn } from './useTableColumn';\nexport { default as useTableListener } from './useTableListener';\nexport { default as useSelectDistinctTable } from './useSelectDistinctTable';\nexport { default as useSetPaddedViewportCallback } from './useSetPaddedViewportCallback';\nexport { default as useViewportData } from './useViewportData';\n"],"mappings":"SAASA,OAAO,IAAIC,UAAU;AAAA;AAAA;AAAA,SAGrBD,OAAO,IAAIE,mBAAmB;AAAA,SAC9BF,OAAO,IAAIG,yBAAyB;AAAA,SACpCH,OAAO,IAAII,yBAAyB;AAAA,SACpCJ,OAAO,IAAIK,QAAQ;AAAA,SACnBL,OAAO,IAAIM,cAAc;AAAA,SACzBN,OAAO,IAAIO,gBAAgB;AAAA,SAC3BP,OAAO,IAAIQ,sBAAsB;AAAA,SACjCR,OAAO,IAAIS,4BAA4B;AAAA,SACvCT,OAAO,IAAIU,eAAe"}
1
+ {"version":3,"file":"index.js","names":["default","TableInput","useBroadcastChannel","useBroadcastLoginListener","useDebouncedViewportSearch","useInitializeViewportData","useTable","useTableColumn","useTableListener","useSelectDistinctTable","useSetPaddedViewportCallback","useTableClose","useTableSize","useViewportData"],"sources":["../src/index.ts"],"sourcesContent":["export { default as TableInput } from './TableInput';\nexport * from './RefreshTokenBootstrap';\nexport * from './RefreshTokenUtils';\nexport { default as useBroadcastChannel } from './useBroadcastChannel';\nexport { default as useBroadcastLoginListener } from './useBroadcastLoginListener';\nexport { default as useDebouncedViewportSearch } from './useDebouncedViewportSearch';\nexport { default as useInitializeViewportData } from './useInitializeViewportData';\nexport { default as useTable } from './useTable';\nexport { default as useTableColumn } from './useTableColumn';\nexport { default as useTableListener } from './useTableListener';\nexport { default as useSelectDistinctTable } from './useSelectDistinctTable';\nexport { default as useSetPaddedViewportCallback } from './useSetPaddedViewportCallback';\nexport { default as useTableClose } from './useTableClose';\nexport { default as useTableSize } from './useTableSize';\nexport { default as useViewportData } from './useViewportData';\nexport type { UseSelectDistinctTableResult } from './useSelectDistinctTable';\nexport type { UseViewportDataResult } from './useViewportData';\n"],"mappings":"SAASA,OAAO,IAAIC,UAAU;AAAA;AAAA;AAAA,SAGrBD,OAAO,IAAIE,mBAAmB;AAAA,SAC9BF,OAAO,IAAIG,yBAAyB;AAAA,SACpCH,OAAO,IAAII,0BAA0B;AAAA,SACrCJ,OAAO,IAAIK,yBAAyB;AAAA,SACpCL,OAAO,IAAIM,QAAQ;AAAA,SACnBN,OAAO,IAAIO,cAAc;AAAA,SACzBP,OAAO,IAAIQ,gBAAgB;AAAA,SAC3BR,OAAO,IAAIS,sBAAsB;AAAA,SACjCT,OAAO,IAAIU,4BAA4B;AAAA,SACvCV,OAAO,IAAIW,aAAa;AAAA,SACxBX,OAAO,IAAIY,YAAY;AAAA,SACvBZ,OAAO,IAAIa,eAAe"}
@@ -0,0 +1,12 @@
1
+ import type { Table, TreeTable } from '@deephaven/jsapi-types';
2
+ import { UseViewportDataResult } from './useViewportData';
3
+ export declare const DEBOUNCE_VIEWPORT_SEARCH_MS = 200;
4
+ /**
5
+ * React hook that returns a debounced search callback for filtering a table
6
+ * viewport.
7
+ * @param viewportData Table viewport to filter
8
+ * @param columnName Column name to filter by
9
+ * @param debounceMs Millisecond value to debounce
10
+ */
11
+ export default function useDebouncedViewportSearch<I, T extends Table | TreeTable>(viewportData: UseViewportDataResult<I, T>, columnName: string, debounceMs?: number): (searchText: string) => void;
12
+ //# sourceMappingURL=useDebouncedViewportSearch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebouncedViewportSearch.d.ts","sourceRoot":"","sources":["../src/useDebouncedViewportSearch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAG/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAE/C;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,0BAA0B,CAChD,CAAC,EACD,CAAC,SAAS,KAAK,GAAG,SAAS,EAE3B,YAAY,EAAE,qBAAqB,CAAC,CAAC,EAAE,CAAC,CAAC,EACzC,UAAU,EAAE,MAAM,EAClB,UAAU,SAA8B,GACvC,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAmC9B"}
@@ -0,0 +1,34 @@
1
+ import debounce from 'lodash.debounce';
2
+ import { TableUtils } from '@deephaven/jsapi-utils';
3
+ import { useEffect, useMemo } from 'react';
4
+ export var DEBOUNCE_VIEWPORT_SEARCH_MS = 200;
5
+
6
+ /**
7
+ * React hook that returns a debounced search callback for filtering a table
8
+ * viewport.
9
+ * @param viewportData Table viewport to filter
10
+ * @param columnName Column name to filter by
11
+ * @param debounceMs Millisecond value to debounce
12
+ */
13
+ export default function useDebouncedViewportSearch(viewportData, columnName) {
14
+ var debounceMs = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : DEBOUNCE_VIEWPORT_SEARCH_MS;
15
+ var debouncedSearch = useMemo(() => debounce(searchText => {
16
+ if (viewportData.table == null) {
17
+ return;
18
+ }
19
+ var searchTextTrimmed = searchText.trim();
20
+ if (searchTextTrimmed === '') {
21
+ viewportData.applyFiltersAndRefresh([]);
22
+ return;
23
+ }
24
+ var column = viewportData.table.findColumn(columnName);
25
+ var value = TableUtils.makeFilterValue(column.type, searchTextTrimmed);
26
+ var filter = [column.filter().contains(value)];
27
+ viewportData.applyFiltersAndRefresh(filter);
28
+ }, debounceMs), [columnName, debounceMs, viewportData]);
29
+ useEffect(() => () => {
30
+ debouncedSearch.cancel();
31
+ }, [debouncedSearch]);
32
+ return debouncedSearch;
33
+ }
34
+ //# sourceMappingURL=useDebouncedViewportSearch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebouncedViewportSearch.js","names":["debounce","TableUtils","useEffect","useMemo","DEBOUNCE_VIEWPORT_SEARCH_MS","useDebouncedViewportSearch","viewportData","columnName","debounceMs","debouncedSearch","searchText","table","searchTextTrimmed","trim","applyFiltersAndRefresh","column","findColumn","value","makeFilterValue","type","filter","contains","cancel"],"sources":["../src/useDebouncedViewportSearch.ts"],"sourcesContent":["import debounce from 'lodash.debounce';\nimport type { Table, TreeTable } from '@deephaven/jsapi-types';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport { useEffect, useMemo } from 'react';\nimport { UseViewportDataResult } from './useViewportData';\n\nexport const DEBOUNCE_VIEWPORT_SEARCH_MS = 200;\n\n/**\n * React hook that returns a debounced search callback for filtering a table\n * viewport.\n * @param viewportData Table viewport to filter\n * @param columnName Column name to filter by\n * @param debounceMs Millisecond value to debounce\n */\nexport default function useDebouncedViewportSearch<\n I,\n T extends Table | TreeTable\n>(\n viewportData: UseViewportDataResult<I, T>,\n columnName: string,\n debounceMs = DEBOUNCE_VIEWPORT_SEARCH_MS\n): (searchText: string) => void {\n const debouncedSearch = useMemo(\n () =>\n debounce((searchText: string) => {\n if (viewportData.table == null) {\n return;\n }\n\n const searchTextTrimmed = searchText.trim();\n\n if (searchTextTrimmed === '') {\n viewportData.applyFiltersAndRefresh([]);\n return;\n }\n\n const column = viewportData.table.findColumn(columnName);\n const value = TableUtils.makeFilterValue(\n column.type,\n searchTextTrimmed\n );\n const filter = [column.filter().contains(value)];\n\n viewportData.applyFiltersAndRefresh(filter);\n }, debounceMs),\n [columnName, debounceMs, viewportData]\n );\n\n useEffect(\n () => () => {\n debouncedSearch.cancel();\n },\n [debouncedSearch]\n );\n\n return debouncedSearch;\n}\n"],"mappings":"AAAA,OAAOA,QAAQ,MAAM,iBAAiB;AAEtC,SAASC,UAAU,QAAQ,wBAAwB;AACnD,SAASC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAG1C,OAAO,IAAMC,2BAA2B,GAAG,GAAG;;AAE9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,0BAA0B,CAIhDC,YAAyC,EACzCC,UAAkB,EAEY;EAAA,IAD9BC,UAAU,uEAAGJ,2BAA2B;EAExC,IAAMK,eAAe,GAAGN,OAAO,CAC7B,MACEH,QAAQ,CAAEU,UAAkB,IAAK;IAC/B,IAAIJ,YAAY,CAACK,KAAK,IAAI,IAAI,EAAE;MAC9B;IACF;IAEA,IAAMC,iBAAiB,GAAGF,UAAU,CAACG,IAAI,EAAE;IAE3C,IAAID,iBAAiB,KAAK,EAAE,EAAE;MAC5BN,YAAY,CAACQ,sBAAsB,CAAC,EAAE,CAAC;MACvC;IACF;IAEA,IAAMC,MAAM,GAAGT,YAAY,CAACK,KAAK,CAACK,UAAU,CAACT,UAAU,CAAC;IACxD,IAAMU,KAAK,GAAGhB,UAAU,CAACiB,eAAe,CACtCH,MAAM,CAACI,IAAI,EACXP,iBAAiB,CAClB;IACD,IAAMQ,MAAM,GAAG,CAACL,MAAM,CAACK,MAAM,EAAE,CAACC,QAAQ,CAACJ,KAAK,CAAC,CAAC;IAEhDX,YAAY,CAACQ,sBAAsB,CAACM,MAAM,CAAC;EAC7C,CAAC,EAAEZ,UAAU,CAAC,EAChB,CAACD,UAAU,EAAEC,UAAU,EAAEF,YAAY,CAAC,CACvC;EAEDJ,SAAS,CACP,MAAM,MAAM;IACVO,eAAe,CAACa,MAAM,EAAE;EAC1B,CAAC,EACD,CAACb,eAAe,CAAC,CAClB;EAED,OAAOA,eAAe;AACxB"}
@@ -1,5 +1,5 @@
1
1
  import { ListData } from '@react-stately/data';
2
- import { Table, TreeTable } from '@deephaven/jsapi-types';
2
+ import type { Table, TreeTable } from '@deephaven/jsapi-types';
3
3
  import { KeyedItem } from '@deephaven/jsapi-utils';
4
4
  /**
5
5
  * Initializes a ListData instance that can be used for windowed views of a
@@ -1 +1 @@
1
- {"version":3,"file":"useInitializeViewportData.d.ts","sourceRoot":"","sources":["../src/useInitializeViewportData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAe,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,SAAS,EAGV,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,CAAC,EACjD,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,GAC9B,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAsBxB"}
1
+ {"version":3,"file":"useInitializeViewportData.d.ts","sourceRoot":"","sources":["../src/useInitializeViewportData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAe,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAA2B,MAAM,wBAAwB,CAAC;AAI5E;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAAC,CAAC,EACjD,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,GAC9B,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAuCxB"}
@@ -1,7 +1,8 @@
1
1
  import { useEffect } from 'react';
2
2
  import { useListData } from '@react-stately/data';
3
- import { generateEmptyKeyedItems, getSize } from '@deephaven/jsapi-utils';
4
-
3
+ import { generateEmptyKeyedItems } from '@deephaven/jsapi-utils';
4
+ import { usePrevious } from '@deephaven/react-hooks';
5
+ import useTableSize from "./useTableSize.js";
5
6
  /**
6
7
  * Initializes a ListData instance that can be used for windowed views of a
7
8
  * Table. The list must always contain a KeyedItem for every record in the table,
@@ -16,27 +17,45 @@ import { generateEmptyKeyedItems, getSize } from '@deephaven/jsapi-utils';
16
17
  */
17
18
  export default function useInitializeViewportData(table) {
18
19
  var viewportData = useListData({});
20
+ var prevTable = usePrevious(table);
21
+
22
+ // If the table changes size, we need to re-initialize it.
23
+ var size = Math.max(0, useTableSize(table));
19
24
 
20
25
  // We only want this to fire 1x once the table exists. Note that `useListData`
21
26
  // has no way to respond to a reference change of the `table` instance so we
22
27
  // have to manually delete any previous keyed items from the list.
23
28
  useEffect(() => {
24
- if (!table) {
25
- return;
26
- }
27
- if (viewportData.items.length) {
29
+ var currentSize = viewportData.items.length;
30
+
31
+ // If our table instance has changed, we want to clear all items from state
32
+ if (table !== prevTable && currentSize) {
28
33
  viewportData.remove(...viewportData.items.map(_ref => {
29
34
  var {
30
35
  key
31
36
  } = _ref;
32
37
  return key;
33
38
  }));
39
+ currentSize = 0;
40
+ }
41
+ if (!table) {
42
+ return;
43
+ }
44
+ if (size > currentSize) {
45
+ viewportData.insert(currentSize, ...generateEmptyKeyedItems(currentSize, size - 1));
46
+ } else if (size < currentSize) {
47
+ var keys = viewportData.items.slice(size).map(_ref2 => {
48
+ var {
49
+ key
50
+ } = _ref2;
51
+ return key;
52
+ });
53
+ viewportData.remove(...keys);
34
54
  }
35
- viewportData.insert(0, ...generateEmptyKeyedItems(getSize(table)));
36
55
 
37
56
  // Intentionally excluding viewportData since it changes on every render.
38
57
  // eslint-disable-next-line react-hooks/exhaustive-deps
39
- }, [table]);
58
+ }, [size, table]);
40
59
  return viewportData;
41
60
  }
42
61
  //# sourceMappingURL=useInitializeViewportData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInitializeViewportData.js","names":["useEffect","useListData","generateEmptyKeyedItems","getSize","useInitializeViewportData","table","viewportData","items","length","remove","map","key","insert"],"sources":["../src/useInitializeViewportData.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { ListData, useListData } from '@react-stately/data';\nimport { Table, TreeTable } from '@deephaven/jsapi-types';\nimport {\n KeyedItem,\n generateEmptyKeyedItems,\n getSize,\n} from '@deephaven/jsapi-utils';\n\n/**\n * Initializes a ListData instance that can be used for windowed views of a\n * Table. The list must always contain a KeyedItem for every record in the table,\n * so it is pre-populated with empty items that can be updated with real data as\n * the window changes.\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 that will be used to determine the list size.\n * @returns\n */\nexport default function useInitializeViewportData<T>(\n table: Table | TreeTable | null\n): ListData<KeyedItem<T>> {\n const viewportData = useListData<KeyedItem<T>>({});\n\n // We only want this to fire 1x once the table exists. Note that `useListData`\n // has no way to respond to a reference change of the `table` instance so we\n // have to manually delete any previous keyed items from the list.\n useEffect(() => {\n if (!table) {\n return;\n }\n\n if (viewportData.items.length) {\n viewportData.remove(...viewportData.items.map(({ key }) => key));\n }\n\n viewportData.insert(0, ...generateEmptyKeyedItems<T>(getSize(table)));\n\n // Intentionally excluding viewportData since it changes on every render.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [table]);\n\n return viewportData;\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAAmBC,WAAW,QAAQ,qBAAqB;AAE3D,SAEEC,uBAAuB,EACvBC,OAAO,QACF,wBAAwB;;AAE/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,yBAAyB,CAC/CC,KAA+B,EACP;EACxB,IAAMC,YAAY,GAAGL,WAAW,CAAe,CAAC,CAAC,CAAC;;EAElD;EACA;EACA;EACAD,SAAS,CAAC,MAAM;IACd,IAAI,CAACK,KAAK,EAAE;MACV;IACF;IAEA,IAAIC,YAAY,CAACC,KAAK,CAACC,MAAM,EAAE;MAC7BF,YAAY,CAACG,MAAM,CAAC,GAAGH,YAAY,CAACC,KAAK,CAACG,GAAG,CAAC;QAAA,IAAC;UAAEC;QAAI,CAAC;QAAA,OAAKA,GAAG;MAAA,EAAC,CAAC;IAClE;IAEAL,YAAY,CAACM,MAAM,CAAC,CAAC,EAAE,GAAGV,uBAAuB,CAAIC,OAAO,CAACE,KAAK,CAAC,CAAC,CAAC;;IAErE;IACA;EACF,CAAC,EAAE,CAACA,KAAK,CAAC,CAAC;EAEX,OAAOC,YAAY;AACrB"}
1
+ {"version":3,"file":"useInitializeViewportData.js","names":["useEffect","useListData","generateEmptyKeyedItems","usePrevious","useTableSize","useInitializeViewportData","table","viewportData","prevTable","size","Math","max","currentSize","items","length","remove","map","key","insert","keys","slice"],"sources":["../src/useInitializeViewportData.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { ListData, useListData } from '@react-stately/data';\nimport type { Table, TreeTable } from '@deephaven/jsapi-types';\nimport { KeyedItem, generateEmptyKeyedItems } from '@deephaven/jsapi-utils';\nimport { usePrevious } from '@deephaven/react-hooks';\nimport useTableSize from './useTableSize';\n\n/**\n * Initializes a ListData instance that can be used for windowed views of a\n * Table. The list must always contain a KeyedItem for every record in the table,\n * so it is pre-populated with empty items that can be updated with real data as\n * the window changes.\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 that will be used to determine the list size.\n * @returns\n */\nexport default function useInitializeViewportData<T>(\n table: Table | TreeTable | null\n): ListData<KeyedItem<T>> {\n const viewportData = useListData<KeyedItem<T>>({});\n\n const prevTable = usePrevious(table);\n\n // If the table changes size, we need to re-initialize it.\n const size = Math.max(0, useTableSize(table));\n\n // We only want this to fire 1x once the table exists. Note that `useListData`\n // has no way to respond to a reference change of the `table` instance so we\n // have to manually delete any previous keyed items from the list.\n useEffect(() => {\n let currentSize = viewportData.items.length;\n\n // If our table instance has changed, we want to clear all items from state\n if (table !== prevTable && currentSize) {\n viewportData.remove(...viewportData.items.map(({ key }) => key));\n currentSize = 0;\n }\n\n if (!table) {\n return;\n }\n\n if (size > currentSize) {\n viewportData.insert(\n currentSize,\n ...generateEmptyKeyedItems<T>(currentSize, size - 1)\n );\n } else if (size < currentSize) {\n const keys = viewportData.items.slice(size).map(({ key }) => key);\n viewportData.remove(...keys);\n }\n\n // Intentionally excluding viewportData since it changes on every render.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [size, table]);\n\n return viewportData;\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AACjC,SAAmBC,WAAW,QAAQ,qBAAqB;AAE3D,SAAoBC,uBAAuB,QAAQ,wBAAwB;AAC3E,SAASC,WAAW,QAAQ,wBAAwB;AAAC,OAC9CC,YAAY;AAEnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,yBAAyB,CAC/CC,KAA+B,EACP;EACxB,IAAMC,YAAY,GAAGN,WAAW,CAAe,CAAC,CAAC,CAAC;EAElD,IAAMO,SAAS,GAAGL,WAAW,CAACG,KAAK,CAAC;;EAEpC;EACA,IAAMG,IAAI,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAEP,YAAY,CAACE,KAAK,CAAC,CAAC;;EAE7C;EACA;EACA;EACAN,SAAS,CAAC,MAAM;IACd,IAAIY,WAAW,GAAGL,YAAY,CAACM,KAAK,CAACC,MAAM;;IAE3C;IACA,IAAIR,KAAK,KAAKE,SAAS,IAAII,WAAW,EAAE;MACtCL,YAAY,CAACQ,MAAM,CAAC,GAAGR,YAAY,CAACM,KAAK,CAACG,GAAG,CAAC;QAAA,IAAC;UAAEC;QAAI,CAAC;QAAA,OAAKA,GAAG;MAAA,EAAC,CAAC;MAChEL,WAAW,GAAG,CAAC;IACjB;IAEA,IAAI,CAACN,KAAK,EAAE;MACV;IACF;IAEA,IAAIG,IAAI,GAAGG,WAAW,EAAE;MACtBL,YAAY,CAACW,MAAM,CACjBN,WAAW,EACX,GAAGV,uBAAuB,CAAIU,WAAW,EAAEH,IAAI,GAAG,CAAC,CAAC,CACrD;IACH,CAAC,MAAM,IAAIA,IAAI,GAAGG,WAAW,EAAE;MAC7B,IAAMO,IAAI,GAAGZ,YAAY,CAACM,KAAK,CAACO,KAAK,CAACX,IAAI,CAAC,CAACO,GAAG,CAAC;QAAA,IAAC;UAAEC;QAAI,CAAC;QAAA,OAAKA,GAAG;MAAA,EAAC;MACjEV,YAAY,CAACQ,MAAM,CAAC,GAAGI,IAAI,CAAC;IAC9B;;IAEA;IACA;EACF,CAAC,EAAE,CAACV,IAAI,EAAEH,KAAK,CAAC,CAAC;EAEjB,OAAOC,YAAY;AACrB"}
@@ -1,14 +1,18 @@
1
1
  import { Table, TreeTable } from '@deephaven/jsapi-types';
2
2
  /**
3
- * Creates and subscribes to a `selectDistinct` derived table and unsubscribes
4
- * on unmount.
5
- * @param table The table to call `selectDistinct` on.
6
- * @param columnNames The list of column names to pass to `selectDistinct`.
3
+ * Return type of `useSelectDistinctTable` hook.
7
4
  */
8
- export default function useSelectDistinctTable(table: Table | TreeTable | null, ...columnNames: string[]): {
5
+ export interface UseSelectDistinctTableResult {
9
6
  distinctTable: Table | null;
10
7
  error: string | Error | null;
11
8
  isError: boolean;
12
9
  isLoading: boolean;
13
- };
10
+ }
11
+ /**
12
+ * Creates and subscribes to a `selectDistinct` derived table and unsubscribes
13
+ * on unmount.
14
+ * @param table The table to call `selectDistinct` on.
15
+ * @param columnNames The list of column names to pass to `selectDistinct`.
16
+ */
17
+ export default function useSelectDistinctTable(table: Table | TreeTable | null, ...columnNames: string[]): UseSelectDistinctTableResult;
14
18
  //# sourceMappingURL=useSelectDistinctTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectDistinctTable.d.ts","sourceRoot":"","sources":["../src/useSelectDistinctTable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,EAC/B,GAAG,WAAW,EAAE,MAAM,EAAE;;;;;EAsBzB"}
1
+ {"version":3,"file":"useSelectDistinctTable.d.ts","sourceRoot":"","sources":["../src/useSelectDistinctTable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,aAAa,EAAE,KAAK,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,sBAAsB,CAC5C,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,EAC/B,GAAG,WAAW,EAAE,MAAM,EAAE,GACvB,4BAA4B,CAqB9B"}
@@ -3,6 +3,10 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
3
3
  import { useCallback, useEffect } from 'react';
4
4
  import { usePromiseFactory } from '@deephaven/react-hooks';
5
5
 
6
+ /**
7
+ * Return type of `useSelectDistinctTable` hook.
8
+ */
9
+
6
10
  /**
7
11
  * Creates and subscribes to a `selectDistinct` derived table and unsubscribes
8
12
  * on unmount.
@@ -1 +1 @@
1
- {"version":3,"file":"useSelectDistinctTable.js","names":["useCallback","useEffect","usePromiseFactory","useSelectDistinctTable","table","columnNames","selectDistinct","findColumns","data","distinctTable","error","isError","isLoading","close"],"sources":["../src/useSelectDistinctTable.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\nimport { Table, TreeTable } from '@deephaven/jsapi-types';\nimport { usePromiseFactory } from '@deephaven/react-hooks';\n\n/**\n * Creates and subscribes to a `selectDistinct` derived table and unsubscribes\n * on unmount.\n * @param table The table to call `selectDistinct` on.\n * @param columnNames The list of column names to pass to `selectDistinct`.\n */\nexport default function useSelectDistinctTable(\n table: Table | TreeTable | null,\n ...columnNames: string[]\n) {\n const selectDistinct = useCallback(\n async () => table?.selectDistinct(table.findColumns(columnNames)) ?? null,\n // Disabling the exhaustive checks due to the spreading of `columnNames`\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [table, ...columnNames]\n );\n\n const { data: distinctTable, error, isError, isLoading } = usePromiseFactory(\n selectDistinct,\n []\n );\n\n useEffect(\n () => () => {\n distinctTable?.close();\n },\n [distinctTable]\n );\n\n return { distinctTable, error, isError, isLoading };\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAE9C,SAASC,iBAAiB,QAAQ,wBAAwB;;AAE1D;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,sBAAsB,CAC5CC,KAA+B,EAE/B;EAAA,kCADGC,WAAW;IAAXA,WAAW;EAAA;EAEd,IAAMC,cAAc,GAAGN,WAAW,iCAChC;IAAA;IAAA,gCAAYI,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,cAAc,CAACF,KAAK,CAACG,WAAW,CAACF,WAAW,CAAC,CAAC,yEAAI,IAAI;EAAA;EACzE;EACA;EACA,CAACD,KAAK,EAAE,GAAGC,WAAW,CAAC,CACxB;EAED,IAAM;IAAEG,IAAI,EAAEC,aAAa;IAAEC,KAAK;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAGV,iBAAiB,CAC1EI,cAAc,EACd,EAAE,CACH;EAEDL,SAAS,CACP,MAAM,MAAM;IACVQ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,KAAK,EAAE;EACxB,CAAC,EACD,CAACJ,aAAa,CAAC,CAChB;EAED,OAAO;IAAEA,aAAa;IAAEC,KAAK;IAAEC,OAAO;IAAEC;EAAU,CAAC;AACrD"}
1
+ {"version":3,"file":"useSelectDistinctTable.js","names":["useCallback","useEffect","usePromiseFactory","useSelectDistinctTable","table","columnNames","selectDistinct","findColumns","data","distinctTable","error","isError","isLoading","close"],"sources":["../src/useSelectDistinctTable.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\nimport { Table, TreeTable } from '@deephaven/jsapi-types';\nimport { usePromiseFactory } from '@deephaven/react-hooks';\n\n/**\n * Return type of `useSelectDistinctTable` hook.\n */\nexport interface UseSelectDistinctTableResult {\n distinctTable: Table | null;\n error: string | Error | null;\n isError: boolean;\n isLoading: boolean;\n}\n\n/**\n * Creates and subscribes to a `selectDistinct` derived table and unsubscribes\n * on unmount.\n * @param table The table to call `selectDistinct` on.\n * @param columnNames The list of column names to pass to `selectDistinct`.\n */\nexport default function useSelectDistinctTable(\n table: Table | TreeTable | null,\n ...columnNames: string[]\n): UseSelectDistinctTableResult {\n const selectDistinct = useCallback(\n async () => table?.selectDistinct(table.findColumns(columnNames)) ?? null,\n // Disabling the exhaustive checks due to the spreading of `columnNames`\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [table, ...columnNames]\n );\n\n const { data: distinctTable, error, isError, isLoading } = usePromiseFactory(\n selectDistinct,\n []\n );\n\n useEffect(\n () => () => {\n distinctTable?.close();\n },\n [distinctTable]\n );\n\n return { distinctTable, error, isError, isLoading };\n}\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAE9C,SAASC,iBAAiB,QAAQ,wBAAwB;;AAE1D;AACA;AACA;;AAQA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,sBAAsB,CAC5CC,KAA+B,EAED;EAAA,kCAD3BC,WAAW;IAAXA,WAAW;EAAA;EAEd,IAAMC,cAAc,GAAGN,WAAW,iCAChC;IAAA;IAAA,gCAAYI,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEE,cAAc,CAACF,KAAK,CAACG,WAAW,CAACF,WAAW,CAAC,CAAC,yEAAI,IAAI;EAAA;EACzE;EACA;EACA,CAACD,KAAK,EAAE,GAAGC,WAAW,CAAC,CACxB;EAED,IAAM;IAAEG,IAAI,EAAEC,aAAa;IAAEC,KAAK;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAGV,iBAAiB,CAC1EI,cAAc,EACd,EAAE,CACH;EAEDL,SAAS,CACP,MAAM,MAAM;IACVQ,aAAa,aAAbA,aAAa,uBAAbA,aAAa,CAAEI,KAAK,EAAE;EACxB,CAAC,EACD,CAACJ,aAAa,CAAC,CAChB;EAED,OAAO;IAAEA,aAAa;IAAEC,KAAK;IAAEC,OAAO;IAAEC;EAAU,CAAC;AACrD"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSetPaddedViewportCallback.d.ts","sourceRoot":"","sources":["../src/useSetPaddedViewportCallback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,4BAA4B,CAClD,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,EAC/B,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,cAGgB,MAAM,UAW9C"}
1
+ {"version":3,"file":"useSetPaddedViewportCallback.d.ts","sourceRoot":"","sources":["../src/useSetPaddedViewportCallback.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAG1D;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,4BAA4B,CAClD,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,EAC/B,YAAY,EAAE,MAAM,EACpB,eAAe,EAAE,MAAM,cAGgB,MAAM,UAY9C"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSetPaddedViewportCallback.js","names":["useCallback","getSize","padFirstAndLastRow","useSetPaddedViewportCallback","table","viewportSize","viewportPadding","setPaddedViewport","firstRow","first","last","setViewport"],"sources":["../src/useSetPaddedViewportCallback.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { Table, TreeTable } from '@deephaven/jsapi-types';\nimport { getSize, padFirstAndLastRow } from '@deephaven/jsapi-utils';\n\n/**\n * Creates a callback function that will set a Table viewport. The callback has\n * a closure over the Table, a desired viewport size, and additional padding.\n * These will be combined with a first row index passed to the callback to\n * calculate the final viewport.\n * @param table Table to call `setViewport` on.\n * @param viewportSize The desired viewport size.\n * @param viewportPadding Padding to add before and after the viewport.\n * @returns A callback function for setting the viewport.\n */\nexport default function useSetPaddedViewportCallback(\n table: Table | TreeTable | null,\n viewportSize: number,\n viewportPadding: number\n) {\n return useCallback(\n function setPaddedViewport(firstRow: number) {\n const [first, last] = padFirstAndLastRow(\n firstRow,\n viewportSize,\n viewportPadding,\n getSize(table)\n );\n table?.setViewport(first, last);\n },\n [table, viewportPadding, viewportSize]\n );\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,OAAO,EAAEC,kBAAkB,QAAQ,wBAAwB;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,4BAA4B,CAClDC,KAA+B,EAC/BC,YAAoB,EACpBC,eAAuB,EACvB;EACA,OAAON,WAAW,CAChB,SAASO,iBAAiB,CAACC,QAAgB,EAAE;IAC3C,IAAM,CAACC,KAAK,EAAEC,IAAI,CAAC,GAAGR,kBAAkB,CACtCM,QAAQ,EACRH,YAAY,EACZC,eAAe,EACfL,OAAO,CAACG,KAAK,CAAC,CACf;IACDA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEO,WAAW,CAACF,KAAK,EAAEC,IAAI,CAAC;EACjC,CAAC,EACD,CAACN,KAAK,EAAEE,eAAe,EAAED,YAAY,CAAC,CACvC;AACH"}
1
+ {"version":3,"file":"useSetPaddedViewportCallback.js","names":["useCallback","getSize","padFirstAndLastRow","useSetPaddedViewportCallback","table","viewportSize","viewportPadding","setPaddedViewport","firstRow","first","last","setViewport"],"sources":["../src/useSetPaddedViewportCallback.ts"],"sourcesContent":["import { useCallback } from 'react';\nimport { Table, TreeTable } from '@deephaven/jsapi-types';\nimport { getSize, padFirstAndLastRow } from '@deephaven/jsapi-utils';\n\n/**\n * Creates a callback function that will set a Table viewport. The callback has\n * a closure over the Table, a desired viewport size, and additional padding.\n * These will be combined with a first row index passed to the callback to\n * calculate the final viewport.\n * @param table Table to call `setViewport` on.\n * @param viewportSize The desired viewport size.\n * @param viewportPadding Padding to add before and after the viewport.\n * @returns A callback function for setting the viewport.\n */\nexport default function useSetPaddedViewportCallback(\n table: Table | TreeTable | null,\n viewportSize: number,\n viewportPadding: number\n) {\n return useCallback(\n function setPaddedViewport(firstRow: number) {\n const [first, last] = padFirstAndLastRow(\n firstRow,\n viewportSize,\n viewportPadding,\n getSize(table)\n );\n\n table?.setViewport(first, last);\n },\n [table, viewportPadding, viewportSize]\n );\n}\n"],"mappings":"AAAA,SAASA,WAAW,QAAQ,OAAO;AAEnC,SAASC,OAAO,EAAEC,kBAAkB,QAAQ,wBAAwB;;AAEpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,4BAA4B,CAClDC,KAA+B,EAC/BC,YAAoB,EACpBC,eAAuB,EACvB;EACA,OAAON,WAAW,CAChB,SAASO,iBAAiB,CAACC,QAAgB,EAAE;IAC3C,IAAM,CAACC,KAAK,EAAEC,IAAI,CAAC,GAAGR,kBAAkB,CACtCM,QAAQ,EACRH,YAAY,EACZC,eAAe,EACfL,OAAO,CAACG,KAAK,CAAC,CACf;IAEDA,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEO,WAAW,CAACF,KAAK,EAAEC,IAAI,CAAC;EACjC,CAAC,EACD,CAACN,KAAK,EAAEE,eAAe,EAAED,YAAY,CAAC,CACvC;AACH"}
@@ -0,0 +1,8 @@
1
+ import type { Table, TreeTable } from '@deephaven/jsapi-types';
2
+ /**
3
+ * React hook that closes a given table when the reference changes or when the
4
+ * component unmounts.
5
+ * @param table
6
+ */
7
+ export default function useTableClose(table: Table | TreeTable | null | undefined): void;
8
+ //# sourceMappingURL=useTableClose.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableClose.d.ts","sourceRoot":"","sources":["../src/useTableClose.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAG/D;;;;GAIG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAC1C,IAAI,CAaN"}
@@ -0,0 +1,19 @@
1
+ import { useEffect } from 'react';
2
+ import { isClosed } from '@deephaven/jsapi-utils';
3
+
4
+ /**
5
+ * React hook that closes a given table when the reference changes or when the
6
+ * component unmounts.
7
+ * @param table
8
+ */
9
+ export default function useTableClose(table) {
10
+ useEffect(() => () => {
11
+ if (table == null) {
12
+ return;
13
+ }
14
+ if (!isClosed(table)) {
15
+ table.close();
16
+ }
17
+ }, [table]);
18
+ }
19
+ //# sourceMappingURL=useTableClose.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableClose.js","names":["useEffect","isClosed","useTableClose","table","close"],"sources":["../src/useTableClose.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { Table, TreeTable } from '@deephaven/jsapi-types';\nimport { isClosed } from '@deephaven/jsapi-utils';\n\n/**\n * React hook that closes a given table when the reference changes or when the\n * component unmounts.\n * @param table\n */\nexport default function useTableClose(\n table: Table | TreeTable | null | undefined\n): void {\n useEffect(\n () => () => {\n if (table == null) {\n return;\n }\n\n if (!isClosed(table)) {\n table.close();\n }\n },\n [table]\n );\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AAEjC,SAASC,QAAQ,QAAQ,wBAAwB;;AAEjD;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,aAAa,CACnCC,KAA2C,EACrC;EACNH,SAAS,CACP,MAAM,MAAM;IACV,IAAIG,KAAK,IAAI,IAAI,EAAE;MACjB;IACF;IAEA,IAAI,CAACF,QAAQ,CAACE,KAAK,CAAC,EAAE;MACpBA,KAAK,CAACC,KAAK,EAAE;IACf;EACF,CAAC,EACD,CAACD,KAAK,CAAC,CACR;AACH"}
@@ -0,0 +1,10 @@
1
+ import type { Table, TreeTable } from '@deephaven/jsapi-types';
2
+ /**
3
+ * React hook that returns the size of a given table or zero if table is null or
4
+ * undefined. The hook subscribes to the dh.Table.EVENT_SIZECHANGED event and
5
+ * triggers a re-render if any events are received to ensure we have the current
6
+ * size.
7
+ * @param table The table to check the size on.
8
+ */
9
+ export default function useTableSize(table: Table | TreeTable | null | undefined): number;
10
+ //# sourceMappingURL=useTableSize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableSize.d.ts","sourceRoot":"","sources":["../src/useTableSize.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAI/D;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAClC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,GAAG,SAAS,GAC1C,MAAM,CAQR"}
@@ -0,0 +1,18 @@
1
+ import { useState } from 'react';
2
+ import { getSize } from '@deephaven/jsapi-utils';
3
+ import useTableListener from "./useTableListener.js";
4
+ /**
5
+ * React hook that returns the size of a given table or zero if table is null or
6
+ * undefined. The hook subscribes to the dh.Table.EVENT_SIZECHANGED event and
7
+ * triggers a re-render if any events are received to ensure we have the current
8
+ * size.
9
+ * @param table The table to check the size on.
10
+ */
11
+ export default function useTableSize(table) {
12
+ var [, forceRerender] = useState(0);
13
+ useTableListener(table, dh.Table.EVENT_SIZECHANGED, () => {
14
+ forceRerender(i => i + 1);
15
+ });
16
+ return getSize(table);
17
+ }
18
+ //# sourceMappingURL=useTableSize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableSize.js","names":["useState","getSize","useTableListener","useTableSize","table","forceRerender","dh","Table","EVENT_SIZECHANGED","i"],"sources":["../src/useTableSize.ts"],"sourcesContent":["import { useState } from 'react';\nimport type { Table, TreeTable } from '@deephaven/jsapi-types';\nimport { getSize } from '@deephaven/jsapi-utils';\nimport useTableListener from './useTableListener';\n\n/**\n * React hook that returns the size of a given table or zero if table is null or\n * undefined. The hook subscribes to the dh.Table.EVENT_SIZECHANGED event and\n * triggers a re-render if any events are received to ensure we have the current\n * size.\n * @param table The table to check the size on.\n */\nexport default function useTableSize(\n table: Table | TreeTable | null | undefined\n): number {\n const [, forceRerender] = useState(0);\n\n useTableListener(table, dh.Table.EVENT_SIZECHANGED, () => {\n forceRerender(i => i + 1);\n });\n\n return getSize(table);\n}\n"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,OAAO;AAEhC,SAASC,OAAO,QAAQ,wBAAwB;AAAC,OAC1CC,gBAAgB;AAEvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,YAAY,CAClCC,KAA2C,EACnC;EACR,IAAM,GAAGC,aAAa,CAAC,GAAGL,QAAQ,CAAC,CAAC,CAAC;EAErCE,gBAAgB,CAACE,KAAK,EAAEE,EAAE,CAACC,KAAK,CAACC,iBAAiB,EAAE,MAAM;IACxDH,aAAa,CAACI,CAAC,IAAIA,CAAC,GAAG,CAAC,CAAC;EAC3B,CAAC,CAAC;EAEF,OAAOR,OAAO,CAACG,KAAK,CAAC;AACvB"}
@@ -1,17 +1,20 @@
1
1
  import { ListData } from '@react-stately/data';
2
- import { Table, TreeTable } from '@deephaven/jsapi-types';
2
+ import type { FilterCondition, Table, TreeTable } from '@deephaven/jsapi-types';
3
3
  import { KeyedItem, RowDeserializer } from '@deephaven/jsapi-utils';
4
- export interface UseViewportDataProps<T> {
5
- table: Table | TreeTable | null;
4
+ export interface UseViewportDataProps<TItem, TTable extends Table | TreeTable> {
5
+ table: TTable | null;
6
6
  viewportSize?: number;
7
7
  viewportPadding?: number;
8
- deserializeRow?: RowDeserializer<T>;
8
+ deserializeRow?: RowDeserializer<TItem>;
9
9
  }
10
- export interface UseViewportDataResult<T> {
10
+ export interface UseViewportDataResult<TItem, TTable extends Table | TreeTable> {
11
11
  /** Manages deserialized row items associated with a DH Table */
12
- viewportData: ListData<KeyedItem<T>>;
12
+ viewportData: ListData<KeyedItem<TItem>>;
13
13
  /** Size of the underlying Table */
14
14
  size: number;
15
+ table: TTable | null;
16
+ /** Apply filters and refresh viewport. */
17
+ applyFiltersAndRefresh: (filters: FilterCondition[]) => void;
15
18
  /** Set the viewport of the Table */
16
19
  setViewport: (firstRow: number) => void;
17
20
  }
@@ -28,5 +31,5 @@ export interface UseViewportDataResult<T> {
28
31
  * @param viewportPadding
29
32
  * @returns An object for managing Table viewport state.
30
33
  */
31
- export default function useViewportData<T>({ table, viewportSize, viewportPadding, deserializeRow, }: UseViewportDataProps<T>): UseViewportDataResult<T>;
34
+ export default function useViewportData<TItem, TTable extends Table | TreeTable>({ table, viewportSize, viewportPadding, deserializeRow, }: UseViewportDataProps<TItem, TTable>): UseViewportDataResult<TItem, TTable>;
32
35
  //# sourceMappingURL=useViewportData.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useViewportData.d.ts","sourceRoot":"","sources":["../src/useViewportData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EACL,SAAS,EACT,eAAe,EAKhB,MAAM,wBAAwB,CAAC;AAKhC,MAAM,WAAW,oBAAoB,CAAC,CAAC;IACrC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC;CACrC;AAED,MAAM,WAAW,qBAAqB,CAAC,CAAC;IACtC,gEAAgE;IAChE,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,CAAC,EAAE,EACzC,KAAK,EACL,YAAiB,EACjB,eAAoB,EACpB,cAAuC,GACxC,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CA4BpD"}
1
+ {"version":3,"file":"useViewportData.d.ts","sourceRoot":"","sources":["../src/useViewportData.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAChF,OAAO,EACL,SAAS,EACT,eAAe,EAIhB,MAAM,wBAAwB,CAAC;AAMhC,MAAM,WAAW,oBAAoB,CAAC,KAAK,EAAE,MAAM,SAAS,KAAK,GAAG,SAAS;IAC3E,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,qBAAqB,CACpC,KAAK,EACL,MAAM,SAAS,KAAK,GAAG,SAAS;IAEhC,gEAAgE;IAChE,YAAY,EAAE,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IACzC,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,0CAA0C;IAC1C,sBAAsB,EAAE,CAAC,OAAO,EAAE,eAAe,EAAE,KAAK,IAAI,CAAC;IAC7D,oCAAoC;IACpC,WAAW,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACzC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,KAAK,EACL,MAAM,SAAS,KAAK,GAAG,SAAS,EAChC,EACA,KAAK,EACL,YAAiB,EACjB,eAAoB,EACpB,cAAuC,GACxC,EAAE,oBAAoB,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,qBAAqB,CAAC,KAAK,EAAE,MAAM,CAAC,CAwC5E"}
@@ -1,8 +1,9 @@
1
- import { useEffect } from 'react';
2
- import { createOnTableUpdatedHandler, defaultRowDeserializer, getSize, isClosed } from '@deephaven/jsapi-utils';
1
+ import { useCallback, useEffect } from 'react';
2
+ import { createOnTableUpdatedHandler, defaultRowDeserializer, isClosed } from '@deephaven/jsapi-utils';
3
3
  import useInitializeViewportData from "./useInitializeViewportData.js";
4
4
  import useSetPaddedViewportCallback from "./useSetPaddedViewportCallback.js";
5
5
  import useTableListener from "./useTableListener.js";
6
+ import useTableSize from "./useTableSize.js";
6
7
  /**
7
8
  * Sets up state management for windowed Table viewports. Returns a ListData
8
9
  * instance for managing items associated with the Table + a `setViewport`
@@ -25,17 +26,24 @@ export default function useViewportData(_ref) {
25
26
  } = _ref;
26
27
  var viewportData = useInitializeViewportData(table);
27
28
  var setViewport = useSetPaddedViewportCallback(table, viewportSize, viewportPadding);
28
- useTableListener(table, dh.Table.EVENT_UPDATED, createOnTableUpdatedHandler(table, viewportData, deserializeRow));
29
+ var applyFiltersAndRefresh = useCallback(filters => {
30
+ table === null || table === void 0 ? void 0 : table.applyFilter(filters);
31
+ setViewport(0);
32
+ }, [setViewport, table]);
33
+ useTableListener(table, dh.Table.EVENT_UPDATED, createOnTableUpdatedHandler(viewportData, deserializeRow));
34
+ var size = useTableSize(table);
29
35
  useEffect(() => {
30
36
  if (table && !isClosed(table)) {
31
37
  // Hydrate the viewport with real data. This will fetch data from index
32
38
  // 0 to the end of the viewport + padding.
33
39
  setViewport(0);
34
40
  }
35
- }, [table, setViewport]);
41
+ }, [table, setViewport, size]);
36
42
  return {
37
43
  viewportData,
38
- size: getSize(table),
44
+ size,
45
+ table,
46
+ applyFiltersAndRefresh,
39
47
  setViewport
40
48
  };
41
49
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useViewportData.js","names":["useEffect","createOnTableUpdatedHandler","defaultRowDeserializer","getSize","isClosed","useInitializeViewportData","useSetPaddedViewportCallback","useTableListener","useViewportData","table","viewportSize","viewportPadding","deserializeRow","viewportData","setViewport","dh","Table","EVENT_UPDATED","size"],"sources":["../src/useViewportData.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport { ListData } from '@react-stately/data';\nimport { Table, TreeTable } from '@deephaven/jsapi-types';\nimport {\n KeyedItem,\n RowDeserializer,\n createOnTableUpdatedHandler,\n defaultRowDeserializer,\n getSize,\n isClosed,\n} from '@deephaven/jsapi-utils';\nimport useInitializeViewportData from './useInitializeViewportData';\nimport useSetPaddedViewportCallback from './useSetPaddedViewportCallback';\nimport useTableListener from './useTableListener';\n\nexport interface UseViewportDataProps<T> {\n table: Table | TreeTable | null;\n viewportSize?: number;\n viewportPadding?: number;\n deserializeRow?: RowDeserializer<T>;\n}\n\nexport interface UseViewportDataResult<T> {\n /** Manages deserialized row items associated with a DH Table */\n viewportData: ListData<KeyedItem<T>>;\n /** Size of the underlying Table */\n size: number;\n /** Set the viewport of the Table */\n setViewport: (firstRow: number) => 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\n * @param viewportSize\n * @param viewportPadding\n * @returns An object for managing Table viewport state.\n */\nexport default function useViewportData<T>({\n table,\n viewportSize = 10,\n viewportPadding = 50,\n deserializeRow = defaultRowDeserializer,\n}: UseViewportDataProps<T>): UseViewportDataResult<T> {\n const viewportData = useInitializeViewportData<T>(table);\n\n const setViewport = useSetPaddedViewportCallback(\n table,\n viewportSize,\n viewportPadding\n );\n\n useTableListener(\n table,\n dh.Table.EVENT_UPDATED,\n createOnTableUpdatedHandler(table, viewportData, deserializeRow)\n );\n\n useEffect(() => {\n if (table && !isClosed(table)) {\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 }\n }, [table, setViewport]);\n\n return {\n viewportData,\n size: getSize(table),\n setViewport,\n };\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AAGjC,SAGEC,2BAA2B,EAC3BC,sBAAsB,EACtBC,OAAO,EACPC,QAAQ,QACH,wBAAwB;AAAC,OACzBC,yBAAyB;AAAA,OACzBC,4BAA4B;AAAA,OAC5BC,gBAAgB;AAkBvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,eAAe,OAKe;EAAA,IALX;IACzCC,KAAK;IACLC,YAAY,GAAG,EAAE;IACjBC,eAAe,GAAG,EAAE;IACpBC,cAAc,GAAGV;EACM,CAAC;EACxB,IAAMW,YAAY,GAAGR,yBAAyB,CAAII,KAAK,CAAC;EAExD,IAAMK,WAAW,GAAGR,4BAA4B,CAC9CG,KAAK,EACLC,YAAY,EACZC,eAAe,CAChB;EAEDJ,gBAAgB,CACdE,KAAK,EACLM,EAAE,CAACC,KAAK,CAACC,aAAa,EACtBhB,2BAA2B,CAACQ,KAAK,EAAEI,YAAY,EAAED,cAAc,CAAC,CACjE;EAEDZ,SAAS,CAAC,MAAM;IACd,IAAIS,KAAK,IAAI,CAACL,QAAQ,CAACK,KAAK,CAAC,EAAE;MAC7B;MACA;MACAK,WAAW,CAAC,CAAC,CAAC;IAChB;EACF,CAAC,EAAE,CAACL,KAAK,EAAEK,WAAW,CAAC,CAAC;EAExB,OAAO;IACLD,YAAY;IACZK,IAAI,EAAEf,OAAO,CAACM,KAAK,CAAC;IACpBK;EACF,CAAC;AACH"}
1
+ {"version":3,"file":"useViewportData.js","names":["useCallback","useEffect","createOnTableUpdatedHandler","defaultRowDeserializer","isClosed","useInitializeViewportData","useSetPaddedViewportCallback","useTableListener","useTableSize","useViewportData","table","viewportSize","viewportPadding","deserializeRow","viewportData","setViewport","applyFiltersAndRefresh","filters","applyFilter","dh","Table","EVENT_UPDATED","size"],"sources":["../src/useViewportData.ts"],"sourcesContent":["import { useCallback, useEffect } from 'react';\nimport { ListData } from '@react-stately/data';\nimport type { FilterCondition, Table, TreeTable } from '@deephaven/jsapi-types';\nimport {\n KeyedItem,\n RowDeserializer,\n createOnTableUpdatedHandler,\n defaultRowDeserializer,\n isClosed,\n} from '@deephaven/jsapi-utils';\nimport useInitializeViewportData from './useInitializeViewportData';\nimport useSetPaddedViewportCallback from './useSetPaddedViewportCallback';\nimport useTableListener from './useTableListener';\nimport useTableSize from './useTableSize';\n\nexport interface UseViewportDataProps<TItem, TTable extends Table | TreeTable> {\n table: TTable | null;\n viewportSize?: number;\n viewportPadding?: number;\n deserializeRow?: RowDeserializer<TItem>;\n}\n\nexport interface UseViewportDataResult<\n TItem,\n TTable extends Table | TreeTable\n> {\n /** Manages deserialized row items associated with a DH Table */\n viewportData: ListData<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: FilterCondition[]) => void;\n /** Set the viewport of the Table */\n setViewport: (firstRow: number) => 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\n * @param viewportSize\n * @param viewportPadding\n * @returns An object for managing Table viewport state.\n */\nexport default function useViewportData<\n TItem,\n TTable extends Table | TreeTable\n>({\n table,\n viewportSize = 10,\n viewportPadding = 50,\n deserializeRow = defaultRowDeserializer,\n}: UseViewportDataProps<TItem, TTable>): UseViewportDataResult<TItem, TTable> {\n const viewportData = useInitializeViewportData<TItem>(table);\n\n const setViewport = useSetPaddedViewportCallback(\n table,\n viewportSize,\n viewportPadding\n );\n\n const applyFiltersAndRefresh = useCallback(\n (filters: FilterCondition[]) => {\n table?.applyFilter(filters);\n setViewport(0);\n },\n [setViewport, table]\n );\n\n useTableListener(\n table,\n dh.Table.EVENT_UPDATED,\n createOnTableUpdatedHandler(viewportData, deserializeRow)\n );\n\n const size = useTableSize(table);\n\n useEffect(() => {\n if (table && !isClosed(table)) {\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 }\n }, [table, setViewport, size]);\n\n return {\n viewportData,\n size,\n table,\n applyFiltersAndRefresh,\n setViewport,\n };\n}\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,SAAS,QAAQ,OAAO;AAG9C,SAGEC,2BAA2B,EAC3BC,sBAAsB,EACtBC,QAAQ,QACH,wBAAwB;AAAC,OACzBC,yBAAyB;AAAA,OACzBC,4BAA4B;AAAA,OAC5BC,gBAAgB;AAAA,OAChBC,YAAY;AAyBnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,eAAe,OAQuC;EAAA,IAL5E;IACAC,KAAK;IACLC,YAAY,GAAG,EAAE;IACjBC,eAAe,GAAG,EAAE;IACpBC,cAAc,GAAGV;EACkB,CAAC;EACpC,IAAMW,YAAY,GAAGT,yBAAyB,CAAQK,KAAK,CAAC;EAE5D,IAAMK,WAAW,GAAGT,4BAA4B,CAC9CI,KAAK,EACLC,YAAY,EACZC,eAAe,CAChB;EAED,IAAMI,sBAAsB,GAAGhB,WAAW,CACvCiB,OAA0B,IAAK;IAC9BP,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEQ,WAAW,CAACD,OAAO,CAAC;IAC3BF,WAAW,CAAC,CAAC,CAAC;EAChB,CAAC,EACD,CAACA,WAAW,EAAEL,KAAK,CAAC,CACrB;EAEDH,gBAAgB,CACdG,KAAK,EACLS,EAAE,CAACC,KAAK,CAACC,aAAa,EACtBnB,2BAA2B,CAACY,YAAY,EAAED,cAAc,CAAC,CAC1D;EAED,IAAMS,IAAI,GAAGd,YAAY,CAACE,KAAK,CAAC;EAEhCT,SAAS,CAAC,MAAM;IACd,IAAIS,KAAK,IAAI,CAACN,QAAQ,CAACM,KAAK,CAAC,EAAE;MAC7B;MACA;MACAK,WAAW,CAAC,CAAC,CAAC;IAChB;EACF,CAAC,EAAE,CAACL,KAAK,EAAEK,WAAW,EAAEO,IAAI,CAAC,CAAC;EAE9B,OAAO;IACLR,YAAY;IACZQ,IAAI;IACJZ,KAAK;IACLM,sBAAsB;IACtBD;EACF,CAAC;AACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/jsapi-components",
3
- "version": "0.38.1-beta.0+e334848a",
3
+ "version": "0.38.1-beta.2+e0a2a369",
4
4
  "description": "Deephaven JSAPI Components",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -22,23 +22,23 @@
22
22
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
23
23
  },
24
24
  "dependencies": {
25
- "@deephaven/components": "^0.38.1-beta.0+e334848a",
26
- "@deephaven/jsapi-bootstrap": "^0.38.1-beta.0+e334848a",
27
- "@deephaven/jsapi-types": "^0.38.1-beta.0+e334848a",
28
- "@deephaven/jsapi-utils": "^0.38.1-beta.0+e334848a",
29
- "@deephaven/log": "^0.38.1-beta.0+e334848a",
30
- "@deephaven/react-hooks": "^0.38.1-beta.0+e334848a",
31
- "@deephaven/utils": "^0.38.1-beta.0+e334848a",
25
+ "@deephaven/components": "^0.38.1-beta.2+e0a2a369",
26
+ "@deephaven/jsapi-bootstrap": "^0.38.1-beta.2+e0a2a369",
27
+ "@deephaven/jsapi-types": "^0.38.1-beta.2+e0a2a369",
28
+ "@deephaven/jsapi-utils": "^0.38.1-beta.2+e0a2a369",
29
+ "@deephaven/log": "^0.38.1-beta.2+e0a2a369",
30
+ "@deephaven/react-hooks": "^0.38.1-beta.2+e0a2a369",
31
+ "@deephaven/utils": "^0.38.1-beta.2+e0a2a369",
32
32
  "@react-stately/data": "^3.9.1",
33
33
  "@types/js-cookie": "^3.0.3",
34
34
  "classnames": "^2.3.2",
35
35
  "js-cookie": "^3.0.5",
36
+ "lodash.debounce": "^4.0.8",
36
37
  "prop-types": "^15.8.1"
37
38
  },
38
39
  "devDependencies": {
39
- "@deephaven/jsapi-shim": "^0.38.1-beta.0+e334848a",
40
- "@deephaven/tsconfig": "^0.38.1-beta.0+e334848a",
41
- "@testing-library/react-hooks": "^8.0.1",
40
+ "@deephaven/jsapi-shim": "^0.38.1-beta.2+e0a2a369",
41
+ "@deephaven/tsconfig": "^0.38.1-beta.2+e0a2a369",
42
42
  "react-test-renderer": "^17.0.2"
43
43
  },
44
44
  "peerDependencies": {
@@ -53,5 +53,5 @@
53
53
  "publishConfig": {
54
54
  "access": "public"
55
55
  },
56
- "gitHead": "e334848a2fd464c9c4b7a0d898ee6a9dc3dff9ac"
56
+ "gitHead": "e0a2a369ea3c90e9c2e25b7e29823825db14d3f5"
57
57
  }