@deephaven/iris-grid 0.22.3-beta.18 → 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 (199) 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 +11 -5
  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.js +7 -86
  49. package/dist/IrisGridTableModel.js.map +1 -1
  50. package/dist/IrisGridTableModelTemplate.js +70 -461
  51. package/dist/IrisGridTableModelTemplate.js.map +1 -1
  52. package/dist/IrisGridTestUtils.js +0 -23
  53. package/dist/IrisGridTestUtils.js.map +1 -1
  54. package/dist/IrisGridTheme.js.map +1 -1
  55. package/dist/IrisGridTreeTableModel.js +3 -42
  56. package/dist/IrisGridTreeTableModel.js.map +1 -1
  57. package/dist/IrisGridUtils.d.ts +8 -2
  58. package/dist/IrisGridUtils.d.ts.map +1 -1
  59. package/dist/IrisGridUtils.js +97 -195
  60. package/dist/IrisGridUtils.js.map +1 -1
  61. package/dist/MissingKeyError.js +0 -7
  62. package/dist/MissingKeyError.js.map +1 -1
  63. package/dist/PartitionSelectorSearch.js +2 -48
  64. package/dist/PartitionSelectorSearch.js.map +1 -1
  65. package/dist/PendingDataBottomBar.d.ts +1 -1
  66. package/dist/PendingDataBottomBar.d.ts.map +1 -1
  67. package/dist/PendingDataBottomBar.js +2 -7
  68. package/dist/PendingDataBottomBar.js.map +1 -1
  69. package/dist/TableViewportUpdater.js +3 -29
  70. package/dist/TableViewportUpdater.js.map +1 -1
  71. package/dist/ToastBottomBar.d.ts +1 -1
  72. package/dist/ToastBottomBar.d.ts.map +1 -1
  73. package/dist/ToastBottomBar.js +2 -4
  74. package/dist/ToastBottomBar.js.map +1 -1
  75. package/dist/TreeTableViewportUpdater.js +0 -21
  76. package/dist/TreeTableViewportUpdater.js.map +1 -1
  77. package/dist/format-context-menus/CustomFormatAction.js +4 -25
  78. package/dist/format-context-menus/CustomFormatAction.js.map +1 -1
  79. package/dist/format-context-menus/DateTimeFormatContextMenu.js +0 -7
  80. package/dist/format-context-menus/DateTimeFormatContextMenu.js.map +1 -1
  81. package/dist/format-context-menus/DecimalFormatContextMenu.js +0 -9
  82. package/dist/format-context-menus/DecimalFormatContextMenu.js.map +1 -1
  83. package/dist/format-context-menus/FormatContextMenuUtils.js +3 -9
  84. package/dist/format-context-menus/FormatContextMenuUtils.js.map +1 -1
  85. package/dist/format-context-menus/IntegerFormatContextMenu.js +0 -8
  86. package/dist/format-context-menus/IntegerFormatContextMenu.js.map +1 -1
  87. package/dist/format-context-menus/index.js.map +1 -1
  88. package/dist/index.d.ts +3 -3
  89. package/dist/index.d.ts.map +1 -1
  90. package/dist/index.js +3 -3
  91. package/dist/index.js.map +1 -1
  92. package/dist/key-handlers/ClearFilterKeyHandler.js +0 -8
  93. package/dist/key-handlers/ClearFilterKeyHandler.js.map +1 -1
  94. package/dist/key-handlers/CopyKeyHandler.js +1 -10
  95. package/dist/key-handlers/CopyKeyHandler.js.map +1 -1
  96. package/dist/key-handlers/ReverseKeyHandler.js +0 -11
  97. package/dist/key-handlers/ReverseKeyHandler.js.map +1 -1
  98. package/dist/key-handlers/index.js.map +1 -1
  99. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js +2 -32
  100. package/dist/mousehandlers/IrisGridCellOverflowMouseHandler.js.map +1 -1
  101. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js +4 -34
  102. package/dist/mousehandlers/IrisGridColumnSelectMouseHandler.js.map +1 -1
  103. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js +0 -20
  104. package/dist/mousehandlers/IrisGridColumnTooltipMouseHandler.js.map +1 -1
  105. package/dist/mousehandlers/IrisGridContextMenuHandler.js +15 -105
  106. package/dist/mousehandlers/IrisGridContextMenuHandler.js.map +1 -1
  107. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js +0 -9
  108. package/dist/mousehandlers/IrisGridDataSelectMouseHandler.js.map +1 -1
  109. package/dist/mousehandlers/IrisGridFilterMouseHandler.js +0 -17
  110. package/dist/mousehandlers/IrisGridFilterMouseHandler.js.map +1 -1
  111. package/dist/mousehandlers/IrisGridSortMouseHandler.js +2 -15
  112. package/dist/mousehandlers/IrisGridSortMouseHandler.js.map +1 -1
  113. package/dist/mousehandlers/PendingMouseHandler.js +0 -6
  114. package/dist/mousehandlers/PendingMouseHandler.js.map +1 -1
  115. package/dist/mousehandlers/index.js.map +1 -1
  116. package/dist/sidebar/AdvancedSettings.js.map +1 -1
  117. package/dist/sidebar/AdvancedSettingsMenu.d.ts +4 -4
  118. package/dist/sidebar/AdvancedSettingsMenu.d.ts.map +1 -1
  119. package/dist/sidebar/AdvancedSettingsMenu.js +2 -6
  120. package/dist/sidebar/AdvancedSettingsMenu.js.map +1 -1
  121. package/dist/sidebar/AdvancedSettingsType.js +0 -2
  122. package/dist/sidebar/AdvancedSettingsType.js.map +1 -1
  123. package/dist/sidebar/ChartBuilder.js +2 -46
  124. package/dist/sidebar/ChartBuilder.js.map +1 -1
  125. package/dist/sidebar/CustomColumnBuilder.js +6 -58
  126. package/dist/sidebar/CustomColumnBuilder.js.map +1 -1
  127. package/dist/sidebar/CustomColumnInput.js +4 -15
  128. package/dist/sidebar/CustomColumnInput.js.map +1 -1
  129. package/dist/sidebar/InputEditor.js +5 -36
  130. package/dist/sidebar/InputEditor.js.map +1 -1
  131. package/dist/sidebar/OptionType.js +0 -2
  132. package/dist/sidebar/OptionType.js.map +1 -1
  133. package/dist/sidebar/RollupRows.js +9 -65
  134. package/dist/sidebar/RollupRows.js.map +1 -1
  135. package/dist/sidebar/SelectDistinctBuilder.js +0 -13
  136. package/dist/sidebar/SelectDistinctBuilder.js.map +1 -1
  137. package/dist/sidebar/TableCsvExporter.js +0 -52
  138. package/dist/sidebar/TableCsvExporter.js.map +1 -1
  139. package/dist/sidebar/TableSaver.js +10 -123
  140. package/dist/sidebar/TableSaver.js.map +1 -1
  141. package/dist/sidebar/VisibilityOrderingBuilder.js +37 -116
  142. package/dist/sidebar/VisibilityOrderingBuilder.js.map +1 -1
  143. package/dist/sidebar/aggregations/AggregationEdit.d.ts +1 -1
  144. package/dist/sidebar/aggregations/AggregationEdit.d.ts.map +1 -1
  145. package/dist/sidebar/aggregations/AggregationEdit.js +2 -14
  146. package/dist/sidebar/aggregations/AggregationEdit.js.map +1 -1
  147. package/dist/sidebar/aggregations/AggregationOperation.js +0 -2
  148. package/dist/sidebar/aggregations/AggregationOperation.js.map +1 -1
  149. package/dist/sidebar/aggregations/AggregationUtils.js +2 -5
  150. package/dist/sidebar/aggregations/AggregationUtils.js.map +1 -1
  151. package/dist/sidebar/aggregations/Aggregations.d.ts +1 -1
  152. package/dist/sidebar/aggregations/Aggregations.d.ts.map +1 -1
  153. package/dist/sidebar/aggregations/Aggregations.js +2 -12
  154. package/dist/sidebar/aggregations/Aggregations.js.map +1 -1
  155. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts +1 -1
  156. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.d.ts.map +1 -1
  157. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js +2 -16
  158. package/dist/sidebar/conditional-formatting/ColumnFormatEditor.js.map +1 -1
  159. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts +1 -1
  160. package/dist/sidebar/conditional-formatting/ConditionEditor.d.ts.map +1 -1
  161. package/dist/sidebar/conditional-formatting/ConditionEditor.js +2 -35
  162. package/dist/sidebar/conditional-formatting/ConditionEditor.js.map +1 -1
  163. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts +1 -1
  164. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.d.ts.map +1 -1
  165. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js +2 -12
  166. package/dist/sidebar/conditional-formatting/ConditionalFormatEditor.js.map +1 -1
  167. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js +0 -3
  168. package/dist/sidebar/conditional-formatting/ConditionalFormattingAPIUtils.js.map +1 -1
  169. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts +1 -1
  170. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.d.ts.map +1 -1
  171. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js +16 -26
  172. package/dist/sidebar/conditional-formatting/ConditionalFormattingMenu.js.map +1 -1
  173. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js +9 -172
  174. package/dist/sidebar/conditional-formatting/ConditionalFormattingUtils.js.map +1 -1
  175. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts +1 -1
  176. package/dist/sidebar/conditional-formatting/RowFormatEditor.d.ts.map +1 -1
  177. package/dist/sidebar/conditional-formatting/RowFormatEditor.js +2 -16
  178. package/dist/sidebar/conditional-formatting/RowFormatEditor.js.map +1 -1
  179. package/dist/sidebar/conditional-formatting/StyleEditor.d.ts +1 -1
  180. package/dist/sidebar/conditional-formatting/StyleEditor.d.ts.map +1 -1
  181. package/dist/sidebar/conditional-formatting/StyleEditor.js +2 -12
  182. package/dist/sidebar/conditional-formatting/StyleEditor.js.map +1 -1
  183. package/dist/sidebar/icons/BarIcon.js +0 -3
  184. package/dist/sidebar/icons/BarIcon.js.map +1 -1
  185. package/dist/sidebar/icons/FormatColumnWhereIcon.js +2 -5
  186. package/dist/sidebar/icons/FormatColumnWhereIcon.js.map +1 -1
  187. package/dist/sidebar/icons/FormatRowWhereIcon.js +2 -5
  188. package/dist/sidebar/icons/FormatRowWhereIcon.js.map +1 -1
  189. package/dist/sidebar/icons/HistogramIcon.js +0 -3
  190. package/dist/sidebar/icons/HistogramIcon.js.map +1 -1
  191. package/dist/sidebar/icons/LineIcon.js +0 -3
  192. package/dist/sidebar/icons/LineIcon.js.map +1 -1
  193. package/dist/sidebar/icons/PieIcon.js +0 -3
  194. package/dist/sidebar/icons/PieIcon.js.map +1 -1
  195. package/dist/sidebar/icons/ScatterIcon.js +0 -3
  196. package/dist/sidebar/icons/ScatterIcon.js.map +1 -1
  197. package/dist/sidebar/icons/index.js.map +1 -1
  198. package/dist/sidebar/index.js.map +1 -1
  199. package/package.json +15 -15
@@ -1 +1 @@
1
- {"version":3,"file":"CustomColumnInput.js","names":["React","PureComponent","classNames","Draggable","FontAwesomeIcon","Button","Tooltip","vsTrash","vsGripper","InputEditor","CustomColumnInput","constructor","props","handleFormulaEditorContentChanged","bind","formulaValue","onChange","eventKey","undefined","replace","INPUT_TYPE","FORMULA","render","name","formula","onDeleteColumn","inputIndex","onTabInEditor","invalid","provided","snapshot","dragging","isDragging","innerRef","draggableProps","event","NAME","target","value","dragHandleProps","language"],"sources":["../../src/sidebar/CustomColumnInput.tsx"],"sourcesContent":["import React, { PureComponent, ReactElement } from 'react';\nimport classNames from 'classnames';\nimport { Draggable } from 'react-beautiful-dnd';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button, Tooltip } from '@deephaven/components';\nimport { vsTrash, vsGripper } from '@deephaven/icons';\nimport InputEditor from './InputEditor';\nimport { CustomColumnKey } from './CustomColumnBuilder';\n\ninterface CustomColumnInputProps {\n eventKey: string;\n inputIndex: number;\n name: string;\n formula: string;\n onChange: (\n eventKey: string,\n inputType: CustomColumnKey,\n value: string\n ) => void;\n onDeleteColumn: (eventKey: string) => void;\n onTabInEditor: (editorIndex: number, shiftKey: boolean) => void;\n invalid: boolean;\n}\nclass CustomColumnInput extends PureComponent<\n CustomColumnInputProps,\n Record<string, never>\n> {\n static INPUT_TYPE = {\n NAME: 'name',\n FORMULA: 'formula',\n };\n\n static defaultProps = {\n name: '',\n inputIndex: 0,\n formula: '',\n onChange: (): void => undefined,\n onDeleteColumn: (): void => undefined,\n onTabInEditor: (): void => undefined,\n invalid: false,\n };\n\n constructor(props: CustomColumnInputProps) {\n super(props);\n this.handleFormulaEditorContentChanged = this.handleFormulaEditorContentChanged.bind(\n this\n );\n }\n\n handleFormulaEditorContentChanged(formulaValue?: string): void {\n const { onChange, eventKey } = this.props;\n if (formulaValue !== undefined && formulaValue !== '') {\n formulaValue.replace(/(\\r\\n|\\n|\\r)/gm, ''); // remove line break\n onChange(\n eventKey,\n CustomColumnInput.INPUT_TYPE.FORMULA as CustomColumnKey,\n formulaValue\n );\n }\n }\n\n render(): ReactElement {\n const {\n eventKey,\n name,\n formula,\n onChange,\n onDeleteColumn,\n inputIndex,\n onTabInEditor,\n invalid,\n } = this.props;\n return (\n <Draggable\n draggableId={eventKey}\n index={inputIndex}\n disableInteractiveElementBlocking\n >\n {(provided, snapshot) => (\n <div\n className={classNames('draggable-container', {\n dragging: snapshot.isDragging,\n })}\n ref={provided.innerRef}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.draggableProps}\n >\n <div className=\"custom-column-input-container\">\n <div className=\"d-flex flex-row pb-3 custom-column-name\">\n <input\n className={classNames('form-control custom-column-input', {\n 'is-invalid': invalid,\n })}\n placeholder=\"Column Name\"\n value={name}\n onChange={event => {\n onChange(\n eventKey,\n CustomColumnInput.INPUT_TYPE.NAME as CustomColumnKey,\n event.target.value\n );\n }}\n />\n <Button\n kind=\"ghost\"\n className=\"ml-1 px-2\"\n onClick={() => {\n onDeleteColumn(eventKey);\n }}\n icon={vsTrash}\n tooltip=\"Delete custom column\"\n />\n\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon px-2 btn-drag-handle\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.dragHandleProps}\n >\n <Tooltip>Drag column to re-order</Tooltip>\n <FontAwesomeIcon icon={vsGripper} />\n </button>\n </div>\n <InputEditor\n editorSettings={{ language: 'deephavenDb' }}\n editorIndex={inputIndex}\n value={formula}\n onContentChanged={this.handleFormulaEditorContentChanged}\n onTab={onTabInEditor}\n invalid={invalid}\n />\n </div>\n <hr />\n </div>\n )}\n </Draggable>\n );\n }\n}\n\nexport default CustomColumnInput;\n"],"mappings":"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"}
1
+ {"version":3,"file":"CustomColumnInput.js","names":["React","PureComponent","classNames","Draggable","FontAwesomeIcon","Button","Tooltip","vsTrash","vsGripper","InputEditor","CustomColumnInput","constructor","props","handleFormulaEditorContentChanged","bind","formulaValue","onChange","eventKey","undefined","replace","INPUT_TYPE","FORMULA","render","name","formula","onDeleteColumn","inputIndex","onTabInEditor","invalid","provided","snapshot","dragging","isDragging","innerRef","draggableProps","event","NAME","target","value","dragHandleProps","language"],"sources":["../../src/sidebar/CustomColumnInput.tsx"],"sourcesContent":["import React, { PureComponent, ReactElement } from 'react';\nimport classNames from 'classnames';\nimport { Draggable } from 'react-beautiful-dnd';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button, Tooltip } from '@deephaven/components';\nimport { vsTrash, vsGripper } from '@deephaven/icons';\nimport InputEditor from './InputEditor';\nimport { CustomColumnKey } from './CustomColumnBuilder';\n\ninterface CustomColumnInputProps {\n eventKey: string;\n inputIndex: number;\n name: string;\n formula: string;\n onChange: (\n eventKey: string,\n inputType: CustomColumnKey,\n value: string\n ) => void;\n onDeleteColumn: (eventKey: string) => void;\n onTabInEditor: (editorIndex: number, shiftKey: boolean) => void;\n invalid: boolean;\n}\nclass CustomColumnInput extends PureComponent<\n CustomColumnInputProps,\n Record<string, never>\n> {\n static INPUT_TYPE = {\n NAME: 'name',\n FORMULA: 'formula',\n };\n\n static defaultProps = {\n name: '',\n inputIndex: 0,\n formula: '',\n onChange: (): void => undefined,\n onDeleteColumn: (): void => undefined,\n onTabInEditor: (): void => undefined,\n invalid: false,\n };\n\n constructor(props: CustomColumnInputProps) {\n super(props);\n this.handleFormulaEditorContentChanged = this.handleFormulaEditorContentChanged.bind(\n this\n );\n }\n\n handleFormulaEditorContentChanged(formulaValue?: string): void {\n const { onChange, eventKey } = this.props;\n if (formulaValue !== undefined && formulaValue !== '') {\n formulaValue.replace(/(\\r\\n|\\n|\\r)/gm, ''); // remove line break\n onChange(\n eventKey,\n CustomColumnInput.INPUT_TYPE.FORMULA as CustomColumnKey,\n formulaValue\n );\n }\n }\n\n render(): ReactElement {\n const {\n eventKey,\n name,\n formula,\n onChange,\n onDeleteColumn,\n inputIndex,\n onTabInEditor,\n invalid,\n } = this.props;\n return (\n <Draggable\n draggableId={eventKey}\n index={inputIndex}\n disableInteractiveElementBlocking\n >\n {(provided, snapshot) => (\n <div\n className={classNames('draggable-container', {\n dragging: snapshot.isDragging,\n })}\n ref={provided.innerRef}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.draggableProps}\n >\n <div className=\"custom-column-input-container\">\n <div className=\"d-flex flex-row pb-3 custom-column-name\">\n <input\n className={classNames('form-control custom-column-input', {\n 'is-invalid': invalid,\n })}\n placeholder=\"Column Name\"\n value={name}\n onChange={event => {\n onChange(\n eventKey,\n CustomColumnInput.INPUT_TYPE.NAME as CustomColumnKey,\n event.target.value\n );\n }}\n />\n <Button\n kind=\"ghost\"\n className=\"ml-1 px-2\"\n onClick={() => {\n onDeleteColumn(eventKey);\n }}\n icon={vsTrash}\n tooltip=\"Delete custom column\"\n />\n\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon px-2 btn-drag-handle\"\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...provided.dragHandleProps}\n >\n <Tooltip>Drag column to re-order</Tooltip>\n <FontAwesomeIcon icon={vsGripper} />\n </button>\n </div>\n <InputEditor\n editorSettings={{ language: 'deephavenDb' }}\n editorIndex={inputIndex}\n value={formula}\n onContentChanged={this.handleFormulaEditorContentChanged}\n onTab={onTabInEditor}\n invalid={invalid}\n />\n </div>\n <hr />\n </div>\n )}\n </Draggable>\n );\n }\n}\n\nexport default CustomColumnInput;\n"],"mappings":"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"}
@@ -1,25 +1,19 @@
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, { Component } from 'react';
8
5
  import * as monaco from 'monaco-editor';
9
6
  import classNames from 'classnames';
10
7
  import "./InputEditor.css";
11
-
12
8
  /**
13
9
  * A monaco editor that looks like an general input
14
10
  */
11
+
15
12
  export default class InputEditor extends Component {
16
13
  constructor(props) {
17
14
  super(props);
18
-
19
15
  _defineProperty(this, "editorContainer", void 0);
20
-
21
16
  _defineProperty(this, "editor", void 0);
22
-
23
17
  this.handleContentChanged = this.handleContentChanged.bind(this);
24
18
  this.handleEditorFocus = this.handleEditorFocus.bind(this);
25
19
  this.handleEditorBlur = this.handleEditorBlur.bind(this);
@@ -31,23 +25,18 @@ export default class InputEditor extends Component {
31
25
  };
32
26
  this.editorContainer = null;
33
27
  }
34
-
35
28
  componentDidMount() {
36
29
  this.initEditor();
37
30
  }
38
-
39
31
  componentWillUnmount() {
40
32
  this.destroyEditor();
41
33
  }
42
-
43
34
  initEditor() {
44
35
  var _this$editor$getModel;
45
-
46
36
  var {
47
37
  value,
48
38
  editorSettings
49
39
  } = this.props;
50
-
51
40
  var inputEditorSettings = _objectSpread({
52
41
  copyWithSyntaxHighlighting: 'false',
53
42
  fixedOverflowWidgets: true,
@@ -77,14 +66,13 @@ export default class InputEditor extends Component {
77
66
  wordWrap: 'on',
78
67
  automaticLayout: true
79
68
  }, editorSettings);
80
-
81
69
  if (!this.editorContainer) {
82
70
  throw new Error('editorContainer is null');
83
71
  }
84
-
85
72
  this.editor = monaco.editor.create(this.editorContainer, inputEditorSettings);
86
- this.editor.layout(); // disable tab to spaces in this editor to improve tab navigation
73
+ this.editor.layout();
87
74
 
75
+ // disable tab to spaces in this editor to improve tab navigation
88
76
  (_this$editor$getModel = this.editor.getModel()) === null || _this$editor$getModel === void 0 ? void 0 : _this$editor$getModel.updateOptions({
89
77
  tabSize: 0
90
78
  });
@@ -92,78 +80,61 @@ export default class InputEditor extends Component {
92
80
  this.editor.onDidFocusEditorText(this.handleEditorFocus);
93
81
  this.editor.onDidBlurEditorText(this.handleEditorBlur);
94
82
  }
95
-
96
83
  destroyEditor() {
97
84
  var _this$editor;
98
-
99
85
  (_this$editor = this.editor) === null || _this$editor === void 0 ? void 0 : _this$editor.dispose();
100
86
  this.editor = undefined;
101
87
  }
102
-
103
88
  handleContentChanged() {
104
89
  var _this$editor2, _this$editor2$getMode;
105
-
106
90
  var {
107
91
  onContentChanged
108
92
  } = this.props;
109
93
  var value = (_this$editor2 = this.editor) === null || _this$editor2 === void 0 ? void 0 : (_this$editor2$getMode = _this$editor2.getModel()) === null || _this$editor2$getMode === void 0 ? void 0 : _this$editor2$getMode.getValue();
110
-
111
94
  if (value !== '' && value !== undefined) {
112
95
  this.setState({
113
96
  isEditorEmpty: value.length === 0
114
97
  });
115
98
  }
116
-
117
99
  onContentChanged(value);
118
100
  }
119
-
120
101
  handleEditorFocus() {
121
102
  this.setState({
122
103
  isEditorFocused: true
123
104
  });
124
105
  }
125
-
126
106
  handleEditorBlur() {
127
107
  var _this$editor3, _this$editor3$getMode;
128
-
129
108
  var value = (_this$editor3 = this.editor) === null || _this$editor3 === void 0 ? void 0 : (_this$editor3$getMode = _this$editor3.getModel()) === null || _this$editor3$getMode === void 0 ? void 0 : _this$editor3$getMode.getValue();
130
-
131
109
  if (value === undefined || value === '') {
132
110
  throw new Error('value is undefined');
133
111
  }
134
-
135
112
  this.setState({
136
113
  isEditorEmpty: value.length === 0,
137
114
  isEditorFocused: false
138
115
  });
139
- } // force editor to focus if clicked
140
-
116
+ }
141
117
 
118
+ // force editor to focus if clicked
142
119
  handleContainerClick() {
143
120
  var _this$editor4;
144
-
145
121
  var {
146
122
  isEditorFocused
147
123
  } = this.state;
148
-
149
124
  if (isEditorFocused) {
150
125
  return;
151
126
  }
152
-
153
127
  (_this$editor4 = this.editor) === null || _this$editor4 === void 0 ? void 0 : _this$editor4.focus();
154
128
  }
155
-
156
129
  handleKeyDown(event) {
157
130
  var {
158
131
  onTab,
159
132
  editorIndex
160
133
  } = this.props;
161
-
162
134
  if (event.key === 'Tab') {
163
135
  onTab(editorIndex, event.shiftKey);
164
136
  }
165
137
  }
166
-
167
138
  render() {
168
139
  var {
169
140
  value,
@@ -190,9 +161,7 @@ export default class InputEditor extends Component {
190
161
  className: "editor-placeholder text-muted"
191
162
  }, "Column Formula"));
192
163
  }
193
-
194
164
  }
195
-
196
165
  _defineProperty(InputEditor, "defaultProps", {
197
166
  value: '',
198
167
  onContentChanged: () => undefined,
@@ -1 +1 @@
1
- {"version":3,"file":"InputEditor.js","names":["React","Component","monaco","classNames","InputEditor","constructor","props","handleContentChanged","bind","handleEditorFocus","handleEditorBlur","handleContainerClick","handleKeyDown","state","isEditorFocused","isEditorEmpty","editorContainer","componentDidMount","initEditor","componentWillUnmount","destroyEditor","value","editorSettings","inputEditorSettings","copyWithSyntaxHighlighting","fixedOverflowWidgets","folding","fontFamily","glyphMargin","language","lineDecorationsWidth","lineNumbers","minimap","enabled","renderLineHighlight","scrollbar","arrowSize","horizontal","horizontalScrollbarSize","scrollBeyondLastLine","padding","top","bottom","tabCompletion","useTabStops","wordWrap","automaticLayout","Error","editor","create","layout","getModel","updateOptions","tabSize","onDidChangeModelContent","onDidFocusEditorText","onDidBlurEditorText","dispose","undefined","onContentChanged","getValue","setState","length","focus","event","onTab","editorIndex","key","shiftKey","render","invalid","focused"],"sources":["../../src/sidebar/InputEditor.tsx"],"sourcesContent":["import React, { Component, ReactElement } from 'react';\nimport * as monaco from 'monaco-editor';\nimport classNames from 'classnames';\nimport './InputEditor.scss';\n\ninterface InputEditorProps {\n value: string;\n onContentChanged: (value?: string) => void;\n editorSettings: Partial<monaco.editor.IStandaloneEditorConstructionOptions>;\n editorIndex: number;\n onTab: (editorIndex: number, shiftKey: boolean) => void;\n invalid: boolean;\n}\n\ninterface InputEditorState {\n isEditorFocused: boolean;\n isEditorEmpty: boolean;\n}\n/**\n * A monaco editor that looks like an general input\n */\n\nexport default class InputEditor extends Component<\n InputEditorProps,\n InputEditorState\n> {\n static defaultProps = {\n value: '',\n onContentChanged: (): void => undefined,\n editorSettings: {},\n editorIndex: 0,\n onTab: (): void => undefined,\n invalid: false,\n };\n\n constructor(props: InputEditorProps) {\n super(props);\n\n this.handleContentChanged = this.handleContentChanged.bind(this);\n this.handleEditorFocus = this.handleEditorFocus.bind(this);\n this.handleEditorBlur = this.handleEditorBlur.bind(this);\n this.handleContainerClick = this.handleContainerClick.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n\n this.state = {\n isEditorFocused: false,\n isEditorEmpty: true,\n };\n this.editorContainer = null;\n }\n\n componentDidMount(): void {\n this.initEditor();\n }\n\n componentWillUnmount(): void {\n this.destroyEditor();\n }\n\n editorContainer: HTMLDivElement | null;\n\n editor?: monaco.editor.IStandaloneCodeEditor;\n\n initEditor(): void {\n const { value, editorSettings } = this.props;\n const inputEditorSettings = {\n copyWithSyntaxHighlighting: 'false',\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language: 'groovyDB',\n lineDecorationsWidth: 8,\n lineNumbers: 'off',\n minimap: { enabled: false },\n renderLineHighlight: 'none',\n scrollbar: {\n arrowSize: 0,\n horizontal: 'hidden',\n horizontalScrollbarSize: 0,\n },\n scrollBeyondLastLine: false,\n padding: {\n top: 6,\n bottom: 6,\n },\n tabCompletion: 'off',\n useTabStops: true,\n value,\n wordWrap: 'on',\n automaticLayout: true,\n ...editorSettings,\n } as monaco.editor.IStandaloneEditorConstructionOptions;\n if (!this.editorContainer) {\n throw new Error('editorContainer is null');\n }\n this.editor = monaco.editor.create(\n this.editorContainer,\n inputEditorSettings\n );\n this.editor.layout();\n\n // disable tab to spaces in this editor to improve tab navigation\n this.editor.getModel()?.updateOptions({ tabSize: 0 });\n\n this.editor.onDidChangeModelContent(this.handleContentChanged);\n this.editor.onDidFocusEditorText(this.handleEditorFocus);\n this.editor.onDidBlurEditorText(this.handleEditorBlur);\n }\n\n destroyEditor(): void {\n this.editor?.dispose();\n this.editor = undefined;\n }\n\n handleContentChanged(): void {\n const { onContentChanged } = this.props;\n const value = this.editor?.getModel()?.getValue();\n if (value !== '' && value !== undefined) {\n this.setState({ isEditorEmpty: value.length === 0 });\n }\n onContentChanged(value);\n }\n\n handleEditorFocus(): void {\n this.setState({ isEditorFocused: true });\n }\n\n handleEditorBlur(): void {\n const value = this.editor?.getModel()?.getValue();\n if (value === undefined || value === '') {\n throw new Error('value is undefined');\n }\n this.setState({\n isEditorEmpty: value.length === 0,\n isEditorFocused: false,\n });\n }\n\n // force editor to focus if clicked\n handleContainerClick(): void {\n const { isEditorFocused } = this.state;\n if (isEditorFocused) {\n return;\n }\n this.editor?.focus();\n }\n\n handleKeyDown(event: React.KeyboardEvent<HTMLDivElement>): void {\n const { onTab, editorIndex } = this.props;\n if (event.key === 'Tab') {\n onTab(editorIndex, event.shiftKey);\n }\n }\n\n render(): ReactElement {\n const { value, invalid } = this.props;\n const { isEditorFocused, isEditorEmpty } = this.state;\n return (\n <div\n className={classNames('input-editor-wrapper', {\n focused: isEditorFocused,\n invalid,\n })}\n onKeyDown={this.handleKeyDown}\n role=\"presentation\"\n onClick={this.handleContainerClick}\n >\n <div\n className=\"editor-container\"\n ref={editorContainer => {\n this.editorContainer = editorContainer;\n }}\n />\n {isEditorEmpty && !value && (\n <div className=\"editor-placeholder text-muted\">Column Formula</div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"InputEditor.js","names":["React","Component","monaco","classNames","InputEditor","constructor","props","handleContentChanged","bind","handleEditorFocus","handleEditorBlur","handleContainerClick","handleKeyDown","state","isEditorFocused","isEditorEmpty","editorContainer","componentDidMount","initEditor","componentWillUnmount","destroyEditor","value","editorSettings","inputEditorSettings","copyWithSyntaxHighlighting","fixedOverflowWidgets","folding","fontFamily","glyphMargin","language","lineDecorationsWidth","lineNumbers","minimap","enabled","renderLineHighlight","scrollbar","arrowSize","horizontal","horizontalScrollbarSize","scrollBeyondLastLine","padding","top","bottom","tabCompletion","useTabStops","wordWrap","automaticLayout","Error","editor","create","layout","getModel","updateOptions","tabSize","onDidChangeModelContent","onDidFocusEditorText","onDidBlurEditorText","dispose","undefined","onContentChanged","getValue","setState","length","focus","event","onTab","editorIndex","key","shiftKey","render","invalid","focused"],"sources":["../../src/sidebar/InputEditor.tsx"],"sourcesContent":["import React, { Component, ReactElement } from 'react';\nimport * as monaco from 'monaco-editor';\nimport classNames from 'classnames';\nimport './InputEditor.scss';\n\ninterface InputEditorProps {\n value: string;\n onContentChanged: (value?: string) => void;\n editorSettings: Partial<monaco.editor.IStandaloneEditorConstructionOptions>;\n editorIndex: number;\n onTab: (editorIndex: number, shiftKey: boolean) => void;\n invalid: boolean;\n}\n\ninterface InputEditorState {\n isEditorFocused: boolean;\n isEditorEmpty: boolean;\n}\n/**\n * A monaco editor that looks like an general input\n */\n\nexport default class InputEditor extends Component<\n InputEditorProps,\n InputEditorState\n> {\n static defaultProps = {\n value: '',\n onContentChanged: (): void => undefined,\n editorSettings: {},\n editorIndex: 0,\n onTab: (): void => undefined,\n invalid: false,\n };\n\n constructor(props: InputEditorProps) {\n super(props);\n\n this.handleContentChanged = this.handleContentChanged.bind(this);\n this.handleEditorFocus = this.handleEditorFocus.bind(this);\n this.handleEditorBlur = this.handleEditorBlur.bind(this);\n this.handleContainerClick = this.handleContainerClick.bind(this);\n this.handleKeyDown = this.handleKeyDown.bind(this);\n\n this.state = {\n isEditorFocused: false,\n isEditorEmpty: true,\n };\n this.editorContainer = null;\n }\n\n componentDidMount(): void {\n this.initEditor();\n }\n\n componentWillUnmount(): void {\n this.destroyEditor();\n }\n\n editorContainer: HTMLDivElement | null;\n\n editor?: monaco.editor.IStandaloneCodeEditor;\n\n initEditor(): void {\n const { value, editorSettings } = this.props;\n const inputEditorSettings = {\n copyWithSyntaxHighlighting: 'false',\n fixedOverflowWidgets: true,\n folding: false,\n fontFamily: 'Fira Mono',\n glyphMargin: false,\n language: 'groovyDB',\n lineDecorationsWidth: 8,\n lineNumbers: 'off',\n minimap: { enabled: false },\n renderLineHighlight: 'none',\n scrollbar: {\n arrowSize: 0,\n horizontal: 'hidden',\n horizontalScrollbarSize: 0,\n },\n scrollBeyondLastLine: false,\n padding: {\n top: 6,\n bottom: 6,\n },\n tabCompletion: 'off',\n useTabStops: true,\n value,\n wordWrap: 'on',\n automaticLayout: true,\n ...editorSettings,\n } as monaco.editor.IStandaloneEditorConstructionOptions;\n if (!this.editorContainer) {\n throw new Error('editorContainer is null');\n }\n this.editor = monaco.editor.create(\n this.editorContainer,\n inputEditorSettings\n );\n this.editor.layout();\n\n // disable tab to spaces in this editor to improve tab navigation\n this.editor.getModel()?.updateOptions({ tabSize: 0 });\n\n this.editor.onDidChangeModelContent(this.handleContentChanged);\n this.editor.onDidFocusEditorText(this.handleEditorFocus);\n this.editor.onDidBlurEditorText(this.handleEditorBlur);\n }\n\n destroyEditor(): void {\n this.editor?.dispose();\n this.editor = undefined;\n }\n\n handleContentChanged(): void {\n const { onContentChanged } = this.props;\n const value = this.editor?.getModel()?.getValue();\n if (value !== '' && value !== undefined) {\n this.setState({ isEditorEmpty: value.length === 0 });\n }\n onContentChanged(value);\n }\n\n handleEditorFocus(): void {\n this.setState({ isEditorFocused: true });\n }\n\n handleEditorBlur(): void {\n const value = this.editor?.getModel()?.getValue();\n if (value === undefined || value === '') {\n throw new Error('value is undefined');\n }\n this.setState({\n isEditorEmpty: value.length === 0,\n isEditorFocused: false,\n });\n }\n\n // force editor to focus if clicked\n handleContainerClick(): void {\n const { isEditorFocused } = this.state;\n if (isEditorFocused) {\n return;\n }\n this.editor?.focus();\n }\n\n handleKeyDown(event: React.KeyboardEvent<HTMLDivElement>): void {\n const { onTab, editorIndex } = this.props;\n if (event.key === 'Tab') {\n onTab(editorIndex, event.shiftKey);\n }\n }\n\n render(): ReactElement {\n const { value, invalid } = this.props;\n const { isEditorFocused, isEditorEmpty } = this.state;\n return (\n <div\n className={classNames('input-editor-wrapper', {\n focused: isEditorFocused,\n invalid,\n })}\n onKeyDown={this.handleKeyDown}\n role=\"presentation\"\n onClick={this.handleContainerClick}\n >\n <div\n className=\"editor-container\"\n ref={editorContainer => {\n this.editorContainer = editorContainer;\n }}\n />\n {isEditorEmpty && !value && (\n <div className=\"editor-placeholder text-muted\">Column Formula</div>\n )}\n </div>\n );\n }\n}\n"],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  var OptionType;
2
-
3
2
  (function (OptionType) {
4
3
  OptionType["ADVANCED_SETTINGS"] = "ADVANCED_SETTINGS";
5
4
  OptionType["AGGREGATIONS"] = "AGGREGATIONS";
@@ -16,6 +15,5 @@ var OptionType;
16
15
  OptionType["CONDITIONAL_FORMATTING_EDIT"] = "CONDITIONAL_FORMATTING_EDIT";
17
16
  OptionType["GOTO"] = "GOTO";
18
17
  })(OptionType || (OptionType = {}));
19
-
20
18
  export default OptionType;
21
19
  //# sourceMappingURL=OptionType.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OptionType.js","names":["OptionType"],"sources":["../../src/sidebar/OptionType.ts"],"sourcesContent":["enum OptionType {\n ADVANCED_SETTINGS = 'ADVANCED_SETTINGS',\n AGGREGATIONS = 'AGGREGATIONS',\n AGGREGATION_EDIT = 'AGGREGATIONS_EDIT',\n CHART_BUILDER = 'CHART_BUILDER',\n CUSTOM_COLUMN_BUILDER = 'CUSTOM_COLUMN_BUILDER',\n QUICK_FILTERS = 'QUICK_FILTERS',\n ROLLUP_ROWS = 'ROLLUP_ROWS',\n SEARCH_BAR = 'SEARCH_BAR',\n SELECT_DISTINCT = 'SELECT_DISTINCT',\n TABLE_EXPORTER = 'TABLE_EXPORTER',\n VISIBILITY_ORDERING_BUILDER = 'VISIBILITY_ORDERING_BUILDER',\n CONDITIONAL_FORMATTING = 'CONDITIONAL_FORMATTING',\n CONDITIONAL_FORMATTING_EDIT = 'CONDITIONAL_FORMATTING_EDIT',\n GOTO = 'GOTO',\n}\n\nexport default OptionType;\n"],"mappings":"IAAKA,U;;WAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;EAAAA,U;GAAAA,U,KAAAA,U;;AAiBL,eAAeA,UAAf"}
1
+ {"version":3,"file":"OptionType.js","names":["OptionType"],"sources":["../../src/sidebar/OptionType.ts"],"sourcesContent":["enum OptionType {\n ADVANCED_SETTINGS = 'ADVANCED_SETTINGS',\n AGGREGATIONS = 'AGGREGATIONS',\n AGGREGATION_EDIT = 'AGGREGATIONS_EDIT',\n CHART_BUILDER = 'CHART_BUILDER',\n CUSTOM_COLUMN_BUILDER = 'CUSTOM_COLUMN_BUILDER',\n QUICK_FILTERS = 'QUICK_FILTERS',\n ROLLUP_ROWS = 'ROLLUP_ROWS',\n SEARCH_BAR = 'SEARCH_BAR',\n SELECT_DISTINCT = 'SELECT_DISTINCT',\n TABLE_EXPORTER = 'TABLE_EXPORTER',\n VISIBILITY_ORDERING_BUILDER = 'VISIBILITY_ORDERING_BUILDER',\n CONDITIONAL_FORMATTING = 'CONDITIONAL_FORMATTING',\n CONDITIONAL_FORMATTING_EDIT = 'CONDITIONAL_FORMATTING_EDIT',\n GOTO = 'GOTO',\n}\n\nexport default OptionType;\n"],"mappings":"IAAKA,UAAU;AAAA,WAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;AAAA,GAAVA,UAAU,KAAVA,UAAU;AAiBf,eAAeA,UAAU"}
@@ -1,7 +1,5 @@
1
1
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
-
3
2
  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; }
4
-
5
3
  /* eslint-disable jsx-a11y/click-events-have-key-events */
6
4
  import React, { Component } from 'react';
7
5
  import classNames from 'classnames';
@@ -19,7 +17,6 @@ var log = Log.module('RollupRows');
19
17
  var DEBOUNCE_SEARCH = 150;
20
18
  var GROUPED_LIST_ID = 'grouped-rollup-rows';
21
19
  var UNGROUPED_LIST_ID = 'ungrouped-rollup-rows';
22
-
23
20
  class RollupRows extends Component {
24
21
  static renderColumn(_ref) {
25
22
  var {
@@ -36,72 +33,54 @@ class RollupRows extends Component {
36
33
  className
37
34
  });
38
35
  }
39
-
40
36
  static addGroupings(currentGroupings, newGroupings) {
41
37
  var index = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : currentGroupings.length;
42
-
43
38
  if (newGroupings == null || newGroupings.length === 0) {
44
39
  return currentGroupings;
45
40
  }
46
-
47
41
  var insertIndex = index;
48
42
  var groupings = currentGroupings.filter((grouping, i) => {
49
43
  if (newGroupings.includes(grouping)) {
50
44
  if (i < insertIndex) {
51
45
  insertIndex -= 1;
52
46
  }
53
-
54
47
  return false;
55
48
  }
56
-
57
49
  return true;
58
50
  });
59
51
  groupings.splice(insertIndex, 0, ...newGroupings);
60
52
  return groupings;
61
53
  }
62
-
63
54
  static isGroupable(column) {
64
55
  return !TableUtils.isDecimalType(column.type);
65
56
  }
66
-
67
57
  constructor(props) {
68
58
  super(props);
69
-
70
59
  _defineProperty(this, "ungroupedList", void 0);
71
-
72
60
  _defineProperty(this, "groupedList", void 0);
73
-
74
61
  _defineProperty(this, "search", debounce(searchFilter => {
75
62
  var columns = this.getSortedUngroupedColumns();
76
63
  var selectedRanges = [];
77
64
  var focusIndex = null;
78
-
79
65
  for (var i = 0; i < columns.length; i += 1) {
80
66
  var column = columns[i];
81
-
82
67
  if (column.name.toLowerCase().includes(searchFilter.toLowerCase())) {
83
68
  if (focusIndex == null) {
84
69
  focusIndex = i;
85
70
  }
86
-
87
71
  selectedRanges.push([i, i]);
88
72
  }
89
73
  }
90
-
91
74
  assertNotNull(focusIndex);
92
75
  this.setState({
93
76
  ungroupedSelectedRanges: selectedRanges
94
77
  });
95
-
96
78
  if (selectedRanges.length > 0 && this.ungroupedList.current) {
97
79
  this.ungroupedList.current.scrollToItem(focusIndex);
98
80
  }
99
81
  }, DEBOUNCE_SEARCH));
100
-
101
82
  _defineProperty(this, "getCachedUngroupedColumns", memoize((columns, groupedColumns) => columns.filter(column => RollupRows.isGroupable(column) && groupedColumns.find(name => name === column.name) == null)));
102
-
103
83
  _defineProperty(this, "getCachedSortedColumns", memoize((columns, sort) => sort == null ? [...columns] : TableUtils.sortColumns(columns, sort === RollupRows.SORT.ASCENDING)));
104
-
105
84
  this.handleDeleteClicked = this.handleDeleteClicked.bind(this);
106
85
  this.handleSearchChange = this.handleSearchChange.bind(this);
107
86
  this.handleUngroupedSelect = this.handleUngroupedSelect.bind(this);
@@ -135,7 +114,6 @@ class RollupRows extends Component {
135
114
  sort: null
136
115
  };
137
116
  }
138
-
139
117
  componentDidUpdate(prevProps, prevState) {
140
118
  var {
141
119
  config
@@ -145,7 +123,6 @@ class RollupRows extends Component {
145
123
  showConstituents,
146
124
  showNonAggregatedColumns
147
125
  } = this.state;
148
-
149
126
  if (config !== prevProps.config) {
150
127
  this.updateFromConfig();
151
128
  } else if (columns !== prevState.columns || showConstituents !== prevState.showConstituents || showNonAggregatedColumns !== prevState.showNonAggregatedColumns) {
@@ -154,26 +131,21 @@ class RollupRows extends Component {
154
131
  }
155
132
  }
156
133
  }
157
-
158
134
  componentWillUnmount() {
159
135
  this.search.cancel();
160
136
  }
161
-
162
137
  handleSearchChange(event) {
163
138
  var searchFilter = event.target.value;
164
139
  this.setState({
165
140
  searchFilter
166
141
  });
167
-
168
142
  if (!searchFilter) {
169
143
  this.search.cancel();
170
144
  this.resetSelection();
171
145
  return;
172
146
  }
173
-
174
147
  this.search(searchFilter);
175
148
  }
176
-
177
149
  handleSortAscending() {
178
150
  this.setState(_ref2 => {
179
151
  var {
@@ -184,7 +156,6 @@ class RollupRows extends Component {
184
156
  };
185
157
  });
186
158
  }
187
-
188
159
  handleSortDescending() {
189
160
  this.setState(_ref3 => {
190
161
  var {
@@ -195,14 +166,12 @@ class RollupRows extends Component {
195
166
  };
196
167
  });
197
168
  }
198
-
199
169
  resetSelection() {
200
170
  this.setState({
201
171
  ungroupedSelectedRanges: [],
202
172
  groupedSelectedRanges: []
203
173
  });
204
174
  }
205
-
206
175
  handleDragStart(e) {
207
176
  log.debug('handleDragStart', e);
208
177
  document.documentElement.classList.add('drag-pointer-events-none');
@@ -210,7 +179,6 @@ class RollupRows extends Component {
210
179
  dragSource: e.source
211
180
  });
212
181
  }
213
-
214
182
  handleDragEnd(e) {
215
183
  log.debug('handleDragEnd', e);
216
184
  document.documentElement.classList.remove('drag-pointer-events-none');
@@ -221,13 +189,12 @@ class RollupRows extends Component {
221
189
  destination,
222
190
  source
223
191
  } = e;
224
-
225
192
  if (destination == null || source == null) {
226
193
  return;
227
- } // We don't allow dragging within the ungrouped list, so if we're dragging into the ungrouped list,
228
- // it must have came from the grouped list. Remove those grouped columns.
229
-
194
+ }
230
195
 
196
+ // We don't allow dragging within the ungrouped list, so if we're dragging into the ungrouped list,
197
+ // it must have came from the grouped list. Remove those grouped columns.
231
198
  if (destination.droppableId === UNGROUPED_LIST_ID) {
232
199
  this.setState(_ref4 => {
233
200
  var {
@@ -243,19 +210,17 @@ class RollupRows extends Component {
243
210
  };
244
211
  });
245
212
  return;
246
- } // Otherwise, it must be dropping into the grouped list, so we just need to check the source
247
-
213
+ }
248
214
 
215
+ // Otherwise, it must be dropping into the grouped list, so we just need to check the source
249
216
  var isSameList = source.droppableId === GROUPED_LIST_ID;
250
217
  var destinationIndex = destination.index;
251
-
252
218
  if (isSameList && source.index < destination.index) {
253
219
  // react-beautiful-dnd adjusts the index when dragging within a list already, however that only supports single selection
254
220
  // We need to change it back to the index we actually want it to drop at before adjusting for the removed source index, as
255
221
  // we adjust the index based on all the selected ranges, not just the source.index.
256
222
  destinationIndex += 1;
257
223
  }
258
-
259
224
  this.setState(_ref5 => {
260
225
  var {
261
226
  columns,
@@ -265,8 +230,9 @@ class RollupRows extends Component {
265
230
  var newColumns = [...columns];
266
231
  var sourceItems = isSameList ? newColumns : this.getSortedUngroupedColumns().map(c => c.name);
267
232
  var sourceRanges = isSameList ? groupedSelectedRanges : ungroupedSelectedRanges;
268
- var draggedItems = DragUtils.reorder(sourceItems, sourceRanges, newColumns, destinationIndex); // Select the newly dropped items
233
+ var draggedItems = DragUtils.reorder(sourceItems, sourceRanges, newColumns, destinationIndex);
269
234
 
235
+ // Select the newly dropped items
270
236
  var insertIndex = isSameList ? DragUtils.adjustDestinationIndex(destinationIndex, groupedSelectedRanges) : destinationIndex;
271
237
  var newSelectedRanges = [[insertIndex, insertIndex + draggedItems.length - 1]];
272
238
  return {
@@ -277,7 +243,6 @@ class RollupRows extends Component {
277
243
  });
278
244
  this.resetSelection();
279
245
  }
280
-
281
246
  handleUngroupedSelect(itemIndex) {
282
247
  log.debug('handleUngroupedSelect');
283
248
  this.setState(_ref6 => {
@@ -291,43 +256,36 @@ class RollupRows extends Component {
291
256
  };
292
257
  });
293
258
  }
294
-
295
259
  handleUngroupedSelectionChange(ungroupedSelectedRanges) {
296
260
  log.debug2('handleUngroupedSelectionChange', ungroupedSelectedRanges);
297
261
  this.setState(_ref7 => {
298
262
  var {
299
263
  ungroupedSelectedRanges: stateUngroupedSelectedRanges
300
264
  } = _ref7;
301
-
302
265
  if (ungroupedSelectedRanges === stateUngroupedSelectedRanges) {
303
266
  return null;
304
267
  }
305
-
306
268
  return {
307
269
  ungroupedSelectedRanges,
308
270
  groupedSelectedRanges: []
309
271
  };
310
272
  });
311
273
  }
312
-
313
274
  handleGroupedSelectionChange(groupedSelectedRanges) {
314
275
  log.debug2('handleGroupedSelectedRanges', groupedSelectedRanges);
315
276
  this.setState(_ref8 => {
316
277
  var {
317
278
  groupedSelectedRanges: stateGroupedSelectedRanges
318
279
  } = _ref8;
319
-
320
280
  if (groupedSelectedRanges === stateGroupedSelectedRanges) {
321
281
  return null;
322
282
  }
323
-
324
283
  return {
325
284
  groupedSelectedRanges,
326
285
  ungroupedSelectedRanges: []
327
286
  };
328
287
  });
329
288
  }
330
-
331
289
  handleDeleteClicked(index) {
332
290
  this.setState(_ref9 => {
333
291
  var {
@@ -340,7 +298,6 @@ class RollupRows extends Component {
340
298
  };
341
299
  });
342
300
  }
343
-
344
301
  handleShowConstituentsChange() {
345
302
  this.setState(_ref10 => {
346
303
  var {
@@ -351,7 +308,6 @@ class RollupRows extends Component {
351
308
  };
352
309
  });
353
310
  }
354
-
355
311
  handleShowNonAggregatedColumnsChange() {
356
312
  this.setState(_ref11 => {
357
313
  var {
@@ -362,7 +318,6 @@ class RollupRows extends Component {
362
318
  };
363
319
  });
364
320
  }
365
-
366
321
  updateFromConfig() {
367
322
  var {
368
323
  config
@@ -378,7 +333,6 @@ class RollupRows extends Component {
378
333
  showNonAggregatedColumns
379
334
  });
380
335
  }
381
-
382
336
  sendChange() {
383
337
  var {
384
338
  onChange
@@ -394,7 +348,6 @@ class RollupRows extends Component {
394
348
  showNonAggregatedColumns
395
349
  });
396
350
  }
397
-
398
351
  getUngroupedColumns() {
399
352
  var {
400
353
  model
@@ -407,7 +360,6 @@ class RollupRows extends Component {
407
360
  } = model;
408
361
  return this.getCachedUngroupedColumns(originalColumns, columns);
409
362
  }
410
-
411
363
  getSortedUngroupedColumns() {
412
364
  var {
413
365
  sort
@@ -415,7 +367,6 @@ class RollupRows extends Component {
415
367
  var columns = this.getUngroupedColumns();
416
368
  return this.getCachedSortedColumns(columns, sort);
417
369
  }
418
-
419
370
  renderGroupedItem(_ref12) {
420
371
  var {
421
372
  item,
@@ -439,7 +390,6 @@ class RollupRows extends Component {
439
390
  icon: vsTrash
440
391
  })));
441
392
  }
442
-
443
393
  render() {
444
394
  var {
445
395
  columns,
@@ -453,11 +403,9 @@ class RollupRows extends Component {
453
403
  } = this.state;
454
404
  var ungroupedColumns = this.getSortedUngroupedColumns();
455
405
  var groupListHeight = columns.length * DraggableItemList.DEFAULT_ROW_HEIGHT;
456
-
457
406
  if ((dragSource === null || dragSource === void 0 ? void 0 : dragSource.droppableId) === UNGROUPED_LIST_ID) {
458
407
  groupListHeight += DraggableItemList.DEFAULT_ROW_HEIGHT;
459
408
  }
460
-
461
409
  var ungroupMaxListHeight = ungroupedColumns.length * DraggableItemList.DEFAULT_ROW_HEIGHT + 10;
462
410
  var ungroupMinListHeight = Math.min(3 * DraggableItemList.DEFAULT_ROW_HEIGHT, ungroupMaxListHeight);
463
411
  return /*#__PURE__*/React.createElement("div", {
@@ -481,8 +429,8 @@ class RollupRows extends Component {
481
429
  'is-dragging-over': snapshot.isDraggingOver,
482
430
  'is-dropping': snapshot.draggingOverWith
483
431
  }),
484
- ref: provided.innerRef // eslint-disable-next-line react/jsx-props-no-spreading
485
-
432
+ ref: provided.innerRef
433
+ // eslint-disable-next-line react/jsx-props-no-spreading
486
434
  }, provided.droppableProps), "Create rollup by dragging columns here, from the available columns list below.")), columns.length > 0 && /*#__PURE__*/React.createElement(DraggableItemList, {
487
435
  draggingItemClassName: "rollup-rows-dragging-grouped-item",
488
436
  draggablePrefix: GROUPED_LIST_ID,
@@ -556,18 +504,14 @@ class RollupRows extends Component {
556
504
  onChange: this.handleShowNonAggregatedColumnsChange
557
505
  }, "Non-Aggregated Columns")))));
558
506
  }
559
-
560
507
  }
561
-
562
508
  _defineProperty(RollupRows, "SORT", Object.freeze({
563
509
  ASCENDING: 'ASC',
564
510
  DESCENDING: 'DESC'
565
511
  }));
566
-
567
512
  _defineProperty(RollupRows, "defaultProps", {
568
513
  config: null,
569
514
  onChange: () => undefined
570
515
  });
571
-
572
516
  export default RollupRows;
573
517
  //# sourceMappingURL=RollupRows.js.map