@deephaven/dashboard-core-plugins 1.26.0 → 1.27.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -180,6 +180,10 @@ export declare class IrisGridPanel extends PureComponent<IrisGridPanelProps, Iri
180
180
  handleLoadError(error: unknown): void;
181
181
  modelInitialized(model: IrisGridModel): void;
182
182
  handleClearAllFilters(): void;
183
+ /**
184
+ * Called when a user clicks the "Reset" button for an error message on the LoadingOverlay.
185
+ */
186
+ handleErrorAction(): void;
183
187
  sendColumnsChange(columns: readonly dh.Column[]): void;
184
188
  startModelListening(model: IrisGridModel): void;
185
189
  stopModelListening(model: IrisGridModel): void;
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridPanel.d.ts","sourceRoot":"","sources":["../../src/panels/IrisGridPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IrisGridPanel.d.ts","sourceRoot":"","sources":["../../src/panels/IrisGridPanel.tsx"],"names":[],"mappings":"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"}
@@ -174,6 +174,7 @@ export class IrisGridPanel extends PureComponent {
174
174
  this.handlePluginFilter = this.handlePluginFilter.bind(this);
175
175
  this.handlePluginFetchColumns = this.handlePluginFetchColumns.bind(this);
176
176
  this.handleClearAllFilters = this.handleClearAllFilters.bind(this);
177
+ this.handleErrorAction = this.handleErrorAction.bind(this);
177
178
  this.irisGrid = /*#__PURE__*/React.createRef();
178
179
  this.pluginRef = /*#__PURE__*/React.createRef();
179
180
  var _panelState = props.panelState;
@@ -560,6 +561,19 @@ export class IrisGridPanel extends PureComponent {
560
561
  irisGrid.clearAllFilters();
561
562
  }
562
563
  }
564
+
565
+ /**
566
+ * Called when a user clicks the "Reset" button for an error message on the LoadingOverlay.
567
+ */
568
+ handleErrorAction() {
569
+ if (this.irisGrid.current != null) {
570
+ this.irisGrid.current.rollback();
571
+ this.setState({
572
+ error: null,
573
+ isLoading: false
574
+ });
575
+ }
576
+ }
563
577
  sendColumnsChange(columns) {
564
578
  log.debug2('sendColumnsChange', columns);
565
579
  var glEventHub = this.props.glEventHub;
@@ -838,6 +852,7 @@ export class IrisGridPanel extends PureComponent {
838
852
  isDisconnected: isDisconnected,
839
853
  isLoading: isLoading,
840
854
  isLoaded: isLoaded,
855
+ onErrorAction: this.irisGrid.current != null ? this.handleErrorAction : undefined,
841
856
  className: "iris-grid-panel",
842
857
  glContainer: glContainer,
843
858
  glEventHub: glEventHub,
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridPanel.js","names":["React","PureComponent","memoize","connect","debounce","DEFAULT_DASHBOARD_ID","LayoutUtils","AdvancedSettings","IrisGrid","IrisGridModel","IrisGridCacheUtils","IrisGridUtils","isIrisGridTableModelTemplate","Log","getSettings","getUser","assertNotNull","PromiseUtils","clamp","IrisGridEvent","getInputFiltersForDashboard","getLinksForDashboard","getColumnSelectionValidatorForDashboard","WidgetPanel","IrisGridPanelTooltip","isIrisGridPanelMetadata","isLegacyIrisGridPanelMetadata","emitFilterColumnsChanged","emitFilterTableChanged","emitLinkPointSelected","emitLinkSourceDataSelected","jsx","_jsx","log","module","DEBOUNCE_PANEL_STATE_UPDATE","getTableNameFromMetadata","metadata","Error","name","table","concat","JSON","stringify","IrisGridPanel","constructor","props","_defineProperty","makeMemoizedGridStateDehydrator","makeMemoizedIrisGridStateDehydrator","columns","inputFilters","getInputFiltersForColumns","filter","_ref","value","excludePanelIds","id","getIdFromPanel","includes","dashboardLinks","pluginFetchColumns","columnSet","Set","i","length","start","panelId","add","columnName","Plugin","model","pluginState","_this$irisGrid$curren","deprecatedProps","panel","className","children","_objectSpread","ref","pluginRef","handlePluginFilter","fetchColumns","handlePluginFetchColumns","tableName","getTableName","selectedRanges","irisGrid","current","state","onStateChange","handlePluginStateChange","isSelectingPartition","partitions","advancedSettings","dehydrateIrisGridPanelState","irisGridPanelState","irisGridState","gridState","description","type","displayType","onPanelStateUpdate","_this$state","oldPanelState","panelState","irisGridUtils","getCachedPanelState","getDehydratedIrisGridPanelState","irisGridStateDehydrator","gridStateDehydrator","debug","setState","handleAdvancedSettingsChange","bind","handleColumnsChanged","handleTableChanged","handleColumnSelected","handleDataSelected","handleError","handleGridStateChange","handleCreateChart","handleShow","handleTabClicked","handleDisconnect","handleReconnect","handleLoadSuccess","handleLoadError","isColumnSelectionValid","handleContextMenu","handleClearAllFilters","createRef","error","isDisconnected","isLoaded","isLoading","isModelReady","undefined","advancedFilters","Map","aggregationSettings","aggregations","showOnTop","DEFAULTS","customColumns","customColumnFormatMap","columnAlignmentMap","isFilterBarShown","quickFilters","sorts","userColumnWidths","userColumnWidthsByName","userRowHeights","reverse","movedColumns","movedRows","rollupConfig","showSearchBar","searchValue","selectedSearchColumns","invertSearchColumns","pluginFilters","modelQueue","pendingDataMap","frozenColumns","irisGridStateOverrides","gridStateOverrides","isStuckToBottom","isStuckToRight","conditionalFormats","selectDistinctColumns","componentDidMount","initModel","componentDidUpdate","prevProps","prevState","makeModel","stopModelListening","close","startModelListening","componentWillUnmount","savePanelState","cancel","modelPromise","_this$props","transformModel","Promise","resolve","then","_ref2","_asyncToGenerator","transformedModel","e","_x","apply","arguments","makeCancelable","resolved","catch","modelParam","_this$state2","dh","_irisGridState$irisGr","_irisGridState$irisGr2","push","m","getModelRollupConfig","originalColumns","initModelQueue","modelInitialized","modelChange","shift","key","_ref3","get","set","filters","_this$irisGridUtils$g","_this$irisGridUtils","formatter","getFiltersFromInputFilters","timeZone","data","_this$pluginRef$curre","_this$pluginRef$curre2","_this$pluginRef$curre3","getMenu","call","tableColumn","columnSelectionValidator","_this$props2","glEventHub","emit","STATE_CHANGED","event","_this$state3","sendColumnsChange","detail","_ref4","settings","flush","_this$props3","sourcePanelId","tableSettings","extractTableSettings","CREATE_CHART","column","row","dataMap","updateGrid","focus","isCanceled","_this$props4","loadPlugin","onModelChanged","loadPanelState","pluginName","clearAllFilters","debug2","addEventListener","EVENT","DISCONNECT","RECONNECT","COLUMNS_CHANGED","TABLE_CHANGED","removeEventListener","getCoordinateForColumn","_gridWrapper$getBound","_allColumnXs$get","_allColumnWidths$get","_ref5","gridWrapper","rect","getBoundingClientRect","width","height","metrics","columnHeaderHeight","allColumnXs","allColumnWidths","right","columnHeaderMaxDepth","columnIndex","getColumnIndexByName","visibleIndex","getVisibleColumn","columnX","columnWidth","x","left","y","top","setFilterMap","filterMap","setAdvancedFilterMap","setFilters","_ref6","_this$state4","indexedQuickFilters","changeFilterColumnNamesToIndexes","_ref7","_ref8","_slicedToArray","isFilterable","indexedAdvancedFilters","_ref9","_ref0","hydrateQuickFilters","hydrateAdvancedFilters","setStateOverrides","overrides","unsetFilterValue","_this$state5","originalIrisGridStateOverrides","savedQuickFilters","savedAdvancedFilters","_IrisGridUtils$hydrat","hydrateIrisGridPanelState","_this$irisGridUtils$h","hydrateIrisGridState","columnHeaderGroups","partitionConfig","_IrisGridUtils$hydrat2","hydrateGridState","_this$irisGrid$curren2","_this$irisGrid$curren3","grid","handleResize","render","_model$description","_panelState$pluginSta","_this$props5","glContainer","getDownloadWorker","links","user","irisGridProps","transformTableOptions","_this$state6","errorMessage","childrenContent","getPluginContent","permissions","canCopy","canDownloadCsv","widgetPanelDescriptor","getWidgetPanelDescriptor","onClearAllFilters","onShow","onTabFocus","onTabClicked","componentPanel","descriptor","renderTabTooltip","alwaysFetchColumns","getAlwaysFetchColumns","columnAllowedCursor","columnNotAllowedCursor","copyCursor","getGridInputFilters","applyInputFiltersOnInit","isSelectingColumn","onColumnSelected","onCreateChart","onDataSelected","onError","onContextMenu","onAdvancedSettingsChange","customFilters","mapStateToProps","_ref1","_ref1$localDashboardI","localDashboardId","ConnectedIrisGridPanel","forwardRef"],"sources":["../../src/panels/IrisGridPanel.tsx"],"sourcesContent":["// Wrapper for the IrisGrid for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, {\n PureComponent,\n type ReactElement,\n type ReactNode,\n type RefObject,\n} from 'react';\nimport memoize from 'memoize-one';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport {\n type DashboardPanelProps,\n DEFAULT_DASHBOARD_ID,\n LayoutUtils,\n type PanelComponent,\n type PanelMetadata,\n} from '@deephaven/dashboard';\nimport {\n AdvancedSettings,\n IrisGrid,\n type IrisGridType,\n IrisGridModel,\n IrisGridCacheUtils,\n IrisGridUtils,\n isIrisGridTableModelTemplate,\n type ColumnName,\n type PendingDataMap,\n type InputFilter,\n type ReadonlyAdvancedFilterMap,\n type AggregationSettings,\n type AdvancedSettingsType,\n type UIRollupConfig,\n type UIRow,\n type ReadonlyQuickFilterMap,\n type FilterMap,\n type QuickFilter,\n type AdvancedFilter,\n type SidebarFormattingRule,\n type IrisGridState,\n type ChartBuilderSettings,\n type DehydratedIrisGridState,\n type DehydratedIrisGridPanelState,\n type ColumnHeaderGroup,\n type IrisGridContextMenuData,\n type PartitionConfig,\n type IrisGridViewProps,\n type TableOptionsTransform,\n type IrisGridModelTransform,\n} from '@deephaven/iris-grid';\nimport {\n type RowDataMap,\n type AdvancedFilterOptions,\n type FormattingRule,\n type SortDescriptor,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n getSettings,\n getUser,\n type RootState,\n type User,\n type WorkspaceSettings,\n} from '@deephaven/redux';\nimport {\n assertNotNull,\n type CancelablePromise,\n type EventT,\n PromiseUtils,\n} from '@deephaven/utils';\nimport { type ResolvableContextAction } from '@deephaven/components';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n type GridState,\n type ModelIndex,\n type ModelSizeMap,\n type MoveOperation,\n} from '@deephaven/grid';\nimport type {\n TablePluginComponent,\n TablePluginElement,\n} from '@deephaven/plugin';\nimport clamp from 'lodash.clamp';\nimport { IrisGridEvent } from '../events';\nimport {\n getInputFiltersForDashboard,\n getLinksForDashboard,\n getColumnSelectionValidatorForDashboard,\n} from '../redux';\nimport WidgetPanel from './WidgetPanel';\nimport './IrisGridPanel.scss';\nimport {\n type Link,\n type LinkColumn,\n type LinkPointOptions,\n} from '../linker/LinkerUtils';\nimport IrisGridPanelTooltip from './IrisGridPanelTooltip';\nimport {\n isIrisGridPanelMetadata,\n isLegacyIrisGridPanelMetadata,\n} from './IrisGridPanelTypes';\nimport { type WidgetPanelDescriptor } from './WidgetPanelTypes';\nimport {\n emitFilterColumnsChanged,\n emitFilterTableChanged,\n} from '../FilterEvents';\nimport {\n emitLinkPointSelected,\n emitLinkSourceDataSelected,\n} from '../linker/LinkerEvent';\n\nconst log = Log.module('IrisGridPanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\ntype ModelQueueFunction = (model: IrisGridModel) => void;\n\ntype ModelQueue = ModelQueueFunction[];\n\nexport interface PanelState {\n gridState: {\n isStuckToBottom: boolean;\n isStuckToRight: boolean;\n movedColumns: readonly {\n from: string | ModelIndex | [string, string] | [ModelIndex, ModelIndex];\n to: string | ModelIndex;\n }[];\n movedRows: readonly MoveOperation[];\n };\n irisGridState: DehydratedIrisGridState;\n irisGridPanelState: DehydratedIrisGridPanelState;\n pluginState: unknown;\n}\n\n// Some of the properties in the loaded panel state may be omitted\n// even though they can't be undefined in the dehydrated state.\n// This can happen when loading the state saved before the properties were added.\ntype LoadedPanelState = PanelState & {\n irisGridPanelState: PanelState['irisGridPanelState'] & {\n partitions?: (string | null)[];\n partition?: string | null;\n };\n};\n\nexport interface OwnProps extends DashboardPanelProps {\n children?: ReactNode;\n panelState?: LoadedPanelState | null;\n makeModel: () => IrisGridModel | Promise<IrisGridModel>;\n\n onStateChange?: (irisGridState: IrisGridState, gridState: GridState) => void;\n onPanelStateUpdate?: (panelState: PanelState) => void;\n\n /** Override the default worker used by IrisGrid to download CSVs. */\n getDownloadWorker?: () => Promise<ServiceWorker>;\n\n /** Load a plugin defined by the table */\n loadPlugin: (pluginName: string) => TablePluginComponent;\n\n /**\n * View-concern overrides (theme, renderer, mouse handlers, metric\n * calculator) forwarded as a single bag to `IrisGrid`. Lets IrisGrid-aware\n * middleware contribute presentation without this panel knowing each\n * concern by name. Threaded down the middleware chain.\n */\n irisGridProps?: Partial<IrisGridViewProps>;\n\n /**\n * Transform applied to the built-in Table Options items before they are\n * rendered. Forwarded to `IrisGrid#transformTableOptions`. Threaded down\n * the middleware chain by IrisGrid-aware plugins.\n */\n transformTableOptions?: TableOptionsTransform;\n\n /**\n * Called with the resolved `IrisGridModel` once it is initialized, so\n * middleware can subscribe to model events (e.g. to recompute a\n * `transformTableOptions` snapshot).\n */\n onModelChanged?: (model: IrisGridModel) => void;\n\n /**\n * Transform applied to the model built by `makeModel` before it is handed\n * to `IrisGrid`. Lets IrisGrid-aware middleware wrap the host-built model\n * (e.g. in a proxy) without taking over model construction. Applied when\n * the model is (re)built, so it must be referentially stable.\n */\n transformModel?: IrisGridModelTransform;\n}\n\ninterface StateProps {\n inputFilters: InputFilter[];\n links: Link[];\n columnSelectionValidator?: (\n panel: PanelComponent,\n tableColumn: LinkColumn,\n options: LinkPointOptions\n ) => boolean;\n user: User;\n settings: WorkspaceSettings;\n}\n\ninterface IrisGridPanelState {\n error: unknown;\n isDisconnected: boolean;\n isLoaded: boolean;\n isLoading: boolean;\n isModelReady: boolean;\n model?: IrisGridModel;\n\n isStuckToBottom: boolean;\n isStuckToRight: boolean;\n\n // State is hydrated from panel state when table is loaded\n conditionalFormats: readonly SidebarFormattingRule[];\n selectDistinctColumns: readonly ColumnName[];\n advancedFilters: ReadonlyAdvancedFilterMap;\n aggregationSettings: AggregationSettings;\n advancedSettings: Map<AdvancedSettingsType, boolean>;\n customColumns: readonly ColumnName[];\n customColumnFormatMap: Map<string, FormattingRule>;\n columnAlignmentMap: Map<string, CanvasTextAlign>;\n isFilterBarShown: boolean;\n quickFilters: ReadonlyQuickFilterMap;\n sorts: readonly SortDescriptor[];\n userColumnWidths: ModelSizeMap;\n userColumnWidthsByName: ReadonlyMap<ColumnName, number>;\n userRowHeights: ModelSizeMap;\n reverse: boolean;\n movedColumns: readonly MoveOperation[];\n movedRows: readonly MoveOperation[];\n isSelectingPartition: boolean;\n partitions: (string | null)[];\n partitionConfig?: PartitionConfig;\n rollupConfig?: UIRollupConfig;\n showSearchBar: boolean;\n searchValue: string;\n selectedSearchColumns?: readonly string[];\n invertSearchColumns: boolean;\n Plugin?: TablePluginComponent;\n pluginFilters: readonly dh.FilterCondition[];\n pluginFetchColumns: readonly string[];\n modelQueue: ModelQueue;\n pendingDataMap?: PendingDataMap<UIRow>;\n frozenColumns?: readonly ColumnName[];\n columnHeaderGroups?: readonly ColumnHeaderGroup[];\n\n // eslint-disable-next-line react/no-unused-state\n panelState?: PanelState | null; // Dehydrated panel state that can load this panel\n irisGridStateOverrides: Partial<DehydratedIrisGridState>;\n gridStateOverrides: Partial<GridState>;\n}\n\nfunction getTableNameFromMetadata(\n metadata: PanelMetadata | null | undefined\n): string {\n if (metadata == null) {\n throw new Error('No metadata provided');\n }\n if (isIrisGridPanelMetadata(metadata)) {\n return metadata.name;\n }\n if (isLegacyIrisGridPanelMetadata(metadata)) {\n return metadata.table;\n }\n\n throw new Error(\n `Unable to determine table name from metadata: ${JSON.stringify(metadata)}`\n );\n}\n\nexport type IrisGridPanelProps = OwnProps & StateProps;\n\nexport class IrisGridPanel extends PureComponent<\n IrisGridPanelProps,\n IrisGridPanelState\n> {\n static defaultProps = {\n onStateChange: (): void => undefined,\n onPanelStateUpdate: (): void => undefined,\n };\n\n static displayName = 'IrisGridPanel';\n\n static COMPONENT = 'IrisGridPanel';\n\n constructor(props: IrisGridPanelProps) {\n super(props);\n\n this.handleAdvancedSettingsChange =\n this.handleAdvancedSettingsChange.bind(this);\n this.handleColumnsChanged = this.handleColumnsChanged.bind(this);\n this.handleTableChanged = this.handleTableChanged.bind(this);\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleDataSelected = this.handleDataSelected.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleGridStateChange = this.handleGridStateChange.bind(this);\n this.handlePluginStateChange = this.handlePluginStateChange.bind(this);\n this.handleCreateChart = this.handleCreateChart.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleTabClicked = this.handleTabClicked.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleLoadSuccess = this.handleLoadSuccess.bind(this);\n this.handleLoadError = this.handleLoadError.bind(this);\n this.isColumnSelectionValid = this.isColumnSelectionValid.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n this.handlePluginFilter = this.handlePluginFilter.bind(this);\n this.handlePluginFetchColumns = this.handlePluginFetchColumns.bind(this);\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n\n this.irisGrid = React.createRef();\n this.pluginRef = React.createRef();\n\n const { panelState } = props;\n\n this.pluginState = null;\n this.irisGridUtils = null;\n\n this.state = {\n error: null,\n isDisconnected: false,\n isLoaded: false,\n isLoading: true,\n isModelReady: false,\n model: undefined,\n\n // State is hydrated from panel state when table is loaded\n advancedFilters: new Map(),\n aggregationSettings: { aggregations: [], showOnTop: false },\n advancedSettings: new Map(AdvancedSettings.DEFAULTS),\n customColumns: [],\n customColumnFormatMap: new Map(),\n columnAlignmentMap: new Map(),\n isFilterBarShown: false,\n quickFilters: new Map(),\n sorts: [],\n userColumnWidths: new Map(),\n userColumnWidthsByName: new Map(),\n userRowHeights: new Map(),\n reverse: false,\n movedColumns: [],\n movedRows: [],\n isSelectingPartition: false,\n partitions: [],\n rollupConfig: undefined,\n showSearchBar: false,\n searchValue: '',\n selectedSearchColumns: undefined,\n invertSearchColumns: true,\n Plugin: undefined,\n pluginFilters: [],\n pluginFetchColumns: [],\n modelQueue: [],\n pendingDataMap: new Map(),\n frozenColumns: undefined,\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n irisGridStateOverrides: {},\n gridStateOverrides: {},\n isStuckToBottom: false,\n isStuckToRight: false,\n conditionalFormats: [],\n selectDistinctColumns: [],\n };\n }\n\n componentDidMount(): void {\n this.initModel();\n }\n\n componentDidUpdate(\n prevProps: IrisGridPanelProps,\n prevState: IrisGridPanelState\n ): void {\n const { model } = this.state;\n const { makeModel } = this.props;\n if (model !== prevState.model) {\n if (prevState.model != null) {\n this.stopModelListening(prevState.model);\n prevState.model.close();\n }\n if (model != null) {\n this.startModelListening(model);\n }\n }\n\n if (makeModel !== prevProps.makeModel) {\n this.initModel();\n }\n }\n\n componentWillUnmount(): void {\n this.savePanelState.cancel();\n\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n this.modelPromise = undefined;\n }\n\n const { model } = this.state;\n if (model) {\n this.stopModelListening(model);\n model.close();\n }\n }\n\n irisGrid: RefObject<IrisGridType>;\n\n pluginRef: RefObject<TablePluginElement>;\n\n modelPromise?: CancelablePromise<IrisGridModel>;\n\n irisGridState?: IrisGridState;\n\n gridState?: GridState;\n\n pluginState: unknown;\n\n private irisGridUtils: IrisGridUtils | null;\n\n private gridStateDehydrator =\n IrisGridCacheUtils.makeMemoizedGridStateDehydrator();\n\n private irisGridStateDehydrator =\n IrisGridCacheUtils.makeMemoizedIrisGridStateDehydrator();\n\n getTableName(): string {\n const { metadata } = this.props;\n return getTableNameFromMetadata(metadata);\n }\n\n getGridInputFilters = memoize(\n (columns: readonly dh.Column[], inputFilters: readonly InputFilter[]) =>\n IrisGridUtils.getInputFiltersForColumns(\n columns,\n // They may have picked a column, but not actually entered a value yet. In that case, don't need to update.\n inputFilters.filter(({ value, excludePanelIds }) => {\n const id = LayoutUtils.getIdFromPanel(this);\n return (\n value != null &&\n (excludePanelIds == null ||\n (id != null && !excludePanelIds.includes(id)))\n );\n })\n )\n );\n\n getAlwaysFetchColumns = memoize(\n (\n dashboardLinks: readonly Link[],\n pluginFetchColumns: readonly string[]\n ): string[] => {\n const id = LayoutUtils.getIdFromPanel(this);\n // Always fetch columns which are the start/source of a link or columns specified by a plugin\n const columnSet = new Set(pluginFetchColumns);\n for (let i = 0; i < dashboardLinks.length; i += 1) {\n const { start } = dashboardLinks[i];\n if (start != null && start.panelId === id) {\n columnSet.add(start.columnName);\n }\n }\n return [...columnSet];\n }\n );\n\n getPluginContent = memoize(\n (\n Plugin: TablePluginComponent | undefined,\n model: IrisGridModel | undefined,\n pluginState: unknown\n ) => {\n if (\n !model ||\n !isIrisGridTableModelTemplate(model) ||\n Plugin == null ||\n model.table == null\n ) {\n return null;\n }\n\n // TODO #2093: Find a better way to handle deprecated panel prop\n const deprecatedProps = {\n panel: this,\n };\n\n return (\n <div className=\"iris-grid-plugin\">\n <Plugin\n ref={this.pluginRef}\n filter={this.handlePluginFilter}\n fetchColumns={this.handlePluginFetchColumns}\n model={model}\n table={model.table}\n tableName={this.getTableName()}\n selectedRanges={this.irisGrid.current?.state.selectedRanges}\n onStateChange={this.handlePluginStateChange}\n pluginState={pluginState}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...deprecatedProps}\n />\n </div>\n );\n }\n );\n\n getDehydratedIrisGridPanelState = memoize(\n (\n model: IrisGridModel,\n isSelectingPartition: boolean,\n partitions: (string | null)[],\n advancedSettings: Map<AdvancedSettingsType, boolean>\n ) =>\n IrisGridUtils.dehydrateIrisGridPanelState(model, {\n isSelectingPartition,\n partitions,\n advancedSettings,\n })\n );\n\n getCachedPanelState = memoize(\n (\n irisGridPanelState: PanelState['irisGridPanelState'],\n irisGridState: PanelState['irisGridState'],\n gridState: PanelState['gridState'],\n pluginState: PanelState['pluginState']\n ): PanelState => ({\n irisGridPanelState,\n irisGridState,\n gridState,\n pluginState,\n })\n );\n\n getWidgetPanelDescriptor = memoize(\n (\n metadata: IrisGridPanelProps['metadata'],\n description?: string\n ): WidgetPanelDescriptor => {\n const name = getTableNameFromMetadata(metadata);\n return {\n type: 'Table',\n displayType: 'Table',\n ...metadata,\n name,\n description,\n };\n }\n );\n\n initModel(): void {\n this.setState({\n isModelReady: false,\n isLoading: true,\n error: null,\n isDisconnected: false,\n });\n const { makeModel, transformModel } = this.props;\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n }\n const modelPromise =\n transformModel != null\n ? Promise.resolve(makeModel()).then(async model => {\n try {\n const transformedModel = await transformModel(model);\n return transformedModel;\n } catch (e) {\n // The host owns the base model's lifecycle; if the transform\n // rejects it never returns a model for us to close, so close\n // the base model here to avoid leaking it.\n model.close();\n throw e;\n }\n })\n : Promise.resolve(makeModel());\n this.modelPromise = PromiseUtils.makeCancelable(modelPromise, resolved =>\n resolved.close()\n );\n this.modelPromise.then(this.handleLoadSuccess).catch(this.handleLoadError);\n }\n\n handleLoadSuccess(modelParam: IrisGridModel): void {\n const model = modelParam;\n const { panelState, irisGridStateOverrides } = this.state;\n const modelQueue: ((m: IrisGridModel) => void)[] = [];\n this.irisGridUtils = new IrisGridUtils(model.dh);\n if (panelState != null) {\n const { irisGridState } = panelState;\n const {\n aggregationSettings,\n customColumns,\n selectDistinctColumns = [],\n rollupConfig,\n } = { ...irisGridState, ...irisGridStateOverrides };\n\n if (customColumns.length > 0) {\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.customColumns = customColumns;\n });\n }\n\n if (rollupConfig != null && rollupConfig.columns.length > 0) {\n // originalColumns might change by the time this model queue item is applied.\n // Instead of pushing a static object, push the function\n // that calculates the config based on the updated model state.\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.rollupConfig = IrisGridUtils.getModelRollupConfig(\n m.originalColumns,\n rollupConfig,\n aggregationSettings\n );\n });\n }\n\n if (selectDistinctColumns.length > 0) {\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.selectDistinctColumns = selectDistinctColumns;\n });\n }\n }\n\n this.setState({ model, modelQueue });\n this.initModelQueue(model, modelQueue);\n }\n\n initModelQueue(modelParam: IrisGridModel, modelQueue: ModelQueue): void {\n const model = modelParam;\n if (modelQueue.length === 0) {\n this.modelInitialized(model);\n return;\n }\n const modelChange = modelQueue.shift();\n log.debug('initModelQueue', modelChange);\n // Apply next model change. Triggers columnschanged event.\n if (modelChange) {\n modelChange(model);\n }\n this.setState({ modelQueue });\n }\n\n handleAdvancedSettingsChange(\n key: AdvancedSettingsType,\n value: boolean\n ): void {\n log.debug('handleAdvancedSettingsChange', key, value);\n this.setState(({ advancedSettings }) =>\n advancedSettings.get(key) === value\n ? null\n : { advancedSettings: new Map(advancedSettings).set(key, value) }\n );\n }\n\n handlePluginFilter(filters: InputFilter[]): void {\n const { model } = this.state;\n assertNotNull(model);\n const { columns, formatter } = model;\n const pluginFilters =\n this.irisGridUtils?.getFiltersFromInputFilters(\n columns,\n filters,\n formatter.timeZone\n ) ?? [];\n this.setState({ pluginFilters });\n }\n\n handlePluginFetchColumns(pluginFetchColumns: string[]): void {\n this.setState({ pluginFetchColumns });\n }\n\n handleContextMenu(data: IrisGridContextMenuData): ResolvableContextAction[] {\n return this.pluginRef.current?.getMenu?.(data) ?? [];\n }\n\n isColumnSelectionValid(tableColumn: dh.Column | null): boolean {\n const { columnSelectionValidator } = this.props;\n if (columnSelectionValidator && tableColumn) {\n return columnSelectionValidator(this, tableColumn, {\n type: 'tableLink',\n });\n }\n return false;\n }\n\n handleGridStateChange(\n irisGridState: IrisGridState,\n gridState: GridState\n ): void {\n this.irisGridState = irisGridState;\n this.gridState = gridState;\n\n // Grid sends it's first state change after it's finished loading\n this.setState({ isLoaded: true, isLoading: false });\n\n this.savePanelState();\n\n const { glEventHub, onStateChange } = this.props;\n glEventHub.emit(IrisGridEvent.STATE_CHANGED, this);\n onStateChange?.(irisGridState, gridState);\n }\n\n handlePluginStateChange(pluginState: unknown): void {\n const { irisGridState, gridState } = this;\n this.pluginState = pluginState;\n // Do not save if there is null state\n // The save will happen when the grid loads\n if (irisGridState !== null && gridState !== null) {\n this.savePanelState();\n }\n }\n\n handleColumnsChanged(event: EventT): void {\n const { isModelReady, model, modelQueue } = this.state;\n if (isModelReady) {\n this.sendColumnsChange((event as CustomEvent).detail);\n } else {\n assertNotNull(model);\n this.initModelQueue(model, modelQueue);\n }\n }\n\n handleTableChanged(event: EventT): void {\n log.debug('handleTableChanged', event);\n const { glEventHub } = this.props;\n const { detail: table } = event as CustomEvent;\n const panelId = LayoutUtils.getIdFromPanel(this);\n assertNotNull(panelId);\n emitFilterTableChanged(glEventHub, panelId, table);\n }\n\n /**\n * Create a chart with the specified settings\n * @param settings The settings from the chart builder\n * @param settings.type The settings from the chart builder\n * @param settings.series The names of the series\n * @param model The IrisGridModel object\n */\n handleCreateChart(\n settings: ChartBuilderSettings,\n model: IrisGridModel\n ): void {\n // Panel state is stored with the created chart, so flush it first\n this.savePanelState.flush();\n\n this.setState(\n () => null,\n () => {\n const { glEventHub, inputFilters, metadata } = this.props;\n const table = this.getTableName();\n const { panelState } = this.state;\n const sourcePanelId = LayoutUtils.getIdFromPanel(this);\n let tableSettings;\n\n if (panelState) {\n tableSettings = IrisGridUtils.extractTableSettings(\n panelState,\n inputFilters\n );\n }\n glEventHub.emit(IrisGridEvent.CREATE_CHART, {\n metadata: {\n ...metadata,\n settings,\n sourcePanelId,\n table,\n tableSettings,\n },\n table: isIrisGridTableModelTemplate(model) ? model.table : undefined,\n });\n }\n );\n }\n\n handleColumnSelected(column: dh.Column): void {\n const { glEventHub } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(this);\n assertNotNull(panelId);\n emitLinkPointSelected(glEventHub, panelId, column, { type: 'tableLink' });\n }\n\n handleDataSelected(row: ModelIndex, dataMap: RowDataMap): void {\n const { glEventHub } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(this);\n assertNotNull(panelId);\n emitLinkSourceDataSelected(glEventHub, panelId, dataMap);\n }\n\n handleShow(): void {\n this.updateGrid();\n }\n\n handleTabClicked(): void {\n if (this.irisGrid.current) {\n this.irisGrid.current.focus();\n }\n }\n\n handleError(error: unknown): void {\n log.error(error);\n this.setState({ error, isLoading: false });\n }\n\n handleDisconnect(): void {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect(): void {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleLoadError(error: unknown): void {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n this.handleError(error);\n }\n\n modelInitialized(model: IrisGridModel): void {\n const { glEventHub, loadPlugin, onModelChanged } = this.props;\n\n this.modelPromise = undefined;\n\n // Custom columns at this point already initialized, can load state\n this.loadPanelState(model);\n\n this.setState({ isModelReady: true });\n\n onModelChanged?.(model);\n\n if (isIrisGridTableModelTemplate(model)) {\n const { table } = model;\n const { pluginName } = table;\n\n if (pluginName !== '') {\n if (loadPlugin != null && pluginName != null) {\n const Plugin = loadPlugin(pluginName);\n this.setState({ Plugin });\n }\n }\n const panelId = LayoutUtils.getIdFromPanel(this);\n assertNotNull(panelId);\n emitFilterTableChanged(glEventHub, panelId, table);\n }\n\n this.sendColumnsChange(model.columns);\n }\n\n handleClearAllFilters(): void {\n const irisGrid = this.irisGrid.current;\n const { isDisconnected } = this.state;\n if (irisGrid != null && !isDisconnected) {\n irisGrid.clearAllFilters();\n }\n }\n\n sendColumnsChange(columns: readonly dh.Column[]): void {\n log.debug2('sendColumnsChange', columns);\n const { glEventHub } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(this);\n assertNotNull(panelId);\n emitFilterColumnsChanged(glEventHub, panelId, columns);\n }\n\n startModelListening(model: IrisGridModel): void {\n model.addEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n this.handleDisconnect\n );\n model.addEventListener(IrisGridModel.EVENT.RECONNECT, this.handleReconnect);\n model.addEventListener(\n IrisGridModel.EVENT.COLUMNS_CHANGED,\n this.handleColumnsChanged\n );\n model.addEventListener(\n IrisGridModel.EVENT.TABLE_CHANGED,\n this.handleTableChanged\n );\n }\n\n stopModelListening(model: IrisGridModel): void {\n model.removeEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n this.handleDisconnect\n );\n model.removeEventListener(\n IrisGridModel.EVENT.RECONNECT,\n this.handleReconnect\n );\n model.removeEventListener(\n IrisGridModel.EVENT.COLUMNS_CHANGED,\n this.handleColumnsChanged\n );\n model.removeEventListener(\n IrisGridModel.EVENT.TABLE_CHANGED,\n this.handleTableChanged\n );\n }\n\n getCoordinateForColumn(columnName: ColumnName): [number, number] | null {\n const { model } = this.state;\n if (!model) {\n return null;\n }\n\n const irisGrid = this.irisGrid.current;\n const { gridWrapper } = irisGrid || {};\n const rect = gridWrapper?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n assertNotNull(irisGrid);\n const { metrics } = irisGrid.state;\n assertNotNull(metrics);\n const {\n columnHeaderHeight,\n allColumnXs,\n allColumnWidths,\n right,\n columnHeaderMaxDepth,\n } = metrics;\n const columnIndex = model.getColumnIndexByName(columnName);\n assertNotNull(columnIndex);\n const visibleIndex = irisGrid.getVisibleColumn(columnIndex);\n const columnX = allColumnXs.get(visibleIndex) ?? 0;\n const columnWidth = allColumnWidths.get(visibleIndex) ?? 0;\n\n const x = clamp(\n visibleIndex > right\n ? rect.right\n : rect.left + columnX + columnWidth * 0.5,\n rect.left,\n rect.right\n );\n const y = rect.top + columnHeaderHeight * columnHeaderMaxDepth;\n\n return [x, y];\n }\n\n setFilterMap(filterMap: FilterMap): void {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setFilterMap(filterMap);\n }\n }\n\n setAdvancedFilterMap(filterMap: ReadonlyAdvancedFilterMap): void {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setAdvancedFilterMap(filterMap);\n }\n }\n\n setFilters({\n quickFilters,\n advancedFilters,\n }: {\n quickFilters: { name: ColumnName; filter: QuickFilter }[];\n advancedFilters: { name: ColumnName; filter: AdvancedFilter }[];\n }): void {\n log.debug('setFilters', quickFilters, advancedFilters);\n const { model, isDisconnected } = this.state;\n const irisGrid = this.irisGrid.current;\n if (irisGrid == null || isDisconnected) {\n log.debug('Ignore setFilters, model disconnected');\n return;\n }\n assertNotNull(model);\n const { columns, formatter } = model;\n const indexedQuickFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n quickFilters\n ).filter(([columnIndex]) => model.isFilterable(columnIndex));\n const indexedAdvancedFilters =\n IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n advancedFilters\n ).filter(([columnIndex]) => model.isFilterable(columnIndex));\n assertNotNull(this.irisGridUtils);\n irisGrid.clearAllFilters();\n irisGrid.setFilters({\n quickFilters: this.irisGridUtils.hydrateQuickFilters(\n columns,\n indexedQuickFilters,\n formatter.timeZone\n ),\n advancedFilters: this.irisGridUtils.hydrateAdvancedFilters(\n columns,\n indexedAdvancedFilters,\n formatter.timeZone\n ),\n });\n }\n\n setStateOverrides(overrides: {\n irisGridState: Partial<DehydratedIrisGridState>;\n gridState: Partial<GridState>;\n }): void {\n log.debug('setStateOverrides', overrides);\n const {\n irisGridState: irisGridStateOverrides,\n gridState: gridStateOverrides,\n } = overrides;\n this.setState({ irisGridStateOverrides, gridStateOverrides }, () => {\n this.initModel();\n });\n }\n\n // eslint-disable-next-line class-methods-use-this\n unsetFilterValue(): void {\n // IrisGridPanel retains the set value after the link is broken\n // We need to define this so LinkerUtils#isLinkablePanel passes the check\n }\n\n loadPanelState(model: IrisGridModel): void {\n const {\n panelState,\n irisGridStateOverrides: originalIrisGridStateOverrides,\n gridStateOverrides,\n } = this.state;\n if (panelState == null) {\n return;\n }\n\n try {\n const { gridState, irisGridState, irisGridPanelState } = panelState;\n const irisGridStateOverrides = { ...originalIrisGridStateOverrides };\n const {\n quickFilters: savedQuickFilters,\n advancedFilters: savedAdvancedFilters,\n } = irisGridStateOverrides;\n if (savedQuickFilters) {\n irisGridStateOverrides.quickFilters =\n IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n savedQuickFilters as unknown as {\n name: string;\n filter: {\n text: string;\n };\n }[]\n );\n }\n if (savedAdvancedFilters) {\n irisGridStateOverrides.advancedFilters =\n IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n savedAdvancedFilters as unknown as {\n name: string;\n filter: { options: AdvancedFilterOptions };\n }[]\n );\n }\n const { isSelectingPartition, partitions, advancedSettings } =\n IrisGridUtils.hydrateIrisGridPanelState(model, irisGridPanelState);\n assertNotNull(this.irisGridUtils);\n const {\n advancedFilters,\n customColumns,\n customColumnFormatMap,\n columnAlignmentMap,\n isFilterBarShown,\n quickFilters,\n reverse,\n rollupConfig,\n aggregationSettings,\n sorts,\n userColumnWidths,\n userColumnWidthsByName,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n conditionalFormats,\n columnHeaderGroups,\n partitionConfig,\n } = this.irisGridUtils.hydrateIrisGridState(model, {\n ...irisGridState,\n ...irisGridStateOverrides,\n });\n const { isStuckToBottom, isStuckToRight, movedColumns, movedRows } =\n IrisGridUtils.hydrateGridState(\n model,\n { ...gridState, ...gridStateOverrides },\n irisGridState.customColumns\n );\n this.setState({\n advancedFilters,\n advancedSettings,\n conditionalFormats,\n customColumns,\n customColumnFormatMap,\n columnAlignmentMap,\n isFilterBarShown,\n isSelectingPartition,\n movedColumns,\n movedRows,\n partitions,\n quickFilters,\n reverse,\n rollupConfig,\n aggregationSettings,\n sorts,\n userColumnWidths,\n userColumnWidthsByName,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n isStuckToBottom,\n isStuckToRight,\n columnHeaderGroups,\n partitionConfig,\n });\n } catch (error) {\n log.error('loadPanelState failed to load panelState', panelState, error);\n }\n }\n\n savePanelState = debounce(() => {\n const { irisGridState, gridState, pluginState } = this;\n assertNotNull(irisGridState);\n const { onPanelStateUpdate } = this.props;\n const {\n model,\n panelState: oldPanelState,\n isSelectingPartition,\n partitions,\n advancedSettings,\n } = this.state;\n assertNotNull(this.irisGridUtils);\n assertNotNull(model);\n assertNotNull(gridState);\n\n const panelState = this.getCachedPanelState(\n this.getDehydratedIrisGridPanelState(\n model,\n isSelectingPartition,\n partitions,\n advancedSettings\n ),\n this.irisGridStateDehydrator(model, irisGridState),\n this.gridStateDehydrator(model, gridState),\n pluginState\n );\n\n if (panelState !== oldPanelState) {\n log.debug('Saving panel state', this, panelState);\n\n this.setState({ panelState });\n onPanelStateUpdate?.(panelState);\n }\n }, DEBOUNCE_PANEL_STATE_UPDATE);\n\n updateGrid(): void {\n const grid = this.irisGrid.current?.grid ?? null;\n if (!grid) return;\n\n // handle resize will verify state and draw and update\n grid.handleResize();\n }\n\n render(): ReactElement {\n const {\n children,\n glContainer,\n glEventHub,\n columnSelectionValidator,\n getDownloadWorker,\n inputFilters,\n links,\n metadata,\n panelState,\n user,\n settings,\n irisGridProps,\n transformTableOptions,\n } = this.props;\n const {\n advancedFilters,\n aggregationSettings,\n advancedSettings,\n conditionalFormats,\n customColumns,\n customColumnFormatMap,\n columnAlignmentMap,\n error,\n isDisconnected,\n isFilterBarShown,\n isSelectingPartition,\n isStuckToBottom,\n isStuckToRight,\n isLoaded,\n isLoading,\n isModelReady,\n model,\n movedColumns,\n movedRows,\n partitions,\n partitionConfig,\n quickFilters,\n reverse,\n rollupConfig,\n sorts,\n userColumnWidths,\n userColumnWidthsByName,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n Plugin,\n pluginFilters,\n pluginFetchColumns,\n pendingDataMap,\n frozenColumns,\n columnHeaderGroups,\n } = this.state;\n const errorMessage =\n error != null ? `Unable to open table. ${error}` : undefined;\n const description = model?.description ?? undefined;\n const pluginState = panelState?.pluginState ?? null;\n const childrenContent =\n children ?? this.getPluginContent(Plugin, model, pluginState);\n const { permissions } = user;\n const { canCopy, canDownloadCsv } = permissions;\n const widgetPanelDescriptor = this.getWidgetPanelDescriptor(\n metadata,\n description\n );\n\n return (\n <WidgetPanel\n errorMessage={errorMessage}\n isDisconnected={isDisconnected}\n isLoading={isLoading}\n isLoaded={isLoaded}\n className=\"iris-grid-panel\"\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={this.handleClearAllFilters}\n onShow={this.handleShow}\n onTabFocus={this.handleShow}\n onTabClicked={this.handleTabClicked}\n componentPanel={this}\n descriptor={widgetPanelDescriptor}\n renderTabTooltip={() => (\n <IrisGridPanelTooltip\n descriptor={widgetPanelDescriptor}\n model={model}\n />\n )}\n >\n {isModelReady && model && (\n <IrisGrid\n advancedFilters={advancedFilters}\n aggregationSettings={aggregationSettings}\n advancedSettings={advancedSettings}\n alwaysFetchColumns={this.getAlwaysFetchColumns(\n links,\n pluginFetchColumns\n )}\n columnAllowedCursor=\"linker\"\n columnNotAllowedCursor=\"linker-not-allowed\"\n copyCursor=\"copy\"\n customColumns={customColumns}\n customColumnFormatMap={customColumnFormatMap}\n columnAlignmentMap={columnAlignmentMap}\n columnSelectionValidator={this.isColumnSelectionValid}\n conditionalFormats={conditionalFormats}\n inputFilters={this.getGridInputFilters(model.columns, inputFilters)}\n applyInputFiltersOnInit={panelState == null}\n isFilterBarShown={isFilterBarShown}\n isSelectingColumn={columnSelectionValidator != null}\n isSelectingPartition={isSelectingPartition}\n isStuckToBottom={isStuckToBottom}\n isStuckToRight={isStuckToRight}\n movedColumns={movedColumns}\n movedRows={movedRows}\n partitions={partitions}\n partitionConfig={partitionConfig}\n quickFilters={quickFilters}\n reverse={reverse}\n rollupConfig={rollupConfig}\n settings={settings}\n sorts={sorts}\n userColumnWidths={userColumnWidths}\n userColumnWidthsByName={userColumnWidthsByName}\n userRowHeights={userRowHeights}\n model={model}\n showSearchBar={showSearchBar}\n searchValue={searchValue}\n selectedSearchColumns={selectedSearchColumns}\n selectDistinctColumns={selectDistinctColumns}\n invertSearchColumns={invertSearchColumns}\n onColumnSelected={this.handleColumnSelected}\n onCreateChart={this.handleCreateChart}\n onDataSelected={this.handleDataSelected}\n onError={this.handleError}\n onStateChange={this.handleGridStateChange}\n onContextMenu={this.handleContextMenu}\n onAdvancedSettingsChange={this.handleAdvancedSettingsChange}\n customFilters={pluginFilters}\n pendingDataMap={pendingDataMap}\n canCopy={canCopy}\n canDownloadCsv={canDownloadCsv}\n ref={this.irisGrid}\n getDownloadWorker={getDownloadWorker}\n frozenColumns={frozenColumns}\n columnHeaderGroups={columnHeaderGroups}\n transformTableOptions={transformTableOptions}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...irisGridProps}\n >\n {childrenContent}\n </IrisGrid>\n )}\n </WidgetPanel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n { localDashboardId = DEFAULT_DASHBOARD_ID, glContainer }: OwnProps\n): StateProps => ({\n inputFilters: getInputFiltersForDashboard(state, localDashboardId),\n links: getLinksForDashboard(state, localDashboardId),\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n user: getUser(state),\n settings: getSettings(state),\n});\n\nconst ConnectedIrisGridPanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(IrisGridPanel);\n\nexport default ConnectedIrisGridPanel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"IrisGridPanel.js","names":["React","PureComponent","memoize","connect","debounce","DEFAULT_DASHBOARD_ID","LayoutUtils","AdvancedSettings","IrisGrid","IrisGridModel","IrisGridCacheUtils","IrisGridUtils","isIrisGridTableModelTemplate","Log","getSettings","getUser","assertNotNull","PromiseUtils","clamp","IrisGridEvent","getInputFiltersForDashboard","getLinksForDashboard","getColumnSelectionValidatorForDashboard","WidgetPanel","IrisGridPanelTooltip","isIrisGridPanelMetadata","isLegacyIrisGridPanelMetadata","emitFilterColumnsChanged","emitFilterTableChanged","emitLinkPointSelected","emitLinkSourceDataSelected","jsx","_jsx","log","module","DEBOUNCE_PANEL_STATE_UPDATE","getTableNameFromMetadata","metadata","Error","name","table","concat","JSON","stringify","IrisGridPanel","constructor","props","_defineProperty","makeMemoizedGridStateDehydrator","makeMemoizedIrisGridStateDehydrator","columns","inputFilters","getInputFiltersForColumns","filter","_ref","value","excludePanelIds","id","getIdFromPanel","includes","dashboardLinks","pluginFetchColumns","columnSet","Set","i","length","start","panelId","add","columnName","Plugin","model","pluginState","_this$irisGrid$curren","deprecatedProps","panel","className","children","_objectSpread","ref","pluginRef","handlePluginFilter","fetchColumns","handlePluginFetchColumns","tableName","getTableName","selectedRanges","irisGrid","current","state","onStateChange","handlePluginStateChange","isSelectingPartition","partitions","advancedSettings","dehydrateIrisGridPanelState","irisGridPanelState","irisGridState","gridState","description","type","displayType","onPanelStateUpdate","_this$state","oldPanelState","panelState","irisGridUtils","getCachedPanelState","getDehydratedIrisGridPanelState","irisGridStateDehydrator","gridStateDehydrator","debug","setState","handleAdvancedSettingsChange","bind","handleColumnsChanged","handleTableChanged","handleColumnSelected","handleDataSelected","handleError","handleGridStateChange","handleCreateChart","handleShow","handleTabClicked","handleDisconnect","handleReconnect","handleLoadSuccess","handleLoadError","isColumnSelectionValid","handleContextMenu","handleClearAllFilters","handleErrorAction","createRef","error","isDisconnected","isLoaded","isLoading","isModelReady","undefined","advancedFilters","Map","aggregationSettings","aggregations","showOnTop","DEFAULTS","customColumns","customColumnFormatMap","columnAlignmentMap","isFilterBarShown","quickFilters","sorts","userColumnWidths","userColumnWidthsByName","userRowHeights","reverse","movedColumns","movedRows","rollupConfig","showSearchBar","searchValue","selectedSearchColumns","invertSearchColumns","pluginFilters","modelQueue","pendingDataMap","frozenColumns","irisGridStateOverrides","gridStateOverrides","isStuckToBottom","isStuckToRight","conditionalFormats","selectDistinctColumns","componentDidMount","initModel","componentDidUpdate","prevProps","prevState","makeModel","stopModelListening","close","startModelListening","componentWillUnmount","savePanelState","cancel","modelPromise","_this$props","transformModel","Promise","resolve","then","_ref2","_asyncToGenerator","transformedModel","e","_x","apply","arguments","makeCancelable","resolved","catch","modelParam","_this$state2","dh","_irisGridState$irisGr","_irisGridState$irisGr2","push","m","getModelRollupConfig","originalColumns","initModelQueue","modelInitialized","modelChange","shift","key","_ref3","get","set","filters","_this$irisGridUtils$g","_this$irisGridUtils","formatter","getFiltersFromInputFilters","timeZone","data","_this$pluginRef$curre","_this$pluginRef$curre2","_this$pluginRef$curre3","getMenu","call","tableColumn","columnSelectionValidator","_this$props2","glEventHub","emit","STATE_CHANGED","event","_this$state3","sendColumnsChange","detail","_ref4","settings","flush","_this$props3","sourcePanelId","tableSettings","extractTableSettings","CREATE_CHART","column","row","dataMap","updateGrid","focus","isCanceled","_this$props4","loadPlugin","onModelChanged","loadPanelState","pluginName","clearAllFilters","rollback","debug2","addEventListener","EVENT","DISCONNECT","RECONNECT","COLUMNS_CHANGED","TABLE_CHANGED","removeEventListener","getCoordinateForColumn","_gridWrapper$getBound","_allColumnXs$get","_allColumnWidths$get","_ref5","gridWrapper","rect","getBoundingClientRect","width","height","metrics","columnHeaderHeight","allColumnXs","allColumnWidths","right","columnHeaderMaxDepth","columnIndex","getColumnIndexByName","visibleIndex","getVisibleColumn","columnX","columnWidth","x","left","y","top","setFilterMap","filterMap","setAdvancedFilterMap","setFilters","_ref6","_this$state4","indexedQuickFilters","changeFilterColumnNamesToIndexes","_ref7","_ref8","_slicedToArray","isFilterable","indexedAdvancedFilters","_ref9","_ref0","hydrateQuickFilters","hydrateAdvancedFilters","setStateOverrides","overrides","unsetFilterValue","_this$state5","originalIrisGridStateOverrides","savedQuickFilters","savedAdvancedFilters","_IrisGridUtils$hydrat","hydrateIrisGridPanelState","_this$irisGridUtils$h","hydrateIrisGridState","columnHeaderGroups","partitionConfig","_IrisGridUtils$hydrat2","hydrateGridState","_this$irisGrid$curren2","_this$irisGrid$curren3","grid","handleResize","render","_model$description","_panelState$pluginSta","_this$props5","glContainer","getDownloadWorker","links","user","irisGridProps","transformTableOptions","_this$state6","errorMessage","childrenContent","getPluginContent","permissions","canCopy","canDownloadCsv","widgetPanelDescriptor","getWidgetPanelDescriptor","onErrorAction","onClearAllFilters","onShow","onTabFocus","onTabClicked","componentPanel","descriptor","renderTabTooltip","alwaysFetchColumns","getAlwaysFetchColumns","columnAllowedCursor","columnNotAllowedCursor","copyCursor","getGridInputFilters","applyInputFiltersOnInit","isSelectingColumn","onColumnSelected","onCreateChart","onDataSelected","onError","onContextMenu","onAdvancedSettingsChange","customFilters","mapStateToProps","_ref1","_ref1$localDashboardI","localDashboardId","ConnectedIrisGridPanel","forwardRef"],"sources":["../../src/panels/IrisGridPanel.tsx"],"sourcesContent":["// Wrapper for the IrisGrid for use in a golden layout container\n// Will probably need to handle window popping out from golden layout here.\nimport React, {\n PureComponent,\n type ReactElement,\n type ReactNode,\n type RefObject,\n} from 'react';\nimport memoize from 'memoize-one';\nimport { connect } from 'react-redux';\nimport debounce from 'lodash.debounce';\nimport {\n type DashboardPanelProps,\n DEFAULT_DASHBOARD_ID,\n LayoutUtils,\n type PanelComponent,\n type PanelMetadata,\n} from '@deephaven/dashboard';\nimport {\n AdvancedSettings,\n IrisGrid,\n type IrisGridType,\n IrisGridModel,\n IrisGridCacheUtils,\n IrisGridUtils,\n isIrisGridTableModelTemplate,\n type ColumnName,\n type PendingDataMap,\n type InputFilter,\n type ReadonlyAdvancedFilterMap,\n type AggregationSettings,\n type AdvancedSettingsType,\n type UIRollupConfig,\n type UIRow,\n type ReadonlyQuickFilterMap,\n type FilterMap,\n type QuickFilter,\n type AdvancedFilter,\n type SidebarFormattingRule,\n type IrisGridState,\n type ChartBuilderSettings,\n type DehydratedIrisGridState,\n type DehydratedIrisGridPanelState,\n type ColumnHeaderGroup,\n type IrisGridContextMenuData,\n type PartitionConfig,\n type IrisGridViewProps,\n type TableOptionsTransform,\n type IrisGridModelTransform,\n} from '@deephaven/iris-grid';\nimport {\n type RowDataMap,\n type AdvancedFilterOptions,\n type FormattingRule,\n type SortDescriptor,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n getSettings,\n getUser,\n type RootState,\n type User,\n type WorkspaceSettings,\n} from '@deephaven/redux';\nimport {\n assertNotNull,\n type CancelablePromise,\n type EventT,\n PromiseUtils,\n} from '@deephaven/utils';\nimport { type ResolvableContextAction } from '@deephaven/components';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n type GridState,\n type ModelIndex,\n type ModelSizeMap,\n type MoveOperation,\n} from '@deephaven/grid';\nimport type {\n TablePluginComponent,\n TablePluginElement,\n} from '@deephaven/plugin';\nimport clamp from 'lodash.clamp';\nimport { IrisGridEvent } from '../events';\nimport {\n getInputFiltersForDashboard,\n getLinksForDashboard,\n getColumnSelectionValidatorForDashboard,\n} from '../redux';\nimport WidgetPanel from './WidgetPanel';\nimport './IrisGridPanel.scss';\nimport {\n type Link,\n type LinkColumn,\n type LinkPointOptions,\n} from '../linker/LinkerUtils';\nimport IrisGridPanelTooltip from './IrisGridPanelTooltip';\nimport {\n isIrisGridPanelMetadata,\n isLegacyIrisGridPanelMetadata,\n} from './IrisGridPanelTypes';\nimport { type WidgetPanelDescriptor } from './WidgetPanelTypes';\nimport {\n emitFilterColumnsChanged,\n emitFilterTableChanged,\n} from '../FilterEvents';\nimport {\n emitLinkPointSelected,\n emitLinkSourceDataSelected,\n} from '../linker/LinkerEvent';\n\nconst log = Log.module('IrisGridPanel');\n\nconst DEBOUNCE_PANEL_STATE_UPDATE = 500;\n\ntype ModelQueueFunction = (model: IrisGridModel) => void;\n\ntype ModelQueue = ModelQueueFunction[];\n\nexport interface PanelState {\n gridState: {\n isStuckToBottom: boolean;\n isStuckToRight: boolean;\n movedColumns: readonly {\n from: string | ModelIndex | [string, string] | [ModelIndex, ModelIndex];\n to: string | ModelIndex;\n }[];\n movedRows: readonly MoveOperation[];\n };\n irisGridState: DehydratedIrisGridState;\n irisGridPanelState: DehydratedIrisGridPanelState;\n pluginState: unknown;\n}\n\n// Some of the properties in the loaded panel state may be omitted\n// even though they can't be undefined in the dehydrated state.\n// This can happen when loading the state saved before the properties were added.\ntype LoadedPanelState = PanelState & {\n irisGridPanelState: PanelState['irisGridPanelState'] & {\n partitions?: (string | null)[];\n partition?: string | null;\n };\n};\n\nexport interface OwnProps extends DashboardPanelProps {\n children?: ReactNode;\n panelState?: LoadedPanelState | null;\n makeModel: () => IrisGridModel | Promise<IrisGridModel>;\n\n onStateChange?: (irisGridState: IrisGridState, gridState: GridState) => void;\n onPanelStateUpdate?: (panelState: PanelState) => void;\n\n /** Override the default worker used by IrisGrid to download CSVs. */\n getDownloadWorker?: () => Promise<ServiceWorker>;\n\n /** Load a plugin defined by the table */\n loadPlugin: (pluginName: string) => TablePluginComponent;\n\n /**\n * View-concern overrides (theme, renderer, mouse handlers, metric\n * calculator) forwarded as a single bag to `IrisGrid`. Lets IrisGrid-aware\n * middleware contribute presentation without this panel knowing each\n * concern by name. Threaded down the middleware chain.\n */\n irisGridProps?: Partial<IrisGridViewProps>;\n\n /**\n * Transform applied to the built-in Table Options items before they are\n * rendered. Forwarded to `IrisGrid#transformTableOptions`. Threaded down\n * the middleware chain by IrisGrid-aware plugins.\n */\n transformTableOptions?: TableOptionsTransform;\n\n /**\n * Called with the resolved `IrisGridModel` once it is initialized, so\n * middleware can subscribe to model events (e.g. to recompute a\n * `transformTableOptions` snapshot).\n */\n onModelChanged?: (model: IrisGridModel) => void;\n\n /**\n * Transform applied to the model built by `makeModel` before it is handed\n * to `IrisGrid`. Lets IrisGrid-aware middleware wrap the host-built model\n * (e.g. in a proxy) without taking over model construction. Applied when\n * the model is (re)built, so it must be referentially stable.\n */\n transformModel?: IrisGridModelTransform;\n}\n\ninterface StateProps {\n inputFilters: InputFilter[];\n links: Link[];\n columnSelectionValidator?: (\n panel: PanelComponent,\n tableColumn: LinkColumn,\n options: LinkPointOptions\n ) => boolean;\n user: User;\n settings: WorkspaceSettings;\n}\n\ninterface IrisGridPanelState {\n error: unknown;\n isDisconnected: boolean;\n isLoaded: boolean;\n isLoading: boolean;\n isModelReady: boolean;\n model?: IrisGridModel;\n\n isStuckToBottom: boolean;\n isStuckToRight: boolean;\n\n // State is hydrated from panel state when table is loaded\n conditionalFormats: readonly SidebarFormattingRule[];\n selectDistinctColumns: readonly ColumnName[];\n advancedFilters: ReadonlyAdvancedFilterMap;\n aggregationSettings: AggregationSettings;\n advancedSettings: Map<AdvancedSettingsType, boolean>;\n customColumns: readonly ColumnName[];\n customColumnFormatMap: Map<string, FormattingRule>;\n columnAlignmentMap: Map<string, CanvasTextAlign>;\n isFilterBarShown: boolean;\n quickFilters: ReadonlyQuickFilterMap;\n sorts: readonly SortDescriptor[];\n userColumnWidths: ModelSizeMap;\n userColumnWidthsByName: ReadonlyMap<ColumnName, number>;\n userRowHeights: ModelSizeMap;\n reverse: boolean;\n movedColumns: readonly MoveOperation[];\n movedRows: readonly MoveOperation[];\n isSelectingPartition: boolean;\n partitions: (string | null)[];\n partitionConfig?: PartitionConfig;\n rollupConfig?: UIRollupConfig;\n showSearchBar: boolean;\n searchValue: string;\n selectedSearchColumns?: readonly string[];\n invertSearchColumns: boolean;\n Plugin?: TablePluginComponent;\n pluginFilters: readonly dh.FilterCondition[];\n pluginFetchColumns: readonly string[];\n modelQueue: ModelQueue;\n pendingDataMap?: PendingDataMap<UIRow>;\n frozenColumns?: readonly ColumnName[];\n columnHeaderGroups?: readonly ColumnHeaderGroup[];\n\n // eslint-disable-next-line react/no-unused-state\n panelState?: PanelState | null; // Dehydrated panel state that can load this panel\n irisGridStateOverrides: Partial<DehydratedIrisGridState>;\n gridStateOverrides: Partial<GridState>;\n}\n\nfunction getTableNameFromMetadata(\n metadata: PanelMetadata | null | undefined\n): string {\n if (metadata == null) {\n throw new Error('No metadata provided');\n }\n if (isIrisGridPanelMetadata(metadata)) {\n return metadata.name;\n }\n if (isLegacyIrisGridPanelMetadata(metadata)) {\n return metadata.table;\n }\n\n throw new Error(\n `Unable to determine table name from metadata: ${JSON.stringify(metadata)}`\n );\n}\n\nexport type IrisGridPanelProps = OwnProps & StateProps;\n\nexport class IrisGridPanel extends PureComponent<\n IrisGridPanelProps,\n IrisGridPanelState\n> {\n static defaultProps = {\n onStateChange: (): void => undefined,\n onPanelStateUpdate: (): void => undefined,\n };\n\n static displayName = 'IrisGridPanel';\n\n static COMPONENT = 'IrisGridPanel';\n\n constructor(props: IrisGridPanelProps) {\n super(props);\n\n this.handleAdvancedSettingsChange =\n this.handleAdvancedSettingsChange.bind(this);\n this.handleColumnsChanged = this.handleColumnsChanged.bind(this);\n this.handleTableChanged = this.handleTableChanged.bind(this);\n this.handleColumnSelected = this.handleColumnSelected.bind(this);\n this.handleDataSelected = this.handleDataSelected.bind(this);\n this.handleError = this.handleError.bind(this);\n this.handleGridStateChange = this.handleGridStateChange.bind(this);\n this.handlePluginStateChange = this.handlePluginStateChange.bind(this);\n this.handleCreateChart = this.handleCreateChart.bind(this);\n this.handleShow = this.handleShow.bind(this);\n this.handleTabClicked = this.handleTabClicked.bind(this);\n this.handleDisconnect = this.handleDisconnect.bind(this);\n this.handleReconnect = this.handleReconnect.bind(this);\n this.handleLoadSuccess = this.handleLoadSuccess.bind(this);\n this.handleLoadError = this.handleLoadError.bind(this);\n this.isColumnSelectionValid = this.isColumnSelectionValid.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n this.handlePluginFilter = this.handlePluginFilter.bind(this);\n this.handlePluginFetchColumns = this.handlePluginFetchColumns.bind(this);\n this.handleClearAllFilters = this.handleClearAllFilters.bind(this);\n this.handleErrorAction = this.handleErrorAction.bind(this);\n\n this.irisGrid = React.createRef();\n this.pluginRef = React.createRef();\n\n const { panelState } = props;\n\n this.pluginState = null;\n this.irisGridUtils = null;\n\n this.state = {\n error: null,\n isDisconnected: false,\n isLoaded: false,\n isLoading: true,\n isModelReady: false,\n model: undefined,\n\n // State is hydrated from panel state when table is loaded\n advancedFilters: new Map(),\n aggregationSettings: { aggregations: [], showOnTop: false },\n advancedSettings: new Map(AdvancedSettings.DEFAULTS),\n customColumns: [],\n customColumnFormatMap: new Map(),\n columnAlignmentMap: new Map(),\n isFilterBarShown: false,\n quickFilters: new Map(),\n sorts: [],\n userColumnWidths: new Map(),\n userColumnWidthsByName: new Map(),\n userRowHeights: new Map(),\n reverse: false,\n movedColumns: [],\n movedRows: [],\n isSelectingPartition: false,\n partitions: [],\n rollupConfig: undefined,\n showSearchBar: false,\n searchValue: '',\n selectedSearchColumns: undefined,\n invertSearchColumns: true,\n Plugin: undefined,\n pluginFilters: [],\n pluginFetchColumns: [],\n modelQueue: [],\n pendingDataMap: new Map(),\n frozenColumns: undefined,\n\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n irisGridStateOverrides: {},\n gridStateOverrides: {},\n isStuckToBottom: false,\n isStuckToRight: false,\n conditionalFormats: [],\n selectDistinctColumns: [],\n };\n }\n\n componentDidMount(): void {\n this.initModel();\n }\n\n componentDidUpdate(\n prevProps: IrisGridPanelProps,\n prevState: IrisGridPanelState\n ): void {\n const { model } = this.state;\n const { makeModel } = this.props;\n if (model !== prevState.model) {\n if (prevState.model != null) {\n this.stopModelListening(prevState.model);\n prevState.model.close();\n }\n if (model != null) {\n this.startModelListening(model);\n }\n }\n\n if (makeModel !== prevProps.makeModel) {\n this.initModel();\n }\n }\n\n componentWillUnmount(): void {\n this.savePanelState.cancel();\n\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n this.modelPromise = undefined;\n }\n\n const { model } = this.state;\n if (model) {\n this.stopModelListening(model);\n model.close();\n }\n }\n\n irisGrid: RefObject<IrisGridType>;\n\n pluginRef: RefObject<TablePluginElement>;\n\n modelPromise?: CancelablePromise<IrisGridModel>;\n\n irisGridState?: IrisGridState;\n\n gridState?: GridState;\n\n pluginState: unknown;\n\n private irisGridUtils: IrisGridUtils | null;\n\n private gridStateDehydrator =\n IrisGridCacheUtils.makeMemoizedGridStateDehydrator();\n\n private irisGridStateDehydrator =\n IrisGridCacheUtils.makeMemoizedIrisGridStateDehydrator();\n\n getTableName(): string {\n const { metadata } = this.props;\n return getTableNameFromMetadata(metadata);\n }\n\n getGridInputFilters = memoize(\n (columns: readonly dh.Column[], inputFilters: readonly InputFilter[]) =>\n IrisGridUtils.getInputFiltersForColumns(\n columns,\n // They may have picked a column, but not actually entered a value yet. In that case, don't need to update.\n inputFilters.filter(({ value, excludePanelIds }) => {\n const id = LayoutUtils.getIdFromPanel(this);\n return (\n value != null &&\n (excludePanelIds == null ||\n (id != null && !excludePanelIds.includes(id)))\n );\n })\n )\n );\n\n getAlwaysFetchColumns = memoize(\n (\n dashboardLinks: readonly Link[],\n pluginFetchColumns: readonly string[]\n ): string[] => {\n const id = LayoutUtils.getIdFromPanel(this);\n // Always fetch columns which are the start/source of a link or columns specified by a plugin\n const columnSet = new Set(pluginFetchColumns);\n for (let i = 0; i < dashboardLinks.length; i += 1) {\n const { start } = dashboardLinks[i];\n if (start != null && start.panelId === id) {\n columnSet.add(start.columnName);\n }\n }\n return [...columnSet];\n }\n );\n\n getPluginContent = memoize(\n (\n Plugin: TablePluginComponent | undefined,\n model: IrisGridModel | undefined,\n pluginState: unknown\n ) => {\n if (\n !model ||\n !isIrisGridTableModelTemplate(model) ||\n Plugin == null ||\n model.table == null\n ) {\n return null;\n }\n\n // TODO #2093: Find a better way to handle deprecated panel prop\n const deprecatedProps = {\n panel: this,\n };\n\n return (\n <div className=\"iris-grid-plugin\">\n <Plugin\n ref={this.pluginRef}\n filter={this.handlePluginFilter}\n fetchColumns={this.handlePluginFetchColumns}\n model={model}\n table={model.table}\n tableName={this.getTableName()}\n selectedRanges={this.irisGrid.current?.state.selectedRanges}\n onStateChange={this.handlePluginStateChange}\n pluginState={pluginState}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...deprecatedProps}\n />\n </div>\n );\n }\n );\n\n getDehydratedIrisGridPanelState = memoize(\n (\n model: IrisGridModel,\n isSelectingPartition: boolean,\n partitions: (string | null)[],\n advancedSettings: Map<AdvancedSettingsType, boolean>\n ) =>\n IrisGridUtils.dehydrateIrisGridPanelState(model, {\n isSelectingPartition,\n partitions,\n advancedSettings,\n })\n );\n\n getCachedPanelState = memoize(\n (\n irisGridPanelState: PanelState['irisGridPanelState'],\n irisGridState: PanelState['irisGridState'],\n gridState: PanelState['gridState'],\n pluginState: PanelState['pluginState']\n ): PanelState => ({\n irisGridPanelState,\n irisGridState,\n gridState,\n pluginState,\n })\n );\n\n getWidgetPanelDescriptor = memoize(\n (\n metadata: IrisGridPanelProps['metadata'],\n description?: string\n ): WidgetPanelDescriptor => {\n const name = getTableNameFromMetadata(metadata);\n return {\n type: 'Table',\n displayType: 'Table',\n ...metadata,\n name,\n description,\n };\n }\n );\n\n initModel(): void {\n this.setState({\n isModelReady: false,\n isLoading: true,\n error: null,\n isDisconnected: false,\n });\n const { makeModel, transformModel } = this.props;\n if (this.modelPromise != null) {\n this.modelPromise.cancel();\n }\n const modelPromise =\n transformModel != null\n ? Promise.resolve(makeModel()).then(async model => {\n try {\n const transformedModel = await transformModel(model);\n return transformedModel;\n } catch (e) {\n // The host owns the base model's lifecycle; if the transform\n // rejects it never returns a model for us to close, so close\n // the base model here to avoid leaking it.\n model.close();\n throw e;\n }\n })\n : Promise.resolve(makeModel());\n this.modelPromise = PromiseUtils.makeCancelable(modelPromise, resolved =>\n resolved.close()\n );\n this.modelPromise.then(this.handleLoadSuccess).catch(this.handleLoadError);\n }\n\n handleLoadSuccess(modelParam: IrisGridModel): void {\n const model = modelParam;\n const { panelState, irisGridStateOverrides } = this.state;\n const modelQueue: ((m: IrisGridModel) => void)[] = [];\n this.irisGridUtils = new IrisGridUtils(model.dh);\n if (panelState != null) {\n const { irisGridState } = panelState;\n const {\n aggregationSettings,\n customColumns,\n selectDistinctColumns = [],\n rollupConfig,\n } = { ...irisGridState, ...irisGridStateOverrides };\n\n if (customColumns.length > 0) {\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.customColumns = customColumns;\n });\n }\n\n if (rollupConfig != null && rollupConfig.columns.length > 0) {\n // originalColumns might change by the time this model queue item is applied.\n // Instead of pushing a static object, push the function\n // that calculates the config based on the updated model state.\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.rollupConfig = IrisGridUtils.getModelRollupConfig(\n m.originalColumns,\n rollupConfig,\n aggregationSettings\n );\n });\n }\n\n if (selectDistinctColumns.length > 0) {\n modelQueue.push(m => {\n // eslint-disable-next-line no-param-reassign\n m.selectDistinctColumns = selectDistinctColumns;\n });\n }\n }\n\n this.setState({ model, modelQueue });\n this.initModelQueue(model, modelQueue);\n }\n\n initModelQueue(modelParam: IrisGridModel, modelQueue: ModelQueue): void {\n const model = modelParam;\n if (modelQueue.length === 0) {\n this.modelInitialized(model);\n return;\n }\n const modelChange = modelQueue.shift();\n log.debug('initModelQueue', modelChange);\n // Apply next model change. Triggers columnschanged event.\n if (modelChange) {\n modelChange(model);\n }\n this.setState({ modelQueue });\n }\n\n handleAdvancedSettingsChange(\n key: AdvancedSettingsType,\n value: boolean\n ): void {\n log.debug('handleAdvancedSettingsChange', key, value);\n this.setState(({ advancedSettings }) =>\n advancedSettings.get(key) === value\n ? null\n : { advancedSettings: new Map(advancedSettings).set(key, value) }\n );\n }\n\n handlePluginFilter(filters: InputFilter[]): void {\n const { model } = this.state;\n assertNotNull(model);\n const { columns, formatter } = model;\n const pluginFilters =\n this.irisGridUtils?.getFiltersFromInputFilters(\n columns,\n filters,\n formatter.timeZone\n ) ?? [];\n this.setState({ pluginFilters });\n }\n\n handlePluginFetchColumns(pluginFetchColumns: string[]): void {\n this.setState({ pluginFetchColumns });\n }\n\n handleContextMenu(data: IrisGridContextMenuData): ResolvableContextAction[] {\n return this.pluginRef.current?.getMenu?.(data) ?? [];\n }\n\n isColumnSelectionValid(tableColumn: dh.Column | null): boolean {\n const { columnSelectionValidator } = this.props;\n if (columnSelectionValidator && tableColumn) {\n return columnSelectionValidator(this, tableColumn, {\n type: 'tableLink',\n });\n }\n return false;\n }\n\n handleGridStateChange(\n irisGridState: IrisGridState,\n gridState: GridState\n ): void {\n this.irisGridState = irisGridState;\n this.gridState = gridState;\n\n // Grid sends it's first state change after it's finished loading\n this.setState({ isLoaded: true, isLoading: false });\n\n this.savePanelState();\n\n const { glEventHub, onStateChange } = this.props;\n glEventHub.emit(IrisGridEvent.STATE_CHANGED, this);\n onStateChange?.(irisGridState, gridState);\n }\n\n handlePluginStateChange(pluginState: unknown): void {\n const { irisGridState, gridState } = this;\n this.pluginState = pluginState;\n // Do not save if there is null state\n // The save will happen when the grid loads\n if (irisGridState !== null && gridState !== null) {\n this.savePanelState();\n }\n }\n\n handleColumnsChanged(event: EventT): void {\n const { isModelReady, model, modelQueue } = this.state;\n if (isModelReady) {\n this.sendColumnsChange((event as CustomEvent).detail);\n } else {\n assertNotNull(model);\n this.initModelQueue(model, modelQueue);\n }\n }\n\n handleTableChanged(event: EventT): void {\n log.debug('handleTableChanged', event);\n const { glEventHub } = this.props;\n const { detail: table } = event as CustomEvent;\n const panelId = LayoutUtils.getIdFromPanel(this);\n assertNotNull(panelId);\n emitFilterTableChanged(glEventHub, panelId, table);\n }\n\n /**\n * Create a chart with the specified settings\n * @param settings The settings from the chart builder\n * @param settings.type The settings from the chart builder\n * @param settings.series The names of the series\n * @param model The IrisGridModel object\n */\n handleCreateChart(\n settings: ChartBuilderSettings,\n model: IrisGridModel\n ): void {\n // Panel state is stored with the created chart, so flush it first\n this.savePanelState.flush();\n\n this.setState(\n () => null,\n () => {\n const { glEventHub, inputFilters, metadata } = this.props;\n const table = this.getTableName();\n const { panelState } = this.state;\n const sourcePanelId = LayoutUtils.getIdFromPanel(this);\n let tableSettings;\n\n if (panelState) {\n tableSettings = IrisGridUtils.extractTableSettings(\n panelState,\n inputFilters\n );\n }\n glEventHub.emit(IrisGridEvent.CREATE_CHART, {\n metadata: {\n ...metadata,\n settings,\n sourcePanelId,\n table,\n tableSettings,\n },\n table: isIrisGridTableModelTemplate(model) ? model.table : undefined,\n });\n }\n );\n }\n\n handleColumnSelected(column: dh.Column): void {\n const { glEventHub } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(this);\n assertNotNull(panelId);\n emitLinkPointSelected(glEventHub, panelId, column, { type: 'tableLink' });\n }\n\n handleDataSelected(row: ModelIndex, dataMap: RowDataMap): void {\n const { glEventHub } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(this);\n assertNotNull(panelId);\n emitLinkSourceDataSelected(glEventHub, panelId, dataMap);\n }\n\n handleShow(): void {\n this.updateGrid();\n }\n\n handleTabClicked(): void {\n if (this.irisGrid.current) {\n this.irisGrid.current.focus();\n }\n }\n\n handleError(error: unknown): void {\n log.error(error);\n this.setState({ error, isLoading: false });\n }\n\n handleDisconnect(): void {\n this.setState({\n error: new Error('Table disconnected'),\n isDisconnected: true,\n isLoading: false,\n });\n }\n\n handleReconnect(): void {\n this.setState({ isDisconnected: false, error: null });\n }\n\n handleLoadError(error: unknown): void {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n this.handleError(error);\n }\n\n modelInitialized(model: IrisGridModel): void {\n const { glEventHub, loadPlugin, onModelChanged } = this.props;\n\n this.modelPromise = undefined;\n\n // Custom columns at this point already initialized, can load state\n this.loadPanelState(model);\n\n this.setState({ isModelReady: true });\n\n onModelChanged?.(model);\n\n if (isIrisGridTableModelTemplate(model)) {\n const { table } = model;\n const { pluginName } = table;\n\n if (pluginName !== '') {\n if (loadPlugin != null && pluginName != null) {\n const Plugin = loadPlugin(pluginName);\n this.setState({ Plugin });\n }\n }\n const panelId = LayoutUtils.getIdFromPanel(this);\n assertNotNull(panelId);\n emitFilterTableChanged(glEventHub, panelId, table);\n }\n\n this.sendColumnsChange(model.columns);\n }\n\n handleClearAllFilters(): void {\n const irisGrid = this.irisGrid.current;\n const { isDisconnected } = this.state;\n if (irisGrid != null && !isDisconnected) {\n irisGrid.clearAllFilters();\n }\n }\n\n /**\n * Called when a user clicks the \"Reset\" button for an error message on the LoadingOverlay.\n */\n handleErrorAction(): void {\n if (this.irisGrid.current != null) {\n this.irisGrid.current.rollback();\n this.setState({ error: null, isLoading: false });\n }\n }\n\n sendColumnsChange(columns: readonly dh.Column[]): void {\n log.debug2('sendColumnsChange', columns);\n const { glEventHub } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(this);\n assertNotNull(panelId);\n emitFilterColumnsChanged(glEventHub, panelId, columns);\n }\n\n startModelListening(model: IrisGridModel): void {\n model.addEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n this.handleDisconnect\n );\n model.addEventListener(IrisGridModel.EVENT.RECONNECT, this.handleReconnect);\n model.addEventListener(\n IrisGridModel.EVENT.COLUMNS_CHANGED,\n this.handleColumnsChanged\n );\n model.addEventListener(\n IrisGridModel.EVENT.TABLE_CHANGED,\n this.handleTableChanged\n );\n }\n\n stopModelListening(model: IrisGridModel): void {\n model.removeEventListener(\n IrisGridModel.EVENT.DISCONNECT,\n this.handleDisconnect\n );\n model.removeEventListener(\n IrisGridModel.EVENT.RECONNECT,\n this.handleReconnect\n );\n model.removeEventListener(\n IrisGridModel.EVENT.COLUMNS_CHANGED,\n this.handleColumnsChanged\n );\n model.removeEventListener(\n IrisGridModel.EVENT.TABLE_CHANGED,\n this.handleTableChanged\n );\n }\n\n getCoordinateForColumn(columnName: ColumnName): [number, number] | null {\n const { model } = this.state;\n if (!model) {\n return null;\n }\n\n const irisGrid = this.irisGrid.current;\n const { gridWrapper } = irisGrid || {};\n const rect = gridWrapper?.getBoundingClientRect() ?? null;\n if (rect == null || rect.width <= 0 || rect.height <= 0) {\n return null;\n }\n assertNotNull(irisGrid);\n const { metrics } = irisGrid.state;\n assertNotNull(metrics);\n const {\n columnHeaderHeight,\n allColumnXs,\n allColumnWidths,\n right,\n columnHeaderMaxDepth,\n } = metrics;\n const columnIndex = model.getColumnIndexByName(columnName);\n assertNotNull(columnIndex);\n const visibleIndex = irisGrid.getVisibleColumn(columnIndex);\n const columnX = allColumnXs.get(visibleIndex) ?? 0;\n const columnWidth = allColumnWidths.get(visibleIndex) ?? 0;\n\n const x = clamp(\n visibleIndex > right\n ? rect.right\n : rect.left + columnX + columnWidth * 0.5,\n rect.left,\n rect.right\n );\n const y = rect.top + columnHeaderHeight * columnHeaderMaxDepth;\n\n return [x, y];\n }\n\n setFilterMap(filterMap: FilterMap): void {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setFilterMap(filterMap);\n }\n }\n\n setAdvancedFilterMap(filterMap: ReadonlyAdvancedFilterMap): void {\n const irisGrid = this.irisGrid.current;\n if (irisGrid != null) {\n irisGrid.setAdvancedFilterMap(filterMap);\n }\n }\n\n setFilters({\n quickFilters,\n advancedFilters,\n }: {\n quickFilters: { name: ColumnName; filter: QuickFilter }[];\n advancedFilters: { name: ColumnName; filter: AdvancedFilter }[];\n }): void {\n log.debug('setFilters', quickFilters, advancedFilters);\n const { model, isDisconnected } = this.state;\n const irisGrid = this.irisGrid.current;\n if (irisGrid == null || isDisconnected) {\n log.debug('Ignore setFilters, model disconnected');\n return;\n }\n assertNotNull(model);\n const { columns, formatter } = model;\n const indexedQuickFilters = IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n quickFilters\n ).filter(([columnIndex]) => model.isFilterable(columnIndex));\n const indexedAdvancedFilters =\n IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n advancedFilters\n ).filter(([columnIndex]) => model.isFilterable(columnIndex));\n assertNotNull(this.irisGridUtils);\n irisGrid.clearAllFilters();\n irisGrid.setFilters({\n quickFilters: this.irisGridUtils.hydrateQuickFilters(\n columns,\n indexedQuickFilters,\n formatter.timeZone\n ),\n advancedFilters: this.irisGridUtils.hydrateAdvancedFilters(\n columns,\n indexedAdvancedFilters,\n formatter.timeZone\n ),\n });\n }\n\n setStateOverrides(overrides: {\n irisGridState: Partial<DehydratedIrisGridState>;\n gridState: Partial<GridState>;\n }): void {\n log.debug('setStateOverrides', overrides);\n const {\n irisGridState: irisGridStateOverrides,\n gridState: gridStateOverrides,\n } = overrides;\n this.setState({ irisGridStateOverrides, gridStateOverrides }, () => {\n this.initModel();\n });\n }\n\n // eslint-disable-next-line class-methods-use-this\n unsetFilterValue(): void {\n // IrisGridPanel retains the set value after the link is broken\n // We need to define this so LinkerUtils#isLinkablePanel passes the check\n }\n\n loadPanelState(model: IrisGridModel): void {\n const {\n panelState,\n irisGridStateOverrides: originalIrisGridStateOverrides,\n gridStateOverrides,\n } = this.state;\n if (panelState == null) {\n return;\n }\n\n try {\n const { gridState, irisGridState, irisGridPanelState } = panelState;\n const irisGridStateOverrides = { ...originalIrisGridStateOverrides };\n const {\n quickFilters: savedQuickFilters,\n advancedFilters: savedAdvancedFilters,\n } = irisGridStateOverrides;\n if (savedQuickFilters) {\n irisGridStateOverrides.quickFilters =\n IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n savedQuickFilters as unknown as {\n name: string;\n filter: {\n text: string;\n };\n }[]\n );\n }\n if (savedAdvancedFilters) {\n irisGridStateOverrides.advancedFilters =\n IrisGridUtils.changeFilterColumnNamesToIndexes(\n model.columns,\n savedAdvancedFilters as unknown as {\n name: string;\n filter: { options: AdvancedFilterOptions };\n }[]\n );\n }\n const { isSelectingPartition, partitions, advancedSettings } =\n IrisGridUtils.hydrateIrisGridPanelState(model, irisGridPanelState);\n assertNotNull(this.irisGridUtils);\n const {\n advancedFilters,\n customColumns,\n customColumnFormatMap,\n columnAlignmentMap,\n isFilterBarShown,\n quickFilters,\n reverse,\n rollupConfig,\n aggregationSettings,\n sorts,\n userColumnWidths,\n userColumnWidthsByName,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n conditionalFormats,\n columnHeaderGroups,\n partitionConfig,\n } = this.irisGridUtils.hydrateIrisGridState(model, {\n ...irisGridState,\n ...irisGridStateOverrides,\n });\n const { isStuckToBottom, isStuckToRight, movedColumns, movedRows } =\n IrisGridUtils.hydrateGridState(\n model,\n { ...gridState, ...gridStateOverrides },\n irisGridState.customColumns\n );\n this.setState({\n advancedFilters,\n advancedSettings,\n conditionalFormats,\n customColumns,\n customColumnFormatMap,\n columnAlignmentMap,\n isFilterBarShown,\n isSelectingPartition,\n movedColumns,\n movedRows,\n partitions,\n quickFilters,\n reverse,\n rollupConfig,\n aggregationSettings,\n sorts,\n userColumnWidths,\n userColumnWidthsByName,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n pendingDataMap,\n frozenColumns,\n isStuckToBottom,\n isStuckToRight,\n columnHeaderGroups,\n partitionConfig,\n });\n } catch (error) {\n log.error('loadPanelState failed to load panelState', panelState, error);\n }\n }\n\n savePanelState = debounce(() => {\n const { irisGridState, gridState, pluginState } = this;\n assertNotNull(irisGridState);\n const { onPanelStateUpdate } = this.props;\n const {\n model,\n panelState: oldPanelState,\n isSelectingPartition,\n partitions,\n advancedSettings,\n } = this.state;\n assertNotNull(this.irisGridUtils);\n assertNotNull(model);\n assertNotNull(gridState);\n\n const panelState = this.getCachedPanelState(\n this.getDehydratedIrisGridPanelState(\n model,\n isSelectingPartition,\n partitions,\n advancedSettings\n ),\n this.irisGridStateDehydrator(model, irisGridState),\n this.gridStateDehydrator(model, gridState),\n pluginState\n );\n\n if (panelState !== oldPanelState) {\n log.debug('Saving panel state', this, panelState);\n\n this.setState({ panelState });\n onPanelStateUpdate?.(panelState);\n }\n }, DEBOUNCE_PANEL_STATE_UPDATE);\n\n updateGrid(): void {\n const grid = this.irisGrid.current?.grid ?? null;\n if (!grid) return;\n\n // handle resize will verify state and draw and update\n grid.handleResize();\n }\n\n render(): ReactElement {\n const {\n children,\n glContainer,\n glEventHub,\n columnSelectionValidator,\n getDownloadWorker,\n inputFilters,\n links,\n metadata,\n panelState,\n user,\n settings,\n irisGridProps,\n transformTableOptions,\n } = this.props;\n const {\n advancedFilters,\n aggregationSettings,\n advancedSettings,\n conditionalFormats,\n customColumns,\n customColumnFormatMap,\n columnAlignmentMap,\n error,\n isDisconnected,\n isFilterBarShown,\n isSelectingPartition,\n isStuckToBottom,\n isStuckToRight,\n isLoaded,\n isLoading,\n isModelReady,\n model,\n movedColumns,\n movedRows,\n partitions,\n partitionConfig,\n quickFilters,\n reverse,\n rollupConfig,\n sorts,\n userColumnWidths,\n userColumnWidthsByName,\n userRowHeights,\n showSearchBar,\n searchValue,\n selectDistinctColumns,\n selectedSearchColumns,\n invertSearchColumns,\n Plugin,\n pluginFilters,\n pluginFetchColumns,\n pendingDataMap,\n frozenColumns,\n columnHeaderGroups,\n } = this.state;\n const errorMessage =\n error != null ? `Unable to open table. ${error}` : undefined;\n const description = model?.description ?? undefined;\n const pluginState = panelState?.pluginState ?? null;\n const childrenContent =\n children ?? this.getPluginContent(Plugin, model, pluginState);\n const { permissions } = user;\n const { canCopy, canDownloadCsv } = permissions;\n const widgetPanelDescriptor = this.getWidgetPanelDescriptor(\n metadata,\n description\n );\n\n return (\n <WidgetPanel\n errorMessage={errorMessage}\n isDisconnected={isDisconnected}\n isLoading={isLoading}\n isLoaded={isLoaded}\n onErrorAction={\n this.irisGrid.current != null ? this.handleErrorAction : undefined\n }\n className=\"iris-grid-panel\"\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={this.handleClearAllFilters}\n onShow={this.handleShow}\n onTabFocus={this.handleShow}\n onTabClicked={this.handleTabClicked}\n componentPanel={this}\n descriptor={widgetPanelDescriptor}\n renderTabTooltip={() => (\n <IrisGridPanelTooltip\n descriptor={widgetPanelDescriptor}\n model={model}\n />\n )}\n >\n {isModelReady && model && (\n <IrisGrid\n advancedFilters={advancedFilters}\n aggregationSettings={aggregationSettings}\n advancedSettings={advancedSettings}\n alwaysFetchColumns={this.getAlwaysFetchColumns(\n links,\n pluginFetchColumns\n )}\n columnAllowedCursor=\"linker\"\n columnNotAllowedCursor=\"linker-not-allowed\"\n copyCursor=\"copy\"\n customColumns={customColumns}\n customColumnFormatMap={customColumnFormatMap}\n columnAlignmentMap={columnAlignmentMap}\n columnSelectionValidator={this.isColumnSelectionValid}\n conditionalFormats={conditionalFormats}\n inputFilters={this.getGridInputFilters(model.columns, inputFilters)}\n applyInputFiltersOnInit={panelState == null}\n isFilterBarShown={isFilterBarShown}\n isSelectingColumn={columnSelectionValidator != null}\n isSelectingPartition={isSelectingPartition}\n isStuckToBottom={isStuckToBottom}\n isStuckToRight={isStuckToRight}\n movedColumns={movedColumns}\n movedRows={movedRows}\n partitions={partitions}\n partitionConfig={partitionConfig}\n quickFilters={quickFilters}\n reverse={reverse}\n rollupConfig={rollupConfig}\n settings={settings}\n sorts={sorts}\n userColumnWidths={userColumnWidths}\n userColumnWidthsByName={userColumnWidthsByName}\n userRowHeights={userRowHeights}\n model={model}\n showSearchBar={showSearchBar}\n searchValue={searchValue}\n selectedSearchColumns={selectedSearchColumns}\n selectDistinctColumns={selectDistinctColumns}\n invertSearchColumns={invertSearchColumns}\n onColumnSelected={this.handleColumnSelected}\n onCreateChart={this.handleCreateChart}\n onDataSelected={this.handleDataSelected}\n onError={this.handleError}\n onStateChange={this.handleGridStateChange}\n onContextMenu={this.handleContextMenu}\n onAdvancedSettingsChange={this.handleAdvancedSettingsChange}\n customFilters={pluginFilters}\n pendingDataMap={pendingDataMap}\n canCopy={canCopy}\n canDownloadCsv={canDownloadCsv}\n ref={this.irisGrid}\n getDownloadWorker={getDownloadWorker}\n frozenColumns={frozenColumns}\n columnHeaderGroups={columnHeaderGroups}\n transformTableOptions={transformTableOptions}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...irisGridProps}\n >\n {childrenContent}\n </IrisGrid>\n )}\n </WidgetPanel>\n );\n }\n}\n\nconst mapStateToProps = (\n state: RootState,\n { localDashboardId = DEFAULT_DASHBOARD_ID, glContainer }: OwnProps\n): StateProps => ({\n inputFilters: getInputFiltersForDashboard(state, localDashboardId),\n links: getLinksForDashboard(state, localDashboardId),\n columnSelectionValidator: getColumnSelectionValidatorForDashboard(\n state,\n localDashboardId\n ),\n user: getUser(state),\n settings: getSettings(state),\n});\n\nconst ConnectedIrisGridPanel = connect(mapStateToProps, null, null, {\n forwardRef: true,\n})(IrisGridPanel);\n\nexport default ConnectedIrisGridPanel;\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../../node_modules/@deephaven/components/scss/custom.scss","../../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss","../../src/panels/NotebookPanel.scss","../../../../node_modules/@deephaven/components/scss/new_variables.scss"],"names":[],"mappings":"AAAA;AC6LA;ACxLE;EACE;;;AAIJ;EACE,SCNS;EDOT,ODUS;;;ACPX;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA,YDYS;ECXT;EACA;EACA,KCtBO;EDuBP;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;AAAA;EAEE,ODjCE;;ACoCJ;EACE;;;AAQN;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE","file":"NotebookPanel.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n@import './util.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-text-disabled);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n","@import '@deephaven/components/scss/custom.scss';\n\n$toolbar-bg: $content-bg;\n\n.notebook-title {\n &.is-preview {\n font-style: italic;\n }\n}\n\n.notebook-session-not-connected {\n padding: $spacer-2;\n color: $gray-600;\n}\n\n.notebook-container {\n display: flex;\n flex-direction: column;\n\n .notebook-toolbar {\n display: flex;\n justify-content: flex-start;\n flex-direction: row;\n background: $toolbar-bg;\n border-bottom: 2px solid $background;\n padding: $spacer-1 $spacer-2;\n gap: $spacer-1;\n container-type: inline-size;\n overflow: hidden;\n\n .notebook-toolbar-actions {\n display: contents;\n }\n\n .btn-overflow {\n margin-left: auto;\n }\n\n .btn-play:hover,\n .btn-play-selected:hover {\n color: $green;\n }\n\n .icon-create-pq {\n transform: translate(0, -4px);\n }\n }\n}\n\n// Hide toolbar action buttons one-by-one as the toolbar narrows.\n// Each button is ~32px; breakpoints account for padding (16px) and gaps (4px each).\n// The overflow (⋮) button is always visible.\n@container (width < 128px) {\n .notebook-toolbar .btn-save {\n display: none;\n }\n}\n\n@container (width < 96px) {\n .notebook-toolbar .btn-run-selected {\n display: none;\n }\n}\n\n@container (width < 64px) {\n .notebook-toolbar .btn-run {\n display: none;\n }\n}\n","@use 'sass:math';\n\n//Set of spacer variables from the spacer map\n$spacer-0: map-get($spacers, 0); //0\n$spacer-1: map-get($spacers, 1);\n$spacer-2: map-get($spacers, 2);\n$spacer-3: map-get($spacers, 3);\n$spacer-4: map-get($spacers, 4);\n$spacer-5: map-get($spacers, 5);\n\n//Marching Ants for golden layout dropzone and drag and drop\n//top bottom, left right.\n//create 4 background images that are 50% color 1, 50% color 2 using graidents, two veritical, two horizontal\n//size them to ant-size and thickness\n//position those images along the egdes and make top/bottom repeat-x and left/right repeat-y\n//then offest each of those background positions by ant-size in animation to make them march.\n$ant-size: 8px;\n$ant-thickness: 1px;\n\n@mixin ants-base($color-1: black, $color-2: white) {\n background-image: linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%);\n background-size:\n $ant-size $ant-thickness,\n $ant-size $ant-thickness,\n $ant-thickness $ant-size,\n $ant-thickness $ant-size;\n background-position:\n 0 top,\n 0 bottom,\n left 0,\n right 0;\n background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;\n animation: march 0.5s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n\n@mixin drag-stack($pseudo-element) {\n &::#{$pseudo-element} {\n content: ' ';\n background: $primary;\n box-shadow: $box-shadow;\n border-radius: $border-radius;\n position: absolute;\n height: 100%;\n width: 100%;\n @content;\n }\n}\n\n$focus-bg-transparency: 12%;\n$hover-bg-transparency: 14%;\n$active-bg-transparency: 28%;\n$exception-transparency: 28%;\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../../../../node_modules/@deephaven/components/scss/custom.scss","../../../../node_modules/@deephaven/components/scss/bootstrap_overrides.scss","../../src/panels/NotebookPanel.scss","../../../../node_modules/@deephaven/components/scss/new_variables.scss"],"names":[],"mappings":"AAAA;AC6LA;ACxLE;EACE;;;AAIJ;EACE,SCNS;EDOT,ODUS;;;ACPX;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA,YDYS;ECXT;EACA;EACA,KCtBO;EDuBP;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;AAAA;EAEE,ODjCE;;ACoCJ;EACE;;;AAgBN;EACE;IACE;;;AAIJ;EACE;IACE;;;AAIJ;EACE;IACE","file":"NotebookPanel.css","sourcesContent":["/* stylelint-disable scss/at-import-no-partial-leading-underscore */\n// Consumers should be able to resolve bootstrap/ to node_modules/bootstrap\n\n//Make bootstrap functions available for use in overrides\n@import 'bootstrap/scss/_functions.scss';\n@import './bootstrap_overrides.scss';\n\n//_variable imports come after bootstrap default overrides,\n// makes all other variables and mixins from bootstrap available\n/// with just importing customer.scss\n@import 'bootstrap/scss/_variables.scss';\n@import 'bootstrap/scss/_mixins.scss';\n\n//New variables come after imports\n@import './new_variables.scss';\n@import './util.scss';\n","// Styling overrides for bootstrap\n@use 'sass:map';\n\n// Override / set color variables\n$red: var(--dh-color-visual-red);\n$orange: var(--dh-color-visual-orange);\n$yellow: var(--dh-color-visual-yellow);\n$green: var(--dh-color-visual-green);\n$blue: var(--dh-color-visual-blue);\n$purple: var(--dh-color-visual-purple);\n\n// Fallback colors are used if theme isn't loaded\n// this is required for error messages if the API doesn't load\n\n//Define our Gray scale\n$gray-100: var(--dh-color-gray-900, #fcfcfa);\n$gray-200: var(--dh-color-gray-800);\n$gray-300: var(--dh-color-gray-700);\n$gray-400: var(--dh-color-gray-600);\n$gray-500: var(--dh-color-gray-500);\n// intentional duplicate, scale doesn't line up otherwise\n// as we have gray-850 and spectrum doesn't and it is needed\n$gray-600: var(--dh-color-gray-500);\n$gray-700: var(--dh-color-gray-400);\n$gray-800: var(--dh-color-gray-300);\n$gray-850: var(--dh-color-gray-200);\n$gray-900: var(--dh-color-gray-75);\n$black: var(--dh-color-black, #1a171a);\n$white: var(--dh-color-white, #f0f0ee);\n\n//Define some UI colors\n$interfacegray: var(--dh-color-content-bg, #2d2a2e);\n$interfaceblue: var(--dh-color-accent-bg);\n$interfacewhite: $white;\n$interfaceblack: $black;\n$content-bg: var(--dh-color-content-bg, #2d2a2e);\n$background: var(--dh-color-bg, #1a171a);\n$foreground: var(--dh-color-fg, #f0f0ee);\n\n// Extend default Bootstrap $grays map\n$grays-custom: (\n '850': $gray-850,\n);\n$grays: () !default;\n$grays: map-merge($grays, $grays-custom);\n\n// Extend default Bootstrap $colors map\n$colors-custom: (\n 'black': $black,\n);\n$colors: () !default;\n$colors: map-merge($colors, $colors-custom);\n\n// Override default Bootstrap $theme-colors map by mapping each key to itself.\n// These will then be re-mapped inside of `button-outline-variant` and\n// `button-outline-variant` mixins in `bootstrap_override_mixins_buttons.scss`\n$theme-colors-self-map: ();\n@each $key\n in (\n 'primary',\n 'secondary',\n 'success',\n 'info',\n 'warning',\n 'danger',\n 'light',\n 'dark'\n )\n{\n $theme-colors-self-map: map.set($theme-colors-self-map, $key, $key);\n}\n$theme-colors: () !default;\n$theme-colors: map-merge($theme-colors, $theme-colors-self-map);\n\n// Used by bootstrap_override_mixins_buttons.scss to map Bootstrap colors to\n// DH semantic colors\n$bootstrap-dh-semantic-map: (\n 'primary': 'accent',\n 'secondary': 'neutral',\n 'success': 'positive',\n 'info': 'info',\n 'warning': 'notice',\n 'danger': 'negative',\n // We shouldn't be using these, but mapping so they work with our custom\n // `color-yiq` mixin. If we find a way to remove $light + $dark that are\n // defined in Bootstrap _variables.scss, we should remove these\n 'light': 'neutral',\n 'dark': 'neutral',\n);\n\n//Set default colors\n$body-bg: $black;\n$body-color: $interfacewhite;\n\n// Set brand colors\n$primary: var(--dh-color-accent-bg);\n$primary-hover: var(--dh-color-accent-hover-bg);\n$primary-dark: var(--dh-color-accent-down-bg);\n$secondary: var(--dh-color-neutral-bg);\n$secondary-hover: var(--dh-color-neutral-hover-bg);\n$success: $green;\n$info: $yellow;\n$warning: $orange;\n$danger: var(--dh-color-negative-bg);\n$danger-hover: var(--dh-color-negative-hover-bg);\n// We really don't want to use $light or $dark variables, but Bootstrap defines\n// them in _variables.scss. Explicitly setting them to ensure we are in control\n// of their values. If we can find a way to remove them, we should\n$light: var(--dh-color-gray-light);\n$dark: var(--dh-color-gray-dark);\n// Bootstrap doesn't define $mid, and we want to move away from this particular\n// semantic. Should be deleted by #1635\n$mid: var(--dh-color-gray-mid);\n\n$semantic-colors: (\n 'primary-hover': $primary-hover,\n 'primary-dark': $primary-dark,\n 'mid': $mid,\n 'content-bg': $interfacegray,\n 'background': $interfaceblack,\n 'foreground': $interfacewhite,\n 'secondary-hover': $secondary-hover,\n 'danger-hover': $danger-hover,\n);\n\n$component-active-bg: $primary;\n$theme-color-interval: 9%;\n$yiq-contrasted-threshold: 180;\n\n// Override fonts\n$font-family-sans-serif:\n 'Fira Sans',\n -apple-system,\n blinkmacsystemfont,\n 'Segoe UI',\n 'Roboto',\n 'Helvetica Neue',\n arial,\n sans-serif; //fira sans then native system ui fallbacks\n$font-family-monospace: 'Fira Mono', menlo, monaco, consolas, 'Liberation Mono',\n 'Courier New', monospace;\n$font-family-base: $font-family-sans-serif;\n\n$headings-font-weight: 400;\n\n//Text overides\n$text-muted: $gray-400;\n\n//Style Selection highlight color\n$text-select-color: var(--dh-color-text-highlight);\n\n//Grid variables, same value as default just making easily accessible\n$grid-gutter-width: 30px;\n\n//Visual Overrides\n$border-radius: 4px;\n$box-shadow: 0 0.1rem 1rem var(--dh-color-dropshadow);\n\n//Override Btn\n$btn-border-radius: 4rem;\n$btn-padding-x: 1.5rem;\n$btn-transition:\n color 0.12s ease-in-out,\n background-color 0.12s ease-in-out,\n border-color 0.12s ease-in-out,\n box-shadow 0.12s ease-in-out; //default 0.15 is too long\n$btn-border-width: 2px;\n$btn-font-weight: var(--spectrum-global-font-weight-bold);\n$btn-line-height: 1.3;\n\n//Override Inputs\n$input-bg: var(--dh-color-input-bg);\n$input-disabled-bg: var(--dh-color-input-disabled-bg);\n$input-color: var(--dh-color-input-fg);\n$input-border-color: var(--dh-color-input-border);\n$input-placeholder-color: var(--dh-color-input-placeholder);\n$input-focus-border-color: var(--dh-color-input-focus-border);\n\n$input-btn-focus-width: 0.2rem;\n$input-btn-focus-color: color-mix(\n in srgb,\n var(--dh-color-accent) 35%,\n transparent\n);\n$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color;\n$input-btn-line-height: 1.3;\n// Bootstrap uses a calc expression to determine the input height (calc(line-height + 2*padding-y + border)).\n// The padding-y value has to be in rem to match units as it is a SASS calc.\n// Using 0.42145rem with 1.3 line height gets us to spectrum's 32px.\n/* stylelint-disable-next-line number-max-precision */\n$input-btn-padding-y: 0.42145rem;\n\n//checkbox\n$custom-control-indicator-bg: var(--dh-color-input-bg);\n$custom-control-indicator-border-color: var(--dh-color-input-border);\n$custom-checkbox-indicator-border-radius: 2px;\n$custom-control-indicator-border-width: 2px;\n$custom-control-indicator-active-bg: var(--dh-color-input-bg);\n$custom-control-indicator-active-border-color: var(--dh-color-input-fg);\n$custom-control-indicator-checked-bg: var(--dh-color-input-fg);\n$custom-control-indicator-checked-color: black; // used as mask fill color\n$custom-checkbox-indicator-indeterminate-bg: var(--dh-color-input-fg);\n$custom-control-indicator-bg-size: 75% 75%;\n$custom-control-indicator-disabled-bg: var(--dh-color-input-disabled-bg);\n$custom-control-indicator-checked-disabled-bg: var(\n --dh-color-input-disabled-bg\n);\n$custom-control-label-disabled-color: var(--dh-color-input-disabled-fg);\n\n// The $custom-select-indicator variable is used by Bootstrap to provide the\n// icon for the select dropdown. Inline svgs can't use CSS variables, so we hard\n// code the color to #929192 (the default value of --dh-color-gray-600). PR #1651\n// overrides this icon altogether for known dropdowns, so technically we may not\n// need this, but it's here in case there are any remaining instances.\n$custom-select-indicator-color: #929192;\n$custom-select-bg: var(--dh-color-selector-bg);\n$custom-select-bg-size: 16px 16px;\n//dhSort icon encoded\n$custom-select-indicator: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M4 7l-.4-.8 4-3.7h.8l4 3.7-.4.8H4zm0 2l-.4.8 4 3.7h.8l4-3.7L12 9H4z'/%3E%3C/svg%3E\"),\n '#',\n '%23'\n);\n$custom-select-focus-box-shadow: $input-btn-focus-box-shadow;\n$custom-select-disabled-color: $gray-500;\n$custom-select-disabled-bg: $gray-800;\n\n//modal\n$modal-content-bg: $content-bg;\n$modal-content-border-width: 0;\n$modal-md: 550px;\n$close-color: var(--dh-color-text);\n$close-text-shadow: none;\n\n// Toast notification\n$toast-bg: var(--dh-color-accent-100);\n$toast-color: var(--dh-color-text);\n$toast-error-bg: var(--dh-color-negative-bg);\n$toast-error-color: var(--dh-color-text);\n\n//tooltips\n$tooltip-bg: var(--dh-color-tooltip-bg);\n$tooltip-color: var(--dh-color-tooltip-fg);\n$tooltip-box-shadow: 0 0.1rem 1.5rem 0.1rem var(--dh-color-tooltip-box-shadow);\n\n//drowdowns\n$dropdown-bg: $gray-600;\n$dropdown-link-color: $foreground;\n$dropdown-link-hover-color: $foreground;\n$dropdown-link-hover-bg: var(--dh-color-item-list-hover-bg);\n$dropdown-divider-bg: $gray-700;\n\n//context menus\n$contextmenu-bg: var(--dh-color-popover-bg);\n$contextmenu-color: var(--dh-color-text);\n$contextmenu-disabled-color: var(--dh-color-text-disabled);\n$contextmenu-keyboard-selected-bg: var(--dh-color-keyboard-selected-bg);\n$contextmenu-selected-bg: var(--dh-color-item-list-hover-bg);\n$contextmenu-selected-color: var(--dh-color-item-list-selected-fg);\n\n//hr\n$hr-border-color: var(--dh-color-hr);\n\n//links\n$link-color: $gray-400;\n$link-hover-color: $foreground;\n\n//progress-bar\n$progress-bg: $gray-600;\n$progress-border-radius: 1rem;\n\n// Set global options\n$enable-shadows: false;\n$enable-gradients: false;\n$enable-print-styles: false; //I don't think anyone should expect to \"print\" this app.\n\n// Transition times\n$transition: 0.15s;\n$transition-mid: 0.2s;\n$transition-long: 0.3s;\n$transition-slow: 0.6s;\n\n//form-validation icon, uses vsWarning icon encoded here as svg\n$form-feedback-icon-invalid-color: $danger;\n$form-feedback-icon-invalid: str-replace(\n url(\"data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cg fill='none'%3E%3Cg fill='#{$form-feedback-icon-invalid-color}'%3E%3Cpath d='M7.56 1h.88l6.54 12.26-.44.74H1.44L1 13.26 7.56 1zM8 2.28 2.28 13H13.7L8 2.28zM8.625 12v-1h-1.25v1h1.25zm-1.25-2V6h1.25v4h-1.25z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E \"),\n '#',\n '%23'\n);\n\n// This section of variables is not consumed directly by DH, but they need to be\n// defined for sass to compile _variables\n$table-dark-bg: $gray-800;\n$table-dark-accent-bg: var(--dh-color-highlight-hover);\n$table-dark-hover-bg: var(--dh-color-highlight-active);\n$table-dark-border-color: $gray-700;\n$popover-bg: var(--dh-color-tooltip-bg);\n$popover-border-color: var(--dh-color-overlay-modal-bg);\n$popover-header-bg: #000;\n$popover-arrow-outer-color: var(--dh-color-dropshadow);\n$custom-range-thumb-active-bg: var(--dh-color-accent-1100);\n","@import '@deephaven/components/scss/custom.scss';\n\n$toolbar-bg: $content-bg;\n\n.notebook-title {\n &.is-preview {\n font-style: italic;\n }\n}\n\n.notebook-session-not-connected {\n padding: $spacer-2;\n color: $gray-600;\n}\n\n.notebook-container {\n display: flex;\n flex-direction: column;\n\n .notebook-toolbar {\n display: flex;\n justify-content: flex-start;\n flex-direction: row;\n background: $toolbar-bg;\n border-bottom: 2px solid $background;\n padding: $spacer-1 $spacer-2;\n gap: $spacer-1;\n container-type: inline-size;\n overflow: hidden;\n\n .notebook-toolbar-actions {\n display: contents;\n }\n\n .btn-overflow {\n margin-left: auto;\n }\n\n .btn-play:hover,\n .btn-play-selected:hover {\n color: $green;\n }\n\n .icon-create-pq {\n transform: translate(0, -4px);\n }\n }\n}\n\n// Hide buttons one-by-one (right-to-left) as the toolbar narrows; the overflow\n// (⋮) menu keeps every action reachable.\n$toolbar-btn-width: 32px; // action button incl. gap\n$toolbar-overflow-btn-width: 32px; // always-visible overflow (⋮) button\n\n// Breakpoint at which a button hides: overflow button + $buttons kept visible.\n@function toolbar-breakpoint($buttons) {\n // stylelint-disable-next-line at-rule-no-unknown\n @return $toolbar-overflow-btn-width + ($buttons * $toolbar-btn-width);\n}\n\n@container (width < #{toolbar-breakpoint(3)}) {\n .notebook-toolbar .btn-save {\n display: none;\n }\n}\n\n@container (width < #{toolbar-breakpoint(2)}) {\n .notebook-toolbar .btn-run-selected {\n display: none;\n }\n}\n\n@container (width < #{toolbar-breakpoint(1)}) {\n .notebook-toolbar .btn-run {\n display: none;\n }\n}\n","@use 'sass:math';\n\n//Set of spacer variables from the spacer map\n$spacer-0: map-get($spacers, 0); //0\n$spacer-1: map-get($spacers, 1);\n$spacer-2: map-get($spacers, 2);\n$spacer-3: map-get($spacers, 3);\n$spacer-4: map-get($spacers, 4);\n$spacer-5: map-get($spacers, 5);\n\n//Marching Ants for golden layout dropzone and drag and drop\n//top bottom, left right.\n//create 4 background images that are 50% color 1, 50% color 2 using graidents, two veritical, two horizontal\n//size them to ant-size and thickness\n//position those images along the egdes and make top/bottom repeat-x and left/right repeat-y\n//then offest each of those background positions by ant-size in animation to make them march.\n$ant-size: 8px;\n$ant-thickness: 1px;\n\n@mixin ants-base($color-1: black, $color-2: white) {\n background-image: linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to right, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%),\n linear-gradient(to bottom, $color-2 50%, $color-1 50%);\n background-size:\n $ant-size $ant-thickness,\n $ant-size $ant-thickness,\n $ant-thickness $ant-size,\n $ant-thickness $ant-size;\n background-position:\n 0 top,\n 0 bottom,\n left 0,\n right 0;\n background-repeat: repeat-x, repeat-x, repeat-y, repeat-y;\n animation: march 0.5s;\n animation-timing-function: linear;\n animation-iteration-count: infinite;\n}\n\n@mixin drag-stack($pseudo-element) {\n &::#{$pseudo-element} {\n content: ' ';\n background: $primary;\n box-shadow: $box-shadow;\n border-radius: $border-radius;\n position: absolute;\n height: 100%;\n width: 100%;\n @content;\n }\n}\n\n$focus-bg-transparency: 12%;\n$hover-bg-transparency: 14%;\n$active-bg-transparency: 28%;\n$exception-transparency: 28%;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetPanel.d.ts","sourceRoot":"","sources":["../../src/panels/WidgetPanel.tsx"],"names":[],"mappings":"AAUA,OAAc,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,UAAU,EAAE,qBAAqB,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAoLF,QAAA,MAAM,YAAY,kEAAkD,CAAC;AAErE,eAAe,YAAY,CAAC"}
1
+ {"version":3,"file":"WidgetPanel.d.ts","sourceRoot":"","sources":["../../src/panels/WidgetPanel.tsx"],"names":[],"mappings":"AAUA,OAAc,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG;IAC9C,UAAU,EAAE,qBAAqB,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B,CAAC;AAsLF,QAAA,MAAM,YAAY,kEAAkD,CAAC;AAErE,eAAe,YAAY,CAAC"}
@@ -99,6 +99,7 @@ class WidgetPanel extends PureComponent {
99
99
  showTabTooltip = _this$props2$showTabT === void 0 ? false : _this$props2$showTabT,
100
100
  renderTabTooltip = _this$props2.renderTabTooltip,
101
101
  onClearAllFilters = _this$props2.onClearAllFilters,
102
+ onErrorAction = _this$props2.onErrorAction,
102
103
  onHide = _this$props2.onHide,
103
104
  onFocus = _this$props2.onFocus,
104
105
  onBlur = _this$props2.onBlur,
@@ -125,6 +126,7 @@ class WidgetPanel extends PureComponent {
125
126
  glContainer: glContainer,
126
127
  glEventHub: glEventHub,
127
128
  onClearAllFilters: onClearAllFilters,
129
+ onErrorAction: onErrorAction,
128
130
  onHide: onHide,
129
131
  onFocus: onFocus,
130
132
  onBlur: onBlur,
@@ -1 +1 @@
1
- {"version":3,"file":"WidgetPanel.js","names":["React","PureComponent","classNames","memoize","ContextActions","createXComponent","copyToClipboard","EMPTY_ARRAY","Panel","WidgetPanelTooltip","jsx","_jsx","jsxs","_jsxs","WidgetPanel","constructor","props","_this","this","_defineProperty","showTabTooltip","descriptor","undefined","_descriptor$displayTy","propsAdditionalActions","arguments","length","title","concat","displayType","type","group","groups","medium","order","action","handleCopyName","handleSessionClosed","bind","state","isClientDisconnected","isPanelDisconnected","isWidgetDisconnected","isWaitingForReconnect","isPanelInactive","name","getErrorMessage","_this$props","errorMessage","_this$state","session","onSessionClose","setState","render","_this$props2","children","className","componentPanel","isLoaded","isLoading","glContainer","glEventHub","isDisconnected","isClonable","isRenamable","_this$props2$showTabT","renderTabTooltip","onClearAllFilters","onHide","onFocus","onBlur","onResize","onSessionOpen","onShow","onTabBlur","onTabFocus","onTabClicked","additionalActions","_this$state2","doRenderTabTooltip","getCachedRenderTabTooltip","getCachedActions","disconnected","inactive","XWidgetPanel"],"sources":["../../src/panels/WidgetPanel.tsx"],"sourcesContent":["import React, { PureComponent, type ReactElement } from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport {\n ContextActions,\n createXComponent,\n type ResolvableContextAction,\n} from '@deephaven/components';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { copyToClipboard, EMPTY_ARRAY } from '@deephaven/utils';\nimport Panel, { type CorePanelProps } from './CorePanel';\nimport WidgetPanelTooltip from './WidgetPanelTooltip';\nimport './WidgetPanel.scss';\nimport { type WidgetPanelDescriptor } from './WidgetPanelTypes';\n\nexport type WidgetPanelProps = CorePanelProps & {\n descriptor: WidgetPanelDescriptor;\n showTabTooltip?: boolean;\n isDisconnected?: boolean;\n};\n\ninterface WidgetPanelState {\n isClientDisconnected: boolean;\n isPanelDisconnected: boolean;\n isWidgetDisconnected: boolean;\n isWaitingForReconnect: boolean;\n isPanelInactive: boolean;\n}\n/**\n * Widget panel component that has a loading spinner and displays an error message when set\n */\nclass WidgetPanel extends PureComponent<WidgetPanelProps, WidgetPanelState> {\n static defaultProps = {\n className: '',\n isClonable: true,\n isDisconnected: false,\n isLoading: false,\n isLoaded: true,\n isRenamable: true,\n showTabTooltip: true,\n };\n\n constructor(props: WidgetPanelProps) {\n super(props);\n\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleCopyName = this.handleCopyName.bind(this);\n\n this.state = {\n isClientDisconnected: false,\n isPanelDisconnected: false,\n isWidgetDisconnected: false,\n isWaitingForReconnect: false,\n isPanelInactive: false,\n };\n }\n\n handleCopyName(): void {\n const { descriptor } = this.props;\n copyToClipboard(descriptor.name);\n }\n\n getErrorMessage(): string | undefined {\n const { descriptor, errorMessage } = this.props;\n const {\n isClientDisconnected,\n isPanelDisconnected,\n isWidgetDisconnected,\n isWaitingForReconnect,\n } = this.state;\n if (errorMessage != null && errorMessage !== '') {\n return `${errorMessage}`;\n }\n if (isClientDisconnected && isPanelDisconnected && isWaitingForReconnect) {\n return 'Disconnected from server.\\nCheck your internet connection.';\n }\n if (isClientDisconnected && isPanelDisconnected) {\n return 'Disconnected from server.';\n }\n if (isPanelDisconnected) {\n const { name, type } = descriptor;\n return `Variable \"${name}\" not set.\\n${type} does not exist yet.`;\n }\n if (isWidgetDisconnected) {\n return `${descriptor.name} is unavailable.`;\n }\n return undefined;\n }\n\n getCachedRenderTabTooltip = memoize(\n (showTabTooltip: boolean, descriptor: WidgetPanelDescriptor) =>\n showTabTooltip\n ? () => <WidgetPanelTooltip descriptor={descriptor} />\n : undefined\n );\n\n getCachedActions = memoize(\n (\n descriptor: WidgetPanelDescriptor,\n propsAdditionalActions: readonly ResolvableContextAction[] = EMPTY_ARRAY\n ) => [\n ...propsAdditionalActions,\n {\n title: `Copy ${descriptor.displayType ?? descriptor.type} Name`,\n group: ContextActions.groups.medium,\n order: 20,\n action: this.handleCopyName,\n },\n ]\n );\n\n handleSessionClosed(session: dh.IdeSession): void {\n const { onSessionClose } = this.props;\n // The session has closed and we won't be able to reconnect, as this widget isn't persisted\n this.setState({\n isPanelDisconnected: true,\n isWaitingForReconnect: false,\n });\n onSessionClose?.(session);\n }\n\n render(): ReactElement {\n const {\n children,\n className,\n componentPanel,\n descriptor,\n isLoaded,\n isLoading,\n glContainer,\n glEventHub,\n isDisconnected,\n isClonable,\n isRenamable,\n showTabTooltip = false,\n renderTabTooltip,\n\n onClearAllFilters,\n onHide,\n onFocus,\n onBlur,\n onResize,\n onSessionOpen,\n onShow,\n onTabBlur,\n onTabFocus,\n onTabClicked,\n\n additionalActions: propsAdditionalActions,\n } = this.props;\n\n const { isPanelDisconnected, isWidgetDisconnected, isPanelInactive } =\n this.state;\n const errorMessage = this.getErrorMessage();\n const doRenderTabTooltip =\n renderTabTooltip ??\n this.getCachedRenderTabTooltip(showTabTooltip, descriptor);\n\n const additionalActions = this.getCachedActions(\n descriptor,\n propsAdditionalActions\n );\n\n return (\n <Panel\n className={classNames(className, {\n disconnected:\n isPanelDisconnected || isWidgetDisconnected || isDisconnected,\n inactive: isPanelInactive,\n })}\n componentPanel={componentPanel}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={onClearAllFilters}\n onHide={onHide}\n onFocus={onFocus}\n onBlur={onBlur}\n onResize={onResize}\n onShow={onShow}\n onSessionClose={this.handleSessionClosed}\n onSessionOpen={onSessionOpen}\n onTabBlur={onTabBlur}\n onTabFocus={onTabFocus}\n onTabClicked={onTabClicked}\n renderTabTooltip={doRenderTabTooltip}\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n isClonable={isClonable}\n isRenamable={isRenamable}\n additionalActions={additionalActions}\n >\n {children}\n {isPanelInactive && <div className=\"fill-parent-absolute\" />}\n </Panel>\n );\n }\n}\n\nconst XWidgetPanel = createXComponent<WidgetPanelProps>(WidgetPanel);\n\nexport default XWidgetPanel;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"WidgetPanel.js","names":["React","PureComponent","classNames","memoize","ContextActions","createXComponent","copyToClipboard","EMPTY_ARRAY","Panel","WidgetPanelTooltip","jsx","_jsx","jsxs","_jsxs","WidgetPanel","constructor","props","_this","this","_defineProperty","showTabTooltip","descriptor","undefined","_descriptor$displayTy","propsAdditionalActions","arguments","length","title","concat","displayType","type","group","groups","medium","order","action","handleCopyName","handleSessionClosed","bind","state","isClientDisconnected","isPanelDisconnected","isWidgetDisconnected","isWaitingForReconnect","isPanelInactive","name","getErrorMessage","_this$props","errorMessage","_this$state","session","onSessionClose","setState","render","_this$props2","children","className","componentPanel","isLoaded","isLoading","glContainer","glEventHub","isDisconnected","isClonable","isRenamable","_this$props2$showTabT","renderTabTooltip","onClearAllFilters","onErrorAction","onHide","onFocus","onBlur","onResize","onSessionOpen","onShow","onTabBlur","onTabFocus","onTabClicked","additionalActions","_this$state2","doRenderTabTooltip","getCachedRenderTabTooltip","getCachedActions","disconnected","inactive","XWidgetPanel"],"sources":["../../src/panels/WidgetPanel.tsx"],"sourcesContent":["import React, { PureComponent, type ReactElement } from 'react';\nimport classNames from 'classnames';\nimport memoize from 'memoize-one';\nimport {\n ContextActions,\n createXComponent,\n type ResolvableContextAction,\n} from '@deephaven/components';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { copyToClipboard, EMPTY_ARRAY } from '@deephaven/utils';\nimport Panel, { type CorePanelProps } from './CorePanel';\nimport WidgetPanelTooltip from './WidgetPanelTooltip';\nimport './WidgetPanel.scss';\nimport { type WidgetPanelDescriptor } from './WidgetPanelTypes';\n\nexport type WidgetPanelProps = CorePanelProps & {\n descriptor: WidgetPanelDescriptor;\n showTabTooltip?: boolean;\n isDisconnected?: boolean;\n};\n\ninterface WidgetPanelState {\n isClientDisconnected: boolean;\n isPanelDisconnected: boolean;\n isWidgetDisconnected: boolean;\n isWaitingForReconnect: boolean;\n isPanelInactive: boolean;\n}\n/**\n * Widget panel component that has a loading spinner and displays an error message when set\n */\nclass WidgetPanel extends PureComponent<WidgetPanelProps, WidgetPanelState> {\n static defaultProps = {\n className: '',\n isClonable: true,\n isDisconnected: false,\n isLoading: false,\n isLoaded: true,\n isRenamable: true,\n showTabTooltip: true,\n };\n\n constructor(props: WidgetPanelProps) {\n super(props);\n\n this.handleSessionClosed = this.handleSessionClosed.bind(this);\n this.handleCopyName = this.handleCopyName.bind(this);\n\n this.state = {\n isClientDisconnected: false,\n isPanelDisconnected: false,\n isWidgetDisconnected: false,\n isWaitingForReconnect: false,\n isPanelInactive: false,\n };\n }\n\n handleCopyName(): void {\n const { descriptor } = this.props;\n copyToClipboard(descriptor.name);\n }\n\n getErrorMessage(): string | undefined {\n const { descriptor, errorMessage } = this.props;\n const {\n isClientDisconnected,\n isPanelDisconnected,\n isWidgetDisconnected,\n isWaitingForReconnect,\n } = this.state;\n if (errorMessage != null && errorMessage !== '') {\n return `${errorMessage}`;\n }\n if (isClientDisconnected && isPanelDisconnected && isWaitingForReconnect) {\n return 'Disconnected from server.\\nCheck your internet connection.';\n }\n if (isClientDisconnected && isPanelDisconnected) {\n return 'Disconnected from server.';\n }\n if (isPanelDisconnected) {\n const { name, type } = descriptor;\n return `Variable \"${name}\" not set.\\n${type} does not exist yet.`;\n }\n if (isWidgetDisconnected) {\n return `${descriptor.name} is unavailable.`;\n }\n return undefined;\n }\n\n getCachedRenderTabTooltip = memoize(\n (showTabTooltip: boolean, descriptor: WidgetPanelDescriptor) =>\n showTabTooltip\n ? () => <WidgetPanelTooltip descriptor={descriptor} />\n : undefined\n );\n\n getCachedActions = memoize(\n (\n descriptor: WidgetPanelDescriptor,\n propsAdditionalActions: readonly ResolvableContextAction[] = EMPTY_ARRAY\n ) => [\n ...propsAdditionalActions,\n {\n title: `Copy ${descriptor.displayType ?? descriptor.type} Name`,\n group: ContextActions.groups.medium,\n order: 20,\n action: this.handleCopyName,\n },\n ]\n );\n\n handleSessionClosed(session: dh.IdeSession): void {\n const { onSessionClose } = this.props;\n // The session has closed and we won't be able to reconnect, as this widget isn't persisted\n this.setState({\n isPanelDisconnected: true,\n isWaitingForReconnect: false,\n });\n onSessionClose?.(session);\n }\n\n render(): ReactElement {\n const {\n children,\n className,\n componentPanel,\n descriptor,\n isLoaded,\n isLoading,\n glContainer,\n glEventHub,\n isDisconnected,\n isClonable,\n isRenamable,\n showTabTooltip = false,\n renderTabTooltip,\n\n onClearAllFilters,\n onErrorAction,\n onHide,\n onFocus,\n onBlur,\n onResize,\n onSessionOpen,\n onShow,\n onTabBlur,\n onTabFocus,\n onTabClicked,\n\n additionalActions: propsAdditionalActions,\n } = this.props;\n\n const { isPanelDisconnected, isWidgetDisconnected, isPanelInactive } =\n this.state;\n const errorMessage = this.getErrorMessage();\n const doRenderTabTooltip =\n renderTabTooltip ??\n this.getCachedRenderTabTooltip(showTabTooltip, descriptor);\n\n const additionalActions = this.getCachedActions(\n descriptor,\n propsAdditionalActions\n );\n\n return (\n <Panel\n className={classNames(className, {\n disconnected:\n isPanelDisconnected || isWidgetDisconnected || isDisconnected,\n inactive: isPanelInactive,\n })}\n componentPanel={componentPanel}\n glContainer={glContainer}\n glEventHub={glEventHub}\n onClearAllFilters={onClearAllFilters}\n onErrorAction={onErrorAction}\n onHide={onHide}\n onFocus={onFocus}\n onBlur={onBlur}\n onResize={onResize}\n onShow={onShow}\n onSessionClose={this.handleSessionClosed}\n onSessionOpen={onSessionOpen}\n onTabBlur={onTabBlur}\n onTabFocus={onTabFocus}\n onTabClicked={onTabClicked}\n renderTabTooltip={doRenderTabTooltip}\n errorMessage={errorMessage}\n isLoaded={isLoaded}\n isLoading={isLoading}\n isClonable={isClonable}\n isRenamable={isRenamable}\n additionalActions={additionalActions}\n >\n {children}\n {isPanelInactive && <div className=\"fill-parent-absolute\" />}\n </Panel>\n );\n }\n}\n\nconst XWidgetPanel = createXComponent<WidgetPanelProps>(WidgetPanel);\n\nexport default XWidgetPanel;\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.26.0",
3
+ "version": "1.27.0",
4
4
  "description": "Deephaven Dashboard Core Plugins",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -22,22 +22,22 @@
22
22
  "build:sass": "sass --embed-sources --load-path=../../node_modules ./src:./dist"
23
23
  },
24
24
  "dependencies": {
25
- "@deephaven/chart": "^1.26.0",
26
- "@deephaven/components": "^1.22.1",
27
- "@deephaven/console": "^1.26.0",
28
- "@deephaven/dashboard": "^1.24.0",
29
- "@deephaven/file-explorer": "^1.22.1",
25
+ "@deephaven/chart": "^1.27.0",
26
+ "@deephaven/components": "^1.27.0",
27
+ "@deephaven/console": "^1.27.0",
28
+ "@deephaven/dashboard": "^1.27.0",
29
+ "@deephaven/file-explorer": "^1.27.0",
30
30
  "@deephaven/filters": "^1.1.0",
31
- "@deephaven/golden-layout": "^1.24.0",
31
+ "@deephaven/golden-layout": "^1.27.0",
32
32
  "@deephaven/grid": "^1.25.0",
33
33
  "@deephaven/icons": "^1.2.0",
34
- "@deephaven/iris-grid": "^1.26.0",
35
- "@deephaven/jsapi-bootstrap": "^1.23.0",
36
- "@deephaven/jsapi-components": "^1.23.0",
34
+ "@deephaven/iris-grid": "^1.27.0",
35
+ "@deephaven/jsapi-bootstrap": "^1.27.0",
36
+ "@deephaven/jsapi-components": "^1.27.0",
37
37
  "@deephaven/jsapi-types": "^1.0.0-dev0.40.4",
38
38
  "@deephaven/jsapi-utils": "^1.23.0",
39
39
  "@deephaven/log": "^1.8.0",
40
- "@deephaven/plugin": "^1.26.0",
40
+ "@deephaven/plugin": "^1.27.0",
41
41
  "@deephaven/react-hooks": "^1.21.1",
42
42
  "@deephaven/redux": "^1.23.0",
43
43
  "@deephaven/storage": "^1.8.0",
@@ -79,5 +79,5 @@
79
79
  "publishConfig": {
80
80
  "access": "public"
81
81
  },
82
- "gitHead": "05c795d6daa87617ffd6d83687c31a4c09cc80f5"
82
+ "gitHead": "29750deaabe9cf1ed370e04522732a5b1eb61522"
83
83
  }