@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
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[],"file":"CommonTypes.js"}
@@ -1,29 +1,31 @@
1
- export default CrossColumnSearch;
2
- declare class CrossColumnSearch extends React.PureComponent<any, any, any> {
3
- static createSearchFilter(searchValue: any, selectedColumns: any, columns: any, invertSelection: any): import("@deephaven/jsapi-shim").FilterCondition | null;
4
- constructor(props: any);
5
- handleSearchValueChange(event: any): void;
6
- toggleColumn(name: any): void;
1
+ import React, { PureComponent } from 'react';
2
+ import { SearchInput } from '@deephaven/components';
3
+ import { Column, FilterCondition } from '@deephaven/jsapi-shim';
4
+ import './CrossColumnSearch.scss';
5
+ import { ColumnName } from './CommonTypes';
6
+ interface CrossColumnSearchProps {
7
+ value: string;
8
+ selectedColumns: ColumnName[];
9
+ invertSelection: boolean;
10
+ onChange: (value: string, selectedColumns: ColumnName[], invertSelection: boolean) => void;
11
+ columns: Column[];
12
+ }
13
+ interface CrossColumnSearchState {
14
+ isConfigureColumnsShown: boolean;
15
+ }
16
+ declare class CrossColumnSearch extends PureComponent<CrossColumnSearchProps, CrossColumnSearchState> {
17
+ static createSearchFilter(searchValue: string, selectedColumns: ColumnName[], columns: Column[], invertSelection: boolean): FilterCondition | undefined;
18
+ constructor(props: CrossColumnSearchProps);
19
+ searchField: React.RefObject<SearchInput>;
20
+ focus(): void;
21
+ handleSearchValueChange(event: React.ChangeEvent<HTMLInputElement>): void;
22
+ sendColumnChange(selectedColumns: ColumnName[], invertSelection: boolean): void;
23
+ setInvertSelection(invertSelection: boolean): void;
24
+ toggleColumn(name: string): void;
7
25
  selectAll(): void;
8
26
  clear(): void;
9
27
  selectNumbers(): void;
10
- searchField: React.RefObject<any>;
11
- focus(): void;
12
- sendColumnChange(selectedColumns: any, invertSelection: any): void;
13
- setInvertSelection(invertSelection: any): void;
14
- }
15
- declare namespace CrossColumnSearch {
16
- namespace propTypes {
17
- const value: PropTypes.Validator<string>;
18
- const selectedColumns: PropTypes.Validator<(string | null | undefined)[]>;
19
- const invertSelection: PropTypes.Validator<boolean>;
20
- const onChange: PropTypes.Validator<(...args: any[]) => any>;
21
- const columns: PropTypes.Validator<(PropTypes.InferProps<{
22
- name: PropTypes.Validator<string>;
23
- type: PropTypes.Validator<string>;
24
- }> | null | undefined)[]>;
25
- }
28
+ render(): React.ReactElement;
26
29
  }
27
- import React from "react";
28
- import PropTypes from "prop-types";
30
+ export default CrossColumnSearch;
29
31
  //# sourceMappingURL=CrossColumnSearch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CrossColumnSearch.d.ts","sourceRoot":"","sources":["../src/CrossColumnSearch.jsx"],"names":[],"mappings":";AAgBA;IACE,8JAyBC;IAED,wBAaC;IAMD,0CAGC;IAYD,8BAYC;IAED,kBAEC;IAED,cAEC;IAED,sBAQC;IAxDC,kCAAoC;IAOtC,cAEC;IAOD,mEAGC;IAED,+CAGC;CAuLF"}
1
+ {"version":3,"file":"CrossColumnSearch.d.ts","sourceRoot":"","sources":["../src/CrossColumnSearch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAE7C,OAAO,EAAoB,WAAW,EAAW,MAAM,uBAAuB,CAAC;AAS/E,OAAW,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAEpE,OAAO,0BAA0B,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,UAAU,sBAAsB;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,UAAU,EAAE,CAAC;IAC9B,eAAe,EAAE,OAAO,CAAC;IACzB,QAAQ,EAAE,CACR,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,UAAU,EAAE,EAC7B,eAAe,EAAE,OAAO,KACrB,IAAI,CAAC;IACV,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,UAAU,sBAAsB;IAC9B,uBAAuB,EAAE,OAAO,CAAC;CAClC;AACD,cAAM,iBAAkB,SAAQ,aAAa,CAC3C,sBAAsB,EACtB,sBAAsB,CACvB;IACC,MAAM,CAAC,kBAAkB,CACvB,WAAW,EAAE,MAAM,EACnB,eAAe,EAAE,UAAU,EAAE,EAC7B,OAAO,EAAE,MAAM,EAAE,EACjB,eAAe,EAAE,OAAO,GACvB,eAAe,GAAG,SAAS;gBAsBlB,KAAK,EAAE,sBAAsB;IAezC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAE1C,KAAK,IAAI,IAAI;IAIb,uBAAuB,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAKzE,gBAAgB,CACd,eAAe,EAAE,UAAU,EAAE,EAC7B,eAAe,EAAE,OAAO,GACvB,IAAI;IAKP,kBAAkB,CAAC,eAAe,EAAE,OAAO,GAAG,IAAI;IAKlD,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAchC,SAAS,IAAI,IAAI;IAIjB,KAAK,IAAI,IAAI;IAIb,aAAa,IAAI,IAAI;IAUrB,MAAM,IAAI,KAAK,CAAC,YAAY;CAqJ7B;AAED,eAAe,iBAAiB,CAAC"}
@@ -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, { PureComponent } from 'react';
2
- import PropTypes from 'prop-types';
3
4
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
4
5
  import { Checkbox, Popper, SearchInput, Tooltip } from '@deephaven/components';
5
6
  import { dhGearFilled, dhCheckSquare, dhSquareFilled, dhRemoveSquareFilled, dhWarningCircleFilled, vsCircleLargeFilled } from '@deephaven/icons';
@@ -17,11 +18,14 @@ class CrossColumnSearch extends PureComponent {
17
18
  return searchFilter;
18
19
  }
19
20
 
20
- return null;
21
+ return undefined;
21
22
  }
22
23
 
23
24
  constructor(props) {
24
25
  super(props);
26
+
27
+ _defineProperty(this, "searchField", void 0);
28
+
25
29
  this.handleSearchValueChange = this.handleSearchValueChange.bind(this);
26
30
  this.toggleColumn = this.toggleColumn.bind(this);
27
31
  this.selectAll = this.selectAll.bind(this);
@@ -34,7 +38,9 @@ class CrossColumnSearch extends PureComponent {
34
38
  }
35
39
 
36
40
  focus() {
37
- this.searchField.current.focus();
41
+ var _this$searchField$cur;
42
+
43
+ (_this$searchField$cur = this.searchField.current) === null || _this$searchField$cur === void 0 ? void 0 : _this$searchField$cur.focus();
38
44
  }
39
45
 
40
46
  handleSearchValueChange(event) {
@@ -209,15 +215,5 @@ class CrossColumnSearch extends PureComponent {
209
215
 
210
216
  }
211
217
 
212
- CrossColumnSearch.propTypes = {
213
- value: PropTypes.string.isRequired,
214
- selectedColumns: PropTypes.arrayOf(PropTypes.string).isRequired,
215
- invertSelection: PropTypes.bool.isRequired,
216
- onChange: PropTypes.func.isRequired,
217
- columns: PropTypes.arrayOf(PropTypes.shape({
218
- name: PropTypes.string.isRequired,
219
- type: PropTypes.string.isRequired
220
- })).isRequired
221
- };
222
218
  export default CrossColumnSearch;
223
219
  //# sourceMappingURL=CrossColumnSearch.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/CrossColumnSearch.jsx"],"names":["React","PureComponent","PropTypes","FontAwesomeIcon","Checkbox","Popper","SearchInput","Tooltip","dhGearFilled","dhCheckSquare","dhSquareFilled","dhRemoveSquareFilled","dhWarningCircleFilled","vsCircleLargeFilled","dh","TableUtils","CrossColumnSearch","createSearchFilter","searchValue","selectedColumns","columns","invertSelection","filterColumns","filter","column","includes","name","map","length","filterValue","FilterValue","ofString","searchFilter","FilterCondition","search","constructor","props","handleSearchValueChange","bind","toggleColumn","selectAll","clear","selectNumbers","searchField","createRef","state","isConfigureColumnsShown","focus","current","event","onChange","target","value","sendColumnChange","setInvertSelection","c","update","slice","push","isNumberType","type","render","hasAllColumnsSelected","hasNoColumnsSelected","icon","setState","substring","lastIndexOf","propTypes","string","isRequired","arrayOf","bool","func","shape"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Checkbox, Popper, SearchInput, Tooltip } from '@deephaven/components';\nimport {\n dhGearFilled,\n dhCheckSquare,\n dhSquareFilled,\n dhRemoveSquareFilled,\n dhWarningCircleFilled,\n vsCircleLargeFilled,\n} from '@deephaven/icons';\nimport dh from '@deephaven/jsapi-shim';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport './CrossColumnSearch.scss';\n\nclass CrossColumnSearch extends PureComponent {\n static createSearchFilter(\n searchValue,\n selectedColumns,\n columns,\n invertSelection\n ) {\n const filterColumns = invertSelection\n ? columns\n .filter(column => !selectedColumns.includes(column.name))\n .map(column => column.name)\n : selectedColumns;\n if (searchValue && filterColumns.length > 0) {\n const filterValue = dh.FilterValue.ofString(searchValue);\n const searchFilter =\n filterColumns.length === columns.length\n ? dh.FilterCondition.search(filterValue)\n : dh.FilterCondition.search(\n filterValue,\n columns\n .filter(column => filterColumns.includes(column.name))\n .map(column => column.filter())\n );\n return searchFilter;\n }\n return null;\n }\n\n constructor(props) {\n super(props);\n this.handleSearchValueChange = this.handleSearchValueChange.bind(this);\n this.toggleColumn = this.toggleColumn.bind(this);\n this.selectAll = this.selectAll.bind(this);\n this.clear = this.clear.bind(this);\n this.selectNumbers = this.selectNumbers.bind(this);\n\n this.searchField = React.createRef();\n\n this.state = {\n isConfigureColumnsShown: false,\n };\n }\n\n focus() {\n this.searchField.current.focus();\n }\n\n handleSearchValueChange(event) {\n const { onChange, selectedColumns, invertSelection } = this.props;\n onChange(event.target.value, selectedColumns, invertSelection);\n }\n\n sendColumnChange(selectedColumns, invertSelection) {\n const { onChange, value } = this.props;\n onChange(value, selectedColumns, invertSelection);\n }\n\n setInvertSelection(invertSelection) {\n const { onChange, value } = this.props;\n onChange(value, [], invertSelection);\n }\n\n toggleColumn(name) {\n const { selectedColumns, invertSelection } = this.props;\n if (selectedColumns.includes(name)) {\n this.sendColumnChange(\n selectedColumns.filter(c => c !== name),\n invertSelection\n );\n } else {\n const update = selectedColumns.slice();\n update.push(name);\n this.sendColumnChange(update, invertSelection);\n }\n }\n\n selectAll() {\n this.setInvertSelection(true);\n }\n\n clear() {\n this.setInvertSelection(false);\n }\n\n selectNumbers() {\n const { columns } = this.props;\n this.sendColumnChange(\n columns\n .filter(c => TableUtils.isNumberType(c.type))\n .map(column => column.name),\n false\n );\n }\n\n render() {\n const { value, selectedColumns, invertSelection, columns } = this.props;\n const { isConfigureColumnsShown } = this.state;\n const hasAllColumnsSelected =\n (selectedColumns.length === 0 && invertSelection === true) ||\n (selectedColumns.length === columns.length && invertSelection === false);\n const hasNoColumnsSelected =\n (selectedColumns.length === 0 && invertSelection === false) ||\n (selectedColumns.length === columns.length && invertSelection === true);\n\n // set icon layers\n let icon;\n if (hasAllColumnsSelected) {\n // icon if all columns selected for search\n icon = (\n <>\n <FontAwesomeIcon\n icon={dhSquareFilled}\n mask={dhGearFilled}\n transform=\"shrink-2 down-5 right-7\"\n />\n <FontAwesomeIcon\n icon={dhCheckSquare}\n className=\"text-primary\"\n transform=\"shrink-4 down-5 right-7\"\n />\n </>\n );\n } else if (hasNoColumnsSelected) {\n // icon error, no columns selected for searching\n icon = (\n <>\n <FontAwesomeIcon\n icon={vsCircleLargeFilled}\n mask={dhGearFilled}\n transform=\"shrink-1 down-5 right-7\"\n />\n <FontAwesomeIcon\n icon={dhWarningCircleFilled}\n className=\"text-danger\"\n transform=\"shrink-4 down-5 right-7\"\n />\n </>\n );\n } else {\n // icon if some columns selected, but not all\n icon = (\n <>\n <FontAwesomeIcon\n icon={dhSquareFilled}\n mask={dhGearFilled}\n transform=\"shrink-2 down-5 right-7\"\n />\n <FontAwesomeIcon\n icon={dhRemoveSquareFilled}\n className=\"text-primary\"\n transform=\"shrink-4 down-5 right-7\"\n />\n </>\n );\n }\n\n return (\n <div className=\"cross-column-container\">\n <SearchInput\n className=\"cross-column-search\"\n placeholder=\"Search Data...\"\n value={value}\n onChange={this.handleSearchValueChange}\n ref={this.searchField}\n />\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon px-2\"\n onClick={() => {\n if (isConfigureColumnsShown) {\n this.setState({ isConfigureColumnsShown: false });\n } else {\n this.setState({ isConfigureColumnsShown: true });\n }\n }}\n >\n <div className=\"fa-layers\">{icon}</div>\n <Tooltip>Configure Columns</Tooltip>\n <Popper\n isShown={isConfigureColumnsShown}\n className=\"cross-column-popper\"\n onExited={() => {\n this.setState({ isConfigureColumnsShown: false });\n }}\n closeOnBlur\n interactive\n >\n <div className=\"cross-column-popup\">\n Searched Columns\n <div className=\"cross-column-scroll\">\n {columns.map(column => (\n <React.Fragment key={column.name}>\n <Checkbox\n className=\"cross-column-checkbox\"\n checked={\n invertSelection\n ? !selectedColumns.includes(column.name)\n : selectedColumns.includes(column.name)\n }\n onChange={() => this.toggleColumn(column.name)}\n >\n {column.name}\n </Checkbox>\n\n {column.type.substring(column.type.lastIndexOf('.') + 1)}\n </React.Fragment>\n ))}\n </div>\n <div className=\"cross-column-button-bar\">\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.selectAll}\n >\n Select All\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.clear}\n >\n Clear\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.selectNumbers}\n >\n Numbers Only\n </button>\n </div>\n {hasNoColumnsSelected && (\n <p className=\"text-danger\">\n <FontAwesomeIcon icon={dhWarningCircleFilled} /> Select at\n least one column to search.\n </p>\n )}\n </div>\n </Popper>\n </button>\n </div>\n );\n }\n}\n\nCrossColumnSearch.propTypes = {\n value: PropTypes.string.isRequired,\n selectedColumns: PropTypes.arrayOf(PropTypes.string).isRequired,\n invertSelection: PropTypes.bool.isRequired,\n onChange: PropTypes.func.isRequired,\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n })\n ).isRequired,\n};\n\nexport default CrossColumnSearch;\n"],"file":"CrossColumnSearch.js"}
1
+ {"version":3,"sources":["../src/CrossColumnSearch.tsx"],"names":["React","PureComponent","FontAwesomeIcon","Checkbox","Popper","SearchInput","Tooltip","dhGearFilled","dhCheckSquare","dhSquareFilled","dhRemoveSquareFilled","dhWarningCircleFilled","vsCircleLargeFilled","dh","TableUtils","CrossColumnSearch","createSearchFilter","searchValue","selectedColumns","columns","invertSelection","filterColumns","filter","column","includes","name","map","length","filterValue","FilterValue","ofString","searchFilter","FilterCondition","search","undefined","constructor","props","handleSearchValueChange","bind","toggleColumn","selectAll","clear","selectNumbers","searchField","createRef","state","isConfigureColumnsShown","focus","current","event","onChange","target","value","sendColumnChange","setInvertSelection","c","update","slice","push","isNumberType","type","render","hasAllColumnsSelected","hasNoColumnsSelected","icon","setState","substring","lastIndexOf"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Checkbox, Popper, SearchInput, Tooltip } from '@deephaven/components';\nimport {\n dhGearFilled,\n dhCheckSquare,\n dhSquareFilled,\n dhRemoveSquareFilled,\n dhWarningCircleFilled,\n vsCircleLargeFilled,\n} from '@deephaven/icons';\nimport dh, { Column, FilterCondition } from '@deephaven/jsapi-shim';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport './CrossColumnSearch.scss';\nimport { ColumnName } from './CommonTypes';\n\ninterface CrossColumnSearchProps {\n value: string;\n selectedColumns: ColumnName[];\n invertSelection: boolean;\n onChange: (\n value: string,\n selectedColumns: ColumnName[],\n invertSelection: boolean\n ) => void;\n columns: Column[];\n}\n\ninterface CrossColumnSearchState {\n isConfigureColumnsShown: boolean;\n}\nclass CrossColumnSearch extends PureComponent<\n CrossColumnSearchProps,\n CrossColumnSearchState\n> {\n static createSearchFilter(\n searchValue: string,\n selectedColumns: ColumnName[],\n columns: Column[],\n invertSelection: boolean\n ): FilterCondition | undefined {\n const filterColumns = invertSelection\n ? columns\n .filter(column => !selectedColumns.includes(column.name))\n .map(column => column.name)\n : selectedColumns;\n if (searchValue && filterColumns.length > 0) {\n const filterValue = dh.FilterValue.ofString(searchValue);\n const searchFilter =\n filterColumns.length === columns.length\n ? dh.FilterCondition.search(filterValue)\n : dh.FilterCondition.search(\n filterValue,\n columns\n .filter(column => filterColumns.includes(column.name))\n .map(column => column.filter())\n );\n return searchFilter;\n }\n return undefined;\n }\n\n constructor(props: CrossColumnSearchProps) {\n super(props);\n this.handleSearchValueChange = this.handleSearchValueChange.bind(this);\n this.toggleColumn = this.toggleColumn.bind(this);\n this.selectAll = this.selectAll.bind(this);\n this.clear = this.clear.bind(this);\n this.selectNumbers = this.selectNumbers.bind(this);\n\n this.searchField = React.createRef();\n\n this.state = {\n isConfigureColumnsShown: false,\n };\n }\n\n searchField: React.RefObject<SearchInput>;\n\n focus(): void {\n this.searchField.current?.focus();\n }\n\n handleSearchValueChange(event: React.ChangeEvent<HTMLInputElement>): void {\n const { onChange, selectedColumns, invertSelection } = this.props;\n onChange(event.target.value, selectedColumns, invertSelection);\n }\n\n sendColumnChange(\n selectedColumns: ColumnName[],\n invertSelection: boolean\n ): void {\n const { onChange, value } = this.props;\n onChange(value, selectedColumns, invertSelection);\n }\n\n setInvertSelection(invertSelection: boolean): void {\n const { onChange, value } = this.props;\n onChange(value, [], invertSelection);\n }\n\n toggleColumn(name: string): void {\n const { selectedColumns, invertSelection } = this.props;\n if (selectedColumns.includes(name)) {\n this.sendColumnChange(\n selectedColumns.filter(c => c !== name),\n invertSelection\n );\n } else {\n const update = selectedColumns.slice();\n update.push(name);\n this.sendColumnChange(update, invertSelection);\n }\n }\n\n selectAll(): void {\n this.setInvertSelection(true);\n }\n\n clear(): void {\n this.setInvertSelection(false);\n }\n\n selectNumbers(): void {\n const { columns } = this.props;\n this.sendColumnChange(\n columns\n .filter(c => TableUtils.isNumberType(c.type))\n .map(column => column.name),\n false\n );\n }\n\n render(): React.ReactElement {\n const { value, selectedColumns, invertSelection, columns } = this.props;\n const { isConfigureColumnsShown } = this.state;\n const hasAllColumnsSelected =\n (selectedColumns.length === 0 && invertSelection === true) ||\n (selectedColumns.length === columns.length && invertSelection === false);\n const hasNoColumnsSelected =\n (selectedColumns.length === 0 && invertSelection === false) ||\n (selectedColumns.length === columns.length && invertSelection === true);\n\n // set icon layers\n let icon;\n if (hasAllColumnsSelected) {\n // icon if all columns selected for search\n icon = (\n <>\n <FontAwesomeIcon\n icon={dhSquareFilled}\n mask={dhGearFilled}\n transform=\"shrink-2 down-5 right-7\"\n />\n <FontAwesomeIcon\n icon={dhCheckSquare}\n className=\"text-primary\"\n transform=\"shrink-4 down-5 right-7\"\n />\n </>\n );\n } else if (hasNoColumnsSelected) {\n // icon error, no columns selected for searching\n icon = (\n <>\n <FontAwesomeIcon\n icon={vsCircleLargeFilled}\n mask={dhGearFilled}\n transform=\"shrink-1 down-5 right-7\"\n />\n <FontAwesomeIcon\n icon={dhWarningCircleFilled}\n className=\"text-danger\"\n transform=\"shrink-4 down-5 right-7\"\n />\n </>\n );\n } else {\n // icon if some columns selected, but not all\n icon = (\n <>\n <FontAwesomeIcon\n icon={dhSquareFilled}\n mask={dhGearFilled}\n transform=\"shrink-2 down-5 right-7\"\n />\n <FontAwesomeIcon\n icon={dhRemoveSquareFilled}\n className=\"text-primary\"\n transform=\"shrink-4 down-5 right-7\"\n />\n </>\n );\n }\n\n return (\n <div className=\"cross-column-container\">\n <SearchInput\n className=\"cross-column-search\"\n placeholder=\"Search Data...\"\n value={value}\n onChange={this.handleSearchValueChange}\n ref={this.searchField}\n />\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon px-2\"\n onClick={() => {\n if (isConfigureColumnsShown) {\n this.setState({ isConfigureColumnsShown: false });\n } else {\n this.setState({ isConfigureColumnsShown: true });\n }\n }}\n >\n <div className=\"fa-layers\">{icon}</div>\n <Tooltip>Configure Columns</Tooltip>\n <Popper\n isShown={isConfigureColumnsShown}\n className=\"cross-column-popper\"\n onExited={() => {\n this.setState({ isConfigureColumnsShown: false });\n }}\n closeOnBlur\n interactive\n >\n <div className=\"cross-column-popup\">\n Searched Columns\n <div className=\"cross-column-scroll\">\n {columns.map(column => (\n <React.Fragment key={column.name}>\n <Checkbox\n className=\"cross-column-checkbox\"\n checked={\n invertSelection\n ? !selectedColumns.includes(column.name)\n : selectedColumns.includes(column.name)\n }\n onChange={() => this.toggleColumn(column.name)}\n >\n {column.name}\n </Checkbox>\n\n {column.type.substring(column.type.lastIndexOf('.') + 1)}\n </React.Fragment>\n ))}\n </div>\n <div className=\"cross-column-button-bar\">\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.selectAll}\n >\n Select All\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.clear}\n >\n Clear\n </button>\n <button\n type=\"button\"\n className=\"btn btn-link\"\n onClick={this.selectNumbers}\n >\n Numbers Only\n </button>\n </div>\n {hasNoColumnsSelected && (\n <p className=\"text-danger\">\n <FontAwesomeIcon icon={dhWarningCircleFilled} /> Select at\n least one column to search.\n </p>\n )}\n </div>\n </Popper>\n </button>\n </div>\n );\n }\n}\n\nexport default CrossColumnSearch;\n"],"file":"CrossColumnSearch.js"}
@@ -1,61 +1,58 @@
1
- export default FilterInputField;
1
+ import React, { ChangeEvent, PureComponent, ReactElement } from 'react';
2
+ import './FilterInputField.scss';
3
+ import type { DebouncedFunc } from 'lodash';
4
+ interface FilterInputFieldProps {
5
+ className: string;
6
+ style: React.CSSProperties;
7
+ value: string;
8
+ isAdvancedFilterSet: boolean;
9
+ onAdvancedFiltersTriggered: React.MouseEventHandler<HTMLButtonElement>;
10
+ onChange: (value: string) => void;
11
+ onDone: (setGridFocus?: boolean, defocusInput?: boolean) => void;
12
+ onTab: (backward: boolean) => void;
13
+ onContextMenu: React.MouseEventHandler<HTMLInputElement | HTMLButtonElement>;
14
+ debounceMs: number;
15
+ }
16
+ interface FilterInputFieldState {
17
+ isChanged: boolean;
18
+ value: string;
19
+ }
2
20
  /**
3
21
  * An input field showing a input field and button.
4
22
  * Debounces changes.
5
23
  */
6
- declare class FilterInputField extends React.PureComponent<any, any, any> {
7
- constructor(props: any);
8
- debouncedSendUpdate: import("lodash").DebouncedFunc<(value: any) => void>;
24
+ declare class FilterInputField extends PureComponent<FilterInputFieldProps, FilterInputFieldState> {
25
+ static defaultProps: {
26
+ style: {};
27
+ className: string;
28
+ value: string;
29
+ isAdvancedFilterSet: boolean;
30
+ onAdvancedFiltersTriggered: () => void;
31
+ onChange: () => void;
32
+ onDone: () => void;
33
+ onTab: () => void;
34
+ onContextMenu: () => void;
35
+ debounceMs: number;
36
+ };
37
+ constructor(props: FilterInputFieldProps);
38
+ componentDidMount(): void;
39
+ componentDidUpdate(prevProps: FilterInputFieldProps): void;
40
+ componentWillUnmount(): void;
41
+ inputField: HTMLInputElement | null;
42
+ initialValue: string;
43
+ debouncedSendUpdate: DebouncedFunc<(value: string) => void>;
44
+ setValue(value: string): void;
45
+ focus(): void;
46
+ handleChange(event: ChangeEvent<HTMLInputElement>): void;
9
47
  handleCancel(): void;
10
- handleChange(event: any): void;
11
48
  handleCommit(setGridFocus?: boolean, defocusInput?: boolean): void;
12
49
  handleFocus(): void;
13
- handleBlur(event: any): void;
14
- handleKeyDown(event: any): void;
15
- handleContextMenu(event: any): void;
16
- inputField: HTMLInputElement | null;
17
- initialValue: any;
18
- setValue(value: any): void;
19
- focus(): void;
50
+ handleBlur(event: React.FocusEvent<HTMLInputElement>): void;
20
51
  handleTab(backward?: boolean): void;
21
- sendUpdate(value: any): void;
52
+ handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>): void;
53
+ handleContextMenu(event: React.MouseEvent<HTMLInputElement | HTMLButtonElement>): void;
54
+ sendUpdate(value: string): void;
55
+ render(): ReactElement;
22
56
  }
23
- declare namespace FilterInputField {
24
- namespace propTypes {
25
- const className: PropTypes.Requireable<string>;
26
- const style: PropTypes.Requireable<object>;
27
- const value: PropTypes.Requireable<string>;
28
- const isAdvancedFilterSet: PropTypes.Requireable<boolean>;
29
- const onAdvancedFiltersTriggered: PropTypes.Requireable<(...args: any[]) => any>;
30
- const onChange: PropTypes.Requireable<(...args: any[]) => any>;
31
- const onDone: PropTypes.Requireable<(...args: any[]) => any>;
32
- const onTab: PropTypes.Requireable<(...args: any[]) => any>;
33
- const onContextMenu: PropTypes.Requireable<(...args: any[]) => any>;
34
- const debounceMs: PropTypes.Requireable<number>;
35
- }
36
- namespace defaultProps {
37
- const style_1: {};
38
- export { style_1 as style };
39
- const className_1: string;
40
- export { className_1 as className };
41
- const value_1: string;
42
- export { value_1 as value };
43
- const isAdvancedFilterSet_1: boolean;
44
- export { isAdvancedFilterSet_1 as isAdvancedFilterSet };
45
- export function onAdvancedFiltersTriggered_1(): void;
46
- export { onAdvancedFiltersTriggered_1 as onAdvancedFiltersTriggered };
47
- export function onChange_1(): void;
48
- export { onChange_1 as onChange };
49
- export function onDone_1(): void;
50
- export { onDone_1 as onDone };
51
- export function onTab_1(): void;
52
- export { onTab_1 as onTab };
53
- export function onContextMenu_1(): void;
54
- export { onContextMenu_1 as onContextMenu };
55
- const debounceMs_1: number;
56
- export { debounceMs_1 as debounceMs };
57
- }
58
- }
59
- import React from "react";
60
- import PropTypes from "prop-types";
57
+ export default FilterInputField;
61
58
  //# sourceMappingURL=FilterInputField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterInputField.d.ts","sourceRoot":"","sources":["../src/FilterInputField.jsx"],"names":[],"mappings":";AAQA;;;GAGG;AACH;IACE,wBAsBC;IAjBC,0EAA2E;IAyD7E,qBAUC;IAjBD,+BAKC;IAcD,mEAKC;IAED,oBAEC;IAED,6BAeC;IASD,gCAoBC;IAED,oCAGC;IAxHC,oCAAsB;IAGtB,kBAAyB;IA6B3B,2BAGC;IAED,cAEC;IAiDD,oCAKC;IA6BD,6BAGC;CAsDF;;;;;;;;;;;;;;;;;;;;;;;QAoB6B,qDAAQ;;QAC1B,mCAAQ;;QACV,iCAAQ;;QACT,gCAAQ;;QACA,wCAAQ"}
1
+ {"version":3,"file":"FilterInputField.d.ts","sourceRoot":"","sources":["../src/FilterInputField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAIxE,OAAO,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAE5C,UAAU,qBAAqB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,OAAO,CAAC;IAC7B,0BAA0B,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACvE,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,MAAM,EAAE,CAAC,YAAY,CAAC,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;IACjE,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,aAAa,EAAE,KAAK,CAAC,iBAAiB,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,CAAC;IAC7E,UAAU,EAAE,MAAM,CAAC;CACpB;AACD,UAAU,qBAAqB;IAC7B,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AACD;;;GAGG;AACH,cAAM,gBAAiB,SAAQ,aAAa,CAC1C,qBAAqB,EACrB,qBAAqB,CACtB;IACC,MAAM,CAAC,YAAY;;;;;0CAKe,IAAI;wBACtB,IAAI;sBACN,IAAI;qBACL,IAAI;6BACI,IAAI;;MAEvB;gBAEU,KAAK,EAAE,qBAAqB;IAwBxC,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAW1D,oBAAoB,IAAI,IAAI;IAI5B,UAAU,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAEpC,YAAY,EAAE,MAAM,CAAC;IAErB,mBAAmB,EAAE,aAAa,CAAC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IAK5D,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,KAAK,IAAI,IAAI;IAIb,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAOxD,YAAY,IAAI,IAAI;IAYpB,YAAY,CAAC,YAAY,UAAO,EAAE,YAAY,UAAO,GAAG,IAAI;IAO5D,WAAW,IAAI,IAAI;IAInB,UAAU,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAiB3D,SAAS,CAAC,QAAQ,UAAQ,GAAG,IAAI;IAOjC,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,aAAa,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAsBjE,iBAAiB,CACf,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,GAC5D,IAAI;IAKP,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK/B,MAAM,IAAI,YAAY;CAoDvB;AAED,eAAe,gBAAgB,CAAC"}
@@ -1,18 +1,26 @@
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, { PureComponent } from 'react';
2
- import PropTypes from 'prop-types';
3
4
  import classNames from 'classnames';
4
5
  import debounce from 'lodash.debounce';
5
6
  import { vsFilter, dhFilterFilled } from '@deephaven/icons';
6
7
  import "./FilterInputField.css";
7
8
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
9
+
8
10
  /**
9
11
  * An input field showing a input field and button.
10
12
  * Debounces changes.
11
13
  */
12
-
13
14
  class FilterInputField extends PureComponent {
14
15
  constructor(props) {
15
16
  super(props);
17
+
18
+ _defineProperty(this, "inputField", void 0);
19
+
20
+ _defineProperty(this, "initialValue", void 0);
21
+
22
+ _defineProperty(this, "debouncedSendUpdate", void 0);
23
+
16
24
  var {
17
25
  debounceMs
18
26
  } = props;
@@ -36,7 +44,9 @@ class FilterInputField extends PureComponent {
36
44
  }
37
45
 
38
46
  componentDidMount() {
39
- this.inputField.focus();
47
+ var _this$inputField;
48
+
49
+ (_this$inputField = this.inputField) === null || _this$inputField === void 0 ? void 0 : _this$inputField.focus();
40
50
  }
41
51
 
42
52
  componentDidUpdate(prevProps) {
@@ -52,11 +62,11 @@ class FilterInputField extends PureComponent {
52
62
 
53
63
  componentWillUnmount() {
54
64
  this.debouncedSendUpdate.cancel();
55
- } // clear filters needs to be able to reset the value externally
65
+ }
66
+
67
+ // clear filters needs to be able to reset the value externally
56
68
  // and due to the way this component handles its own debouncing
57
69
  // this was easier than moving state up.
58
-
59
-
60
70
  setValue(value) {
61
71
  this.initialValue = value;
62
72
  this.setState({
@@ -65,7 +75,9 @@ class FilterInputField extends PureComponent {
65
75
  }
66
76
 
67
77
  focus() {
68
- this.inputField.focus();
78
+ var _this$inputField2;
79
+
80
+ (_this$inputField2 = this.inputField) === null || _this$inputField2 === void 0 ? void 0 : _this$inputField2.focus();
69
81
  }
70
82
 
71
83
  handleChange(event) {
@@ -109,7 +121,9 @@ class FilterInputField extends PureComponent {
109
121
  }
110
122
 
111
123
  handleFocus() {
112
- this.inputField.select();
124
+ var _this$inputField3;
125
+
126
+ (_this$inputField3 = this.inputField) === null || _this$inputField3 === void 0 ? void 0 : _this$inputField3.select();
113
127
  }
114
128
 
115
129
  handleBlur(event) {
@@ -232,29 +246,18 @@ class FilterInputField extends PureComponent {
232
246
 
233
247
  }
234
248
 
235
- FilterInputField.propTypes = {
236
- className: PropTypes.string,
237
- style: PropTypes.object,
238
- value: PropTypes.string,
239
- isAdvancedFilterSet: PropTypes.bool,
240
- onAdvancedFiltersTriggered: PropTypes.func,
241
- onChange: PropTypes.func,
242
- onDone: PropTypes.func,
243
- onTab: PropTypes.func,
244
- onContextMenu: PropTypes.func,
245
- debounceMs: PropTypes.number
246
- };
247
- FilterInputField.defaultProps = {
249
+ _defineProperty(FilterInputField, "defaultProps", {
248
250
  style: {},
249
251
  className: '',
250
252
  value: '',
251
253
  isAdvancedFilterSet: false,
252
- onAdvancedFiltersTriggered: () => {},
253
- onChange: () => {},
254
- onDone: () => {},
255
- onTab: () => {},
256
- onContextMenu: () => {},
254
+ onAdvancedFiltersTriggered: () => undefined,
255
+ onChange: () => undefined,
256
+ onDone: () => undefined,
257
+ onTab: () => undefined,
258
+ onContextMenu: () => undefined,
257
259
  debounceMs: 150
258
- };
260
+ });
261
+
259
262
  export default FilterInputField;
260
263
  //# sourceMappingURL=FilterInputField.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/FilterInputField.jsx"],"names":["React","PureComponent","PropTypes","classNames","debounce","vsFilter","dhFilterFilled","FontAwesomeIcon","FilterInputField","constructor","props","debounceMs","debouncedSendUpdate","sendUpdate","bind","handleCancel","handleChange","handleCommit","handleFocus","handleBlur","handleKeyDown","handleContextMenu","inputField","value","initialValue","state","isChanged","componentDidMount","focus","componentDidUpdate","prevProps","flush","componentWillUnmount","cancel","setValue","setState","event","target","onDone","setGridFocus","defocusInput","select","relatedTarget","classList","contains","handleTab","backward","onTab","key","stopPropagation","preventDefault","shiftKey","onContextMenu","onChange","render","className","style","isAdvancedFilterSet","onAdvancedFiltersTriggered","propTypes","string","object","bool","func","number","defaultProps"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { vsFilter, dhFilterFilled } from '@deephaven/icons';\nimport './FilterInputField.scss';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\n\n/**\n * An input field showing a input field and button.\n * Debounces changes.\n */\nclass FilterInputField extends PureComponent {\n constructor(props) {\n super(props);\n\n const { debounceMs } = props;\n\n this.debouncedSendUpdate = debounce(this.sendUpdate.bind(this), debounceMs);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleCommit = this.handleCommit.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n\n this.inputField = null;\n\n const { value } = props;\n this.initialValue = value;\n this.state = {\n isChanged: false,\n value,\n };\n }\n\n componentDidMount() {\n this.inputField.focus();\n }\n\n componentDidUpdate(prevProps) {\n const { debounceMs } = this.props;\n if (prevProps.debounceMs !== debounceMs) {\n this.debouncedSendUpdate.flush();\n this.debouncedSendUpdate = debounce(\n this.sendUpdate.bind(this),\n debounceMs\n );\n }\n }\n\n componentWillUnmount() {\n this.debouncedSendUpdate.cancel();\n }\n\n // clear filters needs to be able to reset the value externally\n // and due to the way this component handles its own debouncing\n // this was easier than moving state up.\n setValue(value) {\n this.initialValue = value;\n this.setState({ value });\n }\n\n focus() {\n this.inputField.focus();\n }\n\n handleChange(event) {\n const { value } = event.target;\n this.setState({ value, isChanged: true });\n\n this.debouncedSendUpdate(value);\n }\n\n handleCancel() {\n this.debouncedSendUpdate.cancel();\n const { initialValue } = this;\n const { isChanged } = this.state;\n if (isChanged) {\n this.sendUpdate(initialValue);\n }\n\n const { onDone } = this.props;\n onDone();\n }\n\n handleCommit(setGridFocus = true, defocusInput = true) {\n this.debouncedSendUpdate.flush();\n\n const { onDone } = this.props;\n onDone(setGridFocus, defocusInput);\n }\n\n handleFocus() {\n this.inputField.select();\n }\n\n handleBlur(event) {\n const { relatedTarget } = event;\n // handleCommit results in a call that steals focus\n if (relatedTarget?.classList.contains('context-menu-container')) {\n // input blurred by calling context-menu\n // don't set grid focus, but do null column focus\n this.handleCommit(false, true);\n } else if (relatedTarget?.classList.contains('advanced-filter-button')) {\n // blurred by clicking an advanced filter button\n // don't set grid focus, maintain focusedFilterBarColumn state\n this.handleCommit(false, false);\n } else {\n // clear both, blurred elsewhere\n this.handleCommit(true, true);\n }\n }\n\n handleTab(backward = false) {\n this.debouncedSendUpdate.flush();\n\n const { onTab } = this.props;\n onTab(backward);\n }\n\n handleKeyDown(event) {\n switch (event.key) {\n case 'Escape':\n event.stopPropagation();\n event.preventDefault();\n this.handleCancel();\n break;\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n this.handleCommit();\n break;\n case 'Tab':\n event.stopPropagation();\n event.preventDefault();\n this.handleTab(event.shiftKey);\n break;\n default:\n break;\n }\n }\n\n handleContextMenu(event) {\n const { onContextMenu } = this.props;\n onContextMenu(event);\n }\n\n sendUpdate(value) {\n const { onChange } = this.props;\n onChange(value);\n }\n\n render() {\n const {\n className,\n style,\n isAdvancedFilterSet,\n onAdvancedFiltersTriggered,\n } = this.props;\n const { value } = this.state;\n return (\n <div\n style={style}\n className=\"iris-grid-input-autosized-wrapper\"\n data-value={value} // used by css based autosizer\n >\n <input\n ref={inputField => {\n this.inputField = inputField;\n }}\n className={classNames('iris-grid-input-field', className)}\n type=\"text\"\n value={value}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onContextMenu={this.handleContextMenu}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n />\n <div className=\"advanced-filter-button-container\">\n <button\n type=\"button\"\n className={classNames(\n 'btn btn-link btn-link-icon advanced-filter-button',\n {\n 'filter-set': isAdvancedFilterSet,\n }\n )}\n onClick={onAdvancedFiltersTriggered}\n onContextMenu={this.handleContextMenu}\n >\n <div className=\"fa-layers \">\n <FontAwesomeIcon icon={dhFilterFilled} className=\"filter-solid\" />\n <FontAwesomeIcon icon={vsFilter} className=\"filter-light\" />\n </div>\n </button>\n </div>\n </div>\n );\n }\n}\n\nFilterInputField.propTypes = {\n className: PropTypes.string,\n style: PropTypes.object,\n value: PropTypes.string,\n isAdvancedFilterSet: PropTypes.bool,\n onAdvancedFiltersTriggered: PropTypes.func,\n onChange: PropTypes.func,\n onDone: PropTypes.func,\n onTab: PropTypes.func,\n onContextMenu: PropTypes.func,\n debounceMs: PropTypes.number,\n};\n\nFilterInputField.defaultProps = {\n style: {},\n className: '',\n value: '',\n isAdvancedFilterSet: false,\n onAdvancedFiltersTriggered: () => {},\n onChange: () => {},\n onDone: () => {},\n onTab: () => {},\n onContextMenu: () => {},\n debounceMs: 150,\n};\n\nexport default FilterInputField;\n"],"file":"FilterInputField.js"}
1
+ {"version":3,"sources":["../src/FilterInputField.tsx"],"names":["React","PureComponent","classNames","debounce","vsFilter","dhFilterFilled","FontAwesomeIcon","FilterInputField","constructor","props","debounceMs","debouncedSendUpdate","sendUpdate","bind","handleCancel","handleChange","handleCommit","handleFocus","handleBlur","handleKeyDown","handleContextMenu","inputField","value","initialValue","state","isChanged","componentDidMount","focus","componentDidUpdate","prevProps","flush","componentWillUnmount","cancel","setValue","setState","event","target","onDone","setGridFocus","defocusInput","select","relatedTarget","classList","contains","handleTab","backward","onTab","key","stopPropagation","preventDefault","shiftKey","onContextMenu","onChange","render","className","style","isAdvancedFilterSet","onAdvancedFiltersTriggered","undefined"],"mappings":"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","sourcesContent":["import React, { ChangeEvent, PureComponent, ReactElement } from 'react';\nimport classNames from 'classnames';\nimport debounce from 'lodash.debounce';\nimport { vsFilter, dhFilterFilled } from '@deephaven/icons';\nimport './FilterInputField.scss';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport type { DebouncedFunc } from 'lodash';\n\ninterface FilterInputFieldProps {\n className: string;\n style: React.CSSProperties;\n value: string;\n isAdvancedFilterSet: boolean;\n onAdvancedFiltersTriggered: React.MouseEventHandler<HTMLButtonElement>;\n onChange: (value: string) => void;\n onDone: (setGridFocus?: boolean, defocusInput?: boolean) => void;\n onTab: (backward: boolean) => void;\n onContextMenu: React.MouseEventHandler<HTMLInputElement | HTMLButtonElement>;\n debounceMs: number;\n}\ninterface FilterInputFieldState {\n isChanged: boolean;\n value: string;\n}\n/**\n * An input field showing a input field and button.\n * Debounces changes.\n */\nclass FilterInputField extends PureComponent<\n FilterInputFieldProps,\n FilterInputFieldState\n> {\n static defaultProps = {\n style: {},\n className: '',\n value: '',\n isAdvancedFilterSet: false,\n onAdvancedFiltersTriggered: (): void => undefined,\n onChange: (): void => undefined,\n onDone: (): void => undefined,\n onTab: (): void => undefined,\n onContextMenu: (): void => undefined,\n debounceMs: 150,\n };\n\n constructor(props: FilterInputFieldProps) {\n super(props);\n\n const { debounceMs } = props;\n\n this.debouncedSendUpdate = debounce(this.sendUpdate.bind(this), debounceMs);\n this.handleCancel = this.handleCancel.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleCommit = this.handleCommit.bind(this);\n this.handleFocus = this.handleFocus.bind(this);\n this.handleBlur = this.handleBlur.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n this.handleContextMenu = this.handleContextMenu.bind(this);\n\n this.inputField = null;\n\n const { value } = props;\n this.initialValue = value;\n this.state = {\n isChanged: false,\n value,\n };\n }\n\n componentDidMount(): void {\n this.inputField?.focus();\n }\n\n componentDidUpdate(prevProps: FilterInputFieldProps): void {\n const { debounceMs } = this.props;\n if (prevProps.debounceMs !== debounceMs) {\n this.debouncedSendUpdate.flush();\n this.debouncedSendUpdate = debounce(\n this.sendUpdate.bind(this),\n debounceMs\n );\n }\n }\n\n componentWillUnmount(): void {\n this.debouncedSendUpdate.cancel();\n }\n\n inputField: HTMLInputElement | null;\n\n initialValue: string;\n\n debouncedSendUpdate: DebouncedFunc<(value: string) => void>;\n\n // clear filters needs to be able to reset the value externally\n // and due to the way this component handles its own debouncing\n // this was easier than moving state up.\n setValue(value: string): void {\n this.initialValue = value;\n this.setState({ value });\n }\n\n focus(): void {\n this.inputField?.focus();\n }\n\n handleChange(event: ChangeEvent<HTMLInputElement>): void {\n const { value } = event.target;\n this.setState({ value, isChanged: true });\n\n this.debouncedSendUpdate(value);\n }\n\n handleCancel(): void {\n this.debouncedSendUpdate.cancel();\n const { initialValue } = this;\n const { isChanged } = this.state;\n if (isChanged) {\n this.sendUpdate(initialValue);\n }\n\n const { onDone } = this.props;\n onDone();\n }\n\n handleCommit(setGridFocus = true, defocusInput = true): void {\n this.debouncedSendUpdate.flush();\n\n const { onDone } = this.props;\n onDone(setGridFocus, defocusInput);\n }\n\n handleFocus(): void {\n this.inputField?.select();\n }\n\n handleBlur(event: React.FocusEvent<HTMLInputElement>): void {\n const { relatedTarget } = event;\n // handleCommit results in a call that steals focus\n if (relatedTarget?.classList.contains('context-menu-container')) {\n // input blurred by calling context-menu\n // don't set grid focus, but do null column focus\n this.handleCommit(false, true);\n } else if (relatedTarget?.classList.contains('advanced-filter-button')) {\n // blurred by clicking an advanced filter button\n // don't set grid focus, maintain focusedFilterBarColumn state\n this.handleCommit(false, false);\n } else {\n // clear both, blurred elsewhere\n this.handleCommit(true, true);\n }\n }\n\n handleTab(backward = false): void {\n this.debouncedSendUpdate.flush();\n\n const { onTab } = this.props;\n onTab(backward);\n }\n\n handleKeyDown(event: React.KeyboardEvent<HTMLInputElement>): void {\n switch (event.key) {\n case 'Escape':\n event.stopPropagation();\n event.preventDefault();\n this.handleCancel();\n break;\n case 'Enter':\n event.stopPropagation();\n event.preventDefault();\n this.handleCommit();\n break;\n case 'Tab':\n event.stopPropagation();\n event.preventDefault();\n this.handleTab(event.shiftKey);\n break;\n default:\n break;\n }\n }\n\n handleContextMenu(\n event: React.MouseEvent<HTMLInputElement | HTMLButtonElement>\n ): void {\n const { onContextMenu } = this.props;\n onContextMenu(event);\n }\n\n sendUpdate(value: string): void {\n const { onChange } = this.props;\n onChange(value);\n }\n\n render(): ReactElement {\n const {\n className,\n style,\n isAdvancedFilterSet,\n onAdvancedFiltersTriggered,\n } = this.props;\n const { value } = this.state;\n return (\n <div\n style={style}\n className=\"iris-grid-input-autosized-wrapper\"\n data-value={value} // used by css based autosizer\n >\n <input\n ref={inputField => {\n this.inputField = inputField;\n }}\n className={classNames('iris-grid-input-field', className)}\n type=\"text\"\n value={value}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onChange={this.handleChange}\n onKeyDown={this.handleKeyDown}\n onContextMenu={this.handleContextMenu}\n autoComplete=\"off\"\n autoCorrect=\"off\"\n autoCapitalize=\"off\"\n spellCheck=\"false\"\n />\n <div className=\"advanced-filter-button-container\">\n <button\n type=\"button\"\n className={classNames(\n 'btn btn-link btn-link-icon advanced-filter-button',\n {\n 'filter-set': isAdvancedFilterSet,\n }\n )}\n onClick={onAdvancedFiltersTriggered}\n onContextMenu={this.handleContextMenu}\n >\n <div className=\"fa-layers \">\n <FontAwesomeIcon icon={dhFilterFilled} className=\"filter-solid\" />\n <FontAwesomeIcon icon={vsFilter} className=\"filter-light\" />\n </div>\n </button>\n </div>\n </div>\n );\n }\n}\n\nexport default FilterInputField;\n"],"file":"FilterInputField.js"}