@deephaven/iris-grid 0.9.4-updatestylelint.5 → 0.10.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/IrisGrid.d.ts +23 -3
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +147 -7
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridModel.d.ts +14 -2
- package/dist/IrisGridModel.d.ts.map +1 -1
- package/dist/IrisGridModel.js +8 -0
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelFactory.d.ts +1 -1
- package/dist/IrisGridModelFactory.d.ts.map +1 -1
- package/dist/IrisGridModelFactory.js +1 -8
- package/dist/IrisGridModelFactory.js.map +1 -1
- package/dist/IrisGridModelUpdater.d.ts +3 -2
- package/dist/IrisGridModelUpdater.d.ts.map +1 -1
- package/dist/IrisGridModelUpdater.js +7 -1
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +12 -0
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridTableModel.d.ts +2 -0
- package/dist/IrisGridTableModel.d.ts.map +1 -1
- package/dist/IrisGridTableModel.js +47 -5
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridUtils.d.ts +2 -0
- package/dist/IrisGridUtils.d.ts.map +1 -1
- package/dist/IrisGridUtils.js +4 -0
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/TableUtils.d.ts.map +1 -1
- package/dist/TableUtils.js +2 -0
- package/dist/TableUtils.js.map +1 -1
- package/dist/sidebar/ChartBuilder.js +1 -1
- package/dist/sidebar/ChartBuilder.js.map +1 -1
- package/dist/sidebar/OptionType.d.ts +3 -1
- package/dist/sidebar/OptionType.d.ts.map +1 -1
- package/dist/sidebar/OptionType.js +2 -0
- package/dist/sidebar/OptionType.js.map +1 -1
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts +9 -0
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -0
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +132 -0
- package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -0
- package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts +9 -0
- package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -0
- package/dist/sidebar/conditional-formatting/ConditionEditor.js +273 -0
- package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.css +21 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.css.map +1 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts +15 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts.map +1 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +115 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.d.ts +6 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.d.ts.map +1 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js +21 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.css +56 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.css.map +1 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts +15 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts.map +1 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +160 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts +119 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts.map +1 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +748 -0
- package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -0
- package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts +9 -0
- package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -0
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js +132 -0
- package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -0
- package/dist/sidebar/conditional-formatting/StyleEditor.css +54 -0
- package/dist/sidebar/conditional-formatting/StyleEditor.css.map +1 -0
- package/dist/sidebar/conditional-formatting/StyleEditor.d.ts +9 -0
- package/dist/sidebar/conditional-formatting/StyleEditor.d.ts.map +1 -0
- package/dist/sidebar/conditional-formatting/StyleEditor.js +160 -0
- package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -0
- package/dist/sidebar/icons/FormatColumnWhereIcon.d.ts +4 -0
- package/dist/sidebar/icons/FormatColumnWhereIcon.d.ts.map +1 -0
- package/dist/sidebar/icons/FormatColumnWhereIcon.js +45 -0
- package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -0
- package/dist/sidebar/icons/FormatRowWhereIcon.d.ts +4 -0
- package/dist/sidebar/icons/FormatRowWhereIcon.d.ts.map +1 -0
- package/dist/sidebar/icons/FormatRowWhereIcon.js +39 -0
- package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -0
- package/dist/sidebar/icons/index.d.ts +2 -0
- package/dist/sidebar/icons/index.js +2 -0
- package/dist/sidebar/icons/index.js.map +1 -1
- package/package.json +11 -11
package/dist/IrisGrid.d.ts
CHANGED
|
@@ -45,6 +45,12 @@ export class IrisGrid extends React.Component<any, any, any> {
|
|
|
45
45
|
handleTooltipRef(tooltip: any): void;
|
|
46
46
|
handleViewChanged(metrics: any): void;
|
|
47
47
|
handleFormatSelection(modelIndex: any, selectedFormat: any): void;
|
|
48
|
+
handleConditionalFormatCreate(): void;
|
|
49
|
+
handleConditionalFormatEdit(index: any): void;
|
|
50
|
+
handleConditionalFormatsChange(conditionalFormats: any): void;
|
|
51
|
+
handleConditionalFormatEditorSave(config: any): void;
|
|
52
|
+
handleConditionalFormatEditorUpdate(conditionalFormatPreview: any): void;
|
|
53
|
+
handleConditionalFormatEditorCancel(): void;
|
|
48
54
|
handleUpdateCustomColumns(customColumns: any): void;
|
|
49
55
|
handleCustomColumnsChanged(): void;
|
|
50
56
|
handleSelectDistinctChanged(columnNames: any): void;
|
|
@@ -113,7 +119,7 @@ export class IrisGrid extends React.Component<any, any, any> {
|
|
|
113
119
|
}[];
|
|
114
120
|
getAdvancedMenuOpenedHandler: ((column: any) => () => void) & memoize.Memoized<(column: any) => () => void>;
|
|
115
121
|
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>;
|
|
116
|
-
getCachedOptionItems: ((isChartBuilderAvailable: any, isCustomColumnsAvailable: any, isRollupAvailable: any, isTotalsAvailable: any, isSelectDistinctAvailable: any, isExportAvailable: any, toggleFilterBarAction: any, toggleSearchBarAction: any, isFilterBarShown: any, showSearchBar: any, canDownloadCsv: any, canToggleSearch: any) => ({
|
|
122
|
+
getCachedOptionItems: ((isChartBuilderAvailable: any, isCustomColumnsAvailable: any, isFormatColumnsAvailable: any, isRollupAvailable: any, isTotalsAvailable: any, isSelectDistinctAvailable: any, isExportAvailable: any, toggleFilterBarAction: any, toggleSearchBarAction: any, isFilterBarShown: any, showSearchBar: any, canDownloadCsv: any, canToggleSearch: any) => ({
|
|
117
123
|
type: OptionType;
|
|
118
124
|
title: string;
|
|
119
125
|
icon: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
|
@@ -127,7 +133,7 @@ export class IrisGrid extends React.Component<any, any, any> {
|
|
|
127
133
|
icon: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
|
128
134
|
isOn: any;
|
|
129
135
|
onChange: any;
|
|
130
|
-
})[]) & memoize.Memoized<(isChartBuilderAvailable: any, isCustomColumnsAvailable: any, isRollupAvailable: any, isTotalsAvailable: any, isSelectDistinctAvailable: any, isExportAvailable: any, toggleFilterBarAction: any, toggleSearchBarAction: any, isFilterBarShown: any, showSearchBar: any, canDownloadCsv: any, canToggleSearch: any) => ({
|
|
136
|
+
})[]) & memoize.Memoized<(isChartBuilderAvailable: any, isCustomColumnsAvailable: any, isFormatColumnsAvailable: any, isRollupAvailable: any, isTotalsAvailable: any, isSelectDistinctAvailable: any, isExportAvailable: any, toggleFilterBarAction: any, toggleSearchBarAction: any, isFilterBarShown: any, showSearchBar: any, canDownloadCsv: any, canToggleSearch: any) => ({
|
|
131
137
|
type: OptionType;
|
|
132
138
|
title: string;
|
|
133
139
|
icon: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
|
@@ -146,6 +152,17 @@ export class IrisGrid extends React.Component<any, any, any> {
|
|
|
146
152
|
getAggregationMap: ((columns: any, aggregations: any) => {}) & memoize.Memoized<(columns: any, aggregations: any) => {}>;
|
|
147
153
|
getOperationMap: ((columns: any, aggregations: any) => {}) & memoize.Memoized<(columns: any, aggregations: any) => {}>;
|
|
148
154
|
getOperationOrder: ((aggregations: any) => any) & memoize.Memoized<(aggregations: any) => any>;
|
|
155
|
+
getCachedFormatColumns: ((columns: any, rules: any) => import("@deephaven/jsapi-shim").CustomColumn[]) & memoize.Memoized<(columns: any, rules: any) => import("@deephaven/jsapi-shim").CustomColumn[]>;
|
|
156
|
+
getCachedModelColumns: ((model: any, customColumns: any) => any) & memoize.Memoized<(model: any, customColumns: any) => any>;
|
|
157
|
+
/**
|
|
158
|
+
* Builds formatColumns array based on the provided formatting rules with optional preview
|
|
159
|
+
* @param {Column[]} columns Array of columns
|
|
160
|
+
* @param {FormattingRule[]} rulesParam Array of formatting rules
|
|
161
|
+
* @param {FormattingRule?} preview Optional temporary formatting rule for previewing live changes
|
|
162
|
+
* @param {Number|null} editIndex Index in the rulesParam array to replace with the preview, null if preview not applicable
|
|
163
|
+
* @returns {CustomColumn[]} Format columns array
|
|
164
|
+
*/
|
|
165
|
+
getCachedPreviewFormatColumns: ((columns: any, rulesParam: any, preview: any, editIndex: any) => import("@deephaven/jsapi-shim").CustomColumn[]) & memoize.Memoized<(columns: any, rulesParam: any, preview: any, editIndex: any) => import("@deephaven/jsapi-shim").CustomColumn[]>;
|
|
149
166
|
getModelRollupConfig: ((originalColumns: any, config: any, aggregationSettings: any) => Object) & memoize.Memoized<(originalColumns: any, config: any, aggregationSettings: any) => Object>;
|
|
150
167
|
getModelTotalsConfig: ((columns: any, config: any, aggregationSettings: any) => {
|
|
151
168
|
operationMap: {};
|
|
@@ -295,6 +312,7 @@ export namespace IrisGrid {
|
|
|
295
312
|
const alwaysFetchColumns: PropTypes.Requireable<(string | null | undefined)[]>;
|
|
296
313
|
const isFilterBarShown: PropTypes.Requireable<boolean>;
|
|
297
314
|
const applyInputFiltersOnInit: PropTypes.Requireable<boolean>;
|
|
315
|
+
const conditionalFormats: PropTypes.Requireable<(PropTypes.InferProps<{}> | null | undefined)[]>;
|
|
298
316
|
const customColumnFormatMap: PropTypes.Requireable<Map<unknown, unknown>>;
|
|
299
317
|
const movedColumns: PropTypes.Requireable<(PropTypes.InferProps<{
|
|
300
318
|
from: PropTypes.Validator<number>;
|
|
@@ -385,6 +403,8 @@ export namespace IrisGrid {
|
|
|
385
403
|
export { advancedSettings_1 as advancedSettings };
|
|
386
404
|
const alwaysFetchColumns_1: never[];
|
|
387
405
|
export { alwaysFetchColumns_1 as alwaysFetchColumns };
|
|
406
|
+
const conditionalFormats_1: never[];
|
|
407
|
+
export { conditionalFormats_1 as conditionalFormats };
|
|
388
408
|
const customColumnFormatMap_1: Map<any, any>;
|
|
389
409
|
export { customColumnFormatMap_1 as customColumnFormatMap };
|
|
390
410
|
const isFilterBarShown_1: boolean;
|
|
@@ -399,7 +419,7 @@ export namespace IrisGrid {
|
|
|
399
419
|
export { inputFilters_1 as inputFilters };
|
|
400
420
|
const customFilters_1: never[];
|
|
401
421
|
export { customFilters_1 as customFilters };
|
|
402
|
-
|
|
422
|
+
const onCreateChart_1: undefined;
|
|
403
423
|
export { onCreateChart_1 as onCreateChart };
|
|
404
424
|
export function onColumnSelected_1(): void;
|
|
405
425
|
export { onColumnSelected_1 as onColumnSelected };
|
package/dist/IrisGrid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGrid.d.ts","sourceRoot":"","sources":["../src/IrisGrid.jsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"IrisGrid.d.ts","sourceRoot":"","sources":["../src/IrisGrid.jsx"],"names":[],"mappings":"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"}
|
package/dist/IrisGrid.js
CHANGED
|
@@ -18,7 +18,7 @@ import Log from '@deephaven/log';
|
|
|
18
18
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
19
19
|
import { ContextActionUtils, ContextActions, DeephavenSpinner, Stack, Menu, Page, Popper, ThemeExport, Tooltip } from '@deephaven/components';
|
|
20
20
|
import { Grid, GridRange, GridUtils } from '@deephaven/grid';
|
|
21
|
-
import { dhEye, dhFilterFilled, dhGraphLineUp, dhTriangleDownSquare, vsCloudDownload, vsFilter, vsMenu, vsRuby, vsSearch, vsSplitHorizontal, vsSymbolOperator, vsTools } from '@deephaven/icons';
|
|
21
|
+
import { dhEye, dhFilterFilled, dhGraphLineUp, dhTriangleDownSquare, vsCloudDownload, vsEdit, vsFilter, vsMenu, vsRuby, vsSearch, vsSplitHorizontal, vsSymbolOperator, vsTools } from '@deephaven/icons';
|
|
22
22
|
import dh, { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
|
|
23
23
|
import { Pending, PromiseUtils, ValidationError } from '@deephaven/utils';
|
|
24
24
|
import throttle from 'lodash.throttle';
|
|
@@ -50,9 +50,13 @@ import AdvancedSettingsType from "./sidebar/AdvancedSettingsType.js";
|
|
|
50
50
|
import AdvancedSettingsMenu from "./sidebar/AdvancedSettingsMenu.js";
|
|
51
51
|
import SHORTCUTS from "./IrisGridShortcuts.js";
|
|
52
52
|
import DateUtils from "./DateUtils.js";
|
|
53
|
+
import ConditionalFormattingMenu from "./sidebar/conditional-formatting/ConditionalFormattingMenu.js";
|
|
54
|
+
import { getFormatColumns } from "./sidebar/conditional-formatting/ConditionalFormattingUtils.js";
|
|
55
|
+
import ConditionalFormatEditor from "./sidebar/conditional-formatting/ConditionalFormatEditor.js";
|
|
53
56
|
var log = Log.module('IrisGrid');
|
|
54
57
|
var UPDATE_DOWNLOAD_THROTTLE = 500;
|
|
55
58
|
var SET_FILTER_DEBOUNCE = 250;
|
|
59
|
+
var SET_CONDITIONAL_FORMAT_DEBOUNCE = 250;
|
|
56
60
|
|
|
57
61
|
function isEmptyConfig(_ref) {
|
|
58
62
|
var {
|
|
@@ -97,7 +101,7 @@ export class IrisGrid extends Component {
|
|
|
97
101
|
max: 50
|
|
98
102
|
}));
|
|
99
103
|
|
|
100
|
-
_defineProperty(this, "getCachedOptionItems", memoize((isChartBuilderAvailable, isCustomColumnsAvailable, isRollupAvailable, isTotalsAvailable, isSelectDistinctAvailable, isExportAvailable, toggleFilterBarAction, toggleSearchBarAction, isFilterBarShown, showSearchBar, canDownloadCsv, canToggleSearch) => {
|
|
104
|
+
_defineProperty(this, "getCachedOptionItems", memoize((isChartBuilderAvailable, isCustomColumnsAvailable, isFormatColumnsAvailable, isRollupAvailable, isTotalsAvailable, isSelectDistinctAvailable, isExportAvailable, toggleFilterBarAction, toggleSearchBarAction, isFilterBarShown, showSearchBar, canDownloadCsv, canToggleSearch) => {
|
|
101
105
|
var optionItems = [];
|
|
102
106
|
|
|
103
107
|
if (isChartBuilderAvailable) {
|
|
@@ -114,6 +118,14 @@ export class IrisGrid extends Component {
|
|
|
114
118
|
icon: dhEye
|
|
115
119
|
});
|
|
116
120
|
|
|
121
|
+
if (isFormatColumnsAvailable) {
|
|
122
|
+
optionItems.push({
|
|
123
|
+
type: OptionType.CONDITIONAL_FORMATTING,
|
|
124
|
+
title: 'Conditional Formatting',
|
|
125
|
+
icon: vsEdit
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
|
|
117
129
|
if (isCustomColumnsAvailable) {
|
|
118
130
|
optionItems.push({
|
|
119
131
|
type: OptionType.CUSTOM_COLUMN_BUILDER,
|
|
@@ -225,6 +237,22 @@ export class IrisGrid extends Component {
|
|
|
225
237
|
|
|
226
238
|
_defineProperty(this, "getOperationOrder", memoize(aggregations => aggregations.map(a => a.operation).filter(o => !AggregationUtils.isRollupOperation(o))));
|
|
227
239
|
|
|
240
|
+
_defineProperty(this, "getCachedFormatColumns", memoize((columns, rules) => getFormatColumns(columns, rules)));
|
|
241
|
+
|
|
242
|
+
_defineProperty(this, "getCachedModelColumns", memoize((model, customColumns) => model.columns));
|
|
243
|
+
|
|
244
|
+
_defineProperty(this, "getCachedPreviewFormatColumns", memoize((columns, rulesParam, preview, editIndex) => {
|
|
245
|
+
log.debug('getCachedPreviewFormatColumns', rulesParam, preview, editIndex);
|
|
246
|
+
|
|
247
|
+
if (preview !== undefined && editIndex !== null) {
|
|
248
|
+
var rules = [...rulesParam];
|
|
249
|
+
rules[editIndex] = preview;
|
|
250
|
+
return this.getCachedFormatColumns(columns, rules);
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
return this.getCachedFormatColumns(columns, rulesParam);
|
|
254
|
+
}));
|
|
255
|
+
|
|
228
256
|
_defineProperty(this, "getModelRollupConfig", memoize((originalColumns, config, aggregationSettings) => IrisGridUtils.getModelRollupConfig(originalColumns, config, aggregationSettings)));
|
|
229
257
|
|
|
230
258
|
_defineProperty(this, "getModelTotalsConfig", memoize((columns, config, aggregationSettings) => {
|
|
@@ -318,6 +346,12 @@ export class IrisGrid extends Component {
|
|
|
318
346
|
this.handleTooltipRef = this.handleTooltipRef.bind(this);
|
|
319
347
|
this.handleViewChanged = this.handleViewChanged.bind(this);
|
|
320
348
|
this.handleFormatSelection = this.handleFormatSelection.bind(this);
|
|
349
|
+
this.handleConditionalFormatCreate = this.handleConditionalFormatCreate.bind(this);
|
|
350
|
+
this.handleConditionalFormatEdit = this.handleConditionalFormatEdit.bind(this);
|
|
351
|
+
this.handleConditionalFormatsChange = this.handleConditionalFormatsChange.bind(this);
|
|
352
|
+
this.handleConditionalFormatEditorSave = this.handleConditionalFormatEditorSave.bind(this);
|
|
353
|
+
this.handleConditionalFormatEditorUpdate = debounce(this.handleConditionalFormatEditorUpdate.bind(this), SET_CONDITIONAL_FORMAT_DEBOUNCE);
|
|
354
|
+
this.handleConditionalFormatEditorCancel = this.handleConditionalFormatEditorCancel.bind(this);
|
|
321
355
|
this.handleUpdateCustomColumns = this.handleUpdateCustomColumns.bind(this);
|
|
322
356
|
this.handleCustomColumnsChanged = this.handleCustomColumnsChanged.bind(this);
|
|
323
357
|
this.handleSelectDistinctChanged = this.handleSelectDistinctChanged.bind(this);
|
|
@@ -393,6 +427,7 @@ export class IrisGrid extends Component {
|
|
|
393
427
|
this.contextActions = [this.toggleFilterBarAction, this.toggleSearchBarAction, this.discardAction, this.commitAction];
|
|
394
428
|
var {
|
|
395
429
|
aggregationSettings: _aggregationSettings,
|
|
430
|
+
conditionalFormats,
|
|
396
431
|
customColumnFormatMap,
|
|
397
432
|
isFilterBarShown: _isFilterBarShown,
|
|
398
433
|
isSelectingPartition,
|
|
@@ -467,6 +502,9 @@ export class IrisGrid extends Component {
|
|
|
467
502
|
formatter: new Formatter(),
|
|
468
503
|
isMenuShown: false,
|
|
469
504
|
customColumnFormatMap: new Map(customColumnFormatMap),
|
|
505
|
+
conditionalFormats,
|
|
506
|
+
conditionalFormatEditIndex: null,
|
|
507
|
+
conditionalFormatPreview: undefined,
|
|
470
508
|
// Column user is hovering over for selection
|
|
471
509
|
hoverSelectColumn: null,
|
|
472
510
|
isTableDownloading: false,
|
|
@@ -1830,7 +1868,7 @@ export class IrisGrid extends Component {
|
|
|
1830
1868
|
model,
|
|
1831
1869
|
onCreateChart
|
|
1832
1870
|
} = this.props;
|
|
1833
|
-
onCreateChart(settings, model
|
|
1871
|
+
onCreateChart(settings, model);
|
|
1834
1872
|
}
|
|
1835
1873
|
|
|
1836
1874
|
handleGridError(error) {
|
|
@@ -2063,6 +2101,81 @@ export class IrisGrid extends Component {
|
|
|
2063
2101
|
this.tooltip = tooltip;
|
|
2064
2102
|
}
|
|
2065
2103
|
|
|
2104
|
+
handleConditionalFormatsChange(conditionalFormats) {
|
|
2105
|
+
log.debug('Updated conditional formats', conditionalFormats);
|
|
2106
|
+
this.setState({
|
|
2107
|
+
conditionalFormats
|
|
2108
|
+
});
|
|
2109
|
+
}
|
|
2110
|
+
|
|
2111
|
+
handleConditionalFormatCreate() {
|
|
2112
|
+
log.debug('Create new conditional format');
|
|
2113
|
+
var {
|
|
2114
|
+
openOptions,
|
|
2115
|
+
conditionalFormats
|
|
2116
|
+
} = this.state;
|
|
2117
|
+
this.setState({
|
|
2118
|
+
openOptions: [...openOptions, {
|
|
2119
|
+
type: OptionType.CONDITIONAL_FORMATTING_EDIT,
|
|
2120
|
+
title: "Create Formatting Rule"
|
|
2121
|
+
}],
|
|
2122
|
+
conditionalFormatEditIndex: conditionalFormats.length,
|
|
2123
|
+
// Start with a blank rule
|
|
2124
|
+
conditionalFormatPreview: undefined
|
|
2125
|
+
});
|
|
2126
|
+
}
|
|
2127
|
+
|
|
2128
|
+
handleConditionalFormatEdit(index) {
|
|
2129
|
+
log.debug('Edit conditional format', index);
|
|
2130
|
+
var {
|
|
2131
|
+
openOptions,
|
|
2132
|
+
conditionalFormats
|
|
2133
|
+
} = this.state;
|
|
2134
|
+
this.setState({
|
|
2135
|
+
openOptions: [...openOptions, {
|
|
2136
|
+
type: OptionType.CONDITIONAL_FORMATTING_EDIT,
|
|
2137
|
+
title: "Edit Formatting Rule"
|
|
2138
|
+
}],
|
|
2139
|
+
conditionalFormatEditIndex: index,
|
|
2140
|
+
// Clone rule to preview temporary changes
|
|
2141
|
+
conditionalFormatPreview: _objectSpread({}, conditionalFormats[index])
|
|
2142
|
+
});
|
|
2143
|
+
} // Apply live changes
|
|
2144
|
+
|
|
2145
|
+
|
|
2146
|
+
handleConditionalFormatEditorUpdate(conditionalFormatPreview) {
|
|
2147
|
+
this.setState({
|
|
2148
|
+
conditionalFormatPreview
|
|
2149
|
+
});
|
|
2150
|
+
}
|
|
2151
|
+
|
|
2152
|
+
handleConditionalFormatEditorSave(config) {
|
|
2153
|
+
log.debug('Save conditional format changes', config);
|
|
2154
|
+
this.setState(state => {
|
|
2155
|
+
if (state.conditionalFormatEditIndex === null) {
|
|
2156
|
+
log.debug('Invalid format index');
|
|
2157
|
+
return null;
|
|
2158
|
+
}
|
|
2159
|
+
|
|
2160
|
+
var conditionalFormats = [...state.conditionalFormats];
|
|
2161
|
+
conditionalFormats[state.conditionalFormatEditIndex] = config;
|
|
2162
|
+
return {
|
|
2163
|
+
conditionalFormats
|
|
2164
|
+
};
|
|
2165
|
+
}, () => {
|
|
2166
|
+
this.handleMenuBack();
|
|
2167
|
+
});
|
|
2168
|
+
}
|
|
2169
|
+
|
|
2170
|
+
handleConditionalFormatEditorCancel() {
|
|
2171
|
+
this.handleMenuBack(); // Not resetting conditionalFormatPreview here
|
|
2172
|
+
// to prevent editor fields change during the menu transition
|
|
2173
|
+
|
|
2174
|
+
this.setState({
|
|
2175
|
+
conditionalFormatEditIndex: null
|
|
2176
|
+
});
|
|
2177
|
+
}
|
|
2178
|
+
|
|
2066
2179
|
handleUpdateCustomColumns(customColumns) {
|
|
2067
2180
|
log.info("handleUpdateCustomColumns:", customColumns);
|
|
2068
2181
|
var {
|
|
@@ -2407,7 +2520,8 @@ export class IrisGrid extends Component {
|
|
|
2407
2520
|
render() {
|
|
2408
2521
|
var _rollupConfig$columns3,
|
|
2409
2522
|
_rollupConfig$columns4,
|
|
2410
|
-
_this4 = this
|
|
2523
|
+
_this4 = this,
|
|
2524
|
+
_openOptions;
|
|
2411
2525
|
|
|
2412
2526
|
var {
|
|
2413
2527
|
children,
|
|
@@ -2422,7 +2536,8 @@ export class IrisGrid extends Component {
|
|
|
2422
2536
|
alwaysFetchColumns,
|
|
2423
2537
|
advancedSettings,
|
|
2424
2538
|
onAdvancedSettingsChange,
|
|
2425
|
-
canDownloadCsv
|
|
2539
|
+
canDownloadCsv,
|
|
2540
|
+
onCreateChart
|
|
2426
2541
|
} = this.props;
|
|
2427
2542
|
var {
|
|
2428
2543
|
metricCalculator,
|
|
@@ -2453,6 +2568,9 @@ export class IrisGrid extends Component {
|
|
|
2453
2568
|
movedColumns,
|
|
2454
2569
|
movedRows,
|
|
2455
2570
|
formatter,
|
|
2571
|
+
conditionalFormats,
|
|
2572
|
+
conditionalFormatPreview,
|
|
2573
|
+
conditionalFormatEditIndex,
|
|
2456
2574
|
sorts,
|
|
2457
2575
|
reverseType,
|
|
2458
2576
|
customColumns,
|
|
@@ -2854,7 +2972,7 @@ export class IrisGrid extends Component {
|
|
|
2854
2972
|
}
|
|
2855
2973
|
}
|
|
2856
2974
|
|
|
2857
|
-
var optionItems = this.getCachedOptionItems(model.isChartBuilderAvailable, model.isCustomColumnsAvailable, model.isRollupAvailable, model.isTotalsAvailable, model.isSelectDistinctAvailable, model.isExportAvailable, this.toggleFilterBarAction, this.toggleSearchBarAction, isFilterBarShown, showSearchBar, canDownloadCsv, this.isTableSearchAvailable());
|
|
2975
|
+
var optionItems = this.getCachedOptionItems(onCreateChart !== undefined && model.isChartBuilderAvailable, model.isCustomColumnsAvailable, model.isFormatColumnsAvailable, model.isRollupAvailable, model.isTotalsAvailable, model.isSelectDistinctAvailable, model.isExportAvailable, this.toggleFilterBarAction, this.toggleSearchBarAction, isFilterBarShown, showSearchBar, canDownloadCsv, this.isTableSearchAvailable());
|
|
2858
2976
|
var openOptionsStack = openOptions.map(option => {
|
|
2859
2977
|
switch (option.type) {
|
|
2860
2978
|
case OptionType.CHART_BUILDER:
|
|
@@ -2875,6 +2993,24 @@ export class IrisGrid extends Component {
|
|
|
2875
2993
|
key: OptionType.VISIBILITY_ORDERING_BUILDER
|
|
2876
2994
|
});
|
|
2877
2995
|
|
|
2996
|
+
case OptionType.CONDITIONAL_FORMATTING:
|
|
2997
|
+
return /*#__PURE__*/React.createElement(ConditionalFormattingMenu, {
|
|
2998
|
+
columns: model.columns,
|
|
2999
|
+
rules: conditionalFormats,
|
|
3000
|
+
onChange: this.handleConditionalFormatsChange,
|
|
3001
|
+
onCreate: this.handleConditionalFormatCreate,
|
|
3002
|
+
onSelect: this.handleConditionalFormatEdit
|
|
3003
|
+
});
|
|
3004
|
+
|
|
3005
|
+
case OptionType.CONDITIONAL_FORMATTING_EDIT:
|
|
3006
|
+
return /*#__PURE__*/React.createElement(ConditionalFormatEditor, {
|
|
3007
|
+
columns: model.columns,
|
|
3008
|
+
rule: conditionalFormatPreview,
|
|
3009
|
+
onUpdate: this.handleConditionalFormatEditorUpdate,
|
|
3010
|
+
onSave: this.handleConditionalFormatEditorSave,
|
|
3011
|
+
onCancel: this.handleConditionalFormatEditorCancel
|
|
3012
|
+
});
|
|
3013
|
+
|
|
2878
3014
|
case OptionType.CUSTOM_COLUMN_BUILDER:
|
|
2879
3015
|
return /*#__PURE__*/React.createElement(CustomColumnBuilder, {
|
|
2880
3016
|
model: model,
|
|
@@ -3030,6 +3166,8 @@ export class IrisGrid extends Component {
|
|
|
3030
3166
|
customColumns: customColumns,
|
|
3031
3167
|
hiddenColumns: hiddenColumns,
|
|
3032
3168
|
alwaysFetchColumns: this.getAlwaysFetchColumns(alwaysFetchColumns, model.columns, model.floatingLeftColumnCount, model.floatingRightColumnCount),
|
|
3169
|
+
formatColumns: this.getCachedPreviewFormatColumns(this.getCachedModelColumns(model, customColumns), conditionalFormats, conditionalFormatPreview, // Disable the preview format when we press Back on the format edit page
|
|
3170
|
+
((_openOptions = openOptions[openOptions.length - 1]) === null || _openOptions === void 0 ? void 0 : _openOptions.type) === OptionType.CONDITIONAL_FORMATTING_EDIT ? conditionalFormatEditIndex : null),
|
|
3033
3171
|
rollupConfig: this.getModelRollupConfig(model.originalColumns, rollupConfig, aggregationSettings),
|
|
3034
3172
|
totalsConfig: this.getModelTotalsConfig(model.columns, rollupConfig, aggregationSettings),
|
|
3035
3173
|
selectDistinctColumns: selectDistinctColumns,
|
|
@@ -3120,6 +3258,7 @@ IrisGrid.propTypes = {
|
|
|
3120
3258
|
alwaysFetchColumns: PropTypes.arrayOf(PropTypes.string),
|
|
3121
3259
|
isFilterBarShown: PropTypes.bool,
|
|
3122
3260
|
applyInputFiltersOnInit: PropTypes.bool,
|
|
3261
|
+
conditionalFormats: PropTypes.arrayOf(PropTypes.shape({})),
|
|
3123
3262
|
customColumnFormatMap: PropTypes.instanceOf(Map),
|
|
3124
3263
|
movedColumns: PropTypes.arrayOf(PropTypes.shape({
|
|
3125
3264
|
from: PropTypes.number.isRequired,
|
|
@@ -3206,6 +3345,7 @@ IrisGrid.defaultProps = {
|
|
|
3206
3345
|
advancedFilters: new Map(),
|
|
3207
3346
|
advancedSettings: new Map(),
|
|
3208
3347
|
alwaysFetchColumns: [],
|
|
3348
|
+
conditionalFormats: [],
|
|
3209
3349
|
customColumnFormatMap: new Map(),
|
|
3210
3350
|
isFilterBarShown: false,
|
|
3211
3351
|
applyInputFiltersOnInit: false,
|
|
@@ -3213,7 +3353,7 @@ IrisGrid.defaultProps = {
|
|
|
3213
3353
|
movedRows: [],
|
|
3214
3354
|
inputFilters: [],
|
|
3215
3355
|
customFilters: [],
|
|
3216
|
-
onCreateChart:
|
|
3356
|
+
onCreateChart: undefined,
|
|
3217
3357
|
onColumnSelected: () => {},
|
|
3218
3358
|
onDataSelected: () => {},
|
|
3219
3359
|
onError: () => {},
|