@deephaven/iris-grid 0.13.3-beta.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/dist/AdvancedFilterCreator.d.ts +69 -63
  2. package/dist/AdvancedFilterCreator.d.ts.map +1 -1
  3. package/dist/AdvancedFilterCreator.js +79 -73
  4. package/dist/AdvancedFilterCreator.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorSelectValue.d.ts +45 -45
  6. package/dist/AdvancedFilterCreatorSelectValue.d.ts.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValue.js +32 -36
  8. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  9. package/dist/AdvancedFilterCreatorSelectValueList.d.ts +47 -52
  10. package/dist/AdvancedFilterCreatorSelectValueList.d.ts.map +1 -1
  11. package/dist/AdvancedFilterCreatorSelectValueList.js +24 -39
  12. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  13. package/dist/ColumnStatistics.d.ts +34 -22
  14. package/dist/ColumnStatistics.d.ts.map +1 -1
  15. package/dist/ColumnStatistics.js +8 -12
  16. package/dist/ColumnStatistics.js.map +1 -1
  17. package/dist/CommonTypes.d.ts +58 -0
  18. package/dist/CommonTypes.d.ts.map +1 -0
  19. package/dist/CommonTypes.js +2 -0
  20. package/dist/CommonTypes.js.map +1 -0
  21. package/dist/CrossColumnSearch.d.ts +26 -24
  22. package/dist/CrossColumnSearch.d.ts.map +1 -1
  23. package/dist/CrossColumnSearch.js +9 -13
  24. package/dist/CrossColumnSearch.js.map +1 -1
  25. package/dist/FilterInputField.d.ts +48 -51
  26. package/dist/FilterInputField.d.ts.map +1 -1
  27. package/dist/FilterInputField.js +30 -27
  28. package/dist/FilterInputField.js.map +1 -1
  29. package/dist/IrisGrid.d.ts +409 -453
  30. package/dist/IrisGrid.d.ts.map +1 -1
  31. package/dist/IrisGrid.js +514 -449
  32. package/dist/IrisGrid.js.map +1 -1
  33. package/dist/IrisGridCellOverflowModal.d.ts +1 -1
  34. package/dist/IrisGridCellOverflowModal.d.ts.map +1 -1
  35. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  36. package/dist/IrisGridCopyHandler.d.ts +52 -46
  37. package/dist/IrisGridCopyHandler.d.ts.map +1 -1
  38. package/dist/IrisGridCopyHandler.js +22 -38
  39. package/dist/IrisGridCopyHandler.js.map +1 -1
  40. package/dist/IrisGridMetricCalculator.d.ts +5 -4
  41. package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
  42. package/dist/IrisGridMetricCalculator.js +5 -1
  43. package/dist/IrisGridMetricCalculator.js.map +1 -1
  44. package/dist/IrisGridModel.d.ts +37 -35
  45. package/dist/IrisGridModel.d.ts.map +1 -1
  46. package/dist/IrisGridModel.js +19 -3
  47. package/dist/IrisGridModel.js.map +1 -1
  48. package/dist/IrisGridModelFactory.d.ts +7 -5
  49. package/dist/IrisGridModelFactory.d.ts.map +1 -1
  50. package/dist/IrisGridModelFactory.js +5 -5
  51. package/dist/IrisGridModelFactory.js.map +1 -1
  52. package/dist/IrisGridModelUpdater.d.ts +13 -11
  53. package/dist/IrisGridModelUpdater.d.ts.map +1 -1
  54. package/dist/IrisGridModelUpdater.js.map +1 -1
  55. package/dist/IrisGridPartitionSelector.d.ts +38 -39
  56. package/dist/IrisGridPartitionSelector.d.ts.map +1 -1
  57. package/dist/IrisGridPartitionSelector.js +18 -24
  58. package/dist/IrisGridPartitionSelector.js.map +1 -1
  59. package/dist/IrisGridProxyModel.d.ts +111 -32
  60. package/dist/IrisGridProxyModel.d.ts.map +1 -1
  61. package/dist/IrisGridProxyModel.js +212 -170
  62. package/dist/IrisGridProxyModel.js.map +1 -1
  63. package/dist/IrisGridRenderer.d.ts +59 -31
  64. package/dist/IrisGridRenderer.d.ts.map +1 -1
  65. package/dist/IrisGridRenderer.js +92 -46
  66. package/dist/IrisGridRenderer.js.map +1 -1
  67. package/dist/IrisGridTableModel.d.ts +48 -147
  68. package/dist/IrisGridTableModel.d.ts.map +1 -1
  69. package/dist/IrisGridTableModel.js +58 -1381
  70. package/dist/IrisGridTableModel.js.map +1 -1
  71. package/dist/IrisGridTableModelTemplate.d.ts +219 -0
  72. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -0
  73. package/dist/IrisGridTableModelTemplate.js +1623 -0
  74. package/dist/IrisGridTableModelTemplate.js.map +1 -0
  75. package/dist/IrisGridTestUtils.d.ts +18 -14
  76. package/dist/IrisGridTestUtils.d.ts.map +1 -1
  77. package/dist/IrisGridTestUtils.js +29 -1
  78. package/dist/IrisGridTestUtils.js.map +1 -1
  79. package/dist/IrisGridTheme.d.ts +35 -3
  80. package/dist/IrisGridTheme.d.ts.map +1 -1
  81. package/dist/IrisGridTheme.js.map +1 -1
  82. package/dist/IrisGridTreeTableModel.d.ts +26 -7
  83. package/dist/IrisGridTreeTableModel.d.ts.map +1 -1
  84. package/dist/IrisGridTreeTableModel.js +24 -14
  85. package/dist/IrisGridTreeTableModel.js.map +1 -1
  86. package/dist/IrisGridUtils.d.ts +257 -162
  87. package/dist/IrisGridUtils.d.ts.map +1 -1
  88. package/dist/IrisGridUtils.js +132 -95
  89. package/dist/IrisGridUtils.js.map +1 -1
  90. package/dist/MissingKeyError.d.ts +5 -3
  91. package/dist/MissingKeyError.d.ts.map +1 -1
  92. package/dist/MissingKeyError.js.map +1 -1
  93. package/dist/PartitionSelectorSearch.d.ts +61 -40
  94. package/dist/PartitionSelectorSearch.d.ts.map +1 -1
  95. package/dist/PartitionSelectorSearch.js +25 -15
  96. package/dist/PartitionSelectorSearch.js.map +1 -1
  97. package/dist/PendingDataBottomBar.d.ts +3 -6
  98. package/dist/PendingDataBottomBar.d.ts.map +1 -1
  99. package/dist/PendingDataBottomBar.js.map +1 -1
  100. package/dist/TableViewportUpdater.d.ts +39 -55
  101. package/dist/TableViewportUpdater.d.ts.map +1 -1
  102. package/dist/TableViewportUpdater.js +42 -64
  103. package/dist/TableViewportUpdater.js.map +1 -1
  104. package/dist/TreeTableViewportUpdater.d.ts +29 -37
  105. package/dist/TreeTableViewportUpdater.d.ts.map +1 -1
  106. package/dist/TreeTableViewportUpdater.js +39 -50
  107. package/dist/TreeTableViewportUpdater.js.map +1 -1
  108. package/dist/index.d.ts +9 -0
  109. package/dist/index.d.ts.map +1 -1
  110. package/dist/index.js +9 -0
  111. package/dist/index.js.map +1 -1
  112. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.d.ts.map +1 -1
  113. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  114. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.d.ts +1 -1
  115. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.d.ts.map +1 -1
  116. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +2 -0
  117. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  118. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +1 -1
  119. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  120. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +41 -130
  121. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
  122. package/dist/mousehandlers/IrisGridContextMenuHandler.js +426 -317
  123. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  124. package/dist/mousehandlers/IrisGridFilterMouseHandler.d.ts.map +1 -1
  125. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +2 -2
  126. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  127. package/dist/mousehandlers/IrisGridSortMouseHandler.js +1 -1
  128. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  129. package/dist/mousehandlers/PendingMouseHandler.d.ts +8 -4
  130. package/dist/mousehandlers/PendingMouseHandler.d.ts.map +1 -1
  131. package/dist/mousehandlers/PendingMouseHandler.js +4 -5
  132. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  133. package/dist/sidebar/ChartBuilder.d.ts +48 -33
  134. package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
  135. package/dist/sidebar/ChartBuilder.js +28 -27
  136. package/dist/sidebar/ChartBuilder.js.map +1 -1
  137. package/dist/sidebar/CustomColumnBuilder.d.ts +51 -41
  138. package/dist/sidebar/CustomColumnBuilder.d.ts.map +1 -1
  139. package/dist/sidebar/CustomColumnBuilder.js +22 -18
  140. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  141. package/dist/sidebar/CustomColumnInput.d.ts +26 -36
  142. package/dist/sidebar/CustomColumnInput.d.ts.map +1 -1
  143. package/dist/sidebar/CustomColumnInput.js +11 -20
  144. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  145. package/dist/sidebar/InputEditor.d.ts +34 -35
  146. package/dist/sidebar/InputEditor.d.ts.map +1 -1
  147. package/dist/sidebar/InputEditor.js +43 -24
  148. package/dist/sidebar/InputEditor.js.map +1 -1
  149. package/dist/sidebar/RollupRows.d.ts +67 -52
  150. package/dist/sidebar/RollupRows.d.ts.map +1 -1
  151. package/dist/sidebar/RollupRows.js +51 -53
  152. package/dist/sidebar/RollupRows.js.map +1 -1
  153. package/dist/sidebar/SelectDistinctBuilder.d.ts +27 -21
  154. package/dist/sidebar/SelectDistinctBuilder.d.ts.map +1 -1
  155. package/dist/sidebar/SelectDistinctBuilder.js +6 -10
  156. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  157. package/dist/sidebar/TableCsvExporter.d.ts +42 -39
  158. package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
  159. package/dist/sidebar/TableCsvExporter.js +12 -20
  160. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  161. package/dist/sidebar/TableSaver.d.ts +59 -60
  162. package/dist/sidebar/TableSaver.d.ts.map +1 -1
  163. package/dist/sidebar/TableSaver.js +154 -68
  164. package/dist/sidebar/TableSaver.js.map +1 -1
  165. package/dist/sidebar/VisibilityOrderingBuilder.d.ts +56 -45
  166. package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +1 -1
  167. package/dist/sidebar/VisibilityOrderingBuilder.js +34 -29
  168. package/dist/sidebar/VisibilityOrderingBuilder.js.map +1 -1
  169. package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
  170. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  171. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts +2 -1
  172. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts.map +1 -1
  173. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  174. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts +6 -5
  175. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.d.ts.map +1 -1
  176. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +5 -0
  177. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  178. package/dist/sidebar/icons/index.d.ts +7 -7
  179. package/dist/sidebar/icons/index.d.ts.map +1 -1
  180. package/dist/sidebar/icons/index.js.map +1 -1
  181. package/dist/sidebar/index.d.ts +12 -12
  182. package/dist/sidebar/index.d.ts.map +1 -1
  183. package/dist/sidebar/index.js.map +1 -1
  184. package/package.json +17 -16
@@ -1,5 +1,6 @@
1
+ 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
+
1
3
  import React, { Component } from 'react';
2
- import PropTypes from 'prop-types';
3
4
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
5
  import { DropdownMenu, Tooltip } from '@deephaven/components';
5
6
  import { vsTriangleDown, vsClose } from '@deephaven/icons';
@@ -13,7 +14,15 @@ var PARTITION_CHANGE_DEBOUNCE_MS = 250;
13
14
  class IrisGridPartitionSelector extends Component {
14
15
  constructor(props) {
15
16
  super(props);
16
- this.debounceUpdate = debounce(this.debounceUpdate.bind(this), PARTITION_CHANGE_DEBOUNCE_MS);
17
+
18
+ _defineProperty(this, "searchMenu", void 0);
19
+
20
+ _defineProperty(this, "selectorSearch", void 0);
21
+
22
+ _defineProperty(this, "debounceUpdate", debounce(() => {
23
+ this.sendUpdate();
24
+ }, PARTITION_CHANGE_DEBOUNCE_MS));
25
+
17
26
  this.handleAppendClick = this.handleAppendClick.bind(this);
18
27
  this.handleCloseClick = this.handleCloseClick.bind(this);
19
28
  this.handleIgnoreClick = this.handleIgnoreClick.bind(this);
@@ -100,10 +109,6 @@ class IrisGridPartitionSelector extends Component {
100
109
  }
101
110
  }
102
111
 
103
- debounceUpdate() {
104
- this.sendUpdate();
105
- }
106
-
107
112
  sendDone() {
108
113
  this.debounceUpdate.flush();
109
114
  var {
@@ -200,24 +205,13 @@ class IrisGridPartitionSelector extends Component {
200
205
 
201
206
  }
202
207
 
203
- IrisGridPartitionSelector.propTypes = {
204
- getFormattedString: PropTypes.func.isRequired,
205
- table: PropTypes.shape({
206
- applyFilter: PropTypes.func
207
- }).isRequired,
208
- columnName: PropTypes.string.isRequired,
209
- partition: PropTypes.string,
210
- onAppend: PropTypes.func,
211
- onChange: PropTypes.func,
212
- onFetchAll: PropTypes.func,
213
- onDone: PropTypes.func
214
- };
215
- IrisGridPartitionSelector.defaultProps = {
216
- onAppend: () => {},
217
- onChange: () => {},
218
- onFetchAll: () => {},
219
- onDone: () => {},
208
+ _defineProperty(IrisGridPartitionSelector, "defaultProps", {
209
+ onAppend: () => undefined,
210
+ onChange: () => undefined,
211
+ onFetchAll: () => undefined,
212
+ onDone: () => undefined,
220
213
  partition: ''
221
- };
214
+ });
215
+
222
216
  export default IrisGridPartitionSelector;
223
217
  //# sourceMappingURL=IrisGridPartitionSelector.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/IrisGridPartitionSelector.jsx"],"names":["React","Component","PropTypes","FontAwesomeIcon","DropdownMenu","Tooltip","vsTriangleDown","vsClose","Log","debounce","PartitionSelectorSearch","log","module","PARTITION_CHANGE_DEBOUNCE_MS","IrisGridPartitionSelector","constructor","props","debounceUpdate","bind","handleAppendClick","handleCloseClick","handleIgnoreClick","handlePartitionChange","handlePartitionSelect","handlePartitionListResized","handleSearchOpened","handleSearchClosed","searchMenu","selectorSearch","partition","state","componentWillUnmount","cancel","debug2","onAppend","sendDone","sendFetchAll","event","value","target","setState","closeMenu","sendUpdate","scheduleUpdate","table","applyFilter","focus","flush","onDone","onChange","onFetchAll","render","columnName","getFormattedString","partitionSelectorSearch","menuElement","propTypes","func","isRequired","shape","string","defaultProps"],"mappings":"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","sourcesContent":["import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { DropdownMenu, Tooltip } from '@deephaven/components';\nimport { vsTriangleDown, vsClose } from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport debounce from 'lodash.debounce';\nimport PartitionSelectorSearch from './PartitionSelectorSearch';\nimport './IrisGridPartitionSelector.scss';\n\nconst log = Log.module('IrisGridPartitionSelector');\n\nconst PARTITION_CHANGE_DEBOUNCE_MS = 250;\n\nclass IrisGridPartitionSelector extends Component {\n constructor(props) {\n super(props);\n\n this.debounceUpdate = debounce(\n this.debounceUpdate.bind(this),\n PARTITION_CHANGE_DEBOUNCE_MS\n );\n this.handleAppendClick = this.handleAppendClick.bind(this);\n this.handleCloseClick = this.handleCloseClick.bind(this);\n this.handleIgnoreClick = this.handleIgnoreClick.bind(this);\n this.handlePartitionChange = this.handlePartitionChange.bind(this);\n this.handlePartitionSelect = this.handlePartitionSelect.bind(this);\n this.handlePartitionListResized = this.handlePartitionListResized.bind(\n this\n );\n this.handleSearchOpened = this.handleSearchOpened.bind(this);\n this.handleSearchClosed = this.handleSearchClosed.bind(this);\n\n this.searchMenu = null;\n this.selectorSearch = null;\n\n const { partition } = props;\n this.state = {\n partition,\n };\n }\n\n componentWillUnmount() {\n this.debounceUpdate.cancel();\n }\n\n handleAppendClick() {\n log.debug2('handleAppendClick');\n\n const { onAppend } = this.props;\n const { partition } = this.state;\n onAppend(partition);\n }\n\n handleCloseClick() {\n log.debug2('handleCloseClick');\n\n this.sendDone();\n }\n\n handleIgnoreClick() {\n log.debug2('handleIgnoreClick');\n\n this.sendFetchAll();\n }\n\n handlePartitionChange(event) {\n log.debug2('handlePartitionChange');\n\n const { value: partition } = event.target;\n\n this.setState({ partition });\n\n this.debounceUpdate();\n }\n\n handlePartitionSelect(partition) {\n if (this.searchMenu) {\n this.searchMenu.closeMenu();\n }\n\n this.setState({ partition }, () => {\n this.sendUpdate();\n });\n }\n\n handlePartitionListResized() {\n if (this.searchMenu) {\n this.searchMenu.scheduleUpdate();\n }\n }\n\n handleSearchClosed() {\n // Reset the table filter so it's ready next time user opens search\n const { table } = this.props;\n table.applyFilter([]);\n }\n\n handleSearchOpened() {\n if (this.selectorSearch) {\n this.selectorSearch.focus();\n }\n }\n\n debounceUpdate() {\n this.sendUpdate();\n }\n\n sendDone() {\n this.debounceUpdate.flush();\n\n const { onDone } = this.props;\n onDone();\n }\n\n sendUpdate() {\n log.debug2('sendUpdate');\n\n const { onChange } = this.props;\n const { partition } = this.state;\n onChange(partition);\n }\n\n sendFetchAll() {\n log.debug2('sendFetchAll');\n\n this.debounceUpdate.cancel();\n\n const { onFetchAll } = this.props;\n onFetchAll();\n }\n\n render() {\n const { columnName, getFormattedString, onDone, table } = this.props;\n const { partition } = this.state;\n const partitionSelectorSearch = (\n <PartitionSelectorSearch\n key=\"search\"\n getFormattedString={getFormattedString}\n table={table}\n onSelect={this.handlePartitionSelect}\n onListResized={this.handlePartitionListResized}\n ref={selectorSearch => {\n this.selectorSearch = selectorSearch;\n }}\n />\n );\n return (\n <div className=\"iris-grid-partition-selector\">\n <div className=\"status-message\">\n <span>Filtering &quot;{columnName}&quot; partition to</span>\n </div>\n <div className=\"input-group\">\n <input\n type=\"text\"\n value={partition}\n onChange={this.handlePartitionChange}\n className=\"form-control input-partition\"\n />\n <div className=\"input-group-append\">\n <button type=\"button\" className=\"btn btn-outline-primary\">\n <FontAwesomeIcon icon={vsTriangleDown} />\n <Tooltip>Partitions</Tooltip>\n <DropdownMenu\n ref={searchMenu => {\n this.searchMenu = searchMenu;\n }}\n actions={[{ menuElement: partitionSelectorSearch }]}\n onMenuOpened={this.handleSearchOpened}\n onMenuClosed={this.handleSearchClosed}\n />\n </button>\n </div>\n </div>\n <div className=\"iris-grid-partition-selector-spacer\" />\n <button\n type=\"button\"\n className=\"btn btn-outline-primary btn-ignore\"\n onClick={this.handleIgnoreClick}\n >\n Ignore &amp; Fetch All\n </button>\n <button\n type=\"button\"\n className=\"btn btn-outline-primary btn-append\"\n onClick={this.handleAppendClick}\n >\n Append Command\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-close\"\n onClick={onDone}\n >\n <FontAwesomeIcon icon={vsClose} />\n </button>\n </div>\n );\n }\n}\n\nIrisGridPartitionSelector.propTypes = {\n getFormattedString: PropTypes.func.isRequired,\n table: PropTypes.shape({ applyFilter: PropTypes.func }).isRequired,\n columnName: PropTypes.string.isRequired,\n partition: PropTypes.string,\n onAppend: PropTypes.func,\n onChange: PropTypes.func,\n onFetchAll: PropTypes.func,\n onDone: PropTypes.func,\n};\n\nIrisGridPartitionSelector.defaultProps = {\n onAppend: () => {},\n onChange: () => {},\n onFetchAll: () => {},\n onDone: () => {},\n partition: '',\n};\n\nexport default IrisGridPartitionSelector;\n"],"file":"IrisGridPartitionSelector.js"}
1
+ {"version":3,"sources":["../src/IrisGridPartitionSelector.tsx"],"names":["React","Component","FontAwesomeIcon","DropdownMenu","Tooltip","vsTriangleDown","vsClose","Log","debounce","PartitionSelectorSearch","log","module","PARTITION_CHANGE_DEBOUNCE_MS","IrisGridPartitionSelector","constructor","props","sendUpdate","handleAppendClick","bind","handleCloseClick","handleIgnoreClick","handlePartitionChange","handlePartitionSelect","handlePartitionListResized","handleSearchOpened","handleSearchClosed","searchMenu","selectorSearch","partition","state","componentWillUnmount","debounceUpdate","cancel","debug2","onAppend","sendDone","sendFetchAll","event","value","target","setState","closeMenu","scheduleUpdate","table","applyFilter","focus","flush","onDone","onChange","onFetchAll","render","columnName","getFormattedString","partitionSelectorSearch","menuElement","undefined"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,SAAhB,QAAiC,OAAjC;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,YAAT,EAAuBC,OAAvB,QAAsC,uBAAtC;AACA,SAASC,cAAT,EAAyBC,OAAzB,QAAwC,kBAAxC;AACA,OAAOC,GAAP,MAAgB,gBAAhB;AACA,OAAOC,QAAP,MAAqB,iBAArB;OAEOC,uB;;AAIP,IAAMC,GAAG,GAAGH,GAAG,CAACI,MAAJ,CAAW,2BAAX,CAAZ;AAEA,IAAMC,4BAA4B,GAAG,GAArC;;AAcA,MAAMC,yBAAN,SAA2CZ,SAA3C,CAGE;AASAa,EAAAA,WAAW,CAACC,KAAD,EAA2C;AACpD,UAAMA,KAAN;;AADoD;;AAAA;;AAAA,4CAyFrCP,QAAQ,CAAC,MAAY;AACpC,WAAKQ,UAAL;AACD,KAFwB,EAEtBJ,4BAFsB,CAzF6B;;AAGpD,SAAKK,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBC,IAAvB,CAA4B,IAA5B,CAAzB;AACA,SAAKC,gBAAL,GAAwB,KAAKA,gBAAL,CAAsBD,IAAtB,CAA2B,IAA3B,CAAxB;AACA,SAAKE,iBAAL,GAAyB,KAAKA,iBAAL,CAAuBF,IAAvB,CAA4B,IAA5B,CAAzB;AACA,SAAKG,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BH,IAA3B,CAAgC,IAAhC,CAA7B;AACA,SAAKI,qBAAL,GAA6B,KAAKA,qBAAL,CAA2BJ,IAA3B,CAAgC,IAAhC,CAA7B;AACA,SAAKK,0BAAL,GAAkC,KAAKA,0BAAL,CAAgCL,IAAhC,CAChC,IADgC,CAAlC;AAGA,SAAKM,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBN,IAAxB,CAA6B,IAA7B,CAA1B;AACA,SAAKO,kBAAL,GAA0B,KAAKA,kBAAL,CAAwBP,IAAxB,CAA6B,IAA7B,CAA1B;AAEA,SAAKQ,UAAL,GAAkB,IAAlB;AACA,SAAKC,cAAL,GAAsB,IAAtB;AAEA,QAAM;AAAEC,MAAAA;AAAF,QAAgBb,KAAtB;AACA,SAAKc,KAAL,GAAa;AACXD,MAAAA;AADW,KAAb;AAGD;;AAEDE,EAAAA,oBAAoB,GAAS;AAC3B,SAAKC,cAAL,CAAoBC,MAApB;AACD;;AAMDf,EAAAA,iBAAiB,GAAS;AACxBP,IAAAA,GAAG,CAACuB,MAAJ,CAAW,mBAAX;AAEA,QAAM;AAAEC,MAAAA;AAAF,QAAe,KAAKnB,KAA1B;AACA,QAAM;AAAEa,MAAAA;AAAF,QAAgB,KAAKC,KAA3B;AACAK,IAAAA,QAAQ,CAACN,SAAD,CAAR;AACD;;AAEDT,EAAAA,gBAAgB,GAAS;AACvBT,IAAAA,GAAG,CAACuB,MAAJ,CAAW,kBAAX;AAEA,SAAKE,QAAL;AACD;;AAEDf,EAAAA,iBAAiB,GAAS;AACxBV,IAAAA,GAAG,CAACuB,MAAJ,CAAW,mBAAX;AAEA,SAAKG,YAAL;AACD;;AAEDf,EAAAA,qBAAqB,CAACgB,KAAD,EAAmD;AACtE3B,IAAAA,GAAG,CAACuB,MAAJ,CAAW,uBAAX;AAEA,QAAM;AAAEK,MAAAA,KAAK,EAAEV;AAAT,QAAuBS,KAAK,CAACE,MAAnC;AAEA,SAAKC,QAAL,CAAc;AAAEZ,MAAAA;AAAF,KAAd;AAEA,SAAKG,cAAL;AACD;;AAEDT,EAAAA,qBAAqB,CAACM,SAAD,EAA0B;AAC7C,QAAI,KAAKF,UAAT,EAAqB;AACnB,WAAKA,UAAL,CAAgBe,SAAhB;AACD;;AAED,SAAKD,QAAL,CAAc;AAAEZ,MAAAA;AAAF,KAAd,EAA6B,MAAM;AACjC,WAAKZ,UAAL;AACD,KAFD;AAGD;;AAEDO,EAAAA,0BAA0B,GAAS;AACjC,QAAI,KAAKG,UAAT,EAAqB;AACnB,WAAKA,UAAL,CAAgBgB,cAAhB;AACD;AACF;;AAEDjB,EAAAA,kBAAkB,GAAS;AACzB;AACA,QAAM;AAAEkB,MAAAA;AAAF,QAAY,KAAK5B,KAAvB;AACA4B,IAAAA,KAAK,CAACC,WAAN,CAAkB,EAAlB;AACD;;AAEDpB,EAAAA,kBAAkB,GAAS;AACzB,QAAI,KAAKG,cAAT,EAAyB;AACvB,WAAKA,cAAL,CAAoBkB,KAApB;AACD;AACF;;AAMDV,EAAAA,QAAQ,GAAS;AACf,SAAKJ,cAAL,CAAoBe,KAApB;AAEA,QAAM;AAAEC,MAAAA;AAAF,QAAa,KAAKhC,KAAxB;AACAgC,IAAAA,MAAM;AACP;;AAED/B,EAAAA,UAAU,GAAS;AACjBN,IAAAA,GAAG,CAACuB,MAAJ,CAAW,YAAX;AAEA,QAAM;AAAEe,MAAAA;AAAF,QAAe,KAAKjC,KAA1B;AACA,QAAM;AAAEa,MAAAA;AAAF,QAAgB,KAAKC,KAA3B;AACAmB,IAAAA,QAAQ,CAACpB,SAAD,CAAR;AACD;;AAEDQ,EAAAA,YAAY,GAAS;AACnB1B,IAAAA,GAAG,CAACuB,MAAJ,CAAW,cAAX;AAEA,SAAKF,cAAL,CAAoBC,MAApB;AAEA,QAAM;AAAEiB,MAAAA;AAAF,QAAiB,KAAKlC,KAA5B;AACAkC,IAAAA,UAAU;AACX;;AAEDC,EAAAA,MAAM,GAAgB;AACpB,QAAM;AAAEC,MAAAA,UAAF;AAAcC,MAAAA,kBAAd;AAAkCL,MAAAA,MAAlC;AAA0CJ,MAAAA;AAA1C,QAAoD,KAAK5B,KAA/D;AACA,QAAM;AAAEa,MAAAA;AAAF,QAAgB,KAAKC,KAA3B;AACA,QAAMwB,uBAAuB,gBAC3B,oBAAC,uBAAD;AACE,MAAA,GAAG,EAAC,QADN;AAEE,MAAA,kBAAkB,EAAED,kBAFtB;AAGE,MAAA,KAAK,EAAET,KAHT;AAIE,MAAA,QAAQ,EAAE,KAAKrB,qBAJjB;AAKE,MAAA,aAAa,EAAE,KAAKC,0BALtB;AAME,MAAA,GAAG,EAAEI,cAAc,IAAI;AACrB,aAAKA,cAAL,GAAsBA,cAAtB;AACD;AARH,MADF;AAYA,wBACE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE,kDAAuBwB,UAAvB,oBADF,CADF,eAIE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AACE,MAAA,IAAI,EAAC,MADP;AAEE,MAAA,KAAK,EAAEvB,SAFT;AAGE,MAAA,QAAQ,EAAE,KAAKP,qBAHjB;AAIE,MAAA,SAAS,EAAC;AAJZ,MADF,eAOE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAQ,MAAA,IAAI,EAAC,QAAb;AAAsB,MAAA,SAAS,EAAC;AAAhC,oBACE,oBAAC,eAAD;AAAiB,MAAA,IAAI,EAAEhB;AAAvB,MADF,eAEE,oBAAC,OAAD,qBAFF,eAGE,oBAAC,YAAD;AACE,MAAA,GAAG,EAAEqB,UAAU,IAAI;AACjB,aAAKA,UAAL,GAAkBA,UAAlB;AACD,OAHH;AAIE,MAAA,OAAO,EAAE,CAAC;AAAE4B,QAAAA,WAAW,EAAED;AAAf,OAAD,CAJX;AAKE,MAAA,YAAY,EAAE,KAAK7B,kBALrB;AAME,MAAA,YAAY,EAAE,KAAKC;AANrB,MAHF,CADF,CAPF,CAJF,eA0BE;AAAK,MAAA,SAAS,EAAC;AAAf,MA1BF,eA2BE;AACE,MAAA,IAAI,EAAC,QADP;AAEE,MAAA,SAAS,EAAC,oCAFZ;AAGE,MAAA,OAAO,EAAE,KAAKL;AAHhB,4BA3BF,eAkCE;AACE,MAAA,IAAI,EAAC,QADP;AAEE,MAAA,SAAS,EAAC,oCAFZ;AAGE,MAAA,OAAO,EAAE,KAAKH;AAHhB,wBAlCF,eAyCE;AACE,MAAA,IAAI,EAAC,QADP;AAEE,MAAA,SAAS,EAAC,sCAFZ;AAGE,MAAA,OAAO,EAAE8B;AAHX,oBAKE,oBAAC,eAAD;AAAiB,MAAA,IAAI,EAAEzC;AAAvB,MALF,CAzCF,CADF;AAmDD;;AAhMD;;gBAHIO,yB,kBAIkB;AACpBqB,EAAAA,QAAQ,EAAE,MAAYqB,SADF;AAEpBP,EAAAA,QAAQ,EAAE,MAAYO,SAFF;AAGpBN,EAAAA,UAAU,EAAE,MAAYM,SAHJ;AAIpBR,EAAAA,MAAM,EAAE,MAAYQ,SAJA;AAKpB3B,EAAAA,SAAS,EAAE;AALS,C;;AAkMxB,eAAef,yBAAf","sourcesContent":["import React, { Component } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { DropdownMenu, Tooltip } from '@deephaven/components';\nimport { vsTriangleDown, vsClose } from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport debounce from 'lodash.debounce';\nimport { Table } from '@deephaven/jsapi-shim';\nimport PartitionSelectorSearch from './PartitionSelectorSearch';\nimport './IrisGridPartitionSelector.scss';\nimport { ColumnName } from './CommonTypes';\n\nconst log = Log.module('IrisGridPartitionSelector');\n\nconst PARTITION_CHANGE_DEBOUNCE_MS = 250;\ninterface IrisGridPartitionSelectorProps<T> {\n getFormattedString: (value: T, type: string, name: string) => string;\n table: Table;\n columnName: ColumnName;\n partition: string;\n onAppend: (partition: string) => void;\n onFetchAll: () => void;\n onDone: (event?: React.MouseEvent<HTMLButtonElement>) => void;\n onChange: (partition: string) => void;\n}\ninterface IrisGridPartitionSelectorState {\n partition: string;\n}\nclass IrisGridPartitionSelector<T> extends Component<\n IrisGridPartitionSelectorProps<T>,\n IrisGridPartitionSelectorState\n> {\n static defaultProps = {\n onAppend: (): void => undefined,\n onChange: (): void => undefined,\n onFetchAll: (): void => undefined,\n onDone: (): void => undefined,\n partition: '',\n };\n\n constructor(props: IrisGridPartitionSelectorProps<T>) {\n super(props);\n\n this.handleAppendClick = this.handleAppendClick.bind(this);\n this.handleCloseClick = this.handleCloseClick.bind(this);\n this.handleIgnoreClick = this.handleIgnoreClick.bind(this);\n this.handlePartitionChange = this.handlePartitionChange.bind(this);\n this.handlePartitionSelect = this.handlePartitionSelect.bind(this);\n this.handlePartitionListResized = this.handlePartitionListResized.bind(\n this\n );\n this.handleSearchOpened = this.handleSearchOpened.bind(this);\n this.handleSearchClosed = this.handleSearchClosed.bind(this);\n\n this.searchMenu = null;\n this.selectorSearch = null;\n\n const { partition } = props;\n this.state = {\n partition,\n };\n }\n\n componentWillUnmount(): void {\n this.debounceUpdate.cancel();\n }\n\n searchMenu: DropdownMenu | null;\n\n selectorSearch: PartitionSelectorSearch<T> | null;\n\n handleAppendClick(): void {\n log.debug2('handleAppendClick');\n\n const { onAppend } = this.props;\n const { partition } = this.state;\n onAppend(partition);\n }\n\n handleCloseClick(): void {\n log.debug2('handleCloseClick');\n\n this.sendDone();\n }\n\n handleIgnoreClick(): void {\n log.debug2('handleIgnoreClick');\n\n this.sendFetchAll();\n }\n\n handlePartitionChange(event: React.ChangeEvent<HTMLInputElement>): void {\n log.debug2('handlePartitionChange');\n\n const { value: partition } = event.target;\n\n this.setState({ partition });\n\n this.debounceUpdate();\n }\n\n handlePartitionSelect(partition: string): void {\n if (this.searchMenu) {\n this.searchMenu.closeMenu();\n }\n\n this.setState({ partition }, () => {\n this.sendUpdate();\n });\n }\n\n handlePartitionListResized(): void {\n if (this.searchMenu) {\n this.searchMenu.scheduleUpdate();\n }\n }\n\n handleSearchClosed(): void {\n // Reset the table filter so it's ready next time user opens search\n const { table } = this.props;\n table.applyFilter([]);\n }\n\n handleSearchOpened(): void {\n if (this.selectorSearch) {\n this.selectorSearch.focus();\n }\n }\n\n debounceUpdate = debounce((): void => {\n this.sendUpdate();\n }, PARTITION_CHANGE_DEBOUNCE_MS);\n\n sendDone(): void {\n this.debounceUpdate.flush();\n\n const { onDone } = this.props;\n onDone();\n }\n\n sendUpdate(): void {\n log.debug2('sendUpdate');\n\n const { onChange } = this.props;\n const { partition } = this.state;\n onChange(partition);\n }\n\n sendFetchAll(): void {\n log.debug2('sendFetchAll');\n\n this.debounceUpdate.cancel();\n\n const { onFetchAll } = this.props;\n onFetchAll();\n }\n\n render(): JSX.Element {\n const { columnName, getFormattedString, onDone, table } = this.props;\n const { partition } = this.state;\n const partitionSelectorSearch = (\n <PartitionSelectorSearch\n key=\"search\"\n getFormattedString={getFormattedString}\n table={table}\n onSelect={this.handlePartitionSelect}\n onListResized={this.handlePartitionListResized}\n ref={selectorSearch => {\n this.selectorSearch = selectorSearch;\n }}\n />\n );\n return (\n <div className=\"iris-grid-partition-selector\">\n <div className=\"status-message\">\n <span>Filtering &quot;{columnName}&quot; partition to</span>\n </div>\n <div className=\"input-group\">\n <input\n type=\"text\"\n value={partition}\n onChange={this.handlePartitionChange}\n className=\"form-control input-partition\"\n />\n <div className=\"input-group-append\">\n <button type=\"button\" className=\"btn btn-outline-primary\">\n <FontAwesomeIcon icon={vsTriangleDown} />\n <Tooltip>Partitions</Tooltip>\n <DropdownMenu\n ref={searchMenu => {\n this.searchMenu = searchMenu;\n }}\n actions={[{ menuElement: partitionSelectorSearch }]}\n onMenuOpened={this.handleSearchOpened}\n onMenuClosed={this.handleSearchClosed}\n />\n </button>\n </div>\n </div>\n <div className=\"iris-grid-partition-selector-spacer\" />\n <button\n type=\"button\"\n className=\"btn btn-outline-primary btn-ignore\"\n onClick={this.handleIgnoreClick}\n >\n Ignore &amp; Fetch All\n </button>\n <button\n type=\"button\"\n className=\"btn btn-outline-primary btn-append\"\n onClick={this.handleAppendClick}\n >\n Append Command\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon btn-close\"\n onClick={onDone}\n >\n <FontAwesomeIcon icon={vsClose} />\n </button>\n </div>\n );\n }\n}\n\nexport default IrisGridPartitionSelector;\n"],"file":"IrisGridPartitionSelector.js"}
@@ -1,41 +1,120 @@
1
- export default IrisGridProxyModel;
1
+ import { Formatter } from '@deephaven/jsapi-utils';
2
+ import { CancelablePromise } from '@deephaven/utils';
3
+ import { Column, ColumnStatistics, CustomColumn, FilterCondition, InputTable, LayoutHints, RollupConfig, Sort, Table, TreeTable } from '@deephaven/jsapi-shim';
4
+ import { EditableGridModel, ModelIndex, MoveOperation } from '@deephaven/grid';
5
+ import IrisGridTableModel from './IrisGridTableModel';
6
+ import IrisGridTreeTableModel from './IrisGridTreeTableModel';
7
+ import IrisGridModel from './IrisGridModel';
8
+ import { ColumnName, UITotalsTableConfig, PendingDataMap, UIRow } from './CommonTypes';
2
9
  /**
3
10
  * Model which proxies calls to other IrisGridModels.
4
11
  * This allows for operations that generate new tables, like rollups.
5
12
  */
6
- declare class IrisGridProxyModel extends IrisGridModel<Record<string, import("event-target-shim").Event<string>>, "standard"> {
13
+ declare class IrisGridProxyModel extends IrisGridModel {
7
14
  /**
8
- * @param {dh.Table} table Iris data table to be used in the model
9
- * @param {Formatter} formatter The formatter to use when getting formats
10
- * @param {dh.InputTable} inputTable Iris input table associated with this table
15
+ * @param table Iris data table to be used in the model
16
+ * @param formatter The formatter to use when getting formats
17
+ * @param inputTable Iris input table associated with this table
11
18
  */
12
- constructor(table: dh.Table, formatter?: Formatter, inputTable?: dh.InputTable);
13
- handleModelEvent(event: any): void;
14
- originalModel: IrisGridTableModel | IrisGridTreeTableModel;
15
- model: IrisGridTableModel | IrisGridTreeTableModel;
16
- modelPromise: import("@deephaven/utils").CancelablePromise<any> | null;
17
- rollup: any;
18
- selectDistinct: any[];
19
- setModel(model: any): void;
20
- setNextModel(modelPromise: any): void;
21
- addListeners(model: any): void;
22
- removeListeners(model: any): void;
23
- get hasExpandableRows(): any;
24
- isRowExpandable(...args: any[]): any;
25
- isRowExpanded(...args: any[]): any;
26
- setRowExpanded(...args: any[]): void;
27
- depthForRow(...args: any[]): any;
28
- get table(): dh.Table;
19
+ originalModel: IrisGridModel;
20
+ model: IrisGridModel;
21
+ modelPromise: CancelablePromise<IrisGridModel> | null;
22
+ rollup: RollupConfig | null;
23
+ selectDistinct: ColumnName[];
24
+ constructor(table: Table | TreeTable, formatter?: Formatter, inputTable?: InputTable | null);
25
+ close(): void;
26
+ handleModelEvent(event: CustomEvent): void;
27
+ setModel(model: IrisGridModel): void;
28
+ setNextModel(modelPromise: Promise<IrisGridModel>): void;
29
+ startListening(): void;
30
+ stopListening(): void;
31
+ addListeners(model: IrisGridModel): void;
32
+ removeListeners(model: IrisGridModel): void;
33
+ get rowCount(): number;
34
+ get columnCount(): number;
35
+ get floatingTopRowCount(): number;
36
+ get floatingBottomRowCount(): number;
37
+ get floatingLeftColumnCount(): number;
38
+ get floatingRightColumnCount(): number;
39
+ textForCell: IrisGridModel['textForCell'];
40
+ truncationCharForCell: IrisGridModel['truncationCharForCell'];
41
+ textAlignForCell: IrisGridModel['textAlignForCell'];
42
+ colorForCell: IrisGridModel['colorForCell'];
43
+ backgroundColorForCell: IrisGridModel['backgroundColorForCell'];
44
+ textForColumnHeader: IrisGridModel['textForColumnHeader'];
45
+ textForRowHeader: IrisGridModel['textForRowHeader'];
46
+ textForRowFooter: IrisGridModel['textForRowFooter'];
47
+ isRowMovable: IrisGridModel['isRowMovable'];
48
+ isColumnMovable: IrisGridModel['isColumnMovable'];
49
+ isColumnFrozen(x: ModelIndex): boolean;
50
+ get hasExpandableRows(): boolean;
51
+ isRowExpandable: IrisGridTreeTableModel['isRowExpandable'];
52
+ isRowExpanded: IrisGridTreeTableModel['isRowExpanded'];
53
+ setRowExpanded: IrisGridTreeTableModel['setRowExpanded'];
54
+ depthForRow: IrisGridTreeTableModel['depthForRow'];
55
+ get isExportAvailable(): boolean;
56
+ get isColumnStatisticsAvailable(): boolean;
57
+ get isValuesTableAvailable(): boolean;
58
+ get isCustomColumnsAvailable(): boolean;
59
+ get isFormatColumnsAvailable(): boolean;
60
+ get isChartBuilderAvailable(): boolean;
61
+ get isRollupAvailable(): boolean;
62
+ get isSelectDistinctAvailable(): boolean;
63
+ get isTotalsAvailable(): boolean;
64
+ get isReversible(): boolean;
65
+ get columns(): Column[];
66
+ get movedColumns(): MoveOperation[];
67
+ get movedRows(): MoveOperation[];
68
+ get layoutHints(): LayoutHints | null;
69
+ get frontColumns(): ColumnName[];
70
+ get backColumns(): ColumnName[];
71
+ get frozenColumns(): ColumnName[];
72
+ updateFrozenColumns(columns: ColumnName[]): void;
73
+ get originalColumns(): Column[];
74
+ get groupedColumns(): Column[];
75
+ get description(): string;
76
+ formatForCell: IrisGridModel['formatForCell'];
77
+ valueForCell: IrisGridModel['valueForCell'];
78
+ get filter(): FilterCondition[];
79
+ set filter(filter: FilterCondition[]);
80
+ get formatter(): Formatter;
81
+ set formatter(formatter: Formatter);
82
+ displayString: IrisGridModel['displayString'];
83
+ get sort(): Sort[];
84
+ set sort(sort: Sort[]);
85
+ get customColumns(): ColumnName[];
86
+ set customColumns(customColumns: ColumnName[]);
87
+ get formatColumns(): CustomColumn[];
88
+ set formatColumns(formatColumns: CustomColumn[]);
89
+ get rollupConfig(): RollupConfig | null;
90
+ set rollupConfig(rollupConfig: RollupConfig | null);
91
+ get selectDistinctColumns(): ColumnName[];
92
+ set selectDistinctColumns(columnNames: string[]);
93
+ get totalsConfig(): UITotalsTableConfig | null;
94
+ set totalsConfig(totalsConfig: UITotalsTableConfig | null);
95
+ get isFilterRequired(): boolean;
29
96
  get isEditable(): boolean;
30
- isEditableRange(...args: any[]): boolean;
31
- editValueForCell(...args: any[]): any;
32
- setValueForCell(...args: any[]): Promise<void>;
33
- setValueForRanges(...args: any[]): Promise<void>;
34
- setValues(...args: any[]): Promise<void>;
35
- isValidForCell(...args: any[]): boolean;
97
+ isEditableRange: IrisGridTableModel['isEditableRange'];
98
+ isFilterable: IrisGridTableModel['isFilterable'];
99
+ setViewport: (top: number, bottom: number, columns: Column[]) => void;
100
+ snapshot: IrisGridModel['snapshot'];
101
+ textSnapshot: IrisGridTableModel['textSnapshot'];
102
+ export(): Promise<Table>;
103
+ valuesTable: IrisGridTableModel['valuesTable'];
104
+ columnStatistics(column: Column): Promise<ColumnStatistics>;
105
+ editValueForCell: IrisGridTableModel['editValueForCell'];
106
+ setValueForCell: IrisGridTableModel['setValueForCell'];
107
+ setValueForRanges: IrisGridTableModel['setValueForRanges'];
108
+ setValues: EditableGridModel['setValues'];
109
+ isValidForCell: IrisGridTableModel['isValidForCell'];
110
+ delete: IrisGridTableModel['delete'];
111
+ get pendingDataMap(): PendingDataMap<UIRow>;
112
+ set pendingDataMap(map: PendingDataMap<UIRow>);
113
+ get pendingRowCount(): number;
114
+ set pendingRowCount(count: number);
115
+ get pendingDataErrors(): Map<number, Error[]>;
116
+ commitPending: IrisGridTableModel['commitPending'];
117
+ getColumnIndexByName(name: ColumnName): number | undefined;
36
118
  }
37
- import IrisGridModel from "./IrisGridModel";
38
- import IrisGridTableModel from "./IrisGridTableModel";
39
- import IrisGridTreeTableModel from "./IrisGridTreeTableModel";
40
- import { Formatter } from "packages/jsapi-utils/src/Formatter";
119
+ export default IrisGridProxyModel;
41
120
  //# sourceMappingURL=IrisGridProxyModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IrisGridProxyModel.d.ts","sourceRoot":"","sources":["../src/IrisGridProxyModel.js"],"names":[],"mappings":";AAkBA;;;GAGG;AACH;IACE;;;;OAIG;IACH,yCAHW,SAAS,8BAcnB;IAYD,mCAKC;IAtBC,2DAA0B;IAC1B,mDAAkB;IAClB,uEAAwB;IACxB,YAAkB;IAClB,sBAAwB;IAoB1B,2BA0BC;IAED,sCAgCC;IAcD,+BAKC;IAED,kCAKC;IAsED,6BAEC;IAED,qCAEC;IAED,mCAEC;IAED,qCAEC;IAED,iCAEC;IAED,sBAEC;IAiOD,0BAEC;IAED,yCAEC;IA8BD,sCAEC;IAED,+CAEC;IAED,iDAEC;IAED,yCAEC;IAED,wCAEC;CAiCF"}
1
+ {"version":3,"file":"IrisGridProxyModel.d.ts","sourceRoot":"","sources":["../src/IrisGridProxyModel.ts"],"names":[],"mappings":"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"}