@deephaven/iris-grid 1.22.1-alpha-pivot-builder.0 → 1.22.2-alpha-pivot-builder.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 (160) hide show
  1. package/dist/AdvancedFilterCreator.js +65 -102
  2. package/dist/AdvancedFilterCreator.js.map +1 -1
  3. package/dist/AdvancedFilterCreatorFilterItem.js +22 -37
  4. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorSelectValue.js +37 -63
  6. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValueList.js +29 -59
  8. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  9. package/dist/ColumnHeaderGroup.js +6 -8
  10. package/dist/ColumnHeaderGroup.js.map +1 -1
  11. package/dist/ColumnStatistics.js +22 -28
  12. package/dist/ColumnStatistics.js.map +1 -1
  13. package/dist/CrossColumnSearch.js +20 -29
  14. package/dist/CrossColumnSearch.js.map +1 -1
  15. package/dist/FilterInputField.js +19 -46
  16. package/dist/FilterInputField.js.map +1 -1
  17. package/dist/GotoRow.js +32 -29
  18. package/dist/GotoRow.js.map +1 -1
  19. package/dist/IrisGrid.js +490 -822
  20. package/dist/IrisGrid.js.map +1 -1
  21. package/dist/IrisGridBottomBar.js +10 -11
  22. package/dist/IrisGridBottomBar.js.map +1 -1
  23. package/dist/IrisGridCacheUtils.js +28 -8
  24. package/dist/IrisGridCacheUtils.js.map +1 -1
  25. package/dist/IrisGridCellOverflowModal.js +30 -13
  26. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  27. package/dist/IrisGridCellRendererUtils.js +6 -12
  28. package/dist/IrisGridCellRendererUtils.js.map +1 -1
  29. package/dist/IrisGridCopyHandler.js +28 -47
  30. package/dist/IrisGridCopyHandler.js.map +1 -1
  31. package/dist/IrisGridMetricCalculator.js +28 -51
  32. package/dist/IrisGridMetricCalculator.js.map +1 -1
  33. package/dist/IrisGridModelUpdater.js +32 -30
  34. package/dist/IrisGridModelUpdater.js.map +1 -1
  35. package/dist/IrisGridPartitionSelector.js +28 -62
  36. package/dist/IrisGridPartitionSelector.js.map +1 -1
  37. package/dist/IrisGridProxyModel.js +7 -12
  38. package/dist/IrisGridProxyModel.js.map +1 -1
  39. package/dist/IrisGridRenderer.js +162 -264
  40. package/dist/IrisGridRenderer.js.map +1 -1
  41. package/dist/IrisGridTableModel.js +23 -16
  42. package/dist/IrisGridTableModel.js.map +1 -1
  43. package/dist/IrisGridTableModelTemplate.js +49 -73
  44. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  45. package/dist/IrisGridTestUtils.js +19 -19
  46. package/dist/IrisGridTestUtils.js.map +1 -1
  47. package/dist/IrisGridTextCellRenderer.js +35 -52
  48. package/dist/IrisGridTextCellRenderer.js.map +1 -1
  49. package/dist/IrisGridTheme.js +9 -1
  50. package/dist/IrisGridTheme.js.map +1 -1
  51. package/dist/IrisGridThemeProvider.js +5 -7
  52. package/dist/IrisGridThemeProvider.js.map +1 -1
  53. package/dist/IrisGridTreeTableModel.js +5 -9
  54. package/dist/IrisGridTreeTableModel.js.map +1 -1
  55. package/dist/IrisGridUtils.js +246 -300
  56. package/dist/IrisGridUtils.js.map +1 -1
  57. package/dist/NoPastePermissionModal.js +3 -5
  58. package/dist/NoPastePermissionModal.js.map +1 -1
  59. package/dist/PendingDataBottomBar.js +27 -16
  60. package/dist/PendingDataBottomBar.js.map +1 -1
  61. package/dist/ToastBottomBar.js +16 -8
  62. package/dist/ToastBottomBar.js.map +1 -1
  63. package/dist/format-context-menus/CustomFormatAction.js +11 -24
  64. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  65. package/dist/key-handlers/CopyCellKeyHandler.js +3 -4
  66. package/dist/key-handlers/CopyCellKeyHandler.js.map +1 -1
  67. package/dist/key-handlers/CopyKeyHandler.js +1 -3
  68. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  69. package/dist/key-handlers/ReverseKeyHandler.js +1 -3
  70. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  71. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +35 -59
  72. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  73. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +13 -29
  74. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  75. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +8 -17
  76. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  77. package/dist/mousehandlers/IrisGridContextMenuHandler.js +96 -199
  78. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  79. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +2 -4
  80. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
  81. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +16 -30
  82. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  83. package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js +5 -13
  84. package/dist/mousehandlers/IrisGridPartitionedTableMouseHandler.js.map +1 -1
  85. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js +20 -36
  86. package/dist/mousehandlers/IrisGridRowTreeMouseHandler.js.map +1 -1
  87. package/dist/mousehandlers/IrisGridSortMouseHandler.js +3 -5
  88. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  89. package/dist/mousehandlers/IrisGridTokenMouseHandler.js +9 -18
  90. package/dist/mousehandlers/IrisGridTokenMouseHandler.js.map +1 -1
  91. package/dist/mousehandlers/PendingMouseHandler.js +10 -18
  92. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  93. package/dist/sidebar/AdvancedSettingsMenu.js +12 -5
  94. package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
  95. package/dist/sidebar/ChartBuilder.js +45 -102
  96. package/dist/sidebar/ChartBuilder.js.map +1 -1
  97. package/dist/sidebar/CustomColumnBuilder.js +35 -77
  98. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  99. package/dist/sidebar/CustomColumnInput.js +9 -11
  100. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  101. package/dist/sidebar/InputEditor.js +17 -24
  102. package/dist/sidebar/InputEditor.js.map +1 -1
  103. package/dist/sidebar/PluginTableOptionsErrorBoundary.js +6 -11
  104. package/dist/sidebar/PluginTableOptionsErrorBoundary.js.map +1 -1
  105. package/dist/sidebar/RollupRows.js +72 -113
  106. package/dist/sidebar/RollupRows.js.map +1 -1
  107. package/dist/sidebar/SelectDistinctBuilder.js +16 -33
  108. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  109. package/dist/sidebar/TableCsvExporter.js +50 -74
  110. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  111. package/dist/sidebar/TableSaver.js +18 -42
  112. package/dist/sidebar/TableSaver.js.map +1 -1
  113. package/dist/sidebar/aggregations/AggregationEdit.js +25 -18
  114. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  115. package/dist/sidebar/aggregations/AggregationUtils.d.ts.map +1 -1
  116. package/dist/sidebar/aggregations/AggregationUtils.js +3 -4
  117. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  118. package/dist/sidebar/aggregations/Aggregations.js +45 -34
  119. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  120. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +35 -24
  121. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  122. package/dist/sidebar/conditional-formatting/ConditionEditor.js +38 -21
  123. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  124. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +27 -11
  125. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  126. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +9 -11
  127. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  128. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +48 -57
  129. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  130. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +35 -24
  131. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  132. package/dist/sidebar/conditional-formatting/StyleEditor.js +26 -11
  133. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
  134. package/dist/sidebar/visibility-ordering-builder/SearchItem.js +5 -7
  135. package/dist/sidebar/visibility-ordering-builder/SearchItem.js.map +1 -1
  136. package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js +24 -18
  137. package/dist/sidebar/visibility-ordering-builder/SearchWithModal.js.map +1 -1
  138. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js +166 -256
  139. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilder.js.map +1 -1
  140. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js +4 -11
  141. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingBuilderUtils.js.map +1 -1
  142. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js +28 -14
  143. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingGroup.js.map +1 -1
  144. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js +16 -19
  145. package/dist/sidebar/visibility-ordering-builder/VisibilityOrderingItem.js.map +1 -1
  146. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js +1 -3
  147. package/dist/sidebar/visibility-ordering-builder/sortable-tree/PointerSensorWithInteraction.js.map +1 -1
  148. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js +19 -29
  149. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTree.js.map +1 -1
  150. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js +39 -52
  151. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeDndContext.js.map +1 -1
  152. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js +18 -23
  153. package/dist/sidebar/visibility-ordering-builder/sortable-tree/SortableTreeItem.js.map +1 -1
  154. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js +19 -15
  155. package/dist/sidebar/visibility-ordering-builder/sortable-tree/TreeItem.js.map +1 -1
  156. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js +16 -30
  157. package/dist/sidebar/visibility-ordering-builder/sortable-tree/keyboardCoordinates.js.map +1 -1
  158. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js +30 -39
  159. package/dist/sidebar/visibility-ordering-builder/sortable-tree/utilities.js.map +1 -1
  160. package/package.json +16 -16
@@ -48,23 +48,17 @@ class AdvancedFilterCreator extends PureComponent {
48
48
  this.handleFocusTrapEnd = this.handleFocusTrapEnd.bind(this);
49
49
  this.handleUpdateTimeout = this.handleUpdateTimeout.bind(this);
50
50
  this.focusTrapContainer = /*#__PURE__*/React.createRef();
51
- var {
52
- model,
53
- column,
54
- options
55
- } = props;
56
- var {
57
- filterOperators,
58
- invertSelection,
59
- selectedValues
60
- } = options;
51
+ var model = props.model,
52
+ column = props.column,
53
+ options = props.options;
54
+ var filterOperators = options.filterOperators,
55
+ invertSelection = options.invertSelection,
56
+ selectedValues = options.selectedValues;
61
57
 
62
58
  // can be null or an empty array
63
59
  var filterItems = (_options$filterItems$ = (_options$filterItems = options.filterItems) === null || _options$filterItems === void 0 ? void 0 : _options$filterItems.map(_ref => {
64
- var {
65
- selectedType,
66
- value
67
- } = _ref;
60
+ var selectedType = _ref.selectedType,
61
+ value = _ref.value;
68
62
  return {
69
63
  selectedType,
70
64
  value,
@@ -117,10 +111,9 @@ class AdvancedFilterCreator extends PureComponent {
117
111
  return this.handleFilterDelete.bind(this, index);
118
112
  }
119
113
  initValuesTable() {
120
- var {
121
- model,
122
- column
123
- } = this.props;
114
+ var _this$props = this.props,
115
+ model = _this$props.model,
116
+ column = _this$props.column;
124
117
  if (!model.isValuesTableAvailable) {
125
118
  log.debug('No values table for this model, just ignore');
126
119
  return;
@@ -158,10 +151,9 @@ class AdvancedFilterCreator extends PureComponent {
158
151
  }
159
152
  }
160
153
  handleAddAnd() {
161
- var {
162
- filterItems,
163
- filterOperators
164
- } = this.state;
154
+ var _this$state = this.state,
155
+ filterItems = _this$state.filterItems,
156
+ filterOperators = _this$state.filterOperators;
165
157
  filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());
166
158
  filterOperators = filterOperators.concat(FilterOperator.and);
167
159
  this.setState({
@@ -170,10 +162,9 @@ class AdvancedFilterCreator extends PureComponent {
170
162
  });
171
163
  }
172
164
  handleAddOr() {
173
- var {
174
- filterItems,
175
- filterOperators
176
- } = this.state;
165
+ var _this$state2 = this.state,
166
+ filterItems = _this$state2.filterItems,
167
+ filterOperators = _this$state2.filterOperators;
177
168
  filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());
178
169
  filterOperators = filterOperators.concat(FilterOperator.or);
179
170
  this.setState({
@@ -182,9 +173,7 @@ class AdvancedFilterCreator extends PureComponent {
182
173
  });
183
174
  }
184
175
  handleChangeFilterOperator(index, operator) {
185
- var {
186
- filterOperators
187
- } = this.state;
176
+ var filterOperators = this.state.filterOperators;
188
177
  filterOperators = [...filterOperators];
189
178
  assertFilterOperatorValue(operator);
190
179
  filterOperators[index] = operator;
@@ -194,13 +183,9 @@ class AdvancedFilterCreator extends PureComponent {
194
183
  this.startUpdateTimer();
195
184
  }
196
185
  handleFilterChange(filterIndex, selectedType, value) {
197
- var {
198
- filterItems
199
- } = this.state;
186
+ var filterItems = this.state.filterItems;
200
187
  filterItems = [...filterItems];
201
- var {
202
- key
203
- } = filterItems[filterIndex];
188
+ var key = filterItems[filterIndex].key;
204
189
  filterItems[filterIndex] = {
205
190
  key,
206
191
  selectedType,
@@ -212,10 +197,9 @@ class AdvancedFilterCreator extends PureComponent {
212
197
  this.startUpdateTimer();
213
198
  }
214
199
  handleFilterDelete(filterIndex) {
215
- var {
216
- filterItems,
217
- filterOperators
218
- } = this.state;
200
+ var _this$state3 = this.state,
201
+ filterItems = _this$state3.filterItems,
202
+ filterOperators = _this$state3.filterOperators;
219
203
  filterItems = [...filterItems];
220
204
  filterOperators = [...filterOperators];
221
205
  if (filterIndex < filterItems.length) {
@@ -271,9 +255,7 @@ class AdvancedFilterCreator extends PureComponent {
271
255
  log.debug('Submitting and Closing Advanced Filter');
272
256
  this.stopUpdateTimer();
273
257
  this.sendUpdate();
274
- var {
275
- onDone
276
- } = this.props;
258
+ var onDone = this.props.onDone;
277
259
  onDone();
278
260
  event.preventDefault();
279
261
  }
@@ -288,17 +270,13 @@ class AdvancedFilterCreator extends PureComponent {
288
270
  * @returns true If the add filter buttons should be shown, false otherwise
289
271
  */
290
272
  shouldShowAddFilter() {
291
- var {
292
- filterItems
293
- } = this.state;
273
+ var filterItems = this.state.filterItems;
294
274
  if (filterItems.length === 0) {
295
275
  return false;
296
276
  }
297
277
  var filterItem = filterItems[filterItems.length - 1];
298
- var {
299
- selectedType,
300
- value
301
- } = filterItem;
278
+ var selectedType = filterItem.selectedType,
279
+ value = filterItem.value;
302
280
  return selectedType != null && selectedType.length > 0 && value != null && value.length > 0;
303
281
  }
304
282
 
@@ -309,13 +287,10 @@ class AdvancedFilterCreator extends PureComponent {
309
287
  */
310
288
  sortTable(direction) {
311
289
  var addToExisting = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
312
- var {
313
- column,
314
- onSortChange
315
- } = this.props;
316
- var {
317
- isSortable
318
- } = this.state;
290
+ var _this$props2 = this.props,
291
+ column = _this$props2.column,
292
+ onSortChange = _this$props2.onSortChange;
293
+ var isSortable = this.state.isSortable;
319
294
  if (isSortable) {
320
295
  onSortChange(column, direction, addToExisting);
321
296
  }
@@ -331,26 +306,20 @@ class AdvancedFilterCreator extends PureComponent {
331
306
  }
332
307
  }
333
308
  sendUpdate() {
334
- var {
335
- filterItems,
336
- filterOperators,
337
- invertSelection,
338
- selectedValues
339
- } = this.state;
340
- var {
341
- column,
342
- onFilterChange,
343
- model,
344
- tableUtils
345
- } = this.props;
346
- var {
347
- formatter
348
- } = model;
309
+ var _this$state4 = this.state,
310
+ filterItems = _this$state4.filterItems,
311
+ filterOperators = _this$state4.filterOperators,
312
+ invertSelection = _this$state4.invertSelection,
313
+ selectedValues = _this$state4.selectedValues;
314
+ var _this$props3 = this.props,
315
+ column = _this$props3.column,
316
+ onFilterChange = _this$props3.onFilterChange,
317
+ model = _this$props3.model,
318
+ tableUtils = _this$props3.tableUtils;
319
+ var formatter = model.formatter;
349
320
  var items = filterItems.filter(_ref2 => {
350
- var {
351
- selectedType,
352
- value
353
- } = _ref2;
321
+ var selectedType = _ref2.selectedType,
322
+ value = _ref2.value;
354
323
  return selectedType != null && value != null && value !== '';
355
324
  });
356
325
  var operators = filterOperators.filter((operator, i) => operator != null && filterItems[i].selectedType != null && filterItems[i].value != null && filterItems[i].value !== '').slice(0, items.length - 1);
@@ -367,28 +336,24 @@ class AdvancedFilterCreator extends PureComponent {
367
336
  }
368
337
  render() {
369
338
  var _this = this;
370
- var {
371
- column,
372
- model,
373
- sortDirection,
374
- formatter,
375
- tableUtils,
376
- isMaximized,
377
- onToggleMaximize
378
- } = this.props;
379
- var {
380
- filterItems,
381
- filterOperators,
382
- invertSelection,
383
- selectedValues,
384
- valuesTable,
385
- valuesTableError,
386
- isSortable
387
- } = this.state;
388
- var {
389
- dh,
390
- isValuesTableAvailable
391
- } = model;
339
+ var _this$props4 = this.props,
340
+ column = _this$props4.column,
341
+ model = _this$props4.model,
342
+ sortDirection = _this$props4.sortDirection,
343
+ formatter = _this$props4.formatter,
344
+ tableUtils = _this$props4.tableUtils,
345
+ isMaximized = _this$props4.isMaximized,
346
+ onToggleMaximize = _this$props4.onToggleMaximize;
347
+ var _this$state5 = this.state,
348
+ filterItems = _this$state5.filterItems,
349
+ filterOperators = _this$state5.filterOperators,
350
+ invertSelection = _this$state5.invertSelection,
351
+ selectedValues = _this$state5.selectedValues,
352
+ valuesTable = _this$state5.valuesTable,
353
+ valuesTableError = _this$state5.valuesTableError,
354
+ isSortable = _this$state5.isSortable;
355
+ var dh = model.dh,
356
+ isValuesTableAvailable = model.isValuesTableAvailable;
392
357
  var isBoolean = TableUtils.isBooleanType(column.type);
393
358
  var isDateType = TableUtils.isDateType(column.type);
394
359
  var filterTypes = this.getFilterTypes(column.type);
@@ -397,11 +362,9 @@ class AdvancedFilterCreator extends PureComponent {
397
362
  if (!isBoolean && filterTypes.length) {
398
363
  var _loop = function _loop(i) {
399
364
  var filterItem = filterItems[i];
400
- var {
401
- key,
402
- selectedType,
403
- value
404
- } = filterItem;
365
+ var key = filterItem.key,
366
+ selectedType = filterItem.selectedType,
367
+ value = filterItem.value;
405
368
  var element = /*#__PURE__*/_jsx(AdvancedFilterCreatorFilterItem, {
406
369
  column: column,
407
370
  filterTypes: filterTypes,
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreator.js","names":["React","PureComponent","classNames","FontAwesomeIcon","memoize","Operator","FilterOperator","assertOperatorValue","assertFilterOperatorValue","dhSortAmountDown","dhNewCircleLargeFilled","vsScreenFull","vsScreenNormal","TableUtils","Button","ContextActionUtils","Log","assertNotNull","PromiseUtils","nanoid","AdvancedFilterCreatorFilterItem","AdvancedFilterCreatorSelectValue","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","log","module","AdvancedFilterCreator","makeFilterItem","key","constructor","props","_options$filterItems$","_options$filterItems","_defineProperty","columnType","getFilterTypes","handleAddAnd","bind","handleAddOr","handleChangeFilterOperator","handleDone","handleFilterChange","handleFilterDelete","handleSelectValueChange","handleReset","handleSortDown","handleSortUp","handleSubmit","handleFocusTrapStart","handleFocusTrapEnd","handleUpdateTimeout","focusTrapContainer","createRef","model","column","options","filterOperators","invertSelection","selectedValues","filterItems","map","_ref","selectedType","value","length","push","columnIndex","getColumnIndexByName","name","isSortable","isColumnSortable","state","valuesTableError","valuesTable","undefined","componentDidMount","initValuesTable","componentWillUnmount","debounceTimeout","clearTimeout","sendUpdate","valuesTablePromise","cancel","getFilterChangeHandler","index","getFilterDeleteHandler","isValuesTableAvailable","debug","makeCancelableTablePromise","then","_valuesTable$columns$","columns","sort","asc","applySort","setState","catch","error","isCanceled","_this$focusTrapContai","current","querySelector","focus","_this$focusTrapContai2","inputs","querySelectorAll","element","concat","and","or","operator","startUpdateTimer","filterIndex","splice","event","addToExisting","isModifierKeyDown","sortTable","sortDirection","descending","ascending","stopUpdateTimer","preventDefault","onDone","shouldShowAddFilter","filterItem","direction","arguments","onSortChange","setTimeout","debounceFilterUpdate","onFilterChange","tableUtils","formatter","items","filter","_ref2","operators","i","slice","makeAdvancedFilter","timeZone","render","_this","isMaximized","onToggleMaximize","dh","isBoolean","isBooleanType","type","isDateType","filterTypes","substring","lastIndexOf","filterItemElements","_loop","onChange","onDelete","filterOperator","isAndFilter","operatorElement","className","children","kind","active","onClick","showAddFilterItem","addFilterItem","hidden","icon","disabled","tooltip","role","tabIndex","onFocus","onSubmit","ref","rotation","table","showSearch"],"sources":["../src/AdvancedFilterCreator.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n// disabled for tab-index on focus traps, which are intentionally non-interactive\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport memoize from 'memoize-one';\nimport {\n Operator as FilterOperator,\n type OperatorValue as FilterOperatorValue,\n type TypeValue as FilterTypeValue,\n assertOperatorValue as assertFilterOperatorValue,\n} from '@deephaven/filters';\nimport {\n dhSortAmountDown,\n dhNewCircleLargeFilled,\n vsScreenFull,\n vsScreenNormal,\n} from '@deephaven/icons';\nimport {\n type Formatter,\n TableUtils,\n type SortDirection,\n type FilterItem,\n} from '@deephaven/jsapi-utils';\nimport { Button, ContextActionUtils } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport {\n assertNotNull,\n type CancelablePromise,\n PromiseUtils,\n} from '@deephaven/utils';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { nanoid } from 'nanoid';\nimport AdvancedFilterCreatorFilterItem from './AdvancedFilterCreatorFilterItem';\nimport AdvancedFilterCreatorSelectValue from './AdvancedFilterCreatorSelectValue';\nimport './AdvancedFilterCreator.scss';\nimport type IrisGridModel from './IrisGridModel';\nimport { type AdvancedFilterOptions } from './CommonTypes';\n\nconst log = Log.module('AdvancedFilterCreator');\n\ntype FilterChangeHandler = (\n selectedType: FilterTypeValue,\n value: string\n) => void;\n\ninterface AdvancedFilterCreatorProps {\n model: IrisGridModel;\n column: dh.Column;\n onFilterChange: (\n column: dh.Column,\n filter: dh.FilterCondition | null,\n options: AdvancedFilterOptions\n ) => void;\n onSortChange: (\n column: dh.Column,\n direction: SortDirection,\n addToExisting?: boolean\n ) => void;\n onDone: () => void;\n options: AdvancedFilterOptions;\n sortDirection: SortDirection;\n formatter: Formatter;\n tableUtils: TableUtils;\n isMaximized: boolean;\n onToggleMaximize: () => void;\n}\n\ninterface AdvancedFilterItem {\n selectedType?: FilterTypeValue;\n value?: string;\n key: string;\n}\n\ninterface AdvancedFilterCreatorState {\n // Filter items\n filterItems: AdvancedFilterItem[];\n\n // And/Or between the filter items\n filterOperators: FilterOperatorValue[];\n\n invertSelection: boolean;\n\n selectedValues: unknown[];\n\n valuesTableError: null;\n valuesTable?: dh.Table;\n\n isSortable: boolean;\n}\n\nclass AdvancedFilterCreator extends PureComponent<\n AdvancedFilterCreatorProps,\n AdvancedFilterCreatorState\n> {\n static debounceFilterUpdate = 250;\n\n static defaultProps = {\n options: {\n filterItems: null,\n filterOperators: null,\n invertSelection: true,\n selectedValues: [],\n },\n sortDirection: null,\n };\n\n static makeFilterItem(): AdvancedFilterItem {\n return { key: nanoid() };\n }\n\n constructor(props: AdvancedFilterCreatorProps) {\n super(props);\n\n this.handleAddAnd = this.handleAddAnd.bind(this);\n this.handleAddOr = this.handleAddOr.bind(this);\n this.handleChangeFilterOperator =\n this.handleChangeFilterOperator.bind(this);\n this.handleDone = this.handleDone.bind(this);\n this.handleFilterChange = this.handleFilterChange.bind(this);\n this.handleFilterDelete = this.handleFilterDelete.bind(this);\n this.handleSelectValueChange = this.handleSelectValueChange.bind(this);\n this.handleReset = this.handleReset.bind(this);\n this.handleSortDown = this.handleSortDown.bind(this);\n this.handleSortUp = this.handleSortUp.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleFocusTrapStart = this.handleFocusTrapStart.bind(this);\n this.handleFocusTrapEnd = this.handleFocusTrapEnd.bind(this);\n this.handleUpdateTimeout = this.handleUpdateTimeout.bind(this);\n\n this.focusTrapContainer = React.createRef();\n\n const { model, column, options } = props;\n let { filterOperators, invertSelection, selectedValues } = options;\n\n // can be null or an empty array\n const filterItems: AdvancedFilterItem[] =\n options.filterItems?.map(({ selectedType, value }) => ({\n selectedType,\n value,\n key: nanoid(),\n })) ?? [];\n if (filterItems.length === 0) {\n filterItems.push(AdvancedFilterCreator.makeFilterItem());\n }\n if (filterOperators == null) {\n filterOperators = [];\n }\n if (invertSelection == null) {\n invertSelection = true;\n }\n if (selectedValues == null) {\n selectedValues = [];\n }\n\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n const isSortable = model.isColumnSortable(columnIndex);\n\n this.state = {\n // Filter items\n filterItems,\n\n // And/Or between the filter items\n filterOperators,\n\n invertSelection,\n\n selectedValues,\n\n valuesTableError: null,\n valuesTable: undefined,\n\n isSortable,\n };\n }\n\n componentDidMount(): void {\n this.initValuesTable();\n }\n\n componentWillUnmount(): void {\n if (this.debounceTimeout != null) {\n clearTimeout(this.debounceTimeout);\n this.sendUpdate();\n }\n if (this.valuesTablePromise != null) {\n this.valuesTablePromise.cancel();\n }\n }\n\n focusTrapContainer: React.RefObject<HTMLFormElement>;\n\n debounceTimeout?: ReturnType<typeof setTimeout>;\n\n valuesTablePromise?: CancelablePromise<dh.Table>;\n\n getFilterChangeHandler(index: number): FilterChangeHandler {\n return this.handleFilterChange.bind(this, index);\n }\n\n getFilterDeleteHandler(index: number): () => void {\n return this.handleFilterDelete.bind(this, index);\n }\n\n getFilterTypes = memoize((columnType: string): FilterTypeValue[] =>\n TableUtils.getFilterTypes(columnType)\n );\n\n initValuesTable(): void {\n const { model, column } = this.props;\n if (!model.isValuesTableAvailable) {\n log.debug('No values table for this model, just ignore');\n return;\n }\n\n this.valuesTablePromise = TableUtils.makeCancelableTablePromise(\n model.valuesTable(column)\n );\n this.valuesTablePromise\n .then(valuesTable => {\n if (valuesTable.columns[0].isSortable ?? true) {\n const sort = valuesTable.columns[0].sort().asc();\n valuesTable.applySort([sort]);\n }\n this.setState({ valuesTable });\n })\n .catch(error => {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n log.error('Unable to open values table', error);\n this.setState({ valuesTableError: error });\n });\n }\n\n handleFocusTrapEnd(): void {\n (\n this.focusTrapContainer?.current?.querySelector(\n 'button,select,input,textarea'\n ) as HTMLElement\n ).focus();\n }\n\n handleFocusTrapStart(): void {\n const inputs = this.focusTrapContainer?.current?.querySelectorAll(\n 'button,select,input,textarea'\n );\n if (inputs && inputs.length > 0) {\n const element = inputs[inputs.length - 1] as HTMLElement;\n element.focus();\n }\n }\n\n handleAddAnd(): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());\n filterOperators = filterOperators.concat(FilterOperator.and);\n this.setState({ filterItems, filterOperators });\n }\n\n handleAddOr(): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());\n filterOperators = filterOperators.concat(FilterOperator.or);\n this.setState({ filterItems, filterOperators });\n }\n\n handleChangeFilterOperator(index: number, operator: string): void {\n let { filterOperators } = this.state;\n filterOperators = [...filterOperators];\n\n assertFilterOperatorValue(operator);\n\n filterOperators[index] = operator;\n\n this.setState({ filterOperators });\n\n this.startUpdateTimer();\n }\n\n handleFilterChange(\n filterIndex: number,\n selectedType: FilterTypeValue,\n value: string\n ): void {\n let { filterItems } = this.state;\n filterItems = [...filterItems];\n const { key } = filterItems[filterIndex];\n filterItems[filterIndex] = { key, selectedType, value };\n\n this.setState({ filterItems });\n\n this.startUpdateTimer();\n }\n\n handleFilterDelete(filterIndex: number): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = [...filterItems];\n filterOperators = [...filterOperators];\n if (filterIndex < filterItems.length) {\n filterItems.splice(filterIndex, 1);\n }\n\n if (filterIndex < filterOperators.length) {\n filterOperators.splice(filterIndex, 1);\n } else if (filterIndex === filterOperators.length) {\n // When deleting the last filter item, we also need to remove the last filter operator\n filterOperators.splice(filterOperators.length - 1, 1);\n }\n\n if (filterItems.length === 0) {\n filterItems.push(AdvancedFilterCreator.makeFilterItem());\n }\n\n this.setState({ filterItems, filterOperators });\n\n this.startUpdateTimer();\n }\n\n handleSelectValueChange(\n selectedValues: unknown[],\n invertSelection: boolean\n ): void {\n this.setState({ selectedValues, invertSelection });\n\n this.startUpdateTimer();\n }\n\n handleReset(): void {\n log.debug('Resetting Advanced Filter');\n\n this.setState({\n filterItems: [AdvancedFilterCreator.makeFilterItem()],\n filterOperators: [],\n selectedValues: [],\n invertSelection: true,\n });\n\n this.startUpdateTimer();\n }\n\n handleSortDown(event: React.MouseEvent<HTMLButtonElement>): void {\n const addToExisting = ContextActionUtils.isModifierKeyDown(event);\n this.sortTable(TableUtils.sortDirection.descending, addToExisting);\n }\n\n handleSortUp(event: React.MouseEvent<HTMLButtonElement>): void {\n const addToExisting = ContextActionUtils.isModifierKeyDown(event);\n this.sortTable(TableUtils.sortDirection.ascending, addToExisting);\n }\n\n handleSubmit(event: React.FormEvent<HTMLFormElement>): void {\n log.debug('Submitting Advanced Filter');\n this.stopUpdateTimer();\n this.sendUpdate();\n\n event.preventDefault();\n }\n\n handleDone(event: React.MouseEvent<HTMLButtonElement>): void {\n log.debug('Submitting and Closing Advanced Filter');\n this.stopUpdateTimer();\n this.sendUpdate();\n\n const { onDone } = this.props;\n onDone();\n\n event.preventDefault();\n }\n\n handleUpdateTimeout(): void {\n this.debounceTimeout = undefined;\n this.sendUpdate();\n }\n\n /**\n * Convenience function to check if the previous filter has been inputted, and\n * we should show the add filter buttons (+ AND OR)\n * @returns true If the add filter buttons should be shown, false otherwise\n */\n shouldShowAddFilter(): boolean {\n const { filterItems } = this.state;\n if (filterItems.length === 0) {\n return false;\n }\n\n const filterItem = filterItems[filterItems.length - 1];\n const { selectedType, value } = filterItem;\n\n return (\n selectedType != null &&\n selectedType.length > 0 &&\n value != null &&\n value.length > 0\n );\n }\n\n /**\n * Sorts the table in the specified direction. If already sorted in that direction, remove it.\n * @param direction The sort direction, ASC or DESC\n * @param addToExisting Add to the existing sort, or replace the existing table sort\n */\n sortTable(direction: SortDirection, addToExisting = false): void {\n const { column, onSortChange } = this.props;\n const { isSortable } = this.state;\n if (isSortable) {\n onSortChange(column, direction, addToExisting);\n }\n }\n\n startUpdateTimer(): void {\n this.stopUpdateTimer();\n\n this.debounceTimeout = setTimeout(\n this.handleUpdateTimeout,\n AdvancedFilterCreator.debounceFilterUpdate\n );\n }\n\n stopUpdateTimer(): void {\n if (this.debounceTimeout !== undefined) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = undefined;\n }\n }\n\n sendUpdate(): void {\n const { filterItems, filterOperators, invertSelection, selectedValues } =\n this.state;\n const { column, onFilterChange, model, tableUtils } = this.props;\n const { formatter } = model;\n\n const items = filterItems.filter(\n ({ selectedType, value }) =>\n selectedType != null && value != null && value !== ''\n ) as FilterItem[];\n\n const operators = filterOperators\n .filter(\n (operator, i) =>\n operator != null &&\n filterItems[i].selectedType != null &&\n filterItems[i].value != null &&\n filterItems[i].value !== ''\n )\n .slice(0, items.length - 1);\n // slice last operator, user may have set an operator but not a value\n\n const options = {\n filterItems: items,\n filterOperators: operators,\n invertSelection,\n selectedValues,\n };\n\n const filter = tableUtils.makeAdvancedFilter(\n column,\n options,\n formatter.timeZone\n );\n\n onFilterChange(column, filter, options);\n }\n\n render(): JSX.Element {\n const {\n column,\n model,\n sortDirection,\n formatter,\n tableUtils,\n isMaximized,\n onToggleMaximize,\n } = this.props;\n const {\n filterItems,\n filterOperators,\n invertSelection,\n selectedValues,\n valuesTable,\n valuesTableError,\n isSortable,\n } = this.state;\n const { dh, isValuesTableAvailable } = model;\n const isBoolean = TableUtils.isBooleanType(column.type);\n const isDateType = TableUtils.isDateType(column.type);\n const filterTypes = this.getFilterTypes(column.type);\n const columnType = column.type.substring(column.type.lastIndexOf('.') + 1);\n const filterItemElements = [];\n if (!isBoolean && filterTypes.length) {\n for (let i = 0; i < filterItems.length; i += 1) {\n const filterItem = filterItems[i];\n const { key, selectedType, value } = filterItem;\n\n const element = (\n <AdvancedFilterCreatorFilterItem\n key={key}\n column={column}\n filterTypes={filterTypes}\n onChange={this.getFilterChangeHandler(i)}\n onDelete={this.getFilterDeleteHandler(i)}\n selectedType={selectedType}\n value={value}\n formatter={formatter}\n tableUtils={tableUtils}\n />\n );\n filterItemElements.push(element);\n\n if (i < filterOperators.length) {\n const filterOperator = filterOperators[i];\n const isAndFilter = filterOperator === FilterOperator.and;\n const operatorElement = (\n <div\n key={`filterOperator${key}`}\n className=\"form-row justify-content-end advanced-filter-creator-filter-operator\"\n >\n <Button\n kind=\"ghost\"\n className={classNames('filter-operator', {\n active: isAndFilter,\n })}\n onClick={() =>\n this.handleChangeFilterOperator(i, FilterOperator.and)\n }\n >\n AND\n </Button>\n <Button\n kind=\"ghost\"\n className={classNames('filter-operator', {\n active: !isAndFilter,\n })}\n onClick={() =>\n this.handleChangeFilterOperator(i, FilterOperator.or)\n }\n >\n OR\n </Button>\n </div>\n );\n filterItemElements.push(operatorElement);\n }\n }\n }\n const showAddFilterItem = this.shouldShowAddFilter();\n const addFilterItem = (\n <div\n key=\"addFilterItem\"\n className={classNames('form-row justify-content-end add-filter-item', {\n hidden: !showAddFilterItem,\n })}\n >\n <span className=\"text-muted\">\n <FontAwesomeIcon icon={dhNewCircleLargeFilled} />\n </span>\n <Button\n kind=\"ghost\"\n className=\"btn-filter-item\"\n onClick={this.handleAddAnd}\n disabled={!showAddFilterItem}\n tooltip=\"Add filter with AND\"\n >\n AND\n </Button>\n <Button\n kind=\"ghost\"\n className=\"btn-filter-item\"\n onClick={this.handleAddOr}\n disabled={!showAddFilterItem}\n tooltip=\"Add filter with OR\"\n >\n OR\n </Button>\n </div>\n );\n filterItemElements.push(addFilterItem);\n\n return (\n <div className=\"advanced-filter-creator\" role=\"presentation\">\n <div tabIndex={0} onFocus={this.handleFocusTrapStart} />\n <form onSubmit={this.handleSubmit} ref={this.focusTrapContainer}>\n <div className=\"title-bar\">\n <h6 className=\"advanced-filter-title\">Advanced Filters</h6>\n <div className=\"advanced-filter-menu-buttons\">\n <Button\n kind=\"ghost\"\n className={classNames('sort-operator', {\n active: sortDirection === TableUtils.sortDirection.descending,\n })}\n onClick={this.handleSortDown}\n icon={dhSortAmountDown}\n tooltip={\n isSortable ? `Sort ${column.name} Descending` : 'Not sortable'\n }\n disabled={!isSortable}\n />\n <Button\n kind=\"ghost\"\n className={classNames('sort-operator', {\n active: sortDirection === TableUtils.sortDirection.ascending,\n })}\n onClick={this.handleSortUp}\n icon={\n <FontAwesomeIcon icon={dhSortAmountDown} rotation={180} />\n }\n tooltip={\n isSortable ? `Sort ${column.name} Ascending` : 'Not sortable'\n }\n disabled={!isSortable}\n />\n <Button\n kind=\"ghost\"\n className={classNames('sort-operator', {\n active: isMaximized,\n })}\n onClick={onToggleMaximize}\n icon={isMaximized ? vsScreenNormal : vsScreenFull}\n tooltip={\n isMaximized ? 'Restore dialog size' : 'Maximize dialog'\n }\n />\n </div>\n </div>\n <hr />\n <div className=\"advanced-filter-column-name\">\n {column.name}&nbsp;\n <span className=\"column-type\">({columnType})</span>\n </div>\n {filterItemElements}\n {isValuesTableAvailable && valuesTableError == null && (\n <>\n {!isBoolean && <hr />}\n <div className=\"form-group advanced-filter-values-group\">\n <AdvancedFilterCreatorSelectValue\n dh={dh}\n table={valuesTable}\n onChange={this.handleSelectValueChange}\n invertSelection={invertSelection}\n selectedValues={selectedValues}\n formatter={formatter}\n showSearch={!isDateType}\n timeZone={formatter.timeZone}\n />\n </div>\n </>\n )}\n <div className=\"form-row justify-content-end\">\n <Button\n kind=\"secondary\"\n className=\"mr-2\"\n onClick={this.handleReset}\n >\n Reset\n </Button>\n <Button kind=\"primary\" onClick={this.handleDone}>\n Done\n </Button>\n </div>\n </form>\n <div tabIndex={0} onFocus={this.handleFocusTrapEnd} />\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreator;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AdvancedFilterCreator.js","names":["React","PureComponent","classNames","FontAwesomeIcon","memoize","Operator","FilterOperator","assertOperatorValue","assertFilterOperatorValue","dhSortAmountDown","dhNewCircleLargeFilled","vsScreenFull","vsScreenNormal","TableUtils","Button","ContextActionUtils","Log","assertNotNull","PromiseUtils","nanoid","AdvancedFilterCreatorFilterItem","AdvancedFilterCreatorSelectValue","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","log","module","AdvancedFilterCreator","makeFilterItem","key","constructor","props","_options$filterItems$","_options$filterItems","_defineProperty","columnType","getFilterTypes","handleAddAnd","bind","handleAddOr","handleChangeFilterOperator","handleDone","handleFilterChange","handleFilterDelete","handleSelectValueChange","handleReset","handleSortDown","handleSortUp","handleSubmit","handleFocusTrapStart","handleFocusTrapEnd","handleUpdateTimeout","focusTrapContainer","createRef","model","column","options","filterOperators","invertSelection","selectedValues","filterItems","map","_ref","selectedType","value","length","push","columnIndex","getColumnIndexByName","name","isSortable","isColumnSortable","state","valuesTableError","valuesTable","undefined","componentDidMount","initValuesTable","componentWillUnmount","debounceTimeout","clearTimeout","sendUpdate","valuesTablePromise","cancel","getFilterChangeHandler","index","getFilterDeleteHandler","_this$props","isValuesTableAvailable","debug","makeCancelableTablePromise","then","_valuesTable$columns$","columns","sort","asc","applySort","setState","catch","error","isCanceled","_this$focusTrapContai","current","querySelector","focus","_this$focusTrapContai2","inputs","querySelectorAll","element","_this$state","concat","and","_this$state2","or","operator","startUpdateTimer","filterIndex","_this$state3","splice","event","addToExisting","isModifierKeyDown","sortTable","sortDirection","descending","ascending","stopUpdateTimer","preventDefault","onDone","shouldShowAddFilter","filterItem","direction","arguments","_this$props2","onSortChange","setTimeout","debounceFilterUpdate","_this$state4","_this$props3","onFilterChange","tableUtils","formatter","items","filter","_ref2","operators","i","slice","makeAdvancedFilter","timeZone","render","_this","_this$props4","isMaximized","onToggleMaximize","_this$state5","dh","isBoolean","isBooleanType","type","isDateType","filterTypes","substring","lastIndexOf","filterItemElements","_loop","onChange","onDelete","filterOperator","isAndFilter","operatorElement","className","children","kind","active","onClick","showAddFilterItem","addFilterItem","hidden","icon","disabled","tooltip","role","tabIndex","onFocus","onSubmit","ref","rotation","table","showSearch"],"sources":["../src/AdvancedFilterCreator.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-noninteractive-tabindex */\n// disabled for tab-index on focus traps, which are intentionally non-interactive\n\nimport React, { PureComponent } from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport memoize from 'memoize-one';\nimport {\n Operator as FilterOperator,\n type OperatorValue as FilterOperatorValue,\n type TypeValue as FilterTypeValue,\n assertOperatorValue as assertFilterOperatorValue,\n} from '@deephaven/filters';\nimport {\n dhSortAmountDown,\n dhNewCircleLargeFilled,\n vsScreenFull,\n vsScreenNormal,\n} from '@deephaven/icons';\nimport {\n type Formatter,\n TableUtils,\n type SortDirection,\n type FilterItem,\n} from '@deephaven/jsapi-utils';\nimport { Button, ContextActionUtils } from '@deephaven/components';\nimport Log from '@deephaven/log';\nimport {\n assertNotNull,\n type CancelablePromise,\n PromiseUtils,\n} from '@deephaven/utils';\nimport type { dh } from '@deephaven/jsapi-types';\nimport { nanoid } from 'nanoid';\nimport AdvancedFilterCreatorFilterItem from './AdvancedFilterCreatorFilterItem';\nimport AdvancedFilterCreatorSelectValue from './AdvancedFilterCreatorSelectValue';\nimport './AdvancedFilterCreator.scss';\nimport type IrisGridModel from './IrisGridModel';\nimport { type AdvancedFilterOptions } from './CommonTypes';\n\nconst log = Log.module('AdvancedFilterCreator');\n\ntype FilterChangeHandler = (\n selectedType: FilterTypeValue,\n value: string\n) => void;\n\ninterface AdvancedFilterCreatorProps {\n model: IrisGridModel;\n column: dh.Column;\n onFilterChange: (\n column: dh.Column,\n filter: dh.FilterCondition | null,\n options: AdvancedFilterOptions\n ) => void;\n onSortChange: (\n column: dh.Column,\n direction: SortDirection,\n addToExisting?: boolean\n ) => void;\n onDone: () => void;\n options: AdvancedFilterOptions;\n sortDirection: SortDirection;\n formatter: Formatter;\n tableUtils: TableUtils;\n isMaximized: boolean;\n onToggleMaximize: () => void;\n}\n\ninterface AdvancedFilterItem {\n selectedType?: FilterTypeValue;\n value?: string;\n key: string;\n}\n\ninterface AdvancedFilterCreatorState {\n // Filter items\n filterItems: AdvancedFilterItem[];\n\n // And/Or between the filter items\n filterOperators: FilterOperatorValue[];\n\n invertSelection: boolean;\n\n selectedValues: unknown[];\n\n valuesTableError: null;\n valuesTable?: dh.Table;\n\n isSortable: boolean;\n}\n\nclass AdvancedFilterCreator extends PureComponent<\n AdvancedFilterCreatorProps,\n AdvancedFilterCreatorState\n> {\n static debounceFilterUpdate = 250;\n\n static defaultProps = {\n options: {\n filterItems: null,\n filterOperators: null,\n invertSelection: true,\n selectedValues: [],\n },\n sortDirection: null,\n };\n\n static makeFilterItem(): AdvancedFilterItem {\n return { key: nanoid() };\n }\n\n constructor(props: AdvancedFilterCreatorProps) {\n super(props);\n\n this.handleAddAnd = this.handleAddAnd.bind(this);\n this.handleAddOr = this.handleAddOr.bind(this);\n this.handleChangeFilterOperator =\n this.handleChangeFilterOperator.bind(this);\n this.handleDone = this.handleDone.bind(this);\n this.handleFilterChange = this.handleFilterChange.bind(this);\n this.handleFilterDelete = this.handleFilterDelete.bind(this);\n this.handleSelectValueChange = this.handleSelectValueChange.bind(this);\n this.handleReset = this.handleReset.bind(this);\n this.handleSortDown = this.handleSortDown.bind(this);\n this.handleSortUp = this.handleSortUp.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.handleFocusTrapStart = this.handleFocusTrapStart.bind(this);\n this.handleFocusTrapEnd = this.handleFocusTrapEnd.bind(this);\n this.handleUpdateTimeout = this.handleUpdateTimeout.bind(this);\n\n this.focusTrapContainer = React.createRef();\n\n const { model, column, options } = props;\n let { filterOperators, invertSelection, selectedValues } = options;\n\n // can be null or an empty array\n const filterItems: AdvancedFilterItem[] =\n options.filterItems?.map(({ selectedType, value }) => ({\n selectedType,\n value,\n key: nanoid(),\n })) ?? [];\n if (filterItems.length === 0) {\n filterItems.push(AdvancedFilterCreator.makeFilterItem());\n }\n if (filterOperators == null) {\n filterOperators = [];\n }\n if (invertSelection == null) {\n invertSelection = true;\n }\n if (selectedValues == null) {\n selectedValues = [];\n }\n\n const columnIndex = model.getColumnIndexByName(column.name);\n assertNotNull(columnIndex);\n const isSortable = model.isColumnSortable(columnIndex);\n\n this.state = {\n // Filter items\n filterItems,\n\n // And/Or between the filter items\n filterOperators,\n\n invertSelection,\n\n selectedValues,\n\n valuesTableError: null,\n valuesTable: undefined,\n\n isSortable,\n };\n }\n\n componentDidMount(): void {\n this.initValuesTable();\n }\n\n componentWillUnmount(): void {\n if (this.debounceTimeout != null) {\n clearTimeout(this.debounceTimeout);\n this.sendUpdate();\n }\n if (this.valuesTablePromise != null) {\n this.valuesTablePromise.cancel();\n }\n }\n\n focusTrapContainer: React.RefObject<HTMLFormElement>;\n\n debounceTimeout?: ReturnType<typeof setTimeout>;\n\n valuesTablePromise?: CancelablePromise<dh.Table>;\n\n getFilterChangeHandler(index: number): FilterChangeHandler {\n return this.handleFilterChange.bind(this, index);\n }\n\n getFilterDeleteHandler(index: number): () => void {\n return this.handleFilterDelete.bind(this, index);\n }\n\n getFilterTypes = memoize((columnType: string): FilterTypeValue[] =>\n TableUtils.getFilterTypes(columnType)\n );\n\n initValuesTable(): void {\n const { model, column } = this.props;\n if (!model.isValuesTableAvailable) {\n log.debug('No values table for this model, just ignore');\n return;\n }\n\n this.valuesTablePromise = TableUtils.makeCancelableTablePromise(\n model.valuesTable(column)\n );\n this.valuesTablePromise\n .then(valuesTable => {\n if (valuesTable.columns[0].isSortable ?? true) {\n const sort = valuesTable.columns[0].sort().asc();\n valuesTable.applySort([sort]);\n }\n this.setState({ valuesTable });\n })\n .catch(error => {\n if (PromiseUtils.isCanceled(error)) {\n return;\n }\n\n log.error('Unable to open values table', error);\n this.setState({ valuesTableError: error });\n });\n }\n\n handleFocusTrapEnd(): void {\n (\n this.focusTrapContainer?.current?.querySelector(\n 'button,select,input,textarea'\n ) as HTMLElement\n ).focus();\n }\n\n handleFocusTrapStart(): void {\n const inputs = this.focusTrapContainer?.current?.querySelectorAll(\n 'button,select,input,textarea'\n );\n if (inputs && inputs.length > 0) {\n const element = inputs[inputs.length - 1] as HTMLElement;\n element.focus();\n }\n }\n\n handleAddAnd(): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());\n filterOperators = filterOperators.concat(FilterOperator.and);\n this.setState({ filterItems, filterOperators });\n }\n\n handleAddOr(): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = filterItems.concat(AdvancedFilterCreator.makeFilterItem());\n filterOperators = filterOperators.concat(FilterOperator.or);\n this.setState({ filterItems, filterOperators });\n }\n\n handleChangeFilterOperator(index: number, operator: string): void {\n let { filterOperators } = this.state;\n filterOperators = [...filterOperators];\n\n assertFilterOperatorValue(operator);\n\n filterOperators[index] = operator;\n\n this.setState({ filterOperators });\n\n this.startUpdateTimer();\n }\n\n handleFilterChange(\n filterIndex: number,\n selectedType: FilterTypeValue,\n value: string\n ): void {\n let { filterItems } = this.state;\n filterItems = [...filterItems];\n const { key } = filterItems[filterIndex];\n filterItems[filterIndex] = { key, selectedType, value };\n\n this.setState({ filterItems });\n\n this.startUpdateTimer();\n }\n\n handleFilterDelete(filterIndex: number): void {\n let { filterItems, filterOperators } = this.state;\n filterItems = [...filterItems];\n filterOperators = [...filterOperators];\n if (filterIndex < filterItems.length) {\n filterItems.splice(filterIndex, 1);\n }\n\n if (filterIndex < filterOperators.length) {\n filterOperators.splice(filterIndex, 1);\n } else if (filterIndex === filterOperators.length) {\n // When deleting the last filter item, we also need to remove the last filter operator\n filterOperators.splice(filterOperators.length - 1, 1);\n }\n\n if (filterItems.length === 0) {\n filterItems.push(AdvancedFilterCreator.makeFilterItem());\n }\n\n this.setState({ filterItems, filterOperators });\n\n this.startUpdateTimer();\n }\n\n handleSelectValueChange(\n selectedValues: unknown[],\n invertSelection: boolean\n ): void {\n this.setState({ selectedValues, invertSelection });\n\n this.startUpdateTimer();\n }\n\n handleReset(): void {\n log.debug('Resetting Advanced Filter');\n\n this.setState({\n filterItems: [AdvancedFilterCreator.makeFilterItem()],\n filterOperators: [],\n selectedValues: [],\n invertSelection: true,\n });\n\n this.startUpdateTimer();\n }\n\n handleSortDown(event: React.MouseEvent<HTMLButtonElement>): void {\n const addToExisting = ContextActionUtils.isModifierKeyDown(event);\n this.sortTable(TableUtils.sortDirection.descending, addToExisting);\n }\n\n handleSortUp(event: React.MouseEvent<HTMLButtonElement>): void {\n const addToExisting = ContextActionUtils.isModifierKeyDown(event);\n this.sortTable(TableUtils.sortDirection.ascending, addToExisting);\n }\n\n handleSubmit(event: React.FormEvent<HTMLFormElement>): void {\n log.debug('Submitting Advanced Filter');\n this.stopUpdateTimer();\n this.sendUpdate();\n\n event.preventDefault();\n }\n\n handleDone(event: React.MouseEvent<HTMLButtonElement>): void {\n log.debug('Submitting and Closing Advanced Filter');\n this.stopUpdateTimer();\n this.sendUpdate();\n\n const { onDone } = this.props;\n onDone();\n\n event.preventDefault();\n }\n\n handleUpdateTimeout(): void {\n this.debounceTimeout = undefined;\n this.sendUpdate();\n }\n\n /**\n * Convenience function to check if the previous filter has been inputted, and\n * we should show the add filter buttons (+ AND OR)\n * @returns true If the add filter buttons should be shown, false otherwise\n */\n shouldShowAddFilter(): boolean {\n const { filterItems } = this.state;\n if (filterItems.length === 0) {\n return false;\n }\n\n const filterItem = filterItems[filterItems.length - 1];\n const { selectedType, value } = filterItem;\n\n return (\n selectedType != null &&\n selectedType.length > 0 &&\n value != null &&\n value.length > 0\n );\n }\n\n /**\n * Sorts the table in the specified direction. If already sorted in that direction, remove it.\n * @param direction The sort direction, ASC or DESC\n * @param addToExisting Add to the existing sort, or replace the existing table sort\n */\n sortTable(direction: SortDirection, addToExisting = false): void {\n const { column, onSortChange } = this.props;\n const { isSortable } = this.state;\n if (isSortable) {\n onSortChange(column, direction, addToExisting);\n }\n }\n\n startUpdateTimer(): void {\n this.stopUpdateTimer();\n\n this.debounceTimeout = setTimeout(\n this.handleUpdateTimeout,\n AdvancedFilterCreator.debounceFilterUpdate\n );\n }\n\n stopUpdateTimer(): void {\n if (this.debounceTimeout !== undefined) {\n clearTimeout(this.debounceTimeout);\n this.debounceTimeout = undefined;\n }\n }\n\n sendUpdate(): void {\n const { filterItems, filterOperators, invertSelection, selectedValues } =\n this.state;\n const { column, onFilterChange, model, tableUtils } = this.props;\n const { formatter } = model;\n\n const items = filterItems.filter(\n ({ selectedType, value }) =>\n selectedType != null && value != null && value !== ''\n ) as FilterItem[];\n\n const operators = filterOperators\n .filter(\n (operator, i) =>\n operator != null &&\n filterItems[i].selectedType != null &&\n filterItems[i].value != null &&\n filterItems[i].value !== ''\n )\n .slice(0, items.length - 1);\n // slice last operator, user may have set an operator but not a value\n\n const options = {\n filterItems: items,\n filterOperators: operators,\n invertSelection,\n selectedValues,\n };\n\n const filter = tableUtils.makeAdvancedFilter(\n column,\n options,\n formatter.timeZone\n );\n\n onFilterChange(column, filter, options);\n }\n\n render(): JSX.Element {\n const {\n column,\n model,\n sortDirection,\n formatter,\n tableUtils,\n isMaximized,\n onToggleMaximize,\n } = this.props;\n const {\n filterItems,\n filterOperators,\n invertSelection,\n selectedValues,\n valuesTable,\n valuesTableError,\n isSortable,\n } = this.state;\n const { dh, isValuesTableAvailable } = model;\n const isBoolean = TableUtils.isBooleanType(column.type);\n const isDateType = TableUtils.isDateType(column.type);\n const filterTypes = this.getFilterTypes(column.type);\n const columnType = column.type.substring(column.type.lastIndexOf('.') + 1);\n const filterItemElements = [];\n if (!isBoolean && filterTypes.length) {\n for (let i = 0; i < filterItems.length; i += 1) {\n const filterItem = filterItems[i];\n const { key, selectedType, value } = filterItem;\n\n const element = (\n <AdvancedFilterCreatorFilterItem\n key={key}\n column={column}\n filterTypes={filterTypes}\n onChange={this.getFilterChangeHandler(i)}\n onDelete={this.getFilterDeleteHandler(i)}\n selectedType={selectedType}\n value={value}\n formatter={formatter}\n tableUtils={tableUtils}\n />\n );\n filterItemElements.push(element);\n\n if (i < filterOperators.length) {\n const filterOperator = filterOperators[i];\n const isAndFilter = filterOperator === FilterOperator.and;\n const operatorElement = (\n <div\n key={`filterOperator${key}`}\n className=\"form-row justify-content-end advanced-filter-creator-filter-operator\"\n >\n <Button\n kind=\"ghost\"\n className={classNames('filter-operator', {\n active: isAndFilter,\n })}\n onClick={() =>\n this.handleChangeFilterOperator(i, FilterOperator.and)\n }\n >\n AND\n </Button>\n <Button\n kind=\"ghost\"\n className={classNames('filter-operator', {\n active: !isAndFilter,\n })}\n onClick={() =>\n this.handleChangeFilterOperator(i, FilterOperator.or)\n }\n >\n OR\n </Button>\n </div>\n );\n filterItemElements.push(operatorElement);\n }\n }\n }\n const showAddFilterItem = this.shouldShowAddFilter();\n const addFilterItem = (\n <div\n key=\"addFilterItem\"\n className={classNames('form-row justify-content-end add-filter-item', {\n hidden: !showAddFilterItem,\n })}\n >\n <span className=\"text-muted\">\n <FontAwesomeIcon icon={dhNewCircleLargeFilled} />\n </span>\n <Button\n kind=\"ghost\"\n className=\"btn-filter-item\"\n onClick={this.handleAddAnd}\n disabled={!showAddFilterItem}\n tooltip=\"Add filter with AND\"\n >\n AND\n </Button>\n <Button\n kind=\"ghost\"\n className=\"btn-filter-item\"\n onClick={this.handleAddOr}\n disabled={!showAddFilterItem}\n tooltip=\"Add filter with OR\"\n >\n OR\n </Button>\n </div>\n );\n filterItemElements.push(addFilterItem);\n\n return (\n <div className=\"advanced-filter-creator\" role=\"presentation\">\n <div tabIndex={0} onFocus={this.handleFocusTrapStart} />\n <form onSubmit={this.handleSubmit} ref={this.focusTrapContainer}>\n <div className=\"title-bar\">\n <h6 className=\"advanced-filter-title\">Advanced Filters</h6>\n <div className=\"advanced-filter-menu-buttons\">\n <Button\n kind=\"ghost\"\n className={classNames('sort-operator', {\n active: sortDirection === TableUtils.sortDirection.descending,\n })}\n onClick={this.handleSortDown}\n icon={dhSortAmountDown}\n tooltip={\n isSortable ? `Sort ${column.name} Descending` : 'Not sortable'\n }\n disabled={!isSortable}\n />\n <Button\n kind=\"ghost\"\n className={classNames('sort-operator', {\n active: sortDirection === TableUtils.sortDirection.ascending,\n })}\n onClick={this.handleSortUp}\n icon={\n <FontAwesomeIcon icon={dhSortAmountDown} rotation={180} />\n }\n tooltip={\n isSortable ? `Sort ${column.name} Ascending` : 'Not sortable'\n }\n disabled={!isSortable}\n />\n <Button\n kind=\"ghost\"\n className={classNames('sort-operator', {\n active: isMaximized,\n })}\n onClick={onToggleMaximize}\n icon={isMaximized ? vsScreenNormal : vsScreenFull}\n tooltip={\n isMaximized ? 'Restore dialog size' : 'Maximize dialog'\n }\n />\n </div>\n </div>\n <hr />\n <div className=\"advanced-filter-column-name\">\n {column.name}&nbsp;\n <span className=\"column-type\">({columnType})</span>\n </div>\n {filterItemElements}\n {isValuesTableAvailable && valuesTableError == null && (\n <>\n {!isBoolean && <hr />}\n <div className=\"form-group advanced-filter-values-group\">\n <AdvancedFilterCreatorSelectValue\n dh={dh}\n table={valuesTable}\n onChange={this.handleSelectValueChange}\n invertSelection={invertSelection}\n selectedValues={selectedValues}\n formatter={formatter}\n showSearch={!isDateType}\n timeZone={formatter.timeZone}\n />\n </div>\n </>\n )}\n <div className=\"form-row justify-content-end\">\n <Button\n kind=\"secondary\"\n className=\"mr-2\"\n onClick={this.handleReset}\n >\n Reset\n </Button>\n <Button kind=\"primary\" onClick={this.handleDone}>\n Done\n </Button>\n </div>\n </form>\n <div tabIndex={0} onFocus={this.handleFocusTrapEnd} />\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreator;\n"],"mappings":";;;AAAA;AACA;;AAEA,OAAOA,KAAK,IAAIC,aAAa,QAAQ,OAAO;AAC5C,OAAOC,UAAU,MAAM,YAAY;AACnC,SAASC,eAAe,QAAQ,gCAAgC;AAChE,OAAOC,OAAO,MAAM,aAAa;AACjC,SACEC,QAAQ,IAAIC,cAAc,EAG1BC,mBAAmB,IAAIC,yBAAyB,QAC3C,oBAAoB;AAC3B,SACEC,gBAAgB,EAChBC,sBAAsB,EACtBC,YAAY,EACZC,cAAc,QACT,kBAAkB;AACzB,SAEEC,UAAU,QAGL,wBAAwB;AAC/B,SAASC,MAAM,EAAEC,kBAAkB,QAAQ,uBAAuB;AAClE,OAAOC,GAAG,MAAM,gBAAgB;AAChC,SACEC,aAAa,EAEbC,YAAY,QACP,kBAAkB;AAEzB,SAASC,MAAM,QAAQ,QAAQ;AAAC,OACzBC,+BAA+B;AAAA,OAC/BC,gCAAgC;AAAA;AAAA,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA,EAAAC,QAAA,IAAAC,SAAA;AAKvC,IAAMC,GAAG,GAAGZ,GAAG,CAACa,MAAM,CAAC,uBAAuB,CAAC;AAoD/C,MAAMC,qBAAqB,SAAS7B,aAAa,CAG/C;EAaA,OAAO8B,cAAcA,CAAA,EAAuB;IAC1C,OAAO;MAAEC,GAAG,EAAEb,MAAM,CAAC;IAAE,CAAC;EAC1B;EAEAc,WAAWA,CAACC,KAAiC,EAAE;IAAA,IAAAC,qBAAA,EAAAC,oBAAA;IAC7C,KAAK,CAACF,KAAK,CAAC;IAACG,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,yBA6FEjC,OAAO,CAAEkC,UAAkB,IAC1CzB,UAAU,CAAC0B,cAAc,CAACD,UAAU,CACtC,CAAC;IA7FC,IAAI,CAACE,YAAY,GAAG,IAAI,CAACA,YAAY,CAACC,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACC,WAAW,GAAG,IAAI,CAACA,WAAW,CAACD,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACE,0BAA0B,GAC7B,IAAI,CAACA,0BAA0B,CAACF,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,CAACG,UAAU,GAAG,IAAI,CAACA,UAAU,CAACH,IAAI,CAAC,IAAI,CAAC;IAC5C,IAAI,CAACI,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACJ,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,CAACK,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACL,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,CAACM,uBAAuB,GAAG,IAAI,CAACA,uBAAuB,CAACN,IAAI,CAAC,IAAI,CAAC;IACtE,IAAI,CAACO,WAAW,GAAG,IAAI,CAACA,WAAW,CAACP,IAAI,CAAC,IAAI,CAAC;IAC9C,IAAI,CAACQ,cAAc,GAAG,IAAI,CAACA,cAAc,CAACR,IAAI,CAAC,IAAI,CAAC;IACpD,IAAI,CAACS,YAAY,GAAG,IAAI,CAACA,YAAY,CAACT,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACU,YAAY,GAAG,IAAI,CAACA,YAAY,CAACV,IAAI,CAAC,IAAI,CAAC;IAChD,IAAI,CAACW,oBAAoB,GAAG,IAAI,CAACA,oBAAoB,CAACX,IAAI,CAAC,IAAI,CAAC;IAChE,IAAI,CAACY,kBAAkB,GAAG,IAAI,CAACA,kBAAkB,CAACZ,IAAI,CAAC,IAAI,CAAC;IAC5D,IAAI,CAACa,mBAAmB,GAAG,IAAI,CAACA,mBAAmB,CAACb,IAAI,CAAC,IAAI,CAAC;IAE9D,IAAI,CAACc,kBAAkB,gBAAGvD,KAAK,CAACwD,SAAS,CAAC,CAAC;IAE3C,IAAQC,KAAK,GAAsBvB,KAAK,CAAhCuB,KAAK;MAAEC,MAAM,GAAcxB,KAAK,CAAzBwB,MAAM;MAAEC,OAAO,GAAKzB,KAAK,CAAjByB,OAAO;IAC9B,IAAMC,eAAe,GAAsCD,OAAO,CAA5DC,eAAe;MAAEC,eAAe,GAAqBF,OAAO,CAA3CE,eAAe;MAAEC,cAAc,GAAKH,OAAO,CAA1BG,cAAc;;IAEtD;IACA,IAAMC,WAAiC,IAAA5B,qBAAA,IAAAC,oBAAA,GACrCuB,OAAO,CAACI,WAAW,cAAA3B,oBAAA,uBAAnBA,oBAAA,CAAqB4B,GAAG,CAACC,IAAA;MAAA,IAAGC,YAAY,GAAAD,IAAA,CAAZC,YAAY;QAAEC,KAAK,GAAAF,IAAA,CAALE,KAAK;MAAA,OAAQ;QACrDD,YAAY;QACZC,KAAK;QACLnC,GAAG,EAAEb,MAAM,CAAC;MACd,CAAC;IAAA,CAAC,CAAC,cAAAgB,qBAAA,cAAAA,qBAAA,GAAI,EAAE;IACX,IAAI4B,WAAW,CAACK,MAAM,KAAK,CAAC,EAAE;MAC5BL,WAAW,CAACM,IAAI,CAACvC,qBAAqB,CAACC,cAAc,CAAC,CAAC,CAAC;IAC1D;IACA,IAAI6B,eAAe,IAAI,IAAI,EAAE;MAC3BA,eAAe,GAAG,EAAE;IACtB;IACA,IAAIC,eAAe,IAAI,IAAI,EAAE;MAC3BA,eAAe,GAAG,IAAI;IACxB;IACA,IAAIC,cAAc,IAAI,IAAI,EAAE;MAC1BA,cAAc,GAAG,EAAE;IACrB;IAEA,IAAMQ,WAAW,GAAGb,KAAK,CAACc,oBAAoB,CAACb,MAAM,CAACc,IAAI,CAAC;IAC3DvD,aAAa,CAACqD,WAAW,CAAC;IAC1B,IAAMG,UAAU,GAAGhB,KAAK,CAACiB,gBAAgB,CAACJ,WAAW,CAAC;IAEtD,IAAI,CAACK,KAAK,GAAG;MACX;MACAZ,WAAW;MAEX;MACAH,eAAe;MAEfC,eAAe;MAEfC,cAAc;MAEdc,gBAAgB,EAAE,IAAI;MACtBC,WAAW,EAAEC,SAAS;MAEtBL;IACF,CAAC;EACH;EAEAM,iBAAiBA,CAAA,EAAS;IACxB,IAAI,CAACC,eAAe,CAAC,CAAC;EACxB;EAEAC,oBAAoBA,CAAA,EAAS;IAC3B,IAAI,IAAI,CAACC,eAAe,IAAI,IAAI,EAAE;MAChCC,YAAY,CAAC,IAAI,CAACD,eAAe,CAAC;MAClC,IAAI,CAACE,UAAU,CAAC,CAAC;IACnB;IACA,IAAI,IAAI,CAACC,kBAAkB,IAAI,IAAI,EAAE;MACnC,IAAI,CAACA,kBAAkB,CAACC,MAAM,CAAC,CAAC;IAClC;EACF;EAQAC,sBAAsBA,CAACC,KAAa,EAAuB;IACzD,OAAO,IAAI,CAAC3C,kBAAkB,CAACJ,IAAI,CAAC,IAAI,EAAE+C,KAAK,CAAC;EAClD;EAEAC,sBAAsBA,CAACD,KAAa,EAAc;IAChD,OAAO,IAAI,CAAC1C,kBAAkB,CAACL,IAAI,CAAC,IAAI,EAAE+C,KAAK,CAAC;EAClD;EAMAR,eAAeA,CAAA,EAAS;IACtB,IAAAU,WAAA,GAA0B,IAAI,CAACxD,KAAK;MAA5BuB,KAAK,GAAAiC,WAAA,CAALjC,KAAK;MAAEC,MAAM,GAAAgC,WAAA,CAANhC,MAAM;IACrB,IAAI,CAACD,KAAK,CAACkC,sBAAsB,EAAE;MACjC/D,GAAG,CAACgE,KAAK,CAAC,6CAA6C,CAAC;MACxD;IACF;IAEA,IAAI,CAACP,kBAAkB,GAAGxE,UAAU,CAACgF,0BAA0B,CAC7DpC,KAAK,CAACoB,WAAW,CAACnB,MAAM,CAC1B,CAAC;IACD,IAAI,CAAC2B,kBAAkB,CACpBS,IAAI,CAACjB,WAAW,IAAI;MAAA,IAAAkB,qBAAA;MACnB,KAAAA,qBAAA,GAAIlB,WAAW,CAACmB,OAAO,CAAC,CAAC,CAAC,CAACvB,UAAU,cAAAsB,qBAAA,cAAAA,qBAAA,GAAI,IAAI,EAAE;QAC7C,IAAME,IAAI,GAAGpB,WAAW,CAACmB,OAAO,CAAC,CAAC,CAAC,CAACC,IAAI,CAAC,CAAC,CAACC,GAAG,CAAC,CAAC;QAChDrB,WAAW,CAACsB,SAAS,CAAC,CAACF,IAAI,CAAC,CAAC;MAC/B;MACA,IAAI,CAACG,QAAQ,CAAC;QAAEvB;MAAY,CAAC,CAAC;IAChC,CAAC,CAAC,CACDwB,KAAK,CAACC,KAAK,IAAI;MACd,IAAIpF,YAAY,CAACqF,UAAU,CAACD,KAAK,CAAC,EAAE;QAClC;MACF;MAEA1E,GAAG,CAAC0E,KAAK,CAAC,6BAA6B,EAAEA,KAAK,CAAC;MAC/C,IAAI,CAACF,QAAQ,CAAC;QAAExB,gBAAgB,EAAE0B;MAAM,CAAC,CAAC;IAC5C,CAAC,CAAC;EACN;EAEAjD,kBAAkBA,CAAA,EAAS;IAAA,IAAAmD,qBAAA;IACzB,EAAAA,qBAAA,GACE,IAAI,CAACjD,kBAAkB,cAAAiD,qBAAA,gBAAAA,qBAAA,GAAvBA,qBAAA,CAAyBC,OAAO,cAAAD,qBAAA,uBAAhCA,qBAAA,CAAkCE,aAAa,CAC7C,8BACF,CAAC,EACDC,KAAK,CAAC,CAAC;EACX;EAEAvD,oBAAoBA,CAAA,EAAS;IAAA,IAAAwD,sBAAA;IAC3B,IAAMC,MAAM,IAAAD,sBAAA,GAAG,IAAI,CAACrD,kBAAkB,cAAAqD,sBAAA,gBAAAA,sBAAA,GAAvBA,sBAAA,CAAyBH,OAAO,cAAAG,sBAAA,uBAAhCA,sBAAA,CAAkCE,gBAAgB,CAC/D,8BACF,CAAC;IACD,IAAID,MAAM,IAAIA,MAAM,CAACzC,MAAM,GAAG,CAAC,EAAE;MAC/B,IAAM2C,OAAO,GAAGF,MAAM,CAACA,MAAM,CAACzC,MAAM,GAAG,CAAC,CAAgB;MACxD2C,OAAO,CAACJ,KAAK,CAAC,CAAC;IACjB;EACF;EAEAnE,YAAYA,CAAA,EAAS;IACnB,IAAAwE,WAAA,GAAuC,IAAI,CAACrC,KAAK;MAA3CZ,WAAW,GAAAiD,WAAA,CAAXjD,WAAW;MAAEH,eAAe,GAAAoD,WAAA,CAAfpD,eAAe;IAClCG,WAAW,GAAGA,WAAW,CAACkD,MAAM,CAACnF,qBAAqB,CAACC,cAAc,CAAC,CAAC,CAAC;IACxE6B,eAAe,GAAGA,eAAe,CAACqD,MAAM,CAAC3G,cAAc,CAAC4G,GAAG,CAAC;IAC5D,IAAI,CAACd,QAAQ,CAAC;MAAErC,WAAW;MAAEH;IAAgB,CAAC,CAAC;EACjD;EAEAlB,WAAWA,CAAA,EAAS;IAClB,IAAAyE,YAAA,GAAuC,IAAI,CAACxC,KAAK;MAA3CZ,WAAW,GAAAoD,YAAA,CAAXpD,WAAW;MAAEH,eAAe,GAAAuD,YAAA,CAAfvD,eAAe;IAClCG,WAAW,GAAGA,WAAW,CAACkD,MAAM,CAACnF,qBAAqB,CAACC,cAAc,CAAC,CAAC,CAAC;IACxE6B,eAAe,GAAGA,eAAe,CAACqD,MAAM,CAAC3G,cAAc,CAAC8G,EAAE,CAAC;IAC3D,IAAI,CAAChB,QAAQ,CAAC;MAAErC,WAAW;MAAEH;IAAgB,CAAC,CAAC;EACjD;EAEAjB,0BAA0BA,CAAC6C,KAAa,EAAE6B,QAAgB,EAAQ;IAChE,IAAMzD,eAAe,GAAK,IAAI,CAACe,KAAK,CAA9Bf,eAAe;IACrBA,eAAe,GAAG,CAAC,GAAGA,eAAe,CAAC;IAEtCpD,yBAAyB,CAAC6G,QAAQ,CAAC;IAEnCzD,eAAe,CAAC4B,KAAK,CAAC,GAAG6B,QAAQ;IAEjC,IAAI,CAACjB,QAAQ,CAAC;MAAExC;IAAgB,CAAC,CAAC;IAElC,IAAI,CAAC0D,gBAAgB,CAAC,CAAC;EACzB;EAEAzE,kBAAkBA,CAChB0E,WAAmB,EACnBrD,YAA6B,EAC7BC,KAAa,EACP;IACN,IAAMJ,WAAW,GAAK,IAAI,CAACY,KAAK,CAA1BZ,WAAW;IACjBA,WAAW,GAAG,CAAC,GAAGA,WAAW,CAAC;IAC9B,IAAQ/B,GAAG,GAAK+B,WAAW,CAACwD,WAAW,CAAC,CAAhCvF,GAAG;IACX+B,WAAW,CAACwD,WAAW,CAAC,GAAG;MAAEvF,GAAG;MAAEkC,YAAY;MAAEC;IAAM,CAAC;IAEvD,IAAI,CAACiC,QAAQ,CAAC;MAAErC;IAAY,CAAC,CAAC;IAE9B,IAAI,CAACuD,gBAAgB,CAAC,CAAC;EACzB;EAEAxE,kBAAkBA,CAACyE,WAAmB,EAAQ;IAC5C,IAAAC,YAAA,GAAuC,IAAI,CAAC7C,KAAK;MAA3CZ,WAAW,GAAAyD,YAAA,CAAXzD,WAAW;MAAEH,eAAe,GAAA4D,YAAA,CAAf5D,eAAe;IAClCG,WAAW,GAAG,CAAC,GAAGA,WAAW,CAAC;IAC9BH,eAAe,GAAG,CAAC,GAAGA,eAAe,CAAC;IACtC,IAAI2D,WAAW,GAAGxD,WAAW,CAACK,MAAM,EAAE;MACpCL,WAAW,CAAC0D,MAAM,CAACF,WAAW,EAAE,CAAC,CAAC;IACpC;IAEA,IAAIA,WAAW,GAAG3D,eAAe,CAACQ,MAAM,EAAE;MACxCR,eAAe,CAAC6D,MAAM,CAACF,WAAW,EAAE,CAAC,CAAC;IACxC,CAAC,MAAM,IAAIA,WAAW,KAAK3D,eAAe,CAACQ,MAAM,EAAE;MACjD;MACAR,eAAe,CAAC6D,MAAM,CAAC7D,eAAe,CAACQ,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC;IACvD;IAEA,IAAIL,WAAW,CAACK,MAAM,KAAK,CAAC,EAAE;MAC5BL,WAAW,CAACM,IAAI,CAACvC,qBAAqB,CAACC,cAAc,CAAC,CAAC,CAAC;IAC1D;IAEA,IAAI,CAACqE,QAAQ,CAAC;MAAErC,WAAW;MAAEH;IAAgB,CAAC,CAAC;IAE/C,IAAI,CAAC0D,gBAAgB,CAAC,CAAC;EACzB;EAEAvE,uBAAuBA,CACrBe,cAAyB,EACzBD,eAAwB,EAClB;IACN,IAAI,CAACuC,QAAQ,CAAC;MAAEtC,cAAc;MAAED;IAAgB,CAAC,CAAC;IAElD,IAAI,CAACyD,gBAAgB,CAAC,CAAC;EACzB;EAEAtE,WAAWA,CAAA,EAAS;IAClBpB,GAAG,CAACgE,KAAK,CAAC,2BAA2B,CAAC;IAEtC,IAAI,CAACQ,QAAQ,CAAC;MACZrC,WAAW,EAAE,CAACjC,qBAAqB,CAACC,cAAc,CAAC,CAAC,CAAC;MACrD6B,eAAe,EAAE,EAAE;MACnBE,cAAc,EAAE,EAAE;MAClBD,eAAe,EAAE;IACnB,CAAC,CAAC;IAEF,IAAI,CAACyD,gBAAgB,CAAC,CAAC;EACzB;EAEArE,cAAcA,CAACyE,KAA0C,EAAQ;IAC/D,IAAMC,aAAa,GAAG5G,kBAAkB,CAAC6G,iBAAiB,CAACF,KAAK,CAAC;IACjE,IAAI,CAACG,SAAS,CAAChH,UAAU,CAACiH,aAAa,CAACC,UAAU,EAAEJ,aAAa,CAAC;EACpE;EAEAzE,YAAYA,CAACwE,KAA0C,EAAQ;IAC7D,IAAMC,aAAa,GAAG5G,kBAAkB,CAAC6G,iBAAiB,CAACF,KAAK,CAAC;IACjE,IAAI,CAACG,SAAS,CAAChH,UAAU,CAACiH,aAAa,CAACE,SAAS,EAAEL,aAAa,CAAC;EACnE;EAEAxE,YAAYA,CAACuE,KAAuC,EAAQ;IAC1D9F,GAAG,CAACgE,KAAK,CAAC,4BAA4B,CAAC;IACvC,IAAI,CAACqC,eAAe,CAAC,CAAC;IACtB,IAAI,CAAC7C,UAAU,CAAC,CAAC;IAEjBsC,KAAK,CAACQ,cAAc,CAAC,CAAC;EACxB;EAEAtF,UAAUA,CAAC8E,KAA0C,EAAQ;IAC3D9F,GAAG,CAACgE,KAAK,CAAC,wCAAwC,CAAC;IACnD,IAAI,CAACqC,eAAe,CAAC,CAAC;IACtB,IAAI,CAAC7C,UAAU,CAAC,CAAC;IAEjB,IAAQ+C,MAAM,GAAK,IAAI,CAACjG,KAAK,CAArBiG,MAAM;IACdA,MAAM,CAAC,CAAC;IAERT,KAAK,CAACQ,cAAc,CAAC,CAAC;EACxB;EAEA5E,mBAAmBA,CAAA,EAAS;IAC1B,IAAI,CAAC4B,eAAe,GAAGJ,SAAS;IAChC,IAAI,CAACM,UAAU,CAAC,CAAC;EACnB;;EAEA;AACF;AACA;AACA;AACA;EACEgD,mBAAmBA,CAAA,EAAY;IAC7B,IAAQrE,WAAW,GAAK,IAAI,CAACY,KAAK,CAA1BZ,WAAW;IACnB,IAAIA,WAAW,CAACK,MAAM,KAAK,CAAC,EAAE;MAC5B,OAAO,KAAK;IACd;IAEA,IAAMiE,UAAU,GAAGtE,WAAW,CAACA,WAAW,CAACK,MAAM,GAAG,CAAC,CAAC;IACtD,IAAQF,YAAY,GAAYmE,UAAU,CAAlCnE,YAAY;MAAEC,KAAK,GAAKkE,UAAU,CAApBlE,KAAK;IAE3B,OACED,YAAY,IAAI,IAAI,IACpBA,YAAY,CAACE,MAAM,GAAG,CAAC,IACvBD,KAAK,IAAI,IAAI,IACbA,KAAK,CAACC,MAAM,GAAG,CAAC;EAEpB;;EAEA;AACF;AACA;AACA;AACA;EACEyD,SAASA,CAACS,SAAwB,EAA+B;IAAA,IAA7BX,aAAa,GAAAY,SAAA,CAAAnE,MAAA,QAAAmE,SAAA,QAAAzD,SAAA,GAAAyD,SAAA,MAAG,KAAK;IACvD,IAAAC,YAAA,GAAiC,IAAI,CAACtG,KAAK;MAAnCwB,MAAM,GAAA8E,YAAA,CAAN9E,MAAM;MAAE+E,YAAY,GAAAD,YAAA,CAAZC,YAAY;IAC5B,IAAQhE,UAAU,GAAK,IAAI,CAACE,KAAK,CAAzBF,UAAU;IAClB,IAAIA,UAAU,EAAE;MACdgE,YAAY,CAAC/E,MAAM,EAAE4E,SAAS,EAAEX,aAAa,CAAC;IAChD;EACF;EAEAL,gBAAgBA,CAAA,EAAS;IACvB,IAAI,CAACW,eAAe,CAAC,CAAC;IAEtB,IAAI,CAAC/C,eAAe,GAAGwD,UAAU,CAC/B,IAAI,CAACpF,mBAAmB,EACxBxB,qBAAqB,CAAC6G,oBACxB,CAAC;EACH;EAEAV,eAAeA,CAAA,EAAS;IACtB,IAAI,IAAI,CAAC/C,eAAe,KAAKJ,SAAS,EAAE;MACtCK,YAAY,CAAC,IAAI,CAACD,eAAe,CAAC;MAClC,IAAI,CAACA,eAAe,GAAGJ,SAAS;IAClC;EACF;EAEAM,UAAUA,CAAA,EAAS;IACjB,IAAAwD,YAAA,GACE,IAAI,CAACjE,KAAK;MADJZ,WAAW,GAAA6E,YAAA,CAAX7E,WAAW;MAAEH,eAAe,GAAAgF,YAAA,CAAfhF,eAAe;MAAEC,eAAe,GAAA+E,YAAA,CAAf/E,eAAe;MAAEC,cAAc,GAAA8E,YAAA,CAAd9E,cAAc;IAErE,IAAA+E,YAAA,GAAsD,IAAI,CAAC3G,KAAK;MAAxDwB,MAAM,GAAAmF,YAAA,CAANnF,MAAM;MAAEoF,cAAc,GAAAD,YAAA,CAAdC,cAAc;MAAErF,KAAK,GAAAoF,YAAA,CAALpF,KAAK;MAAEsF,UAAU,GAAAF,YAAA,CAAVE,UAAU;IACjD,IAAQC,SAAS,GAAKvF,KAAK,CAAnBuF,SAAS;IAEjB,IAAMC,KAAK,GAAGlF,WAAW,CAACmF,MAAM,CAC9BC,KAAA;MAAA,IAAGjF,YAAY,GAAAiF,KAAA,CAAZjF,YAAY;QAAEC,KAAK,GAAAgF,KAAA,CAALhF,KAAK;MAAA,OACpBD,YAAY,IAAI,IAAI,IAAIC,KAAK,IAAI,IAAI,IAAIA,KAAK,KAAK,EAAE;IAAA,CACzD,CAAiB;IAEjB,IAAMiF,SAAS,GAAGxF,eAAe,CAC9BsF,MAAM,CACL,CAAC7B,QAAQ,EAAEgC,CAAC,KACVhC,QAAQ,IAAI,IAAI,IAChBtD,WAAW,CAACsF,CAAC,CAAC,CAACnF,YAAY,IAAI,IAAI,IACnCH,WAAW,CAACsF,CAAC,CAAC,CAAClF,KAAK,IAAI,IAAI,IAC5BJ,WAAW,CAACsF,CAAC,CAAC,CAAClF,KAAK,KAAK,EAC7B,CAAC,CACAmF,KAAK,CAAC,CAAC,EAAEL,KAAK,CAAC7E,MAAM,GAAG,CAAC,CAAC;IAC7B;;IAEA,IAAMT,OAAO,GAAG;MACdI,WAAW,EAAEkF,KAAK;MAClBrF,eAAe,EAAEwF,SAAS;MAC1BvF,eAAe;MACfC;IACF,CAAC;IAED,IAAMoF,MAAM,GAAGH,UAAU,CAACQ,kBAAkB,CAC1C7F,MAAM,EACNC,OAAO,EACPqF,SAAS,CAACQ,QACZ,CAAC;IAEDV,cAAc,CAACpF,MAAM,EAAEwF,MAAM,EAAEvF,OAAO,CAAC;EACzC;EAEA8F,MAAMA,CAAA,EAAgB;IAAA,IAAAC,KAAA;IACpB,IAAAC,YAAA,GAQI,IAAI,CAACzH,KAAK;MAPZwB,MAAM,GAAAiG,YAAA,CAANjG,MAAM;MACND,KAAK,GAAAkG,YAAA,CAALlG,KAAK;MACLqE,aAAa,GAAA6B,YAAA,CAAb7B,aAAa;MACbkB,SAAS,GAAAW,YAAA,CAATX,SAAS;MACTD,UAAU,GAAAY,YAAA,CAAVZ,UAAU;MACVa,WAAW,GAAAD,YAAA,CAAXC,WAAW;MACXC,gBAAgB,GAAAF,YAAA,CAAhBE,gBAAgB;IAElB,IAAAC,YAAA,GAQI,IAAI,CAACnF,KAAK;MAPZZ,WAAW,GAAA+F,YAAA,CAAX/F,WAAW;MACXH,eAAe,GAAAkG,YAAA,CAAflG,eAAe;MACfC,eAAe,GAAAiG,YAAA,CAAfjG,eAAe;MACfC,cAAc,GAAAgG,YAAA,CAAdhG,cAAc;MACde,WAAW,GAAAiF,YAAA,CAAXjF,WAAW;MACXD,gBAAgB,GAAAkF,YAAA,CAAhBlF,gBAAgB;MAChBH,UAAU,GAAAqF,YAAA,CAAVrF,UAAU;IAEZ,IAAQsF,EAAE,GAA6BtG,KAAK,CAApCsG,EAAE;MAAEpE,sBAAsB,GAAKlC,KAAK,CAAhCkC,sBAAsB;IAClC,IAAMqE,SAAS,GAAGnJ,UAAU,CAACoJ,aAAa,CAACvG,MAAM,CAACwG,IAAI,CAAC;IACvD,IAAMC,UAAU,GAAGtJ,UAAU,CAACsJ,UAAU,CAACzG,MAAM,CAACwG,IAAI,CAAC;IACrD,IAAME,WAAW,GAAG,IAAI,CAAC7H,cAAc,CAACmB,MAAM,CAACwG,IAAI,CAAC;IACpD,IAAM5H,UAAU,GAAGoB,MAAM,CAACwG,IAAI,CAACG,SAAS,CAAC3G,MAAM,CAACwG,IAAI,CAACI,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1E,IAAMC,kBAAkB,GAAG,EAAE;IAC7B,IAAI,CAACP,SAAS,IAAII,WAAW,CAAChG,MAAM,EAAE;MAAA,IAAAoG,KAAA,YAAAA,MAAAnB,CAAA,EACY;QAC9C,IAAMhB,UAAU,GAAGtE,WAAW,CAACsF,CAAC,CAAC;QACjC,IAAQrH,GAAG,GAA0BqG,UAAU,CAAvCrG,GAAG;UAAEkC,YAAY,GAAYmE,UAAU,CAAlCnE,YAAY;UAAEC,KAAK,GAAKkE,UAAU,CAApBlE,KAAK;QAEhC,IAAM4C,OAAO,gBACXxF,IAAA,CAACH,+BAA+B;UAE9BsC,MAAM,EAAEA,MAAO;UACf0G,WAAW,EAAEA,WAAY;UACzBK,QAAQ,EAAEf,KAAI,CAACnE,sBAAsB,CAAC8D,CAAC,CAAE;UACzCqB,QAAQ,EAAEhB,KAAI,CAACjE,sBAAsB,CAAC4D,CAAC,CAAE;UACzCnF,YAAY,EAAEA,YAAa;UAC3BC,KAAK,EAAEA,KAAM;UACb6E,SAAS,EAAEA,SAAU;UACrBD,UAAU,EAAEA;QAAW,GARlB/G,GASN,CACF;QACDuI,kBAAkB,CAAClG,IAAI,CAAC0C,OAAO,CAAC;QAEhC,IAAIsC,CAAC,GAAGzF,eAAe,CAACQ,MAAM,EAAE;UAC9B,IAAMuG,cAAc,GAAG/G,eAAe,CAACyF,CAAC,CAAC;UACzC,IAAMuB,WAAW,GAAGD,cAAc,KAAKrK,cAAc,CAAC4G,GAAG;UACzD,IAAM2D,eAAe,gBACnBpJ,KAAA;YAEEqJ,SAAS,EAAC,sEAAsE;YAAAC,QAAA,gBAEhFxJ,IAAA,CAACT,MAAM;cACLkK,IAAI,EAAC,OAAO;cACZF,SAAS,EAAE5K,UAAU,CAAC,iBAAiB,EAAE;gBACvC+K,MAAM,EAAEL;cACV,CAAC,CAAE;cACHM,OAAO,EAAEA,CAAA,KACPxB,KAAI,CAAC/G,0BAA0B,CAAC0G,CAAC,EAAE/I,cAAc,CAAC4G,GAAG,CACtD;cAAA6D,QAAA,EACF;YAED,CAAQ,CAAC,eACTxJ,IAAA,CAACT,MAAM;cACLkK,IAAI,EAAC,OAAO;cACZF,SAAS,EAAE5K,UAAU,CAAC,iBAAiB,EAAE;gBACvC+K,MAAM,EAAE,CAACL;cACX,CAAC,CAAE;cACHM,OAAO,EAAEA,CAAA,KACPxB,KAAI,CAAC/G,0BAA0B,CAAC0G,CAAC,EAAE/I,cAAc,CAAC8G,EAAE,CACrD;cAAA2D,QAAA,EACF;YAED,CAAQ,CAAC;UAAA,oBAAA9D,MAAA,CAxBajF,GAAG,CAyBtB,CACN;UACDuI,kBAAkB,CAAClG,IAAI,CAACwG,eAAe,CAAC;QAC1C;MACF,CAAC;MArDD,KAAK,IAAIxB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGtF,WAAW,CAACK,MAAM,EAAEiF,CAAC,IAAI,CAAC;QAAAmB,KAAA,CAAAnB,CAAA;MAAA;IAsDhD;IACA,IAAM8B,iBAAiB,GAAG,IAAI,CAAC/C,mBAAmB,CAAC,CAAC;IACpD,IAAMgD,aAAa,gBACjB3J,KAAA;MAEEqJ,SAAS,EAAE5K,UAAU,CAAC,8CAA8C,EAAE;QACpEmL,MAAM,EAAE,CAACF;MACX,CAAC,CAAE;MAAAJ,QAAA,gBAEHxJ,IAAA;QAAMuJ,SAAS,EAAC,YAAY;QAAAC,QAAA,eAC1BxJ,IAAA,CAACpB,eAAe;UAACmL,IAAI,EAAE5K;QAAuB,CAAE;MAAC,CAC7C,CAAC,eACPa,IAAA,CAACT,MAAM;QACLkK,IAAI,EAAC,OAAO;QACZF,SAAS,EAAC,iBAAiB;QAC3BI,OAAO,EAAE,IAAI,CAAC1I,YAAa;QAC3B+I,QAAQ,EAAE,CAACJ,iBAAkB;QAC7BK,OAAO,EAAC,qBAAqB;QAAAT,QAAA,EAC9B;MAED,CAAQ,CAAC,eACTxJ,IAAA,CAACT,MAAM;QACLkK,IAAI,EAAC,OAAO;QACZF,SAAS,EAAC,iBAAiB;QAC3BI,OAAO,EAAE,IAAI,CAACxI,WAAY;QAC1B6I,QAAQ,EAAE,CAACJ,iBAAkB;QAC7BK,OAAO,EAAC,oBAAoB;QAAAT,QAAA,EAC7B;MAED,CAAQ,CAAC;IAAA,GAzBL,eA0BD,CACN;IACDR,kBAAkB,CAAClG,IAAI,CAAC+G,aAAa,CAAC;IAEtC,oBACE3J,KAAA;MAAKqJ,SAAS,EAAC,yBAAyB;MAACW,IAAI,EAAC,cAAc;MAAAV,QAAA,gBAC1DxJ,IAAA;QAAKmK,QAAQ,EAAE,CAAE;QAACC,OAAO,EAAE,IAAI,CAACvI;MAAqB,CAAE,CAAC,eACxD3B,KAAA;QAAMmK,QAAQ,EAAE,IAAI,CAACzI,YAAa;QAAC0I,GAAG,EAAE,IAAI,CAACtI,kBAAmB;QAAAwH,QAAA,gBAC9DtJ,KAAA;UAAKqJ,SAAS,EAAC,WAAW;UAAAC,QAAA,gBACxBxJ,IAAA;YAAIuJ,SAAS,EAAC,uBAAuB;YAAAC,QAAA,EAAC;UAAgB,CAAI,CAAC,eAC3DtJ,KAAA;YAAKqJ,SAAS,EAAC,8BAA8B;YAAAC,QAAA,gBAC3CxJ,IAAA,CAACT,MAAM;cACLkK,IAAI,EAAC,OAAO;cACZF,SAAS,EAAE5K,UAAU,CAAC,eAAe,EAAE;gBACrC+K,MAAM,EAAEnD,aAAa,KAAKjH,UAAU,CAACiH,aAAa,CAACC;cACrD,CAAC,CAAE;cACHmD,OAAO,EAAE,IAAI,CAACjI,cAAe;cAC7BqI,IAAI,EAAE7K,gBAAiB;cACvB+K,OAAO,EACL/G,UAAU,WAAAwC,MAAA,CAAWvD,MAAM,CAACc,IAAI,mBAAgB,cACjD;cACD+G,QAAQ,EAAE,CAAC9G;YAAW,CACvB,CAAC,eACFlD,IAAA,CAACT,MAAM;cACLkK,IAAI,EAAC,OAAO;cACZF,SAAS,EAAE5K,UAAU,CAAC,eAAe,EAAE;gBACrC+K,MAAM,EAAEnD,aAAa,KAAKjH,UAAU,CAACiH,aAAa,CAACE;cACrD,CAAC,CAAE;cACHkD,OAAO,EAAE,IAAI,CAAChI,YAAa;cAC3BoI,IAAI,eACF/J,IAAA,CAACpB,eAAe;gBAACmL,IAAI,EAAE7K,gBAAiB;gBAACqL,QAAQ,EAAE;cAAI,CAAE,CAC1D;cACDN,OAAO,EACL/G,UAAU,WAAAwC,MAAA,CAAWvD,MAAM,CAACc,IAAI,kBAAe,cAChD;cACD+G,QAAQ,EAAE,CAAC9G;YAAW,CACvB,CAAC,eACFlD,IAAA,CAACT,MAAM;cACLkK,IAAI,EAAC,OAAO;cACZF,SAAS,EAAE5K,UAAU,CAAC,eAAe,EAAE;gBACrC+K,MAAM,EAAErB;cACV,CAAC,CAAE;cACHsB,OAAO,EAAErB,gBAAiB;cAC1ByB,IAAI,EAAE1B,WAAW,GAAGhJ,cAAc,GAAGD,YAAa;cAClD6K,OAAO,EACL5B,WAAW,GAAG,qBAAqB,GAAG;YACvC,CACF,CAAC;UAAA,CACC,CAAC;QAAA,CACH,CAAC,eACNrI,IAAA,SAAK,CAAC,eACNE,KAAA;UAAKqJ,SAAS,EAAC,6BAA6B;UAAAC,QAAA,GACzCrH,MAAM,CAACc,IAAI,EAAC,MACb,eAAA/C,KAAA;YAAMqJ,SAAS,EAAC,aAAa;YAAAC,QAAA,GAAC,GAAC,EAACzI,UAAU,EAAC,GAAC;UAAA,CAAM,CAAC;QAAA,CAChD,CAAC,EACLiI,kBAAkB,EAClB5E,sBAAsB,IAAIf,gBAAgB,IAAI,IAAI,iBACjDnD,KAAA,CAAAE,SAAA;UAAAoJ,QAAA,GACG,CAACf,SAAS,iBAAIzI,IAAA,SAAK,CAAC,eACrBA,IAAA;YAAKuJ,SAAS,EAAC,yCAAyC;YAAAC,QAAA,eACtDxJ,IAAA,CAACF,gCAAgC;cAC/B0I,EAAE,EAAEA,EAAG;cACPgC,KAAK,EAAElH,WAAY;cACnB4F,QAAQ,EAAE,IAAI,CAAC1H,uBAAwB;cACvCc,eAAe,EAAEA,eAAgB;cACjCC,cAAc,EAAEA,cAAe;cAC/BkF,SAAS,EAAEA,SAAU;cACrBgD,UAAU,EAAE,CAAC7B,UAAW;cACxBX,QAAQ,EAAER,SAAS,CAACQ;YAAS,CAC9B;UAAC,CACC,CAAC;QAAA,CACN,CACH,eACD/H,KAAA;UAAKqJ,SAAS,EAAC,8BAA8B;UAAAC,QAAA,gBAC3CxJ,IAAA,CAACT,MAAM;YACLkK,IAAI,EAAC,WAAW;YAChBF,SAAS,EAAC,MAAM;YAChBI,OAAO,EAAE,IAAI,CAAClI,WAAY;YAAA+H,QAAA,EAC3B;UAED,CAAQ,CAAC,eACTxJ,IAAA,CAACT,MAAM;YAACkK,IAAI,EAAC,SAAS;YAACE,OAAO,EAAE,IAAI,CAACtI,UAAW;YAAAmI,QAAA,EAAC;UAEjD,CAAQ,CAAC;QAAA,CACN,CAAC;MAAA,CACF,CAAC,eACPxJ,IAAA;QAAKmK,QAAQ,EAAE,CAAE;QAACC,OAAO,EAAE,IAAI,CAACtI;MAAmB,CAAE,CAAC;IAAA,CACnD,CAAC;EAEV;AACF;AAAChB,eAAA,CA/jBKP,qBAAqB,0BAIK,GAAG;AAAAO,eAAA,CAJ7BP,qBAAqB,kBAMH;EACpB6B,OAAO,EAAE;IACPI,WAAW,EAAE,IAAI;IACjBH,eAAe,EAAE,IAAI;IACrBC,eAAe,EAAE,IAAI;IACrBC,cAAc,EAAE;EAClB,CAAC;EACDgE,aAAa,EAAE;AACjB,CAAC;AAmjBH,eAAehG,qBAAqB","ignoreList":[]}
@@ -49,11 +49,11 @@ export class AdvancedFilterCreatorFilterItem extends PureComponent {
49
49
  this.handleTypeChange = this.handleTypeChange.bind(this);
50
50
  this.handleValueChange = this.handleValueChange.bind(this);
51
51
  this.typeDropdown = null;
52
- var {
53
- value: _value = '',
54
- filterTypes,
55
- selectedType = filterTypes[0]
56
- } = props;
52
+ var _props$value = props.value,
53
+ _value = _props$value === void 0 ? '' : _props$value,
54
+ filterTypes = props.filterTypes,
55
+ _props$selectedType = props.selectedType,
56
+ selectedType = _props$selectedType === void 0 ? filterTypes[0] : _props$selectedType;
57
57
  this.state = {
58
58
  selectedType,
59
59
  value: _value
@@ -64,10 +64,9 @@ export class AdvancedFilterCreatorFilterItem extends PureComponent {
64
64
  (_this$typeDropdown = this.typeDropdown) === null || _this$typeDropdown === void 0 || _this$typeDropdown.focus();
65
65
  }
66
66
  componentDidUpdate(prevProps) {
67
- var {
68
- value,
69
- selectedType
70
- } = this.props;
67
+ var _this$props = this.props,
68
+ value = _this$props.value,
69
+ selectedType = _this$props.selectedType;
71
70
  if (selectedType !== undefined && prevProps.selectedType !== selectedType) {
72
71
  this.setState({
73
72
  selectedType
@@ -85,12 +84,8 @@ export class AdvancedFilterCreatorFilterItem extends PureComponent {
85
84
  this.setState({
86
85
  selectedType
87
86
  });
88
- var {
89
- onChange
90
- } = this.props;
91
- var {
92
- value
93
- } = this.state;
87
+ var onChange = this.props.onChange;
88
+ var value = this.state.value;
94
89
  if (value != null && value.length > 0) {
95
90
  // Don't send an update unless there's already a value entered
96
91
  onChange(selectedType, value);
@@ -98,18 +93,12 @@ export class AdvancedFilterCreatorFilterItem extends PureComponent {
98
93
  }
99
94
  handleValueChange(event) {
100
95
  log.debug2('valueChange');
101
- var {
102
- value
103
- } = event.target;
96
+ var value = event.target.value;
104
97
  this.setState({
105
98
  value
106
99
  });
107
- var {
108
- onChange
109
- } = this.props;
110
- var {
111
- selectedType
112
- } = this.state;
100
+ var onChange = this.props.onChange;
101
+ var selectedType = this.state.selectedType;
113
102
  if (selectedType != null) {
114
103
  // Don't send an update unless they've already selected a type
115
104
  onChange(selectedType, value);
@@ -117,22 +106,18 @@ export class AdvancedFilterCreatorFilterItem extends PureComponent {
117
106
  }
118
107
  handleDelete() {
119
108
  log.debug('delete');
120
- var {
121
- onDelete
122
- } = this.props;
109
+ var onDelete = this.props.onDelete;
123
110
  onDelete();
124
111
  }
125
112
  render() {
126
- var {
127
- column,
128
- filterTypes,
129
- formatter,
130
- tableUtils
131
- } = this.props;
132
- var {
133
- selectedType,
134
- value
135
- } = this.state;
113
+ var _this$props2 = this.props,
114
+ column = _this$props2.column,
115
+ filterTypes = _this$props2.filterTypes,
116
+ formatter = _this$props2.formatter,
117
+ tableUtils = _this$props2.tableUtils;
118
+ var _this$state = this.state,
119
+ selectedType = _this$state.selectedType,
120
+ value = _this$state.value;
136
121
  var showValueInput = !TableUtils.isBooleanType(column.type);
137
122
  var typeOptionElements = [];
138
123
  var isValid = this.getCachedIsValid(column, selectedType, value, formatter.timeZone, tableUtils);
@@ -1 +1 @@
1
- {"version":3,"file":"AdvancedFilterCreatorFilterItem.js","names":["React","PureComponent","Button","Select","getLabelForBooleanFilter","getLabelForDateFilter","getLabelForNumberFilter","getLabelForTextFilter","vsTrash","TableUtils","Log","classNames","memoizeOne","jsx","_jsx","jsxs","_jsxs","log","module","AdvancedFilterCreatorFilterItem","getLabelForFilter","columnType","filterType","isNumberType","isCharType","isTextType","isDateType","isBooleanType","Error","concat","e","warn","constructor","props","_defineProperty","column","operation","value","timeZone","tableUtils","makeAdvancedValueFilter","handleDelete","bind","handleTypeChange","handleValueChange","typeDropdown","filterTypes","selectedType","state","componentDidMount","_this$typeDropdown","focus","componentDidUpdate","prevProps","undefined","setState","eventTargetValue","debug2","onChange","length","event","target","debug","onDelete","render","formatter","showValueInput","type","typeOptionElements","isValid","getCachedIsValid","i","label","element","children","push","className","ref","error","placeholder","kind","onClick","icon","tooltip"],"sources":["../src/AdvancedFilterCreatorFilterItem.tsx"],"sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent } from 'react';\nimport { Button, Select } from '@deephaven/components';\nimport {\n getLabelForBooleanFilter,\n getLabelForDateFilter,\n getLabelForNumberFilter,\n getLabelForTextFilter,\n type TypeValue as FilterTypeValue,\n} from '@deephaven/filters';\nimport { vsTrash } from '@deephaven/icons';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n type AdvancedFilterItemType,\n type Formatter,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport classNames from 'classnames';\nimport memoizeOne from 'memoize-one';\nimport './AdvancedFilterCreatorFilterItem.scss';\n\nconst log = Log.module('AdvancedFilterCreatorFilterItem');\n\nexport interface AdvancedFilterCreatorFilterItemProps {\n column: dh.Column;\n filterTypes: FilterTypeValue[];\n onChange: (type: FilterTypeValue, value: string) => void;\n onDelete: () => void;\n selectedType?: FilterTypeValue;\n value?: string;\n formatter: Formatter;\n tableUtils: TableUtils;\n}\n\nexport type AdvancedFilterCreatorFilterItemState = AdvancedFilterItemType;\n\nexport class AdvancedFilterCreatorFilterItem extends PureComponent<\n AdvancedFilterCreatorFilterItemProps,\n AdvancedFilterCreatorFilterItemState\n> {\n static getLabelForFilter(\n columnType: string,\n filterType: FilterTypeValue\n ): string {\n try {\n if (\n TableUtils.isNumberType(columnType) ||\n TableUtils.isCharType(columnType)\n ) {\n return getLabelForNumberFilter(filterType);\n }\n if (TableUtils.isTextType(columnType)) {\n return getLabelForTextFilter(filterType);\n }\n if (TableUtils.isDateType(columnType)) {\n return getLabelForDateFilter(filterType);\n }\n if (TableUtils.isBooleanType(columnType)) {\n return getLabelForBooleanFilter(filterType);\n }\n throw new Error(`Unrecognized column type: ${columnType}`);\n } catch (e) {\n log.warn(e);\n return '';\n }\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 { value, selectedType } = this.props;\n if (selectedType !== undefined && prevProps.selectedType !== selectedType) {\n this.setState({ selectedType });\n }\n if (value !== undefined && prevProps.value !== value) {\n this.setState({ value });\n }\n }\n\n typeDropdown: HTMLSelectElement | null;\n\n handleTypeChange(eventTargetValue: string): void {\n const selectedType = eventTargetValue as FilterTypeValue;\n log.debug2('typeChange', selectedType);\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 getCachedIsValid = memoizeOne(\n (\n column: dh.Column,\n operation: FilterTypeValue,\n value: string,\n timeZone: string,\n tableUtils: TableUtils\n ): boolean => {\n try {\n // We don't want to show an error for an empty value\n return (\n !value ||\n tableUtils.makeAdvancedValueFilter(\n column,\n operation,\n value,\n timeZone\n ) != null\n );\n } catch (e) {\n return false;\n }\n }\n );\n\n render(): JSX.Element {\n const { column, filterTypes, formatter, tableUtils } = this.props;\n const { selectedType, value } = this.state;\n const showValueInput = !TableUtils.isBooleanType(column.type);\n const typeOptionElements = [];\n const isValid = this.getCachedIsValid(\n column,\n selectedType,\n value,\n formatter.timeZone,\n tableUtils\n );\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\"\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={classNames('form-control', { error: !isValid })}\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 kind=\"ghost\"\n className=\"w-100 h-100 p-0 m-0\"\n onClick={this.handleDelete}\n icon={vsTrash}\n tooltip=\"Remove Filter\"\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorFilterItem;\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"AdvancedFilterCreatorFilterItem.js","names":["React","PureComponent","Button","Select","getLabelForBooleanFilter","getLabelForDateFilter","getLabelForNumberFilter","getLabelForTextFilter","vsTrash","TableUtils","Log","classNames","memoizeOne","jsx","_jsx","jsxs","_jsxs","log","module","AdvancedFilterCreatorFilterItem","getLabelForFilter","columnType","filterType","isNumberType","isCharType","isTextType","isDateType","isBooleanType","Error","concat","e","warn","constructor","props","_defineProperty","column","operation","value","timeZone","tableUtils","makeAdvancedValueFilter","handleDelete","bind","handleTypeChange","handleValueChange","typeDropdown","_props$value","filterTypes","_props$selectedType","selectedType","state","componentDidMount","_this$typeDropdown","focus","componentDidUpdate","prevProps","_this$props","undefined","setState","eventTargetValue","debug2","onChange","length","event","target","debug","onDelete","render","_this$props2","formatter","_this$state","showValueInput","type","typeOptionElements","isValid","getCachedIsValid","i","label","element","children","push","className","ref","error","placeholder","kind","onClick","icon","tooltip"],"sources":["../src/AdvancedFilterCreatorFilterItem.tsx"],"sourcesContent":["/* eslint react/no-did-update-set-state: \"off\" */\nimport React, { PureComponent } from 'react';\nimport { Button, Select } from '@deephaven/components';\nimport {\n getLabelForBooleanFilter,\n getLabelForDateFilter,\n getLabelForNumberFilter,\n getLabelForTextFilter,\n type TypeValue as FilterTypeValue,\n} from '@deephaven/filters';\nimport { vsTrash } from '@deephaven/icons';\nimport type { dh } from '@deephaven/jsapi-types';\nimport {\n type AdvancedFilterItemType,\n type Formatter,\n TableUtils,\n} from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport classNames from 'classnames';\nimport memoizeOne from 'memoize-one';\nimport './AdvancedFilterCreatorFilterItem.scss';\n\nconst log = Log.module('AdvancedFilterCreatorFilterItem');\n\nexport interface AdvancedFilterCreatorFilterItemProps {\n column: dh.Column;\n filterTypes: FilterTypeValue[];\n onChange: (type: FilterTypeValue, value: string) => void;\n onDelete: () => void;\n selectedType?: FilterTypeValue;\n value?: string;\n formatter: Formatter;\n tableUtils: TableUtils;\n}\n\nexport type AdvancedFilterCreatorFilterItemState = AdvancedFilterItemType;\n\nexport class AdvancedFilterCreatorFilterItem extends PureComponent<\n AdvancedFilterCreatorFilterItemProps,\n AdvancedFilterCreatorFilterItemState\n> {\n static getLabelForFilter(\n columnType: string,\n filterType: FilterTypeValue\n ): string {\n try {\n if (\n TableUtils.isNumberType(columnType) ||\n TableUtils.isCharType(columnType)\n ) {\n return getLabelForNumberFilter(filterType);\n }\n if (TableUtils.isTextType(columnType)) {\n return getLabelForTextFilter(filterType);\n }\n if (TableUtils.isDateType(columnType)) {\n return getLabelForDateFilter(filterType);\n }\n if (TableUtils.isBooleanType(columnType)) {\n return getLabelForBooleanFilter(filterType);\n }\n throw new Error(`Unrecognized column type: ${columnType}`);\n } catch (e) {\n log.warn(e);\n return '';\n }\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 { value, selectedType } = this.props;\n if (selectedType !== undefined && prevProps.selectedType !== selectedType) {\n this.setState({ selectedType });\n }\n if (value !== undefined && prevProps.value !== value) {\n this.setState({ value });\n }\n }\n\n typeDropdown: HTMLSelectElement | null;\n\n handleTypeChange(eventTargetValue: string): void {\n const selectedType = eventTargetValue as FilterTypeValue;\n log.debug2('typeChange', selectedType);\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 getCachedIsValid = memoizeOne(\n (\n column: dh.Column,\n operation: FilterTypeValue,\n value: string,\n timeZone: string,\n tableUtils: TableUtils\n ): boolean => {\n try {\n // We don't want to show an error for an empty value\n return (\n !value ||\n tableUtils.makeAdvancedValueFilter(\n column,\n operation,\n value,\n timeZone\n ) != null\n );\n } catch (e) {\n return false;\n }\n }\n );\n\n render(): JSX.Element {\n const { column, filterTypes, formatter, tableUtils } = this.props;\n const { selectedType, value } = this.state;\n const showValueInput = !TableUtils.isBooleanType(column.type);\n const typeOptionElements = [];\n const isValid = this.getCachedIsValid(\n column,\n selectedType,\n value,\n formatter.timeZone,\n tableUtils\n );\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\"\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={classNames('form-control', { error: !isValid })}\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 kind=\"ghost\"\n className=\"w-100 h-100 p-0 m-0\"\n onClick={this.handleDelete}\n icon={vsTrash}\n tooltip=\"Remove Filter\"\n />\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default AdvancedFilterCreatorFilterItem;\n"],"mappings":"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","ignoreList":[]}