@deephaven/iris-grid 0.22.3-beta.15 → 0.22.3-beta.21

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 (209) hide show
  1. package/dist/AdvancedFilterCreator.js +7 -65
  2. package/dist/AdvancedFilterCreator.js.map +1 -1
  3. package/dist/AdvancedFilterCreatorFilterItem.js +0 -23
  4. package/dist/AdvancedFilterCreatorFilterItem.js.map +1 -1
  5. package/dist/AdvancedFilterCreatorSelectValue.js +0 -52
  6. package/dist/AdvancedFilterCreatorSelectValue.js.map +1 -1
  7. package/dist/AdvancedFilterCreatorSelectValueList.js +2 -42
  8. package/dist/AdvancedFilterCreatorSelectValueList.js.map +1 -1
  9. package/dist/ColumnHeaderGroup.js +0 -11
  10. package/dist/ColumnHeaderGroup.js.map +1 -1
  11. package/dist/ColumnStatistics.js +1 -20
  12. package/dist/ColumnStatistics.js.map +1 -1
  13. package/dist/CrossColumnSearch.js +2 -23
  14. package/dist/CrossColumnSearch.js.map +1 -1
  15. package/dist/FilterInputField.js +2 -36
  16. package/dist/FilterInputField.js.map +1 -1
  17. package/dist/GotoRow.d.ts +1 -1
  18. package/dist/GotoRow.d.ts.map +1 -1
  19. package/dist/GotoRow.js +2 -7
  20. package/dist/GotoRow.js.map +1 -1
  21. package/dist/IrisGrid.d.ts +41 -35
  22. package/dist/IrisGrid.d.ts.map +1 -1
  23. package/dist/IrisGrid.js +77 -519
  24. package/dist/IrisGrid.js.map +1 -1
  25. package/dist/IrisGridBottomBar.d.ts +1 -1
  26. package/dist/IrisGridBottomBar.d.ts.map +1 -1
  27. package/dist/IrisGridBottomBar.js +2 -2
  28. package/dist/IrisGridBottomBar.js.map +1 -1
  29. package/dist/IrisGridCellOverflowModal.js +6 -21
  30. package/dist/IrisGridCellOverflowModal.js.map +1 -1
  31. package/dist/IrisGridCopyHandler.js +3 -50
  32. package/dist/IrisGridCopyHandler.js.map +1 -1
  33. package/dist/IrisGridMetricCalculator.js +2 -12
  34. package/dist/IrisGridMetricCalculator.js.map +1 -1
  35. package/dist/IrisGridModel.js +32 -58
  36. package/dist/IrisGridModel.js.map +1 -1
  37. package/dist/IrisGridModelFactory.js +0 -7
  38. package/dist/IrisGridModelFactory.js.map +1 -1
  39. package/dist/IrisGridModelUpdater.js +0 -4
  40. package/dist/IrisGridModelUpdater.js.map +1 -1
  41. package/dist/IrisGridPartitionSelector.js +0 -23
  42. package/dist/IrisGridPartitionSelector.js.map +1 -1
  43. package/dist/IrisGridProxyModel.js +9 -153
  44. package/dist/IrisGridProxyModel.js.map +1 -1
  45. package/dist/IrisGridRenderer.js +41 -183
  46. package/dist/IrisGridRenderer.js.map +1 -1
  47. package/dist/IrisGridShortcuts.js.map +1 -1
  48. package/dist/IrisGridTableModel.d.ts +2 -2
  49. package/dist/IrisGridTableModel.d.ts.map +1 -1
  50. package/dist/IrisGridTableModel.js +10 -90
  51. package/dist/IrisGridTableModel.js.map +1 -1
  52. package/dist/IrisGridTableModelTemplate.d.ts +2 -2
  53. package/dist/IrisGridTableModelTemplate.d.ts.map +1 -1
  54. package/dist/IrisGridTableModelTemplate.js +70 -461
  55. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  56. package/dist/IrisGridTestUtils.js +0 -23
  57. package/dist/IrisGridTestUtils.js.map +1 -1
  58. package/dist/IrisGridTheme.js.map +1 -1
  59. package/dist/IrisGridTreeTableModel.js +3 -42
  60. package/dist/IrisGridTreeTableModel.js.map +1 -1
  61. package/dist/IrisGridUtils.d.ts +11 -5
  62. package/dist/IrisGridUtils.d.ts.map +1 -1
  63. package/dist/IrisGridUtils.js +98 -196
  64. package/dist/IrisGridUtils.js.map +1 -1
  65. package/dist/MissingKeyError.js +0 -7
  66. package/dist/MissingKeyError.js.map +1 -1
  67. package/dist/PartitionSelectorSearch.js +2 -48
  68. package/dist/PartitionSelectorSearch.js.map +1 -1
  69. package/dist/PendingDataBottomBar.d.ts +1 -1
  70. package/dist/PendingDataBottomBar.d.ts.map +1 -1
  71. package/dist/PendingDataBottomBar.js +2 -7
  72. package/dist/PendingDataBottomBar.js.map +1 -1
  73. package/dist/TableViewportUpdater.d.ts +2 -2
  74. package/dist/TableViewportUpdater.d.ts.map +1 -1
  75. package/dist/TableViewportUpdater.js +3 -29
  76. package/dist/TableViewportUpdater.js.map +1 -1
  77. package/dist/ToastBottomBar.d.ts +1 -1
  78. package/dist/ToastBottomBar.d.ts.map +1 -1
  79. package/dist/ToastBottomBar.js +2 -4
  80. package/dist/ToastBottomBar.js.map +1 -1
  81. package/dist/TreeTableViewportUpdater.js +0 -21
  82. package/dist/TreeTableViewportUpdater.js.map +1 -1
  83. package/dist/format-context-menus/CustomFormatAction.js +4 -25
  84. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  85. package/dist/format-context-menus/DateTimeFormatContextMenu.js +0 -7
  86. package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
  87. package/dist/format-context-menus/DecimalFormatContextMenu.js +0 -9
  88. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  89. package/dist/format-context-menus/FormatContextMenuUtils.js +3 -9
  90. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  91. package/dist/format-context-menus/IntegerFormatContextMenu.js +0 -8
  92. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  93. package/dist/format-context-menus/index.js.map +1 -1
  94. package/dist/index.d.ts +3 -3
  95. package/dist/index.d.ts.map +1 -1
  96. package/dist/index.js +3 -3
  97. package/dist/index.js.map +1 -1
  98. package/dist/key-handlers/ClearFilterKeyHandler.js +0 -8
  99. package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
  100. package/dist/key-handlers/CopyKeyHandler.js +1 -10
  101. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  102. package/dist/key-handlers/ReverseKeyHandler.js +0 -11
  103. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  104. package/dist/key-handlers/index.js.map +1 -1
  105. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +2 -32
  106. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  107. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +4 -34
  108. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  109. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +0 -20
  110. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  111. package/dist/mousehandlers/IrisGridContextMenuHandler.js +15 -105
  112. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  113. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +0 -9
  114. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
  115. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +0 -17
  116. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  117. package/dist/mousehandlers/IrisGridSortMouseHandler.js +2 -15
  118. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  119. package/dist/mousehandlers/PendingMouseHandler.js +0 -6
  120. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  121. package/dist/mousehandlers/index.js.map +1 -1
  122. package/dist/sidebar/AdvancedSettings.js.map +1 -1
  123. package/dist/sidebar/AdvancedSettingsMenu.d.ts +4 -4
  124. package/dist/sidebar/AdvancedSettingsMenu.d.ts.map +1 -1
  125. package/dist/sidebar/AdvancedSettingsMenu.js +2 -6
  126. package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
  127. package/dist/sidebar/AdvancedSettingsType.js +0 -2
  128. package/dist/sidebar/AdvancedSettingsType.js.map +1 -1
  129. package/dist/sidebar/ChartBuilder.js +2 -46
  130. package/dist/sidebar/ChartBuilder.js.map +1 -1
  131. package/dist/sidebar/CustomColumnBuilder.js +6 -58
  132. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  133. package/dist/sidebar/CustomColumnInput.js +4 -15
  134. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  135. package/dist/sidebar/InputEditor.js +5 -36
  136. package/dist/sidebar/InputEditor.js.map +1 -1
  137. package/dist/sidebar/OptionType.js +0 -2
  138. package/dist/sidebar/OptionType.js.map +1 -1
  139. package/dist/sidebar/RollupRows.js +9 -65
  140. package/dist/sidebar/RollupRows.js.map +1 -1
  141. package/dist/sidebar/SelectDistinctBuilder.js +0 -13
  142. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  143. package/dist/sidebar/TableCsvExporter.js +0 -52
  144. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  145. package/dist/sidebar/TableSaver.d.ts +1 -1
  146. package/dist/sidebar/TableSaver.d.ts.map +1 -1
  147. package/dist/sidebar/TableSaver.js +10 -123
  148. package/dist/sidebar/TableSaver.js.map +1 -1
  149. package/dist/sidebar/VisibilityOrderingBuilder.d.ts +3 -2
  150. package/dist/sidebar/VisibilityOrderingBuilder.d.ts.map +1 -1
  151. package/dist/sidebar/VisibilityOrderingBuilder.js +37 -116
  152. package/dist/sidebar/VisibilityOrderingBuilder.js.map +1 -1
  153. package/dist/sidebar/aggregations/AggregationEdit.d.ts +1 -1
  154. package/dist/sidebar/aggregations/AggregationEdit.d.ts.map +1 -1
  155. package/dist/sidebar/aggregations/AggregationEdit.js +2 -14
  156. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  157. package/dist/sidebar/aggregations/AggregationOperation.js +0 -2
  158. package/dist/sidebar/aggregations/AggregationOperation.js.map +1 -1
  159. package/dist/sidebar/aggregations/AggregationUtils.js +2 -5
  160. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  161. package/dist/sidebar/aggregations/Aggregations.d.ts +1 -1
  162. package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
  163. package/dist/sidebar/aggregations/Aggregations.js +2 -12
  164. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  165. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts +1 -1
  166. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -1
  167. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +2 -16
  168. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  169. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts +1 -1
  170. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
  171. package/dist/sidebar/conditional-formatting/ConditionEditor.js +2 -35
  172. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  173. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts +1 -1
  174. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts.map +1 -1
  175. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +2 -12
  176. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  177. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js +0 -3
  178. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
  179. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts +1 -1
  180. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts.map +1 -1
  181. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +16 -26
  182. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  183. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +9 -172
  184. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  185. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts +1 -1
  186. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -1
  187. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +2 -16
  188. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  189. package/dist/sidebar/conditional-formatting/StyleEditor.d.ts +1 -1
  190. package/dist/sidebar/conditional-formatting/StyleEditor.d.ts.map +1 -1
  191. package/dist/sidebar/conditional-formatting/StyleEditor.js +2 -12
  192. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
  193. package/dist/sidebar/icons/BarIcon.js +0 -3
  194. package/dist/sidebar/icons/BarIcon.js.map +1 -1
  195. package/dist/sidebar/icons/FormatColumnWhereIcon.js +2 -5
  196. package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -1
  197. package/dist/sidebar/icons/FormatRowWhereIcon.js +2 -5
  198. package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -1
  199. package/dist/sidebar/icons/HistogramIcon.js +0 -3
  200. package/dist/sidebar/icons/HistogramIcon.js.map +1 -1
  201. package/dist/sidebar/icons/LineIcon.js +0 -3
  202. package/dist/sidebar/icons/LineIcon.js.map +1 -1
  203. package/dist/sidebar/icons/PieIcon.js +0 -3
  204. package/dist/sidebar/icons/PieIcon.js.map +1 -1
  205. package/dist/sidebar/icons/ScatterIcon.js +0 -3
  206. package/dist/sidebar/icons/ScatterIcon.js.map +1 -1
  207. package/dist/sidebar/icons/index.js.map +1 -1
  208. package/dist/sidebar/index.js.map +1 -1
  209. package/package.json +15 -15
@@ -1,9 +1,6 @@
1
1
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
-
3
2
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
-
5
3
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
-
7
4
  import React, { useCallback, useEffect, useMemo, useState } from 'react';
8
5
  import { DragDropContext } from 'react-beautiful-dnd';
9
6
  import classNames from 'classnames';
@@ -16,8 +13,7 @@ import AggregationUtils from "./AggregationUtils.js";
16
13
  import "./Aggregations.css";
17
14
  var log = Log.module('Aggregations');
18
15
  export var SELECTABLE_OPTIONS = [AggregationOperation.SUM, AggregationOperation.ABS_SUM, AggregationOperation.MIN, AggregationOperation.MAX, AggregationOperation.VAR, AggregationOperation.AVG, AggregationOperation.STD, AggregationOperation.FIRST, AggregationOperation.LAST, AggregationOperation.COUNT_DISTINCT, AggregationOperation.DISTINCT, AggregationOperation.COUNT, AggregationOperation.UNIQUE];
19
-
20
- var Aggregations = _ref => {
16
+ function Aggregations(_ref) {
21
17
  var {
22
18
  isRollup,
23
19
  settings,
@@ -55,17 +51,13 @@ var Aggregations = _ref => {
55
51
  } = _ref2;
56
52
  log.debug('handleDragEnd', destination, source);
57
53
  DragUtils.stopDragging();
58
-
59
54
  if (destination === null) {
60
55
  return;
61
56
  }
62
-
63
57
  var destinationIndex = destination.index;
64
-
65
58
  if (source.index < destination.index) {
66
59
  destinationIndex += 1;
67
60
  }
68
-
69
61
  var newAggregations = [...aggregations];
70
62
  var draggedItems = DragUtils.reorder(newAggregations, selectedRanges, newAggregations, destinationIndex);
71
63
  var insertIndex = DragUtils.adjustDestinationIndex(destinationIndex, selectedRanges);
@@ -91,7 +83,6 @@ var Aggregations = _ref => {
91
83
  }, [setSelectedRanges]);
92
84
  var handleAggregationSelect = useCallback(itemIndex => {
93
85
  var aggregation = aggregations[itemIndex];
94
-
95
86
  if (!AggregationUtils.isRollupOperation(aggregation.operation)) {
96
87
  onEdit(aggregation);
97
88
  }
@@ -182,7 +173,6 @@ var Aggregations = _ref => {
182
173
  selectedRanges: selectedRanges,
183
174
  isMultiSelect: true
184
175
  }))));
185
- };
186
-
176
+ }
187
177
  export default Aggregations;
188
178
  //# sourceMappingURL=Aggregations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Aggregations.js","names":["React","useCallback","useEffect","useMemo","useState","DragDropContext","classNames","FontAwesomeIcon","dhNewCircleLargeFilled","vsTrash","vsEdit","dhWarningFilled","Log","DraggableItemList","DragUtils","Option","Select","RadioItem","RadioGroup","Button","AggregationOperation","AggregationUtils","log","module","SELECTABLE_OPTIONS","SUM","ABS_SUM","MIN","MAX","VAR","AVG","STD","FIRST","LAST","COUNT_DISTINCT","DISTINCT","COUNT","UNIQUE","Aggregations","isRollup","settings","onChange","onEdit","aggregations","showOnTop","options","filter","option","some","aggregation","operation","selectedOperation","setSelectedOperation","selectedRanges","setSelectedRanges","changeSettings","changedSettings","changeAggregations","newAggregations","changeShowOnTop","newShowOnTop","handleDragStart","debug","startDragging","handleDragEnd","destination","source","stopDragging","destinationIndex","index","draggedItems","reorder","insertIndex","adjustDestinationIndex","newSelectedRanges","length","handleOperationChange","handleAdd","selected","invert","handleDeleteClicked","itemIndex","handleAggregationSelectionChange","handleAggregationSelect","isRollupOperation","handleShowOnTopChange","event","target","value","setDefaultOperation","includes","renderAggregation","item","isClone","selectedCount","text","badgeText","undefined","className","isEditable","renderBadge","renderHandle","isOptionsShown","isAggregationsShown","map"],"sources":["../../../src/sidebar/aggregations/Aggregations.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { DragDropContext } from 'react-beautiful-dnd';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n dhNewCircleLargeFilled,\n vsTrash,\n vsEdit,\n dhWarningFilled,\n} from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport {\n DraggableItemList,\n DragUtils,\n Option,\n Select,\n RadioItem,\n RadioGroup,\n Button,\n} from '@deephaven/components';\nimport type { DraggableRenderItemProps, Range } from '@deephaven/components';\nimport { ModelIndex } from '@deephaven/grid';\nimport AggregationOperation from './AggregationOperation';\nimport AggregationUtils from './AggregationUtils';\nimport './Aggregations.scss';\n\nconst log = Log.module('Aggregations');\n\nexport type Aggregation = {\n operation: AggregationOperation;\n selected: string[];\n invert: boolean;\n};\n\nexport type AggregationSettings = {\n aggregations: Aggregation[];\n showOnTop: boolean;\n};\n\nexport type AggregationsProps = {\n isRollup: boolean;\n settings: AggregationSettings;\n onChange: (settings: AggregationSettings) => void;\n onEdit: (aggregation: Aggregation) => void;\n};\n\nexport const SELECTABLE_OPTIONS = [\n AggregationOperation.SUM,\n AggregationOperation.ABS_SUM,\n AggregationOperation.MIN,\n AggregationOperation.MAX,\n AggregationOperation.VAR,\n AggregationOperation.AVG,\n AggregationOperation.STD,\n AggregationOperation.FIRST,\n AggregationOperation.LAST,\n AggregationOperation.COUNT_DISTINCT,\n AggregationOperation.DISTINCT,\n AggregationOperation.COUNT,\n AggregationOperation.UNIQUE,\n];\n\nconst Aggregations = ({\n isRollup,\n settings,\n onChange,\n onEdit,\n}: AggregationsProps): JSX.Element => {\n const { aggregations, showOnTop } = settings;\n const options = useMemo(\n () =>\n SELECTABLE_OPTIONS.filter(\n option =>\n !aggregations.some(aggregation => aggregation.operation === option)\n ),\n [aggregations]\n );\n const [selectedOperation, setSelectedOperation] = useState(options[0]);\n const [selectedRanges, setSelectedRanges] = useState<Range[]>([]);\n const changeSettings = useCallback(\n changedSettings => {\n onChange({ ...settings, ...changedSettings });\n },\n [onChange, settings]\n );\n const changeAggregations = useCallback(\n newAggregations => {\n changeSettings({ aggregations: newAggregations });\n },\n [changeSettings]\n );\n\n const changeShowOnTop = useCallback(\n newShowOnTop => {\n changeSettings({ showOnTop: newShowOnTop });\n },\n [changeSettings]\n );\n\n const handleDragStart = useCallback(() => {\n log.debug('handleDragStart');\n\n DragUtils.startDragging();\n }, []);\n\n const handleDragEnd = useCallback(\n ({ destination, source }) => {\n log.debug('handleDragEnd', destination, source);\n\n DragUtils.stopDragging();\n\n if (destination === null) {\n return;\n }\n\n let destinationIndex = destination.index;\n if (source.index < destination.index) {\n destinationIndex += 1;\n }\n\n const newAggregations = [...aggregations];\n const draggedItems = DragUtils.reorder(\n newAggregations,\n selectedRanges,\n newAggregations,\n destinationIndex\n );\n const insertIndex = DragUtils.adjustDestinationIndex(\n destinationIndex,\n selectedRanges\n );\n const newSelectedRanges: Range[] = [\n [insertIndex, insertIndex + draggedItems.length - 1],\n ];\n changeAggregations(newAggregations);\n setSelectedRanges(newSelectedRanges);\n },\n [changeAggregations, aggregations, selectedRanges, setSelectedRanges]\n );\n\n const handleOperationChange = useCallback(\n operation => {\n setSelectedOperation(operation);\n },\n [setSelectedOperation]\n );\n\n const handleAdd = useCallback(() => {\n changeAggregations([\n ...aggregations,\n { operation: selectedOperation, selected: [], invert: true },\n ]);\n }, [aggregations, selectedOperation, changeAggregations]);\n\n const handleDeleteClicked = useCallback(\n (itemIndex: ModelIndex) => {\n changeAggregations(\n aggregations.filter((aggregation, index) => index !== itemIndex)\n );\n },\n [aggregations, changeAggregations]\n );\n\n const handleAggregationSelectionChange = useCallback(\n newSelectedRanges => {\n setSelectedRanges(newSelectedRanges);\n },\n [setSelectedRanges]\n );\n\n const handleAggregationSelect = useCallback(\n itemIndex => {\n const aggregation = aggregations[itemIndex];\n if (!AggregationUtils.isRollupOperation(aggregation.operation)) {\n onEdit(aggregation);\n }\n },\n [aggregations, onEdit]\n );\n\n const handleShowOnTopChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n changeShowOnTop(event.target.value === 'true');\n },\n [changeShowOnTop]\n );\n\n useEffect(\n function setDefaultOperation() {\n if (options.length > 0 && !options.includes(selectedOperation)) {\n setSelectedOperation(options[0]);\n }\n },\n [options, selectedOperation]\n );\n\n const renderAggregation = useCallback(\n ({\n item,\n itemIndex,\n isClone = false,\n selectedCount,\n }: DraggableRenderItemProps<Aggregation>) => {\n const text = item.operation;\n const badgeText = isClone ? `${selectedCount}` : undefined;\n const className = isClone ? 'item-list-item-clone' : undefined;\n const isRollupOperation = AggregationUtils.isRollupOperation(\n item.operation\n );\n const isEditable = !isClone && !isRollupOperation;\n return (\n <>\n <div\n className={classNames(\n 'item-list-item-content',\n 'draggable-item-list-item-content',\n className\n )}\n >\n <span className=\"title\">\n {text}\n {!isRollup && isRollupOperation && (\n <span className=\"small text-warning\">\n <FontAwesomeIcon icon={dhWarningFilled} /> Requires rollup\n </span>\n )}\n </span>\n {DraggableItemList.renderBadge({ text: badgeText })}\n {DraggableItemList.renderHandle()}\n </div>\n {!isClone && (\n <>\n <Button\n kind=\"ghost\"\n className=\"btn-edit\"\n icon={vsEdit}\n tooltip=\"Edit Columns\"\n onClick={() => onEdit(item)}\n disabled={!isEditable}\n />\n <Button\n kind=\"ghost\"\n className=\"btn-delete\"\n icon={vsTrash}\n tooltip=\"Delete Aggregation\"\n onClick={() => handleDeleteClicked(itemIndex)}\n />\n </>\n )}\n </>\n );\n },\n [handleDeleteClicked, onEdit, isRollup]\n );\n\n const isOptionsShown = options.length > 0;\n const isAggregationsShown = aggregations.length > 0;\n\n return (\n <div className=\"aggregations\">\n {isOptionsShown && (\n <div className=\"form-inline\">\n <Select onChange={handleOperationChange} value={selectedOperation}>\n {options.map(option => (\n <Option value={option} key={option}>\n {option}\n </Option>\n ))}\n </Select>\n <button\n type=\"button\"\n className=\"btn btn-link btn-add\"\n onClick={handleAdd}\n >\n <FontAwesomeIcon icon={dhNewCircleLargeFilled} />\n Add Aggregation\n </button>\n </div>\n )}\n {isOptionsShown && isAggregationsShown && <hr />}\n {isAggregationsShown && (\n <>\n {!isRollup && (\n <div className=\"form-inline\">\n <label>Placement:&nbsp;</label>\n <RadioGroup\n onChange={handleShowOnTopChange}\n value={`${showOnTop}`}\n >\n <RadioItem value=\"true\">Top</RadioItem>\n <RadioItem value=\"false\">Bottom</RadioItem>\n </RadioGroup>\n </div>\n )}\n <DragDropContext\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n >\n <DraggableItemList<Aggregation>\n className=\"selected-aggregations\"\n itemCount={aggregations.length}\n items={aggregations}\n renderItem={renderAggregation}\n offset={0}\n onSelectionChange={handleAggregationSelectionChange}\n onSelect={handleAggregationSelect}\n selectedRanges={selectedRanges}\n isMultiSelect\n />\n </DragDropContext>\n </>\n )}\n </div>\n );\n};\n\nexport default Aggregations;\n"],"mappings":";;;;;;AAAA,OAAOA,KAAP,IAEEC,WAFF,EAGEC,SAHF,EAIEC,OAJF,EAKEC,QALF,QAMO,OANP;AAOA,SAASC,eAAT,QAAgC,qBAAhC;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SACEC,sBADF,EAEEC,OAFF,EAGEC,MAHF,EAIEC,eAJF,QAKO,kBALP;AAMA,OAAOC,GAAP,MAAgB,gBAAhB;AACA,SACEC,iBADF,EAEEC,SAFF,EAGEC,MAHF,EAIEC,MAJF,EAKEC,SALF,EAMEC,UANF,EAOEC,MAPF,QAQO,uBARP;OAWOC,oB;OACAC,gB;;AAGP,IAAMC,GAAG,GAAGV,GAAG,CAACW,MAAJ,CAAW,cAAX,CAAZ;AAoBA,OAAO,IAAMC,kBAAkB,GAAG,CAChCJ,oBAAoB,CAACK,GADW,EAEhCL,oBAAoB,CAACM,OAFW,EAGhCN,oBAAoB,CAACO,GAHW,EAIhCP,oBAAoB,CAACQ,GAJW,EAKhCR,oBAAoB,CAACS,GALW,EAMhCT,oBAAoB,CAACU,GANW,EAOhCV,oBAAoB,CAACW,GAPW,EAQhCX,oBAAoB,CAACY,KARW,EAShCZ,oBAAoB,CAACa,IATW,EAUhCb,oBAAoB,CAACc,cAVW,EAWhCd,oBAAoB,CAACe,QAXW,EAYhCf,oBAAoB,CAACgB,KAZW,EAahChB,oBAAoB,CAACiB,MAbW,CAA3B;;AAgBP,IAAMC,YAAY,GAAG,QAKiB;EAAA,IALhB;IACpBC,QADoB;IAEpBC,QAFoB;IAGpBC,QAHoB;IAIpBC;EAJoB,CAKgB;EACpC,IAAM;IAAEC,YAAF;IAAgBC;EAAhB,IAA8BJ,QAApC;EACA,IAAMK,OAAO,GAAG1C,OAAO,CACrB,MACEqB,kBAAkB,CAACsB,MAAnB,CACEC,MAAM,IACJ,CAACJ,YAAY,CAACK,IAAb,CAAkBC,WAAW,IAAIA,WAAW,CAACC,SAAZ,KAA0BH,MAA3D,CAFL,CAFmB,EAMrB,CAACJ,YAAD,CANqB,CAAvB;EAQA,IAAM,CAACQ,iBAAD,EAAoBC,oBAApB,IAA4ChD,QAAQ,CAACyC,OAAO,CAAC,CAAD,CAAR,CAA1D;EACA,IAAM,CAACQ,cAAD,EAAiBC,iBAAjB,IAAsClD,QAAQ,CAAU,EAAV,CAApD;EACA,IAAMmD,cAAc,GAAGtD,WAAW,CAChCuD,eAAe,IAAI;IACjBf,QAAQ,iCAAMD,QAAN,GAAmBgB,eAAnB,EAAR;EACD,CAH+B,EAIhC,CAACf,QAAD,EAAWD,QAAX,CAJgC,CAAlC;EAMA,IAAMiB,kBAAkB,GAAGxD,WAAW,CACpCyD,eAAe,IAAI;IACjBH,cAAc,CAAC;MAAEZ,YAAY,EAAEe;IAAhB,CAAD,CAAd;EACD,CAHmC,EAIpC,CAACH,cAAD,CAJoC,CAAtC;EAOA,IAAMI,eAAe,GAAG1D,WAAW,CACjC2D,YAAY,IAAI;IACdL,cAAc,CAAC;MAAEX,SAAS,EAAEgB;IAAb,CAAD,CAAd;EACD,CAHgC,EAIjC,CAACL,cAAD,CAJiC,CAAnC;EAOA,IAAMM,eAAe,GAAG5D,WAAW,CAAC,MAAM;IACxCqB,GAAG,CAACwC,KAAJ,CAAU,iBAAV;IAEAhD,SAAS,CAACiD,aAAV;EACD,CAJkC,EAIhC,EAJgC,CAAnC;EAMA,IAAMC,aAAa,GAAG/D,WAAW,CAC/B,SAA6B;IAAA,IAA5B;MAAEgE,WAAF;MAAeC;IAAf,CAA4B;IAC3B5C,GAAG,CAACwC,KAAJ,CAAU,eAAV,EAA2BG,WAA3B,EAAwCC,MAAxC;IAEApD,SAAS,CAACqD,YAAV;;IAEA,IAAIF,WAAW,KAAK,IAApB,EAA0B;MACxB;IACD;;IAED,IAAIG,gBAAgB,GAAGH,WAAW,CAACI,KAAnC;;IACA,IAAIH,MAAM,CAACG,KAAP,GAAeJ,WAAW,CAACI,KAA/B,EAAsC;MACpCD,gBAAgB,IAAI,CAApB;IACD;;IAED,IAAMV,eAAe,GAAG,CAAC,GAAGf,YAAJ,CAAxB;IACA,IAAM2B,YAAY,GAAGxD,SAAS,CAACyD,OAAV,CACnBb,eADmB,EAEnBL,cAFmB,EAGnBK,eAHmB,EAInBU,gBAJmB,CAArB;IAMA,IAAMI,WAAW,GAAG1D,SAAS,CAAC2D,sBAAV,CAClBL,gBADkB,EAElBf,cAFkB,CAApB;IAIA,IAAMqB,iBAA0B,GAAG,CACjC,CAACF,WAAD,EAAcA,WAAW,GAAGF,YAAY,CAACK,MAA3B,GAAoC,CAAlD,CADiC,CAAnC;IAGAlB,kBAAkB,CAACC,eAAD,CAAlB;IACAJ,iBAAiB,CAACoB,iBAAD,CAAjB;EACD,CA/B8B,EAgC/B,CAACjB,kBAAD,EAAqBd,YAArB,EAAmCU,cAAnC,EAAmDC,iBAAnD,CAhC+B,CAAjC;EAmCA,IAAMsB,qBAAqB,GAAG3E,WAAW,CACvCiD,SAAS,IAAI;IACXE,oBAAoB,CAACF,SAAD,CAApB;EACD,CAHsC,EAIvC,CAACE,oBAAD,CAJuC,CAAzC;EAOA,IAAMyB,SAAS,GAAG5E,WAAW,CAAC,MAAM;IAClCwD,kBAAkB,CAAC,CACjB,GAAGd,YADc,EAEjB;MAAEO,SAAS,EAAEC,iBAAb;MAAgC2B,QAAQ,EAAE,EAA1C;MAA8CC,MAAM,EAAE;IAAtD,CAFiB,CAAD,CAAlB;EAID,CAL4B,EAK1B,CAACpC,YAAD,EAAeQ,iBAAf,EAAkCM,kBAAlC,CAL0B,CAA7B;EAOA,IAAMuB,mBAAmB,GAAG/E,WAAW,CACpCgF,SAAD,IAA2B;IACzBxB,kBAAkB,CAChBd,YAAY,CAACG,MAAb,CAAoB,CAACG,WAAD,EAAcoB,KAAd,KAAwBA,KAAK,KAAKY,SAAtD,CADgB,CAAlB;EAGD,CALoC,EAMrC,CAACtC,YAAD,EAAec,kBAAf,CANqC,CAAvC;EASA,IAAMyB,gCAAgC,GAAGjF,WAAW,CAClDyE,iBAAiB,IAAI;IACnBpB,iBAAiB,CAACoB,iBAAD,CAAjB;EACD,CAHiD,EAIlD,CAACpB,iBAAD,CAJkD,CAApD;EAOA,IAAM6B,uBAAuB,GAAGlF,WAAW,CACzCgF,SAAS,IAAI;IACX,IAAMhC,WAAW,GAAGN,YAAY,CAACsC,SAAD,CAAhC;;IACA,IAAI,CAAC5D,gBAAgB,CAAC+D,iBAAjB,CAAmCnC,WAAW,CAACC,SAA/C,CAAL,EAAgE;MAC9DR,MAAM,CAACO,WAAD,CAAN;IACD;EACF,CANwC,EAOzC,CAACN,YAAD,EAAeD,MAAf,CAPyC,CAA3C;EAUA,IAAM2C,qBAAqB,GAAGpF,WAAW,CACtCqF,KAAD,IAA0C;IACxC3B,eAAe,CAAC2B,KAAK,CAACC,MAAN,CAAaC,KAAb,KAAuB,MAAxB,CAAf;EACD,CAHsC,EAIvC,CAAC7B,eAAD,CAJuC,CAAzC;EAOAzD,SAAS,CACP,SAASuF,mBAAT,GAA+B;IAC7B,IAAI5C,OAAO,CAAC8B,MAAR,GAAiB,CAAjB,IAAsB,CAAC9B,OAAO,CAAC6C,QAAR,CAAiBvC,iBAAjB,CAA3B,EAAgE;MAC9DC,oBAAoB,CAACP,OAAO,CAAC,CAAD,CAAR,CAApB;IACD;EACF,CALM,EAMP,CAACA,OAAD,EAAUM,iBAAV,CANO,CAAT;EASA,IAAMwC,iBAAiB,GAAG1F,WAAW,CACnC,SAK6C;IAAA,IAL5C;MACC2F,IADD;MAECX,SAFD;MAGCY,OAAO,GAAG,KAHX;MAICC;IAJD,CAK4C;IAC3C,IAAMC,IAAI,GAAGH,IAAI,CAAC1C,SAAlB;IACA,IAAM8C,SAAS,GAAGH,OAAO,aAAMC,aAAN,IAAwBG,SAAjD;IACA,IAAMC,SAAS,GAAGL,OAAO,GAAG,sBAAH,GAA4BI,SAArD;IACA,IAAMb,iBAAiB,GAAG/D,gBAAgB,CAAC+D,iBAAjB,CACxBQ,IAAI,CAAC1C,SADmB,CAA1B;IAGA,IAAMiD,UAAU,GAAG,CAACN,OAAD,IAAY,CAACT,iBAAhC;IACA,oBACE,uDACE;MACE,SAAS,EAAE9E,UAAU,CACnB,wBADmB,EAEnB,kCAFmB,EAGnB4F,SAHmB;IADvB,gBAOE;MAAM,SAAS,EAAC;IAAhB,GACGH,IADH,EAEG,CAACxD,QAAD,IAAa6C,iBAAb,iBACC;MAAM,SAAS,EAAC;IAAhB,gBACE,oBAAC,eAAD;MAAiB,IAAI,EAAEzE;IAAvB,EADF,qBAHJ,CAPF,EAeGE,iBAAiB,CAACuF,WAAlB,CAA8B;MAAEL,IAAI,EAAEC;IAAR,CAA9B,CAfH,EAgBGnF,iBAAiB,CAACwF,YAAlB,EAhBH,CADF,EAmBG,CAACR,OAAD,iBACC,uDACE,oBAAC,MAAD;MACE,IAAI,EAAC,OADP;MAEE,SAAS,EAAC,UAFZ;MAGE,IAAI,EAAEnF,MAHR;MAIE,OAAO,EAAC,cAJV;MAKE,OAAO,EAAE,MAAMgC,MAAM,CAACkD,IAAD,CALvB;MAME,QAAQ,EAAE,CAACO;IANb,EADF,eASE,oBAAC,MAAD;MACE,IAAI,EAAC,OADP;MAEE,SAAS,EAAC,YAFZ;MAGE,IAAI,EAAE1F,OAHR;MAIE,OAAO,EAAC,oBAJV;MAKE,OAAO,EAAE,MAAMuE,mBAAmB,CAACC,SAAD;IALpC,EATF,CApBJ,CADF;EAyCD,CAvDkC,EAwDnC,CAACD,mBAAD,EAAsBtC,MAAtB,EAA8BH,QAA9B,CAxDmC,CAArC;EA2DA,IAAM+D,cAAc,GAAGzD,OAAO,CAAC8B,MAAR,GAAiB,CAAxC;EACA,IAAM4B,mBAAmB,GAAG5D,YAAY,CAACgC,MAAb,GAAsB,CAAlD;EAEA,oBACE;IAAK,SAAS,EAAC;EAAf,GACG2B,cAAc,iBACb;IAAK,SAAS,EAAC;EAAf,gBACE,oBAAC,MAAD;IAAQ,QAAQ,EAAE1B,qBAAlB;IAAyC,KAAK,EAAEzB;EAAhD,GACGN,OAAO,CAAC2D,GAAR,CAAYzD,MAAM,iBACjB,oBAAC,MAAD;IAAQ,KAAK,EAAEA,MAAf;IAAuB,GAAG,EAAEA;EAA5B,GACGA,MADH,CADD,CADH,CADF,eAQE;IACE,IAAI,EAAC,QADP;IAEE,SAAS,EAAC,sBAFZ;IAGE,OAAO,EAAE8B;EAHX,gBAKE,oBAAC,eAAD;IAAiB,IAAI,EAAErE;EAAvB,EALF,oBARF,CAFJ,EAoBG8F,cAAc,IAAIC,mBAAlB,iBAAyC,+BApB5C,EAqBGA,mBAAmB,iBAClB,0CACG,CAAChE,QAAD,iBACC;IAAK,SAAS,EAAC;EAAf,gBACE,oDADF,eAEE,oBAAC,UAAD;IACE,QAAQ,EAAE8C,qBADZ;IAEE,KAAK,YAAKzC,SAAL;EAFP,gBAIE,oBAAC,SAAD;IAAW,KAAK,EAAC;EAAjB,SAJF,eAKE,oBAAC,SAAD;IAAW,KAAK,EAAC;EAAjB,YALF,CAFF,CAFJ,eAaE,oBAAC,eAAD;IACE,WAAW,EAAEiB,eADf;IAEE,SAAS,EAAEG;EAFb,gBAIE,oBAAC,iBAAD;IACE,SAAS,EAAC,uBADZ;IAEE,SAAS,EAAErB,YAAY,CAACgC,MAF1B;IAGE,KAAK,EAAEhC,YAHT;IAIE,UAAU,EAAEgD,iBAJd;IAKE,MAAM,EAAE,CALV;IAME,iBAAiB,EAAET,gCANrB;IAOE,QAAQ,EAAEC,uBAPZ;IAQE,cAAc,EAAE9B,cARlB;IASE,aAAa;EATf,EAJF,CAbF,CAtBJ,CADF;AAwDD,CA5PD;;AA8PA,eAAef,YAAf"}
1
+ {"version":3,"file":"Aggregations.js","names":["React","useCallback","useEffect","useMemo","useState","DragDropContext","classNames","FontAwesomeIcon","dhNewCircleLargeFilled","vsTrash","vsEdit","dhWarningFilled","Log","DraggableItemList","DragUtils","Option","Select","RadioItem","RadioGroup","Button","AggregationOperation","AggregationUtils","log","module","SELECTABLE_OPTIONS","SUM","ABS_SUM","MIN","MAX","VAR","AVG","STD","FIRST","LAST","COUNT_DISTINCT","DISTINCT","COUNT","UNIQUE","Aggregations","isRollup","settings","onChange","onEdit","aggregations","showOnTop","options","filter","option","some","aggregation","operation","selectedOperation","setSelectedOperation","selectedRanges","setSelectedRanges","changeSettings","changedSettings","changeAggregations","newAggregations","changeShowOnTop","newShowOnTop","handleDragStart","debug","startDragging","handleDragEnd","destination","source","stopDragging","destinationIndex","index","draggedItems","reorder","insertIndex","adjustDestinationIndex","newSelectedRanges","length","handleOperationChange","handleAdd","selected","invert","handleDeleteClicked","itemIndex","handleAggregationSelectionChange","handleAggregationSelect","isRollupOperation","handleShowOnTopChange","event","target","value","setDefaultOperation","includes","renderAggregation","item","isClone","selectedCount","text","badgeText","undefined","className","isEditable","renderBadge","renderHandle","isOptionsShown","isAggregationsShown","map"],"sources":["../../../src/sidebar/aggregations/Aggregations.tsx"],"sourcesContent":["import React, {\n ChangeEvent,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from 'react';\nimport { DragDropContext } from 'react-beautiful-dnd';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport {\n dhNewCircleLargeFilled,\n vsTrash,\n vsEdit,\n dhWarningFilled,\n} from '@deephaven/icons';\nimport Log from '@deephaven/log';\nimport {\n DraggableItemList,\n DragUtils,\n Option,\n Select,\n RadioItem,\n RadioGroup,\n Button,\n} from '@deephaven/components';\nimport type { DraggableRenderItemProps, Range } from '@deephaven/components';\nimport { ModelIndex } from '@deephaven/grid';\nimport AggregationOperation from './AggregationOperation';\nimport AggregationUtils from './AggregationUtils';\nimport './Aggregations.scss';\n\nconst log = Log.module('Aggregations');\n\nexport type Aggregation = {\n operation: AggregationOperation;\n selected: string[];\n invert: boolean;\n};\n\nexport type AggregationSettings = {\n aggregations: Aggregation[];\n showOnTop: boolean;\n};\n\nexport type AggregationsProps = {\n isRollup: boolean;\n settings: AggregationSettings;\n onChange: (settings: AggregationSettings) => void;\n onEdit: (aggregation: Aggregation) => void;\n};\n\nexport const SELECTABLE_OPTIONS = [\n AggregationOperation.SUM,\n AggregationOperation.ABS_SUM,\n AggregationOperation.MIN,\n AggregationOperation.MAX,\n AggregationOperation.VAR,\n AggregationOperation.AVG,\n AggregationOperation.STD,\n AggregationOperation.FIRST,\n AggregationOperation.LAST,\n AggregationOperation.COUNT_DISTINCT,\n AggregationOperation.DISTINCT,\n AggregationOperation.COUNT,\n AggregationOperation.UNIQUE,\n];\n\nfunction Aggregations({\n isRollup,\n settings,\n onChange,\n onEdit,\n}: AggregationsProps): JSX.Element {\n const { aggregations, showOnTop } = settings;\n const options = useMemo(\n () =>\n SELECTABLE_OPTIONS.filter(\n option =>\n !aggregations.some(aggregation => aggregation.operation === option)\n ),\n [aggregations]\n );\n const [selectedOperation, setSelectedOperation] = useState(options[0]);\n const [selectedRanges, setSelectedRanges] = useState<Range[]>([]);\n const changeSettings = useCallback(\n changedSettings => {\n onChange({ ...settings, ...changedSettings });\n },\n [onChange, settings]\n );\n const changeAggregations = useCallback(\n newAggregations => {\n changeSettings({ aggregations: newAggregations });\n },\n [changeSettings]\n );\n\n const changeShowOnTop = useCallback(\n newShowOnTop => {\n changeSettings({ showOnTop: newShowOnTop });\n },\n [changeSettings]\n );\n\n const handleDragStart = useCallback(() => {\n log.debug('handleDragStart');\n\n DragUtils.startDragging();\n }, []);\n\n const handleDragEnd = useCallback(\n ({ destination, source }) => {\n log.debug('handleDragEnd', destination, source);\n\n DragUtils.stopDragging();\n\n if (destination === null) {\n return;\n }\n\n let destinationIndex = destination.index;\n if (source.index < destination.index) {\n destinationIndex += 1;\n }\n\n const newAggregations = [...aggregations];\n const draggedItems = DragUtils.reorder(\n newAggregations,\n selectedRanges,\n newAggregations,\n destinationIndex\n );\n const insertIndex = DragUtils.adjustDestinationIndex(\n destinationIndex,\n selectedRanges\n );\n const newSelectedRanges: Range[] = [\n [insertIndex, insertIndex + draggedItems.length - 1],\n ];\n changeAggregations(newAggregations);\n setSelectedRanges(newSelectedRanges);\n },\n [changeAggregations, aggregations, selectedRanges, setSelectedRanges]\n );\n\n const handleOperationChange = useCallback(\n operation => {\n setSelectedOperation(operation);\n },\n [setSelectedOperation]\n );\n\n const handleAdd = useCallback(() => {\n changeAggregations([\n ...aggregations,\n { operation: selectedOperation, selected: [], invert: true },\n ]);\n }, [aggregations, selectedOperation, changeAggregations]);\n\n const handleDeleteClicked = useCallback(\n (itemIndex: ModelIndex) => {\n changeAggregations(\n aggregations.filter((aggregation, index) => index !== itemIndex)\n );\n },\n [aggregations, changeAggregations]\n );\n\n const handleAggregationSelectionChange = useCallback(\n newSelectedRanges => {\n setSelectedRanges(newSelectedRanges);\n },\n [setSelectedRanges]\n );\n\n const handleAggregationSelect = useCallback(\n itemIndex => {\n const aggregation = aggregations[itemIndex];\n if (!AggregationUtils.isRollupOperation(aggregation.operation)) {\n onEdit(aggregation);\n }\n },\n [aggregations, onEdit]\n );\n\n const handleShowOnTopChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n changeShowOnTop(event.target.value === 'true');\n },\n [changeShowOnTop]\n );\n\n useEffect(\n function setDefaultOperation() {\n if (options.length > 0 && !options.includes(selectedOperation)) {\n setSelectedOperation(options[0]);\n }\n },\n [options, selectedOperation]\n );\n\n const renderAggregation = useCallback(\n ({\n item,\n itemIndex,\n isClone = false,\n selectedCount,\n }: DraggableRenderItemProps<Aggregation>) => {\n const text = item.operation;\n const badgeText = isClone ? `${selectedCount}` : undefined;\n const className = isClone ? 'item-list-item-clone' : undefined;\n const isRollupOperation = AggregationUtils.isRollupOperation(\n item.operation\n );\n const isEditable = !isClone && !isRollupOperation;\n return (\n <>\n <div\n className={classNames(\n 'item-list-item-content',\n 'draggable-item-list-item-content',\n className\n )}\n >\n <span className=\"title\">\n {text}\n {!isRollup && isRollupOperation && (\n <span className=\"small text-warning\">\n <FontAwesomeIcon icon={dhWarningFilled} /> Requires rollup\n </span>\n )}\n </span>\n {DraggableItemList.renderBadge({ text: badgeText })}\n {DraggableItemList.renderHandle()}\n </div>\n {!isClone && (\n <>\n <Button\n kind=\"ghost\"\n className=\"btn-edit\"\n icon={vsEdit}\n tooltip=\"Edit Columns\"\n onClick={() => onEdit(item)}\n disabled={!isEditable}\n />\n <Button\n kind=\"ghost\"\n className=\"btn-delete\"\n icon={vsTrash}\n tooltip=\"Delete Aggregation\"\n onClick={() => handleDeleteClicked(itemIndex)}\n />\n </>\n )}\n </>\n );\n },\n [handleDeleteClicked, onEdit, isRollup]\n );\n\n const isOptionsShown = options.length > 0;\n const isAggregationsShown = aggregations.length > 0;\n\n return (\n <div className=\"aggregations\">\n {isOptionsShown && (\n <div className=\"form-inline\">\n <Select onChange={handleOperationChange} value={selectedOperation}>\n {options.map(option => (\n <Option value={option} key={option}>\n {option}\n </Option>\n ))}\n </Select>\n <button\n type=\"button\"\n className=\"btn btn-link btn-add\"\n onClick={handleAdd}\n >\n <FontAwesomeIcon icon={dhNewCircleLargeFilled} />\n Add Aggregation\n </button>\n </div>\n )}\n {isOptionsShown && isAggregationsShown && <hr />}\n {isAggregationsShown && (\n <>\n {!isRollup && (\n <div className=\"form-inline\">\n <label>Placement:&nbsp;</label>\n <RadioGroup\n onChange={handleShowOnTopChange}\n value={`${showOnTop}`}\n >\n <RadioItem value=\"true\">Top</RadioItem>\n <RadioItem value=\"false\">Bottom</RadioItem>\n </RadioGroup>\n </div>\n )}\n <DragDropContext\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n >\n <DraggableItemList<Aggregation>\n className=\"selected-aggregations\"\n itemCount={aggregations.length}\n items={aggregations}\n renderItem={renderAggregation}\n offset={0}\n onSelectionChange={handleAggregationSelectionChange}\n onSelect={handleAggregationSelect}\n selectedRanges={selectedRanges}\n isMultiSelect\n />\n </DragDropContext>\n </>\n )}\n </div>\n );\n}\n\nexport default Aggregations;\n"],"mappings":"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"}
@@ -5,6 +5,6 @@ export interface ColumnFormatEditorProps {
5
5
  config?: BaseFormatConfig;
6
6
  onChange?: ChangeCallback;
7
7
  }
8
- declare const ColumnFormatEditor: (props: ColumnFormatEditorProps) => JSX.Element;
8
+ declare function ColumnFormatEditor(props: ColumnFormatEditorProps): JSX.Element;
9
9
  export default ColumnFormatEditor;
10
10
  //# sourceMappingURL=ColumnFormatEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnFormatEditor.d.ts","sourceRoot":"","sources":["../../../src/sidebar/conditional-formatting/ColumnFormatEditor.tsx"],"names":[],"mappings":";AAGA,OAAO,EACL,gBAAgB,EAChB,cAAc,EAId,WAAW,EACZ,MAAM,8BAA8B,CAAC;AAMtC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAeD,QAAA,MAAM,kBAAkB,UAAW,uBAAuB,KAAG,WAuG5D,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
1
+ {"version":3,"file":"ColumnFormatEditor.d.ts","sourceRoot":"","sources":["../../../src/sidebar/conditional-formatting/ColumnFormatEditor.tsx"],"names":[],"mappings":";AAGA,OAAO,EACL,gBAAgB,EAChB,cAAc,EAId,WAAW,EACZ,MAAM,8BAA8B,CAAC;AAMtC,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,MAAM,CAAC,EAAE,gBAAgB,CAAC;IAC1B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAeD,iBAAS,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,GAAG,CAAC,OAAO,CAuGvE;AAED,eAAe,kBAAkB,CAAC"}
@@ -1,9 +1,6 @@
1
1
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
2
-
3
2
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
4
-
5
3
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
6
-
7
4
  import React, { useCallback, useEffect, useState } from 'react';
8
5
  import Log from '@deephaven/log';
9
6
  import { ComboBox } from '@deephaven/components';
@@ -11,9 +8,7 @@ import { getDefaultConditionConfigForType, getConditionConfig, getDefaultStyleCo
11
8
  import ConditionEditor from "./ConditionEditor.js";
12
9
  import StyleEditor from "./StyleEditor.js";
13
10
  var log = Log.module('ColumnFormatEditor');
14
-
15
11
  var DEFAULT_CALLBACK = () => undefined;
16
-
17
12
  function makeDefaultConfig(columns) {
18
13
  var {
19
14
  type,
@@ -23,18 +18,14 @@ function makeDefaultConfig(columns) {
23
18
  type,
24
19
  name
25
20
  };
26
-
27
21
  var config = _objectSpread({
28
22
  column,
29
23
  style: getDefaultStyleConfig()
30
24
  }, getDefaultConditionConfigForType(type));
31
-
32
25
  return config;
33
26
  }
34
-
35
- var ColumnFormatEditor = props => {
27
+ function ColumnFormatEditor(props) {
36
28
  var _columns$find;
37
-
38
29
  var {
39
30
  columns,
40
31
  config = makeDefaultConfig(columns),
@@ -51,10 +42,8 @@ var ColumnFormatEditor = props => {
51
42
  } = _ref;
52
43
  return name === value;
53
44
  });
54
-
55
45
  if (newColumn !== undefined) {
56
46
  setColumn(newColumn);
57
-
58
47
  if (selectedColumn.type !== newColumn.type) {
59
48
  setConditionConfig(getDefaultConditionConfigForType(newColumn.type));
60
49
  setConditionValid(false);
@@ -77,12 +66,10 @@ var ColumnFormatEditor = props => {
77
66
  log.debug('Column is not selected, skip update.');
78
67
  return;
79
68
  }
80
-
81
69
  if (selectedStyle === undefined) {
82
70
  log.debug('Style is not selected, skip update.');
83
71
  return;
84
72
  }
85
-
86
73
  var {
87
74
  type,
88
75
  name
@@ -126,7 +113,6 @@ var ColumnFormatEditor = props => {
126
113
  config: selectedStyle,
127
114
  onChange: handleStyleChange
128
115
  })));
129
- };
130
-
116
+ }
131
117
  export default ColumnFormatEditor;
132
118
  //# sourceMappingURL=ColumnFormatEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnFormatEditor.js","names":["React","useCallback","useEffect","useState","Log","ComboBox","getDefaultConditionConfigForType","getConditionConfig","getDefaultStyleConfig","ConditionEditor","StyleEditor","log","module","DEFAULT_CALLBACK","undefined","makeDefaultConfig","columns","type","name","column","config","style","ColumnFormatEditor","props","onChange","selectedColumn","setColumn","find","c","conditionConfig","setConditionConfig","conditionValid","setConditionValid","selectedStyle","setStyle","handleColumnChange","value","newColumn","error","handleConditionChange","updatedConditionConfig","isValid","debug","handleStyleChange","updatedStyleConfig","updateColumnFormat","columnInputOptions","map","title"],"sources":["../../../src/sidebar/conditional-formatting/ColumnFormatEditor.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport Log from '@deephaven/log';\nimport { ComboBox } from '@deephaven/components';\nimport {\n BaseFormatConfig,\n ChangeCallback,\n getDefaultConditionConfigForType,\n getConditionConfig,\n getDefaultStyleConfig,\n ModelColumn,\n} from './ConditionalFormattingUtils';\nimport ConditionEditor from './ConditionEditor';\nimport StyleEditor from './StyleEditor';\n\nconst log = Log.module('ColumnFormatEditor');\n\nexport interface ColumnFormatEditorProps {\n columns: ModelColumn[];\n config?: BaseFormatConfig;\n onChange?: ChangeCallback;\n}\n\nconst DEFAULT_CALLBACK = () => undefined;\n\nfunction makeDefaultConfig(columns: ModelColumn[]): BaseFormatConfig {\n const { type, name } = columns[0];\n const column = { type, name };\n const config = {\n column,\n style: getDefaultStyleConfig(),\n ...getDefaultConditionConfigForType(type),\n };\n return config;\n}\n\nconst ColumnFormatEditor = (props: ColumnFormatEditorProps): JSX.Element => {\n const {\n columns,\n config = makeDefaultConfig(columns),\n onChange = DEFAULT_CALLBACK,\n } = props;\n\n const [selectedColumn, setColumn] = useState(\n columns.find(\n c => c.name === config.column.name && c.type === config.column.type\n ) ?? columns[0]\n );\n const [conditionConfig, setConditionConfig] = useState(\n getConditionConfig(config)\n );\n const [conditionValid, setConditionValid] = useState(false);\n const [selectedStyle, setStyle] = useState(config.style);\n\n const handleColumnChange = useCallback(\n value => {\n const newColumn = columns.find(({ name }) => name === value);\n if (newColumn !== undefined) {\n setColumn(newColumn);\n if (selectedColumn.type !== newColumn.type) {\n setConditionConfig(getDefaultConditionConfigForType(newColumn.type));\n setConditionValid(false);\n }\n } else {\n log.error(`Column ${value} not found.`);\n }\n },\n [columns, selectedColumn]\n );\n\n const handleConditionChange = useCallback(\n (updatedConditionConfig, isValid) => {\n log.debug('handleConditionChange', updatedConditionConfig, isValid);\n setConditionConfig(updatedConditionConfig);\n setConditionValid(isValid);\n },\n []\n );\n\n const handleStyleChange = useCallback(updatedStyleConfig => {\n log.debug('handleStyleChange', updatedStyleConfig);\n setStyle(updatedStyleConfig);\n }, []);\n\n useEffect(\n function updateColumnFormat() {\n if (selectedColumn === undefined) {\n log.debug('Column is not selected, skip update.');\n return;\n }\n if (selectedStyle === undefined) {\n log.debug('Style is not selected, skip update.');\n return;\n }\n const { type, name } = selectedColumn;\n const column = { type, name };\n onChange(\n {\n column,\n style: selectedStyle,\n ...conditionConfig,\n },\n conditionValid\n );\n },\n [onChange, selectedColumn, selectedStyle, conditionConfig, conditionValid]\n );\n\n const columnInputOptions = columns.map(({ name }) => ({\n title: name,\n value: name,\n }));\n\n return (\n <div className=\"conditional-rule-editor form\">\n <div className=\"mb-2\">\n <label className=\"mb-0\">Format Cell If</label>\n <ComboBox\n defaultValue={selectedColumn?.name}\n options={columnInputOptions}\n inputPlaceholder=\"Select a column\"\n spellCheck={false}\n onChange={handleColumnChange}\n searchPlaceholder=\"Filter columns\"\n />\n </div>\n\n {selectedColumn !== undefined && (\n <>\n <ConditionEditor\n column={selectedColumn}\n config={conditionConfig}\n onChange={handleConditionChange}\n />\n <StyleEditor config={selectedStyle} onChange={handleStyleChange} />\n </>\n )}\n </div>\n );\n};\n\nexport default ColumnFormatEditor;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnFormatEditor.js","names":["React","useCallback","useEffect","useState","Log","ComboBox","getDefaultConditionConfigForType","getConditionConfig","getDefaultStyleConfig","ConditionEditor","StyleEditor","log","module","DEFAULT_CALLBACK","undefined","makeDefaultConfig","columns","type","name","column","config","style","ColumnFormatEditor","props","onChange","selectedColumn","setColumn","find","c","conditionConfig","setConditionConfig","conditionValid","setConditionValid","selectedStyle","setStyle","handleColumnChange","value","newColumn","error","handleConditionChange","updatedConditionConfig","isValid","debug","handleStyleChange","updatedStyleConfig","updateColumnFormat","columnInputOptions","map","title"],"sources":["../../../src/sidebar/conditional-formatting/ColumnFormatEditor.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport Log from '@deephaven/log';\nimport { ComboBox } from '@deephaven/components';\nimport {\n BaseFormatConfig,\n ChangeCallback,\n getDefaultConditionConfigForType,\n getConditionConfig,\n getDefaultStyleConfig,\n ModelColumn,\n} from './ConditionalFormattingUtils';\nimport ConditionEditor from './ConditionEditor';\nimport StyleEditor from './StyleEditor';\n\nconst log = Log.module('ColumnFormatEditor');\n\nexport interface ColumnFormatEditorProps {\n columns: ModelColumn[];\n config?: BaseFormatConfig;\n onChange?: ChangeCallback;\n}\n\nconst DEFAULT_CALLBACK = () => undefined;\n\nfunction makeDefaultConfig(columns: ModelColumn[]): BaseFormatConfig {\n const { type, name } = columns[0];\n const column = { type, name };\n const config = {\n column,\n style: getDefaultStyleConfig(),\n ...getDefaultConditionConfigForType(type),\n };\n return config;\n}\n\nfunction ColumnFormatEditor(props: ColumnFormatEditorProps): JSX.Element {\n const {\n columns,\n config = makeDefaultConfig(columns),\n onChange = DEFAULT_CALLBACK,\n } = props;\n\n const [selectedColumn, setColumn] = useState(\n columns.find(\n c => c.name === config.column.name && c.type === config.column.type\n ) ?? columns[0]\n );\n const [conditionConfig, setConditionConfig] = useState(\n getConditionConfig(config)\n );\n const [conditionValid, setConditionValid] = useState(false);\n const [selectedStyle, setStyle] = useState(config.style);\n\n const handleColumnChange = useCallback(\n value => {\n const newColumn = columns.find(({ name }) => name === value);\n if (newColumn !== undefined) {\n setColumn(newColumn);\n if (selectedColumn.type !== newColumn.type) {\n setConditionConfig(getDefaultConditionConfigForType(newColumn.type));\n setConditionValid(false);\n }\n } else {\n log.error(`Column ${value} not found.`);\n }\n },\n [columns, selectedColumn]\n );\n\n const handleConditionChange = useCallback(\n (updatedConditionConfig, isValid) => {\n log.debug('handleConditionChange', updatedConditionConfig, isValid);\n setConditionConfig(updatedConditionConfig);\n setConditionValid(isValid);\n },\n []\n );\n\n const handleStyleChange = useCallback(updatedStyleConfig => {\n log.debug('handleStyleChange', updatedStyleConfig);\n setStyle(updatedStyleConfig);\n }, []);\n\n useEffect(\n function updateColumnFormat() {\n if (selectedColumn === undefined) {\n log.debug('Column is not selected, skip update.');\n return;\n }\n if (selectedStyle === undefined) {\n log.debug('Style is not selected, skip update.');\n return;\n }\n const { type, name } = selectedColumn;\n const column = { type, name };\n onChange(\n {\n column,\n style: selectedStyle,\n ...conditionConfig,\n },\n conditionValid\n );\n },\n [onChange, selectedColumn, selectedStyle, conditionConfig, conditionValid]\n );\n\n const columnInputOptions = columns.map(({ name }) => ({\n title: name,\n value: name,\n }));\n\n return (\n <div className=\"conditional-rule-editor form\">\n <div className=\"mb-2\">\n <label className=\"mb-0\">Format Cell If</label>\n <ComboBox\n defaultValue={selectedColumn?.name}\n options={columnInputOptions}\n inputPlaceholder=\"Select a column\"\n spellCheck={false}\n onChange={handleColumnChange}\n searchPlaceholder=\"Filter columns\"\n />\n </div>\n\n {selectedColumn !== undefined && (\n <>\n <ConditionEditor\n column={selectedColumn}\n config={conditionConfig}\n onChange={handleConditionChange}\n />\n <StyleEditor config={selectedStyle} onChange={handleStyleChange} />\n </>\n )}\n </div>\n );\n}\n\nexport default ColumnFormatEditor;\n"],"mappings":"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"}
@@ -5,6 +5,6 @@ export interface ConditionEditorProps {
5
5
  config: ConditionConfig;
6
6
  onChange?: (config: ConditionConfig, isValid: boolean) => void;
7
7
  }
8
- declare const ConditionEditor: (props: ConditionEditorProps) => JSX.Element;
8
+ declare function ConditionEditor(props: ConditionEditorProps): JSX.Element;
9
9
  export default ConditionEditor;
10
10
  //# sourceMappingURL=ConditionEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionEditor.d.ts","sourceRoot":"","sources":["../../../src/sidebar/conditional-formatting/ConditionEditor.tsx"],"names":[],"mappings":";AAGA,OAAO,EAOL,WAAW,EACX,eAAe,EAMhB,MAAM,8BAA8B,CAAC;AAItC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAChE;AAmOD,QAAA,MAAM,eAAe,UAAW,oBAAoB,KAAG,WA6KtD,CAAC;AAEF,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"ConditionEditor.d.ts","sourceRoot":"","sources":["../../../src/sidebar/conditional-formatting/ConditionEditor.tsx"],"names":[],"mappings":";AAGA,OAAO,EAOL,WAAW,EACX,eAAe,EAMhB,MAAM,8BAA8B,CAAC;AAItC,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,EAAE,eAAe,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAChE;AAmOD,iBAAS,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,GAAG,CAAC,OAAO,CA6KjE;AAED,eAAe,eAAe,CAAC"}
@@ -3,9 +3,7 @@ import { TableUtils } from '@deephaven/jsapi-utils';
3
3
  import Log from '@deephaven/log';
4
4
  import { StringCondition, DateCondition, getLabelForNumberCondition, getLabelForDateCondition, getLabelForStringCondition, NumberCondition, getDefaultConditionForType, getLabelForBooleanCondition, BooleanCondition, CharCondition, getLabelForCharCondition } from "./ConditionalFormattingUtils.js";
5
5
  var log = Log.module('ConditionEditor');
6
-
7
6
  var DEFAULT_CALLBACK = () => undefined;
8
-
9
7
  var numberConditionOptions = [NumberCondition.IS_EQUAL, NumberCondition.IS_NOT_EQUAL, NumberCondition.IS_BETWEEN, NumberCondition.GREATER_THAN, NumberCondition.GREATER_THAN_OR_EQUAL, NumberCondition.LESS_THAN, NumberCondition.LESS_THAN_OR_EQUAL, NumberCondition.IS_NULL, NumberCondition.IS_NOT_NULL].map(option => /*#__PURE__*/React.createElement("option", {
10
8
  key: option,
11
9
  value: option
@@ -26,23 +24,18 @@ var charConditions = [CharCondition.IS_EQUAL, CharCondition.IS_NOT_EQUAL, CharCo
26
24
  key: option,
27
25
  value: option
28
26
  }, getLabelForCharCondition(option)));
29
-
30
27
  function isNumberConditionValid(condition, value, startValue, endValue) {
31
28
  if (condition === NumberCondition.IS_NULL || condition === NumberCondition.IS_NOT_NULL) {
32
29
  return true;
33
30
  }
34
-
35
31
  if (condition === NumberCondition.IS_BETWEEN && startValue != null && startValue !== '' && !Number.isNaN(Number.parseFloat(startValue)) && endValue != null && endValue !== '' && !Number.isNaN(Number.parseFloat(endValue))) {
36
32
  return true;
37
33
  }
38
-
39
34
  if (condition !== NumberCondition.IS_BETWEEN && value !== undefined && value !== '' && !Number.isNaN(Number.parseFloat(value))) {
40
35
  return true;
41
36
  }
42
-
43
37
  return false;
44
38
  }
45
-
46
39
  function getNumberInputs(selectedCondition, handleValueChange, handleStartValueChange, handleEndValueChange, conditionValue, startValue, endValue) {
47
40
  switch (selectedCondition) {
48
41
  case NumberCondition.IS_EQUAL:
@@ -58,7 +51,6 @@ function getNumberInputs(selectedCondition, handleValueChange, handleStartValueC
58
51
  value: conditionValue !== null && conditionValue !== void 0 ? conditionValue : '',
59
52
  onChange: handleValueChange
60
53
  });
61
-
62
54
  case NumberCondition.IS_BETWEEN:
63
55
  return /*#__PURE__*/React.createElement("div", {
64
56
  className: "d-flex flex-row"
@@ -75,19 +67,16 @@ function getNumberInputs(selectedCondition, handleValueChange, handleStartValueC
75
67
  value: endValue !== null && endValue !== void 0 ? endValue : '',
76
68
  onChange: handleEndValueChange
77
69
  }));
78
-
79
70
  case NumberCondition.IS_NULL:
80
71
  case NumberCondition.IS_NOT_NULL:
81
72
  return null;
82
73
  }
83
74
  }
84
-
85
75
  function getStringInputs(selectedCondition, handleValueChange, conditionValue) {
86
76
  switch (selectedCondition) {
87
77
  case StringCondition.IS_NULL:
88
78
  case StringCondition.IS_NOT_NULL:
89
79
  return null;
90
-
91
80
  default:
92
81
  return /*#__PURE__*/React.createElement("input", {
93
82
  type: "text",
@@ -98,13 +87,11 @@ function getStringInputs(selectedCondition, handleValueChange, conditionValue) {
98
87
  });
99
88
  }
100
89
  }
101
-
102
90
  function getDateInputs(selectedCondition, handleValueChange, conditionValue) {
103
91
  switch (selectedCondition) {
104
92
  case DateCondition.IS_NULL:
105
93
  case DateCondition.IS_NOT_NULL:
106
94
  return null;
107
-
108
95
  default:
109
96
  return /*#__PURE__*/React.createElement("input", {
110
97
  type: "text",
@@ -115,17 +102,14 @@ function getDateInputs(selectedCondition, handleValueChange, conditionValue) {
115
102
  });
116
103
  }
117
104
  }
118
-
119
105
  function getBooleanInputs() {
120
106
  return null;
121
107
  }
122
-
123
108
  function getCharInputs(selectedCondition, handleValueChange, conditionValue) {
124
109
  switch (selectedCondition) {
125
110
  case CharCondition.IS_NULL:
126
111
  case CharCondition.IS_NOT_NULL:
127
112
  return null;
128
-
129
113
  default:
130
114
  return /*#__PURE__*/React.createElement("input", {
131
115
  type: "text",
@@ -137,8 +121,7 @@ function getCharInputs(selectedCondition, handleValueChange, conditionValue) {
137
121
  });
138
122
  }
139
123
  }
140
-
141
- var ConditionEditor = props => {
124
+ function ConditionEditor(props) {
142
125
  var {
143
126
  column,
144
127
  config,
@@ -150,7 +133,6 @@ var ConditionEditor = props => {
150
133
  var [conditionValue, setValue] = useState(config.value);
151
134
  var [startValue, setStartValue] = useState(config.start);
152
135
  var [endValue, setEndValue] = useState(config.end);
153
-
154
136
  if (selectedColumnType !== prevColumnType) {
155
137
  // Column type changed, reset condition and value fields
156
138
  setCondition(getDefaultConditionForType(selectedColumnType));
@@ -159,28 +141,22 @@ var ConditionEditor = props => {
159
141
  setEndValue(undefined);
160
142
  setPrevColumnType(selectedColumnType);
161
143
  }
162
-
163
144
  var conditions = useMemo(() => {
164
145
  if (selectedColumnType === undefined) {
165
146
  return [];
166
147
  }
167
-
168
148
  if (TableUtils.isNumberType(selectedColumnType)) {
169
149
  return numberConditionOptions;
170
150
  }
171
-
172
151
  if (TableUtils.isCharType(selectedColumnType)) {
173
152
  return charConditions;
174
153
  }
175
-
176
154
  if (TableUtils.isStringType(selectedColumnType)) {
177
155
  return stringConditions;
178
156
  }
179
-
180
157
  if (TableUtils.isDateType(selectedColumnType)) {
181
158
  return dateConditions;
182
159
  }
183
-
184
160
  if (TableUtils.isBooleanType(selectedColumnType)) {
185
161
  return booleanConditions;
186
162
  }
@@ -215,17 +191,14 @@ var ConditionEditor = props => {
215
191
  }, []);
216
192
  useEffect(function changeCondition() {
217
193
  var isValid = true;
218
-
219
194
  if (selectedCondition === undefined) {
220
195
  log.debug('Unable to create formatting rule. Condition is not selected.');
221
196
  isValid = false;
222
197
  }
223
-
224
198
  if (TableUtils.isNumberType(column.type) && !isNumberConditionValid(selectedCondition, conditionValue, startValue, endValue)) {
225
199
  log.debug('Unable to create formatting rule. Invalid value', conditionValue);
226
200
  isValid = false;
227
201
  }
228
-
229
202
  onChange({
230
203
  condition: selectedCondition,
231
204
  value: conditionValue,
@@ -238,23 +211,18 @@ var ConditionEditor = props => {
238
211
  // Column not selected
239
212
  return null;
240
213
  }
241
-
242
214
  if (TableUtils.isNumberType(selectedColumnType)) {
243
215
  return getNumberInputs(selectedCondition, handleValueChange, handleStartValueChange, handleEndValueChange, conditionValue, startValue, endValue);
244
216
  }
245
-
246
217
  if (TableUtils.isCharType(selectedColumnType)) {
247
218
  return getCharInputs(selectedCondition, handleValueChange, conditionValue);
248
219
  }
249
-
250
220
  if (TableUtils.isStringType(selectedColumnType)) {
251
221
  return getStringInputs(selectedCondition, handleValueChange, conditionValue);
252
222
  }
253
-
254
223
  if (TableUtils.isDateType(selectedColumnType)) {
255
224
  return getDateInputs(selectedCondition, handleValueChange, conditionValue);
256
225
  }
257
-
258
226
  if (TableUtils.isBooleanType(selectedColumnType)) {
259
227
  return getBooleanInputs();
260
228
  }
@@ -267,7 +235,6 @@ var ConditionEditor = props => {
267
235
  className: "custom-select mb-2",
268
236
  onChange: handleConditionChange
269
237
  }, conditions), conditionInputs);
270
- };
271
-
238
+ }
272
239
  export default ConditionEditor;
273
240
  //# sourceMappingURL=ConditionEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionEditor.js","names":["React","useCallback","useEffect","useMemo","useState","TableUtils","Log","StringCondition","DateCondition","getLabelForNumberCondition","getLabelForDateCondition","getLabelForStringCondition","NumberCondition","getDefaultConditionForType","getLabelForBooleanCondition","BooleanCondition","CharCondition","getLabelForCharCondition","log","module","DEFAULT_CALLBACK","undefined","numberConditionOptions","IS_EQUAL","IS_NOT_EQUAL","IS_BETWEEN","GREATER_THAN","GREATER_THAN_OR_EQUAL","LESS_THAN","LESS_THAN_OR_EQUAL","IS_NULL","IS_NOT_NULL","map","option","stringConditions","IS_EXACTLY","IS_NOT_EXACTLY","CONTAINS","DOES_NOT_CONTAIN","STARTS_WITH","ENDS_WITH","dateConditions","IS_BEFORE","IS_BEFORE_OR_EQUAL","IS_AFTER","IS_AFTER_OR_EQUAL","booleanConditions","IS_TRUE","IS_FALSE","charConditions","isNumberConditionValid","condition","value","startValue","endValue","Number","isNaN","parseFloat","getNumberInputs","selectedCondition","handleValueChange","handleStartValueChange","handleEndValueChange","conditionValue","getStringInputs","getDateInputs","getBooleanInputs","getCharInputs","ConditionEditor","props","column","config","onChange","selectedColumnType","type","prevColumnType","setPrevColumnType","setCondition","setValue","setStartValue","start","setEndValue","end","conditions","isNumberType","isCharType","isStringType","isDateType","isBooleanType","handleConditionChange","e","target","debug","changeCondition","isValid","conditionInputs"],"sources":["../../../src/sidebar/conditional-formatting/ConditionEditor.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n StringCondition,\n DateCondition,\n getLabelForNumberCondition,\n getLabelForDateCondition,\n getLabelForStringCondition,\n NumberCondition,\n ModelColumn,\n ConditionConfig,\n getDefaultConditionForType,\n getLabelForBooleanCondition,\n BooleanCondition,\n CharCondition,\n getLabelForCharCondition,\n} from './ConditionalFormattingUtils';\n\nconst log = Log.module('ConditionEditor');\n\nexport interface ConditionEditorProps {\n column: ModelColumn;\n config: ConditionConfig;\n onChange?: (config: ConditionConfig, isValid: boolean) => void;\n}\n\nconst DEFAULT_CALLBACK = () => undefined;\n\nconst numberConditionOptions = [\n NumberCondition.IS_EQUAL,\n NumberCondition.IS_NOT_EQUAL,\n NumberCondition.IS_BETWEEN,\n NumberCondition.GREATER_THAN,\n NumberCondition.GREATER_THAN_OR_EQUAL,\n NumberCondition.LESS_THAN,\n NumberCondition.LESS_THAN_OR_EQUAL,\n NumberCondition.IS_NULL,\n NumberCondition.IS_NOT_NULL,\n].map(option => (\n <option key={option} value={option}>\n {getLabelForNumberCondition(option)}\n </option>\n));\n\nconst stringConditions = [\n StringCondition.IS_EXACTLY,\n StringCondition.IS_NOT_EXACTLY,\n StringCondition.CONTAINS,\n StringCondition.DOES_NOT_CONTAIN,\n StringCondition.STARTS_WITH,\n StringCondition.ENDS_WITH,\n StringCondition.IS_NULL,\n StringCondition.IS_NOT_NULL,\n].map(option => (\n <option key={option} value={option}>\n {getLabelForStringCondition(option)}\n </option>\n));\n\nconst dateConditions = [\n DateCondition.IS_EXACTLY,\n DateCondition.IS_NOT_EXACTLY,\n DateCondition.IS_BEFORE,\n DateCondition.IS_BEFORE_OR_EQUAL,\n DateCondition.IS_AFTER,\n DateCondition.IS_AFTER_OR_EQUAL,\n DateCondition.IS_NULL,\n DateCondition.IS_NOT_NULL,\n].map(option => (\n <option key={option} value={option}>\n {getLabelForDateCondition(option)}\n </option>\n));\n\nconst booleanConditions = [\n BooleanCondition.IS_TRUE,\n BooleanCondition.IS_FALSE,\n BooleanCondition.IS_NULL,\n BooleanCondition.IS_NOT_NULL,\n].map(option => (\n <option key={option} value={option}>\n {getLabelForBooleanCondition(option)}\n </option>\n));\n\nconst charConditions = [\n CharCondition.IS_EQUAL,\n CharCondition.IS_NOT_EQUAL,\n CharCondition.IS_NULL,\n CharCondition.IS_NOT_NULL,\n].map(option => (\n <option key={option} value={option}>\n {getLabelForCharCondition(option)}\n </option>\n));\n\nfunction isNumberConditionValid(\n condition: NumberCondition,\n value?: string,\n startValue?: string,\n endValue?: string\n) {\n if (\n condition === NumberCondition.IS_NULL ||\n condition === NumberCondition.IS_NOT_NULL\n ) {\n return true;\n }\n if (\n condition === NumberCondition.IS_BETWEEN &&\n startValue != null &&\n startValue !== '' &&\n !Number.isNaN(Number.parseFloat(startValue)) &&\n endValue != null &&\n endValue !== '' &&\n !Number.isNaN(Number.parseFloat(endValue))\n ) {\n return true;\n }\n if (\n condition !== NumberCondition.IS_BETWEEN &&\n value !== undefined &&\n value !== '' &&\n !Number.isNaN(Number.parseFloat(value))\n ) {\n return true;\n }\n return false;\n}\n\nfunction getNumberInputs(\n selectedCondition: NumberCondition,\n handleValueChange: (e: unknown) => void,\n handleStartValueChange: (e: unknown) => void,\n handleEndValueChange: (e: unknown) => void,\n conditionValue?: string,\n startValue?: string,\n endValue?: string\n) {\n switch (selectedCondition) {\n case NumberCondition.IS_EQUAL:\n case NumberCondition.IS_NOT_EQUAL:\n case NumberCondition.GREATER_THAN:\n case NumberCondition.GREATER_THAN_OR_EQUAL:\n case NumberCondition.LESS_THAN:\n case NumberCondition.LESS_THAN_OR_EQUAL:\n return (\n <input\n type=\"number\"\n className=\"form-control\"\n placeholder=\"Enter value\"\n value={conditionValue ?? ''}\n onChange={handleValueChange}\n />\n );\n case NumberCondition.IS_BETWEEN:\n return (\n <div className=\"d-flex flex-row\">\n <input\n type=\"number\"\n className=\"form-control d-flex mr-2\"\n placeholder=\"Start value\"\n value={startValue ?? ''}\n onChange={handleStartValueChange}\n />\n <input\n type=\"number\"\n className=\"form-control d-flex\"\n placeholder=\"End value\"\n value={endValue ?? ''}\n onChange={handleEndValueChange}\n />\n </div>\n );\n case NumberCondition.IS_NULL:\n case NumberCondition.IS_NOT_NULL:\n return null;\n }\n}\n\nfunction getStringInputs(\n selectedCondition: StringCondition,\n handleValueChange: (e: unknown) => void,\n conditionValue?: string\n) {\n switch (selectedCondition) {\n case StringCondition.IS_NULL:\n case StringCondition.IS_NOT_NULL:\n return null;\n default:\n return (\n <input\n type=\"text\"\n className=\"form-control\"\n placeholder=\"Enter value\"\n value={conditionValue ?? ''}\n onChange={handleValueChange}\n />\n );\n }\n}\n\nfunction getDateInputs(\n selectedCondition: DateCondition,\n handleValueChange: (e: unknown) => void,\n conditionValue?: string\n) {\n switch (selectedCondition) {\n case DateCondition.IS_NULL:\n case DateCondition.IS_NOT_NULL:\n return null;\n default:\n return (\n <input\n type=\"text\"\n className=\"form-control\"\n placeholder=\"Enter value\"\n value={conditionValue ?? ''}\n onChange={handleValueChange}\n />\n );\n }\n}\n\nfunction getBooleanInputs() {\n return null;\n}\n\nfunction getCharInputs(\n selectedCondition: CharCondition,\n handleValueChange: (e: unknown) => void,\n conditionValue?: string\n) {\n switch (selectedCondition) {\n case CharCondition.IS_NULL:\n case CharCondition.IS_NOT_NULL:\n return null;\n default:\n return (\n <input\n type=\"text\"\n className=\"form-control\"\n maxLength={1}\n placeholder=\"Enter value\"\n value={conditionValue ?? ''}\n onChange={handleValueChange}\n />\n );\n }\n}\n\nconst ConditionEditor = (props: ConditionEditorProps): JSX.Element => {\n const { column, config, onChange = DEFAULT_CALLBACK } = props;\n const selectedColumnType = column.type;\n const [prevColumnType, setPrevColumnType] = useState(selectedColumnType);\n const [selectedCondition, setCondition] = useState(config.condition);\n const [conditionValue, setValue] = useState(config.value);\n const [startValue, setStartValue] = useState(config.start);\n const [endValue, setEndValue] = useState(config.end);\n\n if (selectedColumnType !== prevColumnType) {\n // Column type changed, reset condition and value fields\n setCondition(getDefaultConditionForType(selectedColumnType));\n setValue(undefined);\n setStartValue(undefined);\n setEndValue(undefined);\n setPrevColumnType(selectedColumnType);\n }\n\n const conditions = useMemo(() => {\n if (selectedColumnType === undefined) {\n return [];\n }\n if (TableUtils.isNumberType(selectedColumnType)) {\n return numberConditionOptions;\n }\n if (TableUtils.isCharType(selectedColumnType)) {\n return charConditions;\n }\n if (TableUtils.isStringType(selectedColumnType)) {\n return stringConditions;\n }\n if (TableUtils.isDateType(selectedColumnType)) {\n return dateConditions;\n }\n if (TableUtils.isBooleanType(selectedColumnType)) {\n return booleanConditions;\n }\n }, [selectedColumnType]);\n\n const handleConditionChange = useCallback(e => {\n const { value } = e.target;\n log.debug('handleConditionChange', value);\n setCondition(value);\n }, []);\n\n const handleValueChange = useCallback(e => {\n const { value } = e.target;\n log.debug('handleValueChange', value);\n setValue(value);\n }, []);\n\n const handleStartValueChange = useCallback(e => {\n const { value } = e.target;\n log.debug('handleStartValueChange', value);\n setStartValue(value);\n }, []);\n\n const handleEndValueChange = useCallback(e => {\n const { value } = e.target;\n log.debug('handleEndValueChange', value);\n setEndValue(value);\n }, []);\n\n useEffect(\n function changeCondition() {\n let isValid = true;\n\n if (selectedCondition === undefined) {\n log.debug(\n 'Unable to create formatting rule. Condition is not selected.'\n );\n isValid = false;\n }\n\n if (\n TableUtils.isNumberType(column.type) &&\n !isNumberConditionValid(\n selectedCondition as NumberCondition,\n conditionValue,\n startValue,\n endValue\n )\n ) {\n log.debug(\n 'Unable to create formatting rule. Invalid value',\n conditionValue\n );\n isValid = false;\n }\n onChange(\n {\n condition: selectedCondition,\n value: conditionValue,\n start: startValue,\n end: endValue,\n },\n isValid\n );\n },\n [\n onChange,\n column.type,\n selectedCondition,\n conditionValue,\n startValue,\n endValue,\n ]\n );\n\n const conditionInputs = useMemo(() => {\n if (selectedColumnType === undefined) {\n // Column not selected\n return null;\n }\n if (TableUtils.isNumberType(selectedColumnType)) {\n return getNumberInputs(\n selectedCondition as NumberCondition,\n handleValueChange,\n handleStartValueChange,\n handleEndValueChange,\n conditionValue,\n startValue,\n endValue\n );\n }\n if (TableUtils.isCharType(selectedColumnType)) {\n return getCharInputs(\n selectedCondition as CharCondition,\n handleValueChange,\n conditionValue\n );\n }\n if (TableUtils.isStringType(selectedColumnType)) {\n return getStringInputs(\n selectedCondition as StringCondition,\n handleValueChange,\n conditionValue\n );\n }\n if (TableUtils.isDateType(selectedColumnType)) {\n return getDateInputs(\n selectedCondition as DateCondition,\n handleValueChange,\n conditionValue\n );\n }\n if (TableUtils.isBooleanType(selectedColumnType)) {\n return getBooleanInputs();\n }\n }, [\n selectedColumnType,\n selectedCondition,\n conditionValue,\n startValue,\n endValue,\n handleValueChange,\n handleStartValueChange,\n handleEndValueChange,\n ]);\n\n return (\n <div className=\"condition-editor mb-2\">\n <select\n value={selectedCondition}\n id=\"condition-select\"\n className=\"custom-select mb-2\"\n onChange={handleConditionChange}\n >\n {conditions}\n </select>\n {conditionInputs}\n </div>\n );\n};\n\nexport default ConditionEditor;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ConditionEditor.js","names":["React","useCallback","useEffect","useMemo","useState","TableUtils","Log","StringCondition","DateCondition","getLabelForNumberCondition","getLabelForDateCondition","getLabelForStringCondition","NumberCondition","getDefaultConditionForType","getLabelForBooleanCondition","BooleanCondition","CharCondition","getLabelForCharCondition","log","module","DEFAULT_CALLBACK","undefined","numberConditionOptions","IS_EQUAL","IS_NOT_EQUAL","IS_BETWEEN","GREATER_THAN","GREATER_THAN_OR_EQUAL","LESS_THAN","LESS_THAN_OR_EQUAL","IS_NULL","IS_NOT_NULL","map","option","stringConditions","IS_EXACTLY","IS_NOT_EXACTLY","CONTAINS","DOES_NOT_CONTAIN","STARTS_WITH","ENDS_WITH","dateConditions","IS_BEFORE","IS_BEFORE_OR_EQUAL","IS_AFTER","IS_AFTER_OR_EQUAL","booleanConditions","IS_TRUE","IS_FALSE","charConditions","isNumberConditionValid","condition","value","startValue","endValue","Number","isNaN","parseFloat","getNumberInputs","selectedCondition","handleValueChange","handleStartValueChange","handleEndValueChange","conditionValue","getStringInputs","getDateInputs","getBooleanInputs","getCharInputs","ConditionEditor","props","column","config","onChange","selectedColumnType","type","prevColumnType","setPrevColumnType","setCondition","setValue","setStartValue","start","setEndValue","end","conditions","isNumberType","isCharType","isStringType","isDateType","isBooleanType","handleConditionChange","e","target","debug","changeCondition","isValid","conditionInputs"],"sources":["../../../src/sidebar/conditional-formatting/ConditionEditor.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { TableUtils } from '@deephaven/jsapi-utils';\nimport Log from '@deephaven/log';\nimport {\n StringCondition,\n DateCondition,\n getLabelForNumberCondition,\n getLabelForDateCondition,\n getLabelForStringCondition,\n NumberCondition,\n ModelColumn,\n ConditionConfig,\n getDefaultConditionForType,\n getLabelForBooleanCondition,\n BooleanCondition,\n CharCondition,\n getLabelForCharCondition,\n} from './ConditionalFormattingUtils';\n\nconst log = Log.module('ConditionEditor');\n\nexport interface ConditionEditorProps {\n column: ModelColumn;\n config: ConditionConfig;\n onChange?: (config: ConditionConfig, isValid: boolean) => void;\n}\n\nconst DEFAULT_CALLBACK = () => undefined;\n\nconst numberConditionOptions = [\n NumberCondition.IS_EQUAL,\n NumberCondition.IS_NOT_EQUAL,\n NumberCondition.IS_BETWEEN,\n NumberCondition.GREATER_THAN,\n NumberCondition.GREATER_THAN_OR_EQUAL,\n NumberCondition.LESS_THAN,\n NumberCondition.LESS_THAN_OR_EQUAL,\n NumberCondition.IS_NULL,\n NumberCondition.IS_NOT_NULL,\n].map(option => (\n <option key={option} value={option}>\n {getLabelForNumberCondition(option)}\n </option>\n));\n\nconst stringConditions = [\n StringCondition.IS_EXACTLY,\n StringCondition.IS_NOT_EXACTLY,\n StringCondition.CONTAINS,\n StringCondition.DOES_NOT_CONTAIN,\n StringCondition.STARTS_WITH,\n StringCondition.ENDS_WITH,\n StringCondition.IS_NULL,\n StringCondition.IS_NOT_NULL,\n].map(option => (\n <option key={option} value={option}>\n {getLabelForStringCondition(option)}\n </option>\n));\n\nconst dateConditions = [\n DateCondition.IS_EXACTLY,\n DateCondition.IS_NOT_EXACTLY,\n DateCondition.IS_BEFORE,\n DateCondition.IS_BEFORE_OR_EQUAL,\n DateCondition.IS_AFTER,\n DateCondition.IS_AFTER_OR_EQUAL,\n DateCondition.IS_NULL,\n DateCondition.IS_NOT_NULL,\n].map(option => (\n <option key={option} value={option}>\n {getLabelForDateCondition(option)}\n </option>\n));\n\nconst booleanConditions = [\n BooleanCondition.IS_TRUE,\n BooleanCondition.IS_FALSE,\n BooleanCondition.IS_NULL,\n BooleanCondition.IS_NOT_NULL,\n].map(option => (\n <option key={option} value={option}>\n {getLabelForBooleanCondition(option)}\n </option>\n));\n\nconst charConditions = [\n CharCondition.IS_EQUAL,\n CharCondition.IS_NOT_EQUAL,\n CharCondition.IS_NULL,\n CharCondition.IS_NOT_NULL,\n].map(option => (\n <option key={option} value={option}>\n {getLabelForCharCondition(option)}\n </option>\n));\n\nfunction isNumberConditionValid(\n condition: NumberCondition,\n value?: string,\n startValue?: string,\n endValue?: string\n) {\n if (\n condition === NumberCondition.IS_NULL ||\n condition === NumberCondition.IS_NOT_NULL\n ) {\n return true;\n }\n if (\n condition === NumberCondition.IS_BETWEEN &&\n startValue != null &&\n startValue !== '' &&\n !Number.isNaN(Number.parseFloat(startValue)) &&\n endValue != null &&\n endValue !== '' &&\n !Number.isNaN(Number.parseFloat(endValue))\n ) {\n return true;\n }\n if (\n condition !== NumberCondition.IS_BETWEEN &&\n value !== undefined &&\n value !== '' &&\n !Number.isNaN(Number.parseFloat(value))\n ) {\n return true;\n }\n return false;\n}\n\nfunction getNumberInputs(\n selectedCondition: NumberCondition,\n handleValueChange: (e: unknown) => void,\n handleStartValueChange: (e: unknown) => void,\n handleEndValueChange: (e: unknown) => void,\n conditionValue?: string,\n startValue?: string,\n endValue?: string\n) {\n switch (selectedCondition) {\n case NumberCondition.IS_EQUAL:\n case NumberCondition.IS_NOT_EQUAL:\n case NumberCondition.GREATER_THAN:\n case NumberCondition.GREATER_THAN_OR_EQUAL:\n case NumberCondition.LESS_THAN:\n case NumberCondition.LESS_THAN_OR_EQUAL:\n return (\n <input\n type=\"number\"\n className=\"form-control\"\n placeholder=\"Enter value\"\n value={conditionValue ?? ''}\n onChange={handleValueChange}\n />\n );\n case NumberCondition.IS_BETWEEN:\n return (\n <div className=\"d-flex flex-row\">\n <input\n type=\"number\"\n className=\"form-control d-flex mr-2\"\n placeholder=\"Start value\"\n value={startValue ?? ''}\n onChange={handleStartValueChange}\n />\n <input\n type=\"number\"\n className=\"form-control d-flex\"\n placeholder=\"End value\"\n value={endValue ?? ''}\n onChange={handleEndValueChange}\n />\n </div>\n );\n case NumberCondition.IS_NULL:\n case NumberCondition.IS_NOT_NULL:\n return null;\n }\n}\n\nfunction getStringInputs(\n selectedCondition: StringCondition,\n handleValueChange: (e: unknown) => void,\n conditionValue?: string\n) {\n switch (selectedCondition) {\n case StringCondition.IS_NULL:\n case StringCondition.IS_NOT_NULL:\n return null;\n default:\n return (\n <input\n type=\"text\"\n className=\"form-control\"\n placeholder=\"Enter value\"\n value={conditionValue ?? ''}\n onChange={handleValueChange}\n />\n );\n }\n}\n\nfunction getDateInputs(\n selectedCondition: DateCondition,\n handleValueChange: (e: unknown) => void,\n conditionValue?: string\n) {\n switch (selectedCondition) {\n case DateCondition.IS_NULL:\n case DateCondition.IS_NOT_NULL:\n return null;\n default:\n return (\n <input\n type=\"text\"\n className=\"form-control\"\n placeholder=\"Enter value\"\n value={conditionValue ?? ''}\n onChange={handleValueChange}\n />\n );\n }\n}\n\nfunction getBooleanInputs() {\n return null;\n}\n\nfunction getCharInputs(\n selectedCondition: CharCondition,\n handleValueChange: (e: unknown) => void,\n conditionValue?: string\n) {\n switch (selectedCondition) {\n case CharCondition.IS_NULL:\n case CharCondition.IS_NOT_NULL:\n return null;\n default:\n return (\n <input\n type=\"text\"\n className=\"form-control\"\n maxLength={1}\n placeholder=\"Enter value\"\n value={conditionValue ?? ''}\n onChange={handleValueChange}\n />\n );\n }\n}\n\nfunction ConditionEditor(props: ConditionEditorProps): JSX.Element {\n const { column, config, onChange = DEFAULT_CALLBACK } = props;\n const selectedColumnType = column.type;\n const [prevColumnType, setPrevColumnType] = useState(selectedColumnType);\n const [selectedCondition, setCondition] = useState(config.condition);\n const [conditionValue, setValue] = useState(config.value);\n const [startValue, setStartValue] = useState(config.start);\n const [endValue, setEndValue] = useState(config.end);\n\n if (selectedColumnType !== prevColumnType) {\n // Column type changed, reset condition and value fields\n setCondition(getDefaultConditionForType(selectedColumnType));\n setValue(undefined);\n setStartValue(undefined);\n setEndValue(undefined);\n setPrevColumnType(selectedColumnType);\n }\n\n const conditions = useMemo(() => {\n if (selectedColumnType === undefined) {\n return [];\n }\n if (TableUtils.isNumberType(selectedColumnType)) {\n return numberConditionOptions;\n }\n if (TableUtils.isCharType(selectedColumnType)) {\n return charConditions;\n }\n if (TableUtils.isStringType(selectedColumnType)) {\n return stringConditions;\n }\n if (TableUtils.isDateType(selectedColumnType)) {\n return dateConditions;\n }\n if (TableUtils.isBooleanType(selectedColumnType)) {\n return booleanConditions;\n }\n }, [selectedColumnType]);\n\n const handleConditionChange = useCallback(e => {\n const { value } = e.target;\n log.debug('handleConditionChange', value);\n setCondition(value);\n }, []);\n\n const handleValueChange = useCallback(e => {\n const { value } = e.target;\n log.debug('handleValueChange', value);\n setValue(value);\n }, []);\n\n const handleStartValueChange = useCallback(e => {\n const { value } = e.target;\n log.debug('handleStartValueChange', value);\n setStartValue(value);\n }, []);\n\n const handleEndValueChange = useCallback(e => {\n const { value } = e.target;\n log.debug('handleEndValueChange', value);\n setEndValue(value);\n }, []);\n\n useEffect(\n function changeCondition() {\n let isValid = true;\n\n if (selectedCondition === undefined) {\n log.debug(\n 'Unable to create formatting rule. Condition is not selected.'\n );\n isValid = false;\n }\n\n if (\n TableUtils.isNumberType(column.type) &&\n !isNumberConditionValid(\n selectedCondition as NumberCondition,\n conditionValue,\n startValue,\n endValue\n )\n ) {\n log.debug(\n 'Unable to create formatting rule. Invalid value',\n conditionValue\n );\n isValid = false;\n }\n onChange(\n {\n condition: selectedCondition,\n value: conditionValue,\n start: startValue,\n end: endValue,\n },\n isValid\n );\n },\n [\n onChange,\n column.type,\n selectedCondition,\n conditionValue,\n startValue,\n endValue,\n ]\n );\n\n const conditionInputs = useMemo(() => {\n if (selectedColumnType === undefined) {\n // Column not selected\n return null;\n }\n if (TableUtils.isNumberType(selectedColumnType)) {\n return getNumberInputs(\n selectedCondition as NumberCondition,\n handleValueChange,\n handleStartValueChange,\n handleEndValueChange,\n conditionValue,\n startValue,\n endValue\n );\n }\n if (TableUtils.isCharType(selectedColumnType)) {\n return getCharInputs(\n selectedCondition as CharCondition,\n handleValueChange,\n conditionValue\n );\n }\n if (TableUtils.isStringType(selectedColumnType)) {\n return getStringInputs(\n selectedCondition as StringCondition,\n handleValueChange,\n conditionValue\n );\n }\n if (TableUtils.isDateType(selectedColumnType)) {\n return getDateInputs(\n selectedCondition as DateCondition,\n handleValueChange,\n conditionValue\n );\n }\n if (TableUtils.isBooleanType(selectedColumnType)) {\n return getBooleanInputs();\n }\n }, [\n selectedColumnType,\n selectedCondition,\n conditionValue,\n startValue,\n endValue,\n handleValueChange,\n handleStartValueChange,\n handleEndValueChange,\n ]);\n\n return (\n <div className=\"condition-editor mb-2\">\n <select\n value={selectedCondition}\n id=\"condition-select\"\n className=\"custom-select mb-2\"\n onChange={handleConditionChange}\n >\n {conditions}\n </select>\n {conditionInputs}\n </div>\n );\n}\n\nexport default ConditionEditor;\n"],"mappings":"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"}
@@ -11,6 +11,6 @@ export interface ConditionalFormatEditorProps {
11
11
  onSave?: SaveCallback;
12
12
  onUpdate?: UpdateCallback;
13
13
  }
14
- declare const ConditionalFormatEditor: (props: ConditionalFormatEditorProps) => JSX.Element;
14
+ declare function ConditionalFormatEditor(props: ConditionalFormatEditorProps): JSX.Element;
15
15
  export default ConditionalFormatEditor;
16
16
  //# sourceMappingURL=ConditionalFormatEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConditionalFormatEditor.d.ts","sourceRoot":"","sources":["../../../src/sidebar/conditional-formatting/ConditionalFormatEditor.tsx"],"names":[],"mappings":";AAOA,OAAO,EAGL,cAAc,EAEd,WAAW,EACZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,gCAAgC,CAAC;AAIxC,oBAAY,YAAY,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;AAE1D,oBAAY,cAAc,GAAG,CAAC,IAAI,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;AAE7D,oBAAY,cAAc,GAAG,MAAM,IAAI,CAAC;AAExC,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAwBD,QAAA,MAAM,uBAAuB,UACpB,4BAA4B,KAClC,WAsGF,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
1
+ {"version":3,"file":"ConditionalFormatEditor.d.ts","sourceRoot":"","sources":["../../../src/sidebar/conditional-formatting/ConditionalFormatEditor.tsx"],"names":[],"mappings":";AAOA,OAAO,EAGL,cAAc,EAEd,WAAW,EACZ,MAAM,8BAA8B,CAAC;AACtC,OAAO,gCAAgC,CAAC;AAIxC,oBAAY,YAAY,GAAG,CAAC,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;AAE1D,oBAAY,cAAc,GAAG,CAAC,IAAI,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;AAE7D,oBAAY,cAAc,GAAG,MAAM,IAAI,CAAC;AAExC,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAwBD,iBAAS,uBAAuB,CAC9B,KAAK,EAAE,4BAA4B,GAClC,GAAG,CAAC,OAAO,CAsGb;AAED,eAAe,uBAAuB,CAAC"}