@deephaven/jsapi-components 0.47.0 → 0.47.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.
Files changed (73) hide show
  1. package/dist/index.d.ts +13 -2
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +13 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/useCheckIfExistsValue.d.ts +24 -0
  6. package/dist/useCheckIfExistsValue.d.ts.map +1 -0
  7. package/dist/useCheckIfExistsValue.js +34 -0
  8. package/dist/useCheckIfExistsValue.js.map +1 -0
  9. package/dist/useDebouncedViewportSearch.d.ts +2 -1
  10. package/dist/useDebouncedViewportSearch.d.ts.map +1 -1
  11. package/dist/useDebouncedViewportSearch.js +4 -5
  12. package/dist/useDebouncedViewportSearch.js.map +1 -1
  13. package/dist/useDebouncedViewportSelectionFilter.d.ts +19 -0
  14. package/dist/useDebouncedViewportSelectionFilter.d.ts.map +1 -0
  15. package/dist/useDebouncedViewportSelectionFilter.js +36 -0
  16. package/dist/useDebouncedViewportSelectionFilter.js.map +1 -0
  17. package/dist/useFilterConditionFactories.d.ts +5 -0
  18. package/dist/useFilterConditionFactories.d.ts.map +1 -0
  19. package/dist/useFilterConditionFactories.js +14 -0
  20. package/dist/useFilterConditionFactories.js.map +1 -0
  21. package/dist/useFilteredItemsWithDefaultValue.d.ts +14 -0
  22. package/dist/useFilteredItemsWithDefaultValue.d.ts.map +1 -0
  23. package/dist/useFilteredItemsWithDefaultValue.js +33 -0
  24. package/dist/useFilteredItemsWithDefaultValue.js.map +1 -0
  25. package/dist/useGetItemPosition.d.ts +22 -0
  26. package/dist/useGetItemPosition.d.ts.map +1 -0
  27. package/dist/useGetItemPosition.js +36 -0
  28. package/dist/useGetItemPosition.js.map +1 -0
  29. package/dist/useInitializeViewportData.d.ts +5 -5
  30. package/dist/useInitializeViewportData.d.ts.map +1 -1
  31. package/dist/useInitializeViewportData.js +18 -35
  32. package/dist/useInitializeViewportData.js.map +1 -1
  33. package/dist/useNotNullOrEmptyFilter.d.ts +3 -0
  34. package/dist/useNotNullOrEmptyFilter.d.ts.map +1 -0
  35. package/dist/useNotNullOrEmptyFilter.js +11 -0
  36. package/dist/useNotNullOrEmptyFilter.js.map +1 -0
  37. package/dist/usePickerWithSelectedValues.d.ts +33 -0
  38. package/dist/usePickerWithSelectedValues.d.ts.map +1 -0
  39. package/dist/usePickerWithSelectedValues.js +139 -0
  40. package/dist/usePickerWithSelectedValues.js.map +1 -0
  41. package/dist/useSearchableViewportData.d.ts +16 -0
  42. package/dist/useSearchableViewportData.d.ts.map +1 -0
  43. package/dist/useSearchableViewportData.js +37 -0
  44. package/dist/useSearchableViewportData.js.map +1 -0
  45. package/dist/useSetPaddedViewportCallback.d.ts +2 -1
  46. package/dist/useSetPaddedViewportCallback.d.ts.map +1 -1
  47. package/dist/useSetPaddedViewportCallback.js +2 -1
  48. package/dist/useSetPaddedViewportCallback.js.map +1 -1
  49. package/dist/useShowOnlyEmptyFilter.d.ts +11 -0
  50. package/dist/useShowOnlyEmptyFilter.d.ts.map +1 -0
  51. package/dist/useShowOnlyEmptyFilter.js +17 -0
  52. package/dist/useShowOnlyEmptyFilter.js.map +1 -0
  53. package/dist/useTableSize.d.ts +2 -1
  54. package/dist/useTableSize.d.ts.map +1 -1
  55. package/dist/useTableSize.js +2 -1
  56. package/dist/useTableSize.js.map +1 -1
  57. package/dist/useTableUtils.d.ts +2 -1
  58. package/dist/useTableUtils.d.ts.map +1 -1
  59. package/dist/useTableUtils.js +2 -1
  60. package/dist/useTableUtils.js.map +1 -1
  61. package/dist/useValueFilter.d.ts +10 -0
  62. package/dist/useValueFilter.d.ts.map +1 -0
  63. package/dist/useValueFilter.js +15 -0
  64. package/dist/useValueFilter.js.map +1 -0
  65. package/dist/useViewportData.d.ts +12 -8
  66. package/dist/useViewportData.d.ts.map +1 -1
  67. package/dist/useViewportData.js +37 -20
  68. package/dist/useViewportData.js.map +1 -1
  69. package/dist/useViewportFilter.d.ts +10 -0
  70. package/dist/useViewportFilter.d.ts.map +1 -0
  71. package/dist/useViewportFilter.js +16 -0
  72. package/dist/useViewportFilter.js.map +1 -0
  73. package/package.json +10 -11
@@ -1,10 +1,14 @@
1
- import { useCallback, useEffect } from 'react';
2
- import { createOnTableUpdatedHandler, defaultRowDeserializer, isClosed } from '@deephaven/jsapi-utils';
1
+ import { useCallback, useEffect, useMemo } from 'react';
2
+ import { defaultRowDeserializer, isClosed, createOnTableUpdatedHandler } from '@deephaven/jsapi-utils';
3
+ import Log from '@deephaven/log';
3
4
  import { useApi } from '@deephaven/jsapi-bootstrap';
5
+ import { useOnScrollOffsetChangeCallback } from '@deephaven/react-hooks';
6
+ import { SCROLL_DEBOUNCE_MS } from '@deephaven/utils';
4
7
  import useInitializeViewportData from "./useInitializeViewportData.js";
5
8
  import useSetPaddedViewportCallback from "./useSetPaddedViewportCallback.js";
6
- import useTableListener from "./useTableListener.js";
7
9
  import useTableSize from "./useTableSize.js";
10
+ import useTableListener from "./useTableListener.js";
11
+ var log = Log.module('useViewportData');
8
12
  /**
9
13
  * Sets up state management for windowed Table viewports. Returns a ListData
10
14
  * instance for managing items associated with the Table + a `setViewport`
@@ -14,42 +18,55 @@ import useTableSize from "./useTableSize.js";
14
18
  * source table. This is intended for "human" sized tables such as those used in
15
19
  * admin panels. This is not suitable for "machine" scale with millions+ rows.
16
20
  * @param table
21
+ * @param itemHeight
17
22
  * @param viewportSize
18
23
  * @param viewportPadding
19
- * @returns An object for managing Table viewport state. Note that the returned
20
- * object changes on every render due to the `viewportData` not being memoized.
21
- * This is due to the underlying React Stately `useListData` implementation that
22
- * also changes its returned object on every render.
24
+ * @returns An object for managing Table viewport state.
23
25
  */
24
- export default function useViewportData(_ref) {
26
+ export function useViewportData(_ref) {
25
27
  var {
26
28
  table,
29
+ itemHeight = 1,
30
+ scrollDebounce = SCROLL_DEBOUNCE_MS,
27
31
  viewportSize = 10,
28
32
  viewportPadding = 50,
29
33
  deserializeRow = defaultRowDeserializer
30
34
  } = _ref;
31
35
  var viewportData = useInitializeViewportData(table);
32
- var setViewport = useSetPaddedViewportCallback(table, viewportSize, viewportPadding);
36
+ var setPaddedViewport = useSetPaddedViewportCallback(table, viewportSize, viewportPadding);
37
+ var setViewport = useCallback(firstRow => {
38
+ if (table && !isClosed(table)) {
39
+ setPaddedViewport(firstRow);
40
+ } else {
41
+ log.debug('setViewport called on closed table.', table);
42
+ }
43
+ }, [table, setPaddedViewport]);
33
44
  var applyFiltersAndRefresh = useCallback(filters => {
34
- table === null || table === void 0 ? void 0 : table.applyFilter(filters);
35
- setViewport(0);
45
+ if (table && !isClosed(table)) {
46
+ table.applyFilter(filters);
47
+ setViewport(0);
48
+ } else {
49
+ log.debug('applyFiltersAndRefresh called on closed table.', table);
50
+ }
36
51
  }, [setViewport, table]);
37
52
  var dh = useApi();
38
- useTableListener(table, dh.Table.EVENT_UPDATED, createOnTableUpdatedHandler(viewportData, deserializeRow));
53
+ var onTableUpdated = useMemo(() => createOnTableUpdatedHandler(viewportData, deserializeRow), [deserializeRow, viewportData]);
54
+ useTableListener(table, dh.Table.EVENT_UPDATED, onTableUpdated);
39
55
  var size = useTableSize(table);
40
56
  useEffect(() => {
41
- if (table && !isClosed(table)) {
42
- // Hydrate the viewport with real data. This will fetch data from index
43
- // 0 to the end of the viewport + padding.
44
- setViewport(0);
45
- }
57
+ // Hydrate the viewport with real data. This will fetch data from index
58
+ // 0 to the end of the viewport + padding.
59
+ setViewport(0);
46
60
  }, [table, setViewport, size]);
47
- return {
61
+ var onScroll = useOnScrollOffsetChangeCallback(itemHeight, setViewport, scrollDebounce);
62
+ return useMemo(() => ({
48
63
  viewportData,
49
64
  size,
50
65
  table,
51
66
  applyFiltersAndRefresh,
52
- setViewport
53
- };
67
+ setViewport,
68
+ onScroll
69
+ }), [applyFiltersAndRefresh, onScroll, setViewport, size, table, viewportData]);
54
70
  }
71
+ export default useViewportData;
55
72
  //# sourceMappingURL=useViewportData.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useViewportData.js","names":["useCallback","useEffect","createOnTableUpdatedHandler","defaultRowDeserializer","isClosed","useApi","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 { useApi } from '@deephaven/jsapi-bootstrap';\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. Note that the returned\n * object changes on every render due to the `viewportData` not being memoized.\n * This is due to the underlying React Stately `useListData` implementation that\n * also changes its returned object on every render.\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 const dh = useApi();\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;AAC/B,SAASC,MAAM,QAAQ,4BAA4B;AAAC,OAC7CC,yBAAyB;AAAA,OACzBC,4BAA4B;AAAA,OAC5BC,gBAAgB;AAAA,OAChBC,YAAY;AAyBnB;AACA;AACA;AACA;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,GAAGX;EACkB,CAAC;EACpC,IAAMY,YAAY,GAAGT,yBAAyB,CAAQK,KAAK,CAAC;EAE5D,IAAMK,WAAW,GAAGT,4BAA4B,CAC9CI,KAAK,EACLC,YAAY,EACZC,eAAe,CAChB;EAED,IAAMI,sBAAsB,GAAGjB,WAAW,CACvCkB,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;EAED,IAAMS,EAAE,GAAGf,MAAM,EAAE;EAEnBG,gBAAgB,CACdG,KAAK,EACLS,EAAE,CAACC,KAAK,CAACC,aAAa,EACtBpB,2BAA2B,CAACa,YAAY,EAAED,cAAc,CAAC,CAC1D;EAED,IAAMS,IAAI,GAAGd,YAAY,CAACE,KAAK,CAAC;EAEhCV,SAAS,CAAC,MAAM;IACd,IAAIU,KAAK,IAAI,CAACP,QAAQ,CAACO,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"}
1
+ {"version":3,"file":"useViewportData.js","names":["useCallback","useEffect","useMemo","defaultRowDeserializer","isClosed","createOnTableUpdatedHandler","Log","useApi","useOnScrollOffsetChangeCallback","SCROLL_DEBOUNCE_MS","useInitializeViewportData","useSetPaddedViewportCallback","useTableSize","useTableListener","log","module","useViewportData","table","itemHeight","scrollDebounce","viewportSize","viewportPadding","deserializeRow","viewportData","setPaddedViewport","setViewport","firstRow","debug","applyFiltersAndRefresh","filters","applyFilter","dh","onTableUpdated","Table","EVENT_UPDATED","size","onScroll"],"sources":["../src/useViewportData.ts"],"sourcesContent":["import { useCallback, useEffect, useMemo } from 'react';\nimport type { FilterCondition, Table, TreeTable } from '@deephaven/jsapi-types';\nimport {\n RowDeserializer,\n defaultRowDeserializer,\n isClosed,\n createOnTableUpdatedHandler,\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<TItem, TTable extends Table | TreeTable> {\n table: TTable | null;\n itemHeight?: number;\n scrollDebounce?: number;\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: 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: 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\n * @param itemHeight\n * @param viewportSize\n * @param viewportPadding\n * @returns An object for managing Table viewport state.\n */\nexport function useViewportData<TItem, TTable extends Table | TreeTable>({\n table,\n itemHeight = 1,\n scrollDebounce = SCROLL_DEBOUNCE_MS,\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 setPaddedViewport = useSetPaddedViewportCallback(\n table,\n viewportSize,\n viewportPadding\n );\n\n const setViewport = useCallback(\n (firstRow: number) => {\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: 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 const onTableUpdated = useMemo(\n () => createOnTableUpdatedHandler(viewportData, deserializeRow),\n [deserializeRow, viewportData]\n );\n\n useTableListener(table, dh.Table.EVENT_UPDATED, onTableUpdated);\n\n const size = useTableSize(table);\n\n useEffect(() => {\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, 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":"AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAEvD,SAEEC,sBAAsB,EACtBC,QAAQ,EACRC,2BAA2B,QACtB,wBAAwB;AAC/B,OAAOC,GAAG,MAAM,gBAAgB;AAChC,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SACEC,+BAA+B,QAE1B,wBAAwB;AAC/B,SAAoBC,kBAAkB,QAAQ,kBAAkB;AAAC,OAC1DC,yBAAyB;AAAA,OACzBC,4BAA4B;AAAA,OAC5BC,YAAY;AAAA,OACZC,gBAAgB;AAEvB,IAAMC,GAAG,GAAGR,GAAG,CAACS,MAAM,CAAC,iBAAiB,CAAC;AA6BzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,eAAe,OAO+C;EAAA,IAPL;IACvEC,KAAK;IACLC,UAAU,GAAG,CAAC;IACdC,cAAc,GAAGV,kBAAkB;IACnCW,YAAY,GAAG,EAAE;IACjBC,eAAe,GAAG,EAAE;IACpBC,cAAc,GAAGnB;EACkB,CAAC;EACpC,IAAMoB,YAAY,GAAGb,yBAAyB,CAAQO,KAAK,CAAC;EAE5D,IAAMO,iBAAiB,GAAGb,4BAA4B,CACpDM,KAAK,EACLG,YAAY,EACZC,eAAe,CAChB;EAED,IAAMI,WAAW,GAAGzB,WAAW,CAC5B0B,QAAgB,IAAK;IACpB,IAAIT,KAAK,IAAI,CAACb,QAAQ,CAACa,KAAK,CAAC,EAAE;MAC7BO,iBAAiB,CAACE,QAAQ,CAAC;IAC7B,CAAC,MAAM;MACLZ,GAAG,CAACa,KAAK,CAAC,qCAAqC,EAAEV,KAAK,CAAC;IACzD;EACF,CAAC,EACD,CAACA,KAAK,EAAEO,iBAAiB,CAAC,CAC3B;EAED,IAAMI,sBAAsB,GAAG5B,WAAW,CACvC6B,OAA0B,IAAK;IAC9B,IAAIZ,KAAK,IAAI,CAACb,QAAQ,CAACa,KAAK,CAAC,EAAE;MAC7BA,KAAK,CAACa,WAAW,CAACD,OAAO,CAAC;MAC1BJ,WAAW,CAAC,CAAC,CAAC;IAChB,CAAC,MAAM;MACLX,GAAG,CAACa,KAAK,CAAC,gDAAgD,EAAEV,KAAK,CAAC;IACpE;EACF,CAAC,EACD,CAACQ,WAAW,EAAER,KAAK,CAAC,CACrB;EAED,IAAMc,EAAE,GAAGxB,MAAM,EAAE;EAEnB,IAAMyB,cAAc,GAAG9B,OAAO,CAC5B,MAAMG,2BAA2B,CAACkB,YAAY,EAAED,cAAc,CAAC,EAC/D,CAACA,cAAc,EAAEC,YAAY,CAAC,CAC/B;EAEDV,gBAAgB,CAACI,KAAK,EAAEc,EAAE,CAACE,KAAK,CAACC,aAAa,EAAEF,cAAc,CAAC;EAE/D,IAAMG,IAAI,GAAGvB,YAAY,CAACK,KAAK,CAAC;EAEhChB,SAAS,CAAC,MAAM;IACd;IACA;IACAwB,WAAW,CAAC,CAAC,CAAC;EAChB,CAAC,EAAE,CAACR,KAAK,EAAEQ,WAAW,EAAEU,IAAI,CAAC,CAAC;EAE9B,IAAMC,QAAQ,GAAG5B,+BAA+B,CAC9CU,UAAU,EACVO,WAAW,EACXN,cAAc,CACf;EAED,OAAOjB,OAAO,CACZ,OAAO;IACLqB,YAAY;IACZY,IAAI;IACJlB,KAAK;IACLW,sBAAsB;IACtBH,WAAW;IACXW;EACF,CAAC,CAAC,EACF,CAACR,sBAAsB,EAAEQ,QAAQ,EAAEX,WAAW,EAAEU,IAAI,EAAElB,KAAK,EAAEM,YAAY,CAAC,CAC3E;AACH;AAEA,eAAeP,eAAe"}
@@ -0,0 +1,10 @@
1
+ import type { FilterCondition, Table } from '@deephaven/jsapi-types';
2
+ import { UseViewportDataResult } from './useViewportData';
3
+ /**
4
+ * Applies a filter to a viewport.
5
+ * @param viewportData Viewport to filter
6
+ * @param filter Filter to apply
7
+ */
8
+ export declare function useViewportFilter<TItem>(viewportData: UseViewportDataResult<TItem, Table>, filter: FilterCondition[]): void;
9
+ export default useViewportFilter;
10
+ //# sourceMappingURL=useViewportFilter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useViewportFilter.d.ts","sourceRoot":"","sources":["../src/useViewportFilter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EACrC,YAAY,EAAE,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,EACjD,MAAM,EAAE,eAAe,EAAE,GACxB,IAAI,CAMN;AAED,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { useEffect } from 'react';
2
+ /**
3
+ * Applies a filter to a viewport.
4
+ * @param viewportData Viewport to filter
5
+ * @param filter Filter to apply
6
+ */
7
+ export function useViewportFilter(viewportData, filter) {
8
+ var {
9
+ applyFiltersAndRefresh
10
+ } = viewportData;
11
+ useEffect(() => {
12
+ applyFiltersAndRefresh(filter);
13
+ }, [applyFiltersAndRefresh, filter]);
14
+ }
15
+ export default useViewportFilter;
16
+ //# sourceMappingURL=useViewportFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useViewportFilter.js","names":["useEffect","useViewportFilter","viewportData","filter","applyFiltersAndRefresh"],"sources":["../src/useViewportFilter.ts"],"sourcesContent":["import { useEffect } from 'react';\nimport type { FilterCondition, Table } from '@deephaven/jsapi-types';\nimport { UseViewportDataResult } from './useViewportData';\n\n/**\n * Applies a filter to a viewport.\n * @param viewportData Viewport to filter\n * @param filter Filter to apply\n */\nexport function useViewportFilter<TItem>(\n viewportData: UseViewportDataResult<TItem, Table>,\n filter: FilterCondition[]\n): void {\n const { applyFiltersAndRefresh } = viewportData;\n\n useEffect(() => {\n applyFiltersAndRefresh(filter);\n }, [applyFiltersAndRefresh, filter]);\n}\n\nexport default useViewportFilter;\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,OAAO;AAIjC;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiB,CAC/BC,YAAiD,EACjDC,MAAyB,EACnB;EACN,IAAM;IAAEC;EAAuB,CAAC,GAAGF,YAAY;EAE/CF,SAAS,CAAC,MAAM;IACdI,sBAAsB,CAACD,MAAM,CAAC;EAChC,CAAC,EAAE,CAACC,sBAAsB,EAAED,MAAM,CAAC,CAAC;AACtC;AAEA,eAAeF,iBAAiB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/jsapi-components",
3
- "version": "0.47.0",
3
+ "version": "0.47.1-beta.2+b43b5b21",
4
4
  "description": "Deephaven JSAPI Components",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -22,14 +22,13 @@
22
22
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
23
23
  },
24
24
  "dependencies": {
25
- "@deephaven/components": "^0.47.0",
26
- "@deephaven/jsapi-bootstrap": "^0.47.0",
27
- "@deephaven/jsapi-types": "^0.47.0",
28
- "@deephaven/jsapi-utils": "^0.47.0",
29
- "@deephaven/log": "^0.47.0",
30
- "@deephaven/react-hooks": "^0.47.0",
31
- "@deephaven/utils": "^0.47.0",
32
- "@react-stately/data": "^3.9.1",
25
+ "@deephaven/components": "^0.47.1-beta.2+b43b5b21",
26
+ "@deephaven/jsapi-bootstrap": "^0.47.1-beta.2+b43b5b21",
27
+ "@deephaven/jsapi-types": "^0.47.1-beta.2+b43b5b21",
28
+ "@deephaven/jsapi-utils": "^0.47.1-beta.2+b43b5b21",
29
+ "@deephaven/log": "^0.47.1-beta.2+b43b5b21",
30
+ "@deephaven/react-hooks": "^0.47.1-beta.2+b43b5b21",
31
+ "@deephaven/utils": "^0.47.1-beta.2+b43b5b21",
33
32
  "@types/js-cookie": "^3.0.3",
34
33
  "classnames": "^2.3.2",
35
34
  "js-cookie": "^3.0.5",
@@ -37,7 +36,7 @@
37
36
  "prop-types": "^15.8.1"
38
37
  },
39
38
  "devDependencies": {
40
- "@deephaven/jsapi-shim": "^0.47.0",
39
+ "@deephaven/jsapi-shim": "^0.47.1-beta.2+b43b5b21",
41
40
  "react-test-renderer": "^17.0.2"
42
41
  },
43
42
  "peerDependencies": {
@@ -52,5 +51,5 @@
52
51
  "publishConfig": {
53
52
  "access": "public"
54
53
  },
55
- "gitHead": "8d890b724d6c8bdb73eb03463f9c850ca57094bd"
54
+ "gitHead": "b43b5b21a2ac78b02792f6e14e56ce31bc507a5a"
56
55
  }