@deephaven/iris-grid 0.7.3-beta.4 → 0.8.1

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 (46) hide show
  1. package/dist/IrisGrid.d.ts +18 -232
  2. package/dist/IrisGrid.d.ts.map +1 -1
  3. package/dist/IrisGrid.js +144 -45
  4. package/dist/IrisGrid.js.map +1 -1
  5. package/dist/IrisGridModel.d.ts +10 -0
  6. package/dist/IrisGridModel.d.ts.map +1 -1
  7. package/dist/IrisGridModel.js +18 -0
  8. package/dist/IrisGridModel.js.map +1 -1
  9. package/dist/IrisGridModelUpdater.d.ts.map +1 -1
  10. package/dist/IrisGridModelUpdater.js +8 -2
  11. package/dist/IrisGridModelUpdater.js.map +1 -1
  12. package/dist/IrisGridProxyModel.d.ts +12 -1
  13. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  14. package/dist/IrisGridProxyModel.js +4 -8
  15. package/dist/IrisGridProxyModel.js.map +1 -1
  16. package/dist/IrisGridTableModel.d.ts +36 -3
  17. package/dist/IrisGridTableModel.d.ts.map +1 -1
  18. package/dist/IrisGridTableModel.js +100 -45
  19. package/dist/IrisGridTableModel.js.map +1 -1
  20. package/dist/IrisGridTreeTableModel.d.ts +1 -0
  21. package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
  22. package/dist/IrisGridUtils.d.ts +2 -0
  23. package/dist/IrisGridUtils.d.ts.map +1 -1
  24. package/dist/IrisGridUtils.js +8 -4
  25. package/dist/IrisGridUtils.js.map +1 -1
  26. package/dist/key-handlers/ClearFilterKeyHandler.d.ts +2 -1
  27. package/dist/key-handlers/ClearFilterKeyHandler.d.ts.map +1 -1
  28. package/dist/key-handlers/ClearFilterKeyHandler.js +2 -2
  29. package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
  30. package/dist/key-handlers/CopyKeyHandler.d.ts +2 -1
  31. package/dist/key-handlers/CopyKeyHandler.d.ts.map +1 -1
  32. package/dist/key-handlers/CopyKeyHandler.js +2 -2
  33. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  34. package/dist/key-handlers/ReverseKeyHandler.d.ts +2 -1
  35. package/dist/key-handlers/ReverseKeyHandler.d.ts.map +1 -1
  36. package/dist/key-handlers/ReverseKeyHandler.js +2 -2
  37. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  38. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
  39. package/dist/mousehandlers/IrisGridContextMenuHandler.js +52 -34
  40. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  41. package/dist/tsconfig.tsbuildinfo +1 -1
  42. package/package.json +11 -11
  43. package/dist/memoizeClear.d.ts +0 -4
  44. package/dist/memoizeClear.d.ts.map +0 -1
  45. package/dist/memoizeClear.js +0 -34
  46. package/dist/memoizeClear.js.map +0 -1
@@ -111,7 +111,7 @@ export class IrisGrid extends React.Component<any, any, any> {
111
111
  }[];
112
112
  getAdvancedMenuOpenedHandler: ((column: any) => () => void) & memoize.Memoized<(column: any) => () => void>;
113
113
  getCachedAdvancedFilterMenuActions: ((model: any, column: any, advancedFilterOptions: any, sortDirection: any, formatter: any) => JSX.Element) & memoize.Memoized<(model: any, column: any, advancedFilterOptions: any, sortDirection: any, formatter: any) => JSX.Element>;
114
- getCachedOptionItems: ((isChartBuilderAvailable: any, isCustomColumnsAvailable: any, isRollupAvailable: any, isTotalsAvailable: any, isSelectDistinctAvailable: any, isExportAvailable: any, toggleFilterBarAction: any, toggleSearchBarAction: any, isFilterBarShown: any, showSearchBar: any) => ({
114
+ getCachedOptionItems: ((isChartBuilderAvailable: any, isCustomColumnsAvailable: any, isRollupAvailable: any, isTotalsAvailable: any, isSelectDistinctAvailable: any, isExportAvailable: any, toggleFilterBarAction: any, toggleSearchBarAction: any, isFilterBarShown: any, showSearchBar: any, canDownloadCsv: any) => ({
115
115
  type: OptionType;
116
116
  title: string;
117
117
  icon: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -125,7 +125,7 @@ export class IrisGrid extends React.Component<any, any, any> {
125
125
  icon: import("@fortawesome/fontawesome-common-types").IconDefinition;
126
126
  isOn: any;
127
127
  onChange: any;
128
- })[]) & memoize.Memoized<(isChartBuilderAvailable: any, isCustomColumnsAvailable: any, isRollupAvailable: any, isTotalsAvailable: any, isSelectDistinctAvailable: any, isExportAvailable: any, toggleFilterBarAction: any, toggleSearchBarAction: any, isFilterBarShown: any, showSearchBar: any) => ({
128
+ })[]) & memoize.Memoized<(isChartBuilderAvailable: any, isCustomColumnsAvailable: any, isRollupAvailable: any, isTotalsAvailable: any, isSelectDistinctAvailable: any, isExportAvailable: any, toggleFilterBarAction: any, toggleSearchBarAction: any, isFilterBarShown: any, showSearchBar: any, canDownloadCsv: any) => ({
129
129
  type: OptionType;
130
130
  title: string;
131
131
  icon: import("@fortawesome/fontawesome-common-types").IconDefinition;
@@ -176,239 +176,11 @@ export class IrisGrid extends React.Component<any, any, any> {
176
176
  rollupConfig: any;
177
177
  }>;
178
178
  getCachedFilter: ((customFilters: any, quickFilters: any, advancedFilters: any, partitionFilters: any, searchFilter: any) => any[]) & memoize.Memoized<(customFilters: any, quickFilters: any, advancedFilters: any, partitionFilters: any, searchFilter: any) => any[]>;
179
- getCachedTheme: ((isEditable: any) => {
180
- autoSelectRow: boolean;
181
- backgroundColor: any;
182
- font: any;
183
- headerBackgroundColor: any;
184
- headerColor: any;
185
- headerSeparatorColor: any;
186
- headerSeparatorHoverColor: any;
187
- headerHiddenSeparatorHoverColor: any;
188
- headerSortBarColor: any;
189
- headerReverseBarColor: any;
190
- headerBarCasingColor: any;
191
- headerFont: any;
192
- rowBackgroundColors: any;
193
- rowHoverBackgroundColor: any;
194
- selectionColor: any;
195
- selectionOutlineColor: any;
196
- selectionOutlineCasingColor: any;
197
- selectedRowHoverBackgroundColor: any;
198
- scrollBarBackgroundColor: any;
199
- scrollBarHoverBackgroundColor: any;
200
- scrollBarCasingColor: any;
201
- scrollBarCornerColor: any;
202
- scrollBarColor: any;
203
- scrollBarHoverColor: any;
204
- scrollBarActiveColor: any;
205
- textColor: any;
206
- positiveNumberColor: any;
207
- negativeNumberColor: any;
208
- zeroNumberColor: any;
209
- dateColor: any;
210
- pendingTextColor: any;
211
- errorTextColor: any;
212
- filterBarActiveBackgroundColor: any;
213
- filterBarExpandedBackgroundColor: any;
214
- filterBarExpandedActiveBackgroundColor: any;
215
- filterBarExpandedActiveCellBackgroundColor: any;
216
- filterBarSeparatorColor: any;
217
- filterBarActiveColor: any;
218
- filterBarErrorColor: any;
219
- filterIconColor: any;
220
- scrimColor: any;
221
- contextMenuSortIconColor: any;
222
- contextMenuReverseIconColor: any;
223
- allowRowResize: boolean;
224
- gridColumnColor: null;
225
- gridRowColor: null;
226
- groupedColumnDividerColor: any;
227
- columnHoverBackgroundColor: null;
228
- headerHorizontalPadding: number;
229
- scrollBarSize: number;
230
- scrollBarHoverSize: number;
231
- minScrollHandleSize: number;
232
- rowHeight: number;
233
- columnWidth: number;
234
- rowHeaderWidth: number;
235
- rowFooterWidth: number;
236
- columnHeaderHeight: number;
237
- filterBarHeight: number;
238
- filterBarCollapsedHeight: number;
239
- sortHeaderBarHeight: number;
240
- reverseHeaderBarHeight: number;
241
- filterBarHorizontalPadding: number;
242
- scrimBlurSize: number;
243
- minScrimTransitionTime: number;
244
- maxScrimTransitionTime: number;
245
- scrollSnapToRow: boolean;
246
- linkerColumnHoverBackgroundColor: any;
247
- treeLineColor: any;
248
- treeMarkerColor: any;
249
- treeMarkerHoverColor: any;
250
- floatingGridColumnColor: null;
251
- floatingGridRowColor: any;
252
- floatingRowBackgroundColors: any;
253
- floatingDividerInnerColor: any;
254
- floatingDividerOuterColor: any;
255
- }) & memoize.Memoized<(isEditable: any) => {
256
- autoSelectRow: boolean;
257
- backgroundColor: any;
258
- font: any;
259
- headerBackgroundColor: any;
260
- headerColor: any;
261
- headerSeparatorColor: any;
262
- headerSeparatorHoverColor: any;
263
- headerHiddenSeparatorHoverColor: any;
264
- headerSortBarColor: any;
265
- headerReverseBarColor: any;
266
- headerBarCasingColor: any;
267
- headerFont: any;
268
- rowBackgroundColors: any;
269
- rowHoverBackgroundColor: any;
270
- selectionColor: any;
271
- selectionOutlineColor: any;
272
- selectionOutlineCasingColor: any;
273
- selectedRowHoverBackgroundColor: any;
274
- scrollBarBackgroundColor: any;
275
- scrollBarHoverBackgroundColor: any;
276
- scrollBarCasingColor: any;
277
- scrollBarCornerColor: any;
278
- scrollBarColor: any;
279
- scrollBarHoverColor: any;
280
- scrollBarActiveColor: any;
281
- textColor: any;
282
- positiveNumberColor: any;
283
- negativeNumberColor: any;
284
- zeroNumberColor: any;
285
- dateColor: any;
286
- pendingTextColor: any;
287
- errorTextColor: any;
288
- filterBarActiveBackgroundColor: any;
289
- filterBarExpandedBackgroundColor: any;
290
- filterBarExpandedActiveBackgroundColor: any;
291
- filterBarExpandedActiveCellBackgroundColor: any;
292
- filterBarSeparatorColor: any;
293
- filterBarActiveColor: any;
294
- filterBarErrorColor: any;
295
- filterIconColor: any;
296
- scrimColor: any;
297
- contextMenuSortIconColor: any;
298
- contextMenuReverseIconColor: any;
299
- allowRowResize: boolean;
300
- gridColumnColor: null;
301
- gridRowColor: null;
302
- groupedColumnDividerColor: any;
303
- columnHoverBackgroundColor: null;
304
- headerHorizontalPadding: number;
305
- scrollBarSize: number;
306
- scrollBarHoverSize: number;
307
- minScrollHandleSize: number;
308
- rowHeight: number;
309
- columnWidth: number;
310
- rowHeaderWidth: number;
311
- rowFooterWidth: number;
312
- columnHeaderHeight: number;
313
- filterBarHeight: number;
314
- filterBarCollapsedHeight: number;
315
- sortHeaderBarHeight: number;
316
- reverseHeaderBarHeight: number;
317
- filterBarHorizontalPadding: number;
318
- scrimBlurSize: number;
319
- minScrimTransitionTime: number;
320
- maxScrimTransitionTime: number;
321
- scrollSnapToRow: boolean;
322
- linkerColumnHoverBackgroundColor: any;
323
- treeLineColor: any;
324
- treeMarkerColor: any;
325
- treeMarkerHoverColor: any;
326
- floatingGridColumnColor: null;
327
- floatingGridRowColor: any;
328
- floatingRowBackgroundColors: any;
329
- floatingDividerInnerColor: any;
330
- floatingDividerOuterColor: any;
331
- }>;
179
+ getCachedTheme: ((theme: any, isEditable: any) => any) & memoize.Memoized<(theme: any, isEditable: any) => any>;
332
180
  getValueForCell(columnIndex: any, rowIndex: any, rawValue?: boolean): any;
333
181
  getModelColumn(columnIndex: any): any;
334
182
  getModelRow(rowIndex: any): any;
335
- getTheme(): {
336
- autoSelectRow: boolean;
337
- backgroundColor: any;
338
- font: any;
339
- headerBackgroundColor: any;
340
- headerColor: any;
341
- headerSeparatorColor: any;
342
- headerSeparatorHoverColor: any;
343
- headerHiddenSeparatorHoverColor: any;
344
- headerSortBarColor: any;
345
- headerReverseBarColor: any;
346
- headerBarCasingColor: any;
347
- headerFont: any;
348
- rowBackgroundColors: any;
349
- rowHoverBackgroundColor: any;
350
- selectionColor: any;
351
- selectionOutlineColor: any;
352
- selectionOutlineCasingColor: any;
353
- selectedRowHoverBackgroundColor: any;
354
- scrollBarBackgroundColor: any;
355
- scrollBarHoverBackgroundColor: any;
356
- scrollBarCasingColor: any;
357
- scrollBarCornerColor: any;
358
- scrollBarColor: any;
359
- scrollBarHoverColor: any;
360
- scrollBarActiveColor: any;
361
- textColor: any;
362
- positiveNumberColor: any;
363
- negativeNumberColor: any;
364
- zeroNumberColor: any;
365
- dateColor: any;
366
- pendingTextColor: any;
367
- errorTextColor: any;
368
- filterBarActiveBackgroundColor: any;
369
- filterBarExpandedBackgroundColor: any;
370
- filterBarExpandedActiveBackgroundColor: any;
371
- filterBarExpandedActiveCellBackgroundColor: any;
372
- filterBarSeparatorColor: any;
373
- filterBarActiveColor: any;
374
- filterBarErrorColor: any;
375
- filterIconColor: any;
376
- scrimColor: any;
377
- contextMenuSortIconColor: any;
378
- contextMenuReverseIconColor: any;
379
- allowRowResize: boolean;
380
- gridColumnColor: null;
381
- gridRowColor: null;
382
- groupedColumnDividerColor: any;
383
- columnHoverBackgroundColor: null;
384
- headerHorizontalPadding: number;
385
- scrollBarSize: number;
386
- scrollBarHoverSize: number;
387
- minScrollHandleSize: number;
388
- rowHeight: number;
389
- columnWidth: number;
390
- rowHeaderWidth: number;
391
- rowFooterWidth: number;
392
- columnHeaderHeight: number;
393
- filterBarHeight: number;
394
- filterBarCollapsedHeight: number;
395
- sortHeaderBarHeight: number;
396
- reverseHeaderBarHeight: number;
397
- filterBarHorizontalPadding: number;
398
- scrimBlurSize: number;
399
- minScrimTransitionTime: number;
400
- maxScrimTransitionTime: number;
401
- scrollSnapToRow: boolean;
402
- linkerColumnHoverBackgroundColor: any;
403
- treeLineColor: any;
404
- treeMarkerColor: any;
405
- treeMarkerHoverColor: any;
406
- floatingGridColumnColor: null;
407
- floatingGridRowColor: any;
408
- floatingRowBackgroundColors: any;
409
- floatingDividerInnerColor: any;
410
- floatingDividerOuterColor: any;
411
- };
183
+ getTheme(): any;
412
184
  getVisibleColumn(modelIndex: any): number;
413
185
  /**
414
186
  * Applies the provided input filters as quick filters,
@@ -481,6 +253,8 @@ export class IrisGrid extends React.Component<any, any, any> {
481
253
  stopListening(model: any): void;
482
254
  focusFilterBar(column: any): void;
483
255
  hideColumnByVisibleIndex(columnVisibleIndex: any): void;
256
+ freezeColumnByColumnName(columnName: any): void;
257
+ unFreezeColumnByColumnName(columnName: any): void;
484
258
  handleTableLoadError(error: any): void;
485
259
  showAllColumns(): void;
486
260
  toggleSort(columnIndex: any, addToExisting: any): void;
@@ -590,6 +364,10 @@ export namespace IrisGrid {
590
364
  const onContextMenu: PropTypes.Requireable<(...args: any[]) => any>;
591
365
  const pendingDataMap: PropTypes.Requireable<Map<unknown, unknown>>;
592
366
  const getDownloadWorker: PropTypes.Requireable<(...args: any[]) => any>;
367
+ const canCopy: PropTypes.Requireable<boolean>;
368
+ const canDownloadCsv: PropTypes.Requireable<boolean>;
369
+ const frozenColumns: PropTypes.Requireable<(string | null | undefined)[]>;
370
+ const theme: PropTypes.Requireable<PropTypes.InferProps<{}>>;
593
371
  }
594
372
  namespace defaultProps {
595
373
  const children_1: null;
@@ -691,6 +469,14 @@ export namespace IrisGrid {
691
469
  const formatter: never[];
692
470
  }
693
471
  export { settings_1 as settings };
472
+ const canCopy_1: boolean;
473
+ export { canCopy_1 as canCopy };
474
+ const canDownloadCsv_1: boolean;
475
+ export { canDownloadCsv_1 as canDownloadCsv };
476
+ const frozenColumns_1: null;
477
+ export { frozenColumns_1 as frozenColumns };
478
+ const theme_1: {};
479
+ export { theme_1 as theme };
694
480
  }
695
481
  }
696
482
  export default IrisGrid;
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGrid.d.ts","sourceRoot":"","sources":["../src/IrisGrid.jsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IrisGrid.d.ts","sourceRoot":"","sources":["../src/IrisGrid.jsx"],"names":[],"mappings":"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"}
package/dist/IrisGrid.js CHANGED
@@ -97,7 +97,7 @@ export class IrisGrid extends Component {
97
97
  max: 50
98
98
  }));
99
99
 
100
- _defineProperty(this, "getCachedOptionItems", memoize((isChartBuilderAvailable, isCustomColumnsAvailable, isRollupAvailable, isTotalsAvailable, isSelectDistinctAvailable, isExportAvailable, toggleFilterBarAction, toggleSearchBarAction, isFilterBarShown, showSearchBar) => {
100
+ _defineProperty(this, "getCachedOptionItems", memoize((isChartBuilderAvailable, isCustomColumnsAvailable, isRollupAvailable, isTotalsAvailable, isSelectDistinctAvailable, isExportAvailable, toggleFilterBarAction, toggleSearchBarAction, isFilterBarShown, showSearchBar, canDownloadCsv) => {
101
101
  var optionItems = [];
102
102
 
103
103
  if (isChartBuilderAvailable) {
@@ -146,7 +146,7 @@ export class IrisGrid extends Component {
146
146
  });
147
147
  }
148
148
 
149
- if (isExportAvailable) {
149
+ if (isExportAvailable && canDownloadCsv) {
150
150
  optionItems.push({
151
151
  type: OptionType.TABLE_EXPORTER,
152
152
  title: 'Download CSV',
@@ -263,9 +263,9 @@ export class IrisGrid extends Component {
263
263
  max: 1
264
264
  }));
265
265
 
266
- _defineProperty(this, "getCachedTheme", memoize(isEditable => _objectSpread(_objectSpread({}, IrisGridTheme), {}, {
266
+ _defineProperty(this, "getCachedTheme", memoize((theme, isEditable) => _objectSpread(_objectSpread({}, IrisGridTheme), {}, {
267
267
  autoSelectRow: !isEditable
268
- }), {
268
+ }, theme), {
269
269
  max: 1
270
270
  }));
271
271
 
@@ -385,8 +385,6 @@ export class IrisGrid extends Component {
385
385
  shortcut: SHORTCUTS.INPUT_TABLE.COMMIT
386
386
  };
387
387
  this.contextActions = [this.toggleFilterBarAction, this.toggleSearchBarAction, this.discardAction, this.commitAction];
388
- var keyHandlers = [new CopyKeyHandler(this), new ReverseKeyHandler(this), new ClearFilterKeyHandler(this)];
389
- var mouseHandlers = [new IrisGridColumnSelectMouseHandler(this), new IrisGridColumnTooltipMouseHandler(this), new IrisGridSortMouseHandler(this), new IrisGridFilterMouseHandler(this), new IrisGridContextMenuHandler(this), new IrisGridDataSelectMouseHandler(this), new PendingMouseHandler(this)];
390
388
  var {
391
389
  aggregationSettings: _aggregationSettings,
392
390
  customColumnFormatMap,
@@ -407,8 +405,17 @@ export class IrisGrid extends Component {
407
405
  advancedFilters: _advancedFilters,
408
406
  quickFilters: _quickFilters,
409
407
  selectDistinctColumns,
410
- pendingDataMap
408
+ pendingDataMap,
409
+ canCopy,
410
+ frozenColumns
411
411
  } = props;
412
+ var keyHandlers = [new ReverseKeyHandler(this), new ClearFilterKeyHandler(this)];
413
+
414
+ if (canCopy) {
415
+ keyHandlers.push(new CopyKeyHandler(this));
416
+ }
417
+
418
+ var mouseHandlers = [new IrisGridColumnSelectMouseHandler(this), new IrisGridColumnTooltipMouseHandler(this), new IrisGridSortMouseHandler(this), new IrisGridFilterMouseHandler(this), new IrisGridContextMenuHandler(this), new IrisGridDataSelectMouseHandler(this), new PendingMouseHandler(this)];
412
419
  var metricCalculator = new IrisGridMetricCalculator({
413
420
  userColumnWidths: new Map(userColumnWidths),
414
421
  userRowHeights: new Map(userRowHeights)
@@ -476,7 +483,8 @@ export class IrisGrid extends Component {
476
483
  pendingDataErrors: new Map(),
477
484
  pendingSavePromise: null,
478
485
  pendingSaveError: null,
479
- toastMessage: null
486
+ toastMessage: null,
487
+ frozenColumns
480
488
  };
481
489
  }
482
490
 
@@ -636,9 +644,10 @@ export class IrisGrid extends Component {
636
644
 
637
645
  getTheme() {
638
646
  var {
639
- model
647
+ model,
648
+ theme
640
649
  } = this.props;
641
- return this.getCachedTheme(model.isEditable);
650
+ return this.getCachedTheme(theme, model.isEditable);
642
651
  }
643
652
 
644
653
  getVisibleColumn(modelIndex) {
@@ -1090,8 +1099,16 @@ export class IrisGrid extends Component {
1090
1099
 
1091
1100
  copyCell(columnIndex, rowIndex) {
1092
1101
  var rawValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1093
- var value = this.getValueForCell(columnIndex, rowIndex, rawValue);
1094
- ContextActionUtils.copyToClipboard(value).catch(e => log.error('Unable to copy cell', e));
1102
+ var {
1103
+ canCopy
1104
+ } = this.props;
1105
+
1106
+ if (canCopy) {
1107
+ var value = this.getValueForCell(columnIndex, rowIndex, rawValue);
1108
+ ContextActionUtils.copyToClipboard(value).catch(e => log.error('Unable to copy cell', e));
1109
+ } else {
1110
+ log.error('Attempted to copyCell for user without copy permission.');
1111
+ }
1095
1112
  }
1096
1113
  /**
1097
1114
  * Copy the provided ranges to the clipboard
@@ -1107,7 +1124,8 @@ export class IrisGrid extends Component {
1107
1124
  var formatValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
1108
1125
  var error = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;
1109
1126
  var {
1110
- model
1127
+ model,
1128
+ canCopy
1111
1129
  } = this.props;
1112
1130
  var {
1113
1131
  metricCalculator,
@@ -1116,17 +1134,22 @@ export class IrisGrid extends Component {
1116
1134
  var {
1117
1135
  userColumnWidths
1118
1136
  } = metricCalculator;
1119
- var copyOperation = {
1120
- ranges: GridRange.boundedRanges(ranges, model.columnCount, model.rowCount),
1121
- includeHeaders,
1122
- formatValues,
1123
- movedColumns,
1124
- userColumnWidths,
1125
- error
1126
- };
1127
- this.setState({
1128
- copyOperation
1129
- });
1137
+
1138
+ if (canCopy) {
1139
+ var copyOperation = {
1140
+ ranges: GridRange.boundedRanges(ranges, model.columnCount, model.rowCount),
1141
+ includeHeaders,
1142
+ formatValues,
1143
+ movedColumns,
1144
+ userColumnWidths,
1145
+ error
1146
+ };
1147
+ this.setState({
1148
+ copyOperation
1149
+ });
1150
+ } else {
1151
+ log.error('Attempted copyRanges for user without copy permission.');
1152
+ }
1130
1153
  }
1131
1154
 
1132
1155
  startLoading(loadingText) {
@@ -1294,6 +1317,54 @@ export class IrisGrid extends Component {
1294
1317
  this.grid.forceUpdate();
1295
1318
  }
1296
1319
 
1320
+ freezeColumnByColumnName(columnName) {
1321
+ var {
1322
+ frozenColumns
1323
+ } = this.state;
1324
+ var {
1325
+ model
1326
+ } = this.props;
1327
+ log.debug2('freezing column', columnName);
1328
+ var allFrozenColumns;
1329
+
1330
+ if (frozenColumns == null) {
1331
+ var _model$layoutHints$fr, _model$layoutHints;
1332
+
1333
+ allFrozenColumns = new Set((_model$layoutHints$fr = (_model$layoutHints = model.layoutHints) === null || _model$layoutHints === void 0 ? void 0 : _model$layoutHints.frozenColumns) !== null && _model$layoutHints$fr !== void 0 ? _model$layoutHints$fr : []);
1334
+ allFrozenColumns.add(columnName);
1335
+ } else {
1336
+ allFrozenColumns = new Set([...frozenColumns, columnName]);
1337
+ }
1338
+
1339
+ this.setState({
1340
+ frozenColumns: [...allFrozenColumns]
1341
+ });
1342
+ }
1343
+
1344
+ unFreezeColumnByColumnName(columnName) {
1345
+ var {
1346
+ frozenColumns
1347
+ } = this.state;
1348
+ var {
1349
+ model
1350
+ } = this.props;
1351
+ log.debug2('unfreezing column', columnName);
1352
+ var allFrozenColumns;
1353
+
1354
+ if (frozenColumns == null) {
1355
+ var _model$layoutHints$fr2, _model$layoutHints2;
1356
+
1357
+ allFrozenColumns = new Set((_model$layoutHints$fr2 = (_model$layoutHints2 = model.layoutHints) === null || _model$layoutHints2 === void 0 ? void 0 : _model$layoutHints2.frozenColumns) !== null && _model$layoutHints$fr2 !== void 0 ? _model$layoutHints$fr2 : []);
1358
+ allFrozenColumns.delete(columnName);
1359
+ } else {
1360
+ allFrozenColumns = new Set(frozenColumns.filter(col => col !== columnName));
1361
+ }
1362
+
1363
+ this.setState({
1364
+ frozenColumns: [...allFrozenColumns]
1365
+ });
1366
+ }
1367
+
1297
1368
  handleColumnVisibilityChanged(modelIndexes, visibilityOption) {
1298
1369
  var {
1299
1370
  metricCalculator
@@ -2132,12 +2203,20 @@ export class IrisGrid extends Component {
2132
2203
  }
2133
2204
 
2134
2205
  handleDownloadTableStart() {
2135
- this.setState({
2136
- isTableDownloading: true,
2137
- tableDownloadProgress: 0,
2138
- tableDownloadEstimatedTime: null,
2139
- tableDownloadStatus: TableCsvExporter.DOWNLOAD_STATUS.INITIATING
2140
- });
2206
+ var {
2207
+ canDownloadCsv
2208
+ } = this.props;
2209
+
2210
+ if (canDownloadCsv) {
2211
+ this.setState({
2212
+ isTableDownloading: true,
2213
+ tableDownloadProgress: 0,
2214
+ tableDownloadEstimatedTime: null,
2215
+ tableDownloadStatus: TableCsvExporter.DOWNLOAD_STATUS.INITIATING
2216
+ });
2217
+ } else {
2218
+ log.error('Attempted to handleDownloadTableStart for user without download CSV permission.');
2219
+ }
2141
2220
  }
2142
2221
 
2143
2222
  handleDownloadTable() {
@@ -2145,16 +2224,24 @@ export class IrisGrid extends Component {
2145
2224
  args[_key] = arguments[_key];
2146
2225
  }
2147
2226
 
2148
- log.info('start table downloading', ...args);
2149
- this.setState(() => {
2150
- if (this.tableSaver) {
2151
- this.tableSaver.startDownload(...args);
2152
- }
2227
+ var {
2228
+ canDownloadCsv
2229
+ } = this.props;
2153
2230
 
2154
- return {
2155
- tableDownloadStatus: TableCsvExporter.DOWNLOAD_STATUS.DOWNLOADING
2156
- };
2157
- });
2231
+ if (canDownloadCsv) {
2232
+ log.info('start table downloading', ...args);
2233
+ this.setState(() => {
2234
+ if (this.tableSaver) {
2235
+ this.tableSaver.startDownload(...args);
2236
+ }
2237
+
2238
+ return {
2239
+ tableDownloadStatus: TableCsvExporter.DOWNLOAD_STATUS.DOWNLOADING
2240
+ };
2241
+ });
2242
+ } else {
2243
+ log.error('Attempted to handleDownloadTable for user without download CSV permission.');
2244
+ }
2158
2245
  }
2159
2246
 
2160
2247
  handleCancelDownloadTable() {
@@ -2283,7 +2370,8 @@ export class IrisGrid extends Component {
2283
2370
  onlyFetchVisibleColumns,
2284
2371
  alwaysFetchColumns,
2285
2372
  advancedSettings,
2286
- onAdvancedSettingsChange
2373
+ onAdvancedSettingsChange,
2374
+ canDownloadCsv
2287
2375
  } = this.props;
2288
2376
  var {
2289
2377
  metricCalculator,
@@ -2335,7 +2423,8 @@ export class IrisGrid extends Component {
2335
2423
  pendingRowCount,
2336
2424
  pendingDataErrors,
2337
2425
  pendingDataMap,
2338
- toastMessage
2426
+ toastMessage,
2427
+ frozenColumns
2339
2428
  } = this.state;
2340
2429
 
2341
2430
  if (!isReady) {
@@ -2709,7 +2798,7 @@ export class IrisGrid extends Component {
2709
2798
  }
2710
2799
  }
2711
2800
 
2712
- var optionItems = this.getCachedOptionItems(model.isChartBuilderAvailable, model.isCustomColumnsAvailable, model.isRollupAvailable, model.isTotalsAvailable, model.isSelectDistinctAvailable, model.isExportAvailable, this.toggleFilterBarAction, this.toggleSearchBarAction, isFilterBarShown, showSearchBar);
2801
+ var optionItems = this.getCachedOptionItems(model.isChartBuilderAvailable, model.isCustomColumnsAvailable, model.isRollupAvailable, model.isTotalsAvailable, model.isSelectDistinctAvailable, model.isExportAvailable, this.toggleFilterBarAction, this.toggleSearchBarAction, isFilterBarShown, showSearchBar, canDownloadCsv);
2713
2802
  var openOptionsStack = openOptions.map(option => {
2714
2803
  switch (option.type) {
2715
2804
  case OptionType.CHART_BUILDER:
@@ -2887,7 +2976,8 @@ export class IrisGrid extends Component {
2887
2976
  totalsConfig: this.getModelTotalsConfig(model.columns, rollupConfig, aggregationSettings),
2888
2977
  selectDistinctColumns: selectDistinctColumns,
2889
2978
  pendingRowCount: pendingRowCount,
2890
- pendingDataMap: pendingDataMap
2979
+ pendingDataMap: pendingDataMap,
2980
+ frozenColumns: frozenColumns
2891
2981
  }), /*#__PURE__*/React.createElement("div", {
2892
2982
  className: classNames('grid-settings-button', {
2893
2983
  'is-menu-shown': isMenuShown
@@ -3043,7 +3133,12 @@ IrisGrid.propTypes = {
3043
3133
  // eslint-disable-next-line react/no-unused-prop-types
3044
3134
  onContextMenu: PropTypes.func,
3045
3135
  pendingDataMap: PropTypes.instanceOf(Map),
3046
- getDownloadWorker: PropTypes.func
3136
+ getDownloadWorker: PropTypes.func,
3137
+ canCopy: PropTypes.bool,
3138
+ canDownloadCsv: PropTypes.bool,
3139
+ frozenColumns: PropTypes.arrayOf(PropTypes.string),
3140
+ // Theme override for IrisGridTheme
3141
+ theme: PropTypes.shape({})
3047
3142
  };
3048
3143
  IrisGrid.defaultProps = {
3049
3144
  children: null,
@@ -3099,7 +3194,11 @@ IrisGrid.defaultProps = {
3099
3194
  showTimeZone: false,
3100
3195
  showTSeparator: true,
3101
3196
  formatter: []
3102
- }
3197
+ },
3198
+ canCopy: true,
3199
+ canDownloadCsv: true,
3200
+ frozenColumns: null,
3201
+ theme: {}
3103
3202
  };
3104
3203
  export default IrisGrid;
3105
3204
  //# sourceMappingURL=IrisGrid.js.map