@deephaven/iris-grid 0.8.2-beta.5 → 0.9.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (110) hide show
  1. package/dist/AdvancedFilterCreator.d.ts +2 -2
  2. package/dist/AdvancedFilterCreator.d.ts.map +1 -1
  3. package/dist/AdvancedFilterCreatorFilterItem.d.ts +30 -31
  4. package/dist/AdvancedFilterCreatorFilterItem.d.ts.map +1 -1
  5. package/dist/AdvancedFilterCreatorFilterItem.js +21 -28
  6. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  7. package/dist/CrossColumnSearch.d.ts +1 -1
  8. package/dist/CrossColumnSearch.d.ts.map +1 -1
  9. package/dist/DateUtils.d.ts +46 -44
  10. package/dist/DateUtils.d.ts.map +1 -1
  11. package/dist/DateUtils.js +37 -32
  12. package/dist/DateUtils.js.map +1 -1
  13. package/dist/Formatter.d.ts +37 -35
  14. package/dist/Formatter.d.ts.map +1 -1
  15. package/dist/Formatter.js +57 -37
  16. package/dist/Formatter.js.map +1 -1
  17. package/dist/FormatterUtils.d.ts +12 -8
  18. package/dist/FormatterUtils.d.ts.map +1 -1
  19. package/dist/FormatterUtils.js.map +1 -1
  20. package/dist/IrisGrid.d.ts +4 -4
  21. package/dist/IrisGrid.d.ts.map +1 -1
  22. package/dist/IrisGridMetricCalculator.d.ts +16 -2
  23. package/dist/IrisGridMetricCalculator.d.ts.map +1 -1
  24. package/dist/IrisGridMetricCalculator.js +4 -3
  25. package/dist/IrisGridMetricCalculator.js.map +1 -1
  26. package/dist/IrisGridTheme.d.ts +5 -75
  27. package/dist/IrisGridTheme.d.ts.map +1 -1
  28. package/dist/IrisGridTheme.js +2 -1
  29. package/dist/IrisGridTheme.js.map +1 -1
  30. package/dist/IrisGridUtils.d.ts +4 -4
  31. package/dist/IrisGridUtils.d.ts.map +1 -1
  32. package/dist/TableUtils.d.ts +127 -114
  33. package/dist/TableUtils.d.ts.map +1 -1
  34. package/dist/TableUtils.js +76 -69
  35. package/dist/TableUtils.js.map +1 -1
  36. package/dist/declaration.d.js +2 -0
  37. package/dist/declaration.d.js.map +1 -0
  38. package/dist/filters/FilterOperator.d.ts +5 -5
  39. package/dist/filters/FilterOperator.d.ts.map +1 -1
  40. package/dist/filters/FilterOperator.js +1 -3
  41. package/dist/filters/FilterOperator.js.map +1 -1
  42. package/dist/filters/FilterType.d.ts +23 -23
  43. package/dist/filters/FilterType.d.ts.map +1 -1
  44. package/dist/filters/FilterType.js +1 -3
  45. package/dist/filters/FilterType.js.map +1 -1
  46. package/dist/filters/index.d.ts +2 -2
  47. package/dist/filters/index.d.ts.map +1 -1
  48. package/dist/filters/index.js +2 -2
  49. package/dist/filters/index.js.map +1 -1
  50. package/dist/format-context-menus/CustomFormatAction.d.ts +27 -39
  51. package/dist/format-context-menus/CustomFormatAction.d.ts.map +1 -1
  52. package/dist/format-context-menus/CustomFormatAction.js +24 -23
  53. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  54. package/dist/format-context-menus/DateTimeFormatContextMenu.d.ts +8 -5
  55. package/dist/format-context-menus/DateTimeFormatContextMenu.d.ts.map +1 -1
  56. package/dist/format-context-menus/DateTimeFormatContextMenu.js +3 -3
  57. package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
  58. package/dist/format-context-menus/DecimalFormatContextMenu.d.ts +7 -5
  59. package/dist/format-context-menus/DecimalFormatContextMenu.d.ts.map +1 -1
  60. package/dist/format-context-menus/DecimalFormatContextMenu.js +3 -3
  61. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  62. package/dist/format-context-menus/FormatContextMenuUtils.d.ts +28 -27
  63. package/dist/format-context-menus/FormatContextMenuUtils.d.ts.map +1 -1
  64. package/dist/format-context-menus/FormatContextMenuUtils.js +12 -10
  65. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  66. package/dist/format-context-menus/IntegerFormatContextMenu.d.ts +7 -5
  67. package/dist/format-context-menus/IntegerFormatContextMenu.d.ts.map +1 -1
  68. package/dist/format-context-menus/IntegerFormatContextMenu.js +3 -3
  69. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  70. package/dist/format-context-menus/index.d.ts +3 -3
  71. package/dist/format-context-menus/index.d.ts.map +1 -1
  72. package/dist/format-context-menus/index.js.map +1 -1
  73. package/dist/formatters/BooleanColumnFormatter.d.ts +4 -4
  74. package/dist/formatters/BooleanColumnFormatter.d.ts.map +1 -1
  75. package/dist/formatters/BooleanColumnFormatter.js.map +1 -1
  76. package/dist/formatters/CharColumnFormatter.d.ts +4 -4
  77. package/dist/formatters/CharColumnFormatter.d.ts.map +1 -1
  78. package/dist/formatters/CharColumnFormatter.js.map +1 -1
  79. package/dist/formatters/DateTimeColumnFormatter.d.ts +6 -5
  80. package/dist/formatters/DateTimeColumnFormatter.d.ts.map +1 -1
  81. package/dist/formatters/DateTimeColumnFormatter.js.map +1 -1
  82. package/dist/formatters/DecimalColumnFormatter.d.ts +2 -2
  83. package/dist/formatters/DecimalColumnFormatter.d.ts.map +1 -1
  84. package/dist/formatters/DecimalColumnFormatter.js.map +1 -1
  85. package/dist/formatters/DefaultColumnFormatter.d.ts +4 -4
  86. package/dist/formatters/DefaultColumnFormatter.d.ts.map +1 -1
  87. package/dist/formatters/DefaultColumnFormatter.js.map +1 -1
  88. package/dist/formatters/IntegerColumnFormatter.d.ts +2 -2
  89. package/dist/formatters/IntegerColumnFormatter.d.ts.map +1 -1
  90. package/dist/formatters/IntegerColumnFormatter.js.map +1 -1
  91. package/dist/formatters/index.d.ts +1 -0
  92. package/dist/formatters/index.d.ts.map +1 -1
  93. package/dist/formatters/index.js +1 -0
  94. package/dist/formatters/index.js.map +1 -1
  95. package/dist/index.d.ts +1 -0
  96. package/dist/index.js +1 -0
  97. package/dist/index.js.map +1 -1
  98. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts +14 -5
  99. package/dist/mousehandlers/IrisGridContextMenuHandler.d.ts.map +1 -1
  100. package/dist/sidebar/ChartBuilder.d.ts +1 -1
  101. package/dist/sidebar/ChartBuilder.d.ts.map +1 -1
  102. package/dist/sidebar/TableCsvExporter.d.ts +1 -1
  103. package/dist/sidebar/TableCsvExporter.d.ts.map +1 -1
  104. package/dist/sidebar/aggregations/AggregationEdit.d.ts +2 -4
  105. package/dist/sidebar/aggregations/AggregationEdit.d.ts.map +1 -1
  106. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  107. package/dist/sidebar/aggregations/AggregationUtils.d.ts +1 -4
  108. package/dist/sidebar/aggregations/AggregationUtils.d.ts.map +1 -1
  109. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  110. package/package.json +11 -11
@@ -19,10 +19,10 @@ declare class AdvancedFilterCreator extends React.PureComponent<any, any, any> {
19
19
  focusTrapContainer: React.RefObject<any>;
20
20
  debounceTimeout: NodeJS.Timeout | null;
21
21
  filterKey: number;
22
- valuesTablePromise: import("@deephaven/utils").CancelablePromise<any> | null;
22
+ valuesTablePromise: import("@deephaven/utils").CancelablePromise<import("@deephaven/jsapi-shim").Table> | null;
23
23
  getFilterChangeHandler(index: any): (selectedType?: any, value?: any) => void;
24
24
  getFilterDeleteHandler(index: any): () => void;
25
- getFilterTypes: (this: any, columnType: any) => string[];
25
+ getFilterTypes: (this: any, columnType: any) => import("./filters").FilterType[];
26
26
  initValuesTable(): void;
27
27
  makeFilterItem(updateKey?: boolean): {
28
28
  selectedType: string;
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreator.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreator.jsx"],"names":[],"mappings":";AAsBA;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,6EAA8B;IAoDhC,8EAEC;IAED,+CAEC;IAED,yDAA8E;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.jsx"],"names":[],"mappings":";AAsBA;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,iFAA8E;IAE9E,wBAyBC;IAmID;;;;MAMC;IAED;;;;OAIG;IACH,+BAeC;IAED;;;;OAIG;IACH,6CAFW,OAAO,QAKjB;IAED,yBAOC;IAED,wBAKC;IAED,mBAwBC;CAyLF"}
@@ -1,34 +1,33 @@
1
- export default AdvancedFilterCreatorFilterItem;
2
- declare class AdvancedFilterCreatorFilterItem extends React.PureComponent<any, any, any> {
3
- static getLabelForTextFilter(filterType: any): "" | "contains" | "is exactly" | "is exactly (ignore case)" | "is not exactly" | "is not exactly (ignore case)" | "does not contain" | "starts with" | "ends with";
4
- static getLabelForNumberFilter(filterType: any): "" | "is equal to" | "is not equal to" | "greater than" | "greater than or equal to" | "less than" | "less than or equal to";
5
- static getLabelForDateFilter(filterType: any): "" | "date is" | "date is not" | "date is before" | "date is before or equal" | "date is after" | "date is after or equal";
6
- static getLabelForBooleanFilter(filterType: any): "" | "Is True" | "Is False" | "Is Null";
7
- static getLabelForFilter(columnType: any, filterType: any): "" | "contains" | "is equal to" | "is not equal to" | "greater than" | "greater than or equal to" | "less than" | "less than or equal to" | "date is" | "date is not" | "date is before" | "date is before or equal" | "date is after" | "date is after or equal" | "is exactly" | "is exactly (ignore case)" | "is not exactly" | "is not exactly (ignore case)" | "does not contain" | "starts with" | "ends with" | "Is True" | "Is False" | "Is Null";
8
- constructor(props: any);
9
- handleDelete(): void;
10
- handleTypeChange(event: any): void;
11
- handleValueChange(event: any): void;
12
- typeDropdown: HTMLSelectElement | null;
1
+ import React, { PureComponent } from 'react';
2
+ import { FilterTypeValue } from './filters';
3
+ interface AdvancedFilterCreatorFilterItemProps {
4
+ column: {
5
+ type: string;
6
+ };
7
+ filterTypes: FilterTypeValue[];
8
+ onChange(type: FilterTypeValue, value: string): void;
9
+ onDelete(): void;
10
+ selectedType?: FilterTypeValue;
11
+ value?: string;
13
12
  }
14
- declare namespace AdvancedFilterCreatorFilterItem {
15
- namespace propTypes {
16
- const column: PropTypes.Validator<PropTypes.InferProps<{
17
- type: PropTypes.Requireable<string>;
18
- }>>;
19
- const filterTypes: PropTypes.Validator<(string | null | undefined)[]>;
20
- const onChange: PropTypes.Validator<(...args: any[]) => any>;
21
- const onDelete: PropTypes.Validator<(...args: any[]) => any>;
22
- const selectedType: PropTypes.Requireable<string>;
23
- const value: PropTypes.Requireable<string>;
24
- }
25
- namespace defaultProps {
26
- const selectedType_1: string;
27
- export { selectedType_1 as selectedType };
28
- const value_1: string;
29
- export { value_1 as value };
30
- }
13
+ export interface AdvancedFilterCreatorFilterItemState {
14
+ selectedType: FilterTypeValue;
15
+ value: string;
31
16
  }
32
- import React from "react";
33
- import PropTypes from "prop-types";
17
+ declare class AdvancedFilterCreatorFilterItem extends PureComponent<AdvancedFilterCreatorFilterItemProps, AdvancedFilterCreatorFilterItemState> {
18
+ static getLabelForTextFilter(filterType: FilterTypeValue): string;
19
+ static getLabelForNumberFilter(filterType: FilterTypeValue): string;
20
+ static getLabelForDateFilter(filterType: FilterTypeValue): string;
21
+ static getLabelForBooleanFilter(filterType: FilterTypeValue): string;
22
+ static getLabelForFilter(columnType: string, filterType: FilterTypeValue): string;
23
+ constructor(props: AdvancedFilterCreatorFilterItemProps);
24
+ componentDidMount(): void;
25
+ componentDidUpdate(prevProps: AdvancedFilterCreatorFilterItemProps): void;
26
+ typeDropdown: HTMLSelectElement | null;
27
+ handleTypeChange(event: React.ChangeEvent<HTMLSelectElement>): void;
28
+ handleValueChange(event: React.ChangeEvent<HTMLInputElement>): void;
29
+ handleDelete(): void;
30
+ render(): JSX.Element;
31
+ }
32
+ export default AdvancedFilterCreatorFilterItem;
34
33
  //# sourceMappingURL=AdvancedFilterCreatorFilterItem.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreatorFilterItem.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreatorFilterItem.jsx"],"names":[],"mappings":";AAYA;IACE,kNAsBC;IAED,8KAkBC;IAED,0KAmBC;IAED,0FAYC;IAED,sfAsBC;IAED,wBAcC;IAuCD,qBAKC;IA/BD,mCAWC;IAED,oCAWC;IA7CC,uCAAwB;CAmH3B"}
1
+ {"version":3,"file":"AdvancedFilterCreatorFilterItem.d.ts","sourceRoot":"","sources":["../src/AdvancedFilterCreatorFilterItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAM7C,OAAO,EAAc,eAAe,EAAE,MAAM,WAAW,CAAC;AAIxD,UAAU,oCAAoC;IAC5C,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACzB,WAAW,EAAE,eAAe,EAAE,CAAC;IAC/B,QAAQ,CAAC,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrD,QAAQ,IAAI,IAAI,CAAC;IACjB,YAAY,CAAC,EAAE,eAAe,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oCAAoC;IACnD,YAAY,EAAE,eAAe,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAED,cAAM,+BAAgC,SAAQ,aAAa,CACzD,oCAAoC,EACpC,oCAAoC,CACrC;IACC,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM;IAwBjE,MAAM,CAAC,uBAAuB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM;IAoBnE,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM;IAqBjE,MAAM,CAAC,wBAAwB,CAAC,UAAU,EAAE,eAAe,GAAG,MAAM;IAcpE,MAAM,CAAC,iBAAiB,CACtB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,eAAe,GAC1B,MAAM;gBAwBG,KAAK,EAAE,oCAAoC;IAgBvD,iBAAiB,IAAI,IAAI;IAIzB,kBAAkB,CAAC,SAAS,EAAE,oCAAoC,GAAG,IAAI;IAWzE,YAAY,EAAE,iBAAiB,GAAG,IAAI,CAAC;IAEvC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,iBAAiB,CAAC,GAAG,IAAI;IAanE,iBAAiB,CAAC,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,gBAAgB,CAAC,GAAG,IAAI;IAanE,YAAY,IAAI,IAAI;IAOpB,MAAM,IAAI,GAAG,CAAC,OAAO;CA6DtB;AAED,eAAe,+BAA+B,CAAC"}
@@ -1,12 +1,13 @@
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
  /* eslint react/no-did-update-set-state: "off" */
2
4
  import React, { PureComponent } from 'react';
3
- import PropTypes from 'prop-types';
4
5
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
6
  import { Tooltip } from '@deephaven/components';
6
7
  import { vsTrash } from '@deephaven/icons';
7
8
  import Log from '@deephaven/log';
8
9
  import TableUtils from "./TableUtils.js";
9
- import FilterType from "./filters/FilterType.js";
10
+ import { FilterType } from "./filters/index.js";
10
11
  var log = Log.module('AdvancedFilterCreatorFilterItem');
11
12
 
12
13
  class AdvancedFilterCreatorFilterItem extends PureComponent {
@@ -135,29 +136,35 @@ class AdvancedFilterCreatorFilterItem extends PureComponent {
135
136
 
136
137
  constructor(props) {
137
138
  super(props);
139
+
140
+ _defineProperty(this, "typeDropdown", void 0);
141
+
138
142
  this.handleDelete = this.handleDelete.bind(this);
139
143
  this.handleTypeChange = this.handleTypeChange.bind(this);
140
144
  this.handleValueChange = this.handleValueChange.bind(this);
141
145
  this.typeDropdown = null;
142
146
  var {
143
- selectedType,
144
- value,
145
- filterTypes
147
+ value = '',
148
+ filterTypes,
149
+ selectedType = filterTypes[0]
146
150
  } = props;
147
151
  this.state = {
148
- selectedType: selectedType || filterTypes[0],
152
+ selectedType,
149
153
  value
150
154
  };
151
155
  }
152
156
 
153
157
  componentDidMount() {
154
- this.typeDropdown.focus();
158
+ var _this$typeDropdown;
159
+
160
+ (_this$typeDropdown = this.typeDropdown) === null || _this$typeDropdown === void 0 ? void 0 : _this$typeDropdown.focus();
155
161
  }
156
162
 
157
163
  componentDidUpdate(prevProps) {
158
164
  var {
159
- selectedType,
160
- value
165
+ value = '',
166
+ filterTypes,
167
+ selectedType = filterTypes[0]
161
168
  } = this.props;
162
169
 
163
170
  if (prevProps.selectedType !== selectedType || prevProps.value !== value) {
@@ -202,7 +209,7 @@ class AdvancedFilterCreatorFilterItem extends PureComponent {
202
209
  selectedType
203
210
  } = this.state;
204
211
 
205
- if (selectedType != null && selectedType.length > 0) {
212
+ if (selectedType != null) {
206
213
  // Don't send an update unless they've already selected a type
207
214
  onChange(selectedType, value);
208
215
  }
@@ -229,11 +236,11 @@ class AdvancedFilterCreatorFilterItem extends PureComponent {
229
236
  var typeOptionElements = [];
230
237
 
231
238
  for (var i = 0; i < filterTypes.length; i += 1) {
232
- var type = filterTypes[i];
233
- var label = AdvancedFilterCreatorFilterItem.getLabelForFilter(column.type, type);
239
+ var _type = filterTypes[i];
240
+ var label = AdvancedFilterCreatorFilterItem.getLabelForFilter(column.type, _type);
234
241
  var element = /*#__PURE__*/React.createElement("option", {
235
- key: type,
236
- value: type
242
+ key: _type,
243
+ value: _type
237
244
  }, label);
238
245
  typeOptionElements.push(element);
239
246
  }
@@ -274,19 +281,5 @@ class AdvancedFilterCreatorFilterItem extends PureComponent {
274
281
 
275
282
  }
276
283
 
277
- AdvancedFilterCreatorFilterItem.propTypes = {
278
- column: PropTypes.shape({
279
- type: PropTypes.string
280
- }).isRequired,
281
- filterTypes: PropTypes.arrayOf(PropTypes.string).isRequired,
282
- onChange: PropTypes.func.isRequired,
283
- onDelete: PropTypes.func.isRequired,
284
- selectedType: PropTypes.string,
285
- value: PropTypes.string
286
- };
287
- AdvancedFilterCreatorFilterItem.defaultProps = {
288
- selectedType: '',
289
- value: ''
290
- };
291
284
  export default AdvancedFilterCreatorFilterItem;
292
285
  //# sourceMappingURL=AdvancedFilterCreatorFilterItem.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/AdvancedFilterCreatorFilterItem.jsx"],"names":["React","PureComponent","PropTypes","FontAwesomeIcon","Tooltip","vsTrash","Log","TableUtils","FilterType","log","module","AdvancedFilterCreatorFilterItem","getLabelForTextFilter","filterType","eq","eqIgnoreCase","notEq","notEqIgnoreCase","contains","notContains","startsWith","endsWith","warn","getLabelForNumberFilter","greaterThan","greaterThanOrEqualTo","lessThan","lessThanOrEqualTo","getLabelForDateFilter","getLabelForBooleanFilter","isTrue","isFalse","isNull","getLabelForFilter","columnType","isNumberType","isCharType","isTextType","isDateType","isBooleanType","constructor","props","handleDelete","bind","handleTypeChange","handleValueChange","typeDropdown","selectedType","value","filterTypes","state","componentDidMount","focus","componentDidUpdate","prevProps","setState","event","debug2","target","onChange","length","debug","onDelete","render","column","showValueInput","type","typeOptionElements","i","label","element","push","propTypes","shape","string","isRequired","arrayOf","func","defaultProps"],"mappings":"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","sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Tooltip } from '@deephaven/components';\nimport { vsTrash } from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport TableUtils from './TableUtils';\nimport FilterType from './filters/FilterType';\n\nconst log = Log.module('AdvancedFilterCreatorFilterItem');\n\nclass AdvancedFilterCreatorFilterItem extends PureComponent {\n static getLabelForTextFilter(filterType) {\n switch (filterType) {\n case FilterType.eq:\n return 'is exactly';\n case FilterType.eqIgnoreCase:\n return 'is exactly (ignore case)';\n case FilterType.notEq:\n return 'is not exactly';\n case FilterType.notEqIgnoreCase:\n return 'is not exactly (ignore case)';\n case FilterType.contains:\n return 'contains';\n case FilterType.notContains:\n return 'does not contain';\n case FilterType.startsWith:\n return 'starts with';\n case FilterType.endsWith:\n return 'ends with';\n default:\n log.warn('Unrecognized text filter type', filterType);\n return '';\n }\n }\n\n static getLabelForNumberFilter(filterType) {\n switch (filterType) {\n case FilterType.eq:\n return 'is equal to';\n case FilterType.notEq:\n return 'is not equal to';\n case FilterType.greaterThan:\n return 'greater than';\n case FilterType.greaterThanOrEqualTo:\n return 'greater than or equal to';\n case FilterType.lessThan:\n return 'less than';\n case FilterType.lessThanOrEqualTo:\n return 'less than or equal to';\n default:\n log.warn('Unrecognized number filter type', filterType);\n return '';\n }\n }\n\n static getLabelForDateFilter(filterType) {\n switch (filterType) {\n case FilterType.eq:\n return 'date is';\n case FilterType.notEq:\n return 'date is not';\n case FilterType.notEqIgnoreCase:\n case FilterType.greaterThan:\n return 'date is after';\n case FilterType.greaterThanOrEqualTo:\n return 'date is after or equal';\n case FilterType.lessThan:\n return 'date is before';\n case FilterType.lessThanOrEqualTo:\n return 'date is before or equal';\n default:\n log.warn('Unrecognized date filter type', filterType);\n return '';\n }\n }\n\n static getLabelForBooleanFilter(filterType) {\n switch (filterType) {\n case FilterType.isTrue:\n return 'Is True';\n case FilterType.isFalse:\n return 'Is False';\n case FilterType.isNull:\n return 'Is Null';\n default:\n log.warn('Unrecognized boolean filter type', filterType);\n return '';\n }\n }\n\n static getLabelForFilter(columnType, filterType) {\n if (\n TableUtils.isNumberType(columnType) ||\n TableUtils.isCharType(columnType)\n ) {\n return AdvancedFilterCreatorFilterItem.getLabelForNumberFilter(\n filterType\n );\n }\n if (TableUtils.isTextType(columnType)) {\n return AdvancedFilterCreatorFilterItem.getLabelForTextFilter(filterType);\n }\n if (TableUtils.isDateType(columnType)) {\n return AdvancedFilterCreatorFilterItem.getLabelForDateFilter(filterType);\n }\n if (TableUtils.isBooleanType(columnType)) {\n return AdvancedFilterCreatorFilterItem.getLabelForBooleanFilter(\n filterType\n );\n }\n log.warn('Unrecognized column type: ', columnType);\n return '';\n }\n\n constructor(props) {\n super(props);\n\n this.handleDelete = this.handleDelete.bind(this);\n this.handleTypeChange = this.handleTypeChange.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n this.typeDropdown = null;\n\n const { selectedType, value, filterTypes } = props;\n\n this.state = {\n selectedType: selectedType || filterTypes[0],\n value,\n };\n }\n\n componentDidMount() {\n this.typeDropdown.focus();\n }\n\n componentDidUpdate(prevProps) {\n const { selectedType, value } = this.props;\n if (prevProps.selectedType !== selectedType || prevProps.value !== value) {\n this.setState({ selectedType, value });\n }\n }\n\n handleTypeChange(event) {\n log.debug2('typeChange');\n const selectedType = event.target.value;\n this.setState({ selectedType });\n\n const { onChange } = this.props;\n const { value } = this.state;\n if (value != null && value.length > 0) {\n // Don't send an update unless there's already a value entered\n onChange(selectedType, value);\n }\n }\n\n handleValueChange(event) {\n log.debug2('valueChange');\n const { value } = event.target;\n this.setState({ value });\n\n const { onChange } = this.props;\n const { selectedType } = this.state;\n if (selectedType != null && selectedType.length > 0) {\n // Don't send an update unless they've already selected a type\n onChange(selectedType, value);\n }\n }\n\n handleDelete() {\n log.debug('delete');\n\n const { onDelete } = this.props;\n onDelete();\n }\n\n render() {\n const { column, filterTypes } = this.props;\n const { selectedType, value } = this.state;\n const showValueInput = !TableUtils.isBooleanType(column.type);\n const typeOptionElements = [];\n for (let i = 0; i < filterTypes.length; i += 1) {\n const type = filterTypes[i];\n const label = AdvancedFilterCreatorFilterItem.getLabelForFilter(\n column.type,\n type\n );\n const element = (\n <option key={type} value={type}>\n {label}\n </option>\n );\n typeOptionElements.push(element);\n }\n\n return (\n <div className=\"advanced-filter-creator-filter-item\">\n <div className=\"form-row\">\n <div className=\"form-group col\">\n <select\n className=\"form-control custom-select\"\n value={selectedType}\n onChange={this.handleTypeChange}\n ref={typeDropdown => {\n this.typeDropdown = typeDropdown;\n }}\n >\n {typeOptionElements}\n </select>\n </div>\n {showValueInput && (\n <div className=\"form-group col\">\n <div className=\"input-group\">\n <input\n type=\"text\"\n className=\"form-control\"\n placeholder=\"Enter value\"\n value={value}\n onChange={this.handleValueChange}\n />\n </div>\n </div>\n )}\n <div className=\"form-group col-1 px-0\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon w-100 h-100 p-0 m-0\"\n onClick={this.handleDelete}\n >\n <FontAwesomeIcon icon={vsTrash} />\n <Tooltip>Remove Filter</Tooltip>\n </button>\n </div>\n </div>\n </div>\n );\n }\n}\n\nAdvancedFilterCreatorFilterItem.propTypes = {\n column: PropTypes.shape({ type: PropTypes.string }).isRequired,\n filterTypes: PropTypes.arrayOf(PropTypes.string).isRequired,\n onChange: PropTypes.func.isRequired,\n onDelete: PropTypes.func.isRequired,\n selectedType: PropTypes.string,\n value: PropTypes.string,\n};\n\nAdvancedFilterCreatorFilterItem.defaultProps = {\n selectedType: '',\n value: '',\n};\n\nexport default AdvancedFilterCreatorFilterItem;\n"],"file":"AdvancedFilterCreatorFilterItem.js"}
1
+ {"version":3,"sources":["../src/AdvancedFilterCreatorFilterItem.tsx"],"names":["React","PureComponent","FontAwesomeIcon","Tooltip","vsTrash","Log","TableUtils","FilterType","log","module","AdvancedFilterCreatorFilterItem","getLabelForTextFilter","filterType","eq","eqIgnoreCase","notEq","notEqIgnoreCase","contains","notContains","startsWith","endsWith","warn","getLabelForNumberFilter","greaterThan","greaterThanOrEqualTo","lessThan","lessThanOrEqualTo","getLabelForDateFilter","getLabelForBooleanFilter","isTrue","isFalse","isNull","getLabelForFilter","columnType","isNumberType","isCharType","isTextType","isDateType","isBooleanType","constructor","props","handleDelete","bind","handleTypeChange","handleValueChange","typeDropdown","value","filterTypes","selectedType","state","componentDidMount","focus","componentDidUpdate","prevProps","setState","event","debug2","target","onChange","length","debug","onDelete","render","column","showValueInput","type","typeOptionElements","i","label","element","push"],"mappings":"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","sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent } from 'react';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Tooltip } from '@deephaven/components';\nimport { vsTrash } from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport TableUtils from './TableUtils';\nimport { FilterType, FilterTypeValue } from './filters';\n\nconst log = Log.module('AdvancedFilterCreatorFilterItem');\n\ninterface AdvancedFilterCreatorFilterItemProps {\n column: { type: string };\n filterTypes: FilterTypeValue[];\n onChange(type: FilterTypeValue, value: string): void;\n onDelete(): void;\n selectedType?: FilterTypeValue;\n value?: string;\n}\n\nexport interface AdvancedFilterCreatorFilterItemState {\n selectedType: FilterTypeValue;\n value: string;\n}\n\nclass AdvancedFilterCreatorFilterItem extends PureComponent<\n AdvancedFilterCreatorFilterItemProps,\n AdvancedFilterCreatorFilterItemState\n> {\n static getLabelForTextFilter(filterType: FilterTypeValue): string {\n switch (filterType) {\n case FilterType.eq:\n return 'is exactly';\n case FilterType.eqIgnoreCase:\n return 'is exactly (ignore case)';\n case FilterType.notEq:\n return 'is not exactly';\n case FilterType.notEqIgnoreCase:\n return 'is not exactly (ignore case)';\n case FilterType.contains:\n return 'contains';\n case FilterType.notContains:\n return 'does not contain';\n case FilterType.startsWith:\n return 'starts with';\n case FilterType.endsWith:\n return 'ends with';\n default:\n log.warn('Unrecognized text filter type', filterType);\n return '';\n }\n }\n\n static getLabelForNumberFilter(filterType: FilterTypeValue): string {\n switch (filterType) {\n case FilterType.eq:\n return 'is equal to';\n case FilterType.notEq:\n return 'is not equal to';\n case FilterType.greaterThan:\n return 'greater than';\n case FilterType.greaterThanOrEqualTo:\n return 'greater than or equal to';\n case FilterType.lessThan:\n return 'less than';\n case FilterType.lessThanOrEqualTo:\n return 'less than or equal to';\n default:\n log.warn('Unrecognized number filter type', filterType);\n return '';\n }\n }\n\n static getLabelForDateFilter(filterType: FilterTypeValue): string {\n switch (filterType) {\n case FilterType.eq:\n return 'date is';\n case FilterType.notEq:\n return 'date is not';\n case FilterType.notEqIgnoreCase:\n case FilterType.greaterThan:\n return 'date is after';\n case FilterType.greaterThanOrEqualTo:\n return 'date is after or equal';\n case FilterType.lessThan:\n return 'date is before';\n case FilterType.lessThanOrEqualTo:\n return 'date is before or equal';\n default:\n log.warn('Unrecognized date filter type', filterType);\n return '';\n }\n }\n\n static getLabelForBooleanFilter(filterType: FilterTypeValue): string {\n switch (filterType) {\n case FilterType.isTrue:\n return 'Is True';\n case FilterType.isFalse:\n return 'Is False';\n case FilterType.isNull:\n return 'Is Null';\n default:\n log.warn('Unrecognized boolean filter type', filterType);\n return '';\n }\n }\n\n static getLabelForFilter(\n columnType: string,\n filterType: FilterTypeValue\n ): string {\n if (\n TableUtils.isNumberType(columnType) ||\n TableUtils.isCharType(columnType)\n ) {\n return AdvancedFilterCreatorFilterItem.getLabelForNumberFilter(\n filterType\n );\n }\n if (TableUtils.isTextType(columnType)) {\n return AdvancedFilterCreatorFilterItem.getLabelForTextFilter(filterType);\n }\n if (TableUtils.isDateType(columnType)) {\n return AdvancedFilterCreatorFilterItem.getLabelForDateFilter(filterType);\n }\n if (TableUtils.isBooleanType(columnType)) {\n return AdvancedFilterCreatorFilterItem.getLabelForBooleanFilter(\n filterType\n );\n }\n log.warn('Unrecognized column type: ', columnType);\n return '';\n }\n\n constructor(props: AdvancedFilterCreatorFilterItemProps) {\n super(props);\n\n this.handleDelete = this.handleDelete.bind(this);\n this.handleTypeChange = this.handleTypeChange.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n this.typeDropdown = null;\n\n const { value = '', filterTypes, selectedType = filterTypes[0] } = props;\n\n this.state = {\n selectedType,\n value,\n };\n }\n\n componentDidMount(): void {\n this.typeDropdown?.focus();\n }\n\n componentDidUpdate(prevProps: AdvancedFilterCreatorFilterItemProps): void {\n const {\n value = '',\n filterTypes,\n selectedType = filterTypes[0],\n } = this.props;\n if (prevProps.selectedType !== selectedType || prevProps.value !== value) {\n this.setState({ selectedType, value });\n }\n }\n\n typeDropdown: HTMLSelectElement | null;\n\n handleTypeChange(event: React.ChangeEvent<HTMLSelectElement>): void {\n log.debug2('typeChange');\n const selectedType = event.target.value as FilterTypeValue;\n this.setState({ selectedType });\n\n const { onChange } = this.props;\n const { value } = this.state;\n if (value != null && value.length > 0) {\n // Don't send an update unless there's already a value entered\n onChange(selectedType, value);\n }\n }\n\n handleValueChange(event: React.ChangeEvent<HTMLInputElement>): void {\n log.debug2('valueChange');\n const { value } = event.target;\n this.setState({ value });\n\n const { onChange } = this.props;\n const { selectedType } = this.state;\n if (selectedType != null) {\n // Don't send an update unless they've already selected a type\n onChange(selectedType, value);\n }\n }\n\n handleDelete(): void {\n log.debug('delete');\n\n const { onDelete } = this.props;\n onDelete();\n }\n\n render(): JSX.Element {\n const { column, filterTypes } = this.props;\n const { selectedType, value } = this.state;\n const showValueInput = !TableUtils.isBooleanType(column.type);\n const typeOptionElements = [];\n for (let i = 0; i < filterTypes.length; i += 1) {\n const type = filterTypes[i];\n const label = AdvancedFilterCreatorFilterItem.getLabelForFilter(\n column.type,\n type\n );\n const element = (\n <option key={type} value={type}>\n {label}\n </option>\n );\n typeOptionElements.push(element);\n }\n\n return (\n <div className=\"advanced-filter-creator-filter-item\">\n <div className=\"form-row\">\n <div className=\"form-group col\">\n <select\n className=\"form-control custom-select\"\n value={selectedType}\n onChange={this.handleTypeChange}\n ref={typeDropdown => {\n this.typeDropdown = typeDropdown;\n }}\n >\n {typeOptionElements}\n </select>\n </div>\n {showValueInput && (\n <div className=\"form-group col\">\n <div className=\"input-group\">\n <input\n type=\"text\"\n className=\"form-control\"\n placeholder=\"Enter value\"\n value={value}\n onChange={this.handleValueChange}\n />\n </div>\n </div>\n )}\n <div className=\"form-group col-1 px-0\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon w-100 h-100 p-0 m-0\"\n onClick={this.handleDelete}\n >\n <FontAwesomeIcon icon={vsTrash} />\n <Tooltip>Remove Filter</Tooltip>\n </button>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorFilterItem;\n"],"file":"AdvancedFilterCreatorFilterItem.js"}
@@ -1,6 +1,6 @@
1
1
  export default CrossColumnSearch;
2
2
  declare class CrossColumnSearch extends React.PureComponent<any, any, any> {
3
- static createSearchFilter(searchValue: any, selectedColumns: any, columns: any, invertSelection: any): any;
3
+ static createSearchFilter(searchValue: any, selectedColumns: any, columns: any, invertSelection: any): import("@deephaven/jsapi-shim").FilterCondition | null;
4
4
  constructor(props: any);
5
5
  handleSearchValueChange(event: any): void;
6
6
  toggleColumn(name: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"CrossColumnSearch.d.ts","sourceRoot":"","sources":["../src/CrossColumnSearch.jsx"],"names":[],"mappings":";AAgBA;IACE,2GAyBC;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.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,80 +1,82 @@
1
- export default DateUtils;
1
+ import type { DateWrapper } from '@deephaven/jsapi-shim';
2
+ interface DateParts<T> {
3
+ year: T;
4
+ month: T;
5
+ date: T;
6
+ hours: T;
7
+ minutes: T;
8
+ seconds: T;
9
+ nanos: T;
10
+ }
2
11
  declare class DateUtils {
3
12
  static FULL_DATE_FORMAT: string;
4
13
  static months: string[];
5
14
  /**
6
15
  *
7
- * @param {string} timeZone The time zone to parse this time in. E.g. America/New_York
8
- * @param {Number} year The year for the date
9
- * @param {Number} month The month, starting at 0
10
- * @param {Number} day The day, starting at 1
11
- * @param {Number} hour The hours
12
- * @param {Number} minute The minutes
13
- * @param {Number} second The seconds
14
- * @param {Number} ns The nanoseconds
16
+ * @param timeZone The time zone to parse this time in. E.g. America/New_York
17
+ * @param year The year for the date
18
+ * @param month The month, starting at 0
19
+ * @param day The day, starting at 1
20
+ * @param hour The hours
21
+ * @param minute The minutes
22
+ * @param second The seconds
23
+ * @param ns The nanoseconds
15
24
  */
16
- static makeDateWrapper(timeZone: string, year: number, month?: number, day?: number, hour?: number, minute?: number, second?: number, ns?: number): any;
25
+ static makeDateWrapper(timeZone: string, year: number, month?: number, day?: number, hour?: number, minute?: number, second?: number, ns?: number): DateWrapper;
17
26
  /**
18
27
  * Takes the string the user entered and returns the next nanos value
19
- * @param {String} nanoString The nano string to get the next one of
20
- * @returns {Number} The value of the next nanos
28
+ * @param nanoString The nano string to get the next one of
29
+ * @returns The value of the next nanos
21
30
  */
22
31
  static getNextNanos(nanoString: string): number;
23
32
  /**
24
- * @param {Object} components The string components that were parsed from the original string
25
- * @param {Object} values The values that were parsed from the components
26
- * @param {string} timeZone The time zone to parse the date in. E.g. America/New_York
27
- * @returns {dh.DateWrapper} Returns the DateWrapper for the next date, or null if a full date was passed in
33
+ * @param components The string components that were parsed from the original string
34
+ * @param values The values that were parsed from the components
35
+ * @param timeZone The time zone to parse the date in. E.g. America/New_York
36
+ * @returns Returns the DateWrapper for the next date, or null if a full date was passed in
28
37
  */
29
- static getNextDate(components: Object, values: Object, timeZone: string): any;
38
+ static getNextDate(components: DateParts<string>, values: DateParts<number>, timeZone: string): DateWrapper | null;
30
39
  /**
31
40
  * Get the JS month value for the provided string.
32
41
  * Matches digits or a month name (eg. '1', '01', 'jan', 'january' should all work)
33
- * @param {string} monthString The string to parse to a JS month value
34
- * @returns number THe JS month value, which starts at 0 for january, or null if nothing could be parsed
42
+ * @param monthString The string to parse to a JS month value
43
+ * @returns number The JS month value, which starts at 0 for january, or NaN if nothing could be parsed
35
44
  */
36
45
  static parseMonth(monthString: string): number;
37
46
  /**
38
47
  * Parse a date object out of the provided string segments.
39
48
  * Also using `parseMonth` to get month names like Aug/August rather than
40
49
  * simply doing `parseInt`.
41
- * @param {string} yearString The year part of the string
42
- * @param {string} monthString The month part of the string
43
- * @param {string} dayString The day part of the string
44
- * @param {string} hourString The hour part of the string
45
- * @param {string} minuteString The minute part of the string
46
- * @param {string} secondString The second part of the string
47
- * @param {string} nanoString The milli part of the string
50
+ * @param yearString The year part of the string
51
+ * @param monthString The month part of the string
52
+ * @param dayString The day part of the string
53
+ * @param hourString The hour part of the string
54
+ * @param minuteString The minute part of the string
55
+ * @param secondString The second part of the string
56
+ * @param nanoString The milli part of the string
48
57
  */
49
- static parseDateValues(yearString: string, monthString: string, dayString: string, hourString: string, minuteString: string, secondString: string, nanoString: string): {
50
- year: number;
51
- month: number;
52
- date: number;
53
- hours: number;
54
- minutes: number;
55
- seconds: number;
56
- nanos: number;
57
- } | null;
58
+ static parseDateValues(yearString: string, monthString: string, dayString: string, hourString: string, minuteString: string, secondString: string, nanoString: string): DateParts<number> | null;
58
59
  /**
59
60
  * Parse out a date time string into it's string components.
60
61
  * Anything that is not captured in the string will be undefined.
61
62
  *
62
- * @param {string} dateTimeString The date time string to parse
63
- * @returns {object} Containing the date time components
63
+ * @param dateTimeString The date time string to parse
64
+ * @returns Containing the date time components
64
65
  */
65
- static parseDateTimeString(dateTimeString: string): object;
66
+ static parseDateTimeString(dateTimeString: string): DateParts<string>;
66
67
  /**
67
68
  * Parses the date range provided from a string of text.
68
- * @param {string} text The string to parse the date from. Can be a keyword like "today", or in the format "2018-08-04"
69
- * @param {string} timeZone The time zone to parse this range in. E.g. America/New_York
70
- * @returns {[DateWrapper, DateWrapper]} A tuple with the start/end values for that date range
69
+ * @param text The string to parse the date from. Can be a keyword like "today", or in the format "2018-08-04"
70
+ * @param timeZone The time zone to parse this range in. E.g. America/New_York
71
+ * @returns A tuple with the start and end value/null for that date range, or both null
71
72
  */
72
- static parseDateRange(text: string, timeZone: string): [any, any];
73
+ static parseDateRange(text: string, timeZone: string): [DateWrapper, DateWrapper | null] | [null, null];
73
74
  /**
74
75
  * Gets the Js Date object from the provided DateWrapper.
75
76
  * In unit test, DateWrapper is just a number provided in millis, so handles that case.
76
- * @param {DateWrapper|number} dateWrapper The DateWrapper object, or time in millis
77
+ * @param dateWrapper The DateWrapper object, or time in millis
77
78
  */
78
- static getJsDate(dateWrapper: any | number): any;
79
+ static getJsDate(dateWrapper: DateWrapper | number): Date;
79
80
  }
81
+ export default DateUtils;
80
82
  //# sourceMappingURL=DateUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DateUtils.d.ts","sourceRoot":"","sources":["../src/DateUtils.js"],"names":[],"mappings":";AAEA;IACE,gCAA0D;IAE1D,wBAaE;IAEF;;;;;;;;;;OAUG;IACH,iCATW,MAAM,iHAiChB;IAED;;;;OAIG;IACH,gDAMC;IAED;;;;;OAKG;IACH,+BALW,MAAM,UACN,MAAM,YACN,MAAM,OA6ChB;IAED;;;;;OAKG;IACH,+BAHW,MAAM,UAsBhB;IAED;;;;;;;;;;;OAWG;IACH,mCARW,MAAM,eACN,MAAM,aACN,MAAM,cACN,MAAM,gBACN,MAAM,gBACN,MAAM,cACN,MAAM;;;;;;;;aAgChB;IAED;;;;;;OAMG;IACH,2CAHW,MAAM,GACJ,MAAM,CAiClB;IAED;;;;;OAKG;IACH,4BAJW,MAAM,YACN,MAAM,GACJ,UAA0B,CAoFtC;IAED;;;;OAIG;IACH,8BAFW,MAAY,MAAM,OAO5B;CACF"}
1
+ {"version":3,"file":"DateUtils.d.ts","sourceRoot":"","sources":["../src/DateUtils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,UAAU,SAAS,CAAC,CAAC;IACnB,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,CAAC,CAAC;IACT,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,EAAE,CAAC,CAAC;IACX,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,EAAE,CAAC,CAAC;CACV;AAED,cAAM,SAAS;IACb,MAAM,CAAC,gBAAgB,SAAmC;IAE1D,MAAM,CAAC,MAAM,WAaX;IAEF;;;;;;;;;;OAUG;IACH,MAAM,CAAC,eAAe,CACpB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,KAAK,SAAI,EACT,GAAG,SAAI,EACP,IAAI,SAAI,EACR,MAAM,SAAI,EACV,MAAM,SAAI,EACV,EAAE,SAAI,GACL,WAAW;IAiBd;;;;OAIG;IACH,MAAM,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IAQ/C;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAChB,UAAU,EAAE,SAAS,CAAC,MAAM,CAAC,EAC7B,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EACzB,QAAQ,EAAE,MAAM,GACf,WAAW,GAAG,IAAI;IA4CrB;;;;;OAKG;IACH,MAAM,CAAC,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAqB9C;;;;;;;;;;;OAWG;IACH,MAAM,CAAC,eAAe,CACpB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,YAAY,EAAE,MAAM,EACpB,UAAU,EAAE,MAAM,GACjB,SAAS,CAAC,MAAM,CAAC,GAAG,IAAI;IAwB3B;;;;;;OAMG;IACH,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAiCrE;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC;IAwFnD;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE,WAAW,GAAG,MAAM,GAAG,IAAI;CAM1D;AAED,eAAe,SAAS,CAAC"}
package/dist/DateUtils.js CHANGED
@@ -5,14 +5,14 @@ import dh from '@deephaven/jsapi-shim';
5
5
  class DateUtils {
6
6
  /**
7
7
  *
8
- * @param {string} timeZone The time zone to parse this time in. E.g. America/New_York
9
- * @param {Number} year The year for the date
10
- * @param {Number} month The month, starting at 0
11
- * @param {Number} day The day, starting at 1
12
- * @param {Number} hour The hours
13
- * @param {Number} minute The minutes
14
- * @param {Number} second The seconds
15
- * @param {Number} ns The nanoseconds
8
+ * @param timeZone The time zone to parse this time in. E.g. America/New_York
9
+ * @param year The year for the date
10
+ * @param month The month, starting at 0
11
+ * @param day The day, starting at 1
12
+ * @param hour The hours
13
+ * @param minute The minutes
14
+ * @param second The seconds
15
+ * @param ns The nanoseconds
16
16
  */
17
17
  static makeDateWrapper(timeZone, year) {
18
18
  var month = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;
@@ -33,8 +33,8 @@ class DateUtils {
33
33
  }
34
34
  /**
35
35
  * Takes the string the user entered and returns the next nanos value
36
- * @param {String} nanoString The nano string to get the next one of
37
- * @returns {Number} The value of the next nanos
36
+ * @param nanoString The nano string to get the next one of
37
+ * @returns The value of the next nanos
38
38
  */
39
39
 
40
40
 
@@ -46,10 +46,10 @@ class DateUtils {
46
46
  return parseInt(nextNanoString, 10);
47
47
  }
48
48
  /**
49
- * @param {Object} components The string components that were parsed from the original string
50
- * @param {Object} values The values that were parsed from the components
51
- * @param {string} timeZone The time zone to parse the date in. E.g. America/New_York
52
- * @returns {dh.DateWrapper} Returns the DateWrapper for the next date, or null if a full date was passed in
49
+ * @param components The string components that were parsed from the original string
50
+ * @param values The values that were parsed from the components
51
+ * @param timeZone The time zone to parse the date in. E.g. America/New_York
52
+ * @returns Returns the DateWrapper for the next date, or null if a full date was passed in
53
53
  */
54
54
 
55
55
 
@@ -100,8 +100,8 @@ class DateUtils {
100
100
  /**
101
101
  * Get the JS month value for the provided string.
102
102
  * Matches digits or a month name (eg. '1', '01', 'jan', 'january' should all work)
103
- * @param {string} monthString The string to parse to a JS month value
104
- * @returns number THe JS month value, which starts at 0 for january, or null if nothing could be parsed
103
+ * @param monthString The string to parse to a JS month value
104
+ * @returns number The JS month value, which starts at 0 for january, or NaN if nothing could be parsed
105
105
  */
106
106
 
107
107
 
@@ -132,13 +132,13 @@ class DateUtils {
132
132
  * Parse a date object out of the provided string segments.
133
133
  * Also using `parseMonth` to get month names like Aug/August rather than
134
134
  * simply doing `parseInt`.
135
- * @param {string} yearString The year part of the string
136
- * @param {string} monthString The month part of the string
137
- * @param {string} dayString The day part of the string
138
- * @param {string} hourString The hour part of the string
139
- * @param {string} minuteString The minute part of the string
140
- * @param {string} secondString The second part of the string
141
- * @param {string} nanoString The milli part of the string
135
+ * @param yearString The year part of the string
136
+ * @param monthString The month part of the string
137
+ * @param dayString The day part of the string
138
+ * @param hourString The hour part of the string
139
+ * @param minuteString The minute part of the string
140
+ * @param secondString The second part of the string
141
+ * @param nanoString The milli part of the string
142
142
  */
143
143
 
144
144
 
@@ -169,8 +169,8 @@ class DateUtils {
169
169
  * Parse out a date time string into it's string components.
170
170
  * Anything that is not captured in the string will be undefined.
171
171
  *
172
- * @param {string} dateTimeString The date time string to parse
173
- * @returns {object} Containing the date time components
172
+ * @param dateTimeString The date time string to parse
173
+ * @returns Containing the date time components
174
174
  */
175
175
 
176
176
 
@@ -200,9 +200,9 @@ class DateUtils {
200
200
  }
201
201
  /**
202
202
  * Parses the date range provided from a string of text.
203
- * @param {string} text The string to parse the date from. Can be a keyword like "today", or in the format "2018-08-04"
204
- * @param {string} timeZone The time zone to parse this range in. E.g. America/New_York
205
- * @returns {[DateWrapper, DateWrapper]} A tuple with the start/end values for that date range
203
+ * @param text The string to parse the date from. Can be a keyword like "today", or in the format "2018-08-04"
204
+ * @param timeZone The time zone to parse this range in. E.g. America/New_York
205
+ * @returns A tuple with the start and end value/null for that date range, or both null
206
206
  */
207
207
 
208
208
 
@@ -251,6 +251,11 @@ class DateUtils {
251
251
  }
252
252
 
253
253
  var values = DateUtils.parseDateValues(components.year, components.month, components.date, components.hours, components.minutes, components.seconds, components.nanos);
254
+
255
+ if (values == null) {
256
+ throw new Error("Unable to extract date values from ".concat(components));
257
+ }
258
+
254
259
  var startDate = DateUtils.makeDateWrapper(timeZone, values.year, values.month, values.date, values.hours, values.minutes, values.seconds, values.nanos);
255
260
  var endDate = DateUtils.getNextDate(components, values, timeZone);
256
261
  return [startDate, endDate];
@@ -258,16 +263,16 @@ class DateUtils {
258
263
  /**
259
264
  * Gets the Js Date object from the provided DateWrapper.
260
265
  * In unit test, DateWrapper is just a number provided in millis, so handles that case.
261
- * @param {DateWrapper|number} dateWrapper The DateWrapper object, or time in millis
266
+ * @param dateWrapper The DateWrapper object, or time in millis
262
267
  */
263
268
 
264
269
 
265
270
  static getJsDate(dateWrapper) {
266
- if (dateWrapper.asDate) {
267
- return dateWrapper.asDate();
271
+ if (typeof dateWrapper === 'number') {
272
+ return new Date(dateWrapper);
268
273
  }
269
274
 
270
- return new Date(dateWrapper);
275
+ return dateWrapper.asDate();
271
276
  }
272
277
 
273
278
  }