@deephaven/iris-grid 1.22.1 → 1.22.2-alpha-pivot-builder.0730ba6.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.
Files changed (201) hide show
  1. package/README.md +296 -1
  2. package/dist/AdvancedFilterCreator.js +65 -102
  3. package/dist/AdvancedFilterCreator.js.map +1 -1
  4. package/dist/AdvancedFilterCreatorFilterItem.js +22 -37
  5. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  6. package/dist/AdvancedFilterCreatorSelectValue.js +37 -63
  7. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  8. package/dist/AdvancedFilterCreatorSelectValueList.js +29 -59
  9. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  10. package/dist/ColumnHeaderGroup.js +6 -8
  11. package/dist/ColumnHeaderGroup.js.map +1 -1
  12. package/dist/ColumnStatistics.js +22 -28
  13. package/dist/ColumnStatistics.js.map +1 -1
  14. package/dist/CommonTypes.d.ts +84 -2
  15. package/dist/CommonTypes.d.ts.map +1 -1
  16. package/dist/CommonTypes.js.map +1 -1
  17. package/dist/CrossColumnSearch.js +20 -29
  18. package/dist/CrossColumnSearch.js.map +1 -1
  19. package/dist/FilterInputField.css +3 -0
  20. package/dist/FilterInputField.css.map +1 -1
  21. package/dist/FilterInputField.js +19 -46
  22. package/dist/FilterInputField.js.map +1 -1
  23. package/dist/GotoRow.js +32 -29
  24. package/dist/GotoRow.js.map +1 -1
  25. package/dist/IrisGrid.css +3 -0
  26. package/dist/IrisGrid.css.map +1 -1
  27. package/dist/IrisGrid.d.ts +99 -4
  28. package/dist/IrisGrid.d.ts.map +1 -1
  29. package/dist/IrisGrid.js +732 -860
  30. package/dist/IrisGrid.js.map +1 -1
  31. package/dist/IrisGridBottomBar.js +10 -11
  32. package/dist/IrisGridBottomBar.js.map +1 -1
  33. package/dist/IrisGridCacheUtils.js +28 -8
  34. package/dist/IrisGridCacheUtils.js.map +1 -1
  35. package/dist/IrisGridCellOverflowModal.js +30 -13
  36. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  37. package/dist/IrisGridCellRendererUtils.js +6 -12
  38. package/dist/IrisGridCellRendererUtils.js.map +1 -1
  39. package/dist/IrisGridCopyHandler.js +28 -47
  40. package/dist/IrisGridCopyHandler.js.map +1 -1
  41. package/dist/IrisGridMetricCalculator.js +28 -51
  42. package/dist/IrisGridMetricCalculator.js.map +1 -1
  43. package/dist/IrisGridModel.d.ts +36 -1
  44. package/dist/IrisGridModel.d.ts.map +1 -1
  45. package/dist/IrisGridModel.js +42 -1
  46. package/dist/IrisGridModel.js.map +1 -1
  47. package/dist/IrisGridModelUpdater.js +32 -30
  48. package/dist/IrisGridModelUpdater.js.map +1 -1
  49. package/dist/IrisGridModelWidgetProps.d.ts +26 -0
  50. package/dist/IrisGridModelWidgetProps.d.ts.map +1 -0
  51. package/dist/IrisGridModelWidgetProps.js +2 -0
  52. package/dist/IrisGridModelWidgetProps.js.map +1 -0
  53. package/dist/IrisGridPartitionSelector.js +28 -62
  54. package/dist/IrisGridPartitionSelector.js.map +1 -1
  55. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  56. package/dist/IrisGridProxyModel.js +41 -14
  57. package/dist/IrisGridProxyModel.js.map +1 -1
  58. package/dist/IrisGridRenderer.js +162 -264
  59. package/dist/IrisGridRenderer.js.map +1 -1
  60. package/dist/IrisGridTableModel.js +23 -16
  61. package/dist/IrisGridTableModel.js.map +1 -1
  62. package/dist/IrisGridTableModelTemplate.js +49 -73
  63. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  64. package/dist/IrisGridTestUtils.js +19 -19
  65. package/dist/IrisGridTestUtils.js.map +1 -1
  66. package/dist/IrisGridTextCellRenderer.d.ts.map +1 -1
  67. package/dist/IrisGridTextCellRenderer.js +36 -53
  68. package/dist/IrisGridTextCellRenderer.js.map +1 -1
  69. package/dist/IrisGridTheme.js +9 -1
  70. package/dist/IrisGridTheme.js.map +1 -1
  71. package/dist/IrisGridThemeProvider.js +5 -7
  72. package/dist/IrisGridThemeProvider.js.map +1 -1
  73. package/dist/IrisGridTreeTableModel.js +5 -9
  74. package/dist/IrisGridTreeTableModel.js.map +1 -1
  75. package/dist/IrisGridUtils.d.ts +25 -2
  76. package/dist/IrisGridUtils.d.ts.map +1 -1
  77. package/dist/IrisGridUtils.js +297 -294
  78. package/dist/IrisGridUtils.js.map +1 -1
  79. package/dist/LazyIrisGrid.d.ts +1 -1
  80. package/dist/NoPastePermissionModal.js +3 -5
  81. package/dist/NoPastePermissionModal.js.map +1 -1
  82. package/dist/PendingDataBottomBar.js +27 -16
  83. package/dist/PendingDataBottomBar.js.map +1 -1
  84. package/dist/ToastBottomBar.js +16 -8
  85. package/dist/ToastBottomBar.js.map +1 -1
  86. package/dist/format-context-menus/CustomFormatAction.js +11 -24
  87. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  88. package/dist/index.d.ts +1 -0
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +1 -0
  91. package/dist/index.js.map +1 -1
  92. package/dist/key-handlers/CopyCellKeyHandler.js +3 -4
  93. package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
  94. package/dist/key-handlers/CopyKeyHandler.js +1 -3
  95. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  96. package/dist/key-handlers/ReverseKeyHandler.js +1 -3
  97. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  98. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +35 -59
  99. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  100. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +13 -29
  101. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  102. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +8 -17
  103. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  104. package/dist/mousehandlers/IrisGridContextMenuHandler.js +96 -199
  105. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  106. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +2 -4
  107. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
  108. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +16 -30
  109. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  110. package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js +5 -13
  111. package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
  112. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js +20 -36
  113. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
  114. package/dist/mousehandlers/IrisGridSortMouseHandler.js +3 -5
  115. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  116. package/dist/mousehandlers/IrisGridTokenMouseHandler.js +9 -18
  117. package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
  118. package/dist/mousehandlers/PendingMouseHandler.js +10 -18
  119. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  120. package/dist/sidebar/AdvancedSettingsMenu.js +12 -5
  121. package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
  122. package/dist/sidebar/ChartBuilder.js +45 -102
  123. package/dist/sidebar/ChartBuilder.js.map +1 -1
  124. package/dist/sidebar/CustomColumnBuilder.js +35 -77
  125. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  126. package/dist/sidebar/CustomColumnInput.js +9 -11
  127. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  128. package/dist/sidebar/InputEditor.js +17 -24
  129. package/dist/sidebar/InputEditor.js.map +1 -1
  130. package/dist/sidebar/IrisGridTableOptionsWidgetProps.d.ts +22 -0
  131. package/dist/sidebar/IrisGridTableOptionsWidgetProps.d.ts.map +1 -0
  132. package/dist/sidebar/IrisGridTableOptionsWidgetProps.js +2 -0
  133. package/dist/sidebar/IrisGridTableOptionsWidgetProps.js.map +1 -0
  134. package/dist/sidebar/OptionType.d.ts +8 -0
  135. package/dist/sidebar/OptionType.d.ts.map +1 -1
  136. package/dist/sidebar/OptionType.js +7 -0
  137. package/dist/sidebar/OptionType.js.map +1 -1
  138. package/dist/sidebar/PluginTableOptionsErrorBoundary.d.ts +25 -0
  139. package/dist/sidebar/PluginTableOptionsErrorBoundary.d.ts.map +1 -0
  140. package/dist/sidebar/PluginTableOptionsErrorBoundary.js +49 -0
  141. package/dist/sidebar/PluginTableOptionsErrorBoundary.js.map +1 -0
  142. package/dist/sidebar/RollupRows.js +72 -113
  143. package/dist/sidebar/RollupRows.js.map +1 -1
  144. package/dist/sidebar/SelectDistinctBuilder.js +16 -33
  145. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  146. package/dist/sidebar/TableCsvExporter.js +50 -74
  147. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  148. package/dist/sidebar/TableSaver.js +18 -42
  149. package/dist/sidebar/TableSaver.js.map +1 -1
  150. package/dist/sidebar/aggregations/AggregationEdit.js +25 -18
  151. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  152. package/dist/sidebar/aggregations/AggregationUtils.js +1 -3
  153. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  154. package/dist/sidebar/aggregations/Aggregations.js +45 -34
  155. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  156. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +35 -24
  157. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  158. package/dist/sidebar/conditional-formatting/ConditionEditor.js +38 -21
  159. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  160. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +27 -11
  161. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  162. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +9 -11
  163. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  164. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +48 -57
  165. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  166. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +35 -24
  167. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  168. package/dist/sidebar/conditional-formatting/StyleEditor.js +26 -11
  169. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
  170. package/dist/sidebar/index.d.ts +3 -2
  171. package/dist/sidebar/index.d.ts.map +1 -1
  172. package/dist/sidebar/index.js.map +1 -1
  173. package/dist/sidebar/visibility-ordering-builder/SearchItem.js +5 -7
  174. package/dist/sidebar/visibility-ordering-builder/SearchItem.js.map +1 -1
  175. package/dist/sidebar/visibility-ordering-builder/SearchWithModal.css +3 -0
  176. package/dist/sidebar/visibility-ordering-builder/SearchWithModal.css.map +1 -1
  177. package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js +24 -18
  178. package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js.map +1 -1
  179. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +166 -256
  180. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  181. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +4 -11
  182. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
  183. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +28 -14
  184. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
  185. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +16 -19
  186. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
  187. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +1 -3
  188. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
  189. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +19 -29
  190. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
  191. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js +39 -52
  192. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js.map +1 -1
  193. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +18 -23
  194. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
  195. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +19 -15
  196. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
  197. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +16 -30
  198. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
  199. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +30 -39
  200. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  201. package/package.json +16 -16
@@ -3,8 +3,9 @@ import { type GridRangeIndex, type ModelIndex } from '@deephaven/grid';
3
3
  import type { dh } from '@deephaven/jsapi-types';
4
4
  import { type Shortcut } from '@deephaven/components';
5
5
  import { type IconDefinition } from '@deephaven/icons';
6
+ import { type ComponentType } from 'react';
6
7
  import type AggregationOperation from './sidebar/aggregations/AggregationOperation';
7
- import { type UIRollupConfig, type OptionType } from './sidebar';
8
+ import { type UIRollupConfig, type OptionItemKey } from './sidebar';
8
9
  import type IrisGridModel from './IrisGridModel';
9
10
  import { type IrisGridThemeType } from './IrisGridTheme';
10
11
  export type RowIndex = ModelIndex;
@@ -29,13 +30,94 @@ export type Action = {
29
30
  action: () => void;
30
31
  shortcut: Shortcut;
31
32
  };
33
+ /**
34
+ * Options accepted by `IrisGrid.startLoading`. Mirrors the inline options bag
35
+ * on that method so initiators (including plugins) can type their request.
36
+ */
37
+ export type StartLoadingOptions = {
38
+ /** Reset selected ranges and scroll position when loading begins. */
39
+ resetRanges?: boolean;
40
+ /** Whether the loading scrim shows a cancel button. */
41
+ loadingCancelShown?: boolean;
42
+ /** Whether the loading scrim blocks interaction with the grid. */
43
+ loadingBlocksGrid?: boolean;
44
+ };
45
+ /**
46
+ * Detail payload for `IrisGridModel.EVENT.PENDING`. Self-describing so an
47
+ * initiator (e.g. a plugin) can raise the loading scrim for an operation
48
+ * IrisGrid has no built-in knowledge of.
49
+ */
50
+ export type PendingOperationDetail = {
51
+ /**
52
+ * Display text for the scrim. Omitted → IrisGrid uses a generic message.
53
+ */
54
+ text?: string;
55
+ /** Scrim options the initiator wants applied while loading. */
56
+ options?: StartLoadingOptions;
57
+ };
58
+ /**
59
+ * A curated, read-only snapshot of the grid's current view configuration,
60
+ * exposed to plugin-supplied sidebar pages. This is intentionally a small,
61
+ * stable subset of the grid's internal state (not `IrisGridState` itself):
62
+ * fields are added here additively as plugins need them, so the plugin API
63
+ * stays decoupled from `IrisGrid`'s internal/serialization concerns.
64
+ */
65
+ export interface IrisGridViewState {
66
+ /**
67
+ * Names of columns currently hidden by the user (via the Visibility &
68
+ * Ordering builder) or by `model.layoutHints.hiddenColumns`. Order is
69
+ * not significant. Pages that surface column choosers should use this
70
+ * to filter their selection lists; column-name comparisons are
71
+ * case-sensitive and must match `IrisGridModel#columns[i].name`.
72
+ *
73
+ * Optional so plugins keep handling fields defensively as this type grows,
74
+ * staying resilient when the host's iris-grid version differs from theirs.
75
+ */
76
+ readonly hiddenColumns?: readonly ColumnName[];
77
+ }
78
+ /**
79
+ * Props passed to a plugin-supplied sidebar page (an item whose
80
+ * `configPage` is set). Pages receive the current model, a read-only
81
+ * snapshot of the grid's view state, and a back-navigation callback; any
82
+ * additional state access should flow through the model or through props
83
+ * the plugin threads in itself.
84
+ */
85
+ export type IrisGridTableOptionsPageProps = {
86
+ /** Current model the grid is rendering. */
87
+ model: IrisGridModel;
88
+ /** Read-only snapshot of the grid's current view configuration. */
89
+ viewState: IrisGridViewState;
90
+ /** Pop the current page off the sidebar stack. */
91
+ onBack: () => void;
92
+ };
32
93
  export type OptionItem = {
33
- type: OptionType;
94
+ /**
95
+ * Built-in items use the `OptionType` enum; plugin-contributed items
96
+ * use a namespaced string key (convention `plugin:<name>:<id>`).
97
+ */
98
+ type: OptionItemKey;
34
99
  title: string;
35
100
  subtitle?: string;
36
101
  icon?: IconDefinition;
37
102
  isOn?: boolean;
38
103
  onChange?: () => void;
104
+ /**
105
+ * Optional sort weight for positioning the item within the menu. Items
106
+ * are stably sorted by ascending `order`; an omitted `order` sinks the
107
+ * item to the end of the menu. Built-in items are numbered with a stride
108
+ * of 100 (Chart Builder `100` … Go to `1200`), so a plugin can slot an
109
+ * item between two built-ins (e.g. `250`) or before all of them with a
110
+ * smaller/negative value.
111
+ */
112
+ order?: number;
113
+ /**
114
+ * Renderer for plugin-supplied sidebar pages. Built-in items leave
115
+ * this undefined — the `IrisGrid` page switch renders them via
116
+ * its existing `case OptionType.*` arms; the `default` case renders
117
+ * `configPage` when present and falls back to a programmer-error
118
+ * throw otherwise.
119
+ */
120
+ configPage?: ComponentType<IrisGridTableOptionsPageProps>;
39
121
  };
40
122
  export interface UITotalsTableConfig extends dh.TotalsTableConfig {
41
123
  operationOrder: AggregationOperation[];
@@ -1 +1 @@
1
- {"version":3,"file":"CommonTypes.d.ts","sourceRoot":"","sources":["../src/CommonTypes.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommonTypes.d.ts","sourceRoot":"","sources":["../src/CommonTypes.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CommonTypes.js","names":[],"sources":["../src/CommonTypes.tsx"],"sourcesContent":["import {\n type AdvancedFilterOptions,\n type SortDescriptor,\n} from '@deephaven/jsapi-utils';\nimport { type GridRangeIndex, type ModelIndex } from '@deephaven/grid';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { type Shortcut } from '@deephaven/components';\nimport { type IconDefinition } from '@deephaven/icons';\nimport type AggregationOperation from './sidebar/aggregations/AggregationOperation';\nimport { type UIRollupConfig, type OptionType } from './sidebar';\nimport type IrisGridModel from './IrisGridModel';\nimport { type IrisGridThemeType } from './IrisGridTheme';\n\nexport type RowIndex = ModelIndex;\n\nexport type { AdvancedFilterOptions };\nexport type ColumnName = string;\nexport type AdvancedFilterMap = Map<ModelIndex, AdvancedFilter>;\nexport type QuickFilterMap = Map<ModelIndex, QuickFilter>;\nexport type ReadonlyAdvancedFilterMap = ReadonlyMap<ModelIndex, AdvancedFilter>;\nexport type ReadonlyQuickFilterMap = ReadonlyMap<ModelIndex, QuickFilter>;\nexport type ReadonlyAggregationMap = Readonly<\n Record<AggregationOperation, readonly ColumnName[]>\n>;\nexport type OperationMap = Record<ColumnName, readonly AggregationOperation[]>;\nexport type ReadonlyOperationMap = Readonly<\n Record<ColumnName, readonly AggregationOperation[]>\n>;\n\nexport type QuickFilter = {\n text: string;\n filter: dh.FilterCondition | null;\n};\n\nexport type AdvancedFilter = {\n filter: dh.FilterCondition | null;\n options: AdvancedFilterOptions;\n};\n\nexport type Action = {\n action: () => void;\n shortcut: Shortcut;\n};\n\nexport type OptionItem = {\n type: OptionType;\n title: string;\n subtitle?: string;\n icon?: IconDefinition;\n isOn?: boolean;\n onChange?: () => void;\n};\n\nexport interface UITotalsTableConfig extends dh.TotalsTableConfig {\n operationOrder: AggregationOperation[];\n showOnTop: boolean;\n}\n\nexport type InputFilter = {\n name: string;\n type: string;\n value: string;\n excludePanelIds?: (string | string[])[];\n};\n\nexport interface UIRow {\n /**\n * The data in the row indexed by column number.\n * If a column is not part of the columns array (i.e. it's hidden by the model/table),\n * then it will be included by its name instead of index.\n */\n data: Map<ModelIndex | ColumnName, CellData>;\n}\n\nexport type UIViewportData<R extends UIRow = UIRow> = {\n offset: number;\n rows: R[];\n};\nexport type RowData<T = unknown> = Map<number, { value: T }>;\n\nexport type CellData = {\n value: unknown;\n format?: dh.Format;\n};\nexport type PendingDataMap<R extends UIRow = UIRow> = ReadonlyMap<RowIndex, R>;\n\n/** Maps from a row index to the errors for that row */\nexport type PendingDataErrorMap<T extends Error = Error> = ReadonlyMap<\n RowIndex,\n readonly T[]\n>;\n\nexport interface IrisGridStateOverride extends Record<string, unknown> {\n model: IrisGridModel;\n theme: IrisGridThemeType;\n hoverSelectColumn: GridRangeIndex;\n isFilterBarShown: boolean;\n isMenuShown: boolean;\n isSelectingColumn: boolean;\n loadingScrimProgress: number | null;\n advancedFilters: ReadonlyAdvancedFilterMap;\n quickFilters: ReadonlyQuickFilterMap;\n sorts: readonly SortDescriptor[];\n reverse: boolean;\n rollupConfig: UIRollupConfig | undefined;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"file":"CommonTypes.js","names":[],"sources":["../src/CommonTypes.tsx"],"sourcesContent":["import {\n type AdvancedFilterOptions,\n type SortDescriptor,\n} from '@deephaven/jsapi-utils';\nimport { type GridRangeIndex, type ModelIndex } from '@deephaven/grid';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { type Shortcut } from '@deephaven/components';\nimport { type IconDefinition } from '@deephaven/icons';\nimport { type ComponentType } from 'react';\nimport type AggregationOperation from './sidebar/aggregations/AggregationOperation';\nimport { type UIRollupConfig, type OptionItemKey } from './sidebar';\nimport type IrisGridModel from './IrisGridModel';\nimport { type IrisGridThemeType } from './IrisGridTheme';\n\nexport type RowIndex = ModelIndex;\n\nexport type { AdvancedFilterOptions };\nexport type ColumnName = string;\nexport type AdvancedFilterMap = Map<ModelIndex, AdvancedFilter>;\nexport type QuickFilterMap = Map<ModelIndex, QuickFilter>;\nexport type ReadonlyAdvancedFilterMap = ReadonlyMap<ModelIndex, AdvancedFilter>;\nexport type ReadonlyQuickFilterMap = ReadonlyMap<ModelIndex, QuickFilter>;\nexport type ReadonlyAggregationMap = Readonly<\n Record<AggregationOperation, readonly ColumnName[]>\n>;\nexport type OperationMap = Record<ColumnName, readonly AggregationOperation[]>;\nexport type ReadonlyOperationMap = Readonly<\n Record<ColumnName, readonly AggregationOperation[]>\n>;\n\nexport type QuickFilter = {\n text: string;\n filter: dh.FilterCondition | null;\n};\n\nexport type AdvancedFilter = {\n filter: dh.FilterCondition | null;\n options: AdvancedFilterOptions;\n};\n\nexport type Action = {\n action: () => void;\n shortcut: Shortcut;\n};\n\n/**\n * Options accepted by `IrisGrid.startLoading`. Mirrors the inline options bag\n * on that method so initiators (including plugins) can type their request.\n */\nexport type StartLoadingOptions = {\n /** Reset selected ranges and scroll position when loading begins. */\n resetRanges?: boolean;\n /** Whether the loading scrim shows a cancel button. */\n loadingCancelShown?: boolean;\n /** Whether the loading scrim blocks interaction with the grid. */\n loadingBlocksGrid?: boolean;\n};\n\n/**\n * Detail payload for `IrisGridModel.EVENT.PENDING`. Self-describing so an\n * initiator (e.g. a plugin) can raise the loading scrim for an operation\n * IrisGrid has no built-in knowledge of.\n */\nexport type PendingOperationDetail = {\n /**\n * Display text for the scrim. Omitted → IrisGrid uses a generic message.\n */\n text?: string;\n /** Scrim options the initiator wants applied while loading. */\n options?: StartLoadingOptions;\n};\n\n/**\n * A curated, read-only snapshot of the grid's current view configuration,\n * exposed to plugin-supplied sidebar pages. This is intentionally a small,\n * stable subset of the grid's internal state (not `IrisGridState` itself):\n * fields are added here additively as plugins need them, so the plugin API\n * stays decoupled from `IrisGrid`'s internal/serialization concerns.\n */\nexport interface IrisGridViewState {\n /**\n * Names of columns currently hidden by the user (via the Visibility &\n * Ordering builder) or by `model.layoutHints.hiddenColumns`. Order is\n * not significant. Pages that surface column choosers should use this\n * to filter their selection lists; column-name comparisons are\n * case-sensitive and must match `IrisGridModel#columns[i].name`.\n *\n * Optional so plugins keep handling fields defensively as this type grows,\n * staying resilient when the host's iris-grid version differs from theirs.\n */\n readonly hiddenColumns?: readonly ColumnName[];\n}\n\n/**\n * Props passed to a plugin-supplied sidebar page (an item whose\n * `configPage` is set). Pages receive the current model, a read-only\n * snapshot of the grid's view state, and a back-navigation callback; any\n * additional state access should flow through the model or through props\n * the plugin threads in itself.\n */\nexport type IrisGridTableOptionsPageProps = {\n /** Current model the grid is rendering. */\n model: IrisGridModel;\n /** Read-only snapshot of the grid's current view configuration. */\n viewState: IrisGridViewState;\n /** Pop the current page off the sidebar stack. */\n onBack: () => void;\n};\n\nexport type OptionItem = {\n /**\n * Built-in items use the `OptionType` enum; plugin-contributed items\n * use a namespaced string key (convention `plugin:<name>:<id>`).\n */\n type: OptionItemKey;\n title: string;\n subtitle?: string;\n icon?: IconDefinition;\n isOn?: boolean;\n onChange?: () => void;\n /**\n * Optional sort weight for positioning the item within the menu. Items\n * are stably sorted by ascending `order`; an omitted `order` sinks the\n * item to the end of the menu. Built-in items are numbered with a stride\n * of 100 (Chart Builder `100` … Go to `1200`), so a plugin can slot an\n * item between two built-ins (e.g. `250`) or before all of them with a\n * smaller/negative value.\n */\n order?: number;\n /**\n * Renderer for plugin-supplied sidebar pages. Built-in items leave\n * this undefined — the `IrisGrid` page switch renders them via\n * its existing `case OptionType.*` arms; the `default` case renders\n * `configPage` when present and falls back to a programmer-error\n * throw otherwise.\n */\n configPage?: ComponentType<IrisGridTableOptionsPageProps>;\n};\n\nexport interface UITotalsTableConfig extends dh.TotalsTableConfig {\n operationOrder: AggregationOperation[];\n showOnTop: boolean;\n}\n\nexport type InputFilter = {\n name: string;\n type: string;\n value: string;\n excludePanelIds?: (string | string[])[];\n};\n\nexport interface UIRow {\n /**\n * The data in the row indexed by column number.\n * If a column is not part of the columns array (i.e. it's hidden by the model/table),\n * then it will be included by its name instead of index.\n */\n data: Map<ModelIndex | ColumnName, CellData>;\n}\n\nexport type UIViewportData<R extends UIRow = UIRow> = {\n offset: number;\n rows: R[];\n};\nexport type RowData<T = unknown> = Map<number, { value: T }>;\n\nexport type CellData = {\n value: unknown;\n format?: dh.Format;\n};\nexport type PendingDataMap<R extends UIRow = UIRow> = ReadonlyMap<RowIndex, R>;\n\n/** Maps from a row index to the errors for that row */\nexport type PendingDataErrorMap<T extends Error = Error> = ReadonlyMap<\n RowIndex,\n readonly T[]\n>;\n\nexport interface IrisGridStateOverride extends Record<string, unknown> {\n model: IrisGridModel;\n theme: IrisGridThemeType;\n hoverSelectColumn: GridRangeIndex;\n isFilterBarShown: boolean;\n isMenuShown: boolean;\n isSelectingColumn: boolean;\n loadingScrimProgress: number | null;\n advancedFilters: ReadonlyAdvancedFilterMap;\n quickFilters: ReadonlyQuickFilterMap;\n sorts: readonly SortDescriptor[];\n reverse: boolean;\n rollupConfig: UIRollupConfig | undefined;\n}\n"],"mappings":"","ignoreList":[]}
@@ -36,32 +36,28 @@ class CrossColumnSearch extends PureComponent {
36
36
  (_this$searchField$cur = this.searchField.current) === null || _this$searchField$cur === void 0 || _this$searchField$cur.focus();
37
37
  }
38
38
  handleSearchValueChange(event) {
39
- var {
40
- onChange,
41
- selectedColumns,
42
- invertSelection
43
- } = this.props;
39
+ var _this$props = this.props,
40
+ onChange = _this$props.onChange,
41
+ selectedColumns = _this$props.selectedColumns,
42
+ invertSelection = _this$props.invertSelection;
44
43
  onChange(event.target.value, selectedColumns, invertSelection);
45
44
  }
46
45
  sendColumnChange(selectedColumns, invertSelection) {
47
- var {
48
- onChange,
49
- value
50
- } = this.props;
46
+ var _this$props2 = this.props,
47
+ onChange = _this$props2.onChange,
48
+ value = _this$props2.value;
51
49
  onChange(value, selectedColumns, invertSelection);
52
50
  }
53
51
  setInvertSelection(invertSelection) {
54
- var {
55
- onChange,
56
- value
57
- } = this.props;
52
+ var _this$props3 = this.props,
53
+ onChange = _this$props3.onChange,
54
+ value = _this$props3.value;
58
55
  onChange(value, [], invertSelection);
59
56
  }
60
57
  toggleColumn(name) {
61
- var {
62
- selectedColumns,
63
- invertSelection
64
- } = this.props;
58
+ var _this$props4 = this.props,
59
+ selectedColumns = _this$props4.selectedColumns,
60
+ invertSelection = _this$props4.invertSelection;
65
61
  if (selectedColumns.includes(name)) {
66
62
  this.sendColumnChange(selectedColumns.filter(c => c !== name), invertSelection);
67
63
  } else {
@@ -77,21 +73,16 @@ class CrossColumnSearch extends PureComponent {
77
73
  this.setInvertSelection(false);
78
74
  }
79
75
  selectNumbers() {
80
- var {
81
- columns
82
- } = this.props;
76
+ var columns = this.props.columns;
83
77
  this.sendColumnChange(columns.filter(c => TableUtils.isNumberType(c.type)).map(column => column.name), false);
84
78
  }
85
79
  render() {
86
- var {
87
- value,
88
- selectedColumns,
89
- invertSelection,
90
- columns
91
- } = this.props;
92
- var {
93
- isConfigureColumnsShown
94
- } = this.state;
80
+ var _this$props5 = this.props,
81
+ value = _this$props5.value,
82
+ selectedColumns = _this$props5.selectedColumns,
83
+ invertSelection = _this$props5.invertSelection,
84
+ columns = _this$props5.columns;
85
+ var isConfigureColumnsShown = this.state.isConfigureColumnsShown;
95
86
  var hasAllColumnsSelected = selectedColumns.length === 0 && invertSelection === true || selectedColumns.length === columns.length && invertSelection === false;
96
87
  var hasNoColumnsSelected = selectedColumns.length === 0 && invertSelection === false || selectedColumns.length === columns.length && invertSelection === true;
97
88
 
@@ -1 +1 @@
1
- {"version":3,"file":"CrossColumnSearch.js","names":["React","PureComponent","FontAwesomeIcon","Checkbox","Popper","SearchInput","Tooltip","dhGearFilled","dhCheckSquare","dhSquareFilled","dhRemoveSquareFilled","dhWarningCircleFilled","vsCircleLargeFilled","TableUtils","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","CrossColumnSearch","createSearchFilter","dh","searchValue","selectedColumns","columns","invertSelection","filterColumns","filter","column","includes","name","map","length","filterValue","FilterValue","ofString","searchFilter","FilterCondition","search","undefined","constructor","props","_defineProperty","handleSearchValueChange","bind","toggleColumn","selectAll","clear","selectNumbers","searchField","createRef","state","isConfigureColumnsShown","focus","_this$searchField$cur","current","event","onChange","target","value","sendColumnChange","setInvertSelection","c","update","slice","push","isNumberType","type","render","hasAllColumnsSelected","hasNoColumnsSelected","icon","children","mask","transform","className","placeholder","ref","onClick","setState","isShown","onExited","closeOnBlur","interactive","isProxy","checked","substring","lastIndexOf"],"sources":["../src/CrossColumnSearch.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Checkbox, Popper, SearchInput, Tooltip } from '@deephaven/components';\nimport {\n dhGearFilled,\n dhCheckSquare,\n dhSquareFilled,\n dhRemoveSquareFilled,\n dhWarningCircleFilled,\n vsCircleLargeFilled,\n} from '@deephaven/icons';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport './CrossColumnSearch.scss';\nimport { type ColumnName } from './CommonTypes';\nimport { type DisplayColumn } from './IrisGridModel';\n\ninterface CrossColumnSearchProps {\n value: string;\n selectedColumns: readonly ColumnName[];\n invertSelection: boolean;\n onChange: (\n value: string,\n selectedColumns: readonly ColumnName[],\n invertSelection: boolean\n ) => void;\n columns: readonly DisplayColumn[];\n}\n\ninterface CrossColumnSearchState {\n isConfigureColumnsShown: boolean;\n}\nclass CrossColumnSearch extends PureComponent<\n CrossColumnSearchProps,\n CrossColumnSearchState\n> {\n static createSearchFilter(\n dh: typeof DhType,\n searchValue: string,\n selectedColumns: readonly ColumnName[],\n columns: readonly DhType.Column[],\n invertSelection: boolean\n ): DhType.FilterCondition | undefined {\n const filterColumns = invertSelection\n ? columns\n .filter(column => !selectedColumns.includes(column.name))\n .map(column => column.name)\n : selectedColumns;\n if (searchValue && filterColumns.length > 0) {\n const filterValue = dh.FilterValue.ofString(searchValue);\n const searchFilter =\n filterColumns.length === columns.length\n ? dh.FilterCondition.search(filterValue)\n : dh.FilterCondition.search(\n filterValue,\n columns\n .filter(column => filterColumns.includes(column.name))\n .map(column => column.filter())\n );\n return searchFilter;\n }\n return undefined;\n }\n\n constructor(props: CrossColumnSearchProps) {\n super(props);\n this.handleSearchValueChange = this.handleSearchValueChange.bind(this);\n this.toggleColumn = this.toggleColumn.bind(this);\n this.selectAll = this.selectAll.bind(this);\n this.clear = this.clear.bind(this);\n this.selectNumbers = this.selectNumbers.bind(this);\n\n this.searchField = React.createRef();\n\n this.state = {\n isConfigureColumnsShown: false,\n };\n }\n\n searchField: React.RefObject<SearchInput>;\n\n focus(): void {\n this.searchField.current?.focus();\n }\n\n handleSearchValueChange(event: React.ChangeEvent<HTMLInputElement>): void {\n const { onChange, selectedColumns, invertSelection } = this.props;\n onChange(event.target.value, selectedColumns, invertSelection);\n }\n\n sendColumnChange(\n selectedColumns: readonly ColumnName[],\n invertSelection: boolean\n ): void {\n const { onChange, value } = this.props;\n onChange(value, selectedColumns, invertSelection);\n }\n\n setInvertSelection(invertSelection: boolean): void {\n const { onChange, value } = this.props;\n onChange(value, [], invertSelection);\n }\n\n toggleColumn(name: string): void {\n const { selectedColumns, invertSelection } = this.props;\n if (selectedColumns.includes(name)) {\n this.sendColumnChange(\n selectedColumns.filter(c => c !== name),\n invertSelection\n );\n } else {\n const update = selectedColumns.slice();\n update.push(name);\n this.sendColumnChange(update, invertSelection);\n }\n }\n\n selectAll(): void {\n this.setInvertSelection(true);\n }\n\n clear(): void {\n this.setInvertSelection(false);\n }\n\n selectNumbers(): void {\n const { columns } = this.props;\n this.sendColumnChange(\n columns\n .filter(c => TableUtils.isNumberType(c.type))\n .map(column => column.name),\n false\n );\n }\n\n render(): React.ReactElement {\n const { value, selectedColumns, invertSelection, columns } = this.props;\n const { isConfigureColumnsShown } = this.state;\n const hasAllColumnsSelected =\n (selectedColumns.length === 0 && invertSelection === true) ||\n (selectedColumns.length === columns.length && invertSelection === false);\n const hasNoColumnsSelected =\n (selectedColumns.length === 0 && invertSelection === false) ||\n (selectedColumns.length === columns.length && invertSelection === true);\n\n // set icon layers\n let icon;\n if (hasAllColumnsSelected) {\n // icon if all columns selected for search\n icon = (\n <>\n <FontAwesomeIcon\n icon={dhSquareFilled}\n mask={dhGearFilled}\n transform=\"shrink-2 down-5 right-7\"\n />\n <FontAwesomeIcon\n icon={dhCheckSquare}\n className=\"text-primary\"\n transform=\"shrink-4 down-5 right-7\"\n />\n </>\n );\n } else if (hasNoColumnsSelected) {\n // icon error, no columns selected for searching\n icon = (\n <>\n <FontAwesomeIcon\n icon={vsCircleLargeFilled}\n mask={dhGearFilled}\n transform=\"shrink-1 down-5 right-7\"\n />\n <FontAwesomeIcon\n icon={dhWarningCircleFilled}\n className=\"text-danger\"\n transform=\"shrink-4 down-5 right-7\"\n />\n </>\n );\n } else {\n // icon if some columns selected, but not all\n icon = (\n <>\n <FontAwesomeIcon\n icon={dhSquareFilled}\n mask={dhGearFilled}\n transform=\"shrink-2 down-5 right-7\"\n />\n <FontAwesomeIcon\n icon={dhRemoveSquareFilled}\n className=\"text-primary\"\n transform=\"shrink-4 down-5 right-7\"\n />\n </>\n );\n }\n\n return (\n <div className=\"cross-column-container\">\n <SearchInput\n className=\"cross-column-search\"\n placeholder=\"Search Data...\"\n data-testid=\"cross-column-search\"\n value={value}\n onChange={this.handleSearchValueChange}\n ref={this.searchField}\n />\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon px-2\"\n onClick={() => {\n if (isConfigureColumnsShown) {\n this.setState({ isConfigureColumnsShown: false });\n } else {\n this.setState({ isConfigureColumnsShown: true });\n }\n }}\n >\n <div className=\"fa-layers\">{icon}</div>\n <Tooltip>Configure Columns</Tooltip>\n <Popper\n isShown={isConfigureColumnsShown}\n className=\"cross-column-popper\"\n onExited={() => {\n this.setState({ isConfigureColumnsShown: false });\n }}\n closeOnBlur\n interactive\n >\n <div className=\"cross-column-popup\">\n Searched Columns\n <div className=\"cross-column-scroll\">\n {columns.map(column => {\n if (column.isProxy === true) return null;\n\n return (\n <React.Fragment key={column.name}>\n <Checkbox\n className=\"cross-column-checkbox\"\n checked={\n invertSelection\n ? !selectedColumns.includes(column.name)\n : selectedColumns.includes(column.name)\n }\n onChange={() => this.toggleColumn(column.name)}\n >\n {column.name}\n </Checkbox>\n\n {column.type.substring(column.type.lastIndexOf('.') + 1)}\n </React.Fragment>\n );\n })}\n </div>\n <div className=\"cross-column-button-bar\">\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.selectAll}\n >\n Select All\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.clear}\n >\n Clear\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.selectNumbers}\n >\n Numbers Only\n </button>\n </div>\n {hasNoColumnsSelected && (\n <p className=\"text-danger\">\n <FontAwesomeIcon icon={dhWarningCircleFilled} /> Select at\n least one column to search.\n </p>\n )}\n </div>\n </Popper>\n </button>\n </div>\n );\n }\n}\n\nexport default CrossColumnSearch;\n"],"mappings":";;;AAAA,OAAOA,KAAK,IAAIC,aAAa,QAAQ,OAAO;AAC5C,SAASC,eAAe,QAAQ,gCAAgC;AAChE,SAASC,QAAQ,EAAEC,MAAM,EAAEC,WAAW,EAAEC,OAAO,QAAQ,uBAAuB;AAC9E,SACEC,YAAY,EACZC,aAAa,EACbC,cAAc,EACdC,oBAAoB,EACpBC,qBAAqB,EACrBC,mBAAmB,QACd,kBAAkB;AAEzB,SAASC,UAAU,QAAQ,wBAAwB;AAAC;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,QAAA,IAAAC,SAAA,EAAAC,IAAA,IAAAC,KAAA;AAoBpD,MAAMC,iBAAiB,SAASnB,aAAa,CAG3C;EACA,OAAOoB,kBAAkBA,CACvBC,EAAiB,EACjBC,WAAmB,EACnBC,eAAsC,EACtCC,OAAiC,EACjCC,eAAwB,EACY;IACpC,IAAMC,aAAa,GAAGD,eAAe,GACjCD,OAAO,CACJG,MAAM,CAACC,MAAM,IAAI,CAACL,eAAe,CAACM,QAAQ,CAACD,MAAM,CAACE,IAAI,CAAC,CAAC,CACxDC,GAAG,CAACH,MAAM,IAAIA,MAAM,CAACE,IAAI,CAAC,GAC7BP,eAAe;IACnB,IAAID,WAAW,IAAII,aAAa,CAACM,MAAM,GAAG,CAAC,EAAE;MAC3C,IAAMC,WAAW,GAAGZ,EAAE,CAACa,WAAW,CAACC,QAAQ,CAACb,WAAW,CAAC;MACxD,IAAMc,YAAY,GAChBV,aAAa,CAACM,MAAM,KAAKR,OAAO,CAACQ,MAAM,GACnCX,EAAE,CAACgB,eAAe,CAACC,MAAM,CAACL,WAAW,CAAC,GACtCZ,EAAE,CAACgB,eAAe,CAACC,MAAM,CACvBL,WAAW,EACXT,OAAO,CACJG,MAAM,CAACC,MAAM,IAAIF,aAAa,CAACG,QAAQ,CAACD,MAAM,CAACE,IAAI,CAAC,CAAC,CACrDC,GAAG,CAACH,MAAM,IAAIA,MAAM,CAACD,MAAM,CAAC,CAAC,CAClC,CAAC;MACP,OAAOS,YAAY;IACrB;IACA,OAAOG,SAAS;EAClB;EAEAC,WAAWA,CAACC,KAA6B,EAAE;IACzC,KAAK,CAACA,KAAK,CAAC;IAACC,eAAA;IACb,IAAI,CAACC,uBAAuB,GAAG,IAAI,CAACA,uBAAuB,CAACC,IAAI,CAAC,IAAI,CAAC;IACtE,IAAI,CAACC,YAAY,GAAG,IAAI,CAACA,YAAY,CAACD,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACE,SAAS,GAAG,IAAI,CAACA,SAAS,CAACF,IAAI,CAAC,IAAI,CAAC;IAC1C,IAAI,CAACG,KAAK,GAAG,IAAI,CAACA,KAAK,CAACH,IAAI,CAAC,IAAI,CAAC;IAClC,IAAI,CAACI,aAAa,GAAG,IAAI,CAACA,aAAa,CAACJ,IAAI,CAAC,IAAI,CAAC;IAElD,IAAI,CAACK,WAAW,gBAAGlD,KAAK,CAACmD,SAAS,CAAC,CAAC;IAEpC,IAAI,CAACC,KAAK,GAAG;MACXC,uBAAuB,EAAE;IAC3B,CAAC;EACH;EAIAC,KAAKA,CAAA,EAAS;IAAA,IAAAC,qBAAA;IACZ,CAAAA,qBAAA,OAAI,CAACL,WAAW,CAACM,OAAO,cAAAD,qBAAA,eAAxBA,qBAAA,CAA0BD,KAAK,CAAC,CAAC;EACnC;EAEAV,uBAAuBA,CAACa,KAA0C,EAAQ;IACxE,IAAM;MAAEC,QAAQ;MAAElC,eAAe;MAAEE;IAAgB,CAAC,GAAG,IAAI,CAACgB,KAAK;IACjEgB,QAAQ,CAACD,KAAK,CAACE,MAAM,CAACC,KAAK,EAAEpC,eAAe,EAAEE,eAAe,CAAC;EAChE;EAEAmC,gBAAgBA,CACdrC,eAAsC,EACtCE,eAAwB,EAClB;IACN,IAAM;MAAEgC,QAAQ;MAAEE;IAAM,CAAC,GAAG,IAAI,CAAClB,KAAK;IACtCgB,QAAQ,CAACE,KAAK,EAAEpC,eAAe,EAAEE,eAAe,CAAC;EACnD;EAEAoC,kBAAkBA,CAACpC,eAAwB,EAAQ;IACjD,IAAM;MAAEgC,QAAQ;MAAEE;IAAM,CAAC,GAAG,IAAI,CAAClB,KAAK;IACtCgB,QAAQ,CAACE,KAAK,EAAE,EAAE,EAAElC,eAAe,CAAC;EACtC;EAEAoB,YAAYA,CAACf,IAAY,EAAQ;IAC/B,IAAM;MAAEP,eAAe;MAAEE;IAAgB,CAAC,GAAG,IAAI,CAACgB,KAAK;IACvD,IAAIlB,eAAe,CAACM,QAAQ,CAACC,IAAI,CAAC,EAAE;MAClC,IAAI,CAAC8B,gBAAgB,CACnBrC,eAAe,CAACI,MAAM,CAACmC,CAAC,IAAIA,CAAC,KAAKhC,IAAI,CAAC,EACvCL,eACF,CAAC;IACH,CAAC,MAAM;MACL,IAAMsC,MAAM,GAAGxC,eAAe,CAACyC,KAAK,CAAC,CAAC;MACtCD,MAAM,CAACE,IAAI,CAACnC,IAAI,CAAC;MACjB,IAAI,CAAC8B,gBAAgB,CAACG,MAAM,EAAEtC,eAAe,CAAC;IAChD;EACF;EAEAqB,SAASA,CAAA,EAAS;IAChB,IAAI,CAACe,kBAAkB,CAAC,IAAI,CAAC;EAC/B;EAEAd,KAAKA,CAAA,EAAS;IACZ,IAAI,CAACc,kBAAkB,CAAC,KAAK,CAAC;EAChC;EAEAb,aAAaA,CAAA,EAAS;IACpB,IAAM;MAAExB;IAAQ,CAAC,GAAG,IAAI,CAACiB,KAAK;IAC9B,IAAI,CAACmB,gBAAgB,CACnBpC,OAAO,CACJG,MAAM,CAACmC,CAAC,IAAIlD,UAAU,CAACsD,YAAY,CAACJ,CAAC,CAACK,IAAI,CAAC,CAAC,CAC5CpC,GAAG,CAACH,MAAM,IAAIA,MAAM,CAACE,IAAI,CAAC,EAC7B,KACF,CAAC;EACH;EAEAsC,MAAMA,CAAA,EAAuB;IAC3B,IAAM;MAAET,KAAK;MAAEpC,eAAe;MAAEE,eAAe;MAAED;IAAQ,CAAC,GAAG,IAAI,CAACiB,KAAK;IACvE,IAAM;MAAEW;IAAwB,CAAC,GAAG,IAAI,CAACD,KAAK;IAC9C,IAAMkB,qBAAqB,GACxB9C,eAAe,CAACS,MAAM,KAAK,CAAC,IAAIP,eAAe,KAAK,IAAI,IACxDF,eAAe,CAACS,MAAM,KAAKR,OAAO,CAACQ,MAAM,IAAIP,eAAe,KAAK,KAAM;IAC1E,IAAM6C,oBAAoB,GACvB/C,eAAe,CAACS,MAAM,KAAK,CAAC,IAAIP,eAAe,KAAK,KAAK,IACzDF,eAAe,CAACS,MAAM,KAAKR,OAAO,CAACQ,MAAM,IAAIP,eAAe,KAAK,IAAK;;IAEzE;IACA,IAAI8C,IAAI;IACR,IAAIF,qBAAqB,EAAE;MACzB;MACAE,IAAI,gBACFrD,KAAA,CAAAF,SAAA;QAAAwD,QAAA,gBACE1D,IAAA,CAACb,eAAe;UACdsE,IAAI,EAAE/D,cAAe;UACrBiE,IAAI,EAAEnE,YAAa;UACnBoE,SAAS,EAAC;QAAyB,CACpC,CAAC,eACF5D,IAAA,CAACb,eAAe;UACdsE,IAAI,EAAEhE,aAAc;UACpBoE,SAAS,EAAC,cAAc;UACxBD,SAAS,EAAC;QAAyB,CACpC,CAAC;MAAA,CACF,CACH;IACH,CAAC,MAAM,IAAIJ,oBAAoB,EAAE;MAC/B;MACAC,IAAI,gBACFrD,KAAA,CAAAF,SAAA;QAAAwD,QAAA,gBACE1D,IAAA,CAACb,eAAe;UACdsE,IAAI,EAAE5D,mBAAoB;UAC1B8D,IAAI,EAAEnE,YAAa;UACnBoE,SAAS,EAAC;QAAyB,CACpC,CAAC,eACF5D,IAAA,CAACb,eAAe;UACdsE,IAAI,EAAE7D,qBAAsB;UAC5BiE,SAAS,EAAC,aAAa;UACvBD,SAAS,EAAC;QAAyB,CACpC,CAAC;MAAA,CACF,CACH;IACH,CAAC,MAAM;MACL;MACAH,IAAI,gBACFrD,KAAA,CAAAF,SAAA;QAAAwD,QAAA,gBACE1D,IAAA,CAACb,eAAe;UACdsE,IAAI,EAAE/D,cAAe;UACrBiE,IAAI,EAAEnE,YAAa;UACnBoE,SAAS,EAAC;QAAyB,CACpC,CAAC,eACF5D,IAAA,CAACb,eAAe;UACdsE,IAAI,EAAE9D,oBAAqB;UAC3BkE,SAAS,EAAC,cAAc;UACxBD,SAAS,EAAC;QAAyB,CACpC,CAAC;MAAA,CACF,CACH;IACH;IAEA,oBACExD,KAAA;MAAKyD,SAAS,EAAC,wBAAwB;MAAAH,QAAA,gBACrC1D,IAAA,CAACV,WAAW;QACVuE,SAAS,EAAC,qBAAqB;QAC/BC,WAAW,EAAC,gBAAgB;QAC5B,eAAY,qBAAqB;QACjCjB,KAAK,EAAEA,KAAM;QACbF,QAAQ,EAAE,IAAI,CAACd,uBAAwB;QACvCkC,GAAG,EAAE,IAAI,CAAC5B;MAAY,CACvB,CAAC,eACF/B,KAAA;QACEiD,IAAI,EAAC,QAAQ;QACbQ,SAAS,EAAC,iCAAiC;QAC3CG,OAAO,EAAEA,CAAA,KAAM;UACb,IAAI1B,uBAAuB,EAAE;YAC3B,IAAI,CAAC2B,QAAQ,CAAC;cAAE3B,uBAAuB,EAAE;YAAM,CAAC,CAAC;UACnD,CAAC,MAAM;YACL,IAAI,CAAC2B,QAAQ,CAAC;cAAE3B,uBAAuB,EAAE;YAAK,CAAC,CAAC;UAClD;QACF,CAAE;QAAAoB,QAAA,gBAEF1D,IAAA;UAAK6D,SAAS,EAAC,WAAW;UAAAH,QAAA,EAAED;QAAI,CAAM,CAAC,eACvCzD,IAAA,CAACT,OAAO;UAAAmE,QAAA,EAAC;QAAiB,CAAS,CAAC,eACpC1D,IAAA,CAACX,MAAM;UACL6E,OAAO,EAAE5B,uBAAwB;UACjCuB,SAAS,EAAC,qBAAqB;UAC/BM,QAAQ,EAAEA,CAAA,KAAM;YACd,IAAI,CAACF,QAAQ,CAAC;cAAE3B,uBAAuB,EAAE;YAAM,CAAC,CAAC;UACnD,CAAE;UACF8B,WAAW;UACXC,WAAW;UAAAX,QAAA,eAEXtD,KAAA;YAAKyD,SAAS,EAAC,oBAAoB;YAAAH,QAAA,GAAC,kBAElC,eAAA1D,IAAA;cAAK6D,SAAS,EAAC,qBAAqB;cAAAH,QAAA,EACjChD,OAAO,CAACO,GAAG,CAACH,MAAM,IAAI;gBACrB,IAAIA,MAAM,CAACwD,OAAO,KAAK,IAAI,EAAE,OAAO,IAAI;gBAExC,oBACElE,KAAA,CAACnB,KAAK,CAACgB,QAAQ;kBAAAyD,QAAA,gBACb1D,IAAA,CAACZ,QAAQ;oBACPyE,SAAS,EAAC,uBAAuB;oBACjCU,OAAO,EACL5D,eAAe,GACX,CAACF,eAAe,CAACM,QAAQ,CAACD,MAAM,CAACE,IAAI,CAAC,GACtCP,eAAe,CAACM,QAAQ,CAACD,MAAM,CAACE,IAAI,CACzC;oBACD2B,QAAQ,EAAEA,CAAA,KAAM,IAAI,CAACZ,YAAY,CAACjB,MAAM,CAACE,IAAI,CAAE;oBAAA0C,QAAA,EAE9C5C,MAAM,CAACE;kBAAI,CACJ,CAAC,EAEVF,MAAM,CAACuC,IAAI,CAACmB,SAAS,CAAC1D,MAAM,CAACuC,IAAI,CAACoB,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAAA,GAbrC3D,MAAM,CAACE,IAcZ,CAAC;cAErB,CAAC;YAAC,CACC,CAAC,eACNZ,KAAA;cAAKyD,SAAS,EAAC,yBAAyB;cAAAH,QAAA,gBACtC1D,IAAA;gBACEqD,IAAI,EAAC,QAAQ;gBACbQ,SAAS,EAAC,cAAc;gBACxBG,OAAO,EAAE,IAAI,CAAChC,SAAU;gBAAA0B,QAAA,EACzB;cAED,CAAQ,CAAC,eACT1D,IAAA;gBACEqD,IAAI,EAAC,QAAQ;gBACbQ,SAAS,EAAC,cAAc;gBACxBG,OAAO,EAAE,IAAI,CAAC/B,KAAM;gBAAAyB,QAAA,EACrB;cAED,CAAQ,CAAC,eACT1D,IAAA;gBACEqD,IAAI,EAAC,QAAQ;gBACbQ,SAAS,EAAC,cAAc;gBACxBG,OAAO,EAAE,IAAI,CAAC9B,aAAc;gBAAAwB,QAAA,EAC7B;cAED,CAAQ,CAAC;YAAA,CACN,CAAC,EACLF,oBAAoB,iBACnBpD,KAAA;cAAGyD,SAAS,EAAC,aAAa;cAAAH,QAAA,gBACxB1D,IAAA,CAACb,eAAe;gBAACsE,IAAI,EAAE7D;cAAsB,CAAE,CAAC,0CAElD;YAAA,CAAG,CACJ;UAAA,CACE;QAAC,CACA,CAAC;MAAA,CACH,CAAC;IAAA,CACN,CAAC;EAEV;AACF;AAEA,eAAeS,iBAAiB","ignoreList":[]}
1
+ {"version":3,"file":"CrossColumnSearch.js","names":["React","PureComponent","FontAwesomeIcon","Checkbox","Popper","SearchInput","Tooltip","dhGearFilled","dhCheckSquare","dhSquareFilled","dhRemoveSquareFilled","dhWarningCircleFilled","vsCircleLargeFilled","TableUtils","jsx","_jsx","Fragment","_Fragment","jsxs","_jsxs","CrossColumnSearch","createSearchFilter","dh","searchValue","selectedColumns","columns","invertSelection","filterColumns","filter","column","includes","name","map","length","filterValue","FilterValue","ofString","searchFilter","FilterCondition","search","undefined","constructor","props","_defineProperty","handleSearchValueChange","bind","toggleColumn","selectAll","clear","selectNumbers","searchField","createRef","state","isConfigureColumnsShown","focus","_this$searchField$cur","current","event","_this$props","onChange","target","value","sendColumnChange","_this$props2","setInvertSelection","_this$props3","_this$props4","c","update","slice","push","isNumberType","type","render","_this$props5","hasAllColumnsSelected","hasNoColumnsSelected","icon","children","mask","transform","className","placeholder","ref","onClick","setState","isShown","onExited","closeOnBlur","interactive","isProxy","checked","substring","lastIndexOf"],"sources":["../src/CrossColumnSearch.tsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Checkbox, Popper, SearchInput, Tooltip } from '@deephaven/components';\nimport {\n dhGearFilled,\n dhCheckSquare,\n dhSquareFilled,\n dhRemoveSquareFilled,\n dhWarningCircleFilled,\n vsCircleLargeFilled,\n} from '@deephaven/icons';\nimport type { dh as DhType } from '@deephaven/jsapi-types';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport './CrossColumnSearch.scss';\nimport { type ColumnName } from './CommonTypes';\nimport { type DisplayColumn } from './IrisGridModel';\n\ninterface CrossColumnSearchProps {\n value: string;\n selectedColumns: readonly ColumnName[];\n invertSelection: boolean;\n onChange: (\n value: string,\n selectedColumns: readonly ColumnName[],\n invertSelection: boolean\n ) => void;\n columns: readonly DisplayColumn[];\n}\n\ninterface CrossColumnSearchState {\n isConfigureColumnsShown: boolean;\n}\nclass CrossColumnSearch extends PureComponent<\n CrossColumnSearchProps,\n CrossColumnSearchState\n> {\n static createSearchFilter(\n dh: typeof DhType,\n searchValue: string,\n selectedColumns: readonly ColumnName[],\n columns: readonly DhType.Column[],\n invertSelection: boolean\n ): DhType.FilterCondition | undefined {\n const filterColumns = invertSelection\n ? columns\n .filter(column => !selectedColumns.includes(column.name))\n .map(column => column.name)\n : selectedColumns;\n if (searchValue && filterColumns.length > 0) {\n const filterValue = dh.FilterValue.ofString(searchValue);\n const searchFilter =\n filterColumns.length === columns.length\n ? dh.FilterCondition.search(filterValue)\n : dh.FilterCondition.search(\n filterValue,\n columns\n .filter(column => filterColumns.includes(column.name))\n .map(column => column.filter())\n );\n return searchFilter;\n }\n return undefined;\n }\n\n constructor(props: CrossColumnSearchProps) {\n super(props);\n this.handleSearchValueChange = this.handleSearchValueChange.bind(this);\n this.toggleColumn = this.toggleColumn.bind(this);\n this.selectAll = this.selectAll.bind(this);\n this.clear = this.clear.bind(this);\n this.selectNumbers = this.selectNumbers.bind(this);\n\n this.searchField = React.createRef();\n\n this.state = {\n isConfigureColumnsShown: false,\n };\n }\n\n searchField: React.RefObject<SearchInput>;\n\n focus(): void {\n this.searchField.current?.focus();\n }\n\n handleSearchValueChange(event: React.ChangeEvent<HTMLInputElement>): void {\n const { onChange, selectedColumns, invertSelection } = this.props;\n onChange(event.target.value, selectedColumns, invertSelection);\n }\n\n sendColumnChange(\n selectedColumns: readonly ColumnName[],\n invertSelection: boolean\n ): void {\n const { onChange, value } = this.props;\n onChange(value, selectedColumns, invertSelection);\n }\n\n setInvertSelection(invertSelection: boolean): void {\n const { onChange, value } = this.props;\n onChange(value, [], invertSelection);\n }\n\n toggleColumn(name: string): void {\n const { selectedColumns, invertSelection } = this.props;\n if (selectedColumns.includes(name)) {\n this.sendColumnChange(\n selectedColumns.filter(c => c !== name),\n invertSelection\n );\n } else {\n const update = selectedColumns.slice();\n update.push(name);\n this.sendColumnChange(update, invertSelection);\n }\n }\n\n selectAll(): void {\n this.setInvertSelection(true);\n }\n\n clear(): void {\n this.setInvertSelection(false);\n }\n\n selectNumbers(): void {\n const { columns } = this.props;\n this.sendColumnChange(\n columns\n .filter(c => TableUtils.isNumberType(c.type))\n .map(column => column.name),\n false\n );\n }\n\n render(): React.ReactElement {\n const { value, selectedColumns, invertSelection, columns } = this.props;\n const { isConfigureColumnsShown } = this.state;\n const hasAllColumnsSelected =\n (selectedColumns.length === 0 && invertSelection === true) ||\n (selectedColumns.length === columns.length && invertSelection === false);\n const hasNoColumnsSelected =\n (selectedColumns.length === 0 && invertSelection === false) ||\n (selectedColumns.length === columns.length && invertSelection === true);\n\n // set icon layers\n let icon;\n if (hasAllColumnsSelected) {\n // icon if all columns selected for search\n icon = (\n <>\n <FontAwesomeIcon\n icon={dhSquareFilled}\n mask={dhGearFilled}\n transform=\"shrink-2 down-5 right-7\"\n />\n <FontAwesomeIcon\n icon={dhCheckSquare}\n className=\"text-primary\"\n transform=\"shrink-4 down-5 right-7\"\n />\n </>\n );\n } else if (hasNoColumnsSelected) {\n // icon error, no columns selected for searching\n icon = (\n <>\n <FontAwesomeIcon\n icon={vsCircleLargeFilled}\n mask={dhGearFilled}\n transform=\"shrink-1 down-5 right-7\"\n />\n <FontAwesomeIcon\n icon={dhWarningCircleFilled}\n className=\"text-danger\"\n transform=\"shrink-4 down-5 right-7\"\n />\n </>\n );\n } else {\n // icon if some columns selected, but not all\n icon = (\n <>\n <FontAwesomeIcon\n icon={dhSquareFilled}\n mask={dhGearFilled}\n transform=\"shrink-2 down-5 right-7\"\n />\n <FontAwesomeIcon\n icon={dhRemoveSquareFilled}\n className=\"text-primary\"\n transform=\"shrink-4 down-5 right-7\"\n />\n </>\n );\n }\n\n return (\n <div className=\"cross-column-container\">\n <SearchInput\n className=\"cross-column-search\"\n placeholder=\"Search Data...\"\n data-testid=\"cross-column-search\"\n value={value}\n onChange={this.handleSearchValueChange}\n ref={this.searchField}\n />\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon px-2\"\n onClick={() => {\n if (isConfigureColumnsShown) {\n this.setState({ isConfigureColumnsShown: false });\n } else {\n this.setState({ isConfigureColumnsShown: true });\n }\n }}\n >\n <div className=\"fa-layers\">{icon}</div>\n <Tooltip>Configure Columns</Tooltip>\n <Popper\n isShown={isConfigureColumnsShown}\n className=\"cross-column-popper\"\n onExited={() => {\n this.setState({ isConfigureColumnsShown: false });\n }}\n closeOnBlur\n interactive\n >\n <div className=\"cross-column-popup\">\n Searched Columns\n <div className=\"cross-column-scroll\">\n {columns.map(column => {\n if (column.isProxy === true) return null;\n\n return (\n <React.Fragment key={column.name}>\n <Checkbox\n className=\"cross-column-checkbox\"\n checked={\n invertSelection\n ? !selectedColumns.includes(column.name)\n : selectedColumns.includes(column.name)\n }\n onChange={() => this.toggleColumn(column.name)}\n >\n {column.name}\n </Checkbox>\n\n {column.type.substring(column.type.lastIndexOf('.') + 1)}\n </React.Fragment>\n );\n })}\n </div>\n <div className=\"cross-column-button-bar\">\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.selectAll}\n >\n Select All\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.clear}\n >\n Clear\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.selectNumbers}\n >\n Numbers Only\n </button>\n </div>\n {hasNoColumnsSelected && (\n <p className=\"text-danger\">\n <FontAwesomeIcon icon={dhWarningCircleFilled} /> Select at\n least one column to search.\n </p>\n )}\n </div>\n </Popper>\n </button>\n </div>\n );\n }\n}\n\nexport default CrossColumnSearch;\n"],"mappings":"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","ignoreList":[]}
@@ -121,6 +121,9 @@
121
121
  .iris-grid .table-sidebar .navigation-content {
122
122
  overflow-y: auto;
123
123
  }
124
+ .iris-grid .plugin-sidebar-error {
125
+ padding: 1rem 1.5em;
126
+ }
124
127
  .iris-grid .section-title {
125
128
  padding: 1rem 0;
126
129
  font-weight: 500;