@deephaven/dashboard-core-plugins 0.5.2-matplotlib.2 → 0.6.1-fixed-deps.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (176) hide show
  1. package/dist/ChartPlugin.js +25 -22
  2. package/dist/ChartPlugin.js.map +1 -1
  3. package/dist/ConsolePlugin.d.ts.map +1 -1
  4. package/dist/ConsolePlugin.js +130 -134
  5. package/dist/ConsolePlugin.js.map +1 -1
  6. package/dist/FilterPlugin.d.ts.map +1 -1
  7. package/dist/FilterPlugin.js +114 -116
  8. package/dist/FilterPlugin.js.map +1 -1
  9. package/dist/GridPlugin.js +29 -26
  10. package/dist/GridPlugin.js.map +1 -1
  11. package/dist/LinkerPlugin.js +7 -5
  12. package/dist/LinkerPlugin.js.map +1 -1
  13. package/dist/MarkdownPlugin.js +44 -45
  14. package/dist/MarkdownPlugin.js.map +1 -1
  15. package/dist/PandasPlugin.d.ts +5 -2
  16. package/dist/PandasPlugin.d.ts.map +1 -1
  17. package/dist/PandasPlugin.js +12 -12
  18. package/dist/PandasPlugin.js.map +1 -1
  19. package/dist/controls/ControlType.d.ts +1 -0
  20. package/dist/controls/ControlType.d.ts.map +1 -1
  21. package/dist/controls/ControlType.js +3 -5
  22. package/dist/controls/ControlType.js.map +1 -1
  23. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +6 -0
  24. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  25. package/dist/controls/dropdown-filter/DropdownFilter.js +356 -394
  26. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  27. package/dist/controls/input-filter/InputFilter.d.ts +6 -0
  28. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
  29. package/dist/controls/input-filter/InputFilter.js +256 -270
  30. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  31. package/dist/controls/markdown/MarkdownContainer.js +18 -56
  32. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  33. package/dist/controls/markdown/MarkdownEditor.js +36 -75
  34. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  35. package/dist/controls/markdown/MarkdownStartPage.js +93 -133
  36. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  37. package/dist/controls/markdown/MarkdownUtils.js +17 -32
  38. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  39. package/dist/events/ChartEvent.js +1 -5
  40. package/dist/events/ChartEvent.js.map +1 -1
  41. package/dist/events/ConsoleEvent.js +1 -5
  42. package/dist/events/ConsoleEvent.js.map +1 -1
  43. package/dist/events/ControlEvent.js +1 -5
  44. package/dist/events/ControlEvent.js.map +1 -1
  45. package/dist/events/InputFilterEvent.d.ts +2 -0
  46. package/dist/events/InputFilterEvent.d.ts.map +1 -1
  47. package/dist/events/InputFilterEvent.js +3 -5
  48. package/dist/events/InputFilterEvent.js.map +1 -1
  49. package/dist/events/IrisGridEvent.js +1 -5
  50. package/dist/events/IrisGridEvent.js.map +1 -1
  51. package/dist/events/NotebookEvent.js +1 -5
  52. package/dist/events/NotebookEvent.js.map +1 -1
  53. package/dist/events/PQEvent.js +1 -5
  54. package/dist/events/PQEvent.js.map +1 -1
  55. package/dist/events/PandasEvent.js +1 -5
  56. package/dist/events/PandasEvent.js.map +1 -1
  57. package/dist/events/TabEvent.js +1 -5
  58. package/dist/events/TabEvent.js.map +1 -1
  59. package/dist/events/index.d.ts +0 -1
  60. package/dist/events/index.js +9 -10
  61. package/dist/events/index.js.map +1 -1
  62. package/dist/index.d.ts +0 -1
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +10 -11
  65. package/dist/index.js.map +1 -1
  66. package/dist/linker/Linker.d.ts +1 -1
  67. package/dist/linker/Linker.js +594 -606
  68. package/dist/linker/Linker.js.map +1 -1
  69. package/dist/linker/LinkerLink.js +92 -126
  70. package/dist/linker/LinkerLink.js.map +1 -1
  71. package/dist/linker/LinkerOverlayContent.js +162 -220
  72. package/dist/linker/LinkerOverlayContent.js.map +1 -1
  73. package/dist/linker/LinkerUtils.js +105 -114
  74. package/dist/linker/LinkerUtils.js.map +1 -1
  75. package/dist/panels/ChartColumnSelectorOverlay.js +19 -25
  76. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  77. package/dist/panels/ChartFilterOverlay.js +18 -24
  78. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  79. package/dist/panels/ChartPanel.d.ts +3 -0
  80. package/dist/panels/ChartPanel.d.ts.map +1 -1
  81. package/dist/panels/ChartPanel.js +839 -873
  82. package/dist/panels/ChartPanel.js.map +1 -1
  83. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
  84. package/dist/panels/CommandHistoryPanel.js +160 -186
  85. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  86. package/dist/panels/ConsolePanel.d.ts +1 -1
  87. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  88. package/dist/panels/ConsolePanel.js +327 -374
  89. package/dist/panels/ConsolePanel.js.map +1 -1
  90. package/dist/panels/DropdownFilterPanel.d.ts +6 -0
  91. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
  92. package/dist/panels/DropdownFilterPanel.js +537 -566
  93. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  94. package/dist/panels/FileExplorerPanel.d.ts +6 -1
  95. package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
  96. package/dist/panels/FileExplorerPanel.js +208 -210
  97. package/dist/panels/FileExplorerPanel.js.map +1 -1
  98. package/dist/panels/FilterSetManager.css +111 -0
  99. package/dist/panels/FilterSetManager.css.map +1 -0
  100. package/dist/panels/FilterSetManager.d.ts +66 -0
  101. package/dist/panels/FilterSetManager.d.ts.map +1 -0
  102. package/dist/panels/FilterSetManager.js +732 -0
  103. package/dist/panels/FilterSetManager.js.map +1 -0
  104. package/dist/panels/FilterSetManagerPanel.css +33 -0
  105. package/dist/panels/FilterSetManagerPanel.css.map +1 -0
  106. package/dist/panels/FilterSetManagerPanel.d.ts +69 -0
  107. package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -0
  108. package/dist/panels/FilterSetManagerPanel.js +383 -0
  109. package/dist/panels/FilterSetManagerPanel.js.map +1 -0
  110. package/dist/panels/InputFilterPanel.d.ts +7 -0
  111. package/dist/panels/InputFilterPanel.d.ts.map +1 -1
  112. package/dist/panels/InputFilterPanel.js +198 -206
  113. package/dist/panels/InputFilterPanel.js.map +1 -1
  114. package/dist/panels/IrisGridPanel.d.ts +11 -3
  115. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  116. package/dist/panels/IrisGridPanel.js +779 -771
  117. package/dist/panels/IrisGridPanel.js.map +1 -1
  118. package/dist/panels/LogPanel.js +80 -116
  119. package/dist/panels/LogPanel.js.map +1 -1
  120. package/dist/panels/MarkdownPanel.js +165 -199
  121. package/dist/panels/MarkdownPanel.js.map +1 -1
  122. package/dist/panels/NotebookPanel.d.ts +3 -1
  123. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  124. package/dist/panels/NotebookPanel.js +870 -862
  125. package/dist/panels/NotebookPanel.js.map +1 -1
  126. package/dist/panels/PandasPanel.js +56 -90
  127. package/dist/panels/PandasPanel.js.map +1 -1
  128. package/dist/panels/Panel.js +282 -313
  129. package/dist/panels/Panel.js.map +1 -1
  130. package/dist/panels/PanelContextMenu.js +107 -158
  131. package/dist/panels/PanelContextMenu.js.map +1 -1
  132. package/dist/panels/RenameDialog.js +144 -172
  133. package/dist/panels/RenameDialog.js.map +1 -1
  134. package/dist/panels/Shortcuts.js +1 -1
  135. package/dist/panels/Shortcuts.js.map +1 -1
  136. package/dist/panels/WidgetPanel.js +133 -163
  137. package/dist/panels/WidgetPanel.js.map +1 -1
  138. package/dist/panels/WidgetPanelTooltip.js +7 -5
  139. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  140. package/dist/panels/index.d.ts +1 -1
  141. package/dist/panels/index.js +16 -16
  142. package/dist/panels/index.js.map +1 -1
  143. package/dist/prop-types/CommonPropTypes.js +4 -8
  144. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  145. package/dist/prop-types/UIPropTypes.js +6 -6
  146. package/dist/prop-types/UIPropTypes.js.map +1 -1
  147. package/dist/prop-types/index.js +2 -2
  148. package/dist/prop-types/index.js.map +1 -1
  149. package/dist/redux/actions.d.ts +1 -0
  150. package/dist/redux/actions.d.ts.map +1 -1
  151. package/dist/redux/actions.js +33 -54
  152. package/dist/redux/actions.js.map +1 -1
  153. package/dist/redux/index.js +6 -21
  154. package/dist/redux/index.js.map +1 -1
  155. package/dist/redux/reducers/index.js +2 -2
  156. package/dist/redux/reducers/index.js.map +1 -1
  157. package/dist/redux/reducers/sessionWrapper.js +1 -1
  158. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  159. package/dist/redux/selectors.d.ts +1 -0
  160. package/dist/redux/selectors.d.ts.map +1 -1
  161. package/dist/redux/selectors.js +22 -18
  162. package/dist/redux/selectors.js.map +1 -1
  163. package/dist/tsconfig.tsbuildinfo +1 -1
  164. package/package.json +27 -54
  165. package/dist/MatPlotLibPlugin.d.ts +0 -5
  166. package/dist/MatPlotLibPlugin.d.ts.map +0 -1
  167. package/dist/MatPlotLibPlugin.js +0 -45
  168. package/dist/MatPlotLibPlugin.js.map +0 -1
  169. package/dist/events/MatPlotLibEvent.d.ts +0 -5
  170. package/dist/events/MatPlotLibEvent.d.ts.map +0 -1
  171. package/dist/events/MatPlotLibEvent.js +0 -12
  172. package/dist/events/MatPlotLibEvent.js.map +0 -1
  173. package/dist/panels/MatPlotLibPanel.d.ts +0 -22
  174. package/dist/panels/MatPlotLibPanel.d.ts.map +0 -1
  175. package/dist/panels/MatPlotLibPanel.js +0 -123
  176. package/dist/panels/MatPlotLibPanel.js.map +0 -1
@@ -2,19 +2,13 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
2
2
 
3
3
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
4
4
 
5
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
-
7
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
8
-
9
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
10
-
11
5
  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; }
12
6
 
13
7
  import shortid from 'shortid';
14
8
  import { LayoutUtils } from '@deephaven/dashboard';
15
9
  import { TableUtils } from '@deephaven/iris-grid';
16
10
  import Log from '@deephaven/log';
17
- import { ChartPanel, IrisGridPanel, DropdownFilterPanel } from '../panels';
11
+ import { ChartPanel, IrisGridPanel, DropdownFilterPanel } from "../panels/index.js";
18
12
  export function isLinkableFromPanel(panel) {
19
13
  var p = panel;
20
14
  return typeof p.getCoordinateForColumn === 'function';
@@ -28,127 +22,124 @@ var log = Log.module('LinkerUtils');
28
22
  * Collection of utility functions for use with the Linker
29
23
  */
30
24
 
31
- var LinkerUtils = /*#__PURE__*/function () {
32
- function LinkerUtils() {
33
- _classCallCheck(this, LinkerUtils);
34
- }
25
+ class LinkerUtils {
26
+ /**
27
+ * Retrieve the type of link given parameters.
28
+ * @param start The link start
29
+ * @param end The link end
30
+ * @param isolatedLinkerPanelId Whether there's an isolated linker
31
+ * @returns The type of link, or invalid if there's an error
32
+ */
33
+ static getLinkType(start, end, isolatedLinkerPanelId) {
34
+ var _LinkerUtils$ALLOWED_;
35
+
36
+ // Panel compatibility checks:
37
+ // Link ends should point to different non-null panelIds
38
+ // For isolated linker one of the panels should match isolated panel id
39
+ if ((start === null || start === void 0 ? void 0 : start.panelId) == null || (end === null || end === void 0 ? void 0 : end.panelId) == null || start.panelId === end.panelId || isolatedLinkerPanelId != null && isolatedLinkerPanelId !== start.panelId && isolatedLinkerPanelId !== end.panelId) {
40
+ log.debug2('Incompatible panel ids', start, end, isolatedLinkerPanelId);
41
+ return 'invalid';
42
+ }
35
43
 
36
- _createClass(LinkerUtils, null, [{
37
- key: "getLinkType",
38
- value:
39
- /**
40
- * Retrieve the type of link given parameters.
41
- * @param start The link start
42
- * @param end The link end
43
- * @param isolatedLinkerPanelId Whether there's an isolated linker
44
- * @returns The type of link, or invalid if there's an error
45
- */
46
- function getLinkType(start, end, isolatedLinkerPanelId) {
47
- var _LinkerUtils$ALLOWED_;
48
-
49
- // Panel compatibility checks:
50
- // Link ends should point to different non-null panelIds
51
- // For isolated linker one of the panels should match isolated panel id
52
- if ((start === null || start === void 0 ? void 0 : start.panelId) == null || (end === null || end === void 0 ? void 0 : end.panelId) == null || start.panelId === end.panelId || isolatedLinkerPanelId != null && isolatedLinkerPanelId !== start.panelId && isolatedLinkerPanelId !== end.panelId) {
53
- log.debug2('Incompatible panel ids', start, end, isolatedLinkerPanelId);
54
- return 'invalid';
55
- }
44
+ if (start.panelComponent == null || end.panelComponent == null) {
45
+ log.error('PanelComponent should not be null', start, end);
46
+ return 'invalid';
47
+ }
56
48
 
57
- if (start.panelComponent == null || end.panelComponent == null) {
58
- log.error('PanelComponent should not be null', start, end);
59
- return 'invalid';
60
- }
49
+ var isCompatibleComponent = (_LinkerUtils$ALLOWED_ = LinkerUtils.ALLOWED_LINKS.get(start.panelComponent)) === null || _LinkerUtils$ALLOWED_ === void 0 ? void 0 : _LinkerUtils$ALLOWED_.includes(end.panelComponent);
61
50
 
62
- var isCompatibleComponent = (_LinkerUtils$ALLOWED_ = LinkerUtils.ALLOWED_LINKS.get(start.panelComponent)) === null || _LinkerUtils$ALLOWED_ === void 0 ? void 0 : _LinkerUtils$ALLOWED_.includes(end.panelComponent);
51
+ if (!isCompatibleComponent) {
52
+ log.debug2('Incompatible panel components', start, end);
53
+ return 'invalid';
54
+ } // Check column type compatibility
63
55
 
64
- if (!isCompatibleComponent) {
65
- log.debug2('Incompatible panel components', start, end);
66
- return 'invalid';
67
- } // Check column type compatibility
68
56
 
57
+ var {
58
+ columnType: startColumnType
59
+ } = start;
60
+ var {
61
+ columnType: endColumnType
62
+ } = end; // Null columnType in ending link point allows linking to any type
69
63
 
70
- var startColumnType = start.columnType;
71
- var endColumnType = end.columnType; // Null columnType in ending link point allows linking to any type
64
+ var isCompatibleType = endColumnType === null || TableUtils.isCompatibleType(startColumnType, endColumnType);
72
65
 
73
- var isCompatibleType = endColumnType === null || TableUtils.isCompatibleType(startColumnType, endColumnType);
66
+ if (!isCompatibleType) {
67
+ log.debug2('Incompatible type', startColumnType, endColumnType);
68
+ return 'invalid';
69
+ } // If all checks pass, link type is determined by the target panel component
74
70
 
75
- if (!isCompatibleType) {
76
- log.debug2('Incompatible type', startColumnType, endColumnType);
77
- return 'invalid';
78
- } // If all checks pass, link type is determined by the target panel component
79
71
 
72
+ switch (end.panelComponent) {
73
+ case LayoutUtils.getComponentName(ChartPanel):
74
+ case LayoutUtils.getComponentName(IrisGridPanel):
75
+ return 'tableLink';
80
76
 
81
- switch (end.panelComponent) {
82
- case LayoutUtils.getComponentName(ChartPanel):
83
- case LayoutUtils.getComponentName(IrisGridPanel):
84
- return 'tableLink';
77
+ case LayoutUtils.getComponentName(DropdownFilterPanel):
78
+ return 'filterSource';
85
79
 
86
- case LayoutUtils.getComponentName(DropdownFilterPanel):
87
- return 'filterSource';
80
+ default:
81
+ }
88
82
 
89
- default:
83
+ log.debug2('Incompatible target panel component', end.panelComponent);
84
+ return 'invalid';
85
+ }
86
+ /**
87
+ * Find column matching the link point
88
+ * @param columns Columns to search in
89
+ * @param linkPoint Link point to find column for
90
+ * @param linkPoint.columnName Column name to find
91
+ * @param linkPoint.columnType Column type to find
92
+ * @returns Column matching the link point, undefined if not found
93
+ */
94
+
95
+
96
+ static findColumn(columns, _ref) {
97
+ var {
98
+ columnName,
99
+ columnType
100
+ } = _ref;
101
+ return columns.find((_ref2) => {
102
+ var {
103
+ name,
104
+ type
105
+ } = _ref2;
106
+ return name === columnName && type === columnType;
107
+ });
108
+ }
109
+ /**
110
+ * Clone links for a given panel id
111
+ * @param links Original links array
112
+ * @param panelId Original panel id
113
+ * @param cloneId Cloned panel id
114
+ * @returns Cloned links array or empty array if no new links added
115
+ */
116
+
117
+
118
+ static cloneLinksForPanel(links, panelId, cloneId) {
119
+ var clonedLinks = [];
120
+ links.forEach(link => {
121
+ var _link$end;
122
+
123
+ if (link.start.panelId === panelId && link.type !== 'filterSource') {
124
+ clonedLinks.push(_objectSpread(_objectSpread({}, link), {}, {
125
+ id: shortid.generate(),
126
+ start: _objectSpread(_objectSpread({}, link.start), {}, {
127
+ panelId: cloneId
128
+ })
129
+ }));
130
+ } else if (((_link$end = link.end) === null || _link$end === void 0 ? void 0 : _link$end.panelId) === panelId) {
131
+ clonedLinks.push(_objectSpread(_objectSpread({}, link), {}, {
132
+ id: shortid.generate(),
133
+ end: _objectSpread(_objectSpread({}, link.end), {}, {
134
+ panelId: cloneId
135
+ })
136
+ }));
90
137
  }
138
+ });
139
+ return clonedLinks;
140
+ }
91
141
 
92
- log.debug2('Incompatible target panel component', end.panelComponent);
93
- return 'invalid';
94
- }
95
- /**
96
- * Find column matching the link point
97
- * @param columns Columns to search in
98
- * @param linkPoint Link point to find column for
99
- * @param linkPoint.columnName Column name to find
100
- * @param linkPoint.columnType Column type to find
101
- * @returns Column matching the link point, undefined if not found
102
- */
103
-
104
- }, {
105
- key: "findColumn",
106
- value: function findColumn(columns, _ref) {
107
- var columnName = _ref.columnName,
108
- columnType = _ref.columnType;
109
- return columns.find(function (_ref2) {
110
- var name = _ref2.name,
111
- type = _ref2.type;
112
- return name === columnName && type === columnType;
113
- });
114
- }
115
- /**
116
- * Clone links for a given panel id
117
- * @param links Original links array
118
- * @param panelId Original panel id
119
- * @param cloneId Cloned panel id
120
- * @returns Cloned links array or empty array if no new links added
121
- */
122
-
123
- }, {
124
- key: "cloneLinksForPanel",
125
- value: function cloneLinksForPanel(links, panelId, cloneId) {
126
- var clonedLinks = [];
127
- links.forEach(function (link) {
128
- var _link$end;
129
-
130
- if (link.start.panelId === panelId && link.type !== 'filterSource') {
131
- clonedLinks.push(_objectSpread(_objectSpread({}, link), {}, {
132
- id: shortid.generate(),
133
- start: _objectSpread(_objectSpread({}, link.start), {}, {
134
- panelId: cloneId
135
- })
136
- }));
137
- } else if (((_link$end = link.end) === null || _link$end === void 0 ? void 0 : _link$end.panelId) === panelId) {
138
- clonedLinks.push(_objectSpread(_objectSpread({}, link), {}, {
139
- id: shortid.generate(),
140
- end: _objectSpread(_objectSpread({}, link.end), {}, {
141
- panelId: cloneId
142
- })
143
- }));
144
- }
145
- });
146
- return clonedLinks;
147
- }
148
- }]);
149
-
150
- return LinkerUtils;
151
- }();
142
+ }
152
143
 
153
144
  _defineProperty(LinkerUtils, "ALLOWED_LINKS", new Map([[LayoutUtils.getComponentName(IrisGridPanel), [LayoutUtils.getComponentName(IrisGridPanel), LayoutUtils.getComponentName(ChartPanel), LayoutUtils.getComponentName(DropdownFilterPanel)]]]));
154
145
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/linker/LinkerUtils.tsx"],"names":["shortid","LayoutUtils","TableUtils","Log","ChartPanel","IrisGridPanel","DropdownFilterPanel","isLinkableFromPanel","panel","p","getCoordinateForColumn","isLinkablePanel","setFilterMap","unsetFilterValue","log","module","LinkerUtils","start","end","isolatedLinkerPanelId","panelId","debug2","panelComponent","error","isCompatibleComponent","ALLOWED_LINKS","get","includes","startColumnType","columnType","endColumnType","isCompatibleType","getComponentName","columns","columnName","find","name","type","links","cloneId","clonedLinks","forEach","link","push","id","generate","Map"],"mappings":"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","sourcesContent":["import shortid from 'shortid';\nimport { LayoutUtils, PanelComponent } from '@deephaven/dashboard';\nimport { TableUtils } from '@deephaven/iris-grid';\nimport Log from '@deephaven/log';\nimport { ChartPanel, IrisGridPanel, DropdownFilterPanel } from '../panels';\n\nexport type LinkType = 'invalid' | 'filterSource' | 'tableLink';\n\nexport type LinkPoint = {\n panelId: string;\n panelComponent?: string;\n columnName: string;\n columnType: string;\n};\n\nexport type Link = {\n start: LinkPoint;\n end?: LinkPoint;\n id: string;\n isReversed?: boolean;\n type: LinkType;\n};\n\nexport type LinkColumn = {\n name: string;\n type: string;\n};\n\nexport type LinkFilterMapValue<T = unknown> = {\n columnType: string;\n text: string;\n value: T;\n};\n\nexport type LinkFilterMap<T = unknown> = Map<string, LinkFilterMapValue<T>>;\n\nexport type LinkDataMapValue = {\n type: string;\n text: string;\n value: string;\n};\n\nexport type LinkDataMap = Record<string, LinkDataMapValue>;\n\n// [x,y] screen coordinates used by the Linker\nexport type LinkerCoordinate = [number, number];\n\nexport type LinkableFromPanel = PanelComponent & {\n getCoordinateForColumn: (name: string) => LinkerCoordinate;\n};\n\nexport type LinkablePanel = LinkableFromPanel & {\n setFilterMap: (filterMap: LinkFilterMap) => void;\n unsetFilterValue: (name: string, type: string) => void;\n};\n\nexport function isLinkableFromPanel(\n panel: PanelComponent\n): panel is LinkableFromPanel {\n const p = panel as LinkableFromPanel;\n return typeof p.getCoordinateForColumn === 'function';\n}\n\nexport function isLinkablePanel(panel: PanelComponent): panel is LinkablePanel {\n const p = panel as LinkablePanel;\n return (\n isLinkableFromPanel(panel) &&\n typeof p.setFilterMap === 'function' &&\n typeof p.unsetFilterValue === 'function'\n );\n}\n\nconst log = Log.module('LinkerUtils');\n\n/**\n * Collection of utility functions for use with the Linker\n */\nclass LinkerUtils {\n static ALLOWED_LINKS = new Map([\n [\n LayoutUtils.getComponentName(IrisGridPanel),\n [\n LayoutUtils.getComponentName(IrisGridPanel),\n LayoutUtils.getComponentName(ChartPanel),\n LayoutUtils.getComponentName(DropdownFilterPanel),\n ],\n ],\n ]);\n\n /**\n * Retrieve the type of link given parameters.\n * @param start The link start\n * @param end The link end\n * @param isolatedLinkerPanelId Whether there's an isolated linker\n * @returns The type of link, or invalid if there's an error\n */\n static getLinkType(\n start?: LinkPoint,\n end?: LinkPoint,\n isolatedLinkerPanelId?: string\n ): LinkType {\n // Panel compatibility checks:\n // Link ends should point to different non-null panelIds\n // For isolated linker one of the panels should match isolated panel id\n if (\n start?.panelId == null ||\n end?.panelId == null ||\n start.panelId === end.panelId ||\n (isolatedLinkerPanelId != null &&\n isolatedLinkerPanelId !== start.panelId &&\n isolatedLinkerPanelId !== end.panelId)\n ) {\n log.debug2('Incompatible panel ids', start, end, isolatedLinkerPanelId);\n return 'invalid';\n }\n\n if (start.panelComponent == null || end.panelComponent == null) {\n log.error('PanelComponent should not be null', start, end);\n return 'invalid';\n }\n\n const isCompatibleComponent = LinkerUtils.ALLOWED_LINKS.get(\n start.panelComponent\n )?.includes(end.panelComponent);\n\n if (!isCompatibleComponent) {\n log.debug2('Incompatible panel components', start, end);\n return 'invalid';\n }\n\n // Check column type compatibility\n const { columnType: startColumnType } = start;\n const { columnType: endColumnType } = end;\n\n // Null columnType in ending link point allows linking to any type\n const isCompatibleType =\n endColumnType === null ||\n TableUtils.isCompatibleType(startColumnType, endColumnType);\n\n if (!isCompatibleType) {\n log.debug2('Incompatible type', startColumnType, endColumnType);\n return 'invalid';\n }\n\n // If all checks pass, link type is determined by the target panel component\n switch (end.panelComponent) {\n case LayoutUtils.getComponentName(ChartPanel):\n case LayoutUtils.getComponentName(IrisGridPanel):\n return 'tableLink';\n case LayoutUtils.getComponentName(DropdownFilterPanel):\n return 'filterSource';\n default:\n }\n\n log.debug2('Incompatible target panel component', end.panelComponent);\n return 'invalid';\n }\n\n /**\n * Find column matching the link point\n * @param columns Columns to search in\n * @param linkPoint Link point to find column for\n * @param linkPoint.columnName Column name to find\n * @param linkPoint.columnType Column type to find\n * @returns Column matching the link point, undefined if not found\n */\n static findColumn(\n columns: LinkColumn[],\n { columnName, columnType }: LinkPoint\n ): LinkColumn | undefined {\n return columns.find(\n ({ name, type }) => name === columnName && type === columnType\n );\n }\n\n /**\n * Clone links for a given panel id\n * @param links Original links array\n * @param panelId Original panel id\n * @param cloneId Cloned panel id\n * @returns Cloned links array or empty array if no new links added\n */\n static cloneLinksForPanel(\n links: Link[],\n panelId: string,\n cloneId: string\n ): Link[] {\n const clonedLinks: Link[] = [];\n links.forEach(link => {\n if (link.start.panelId === panelId && link.type !== 'filterSource') {\n clonedLinks.push({\n ...link,\n id: shortid.generate(),\n start: { ...link.start, panelId: cloneId },\n });\n } else if (link.end?.panelId === panelId) {\n clonedLinks.push({\n ...link,\n id: shortid.generate(),\n end: { ...link.end, panelId: cloneId },\n });\n }\n });\n return clonedLinks;\n }\n}\n\nexport default LinkerUtils;\n"],"file":"LinkerUtils.js"}
1
+ {"version":3,"sources":["../../src/linker/LinkerUtils.tsx"],"names":["shortid","LayoutUtils","TableUtils","Log","ChartPanel","IrisGridPanel","DropdownFilterPanel","isLinkableFromPanel","panel","p","getCoordinateForColumn","isLinkablePanel","setFilterMap","unsetFilterValue","log","module","LinkerUtils","getLinkType","start","end","isolatedLinkerPanelId","panelId","debug2","panelComponent","error","isCompatibleComponent","ALLOWED_LINKS","get","includes","columnType","startColumnType","endColumnType","isCompatibleType","getComponentName","findColumn","columns","columnName","find","name","type","cloneLinksForPanel","links","cloneId","clonedLinks","forEach","link","push","id","generate","Map"],"mappings":"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","sourcesContent":["import shortid from 'shortid';\nimport { LayoutUtils, PanelComponent } from '@deephaven/dashboard';\nimport { TableUtils } from '@deephaven/iris-grid';\nimport Log from '@deephaven/log';\nimport { ChartPanel, IrisGridPanel, DropdownFilterPanel } from '../panels';\n\nexport type LinkType = 'invalid' | 'filterSource' | 'tableLink';\n\nexport type LinkPoint = {\n panelId: string;\n panelComponent?: string;\n columnName: string;\n columnType: string;\n};\n\nexport type Link = {\n start: LinkPoint;\n end?: LinkPoint;\n id: string;\n isReversed?: boolean;\n type: LinkType;\n};\n\nexport type LinkColumn = {\n name: string;\n type: string;\n};\n\nexport type LinkFilterMapValue<T = unknown> = {\n columnType: string;\n text: string;\n value: T;\n};\n\nexport type LinkFilterMap<T = unknown> = Map<string, LinkFilterMapValue<T>>;\n\nexport type LinkDataMapValue = {\n type: string;\n text: string;\n value: string;\n};\n\nexport type LinkDataMap = Record<string, LinkDataMapValue>;\n\n// [x,y] screen coordinates used by the Linker\nexport type LinkerCoordinate = [number, number];\n\nexport type LinkableFromPanel = PanelComponent & {\n getCoordinateForColumn: (name: string) => LinkerCoordinate;\n};\n\nexport type LinkablePanel = LinkableFromPanel & {\n setFilterMap: (filterMap: LinkFilterMap) => void;\n unsetFilterValue: (name: string, type: string) => void;\n};\n\nexport function isLinkableFromPanel(\n panel: PanelComponent\n): panel is LinkableFromPanel {\n const p = panel as LinkableFromPanel;\n return typeof p.getCoordinateForColumn === 'function';\n}\n\nexport function isLinkablePanel(panel: PanelComponent): panel is LinkablePanel {\n const p = panel as LinkablePanel;\n return (\n isLinkableFromPanel(panel) &&\n typeof p.setFilterMap === 'function' &&\n typeof p.unsetFilterValue === 'function'\n );\n}\n\nconst log = Log.module('LinkerUtils');\n\n/**\n * Collection of utility functions for use with the Linker\n */\nclass LinkerUtils {\n static ALLOWED_LINKS = new Map([\n [\n LayoutUtils.getComponentName(IrisGridPanel),\n [\n LayoutUtils.getComponentName(IrisGridPanel),\n LayoutUtils.getComponentName(ChartPanel),\n LayoutUtils.getComponentName(DropdownFilterPanel),\n ],\n ],\n ]);\n\n /**\n * Retrieve the type of link given parameters.\n * @param start The link start\n * @param end The link end\n * @param isolatedLinkerPanelId Whether there's an isolated linker\n * @returns The type of link, or invalid if there's an error\n */\n static getLinkType(\n start?: LinkPoint,\n end?: LinkPoint,\n isolatedLinkerPanelId?: string\n ): LinkType {\n // Panel compatibility checks:\n // Link ends should point to different non-null panelIds\n // For isolated linker one of the panels should match isolated panel id\n if (\n start?.panelId == null ||\n end?.panelId == null ||\n start.panelId === end.panelId ||\n (isolatedLinkerPanelId != null &&\n isolatedLinkerPanelId !== start.panelId &&\n isolatedLinkerPanelId !== end.panelId)\n ) {\n log.debug2('Incompatible panel ids', start, end, isolatedLinkerPanelId);\n return 'invalid';\n }\n\n if (start.panelComponent == null || end.panelComponent == null) {\n log.error('PanelComponent should not be null', start, end);\n return 'invalid';\n }\n\n const isCompatibleComponent = LinkerUtils.ALLOWED_LINKS.get(\n start.panelComponent\n )?.includes(end.panelComponent);\n\n if (!isCompatibleComponent) {\n log.debug2('Incompatible panel components', start, end);\n return 'invalid';\n }\n\n // Check column type compatibility\n const { columnType: startColumnType } = start;\n const { columnType: endColumnType } = end;\n\n // Null columnType in ending link point allows linking to any type\n const isCompatibleType =\n endColumnType === null ||\n TableUtils.isCompatibleType(startColumnType, endColumnType);\n\n if (!isCompatibleType) {\n log.debug2('Incompatible type', startColumnType, endColumnType);\n return 'invalid';\n }\n\n // If all checks pass, link type is determined by the target panel component\n switch (end.panelComponent) {\n case LayoutUtils.getComponentName(ChartPanel):\n case LayoutUtils.getComponentName(IrisGridPanel):\n return 'tableLink';\n case LayoutUtils.getComponentName(DropdownFilterPanel):\n return 'filterSource';\n default:\n }\n\n log.debug2('Incompatible target panel component', end.panelComponent);\n return 'invalid';\n }\n\n /**\n * Find column matching the link point\n * @param columns Columns to search in\n * @param linkPoint Link point to find column for\n * @param linkPoint.columnName Column name to find\n * @param linkPoint.columnType Column type to find\n * @returns Column matching the link point, undefined if not found\n */\n static findColumn(\n columns: LinkColumn[],\n { columnName, columnType }: LinkPoint\n ): LinkColumn | undefined {\n return columns.find(\n ({ name, type }) => name === columnName && type === columnType\n );\n }\n\n /**\n * Clone links for a given panel id\n * @param links Original links array\n * @param panelId Original panel id\n * @param cloneId Cloned panel id\n * @returns Cloned links array or empty array if no new links added\n */\n static cloneLinksForPanel(\n links: Link[],\n panelId: string,\n cloneId: string\n ): Link[] {\n const clonedLinks: Link[] = [];\n links.forEach(link => {\n if (link.start.panelId === panelId && link.type !== 'filterSource') {\n clonedLinks.push({\n ...link,\n id: shortid.generate(),\n start: { ...link.start, panelId: cloneId },\n });\n } else if (link.end?.panelId === panelId) {\n clonedLinks.push({\n ...link,\n id: shortid.generate(),\n end: { ...link.end, panelId: cloneId },\n });\n }\n });\n return clonedLinks;\n }\n}\n\nexport default LinkerUtils;\n"],"file":"LinkerUtils.js"}
@@ -4,11 +4,13 @@ import classNames from 'classnames';
4
4
  import { SocketedButton } from '@deephaven/components';
5
5
  import "./ChartColumnSelectorOverlay.css";
6
6
 
7
- var ChartColumnSelectorOverlay = function ChartColumnSelectorOverlay(_ref) {
8
- var columns = _ref.columns,
9
- onColumnSelected = _ref.onColumnSelected,
10
- _onMouseEnter = _ref.onMouseEnter,
11
- onMouseLeave = _ref.onMouseLeave;
7
+ var ChartColumnSelectorOverlay = (_ref) => {
8
+ var {
9
+ columns,
10
+ onColumnSelected,
11
+ onMouseEnter: _onMouseEnter,
12
+ onMouseLeave
13
+ } = _ref;
12
14
  return /*#__PURE__*/React.createElement("div", {
13
15
  className: "chart-panel-overlay chart-column-selector-overlay"
14
16
  }, /*#__PURE__*/React.createElement("div", {
@@ -17,26 +19,18 @@ var ChartColumnSelectorOverlay = function ChartColumnSelectorOverlay(_ref) {
17
19
  className: "info-message"
18
20
  }, "This plot requires a filter control to be added to the layout or a table link to be created on the following columns:"), /*#__PURE__*/React.createElement("div", {
19
21
  className: "waiting-column-select-list"
20
- }, columns.map(function (column) {
21
- return /*#__PURE__*/React.createElement(SocketedButton, {
22
- key: column.name,
23
- className: classNames('btn-chart-column-selector', ChartColumnSelectorOverlay.makeButtonClassName(column.name)),
24
- onClick: function onClick() {
25
- return onColumnSelected(column.name);
26
- },
27
- onMouseEnter: function onMouseEnter() {
28
- return _onMouseEnter(column);
29
- },
30
- onMouseLeave: onMouseLeave,
31
- disabled: !column.isValid,
32
- isLinked: column.isActive
33
- }, column.name);
34
- })))));
22
+ }, columns.map(column => /*#__PURE__*/React.createElement(SocketedButton, {
23
+ key: column.name,
24
+ className: classNames('btn-chart-column-selector', ChartColumnSelectorOverlay.makeButtonClassName(column.name)),
25
+ onClick: () => onColumnSelected(column.name),
26
+ onMouseEnter: () => _onMouseEnter(column),
27
+ onMouseLeave: onMouseLeave,
28
+ disabled: !column.isValid,
29
+ isLinked: column.isActive
30
+ }, column.name))))));
35
31
  };
36
32
 
37
- ChartColumnSelectorOverlay.makeButtonClassName = function (columnName) {
38
- return "btn-chart-column-selector-".concat(columnName);
39
- };
33
+ ChartColumnSelectorOverlay.makeButtonClassName = columnName => "btn-chart-column-selector-".concat(columnName);
40
34
 
41
35
  ChartColumnSelectorOverlay.propTypes = {
42
36
  columns: PropTypes.arrayOf(PropTypes.shape({
@@ -49,8 +43,8 @@ ChartColumnSelectorOverlay.propTypes = {
49
43
  onMouseLeave: PropTypes.func
50
44
  };
51
45
  ChartColumnSelectorOverlay.defaultProps = {
52
- onMouseEnter: function onMouseEnter() {},
53
- onMouseLeave: function onMouseLeave() {}
46
+ onMouseEnter: () => {},
47
+ onMouseLeave: () => {}
54
48
  };
55
49
  export default ChartColumnSelectorOverlay;
56
50
  //# sourceMappingURL=ChartColumnSelectorOverlay.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/panels/ChartColumnSelectorOverlay.jsx"],"names":["React","PropTypes","classNames","SocketedButton","ChartColumnSelectorOverlay","columns","onColumnSelected","onMouseEnter","onMouseLeave","map","column","name","makeButtonClassName","isValid","isActive","columnName","propTypes","arrayOf","shape","string","isRequired","bool","func","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,cAAT,QAA+B,uBAA/B;AACA;;AAEA,IAAMC,0BAA0B,GAAG,SAA7BA,0BAA6B;AAAA,MACjCC,OADiC,QACjCA,OADiC;AAAA,MAEjCC,gBAFiC,QAEjCA,gBAFiC;AAAA,MAGjCC,aAHiC,QAGjCA,YAHiC;AAAA,MAIjCC,YAJiC,QAIjCA,YAJiC;AAAA,sBAMjC;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAEN,UAAU,CAAC,6BAAD;AAA1B,kBACE,uDACE;AAAK,IAAA,SAAS,EAAC;AAAf,6HADF,eAKE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGG,OAAO,CAACI,GAAR,CAAY,UAAAC,MAAM;AAAA,wBACjB,oBAAC,cAAD;AACE,MAAA,GAAG,EAAEA,MAAM,CAACC,IADd;AAEE,MAAA,SAAS,EAAET,UAAU,CACnB,2BADmB,EAEnBE,0BAA0B,CAACQ,mBAA3B,CAA+CF,MAAM,CAACC,IAAtD,CAFmB,CAFvB;AAME,MAAA,OAAO,EAAE;AAAA,eAAML,gBAAgB,CAACI,MAAM,CAACC,IAAR,CAAtB;AAAA,OANX;AAOE,MAAA,YAAY,EAAE;AAAA,eAAMJ,aAAY,CAACG,MAAD,CAAlB;AAAA,OAPhB;AAQE,MAAA,YAAY,EAAEF,YARhB;AASE,MAAA,QAAQ,EAAE,CAACE,MAAM,CAACG,OATpB;AAUE,MAAA,QAAQ,EAAEH,MAAM,CAACI;AAVnB,OAYGJ,MAAM,CAACC,IAZV,CADiB;AAAA,GAAlB,CADH,CALF,CADF,CADF,CANiC;AAAA,CAAnC;;AAoCAP,0BAA0B,CAACQ,mBAA3B,GAAiD,UAAAG,UAAU;AAAA,6CAC5BA,UAD4B;AAAA,CAA3D;;AAGAX,0BAA0B,CAACY,SAA3B,GAAuC;AACrCX,EAAAA,OAAO,EAAEJ,SAAS,CAACgB,OAAV,CACPhB,SAAS,CAACiB,KAAV,CAAgB;AACdP,IAAAA,IAAI,EAAEV,SAAS,CAACkB,MAAV,CAAiBC,UADT;AAEdP,IAAAA,OAAO,EAAEZ,SAAS,CAACoB,IAAV,CAAeD,UAFV;AAGdN,IAAAA,QAAQ,EAAEb,SAAS,CAACoB,IAAV,CAAeD;AAHX,GAAhB,CADO,EAMPA,UAPmC;AAQrCd,EAAAA,gBAAgB,EAAEL,SAAS,CAACqB,IAAV,CAAeF,UARI;AASrCb,EAAAA,YAAY,EAAEN,SAAS,CAACqB,IATa;AAUrCd,EAAAA,YAAY,EAAEP,SAAS,CAACqB;AAVa,CAAvC;AAaAlB,0BAA0B,CAACmB,YAA3B,GAA0C;AACxChB,EAAAA,YAAY,EAAE,wBAAM,CAAE,CADkB;AAExCC,EAAAA,YAAY,EAAE,wBAAM,CAAE;AAFkB,CAA1C;AAKA,eAAeJ,0BAAf","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { SocketedButton } from '@deephaven/components';\nimport './ChartColumnSelectorOverlay.scss';\n\nconst ChartColumnSelectorOverlay = ({\n columns,\n onColumnSelected,\n onMouseEnter,\n onMouseLeave,\n}) => (\n <div className=\"chart-panel-overlay chart-column-selector-overlay\">\n <div className={classNames('chart-panel-overlay-content')}>\n <>\n <div className=\"info-message\">\n This plot requires a filter control to be added to the layout or a\n table link to be created on the following columns:\n </div>\n <div className=\"waiting-column-select-list\">\n {columns.map(column => (\n <SocketedButton\n key={column.name}\n className={classNames(\n 'btn-chart-column-selector',\n ChartColumnSelectorOverlay.makeButtonClassName(column.name)\n )}\n onClick={() => onColumnSelected(column.name)}\n onMouseEnter={() => onMouseEnter(column)}\n onMouseLeave={onMouseLeave}\n disabled={!column.isValid}\n isLinked={column.isActive}\n >\n {column.name}\n </SocketedButton>\n ))}\n </div>\n </>\n </div>\n </div>\n);\n\nChartColumnSelectorOverlay.makeButtonClassName = columnName =>\n `btn-chart-column-selector-${columnName}`;\n\nChartColumnSelectorOverlay.propTypes = {\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n isValid: PropTypes.bool.isRequired,\n isActive: PropTypes.bool.isRequired,\n })\n ).isRequired,\n onColumnSelected: PropTypes.func.isRequired,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n};\n\nChartColumnSelectorOverlay.defaultProps = {\n onMouseEnter: () => {},\n onMouseLeave: () => {},\n};\n\nexport default ChartColumnSelectorOverlay;\n"],"file":"ChartColumnSelectorOverlay.js"}
1
+ {"version":3,"sources":["../../src/panels/ChartColumnSelectorOverlay.jsx"],"names":["React","PropTypes","classNames","SocketedButton","ChartColumnSelectorOverlay","columns","onColumnSelected","onMouseEnter","onMouseLeave","map","column","name","makeButtonClassName","isValid","isActive","columnName","propTypes","arrayOf","shape","string","isRequired","bool","func","defaultProps"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,cAAT,QAA+B,uBAA/B;;;AAGA,IAAMC,0BAA0B,GAAG;AAAA,MAAC;AAClCC,IAAAA,OADkC;AAElCC,IAAAA,gBAFkC;AAGlCC,IAAAA,YAAY,EAAZA,aAHkC;AAIlCC,IAAAA;AAJkC,GAAD;AAAA,sBAMjC;AAAK,IAAA,SAAS,EAAC;AAAf,kBACE;AAAK,IAAA,SAAS,EAAEN,UAAU,CAAC,6BAAD;AAA1B,kBACE,uDACE;AAAK,IAAA,SAAS,EAAC;AAAf,6HADF,eAKE;AAAK,IAAA,SAAS,EAAC;AAAf,KACGG,OAAO,CAACI,GAAR,CAAYC,MAAM,iBACjB,oBAAC,cAAD;AACE,IAAA,GAAG,EAAEA,MAAM,CAACC,IADd;AAEE,IAAA,SAAS,EAAET,UAAU,CACnB,2BADmB,EAEnBE,0BAA0B,CAACQ,mBAA3B,CAA+CF,MAAM,CAACC,IAAtD,CAFmB,CAFvB;AAME,IAAA,OAAO,EAAE,MAAML,gBAAgB,CAACI,MAAM,CAACC,IAAR,CANjC;AAOE,IAAA,YAAY,EAAE,MAAMJ,aAAY,CAACG,MAAD,CAPlC;AAQE,IAAA,YAAY,EAAEF,YARhB;AASE,IAAA,QAAQ,EAAE,CAACE,MAAM,CAACG,OATpB;AAUE,IAAA,QAAQ,EAAEH,MAAM,CAACI;AAVnB,KAYGJ,MAAM,CAACC,IAZV,CADD,CADH,CALF,CADF,CADF,CANiC;AAAA,CAAnC;;AAoCAP,0BAA0B,CAACQ,mBAA3B,GAAiDG,UAAU,wCAC5BA,UAD4B,CAA3D;;AAGAX,0BAA0B,CAACY,SAA3B,GAAuC;AACrCX,EAAAA,OAAO,EAAEJ,SAAS,CAACgB,OAAV,CACPhB,SAAS,CAACiB,KAAV,CAAgB;AACdP,IAAAA,IAAI,EAAEV,SAAS,CAACkB,MAAV,CAAiBC,UADT;AAEdP,IAAAA,OAAO,EAAEZ,SAAS,CAACoB,IAAV,CAAeD,UAFV;AAGdN,IAAAA,QAAQ,EAAEb,SAAS,CAACoB,IAAV,CAAeD;AAHX,GAAhB,CADO,EAMPA,UAPmC;AAQrCd,EAAAA,gBAAgB,EAAEL,SAAS,CAACqB,IAAV,CAAeF,UARI;AASrCb,EAAAA,YAAY,EAAEN,SAAS,CAACqB,IATa;AAUrCd,EAAAA,YAAY,EAAEP,SAAS,CAACqB;AAVa,CAAvC;AAaAlB,0BAA0B,CAACmB,YAA3B,GAA0C;AACxChB,EAAAA,YAAY,EAAE,MAAM,CAAE,CADkB;AAExCC,EAAAA,YAAY,EAAE,MAAM,CAAE;AAFkB,CAA1C;AAKA,eAAeJ,0BAAf","sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { SocketedButton } from '@deephaven/components';\nimport './ChartColumnSelectorOverlay.scss';\n\nconst ChartColumnSelectorOverlay = ({\n columns,\n onColumnSelected,\n onMouseEnter,\n onMouseLeave,\n}) => (\n <div className=\"chart-panel-overlay chart-column-selector-overlay\">\n <div className={classNames('chart-panel-overlay-content')}>\n <>\n <div className=\"info-message\">\n This plot requires a filter control to be added to the layout or a\n table link to be created on the following columns:\n </div>\n <div className=\"waiting-column-select-list\">\n {columns.map(column => (\n <SocketedButton\n key={column.name}\n className={classNames(\n 'btn-chart-column-selector',\n ChartColumnSelectorOverlay.makeButtonClassName(column.name)\n )}\n onClick={() => onColumnSelected(column.name)}\n onMouseEnter={() => onMouseEnter(column)}\n onMouseLeave={onMouseLeave}\n disabled={!column.isValid}\n isLinked={column.isActive}\n >\n {column.name}\n </SocketedButton>\n ))}\n </div>\n </>\n </div>\n </div>\n);\n\nChartColumnSelectorOverlay.makeButtonClassName = columnName =>\n `btn-chart-column-selector-${columnName}`;\n\nChartColumnSelectorOverlay.propTypes = {\n columns: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n isValid: PropTypes.bool.isRequired,\n isActive: PropTypes.bool.isRequired,\n })\n ).isRequired,\n onColumnSelected: PropTypes.func.isRequired,\n onMouseEnter: PropTypes.func,\n onMouseLeave: PropTypes.func,\n};\n\nChartColumnSelectorOverlay.defaultProps = {\n onMouseEnter: () => {},\n onMouseLeave: () => {},\n};\n\nexport default ChartColumnSelectorOverlay;\n"],"file":"ChartColumnSelectorOverlay.js"}
@@ -7,25 +7,21 @@ import { vsPass, vsIssues } from '@deephaven/icons';
7
7
  import { TextUtils } from '@deephaven/utils';
8
8
  import "./ChartFilterOverlay.css";
9
9
 
10
- var ChartFilterOverlay = function ChartFilterOverlay(_ref) {
11
- var columnMap = _ref.columnMap,
12
- inputFilterMap = _ref.inputFilterMap,
13
- linkedColumnMap = _ref.linkedColumnMap,
14
- onAdd = _ref.onAdd,
15
- onOpenLinker = _ref.onOpenLinker,
16
- waitingFilterMap = _ref.waitingFilterMap,
17
- waitingInputMap = _ref.waitingInputMap;
18
- var inputMessage = useMemo(function () {
10
+ var ChartFilterOverlay = (_ref) => {
11
+ var {
12
+ columnMap,
13
+ inputFilterMap,
14
+ linkedColumnMap,
15
+ onAdd,
16
+ onOpenLinker,
17
+ waitingFilterMap,
18
+ waitingInputMap
19
+ } = _ref;
20
+ var inputMessage = useMemo(() => {
19
21
  var waitingColumns = Array.from(waitingInputMap.keys());
20
- var needsInputFilterValue = waitingColumns.find(function (columnName) {
21
- return inputFilterMap.get(columnName) != null;
22
- });
23
- var needsLinkValue = waitingColumns.find(function (columnName) {
24
- return linkedColumnMap.get(columnName) != null;
25
- });
26
- var columnsText = TextUtils.join(waitingColumns.map(function (item) {
27
- return "\"".concat(item, "\"");
28
- }));
22
+ var needsInputFilterValue = waitingColumns.find(columnName => inputFilterMap.get(columnName) != null);
23
+ var needsLinkValue = waitingColumns.find(columnName => linkedColumnMap.get(columnName) != null);
24
+ var columnsText = TextUtils.join(waitingColumns.map(item => "\"".concat(item, "\"")));
29
25
 
30
26
  if (needsInputFilterValue && needsLinkValue) {
31
27
  return "Use a filter control or linked table to set a value for ".concat(columnsText);
@@ -37,15 +33,13 @@ var ChartFilterOverlay = function ChartFilterOverlay(_ref) {
37
33
 
38
34
  return "Double click a row in a linked table to set a value for ".concat(columnsText);
39
35
  }, [inputFilterMap, linkedColumnMap, waitingInputMap]);
40
- var columns = useMemo(function () {
41
- return Array.from(columnMap.values());
42
- }, [columnMap]);
43
- var handleAddClick = useCallback(function (event) {
36
+ var columns = useMemo(() => Array.from(columnMap.values()), [columnMap]);
37
+ var handleAddClick = useCallback(event => {
44
38
  event.stopPropagation();
45
39
  event.preventDefault();
46
40
  onAdd(Array.from(waitingFilterMap.values()));
47
41
  }, [onAdd, waitingFilterMap]);
48
- var handleOpenLinker = useCallback(function (event) {
42
+ var handleOpenLinker = useCallback(event => {
49
43
  event.stopPropagation();
50
44
  event.preventDefault();
51
45
  onOpenLinker();
@@ -64,7 +58,7 @@ var ChartFilterOverlay = function ChartFilterOverlay(_ref) {
64
58
  className: "info-message"
65
59
  }, "This plot requires a filter control to be added to the layout or a table link to be created on the following columns:"), /*#__PURE__*/React.createElement("div", {
66
60
  className: "waiting-filter-list"
67
- }, columns.map(function (column) {
61
+ }, columns.map(column => {
68
62
  var isColumnWaiting = waitingFilterMap.has(column.name);
69
63
  var icon = isColumnWaiting ? vsIssues : vsPass;
70
64
  return /*#__PURE__*/React.createElement("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/panels/ChartFilterOverlay.jsx"],"names":["React","useCallback","useMemo","PropTypes","classNames","FontAwesomeIcon","ButtonOld","vsPass","vsIssues","TextUtils","ChartFilterOverlay","columnMap","inputFilterMap","linkedColumnMap","onAdd","onOpenLinker","waitingFilterMap","waitingInputMap","inputMessage","waitingColumns","Array","from","keys","needsInputFilterValue","find","columnName","get","needsLinkValue","columnsText","join","map","item","columns","values","handleAddClick","event","stopPropagation","preventDefault","handleOpenLinker","isWaitingFilters","size","isWaitingInput","column","isColumnWaiting","has","name","icon","propTypes","instanceOf","Map","isRequired","func"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ButtonOld } from '@deephaven/components';\nimport { vsPass, vsIssues } from '@deephaven/icons';\nimport { TextUtils } from '@deephaven/utils';\nimport './ChartFilterOverlay.scss';\n\nconst ChartFilterOverlay = ({\n columnMap,\n inputFilterMap,\n linkedColumnMap,\n onAdd,\n onOpenLinker,\n waitingFilterMap,\n waitingInputMap,\n}) => {\n const inputMessage = useMemo(() => {\n const waitingColumns = Array.from(waitingInputMap.keys());\n const needsInputFilterValue = waitingColumns.find(\n columnName => inputFilterMap.get(columnName) != null\n );\n const needsLinkValue = waitingColumns.find(\n columnName => linkedColumnMap.get(columnName) != null\n );\n const columnsText = TextUtils.join(waitingColumns.map(item => `\"${item}\"`));\n if (needsInputFilterValue && needsLinkValue) {\n return `Use a filter control or linked table to set a value for ${columnsText}`;\n }\n if (needsInputFilterValue) {\n return `Set a filter control value for ${columnsText}`;\n }\n return `Double click a row in a linked table to set a value for ${columnsText}`;\n }, [inputFilterMap, linkedColumnMap, waitingInputMap]);\n\n const columns = useMemo(() => Array.from(columnMap.values()), [columnMap]);\n\n const handleAddClick = useCallback(\n event => {\n event.stopPropagation();\n event.preventDefault();\n\n onAdd(Array.from(waitingFilterMap.values()));\n },\n [onAdd, waitingFilterMap]\n );\n\n const handleOpenLinker = useCallback(\n event => {\n event.stopPropagation();\n event.preventDefault();\n\n onOpenLinker();\n },\n [onOpenLinker]\n );\n\n const isWaitingFilters = waitingFilterMap.size > 0;\n const isWaitingInput = !isWaitingFilters && waitingInputMap.size > 0;\n\n return (\n <div className=\"chart-panel-overlay chart-filter-overlay\">\n <div\n className={classNames(\n 'chart-panel-overlay-content chart-filter-overlay-content',\n { 'chart-filter-waiting-filter': isWaitingFilters },\n { 'chart-filter-waiting-input': isWaitingInput }\n )}\n >\n {isWaitingFilters && (\n <>\n <div className=\"info-message\">\n This plot requires a filter control to be added to the layout or a\n table link to be created on the following columns:\n </div>\n <div className=\"waiting-filter-list\">\n {columns.map(column => {\n const isColumnWaiting = waitingFilterMap.has(column.name);\n const icon = isColumnWaiting ? vsIssues : vsPass;\n return (\n <div\n key={column.name}\n className={classNames('waiting-filter-item', {\n 'is-invalid': isColumnWaiting,\n })}\n >\n <FontAwesomeIcon icon={icon} />\n {column.name}\n </div>\n );\n })}\n </div>\n <div>\n <ButtonOld onClick={handleAddClick} className=\"btn-primary\">\n Add Input Filters\n </ButtonOld>\n <ButtonOld onClick={handleOpenLinker} className=\"btn-primary\">\n Open Linker Tool\n </ButtonOld>\n </div>\n </>\n )}\n {isWaitingInput && (\n <>\n <div className=\"info-message\">Waiting for User Input</div>\n <div className=\"\">{inputMessage}</div>\n </>\n )}\n </div>\n </div>\n );\n};\n\nChartFilterOverlay.propTypes = {\n columnMap: PropTypes.instanceOf(Map).isRequired,\n inputFilterMap: PropTypes.instanceOf(Map).isRequired,\n linkedColumnMap: PropTypes.instanceOf(Map).isRequired,\n onAdd: PropTypes.func.isRequired,\n onOpenLinker: PropTypes.func.isRequired,\n waitingFilterMap: PropTypes.instanceOf(Map).isRequired,\n waitingInputMap: PropTypes.instanceOf(Map).isRequired,\n};\n\nexport default ChartFilterOverlay;\n"],"file":"ChartFilterOverlay.js"}
1
+ {"version":3,"sources":["../../src/panels/ChartFilterOverlay.jsx"],"names":["React","useCallback","useMemo","PropTypes","classNames","FontAwesomeIcon","ButtonOld","vsPass","vsIssues","TextUtils","ChartFilterOverlay","columnMap","inputFilterMap","linkedColumnMap","onAdd","onOpenLinker","waitingFilterMap","waitingInputMap","inputMessage","waitingColumns","Array","from","keys","needsInputFilterValue","find","columnName","get","needsLinkValue","columnsText","join","map","item","columns","values","handleAddClick","event","stopPropagation","preventDefault","handleOpenLinker","isWaitingFilters","size","isWaitingInput","column","isColumnWaiting","has","name","icon","propTypes","instanceOf","Map","isRequired","func"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { ButtonOld } from '@deephaven/components';\nimport { vsPass, vsIssues } from '@deephaven/icons';\nimport { TextUtils } from '@deephaven/utils';\nimport './ChartFilterOverlay.scss';\n\nconst ChartFilterOverlay = ({\n columnMap,\n inputFilterMap,\n linkedColumnMap,\n onAdd,\n onOpenLinker,\n waitingFilterMap,\n waitingInputMap,\n}) => {\n const inputMessage = useMemo(() => {\n const waitingColumns = Array.from(waitingInputMap.keys());\n const needsInputFilterValue = waitingColumns.find(\n columnName => inputFilterMap.get(columnName) != null\n );\n const needsLinkValue = waitingColumns.find(\n columnName => linkedColumnMap.get(columnName) != null\n );\n const columnsText = TextUtils.join(waitingColumns.map(item => `\"${item}\"`));\n if (needsInputFilterValue && needsLinkValue) {\n return `Use a filter control or linked table to set a value for ${columnsText}`;\n }\n if (needsInputFilterValue) {\n return `Set a filter control value for ${columnsText}`;\n }\n return `Double click a row in a linked table to set a value for ${columnsText}`;\n }, [inputFilterMap, linkedColumnMap, waitingInputMap]);\n\n const columns = useMemo(() => Array.from(columnMap.values()), [columnMap]);\n\n const handleAddClick = useCallback(\n event => {\n event.stopPropagation();\n event.preventDefault();\n\n onAdd(Array.from(waitingFilterMap.values()));\n },\n [onAdd, waitingFilterMap]\n );\n\n const handleOpenLinker = useCallback(\n event => {\n event.stopPropagation();\n event.preventDefault();\n\n onOpenLinker();\n },\n [onOpenLinker]\n );\n\n const isWaitingFilters = waitingFilterMap.size > 0;\n const isWaitingInput = !isWaitingFilters && waitingInputMap.size > 0;\n\n return (\n <div className=\"chart-panel-overlay chart-filter-overlay\">\n <div\n className={classNames(\n 'chart-panel-overlay-content chart-filter-overlay-content',\n { 'chart-filter-waiting-filter': isWaitingFilters },\n { 'chart-filter-waiting-input': isWaitingInput }\n )}\n >\n {isWaitingFilters && (\n <>\n <div className=\"info-message\">\n This plot requires a filter control to be added to the layout or a\n table link to be created on the following columns:\n </div>\n <div className=\"waiting-filter-list\">\n {columns.map(column => {\n const isColumnWaiting = waitingFilterMap.has(column.name);\n const icon = isColumnWaiting ? vsIssues : vsPass;\n return (\n <div\n key={column.name}\n className={classNames('waiting-filter-item', {\n 'is-invalid': isColumnWaiting,\n })}\n >\n <FontAwesomeIcon icon={icon} />\n {column.name}\n </div>\n );\n })}\n </div>\n <div>\n <ButtonOld onClick={handleAddClick} className=\"btn-primary\">\n Add Input Filters\n </ButtonOld>\n <ButtonOld onClick={handleOpenLinker} className=\"btn-primary\">\n Open Linker Tool\n </ButtonOld>\n </div>\n </>\n )}\n {isWaitingInput && (\n <>\n <div className=\"info-message\">Waiting for User Input</div>\n <div className=\"\">{inputMessage}</div>\n </>\n )}\n </div>\n </div>\n );\n};\n\nChartFilterOverlay.propTypes = {\n columnMap: PropTypes.instanceOf(Map).isRequired,\n inputFilterMap: PropTypes.instanceOf(Map).isRequired,\n linkedColumnMap: PropTypes.instanceOf(Map).isRequired,\n onAdd: PropTypes.func.isRequired,\n onOpenLinker: PropTypes.func.isRequired,\n waitingFilterMap: PropTypes.instanceOf(Map).isRequired,\n waitingInputMap: PropTypes.instanceOf(Map).isRequired,\n};\n\nexport default ChartFilterOverlay;\n"],"file":"ChartFilterOverlay.js"}
@@ -154,6 +154,7 @@ export namespace ChartPanel {
154
154
  const setActiveTool: PropTypes.Validator<(...args: any[]) => any>;
155
155
  const setDashboardIsolatedLinkerPanelId: PropTypes.Validator<(...args: any[]) => any>;
156
156
  const panelState: PropTypes.Requireable<PropTypes.InferProps<{}>>;
157
+ const settings: PropTypes.Requireable<PropTypes.InferProps<{}>>;
157
158
  }
158
159
  namespace defaultProps {
159
160
  const columnSelectionValidator_1: null;
@@ -166,6 +167,8 @@ export namespace ChartPanel {
166
167
  export { sourcePanel_1 as sourcePanel };
167
168
  const panelState_1: null;
168
169
  export { panelState_1 as panelState };
170
+ const settings_1: {};
171
+ export { settings_1 as settings };
169
172
  }
170
173
  const displayName: string;
171
174
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ChartPanel.d.ts","sourceRoot":"","sources":["../../src/panels/ChartPanel.jsx"],"names":[],"mappings":"AAyCA;IACE,yBAAgC;IAEhC,wBA4DC;IA0ND,4CAQC;IAED;;;aAOC;IAED,+BAOC;IAED,yBAKC;IAkBD,wBAIC;IApBD,oCAIC;IA0ID,mBAEC;IAvBD,oBAIC;IA3ED,kCAOC;IAnCD,oCA0BC;IA+ED,qBAEC;IAED,yCASC;IAtID,yBAQC;IAoID,mBAEC;IAzFD,iCAEC;IAED,iCAEC;IAED,+BAEC;IAiFD,sBAEC;IAED,uBAGC;IAED,qBAEC;IA1FD,8BAqBC;IAuED,8BAQC;IAvcC,qCAAuC;IACvC,4BAA8B;IAC9B,iBAA4B;IAoG9B,kBASC;IAED,wGASG;IAEH,oJAwBE;IAEF,yFAWG;IAEH,6EAyBG;IAEH;;;;;QAUE;IAEF,yCAeC;IAED,wCAeC;IAED,6BAKC;IAED,gBAIC;IAmID,yBAyBC;IAsDD;;;OAGG;IACH,mCAaC;IAED,+BAOC;IAED,yBAWC;IAED,sDAiBC;IAED;;;OAGG;IACH,6BAFW,IAAI,MAAM,EAAE,MAAM,CAAC,QA4B7B;IAED,wCAqCC;IAED,0EAmBC;IAED,mEA+BC;IAED,mEA6BC;IAED,4BAQC;IAED,sBAiCC;IAED;;OAEG;IACH,wBAsBC;IAED,oBAIC;CAkIF"}
1
+ {"version":3,"file":"ChartPanel.d.ts","sourceRoot":"","sources":["../../src/panels/ChartPanel.jsx"],"names":[],"mappings":"AA0CA;IACE,yBAAgC;IAEhC,wBA4DC;IA0ND,4CAQC;IAED;;;aAOC;IAED,+BAOC;IAED,yBAKC;IAkBD,wBAIC;IApBD,oCAIC;IA0ID,mBAEC;IAvBD,oBAIC;IA3ED,kCAOC;IAnCD,oCA0BC;IA+ED,qBAEC;IAED,yCASC;IAtID,yBAQC;IAoID,mBAEC;IAzFD,iCAEC;IAED,iCAEC;IAED,+BAEC;IAiFD,sBAEC;IAED,uBAGC;IAED,qBAEC;IA1FD,8BAqBC;IAuED,8BAQC;IAvcC,qCAAuC;IACvC,4BAA8B;IAC9B,iBAA4B;IAoG9B,kBASC;IAED,wGASG;IAEH,oJAwBE;IAEF,yFAWG;IAEH,6EAyBG;IAEH;;;;;QAUE;IAEF,yCAeC;IAED,wCAeC;IAED,6BAKC;IAED,gBAIC;IAmID,yBAyBC;IAsDD;;;OAGG;IACH,mCAaC;IAED,+BAOC;IAED,yBAWC;IAED,sDAiBC;IAED;;;OAGG;IACH,6BAFW,IAAI,MAAM,EAAE,MAAM,CAAC,QA4B7B;IAED,wCAqCC;IAED,0EAmBC;IAED,mEA+BC;IAED,mEA6BC;IAED,4BAQC;IAED,sBAiCC;IAED;;OAEG;IACH,wBAsBC;IAED,oBAIC;CAoIF"}