@deephaven/iris-grid 0.6.1-fixed-deps.2 → 0.6.3-alpha.5
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/ColumnStatistics.css +5 -0
- package/dist/ColumnStatistics.css.map +1 -1
- package/dist/ColumnStatistics.d.ts +1 -0
- package/dist/ColumnStatistics.d.ts.map +1 -1
- package/dist/ColumnStatistics.js +26 -9
- package/dist/ColumnStatistics.js.map +1 -1
- package/dist/IrisGrid.css +2 -0
- package/dist/IrisGrid.css.map +1 -1
- package/dist/IrisGrid.d.ts +1 -0
- package/dist/IrisGrid.d.ts.map +1 -1
- package/dist/IrisGrid.js +30 -14
- package/dist/IrisGrid.js.map +1 -1
- package/dist/IrisGridBottomBar.js +1 -1
- package/dist/IrisGridModel.d.ts +5 -0
- package/dist/IrisGridModel.d.ts.map +1 -1
- package/dist/IrisGridModel.js +9 -0
- package/dist/IrisGridModel.js.map +1 -1
- package/dist/IrisGridModelUpdater.js +1 -1
- package/dist/IrisGridModelUpdater.js.map +1 -1
- package/dist/IrisGridProxyModel.d.ts.map +1 -1
- package/dist/IrisGridProxyModel.js +4 -0
- package/dist/IrisGridProxyModel.js.map +1 -1
- package/dist/IrisGridTableModel.d.ts.map +1 -1
- package/dist/IrisGridTableModel.js +26 -7
- package/dist/IrisGridTableModel.js.map +1 -1
- package/dist/IrisGridTheme.module.css +2 -0
- package/dist/IrisGridTheme.module.css.map +1 -1
- package/dist/IrisGridTreeTableModel.js +1 -1
- package/dist/IrisGridUtils.js +32 -32
- package/dist/IrisGridUtils.js.map +1 -1
- package/dist/PendingDataBottomBar.js +1 -1
- package/dist/PendingDataBottomBar.js.map +1 -1
- package/dist/TableUtils.js +1 -1
- package/dist/ToastBottomBar.js +1 -1
- package/dist/ToastBottomBar.js.map +1 -1
- package/dist/memoizeClear.js +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +6 -2
- package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js +8 -1
- package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
- package/dist/sidebar/AdvancedSettingsMenu.js +2 -2
- package/dist/sidebar/CustomColumnBuilder.js +2 -2
- package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
- package/dist/sidebar/InputEditor.d.ts +1 -1
- package/dist/sidebar/InputEditor.js +2 -2
- package/dist/sidebar/InputEditor.js.map +1 -1
- package/dist/sidebar/RollupRows.js +10 -10
- package/dist/sidebar/RollupRows.js.map +1 -1
- package/dist/sidebar/SelectDistinctBuilder.js +5 -5
- package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
- package/dist/sidebar/TableSaver.js +1 -1
- package/dist/sidebar/TableSaver.js.map +1 -1
- package/dist/sidebar/VisibilityOrderingBuilder.js +10 -10
- package/dist/sidebar/VisibilityOrderingBuilder.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationEdit.js +3 -3
- package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
- package/dist/sidebar/aggregations/AggregationUtils.js +1 -1
- package/dist/sidebar/aggregations/Aggregations.js +4 -4
- package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../src/ColumnStatistics.scss","../../components/scss/bootstrap_overrides.scss","../../components/scss/new_variables.scss","../../../node_modules/bootstrap/scss/_variables.scss"],"names":[],"mappings":"AAEA;EACE;EACA;EACA,OCQe;EDPf;EACA;EACA;;;AAGF;EACE;;;
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../src/ColumnStatistics.scss","../../components/scss/bootstrap_overrides.scss","../../components/scss/new_variables.scss","../../../node_modules/bootstrap/scss/_variables.scss"],"names":[],"mappings":"AAEA;EACE;EACA;EACA,OCQe;EDPf;EACA;EACA;;;AAGF;EACE,aEVS;EFWT;;AACA;EACE;EACA;;;AAIJ;EACE;EACA,OCDS;EDET;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA,SEnCS;EFoCT,aEpCS;;AFqCT;EACE;;AACA;EAEE;;AAIJ;EACE,aGwFK;;AHrFP;EACE;EACA,eGmFK;EHlFL;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;;;AAIJ;EACE;EACA;EACA;;;AAGF;AAAA;EAEE;EACA;EACA,OCzDS","file":"ColumnStatistics.css"}
|
|
@@ -7,6 +7,7 @@ declare class ColumnStatistics extends React.Component<any, any, any> {
|
|
|
7
7
|
handleError(error: any): void;
|
|
8
8
|
handleGenerateStatistics(): void;
|
|
9
9
|
handleStatistics(stats: any): void;
|
|
10
|
+
handleCopyHeader(): void;
|
|
10
11
|
cancelablePromise: import("@deephaven/utils").CancelablePromise<any> | null;
|
|
11
12
|
maybeGenerateStatistics(): void;
|
|
12
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ColumnStatistics.d.ts","sourceRoot":"","sources":["../src/ColumnStatistics.jsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"ColumnStatistics.d.ts","sourceRoot":"","sources":["../src/ColumnStatistics.jsx"],"names":[],"mappings":";AA2BA;IACE,uFAAuF;IACvF,mCAAoC;IAEpC,0CAQC;IAED,wBAiBC;IAwED,8BAYC;IAxDD,iCAUC;IAED,mCA8BC;IA1DD,yBAEC;IAvBC,4EAA6B;IAyB/B,gCAUC;CAmKF"}
|
package/dist/ColumnStatistics.js
CHANGED
|
@@ -4,8 +4,8 @@ import React, { Component } from 'react';
|
|
|
4
4
|
import PropTypes from 'prop-types';
|
|
5
5
|
import classNames from 'classnames';
|
|
6
6
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
7
|
-
import { LoadingSpinner } from '@deephaven/components';
|
|
8
|
-
import { dhRefresh, vsLock } from '@deephaven/icons';
|
|
7
|
+
import { Button, ContextActionUtils, LoadingSpinner } from '@deephaven/components';
|
|
8
|
+
import { dhFreeze, dhRefresh, vsCopy, vsLock, vsPassFilled } from '@deephaven/icons';
|
|
9
9
|
import { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
|
|
10
10
|
import Log from '@deephaven/log';
|
|
11
11
|
import { PromiseUtils } from '@deephaven/utils';
|
|
@@ -29,12 +29,14 @@ class ColumnStatistics extends Component {
|
|
|
29
29
|
this.handleError = this.handleError.bind(this);
|
|
30
30
|
this.handleGenerateStatistics = this.handleGenerateStatistics.bind(this);
|
|
31
31
|
this.handleStatistics = this.handleStatistics.bind(this);
|
|
32
|
+
this.handleCopyHeader = this.handleCopyHeader.bind(this);
|
|
32
33
|
this.cancelablePromise = null;
|
|
33
34
|
this.state = {
|
|
34
35
|
error: null,
|
|
35
36
|
loading: false,
|
|
36
37
|
statistics: null,
|
|
37
|
-
numRows: 0
|
|
38
|
+
numRows: 0,
|
|
39
|
+
copied: false
|
|
38
40
|
};
|
|
39
41
|
}
|
|
40
42
|
|
|
@@ -48,6 +50,12 @@ class ColumnStatistics extends Component {
|
|
|
48
50
|
}
|
|
49
51
|
}
|
|
50
52
|
|
|
53
|
+
handleCopyHeader() {
|
|
54
|
+
this.setState({
|
|
55
|
+
copied: true
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
|
|
51
59
|
maybeGenerateStatistics() {
|
|
52
60
|
var {
|
|
53
61
|
model
|
|
@@ -131,7 +139,8 @@ class ColumnStatistics extends Component {
|
|
|
131
139
|
error,
|
|
132
140
|
loading,
|
|
133
141
|
statistics,
|
|
134
|
-
numRows
|
|
142
|
+
numRows,
|
|
143
|
+
copied
|
|
135
144
|
} = this.state;
|
|
136
145
|
var showGenerateStatistics = !loading && error == null && statistics == null && model.isColumnStatisticsAvailable;
|
|
137
146
|
var statisticElements = [];
|
|
@@ -160,21 +169,29 @@ class ColumnStatistics extends Component {
|
|
|
160
169
|
|
|
161
170
|
var rowCountLabel = model.hasExpandableRows ? 'Expanded Rows' : 'Number of Rows';
|
|
162
171
|
var formattedRowCount = model.displayString(numRows, 'long');
|
|
163
|
-
var columnIndex = model.
|
|
172
|
+
var columnIndex = model.getColumnIndexByName(column.name);
|
|
164
173
|
return /*#__PURE__*/React.createElement("div", {
|
|
165
174
|
className: "column-statistics"
|
|
166
175
|
}, /*#__PURE__*/React.createElement("div", {
|
|
167
176
|
className: "column-statistics-title"
|
|
168
|
-
}, column.name,
|
|
177
|
+
}, column.name, /*#__PURE__*/React.createElement("span", {
|
|
169
178
|
className: "column-statistics-type"
|
|
170
|
-
}, "(", columnType, ")")
|
|
179
|
+
}, "\xA0(", columnType, ")"), /*#__PURE__*/React.createElement(Button, {
|
|
180
|
+
kind: "ghost",
|
|
181
|
+
className: "column-statistics-copy",
|
|
182
|
+
icon: copied ? vsPassFilled : vsCopy,
|
|
183
|
+
onClick: () => {
|
|
184
|
+
ContextActionUtils.copyToClipboard(column.name).then(this.handleCopyHeader).catch(e => log.error('Unable to column name', e));
|
|
185
|
+
},
|
|
186
|
+
tooltip: copied ? 'Copied text' : 'Copy column name'
|
|
187
|
+
})), description && /*#__PURE__*/React.createElement("div", {
|
|
171
188
|
className: "column-statistics-description"
|
|
172
189
|
}, description), !model.isColumnMovable(columnIndex) && /*#__PURE__*/React.createElement("div", {
|
|
173
190
|
className: "column-statistics-status"
|
|
174
191
|
}, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
175
|
-
icon: vsLock,
|
|
192
|
+
icon: model.isColumnFrozen(columnIndex) ? dhFreeze : vsLock,
|
|
176
193
|
className: "mr-1"
|
|
177
|
-
}),
|
|
194
|
+
}), model.isColumnFrozen(columnIndex) ? 'Frozen' : 'Not movable'), /*#__PURE__*/React.createElement("div", {
|
|
178
195
|
className: "column-statistics-grid"
|
|
179
196
|
}, statistics == null && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
180
197
|
className: "column-statistic-operation"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/ColumnStatistics.jsx"],"names":["React","Component","PropTypes","classNames","FontAwesomeIcon","LoadingSpinner","dhRefresh","vsLock","APIPropTypes","Log","PromiseUtils","IrisGridModel","log","module","STATS_LABEL_OVERRIDES","SIZE","ColumnStatistics","getStatsLabel","operation","split","map","w","toUpperCase","substr","toLowerCase","join","constructor","props","handleError","bind","handleGenerateStatistics","handleStatistics","cancelablePromise","state","error","loading","statistics","numRows","componentDidMount","maybeGenerateStatistics","componentWillUnmount","cancel","model","rowCount","setState","isColumnStatisticsAvailable","AUTO_GENERATE_LIMIT","column","makeCancelable","columnStatistics","then","catch","stats","debug","onStatistics","statisticsMap","forEach","value","push","type","getType","uniqueValues","className","isCanceled","render","showGenerateStatistics","statisticElements","columnType","substring","lastIndexOf","description","i","length","formattedValue","displayString","name","statisticElement","rowCountLabel","hasExpandableRows","formattedRowCount","columnIndex","columns","findIndex","col","isColumnMovable","propTypes","instanceOf","isRequired","Column","func"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { LoadingSpinner } from '@deephaven/components';\nimport { dhRefresh, vsLock } from '@deephaven/icons';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { PromiseUtils } from '@deephaven/utils';\nimport IrisGridModel from './IrisGridModel';\nimport './ColumnStatistics.scss';\n\nconst log = Log.module('ColumnStatistics');\nconst STATS_LABEL_OVERRIDES = {\n SIZE: 'Number of Rows',\n};\n\nclass ColumnStatistics extends Component {\n /** Automatically generate the statistics when the row count is below this threshold */\n static AUTO_GENERATE_LIMIT = 100000;\n\n static getStatsLabel(operation) {\n return (\n STATS_LABEL_OVERRIDES[operation] ??\n operation\n .split(' ')\n .map(w => w[0].toUpperCase() + w.substr(1).toLowerCase())\n .join(' ')\n );\n }\n\n constructor(props) {\n super(props);\n\n this.handleError = this.handleError.bind(this);\n this.handleGenerateStatistics = this.handleGenerateStatistics.bind(this);\n this.handleStatistics = this.handleStatistics.bind(this);\n\n this.cancelablePromise = null;\n\n this.state = {\n error: null,\n loading: false,\n statistics: null,\n numRows: 0,\n };\n }\n\n componentDidMount() {\n this.maybeGenerateStatistics();\n }\n\n componentWillUnmount() {\n if (this.cancelablePromise) {\n this.cancelablePromise.cancel();\n }\n }\n\n maybeGenerateStatistics() {\n const { model } = this.props;\n\n const numRows = model.rowCount;\n this.setState({ numRows });\n if (!model.isColumnStatisticsAvailable) {\n this.setState({ loading: false });\n } else if (numRows < ColumnStatistics.AUTO_GENERATE_LIMIT) {\n this.handleGenerateStatistics();\n }\n }\n\n handleGenerateStatistics() {\n this.setState({ loading: true });\n\n const { column, model } = this.props;\n\n this.cancelablePromise = PromiseUtils.makeCancelable(\n model.columnStatistics(column)\n );\n\n this.cancelablePromise.then(this.handleStatistics).catch(this.handleError);\n }\n\n handleStatistics(stats) {\n log.debug('Received statistics', stats);\n\n const { model, onStatistics } = this.props;\n const statistics = [];\n\n stats.statisticsMap.forEach((value, operation) => {\n statistics.push({\n operation: ColumnStatistics.getStatsLabel(operation),\n value,\n type: stats.getType(operation),\n });\n });\n\n stats.uniqueValues.forEach((value, operation) => {\n statistics.push({\n operation,\n className: 'column-statistics-unique-value',\n value,\n type: 'long',\n });\n });\n\n this.setState({\n loading: false,\n statistics,\n numRows: model.rowCount,\n });\n\n onStatistics();\n }\n\n handleError(error) {\n if (error && error.isCanceled) {\n log.debug('Called handleError on a cancelled promise result');\n return;\n }\n\n log.error('Error generating statistics', error);\n this.setState({\n error,\n loading: false,\n statistics: null,\n });\n }\n\n render() {\n const { column, model } = this.props;\n const { error, loading, statistics, numRows } = this.state;\n const showGenerateStatistics =\n !loading &&\n error == null &&\n statistics == null &&\n model.isColumnStatisticsAvailable;\n const statisticElements = [];\n const columnType = column.type.substring(column.type.lastIndexOf('.') + 1);\n const description = column.description === null ? null : column.description;\n if (statistics != null) {\n for (let i = 0; i < statistics.length; i += 1) {\n const { operation, className, value, type } = statistics[i];\n const formattedValue = !type\n ? model.displayString(value, column.type, column.name)\n : model.displayString(value, type);\n const statisticElement = (\n <React.Fragment key={operation}>\n <div\n className={classNames('column-statistic-operation', className)}\n >\n {operation}\n </div>\n <div className=\"column-statistic-value\">{formattedValue}</div>\n </React.Fragment>\n );\n statisticElements.push(statisticElement);\n }\n }\n const rowCountLabel = model.hasExpandableRows\n ? 'Expanded Rows'\n : 'Number of Rows';\n const formattedRowCount = model.displayString(numRows, 'long');\n const columnIndex = model.columns.findIndex(\n col => col.name === column.name\n );\n return (\n <div className=\"column-statistics\">\n <div className=\"column-statistics-title\">\n {column.name} \n <span className=\"column-statistics-type\">({columnType})</span>\n </div>\n {description && (\n <div className=\"column-statistics-description\">{description}</div>\n )}\n {!model.isColumnMovable(columnIndex) && (\n <div className=\"column-statistics-status\">\n <FontAwesomeIcon icon={vsLock} className=\"mr-1\" />\n Not movable\n </div>\n )}\n <div className=\"column-statistics-grid\">\n {statistics == null && (\n <>\n <div className=\"column-statistic-operation\">{rowCountLabel}</div>\n <div className=\"column-statistic-value\">{formattedRowCount}</div>\n </>\n )}\n\n {statisticElements}\n </div>\n {showGenerateStatistics && (\n <button\n type=\"button\"\n className=\"btn btn-link px-0\"\n onClick={this.handleGenerateStatistics}\n >\n Generate Stats\n </button>\n )}\n {error && <div className=\"error-message\">{`${error}`}</div>}\n {statistics && !loading && (\n <button\n type=\"button\"\n className=\"btn btn-link px-0\"\n onClick={this.handleGenerateStatistics}\n >\n <FontAwesomeIcon icon={dhRefresh} className=\"mr-1\" />\n Refresh\n </button>\n )}\n {loading && (\n <div className=\"column-statistics-loading\">\n <LoadingSpinner className=\"mr-2\" />\n Calculating Stats...\n </div>\n )}\n </div>\n );\n }\n}\n\nColumnStatistics.propTypes = {\n model: PropTypes.instanceOf(IrisGridModel).isRequired,\n column: APIPropTypes.Column.isRequired,\n onStatistics: PropTypes.func.isRequired,\n};\n\nexport default ColumnStatistics;\n"],"file":"ColumnStatistics.js"}
|
|
1
|
+
{"version":3,"sources":["../src/ColumnStatistics.jsx"],"names":["React","Component","PropTypes","classNames","FontAwesomeIcon","Button","ContextActionUtils","LoadingSpinner","dhFreeze","dhRefresh","vsCopy","vsLock","vsPassFilled","APIPropTypes","Log","PromiseUtils","IrisGridModel","log","module","STATS_LABEL_OVERRIDES","SIZE","ColumnStatistics","getStatsLabel","operation","split","map","w","toUpperCase","substr","toLowerCase","join","constructor","props","handleError","bind","handleGenerateStatistics","handleStatistics","handleCopyHeader","cancelablePromise","state","error","loading","statistics","numRows","copied","componentDidMount","maybeGenerateStatistics","componentWillUnmount","cancel","setState","model","rowCount","isColumnStatisticsAvailable","AUTO_GENERATE_LIMIT","column","makeCancelable","columnStatistics","then","catch","stats","debug","onStatistics","statisticsMap","forEach","value","push","type","getType","uniqueValues","className","isCanceled","render","showGenerateStatistics","statisticElements","columnType","substring","lastIndexOf","description","i","length","formattedValue","displayString","name","statisticElement","rowCountLabel","hasExpandableRows","formattedRowCount","columnIndex","getColumnIndexByName","copyToClipboard","e","isColumnMovable","isColumnFrozen","propTypes","instanceOf","isRequired","Column","func"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SACEC,MADF,EAEEC,kBAFF,EAGEC,cAHF,QAIO,uBAJP;AAKA,SACEC,QADF,EAEEC,SAFF,EAGEC,MAHF,EAIEC,MAJF,EAKEC,YALF,QAMO,kBANP;AAOA,SAASV,SAAS,IAAIW,YAAtB,QAA0C,uBAA1C;AACA,OAAOC,GAAP,MAAgB,gBAAhB;AACA,SAASC,YAAT,QAA6B,kBAA7B;OACOC,a;;AAGP,IAAMC,GAAG,GAAGH,GAAG,CAACI,MAAJ,CAAW,kBAAX,CAAZ;AACA,IAAMC,qBAAqB,GAAG;AAC5BC,EAAAA,IAAI,EAAE;AADsB,CAA9B;;AAIA,MAAMC,gBAAN,SAA+BpB,SAA/B,CAAyC;AACvC;AAGoB,SAAbqB,aAAa,CAACC,SAAD,EAAY;AAAA;;AAC9B,oCACEJ,qBAAqB,CAACI,SAAD,CADvB,yEAEEA,SAAS,CACNC,KADH,CACS,GADT,EAEGC,GAFH,CAEOC,CAAC,IAAIA,CAAC,CAAC,CAAD,CAAD,CAAKC,WAAL,KAAqBD,CAAC,CAACE,MAAF,CAAS,CAAT,EAAYC,WAAZ,EAFjC,EAGGC,IAHH,CAGQ,GAHR,CAFF;AAOD;;AAEDC,EAAAA,WAAW,CAACC,KAAD,EAAQ;AACjB,UAAMA,KAAN;AAEA,SAAKC,WAAL,GAAmB,KAAKA,WAAL,CAAiBC,IAAjB,CAAsB,IAAtB,CAAnB;AACA,SAAKC,wBAAL,GAAgC,KAAKA,wBAAL,CAA8BD,IAA9B,CAAmC,IAAnC,CAAhC;AACA,SAAKE,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBF,IAAtB,CAA2B,IAA3B,CAAxB;AACA,SAAKG,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBH,IAAtB,CAA2B,IAA3B,CAAxB;AAEA,SAAKI,iBAAL,GAAyB,IAAzB;AAEA,SAAKC,KAAL,GAAa;AACXC,MAAAA,KAAK,EAAE,IADI;AAEXC,MAAAA,OAAO,EAAE,KAFE;AAGXC,MAAAA,UAAU,EAAE,IAHD;AAIXC,MAAAA,OAAO,EAAE,CAJE;AAKXC,MAAAA,MAAM,EAAE;AALG,KAAb;AAOD;;AAEDC,EAAAA,iBAAiB,GAAG;AAClB,SAAKC,uBAAL;AACD;;AAEDC,EAAAA,oBAAoB,GAAG;AACrB,QAAI,KAAKT,iBAAT,EAA4B;AAC1B,WAAKA,iBAAL,CAAuBU,MAAvB;AACD;AACF;;AAEDX,EAAAA,gBAAgB,GAAG;AACjB,SAAKY,QAAL,CAAc;AAAEL,MAAAA,MAAM,EAAE;AAAV,KAAd;AACD;;AAEDE,EAAAA,uBAAuB,GAAG;AACxB,QAAM;AAAEI,MAAAA;AAAF,QAAY,KAAKlB,KAAvB;AAEA,QAAMW,OAAO,GAAGO,KAAK,CAACC,QAAtB;AACA,SAAKF,QAAL,CAAc;AAAEN,MAAAA;AAAF,KAAd;;AACA,QAAI,CAACO,KAAK,CAACE,2BAAX,EAAwC;AACtC,WAAKH,QAAL,CAAc;AAAER,QAAAA,OAAO,EAAE;AAAX,OAAd;AACD,KAFD,MAEO,IAAIE,OAAO,GAAGtB,gBAAgB,CAACgC,mBAA/B,EAAoD;AACzD,WAAKlB,wBAAL;AACD;AACF;;AAEDA,EAAAA,wBAAwB,GAAG;AACzB,SAAKc,QAAL,CAAc;AAAER,MAAAA,OAAO,EAAE;AAAX,KAAd;AAEA,QAAM;AAAEa,MAAAA,MAAF;AAAUJ,MAAAA;AAAV,QAAoB,KAAKlB,KAA/B;AAEA,SAAKM,iBAAL,GAAyBvB,YAAY,CAACwC,cAAb,CACvBL,KAAK,CAACM,gBAAN,CAAuBF,MAAvB,CADuB,CAAzB;AAIA,SAAKhB,iBAAL,CAAuBmB,IAAvB,CAA4B,KAAKrB,gBAAjC,EAAmDsB,KAAnD,CAAyD,KAAKzB,WAA9D;AACD;;AAEDG,EAAAA,gBAAgB,CAACuB,KAAD,EAAQ;AACtB1C,IAAAA,GAAG,CAAC2C,KAAJ,CAAU,qBAAV,EAAiCD,KAAjC;AAEA,QAAM;AAAET,MAAAA,KAAF;AAASW,MAAAA;AAAT,QAA0B,KAAK7B,KAArC;AACA,QAAMU,UAAU,GAAG,EAAnB;AAEAiB,IAAAA,KAAK,CAACG,aAAN,CAAoBC,OAApB,CAA4B,CAACC,KAAD,EAAQzC,SAAR,KAAsB;AAChDmB,MAAAA,UAAU,CAACuB,IAAX,CAAgB;AACd1C,QAAAA,SAAS,EAAEF,gBAAgB,CAACC,aAAjB,CAA+BC,SAA/B,CADG;AAEdyC,QAAAA,KAFc;AAGdE,QAAAA,IAAI,EAAEP,KAAK,CAACQ,OAAN,CAAc5C,SAAd;AAHQ,OAAhB;AAKD,KAND;AAQAoC,IAAAA,KAAK,CAACS,YAAN,CAAmBL,OAAnB,CAA2B,CAACC,KAAD,EAAQzC,SAAR,KAAsB;AAC/CmB,MAAAA,UAAU,CAACuB,IAAX,CAAgB;AACd1C,QAAAA,SADc;AAEd8C,QAAAA,SAAS,EAAE,gCAFG;AAGdL,QAAAA,KAHc;AAIdE,QAAAA,IAAI,EAAE;AAJQ,OAAhB;AAMD,KAPD;AASA,SAAKjB,QAAL,CAAc;AACZR,MAAAA,OAAO,EAAE,KADG;AAEZC,MAAAA,UAFY;AAGZC,MAAAA,OAAO,EAAEO,KAAK,CAACC;AAHH,KAAd;AAMAU,IAAAA,YAAY;AACb;;AAED5B,EAAAA,WAAW,CAACO,KAAD,EAAQ;AACjB,QAAIA,KAAK,IAAIA,KAAK,CAAC8B,UAAnB,EAA+B;AAC7BrD,MAAAA,GAAG,CAAC2C,KAAJ,CAAU,kDAAV;AACA;AACD;;AAED3C,IAAAA,GAAG,CAACuB,KAAJ,CAAU,6BAAV,EAAyCA,KAAzC;AACA,SAAKS,QAAL,CAAc;AACZT,MAAAA,KADY;AAEZC,MAAAA,OAAO,EAAE,KAFG;AAGZC,MAAAA,UAAU,EAAE;AAHA,KAAd;AAKD;;AAED6B,EAAAA,MAAM,GAAG;AACP,QAAM;AAAEjB,MAAAA,MAAF;AAAUJ,MAAAA;AAAV,QAAoB,KAAKlB,KAA/B;AACA,QAAM;AAAEQ,MAAAA,KAAF;AAASC,MAAAA,OAAT;AAAkBC,MAAAA,UAAlB;AAA8BC,MAAAA,OAA9B;AAAuCC,MAAAA;AAAvC,QAAkD,KAAKL,KAA7D;AACA,QAAMiC,sBAAsB,GAC1B,CAAC/B,OAAD,IACAD,KAAK,IAAI,IADT,IAEAE,UAAU,IAAI,IAFd,IAGAQ,KAAK,CAACE,2BAJR;AAKA,QAAMqB,iBAAiB,GAAG,EAA1B;AACA,QAAMC,UAAU,GAAGpB,MAAM,CAACY,IAAP,CAAYS,SAAZ,CAAsBrB,MAAM,CAACY,IAAP,CAAYU,WAAZ,CAAwB,GAAxB,IAA+B,CAArD,CAAnB;AACA,QAAMC,WAAW,GAAGvB,MAAM,CAACuB,WAAP,KAAuB,IAAvB,GAA8B,IAA9B,GAAqCvB,MAAM,CAACuB,WAAhE;;AACA,QAAInC,UAAU,IAAI,IAAlB,EAAwB;AACtB,WAAK,IAAIoC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGpC,UAAU,CAACqC,MAA/B,EAAuCD,CAAC,IAAI,CAA5C,EAA+C;AAC7C,YAAM;AAAEvD,UAAAA,SAAF;AAAa8C,UAAAA,SAAb;AAAwBL,UAAAA,KAAxB;AAA+BE,UAAAA;AAA/B,YAAwCxB,UAAU,CAACoC,CAAD,CAAxD;AACA,YAAME,cAAc,GAAG,CAACd,IAAD,GACnBhB,KAAK,CAAC+B,aAAN,CAAoBjB,KAApB,EAA2BV,MAAM,CAACY,IAAlC,EAAwCZ,MAAM,CAAC4B,IAA/C,CADmB,GAEnBhC,KAAK,CAAC+B,aAAN,CAAoBjB,KAApB,EAA2BE,IAA3B,CAFJ;AAGA,YAAMiB,gBAAgB,gBACpB,oBAAC,KAAD,CAAO,QAAP;AAAgB,UAAA,GAAG,EAAE5D;AAArB,wBACE;AACE,UAAA,SAAS,EAAEpB,UAAU,CAAC,4BAAD,EAA+BkE,SAA/B;AADvB,WAGG9C,SAHH,CADF,eAME;AAAK,UAAA,SAAS,EAAC;AAAf,WAAyCyD,cAAzC,CANF,CADF;AAUAP,QAAAA,iBAAiB,CAACR,IAAlB,CAAuBkB,gBAAvB;AACD;AACF;;AACD,QAAMC,aAAa,GAAGlC,KAAK,CAACmC,iBAAN,GAClB,eADkB,GAElB,gBAFJ;AAGA,QAAMC,iBAAiB,GAAGpC,KAAK,CAAC+B,aAAN,CAAoBtC,OAApB,EAA6B,MAA7B,CAA1B;AACA,QAAM4C,WAAW,GAAGrC,KAAK,CAACsC,oBAAN,CAA2BlC,MAAM,CAAC4B,IAAlC,CAApB;AACA,wBACE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAK,MAAA,SAAS,EAAC;AAAf,OACG5B,MAAM,CAAC4B,IADV,eAEE;AAAM,MAAA,SAAS,EAAC;AAAhB,gBAAiDR,UAAjD,MAFF,eAGE,oBAAC,MAAD;AACE,MAAA,IAAI,EAAC,OADP;AAEE,MAAA,SAAS,EAAC,wBAFZ;AAGE,MAAA,IAAI,EAAE9B,MAAM,GAAGhC,YAAH,GAAkBF,MAHhC;AAIE,MAAA,OAAO,EAAE,MAAM;AACbJ,QAAAA,kBAAkB,CAACmF,eAAnB,CAAmCnC,MAAM,CAAC4B,IAA1C,EACGzB,IADH,CACQ,KAAKpB,gBADb,EAEGqB,KAFH,CAESgC,CAAC,IAAIzE,GAAG,CAACuB,KAAJ,CAAU,uBAAV,EAAmCkD,CAAnC,CAFd;AAGD,OARH;AASE,MAAA,OAAO,EAAE9C,MAAM,GAAG,aAAH,GAAmB;AATpC,MAHF,CADF,EAgBGiC,WAAW,iBACV;AAAK,MAAA,SAAS,EAAC;AAAf,OAAgDA,WAAhD,CAjBJ,EAmBG,CAAC3B,KAAK,CAACyC,eAAN,CAAsBJ,WAAtB,CAAD,iBACC;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE,oBAAC,eAAD;AACE,MAAA,IAAI,EAAErC,KAAK,CAAC0C,cAAN,CAAqBL,WAArB,IAAoC/E,QAApC,GAA+CG,MADvD;AAEE,MAAA,SAAS,EAAC;AAFZ,MADF,EAKGuC,KAAK,CAAC0C,cAAN,CAAqBL,WAArB,IAAoC,QAApC,GAA+C,aALlD,CApBJ,eA4BE;AAAK,MAAA,SAAS,EAAC;AAAf,OACG7C,UAAU,IAAI,IAAd,iBACC,uDACE;AAAK,MAAA,SAAS,EAAC;AAAf,OAA6C0C,aAA7C,CADF,eAEE;AAAK,MAAA,SAAS,EAAC;AAAf,OAAyCE,iBAAzC,CAFF,CAFJ,EAQGb,iBARH,CA5BF,EAsCGD,sBAAsB,iBACrB;AACE,MAAA,IAAI,EAAC,QADP;AAEE,MAAA,SAAS,EAAC,mBAFZ;AAGE,MAAA,OAAO,EAAE,KAAKrC;AAHhB,wBAvCJ,EA+CGK,KAAK,iBAAI;AAAK,MAAA,SAAS,EAAC;AAAf,iBAAmCA,KAAnC,EA/CZ,EAgDGE,UAAU,IAAI,CAACD,OAAf,iBACC;AACE,MAAA,IAAI,EAAC,QADP;AAEE,MAAA,SAAS,EAAC,mBAFZ;AAGE,MAAA,OAAO,EAAE,KAAKN;AAHhB,oBAKE,oBAAC,eAAD;AAAiB,MAAA,IAAI,EAAE1B,SAAvB;AAAkC,MAAA,SAAS,EAAC;AAA5C,MALF,YAjDJ,EA0DGgC,OAAO,iBACN;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE,oBAAC,cAAD;AAAgB,MAAA,SAAS,EAAC;AAA1B,MADF,yBA3DJ,CADF;AAmED;;AA3NsC;;gBAAnCpB,gB,yBAEyB,M;;AA4N/BA,gBAAgB,CAACwE,SAAjB,GAA6B;AAC3B3C,EAAAA,KAAK,EAAEhD,SAAS,CAAC4F,UAAV,CAAqB9E,aAArB,EAAoC+E,UADhB;AAE3BzC,EAAAA,MAAM,EAAEzC,YAAY,CAACmF,MAAb,CAAoBD,UAFD;AAG3BlC,EAAAA,YAAY,EAAE3D,SAAS,CAAC+F,IAAV,CAAeF;AAHF,CAA7B;AAMA,eAAe1E,gBAAf","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n Button,\n ContextActionUtils,\n LoadingSpinner,\n} from '@deephaven/components';\nimport {\n dhFreeze,\n dhRefresh,\n vsCopy,\n vsLock,\n vsPassFilled,\n} from '@deephaven/icons';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport Log from '@deephaven/log';\nimport { PromiseUtils } from '@deephaven/utils';\nimport IrisGridModel from './IrisGridModel';\nimport './ColumnStatistics.scss';\n\nconst log = Log.module('ColumnStatistics');\nconst STATS_LABEL_OVERRIDES = {\n SIZE: 'Number of Rows',\n};\n\nclass ColumnStatistics extends Component {\n /** Automatically generate the statistics when the row count is below this threshold */\n static AUTO_GENERATE_LIMIT = 100000;\n\n static getStatsLabel(operation) {\n return (\n STATS_LABEL_OVERRIDES[operation] ??\n operation\n .split(' ')\n .map(w => w[0].toUpperCase() + w.substr(1).toLowerCase())\n .join(' ')\n );\n }\n\n constructor(props) {\n super(props);\n\n this.handleError = this.handleError.bind(this);\n this.handleGenerateStatistics = this.handleGenerateStatistics.bind(this);\n this.handleStatistics = this.handleStatistics.bind(this);\n this.handleCopyHeader = this.handleCopyHeader.bind(this);\n\n this.cancelablePromise = null;\n\n this.state = {\n error: null,\n loading: false,\n statistics: null,\n numRows: 0,\n copied: false,\n };\n }\n\n componentDidMount() {\n this.maybeGenerateStatistics();\n }\n\n componentWillUnmount() {\n if (this.cancelablePromise) {\n this.cancelablePromise.cancel();\n }\n }\n\n handleCopyHeader() {\n this.setState({ copied: true });\n }\n\n maybeGenerateStatistics() {\n const { model } = this.props;\n\n const numRows = model.rowCount;\n this.setState({ numRows });\n if (!model.isColumnStatisticsAvailable) {\n this.setState({ loading: false });\n } else if (numRows < ColumnStatistics.AUTO_GENERATE_LIMIT) {\n this.handleGenerateStatistics();\n }\n }\n\n handleGenerateStatistics() {\n this.setState({ loading: true });\n\n const { column, model } = this.props;\n\n this.cancelablePromise = PromiseUtils.makeCancelable(\n model.columnStatistics(column)\n );\n\n this.cancelablePromise.then(this.handleStatistics).catch(this.handleError);\n }\n\n handleStatistics(stats) {\n log.debug('Received statistics', stats);\n\n const { model, onStatistics } = this.props;\n const statistics = [];\n\n stats.statisticsMap.forEach((value, operation) => {\n statistics.push({\n operation: ColumnStatistics.getStatsLabel(operation),\n value,\n type: stats.getType(operation),\n });\n });\n\n stats.uniqueValues.forEach((value, operation) => {\n statistics.push({\n operation,\n className: 'column-statistics-unique-value',\n value,\n type: 'long',\n });\n });\n\n this.setState({\n loading: false,\n statistics,\n numRows: model.rowCount,\n });\n\n onStatistics();\n }\n\n handleError(error) {\n if (error && error.isCanceled) {\n log.debug('Called handleError on a cancelled promise result');\n return;\n }\n\n log.error('Error generating statistics', error);\n this.setState({\n error,\n loading: false,\n statistics: null,\n });\n }\n\n render() {\n const { column, model } = this.props;\n const { error, loading, statistics, numRows, copied } = this.state;\n const showGenerateStatistics =\n !loading &&\n error == null &&\n statistics == null &&\n model.isColumnStatisticsAvailable;\n const statisticElements = [];\n const columnType = column.type.substring(column.type.lastIndexOf('.') + 1);\n const description = column.description === null ? null : column.description;\n if (statistics != null) {\n for (let i = 0; i < statistics.length; i += 1) {\n const { operation, className, value, type } = statistics[i];\n const formattedValue = !type\n ? model.displayString(value, column.type, column.name)\n : model.displayString(value, type);\n const statisticElement = (\n <React.Fragment key={operation}>\n <div\n className={classNames('column-statistic-operation', className)}\n >\n {operation}\n </div>\n <div className=\"column-statistic-value\">{formattedValue}</div>\n </React.Fragment>\n );\n statisticElements.push(statisticElement);\n }\n }\n const rowCountLabel = model.hasExpandableRows\n ? 'Expanded Rows'\n : 'Number of Rows';\n const formattedRowCount = model.displayString(numRows, 'long');\n const columnIndex = model.getColumnIndexByName(column.name);\n return (\n <div className=\"column-statistics\">\n <div className=\"column-statistics-title\">\n {column.name}\n <span className=\"column-statistics-type\"> ({columnType})</span>\n <Button\n kind=\"ghost\"\n className=\"column-statistics-copy\"\n icon={copied ? vsPassFilled : vsCopy}\n onClick={() => {\n ContextActionUtils.copyToClipboard(column.name)\n .then(this.handleCopyHeader)\n .catch(e => log.error('Unable to column name', e));\n }}\n tooltip={copied ? 'Copied text' : 'Copy column name'}\n />\n </div>\n {description && (\n <div className=\"column-statistics-description\">{description}</div>\n )}\n {!model.isColumnMovable(columnIndex) && (\n <div className=\"column-statistics-status\">\n <FontAwesomeIcon\n icon={model.isColumnFrozen(columnIndex) ? dhFreeze : vsLock}\n className=\"mr-1\"\n />\n {model.isColumnFrozen(columnIndex) ? 'Frozen' : 'Not movable'}\n </div>\n )}\n <div className=\"column-statistics-grid\">\n {statistics == null && (\n <>\n <div className=\"column-statistic-operation\">{rowCountLabel}</div>\n <div className=\"column-statistic-value\">{formattedRowCount}</div>\n </>\n )}\n\n {statisticElements}\n </div>\n {showGenerateStatistics && (\n <button\n type=\"button\"\n className=\"btn btn-link px-0\"\n onClick={this.handleGenerateStatistics}\n >\n Generate Stats\n </button>\n )}\n {error && <div className=\"error-message\">{`${error}`}</div>}\n {statistics && !loading && (\n <button\n type=\"button\"\n className=\"btn btn-link px-0\"\n onClick={this.handleGenerateStatistics}\n >\n <FontAwesomeIcon icon={dhRefresh} className=\"mr-1\" />\n Refresh\n </button>\n )}\n {loading && (\n <div className=\"column-statistics-loading\">\n <LoadingSpinner className=\"mr-2\" />\n Calculating Stats...\n </div>\n )}\n </div>\n );\n }\n}\n\nColumnStatistics.propTypes = {\n model: PropTypes.instanceOf(IrisGridModel).isRequired,\n column: APIPropTypes.Column.isRequired,\n onStatistics: PropTypes.func.isRequired,\n};\n\nexport default ColumnStatistics;\n"],"file":"ColumnStatistics.js"}
|
package/dist/IrisGrid.css
CHANGED
package/dist/IrisGrid.css.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../src/IrisGridTheme.module.scss","../../components/scss/bootstrap_overrides.scss","../src/IrisGrid.scss","../../../node_modules/bootstrap/scss/_variables.scss"],"names":[],"mappings":"AAAA;AAOA;EACE,SCmBS;EDlBT;EACA,WCCc;EDAd,cCEe;EDDf,wBCeS;EDdT,8BCQS;EDPT,qCCFc;EDGd,uBCPO;EDQP,0BCoDW;EDnDX,yBCUS;EDTT;EACA;EACA,iBAjBgB;EAkBhB,yBCdK;EDeL,gCCKS;EDJT;EACA;EAEA;EACA,qBCFS;EDGT,yBCLS;EDMT,yBCHS;EDIT,kBCRS;EDST,wBCVS;EDWT,yBCZS;EDcT,YCrBe;EDsBf,uBC7BM;ED8BN,uBCjCI;EDkCJ,mBChCO;EDiCP,YCjCO;
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../src/IrisGridTheme.module.scss","../../components/scss/bootstrap_overrides.scss","../src/IrisGrid.scss","../../../node_modules/bootstrap/scss/_variables.scss"],"names":[],"mappings":"AAAA;AAOA;EACE,SCmBS;EDlBT;EACA,WCCc;EDAd,cCEe;EDDf,wBCeS;EDdT,8BCQS;EDPT,qCCFc;EDGd,uBCPO;EDQP,0BCoDW;EDnDX,yBCUS;EDTT;EACA;EACA,iBAjBgB;EAkBhB,yBCdK;EDeL,gCCKS;EDJT;EACA;EAEA;EACA,qBCFS;EDGT,yBCLS;EDMT,yBCHS;EDIT,kBCRS;EDST,wBCVS;EDWT,yBCZS;EDcT,YCrBe;EDsBf,uBC7BM;ED8BN,uBCjCI;EDkCJ,mBChCO;EDiCP,YCjCO;EDkCP;EACA,kBCrCI;EDwCJ;EAKA,yBCpCc;EDqCd,wBCxBS;EDyBT;EAKA;EAKA,4BCvCS;EDwCT,wBC1DI;ED2DJ,mBClDc;EDoDd,aC1CS;ED2CT,8BCzDO;ED0DP,iCCEW;EDDX;EACA,iBC9CS;ED+CT,mBCjDS;EDkDT,yBCpDS;EDqDT,8BCzDe;ED2Df,yBClDS;EDmDT,gCClDS;EDmDT,8BCnDS;EDoDT,8BCjDS;;;ACXX;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,OA/BsB;EAgCtB,WAhCsB;EAiCtB,YDdO;ECeP;EACA;EAGA;EACA;;AAEA;AAAA;AAAA;EAGE,YDzBK;;AC4BP;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA,eCiEK;;AD9DP;EACE;EACA;EACA;EAEA;EACA;EACA;EACA,MA9Ea;EA+Eb;EACA;;AAEA;EACE;EACA;EACA;EACA;EAKA;EACA;EACA;EACA;;AAGA;EACE;;AAIF;EACE;;AAIJ;EACE,ODnGW;ECoGX,YDxFK;;AC0FL;EACE,YAxGU;;AA2GZ;EACE,ODrHF;;ACsHE;EACE,YA5GgB;;;AAmH1B;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,ODlIS;ECmIT;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA,YDxCW;ECyCX;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;AACA;EACE;EACA;;AAEA;EACE;EACA;;AAEF;EACE;EACA;;AAKA;EACE;;AAEF;EACE;;AAGJ;EACE,OD9KK;;AC+KL;EACE,OD5LQ;;;ACkMhB;EACE,YDvLS;;ACyLP;EACE;EACA;EACA,YD5LK;EC6LL;EACA;;AAEF;EACE,cDjMK;;;ACsMX;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EACE;;AAEF;EACE;EAEA,YApOuB;;AAsOzB;EACE,YAvOuB;;AAyOzB;EACE,YA1OuB;EA2OvB;;AAEF;EAEE;;AAGF;EACE;;AAEF;EACE;EAEA,WA5PsB;;AA8PxB;EACE,WA/PsB;;AAiQxB;EACE,WAlQsB;EAmQtB;;AAEF;EAEE;;;AAIJ;EACE,kBDzNa;;AC2Nb;EAEE,kBDzQY","file":"IrisGrid.css"}
|
package/dist/IrisGrid.d.ts
CHANGED
|
@@ -450,6 +450,7 @@ export class IrisGrid extends React.Component<any, any, any> {
|
|
|
450
450
|
advancedFilters: any;
|
|
451
451
|
}): void;
|
|
452
452
|
updateFormatterSettings(settings: any, forceUpdate?: boolean): void;
|
|
453
|
+
getAlwaysFetchColumns: ((alwaysFetchColumns: any, columns: any, floatingLeftColumnCount: any, floatingRightColumnCount: any) => any[]) & memoize.Memoized<(alwaysFetchColumns: any, columns: any, floatingLeftColumnCount: any, floatingRightColumnCount: any) => any[]>;
|
|
453
454
|
updateFormatter(updatedFormats: any, forceUpdate?: boolean): void;
|
|
454
455
|
initFormatter(): void;
|
|
455
456
|
initState(): void;
|
package/dist/IrisGrid.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IrisGrid.d.ts","sourceRoot":"","sources":["../src/IrisGrid.jsx"],"names":[],"mappings":"AAgHA;IACE,2BAAyB;IAEzB,2BAAyB;IAEzB,mCAAiC;IAEjC,wBAiQC;
|
|
1
|
+
{"version":3,"file":"IrisGrid.d.ts","sourceRoot":"","sources":["../src/IrisGrid.jsx"],"names":[],"mappings":"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"}
|
package/dist/IrisGrid.js
CHANGED
|
@@ -2,7 +2,7 @@ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try
|
|
|
2
2
|
|
|
3
3
|
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
4
4
|
|
|
5
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
|
|
5
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
6
6
|
|
|
7
7
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
|
|
8
8
|
|
|
@@ -171,7 +171,7 @@ export class IrisGrid extends Component {
|
|
|
171
171
|
|
|
172
172
|
_defineProperty(this, "getCachedHiddenColumns", memoize(hiddenColumns => hiddenColumns, {
|
|
173
173
|
max: 1,
|
|
174
|
-
normalizer:
|
|
174
|
+
normalizer: _ref2 => {
|
|
175
175
|
var [hiddenColumns] = _ref2;
|
|
176
176
|
return hiddenColumns.join();
|
|
177
177
|
}
|
|
@@ -179,7 +179,7 @@ export class IrisGrid extends Component {
|
|
|
179
179
|
|
|
180
180
|
_defineProperty(this, "getAggregationMap", memoize((columns, aggregations) => {
|
|
181
181
|
var aggregationMap = {};
|
|
182
|
-
aggregations.forEach(
|
|
182
|
+
aggregations.forEach(_ref3 => {
|
|
183
183
|
var {
|
|
184
184
|
operation,
|
|
185
185
|
selected,
|
|
@@ -192,7 +192,7 @@ export class IrisGrid extends Component {
|
|
|
192
192
|
|
|
193
193
|
_defineProperty(this, "getOperationMap", memoize((columns, aggregations) => {
|
|
194
194
|
var operationMap = {};
|
|
195
|
-
aggregations.filter(a => !AggregationUtils.isRollupOperation(a.operation)).forEach(
|
|
195
|
+
aggregations.filter(a => !AggregationUtils.isRollupOperation(a.operation)).forEach(_ref4 => {
|
|
196
196
|
var {
|
|
197
197
|
operation,
|
|
198
198
|
selected,
|
|
@@ -258,6 +258,22 @@ export class IrisGrid extends Component {
|
|
|
258
258
|
max: 1
|
|
259
259
|
}));
|
|
260
260
|
|
|
261
|
+
_defineProperty(this, "getAlwaysFetchColumns", memoize((alwaysFetchColumns, columns, floatingLeftColumnCount, floatingRightColumnCount) => {
|
|
262
|
+
var floatingLeftColumns = [];
|
|
263
|
+
var floatingRightColumns = [];
|
|
264
|
+
|
|
265
|
+
if (floatingLeftColumnCount) {
|
|
266
|
+
floatingLeftColumns = columns.slice(0, floatingLeftColumnCount).map(col => col.name);
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
if (floatingRightColumnCount) {
|
|
270
|
+
floatingRightColumns = columns.slice(-floatingRightColumnCount).map(col => col.name);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
var columnSet = new Set([...alwaysFetchColumns, ...floatingLeftColumns, ...floatingRightColumns]);
|
|
274
|
+
return [...columnSet];
|
|
275
|
+
}));
|
|
276
|
+
|
|
261
277
|
this.handleAdvancedFilterChange = this.handleAdvancedFilterChange.bind(this);
|
|
262
278
|
this.handleAdvancedFilterSortChange = this.handleAdvancedFilterSortChange.bind(this);
|
|
263
279
|
this.handleAdvancedFilterDone = this.handleAdvancedFilterDone.bind(this);
|
|
@@ -640,13 +656,13 @@ export class IrisGrid extends Component {
|
|
|
640
656
|
var newAdvancedFilters = replaceExisting ? new Map() : new Map(advancedFilters);
|
|
641
657
|
var newQuickFilters = replaceExisting ? new Map() : new Map(quickFilters);
|
|
642
658
|
var isChanged = replaceExisting && advancedFilters.size > 0;
|
|
643
|
-
inputFilters.forEach(
|
|
659
|
+
inputFilters.forEach(_ref5 => {
|
|
644
660
|
var {
|
|
645
661
|
name,
|
|
646
662
|
type,
|
|
647
663
|
value
|
|
648
664
|
} = _ref5;
|
|
649
|
-
var modelIndex = model.columns.findIndex(
|
|
665
|
+
var modelIndex = model.columns.findIndex(_ref6 => {
|
|
650
666
|
var {
|
|
651
667
|
name: columnName,
|
|
652
668
|
type: columnType
|
|
@@ -727,7 +743,7 @@ export class IrisGrid extends Component {
|
|
|
727
743
|
|
|
728
744
|
log.debug('Setting advanced filter', modelIndex, filter);
|
|
729
745
|
this.startLoading('Filtering...', true);
|
|
730
|
-
this.setState(
|
|
746
|
+
this.setState(_ref7 => {
|
|
731
747
|
var {
|
|
732
748
|
advancedFilters
|
|
733
749
|
} = _ref7;
|
|
@@ -758,7 +774,7 @@ export class IrisGrid extends Component {
|
|
|
758
774
|
setQuickFilter(modelIndex, filter, text) {
|
|
759
775
|
log.debug('Setting quick filter', modelIndex, filter, text);
|
|
760
776
|
this.startLoading('Filtering...', true);
|
|
761
|
-
this.setState(
|
|
777
|
+
this.setState(_ref8 => {
|
|
762
778
|
var {
|
|
763
779
|
quickFilters
|
|
764
780
|
} = _ref8;
|
|
@@ -819,7 +835,7 @@ export class IrisGrid extends Component {
|
|
|
819
835
|
|
|
820
836
|
removeColumnFilter(modelColumn) {
|
|
821
837
|
this.startLoading('Filtering...', true);
|
|
822
|
-
this.setState(
|
|
838
|
+
this.setState(_ref10 => {
|
|
823
839
|
var {
|
|
824
840
|
advancedFilters,
|
|
825
841
|
quickFilters
|
|
@@ -1706,7 +1722,7 @@ export class IrisGrid extends Component {
|
|
|
1706
1722
|
|
|
1707
1723
|
handleFilterBarChange(value) {
|
|
1708
1724
|
this.startLoading('Filtering...', true);
|
|
1709
|
-
this.setState(
|
|
1725
|
+
this.setState(_ref12 => {
|
|
1710
1726
|
var {
|
|
1711
1727
|
focusedFilterBarColumn,
|
|
1712
1728
|
quickFilters
|
|
@@ -1784,7 +1800,7 @@ export class IrisGrid extends Component {
|
|
|
1784
1800
|
}
|
|
1785
1801
|
|
|
1786
1802
|
handleMenuBack() {
|
|
1787
|
-
this.setState(
|
|
1803
|
+
this.setState(_ref13 => {
|
|
1788
1804
|
var {
|
|
1789
1805
|
openOptions
|
|
1790
1806
|
} = _ref13;
|
|
@@ -1797,7 +1813,7 @@ export class IrisGrid extends Component {
|
|
|
1797
1813
|
}
|
|
1798
1814
|
|
|
1799
1815
|
handleMenuSelect(option) {
|
|
1800
|
-
this.setState(
|
|
1816
|
+
this.setState(_ref14 => {
|
|
1801
1817
|
var {
|
|
1802
1818
|
openOptions
|
|
1803
1819
|
} = _ref14;
|
|
@@ -2047,7 +2063,7 @@ export class IrisGrid extends Component {
|
|
|
2047
2063
|
handleAggregationChange(aggregation) {
|
|
2048
2064
|
log.debug('handleAggregationChange', aggregation);
|
|
2049
2065
|
this.startLoading("Aggregating ".concat(aggregation.operation, "..."));
|
|
2050
|
-
this.setState(
|
|
2066
|
+
this.setState(_ref15 => {
|
|
2051
2067
|
var {
|
|
2052
2068
|
aggregationSettings
|
|
2053
2069
|
} = _ref15;
|
|
@@ -2816,7 +2832,7 @@ export class IrisGrid extends Component {
|
|
|
2816
2832
|
movedColumns: movedColumns,
|
|
2817
2833
|
customColumns: customColumns,
|
|
2818
2834
|
hiddenColumns: hiddenColumns,
|
|
2819
|
-
alwaysFetchColumns: alwaysFetchColumns,
|
|
2835
|
+
alwaysFetchColumns: this.getAlwaysFetchColumns(alwaysFetchColumns, model.columns, model.floatingLeftColumnCount, model.floatingRightColumnCount),
|
|
2820
2836
|
rollupConfig: this.getModelRollupConfig(model.originalColumns, rollupConfig, aggregationSettings),
|
|
2821
2837
|
totalsConfig: this.getModelTotalsConfig(model.columns, rollupConfig, aggregationSettings),
|
|
2822
2838
|
selectDistinctColumns: selectDistinctColumns,
|