@deephaven/dashboard-core-plugins 1.1.2-beta.5 → 1.1.2-bisect-12.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.
@@ -1 +1 @@
1
- {"version":3,"file":"GridWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/GridWidgetPlugin.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAwB3D,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,GACN,EAAE,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAmJzD;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"GridWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/GridWidgetPlugin.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,oBAAoB,EAE1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,EAAE,IAAI,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAuB3D,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,GACN,EAAE,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,OAAO,GAAG,IAAI,CAqHzD;AAED,eAAe,gBAAgB,CAAC"}
@@ -1,28 +1,23 @@
1
- var _excluded = ["alwaysFetchColumns"];
2
- function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
3
- function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
4
1
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
5
2
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
3
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
7
4
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
8
5
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
9
- import { useCallback, useMemo, useRef, useState } from 'react';
6
+ import { useCallback, useMemo, useRef } from 'react';
10
7
  import { usePersistentState } from '@deephaven/plugin';
11
8
  import { IrisGrid, IrisGridCacheUtils, IrisGridUtils, isIrisGridTableModelTemplate } from '@deephaven/iris-grid';
12
9
  import { useSelector } from 'react-redux';
13
10
  import { getSettings } from '@deephaven/redux';
14
11
  import { LoadingOverlay } from '@deephaven/components';
15
12
  import { useLayoutManager, useListener } from '@deephaven/dashboard';
16
- import { assertNotNull, getErrorMessage } from '@deephaven/utils';
13
+ import { getErrorMessage } from '@deephaven/utils';
17
14
  import { useApi } from '@deephaven/jsapi-bootstrap';
18
15
  import { useIrisGridModel } from "./useIrisGridModel.js";
19
16
  import useDashboardColumnFilters from "./useDashboardColumnFilters.js";
20
17
  import { InputFilterEvent } from "./events/index.js";
21
18
  import useGridLinker from "./useGridLinker.js";
22
- import { useTablePlugin } from "./useTablePlugin.js";
23
19
  import { jsx as _jsx } from "react/jsx-runtime";
24
20
  export function GridWidgetPlugin(_ref) {
25
- var _model$columns;
26
21
  var {
27
22
  fetch
28
23
  } = _ref;
@@ -31,7 +26,6 @@ export function GridWidgetPlugin(_ref) {
31
26
  eventHub
32
27
  } = useLayoutManager();
33
28
  var fetchResult = useIrisGridModel(fetch);
34
- var model = fetchResult.status === 'success' ? fetchResult.model : undefined;
35
29
  var dh = useApi();
36
30
  var irisGridUtils = useMemo(() => new IrisGridUtils(dh), [dh]);
37
31
  var [state, setState] = usePersistentState(undefined, {
@@ -53,13 +47,9 @@ export function GridWidgetPlugin(_ref) {
53
47
  var newState = dehydrateIrisGridState(fetchResult.model, irisGridState, gridState);
54
48
  setState(newState);
55
49
  }, [fetchResult, setState, dehydrateIrisGridState]);
56
- var inputFilters = useDashboardColumnFilters((_model$columns = model === null || model === void 0 ? void 0 : model.columns) !== null && _model$columns !== void 0 ? _model$columns : null, model != null && isIrisGridTableModelTemplate(model) ? model.table : undefined);
50
+ var inputFilters = useDashboardColumnFilters(fetchResult.status === 'success' ? fetchResult.model.columns : null, fetchResult.status === 'success' && isIrisGridTableModelTemplate(fetchResult.model) ? fetchResult.model.table : undefined);
57
51
  var irisGridRef = useRef(null);
58
- var _useGridLinker = useGridLinker(fetchResult.status === 'success' ? fetchResult.model : null, irisGridRef.current),
59
- {
60
- alwaysFetchColumns: linkerAlwaysFetchColumns
61
- } = _useGridLinker,
62
- linkerProps = _objectWithoutProperties(_useGridLinker, _excluded);
52
+ var linkerProps = useGridLinker(fetchResult.status === 'success' ? fetchResult.model : null, irisGridRef.current);
63
53
  var handleClearAllFilters = useCallback(() => {
64
54
  if (irisGridRef.current == null) {
65
55
  return;
@@ -67,22 +57,6 @@ export function GridWidgetPlugin(_ref) {
67
57
  irisGridRef.current.clearAllFilters();
68
58
  }, []);
69
59
  useListener(eventHub, InputFilterEvent.CLEAR_ALL_FILTERS, handleClearAllFilters);
70
- var [selection, setSelection] = useState([]);
71
- var {
72
- Plugin,
73
- customFilters,
74
- alwaysFetchColumns: filterFetchColumns,
75
- onContextMenu
76
- } = useTablePlugin({
77
- model,
78
- irisGridRef,
79
- irisGridUtils,
80
- selectedRanges: selection
81
- });
82
- var alwaysFetchColumns = useMemo(() => {
83
- var columnSet = new Set([...linkerAlwaysFetchColumns, ...filterFetchColumns]);
84
- return [...columnSet];
85
- }, [linkerAlwaysFetchColumns, filterFetchColumns]);
86
60
  if (fetchResult.status === 'loading') {
87
61
  return /*#__PURE__*/_jsx(LoadingOverlay, {
88
62
  isLoading: true
@@ -94,23 +68,17 @@ export function GridWidgetPlugin(_ref) {
94
68
  isLoading: false
95
69
  });
96
70
  }
97
- assertNotNull(model, 'Model should be defined when fetch is successful');
98
- return /*#__PURE__*/_jsx(IrisGrid, _objectSpread(_objectSpread(_objectSpread({
71
+ var {
72
+ model
73
+ } = fetchResult;
74
+ return /*#__PURE__*/_jsx(IrisGrid, _objectSpread(_objectSpread({
99
75
  ref: irisGridRef,
100
76
  model: model,
101
77
  settings: settings,
102
78
  onStateChange: handleIrisGridChange,
103
- onSelectionChanged: setSelection,
104
- onContextMenu: onContextMenu,
105
- inputFilters: inputFilters,
106
- customFilters: customFilters
107
- // eslint-disable-next-line react/jsx-props-no-spreading
108
- }, linkerProps), {}, {
109
- alwaysFetchColumns: alwaysFetchColumns
79
+ inputFilters: inputFilters
110
80
  // eslint-disable-next-line react/jsx-props-no-spreading
111
- }, hydratedState), {}, {
112
- children: Plugin
113
- }));
81
+ }, linkerProps), hydratedState));
114
82
  }
115
83
  export default GridWidgetPlugin;
116
84
  //# sourceMappingURL=GridWidgetPlugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridWidgetPlugin.js","names":["useCallback","useMemo","useRef","useState","usePersistentState","IrisGrid","IrisGridCacheUtils","IrisGridUtils","isIrisGridTableModelTemplate","useSelector","getSettings","LoadingOverlay","useLayoutManager","useListener","assertNotNull","getErrorMessage","useApi","useIrisGridModel","useDashboardColumnFilters","InputFilterEvent","useGridLinker","useTablePlugin","jsx","_jsx","GridWidgetPlugin","_ref","_model$columns","fetch","settings","eventHub","fetchResult","model","status","undefined","dh","irisGridUtils","state","setState","version","type","initialState","hydratedState","current","_objectSpread","hydrateIrisGridState","hydrateGridState","dehydrateIrisGridState","makeMemoizedCombinedGridStateDehydrator","handleIrisGridChange","irisGridState","gridState","newState","inputFilters","columns","table","irisGridRef","_useGridLinker","alwaysFetchColumns","linkerAlwaysFetchColumns","linkerProps","_objectWithoutProperties","_excluded","handleClearAllFilters","clearAllFilters","CLEAR_ALL_FILTERS","selection","setSelection","Plugin","customFilters","filterFetchColumns","onContextMenu","selectedRanges","columnSet","Set","isLoading","errorMessage","error","ref","onStateChange","onSelectionChanged","children"],"sources":["../src/GridWidgetPlugin.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport {\n type WidgetComponentProps,\n usePersistentState,\n} from '@deephaven/plugin';\nimport { type dh as DhType } from '@deephaven/jsapi-types';\nimport {\n type DehydratedGridState,\n type DehydratedIrisGridState,\n IrisGrid,\n IrisGridCacheUtils,\n type IrisGridState,\n type IrisGridType,\n IrisGridUtils,\n isIrisGridTableModelTemplate,\n} from '@deephaven/iris-grid';\nimport { useSelector } from 'react-redux';\nimport { getSettings, type RootState } from '@deephaven/redux';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { useLayoutManager, useListener } from '@deephaven/dashboard';\nimport { assertNotNull, getErrorMessage } from '@deephaven/utils';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { type GridRange, type GridState } from '@deephaven/grid';\nimport { useIrisGridModel } from './useIrisGridModel';\nimport useDashboardColumnFilters from './useDashboardColumnFilters';\nimport { InputFilterEvent } from './events';\nimport useGridLinker from './useGridLinker';\nimport { useTablePlugin } from './useTablePlugin';\n\nexport function GridWidgetPlugin({\n fetch,\n}: WidgetComponentProps<DhType.Table>): JSX.Element | null {\n const settings = useSelector(getSettings<RootState>);\n const { eventHub } = useLayoutManager();\n\n const fetchResult = useIrisGridModel(fetch);\n const model =\n fetchResult.status === 'success' ? fetchResult.model : undefined;\n\n const dh = useApi();\n const irisGridUtils = useMemo(() => new IrisGridUtils(dh), [dh]);\n\n const [state, setState] = usePersistentState<\n (DehydratedIrisGridState & DehydratedGridState) | undefined\n >(undefined, {\n version: 1,\n type: 'GridWidgetPlugin',\n });\n const initialState = useRef(state);\n const hydratedState = useMemo(() => {\n if (\n fetchResult.status !== 'success' ||\n initialState.current === undefined\n ) {\n return;\n }\n return {\n ...irisGridUtils.hydrateIrisGridState(\n fetchResult.model,\n initialState.current\n ),\n ...IrisGridUtils.hydrateGridState(\n fetchResult.model,\n initialState.current\n ),\n };\n }, [fetchResult, irisGridUtils]);\n\n const dehydrateIrisGridState = useMemo(\n () => IrisGridCacheUtils.makeMemoizedCombinedGridStateDehydrator(),\n []\n );\n\n const handleIrisGridChange = useCallback(\n (irisGridState: IrisGridState, gridState: GridState) => {\n if (\n fetchResult.status !== 'success' ||\n irisGridState == null ||\n gridState == null\n ) {\n return;\n }\n\n const newState = dehydrateIrisGridState(\n fetchResult.model,\n irisGridState,\n gridState\n );\n\n setState(newState);\n },\n [fetchResult, setState, dehydrateIrisGridState]\n );\n\n const inputFilters = useDashboardColumnFilters(\n model?.columns ?? null,\n model != null && isIrisGridTableModelTemplate(model)\n ? model.table\n : undefined\n );\n\n const irisGridRef = useRef<IrisGridType | null>(null);\n\n const { alwaysFetchColumns: linkerAlwaysFetchColumns, ...linkerProps } =\n useGridLinker(\n fetchResult.status === 'success' ? fetchResult.model : null,\n irisGridRef.current\n );\n\n const handleClearAllFilters = useCallback(() => {\n if (irisGridRef.current == null) {\n return;\n }\n irisGridRef.current.clearAllFilters();\n }, []);\n\n useListener(\n eventHub,\n InputFilterEvent.CLEAR_ALL_FILTERS,\n handleClearAllFilters\n );\n\n const [selection, setSelection] = useState<readonly GridRange[]>([]);\n\n const {\n Plugin,\n customFilters,\n alwaysFetchColumns: filterFetchColumns,\n onContextMenu,\n } = useTablePlugin({\n model,\n irisGridRef,\n irisGridUtils,\n selectedRanges: selection,\n });\n\n const alwaysFetchColumns = useMemo(() => {\n const columnSet = new Set([\n ...linkerAlwaysFetchColumns,\n ...filterFetchColumns,\n ]);\n return [...columnSet];\n }, [linkerAlwaysFetchColumns, filterFetchColumns]);\n\n if (fetchResult.status === 'loading') {\n return <LoadingOverlay isLoading />;\n }\n\n if (fetchResult.status === 'error') {\n return (\n <LoadingOverlay\n errorMessage={getErrorMessage(fetchResult.error)}\n isLoading={false}\n />\n );\n }\n\n assertNotNull(model, 'Model should be defined when fetch is successful');\n\n return (\n <IrisGrid\n ref={irisGridRef}\n model={model}\n settings={settings}\n onStateChange={handleIrisGridChange}\n onSelectionChanged={setSelection}\n onContextMenu={onContextMenu}\n inputFilters={inputFilters}\n customFilters={customFilters}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...linkerProps}\n alwaysFetchColumns={alwaysFetchColumns}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...hydratedState}\n >\n {Plugin}\n </IrisGrid>\n );\n}\n\nexport default GridWidgetPlugin;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"GridWidgetPlugin.js","names":["useCallback","useMemo","useRef","usePersistentState","IrisGrid","IrisGridCacheUtils","IrisGridUtils","isIrisGridTableModelTemplate","useSelector","getSettings","LoadingOverlay","useLayoutManager","useListener","getErrorMessage","useApi","useIrisGridModel","useDashboardColumnFilters","InputFilterEvent","useGridLinker","jsx","_jsx","GridWidgetPlugin","_ref","fetch","settings","eventHub","fetchResult","dh","irisGridUtils","state","setState","undefined","version","type","initialState","hydratedState","status","current","_objectSpread","hydrateIrisGridState","model","hydrateGridState","dehydrateIrisGridState","makeMemoizedCombinedGridStateDehydrator","handleIrisGridChange","irisGridState","gridState","newState","inputFilters","columns","table","irisGridRef","linkerProps","handleClearAllFilters","clearAllFilters","CLEAR_ALL_FILTERS","isLoading","errorMessage","error","ref","onStateChange"],"sources":["../src/GridWidgetPlugin.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef } from 'react';\nimport {\n type WidgetComponentProps,\n usePersistentState,\n} from '@deephaven/plugin';\nimport { type dh as DhType } from '@deephaven/jsapi-types';\nimport {\n type DehydratedGridState,\n type DehydratedIrisGridState,\n IrisGrid,\n IrisGridCacheUtils,\n type IrisGridState,\n type IrisGridType,\n IrisGridUtils,\n isIrisGridTableModelTemplate,\n} from '@deephaven/iris-grid';\nimport { useSelector } from 'react-redux';\nimport { getSettings, type RootState } from '@deephaven/redux';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { useLayoutManager, useListener } from '@deephaven/dashboard';\nimport { getErrorMessage } from '@deephaven/utils';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { type GridState } from '@deephaven/grid';\nimport { useIrisGridModel } from './useIrisGridModel';\nimport useDashboardColumnFilters from './useDashboardColumnFilters';\nimport { InputFilterEvent } from './events';\nimport useGridLinker from './useGridLinker';\n\nexport function GridWidgetPlugin({\n fetch,\n}: WidgetComponentProps<DhType.Table>): JSX.Element | null {\n const settings = useSelector(getSettings<RootState>);\n const { eventHub } = useLayoutManager();\n\n const fetchResult = useIrisGridModel(fetch);\n\n const dh = useApi();\n const irisGridUtils = useMemo(() => new IrisGridUtils(dh), [dh]);\n\n const [state, setState] = usePersistentState<\n (DehydratedIrisGridState & DehydratedGridState) | undefined\n >(undefined, {\n version: 1,\n type: 'GridWidgetPlugin',\n });\n const initialState = useRef(state);\n const hydratedState = useMemo(() => {\n if (\n fetchResult.status !== 'success' ||\n initialState.current === undefined\n ) {\n return;\n }\n return {\n ...irisGridUtils.hydrateIrisGridState(\n fetchResult.model,\n initialState.current\n ),\n ...IrisGridUtils.hydrateGridState(\n fetchResult.model,\n initialState.current\n ),\n };\n }, [fetchResult, irisGridUtils]);\n\n const dehydrateIrisGridState = useMemo(\n () => IrisGridCacheUtils.makeMemoizedCombinedGridStateDehydrator(),\n []\n );\n\n const handleIrisGridChange = useCallback(\n (irisGridState: IrisGridState, gridState: GridState) => {\n if (\n fetchResult.status !== 'success' ||\n irisGridState == null ||\n gridState == null\n ) {\n return;\n }\n\n const newState = dehydrateIrisGridState(\n fetchResult.model,\n irisGridState,\n gridState\n );\n\n setState(newState);\n },\n [fetchResult, setState, dehydrateIrisGridState]\n );\n\n const inputFilters = useDashboardColumnFilters(\n fetchResult.status === 'success' ? fetchResult.model.columns : null,\n fetchResult.status === 'success' &&\n isIrisGridTableModelTemplate(fetchResult.model)\n ? fetchResult.model.table\n : undefined\n );\n\n const irisGridRef = useRef<IrisGridType | null>(null);\n\n const linkerProps = useGridLinker(\n fetchResult.status === 'success' ? fetchResult.model : null,\n irisGridRef.current\n );\n\n const handleClearAllFilters = useCallback(() => {\n if (irisGridRef.current == null) {\n return;\n }\n irisGridRef.current.clearAllFilters();\n }, []);\n\n useListener(\n eventHub,\n InputFilterEvent.CLEAR_ALL_FILTERS,\n handleClearAllFilters\n );\n\n if (fetchResult.status === 'loading') {\n return <LoadingOverlay isLoading />;\n }\n\n if (fetchResult.status === 'error') {\n return (\n <LoadingOverlay\n errorMessage={getErrorMessage(fetchResult.error)}\n isLoading={false}\n />\n );\n }\n\n const { model } = fetchResult;\n\n return (\n <IrisGrid\n ref={irisGridRef}\n model={model}\n settings={settings}\n onStateChange={handleIrisGridChange}\n inputFilters={inputFilters}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...linkerProps}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...hydratedState}\n />\n );\n}\n\nexport default GridWidgetPlugin;\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/dashboard-core-plugins",
3
- "version": "1.1.2-beta.5+d51277b7",
3
+ "version": "1.1.2-bisect-12.2+77850904",
4
4
  "description": "Deephaven Dashboard Core Plugins",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -22,26 +22,26 @@
22
22
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
23
23
  },
24
24
  "dependencies": {
25
- "@deephaven/chart": "^1.1.2-beta.5+d51277b7",
26
- "@deephaven/components": "^1.1.2-beta.5+d51277b7",
27
- "@deephaven/console": "^1.1.2-beta.5+d51277b7",
28
- "@deephaven/dashboard": "^1.1.2-beta.5+d51277b7",
29
- "@deephaven/file-explorer": "^1.1.2-beta.5+d51277b7",
30
- "@deephaven/filters": "^1.1.2-beta.5+d51277b7",
31
- "@deephaven/golden-layout": "^1.1.2-beta.5+d51277b7",
32
- "@deephaven/grid": "^1.1.2-beta.5+d51277b7",
33
- "@deephaven/icons": "^1.1.2-beta.5+d51277b7",
34
- "@deephaven/iris-grid": "^1.1.2-beta.5+d51277b7",
35
- "@deephaven/jsapi-bootstrap": "^1.1.2-beta.5+d51277b7",
36
- "@deephaven/jsapi-components": "^1.1.2-beta.5+d51277b7",
25
+ "@deephaven/chart": "^1.1.2-bisect-12.2+77850904",
26
+ "@deephaven/components": "^1.1.2-bisect-12.2+77850904",
27
+ "@deephaven/console": "^1.1.2-bisect-12.2+77850904",
28
+ "@deephaven/dashboard": "^1.1.2-bisect-12.2+77850904",
29
+ "@deephaven/file-explorer": "^1.1.2-bisect-12.2+77850904",
30
+ "@deephaven/filters": "^1.1.2-bisect-12.2+77850904",
31
+ "@deephaven/golden-layout": "^1.1.2-bisect-12.2+77850904",
32
+ "@deephaven/grid": "^1.1.2-bisect-12.2+77850904",
33
+ "@deephaven/icons": "^1.1.2-bisect-12.2+77850904",
34
+ "@deephaven/iris-grid": "^1.1.2-bisect-12.2+77850904",
35
+ "@deephaven/jsapi-bootstrap": "^1.1.2-bisect-12.2+77850904",
36
+ "@deephaven/jsapi-components": "^1.1.2-bisect-12.2+77850904",
37
37
  "@deephaven/jsapi-types": "^1.0.0-dev0.39.4",
38
- "@deephaven/jsapi-utils": "^1.1.2-beta.5+d51277b7",
39
- "@deephaven/log": "^1.1.2-beta.5+d51277b7",
40
- "@deephaven/plugin": "^1.1.2-beta.5+d51277b7",
41
- "@deephaven/react-hooks": "^1.1.2-beta.5+d51277b7",
42
- "@deephaven/redux": "^1.1.2-beta.5+d51277b7",
43
- "@deephaven/storage": "^1.1.2-beta.5+d51277b7",
44
- "@deephaven/utils": "^1.1.2-beta.5+d51277b7",
38
+ "@deephaven/jsapi-utils": "^1.1.2-bisect-12.2+77850904",
39
+ "@deephaven/log": "^1.1.2-bisect-12.2+77850904",
40
+ "@deephaven/plugin": "^1.1.2-bisect-12.2+77850904",
41
+ "@deephaven/react-hooks": "^1.1.2-bisect-12.2+77850904",
42
+ "@deephaven/redux": "^1.1.2-bisect-12.2+77850904",
43
+ "@deephaven/storage": "^1.1.2-bisect-12.2+77850904",
44
+ "@deephaven/utils": "^1.1.2-bisect-12.2+77850904",
45
45
  "@fortawesome/react-fontawesome": "^0.2.0",
46
46
  "classnames": "^2.3.1",
47
47
  "fast-deep-equal": "^3.1.3",
@@ -65,9 +65,9 @@
65
65
  "react-redux": "^7.2.4"
66
66
  },
67
67
  "devDependencies": {
68
- "@deephaven/jsapi-shim": "^1.1.2-beta.5+d51277b7",
69
- "@deephaven/mocks": "^1.1.2-beta.5+d51277b7",
70
- "@deephaven/test-utils": "^1.1.2-beta.5+d51277b7"
68
+ "@deephaven/jsapi-shim": "^1.1.2-bisect-12.2+77850904",
69
+ "@deephaven/mocks": "^1.1.2-bisect-12.2+77850904",
70
+ "@deephaven/test-utils": "^1.1.2-bisect-12.2+77850904"
71
71
  },
72
72
  "files": [
73
73
  "dist",
@@ -79,5 +79,5 @@
79
79
  "publishConfig": {
80
80
  "access": "public"
81
81
  },
82
- "gitHead": "d51277b746d24fd4f2a0f40e030496863fba7765"
82
+ "gitHead": "77850904bd6b121fcf1bf18f24a7525dc9275e5e"
83
83
  }
@@ -1,8 +0,0 @@
1
- import { type TablePluginProps, type TablePluginElement } from '@deephaven/plugin';
2
- import { type IrisGridType } from '@deephaven/iris-grid';
3
- export declare const TablePluginWrapper: import("react").ForwardRefExoticComponent<Pick<TablePluginProps<unknown>, "filter" | "model" | "selectedRanges" | "onStateChange" | "pluginState" | "fetchColumns"> & {
4
- name: string;
5
- irisGridRef: React.MutableRefObject<IrisGridType | null>;
6
- } & import("react").RefAttributes<TablePluginElement>>;
7
- export default TablePluginWrapper;
8
- //# sourceMappingURL=TablePluginWrapper.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TablePluginWrapper.d.ts","sourceRoot":"","sources":["../src/TablePluginWrapper.tsx"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACxB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQzD,eAAO,MAAM,kBAAkB;UAoBnB,MAAM;iBACC,KAAK,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC;sDAmD7D,CAAC;AAIF,eAAe,kBAAkB,CAAC"}
@@ -1,55 +0,0 @@
1
- import { forwardRef, useMemo } from 'react';
2
- import { LayoutUtils, useLayoutManager, usePanelId } from '@deephaven/dashboard';
3
- import useLoadTablePlugin from "./useLoadTablePlugin.js";
4
- import { jsx as _jsx } from "react/jsx-runtime";
5
- export var TablePluginWrapper = /*#__PURE__*/forwardRef((_ref, ref) => {
6
- var {
7
- name,
8
- model,
9
- filter,
10
- fetchColumns,
11
- selectedRanges,
12
- irisGridRef,
13
- pluginState,
14
- onStateChange
15
- } = _ref;
16
- var loadPlugin = useLoadTablePlugin();
17
- var Plugin = useMemo(() => loadPlugin(name), [loadPlugin, name]);
18
- var layoutManager = useLayoutManager();
19
- var panelId = usePanelId();
20
- var panelName = useMemo(() => {
21
- var _panelItem$config$tit;
22
- if (panelId == null) {
23
- return 'unknown';
24
- }
25
- var panelItem = LayoutUtils.getContentItemById(layoutManager.root, panelId);
26
- return (_panelItem$config$tit = panelItem === null || panelItem === void 0 ? void 0 : panelItem.config.title) !== null && _panelItem$config$tit !== void 0 ? _panelItem$config$tit : 'unknown';
27
- }, [layoutManager.root, panelId]);
28
- var panel = useMemo(() => ({
29
- irisGrid: irisGridRef,
30
- getTableName: () => panelName
31
- }), [irisGridRef, panelName]);
32
- return /*#__PURE__*/_jsx("div", {
33
- className: "iris-grid-plugin",
34
- children: /*#__PURE__*/_jsx(Plugin, {
35
- ref: ref,
36
- filter: filter,
37
- fetchColumns: fetchColumns,
38
- model: model,
39
- table: model.table,
40
- tableName: panelName,
41
- selectedRanges: selectedRanges,
42
- onStateChange: onStateChange,
43
- pluginState: pluginState
44
- // Mimic the panel containing `irisGrid.current` for backwards compatibility
45
- // since we don't have an IrisGridPanel to use here.
46
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
47
- // @ts-ignore
48
- ,
49
- panel: panel
50
- })
51
- });
52
- });
53
- TablePluginWrapper.displayName = 'TablePluginWrapper';
54
- export default TablePluginWrapper;
55
- //# sourceMappingURL=TablePluginWrapper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TablePluginWrapper.js","names":["forwardRef","useMemo","LayoutUtils","useLayoutManager","usePanelId","useLoadTablePlugin","jsx","_jsx","TablePluginWrapper","_ref","ref","name","model","filter","fetchColumns","selectedRanges","irisGridRef","pluginState","onStateChange","loadPlugin","Plugin","layoutManager","panelId","panelName","_panelItem$config$tit","panelItem","getContentItemById","root","config","title","panel","irisGrid","getTableName","className","children","table","tableName","displayName"],"sources":["../src/TablePluginWrapper.tsx"],"sourcesContent":["import { forwardRef, useMemo } from 'react';\nimport {\n type TablePluginProps,\n type TablePluginElement,\n} from '@deephaven/plugin';\nimport { type IrisGridType } from '@deephaven/iris-grid';\nimport {\n LayoutUtils,\n useLayoutManager,\n usePanelId,\n} from '@deephaven/dashboard';\nimport useLoadTablePlugin from './useLoadTablePlugin';\n\nexport const TablePluginWrapper = forwardRef(\n (\n {\n name,\n model,\n filter,\n fetchColumns,\n selectedRanges,\n irisGridRef,\n pluginState,\n onStateChange,\n }: Pick<\n TablePluginProps,\n | 'model'\n | 'filter'\n | 'fetchColumns'\n | 'selectedRanges'\n | 'pluginState'\n | 'onStateChange'\n > & {\n name: string;\n irisGridRef: React.MutableRefObject<IrisGridType | null>;\n },\n ref: React.Ref<TablePluginElement>\n ): JSX.Element | null => {\n const loadPlugin = useLoadTablePlugin();\n const Plugin = useMemo(() => loadPlugin(name), [loadPlugin, name]);\n\n const layoutManager = useLayoutManager();\n const panelId = usePanelId();\n const panelName = useMemo(() => {\n if (panelId == null) {\n return 'unknown';\n }\n\n const panelItem = LayoutUtils.getContentItemById(\n layoutManager.root,\n panelId\n );\n\n return panelItem?.config.title ?? 'unknown';\n }, [layoutManager.root, panelId]);\n\n const panel = useMemo(\n () => ({\n irisGrid: irisGridRef,\n getTableName: () => panelName,\n }),\n [irisGridRef, panelName]\n );\n\n return (\n <div className=\"iris-grid-plugin\">\n <Plugin\n ref={ref}\n filter={filter}\n fetchColumns={fetchColumns}\n model={model}\n table={model.table}\n tableName={panelName}\n selectedRanges={selectedRanges}\n onStateChange={onStateChange}\n pluginState={pluginState}\n // Mimic the panel containing `irisGrid.current` for backwards compatibility\n // since we don't have an IrisGridPanel to use here.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n panel={panel}\n />\n </div>\n );\n }\n);\n\nTablePluginWrapper.displayName = 'TablePluginWrapper';\n\nexport default TablePluginWrapper;\n"],"mappings":"AAAA,SAASA,UAAU,EAAEC,OAAO,QAAQ,OAAO;AAM3C,SACEC,WAAW,EACXC,gBAAgB,EAChBC,UAAU,QACL,sBAAsB;AAAC,OACvBC,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAEzB,OAAO,IAAMC,kBAAkB,gBAAGR,UAAU,CAC1C,CAAAS,IAAA,EAsBEC,GAAkC,KACX;EAAA,IAtBvB;IACEC,IAAI;IACJC,KAAK;IACLC,MAAM;IACNC,YAAY;IACZC,cAAc;IACdC,WAAW;IACXC,WAAW;IACXC;EAYF,CAAC,GAAAT,IAAA;EAGD,IAAMU,UAAU,GAAGd,kBAAkB,CAAC,CAAC;EACvC,IAAMe,MAAM,GAAGnB,OAAO,CAAC,MAAMkB,UAAU,CAACR,IAAI,CAAC,EAAE,CAACQ,UAAU,EAAER,IAAI,CAAC,CAAC;EAElE,IAAMU,aAAa,GAAGlB,gBAAgB,CAAC,CAAC;EACxC,IAAMmB,OAAO,GAAGlB,UAAU,CAAC,CAAC;EAC5B,IAAMmB,SAAS,GAAGtB,OAAO,CAAC,MAAM;IAAA,IAAAuB,qBAAA;IAC9B,IAAIF,OAAO,IAAI,IAAI,EAAE;MACnB,OAAO,SAAS;IAClB;IAEA,IAAMG,SAAS,GAAGvB,WAAW,CAACwB,kBAAkB,CAC9CL,aAAa,CAACM,IAAI,EAClBL,OACF,CAAC;IAED,QAAAE,qBAAA,GAAOC,SAAS,aAATA,SAAS,uBAATA,SAAS,CAAEG,MAAM,CAACC,KAAK,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,SAAS;EAC7C,CAAC,EAAE,CAACH,aAAa,CAACM,IAAI,EAAEL,OAAO,CAAC,CAAC;EAEjC,IAAMQ,KAAK,GAAG7B,OAAO,CACnB,OAAO;IACL8B,QAAQ,EAAEf,WAAW;IACrBgB,YAAY,EAAEA,CAAA,KAAMT;EACtB,CAAC,CAAC,EACF,CAACP,WAAW,EAAEO,SAAS,CACzB,CAAC;EAED,oBACEhB,IAAA;IAAK0B,SAAS,EAAC,kBAAkB;IAAAC,QAAA,eAC/B3B,IAAA,CAACa,MAAM;MACLV,GAAG,EAAEA,GAAI;MACTG,MAAM,EAAEA,MAAO;MACfC,YAAY,EAAEA,YAAa;MAC3BF,KAAK,EAAEA,KAAM;MACbuB,KAAK,EAAEvB,KAAK,CAACuB,KAAM;MACnBC,SAAS,EAAEb,SAAU;MACrBR,cAAc,EAAEA,cAAe;MAC/BG,aAAa,EAAEA,aAAc;MAC7BD,WAAW,EAAEA;MACb;MACA;MACA;MACA;MAAA;MACAa,KAAK,EAAEA;IAAM,CACd;EAAC,CACC,CAAC;AAEV,CACF,CAAC;AAEDtB,kBAAkB,CAAC6B,WAAW,GAAG,oBAAoB;AAErD,eAAe7B,kBAAkB","ignoreList":[]}
@@ -1,36 +0,0 @@
1
- import { type IrisGridModel, type IrisGridProps, type IrisGridUtils, type IrisGridType } from '@deephaven/iris-grid';
2
- import { type GridRange } from '@deephaven/grid';
3
- interface UseTablePluginProps {
4
- /**
5
- * The IrisGrid model for this plugin.
6
- * Currently only IrisGridTableModelTemplate types are supported.
7
- * Other IrisGrid model types will be ignored for now.
8
- */
9
- model: IrisGridModel | undefined;
10
- /**
11
- * A reference to the IrisGrid component instance.
12
- */
13
- irisGridRef: React.MutableRefObject<IrisGridType | null>;
14
- /**
15
- * A IrisGridUtils instance.
16
- */
17
- irisGridUtils: IrisGridUtils;
18
- /**
19
- * The currently selected ranges in the grid.
20
- */
21
- selectedRanges: readonly GridRange[] | undefined;
22
- }
23
- /**
24
- * Hook to get a TablePlugin component and the IrisGrid props derived from the plugin.
25
- * The returned props should be passed to the IrisGrid component or merged with other sources
26
- * of the same props.
27
- * @param props The properties for the table plugin. The props object itself does not need to be memoized,
28
- * but the values inside it should be stable to avoid unnecessary re-renders.
29
- * @returns Object containing `Plugin` key which is the Plugin component.
30
- * The remaining object keys are IrisGrid props associated with the plugin.
31
- */
32
- export declare function useTablePlugin({ model, irisGridRef, irisGridUtils, selectedRanges, }: UseTablePluginProps): {
33
- Plugin: JSX.Element | null;
34
- } & Pick<IrisGridProps, 'customFilters' | 'alwaysFetchColumns' | 'onContextMenu'>;
35
- export default useTablePlugin;
36
- //# sourceMappingURL=useTablePlugin.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTablePlugin.d.ts","sourceRoot":"","sources":["../src/useTablePlugin.tsx"],"names":[],"mappings":"AAEA,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAElB,KAAK,YAAY,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,UAAU,mBAAmB;IAC3B;;;;OAIG;IACH,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;IACjC;;OAEG;IACH,WAAW,EAAE,KAAK,CAAC,gBAAgB,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IACzD;;OAEG;IACH,aAAa,EAAE,aAAa,CAAC;IAC7B;;OAEG;IACH,cAAc,EAAE,SAAS,SAAS,EAAE,GAAG,SAAS,CAAC;CAClD;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,WAAW,EACX,aAAa,EACb,cAAc,GACf,EAAE,mBAAmB,GAAG;IACvB,MAAM,EAAE,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;CAC5B,GAAG,IAAI,CACN,aAAa,EACb,eAAe,GAAG,oBAAoB,GAAG,eAAe,CACzD,CAqDA;AAED,eAAe,cAAc,CAAC"}
@@ -1,55 +0,0 @@
1
- import { useCallback, useMemo, useRef, useState } from 'react';
2
- import { usePersistentState } from '@deephaven/plugin';
3
- import { isIrisGridTableModelTemplate } from '@deephaven/iris-grid';
4
- import { TablePluginWrapper } from "./TablePluginWrapper.js";
5
- import { jsx as _jsx } from "react/jsx-runtime";
6
- /**
7
- * Hook to get a TablePlugin component and the IrisGrid props derived from the plugin.
8
- * The returned props should be passed to the IrisGrid component or merged with other sources
9
- * of the same props.
10
- * @param props The properties for the table plugin. The props object itself does not need to be memoized,
11
- * but the values inside it should be stable to avoid unnecessary re-renders.
12
- * @returns Object containing `Plugin` key which is the Plugin component.
13
- * The remaining object keys are IrisGrid props associated with the plugin.
14
- */
15
- export function useTablePlugin(_ref) {
16
- var {
17
- model,
18
- irisGridRef,
19
- irisGridUtils,
20
- selectedRanges
21
- } = _ref;
22
- var [pluginFilters, setPluginFilters] = useState([]);
23
- var customFilters = useMemo(() => model != null && isIrisGridTableModelTemplate(model) ? irisGridUtils.getFiltersFromInputFilters(model.table.columns, pluginFilters, model.formatter.timeZone) : [], [model, irisGridUtils, pluginFilters]);
24
- var [alwaysFetchColumns, setAlwaysFetchColumns] = useState([]);
25
- var pluginRef = useRef(null);
26
- var [pluginState, setPluginState] = usePersistentState(undefined, {
27
- version: 1,
28
- // pluginName will be undefined on first call when re-hydrating,
29
- // so use a constant type to avoid re-hydration issues with the persistent state type
30
- type: 'GridWidgetTablePluginState'
31
- });
32
- var Plugin = useMemo(() => model != null && isIrisGridTableModelTemplate(model) && model.table.pluginName != null ? /*#__PURE__*/_jsx(TablePluginWrapper, {
33
- ref: pluginRef,
34
- name: model.table.pluginName,
35
- model: model,
36
- filter: setPluginFilters,
37
- fetchColumns: setAlwaysFetchColumns,
38
- selectedRanges: selectedRanges,
39
- irisGridRef: irisGridRef,
40
- pluginState: pluginState,
41
- onStateChange: setPluginState
42
- }) : null, [model, selectedRanges, irisGridRef, pluginState, setPluginState]);
43
- var onContextMenu = useCallback(data => {
44
- var _pluginRef$current$ge, _pluginRef$current, _pluginRef$current$ge2;
45
- return (_pluginRef$current$ge = (_pluginRef$current = pluginRef.current) === null || _pluginRef$current === void 0 ? void 0 : (_pluginRef$current$ge2 = _pluginRef$current.getMenu) === null || _pluginRef$current$ge2 === void 0 ? void 0 : _pluginRef$current$ge2.call(_pluginRef$current, data)) !== null && _pluginRef$current$ge !== void 0 ? _pluginRef$current$ge : [];
46
- }, []);
47
- return {
48
- Plugin,
49
- customFilters,
50
- alwaysFetchColumns,
51
- onContextMenu
52
- };
53
- }
54
- export default useTablePlugin;
55
- //# sourceMappingURL=useTablePlugin.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTablePlugin.js","names":["useCallback","useMemo","useRef","useState","usePersistentState","isIrisGridTableModelTemplate","TablePluginWrapper","jsx","_jsx","useTablePlugin","_ref","model","irisGridRef","irisGridUtils","selectedRanges","pluginFilters","setPluginFilters","customFilters","getFiltersFromInputFilters","table","columns","formatter","timeZone","alwaysFetchColumns","setAlwaysFetchColumns","pluginRef","pluginState","setPluginState","undefined","version","type","Plugin","pluginName","ref","name","filter","fetchColumns","onStateChange","onContextMenu","data","_pluginRef$current$ge","_pluginRef$current","_pluginRef$current$ge2","current","getMenu","call"],"sources":["../src/useTablePlugin.tsx"],"sourcesContent":["import { useCallback, useMemo, useRef, useState } from 'react';\nimport { usePersistentState, type TablePluginElement } from '@deephaven/plugin';\nimport {\n type InputFilter,\n type IrisGridModel,\n type IrisGridProps,\n type IrisGridUtils,\n isIrisGridTableModelTemplate,\n type IrisGridType,\n type IrisGridContextMenuData,\n} from '@deephaven/iris-grid';\nimport { type GridRange } from '@deephaven/grid';\nimport { TablePluginWrapper } from './TablePluginWrapper';\n\ninterface UseTablePluginProps {\n /**\n * The IrisGrid model for this plugin.\n * Currently only IrisGridTableModelTemplate types are supported.\n * Other IrisGrid model types will be ignored for now.\n */\n model: IrisGridModel | undefined;\n /**\n * A reference to the IrisGrid component instance.\n */\n irisGridRef: React.MutableRefObject<IrisGridType | null>;\n /**\n * A IrisGridUtils instance.\n */\n irisGridUtils: IrisGridUtils;\n /**\n * The currently selected ranges in the grid.\n */\n selectedRanges: readonly GridRange[] | undefined;\n}\n\n/**\n * Hook to get a TablePlugin component and the IrisGrid props derived from the plugin.\n * The returned props should be passed to the IrisGrid component or merged with other sources\n * of the same props.\n * @param props The properties for the table plugin. The props object itself does not need to be memoized,\n * but the values inside it should be stable to avoid unnecessary re-renders.\n * @returns Object containing `Plugin` key which is the Plugin component.\n * The remaining object keys are IrisGrid props associated with the plugin.\n */\nexport function useTablePlugin({\n model,\n irisGridRef,\n irisGridUtils,\n selectedRanges,\n}: UseTablePluginProps): {\n Plugin: JSX.Element | null;\n} & Pick<\n IrisGridProps,\n 'customFilters' | 'alwaysFetchColumns' | 'onContextMenu'\n> {\n const [pluginFilters, setPluginFilters] = useState<InputFilter[]>([]);\n const customFilters = useMemo(\n () =>\n model != null && isIrisGridTableModelTemplate(model)\n ? irisGridUtils.getFiltersFromInputFilters(\n model.table.columns,\n pluginFilters,\n model.formatter.timeZone\n )\n : [],\n [model, irisGridUtils, pluginFilters]\n );\n const [alwaysFetchColumns, setAlwaysFetchColumns] = useState<string[]>([]);\n const pluginRef = useRef<TablePluginElement | null>(null);\n const [pluginState, setPluginState] = usePersistentState<unknown>(undefined, {\n version: 1,\n // pluginName will be undefined on first call when re-hydrating,\n // so use a constant type to avoid re-hydration issues with the persistent state type\n type: 'GridWidgetTablePluginState',\n });\n\n const Plugin = useMemo(\n () =>\n model != null &&\n isIrisGridTableModelTemplate(model) &&\n model.table.pluginName != null ? (\n <TablePluginWrapper\n ref={pluginRef}\n name={model.table.pluginName}\n model={model}\n filter={setPluginFilters}\n fetchColumns={setAlwaysFetchColumns}\n selectedRanges={selectedRanges}\n irisGridRef={irisGridRef}\n pluginState={pluginState}\n onStateChange={setPluginState}\n />\n ) : null,\n [model, selectedRanges, irisGridRef, pluginState, setPluginState]\n );\n\n const onContextMenu = useCallback(\n (data: IrisGridContextMenuData) => pluginRef.current?.getMenu?.(data) ?? [],\n []\n );\n\n return {\n Plugin,\n customFilters,\n alwaysFetchColumns,\n onContextMenu,\n };\n}\n\nexport default useTablePlugin;\n"],"mappings":"AAAA,SAASA,WAAW,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAC9D,SAASC,kBAAkB,QAAiC,mBAAmB;AAC/E,SAKEC,4BAA4B,QAGvB,sBAAsB;AAAC,SAErBC,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAuB3B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAAC,IAAA,EAU5B;EAAA,IAV6B;IAC7BC,KAAK;IACLC,WAAW;IACXC,aAAa;IACbC;EACmB,CAAC,GAAAJ,IAAA;EAMpB,IAAM,CAACK,aAAa,EAAEC,gBAAgB,CAAC,GAAGb,QAAQ,CAAgB,EAAE,CAAC;EACrE,IAAMc,aAAa,GAAGhB,OAAO,CAC3B,MACEU,KAAK,IAAI,IAAI,IAAIN,4BAA4B,CAACM,KAAK,CAAC,GAChDE,aAAa,CAACK,0BAA0B,CACtCP,KAAK,CAACQ,KAAK,CAACC,OAAO,EACnBL,aAAa,EACbJ,KAAK,CAACU,SAAS,CAACC,QAClB,CAAC,GACD,EAAE,EACR,CAACX,KAAK,EAAEE,aAAa,EAAEE,aAAa,CACtC,CAAC;EACD,IAAM,CAACQ,kBAAkB,EAAEC,qBAAqB,CAAC,GAAGrB,QAAQ,CAAW,EAAE,CAAC;EAC1E,IAAMsB,SAAS,GAAGvB,MAAM,CAA4B,IAAI,CAAC;EACzD,IAAM,CAACwB,WAAW,EAAEC,cAAc,CAAC,GAAGvB,kBAAkB,CAAUwB,SAAS,EAAE;IAC3EC,OAAO,EAAE,CAAC;IACV;IACA;IACAC,IAAI,EAAE;EACR,CAAC,CAAC;EAEF,IAAMC,MAAM,GAAG9B,OAAO,CACpB,MACEU,KAAK,IAAI,IAAI,IACbN,4BAA4B,CAACM,KAAK,CAAC,IACnCA,KAAK,CAACQ,KAAK,CAACa,UAAU,IAAI,IAAI,gBAC5BxB,IAAA,CAACF,kBAAkB;IACjB2B,GAAG,EAAER,SAAU;IACfS,IAAI,EAAEvB,KAAK,CAACQ,KAAK,CAACa,UAAW;IAC7BrB,KAAK,EAAEA,KAAM;IACbwB,MAAM,EAAEnB,gBAAiB;IACzBoB,YAAY,EAAEZ,qBAAsB;IACpCV,cAAc,EAAEA,cAAe;IAC/BF,WAAW,EAAEA,WAAY;IACzBc,WAAW,EAAEA,WAAY;IACzBW,aAAa,EAAEV;EAAe,CAC/B,CAAC,GACA,IAAI,EACV,CAAChB,KAAK,EAAEG,cAAc,EAAEF,WAAW,EAAEc,WAAW,EAAEC,cAAc,CAClE,CAAC;EAED,IAAMW,aAAa,GAAGtC,WAAW,CAC9BuC,IAA6B;IAAA,IAAAC,qBAAA,EAAAC,kBAAA,EAAAC,sBAAA;IAAA,QAAAF,qBAAA,IAAAC,kBAAA,GAAKhB,SAAS,CAACkB,OAAO,cAAAF,kBAAA,wBAAAC,sBAAA,GAAjBD,kBAAA,CAAmBG,OAAO,cAAAF,sBAAA,uBAA1BA,sBAAA,CAAAG,IAAA,CAAAJ,kBAAA,EAA6BF,IAAI,CAAC,cAAAC,qBAAA,cAAAA,qBAAA,GAAI,EAAE;EAAA,GAC3E,EACF,CAAC;EAED,OAAO;IACLT,MAAM;IACNd,aAAa;IACbM,kBAAkB;IAClBe;EACF,CAAC;AACH;AAEA,eAAe7B,cAAc","ignoreList":[]}