@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,34 +1,72 @@
1
- export default AdvancedFilterCreator;
2
- declare class AdvancedFilterCreator extends React.PureComponent<any, any, any> {
1
+ import React, { PureComponent } from 'react';
2
+ import { OperatorValue as FilterOperatorValue, TypeValue as FilterTypeValue } from '@deephaven/filters';
3
+ import { Formatter, SortDirection } from '@deephaven/jsapi-utils';
4
+ import { CancelablePromise } from '@deephaven/utils';
5
+ import { Column, FilterCondition, Table } from '@deephaven/jsapi-shim';
6
+ import './AdvancedFilterCreator.scss';
7
+ import IrisGridModel from './IrisGridModel';
8
+ import { AdvancedFilterOptions } from './CommonTypes';
9
+ declare type FilterChangeHandler = (selectedType: FilterTypeValue, value: string) => void;
10
+ interface AdvancedFilterCreatorProps {
11
+ model: IrisGridModel;
12
+ column: Column;
13
+ onFilterChange: (column: Column, filter: FilterCondition, options: AdvancedFilterOptions) => void;
14
+ onSortChange: (column: Column, direction: SortDirection, addToExisting?: boolean) => void;
15
+ onDone: () => void;
16
+ options: AdvancedFilterOptions;
17
+ sortDirection: SortDirection;
18
+ formatter: Formatter;
19
+ }
20
+ interface AdvancedFilterItem {
21
+ selectedType?: FilterTypeValue;
22
+ value?: string;
23
+ key: string;
24
+ }
25
+ interface AdvancedFilterCreatorState {
26
+ filterItems: AdvancedFilterItem[];
27
+ filterOperators: FilterOperatorValue[];
28
+ invertSelection: boolean;
29
+ selectedValues: unknown[];
30
+ valuesTableError: null;
31
+ valuesTable?: Table;
32
+ }
33
+ declare class AdvancedFilterCreator extends PureComponent<AdvancedFilterCreatorProps, AdvancedFilterCreatorState> {
3
34
  static debounceFilterUpdate: number;
4
- constructor(props: any);
35
+ static defaultProps: {
36
+ options: {
37
+ filterItems: null;
38
+ filterOperators: null;
39
+ invertSelection: boolean;
40
+ selectedValues: never[];
41
+ };
42
+ sortDirection: null;
43
+ };
44
+ static makeFilterItem(): AdvancedFilterItem;
45
+ constructor(props: AdvancedFilterCreatorProps);
46
+ componentDidMount(): void;
47
+ componentWillUnmount(): void;
48
+ focusTrapContainer: React.RefObject<HTMLFormElement>;
49
+ debounceTimeout?: ReturnType<typeof setTimeout>;
50
+ filterKey: number;
51
+ valuesTablePromise?: CancelablePromise<Table>;
52
+ getFilterChangeHandler(index: number): FilterChangeHandler;
53
+ getFilterDeleteHandler(index: number): () => void;
54
+ getFilterTypes: (columnType: string) => FilterTypeValue[];
55
+ initValuesTable(): void;
56
+ handleFocusTrapEnd(): void;
57
+ handleFocusTrapStart(): void;
5
58
  handleAddAnd(): void;
6
59
  handleAddOr(): void;
7
- handleChangeFilterOperator(event: any): void;
8
- handleDone(event: any): void;
9
- handleFilterChange(filterIndex: any, selectedType: any, value: any): void;
10
- handleFilterDelete(filterIndex: any): void;
11
- handleSelectValueChange(selectedValues: any, invertSelection: any): void;
60
+ handleChangeFilterOperator(event: React.MouseEvent<HTMLButtonElement>): void;
61
+ handleFilterChange(filterIndex: number, selectedType: FilterTypeValue, value: string): void;
62
+ handleFilterDelete(filterIndex: number): void;
63
+ handleSelectValueChange(selectedValues: unknown[], invertSelection: boolean): void;
12
64
  handleReset(): void;
13
- handleSortDown(event: any): void;
14
- handleSortUp(event: any): void;
15
- handleSubmit(event: any): void;
16
- handleFocusTrapStart(): void;
17
- handleFocusTrapEnd(): void;
65
+ handleSortDown(event: React.MouseEvent<HTMLButtonElement>): void;
66
+ handleSortUp(event: React.MouseEvent<HTMLButtonElement>): void;
67
+ handleSubmit(event: React.FormEvent<HTMLFormElement>): void;
68
+ handleDone(event: React.MouseEvent<HTMLButtonElement>): void;
18
69
  handleUpdateTimeout(): void;
19
- focusTrapContainer: React.RefObject<any>;
20
- debounceTimeout: NodeJS.Timeout | null;
21
- filterKey: number;
22
- valuesTablePromise: import("@deephaven/utils").CancelablePromise<import("@deephaven/jsapi-shim").Table> | null;
23
- getFilterChangeHandler(index: any): (selectedType?: any, value?: any) => void;
24
- getFilterDeleteHandler(index: any): () => void;
25
- getFilterTypes: (this: any, columnType: any) => import("@deephaven/filters").Type[];
26
- initValuesTable(): void;
27
- makeFilterItem(updateKey?: boolean): {
28
- selectedType: string;
29
- value: string;
30
- key: number;
31
- };
32
70
  /**
33
71
  * Convenience function to check if the previous filter has been inputted, and
34
72
  * we should show the add filter buttons (+ AND OR)
@@ -37,46 +75,14 @@ declare class AdvancedFilterCreator extends React.PureComponent<any, any, any> {
37
75
  shouldShowAddFilter(): boolean;
38
76
  /**
39
77
  * Sorts the table in the specified direction. If already sorted in that direction, remove it.
40
- * @param {String} direction The sort direction, ASC or DESC
41
- * @param {boolean} addToExisting Add to the existing sort, or replace the existing table sort
78
+ * @param direction The sort direction, ASC or DESC
79
+ * @param addToExisting Add to the existing sort, or replace the existing table sort
42
80
  */
43
- sortTable(direction: string, addToExisting?: boolean): void;
81
+ sortTable(direction: SortDirection, addToExisting?: boolean): void;
44
82
  startUpdateTimer(): void;
45
83
  stopUpdateTimer(): void;
46
84
  sendUpdate(): void;
85
+ render(): JSX.Element;
47
86
  }
48
- declare namespace AdvancedFilterCreator {
49
- namespace propTypes {
50
- const model: PropTypes.Validator<any>;
51
- const column: PropTypes.Validator<PropTypes.InferProps<{
52
- name: PropTypes.Requireable<string>;
53
- type: PropTypes.Requireable<string>;
54
- }>>;
55
- const onFilterChange: PropTypes.Validator<(...args: any[]) => any>;
56
- const onSortChange: PropTypes.Validator<(...args: any[]) => any>;
57
- const onDone: PropTypes.Validator<(...args: any[]) => any>;
58
- const options: PropTypes.Requireable<PropTypes.InferProps<{
59
- filterItems: PropTypes.Requireable<(PropTypes.InferProps<{}> | null | undefined)[]>;
60
- filterOperators: PropTypes.Requireable<(PropTypes.InferProps<{}> | null | undefined)[]>;
61
- invertSelection: PropTypes.Requireable<boolean>;
62
- selectedValues: PropTypes.Requireable<any[]>;
63
- }>>;
64
- const sortDirection: PropTypes.Requireable<string>;
65
- const formatter: PropTypes.Validator<Formatter>;
66
- }
67
- namespace defaultProps {
68
- export namespace options_1 {
69
- const filterItems: null;
70
- const filterOperators: null;
71
- const invertSelection: boolean;
72
- const selectedValues: never[];
73
- }
74
- export { options_1 as options };
75
- const sortDirection_1: null;
76
- export { sortDirection_1 as sortDirection };
77
- }
78
- }
79
- import React from "react";
80
- import PropTypes from "prop-types";
81
- import { Formatter } from "packages/jsapi-utils/src/Formatter";
87
+ export default AdvancedFilterCreator;
82
88
  //# sourceMappingURL=AdvancedFilterCreator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreator.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreator.jsx"],"names":[],"mappings":";AAqBA;IACE,oCAAkC;IAElC,wBA2DC;IAmED,qBAKC;IAED,oBAKC;IAED,6CAWC;IA0ED,6BASC;IAjFD,0EASC;IAED,2CAsBC;IAED,yEAIC;IAED,oBAWC;IAED,iCAGC;IAED,+BAGC;IAED,+BAMC;IAxGD,6BAKC;IAZD,2BAKC;IAuHD,4BAGC;IA3NC,yCAA2C;IAC3C,uCAA2B;IAC3B,kBAAkB;IAClB,+GAA8B;IAoDhC,8EAEC;IAED,+CAEC;IAED,oFAA8E;IAE9E,wBAyBC;IAmID;;;;MAMC;IAED;;;;OAIG;IACH,+BAeC;IAED;;;;OAIG;IACH,6CAFW,OAAO,QAKjB;IAED,yBAOC;IAED,wBAKC;IAED,mBAwBC;CAyLF"}
1
+ {"version":3,"file":"AdvancedFilterCreator.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreator.tsx"],"names":[],"mappings":"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"}
@@ -4,25 +4,38 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
4
4
  // disabled for tab-index on focus traps, which are intentionally non-interactive
5
5
  import React, { PureComponent } from 'react';
6
6
  import classNames from 'classnames';
7
- import PropTypes from 'prop-types';
8
7
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
9
8
  import memoize from 'memoize-one';
10
- import { Operator as FilterOperator } from '@deephaven/filters';
9
+ import { Operator as FilterOperator, assertOperatorValue as assertFilterOperatorValue } from '@deephaven/filters';
11
10
  import { dhSortAmountDown, dhNewCircleLargeFilled } from '@deephaven/icons';
12
- import { Formatter, TableUtils } from '@deephaven/jsapi-utils';
11
+ import { TableUtils } from '@deephaven/jsapi-utils';
13
12
  import { ContextActionUtils, Tooltip } from '@deephaven/components';
14
13
  import Log from '@deephaven/log';
15
- import { PromiseUtils } from '@deephaven/utils';
14
+ import { PromiseUtils, assertNotNull } from '@deephaven/utils';
15
+ import shortid from 'shortid';
16
16
  import AdvancedFilterCreatorFilterItem from "./AdvancedFilterCreatorFilterItem.js";
17
17
  import AdvancedFilterCreatorSelectValue from "./AdvancedFilterCreatorSelectValue.js";
18
- import IrisGridModel from "./IrisGridModel.js";
19
18
  import "./AdvancedFilterCreator.css";
20
19
  var log = Log.module('AdvancedFilterCreator');
21
20
 
22
21
  class AdvancedFilterCreator extends PureComponent {
22
+ static makeFilterItem() {
23
+ return {
24
+ key: shortid()
25
+ };
26
+ }
27
+
23
28
  constructor(props) {
24
29
  super(props);
25
30
 
31
+ _defineProperty(this, "focusTrapContainer", void 0);
32
+
33
+ _defineProperty(this, "debounceTimeout", void 0);
34
+
35
+ _defineProperty(this, "filterKey", void 0);
36
+
37
+ _defineProperty(this, "valuesTablePromise", void 0);
38
+
26
39
  _defineProperty(this, "getFilterTypes", memoize(columnType => TableUtils.getFilterTypes(columnType)));
27
40
 
28
41
  this.handleAddAnd = this.handleAddAnd.bind(this);
@@ -40,21 +53,29 @@ class AdvancedFilterCreator extends PureComponent {
40
53
  this.handleFocusTrapEnd = this.handleFocusTrapEnd.bind(this);
41
54
  this.handleUpdateTimeout = this.handleUpdateTimeout.bind(this);
42
55
  this.focusTrapContainer = /*#__PURE__*/React.createRef();
43
- this.debounceTimeout = null;
44
56
  this.filterKey = 0;
45
- this.valuesTablePromise = null;
46
57
  var {
47
58
  options
48
59
  } = props;
49
60
  var {
50
- filterItems,
51
61
  filterOperators,
52
62
  invertSelection,
53
63
  selectedValues
54
64
  } = options;
65
+ var filterItems = options.filterItems.map(_ref => {
66
+ var {
67
+ selectedType,
68
+ value
69
+ } = _ref;
70
+ return {
71
+ selectedType,
72
+ value,
73
+ key: shortid()
74
+ };
75
+ });
55
76
 
56
77
  if (filterItems == null) {
57
- filterItems = [this.makeFilterItem()];
78
+ filterItems = [AdvancedFilterCreator.makeFilterItem()];
58
79
  }
59
80
 
60
81
  if (filterOperators == null) {
@@ -77,7 +98,7 @@ class AdvancedFilterCreator extends PureComponent {
77
98
  invertSelection,
78
99
  selectedValues,
79
100
  valuesTableError: null,
80
- valuesTable: null
101
+ valuesTable: undefined
81
102
  };
82
103
  }
83
104
 
@@ -135,13 +156,20 @@ class AdvancedFilterCreator extends PureComponent {
135
156
  }
136
157
 
137
158
  handleFocusTrapEnd() {
138
- var inputs = this.focusTrapContainer.current.querySelectorAll('button,select,input,textarea');
139
- inputs[0].focus();
159
+ var _this$focusTrapContai, _this$focusTrapContai2;
160
+
161
+ ((_this$focusTrapContai = this.focusTrapContainer) === null || _this$focusTrapContai === void 0 ? void 0 : (_this$focusTrapContai2 = _this$focusTrapContai.current) === null || _this$focusTrapContai2 === void 0 ? void 0 : _this$focusTrapContai2.querySelector('button,select,input,textarea')).focus();
140
162
  }
141
163
 
142
164
  handleFocusTrapStart() {
143
- var inputs = this.focusTrapContainer.current.querySelectorAll('button,select,input,textarea');
144
- inputs[inputs.length - 1].focus();
165
+ var _this$focusTrapContai3, _this$focusTrapContai4;
166
+
167
+ var inputs = (_this$focusTrapContai3 = this.focusTrapContainer) === null || _this$focusTrapContai3 === void 0 ? void 0 : (_this$focusTrapContai4 = _this$focusTrapContai3.current) === null || _this$focusTrapContai4 === void 0 ? void 0 : _this$focusTrapContai4.querySelectorAll('button,select,input,textarea');
168
+
169
+ if (inputs && inputs.length > 0) {
170
+ var element = inputs[inputs.length - 1];
171
+ element.focus();
172
+ }
145
173
  }
146
174
 
147
175
  handleAddAnd() {
@@ -149,7 +177,7 @@ class AdvancedFilterCreator extends PureComponent {
149
177
  filterItems,
150
178
  filterOperators
151
179
  } = this.state;
152
- filterItems = filterItems.concat(this.makeFilterItem());
180
+ filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());
153
181
  filterOperators = filterOperators.concat(FilterOperator.and);
154
182
  this.setState({
155
183
  filterItems,
@@ -162,7 +190,7 @@ class AdvancedFilterCreator extends PureComponent {
162
190
  filterItems,
163
191
  filterOperators
164
192
  } = this.state;
165
- filterItems = filterItems.concat(this.makeFilterItem());
193
+ filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());
166
194
  filterOperators = filterOperators.concat(FilterOperator.or);
167
195
  this.setState({
168
196
  filterItems,
@@ -171,14 +199,18 @@ class AdvancedFilterCreator extends PureComponent {
171
199
  }
172
200
 
173
201
  handleChangeFilterOperator(event) {
174
- var index = parseInt(event.target.dataset.index, 10);
202
+ var target = event.currentTarget;
175
203
  var {
176
- operator
177
- } = event.target.dataset;
204
+ operator,
205
+ index: strIndex
206
+ } = target.dataset;
207
+ assertNotNull(strIndex);
208
+ var index = parseInt(strIndex, 10);
178
209
  var {
179
210
  filterOperators
180
211
  } = this.state;
181
- filterOperators = [].concat(filterOperators);
212
+ filterOperators = [...filterOperators];
213
+ assertFilterOperatorValue(operator);
182
214
  filterOperators[index] = operator;
183
215
  this.setState({
184
216
  filterOperators
@@ -190,7 +222,7 @@ class AdvancedFilterCreator extends PureComponent {
190
222
  var {
191
223
  filterItems
192
224
  } = this.state;
193
- filterItems = [].concat(filterItems);
225
+ filterItems = [...filterItems];
194
226
  var {
195
227
  key
196
228
  } = filterItems[filterIndex];
@@ -210,8 +242,8 @@ class AdvancedFilterCreator extends PureComponent {
210
242
  filterItems,
211
243
  filterOperators
212
244
  } = this.state;
213
- filterItems = [].concat(filterItems);
214
- filterOperators = [].concat(filterOperators);
245
+ filterItems = [...filterItems];
246
+ filterOperators = [...filterOperators];
215
247
 
216
248
  if (filterIndex < filterItems.length) {
217
249
  filterItems.splice(filterIndex, 1);
@@ -225,7 +257,7 @@ class AdvancedFilterCreator extends PureComponent {
225
257
  }
226
258
 
227
259
  if (filterItems.length === 0) {
228
- filterItems.push(this.makeFilterItem());
260
+ filterItems.push(AdvancedFilterCreator.makeFilterItem());
229
261
  }
230
262
 
231
263
  this.setState({
@@ -246,7 +278,7 @@ class AdvancedFilterCreator extends PureComponent {
246
278
  handleReset() {
247
279
  log.debug('Resetting Advanced Filter');
248
280
  this.setState({
249
- filterItems: [this.makeFilterItem()],
281
+ filterItems: [AdvancedFilterCreator.makeFilterItem()],
250
282
  filterOperators: [],
251
283
  selectedValues: [],
252
284
  invertSelection: true
@@ -283,24 +315,9 @@ class AdvancedFilterCreator extends PureComponent {
283
315
  }
284
316
 
285
317
  handleUpdateTimeout() {
286
- this.debounceTimeout = null;
318
+ this.debounceTimeout = undefined;
287
319
  this.sendUpdate();
288
320
  }
289
-
290
- makeFilterItem() {
291
- var updateKey = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
292
- var key = this.filterKey;
293
-
294
- if (updateKey) {
295
- this.filterKey += 1;
296
- }
297
-
298
- return {
299
- selectedType: '',
300
- value: '',
301
- key
302
- };
303
- }
304
321
  /**
305
322
  * Convenience function to check if the previous filter has been inputted, and
306
323
  * we should show the add filter buttons (+ AND OR)
@@ -326,8 +343,8 @@ class AdvancedFilterCreator extends PureComponent {
326
343
  }
327
344
  /**
328
345
  * Sorts the table in the specified direction. If already sorted in that direction, remove it.
329
- * @param {String} direction The sort direction, ASC or DESC
330
- * @param {boolean} addToExisting Add to the existing sort, or replace the existing table sort
346
+ * @param direction The sort direction, ASC or DESC
347
+ * @param addToExisting Add to the existing sort, or replace the existing table sort
331
348
  */
332
349
 
333
350
 
@@ -346,9 +363,9 @@ class AdvancedFilterCreator extends PureComponent {
346
363
  }
347
364
 
348
365
  stopUpdateTimer() {
349
- if (this.debounceTimeout) {
366
+ if (this.debounceTimeout !== undefined) {
350
367
  clearTimeout(this.debounceTimeout);
351
- this.debounceTimeout = null;
368
+ this.debounceTimeout = undefined;
352
369
  }
353
370
  }
354
371
 
@@ -368,7 +385,13 @@ class AdvancedFilterCreator extends PureComponent {
368
385
  formatter
369
386
  } = model;
370
387
  var options = {
371
- filterItems,
388
+ filterItems: filterItems.filter(_ref2 => {
389
+ var {
390
+ selectedType,
391
+ value
392
+ } = _ref2;
393
+ return selectedType != null && value != null;
394
+ }),
372
395
  filterOperators,
373
396
  invertSelection,
374
397
  selectedValues
@@ -406,8 +429,8 @@ class AdvancedFilterCreator extends PureComponent {
406
429
  var filterItem = filterItems[i];
407
430
  var {
408
431
  key,
409
- selectedType,
410
- value
432
+ selectedType: _selectedType,
433
+ value: _value
411
434
  } = filterItem;
412
435
  var element = /*#__PURE__*/React.createElement(AdvancedFilterCreatorFilterItem, {
413
436
  key: key,
@@ -415,8 +438,8 @@ class AdvancedFilterCreator extends PureComponent {
415
438
  filterTypes: filterTypes,
416
439
  onChange: this.getFilterChangeHandler(i),
417
440
  onDelete: this.getFilterDeleteHandler(i),
418
- selectedType: selectedType,
419
- value: value
441
+ selectedType: _selectedType,
442
+ value: _value
420
443
  });
421
444
  filterItemElements.push(element);
422
445
 
@@ -474,7 +497,7 @@ class AdvancedFilterCreator extends PureComponent {
474
497
  className: "advanced-filter-creator",
475
498
  role: "presentation"
476
499
  }, /*#__PURE__*/React.createElement("div", {
477
- tabIndex: "0",
500
+ tabIndex: 0,
478
501
  onFocus: this.handleFocusTrapStart
479
502
  }), /*#__PURE__*/React.createElement("form", {
480
503
  onSubmit: this.handleSubmit,
@@ -506,7 +529,7 @@ class AdvancedFilterCreator extends PureComponent {
506
529
  className: "advanced-filter-column-name"
507
530
  }, column.name, "\xA0", /*#__PURE__*/React.createElement("span", {
508
531
  className: "column-type"
509
- }, "(", columnType, ")")), filterItemElements, isValuesTableAvailable && !valuesTableError && /*#__PURE__*/React.createElement(React.Fragment, null, !isBoolean && /*#__PURE__*/React.createElement("hr", null), /*#__PURE__*/React.createElement("div", {
532
+ }, "(", columnType, ")")), filterItemElements, isValuesTableAvailable && !valuesTableError && /*#__PURE__*/React.createElement(React.Fragment, null, !isBoolean && /*#__PURE__*/React.createElement("hr", null), valuesTable && /*#__PURE__*/React.createElement("div", {
510
533
  className: "form-group"
511
534
  }, /*#__PURE__*/React.createElement(AdvancedFilterCreatorSelectValue, {
512
535
  table: valuesTable,
@@ -527,7 +550,7 @@ class AdvancedFilterCreator extends PureComponent {
527
550
  className: "btn btn-primary",
528
551
  onClick: this.handleDone
529
552
  }, "Done"))), /*#__PURE__*/React.createElement("div", {
530
- tabIndex: "0",
553
+ tabIndex: 0,
531
554
  onFocus: this.handleFocusTrapEnd
532
555
  }));
533
556
  }
@@ -536,25 +559,7 @@ class AdvancedFilterCreator extends PureComponent {
536
559
 
537
560
  _defineProperty(AdvancedFilterCreator, "debounceFilterUpdate", 250);
538
561
 
539
- AdvancedFilterCreator.propTypes = {
540
- model: PropTypes.instanceOf(IrisGridModel).isRequired,
541
- column: PropTypes.shape({
542
- name: PropTypes.string,
543
- type: PropTypes.string
544
- }).isRequired,
545
- onFilterChange: PropTypes.func.isRequired,
546
- onSortChange: PropTypes.func.isRequired,
547
- onDone: PropTypes.func.isRequired,
548
- options: PropTypes.shape({
549
- filterItems: PropTypes.arrayOf(PropTypes.shape({})),
550
- filterOperators: PropTypes.arrayOf(PropTypes.shape({})),
551
- invertSelection: PropTypes.bool,
552
- selectedValues: PropTypes.arrayOf(PropTypes.any)
553
- }),
554
- sortDirection: PropTypes.string,
555
- formatter: PropTypes.instanceOf(Formatter).isRequired
556
- };
557
- AdvancedFilterCreator.defaultProps = {
562
+ _defineProperty(AdvancedFilterCreator, "defaultProps", {
558
563
  options: {
559
564
  filterItems: null,
560
565
  filterOperators: null,
@@ -562,6 +567,7 @@ AdvancedFilterCreator.defaultProps = {
562
567
  selectedValues: []
563
568
  },
564
569
  sortDirection: null
565
- };
570
+ });
571
+
566
572
  export default AdvancedFilterCreator;
567
573
  //# sourceMappingURL=AdvancedFilterCreator.js.map