@deephaven/dashboard-core-plugins 0.11.2-beta.9 → 0.11.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/controls/input-filter/InputFilter.d.ts.map +1 -1
- package/dist/controls/input-filter/InputFilter.js +6 -2
- package/dist/controls/input-filter/InputFilter.js.map +1 -1
- package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
- package/dist/panels/FilterSetManagerPanel.js +10 -2
- package/dist/panels/FilterSetManagerPanel.js.map +1 -1
- package/package.json +16 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InputFilter.d.ts","sourceRoot":"","sources":["../../../src/controls/input-filter/InputFilter.jsx"],"names":[],"mappings":";AAkBA;IACE,2BAAsC;IAEtC,wBAqBC;IA0CD,qCAQC;IAED,sCAYC;IAED,oCAMC;IAED,6BAGC;IAOD,sCAIC;IATD,2BAGC;IAQD,wCAKC;
|
|
1
|
+
{"version":3,"file":"InputFilter.d.ts","sourceRoot":"","sources":["../../../src/controls/input-filter/InputFilter.jsx"],"names":[],"mappings":";AAkBA;IACE,2BAAsC;IAEtC,wBAqBC;IA0CD,qCAQC;IAED,sCAYC;IAED,oCAMC;IAED,6BAGC;IAOD,sCAIC;IATD,2BAGC;IAQD,wCAKC;IAsBD,mBAIC;IAlIC,+BAAiC;IAqCnC,yGAYG;IAyDH,mBAKC;IAED,oBAEC;IAED;;;;;aAOC;CAsHF"}
|
|
@@ -193,11 +193,15 @@ class InputFilter extends Component {
|
|
|
193
193
|
name,
|
|
194
194
|
type
|
|
195
195
|
} : null;
|
|
196
|
-
|
|
196
|
+
var update = isValueShown === undefined ? {
|
|
197
|
+
column,
|
|
198
|
+
value
|
|
199
|
+
} : {
|
|
197
200
|
column,
|
|
198
201
|
value,
|
|
199
202
|
isValueShown
|
|
200
|
-
}
|
|
203
|
+
};
|
|
204
|
+
this.setState(update);
|
|
201
205
|
}
|
|
202
206
|
|
|
203
207
|
sendUpdate() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/controls/input-filter/InputFilter.jsx"],"names":["React","Component","PropTypes","CardFlip","FontAwesomeIcon","vsGear","APIPropTypes","memoizee","debounce","Log","log","module","UPDATE_DEBOUNCE","InputFilter","constructor","props","columns","index","name","type","length","shortType","substring","lastIndexOf","handleColumnChange","bind","handleInputKeyPress","handleValueChange","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","sendUpdate","inputRef","createRef","column","isValueShown","value","state","selectedColumn","componentDidUpdate","prevProps","prevState","propColumn","setState","focusInput","componentWillUnmount","flush","event","target","debug2","key","preventDefault","stopPropagation","current","select","focus","clearFilter","setFilterState","onChange","render","inputLength","PLACEHOLDER","titleLabel","columnIndex","findIndex","item","getItemLabel","map","columnItem","width","propTypes","arrayOf","Column","isRequired","bool","string","func","defaultProps"],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n// background click is just a convience method, not an actual a11y issue\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { CardFlip } from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGear } from '@deephaven/icons';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport memoizee from 'memoizee';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport './InputFilter.scss';\n\nconst log = Log.module('InputFilter');\nconst UPDATE_DEBOUNCE = 150;\n\nclass InputFilter extends Component {\n static PLACEHOLDER = 'Enter value...';\n\n constructor(props) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleInputKeyPress = this.handleInputKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n this.sendUpdate = debounce(this.sendUpdate.bind(this), UPDATE_DEBOUNCE);\n\n this.inputRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n selectedColumn: column,\n value,\n isValueShown,\n };\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { column: propColumn } = this.props;\n const { column, value, isValueShown } = this.state;\n\n if (propColumn !== prevProps.column) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ column: propColumn, selectedColumn: propColumn });\n }\n\n if (isValueShown && isValueShown !== prevState.isValueShown) {\n this.focusInput();\n }\n\n if (\n column !== prevState.column ||\n value !== prevState.value ||\n isValueShown !== prevState.isValueShown\n ) {\n this.sendUpdate();\n }\n }\n\n componentWillUnmount() {\n this.sendUpdate.flush();\n }\n\n getItemLabel = memoizee((columns, index) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n });\n\n handleColumnChange(event) {\n const { columns } = this.props;\n const { value } = event.target;\n const selectedColumn = columns[value];\n\n log.debug2('handleColumnChange', selectedColumn);\n\n this.setState({ selectedColumn, value: null });\n }\n\n handleInputKeyPress(event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n this.setState(\n ({ value }) => (value == null ? { value: '' } : null),\n () => {\n this.sendUpdate();\n this.sendUpdate.flush();\n }\n );\n }\n }\n\n handleValueChange(event) {\n const { value } = event.target;\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel() {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: true });\n }\n\n handleSettingsSave() {\n const { selectedColumn } = this.state;\n this.setState({ column: selectedColumn, isValueShown: true });\n }\n\n handleSettingsClick(event) {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n event.stopPropagation();\n }\n\n handleBackgroundClick(event) {\n // allow clicking anywhere in the background to select and focus the input\n if (event.target !== this.inputRef.current) {\n this.focusInput();\n }\n }\n\n focusInput() {\n if (this.inputRef.current !== null) {\n this.inputRef.current.select();\n this.inputRef.current.focus();\n }\n }\n\n clearFilter() {\n this.setState({ value: '' });\n }\n\n setFilterState({ name, type, value, isValueShown }) {\n const column = name != null && type != null ? { name, type } : null;\n this.setState({ column, value, isValueShown });\n }\n\n sendUpdate() {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value });\n }\n\n render() {\n const { columns } = this.props;\n const { column, isValueShown, selectedColumn, value } = this.state;\n const inputLength =\n value == null || value.length === 0\n ? InputFilter.PLACEHOLDER.length\n : value.length;\n let titleLabel = null;\n if (column != null) {\n const columnIndex = columns.findIndex(\n item => item.name === column.name && item.type === column.type\n );\n titleLabel =\n columnIndex >= 0\n ? this.getItemLabel(columns, columnIndex)\n : column.name;\n }\n\n return (\n <CardFlip\n className=\"input-filter fill-parent-absolute\"\n isFlipped={isValueShown}\n >\n <div className=\"input-filter-settings-card\">\n <div className=\"input-filter-settings-content\">\n <div className=\"input-filter-settings-grid\">\n <label>Filter Column</label>\n <select\n value={columns.findIndex(\n item =>\n item.name === selectedColumn?.name &&\n item.type === selectedColumn?.type\n )}\n className=\"custom-select\"\n onChange={this.handleColumnChange}\n >\n {columns.map((columnItem, index) => (\n <option\n key={`${columnItem.name}/${columnItem.type}`}\n value={index}\n >\n {this.getItemLabel(columns, index)}\n </option>\n ))}\n {columns.length === 0 && (\n <option value=\"-1\" disabled>\n No Available Columns\n </option>\n )}\n </select>\n <div className=\"text-muted small\">\n Input filter control will apply its filter to all columns\n matching this name in this dashboard.\n </div>\n </div>\n <div className=\"input-filter-settings-buttons\">\n <button\n type=\"button\"\n className=\"btn btn-outline-primary\"\n onClick={this.handleSettingsCancel}\n disabled={column == null}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"btn btn-primary ml-2\"\n onClick={this.handleSettingsSave}\n disabled={selectedColumn == null}\n >\n Save\n </button>\n </div>\n </div>\n </div>\n\n <div\n className=\"input-filter-value-card\"\n onClick={this.handleBackgroundClick}\n >\n <div className=\"input-filter-column\">\n <div className=\"input-filter-column-title\">{titleLabel} Filter</div>\n </div>\n <div className=\"d-flex justify-content-center align-items-center h-100 w-100\">\n <div className=\"input-filter-value-input d-flex flex-column justify-content-center\">\n <input\n type=\"text\"\n ref={this.inputRef}\n placeholder={InputFilter.PLACEHOLDER}\n value={value ?? ''}\n onChange={this.handleValueChange}\n onKeyPress={this.handleInputKeyPress}\n style={{ width: `${inputLength + 3}ch` }}\n spellCheck=\"false\"\n />\n </div>\n </div>\n <div className=\"input-filter-menu\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon m-2 px-2\"\n onClick={this.handleSettingsClick}\n >\n <FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />\n </button>\n </div>\n </div>\n </CardFlip>\n );\n }\n}\n\nInputFilter.propTypes = {\n columns: PropTypes.arrayOf(APIPropTypes.Column).isRequired,\n column: APIPropTypes.Column,\n isValueShown: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n};\n\nInputFilter.defaultProps = {\n column: null,\n isValueShown: false,\n value: null,\n};\n\nexport default InputFilter;\n"],"file":"InputFilter.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/controls/input-filter/InputFilter.jsx"],"names":["React","Component","PropTypes","CardFlip","FontAwesomeIcon","vsGear","APIPropTypes","memoizee","debounce","Log","log","module","UPDATE_DEBOUNCE","InputFilter","constructor","props","columns","index","name","type","length","shortType","substring","lastIndexOf","handleColumnChange","bind","handleInputKeyPress","handleValueChange","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","sendUpdate","inputRef","createRef","column","isValueShown","value","state","selectedColumn","componentDidUpdate","prevProps","prevState","propColumn","setState","focusInput","componentWillUnmount","flush","event","target","debug2","key","preventDefault","stopPropagation","current","select","focus","clearFilter","setFilterState","update","undefined","onChange","render","inputLength","PLACEHOLDER","titleLabel","columnIndex","findIndex","item","getItemLabel","map","columnItem","width","propTypes","arrayOf","Column","isRequired","bool","string","func","defaultProps"],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n// background click is just a convience method, not an actual a11y issue\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { CardFlip } from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGear } from '@deephaven/icons';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport memoizee from 'memoizee';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport './InputFilter.scss';\n\nconst log = Log.module('InputFilter');\nconst UPDATE_DEBOUNCE = 150;\n\nclass InputFilter extends Component {\n static PLACEHOLDER = 'Enter value...';\n\n constructor(props) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleInputKeyPress = this.handleInputKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n this.sendUpdate = debounce(this.sendUpdate.bind(this), UPDATE_DEBOUNCE);\n\n this.inputRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n selectedColumn: column,\n value,\n isValueShown,\n };\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { column: propColumn } = this.props;\n const { column, value, isValueShown } = this.state;\n\n if (propColumn !== prevProps.column) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ column: propColumn, selectedColumn: propColumn });\n }\n\n if (isValueShown && isValueShown !== prevState.isValueShown) {\n this.focusInput();\n }\n\n if (\n column !== prevState.column ||\n value !== prevState.value ||\n isValueShown !== prevState.isValueShown\n ) {\n this.sendUpdate();\n }\n }\n\n componentWillUnmount() {\n this.sendUpdate.flush();\n }\n\n getItemLabel = memoizee((columns, index) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n });\n\n handleColumnChange(event) {\n const { columns } = this.props;\n const { value } = event.target;\n const selectedColumn = columns[value];\n\n log.debug2('handleColumnChange', selectedColumn);\n\n this.setState({ selectedColumn, value: null });\n }\n\n handleInputKeyPress(event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n this.setState(\n ({ value }) => (value == null ? { value: '' } : null),\n () => {\n this.sendUpdate();\n this.sendUpdate.flush();\n }\n );\n }\n }\n\n handleValueChange(event) {\n const { value } = event.target;\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel() {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: true });\n }\n\n handleSettingsSave() {\n const { selectedColumn } = this.state;\n this.setState({ column: selectedColumn, isValueShown: true });\n }\n\n handleSettingsClick(event) {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n event.stopPropagation();\n }\n\n handleBackgroundClick(event) {\n // allow clicking anywhere in the background to select and focus the input\n if (event.target !== this.inputRef.current) {\n this.focusInput();\n }\n }\n\n focusInput() {\n if (this.inputRef.current !== null) {\n this.inputRef.current.select();\n this.inputRef.current.focus();\n }\n }\n\n clearFilter() {\n this.setState({ value: '' });\n }\n\n setFilterState({ name, type, value, isValueShown }) {\n const column = name != null && type != null ? { name, type } : null;\n const update =\n isValueShown === undefined\n ? { column, value }\n : { column, value, isValueShown };\n this.setState(update);\n }\n\n sendUpdate() {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value });\n }\n\n render() {\n const { columns } = this.props;\n const { column, isValueShown, selectedColumn, value } = this.state;\n const inputLength =\n value == null || value.length === 0\n ? InputFilter.PLACEHOLDER.length\n : value.length;\n let titleLabel = null;\n if (column != null) {\n const columnIndex = columns.findIndex(\n item => item.name === column.name && item.type === column.type\n );\n titleLabel =\n columnIndex >= 0\n ? this.getItemLabel(columns, columnIndex)\n : column.name;\n }\n\n return (\n <CardFlip\n className=\"input-filter fill-parent-absolute\"\n isFlipped={isValueShown}\n >\n <div className=\"input-filter-settings-card\">\n <div className=\"input-filter-settings-content\">\n <div className=\"input-filter-settings-grid\">\n <label>Filter Column</label>\n <select\n value={columns.findIndex(\n item =>\n item.name === selectedColumn?.name &&\n item.type === selectedColumn?.type\n )}\n className=\"custom-select\"\n onChange={this.handleColumnChange}\n >\n {columns.map((columnItem, index) => (\n <option\n key={`${columnItem.name}/${columnItem.type}`}\n value={index}\n >\n {this.getItemLabel(columns, index)}\n </option>\n ))}\n {columns.length === 0 && (\n <option value=\"-1\" disabled>\n No Available Columns\n </option>\n )}\n </select>\n <div className=\"text-muted small\">\n Input filter control will apply its filter to all columns\n matching this name in this dashboard.\n </div>\n </div>\n <div className=\"input-filter-settings-buttons\">\n <button\n type=\"button\"\n className=\"btn btn-outline-primary\"\n onClick={this.handleSettingsCancel}\n disabled={column == null}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"btn btn-primary ml-2\"\n onClick={this.handleSettingsSave}\n disabled={selectedColumn == null}\n >\n Save\n </button>\n </div>\n </div>\n </div>\n\n <div\n className=\"input-filter-value-card\"\n onClick={this.handleBackgroundClick}\n >\n <div className=\"input-filter-column\">\n <div className=\"input-filter-column-title\">{titleLabel} Filter</div>\n </div>\n <div className=\"d-flex justify-content-center align-items-center h-100 w-100\">\n <div className=\"input-filter-value-input d-flex flex-column justify-content-center\">\n <input\n type=\"text\"\n ref={this.inputRef}\n placeholder={InputFilter.PLACEHOLDER}\n value={value ?? ''}\n onChange={this.handleValueChange}\n onKeyPress={this.handleInputKeyPress}\n style={{ width: `${inputLength + 3}ch` }}\n spellCheck=\"false\"\n />\n </div>\n </div>\n <div className=\"input-filter-menu\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon m-2 px-2\"\n onClick={this.handleSettingsClick}\n >\n <FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />\n </button>\n </div>\n </div>\n </CardFlip>\n );\n }\n}\n\nInputFilter.propTypes = {\n columns: PropTypes.arrayOf(APIPropTypes.Column).isRequired,\n column: APIPropTypes.Column,\n isValueShown: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n};\n\nInputFilter.defaultProps = {\n column: null,\n isValueShown: false,\n value: null,\n};\n\nexport default InputFilter;\n"],"file":"InputFilter.js"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterSetManagerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FilterSetManagerPanel.jsx"],"names":[],"mappings":";;AA0BA;IACE,yBAA2C;IAE3C,uEAOC;IAED,uEAUC;IAED,wBAoBC;IA2FD;;;aAIC;IAED,wCAsBC;IAED,gDAMC;IAxCD,8BAEC;IAtFD,wBAkDC;IAED;;;aA8BC;IA4CD,yBAQC;IAED,qDAsBC;IAGD,
|
|
1
|
+
{"version":3,"file":"FilterSetManagerPanel.d.ts","sourceRoot":"","sources":["../../src/panels/FilterSetManagerPanel.jsx"],"names":[],"mappings":";;AA0BA;IACE,yBAA2C;IAE3C,uEAOC;IAED,uEAUC;IAED,wBAoBC;IA2FD;;;aAIC;IAED,wCAsBC;IAED,gDAMC;IAxCD,8BAEC;IAtFD,wBAkDC;IAED;;;aA8BC;IA4CD,yBAQC;IAED,qDAsBC;IAGD,sDAMC;CA4BF"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
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; }
|
|
2
|
+
|
|
3
|
+
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; }
|
|
4
|
+
|
|
1
5
|
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
2
6
|
|
|
3
7
|
import React, { Component } from 'react';
|
|
@@ -285,8 +289,12 @@ class FilterSetManagerPanel extends Component {
|
|
|
285
289
|
|
|
286
290
|
|
|
287
291
|
restoreInputFilterState(panel, state) {
|
|
288
|
-
|
|
289
|
-
|
|
292
|
+
var inputFilterState = _objectSpread({}, state); // Restore state but don't flip the card
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
delete inputFilterState.isValueShown;
|
|
296
|
+
log.debug('restoreInputFilterState', panel, inputFilterState);
|
|
297
|
+
panel.setPanelState(inputFilterState);
|
|
290
298
|
}
|
|
291
299
|
|
|
292
300
|
render() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/panels/FilterSetManagerPanel.jsx"],"names":["React","Component","PropTypes","connect","getOpenedPanelMapForDashboard","GLPropTypes","LayoutUtils","IrisGridUtils","Log","getFilterSetsForDashboard","getInputFiltersForDashboard","getTableMapForDashboard","setDashboardFilterSets","setDashboardFilterSetsAction","Panel","FilterSetManager","IrisGridPanel","InputFilterPanel","DropdownFilterPanel","log","module","FilterSetManagerPanel","changeFilterColumnNamesToIndexes","table","configs","map","name","filter","index","columns","findIndex","column","config","changeFilterIndexesToColumnNames","length","constructor","props","handleChange","bind","handleFilterApply","handleSetsUpdate","handleGetFilterState","panelState","filterSets","selectedId","id","undefined","isValueShown","state","getFilterState","dashboardOpenedPanelMap","panels","keys","forEach","key","panel","get","componentName","getComponentNameFromPanel","panelId","getIdFromPanel","debug","glContainer","error","getComponentConfigFromContainer","getPanelComponentState","getComponentName","getIrisGridPanelFilters","push","type","value","panelTableMap","irisGridState","advancedFilters","indexedAdvancedFilters","quickFilters","indexedQuickFilters","dehydratedAdvancedFilters","dehydrateAdvancedFilters","dehydratedQuickFilters","dehydrateQuickFilters","setState","updatePanelState","filterSet","has","restoreIrisGridFilters","restoreInputFilterState","modifiedFilterSets","localDashboardId","savedAdvancedFilters","savedQuickFilters","setFilters","setPanelState","render","glEventHub","propTypes","Container","isRequired","EventHub","shape","string","bool","arrayOf","title","instanceOf","Map","func","defaultProps","mapStateToProps","ownProps","dashboardInputFilters","forwardRef"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport {\n getOpenedPanelMapForDashboard,\n GLPropTypes,\n LayoutUtils,\n} from '@deephaven/dashboard';\nimport { IrisGridUtils } from '@deephaven/iris-grid';\nimport Log from '@deephaven/log';\nimport {\n getFilterSetsForDashboard,\n getInputFiltersForDashboard,\n getTableMapForDashboard,\n setDashboardFilterSets as setDashboardFilterSetsAction,\n} from '../redux';\nimport Panel from './Panel';\nimport FilterSetManager from './FilterSetManager';\nimport IrisGridPanel from './IrisGridPanel';\nimport InputFilterPanel from './InputFilterPanel';\nimport DropdownFilterPanel from './DropdownFilterPanel';\n\nimport './FilterSetManagerPanel.scss';\n\nconst log = Log.module('FilterSetManagerPanel');\n\nclass FilterSetManagerPanel extends Component {\n static COMPONENT = 'FilterSetManagerPanel';\n\n static changeFilterColumnNamesToIndexes(table, configs) {\n return configs\n .map(({ name, filter }) => {\n const index = table.columns.findIndex(column => column.name === name);\n return index < 0 ? null : [index, filter];\n })\n .filter(config => config != null);\n }\n\n static changeFilterIndexesToColumnNames(table, configs) {\n return configs\n .map(([index, filter]) => {\n if (index >= table.columns.length) {\n return null;\n }\n const { name } = table.columns[index];\n return { name, filter };\n })\n .filter(config => config != null);\n }\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.handleFilterApply = this.handleFilterApply.bind(this);\n this.handleSetsUpdate = this.handleSetsUpdate.bind(this);\n this.handleGetFilterState = this.handleGetFilterState.bind(this);\n\n const { panelState, filterSets } = props;\n const {\n selectedId = filterSets.length > 0 ? filterSets[0].id : undefined,\n isValueShown = false,\n } = panelState ?? {};\n\n this.state = {\n selectedId,\n isValueShown,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n // Collect all filter values for each dashboard panel\n getFilterState() {\n const { dashboardOpenedPanelMap } = this.props;\n const panels = [];\n [...dashboardOpenedPanelMap.keys()].forEach(key => {\n const panel = dashboardOpenedPanelMap.get(key);\n const componentName = LayoutUtils.getComponentNameFromPanel(panel);\n const panelId = LayoutUtils.getIdFromPanel(panel);\n log.debug('Panel:', panel, componentName);\n\n const { glContainer = null } = panel.props;\n if (glContainer == null) {\n log.error('Could not get panel container', panel);\n return;\n }\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n if (config == null) {\n log.error('Could not get component config from container', glContainer);\n return;\n }\n const panelState = LayoutUtils.getPanelComponentState(config);\n if (panelState == null) {\n log.debug(`Panel state is null ${panelId}`);\n return;\n }\n switch (componentName) {\n case LayoutUtils.getComponentName(IrisGridPanel): {\n const state = this.getIrisGridPanelFilters(panelId, panelState);\n if (state != null) {\n panels.push({\n panelId,\n type: componentName,\n state,\n });\n }\n break;\n }\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel): {\n const { isValueShown, name, type, value } = panelState;\n panels.push({\n panelId,\n type: componentName,\n state: { isValueShown, name, type, value },\n });\n break;\n }\n default:\n }\n });\n return panels;\n }\n\n getIrisGridPanelFilters(panelId, panelState) {\n const { panelTableMap } = this.props;\n const table = panelTableMap.get(panelId);\n if (table == null) {\n log.error(`Unable to get table for panel ${panelId}.`);\n return null;\n }\n // IrisGridUtils.hydrate uses numeric indexes for columns\n // Change indexes to column names to make it work for proxy models\n const { irisGridState = null } = panelState;\n const {\n advancedFilters: indexedAdvancedFilters = [],\n quickFilters: indexedQuickFilters = [],\n } = irisGridState ?? {};\n const dehydratedAdvancedFilters = IrisGridUtils.dehydrateAdvancedFilters(\n table.columns,\n indexedAdvancedFilters\n );\n const advancedFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n dehydratedAdvancedFilters\n );\n const dehydratedQuickFilters = IrisGridUtils.dehydrateQuickFilters(\n indexedQuickFilters\n );\n const quickFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n dehydratedQuickFilters\n );\n return { advancedFilters, quickFilters };\n }\n\n handleGetFilterState() {\n return this.getFilterState();\n }\n\n handleChange({ isValueShown, selectedId }) {\n log.debug('handleChange', isValueShown, selectedId);\n this.setState({ isValueShown, selectedId });\n this.updatePanelState();\n }\n\n handleFilterApply(filterSet) {\n const { dashboardOpenedPanelMap } = this.props;\n const { panels } = filterSet;\n log.debug(`Apply filters from filter set`, filterSet);\n panels.forEach(({ panelId, type, state }) => {\n if (!dashboardOpenedPanelMap.has(panelId)) {\n log.debug('Ignore closed panel', panelId);\n return;\n }\n log.debug('Apply panel filters', panelId, type, state);\n const panel = dashboardOpenedPanelMap.get(panelId);\n switch (type) {\n case LayoutUtils.getComponentName(IrisGridPanel):\n this.restoreIrisGridFilters(panel, state);\n break;\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel):\n this.restoreInputFilterState(panel, state);\n break;\n default:\n }\n });\n }\n\n handleSetsUpdate(modifiedFilterSets) {\n const { setDashboardFilterSets, localDashboardId } = this.props;\n log.debug('Saving updated sets', modifiedFilterSets);\n // Filter sets are stored in dashboard data instead of the panelState\n // because they need to be shared between the filter view manager panels\n setDashboardFilterSets(localDashboardId, [...modifiedFilterSets]);\n }\n\n updatePanelState() {\n this.setState(({ selectedId, isValueShown }) => ({\n // eslint-disable-next-line react/no-unused-state\n panelState: {\n selectedId,\n isValueShown,\n },\n }));\n }\n\n restoreIrisGridFilters(panel, state) {\n const {\n advancedFilters: savedAdvancedFilters,\n quickFilters: savedQuickFilters,\n } = state;\n const { panelTableMap } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const table = panelTableMap.get(panelId);\n if (table == null) {\n log.error(`Unable to get table for panel ${panelId}.`);\n return;\n }\n log.debug('restoreIrisGridFilters', panelId, state);\n const quickFilters = FilterSetManagerPanel.changeFilterColumnNamesToIndexes(\n table,\n savedQuickFilters\n );\n const advancedFilters = FilterSetManagerPanel.changeFilterColumnNamesToIndexes(\n table,\n savedAdvancedFilters\n );\n panel.setFilters({ quickFilters, advancedFilters });\n }\n\n // eslint-disable-next-line class-methods-use-this\n restoreInputFilterState(panel, state) {\n log.debug('restoreInputFilterState', panel, state);\n panel.setPanelState(state);\n }\n\n render() {\n const { glContainer, glEventHub, filterSets } = this.props;\n const { isValueShown, selectedId } = this.state;\n return (\n <Panel\n className=\"filter-set-manager-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n isClonable\n isRenamable\n >\n <div className=\"input-filter-container h-100 w-100 container\">\n <FilterSetManager\n onChange={this.handleChange}\n onApply={this.handleFilterApply}\n onUpdateSets={this.handleSetsUpdate}\n isValueShown={isValueShown}\n filterSets={filterSets}\n selectedId={selectedId}\n getFilterState={this.handleGetFilterState}\n />\n </div>\n </Panel>\n );\n }\n}\n\nFilterSetManagerPanel.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n panelState: PropTypes.shape({\n name: PropTypes.string,\n type: PropTypes.string,\n selectedId: PropTypes.string,\n isValueShown: PropTypes.bool,\n }),\n filterSets: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n panels: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n })\n ).isRequired,\n localDashboardId: PropTypes.string.isRequired,\n dashboardOpenedPanelMap: PropTypes.instanceOf(Map).isRequired,\n setDashboardFilterSets: PropTypes.func.isRequired,\n panelTableMap: PropTypes.instanceOf(Map).isRequired,\n};\n\nFilterSetManagerPanel.defaultProps = {\n panelState: null,\n};\n\nconst mapStateToProps = (state, ownProps) => {\n const { localDashboardId } = ownProps;\n return {\n filterSets: getFilterSetsForDashboard(state, localDashboardId),\n dashboardOpenedPanelMap: getOpenedPanelMapForDashboard(\n state,\n localDashboardId\n ),\n dashboardInputFilters: getInputFiltersForDashboard(state, localDashboardId),\n panelTableMap: getTableMapForDashboard(state, localDashboardId),\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n setDashboardFilterSets: setDashboardFilterSetsAction,\n },\n null,\n { forwardRef: true }\n)(FilterSetManagerPanel);\n"],"file":"FilterSetManagerPanel.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/panels/FilterSetManagerPanel.jsx"],"names":["React","Component","PropTypes","connect","getOpenedPanelMapForDashboard","GLPropTypes","LayoutUtils","IrisGridUtils","Log","getFilterSetsForDashboard","getInputFiltersForDashboard","getTableMapForDashboard","setDashboardFilterSets","setDashboardFilterSetsAction","Panel","FilterSetManager","IrisGridPanel","InputFilterPanel","DropdownFilterPanel","log","module","FilterSetManagerPanel","changeFilterColumnNamesToIndexes","table","configs","map","name","filter","index","columns","findIndex","column","config","changeFilterIndexesToColumnNames","length","constructor","props","handleChange","bind","handleFilterApply","handleSetsUpdate","handleGetFilterState","panelState","filterSets","selectedId","id","undefined","isValueShown","state","getFilterState","dashboardOpenedPanelMap","panels","keys","forEach","key","panel","get","componentName","getComponentNameFromPanel","panelId","getIdFromPanel","debug","glContainer","error","getComponentConfigFromContainer","getPanelComponentState","getComponentName","getIrisGridPanelFilters","push","type","value","panelTableMap","irisGridState","advancedFilters","indexedAdvancedFilters","quickFilters","indexedQuickFilters","dehydratedAdvancedFilters","dehydrateAdvancedFilters","dehydratedQuickFilters","dehydrateQuickFilters","setState","updatePanelState","filterSet","has","restoreIrisGridFilters","restoreInputFilterState","modifiedFilterSets","localDashboardId","savedAdvancedFilters","savedQuickFilters","setFilters","inputFilterState","setPanelState","render","glEventHub","propTypes","Container","isRequired","EventHub","shape","string","bool","arrayOf","title","instanceOf","Map","func","defaultProps","mapStateToProps","ownProps","dashboardInputFilters","forwardRef"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport {\n getOpenedPanelMapForDashboard,\n GLPropTypes,\n LayoutUtils,\n} from '@deephaven/dashboard';\nimport { IrisGridUtils } from '@deephaven/iris-grid';\nimport Log from '@deephaven/log';\nimport {\n getFilterSetsForDashboard,\n getInputFiltersForDashboard,\n getTableMapForDashboard,\n setDashboardFilterSets as setDashboardFilterSetsAction,\n} from '../redux';\nimport Panel from './Panel';\nimport FilterSetManager from './FilterSetManager';\nimport IrisGridPanel from './IrisGridPanel';\nimport InputFilterPanel from './InputFilterPanel';\nimport DropdownFilterPanel from './DropdownFilterPanel';\n\nimport './FilterSetManagerPanel.scss';\n\nconst log = Log.module('FilterSetManagerPanel');\n\nclass FilterSetManagerPanel extends Component {\n static COMPONENT = 'FilterSetManagerPanel';\n\n static changeFilterColumnNamesToIndexes(table, configs) {\n return configs\n .map(({ name, filter }) => {\n const index = table.columns.findIndex(column => column.name === name);\n return index < 0 ? null : [index, filter];\n })\n .filter(config => config != null);\n }\n\n static changeFilterIndexesToColumnNames(table, configs) {\n return configs\n .map(([index, filter]) => {\n if (index >= table.columns.length) {\n return null;\n }\n const { name } = table.columns[index];\n return { name, filter };\n })\n .filter(config => config != null);\n }\n\n constructor(props) {\n super(props);\n\n this.handleChange = this.handleChange.bind(this);\n this.handleFilterApply = this.handleFilterApply.bind(this);\n this.handleSetsUpdate = this.handleSetsUpdate.bind(this);\n this.handleGetFilterState = this.handleGetFilterState.bind(this);\n\n const { panelState, filterSets } = props;\n const {\n selectedId = filterSets.length > 0 ? filterSets[0].id : undefined,\n isValueShown = false,\n } = panelState ?? {};\n\n this.state = {\n selectedId,\n isValueShown,\n // eslint-disable-next-line react/no-unused-state\n panelState, // Dehydrated panel state that can load this panel\n };\n }\n\n // Collect all filter values for each dashboard panel\n getFilterState() {\n const { dashboardOpenedPanelMap } = this.props;\n const panels = [];\n [...dashboardOpenedPanelMap.keys()].forEach(key => {\n const panel = dashboardOpenedPanelMap.get(key);\n const componentName = LayoutUtils.getComponentNameFromPanel(panel);\n const panelId = LayoutUtils.getIdFromPanel(panel);\n log.debug('Panel:', panel, componentName);\n\n const { glContainer = null } = panel.props;\n if (glContainer == null) {\n log.error('Could not get panel container', panel);\n return;\n }\n const config = LayoutUtils.getComponentConfigFromContainer(glContainer);\n if (config == null) {\n log.error('Could not get component config from container', glContainer);\n return;\n }\n const panelState = LayoutUtils.getPanelComponentState(config);\n if (panelState == null) {\n log.debug(`Panel state is null ${panelId}`);\n return;\n }\n switch (componentName) {\n case LayoutUtils.getComponentName(IrisGridPanel): {\n const state = this.getIrisGridPanelFilters(panelId, panelState);\n if (state != null) {\n panels.push({\n panelId,\n type: componentName,\n state,\n });\n }\n break;\n }\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel): {\n const { isValueShown, name, type, value } = panelState;\n panels.push({\n panelId,\n type: componentName,\n state: { isValueShown, name, type, value },\n });\n break;\n }\n default:\n }\n });\n return panels;\n }\n\n getIrisGridPanelFilters(panelId, panelState) {\n const { panelTableMap } = this.props;\n const table = panelTableMap.get(panelId);\n if (table == null) {\n log.error(`Unable to get table for panel ${panelId}.`);\n return null;\n }\n // IrisGridUtils.hydrate uses numeric indexes for columns\n // Change indexes to column names to make it work for proxy models\n const { irisGridState = null } = panelState;\n const {\n advancedFilters: indexedAdvancedFilters = [],\n quickFilters: indexedQuickFilters = [],\n } = irisGridState ?? {};\n const dehydratedAdvancedFilters = IrisGridUtils.dehydrateAdvancedFilters(\n table.columns,\n indexedAdvancedFilters\n );\n const advancedFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n dehydratedAdvancedFilters\n );\n const dehydratedQuickFilters = IrisGridUtils.dehydrateQuickFilters(\n indexedQuickFilters\n );\n const quickFilters = FilterSetManagerPanel.changeFilterIndexesToColumnNames(\n table,\n dehydratedQuickFilters\n );\n return { advancedFilters, quickFilters };\n }\n\n handleGetFilterState() {\n return this.getFilterState();\n }\n\n handleChange({ isValueShown, selectedId }) {\n log.debug('handleChange', isValueShown, selectedId);\n this.setState({ isValueShown, selectedId });\n this.updatePanelState();\n }\n\n handleFilterApply(filterSet) {\n const { dashboardOpenedPanelMap } = this.props;\n const { panels } = filterSet;\n log.debug(`Apply filters from filter set`, filterSet);\n panels.forEach(({ panelId, type, state }) => {\n if (!dashboardOpenedPanelMap.has(panelId)) {\n log.debug('Ignore closed panel', panelId);\n return;\n }\n log.debug('Apply panel filters', panelId, type, state);\n const panel = dashboardOpenedPanelMap.get(panelId);\n switch (type) {\n case LayoutUtils.getComponentName(IrisGridPanel):\n this.restoreIrisGridFilters(panel, state);\n break;\n case LayoutUtils.getComponentName(InputFilterPanel):\n case LayoutUtils.getComponentName(DropdownFilterPanel):\n this.restoreInputFilterState(panel, state);\n break;\n default:\n }\n });\n }\n\n handleSetsUpdate(modifiedFilterSets) {\n const { setDashboardFilterSets, localDashboardId } = this.props;\n log.debug('Saving updated sets', modifiedFilterSets);\n // Filter sets are stored in dashboard data instead of the panelState\n // because they need to be shared between the filter view manager panels\n setDashboardFilterSets(localDashboardId, [...modifiedFilterSets]);\n }\n\n updatePanelState() {\n this.setState(({ selectedId, isValueShown }) => ({\n // eslint-disable-next-line react/no-unused-state\n panelState: {\n selectedId,\n isValueShown,\n },\n }));\n }\n\n restoreIrisGridFilters(panel, state) {\n const {\n advancedFilters: savedAdvancedFilters,\n quickFilters: savedQuickFilters,\n } = state;\n const { panelTableMap } = this.props;\n const panelId = LayoutUtils.getIdFromPanel(panel);\n const table = panelTableMap.get(panelId);\n if (table == null) {\n log.error(`Unable to get table for panel ${panelId}.`);\n return;\n }\n log.debug('restoreIrisGridFilters', panelId, state);\n const quickFilters = FilterSetManagerPanel.changeFilterColumnNamesToIndexes(\n table,\n savedQuickFilters\n );\n const advancedFilters = FilterSetManagerPanel.changeFilterColumnNamesToIndexes(\n table,\n savedAdvancedFilters\n );\n panel.setFilters({ quickFilters, advancedFilters });\n }\n\n // eslint-disable-next-line class-methods-use-this\n restoreInputFilterState(panel, state) {\n const inputFilterState = { ...state };\n // Restore state but don't flip the card\n delete inputFilterState.isValueShown;\n log.debug('restoreInputFilterState', panel, inputFilterState);\n panel.setPanelState(inputFilterState);\n }\n\n render() {\n const { glContainer, glEventHub, filterSets } = this.props;\n const { isValueShown, selectedId } = this.state;\n return (\n <Panel\n className=\"filter-set-manager-panel\"\n componentPanel={this}\n glContainer={glContainer}\n glEventHub={glEventHub}\n isClonable\n isRenamable\n >\n <div className=\"input-filter-container h-100 w-100 container\">\n <FilterSetManager\n onChange={this.handleChange}\n onApply={this.handleFilterApply}\n onUpdateSets={this.handleSetsUpdate}\n isValueShown={isValueShown}\n filterSets={filterSets}\n selectedId={selectedId}\n getFilterState={this.handleGetFilterState}\n />\n </div>\n </Panel>\n );\n }\n}\n\nFilterSetManagerPanel.propTypes = {\n glContainer: GLPropTypes.Container.isRequired,\n glEventHub: GLPropTypes.EventHub.isRequired,\n panelState: PropTypes.shape({\n name: PropTypes.string,\n type: PropTypes.string,\n selectedId: PropTypes.string,\n isValueShown: PropTypes.bool,\n }),\n filterSets: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n panels: PropTypes.arrayOf(PropTypes.shape({})).isRequired,\n })\n ).isRequired,\n localDashboardId: PropTypes.string.isRequired,\n dashboardOpenedPanelMap: PropTypes.instanceOf(Map).isRequired,\n setDashboardFilterSets: PropTypes.func.isRequired,\n panelTableMap: PropTypes.instanceOf(Map).isRequired,\n};\n\nFilterSetManagerPanel.defaultProps = {\n panelState: null,\n};\n\nconst mapStateToProps = (state, ownProps) => {\n const { localDashboardId } = ownProps;\n return {\n filterSets: getFilterSetsForDashboard(state, localDashboardId),\n dashboardOpenedPanelMap: getOpenedPanelMapForDashboard(\n state,\n localDashboardId\n ),\n dashboardInputFilters: getInputFiltersForDashboard(state, localDashboardId),\n panelTableMap: getTableMapForDashboard(state, localDashboardId),\n };\n};\n\nexport default connect(\n mapStateToProps,\n {\n setDashboardFilterSets: setDashboardFilterSetsAction,\n },\n null,\n { forwardRef: true }\n)(FilterSetManagerPanel);\n"],"file":"FilterSetManagerPanel.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@deephaven/dashboard-core-plugins",
|
|
3
|
-
"version": "0.11.2
|
|
3
|
+
"version": "0.11.2",
|
|
4
4
|
"description": "Deephaven Dashboard Core Plugins",
|
|
5
5
|
"author": "Deephaven Data Labs LLC",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -30,15 +30,15 @@
|
|
|
30
30
|
"start": "cross-env NODE_ENV=development npm run watch"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@deephaven/chart": "^0.11.2
|
|
34
|
-
"@deephaven/console": "^0.11.2
|
|
35
|
-
"@deephaven/dashboard": "^0.11.2
|
|
36
|
-
"@deephaven/file-explorer": "^0.11.2
|
|
37
|
-
"@deephaven/golden-layout": "^0.11.2
|
|
38
|
-
"@deephaven/icons": "^0.11.2
|
|
39
|
-
"@deephaven/iris-grid": "^0.11.2
|
|
40
|
-
"@deephaven/jsapi-shim": "^0.11.2
|
|
41
|
-
"@deephaven/utils": "^0.11.2
|
|
33
|
+
"@deephaven/chart": "^0.11.2",
|
|
34
|
+
"@deephaven/console": "^0.11.2",
|
|
35
|
+
"@deephaven/dashboard": "^0.11.2",
|
|
36
|
+
"@deephaven/file-explorer": "^0.11.2",
|
|
37
|
+
"@deephaven/golden-layout": "^0.11.2",
|
|
38
|
+
"@deephaven/icons": "^0.11.2",
|
|
39
|
+
"@deephaven/iris-grid": "^0.11.2",
|
|
40
|
+
"@deephaven/jsapi-shim": "^0.11.2",
|
|
41
|
+
"@deephaven/utils": "^0.11.2",
|
|
42
42
|
"@fortawesome/react-fontawesome": "^0.1.12",
|
|
43
43
|
"classnames": "^2.3.1",
|
|
44
44
|
"deep-equal": "^2.0.4",
|
|
@@ -63,15 +63,11 @@
|
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@babel/cli": "^7.16.0",
|
|
66
|
-
"@deephaven/components": "^0.11.2
|
|
67
|
-
"@deephaven/log": "^0.11.2
|
|
68
|
-
"@deephaven/mocks": "^0.11.2
|
|
69
|
-
"@deephaven/redux": "^0.11.2
|
|
70
|
-
"@deephaven/tsconfig": "^0.11.2
|
|
71
|
-
"@storybook/addon-actions": "^6.2.3",
|
|
72
|
-
"@storybook/addon-essentials": "^6.2.3",
|
|
73
|
-
"@storybook/addon-links": "^6.2.3",
|
|
74
|
-
"@storybook/react": "^6.2.3",
|
|
66
|
+
"@deephaven/components": "^0.11.2",
|
|
67
|
+
"@deephaven/log": "^0.11.2",
|
|
68
|
+
"@deephaven/mocks": "^0.11.2",
|
|
69
|
+
"@deephaven/redux": "^0.11.2",
|
|
70
|
+
"@deephaven/tsconfig": "^0.11.2",
|
|
75
71
|
"@types/react": "^17.0.2",
|
|
76
72
|
"cross-env": "^7.0.2",
|
|
77
73
|
"follow-redirects": ">=1.14.7",
|
|
@@ -89,5 +85,5 @@
|
|
|
89
85
|
"publishConfig": {
|
|
90
86
|
"access": "public"
|
|
91
87
|
},
|
|
92
|
-
"gitHead": "
|
|
88
|
+
"gitHead": "548192a2271314cce046487728c4ba18291d3dcd"
|
|
93
89
|
}
|