@deephaven/dashboard-core-plugins 0.5.1-beta.0 → 0.5.2-matplotlib.3

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 (235) hide show
  1. package/dist/ConsolePlugin.js +362 -3
  2. package/dist/ConsolePlugin.js.map +1 -1
  3. package/dist/MatPlotLibPlugin.js +45 -0
  4. package/dist/MatPlotLibPlugin.js.map +1 -0
  5. package/dist/controls/dropdown-filter/DropdownFilter.css +11 -18
  6. package/dist/controls/dropdown-filter/DropdownFilter.css.map +1 -1
  7. package/dist/controls/dropdown-filter/DropdownFilter.js +19 -23
  8. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  9. package/dist/controls/input-filter/InputFilter.css +7 -11
  10. package/dist/controls/input-filter/InputFilter.css.map +1 -1
  11. package/dist/controls/input-filter/InputFilter.js +8 -15
  12. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  13. package/dist/dist/events/ChartEvent.d.ts +3 -0
  14. package/dist/dist/events/ChartEvent.d.ts.map +1 -0
  15. package/dist/dist/events/ConsoleEvent.d.ts +3 -0
  16. package/dist/dist/events/ConsoleEvent.d.ts.map +1 -0
  17. package/dist/dist/events/ControlEvent.d.ts +3 -0
  18. package/dist/dist/events/ControlEvent.d.ts.map +1 -0
  19. package/dist/dist/events/InputFilterEvent.d.ts +3 -0
  20. package/dist/dist/events/InputFilterEvent.d.ts.map +1 -0
  21. package/dist/dist/events/IrisGridEvent.d.ts +3 -0
  22. package/dist/dist/events/IrisGridEvent.d.ts.map +1 -0
  23. package/dist/dist/events/MarkdownEvent.d.ts +5 -0
  24. package/dist/dist/events/MarkdownEvent.d.ts.map +1 -0
  25. package/dist/dist/events/MatPlotLibEvent.d.ts +3 -0
  26. package/dist/dist/events/MatPlotLibEvent.d.ts.map +1 -0
  27. package/dist/dist/events/NotebookEvent.d.ts +3 -0
  28. package/dist/dist/events/NotebookEvent.d.ts.map +1 -0
  29. package/dist/dist/events/PandasEvent.d.ts +3 -0
  30. package/dist/dist/events/PandasEvent.d.ts.map +1 -0
  31. package/dist/dist/events/TabEvent.d.ts +3 -0
  32. package/dist/dist/events/TabEvent.d.ts.map +1 -0
  33. package/dist/{events → dist/events}/index.d.ts +1 -0
  34. package/dist/{events → dist/events}/index.d.ts.map +1 -1
  35. package/dist/events/MatPlotLibEvent.js +12 -0
  36. package/dist/events/MatPlotLibEvent.js.map +1 -0
  37. package/dist/events/index.js +1 -0
  38. package/dist/events/index.js.map +1 -1
  39. package/dist/index.js +1 -0
  40. package/dist/index.js.map +1 -1
  41. package/dist/panels/ConsolePanel.js +22 -2
  42. package/dist/panels/ConsolePanel.js.map +1 -1
  43. package/dist/panels/InputFilterPanel.js +1 -4
  44. package/dist/panels/InputFilterPanel.js.map +1 -1
  45. package/dist/panels/MatPlotLibPanel.css +11 -0
  46. package/dist/panels/MatPlotLibPanel.css.map +1 -0
  47. package/dist/panels/MatPlotLibPanel.js +124 -0
  48. package/dist/panels/MatPlotLibPanel.js.map +1 -0
  49. package/dist/panels/index.js +1 -0
  50. package/dist/panels/index.js.map +1 -1
  51. package/dist/{ChartPlugin.d.ts → src/ChartPlugin.d.ts} +0 -0
  52. package/dist/src/ChartPlugin.d.ts.map +1 -0
  53. package/dist/{ConsolePlugin.d.ts → src/ConsolePlugin.d.ts} +0 -0
  54. package/dist/src/ConsolePlugin.d.ts.map +1 -0
  55. package/dist/{FilterPlugin.d.ts → src/FilterPlugin.d.ts} +0 -0
  56. package/dist/src/FilterPlugin.d.ts.map +1 -0
  57. package/dist/{GridPlugin.d.ts → src/GridPlugin.d.ts} +0 -0
  58. package/dist/src/GridPlugin.d.ts.map +1 -0
  59. package/dist/{LinkerPlugin.d.ts → src/LinkerPlugin.d.ts} +0 -0
  60. package/dist/src/LinkerPlugin.d.ts.map +1 -0
  61. package/dist/{MarkdownPlugin.d.ts → src/MarkdownPlugin.d.ts} +0 -0
  62. package/dist/src/MarkdownPlugin.d.ts.map +1 -0
  63. package/dist/src/MatPlotLibPlugin.d.ts +5 -0
  64. package/dist/src/MatPlotLibPlugin.d.ts.map +1 -0
  65. package/dist/{PandasPlugin.d.ts → src/PandasPlugin.d.ts} +0 -0
  66. package/dist/src/PandasPlugin.d.ts.map +1 -0
  67. package/dist/{controls → src/controls}/ControlType.d.ts +0 -0
  68. package/dist/src/controls/ControlType.d.ts.map +1 -0
  69. package/dist/{controls → src/controls}/dropdown-filter/DropdownFilter.d.ts +0 -0
  70. package/dist/src/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -0
  71. package/dist/{controls → src/controls}/input-filter/InputFilter.d.ts +0 -0
  72. package/dist/src/controls/input-filter/InputFilter.d.ts.map +1 -0
  73. package/dist/{controls → src/controls}/markdown/MarkdownContainer.d.ts +0 -0
  74. package/dist/src/controls/markdown/MarkdownContainer.d.ts.map +1 -0
  75. package/dist/{controls → src/controls}/markdown/MarkdownEditor.d.ts +0 -0
  76. package/dist/src/controls/markdown/MarkdownEditor.d.ts.map +1 -0
  77. package/dist/{controls → src/controls}/markdown/MarkdownStartPage.d.ts +0 -0
  78. package/dist/src/controls/markdown/MarkdownStartPage.d.ts.map +1 -0
  79. package/dist/{controls → src/controls}/markdown/MarkdownUtils.d.ts +0 -0
  80. package/dist/src/controls/markdown/MarkdownUtils.d.ts.map +1 -0
  81. package/dist/{events → src/events}/ChartEvent.d.ts +0 -0
  82. package/dist/src/events/ChartEvent.d.ts.map +1 -0
  83. package/dist/{events → src/events}/ConsoleEvent.d.ts +0 -0
  84. package/dist/src/events/ConsoleEvent.d.ts.map +1 -0
  85. package/dist/{events → src/events}/ControlEvent.d.ts +0 -0
  86. package/dist/src/events/ControlEvent.d.ts.map +1 -0
  87. package/dist/{events → src/events}/InputFilterEvent.d.ts +0 -0
  88. package/dist/src/events/InputFilterEvent.d.ts.map +1 -0
  89. package/dist/{events → src/events}/IrisGridEvent.d.ts +0 -0
  90. package/dist/src/events/IrisGridEvent.d.ts.map +1 -0
  91. package/dist/{events → src/events}/MarkdownEvent.d.ts +0 -0
  92. package/dist/src/events/MarkdownEvent.d.ts.map +1 -0
  93. package/dist/src/events/MatPlotLibEvent.d.ts +5 -0
  94. package/dist/src/events/MatPlotLibEvent.d.ts.map +1 -0
  95. package/dist/{events → src/events}/NotebookEvent.d.ts +0 -0
  96. package/dist/src/events/NotebookEvent.d.ts.map +1 -0
  97. package/dist/{events → src/events}/PQEvent.d.ts +0 -0
  98. package/dist/src/events/PQEvent.d.ts.map +1 -0
  99. package/dist/{events → src/events}/PandasEvent.d.ts +0 -0
  100. package/dist/src/events/PandasEvent.d.ts.map +1 -0
  101. package/dist/{events → src/events}/TabEvent.d.ts +0 -0
  102. package/dist/src/events/TabEvent.d.ts.map +1 -0
  103. package/dist/src/events/index.d.ts +11 -0
  104. package/dist/{panels → src/events}/index.d.ts.map +1 -1
  105. package/dist/{index.d.ts → src/index.d.ts} +1 -0
  106. package/dist/src/index.d.ts.map +1 -0
  107. package/dist/{linker → src/linker}/Linker.d.ts +0 -0
  108. package/dist/src/linker/Linker.d.ts.map +1 -0
  109. package/dist/{linker → src/linker}/LinkerLink.d.ts +0 -0
  110. package/dist/src/linker/LinkerLink.d.ts.map +1 -0
  111. package/dist/{linker → src/linker}/LinkerOverlayContent.d.ts +0 -0
  112. package/dist/src/linker/LinkerOverlayContent.d.ts.map +1 -0
  113. package/dist/{linker → src/linker}/LinkerUtils.d.ts +0 -0
  114. package/dist/src/linker/LinkerUtils.d.ts.map +1 -0
  115. package/dist/{linker → src/linker}/ToolType.d.ts +0 -0
  116. package/dist/{linker → src/linker}/ToolType.d.ts.map +1 -1
  117. package/dist/{panels → src/panels}/ChartColumnSelectorOverlay.d.ts +0 -0
  118. package/dist/src/panels/ChartColumnSelectorOverlay.d.ts.map +1 -0
  119. package/dist/{panels → src/panels}/ChartFilterOverlay.d.ts +0 -0
  120. package/dist/src/panels/ChartFilterOverlay.d.ts.map +1 -0
  121. package/dist/{panels → src/panels}/ChartPanel.d.ts +0 -0
  122. package/dist/src/panels/ChartPanel.d.ts.map +1 -0
  123. package/dist/{panels → src/panels}/CommandHistoryPanel.d.ts +0 -0
  124. package/dist/src/panels/CommandHistoryPanel.d.ts.map +1 -0
  125. package/dist/{panels → src/panels}/ConsolePanel.d.ts +1 -0
  126. package/dist/src/panels/ConsolePanel.d.ts.map +1 -0
  127. package/dist/{panels → src/panels}/DropdownFilterPanel.d.ts +0 -0
  128. package/dist/src/panels/DropdownFilterPanel.d.ts.map +1 -0
  129. package/dist/{panels → src/panels}/FileExplorerPanel.d.ts +0 -0
  130. package/dist/src/panels/FileExplorerPanel.d.ts.map +1 -0
  131. package/dist/{panels → src/panels}/InputFilterPanel.d.ts +0 -0
  132. package/dist/src/panels/InputFilterPanel.d.ts.map +1 -0
  133. package/dist/{panels → src/panels}/IrisGridPanel.d.ts +0 -0
  134. package/dist/src/panels/IrisGridPanel.d.ts.map +1 -0
  135. package/dist/{panels → src/panels}/LogPanel.d.ts +0 -0
  136. package/dist/src/panels/LogPanel.d.ts.map +1 -0
  137. package/dist/{panels → src/panels}/MarkdownPanel.d.ts +0 -0
  138. package/dist/src/panels/MarkdownPanel.d.ts.map +1 -0
  139. package/dist/src/panels/MatPlotLibPanel.d.ts +22 -0
  140. package/dist/src/panels/MatPlotLibPanel.d.ts.map +1 -0
  141. package/dist/{panels → src/panels}/NotebookPanel.d.ts +0 -0
  142. package/dist/src/panels/NotebookPanel.d.ts.map +1 -0
  143. package/dist/{panels → src/panels}/PandasPanel.d.ts +0 -0
  144. package/dist/src/panels/PandasPanel.d.ts.map +1 -0
  145. package/dist/{panels → src/panels}/Panel.d.ts +0 -0
  146. package/dist/src/panels/Panel.d.ts.map +1 -0
  147. package/dist/{panels → src/panels}/PanelContextMenu.d.ts +0 -0
  148. package/dist/src/panels/PanelContextMenu.d.ts.map +1 -0
  149. package/dist/{panels → src/panels}/RenameDialog.d.ts +0 -0
  150. package/dist/src/panels/RenameDialog.d.ts.map +1 -0
  151. package/dist/{panels → src/panels}/Shortcuts.d.ts +0 -0
  152. package/dist/src/panels/Shortcuts.d.ts.map +1 -0
  153. package/dist/{panels → src/panels}/WidgetPanel.d.ts +0 -0
  154. package/dist/src/panels/WidgetPanel.d.ts.map +1 -0
  155. package/dist/{panels → src/panels}/WidgetPanelTooltip.d.ts +0 -0
  156. package/dist/src/panels/WidgetPanelTooltip.d.ts.map +1 -0
  157. package/dist/{panels → src/panels}/index.d.ts +1 -0
  158. package/dist/{prop-types → src/panels}/index.d.ts.map +1 -1
  159. package/dist/{prop-types → src/prop-types}/CommonPropTypes.d.ts +0 -0
  160. package/dist/src/prop-types/CommonPropTypes.d.ts.map +1 -0
  161. package/dist/{prop-types → src/prop-types}/UIPropTypes.d.ts +0 -0
  162. package/dist/src/prop-types/UIPropTypes.d.ts.map +1 -0
  163. package/dist/{prop-types → src/prop-types}/index.d.ts +0 -0
  164. package/dist/{redux/reducers → src/prop-types}/index.d.ts.map +1 -1
  165. package/dist/{redux → src/redux}/actionTypes.d.ts +0 -0
  166. package/dist/src/redux/actionTypes.d.ts.map +1 -0
  167. package/dist/{redux → src/redux}/actions.d.ts +0 -0
  168. package/dist/src/redux/actions.d.ts.map +1 -0
  169. package/dist/{redux → src/redux}/index.d.ts +0 -0
  170. package/dist/src/redux/index.d.ts.map +1 -0
  171. package/dist/{redux → src/redux}/reducers/index.d.ts +0 -0
  172. package/dist/src/redux/reducers/index.d.ts.map +1 -0
  173. package/dist/{redux → src/redux}/reducers/sessionWrapper.d.ts +0 -0
  174. package/dist/src/redux/reducers/sessionWrapper.d.ts.map +1 -0
  175. package/dist/{redux → src/redux}/selectors.d.ts +0 -0
  176. package/dist/src/redux/selectors.d.ts.map +1 -0
  177. package/dist/tsconfig.tsbuildinfo +1 -1
  178. package/package.json +17 -17
  179. package/dist/ChartPlugin.d.ts.map +0 -1
  180. package/dist/ConsolePlugin.d.ts.map +0 -1
  181. package/dist/FilterPlugin.d.ts.map +0 -1
  182. package/dist/GridPlugin.d.ts.map +0 -1
  183. package/dist/LinkerPlugin.d.ts.map +0 -1
  184. package/dist/MarkdownPlugin.d.ts.map +0 -1
  185. package/dist/PandasPlugin.d.ts.map +0 -1
  186. package/dist/controls/ControlType.d.ts.map +0 -1
  187. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +0 -1
  188. package/dist/controls/input-filter/InputFilter.d.ts.map +0 -1
  189. package/dist/controls/markdown/MarkdownContainer.d.ts.map +0 -1
  190. package/dist/controls/markdown/MarkdownEditor.d.ts.map +0 -1
  191. package/dist/controls/markdown/MarkdownStartPage.d.ts.map +0 -1
  192. package/dist/controls/markdown/MarkdownUtils.d.ts.map +0 -1
  193. package/dist/events/ChartEvent.d.ts.map +0 -1
  194. package/dist/events/ConsoleEvent.d.ts.map +0 -1
  195. package/dist/events/ControlEvent.d.ts.map +0 -1
  196. package/dist/events/InputFilterEvent.d.ts.map +0 -1
  197. package/dist/events/IrisGridEvent.d.ts.map +0 -1
  198. package/dist/events/MarkdownEvent.d.ts.map +0 -1
  199. package/dist/events/NotebookEvent.d.ts.map +0 -1
  200. package/dist/events/PQEvent.d.ts.map +0 -1
  201. package/dist/events/PandasEvent.d.ts.map +0 -1
  202. package/dist/events/TabEvent.d.ts.map +0 -1
  203. package/dist/index.d.ts.map +0 -1
  204. package/dist/linker/Linker.d.ts.map +0 -1
  205. package/dist/linker/LinkerLink.d.ts.map +0 -1
  206. package/dist/linker/LinkerOverlayContent.d.ts.map +0 -1
  207. package/dist/linker/LinkerUtils.d.ts.map +0 -1
  208. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +0 -1
  209. package/dist/panels/ChartFilterOverlay.d.ts.map +0 -1
  210. package/dist/panels/ChartPanel.d.ts.map +0 -1
  211. package/dist/panels/CommandHistoryPanel.d.ts.map +0 -1
  212. package/dist/panels/ConsolePanel.d.ts.map +0 -1
  213. package/dist/panels/DropdownFilterPanel.d.ts.map +0 -1
  214. package/dist/panels/FileExplorerPanel.d.ts.map +0 -1
  215. package/dist/panels/InputFilterPanel.css +0 -5
  216. package/dist/panels/InputFilterPanel.css.map +0 -1
  217. package/dist/panels/InputFilterPanel.d.ts.map +0 -1
  218. package/dist/panels/IrisGridPanel.d.ts.map +0 -1
  219. package/dist/panels/LogPanel.d.ts.map +0 -1
  220. package/dist/panels/MarkdownPanel.d.ts.map +0 -1
  221. package/dist/panels/NotebookPanel.d.ts.map +0 -1
  222. package/dist/panels/PandasPanel.d.ts.map +0 -1
  223. package/dist/panels/Panel.d.ts.map +0 -1
  224. package/dist/panels/PanelContextMenu.d.ts.map +0 -1
  225. package/dist/panels/RenameDialog.d.ts.map +0 -1
  226. package/dist/panels/Shortcuts.d.ts.map +0 -1
  227. package/dist/panels/WidgetPanel.d.ts.map +0 -1
  228. package/dist/panels/WidgetPanelTooltip.d.ts.map +0 -1
  229. package/dist/prop-types/CommonPropTypes.d.ts.map +0 -1
  230. package/dist/prop-types/UIPropTypes.d.ts.map +0 -1
  231. package/dist/redux/actionTypes.d.ts.map +0 -1
  232. package/dist/redux/actions.d.ts.map +0 -1
  233. package/dist/redux/index.d.ts.map +0 -1
  234. package/dist/redux/reducers/sessionWrapper.d.ts.map +0 -1
  235. package/dist/redux/selectors.d.ts.map +0 -1
@@ -48,9 +48,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
48
48
  // background click is just a convenience method, not an actual a11y issue
49
49
  import React, { Component } from 'react';
50
50
  import PropTypes from 'prop-types';
51
- import ReactCardFlip from 'react-card-flip';
52
51
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
53
- import { SocketedButton } from '@deephaven/components';
52
+ import { Button, CardFlip, SocketedButton } from '@deephaven/components';
54
53
  import { vsGear } from '@deephaven/icons';
55
54
  import { TableUtils } from '@deephaven/iris-grid';
56
55
  import { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
@@ -390,17 +389,12 @@ var DropdownFilter = /*#__PURE__*/function (_Component) {
390
389
  var valueOptions = this.getValueOptions(values);
391
390
  var selectedOption = this.getSelectedOptionIndex(values, value);
392
391
  var disableSave = !isLinked || selectedColumn == null;
393
- return /*#__PURE__*/React.createElement("div", {
394
- className: "dropdown-filter fill-parent-absolute"
395
- }, /*#__PURE__*/React.createElement(ReactCardFlip, {
396
- isFlipped: isValueShown && !isLinkerActive,
397
- containerStyle: {
398
- width: '100%',
399
- height: '100%'
400
- }
392
+ var isFlipped = isValueShown && !isLinkerActive;
393
+ return /*#__PURE__*/React.createElement(CardFlip, {
394
+ className: "dropdown-filter fill-parent-absolute",
395
+ isFlipped: isFlipped
401
396
  }, /*#__PURE__*/React.createElement("div", {
402
- className: "dropdown-filter-settings-card fill-parent-absolute",
403
- key: "front"
397
+ className: "dropdown-filter-settings-card"
404
398
  }, /*#__PURE__*/React.createElement("div", {
405
399
  className: "dropdown-filter-card-content"
406
400
  }, /*#__PURE__*/React.createElement("div", {
@@ -423,21 +417,23 @@ var DropdownFilter = /*#__PURE__*/function (_Component) {
423
417
  className: "text-muted small"
424
418
  }, "Dropdown filter control will apply its filter to all columns matching this name in this dashboard.")), settingsError && /*#__PURE__*/React.createElement("div", {
425
419
  className: "error-message text-center"
426
- }, settingsError), isLinked && !isValueShown && !isLinkerActive && /*#__PURE__*/React.createElement("div", {
427
- className: "form-row justify-content-end dropdown-filter-settings-buttons"
428
- }, /*#__PURE__*/React.createElement("button", {
420
+ }, settingsError), isLinked && /*#__PURE__*/React.createElement("div", {
421
+ className: "dropdown-filter-settings-buttons"
422
+ }, /*#__PURE__*/React.createElement(Button, {
423
+ kind: "secondary",
429
424
  type: "button",
430
- className: "btn btn-outline-primary",
431
425
  onClick: this.handleSettingsCancel,
432
- disabled: disableCancel
433
- }, "Cancel"), /*#__PURE__*/React.createElement("button", {
426
+ disabled: disableCancel || isValueShown || isLinkerActive,
427
+ tooltip: isLinkerActive ? 'Cancel disabled while linker open' : null
428
+ }, "Cancel"), /*#__PURE__*/React.createElement(Button, {
429
+ kind: "primary",
434
430
  type: "button",
435
- className: "btn btn-primary ml-2",
431
+ className: "ml-2",
436
432
  onClick: this.handleSettingsSave,
437
- disabled: disableSave
433
+ disabled: disableSave || isValueShown || isLinkerActive,
434
+ tooltip: isLinkerActive ? 'Save disabled while linker open' : null
438
435
  }, "Save")))), /*#__PURE__*/React.createElement("div", {
439
- className: "dropdown-filter-value-card fill-parent-absolute",
440
- key: "back",
436
+ className: "dropdown-filter-value-card",
441
437
  onClick: this.handleBackgroundClick
442
438
  }, isLoaded && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
443
439
  className: "dropdown-filter-column"
@@ -464,7 +460,7 @@ var DropdownFilter = /*#__PURE__*/function (_Component) {
464
460
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
465
461
  icon: vsGear,
466
462
  transform: "grow-4"
467
- })))))));
463
+ }))))));
468
464
  }
469
465
  }]);
470
466
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controls/dropdown-filter/DropdownFilter.jsx"],"names":["React","Component","PropTypes","ReactCardFlip","FontAwesomeIcon","SocketedButton","vsGear","TableUtils","APIPropTypes","memoizee","memoize","debounce","Log","UIPropTypes","log","module","UPDATE_DEBOUNCE","DropdownFilter","props","source","columns","filter","type","isCompatibleType","columnType","selectedColumn","selectedIndex","options","push","forEach","columnItem","index","name","getItemLabel","values","value","indexOf","PLACEHOLDER","map","val","length","shortType","substring","lastIndexOf","handleColumnChange","bind","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","handleDropdownKeyPress","handleValueChange","sendUpdate","dropdownRef","createRef","column","isValueShown","state","disableCancel","prevProps","prevState","isLoaded","sourceUpdated","includes","resetValue","focusInput","flush","event","target","debug2","setState","allColumns","getCompatibleColumns","key","preventDefault","stopPropagation","valueIndex","parseInt","error","showSettings","current","onSourceMouseEnter","onSourceMouseLeave","focus","onChange","disableLinking","isLinkerActive","onColumnSelected","settingsError","columnSelectionDisabled","isLinked","sourceButtonLabel","columnName","SOURCE_BUTTON_PLACEHOLDER","filterTitle","getColumnOptions","columnOptions","valueOptions","getValueOptions","selectedOption","getSelectedOptionIndex","disableSave","width","height","SOURCE_BUTTON_CLASS_NAME","propTypes","Column","arrayOf","isRequired","func","bool","string","LinkPoint","defaultProps"],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n// background click is just a convenience method, not an actual a11y issue\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactCardFlip from 'react-card-flip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { SocketedButton } from '@deephaven/components';\nimport { vsGear } from '@deephaven/icons';\nimport { TableUtils } from '@deephaven/iris-grid';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport memoizee from 'memoizee';\nimport memoize from 'memoize-one';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport { UIPropTypes } from '../../prop-types';\nimport './DropdownFilter.scss';\n\nconst log = Log.module('DropdownFilter');\nconst UPDATE_DEBOUNCE = 150;\n\nclass DropdownFilter extends Component {\n static PLACEHOLDER = 'Select a value...';\n\n static SOURCE_BUTTON_CLASS_NAME = 'btn-dropdown-filter-selector';\n\n static SOURCE_BUTTON_PLACEHOLDER = 'Select a column';\n\n constructor(props) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n this.handleDropdownKeyPress = this.handleDropdownKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n\n this.sendUpdate = debounce(this.sendUpdate.bind(this), UPDATE_DEBOUNCE);\n\n this.dropdownRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n selectedColumn: column,\n disableCancel: !isValueShown,\n isValueShown,\n value,\n };\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { source, values, isLoaded } = this.props;\n const { column, value, isValueShown } = this.state;\n\n if (isLoaded) {\n if (source !== prevProps.source) {\n this.sourceUpdated();\n }\n\n if (\n values !== prevProps.values &&\n value !== '' &&\n !values.includes(value)\n ) {\n // Value list loaded, but doesn't contain the current value\n this.resetValue();\n }\n\n if (isValueShown !== prevState.isValueShown) {\n if (isValueShown) {\n this.focusInput();\n }\n }\n\n if (\n column !== prevState.column ||\n value !== prevState.value ||\n isValueShown !== prevState.isValueShown\n ) {\n this.sendUpdate();\n }\n }\n }\n\n componentWillUnmount() {\n this.sendUpdate.flush();\n }\n\n getCompatibleColumns = memoize((source, columns) =>\n source\n ? columns.filter(({ type }) =>\n TableUtils.isCompatibleType(type, source.columnType)\n )\n : []\n );\n\n getColumnOptions = memoize((columns, selectedColumn) => {\n let selectedIndex = -1;\n const options = [];\n options.push(\n <option key=\"placeholder\" value=\"-1\">\n Select a column\n </option>\n );\n columns.forEach((columnItem, index) => {\n options.push(\n <option key={`${columnItem.name}/${columnItem.type}`} value={index}>\n {this.getItemLabel(columns, index)}\n </option>\n );\n if (\n selectedColumn !== null &&\n columnItem.name === selectedColumn.name &&\n columnItem.type === selectedColumn.type\n ) {\n selectedIndex = index;\n }\n });\n return [options, selectedIndex];\n });\n\n getSelectedOptionIndex = memoize((values, value) => values.indexOf(value));\n\n getValueOptions = memoize(values => [\n <option value=\"-1\" key=\"-1\">\n {DropdownFilter.PLACEHOLDER}\n </option>,\n ...values.map((val, index) => (\n <option\n value={index}\n // eslint-disable-next-line react/no-array-index-key\n key={`${index}/${val}`}\n >\n {val}\n </option>\n )),\n ]);\n\n getItemLabel = memoizee((columns, index) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n });\n\n handleColumnChange(event) {\n const { value } = event.target;\n log.debug2('handleColumnChange', value);\n if (value < 0) {\n this.setState({\n selectedColumn: null,\n });\n return;\n }\n const { columns: allColumns, source } = this.props;\n const columns = this.getCompatibleColumns(source, allColumns);\n this.setState({\n selectedColumn: columns[value],\n });\n }\n\n handleDropdownKeyPress(event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n\n log.debug2('handleDropdownKeyPress');\n\n this.sendUpdate();\n this.sendUpdate.flush();\n }\n }\n\n handleValueChange(event) {\n const { value: valueIndex } = event.target;\n const index = parseInt(valueIndex, 10);\n // Default empty string value for 'clear filter'\n let value = '';\n const { values } = this.props;\n if (index === -1) {\n log.debug2('Selected default item');\n } else if (index >= 0 && index < values.length) {\n value = values[index];\n } else {\n log.error('Invalid index', index, values);\n return;\n }\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel() {\n this.setState(({ column }) => ({\n selectedColumn: column,\n isValueShown: true,\n }));\n }\n\n handleSettingsSave() {\n this.setState(({ column, selectedColumn, value }) => ({\n column: selectedColumn,\n // Reset value if column changed\n value: column === selectedColumn ? value : '',\n isValueShown: true,\n disableCancel: false,\n }));\n }\n\n handleSettingsClick(event) {\n event.stopPropagation();\n this.showSettings();\n }\n\n handleBackgroundClick(event) {\n // allow clicking anywhere in the background to select and focus the input\n if (event.target !== this.dropdownRef.current) {\n this.focusInput();\n }\n }\n\n handleMouseEnter() {\n const { onSourceMouseEnter } = this.props;\n onSourceMouseEnter();\n }\n\n handleMouseLeave() {\n const { onSourceMouseLeave } = this.props;\n onSourceMouseLeave();\n }\n\n sourceUpdated() {\n this.setState({\n column: null,\n selectedColumn: null,\n isValueShown: false,\n disableCancel: true,\n value: '',\n });\n }\n\n showSettings() {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n }\n\n focusInput() {\n if (this.dropdownRef.current !== null) {\n this.dropdownRef.current.focus();\n }\n }\n\n resetValue() {\n this.setState({ value: '' });\n }\n\n // Called by the parent component via ref\n clearFilter() {\n this.resetValue();\n }\n\n sendUpdate() {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value });\n }\n\n render() {\n const {\n columns: allColumns,\n disableLinking,\n isLinkerActive,\n isLoaded,\n source,\n onColumnSelected,\n onSourceMouseEnter,\n onSourceMouseLeave,\n values,\n settingsError,\n } = this.props;\n const {\n column,\n disableCancel,\n isValueShown,\n selectedColumn,\n value,\n } = this.state;\n const columnSelectionDisabled = source === null;\n const columns = this.getCompatibleColumns(source, allColumns);\n const isLinked = source != null;\n const sourceButtonLabel =\n source?.columnName ?? DropdownFilter.SOURCE_BUTTON_PLACEHOLDER;\n const filterTitle = column != null ? `${column.name} Filter` : null;\n const [columnOptions, selectedIndex] = this.getColumnOptions(\n columns,\n selectedColumn\n );\n const valueOptions = this.getValueOptions(values);\n const selectedOption = this.getSelectedOptionIndex(values, value);\n const disableSave = !isLinked || selectedColumn == null;\n\n return (\n <div className=\"dropdown-filter fill-parent-absolute\">\n <ReactCardFlip\n isFlipped={isValueShown && !isLinkerActive}\n containerStyle={{ width: '100%', height: '100%' }}\n >\n <div\n className=\"dropdown-filter-settings-card fill-parent-absolute\"\n key=\"front\"\n >\n <div className=\"dropdown-filter-card-content\">\n <div className=\"dropdown-filter-settings-grid\">\n <label>Source Column</label>\n <SocketedButton\n isLinked={isLinked}\n onClick={onColumnSelected}\n onMouseEnter={onSourceMouseEnter}\n onMouseLeave={onSourceMouseLeave}\n className={DropdownFilter.SOURCE_BUTTON_CLASS_NAME}\n disabled={disableLinking}\n >\n {sourceButtonLabel}\n </SocketedButton>\n\n <div className=\"text-muted small\">\n Select a source column for the list by linking to a table.\n </div>\n\n <label>Filter Column</label>\n <select\n value={selectedIndex}\n className=\"custom-select\"\n onChange={this.handleColumnChange}\n disabled={columnSelectionDisabled}\n >\n {columnOptions}\n </select>\n <div className=\"text-muted small\">\n Dropdown filter control will apply its filter to all columns\n matching this name in this dashboard.\n </div>\n </div>\n\n {settingsError && (\n <div className=\"error-message text-center\">{settingsError}</div>\n )}\n\n {isLinked && !isValueShown && !isLinkerActive && (\n <div className=\"form-row justify-content-end dropdown-filter-settings-buttons\">\n <button\n type=\"button\"\n className=\"btn btn-outline-primary\"\n onClick={this.handleSettingsCancel}\n disabled={disableCancel}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"btn btn-primary ml-2\"\n onClick={this.handleSettingsSave}\n disabled={disableSave}\n >\n Save\n </button>\n </div>\n )}\n </div>\n </div>\n <div\n className=\"dropdown-filter-value-card fill-parent-absolute\"\n key=\"back\"\n onClick={this.handleBackgroundClick}\n >\n {isLoaded && (\n <>\n <div className=\"dropdown-filter-column\">\n <div className=\"dropdown-filter-column-title\">\n {filterTitle}\n </div>\n </div>\n <div className=\"dropdown-filter-card-content\">\n <div className=\"dropdown-filter-value-input d-flex flex-column justify-content-center\">\n <select\n className=\"custom-select\"\n value={selectedOption}\n ref={this.dropdownRef}\n onChange={this.handleValueChange}\n onKeyPress={this.handleDropdownKeyPress}\n >\n {valueOptions}\n </select>\n </div>\n {settingsError && (\n <div className=\"error-message mt-3 text-center\">\n {settingsError}\n </div>\n )}\n </div>\n <div className=\"dropdown-filter-menu\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon m-2 px-2\"\n onClick={this.handleSettingsClick}\n >\n <FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />\n </button>\n </div>\n </>\n )}\n </div>\n </ReactCardFlip>\n </div>\n );\n }\n}\n\nDropdownFilter.propTypes = {\n column: APIPropTypes.Column,\n columns: PropTypes.arrayOf(APIPropTypes.Column).isRequired,\n onSourceMouseEnter: PropTypes.func,\n onSourceMouseLeave: PropTypes.func,\n disableLinking: PropTypes.bool,\n isLinkerActive: PropTypes.bool,\n isLoaded: PropTypes.bool,\n isValueShown: PropTypes.bool,\n settingsError: PropTypes.string,\n source: UIPropTypes.LinkPoint,\n value: PropTypes.string,\n values: PropTypes.arrayOf(PropTypes.string),\n onChange: PropTypes.func.isRequired,\n onColumnSelected: PropTypes.func,\n};\n\nDropdownFilter.defaultProps = {\n column: null,\n disableLinking: false,\n isLinkerActive: false,\n isLoaded: false,\n isValueShown: false,\n\n settingsError: null,\n source: null,\n value: '',\n values: [],\n onColumnSelected: () => {},\n onSourceMouseEnter: () => {},\n onSourceMouseLeave: () => {},\n};\n\nexport default DropdownFilter;\n"],"file":"DropdownFilter.js"}
1
+ {"version":3,"sources":["../../../src/controls/dropdown-filter/DropdownFilter.jsx"],"names":["React","Component","PropTypes","FontAwesomeIcon","Button","CardFlip","SocketedButton","vsGear","TableUtils","APIPropTypes","memoizee","memoize","debounce","Log","UIPropTypes","log","module","UPDATE_DEBOUNCE","DropdownFilter","props","source","columns","filter","type","isCompatibleType","columnType","selectedColumn","selectedIndex","options","push","forEach","columnItem","index","name","getItemLabel","values","value","indexOf","PLACEHOLDER","map","val","length","shortType","substring","lastIndexOf","handleColumnChange","bind","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","handleDropdownKeyPress","handleValueChange","sendUpdate","dropdownRef","createRef","column","isValueShown","state","disableCancel","prevProps","prevState","isLoaded","sourceUpdated","includes","resetValue","focusInput","flush","event","target","debug2","setState","allColumns","getCompatibleColumns","key","preventDefault","stopPropagation","valueIndex","parseInt","error","showSettings","current","onSourceMouseEnter","onSourceMouseLeave","focus","onChange","disableLinking","isLinkerActive","onColumnSelected","settingsError","columnSelectionDisabled","isLinked","sourceButtonLabel","columnName","SOURCE_BUTTON_PLACEHOLDER","filterTitle","getColumnOptions","columnOptions","valueOptions","getValueOptions","selectedOption","getSelectedOptionIndex","disableSave","isFlipped","SOURCE_BUTTON_CLASS_NAME","propTypes","Column","arrayOf","isRequired","func","bool","string","LinkPoint","defaultProps"],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n// background click is just a convenience method, not an actual a11y issue\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { Button, CardFlip, SocketedButton } from '@deephaven/components';\nimport { vsGear } from '@deephaven/icons';\nimport { TableUtils } from '@deephaven/iris-grid';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport memoizee from 'memoizee';\nimport memoize from 'memoize-one';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport { UIPropTypes } from '../../prop-types';\nimport './DropdownFilter.scss';\n\nconst log = Log.module('DropdownFilter');\nconst UPDATE_DEBOUNCE = 150;\n\nclass DropdownFilter extends Component {\n static PLACEHOLDER = 'Select a value...';\n\n static SOURCE_BUTTON_CLASS_NAME = 'btn-dropdown-filter-selector';\n\n static SOURCE_BUTTON_PLACEHOLDER = 'Select a column';\n\n constructor(props) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n this.handleDropdownKeyPress = this.handleDropdownKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n\n this.sendUpdate = debounce(this.sendUpdate.bind(this), UPDATE_DEBOUNCE);\n\n this.dropdownRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n selectedColumn: column,\n disableCancel: !isValueShown,\n isValueShown,\n value,\n };\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { source, values, isLoaded } = this.props;\n const { column, value, isValueShown } = this.state;\n\n if (isLoaded) {\n if (source !== prevProps.source) {\n this.sourceUpdated();\n }\n\n if (\n values !== prevProps.values &&\n value !== '' &&\n !values.includes(value)\n ) {\n // Value list loaded, but doesn't contain the current value\n this.resetValue();\n }\n\n if (isValueShown !== prevState.isValueShown) {\n if (isValueShown) {\n this.focusInput();\n }\n }\n\n if (\n column !== prevState.column ||\n value !== prevState.value ||\n isValueShown !== prevState.isValueShown\n ) {\n this.sendUpdate();\n }\n }\n }\n\n componentWillUnmount() {\n this.sendUpdate.flush();\n }\n\n getCompatibleColumns = memoize((source, columns) =>\n source\n ? columns.filter(({ type }) =>\n TableUtils.isCompatibleType(type, source.columnType)\n )\n : []\n );\n\n getColumnOptions = memoize((columns, selectedColumn) => {\n let selectedIndex = -1;\n const options = [];\n options.push(\n <option key=\"placeholder\" value=\"-1\">\n Select a column\n </option>\n );\n columns.forEach((columnItem, index) => {\n options.push(\n <option key={`${columnItem.name}/${columnItem.type}`} value={index}>\n {this.getItemLabel(columns, index)}\n </option>\n );\n if (\n selectedColumn !== null &&\n columnItem.name === selectedColumn.name &&\n columnItem.type === selectedColumn.type\n ) {\n selectedIndex = index;\n }\n });\n return [options, selectedIndex];\n });\n\n getSelectedOptionIndex = memoize((values, value) => values.indexOf(value));\n\n getValueOptions = memoize(values => [\n <option value=\"-1\" key=\"-1\">\n {DropdownFilter.PLACEHOLDER}\n </option>,\n ...values.map((val, index) => (\n <option\n value={index}\n // eslint-disable-next-line react/no-array-index-key\n key={`${index}/${val}`}\n >\n {val}\n </option>\n )),\n ]);\n\n getItemLabel = memoizee((columns, index) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n });\n\n handleColumnChange(event) {\n const { value } = event.target;\n log.debug2('handleColumnChange', value);\n if (value < 0) {\n this.setState({\n selectedColumn: null,\n });\n return;\n }\n const { columns: allColumns, source } = this.props;\n const columns = this.getCompatibleColumns(source, allColumns);\n this.setState({\n selectedColumn: columns[value],\n });\n }\n\n handleDropdownKeyPress(event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n\n log.debug2('handleDropdownKeyPress');\n\n this.sendUpdate();\n this.sendUpdate.flush();\n }\n }\n\n handleValueChange(event) {\n const { value: valueIndex } = event.target;\n const index = parseInt(valueIndex, 10);\n // Default empty string value for 'clear filter'\n let value = '';\n const { values } = this.props;\n if (index === -1) {\n log.debug2('Selected default item');\n } else if (index >= 0 && index < values.length) {\n value = values[index];\n } else {\n log.error('Invalid index', index, values);\n return;\n }\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel() {\n this.setState(({ column }) => ({\n selectedColumn: column,\n isValueShown: true,\n }));\n }\n\n handleSettingsSave() {\n this.setState(({ column, selectedColumn, value }) => ({\n column: selectedColumn,\n // Reset value if column changed\n value: column === selectedColumn ? value : '',\n isValueShown: true,\n disableCancel: false,\n }));\n }\n\n handleSettingsClick(event) {\n event.stopPropagation();\n this.showSettings();\n }\n\n handleBackgroundClick(event) {\n // allow clicking anywhere in the background to select and focus the input\n if (event.target !== this.dropdownRef.current) {\n this.focusInput();\n }\n }\n\n handleMouseEnter() {\n const { onSourceMouseEnter } = this.props;\n onSourceMouseEnter();\n }\n\n handleMouseLeave() {\n const { onSourceMouseLeave } = this.props;\n onSourceMouseLeave();\n }\n\n sourceUpdated() {\n this.setState({\n column: null,\n selectedColumn: null,\n isValueShown: false,\n disableCancel: true,\n value: '',\n });\n }\n\n showSettings() {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n }\n\n focusInput() {\n if (this.dropdownRef.current !== null) {\n this.dropdownRef.current.focus();\n }\n }\n\n resetValue() {\n this.setState({ value: '' });\n }\n\n // Called by the parent component via ref\n clearFilter() {\n this.resetValue();\n }\n\n sendUpdate() {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value });\n }\n\n render() {\n const {\n columns: allColumns,\n disableLinking,\n isLinkerActive,\n isLoaded,\n source,\n onColumnSelected,\n onSourceMouseEnter,\n onSourceMouseLeave,\n values,\n settingsError,\n } = this.props;\n const {\n column,\n disableCancel,\n isValueShown,\n selectedColumn,\n value,\n } = this.state;\n const columnSelectionDisabled = source === null;\n const columns = this.getCompatibleColumns(source, allColumns);\n const isLinked = source != null;\n const sourceButtonLabel =\n source?.columnName ?? DropdownFilter.SOURCE_BUTTON_PLACEHOLDER;\n const filterTitle = column != null ? `${column.name} Filter` : null;\n const [columnOptions, selectedIndex] = this.getColumnOptions(\n columns,\n selectedColumn\n );\n const valueOptions = this.getValueOptions(values);\n const selectedOption = this.getSelectedOptionIndex(values, value);\n const disableSave = !isLinked || selectedColumn == null;\n\n const isFlipped = isValueShown && !isLinkerActive;\n\n return (\n <CardFlip\n className=\"dropdown-filter fill-parent-absolute\"\n isFlipped={isFlipped}\n >\n <div className=\"dropdown-filter-settings-card\">\n <div className=\"dropdown-filter-card-content\">\n <div className=\"dropdown-filter-settings-grid\">\n <label>Source Column</label>\n <SocketedButton\n isLinked={isLinked}\n onClick={onColumnSelected}\n onMouseEnter={onSourceMouseEnter}\n onMouseLeave={onSourceMouseLeave}\n className={DropdownFilter.SOURCE_BUTTON_CLASS_NAME}\n disabled={disableLinking}\n >\n {sourceButtonLabel}\n </SocketedButton>\n\n <div className=\"text-muted small\">\n Select a source column for the list by linking to a table.\n </div>\n\n <label>Filter Column</label>\n <select\n value={selectedIndex}\n className=\"custom-select\"\n onChange={this.handleColumnChange}\n disabled={columnSelectionDisabled}\n >\n {columnOptions}\n </select>\n <div className=\"text-muted small\">\n Dropdown filter control will apply its filter to all columns\n matching this name in this dashboard.\n </div>\n </div>\n {settingsError && (\n <div className=\"error-message text-center\">{settingsError}</div>\n )}\n {isLinked && (\n <div className=\"dropdown-filter-settings-buttons\">\n <Button\n kind=\"secondary\"\n type=\"button\"\n onClick={this.handleSettingsCancel}\n disabled={disableCancel || isValueShown || isLinkerActive}\n tooltip={\n isLinkerActive ? 'Cancel disabled while linker open' : null\n }\n >\n Cancel\n </Button>\n <Button\n kind=\"primary\"\n type=\"button\"\n className=\"ml-2\"\n onClick={this.handleSettingsSave}\n disabled={disableSave || isValueShown || isLinkerActive}\n tooltip={\n isLinkerActive ? 'Save disabled while linker open' : null\n }\n >\n Save\n </Button>\n </div>\n )}\n </div>\n </div>\n\n <div\n className=\"dropdown-filter-value-card\"\n onClick={this.handleBackgroundClick}\n >\n {isLoaded && (\n <>\n <div className=\"dropdown-filter-column\">\n <div className=\"dropdown-filter-column-title\">\n {filterTitle}\n </div>\n </div>\n <div className=\"dropdown-filter-card-content\">\n <div className=\"dropdown-filter-value-input d-flex flex-column justify-content-center\">\n <select\n className=\"custom-select\"\n value={selectedOption}\n ref={this.dropdownRef}\n onChange={this.handleValueChange}\n onKeyPress={this.handleDropdownKeyPress}\n >\n {valueOptions}\n </select>\n </div>\n {settingsError && (\n <div className=\"error-message mt-3 text-center\">\n {settingsError}\n </div>\n )}\n </div>\n <div className=\"dropdown-filter-menu\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon m-2 px-2\"\n onClick={this.handleSettingsClick}\n >\n <FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />\n </button>\n </div>\n </>\n )}\n </div>\n </CardFlip>\n );\n }\n}\n\nDropdownFilter.propTypes = {\n column: APIPropTypes.Column,\n columns: PropTypes.arrayOf(APIPropTypes.Column).isRequired,\n onSourceMouseEnter: PropTypes.func,\n onSourceMouseLeave: PropTypes.func,\n disableLinking: PropTypes.bool,\n isLinkerActive: PropTypes.bool,\n isLoaded: PropTypes.bool,\n isValueShown: PropTypes.bool,\n settingsError: PropTypes.string,\n source: UIPropTypes.LinkPoint,\n value: PropTypes.string,\n values: PropTypes.arrayOf(PropTypes.string),\n onChange: PropTypes.func.isRequired,\n onColumnSelected: PropTypes.func,\n};\n\nDropdownFilter.defaultProps = {\n column: null,\n disableLinking: false,\n isLinkerActive: false,\n isLoaded: false,\n isValueShown: false,\n\n settingsError: null,\n source: null,\n value: '',\n values: [],\n onColumnSelected: () => {},\n onSourceMouseEnter: () => {},\n onSourceMouseLeave: () => {},\n};\n\nexport default DropdownFilter;\n"],"file":"DropdownFilter.js"}
@@ -1,29 +1,25 @@
1
1
  .input-filter-panel-component .lm_content {
2
- z-index: 15;
3
2
  overflow: visible;
4
3
  }
5
- .input-filter-panel-component .react-card-front,
6
- .input-filter-panel-component .react-card-back {
7
- overflow: hidden;
8
- }
9
4
 
10
5
  .input-filter {
11
6
  background: #1a171a;
12
7
  }
13
8
  .input-filter .input-filter-settings-card,
14
9
  .input-filter .input-filter-value-card {
10
+ position: relative;
11
+ overflow: auto;
12
+ height: 100%;
15
13
  background: #2d2a2e;
16
14
  }
17
15
  .input-filter .input-filter-settings-card {
18
- overflow: auto;
19
16
  display: flex;
20
17
  justify-content: center;
18
+ align-items: center;
21
19
  }
22
- .input-filter .input-filter-settings {
23
- display: flex;
24
- flex-direction: column;
25
- justify-content: center;
26
- padding: 1rem;
20
+ .input-filter .input-filter-settings-content {
21
+ margin: auto;
22
+ padding: 0.25rem;
27
23
  }
28
24
  .input-filter .input-filter-settings-grid {
29
25
  display: grid;
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../../../src/controls/input-filter/InputFilter.scss","../../../../components/scss/bootstrap_overrides.scss","../../../../../node_modules/bootstrap/scss/_variables.scss","../../../../components/scss/new_variables.scss"],"names":[],"mappings":"AAKE;EAEE;EACA;;AAGF;AAAA;EAGE;;;AAIJ;EACE,YCLe;;ADOf;AAAA;EAEE,YCZY;;ADgBd;EACE;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA,SEmGK;;AFhGP;EACE;EACA;EACA;EACA,YGzCO;EH0CP,SG1CO;EH2CP,gBE0FK;;AFxFL;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA,SGhEO;EHiEP,OC/CO;EDgDP;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA,SG9EO;;AHgFP;EACE;EACA,OCvEW;EDwEX;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA","file":"InputFilter.css"}
1
+ {"version":3,"sourceRoot":"","sources":["../../../src/controls/input-filter/InputFilter.scss","../../../../components/scss/bootstrap_overrides.scss","../../../../components/scss/new_variables.scss","../../../../../node_modules/bootstrap/scss/_variables.scss"],"names":[],"mappings":"AAKE;EAEE;;;AAIJ;EACE,YCEe;;ADAf;AAAA;EAEE;EACA;EACA;EACA,YCRY;;ADYd;EACE;EACA;EACA;;AAGF;EACE;EACA,SE7BO;;AFgCT;EACE;EACA;EACA;EACA,YEnCO;EFoCP,SEpCO;EFqCP,gBGgGK;;AH9FL;EACE;;AAGF;EACE;;AAIJ;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA,SE1DO;EF2DP,OCzCO;ED0CP;;AAGF;EACE;EACA;EACA;;AAGF;EACE;EACA,SExEO;;AF0EP;EACE;EACA,OCjEW;EDkEX;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA","file":"InputFilter.css"}
@@ -28,7 +28,7 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
28
28
  // background click is just a convience method, not an actual a11y issue
29
29
  import React, { Component } from 'react';
30
30
  import PropTypes from 'prop-types';
31
- import ReactCardFlip from 'react-card-flip';
31
+ import { CardFlip } from '@deephaven/components';
32
32
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
33
33
  import { vsGear } from '@deephaven/icons';
34
34
  import { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
@@ -242,19 +242,13 @@ var InputFilter = /*#__PURE__*/function (_Component) {
242
242
  titleLabel = columnIndex >= 0 ? this.getItemLabel(columns, columnIndex) : column.name;
243
243
  }
244
244
 
245
- return /*#__PURE__*/React.createElement("div", {
246
- className: "input-filter fill-parent-absolute"
247
- }, /*#__PURE__*/React.createElement(ReactCardFlip, {
248
- isFlipped: isValueShown,
249
- containerStyle: {
250
- width: '100%',
251
- height: '100%'
252
- }
245
+ return /*#__PURE__*/React.createElement(CardFlip, {
246
+ className: "input-filter fill-parent-absolute",
247
+ isFlipped: isValueShown
253
248
  }, /*#__PURE__*/React.createElement("div", {
254
- className: "input-filter-settings-card fill-parent-absolute",
255
- key: "front"
249
+ className: "input-filter-settings-card"
256
250
  }, /*#__PURE__*/React.createElement("div", {
257
- className: "input-filter-settings"
251
+ className: "input-filter-settings-content"
258
252
  }, /*#__PURE__*/React.createElement("div", {
259
253
  className: "input-filter-settings-grid"
260
254
  }, /*#__PURE__*/React.createElement("label", null, "Filter Column"), /*#__PURE__*/React.createElement("select", {
@@ -286,8 +280,7 @@ var InputFilter = /*#__PURE__*/function (_Component) {
286
280
  onClick: this.handleSettingsSave,
287
281
  disabled: selectedColumn == null
288
282
  }, "Save")))), /*#__PURE__*/React.createElement("div", {
289
- className: "input-filter-value-card h-100 w-100",
290
- key: "back",
283
+ className: "input-filter-value-card",
291
284
  onClick: this.handleBackgroundClick
292
285
  }, /*#__PURE__*/React.createElement("div", {
293
286
  className: "input-filter-column"
@@ -317,7 +310,7 @@ var InputFilter = /*#__PURE__*/function (_Component) {
317
310
  }, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
318
311
  icon: vsGear,
319
312
  transform: "grow-4"
320
- }))))));
313
+ })))));
321
314
  }
322
315
  }]);
323
316
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controls/input-filter/InputFilter.jsx"],"names":["React","Component","PropTypes","ReactCardFlip","FontAwesomeIcon","vsGear","APIPropTypes","memoizee","debounce","Log","log","module","UPDATE_DEBOUNCE","InputFilter","props","columns","index","name","type","length","shortType","substring","lastIndexOf","handleColumnChange","bind","handleInputKeyPress","handleValueChange","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","sendUpdate","inputRef","createRef","column","isValueShown","value","state","selectedColumn","prevProps","prevState","propColumn","setState","focusInput","flush","event","target","debug2","key","preventDefault","stopPropagation","current","select","focus","onChange","inputLength","PLACEHOLDER","titleLabel","columnIndex","findIndex","item","getItemLabel","width","height","map","columnItem","propTypes","arrayOf","Column","isRequired","bool","string","func","defaultProps"],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n// background click is just a convience method, not an actual a11y issue\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport ReactCardFlip from 'react-card-flip';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGear } from '@deephaven/icons';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport memoizee from 'memoizee';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport './InputFilter.scss';\n\nconst log = Log.module('InputFilter');\nconst UPDATE_DEBOUNCE = 150;\n\nclass InputFilter extends Component {\n static PLACEHOLDER = 'Enter value...';\n\n constructor(props) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleInputKeyPress = this.handleInputKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n this.sendUpdate = debounce(this.sendUpdate.bind(this), UPDATE_DEBOUNCE);\n\n this.inputRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n selectedColumn: column,\n value,\n isValueShown,\n };\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { column: propColumn } = this.props;\n const { column, value, isValueShown } = this.state;\n\n if (propColumn !== prevProps.column) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ column: propColumn, selectedColumn: propColumn });\n }\n\n if (isValueShown && isValueShown !== prevState.isValueShown) {\n this.focusInput();\n }\n\n if (\n column !== prevState.column ||\n value !== prevState.value ||\n isValueShown !== prevState.isValueShown\n ) {\n this.sendUpdate();\n }\n }\n\n componentWillUnmount() {\n this.sendUpdate.flush();\n }\n\n getItemLabel = memoizee((columns, index) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n });\n\n handleColumnChange(event) {\n const { columns } = this.props;\n const { value } = event.target;\n const selectedColumn = columns[value];\n\n log.debug2('handleColumnChange', selectedColumn);\n\n this.setState({ selectedColumn, value: null });\n }\n\n handleInputKeyPress(event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n this.setState(\n ({ value }) => (value == null ? { value: '' } : null),\n () => {\n this.sendUpdate();\n this.sendUpdate.flush();\n }\n );\n }\n }\n\n handleValueChange(event) {\n const { value } = event.target;\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel() {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: true });\n }\n\n handleSettingsSave() {\n const { selectedColumn } = this.state;\n this.setState({ column: selectedColumn, isValueShown: true });\n }\n\n handleSettingsClick(event) {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n event.stopPropagation();\n }\n\n handleBackgroundClick(event) {\n // allow clicking anywhere in the background to select and focus the input\n if (event.target !== this.inputRef.current) {\n this.focusInput();\n }\n }\n\n focusInput() {\n if (this.inputRef.current !== null) {\n this.inputRef.current.select();\n this.inputRef.current.focus();\n }\n }\n\n clearFilter() {\n this.setState({ value: '' });\n }\n\n sendUpdate() {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value });\n }\n\n render() {\n const { columns } = this.props;\n const { column, isValueShown, selectedColumn, value } = this.state;\n const inputLength =\n value == null || value.length === 0\n ? InputFilter.PLACEHOLDER.length\n : value.length;\n let titleLabel = null;\n if (column != null) {\n const columnIndex = columns.findIndex(\n item => item.name === column.name && item.type === column.type\n );\n titleLabel =\n columnIndex >= 0\n ? this.getItemLabel(columns, columnIndex)\n : column.name;\n }\n\n return (\n <div className=\"input-filter fill-parent-absolute\">\n <ReactCardFlip\n isFlipped={isValueShown}\n containerStyle={{ width: '100%', height: '100%' }}\n >\n <div\n className=\"input-filter-settings-card fill-parent-absolute\"\n key=\"front\"\n >\n <div className=\"input-filter-settings\">\n <div className=\"input-filter-settings-grid\">\n <label>Filter Column</label>\n <select\n value={columns.findIndex(\n item =>\n item.name === selectedColumn?.name &&\n item.type === selectedColumn?.type\n )}\n className=\"custom-select\"\n onChange={this.handleColumnChange}\n >\n {columns.map((columnItem, index) => (\n <option\n key={`${columnItem.name}/${columnItem.type}`}\n value={index}\n >\n {this.getItemLabel(columns, index)}\n </option>\n ))}\n {columns.length === 0 && (\n <option value=\"-1\" disabled>\n No Available Columns\n </option>\n )}\n </select>\n <div className=\"text-muted small\">\n Input filter control will apply its filter to all columns\n matching this name in this dashboard.\n </div>\n </div>\n <div className=\"input-filter-settings-buttons\">\n <button\n type=\"button\"\n className=\"btn btn-outline-primary\"\n onClick={this.handleSettingsCancel}\n disabled={column == null}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"btn btn-primary ml-2\"\n onClick={this.handleSettingsSave}\n disabled={selectedColumn == null}\n >\n Save\n </button>\n </div>\n </div>\n </div>\n <div\n className=\"input-filter-value-card h-100 w-100\"\n key=\"back\"\n onClick={this.handleBackgroundClick}\n >\n <div className=\"input-filter-column\">\n <div className=\"input-filter-column-title\">\n {titleLabel} Filter\n </div>\n </div>\n <div className=\"d-flex justify-content-center align-items-center h-100 w-100\">\n <div className=\"input-filter-value-input d-flex flex-column justify-content-center\">\n <input\n type=\"text\"\n ref={this.inputRef}\n placeholder={InputFilter.PLACEHOLDER}\n value={value ?? ''}\n onChange={this.handleValueChange}\n onKeyPress={this.handleInputKeyPress}\n style={{ width: `${inputLength + 3}ch` }}\n spellCheck=\"false\"\n />\n </div>\n </div>\n <div className=\"input-filter-menu\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon m-2 px-2\"\n onClick={this.handleSettingsClick}\n >\n <FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />\n </button>\n </div>\n </div>\n </ReactCardFlip>\n </div>\n );\n }\n}\n\nInputFilter.propTypes = {\n columns: PropTypes.arrayOf(APIPropTypes.Column).isRequired,\n column: APIPropTypes.Column,\n isValueShown: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n};\n\nInputFilter.defaultProps = {\n column: null,\n isValueShown: false,\n value: null,\n};\n\nexport default InputFilter;\n"],"file":"InputFilter.js"}
1
+ {"version":3,"sources":["../../../src/controls/input-filter/InputFilter.jsx"],"names":["React","Component","PropTypes","CardFlip","FontAwesomeIcon","vsGear","APIPropTypes","memoizee","debounce","Log","log","module","UPDATE_DEBOUNCE","InputFilter","props","columns","index","name","type","length","shortType","substring","lastIndexOf","handleColumnChange","bind","handleInputKeyPress","handleValueChange","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","sendUpdate","inputRef","createRef","column","isValueShown","value","state","selectedColumn","prevProps","prevState","propColumn","setState","focusInput","flush","event","target","debug2","key","preventDefault","stopPropagation","current","select","focus","onChange","inputLength","PLACEHOLDER","titleLabel","columnIndex","findIndex","item","getItemLabel","map","columnItem","width","propTypes","arrayOf","Column","isRequired","bool","string","func","defaultProps"],"mappings":"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","sourcesContent":["/* eslint-disable jsx-a11y/click-events-have-key-events */\n/* eslint-disable jsx-a11y/no-static-element-interactions */\n// background click is just a convience method, not an actual a11y issue\n\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { CardFlip } from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGear } from '@deephaven/icons';\nimport { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';\nimport memoizee from 'memoizee';\nimport debounce from 'lodash.debounce';\nimport Log from '@deephaven/log';\nimport './InputFilter.scss';\n\nconst log = Log.module('InputFilter');\nconst UPDATE_DEBOUNCE = 150;\n\nclass InputFilter extends Component {\n static PLACEHOLDER = 'Enter value...';\n\n constructor(props) {\n super(props);\n\n this.handleColumnChange = this.handleColumnChange.bind(this);\n this.handleInputKeyPress = this.handleInputKeyPress.bind(this);\n this.handleValueChange = this.handleValueChange.bind(this);\n this.handleSettingsCancel = this.handleSettingsCancel.bind(this);\n this.handleSettingsClick = this.handleSettingsClick.bind(this);\n this.handleSettingsSave = this.handleSettingsSave.bind(this);\n this.handleBackgroundClick = this.handleBackgroundClick.bind(this);\n this.sendUpdate = debounce(this.sendUpdate.bind(this), UPDATE_DEBOUNCE);\n\n this.inputRef = React.createRef();\n\n const { column, isValueShown, value } = props;\n this.state = {\n column,\n selectedColumn: column,\n value,\n isValueShown,\n };\n }\n\n componentDidUpdate(prevProps, prevState) {\n const { column: propColumn } = this.props;\n const { column, value, isValueShown } = this.state;\n\n if (propColumn !== prevProps.column) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ column: propColumn, selectedColumn: propColumn });\n }\n\n if (isValueShown && isValueShown !== prevState.isValueShown) {\n this.focusInput();\n }\n\n if (\n column !== prevState.column ||\n value !== prevState.value ||\n isValueShown !== prevState.isValueShown\n ) {\n this.sendUpdate();\n }\n }\n\n componentWillUnmount() {\n this.sendUpdate.flush();\n }\n\n getItemLabel = memoizee((columns, index) => {\n const { name, type } = columns[index];\n\n if (\n (index > 0 && columns[index - 1].name === name) ||\n (index < columns.length - 1 && columns[index + 1].name === name)\n ) {\n const shortType = type.substring(type.lastIndexOf('.') + 1);\n return `${name} (${shortType})`;\n }\n\n return name;\n });\n\n handleColumnChange(event) {\n const { columns } = this.props;\n const { value } = event.target;\n const selectedColumn = columns[value];\n\n log.debug2('handleColumnChange', selectedColumn);\n\n this.setState({ selectedColumn, value: null });\n }\n\n handleInputKeyPress(event) {\n if (event.key === 'Enter') {\n event.preventDefault();\n event.stopPropagation();\n this.setState(\n ({ value }) => (value == null ? { value: '' } : null),\n () => {\n this.sendUpdate();\n this.sendUpdate.flush();\n }\n );\n }\n }\n\n handleValueChange(event) {\n const { value } = event.target;\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel() {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: true });\n }\n\n handleSettingsSave() {\n const { selectedColumn } = this.state;\n this.setState({ column: selectedColumn, isValueShown: true });\n }\n\n handleSettingsClick(event) {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n event.stopPropagation();\n }\n\n handleBackgroundClick(event) {\n // allow clicking anywhere in the background to select and focus the input\n if (event.target !== this.inputRef.current) {\n this.focusInput();\n }\n }\n\n focusInput() {\n if (this.inputRef.current !== null) {\n this.inputRef.current.select();\n this.inputRef.current.focus();\n }\n }\n\n clearFilter() {\n this.setState({ value: '' });\n }\n\n sendUpdate() {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value });\n }\n\n render() {\n const { columns } = this.props;\n const { column, isValueShown, selectedColumn, value } = this.state;\n const inputLength =\n value == null || value.length === 0\n ? InputFilter.PLACEHOLDER.length\n : value.length;\n let titleLabel = null;\n if (column != null) {\n const columnIndex = columns.findIndex(\n item => item.name === column.name && item.type === column.type\n );\n titleLabel =\n columnIndex >= 0\n ? this.getItemLabel(columns, columnIndex)\n : column.name;\n }\n\n return (\n <CardFlip\n className=\"input-filter fill-parent-absolute\"\n isFlipped={isValueShown}\n >\n <div className=\"input-filter-settings-card\">\n <div className=\"input-filter-settings-content\">\n <div className=\"input-filter-settings-grid\">\n <label>Filter Column</label>\n <select\n value={columns.findIndex(\n item =>\n item.name === selectedColumn?.name &&\n item.type === selectedColumn?.type\n )}\n className=\"custom-select\"\n onChange={this.handleColumnChange}\n >\n {columns.map((columnItem, index) => (\n <option\n key={`${columnItem.name}/${columnItem.type}`}\n value={index}\n >\n {this.getItemLabel(columns, index)}\n </option>\n ))}\n {columns.length === 0 && (\n <option value=\"-1\" disabled>\n No Available Columns\n </option>\n )}\n </select>\n <div className=\"text-muted small\">\n Input filter control will apply its filter to all columns\n matching this name in this dashboard.\n </div>\n </div>\n <div className=\"input-filter-settings-buttons\">\n <button\n type=\"button\"\n className=\"btn btn-outline-primary\"\n onClick={this.handleSettingsCancel}\n disabled={column == null}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className=\"btn btn-primary ml-2\"\n onClick={this.handleSettingsSave}\n disabled={selectedColumn == null}\n >\n Save\n </button>\n </div>\n </div>\n </div>\n\n <div\n className=\"input-filter-value-card\"\n onClick={this.handleBackgroundClick}\n >\n <div className=\"input-filter-column\">\n <div className=\"input-filter-column-title\">{titleLabel} Filter</div>\n </div>\n <div className=\"d-flex justify-content-center align-items-center h-100 w-100\">\n <div className=\"input-filter-value-input d-flex flex-column justify-content-center\">\n <input\n type=\"text\"\n ref={this.inputRef}\n placeholder={InputFilter.PLACEHOLDER}\n value={value ?? ''}\n onChange={this.handleValueChange}\n onKeyPress={this.handleInputKeyPress}\n style={{ width: `${inputLength + 3}ch` }}\n spellCheck=\"false\"\n />\n </div>\n </div>\n <div className=\"input-filter-menu\">\n <button\n type=\"button\"\n className=\"btn btn-link btn-link-icon m-2 px-2\"\n onClick={this.handleSettingsClick}\n >\n <FontAwesomeIcon icon={vsGear} transform=\"grow-4\" />\n </button>\n </div>\n </div>\n </CardFlip>\n );\n }\n}\n\nInputFilter.propTypes = {\n columns: PropTypes.arrayOf(APIPropTypes.Column).isRequired,\n column: APIPropTypes.Column,\n isValueShown: PropTypes.bool,\n value: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n};\n\nInputFilter.defaultProps = {\n column: null,\n isValueShown: false,\n value: null,\n};\n\nexport default InputFilter;\n"],"file":"InputFilter.js"}
@@ -0,0 +1,3 @@
1
+ export default ChartEvent;
2
+ declare function ChartEvent(): void;
3
+ //# sourceMappingURL=ChartEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartEvent.d.ts","sourceRoot":"","sources":["../../events/ChartEvent.js"],"names":[],"mappings":";AAIA,oCAEC"}
@@ -0,0 +1,3 @@
1
+ export default ConsoleEvent;
2
+ declare function ConsoleEvent(): void;
3
+ //# sourceMappingURL=ConsoleEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConsoleEvent.d.ts","sourceRoot":"","sources":["../../events/ConsoleEvent.js"],"names":[],"mappings":";AAIA,sCAEC"}
@@ -0,0 +1,3 @@
1
+ export default ControlEvent;
2
+ declare function ControlEvent(): void;
3
+ //# sourceMappingURL=ControlEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlEvent.d.ts","sourceRoot":"","sources":["../../events/ControlEvent.js"],"names":[],"mappings":";AAIA,sCAEC"}
@@ -0,0 +1,3 @@
1
+ export default InputFilterEvent;
2
+ declare function InputFilterEvent(): void;
3
+ //# sourceMappingURL=InputFilterEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InputFilterEvent.d.ts","sourceRoot":"","sources":["../../events/InputFilterEvent.js"],"names":[],"mappings":";AAIA,0CAEC"}
@@ -0,0 +1,3 @@
1
+ export default IrisGridEvent;
2
+ declare function IrisGridEvent(): void;
3
+ //# sourceMappingURL=IrisGridEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IrisGridEvent.d.ts","sourceRoot":"","sources":["../../events/IrisGridEvent.js"],"names":[],"mappings":";AAIA,uCAEC"}
@@ -0,0 +1,5 @@
1
+ declare var _default: Readonly<{
2
+ OPEN: string;
3
+ }>;
4
+ export default _default;
5
+ //# sourceMappingURL=MarkdownEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownEvent.d.ts","sourceRoot":"","sources":["../../events/MarkdownEvent.js"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export default MatPlotLibEvent;
2
+ declare function MatPlotLibEvent(): void;
3
+ //# sourceMappingURL=MatPlotLibEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MatPlotLibEvent.d.ts","sourceRoot":"","sources":["../../events/MatPlotLibEvent.js"],"names":[],"mappings":";AAIA,yCAEC"}
@@ -0,0 +1,3 @@
1
+ export default NotebookEvent;
2
+ declare function NotebookEvent(): void;
3
+ //# sourceMappingURL=NotebookEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotebookEvent.d.ts","sourceRoot":"","sources":["../../events/NotebookEvent.js"],"names":[],"mappings":";AAIA,uCAEC"}
@@ -0,0 +1,3 @@
1
+ export default PandasEvent;
2
+ declare function PandasEvent(): void;
3
+ //# sourceMappingURL=PandasEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PandasEvent.d.ts","sourceRoot":"","sources":["../../events/PandasEvent.js"],"names":[],"mappings":";AAIA,qCAEC"}
@@ -0,0 +1,3 @@
1
+ export default TabEvent;
2
+ declare function TabEvent(): void;
3
+ //# sourceMappingURL=TabEvent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TabEvent.d.ts","sourceRoot":"","sources":["../../events/TabEvent.js"],"names":[],"mappings":";AAIA,kCAEC"}
@@ -4,6 +4,7 @@ export { default as ControlEvent } from "./ControlEvent";
4
4
  export { default as InputFilterEvent } from "./InputFilterEvent";
5
5
  export { default as IrisGridEvent } from "./IrisGridEvent";
6
6
  export { default as MarkdownEvent } from "./MarkdownEvent";
7
+ export { default as MatPlotLibEvent } from "./MatPlotLibEvent";
7
8
  export { default as NotebookEvent } from "./NotebookEvent";
8
9
  export { default as PandasEvent } from "./PandasEvent";
9
10
  export { default as TabEvent } from "./TabEvent";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.js"],"names":[],"mappings":""}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../events/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,12 @@
1
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
+
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; }
4
+
5
+ var MatPlotLibEvent = function MatPlotLibEvent() {
6
+ _classCallCheck(this, MatPlotLibEvent);
7
+ };
8
+
9
+ _defineProperty(MatPlotLibEvent, "OPEN", 'MatPlotLib.OPEN');
10
+
11
+ export default MatPlotLibEvent;
12
+ //# sourceMappingURL=MatPlotLibEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/events/MatPlotLibEvent.js"],"names":["MatPlotLibEvent"],"mappings":";;;;IAAMA,e;;;;gBAAAA,e,UACU,iB;;AAGhB,eAAeA,eAAf","sourcesContent":["class MatPlotLibEvent {\n static OPEN = 'MatPlotLib.OPEN';\n}\n\nexport default MatPlotLibEvent;\n"],"file":"MatPlotLibEvent.js"}
@@ -4,6 +4,7 @@ export { default as ControlEvent } from './ControlEvent';
4
4
  export { default as InputFilterEvent } from './InputFilterEvent';
5
5
  export { default as IrisGridEvent } from './IrisGridEvent';
6
6
  export { default as MarkdownEvent } from './MarkdownEvent';
7
+ export { default as MatPlotLibEvent } from './MatPlotLibEvent';
7
8
  export { default as NotebookEvent } from './NotebookEvent';
8
9
  export { default as PandasEvent } from './PandasEvent';
9
10
  export { default as TabEvent } from './TabEvent';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/events/index.js"],"names":["default","ChartEvent","ConsoleEvent","ControlEvent","InputFilterEvent","IrisGridEvent","MarkdownEvent","NotebookEvent","PandasEvent","TabEvent"],"mappings":"AAAA,SAASA,OAAO,IAAIC,UAApB,QAAsC,cAAtC;AACA,SAASD,OAAO,IAAIE,YAApB,QAAwC,gBAAxC;AACA,SAASF,OAAO,IAAIG,YAApB,QAAwC,gBAAxC;AACA,SAASH,OAAO,IAAII,gBAApB,QAA4C,oBAA5C;AACA,SAASJ,OAAO,IAAIK,aAApB,QAAyC,iBAAzC;AACA,SAASL,OAAO,IAAIM,aAApB,QAAyC,iBAAzC;AACA,SAASN,OAAO,IAAIO,aAApB,QAAyC,iBAAzC;AACA,SAASP,OAAO,IAAIQ,WAApB,QAAuC,eAAvC;AACA,SAASR,OAAO,IAAIS,QAApB,QAAoC,YAApC","sourcesContent":["export { default as ChartEvent } from './ChartEvent';\nexport { default as ConsoleEvent } from './ConsoleEvent';\nexport { default as ControlEvent } from './ControlEvent';\nexport { default as InputFilterEvent } from './InputFilterEvent';\nexport { default as IrisGridEvent } from './IrisGridEvent';\nexport { default as MarkdownEvent } from './MarkdownEvent';\nexport { default as NotebookEvent } from './NotebookEvent';\nexport { default as PandasEvent } from './PandasEvent';\nexport { default as TabEvent } from './TabEvent';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../../src/events/index.js"],"names":["default","ChartEvent","ConsoleEvent","ControlEvent","InputFilterEvent","IrisGridEvent","MarkdownEvent","MatPlotLibEvent","NotebookEvent","PandasEvent","TabEvent"],"mappings":"AAAA,SAASA,OAAO,IAAIC,UAApB,QAAsC,cAAtC;AACA,SAASD,OAAO,IAAIE,YAApB,QAAwC,gBAAxC;AACA,SAASF,OAAO,IAAIG,YAApB,QAAwC,gBAAxC;AACA,SAASH,OAAO,IAAII,gBAApB,QAA4C,oBAA5C;AACA,SAASJ,OAAO,IAAIK,aAApB,QAAyC,iBAAzC;AACA,SAASL,OAAO,IAAIM,aAApB,QAAyC,iBAAzC;AACA,SAASN,OAAO,IAAIO,eAApB,QAA2C,mBAA3C;AACA,SAASP,OAAO,IAAIQ,aAApB,QAAyC,iBAAzC;AACA,SAASR,OAAO,IAAIS,WAApB,QAAuC,eAAvC;AACA,SAAST,OAAO,IAAIU,QAApB,QAAoC,YAApC","sourcesContent":["export { default as ChartEvent } from './ChartEvent';\nexport { default as ConsoleEvent } from './ConsoleEvent';\nexport { default as ControlEvent } from './ControlEvent';\nexport { default as InputFilterEvent } from './InputFilterEvent';\nexport { default as IrisGridEvent } from './IrisGridEvent';\nexport { default as MarkdownEvent } from './MarkdownEvent';\nexport { default as MatPlotLibEvent } from './MatPlotLibEvent';\nexport { default as NotebookEvent } from './NotebookEvent';\nexport { default as PandasEvent } from './PandasEvent';\nexport { default as TabEvent } from './TabEvent';\n"],"file":"index.js"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ export { default as FilterPlugin } from './FilterPlugin';
4
4
  export { default as GridPlugin } from './GridPlugin';
5
5
  export { default as LinkerPlugin } from './LinkerPlugin';
6
6
  export { default as MarkdownPlugin } from './MarkdownPlugin';
7
+ export { default as MatPlotLibPlugin } from './MatPlotLibPlugin';
7
8
  export { default as PandasPlugin } from './PandasPlugin';
8
9
  export * from './events';
9
10
  export * from './panels';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["default","ChartPlugin","ConsolePlugin","FilterPlugin","GridPlugin","LinkerPlugin","MarkdownPlugin","PandasPlugin"],"mappings":"AAAA,SAASA,OAAO,IAAIC,WAApB,QAAuC,eAAvC;AACA,SAASD,OAAO,IAAIE,aAApB,QAAyC,iBAAzC;AACA,SAASF,OAAO,IAAIG,YAApB,QAAwC,gBAAxC;AACA,SAASH,OAAO,IAAII,UAApB,QAAsC,cAAtC;AACA,SAASJ,OAAO,IAAIK,YAApB,QAAwC,gBAAxC;AACA,SAASL,OAAO,IAAIM,cAApB,QAA0C,kBAA1C;AACA,SAASN,OAAO,IAAIO,YAApB,QAAwC,gBAAxC;AAEA,cAAc,UAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd","sourcesContent":["export { default as ChartPlugin } from './ChartPlugin';\nexport { default as ConsolePlugin } from './ConsolePlugin';\nexport { default as FilterPlugin } from './FilterPlugin';\nexport { default as GridPlugin } from './GridPlugin';\nexport { default as LinkerPlugin } from './LinkerPlugin';\nexport { default as MarkdownPlugin } from './MarkdownPlugin';\nexport { default as PandasPlugin } from './PandasPlugin';\n\nexport * from './events';\nexport * from './panels';\nexport * from './redux';\n"],"file":"index.js"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["default","ChartPlugin","ConsolePlugin","FilterPlugin","GridPlugin","LinkerPlugin","MarkdownPlugin","MatPlotLibPlugin","PandasPlugin"],"mappings":"AAAA,SAASA,OAAO,IAAIC,WAApB,QAAuC,eAAvC;AACA,SAASD,OAAO,IAAIE,aAApB,QAAyC,iBAAzC;AACA,SAASF,OAAO,IAAIG,YAApB,QAAwC,gBAAxC;AACA,SAASH,OAAO,IAAII,UAApB,QAAsC,cAAtC;AACA,SAASJ,OAAO,IAAIK,YAApB,QAAwC,gBAAxC;AACA,SAASL,OAAO,IAAIM,cAApB,QAA0C,kBAA1C;AACA,SAASN,OAAO,IAAIO,gBAApB,QAA4C,oBAA5C;AACA,SAASP,OAAO,IAAIQ,YAApB,QAAwC,gBAAxC;AAEA,cAAc,UAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd","sourcesContent":["export { default as ChartPlugin } from './ChartPlugin';\nexport { default as ConsolePlugin } from './ConsolePlugin';\nexport { default as FilterPlugin } from './FilterPlugin';\nexport { default as GridPlugin } from './GridPlugin';\nexport { default as LinkerPlugin } from './LinkerPlugin';\nexport { default as MarkdownPlugin } from './MarkdownPlugin';\nexport { default as MatPlotLibPlugin } from './MatPlotLibPlugin';\nexport { default as PandasPlugin } from './PandasPlugin';\n\nexport * from './events';\nexport * from './panels';\nexport * from './redux';\n"],"file":"index.js"}