@deephaven/dashboard-core-plugins 0.60.1-object-fetcher.6 → 0.60.1-object-fetcher.12

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 (64) hide show
  1. package/dist/ChartPanelPlugin.d.ts +2 -6
  2. package/dist/ChartPanelPlugin.d.ts.map +1 -1
  3. package/dist/ChartPanelPlugin.js +3 -3
  4. package/dist/ChartPanelPlugin.js.map +1 -1
  5. package/dist/ChartPluginConfig.d.ts +1 -1
  6. package/dist/ChartPluginConfig.d.ts.map +1 -1
  7. package/dist/ChartPluginConfig.js.map +1 -1
  8. package/dist/ChartWidgetPlugin.d.ts +2 -1
  9. package/dist/ChartWidgetPlugin.d.ts.map +1 -1
  10. package/dist/ChartWidgetPlugin.js.map +1 -1
  11. package/dist/GridPanelPlugin.d.ts +2 -6
  12. package/dist/GridPanelPlugin.d.ts.map +1 -1
  13. package/dist/GridPanelPlugin.js +0 -2
  14. package/dist/GridPanelPlugin.js.map +1 -1
  15. package/dist/GridWidgetPlugin.d.ts +2 -1
  16. package/dist/GridWidgetPlugin.d.ts.map +1 -1
  17. package/dist/GridWidgetPlugin.js.map +1 -1
  18. package/dist/PandasPanelPlugin.d.ts +2 -6
  19. package/dist/PandasPanelPlugin.d.ts.map +1 -1
  20. package/dist/PandasPluginConfig.d.ts +1 -1
  21. package/dist/PandasPluginConfig.d.ts.map +1 -1
  22. package/dist/PandasPluginConfig.js.map +1 -1
  23. package/dist/PandasWidgetPlugin.d.ts +2 -1
  24. package/dist/PandasWidgetPlugin.d.ts.map +1 -1
  25. package/dist/PandasWidgetPlugin.js.map +1 -1
  26. package/dist/WidgetLoaderPlugin.js +5 -5
  27. package/dist/WidgetLoaderPlugin.js.map +1 -1
  28. package/dist/controls/dropdown-filter/DropdownFilter.css +1 -1
  29. package/dist/controls/dropdown-filter/DropdownFilter.css.map +1 -1
  30. package/dist/controls/input-filter/InputFilter.css +1 -1
  31. package/dist/controls/input-filter/InputFilter.css.map +1 -1
  32. package/dist/linker/LinkerLink.css.map +1 -1
  33. package/dist/linker/LinkerOverlayContent.css.map +1 -1
  34. package/dist/panels/ChartColumnSelectorOverlay.css.map +1 -1
  35. package/dist/panels/ChartFilterOverlay.css.map +1 -1
  36. package/dist/panels/ChartPanel.css +1 -1
  37. package/dist/panels/ChartPanel.css.map +1 -1
  38. package/dist/panels/CommandHistoryPanel.css.map +1 -1
  39. package/dist/panels/ConsolePanel.css.map +1 -1
  40. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  41. package/dist/panels/ConsolePanel.js +3 -5
  42. package/dist/panels/ConsolePanel.js.map +1 -1
  43. package/dist/panels/DropdownFilterPanel.css.map +1 -1
  44. package/dist/panels/FilterSetManager.css +1 -1
  45. package/dist/panels/FilterSetManager.css.map +1 -1
  46. package/dist/panels/FilterSetManagerPanel.css.map +1 -1
  47. package/dist/panels/IrisGridPanel.css.map +1 -1
  48. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  49. package/dist/panels/IrisGridPanel.js +1 -1
  50. package/dist/panels/IrisGridPanel.js.map +1 -1
  51. package/dist/panels/LogPanel.css.map +1 -1
  52. package/dist/panels/MarkdownNotebook.css +1 -1
  53. package/dist/panels/MarkdownNotebook.css.map +1 -1
  54. package/dist/panels/MarkdownPanel.css.map +1 -1
  55. package/dist/panels/NotebookPanel.css.map +1 -1
  56. package/dist/panels/PandasPanel.css.map +1 -1
  57. package/dist/panels/WidgetPanel.css +1 -1
  58. package/dist/panels/WidgetPanel.css.map +1 -1
  59. package/dist/panels/WidgetPanelTooltip.css.map +1 -1
  60. package/dist/useHydrateGrid.d.ts +8 -1
  61. package/dist/useHydrateGrid.d.ts.map +1 -1
  62. package/dist/useHydrateGrid.js +7 -0
  63. package/dist/useHydrateGrid.js.map +1 -1
  64. package/package.json +24 -24
@@ -1,11 +1,7 @@
1
1
  /// <reference types="react" />
2
2
  import type { Figure } from '@deephaven/jsapi-types';
3
+ import { WidgetPanelProps } from '@deephaven/plugin';
3
4
  import { type ChartPanel } from './panels/ChartPanel';
4
- export declare const ChartPanelPlugin: import("react").ForwardRefExoticComponent<import("@deephaven/plugin").WidgetComponentProps<Figure> & {
5
- metadata?: import("@deephaven/jsapi-types").VariableDescriptor<string> | undefined;
6
- localDashboardId: string;
7
- glContainer: import("@deephaven/golden-layout").ItemContainer<import("@deephaven/golden-layout").ComponentConfig>;
8
- glEventHub: import("packages/golden-layout/src/utils/EventEmitter").default;
9
- } & import("react").RefAttributes<ChartPanel>>;
5
+ export declare const ChartPanelPlugin: import("react").ForwardRefExoticComponent<WidgetPanelProps<Figure> & import("react").RefAttributes<ChartPanel>>;
10
6
  export default ChartPanelPlugin;
11
7
  //# sourceMappingURL=ChartPanelPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPanelPlugin.d.ts","sourceRoot":"","sources":["../src/ChartPanelPlugin.tsx"],"names":[],"mappings":";AAYA,OAAO,KAAK,EAAgB,MAAM,EAAS,MAAM,wBAAwB,CAAC;AAW1E,OAA4B,EAC1B,KAAK,UAAU,EAEhB,MAAM,qBAAqB,CAAC;AAwF7B,eAAO,MAAM,gBAAgB;;;;;8CA6C5B,CAAC;AAIF,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"ChartPanelPlugin.d.ts","sourceRoot":"","sources":["../src/ChartPanelPlugin.tsx"],"names":[],"mappings":";AAYA,OAAO,KAAK,EAAgB,MAAM,EAAS,MAAM,wBAAwB,CAAC;AAG1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAA4B,EAC1B,KAAK,UAAU,EAEhB,MAAM,qBAAqB,CAAC;AAwF7B,eAAO,MAAM,gBAAgB,iHA6C5B,CAAC;AAIF,eAAe,gBAAgB,CAAC"}
@@ -79,7 +79,7 @@ function _createChartModel() {
79
79
  export var ChartPanelPlugin = /*#__PURE__*/forwardRef((props, ref) => {
80
80
  var dh = useApi();
81
81
  var chartTheme = useChartTheme();
82
- var objectFetcher = useObjectFetcher();
82
+ var fetchObject = useObjectFetcher();
83
83
  var panelState = isChartPanelDehydratedProps(props) ? props.panelState : undefined;
84
84
  var {
85
85
  fetch: panelFetch,
@@ -93,9 +93,9 @@ export var ChartPanelPlugin = /*#__PURE__*/forwardRef((props, ref) => {
93
93
  if (metadata == null) {
94
94
  throw new Error('Metadata is required for chart panel');
95
95
  }
96
- return createChartModel(dh, chartTheme, objectFetcher, metadata, panelFetch, panelState);
96
+ return createChartModel(dh, chartTheme, fetchObject, metadata, panelFetch, panelState);
97
97
  }
98
- }), [metadata, localDashboardId, dh, chartTheme, objectFetcher, panelFetch, panelState]);
98
+ }), [metadata, localDashboardId, dh, chartTheme, fetchObject, panelFetch, panelState]);
99
99
 
100
100
  // eslint-disable-next-line react/jsx-props-no-spreading
101
101
  return /*#__PURE__*/_jsx(ConnectedChartPanel, _objectSpread(_objectSpread({
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPanelPlugin.js","names":["forwardRef","useMemo","useApi","useObjectFetcher","ChartModelFactory","useChartTheme","IrisGridUtils","getTimeZone","store","isChartPanelDehydratedProps","isChartPanelFigureMetadata","isChartPanelTableMetadata","ConnectedChartPanel","jsx","_jsx","createChartModel","_x","_x2","_x3","_x4","_x5","_x6","_createChartModel","apply","arguments","_asyncToGenerator","dh","chartTheme","fetchObject","metadata","fetchFigure","panelState","settings","tableName","figureName","tableSettings","table","undefined","figure","name","_objectSpread","makeModel","type","VariableType","FIGURE","descriptor","TABLE","applyTableSettings","getState","makeModelFromSettings","ChartPanelPlugin","props","ref","objectFetcher","fetch","panelFetch","localDashboardId","hydratedProps","Error","displayName"],"sources":["../src/ChartPanelPlugin.tsx"],"sourcesContent":["import { forwardRef, useMemo } from 'react';\nimport {\n ObjectFetcher,\n useApi,\n useObjectFetcher,\n} from '@deephaven/jsapi-bootstrap';\nimport {\n ChartModel,\n ChartModelFactory,\n ChartTheme,\n useChartTheme,\n} from '@deephaven/chart';\nimport type { dh as DhType, Figure, Table } from '@deephaven/jsapi-types';\nimport { IrisGridUtils } from '@deephaven/iris-grid';\nimport { getTimeZone, store } from '@deephaven/redux';\nimport { WidgetPanelProps } from '@deephaven/plugin';\nimport {\n ChartPanelMetadata,\n GLChartPanelState,\n isChartPanelDehydratedProps,\n isChartPanelFigureMetadata,\n isChartPanelTableMetadata,\n} from './panels';\nimport ConnectedChartPanel, {\n type ChartPanel,\n type ChartPanelProps,\n} from './panels/ChartPanel';\n\nasync function createChartModel(\n dh: DhType,\n chartTheme: ChartTheme,\n fetchObject: ObjectFetcher,\n metadata: ChartPanelMetadata,\n fetchFigure: () => Promise<Figure>,\n panelState?: GLChartPanelState\n): Promise<ChartModel> {\n let settings;\n let tableName;\n let figureName;\n let tableSettings;\n\n if (isChartPanelTableMetadata(metadata)) {\n settings = metadata.settings;\n tableName = metadata.table;\n figureName = undefined;\n tableSettings = metadata.tableSettings;\n } else {\n settings = {};\n tableName = '';\n figureName = isChartPanelFigureMetadata(metadata)\n ? metadata.figure\n : metadata.name;\n tableSettings = {};\n }\n if (panelState != null) {\n if (panelState.tableSettings != null) {\n tableSettings = panelState.tableSettings;\n }\n if (panelState.table != null) {\n tableName = panelState.table;\n }\n if (panelState.figure != null) {\n figureName = panelState.figure;\n }\n if (panelState.settings != null) {\n settings = {\n ...settings,\n ...panelState.settings,\n };\n }\n }\n\n if (figureName == null && tableName == null) {\n const figure = await fetchFigure();\n\n return ChartModelFactory.makeModel(dh, settings, figure, chartTheme);\n }\n\n if (figureName != null) {\n let figure: Figure;\n\n if (metadata.type === dh.VariableType.FIGURE) {\n const descriptor = {\n name: figureName,\n type: dh.VariableType.FIGURE,\n };\n figure = (await fetchObject(descriptor)) as Figure;\n } else {\n figure = await fetchFigure();\n }\n\n return ChartModelFactory.makeModel(dh, settings, figure, chartTheme);\n }\n\n const descriptor = {\n name: tableName,\n type: dh.VariableType.TABLE,\n };\n const table = (await fetchObject(descriptor)) as Table;\n new IrisGridUtils(dh).applyTableSettings(\n table,\n tableSettings,\n getTimeZone(store.getState())\n );\n\n return ChartModelFactory.makeModelFromSettings(\n dh,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n settings as any,\n table,\n chartTheme\n );\n}\n\nexport const ChartPanelPlugin = forwardRef(\n (props: WidgetPanelProps<Figure>, ref: React.Ref<ChartPanel>) => {\n const dh = useApi();\n const chartTheme = useChartTheme();\n const objectFetcher = useObjectFetcher();\n\n const panelState = isChartPanelDehydratedProps(props)\n ? (props as unknown as ChartPanelProps).panelState\n : undefined;\n\n const { fetch: panelFetch, metadata, localDashboardId } = props;\n\n const hydratedProps = useMemo(\n () => ({\n metadata: metadata as ChartPanelMetadata,\n localDashboardId,\n makeModel: () => {\n if (metadata == null) {\n throw new Error('Metadata is required for chart panel');\n }\n\n return createChartModel(\n dh,\n chartTheme,\n objectFetcher,\n metadata as ChartPanelMetadata,\n panelFetch,\n panelState\n );\n },\n }),\n [\n metadata,\n localDashboardId,\n dh,\n chartTheme,\n objectFetcher,\n panelFetch,\n panelState,\n ]\n );\n\n // eslint-disable-next-line react/jsx-props-no-spreading\n return <ConnectedChartPanel ref={ref} {...props} {...hydratedProps} />;\n }\n);\n\nChartPanelPlugin.displayName = 'ChartPanelPlugin';\n\nexport default ChartPanelPlugin;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ChartPanelPlugin.js","names":["forwardRef","useMemo","useApi","useObjectFetcher","ChartModelFactory","useChartTheme","IrisGridUtils","getTimeZone","store","isChartPanelDehydratedProps","isChartPanelFigureMetadata","isChartPanelTableMetadata","ConnectedChartPanel","jsx","_jsx","createChartModel","_x","_x2","_x3","_x4","_x5","_x6","_createChartModel","apply","arguments","_asyncToGenerator","dh","chartTheme","fetchObject","metadata","fetchFigure","panelState","settings","tableName","figureName","tableSettings","table","undefined","figure","name","_objectSpread","makeModel","type","VariableType","FIGURE","descriptor","TABLE","applyTableSettings","getState","makeModelFromSettings","ChartPanelPlugin","props","ref","fetch","panelFetch","localDashboardId","hydratedProps","Error","displayName"],"sources":["../src/ChartPanelPlugin.tsx"],"sourcesContent":["import { forwardRef, useMemo } from 'react';\nimport {\n ObjectFetcher,\n useApi,\n useObjectFetcher,\n} from '@deephaven/jsapi-bootstrap';\nimport {\n ChartModel,\n ChartModelFactory,\n ChartTheme,\n useChartTheme,\n} from '@deephaven/chart';\nimport type { dh as DhType, Figure, Table } from '@deephaven/jsapi-types';\nimport { IrisGridUtils } from '@deephaven/iris-grid';\nimport { getTimeZone, store } from '@deephaven/redux';\nimport { WidgetPanelProps } from '@deephaven/plugin';\nimport {\n ChartPanelMetadata,\n GLChartPanelState,\n isChartPanelDehydratedProps,\n isChartPanelFigureMetadata,\n isChartPanelTableMetadata,\n} from './panels';\nimport ConnectedChartPanel, {\n type ChartPanel,\n type ChartPanelProps,\n} from './panels/ChartPanel';\n\nasync function createChartModel(\n dh: DhType,\n chartTheme: ChartTheme,\n fetchObject: ObjectFetcher,\n metadata: ChartPanelMetadata,\n fetchFigure: () => Promise<Figure>,\n panelState?: GLChartPanelState\n): Promise<ChartModel> {\n let settings;\n let tableName;\n let figureName;\n let tableSettings;\n\n if (isChartPanelTableMetadata(metadata)) {\n settings = metadata.settings;\n tableName = metadata.table;\n figureName = undefined;\n tableSettings = metadata.tableSettings;\n } else {\n settings = {};\n tableName = '';\n figureName = isChartPanelFigureMetadata(metadata)\n ? metadata.figure\n : metadata.name;\n tableSettings = {};\n }\n if (panelState != null) {\n if (panelState.tableSettings != null) {\n tableSettings = panelState.tableSettings;\n }\n if (panelState.table != null) {\n tableName = panelState.table;\n }\n if (panelState.figure != null) {\n figureName = panelState.figure;\n }\n if (panelState.settings != null) {\n settings = {\n ...settings,\n ...panelState.settings,\n };\n }\n }\n\n if (figureName == null && tableName == null) {\n const figure = await fetchFigure();\n\n return ChartModelFactory.makeModel(dh, settings, figure, chartTheme);\n }\n\n if (figureName != null) {\n let figure: Figure;\n\n if (metadata.type === dh.VariableType.FIGURE) {\n const descriptor = {\n name: figureName,\n type: dh.VariableType.FIGURE,\n };\n figure = await fetchObject<Figure>(descriptor);\n } else {\n figure = await fetchFigure();\n }\n\n return ChartModelFactory.makeModel(dh, settings, figure, chartTheme);\n }\n\n const descriptor = {\n name: tableName,\n type: dh.VariableType.TABLE,\n };\n const table = (await fetchObject(descriptor)) as Table;\n new IrisGridUtils(dh).applyTableSettings(\n table,\n tableSettings,\n getTimeZone(store.getState())\n );\n\n return ChartModelFactory.makeModelFromSettings(\n dh,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n settings as any,\n table,\n chartTheme\n );\n}\n\nexport const ChartPanelPlugin = forwardRef(\n (props: WidgetPanelProps<Figure>, ref: React.Ref<ChartPanel>) => {\n const dh = useApi();\n const chartTheme = useChartTheme();\n const fetchObject = useObjectFetcher();\n\n const panelState = isChartPanelDehydratedProps(props)\n ? (props as unknown as ChartPanelProps).panelState\n : undefined;\n\n const { fetch: panelFetch, metadata, localDashboardId } = props;\n\n const hydratedProps = useMemo(\n () => ({\n metadata: metadata as ChartPanelMetadata,\n localDashboardId,\n makeModel: () => {\n if (metadata == null) {\n throw new Error('Metadata is required for chart panel');\n }\n\n return createChartModel(\n dh,\n chartTheme,\n fetchObject,\n metadata as ChartPanelMetadata,\n panelFetch,\n panelState\n );\n },\n }),\n [\n metadata,\n localDashboardId,\n dh,\n chartTheme,\n fetchObject,\n panelFetch,\n panelState,\n ]\n );\n\n // eslint-disable-next-line react/jsx-props-no-spreading\n return <ConnectedChartPanel ref={ref} {...props} {...hydratedProps} />;\n }\n);\n\nChartPanelPlugin.displayName = 'ChartPanelPlugin';\n\nexport default ChartPanelPlugin;\n"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { type WidgetPlugin } from '@deephaven/plugin';
2
- import { Figure } from '@deephaven/jsapi-types';
2
+ import type { Figure } from '@deephaven/jsapi-types';
3
3
  declare const ChartPluginConfig: WidgetPlugin<Figure>;
4
4
  export default ChartPluginConfig;
5
5
  //# sourceMappingURL=ChartPluginConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPluginConfig.d.ts","sourceRoot":"","sources":["../src/ChartPluginConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIhD,QAAA,MAAM,iBAAiB,EAAE,YAAY,CAAC,MAAM,CAQ3C,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ChartPluginConfig.d.ts","sourceRoot":"","sources":["../src/ChartPluginConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAIrD,QAAA,MAAM,iBAAiB,EAAE,YAAY,CAAC,MAAM,CAQ3C,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPluginConfig.js","names":["PluginType","vsGraph","ChartWidgetPlugin","ChartPanelPlugin","ChartPluginConfig","name","title","type","WIDGET_PLUGIN","component","panelComponent","supportedTypes","icon"],"sources":["../src/ChartPluginConfig.ts"],"sourcesContent":["import { PluginType, type WidgetPlugin } from '@deephaven/plugin';\nimport { vsGraph } from '@deephaven/icons';\nimport { Figure } from '@deephaven/jsapi-types';\nimport { ChartWidgetPlugin } from './ChartWidgetPlugin';\nimport { ChartPanelPlugin } from './ChartPanelPlugin';\n\nconst ChartPluginConfig: WidgetPlugin<Figure> = {\n name: 'ChartPanel',\n title: 'Chart',\n type: PluginType.WIDGET_PLUGIN,\n component: ChartWidgetPlugin,\n panelComponent: ChartPanelPlugin,\n supportedTypes: 'Figure',\n icon: vsGraph,\n};\n\nexport default ChartPluginConfig;\n"],"mappings":"AAAA,SAASA,UAAU,QAA2B,mBAAmB;AACjE,SAASC,OAAO,QAAQ,kBAAkB;AAAC,SAElCC,iBAAiB;AAAA,SACjBC,gBAAgB;AAEzB,IAAMC,iBAAuC,GAAG;EAC9CC,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAEP,UAAU,CAACQ,aAAa;EAC9BC,SAAS,EAAEP,iBAAiB;EAC5BQ,cAAc,EAAEP,gBAAgB;EAChCQ,cAAc,EAAE,QAAQ;EACxBC,IAAI,EAAEX;AACR,CAAC;AAED,eAAeG,iBAAiB"}
1
+ {"version":3,"file":"ChartPluginConfig.js","names":["PluginType","vsGraph","ChartWidgetPlugin","ChartPanelPlugin","ChartPluginConfig","name","title","type","WIDGET_PLUGIN","component","panelComponent","supportedTypes","icon"],"sources":["../src/ChartPluginConfig.ts"],"sourcesContent":["import { PluginType, type WidgetPlugin } from '@deephaven/plugin';\nimport { vsGraph } from '@deephaven/icons';\nimport type { Figure } from '@deephaven/jsapi-types';\nimport { ChartWidgetPlugin } from './ChartWidgetPlugin';\nimport { ChartPanelPlugin } from './ChartPanelPlugin';\n\nconst ChartPluginConfig: WidgetPlugin<Figure> = {\n name: 'ChartPanel',\n title: 'Chart',\n type: PluginType.WIDGET_PLUGIN,\n component: ChartWidgetPlugin,\n panelComponent: ChartPanelPlugin,\n supportedTypes: 'Figure',\n icon: vsGraph,\n};\n\nexport default ChartPluginConfig;\n"],"mappings":"AAAA,SAASA,UAAU,QAA2B,mBAAmB;AACjE,SAASC,OAAO,QAAQ,kBAAkB;AAAC,SAElCC,iBAAiB;AAAA,SACjBC,gBAAgB;AAEzB,IAAMC,iBAAuC,GAAG;EAC9CC,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAEP,UAAU,CAACQ,aAAa;EAC9BC,SAAS,EAAEP,iBAAiB;EAC5BQ,cAAc,EAAEP,gBAAgB;EAChCQ,cAAc,EAAE,QAAQ;EACxBC,IAAI,EAAEX;AACR,CAAC;AAED,eAAeG,iBAAiB"}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
+ import type { Figure } from '@deephaven/jsapi-types';
2
3
  import { type WidgetComponentProps } from '@deephaven/plugin';
3
- export declare function ChartWidgetPlugin(props: WidgetComponentProps): JSX.Element | null;
4
+ export declare function ChartWidgetPlugin(props: WidgetComponentProps<Figure>): JSX.Element | null;
4
5
  export default ChartWidgetPlugin;
5
6
  //# sourceMappingURL=ChartWidgetPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChartWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/ChartWidgetPlugin.tsx"],"names":[],"mappings":";AASA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,oBAAoB,GAC1B,GAAG,CAAC,OAAO,GAAG,IAAI,CA+BpB;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"ChartWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/ChartWidgetPlugin.tsx"],"names":[],"mappings":";AAQA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAE9D,wBAAgB,iBAAiB,CAC/B,KAAK,EAAE,oBAAoB,CAAC,MAAM,CAAC,GAClC,GAAG,CAAC,OAAO,GAAG,IAAI,CA+BpB;AAED,eAAe,iBAAiB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ChartWidgetPlugin.js","names":["useEffect","useState","useApi","Chart","ChartModelFactory","useChartTheme","jsx","_jsx","ChartWidgetPlugin","props","dh","chartTheme","model","setModel","fetch","cancelled","init","_init","apply","arguments","_asyncToGenerator","figure","newModel","makeModel","undefined"],"sources":["../src/ChartWidgetPlugin.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport {\n Chart,\n ChartModel,\n ChartModelFactory,\n useChartTheme,\n} from '@deephaven/chart';\nimport type { Figure } from '@deephaven/jsapi-types';\nimport { type WidgetComponentProps } from '@deephaven/plugin';\n\nexport function ChartWidgetPlugin(\n props: WidgetComponentProps\n): JSX.Element | null {\n const dh = useApi();\n const chartTheme = useChartTheme();\n const [model, setModel] = useState<ChartModel>();\n\n const { fetch } = props;\n\n useEffect(() => {\n let cancelled = false;\n async function init() {\n const figure = (await fetch()) as unknown as Figure;\n const newModel = await ChartModelFactory.makeModel(\n dh,\n undefined,\n figure,\n chartTheme\n );\n\n if (!cancelled) {\n setModel(newModel);\n }\n }\n\n init();\n\n return () => {\n cancelled = true;\n };\n }, [dh, fetch, chartTheme]);\n\n return model ? <Chart model={model} /> : null;\n}\n\nexport default ChartWidgetPlugin;\n"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SACEC,KAAK,EAELC,iBAAiB,EACjBC,aAAa,QACR,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAI1B,OAAO,SAASC,iBAAiBA,CAC/BC,KAA2B,EACP;EACpB,IAAMC,EAAE,GAAGR,MAAM,CAAC,CAAC;EACnB,IAAMS,UAAU,GAAGN,aAAa,CAAC,CAAC;EAClC,IAAM,CAACO,KAAK,EAAEC,QAAQ,CAAC,GAAGZ,QAAQ,CAAa,CAAC;EAEhD,IAAM;IAAEa;EAAM,CAAC,GAAGL,KAAK;EAEvBT,SAAS,CAAC,MAAM;IACd,IAAIe,SAAS,GAAG,KAAK;IAAC,SACPC,IAAIA,CAAA;MAAA,OAAAC,KAAA,CAAAC,KAAA,OAAAC,SAAA;IAAA;IAAA,SAAAF,MAAA;MAAAA,KAAA,GAAAG,iBAAA,CAAnB,aAAsB;QACpB,IAAMC,MAAM,SAAUP,KAAK,CAAC,CAAuB;QACnD,IAAMQ,QAAQ,SAASlB,iBAAiB,CAACmB,SAAS,CAChDb,EAAE,EACFc,SAAS,EACTH,MAAM,EACNV,UACF,CAAC;QAED,IAAI,CAACI,SAAS,EAAE;UACdF,QAAQ,CAACS,QAAQ,CAAC;QACpB;MACF,CAAC;MAAA,OAAAL,KAAA,CAAAC,KAAA,OAAAC,SAAA;IAAA;IAEDH,IAAI,CAAC,CAAC;IAEN,OAAO,MAAM;MACXD,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACL,EAAE,EAAEI,KAAK,EAAEH,UAAU,CAAC,CAAC;EAE3B,OAAOC,KAAK,gBAAGL,IAAA,CAACJ,KAAK;IAACS,KAAK,EAAEA;EAAM,CAAE,CAAC,GAAG,IAAI;AAC/C;AAEA,eAAeJ,iBAAiB"}
1
+ {"version":3,"file":"ChartWidgetPlugin.js","names":["useEffect","useState","useApi","Chart","ChartModelFactory","useChartTheme","jsx","_jsx","ChartWidgetPlugin","props","dh","chartTheme","model","setModel","fetch","cancelled","init","_init","apply","arguments","_asyncToGenerator","figure","newModel","makeModel","undefined"],"sources":["../src/ChartWidgetPlugin.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport {\n Chart,\n ChartModel,\n ChartModelFactory,\n useChartTheme,\n} from '@deephaven/chart';\nimport type { Figure } from '@deephaven/jsapi-types';\nimport { type WidgetComponentProps } from '@deephaven/plugin';\n\nexport function ChartWidgetPlugin(\n props: WidgetComponentProps<Figure>\n): JSX.Element | null {\n const dh = useApi();\n const chartTheme = useChartTheme();\n const [model, setModel] = useState<ChartModel>();\n\n const { fetch } = props;\n\n useEffect(() => {\n let cancelled = false;\n async function init() {\n const figure = (await fetch()) as unknown as Figure;\n const newModel = await ChartModelFactory.makeModel(\n dh,\n undefined,\n figure,\n chartTheme\n );\n\n if (!cancelled) {\n setModel(newModel);\n }\n }\n\n init();\n\n return () => {\n cancelled = true;\n };\n }, [dh, fetch, chartTheme]);\n\n return model ? <Chart model={model} /> : null;\n}\n\nexport default ChartWidgetPlugin;\n"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAC3C,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SACEC,KAAK,EAELC,iBAAiB,EACjBC,aAAa,QACR,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAI1B,OAAO,SAASC,iBAAiBA,CAC/BC,KAAmC,EACf;EACpB,IAAMC,EAAE,GAAGR,MAAM,CAAC,CAAC;EACnB,IAAMS,UAAU,GAAGN,aAAa,CAAC,CAAC;EAClC,IAAM,CAACO,KAAK,EAAEC,QAAQ,CAAC,GAAGZ,QAAQ,CAAa,CAAC;EAEhD,IAAM;IAAEa;EAAM,CAAC,GAAGL,KAAK;EAEvBT,SAAS,CAAC,MAAM;IACd,IAAIe,SAAS,GAAG,KAAK;IAAC,SACPC,IAAIA,CAAA;MAAA,OAAAC,KAAA,CAAAC,KAAA,OAAAC,SAAA;IAAA;IAAA,SAAAF,MAAA;MAAAA,KAAA,GAAAG,iBAAA,CAAnB,aAAsB;QACpB,IAAMC,MAAM,SAAUP,KAAK,CAAC,CAAuB;QACnD,IAAMQ,QAAQ,SAASlB,iBAAiB,CAACmB,SAAS,CAChDb,EAAE,EACFc,SAAS,EACTH,MAAM,EACNV,UACF,CAAC;QAED,IAAI,CAACI,SAAS,EAAE;UACdF,QAAQ,CAACS,QAAQ,CAAC;QACpB;MACF,CAAC;MAAA,OAAAL,KAAA,CAAAC,KAAA,OAAAC,SAAA;IAAA;IAEDH,IAAI,CAAC,CAAC;IAEN,OAAO,MAAM;MACXD,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACL,EAAE,EAAEI,KAAK,EAAEH,UAAU,CAAC,CAAC;EAE3B,OAAOC,KAAK,gBAAGL,IAAA,CAACJ,KAAK;IAACS,KAAK,EAAEA;EAAM,CAAE,CAAC,GAAG,IAAI;AAC/C;AAEA,eAAeJ,iBAAiB"}
@@ -1,11 +1,7 @@
1
1
  /// <reference types="react" />
2
+ import { WidgetPanelProps } from '@deephaven/plugin';
2
3
  import { type Table } from '@deephaven/jsapi-types';
3
4
  import { type IrisGridPanel } from './panels/IrisGridPanel';
4
- export declare const GridPanelPlugin: import("react").ForwardRefExoticComponent<import("@deephaven/plugin").WidgetComponentProps<Table> & {
5
- metadata?: import("@deephaven/jsapi-types").VariableDescriptor<string> | undefined;
6
- localDashboardId: string;
7
- glContainer: import("@deephaven/golden-layout").ItemContainer<import("@deephaven/golden-layout").ComponentConfig>;
8
- glEventHub: import("packages/golden-layout/src/utils/EventEmitter").default;
9
- } & import("react").RefAttributes<IrisGridPanel>>;
5
+ export declare const GridPanelPlugin: import("react").ForwardRefExoticComponent<WidgetPanelProps<Table> & import("react").RefAttributes<IrisGridPanel>>;
10
6
  export default GridPanelPlugin;
11
7
  //# sourceMappingURL=GridPanelPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridPanelPlugin.d.ts","sourceRoot":"","sources":["../src/GridPanelPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAGpD,OAA+B,EAC7B,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,eAAe;;;;;iDAS3B,CAAC;AAIF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"GridPanelPlugin.d.ts","sourceRoot":"","sources":["../src/GridPanelPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAA+B,EAC7B,KAAK,aAAa,EACnB,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,eAAe,mHAQ3B,CAAC;AAIF,eAAe,eAAe,CAAC"}
@@ -4,7 +4,6 @@ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key i
4
4
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
5
  function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
6
6
  import { forwardRef } from 'react';
7
- import { assertNotNull } from '@deephaven/utils';
8
7
  import useHydrateGrid from "./useHydrateGrid.js";
9
8
  import ConnectedIrisGridPanel from "./panels/IrisGridPanel.js";
10
9
  import { jsx as _jsx } from "react/jsx-runtime";
@@ -14,7 +13,6 @@ export var GridPanelPlugin = /*#__PURE__*/forwardRef((props, ref) => {
14
13
  fetch,
15
14
  metadata
16
15
  } = props;
17
- assertNotNull(metadata, 'metadata is required for grid panel');
18
16
  var hydratedProps = useHydrateGrid(fetch, localDashboardId, metadata);
19
17
 
20
18
  // eslint-disable-next-line react/jsx-props-no-spreading
@@ -1 +1 @@
1
- {"version":3,"file":"GridPanelPlugin.js","names":["forwardRef","assertNotNull","useHydrateGrid","ConnectedIrisGridPanel","jsx","_jsx","GridPanelPlugin","props","ref","localDashboardId","fetch","metadata","hydratedProps","_objectSpread","displayName"],"sources":["../src/GridPanelPlugin.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { WidgetPanelProps } from '@deephaven/plugin';\nimport { type Table } from '@deephaven/jsapi-types';\nimport { assertNotNull } from '@deephaven/utils';\nimport useHydrateGrid from './useHydrateGrid';\nimport ConnectedIrisGridPanel, {\n type IrisGridPanel,\n} from './panels/IrisGridPanel';\n\nexport const GridPanelPlugin = forwardRef(\n (props: WidgetPanelProps<Table>, ref: React.Ref<IrisGridPanel>) => {\n const { localDashboardId, fetch, metadata } = props;\n assertNotNull(metadata, 'metadata is required for grid panel');\n const hydratedProps = useHydrateGrid(fetch, localDashboardId, metadata);\n\n // eslint-disable-next-line react/jsx-props-no-spreading\n return <ConnectedIrisGridPanel ref={ref} {...props} {...hydratedProps} />;\n }\n);\n\nGridPanelPlugin.displayName = 'GridPanelPlugin';\n\nexport default GridPanelPlugin;\n"],"mappings":";;;;;AAAA,SAASA,UAAU,QAAQ,OAAO;AAGlC,SAASC,aAAa,QAAQ,kBAAkB;AAAC,OAC1CC,cAAc;AAAA,OACdC,sBAAsB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAI7B,OAAO,IAAMC,eAAe,gBAAGN,UAAU,CACvC,CAACO,KAA8B,EAAEC,GAA6B,KAAK;EACjE,IAAM;IAAEC,gBAAgB;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAGJ,KAAK;EACnDN,aAAa,CAACU,QAAQ,EAAE,qCAAqC,CAAC;EAC9D,IAAMC,aAAa,GAAGV,cAAc,CAACQ,KAAK,EAAED,gBAAgB,EAAEE,QAAQ,CAAC;;EAEvE;EACA,oBAAON,IAAA,CAACF,sBAAsB,EAAAU,aAAA,CAAAA,aAAA;IAACL,GAAG,EAAEA;EAAI,GAAKD,KAAK,GAAMK,aAAa,CAAG,CAAC;AAC3E,CACF,CAAC;AAEDN,eAAe,CAACQ,WAAW,GAAG,iBAAiB;AAE/C,eAAeR,eAAe"}
1
+ {"version":3,"file":"GridPanelPlugin.js","names":["forwardRef","useHydrateGrid","ConnectedIrisGridPanel","jsx","_jsx","GridPanelPlugin","props","ref","localDashboardId","fetch","metadata","hydratedProps","_objectSpread","displayName"],"sources":["../src/GridPanelPlugin.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { WidgetPanelProps } from '@deephaven/plugin';\nimport { type Table } from '@deephaven/jsapi-types';\nimport useHydrateGrid from './useHydrateGrid';\nimport ConnectedIrisGridPanel, {\n type IrisGridPanel,\n} from './panels/IrisGridPanel';\n\nexport const GridPanelPlugin = forwardRef(\n (props: WidgetPanelProps<Table>, ref: React.Ref<IrisGridPanel>) => {\n const { localDashboardId, fetch, metadata } = props;\n const hydratedProps = useHydrateGrid(fetch, localDashboardId, metadata);\n\n // eslint-disable-next-line react/jsx-props-no-spreading\n return <ConnectedIrisGridPanel ref={ref} {...props} {...hydratedProps} />;\n }\n);\n\nGridPanelPlugin.displayName = 'GridPanelPlugin';\n\nexport default GridPanelPlugin;\n"],"mappings":";;;;;AAAA,SAASA,UAAU,QAAQ,OAAO;AAAC,OAG5BC,cAAc;AAAA,OACdC,sBAAsB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAI7B,OAAO,IAAMC,eAAe,gBAAGL,UAAU,CACvC,CAACM,KAA8B,EAAEC,GAA6B,KAAK;EACjE,IAAM;IAAEC,gBAAgB;IAAEC,KAAK;IAAEC;EAAS,CAAC,GAAGJ,KAAK;EACnD,IAAMK,aAAa,GAAGV,cAAc,CAACQ,KAAK,EAAED,gBAAgB,EAAEE,QAAQ,CAAC;;EAEvE;EACA,oBAAON,IAAA,CAACF,sBAAsB,EAAAU,aAAA,CAAAA,aAAA;IAACL,GAAG,EAAEA;EAAI,GAAKD,KAAK,GAAMK,aAAa,CAAG,CAAC;AAC3E,CACF,CAAC;AAEDN,eAAe,CAACQ,WAAW,GAAG,iBAAiB;AAE/C,eAAeR,eAAe"}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { type WidgetComponentProps } from '@deephaven/plugin';
3
- export declare function GridWidgetPlugin(props: WidgetComponentProps): JSX.Element | null;
3
+ import { type Table } from '@deephaven/jsapi-types';
4
+ export declare function GridWidgetPlugin(props: WidgetComponentProps<Table>): JSX.Element | null;
4
5
  export default GridWidgetPlugin;
5
6
  //# sourceMappingURL=GridWidgetPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GridWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/GridWidgetPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAS9D,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,oBAAoB,GAC1B,GAAG,CAAC,OAAO,GAAG,IAAI,CAwBpB;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"GridWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/GridWidgetPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAC9D,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAQpD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,GACjC,GAAG,CAAC,OAAO,GAAG,IAAI,CAwBpB;AAED,eAAe,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GridWidgetPlugin.js","names":["useEffect","useState","useApi","IrisGrid","IrisGridModelFactory","jsx","_jsx","GridWidgetPlugin","props","dh","model","setModel","fetch","cancelled","init","_init","apply","arguments","_asyncToGenerator","table","newModel","makeModel"],"sources":["../src/GridWidgetPlugin.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { type WidgetComponentProps } from '@deephaven/plugin';\nimport { type Table } from '@deephaven/jsapi-types';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport {\n IrisGrid,\n IrisGridModelFactory,\n type IrisGridModel,\n} from '@deephaven/iris-grid';\n\nexport function GridWidgetPlugin(\n props: WidgetComponentProps\n): JSX.Element | null {\n const dh = useApi();\n const [model, setModel] = useState<IrisGridModel>();\n\n const { fetch } = props;\n\n useEffect(() => {\n let cancelled = false;\n async function init() {\n const table = (await fetch()) as unknown as Table;\n const newModel = await IrisGridModelFactory.makeModel(dh, table);\n if (!cancelled) {\n setModel(newModel);\n }\n }\n\n init();\n\n return () => {\n cancelled = true;\n };\n }, [dh, fetch]);\n\n return model ? <IrisGrid model={model} /> : null;\n}\n\nexport default GridWidgetPlugin;\n"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAG3C,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SACEC,QAAQ,EACRC,oBAAoB,QAEf,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE9B,OAAO,SAASC,gBAAgBA,CAC9BC,KAA2B,EACP;EACpB,IAAMC,EAAE,GAAGP,MAAM,CAAC,CAAC;EACnB,IAAM,CAACQ,KAAK,EAAEC,QAAQ,CAAC,GAAGV,QAAQ,CAAgB,CAAC;EAEnD,IAAM;IAAEW;EAAM,CAAC,GAAGJ,KAAK;EAEvBR,SAAS,CAAC,MAAM;IACd,IAAIa,SAAS,GAAG,KAAK;IAAC,SACPC,IAAIA,CAAA;MAAA,OAAAC,KAAA,CAAAC,KAAA,OAAAC,SAAA;IAAA;IAAA,SAAAF,MAAA;MAAAA,KAAA,GAAAG,iBAAA,CAAnB,aAAsB;QACpB,IAAMC,KAAK,SAAUP,KAAK,CAAC,CAAsB;QACjD,IAAMQ,QAAQ,SAAShB,oBAAoB,CAACiB,SAAS,CAACZ,EAAE,EAAEU,KAAK,CAAC;QAChE,IAAI,CAACN,SAAS,EAAE;UACdF,QAAQ,CAACS,QAAQ,CAAC;QACpB;MACF,CAAC;MAAA,OAAAL,KAAA,CAAAC,KAAA,OAAAC,SAAA;IAAA;IAEDH,IAAI,CAAC,CAAC;IAEN,OAAO,MAAM;MACXD,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACJ,EAAE,EAAEG,KAAK,CAAC,CAAC;EAEf,OAAOF,KAAK,gBAAGJ,IAAA,CAACH,QAAQ;IAACO,KAAK,EAAEA;EAAM,CAAE,CAAC,GAAG,IAAI;AAClD;AAEA,eAAeH,gBAAgB"}
1
+ {"version":3,"file":"GridWidgetPlugin.js","names":["useEffect","useState","useApi","IrisGrid","IrisGridModelFactory","jsx","_jsx","GridWidgetPlugin","props","dh","model","setModel","fetch","cancelled","init","_init","apply","arguments","_asyncToGenerator","table","newModel","makeModel"],"sources":["../src/GridWidgetPlugin.tsx"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { type WidgetComponentProps } from '@deephaven/plugin';\nimport { type Table } from '@deephaven/jsapi-types';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport {\n IrisGrid,\n IrisGridModelFactory,\n type IrisGridModel,\n} from '@deephaven/iris-grid';\n\nexport function GridWidgetPlugin(\n props: WidgetComponentProps<Table>\n): JSX.Element | null {\n const dh = useApi();\n const [model, setModel] = useState<IrisGridModel>();\n\n const { fetch } = props;\n\n useEffect(() => {\n let cancelled = false;\n async function init() {\n const table = await fetch();\n const newModel = await IrisGridModelFactory.makeModel(dh, table);\n if (!cancelled) {\n setModel(newModel);\n }\n }\n\n init();\n\n return () => {\n cancelled = true;\n };\n }, [dh, fetch]);\n\n return model ? <IrisGrid model={model} /> : null;\n}\n\nexport default GridWidgetPlugin;\n"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAG3C,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SACEC,QAAQ,EACRC,oBAAoB,QAEf,sBAAsB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE9B,OAAO,SAASC,gBAAgBA,CAC9BC,KAAkC,EACd;EACpB,IAAMC,EAAE,GAAGP,MAAM,CAAC,CAAC;EACnB,IAAM,CAACQ,KAAK,EAAEC,QAAQ,CAAC,GAAGV,QAAQ,CAAgB,CAAC;EAEnD,IAAM;IAAEW;EAAM,CAAC,GAAGJ,KAAK;EAEvBR,SAAS,CAAC,MAAM;IACd,IAAIa,SAAS,GAAG,KAAK;IAAC,SACPC,IAAIA,CAAA;MAAA,OAAAC,KAAA,CAAAC,KAAA,OAAAC,SAAA;IAAA;IAAA,SAAAF,MAAA;MAAAA,KAAA,GAAAG,iBAAA,CAAnB,aAAsB;QACpB,IAAMC,KAAK,SAASP,KAAK,CAAC,CAAC;QAC3B,IAAMQ,QAAQ,SAAShB,oBAAoB,CAACiB,SAAS,CAACZ,EAAE,EAAEU,KAAK,CAAC;QAChE,IAAI,CAACN,SAAS,EAAE;UACdF,QAAQ,CAACS,QAAQ,CAAC;QACpB;MACF,CAAC;MAAA,OAAAL,KAAA,CAAAC,KAAA,OAAAC,SAAA;IAAA;IAEDH,IAAI,CAAC,CAAC;IAEN,OAAO,MAAM;MACXD,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACJ,EAAE,EAAEG,KAAK,CAAC,CAAC;EAEf,OAAOF,KAAK,gBAAGJ,IAAA,CAACH,QAAQ;IAACO,KAAK,EAAEA;EAAM,CAAE,CAAC,GAAG,IAAI;AAClD;AAEA,eAAeH,gBAAgB"}
@@ -1,11 +1,7 @@
1
1
  /// <reference types="react" />
2
+ import { WidgetPanelProps } from '@deephaven/plugin';
2
3
  import { type Table } from '@deephaven/jsapi-types';
3
4
  import { PandasPanel } from './panels';
4
- export declare const PandasPanelPlugin: import("react").ForwardRefExoticComponent<import("@deephaven/plugin").WidgetComponentProps<Table> & {
5
- metadata?: import("@deephaven/jsapi-types").VariableDescriptor<string> | undefined;
6
- localDashboardId: string;
7
- glContainer: import("@deephaven/golden-layout").ItemContainer<import("@deephaven/golden-layout").ComponentConfig>;
8
- glEventHub: import("packages/golden-layout/src/utils/EventEmitter").default;
9
- } & import("react").RefAttributes<PandasPanel>>;
5
+ export declare const PandasPanelPlugin: import("react").ForwardRefExoticComponent<WidgetPanelProps<Table> & import("react").RefAttributes<PandasPanel>>;
10
6
  export default PandasPanelPlugin;
11
7
  //# sourceMappingURL=PandasPanelPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PandasPanelPlugin.d.ts","sourceRoot":"","sources":["../src/PandasPanelPlugin.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,eAAO,MAAM,iBAAiB;;;;;+CAU7B,CAAC;AAIF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"PandasPanelPlugin.d.ts","sourceRoot":"","sources":["../src/PandasPanelPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,eAAO,MAAM,iBAAiB,iHAU7B,CAAC;AAIF,eAAe,iBAAiB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { WidgetPlugin } from '@deephaven/plugin';
2
- import { Table } from '@deephaven/jsapi-types';
2
+ import type { Table } from '@deephaven/jsapi-types';
3
3
  declare const PandasPluginConfig: WidgetPlugin<Table>;
4
4
  export default PandasPluginConfig;
5
5
  //# sourceMappingURL=PandasPluginConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PandasPluginConfig.d.ts","sourceRoot":"","sources":["../src/PandasPluginConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAI/C,QAAA,MAAM,kBAAkB,EAAE,YAAY,CAAC,KAAK,CAQ3C,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"PandasPluginConfig.d.ts","sourceRoot":"","sources":["../src/PandasPluginConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAE7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAIpD,QAAA,MAAM,kBAAkB,EAAE,YAAY,CAAC,KAAK,CAQ3C,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PandasPluginConfig.js","names":["PluginType","dhPandas","PandasWidgetPlugin","PandasPanelPlugin","PandasPluginConfig","name","title","type","WIDGET_PLUGIN","component","panelComponent","supportedTypes","icon"],"sources":["../src/PandasPluginConfig.ts"],"sourcesContent":["import { PluginType, WidgetPlugin } from '@deephaven/plugin';\nimport { dhPandas } from '@deephaven/icons';\nimport { Table } from '@deephaven/jsapi-types';\nimport { PandasWidgetPlugin } from './PandasWidgetPlugin';\nimport { PandasPanelPlugin } from './PandasPanelPlugin';\n\nconst PandasPluginConfig: WidgetPlugin<Table> = {\n name: 'PandasPanel',\n title: 'Pandas',\n type: PluginType.WIDGET_PLUGIN,\n component: PandasWidgetPlugin,\n panelComponent: PandasPanelPlugin,\n supportedTypes: 'pandas.DataFrame',\n icon: dhPandas,\n};\n\nexport default PandasPluginConfig;\n"],"mappings":"AAAA,SAASA,UAAU,QAAsB,mBAAmB;AAC5D,SAASC,QAAQ,QAAQ,kBAAkB;AAAC,SAEnCC,kBAAkB;AAAA,SAClBC,iBAAiB;AAE1B,IAAMC,kBAAuC,GAAG;EAC9CC,IAAI,EAAE,aAAa;EACnBC,KAAK,EAAE,QAAQ;EACfC,IAAI,EAAEP,UAAU,CAACQ,aAAa;EAC9BC,SAAS,EAAEP,kBAAkB;EAC7BQ,cAAc,EAAEP,iBAAiB;EACjCQ,cAAc,EAAE,kBAAkB;EAClCC,IAAI,EAAEX;AACR,CAAC;AAED,eAAeG,kBAAkB"}
1
+ {"version":3,"file":"PandasPluginConfig.js","names":["PluginType","dhPandas","PandasWidgetPlugin","PandasPanelPlugin","PandasPluginConfig","name","title","type","WIDGET_PLUGIN","component","panelComponent","supportedTypes","icon"],"sources":["../src/PandasPluginConfig.ts"],"sourcesContent":["import { PluginType, WidgetPlugin } from '@deephaven/plugin';\nimport { dhPandas } from '@deephaven/icons';\nimport type { Table } from '@deephaven/jsapi-types';\nimport { PandasWidgetPlugin } from './PandasWidgetPlugin';\nimport { PandasPanelPlugin } from './PandasPanelPlugin';\n\nconst PandasPluginConfig: WidgetPlugin<Table> = {\n name: 'PandasPanel',\n title: 'Pandas',\n type: PluginType.WIDGET_PLUGIN,\n component: PandasWidgetPlugin,\n panelComponent: PandasPanelPlugin,\n supportedTypes: 'pandas.DataFrame',\n icon: dhPandas,\n};\n\nexport default PandasPluginConfig;\n"],"mappings":"AAAA,SAASA,UAAU,QAAsB,mBAAmB;AAC5D,SAASC,QAAQ,QAAQ,kBAAkB;AAAC,SAEnCC,kBAAkB;AAAA,SAClBC,iBAAiB;AAE1B,IAAMC,kBAAuC,GAAG;EAC9CC,IAAI,EAAE,aAAa;EACnBC,KAAK,EAAE,QAAQ;EACfC,IAAI,EAAEP,UAAU,CAACQ,aAAa;EAC9BC,SAAS,EAAEP,kBAAkB;EAC7BQ,cAAc,EAAEP,iBAAiB;EACjCQ,cAAc,EAAE,kBAAkB;EAClCC,IAAI,EAAEX;AACR,CAAC;AAED,eAAeG,kBAAkB"}
@@ -1,5 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { WidgetComponentProps } from '@deephaven/plugin';
3
- export declare function PandasWidgetPlugin(props: WidgetComponentProps): JSX.Element | null;
3
+ import { type Table } from '@deephaven/jsapi-types';
4
+ export declare function PandasWidgetPlugin(props: WidgetComponentProps<Table>): JSX.Element | null;
4
5
  export default PandasWidgetPlugin;
5
6
  //# sourceMappingURL=PandasWidgetPlugin.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PandasWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/PandasWidgetPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAUzD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,oBAAoB,GAC1B,GAAG,CAAC,OAAO,GAAG,IAAI,CAiDpB;AAED,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"PandasWidgetPlugin.d.ts","sourceRoot":"","sources":["../src/PandasWidgetPlugin.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,wBAAwB,CAAC;AASpD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,oBAAoB,CAAC,KAAK,CAAC,GACjC,GAAG,CAAC,OAAO,GAAG,IAAI,CAiDpB;AAED,eAAe,kBAAkB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"PandasWidgetPlugin.js","names":["useCallback","useEffect","useState","IrisGrid","IrisGridModelFactory","useApi","LoadingOverlay","PandasReloadButton","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","PandasWidgetPlugin","props","dh","model","setModel","isLoading","setIsLoading","isLoaded","setIsLoaded","fetch","makeModel","_asyncToGenerator","table","handleReload","newModel","cancelled","init","_init","apply","arguments","children","onClick"],"sources":["../src/PandasWidgetPlugin.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { WidgetComponentProps } from '@deephaven/plugin';\nimport { type Table } from '@deephaven/jsapi-types';\nimport IrisGrid, {\n IrisGridModelFactory,\n type IrisGridModel,\n} from '@deephaven/iris-grid';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { PandasReloadButton } from './panels/PandasReloadButton';\n\nexport function PandasWidgetPlugin(\n props: WidgetComponentProps\n): JSX.Element | null {\n const dh = useApi();\n const [model, setModel] = useState<IrisGridModel>();\n const [isLoading, setIsLoading] = useState(true);\n const [isLoaded, setIsLoaded] = useState(false);\n\n const { fetch } = props;\n\n const makeModel = useCallback(async () => {\n const table = (await fetch()) as unknown as Table;\n return IrisGridModelFactory.makeModel(dh, table);\n }, [dh, fetch]);\n\n const handleReload = useCallback(async () => {\n setIsLoading(true);\n const newModel = await makeModel();\n setModel(newModel);\n setIsLoading(false);\n }, [makeModel]);\n\n useEffect(() => {\n let cancelled = false;\n async function init() {\n const newModel = await makeModel();\n if (!cancelled) {\n setModel(newModel);\n setIsLoaded(true);\n setIsLoading(false);\n }\n }\n\n init();\n setIsLoading(true);\n\n return () => {\n cancelled = true;\n };\n }, [makeModel]);\n\n return (\n <>\n <LoadingOverlay isLoaded={isLoaded} isLoading={isLoading} />\n {model && (\n <IrisGrid model={model}>\n <PandasReloadButton onClick={handleReload} />\n </IrisGrid>\n )}\n </>\n );\n}\n\nexport default PandasWidgetPlugin;\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAGxD,OAAOC,QAAQ,IACbC,oBAAoB,QAEf,sBAAsB;AAC7B,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SAASC,cAAc,QAAQ,uBAAuB;AAAC,SAC9CC,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE3B,OAAO,SAASC,kBAAkBA,CAChCC,KAA2B,EACP;EACpB,IAAMC,EAAE,GAAGX,MAAM,CAAC,CAAC;EACnB,IAAM,CAACY,KAAK,EAAEC,QAAQ,CAAC,GAAGhB,QAAQ,CAAgB,CAAC;EACnD,IAAM,CAACiB,SAAS,EAAEC,YAAY,CAAC,GAAGlB,QAAQ,CAAC,IAAI,CAAC;EAChD,IAAM,CAACmB,QAAQ,EAAEC,WAAW,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;EAE/C,IAAM;IAAEqB;EAAM,CAAC,GAAGR,KAAK;EAEvB,IAAMS,SAAS,GAAGxB,WAAW,eAAAyB,iBAAA,CAAC,aAAY;IACxC,IAAMC,KAAK,SAAUH,KAAK,CAAC,CAAsB;IACjD,OAAOnB,oBAAoB,CAACoB,SAAS,CAACR,EAAE,EAAEU,KAAK,CAAC;EAClD,CAAC,GAAE,CAACV,EAAE,EAAEO,KAAK,CAAC,CAAC;EAEf,IAAMI,YAAY,GAAG3B,WAAW,eAAAyB,iBAAA,CAAC,aAAY;IAC3CL,YAAY,CAAC,IAAI,CAAC;IAClB,IAAMQ,QAAQ,SAASJ,SAAS,CAAC,CAAC;IAClCN,QAAQ,CAACU,QAAQ,CAAC;IAClBR,YAAY,CAAC,KAAK,CAAC;EACrB,CAAC,GAAE,CAACI,SAAS,CAAC,CAAC;EAEfvB,SAAS,CAAC,MAAM;IACd,IAAI4B,SAAS,GAAG,KAAK;IAAC,SACPC,IAAIA,CAAA;MAAA,OAAAC,KAAA,CAAAC,KAAA,OAAAC,SAAA;IAAA;IAAA,SAAAF,MAAA;MAAAA,KAAA,GAAAN,iBAAA,CAAnB,aAAsB;QACpB,IAAMG,QAAQ,SAASJ,SAAS,CAAC,CAAC;QAClC,IAAI,CAACK,SAAS,EAAE;UACdX,QAAQ,CAACU,QAAQ,CAAC;UAClBN,WAAW,CAAC,IAAI,CAAC;UACjBF,YAAY,CAAC,KAAK,CAAC;QACrB;MACF,CAAC;MAAA,OAAAW,KAAA,CAAAC,KAAA,OAAAC,SAAA;IAAA;IAEDH,IAAI,CAAC,CAAC;IACNV,YAAY,CAAC,IAAI,CAAC;IAElB,OAAO,MAAM;MACXS,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACL,SAAS,CAAC,CAAC;EAEf,oBACEX,KAAA,CAAAF,SAAA;IAAAuB,QAAA,gBACEzB,IAAA,CAACH,cAAc;MAACe,QAAQ,EAAEA,QAAS;MAACF,SAAS,EAAEA;IAAU,CAAE,CAAC,EAC3DF,KAAK,iBACJR,IAAA,CAACN,QAAQ;MAACc,KAAK,EAAEA,KAAM;MAAAiB,QAAA,eACrBzB,IAAA,CAACF,kBAAkB;QAAC4B,OAAO,EAAER;MAAa,CAAE;IAAC,CACrC,CACX;EAAA,CACD,CAAC;AAEP;AAEA,eAAeb,kBAAkB"}
1
+ {"version":3,"file":"PandasWidgetPlugin.js","names":["useCallback","useEffect","useState","IrisGrid","IrisGridModelFactory","useApi","LoadingOverlay","PandasReloadButton","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","PandasWidgetPlugin","props","dh","model","setModel","isLoading","setIsLoading","isLoaded","setIsLoaded","fetch","makeModel","_asyncToGenerator","table","handleReload","newModel","cancelled","init","_init","apply","arguments","children","onClick"],"sources":["../src/PandasWidgetPlugin.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from 'react';\nimport { WidgetComponentProps } from '@deephaven/plugin';\nimport { type Table } from '@deephaven/jsapi-types';\nimport IrisGrid, {\n IrisGridModelFactory,\n type IrisGridModel,\n} from '@deephaven/iris-grid';\nimport { useApi } from '@deephaven/jsapi-bootstrap';\nimport { LoadingOverlay } from '@deephaven/components';\nimport { PandasReloadButton } from './panels/PandasReloadButton';\n\nexport function PandasWidgetPlugin(\n props: WidgetComponentProps<Table>\n): JSX.Element | null {\n const dh = useApi();\n const [model, setModel] = useState<IrisGridModel>();\n const [isLoading, setIsLoading] = useState(true);\n const [isLoaded, setIsLoaded] = useState(false);\n\n const { fetch } = props;\n\n const makeModel = useCallback(async () => {\n const table = await fetch();\n return IrisGridModelFactory.makeModel(dh, table);\n }, [dh, fetch]);\n\n const handleReload = useCallback(async () => {\n setIsLoading(true);\n const newModel = await makeModel();\n setModel(newModel);\n setIsLoading(false);\n }, [makeModel]);\n\n useEffect(() => {\n let cancelled = false;\n async function init() {\n const newModel = await makeModel();\n if (!cancelled) {\n setModel(newModel);\n setIsLoaded(true);\n setIsLoading(false);\n }\n }\n\n init();\n setIsLoading(true);\n\n return () => {\n cancelled = true;\n };\n }, [makeModel]);\n\n return (\n <>\n <LoadingOverlay isLoaded={isLoaded} isLoading={isLoading} />\n {model && (\n <IrisGrid model={model}>\n <PandasReloadButton onClick={handleReload} />\n </IrisGrid>\n )}\n </>\n );\n}\n\nexport default PandasWidgetPlugin;\n"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAGxD,OAAOC,QAAQ,IACbC,oBAAoB,QAEf,sBAAsB;AAC7B,SAASC,MAAM,QAAQ,4BAA4B;AACnD,SAASC,cAAc,QAAQ,uBAAuB;AAAC,SAC9CC,kBAAkB;AAAA,SAAAC,GAAA,IAAAC,IAAA;AAAA,SAAAC,QAAA,IAAAC,SAAA;AAAA,SAAAC,IAAA,IAAAC,KAAA;AAE3B,OAAO,SAASC,kBAAkBA,CAChCC,KAAkC,EACd;EACpB,IAAMC,EAAE,GAAGX,MAAM,CAAC,CAAC;EACnB,IAAM,CAACY,KAAK,EAAEC,QAAQ,CAAC,GAAGhB,QAAQ,CAAgB,CAAC;EACnD,IAAM,CAACiB,SAAS,EAAEC,YAAY,CAAC,GAAGlB,QAAQ,CAAC,IAAI,CAAC;EAChD,IAAM,CAACmB,QAAQ,EAAEC,WAAW,CAAC,GAAGpB,QAAQ,CAAC,KAAK,CAAC;EAE/C,IAAM;IAAEqB;EAAM,CAAC,GAAGR,KAAK;EAEvB,IAAMS,SAAS,GAAGxB,WAAW,eAAAyB,iBAAA,CAAC,aAAY;IACxC,IAAMC,KAAK,SAASH,KAAK,CAAC,CAAC;IAC3B,OAAOnB,oBAAoB,CAACoB,SAAS,CAACR,EAAE,EAAEU,KAAK,CAAC;EAClD,CAAC,GAAE,CAACV,EAAE,EAAEO,KAAK,CAAC,CAAC;EAEf,IAAMI,YAAY,GAAG3B,WAAW,eAAAyB,iBAAA,CAAC,aAAY;IAC3CL,YAAY,CAAC,IAAI,CAAC;IAClB,IAAMQ,QAAQ,SAASJ,SAAS,CAAC,CAAC;IAClCN,QAAQ,CAACU,QAAQ,CAAC;IAClBR,YAAY,CAAC,KAAK,CAAC;EACrB,CAAC,GAAE,CAACI,SAAS,CAAC,CAAC;EAEfvB,SAAS,CAAC,MAAM;IACd,IAAI4B,SAAS,GAAG,KAAK;IAAC,SACPC,IAAIA,CAAA;MAAA,OAAAC,KAAA,CAAAC,KAAA,OAAAC,SAAA;IAAA;IAAA,SAAAF,MAAA;MAAAA,KAAA,GAAAN,iBAAA,CAAnB,aAAsB;QACpB,IAAMG,QAAQ,SAASJ,SAAS,CAAC,CAAC;QAClC,IAAI,CAACK,SAAS,EAAE;UACdX,QAAQ,CAACU,QAAQ,CAAC;UAClBN,WAAW,CAAC,IAAI,CAAC;UACjBF,YAAY,CAAC,KAAK,CAAC;QACrB;MACF,CAAC;MAAA,OAAAW,KAAA,CAAAC,KAAA,OAAAC,SAAA;IAAA;IAEDH,IAAI,CAAC,CAAC;IACNV,YAAY,CAAC,IAAI,CAAC;IAElB,OAAO,MAAM;MACXS,SAAS,GAAG,IAAI;IAClB,CAAC;EACH,CAAC,EAAE,CAACL,SAAS,CAAC,CAAC;EAEf,oBACEX,KAAA,CAAAF,SAAA;IAAAuB,QAAA,gBACEzB,IAAA,CAACH,cAAc;MAACe,QAAQ,EAAEA,QAAS;MAACF,SAAS,EAAEA;IAAU,CAAE,CAAC,EAC3DF,KAAK,iBACJR,IAAA,CAACN,QAAQ;MAACc,KAAK,EAAEA,KAAM;MAAAiB,QAAA,eACrBzB,IAAA,CAACF,kBAAkB;QAAC4B,OAAO,EAAER;MAAa,CAAE;IAAC,CACrC,CACX;EAAA,CACD,CAAC;AAEP;AAEA,eAAeb,kBAAkB"}
@@ -76,24 +76,24 @@ export function WidgetLoaderPlugin(props) {
76
76
  registerComponent
77
77
  } = props;
78
78
  var handlePanelOpen = useCallback(_ref => {
79
- var _metadata$name2;
79
+ var _widget$name;
80
80
  var {
81
81
  dragEvent,
82
82
  panelId = shortid.generate(),
83
83
  fetch,
84
- metadata
84
+ widget
85
85
  } = _ref;
86
86
  var {
87
87
  type
88
- } = metadata;
88
+ } = widget;
89
89
  var plugin = type != null ? supportedTypes.get(type) : null;
90
90
  if (plugin == null) {
91
91
  return;
92
92
  }
93
- var name = (_metadata$name2 = metadata.name) !== null && _metadata$name2 !== void 0 ? _metadata$name2 : type;
93
+ var name = (_widget$name = widget.name) !== null && _widget$name !== void 0 ? _widget$name : type;
94
94
  var panelProps = {
95
95
  localDashboardId: id,
96
- metadata,
96
+ metadata: widget,
97
97
  fetch
98
98
  };
99
99
  var config = {
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetLoaderPlugin.js","names":["useMemo","useCallback","useEffect","forwardRef","shortid","assertIsDashboardPluginProps","PanelEvent","LayoutUtils","useListener","canHaveRef","Log","isWidgetPlugin","usePlugins","WidgetPanel","jsx","_jsx","log","module","WrapWidgetPlugin","plugin","_plugin$component$dis","Wrapper","props","ref","_metadata$name","C","component","metadata","hasRef","_objectSpread","widgetName","name","undefined","widgetType","title","children","displayName","concat","WidgetLoaderPlugin","plugins","supportedTypes","typeMap","Map","forEach","flat","supportedType","has","_typeMap$get","warn","get","set","id","layout","registerComponent","handlePanelOpen","_ref","_metadata$name2","dragEvent","panelId","generate","fetch","type","panelProps","localDashboardId","config","root","openComponent","deregisterFns","Set","values","map","panelComponent","deregister","eventHub","OPEN"],"sources":["../src/WidgetLoaderPlugin.tsx"],"sourcesContent":["import { useMemo, useCallback, useEffect, forwardRef } from 'react';\nimport type { ReactComponentConfig } from '@deephaven/golden-layout';\nimport shortid from 'shortid';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n DehydratedDashboardPanelProps,\n PanelEvent,\n PanelOpenEventDetail,\n LayoutUtils,\n useListener,\n PanelProps,\n canHaveRef,\n} from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport {\n isWidgetPlugin,\n usePlugins,\n type WidgetPlugin,\n} from '@deephaven/plugin';\nimport { WidgetPanel } from './panels';\n\nconst log = Log.module('WidgetLoaderPlugin');\n\nexport function WrapWidgetPlugin(\n plugin: WidgetPlugin\n): React.ForwardRefExoticComponent<PanelProps & React.RefAttributes<unknown>> {\n function Wrapper(props: PanelProps, ref: React.ForwardedRef<unknown>) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const C = plugin.component as any;\n const { metadata } = props;\n\n const hasRef = canHaveRef(C);\n\n return (\n <WidgetPanel\n widgetName={metadata?.name ?? undefined}\n widgetType={plugin.title}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n {hasRef ? (\n <C\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n ref={ref}\n />\n ) : (\n <C\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n )}\n </WidgetPanel>\n );\n }\n\n Wrapper.displayName = `WidgetLoaderPlugin(${\n plugin.component.displayName ?? plugin.name\n })`;\n\n return forwardRef(Wrapper);\n}\n\n/**\n * Widget to automatically open any supported WidgetPlugin types as panels\n * if the widget is emitted from the server as the result of executed code.\n *\n * Does not open panels for widgets that are not supported by any plugins.\n * Does not open panels for widgets that are a component of a larger widget or UI element.\n *\n * @param props Dashboard plugin props\n * @returns React element\n */\nexport function WidgetLoaderPlugin(\n props: Partial<DashboardPluginComponentProps>\n): JSX.Element | null {\n const plugins = usePlugins();\n const supportedTypes = useMemo(() => {\n const typeMap = new Map<string, WidgetPlugin>();\n plugins.forEach(plugin => {\n if (!isWidgetPlugin(plugin)) {\n return;\n }\n\n [plugin.supportedTypes].flat().forEach(supportedType => {\n if (supportedType != null && supportedType !== '') {\n if (typeMap.has(supportedType)) {\n log.warn(\n `Multiple WidgetPlugins handling type ${supportedType}. Replacing ${typeMap.get(\n supportedType\n )?.name} with ${plugin.name} to handle ${supportedType}`\n );\n }\n typeMap.set(supportedType, plugin);\n }\n });\n });\n\n return typeMap;\n }, [plugins]);\n\n assertIsDashboardPluginProps(props);\n const { id, layout, registerComponent } = props;\n\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n panelId = shortid.generate(),\n fetch,\n metadata,\n }: PanelOpenEventDetail) => {\n const { type } = metadata;\n const plugin = type != null ? supportedTypes.get(type) : null;\n if (plugin == null) {\n return;\n }\n const name = metadata.name ?? type;\n\n const panelProps: DehydratedDashboardPanelProps & {\n fetch?: () => Promise<unknown>;\n } = {\n localDashboardId: id,\n metadata,\n fetch,\n };\n\n const config: ReactComponentConfig = {\n type: 'react-component',\n component: plugin.name,\n props: panelProps,\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout, supportedTypes]\n );\n\n useEffect(() => {\n const deregisterFns = [...new Set(supportedTypes.values())].map(plugin => {\n const { panelComponent } = plugin;\n if (panelComponent == null) {\n return registerComponent(plugin.name, WrapWidgetPlugin(plugin));\n }\n return registerComponent(plugin.name, panelComponent);\n });\n\n return () => {\n deregisterFns.forEach(deregister => deregister());\n };\n }, [registerComponent, supportedTypes]);\n\n /**\n * Listen for panel open events so we know when to open a panel\n */\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return null;\n}\n\nexport default WidgetLoaderPlugin;\n"],"mappings":"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"}
1
+ {"version":3,"file":"WidgetLoaderPlugin.js","names":["useMemo","useCallback","useEffect","forwardRef","shortid","assertIsDashboardPluginProps","PanelEvent","LayoutUtils","useListener","canHaveRef","Log","isWidgetPlugin","usePlugins","WidgetPanel","jsx","_jsx","log","module","WrapWidgetPlugin","plugin","_plugin$component$dis","Wrapper","props","ref","_metadata$name","C","component","metadata","hasRef","_objectSpread","widgetName","name","undefined","widgetType","title","children","displayName","concat","WidgetLoaderPlugin","plugins","supportedTypes","typeMap","Map","forEach","flat","supportedType","has","_typeMap$get","warn","get","set","id","layout","registerComponent","handlePanelOpen","_ref","_widget$name","dragEvent","panelId","generate","fetch","widget","type","panelProps","localDashboardId","config","root","openComponent","deregisterFns","Set","values","map","panelComponent","deregister","eventHub","OPEN"],"sources":["../src/WidgetLoaderPlugin.tsx"],"sourcesContent":["import { useMemo, useCallback, useEffect, forwardRef } from 'react';\nimport type { ReactComponentConfig } from '@deephaven/golden-layout';\nimport shortid from 'shortid';\nimport {\n assertIsDashboardPluginProps,\n DashboardPluginComponentProps,\n DehydratedDashboardPanelProps,\n PanelEvent,\n PanelOpenEventDetail,\n LayoutUtils,\n useListener,\n PanelProps,\n canHaveRef,\n} from '@deephaven/dashboard';\nimport Log from '@deephaven/log';\nimport {\n isWidgetPlugin,\n usePlugins,\n type WidgetPlugin,\n} from '@deephaven/plugin';\nimport { WidgetPanel } from './panels';\n\nconst log = Log.module('WidgetLoaderPlugin');\n\nexport function WrapWidgetPlugin(\n plugin: WidgetPlugin\n): React.ForwardRefExoticComponent<PanelProps & React.RefAttributes<unknown>> {\n function Wrapper(props: PanelProps, ref: React.ForwardedRef<unknown>) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const C = plugin.component as any;\n const { metadata } = props;\n\n const hasRef = canHaveRef(C);\n\n return (\n <WidgetPanel\n widgetName={metadata?.name ?? undefined}\n widgetType={plugin.title}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n {hasRef ? (\n <C\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n ref={ref}\n />\n ) : (\n <C\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n />\n )}\n </WidgetPanel>\n );\n }\n\n Wrapper.displayName = `WidgetLoaderPlugin(${\n plugin.component.displayName ?? plugin.name\n })`;\n\n return forwardRef(Wrapper);\n}\n\n/**\n * Widget to automatically open any supported WidgetPlugin types as panels\n * if the widget is emitted from the server as the result of executed code.\n *\n * Does not open panels for widgets that are not supported by any plugins.\n * Does not open panels for widgets that are a component of a larger widget or UI element.\n *\n * @param props Dashboard plugin props\n * @returns React element\n */\nexport function WidgetLoaderPlugin(\n props: Partial<DashboardPluginComponentProps>\n): JSX.Element | null {\n const plugins = usePlugins();\n const supportedTypes = useMemo(() => {\n const typeMap = new Map<string, WidgetPlugin>();\n plugins.forEach(plugin => {\n if (!isWidgetPlugin(plugin)) {\n return;\n }\n\n [plugin.supportedTypes].flat().forEach(supportedType => {\n if (supportedType != null && supportedType !== '') {\n if (typeMap.has(supportedType)) {\n log.warn(\n `Multiple WidgetPlugins handling type ${supportedType}. Replacing ${typeMap.get(\n supportedType\n )?.name} with ${plugin.name} to handle ${supportedType}`\n );\n }\n typeMap.set(supportedType, plugin);\n }\n });\n });\n\n return typeMap;\n }, [plugins]);\n\n assertIsDashboardPluginProps(props);\n const { id, layout, registerComponent } = props;\n\n const handlePanelOpen = useCallback(\n ({\n dragEvent,\n panelId = shortid.generate(),\n fetch,\n widget,\n }: PanelOpenEventDetail) => {\n const { type } = widget;\n const plugin = type != null ? supportedTypes.get(type) : null;\n if (plugin == null) {\n return;\n }\n const name = widget.name ?? type;\n\n const panelProps: DehydratedDashboardPanelProps & {\n fetch?: () => Promise<unknown>;\n } = {\n localDashboardId: id,\n metadata: widget,\n fetch,\n };\n\n const config: ReactComponentConfig = {\n type: 'react-component',\n component: plugin.name,\n props: panelProps,\n title: name,\n id: panelId,\n };\n\n const { root } = layout;\n LayoutUtils.openComponent({ root, config, dragEvent });\n },\n [id, layout, supportedTypes]\n );\n\n useEffect(() => {\n const deregisterFns = [...new Set(supportedTypes.values())].map(plugin => {\n const { panelComponent } = plugin;\n if (panelComponent == null) {\n return registerComponent(plugin.name, WrapWidgetPlugin(plugin));\n }\n return registerComponent(plugin.name, panelComponent);\n });\n\n return () => {\n deregisterFns.forEach(deregister => deregister());\n };\n }, [registerComponent, supportedTypes]);\n\n /**\n * Listen for panel open events so we know when to open a panel\n */\n useListener(layout.eventHub, PanelEvent.OPEN, handlePanelOpen);\n\n return null;\n}\n\nexport default WidgetLoaderPlugin;\n"],"mappings":"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"}
@@ -81,7 +81,7 @@
81
81
  .dropdown-filter .dropdown-filter-value-input input:focus {
82
82
  outline: none;
83
83
  border-bottom: 1px solid var(--dh-color-input-focus-border);
84
- box-shadow: 0 0.2rem 0 hsla(var(--dh-color-accent-hsl), 0.35);
84
+ box-shadow: 0 0.2rem 0 color-mix(in srgb, var(--dh-color-accent) 35%, transparent);
85
85
  }
86
86
 
87
87
  /*# sourceMappingURL=DropdownFilter.css.map */