@deephaven/dashboard-core-plugins 0.15.5-vite.12 → 0.15.6-beta.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 (210) hide show
  1. package/dist/ChartBuilderPlugin.d.ts.map +1 -1
  2. package/dist/ChartBuilderPlugin.js +2 -1
  3. package/dist/ChartBuilderPlugin.js.map +1 -1
  4. package/dist/ChartPlugin.d.ts +2 -1
  5. package/dist/ChartPlugin.d.ts.map +1 -1
  6. package/dist/ChartPlugin.js.map +1 -1
  7. package/dist/ConsolePlugin.js.map +1 -1
  8. package/dist/FilterPlugin.js +1 -1
  9. package/dist/FilterPlugin.js.map +1 -1
  10. package/dist/GridPlugin.d.ts +2 -1
  11. package/dist/GridPlugin.d.ts.map +1 -1
  12. package/dist/GridPlugin.js.map +1 -1
  13. package/dist/LinkerPlugin.js.map +1 -1
  14. package/dist/MarkdownPlugin.js.map +1 -1
  15. package/dist/PandasPlugin.d.ts +2 -1
  16. package/dist/PandasPlugin.d.ts.map +1 -1
  17. package/dist/PandasPlugin.js.map +1 -1
  18. package/dist/controls/ControlType.d.ts +1 -1
  19. package/dist/controls/ControlType.d.ts.map +1 -1
  20. package/dist/controls/ControlType.js.map +1 -1
  21. package/dist/controls/dropdown-filter/DropdownFilter.d.ts +73 -81
  22. package/dist/controls/dropdown-filter/DropdownFilter.d.ts.map +1 -1
  23. package/dist/controls/dropdown-filter/DropdownFilter.js +41 -58
  24. package/dist/controls/dropdown-filter/DropdownFilter.js.map +1 -1
  25. package/dist/controls/input-filter/InputFilter.d.ts +46 -46
  26. package/dist/controls/input-filter/InputFilter.d.ts.map +1 -1
  27. package/dist/controls/input-filter/InputFilter.js +32 -39
  28. package/dist/controls/input-filter/InputFilter.js.map +1 -1
  29. package/dist/controls/markdown/MarkdownContainer.d.ts +11 -16
  30. package/dist/controls/markdown/MarkdownContainer.d.ts.map +1 -1
  31. package/dist/controls/markdown/MarkdownContainer.js +5 -8
  32. package/dist/controls/markdown/MarkdownContainer.js.map +1 -1
  33. package/dist/controls/markdown/MarkdownEditor.d.ts +17 -19
  34. package/dist/controls/markdown/MarkdownEditor.d.ts.map +1 -1
  35. package/dist/controls/markdown/MarkdownEditor.js +5 -8
  36. package/dist/controls/markdown/MarkdownEditor.js.map +1 -1
  37. package/dist/controls/markdown/MarkdownStartPage.d.ts +24 -28
  38. package/dist/controls/markdown/MarkdownStartPage.d.ts.map +1 -1
  39. package/dist/controls/markdown/MarkdownStartPage.js +19 -23
  40. package/dist/controls/markdown/MarkdownStartPage.js.map +1 -1
  41. package/dist/controls/markdown/MarkdownUtils.d.ts +4 -4
  42. package/dist/controls/markdown/MarkdownUtils.d.ts.map +1 -1
  43. package/dist/controls/markdown/MarkdownUtils.js +2 -2
  44. package/dist/controls/markdown/MarkdownUtils.js.map +1 -1
  45. package/dist/events/ChartEvent.d.ts +1 -1
  46. package/dist/events/ChartEvent.d.ts.map +1 -1
  47. package/dist/events/ChartEvent.js.map +1 -1
  48. package/dist/events/ConsoleEvent.d.ts +1 -1
  49. package/dist/events/ConsoleEvent.d.ts.map +1 -1
  50. package/dist/events/ConsoleEvent.js.map +1 -1
  51. package/dist/events/InputFilterEvent.d.ts +1 -1
  52. package/dist/events/InputFilterEvent.d.ts.map +1 -1
  53. package/dist/events/InputFilterEvent.js.map +1 -1
  54. package/dist/events/IrisGridEvent.d.ts +1 -1
  55. package/dist/events/IrisGridEvent.d.ts.map +1 -1
  56. package/dist/events/IrisGridEvent.js.map +1 -1
  57. package/dist/events/MarkdownEvent.js.map +1 -1
  58. package/dist/events/NotebookEvent.d.ts +1 -1
  59. package/dist/events/NotebookEvent.d.ts.map +1 -1
  60. package/dist/events/NotebookEvent.js.map +1 -1
  61. package/dist/events/PQEvent.d.ts +1 -1
  62. package/dist/events/PQEvent.d.ts.map +1 -1
  63. package/dist/events/PQEvent.js.map +1 -1
  64. package/dist/events/PandasEvent.d.ts +1 -1
  65. package/dist/events/PandasEvent.d.ts.map +1 -1
  66. package/dist/events/PandasEvent.js.map +1 -1
  67. package/dist/events/TabEvent.d.ts +1 -1
  68. package/dist/events/TabEvent.d.ts.map +1 -1
  69. package/dist/events/TabEvent.js.map +1 -1
  70. package/dist/events/index.d.ts +8 -8
  71. package/dist/events/index.d.ts.map +1 -1
  72. package/dist/events/index.js.map +1 -1
  73. package/dist/index.d.ts +1 -0
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +1 -0
  76. package/dist/index.js.map +1 -1
  77. package/dist/linker/ColumnSelectionValidator.d.ts +4 -0
  78. package/dist/linker/ColumnSelectionValidator.d.ts.map +1 -0
  79. package/dist/linker/ColumnSelectionValidator.js +2 -0
  80. package/dist/linker/ColumnSelectionValidator.js.map +1 -0
  81. package/dist/linker/Linker.d.ts +11 -11
  82. package/dist/linker/Linker.js +1 -1
  83. package/dist/linker/Linker.js.map +1 -1
  84. package/dist/linker/LinkerLink.js.map +1 -1
  85. package/dist/linker/LinkerOverlayContent.js.map +1 -1
  86. package/dist/linker/LinkerUtils.d.ts +3 -3
  87. package/dist/linker/LinkerUtils.d.ts.map +1 -1
  88. package/dist/linker/LinkerUtils.js.map +1 -1
  89. package/dist/linker/ToolType.d.ts +1 -1
  90. package/dist/linker/ToolType.d.ts.map +1 -1
  91. package/dist/linker/ToolType.js.map +1 -1
  92. package/dist/linker/index.d.ts +2 -0
  93. package/dist/linker/index.d.ts.map +1 -0
  94. package/dist/linker/index.js +2 -0
  95. package/dist/linker/index.js.map +1 -0
  96. package/dist/panels/ChartColumnSelectorOverlay.d.ts +22 -26
  97. package/dist/panels/ChartColumnSelectorOverlay.d.ts.map +1 -1
  98. package/dist/panels/ChartColumnSelectorOverlay.js +5 -14
  99. package/dist/panels/ChartColumnSelectorOverlay.js.map +1 -1
  100. package/dist/panels/ChartFilterOverlay.d.ts +29 -21
  101. package/dist/panels/ChartFilterOverlay.d.ts.map +1 -1
  102. package/dist/panels/ChartFilterOverlay.js.map +1 -1
  103. package/dist/panels/ChartPanel.d.ts +187 -152
  104. package/dist/panels/ChartPanel.d.ts.map +1 -1
  105. package/dist/panels/ChartPanel.js +87 -84
  106. package/dist/panels/ChartPanel.js.map +1 -1
  107. package/dist/panels/CommandHistoryPanel.d.ts +41 -56
  108. package/dist/panels/CommandHistoryPanel.d.ts.map +1 -1
  109. package/dist/panels/CommandHistoryPanel.js +13 -35
  110. package/dist/panels/CommandHistoryPanel.js.map +1 -1
  111. package/dist/panels/ConsolePanel.d.ts +63 -73
  112. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  113. package/dist/panels/ConsolePanel.js +67 -83
  114. package/dist/panels/ConsolePanel.js.map +1 -1
  115. package/dist/panels/DropdownFilterPanel.d.ts +110 -106
  116. package/dist/panels/DropdownFilterPanel.d.ts.map +1 -1
  117. package/dist/panels/DropdownFilterPanel.js +60 -62
  118. package/dist/panels/DropdownFilterPanel.js.map +1 -1
  119. package/dist/panels/FileExplorerPanel.d.ts +5 -7
  120. package/dist/panels/FileExplorerPanel.d.ts.map +1 -1
  121. package/dist/panels/FileExplorerPanel.js.map +1 -1
  122. package/dist/panels/FilterSetManager.d.ts +3 -1
  123. package/dist/panels/FilterSetManager.d.ts.map +1 -1
  124. package/dist/panels/FilterSetManager.js.map +1 -1
  125. package/dist/panels/FilterSetManagerPanel.d.ts +83 -62
  126. package/dist/panels/FilterSetManagerPanel.d.ts.map +1 -1
  127. package/dist/panels/FilterSetManagerPanel.js +58 -36
  128. package/dist/panels/FilterSetManagerPanel.js.map +1 -1
  129. package/dist/panels/InputFilterPanel.d.ts +50 -51
  130. package/dist/panels/InputFilterPanel.d.ts.map +1 -1
  131. package/dist/panels/InputFilterPanel.js +35 -34
  132. package/dist/panels/InputFilterPanel.js.map +1 -1
  133. package/dist/panels/IrisGridPanel.d.ts +191 -178
  134. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  135. package/dist/panels/IrisGridPanel.js +150 -179
  136. package/dist/panels/IrisGridPanel.js.map +1 -1
  137. package/dist/panels/LogPanel.d.ts +29 -45
  138. package/dist/panels/LogPanel.d.ts.map +1 -1
  139. package/dist/panels/LogPanel.js +9 -11
  140. package/dist/panels/LogPanel.js.map +1 -1
  141. package/dist/panels/MarkdownNotebook.d.ts +34 -34
  142. package/dist/panels/MarkdownNotebook.d.ts.map +1 -1
  143. package/dist/panels/MarkdownNotebook.js +21 -18
  144. package/dist/panels/MarkdownNotebook.js.map +1 -1
  145. package/dist/panels/MarkdownPanel.d.ts +41 -47
  146. package/dist/panels/MarkdownPanel.d.ts.map +1 -1
  147. package/dist/panels/MarkdownPanel.js +17 -19
  148. package/dist/panels/MarkdownPanel.js.map +1 -1
  149. package/dist/panels/NotebookPanel.d.ts +137 -115
  150. package/dist/panels/NotebookPanel.d.ts.map +1 -1
  151. package/dist/panels/NotebookPanel.js +95 -69
  152. package/dist/panels/NotebookPanel.js.map +1 -1
  153. package/dist/panels/PandasPanel.d.ts +20 -17
  154. package/dist/panels/PandasPanel.d.ts.map +1 -1
  155. package/dist/panels/PandasPanel.js +18 -14
  156. package/dist/panels/PandasPanel.js.map +1 -1
  157. package/dist/panels/Panel.d.ts +87 -123
  158. package/dist/panels/Panel.d.ts.map +1 -1
  159. package/dist/panels/Panel.js +29 -54
  160. package/dist/panels/Panel.js.map +1 -1
  161. package/dist/panels/PanelContextMenu.d.ts +16 -31
  162. package/dist/panels/PanelContextMenu.d.ts.map +1 -1
  163. package/dist/panels/PanelContextMenu.js +12 -15
  164. package/dist/panels/PanelContextMenu.js.map +1 -1
  165. package/dist/panels/RenameDialog.d.ts +26 -28
  166. package/dist/panels/RenameDialog.d.ts.map +1 -1
  167. package/dist/panels/RenameDialog.js +15 -19
  168. package/dist/panels/RenameDialog.js.map +1 -1
  169. package/dist/panels/WidgetPanel.d.ts +72 -106
  170. package/dist/panels/WidgetPanel.d.ts.map +1 -1
  171. package/dist/panels/WidgetPanel.js +17 -47
  172. package/dist/panels/WidgetPanel.js.map +1 -1
  173. package/dist/panels/WidgetPanelTooltip.d.ts +29 -22
  174. package/dist/panels/WidgetPanelTooltip.d.ts.map +1 -1
  175. package/dist/panels/WidgetPanelTooltip.js +1 -1
  176. package/dist/panels/WidgetPanelTooltip.js.map +1 -1
  177. package/dist/panels/index.d.ts +3 -0
  178. package/dist/panels/index.d.ts.map +1 -1
  179. package/dist/panels/index.js +3 -0
  180. package/dist/panels/index.js.map +1 -1
  181. package/dist/prop-types/CommonPropTypes.d.ts +4 -4
  182. package/dist/prop-types/CommonPropTypes.d.ts.map +1 -1
  183. package/dist/prop-types/CommonPropTypes.js +1 -1
  184. package/dist/prop-types/CommonPropTypes.js.map +1 -1
  185. package/dist/prop-types/UIPropTypes.d.ts +2 -7
  186. package/dist/prop-types/UIPropTypes.d.ts.map +1 -1
  187. package/dist/prop-types/UIPropTypes.js +0 -7
  188. package/dist/prop-types/UIPropTypes.js.map +1 -1
  189. package/dist/prop-types/index.d.ts +2 -2
  190. package/dist/prop-types/index.d.ts.map +1 -1
  191. package/dist/prop-types/index.js.map +1 -1
  192. package/dist/redux/actionTypes.d.ts +1 -1
  193. package/dist/redux/actionTypes.d.ts.map +1 -1
  194. package/dist/redux/actionTypes.js.map +1 -1
  195. package/dist/redux/actions.d.ts +63 -8
  196. package/dist/redux/actions.d.ts.map +1 -1
  197. package/dist/redux/actions.js +17 -17
  198. package/dist/redux/actions.js.map +1 -1
  199. package/dist/redux/index.js.map +1 -1
  200. package/dist/redux/reducers/index.d.ts +3 -4
  201. package/dist/redux/reducers/index.d.ts.map +1 -1
  202. package/dist/redux/reducers/index.js.map +1 -1
  203. package/dist/redux/reducers/sessionWrapper.d.ts +1 -1
  204. package/dist/redux/reducers/sessionWrapper.d.ts.map +1 -1
  205. package/dist/redux/reducers/sessionWrapper.js.map +1 -1
  206. package/dist/redux/selectors.d.ts +63 -9
  207. package/dist/redux/selectors.d.ts.map +1 -1
  208. package/dist/redux/selectors.js +27 -27
  209. package/dist/redux/selectors.js.map +1 -1
  210. package/package.json +21 -17
@@ -5,11 +5,9 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
5
5
  /* eslint-disable jsx-a11y/no-static-element-interactions */
6
6
  // background click is just a convience method, not an actual a11y issue
7
7
  import React, { Component } from 'react';
8
- import PropTypes from 'prop-types';
9
8
  import { CardFlip } from '@deephaven/components';
10
9
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
11
10
  import { vsGear } from '@deephaven/icons';
12
- import { PropTypes as APIPropTypes } from '@deephaven/jsapi-shim';
13
11
  import memoizee from 'memoizee';
14
12
  import debounce from 'lodash.debounce';
15
13
  import Log from '@deephaven/log';
@@ -21,6 +19,8 @@ class InputFilter extends Component {
21
19
  constructor(props) {
22
20
  super(props);
23
21
 
22
+ _defineProperty(this, "inputRef", void 0);
23
+
24
24
  _defineProperty(this, "getItemLabel", memoizee((columns, index) => {
25
25
  var {
26
26
  name,
@@ -35,6 +35,22 @@ class InputFilter extends Component {
35
35
  return name;
36
36
  }));
37
37
 
38
+ _defineProperty(this, "sendUpdate", debounce(() => {
39
+ var {
40
+ onChange
41
+ } = this.props;
42
+ var {
43
+ column,
44
+ value,
45
+ isValueShown
46
+ } = this.state;
47
+ onChange({
48
+ column,
49
+ isValueShown,
50
+ value
51
+ });
52
+ }, UPDATE_DEBOUNCE));
53
+
38
54
  this.handleColumnChange = this.handleColumnChange.bind(this);
39
55
  this.handleInputKeyPress = this.handleInputKeyPress.bind(this);
40
56
  this.handleValueChange = this.handleValueChange.bind(this);
@@ -42,18 +58,17 @@ class InputFilter extends Component {
42
58
  this.handleSettingsClick = this.handleSettingsClick.bind(this);
43
59
  this.handleSettingsSave = this.handleSettingsSave.bind(this);
44
60
  this.handleBackgroundClick = this.handleBackgroundClick.bind(this);
45
- this.sendUpdate = debounce(this.sendUpdate.bind(this), UPDATE_DEBOUNCE);
46
61
  this.inputRef = /*#__PURE__*/React.createRef();
47
62
  var {
48
- column,
49
- isValueShown,
50
- value
63
+ column: _column,
64
+ isValueShown: _isValueShown,
65
+ value: _value
51
66
  } = props;
52
67
  this.state = {
53
- column,
54
- selectedColumn: column,
55
- value,
56
- isValueShown
68
+ column: _column,
69
+ selectedColumn: _column,
70
+ value: _value,
71
+ isValueShown: _isValueShown
57
72
  };
58
73
  }
59
74
 
@@ -95,11 +110,11 @@ class InputFilter extends Component {
95
110
  var {
96
111
  value
97
112
  } = event.target;
98
- var selectedColumn = columns[value];
113
+ var selectedColumn = columns[parseInt(value, 10)];
99
114
  log.debug2('handleColumnChange', selectedColumn);
100
115
  this.setState({
101
116
  selectedColumn,
102
- value: null
117
+ value: undefined
103
118
  });
104
119
  }
105
120
 
@@ -192,7 +207,7 @@ class InputFilter extends Component {
192
207
  var column = name != null && type != null ? {
193
208
  name,
194
209
  type
195
- } : null;
210
+ } : undefined;
196
211
  var update = isValueShown === undefined ? {
197
212
  column,
198
213
  value
@@ -204,22 +219,6 @@ class InputFilter extends Component {
204
219
  this.setState(update);
205
220
  }
206
221
 
207
- sendUpdate() {
208
- var {
209
- onChange
210
- } = this.props;
211
- var {
212
- column,
213
- value,
214
- isValueShown
215
- } = this.state;
216
- onChange({
217
- column,
218
- isValueShown,
219
- value
220
- });
221
- }
222
-
223
222
  render() {
224
223
  var {
225
224
  columns
@@ -240,7 +239,7 @@ class InputFilter extends Component {
240
239
 
241
240
  return /*#__PURE__*/React.createElement(CardFlip, {
242
241
  className: "input-filter fill-parent-absolute",
243
- isFlipped: isValueShown
242
+ isFlipped: isValueShown !== null && isValueShown !== void 0 ? isValueShown : false
244
243
  }, /*#__PURE__*/React.createElement("div", {
245
244
  className: "input-filter-settings-card"
246
245
  }, /*#__PURE__*/React.createElement("div", {
@@ -309,17 +308,11 @@ class InputFilter extends Component {
309
308
 
310
309
  _defineProperty(InputFilter, "PLACEHOLDER", 'Enter value...');
311
310
 
312
- InputFilter.propTypes = {
313
- columns: PropTypes.arrayOf(APIPropTypes.Column).isRequired,
314
- column: APIPropTypes.Column,
315
- isValueShown: PropTypes.bool,
316
- value: PropTypes.string,
317
- onChange: PropTypes.func.isRequired
318
- };
319
- InputFilter.defaultProps = {
311
+ _defineProperty(InputFilter, "defaultProps", {
320
312
  column: null,
321
313
  isValueShown: false,
322
314
  value: null
323
- };
315
+ });
316
+
324
317
  export default InputFilter;
325
318
  //# sourceMappingURL=InputFilter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputFilter.js","names":["React","Component","PropTypes","CardFlip","FontAwesomeIcon","vsGear","APIPropTypes","memoizee","debounce","Log","log","module","UPDATE_DEBOUNCE","InputFilter","constructor","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","componentDidUpdate","prevProps","prevState","propColumn","setState","focusInput","componentWillUnmount","flush","event","target","debug2","key","preventDefault","stopPropagation","current","select","focus","clearFilter","setFilterState","update","undefined","onChange","render","inputLength","PLACEHOLDER","titleLabel","columnIndex","findIndex","item","getItemLabel","map","columnItem","width","propTypes","arrayOf","Column","isRequired","bool","string","func","defaultProps"],"sources":["../../../src/controls/input-filter/InputFilter.jsx"],"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 setFilterState({ name, type, value, isValueShown }) {\n const column = name != null && type != null ? { name, type } : null;\n const update =\n isValueShown === undefined\n ? { column, value }\n : { column, value, isValueShown };\n this.setState(update);\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"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/controls/input-filter/InputFilter.tsx"],"names":["React","Component","CardFlip","FontAwesomeIcon","vsGear","memoizee","debounce","Log","log","module","UPDATE_DEBOUNCE","InputFilter","constructor","props","columns","index","name","type","length","shortType","substring","lastIndexOf","onChange","column","value","isValueShown","state","handleColumnChange","bind","handleInputKeyPress","handleValueChange","handleSettingsCancel","handleSettingsClick","handleSettingsSave","handleBackgroundClick","inputRef","createRef","selectedColumn","componentDidUpdate","prevProps","prevState","propColumn","setState","focusInput","sendUpdate","componentWillUnmount","flush","event","target","parseInt","debug2","undefined","key","preventDefault","stopPropagation","current","select","focus","clearFilter","setFilterState","update","render","inputLength","PLACEHOLDER","titleLabel","columnIndex","findIndex","item","getItemLabel","map","columnItem","width"],"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, {\n ChangeEvent,\n Component,\n RefObject,\n MouseEvent,\n KeyboardEvent,\n ReactElement,\n} from 'react';\nimport { CardFlip } from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsGear } from '@deephaven/icons';\nimport { Column } 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\nexport type InputFilterColumn = Pick<Column, 'type' | 'name'>;\n\ninterface InputFilterProps {\n columns: InputFilterColumn[];\n column: InputFilterColumn;\n isValueShown: boolean;\n value: string;\n onChange: (change: {\n column?: InputFilterColumn;\n isValueShown?: boolean;\n value?: string;\n }) => void;\n}\n\nexport interface InputFilterState {\n column?: InputFilterColumn;\n selectedColumn?: InputFilterColumn;\n value?: string;\n isValueShown?: boolean;\n}\n\nclass InputFilter extends Component<InputFilterProps, InputFilterState> {\n static PLACEHOLDER = 'Enter value...';\n\n static defaultProps = {\n column: null,\n isValueShown: false,\n value: null,\n };\n\n constructor(props: InputFilterProps) {\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\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(\n prevProps: InputFilterProps,\n prevState: InputFilterState\n ): void {\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(): void {\n this.sendUpdate.flush();\n }\n\n inputRef: RefObject<HTMLInputElement>;\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: ChangeEvent<HTMLSelectElement>): void {\n const { columns } = this.props;\n const { value } = event.target;\n const selectedColumn = columns[parseInt(value, 10)];\n\n log.debug2('handleColumnChange', selectedColumn);\n\n this.setState({ selectedColumn, value: undefined });\n }\n\n handleInputKeyPress(event: KeyboardEvent<HTMLInputElement>): void {\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: ChangeEvent<HTMLInputElement>): void {\n const { value } = event.target;\n\n log.debug2('handleValueChange', value);\n\n this.setState({ value });\n }\n\n handleSettingsCancel(): void {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: true });\n }\n\n handleSettingsSave(): void {\n const { selectedColumn } = this.state;\n this.setState({ column: selectedColumn, isValueShown: true });\n }\n\n handleSettingsClick(event: MouseEvent<HTMLButtonElement>): void {\n const { column } = this.state;\n this.setState({ selectedColumn: column, isValueShown: false });\n event.stopPropagation();\n }\n\n handleBackgroundClick(event: MouseEvent<HTMLDivElement>): void {\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(): void {\n if (this.inputRef.current !== null) {\n this.inputRef.current.select();\n this.inputRef.current.focus();\n }\n }\n\n clearFilter(): void {\n this.setState({ value: '' });\n }\n\n setFilterState({\n name,\n type,\n value,\n isValueShown,\n }: {\n name?: string;\n type?: string;\n value?: string;\n isValueShown?: boolean;\n }): void {\n const column = name != null && type != null ? { name, type } : undefined;\n const update =\n isValueShown === undefined\n ? { column, value }\n : { column, value, isValueShown };\n this.setState(update);\n }\n\n sendUpdate = debounce(() => {\n const { onChange } = this.props;\n const { column, value, isValueShown } = this.state;\n onChange({ column, isValueShown, value });\n }, UPDATE_DEBOUNCE);\n\n render(): ReactElement {\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 ?? false}\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\nexport default InputFilter;\n"],"file":"InputFilter.js"}
@@ -1,19 +1,14 @@
1
- declare class MarkdownContainer extends React.PureComponent<any, any, any> {
2
- constructor(props: any);
3
- constructor(props: any, context: any);
1
+ import { MouseEventHandler, PureComponent, ReactElement, ReactNode } from 'react';
2
+ interface MarkdownContainerProps {
3
+ onDoubleClick: MouseEventHandler;
4
+ children: ReactNode;
5
+ isEditing?: boolean;
4
6
  }
5
- declare namespace MarkdownContainer {
6
- namespace propTypes {
7
- const onDoubleClick: PropTypes.Validator<(...args: any[]) => any>;
8
- const children: PropTypes.Validator<string | number | boolean | {} | PropTypes.ReactElementLike | PropTypes.ReactNodeArray>;
9
- const isEditing: PropTypes.Requireable<boolean>;
10
- }
11
- namespace defaultProps {
12
- const isEditing_1: boolean;
13
- export { isEditing_1 as isEditing };
14
- }
7
+ export default class MarkdownContainer extends PureComponent<MarkdownContainerProps, Record<string, never>> {
8
+ static defaultProps: {
9
+ isEditing: boolean;
10
+ };
11
+ render(): ReactElement;
15
12
  }
16
- export default MarkdownContainer;
17
- import React from "react";
18
- import PropTypes from "prop-types";
13
+ export {};
19
14
  //# sourceMappingURL=MarkdownContainer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownContainer.d.ts","sourceRoot":"","sources":["../../../src/controls/markdown/MarkdownContainer.jsx"],"names":[],"mappings":"AAMA;IAiC0zlB,wBAA8C;IAAA,sCAAyJ;CAXhgmB"}
1
+ {"version":3,"file":"MarkdownContainer.d.ts","sourceRoot":"","sources":["../../../src/controls/markdown/MarkdownContainer.tsx"],"names":[],"mappings":"AAAA,OAAc,EACZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,SAAS,EACV,MAAM,OAAO,CAAC;AAKf,UAAU,sBAAsB;IAC9B,aAAa,EAAE,iBAAiB,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,aAAa,CAC1D,sBAAsB,EACtB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IACC,MAAM,CAAC,YAAY;;MAEjB;IAEF,MAAM,IAAI,YAAY;CAqBvB"}
@@ -1,5 +1,6 @@
1
+ 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; }
2
+
1
3
  import React, { PureComponent } from 'react';
2
- import PropTypes from 'prop-types';
3
4
  import classNames from 'classnames';
4
5
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
6
  import { vsEdit } from '@deephaven/icons';
@@ -23,12 +24,8 @@ export default class MarkdownContainer extends PureComponent {
23
24
  }
24
25
 
25
26
  }
26
- MarkdownContainer.propTypes = {
27
- onDoubleClick: PropTypes.func.isRequired,
28
- children: PropTypes.node.isRequired,
29
- isEditing: PropTypes.bool
30
- };
31
- MarkdownContainer.defaultProps = {
27
+
28
+ _defineProperty(MarkdownContainer, "defaultProps", {
32
29
  isEditing: false
33
- };
30
+ });
34
31
  //# sourceMappingURL=MarkdownContainer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownContainer.js","names":["React","PureComponent","PropTypes","classNames","FontAwesomeIcon","vsEdit","MarkdownContainer","render","isEditing","children","onDoubleClick","props","viewing","propTypes","func","isRequired","node","bool","defaultProps"],"sources":["../../../src/controls/markdown/MarkdownContainer.jsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsEdit } from '@deephaven/icons';\n\nexport default class MarkdownContainer extends PureComponent {\n render() {\n const { isEditing, children, onDoubleClick } = this.props;\n\n return (\n <div\n className=\"markdown-editor-container h-100 w-100\"\n onDoubleClick={onDoubleClick}\n >\n <div\n className={classNames('text-muted', 'edit-hint', {\n viewing: !isEditing,\n })}\n >\n <span>\n double-click to edit <FontAwesomeIcon icon={vsEdit} />\n </span>\n </div>\n {children}\n </div>\n );\n }\n}\n\nMarkdownContainer.propTypes = {\n onDoubleClick: PropTypes.func.isRequired,\n children: PropTypes.node.isRequired,\n isEditing: PropTypes.bool,\n};\n\nMarkdownContainer.defaultProps = {\n isEditing: false,\n};\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAqC,OAArC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,MAAT,QAAuB,kBAAvB;AAEA,eAAe,MAAMC,iBAAN,SAAgCL,aAAhC,CAA8C;EAC3DM,MAAM,GAAG;IACP,IAAM;MAAEC,SAAF;MAAaC,QAAb;MAAuBC;IAAvB,IAAyC,KAAKC,KAApD;IAEA,oBACE;MACE,SAAS,EAAC,uCADZ;MAEE,aAAa,EAAED;IAFjB,gBAIE;MACE,SAAS,EAAEP,UAAU,CAAC,YAAD,EAAe,WAAf,EAA4B;QAC/CS,OAAO,EAAE,CAACJ;MADqC,CAA5B;IADvB,gBAKE,wEACuB,oBAAC,eAAD;MAAiB,IAAI,EAAEH;IAAvB,EADvB,CALF,CAJF,EAaGI,QAbH,CADF;EAiBD;;AArB0D;AAwB7DH,iBAAiB,CAACO,SAAlB,GAA8B;EAC5BH,aAAa,EAAER,SAAS,CAACY,IAAV,CAAeC,UADF;EAE5BN,QAAQ,EAAEP,SAAS,CAACc,IAAV,CAAeD,UAFG;EAG5BP,SAAS,EAAEN,SAAS,CAACe;AAHO,CAA9B;AAMAX,iBAAiB,CAACY,YAAlB,GAAiC;EAC/BV,SAAS,EAAE;AADoB,CAAjC"}
1
+ {"version":3,"sources":["../../../src/controls/markdown/MarkdownContainer.tsx"],"names":["React","PureComponent","classNames","FontAwesomeIcon","vsEdit","MarkdownContainer","render","isEditing","children","onDoubleClick","props","viewing"],"mappings":";;AAAA,OAAOA,KAAP,IAEEC,aAFF,QAKO,OALP;AAMA,OAAOC,UAAP,MAAuB,YAAvB;AACA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,MAAT,QAAuB,kBAAvB;AAQA,eAAe,MAAMC,iBAAN,SAAgCJ,aAAhC,CAGb;AAKAK,EAAAA,MAAM,GAAiB;AACrB,QAAM;AAAEC,MAAAA,SAAF;AAAaC,MAAAA,QAAb;AAAuBC,MAAAA;AAAvB,QAAyC,KAAKC,KAApD;AAEA,wBACE;AACE,MAAA,SAAS,EAAC,uCADZ;AAEE,MAAA,aAAa,EAAED;AAFjB,oBAIE;AACE,MAAA,SAAS,EAAEP,UAAU,CAAC,YAAD,EAAe,WAAf,EAA4B;AAC/CS,QAAAA,OAAO,EAAE,CAACJ;AADqC,OAA5B;AADvB,oBAKE,wEACuB,oBAAC,eAAD;AAAiB,MAAA,IAAI,EAAEH;AAAvB,MADvB,CALF,CAJF,EAaGI,QAbH,CADF;AAiBD;;AAzBD;;gBAHmBH,iB,kBAIG;AACpBE,EAAAA,SAAS,EAAE;AADS,C","sourcesContent":["import React, {\n MouseEventHandler,\n PureComponent,\n ReactElement,\n ReactNode,\n} from 'react';\nimport classNames from 'classnames';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsEdit } from '@deephaven/icons';\n\ninterface MarkdownContainerProps {\n onDoubleClick: MouseEventHandler;\n children: ReactNode;\n isEditing?: boolean;\n}\n\nexport default class MarkdownContainer extends PureComponent<\n MarkdownContainerProps,\n Record<string, never>\n> {\n static defaultProps = {\n isEditing: false,\n };\n\n render(): ReactElement {\n const { isEditing, children, onDoubleClick } = this.props;\n\n return (\n <div\n className=\"markdown-editor-container h-100 w-100\"\n onDoubleClick={onDoubleClick}\n >\n <div\n className={classNames('text-muted', 'edit-hint', {\n viewing: !isEditing,\n })}\n >\n <span>\n double-click to edit <FontAwesomeIcon icon={vsEdit} />\n </span>\n </div>\n {children}\n </div>\n );\n }\n}\n"],"file":"MarkdownContainer.js"}
@@ -1,22 +1,20 @@
1
- declare class MarkdownEditor extends React.PureComponent<any, any, any> {
2
- constructor(props: any);
3
- container: HTMLDivElement | null;
4
- renderMarkdown: (props: any) => JSX.Element;
1
+ import { PureComponent, ReactElement } from 'react';
2
+ import { CodeComponent } from 'react-markdown/src/ast-to-react';
3
+ import type * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';
4
+ interface MarkdownEditorProps {
5
+ isEditing: boolean;
6
+ content: string;
7
+ onEditorInitialized: (editor: monaco.editor.IStandaloneCodeEditor) => void;
5
8
  }
6
- declare namespace MarkdownEditor {
7
- namespace propTypes {
8
- const isEditing: PropTypes.Requireable<boolean>;
9
- const content: PropTypes.Requireable<string>;
10
- const onEditorInitialized: PropTypes.Validator<(...args: any[]) => any>;
11
- }
12
- namespace defaultProps {
13
- const isEditing_1: boolean;
14
- export { isEditing_1 as isEditing };
15
- const content_1: string;
16
- export { content_1 as content };
17
- }
9
+ export default class MarkdownEditor extends PureComponent<MarkdownEditorProps, Record<string, never>> {
10
+ static defaultProps: {
11
+ isEditing: boolean;
12
+ content: string;
13
+ };
14
+ constructor(props: MarkdownEditorProps);
15
+ container: HTMLDivElement | null;
16
+ renderMarkdown: CodeComponent;
17
+ render(): ReactElement;
18
18
  }
19
- export default MarkdownEditor;
20
- import React from "react";
21
- import PropTypes from "prop-types";
19
+ export {};
22
20
  //# sourceMappingURL=MarkdownEditor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownEditor.d.ts","sourceRoot":"","sources":["../../../src/controls/markdown/MarkdownEditor.jsx"],"names":[],"mappings":"AAKA;IACE,wBAGC;IADC,iCAAqB;IAGvB,4CAgBE;CA4BH"}
1
+ {"version":3,"file":"MarkdownEditor.d.ts","sourceRoot":"","sources":["../../../src/controls/markdown/MarkdownEditor.tsx"],"names":[],"mappings":"AAAA,OAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAEhE,OAAO,KAAK,KAAK,MAAM,MAAM,2CAA2C,CAAC;AAEzE,UAAU,mBAAmB;IAC3B,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,qBAAqB,KAAK,IAAI,CAAC;CAC5E;AACD,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,aAAa,CACvD,mBAAmB,EACnB,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CACtB;IACC,MAAM,CAAC,YAAY;;;MAGjB;gBAEU,KAAK,EAAE,mBAAmB;IAKtC,SAAS,EAAE,cAAc,GAAG,IAAI,CAAC;IAEjC,cAAc,EAAE,aAAa,CAgB3B;IAEF,MAAM,IAAI,YAAY;CA0BvB"}
@@ -1,13 +1,14 @@
1
1
  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; }
2
2
 
3
3
  import React, { PureComponent } from 'react';
4
- import PropTypes from 'prop-types';
5
4
  import Markdown from 'react-markdown';
6
5
  import { Code, Editor } from '@deephaven/console';
7
6
  export default class MarkdownEditor extends PureComponent {
8
7
  constructor(_props) {
9
8
  super(_props);
10
9
 
10
+ _defineProperty(this, "container", void 0);
11
+
11
12
  _defineProperty(this, "renderMarkdown", props => {
12
13
  var {
13
14
  children,
@@ -48,13 +49,9 @@ export default class MarkdownEditor extends PureComponent {
48
49
  }
49
50
 
50
51
  }
51
- MarkdownEditor.propTypes = {
52
- isEditing: PropTypes.bool,
53
- content: PropTypes.string,
54
- onEditorInitialized: PropTypes.func.isRequired
55
- };
56
- MarkdownEditor.defaultProps = {
52
+
53
+ _defineProperty(MarkdownEditor, "defaultProps", {
57
54
  isEditing: false,
58
55
  content: ''
59
- };
56
+ });
60
57
  //# sourceMappingURL=MarkdownEditor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownEditor.js","names":["React","PureComponent","PropTypes","Markdown","Code","Editor","MarkdownEditor","constructor","props","children","className","language","startsWith","substring","Children","map","child","trim","container","render","isEditing","content","onEditorInitialized","value","lineNumbers","code","renderMarkdown","propTypes","bool","string","func","isRequired","defaultProps"],"sources":["../../../src/controls/markdown/MarkdownEditor.jsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport Markdown from 'react-markdown';\nimport { Code, Editor } from '@deephaven/console';\n\nexport default class MarkdownEditor extends PureComponent {\n constructor(props) {\n super(props);\n this.container = null;\n }\n\n renderMarkdown = props => {\n const { children, className } = props;\n const language = className?.startsWith('language-')\n ? className.substring(9)\n : 'plaintext';\n return (\n <pre>\n <code>\n <Code language={language}>\n {React.Children.map(children, child =>\n typeof child === 'string' ? child.trim() : child\n )}\n </Code>\n </code>\n </pre>\n );\n };\n\n render() {\n const { isEditing, content, onEditorInitialized } = this.props;\n return (\n <div\n className=\"markdown-editor-container\"\n ref={container => {\n this.container = container;\n }}\n >\n {isEditing ? (\n <Editor\n settings={{\n language: 'markdown',\n value: content,\n lineNumbers: 'off',\n }}\n onEditorInitialized={onEditorInitialized}\n />\n ) : (\n <Markdown components={{ code: this.renderMarkdown }}>\n {content}\n </Markdown>\n )}\n </div>\n );\n }\n}\n\nMarkdownEditor.propTypes = {\n isEditing: PropTypes.bool,\n content: PropTypes.string,\n onEditorInitialized: PropTypes.func.isRequired,\n};\n\nMarkdownEditor.defaultProps = {\n isEditing: false,\n content: '',\n};\n"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAqC,OAArC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,QAAP,MAAqB,gBAArB;AACA,SAASC,IAAT,EAAeC,MAAf,QAA6B,oBAA7B;AAEA,eAAe,MAAMC,cAAN,SAA6BL,aAA7B,CAA2C;EACxDM,WAAW,CAACC,MAAD,EAAQ;IACjB,MAAMA,MAAN;;IADiB,wCAKFA,KAAK,IAAI;MACxB,IAAM;QAAEC,QAAF;QAAYC;MAAZ,IAA0BF,KAAhC;MACA,IAAMG,QAAQ,GAAGD,SAAS,SAAT,IAAAA,SAAS,WAAT,IAAAA,SAAS,CAAEE,UAAX,CAAsB,WAAtB,IACbF,SAAS,CAACG,SAAV,CAAoB,CAApB,CADa,GAEb,WAFJ;MAGA,oBACE,8CACE,+CACE,oBAAC,IAAD;QAAM,QAAQ,EAAEF;MAAhB,GACGX,KAAK,CAACc,QAAN,CAAeC,GAAf,CAAmBN,QAAnB,EAA6BO,KAAK,IACjC,OAAOA,KAAP,KAAiB,QAAjB,GAA4BA,KAAK,CAACC,IAAN,EAA5B,GAA2CD,KAD5C,CADH,CADF,CADF,CADF;IAWD,CArBkB;;IAEjB,KAAKE,SAAL,GAAiB,IAAjB;EACD;;EAoBDC,MAAM,GAAG;IACP,IAAM;MAAEC,SAAF;MAAaC,OAAb;MAAsBC;IAAtB,IAA8C,KAAKd,KAAzD;IACA,oBACE;MACE,SAAS,EAAC,2BADZ;MAEE,GAAG,EAAEU,SAAS,IAAI;QAChB,KAAKA,SAAL,GAAiBA,SAAjB;MACD;IAJH,GAMGE,SAAS,gBACR,oBAAC,MAAD;MACE,QAAQ,EAAE;QACRT,QAAQ,EAAE,UADF;QAERY,KAAK,EAAEF,OAFC;QAGRG,WAAW,EAAE;MAHL,CADZ;MAME,mBAAmB,EAAEF;IANvB,EADQ,gBAUR,oBAAC,QAAD;MAAU,UAAU,EAAE;QAAEG,IAAI,EAAE,KAAKC;MAAb;IAAtB,GACGL,OADH,CAhBJ,CADF;EAuBD;;AAjDuD;AAoD1Df,cAAc,CAACqB,SAAf,GAA2B;EACzBP,SAAS,EAAElB,SAAS,CAAC0B,IADI;EAEzBP,OAAO,EAAEnB,SAAS,CAAC2B,MAFM;EAGzBP,mBAAmB,EAAEpB,SAAS,CAAC4B,IAAV,CAAeC;AAHX,CAA3B;AAMAzB,cAAc,CAAC0B,YAAf,GAA8B;EAC5BZ,SAAS,EAAE,KADiB;EAE5BC,OAAO,EAAE;AAFmB,CAA9B"}
1
+ {"version":3,"sources":["../../../src/controls/markdown/MarkdownEditor.tsx"],"names":["React","PureComponent","Markdown","Code","Editor","MarkdownEditor","constructor","props","children","className","language","startsWith","substring","Children","map","child","trim","container","render","isEditing","content","onEditorInitialized","value","lineNumbers","code","renderMarkdown"],"mappings":";;AAAA,OAAOA,KAAP,IAAgBC,aAAhB,QAAmD,OAAnD;AACA,OAAOC,QAAP,MAAqB,gBAArB;AAEA,SAASC,IAAT,EAAeC,MAAf,QAA6B,oBAA7B;AAQA,eAAe,MAAMC,cAAN,SAA6BJ,aAA7B,CAGb;AAMAK,EAAAA,WAAW,CAACC,MAAD,EAA6B;AACtC,UAAMA,MAAN;;AADsC;;AAAA,4CAORA,KAAK,IAAI;AACvC,UAAM;AAAEC,QAAAA,QAAF;AAAYC,QAAAA;AAAZ,UAA0BF,KAAhC;AACA,UAAMG,QAAQ,GAAGD,SAAS,SAAT,IAAAA,SAAS,WAAT,IAAAA,SAAS,CAAEE,UAAX,CAAsB,WAAtB,IACbF,SAAS,CAACG,SAAV,CAAoB,CAApB,CADa,GAEb,WAFJ;AAGA,0BACE,8CACE,+CACE,oBAAC,IAAD;AAAM,QAAA,QAAQ,EAAEF;AAAhB,SACGV,KAAK,CAACa,QAAN,CAAeC,GAAf,CAAmBN,QAAnB,EAA6BO,KAAK,IACjC,OAAOA,KAAP,KAAiB,QAAjB,GAA4BA,KAAK,CAACC,IAAN,EAA5B,GAA2CD,KAD5C,CADH,CADF,CADF,CADF;AAWD,KAvBuC;;AAEtC,SAAKE,SAAL,GAAiB,IAAjB;AACD;;AAsBDC,EAAAA,MAAM,GAAiB;AACrB,QAAM;AAAEC,MAAAA,SAAF;AAAaC,MAAAA,OAAb;AAAsBC,MAAAA;AAAtB,QAA8C,KAAKd,KAAzD;AACA,wBACE;AACE,MAAA,SAAS,EAAC,2BADZ;AAEE,MAAA,GAAG,EAAEU,SAAS,IAAI;AAChB,aAAKA,SAAL,GAAiBA,SAAjB;AACD;AAJH,OAMGE,SAAS,gBACR,oBAAC,MAAD;AACE,MAAA,QAAQ,EAAE;AACRT,QAAAA,QAAQ,EAAE,UADF;AAERY,QAAAA,KAAK,EAAEF,OAFC;AAGRG,QAAAA,WAAW,EAAE;AAHL,OADZ;AAME,MAAA,mBAAmB,EAAEF;AANvB,MADQ,gBAUR,oBAAC,QAAD;AAAU,MAAA,UAAU,EAAE;AAAEG,QAAAA,IAAI,EAAE,KAAKC;AAAb;AAAtB,OACGL,OADH,CAhBJ,CADF;AAuBD;;AAxDD;;gBAHmBf,c,kBAIG;AACpBc,EAAAA,SAAS,EAAE,KADS;AAEpBC,EAAAA,OAAO,EAAE;AAFW,C","sourcesContent":["import React, { PureComponent, ReactElement } from 'react';\nimport Markdown from 'react-markdown';\nimport { CodeComponent } from 'react-markdown/src/ast-to-react';\nimport { Code, Editor } from '@deephaven/console';\nimport type * as monaco from 'monaco-editor/esm/vs/editor/editor.api.js';\n\ninterface MarkdownEditorProps {\n isEditing: boolean;\n content: string;\n onEditorInitialized: (editor: monaco.editor.IStandaloneCodeEditor) => void;\n}\nexport default class MarkdownEditor extends PureComponent<\n MarkdownEditorProps,\n Record<string, never>\n> {\n static defaultProps = {\n isEditing: false,\n content: '',\n };\n\n constructor(props: MarkdownEditorProps) {\n super(props);\n this.container = null;\n }\n\n container: HTMLDivElement | null;\n\n renderMarkdown: CodeComponent = props => {\n const { children, className } = props;\n const language = className?.startsWith('language-')\n ? className.substring(9)\n : 'plaintext';\n return (\n <pre>\n <code>\n <Code language={language}>\n {React.Children.map(children, child =>\n typeof child === 'string' ? child.trim() : child\n )}\n </Code>\n </code>\n </pre>\n );\n };\n\n render(): ReactElement {\n const { isEditing, content, onEditorInitialized } = this.props;\n return (\n <div\n className=\"markdown-editor-container\"\n ref={container => {\n this.container = container;\n }}\n >\n {isEditing ? (\n <Editor\n settings={{\n language: 'markdown',\n value: content,\n lineNumbers: 'off',\n }}\n onEditorInitialized={onEditorInitialized}\n />\n ) : (\n <Markdown components={{ code: this.renderMarkdown }}>\n {content}\n </Markdown>\n )}\n </div>\n );\n }\n}\n"],"file":"MarkdownEditor.js"}
@@ -1,31 +1,27 @@
1
- export default MarkdownStartPage;
2
- declare class MarkdownStartPage extends React.PureComponent<any, any, any> {
3
- constructor(props: any);
4
- handleDeleteButtonClick(markdown: any): void;
5
- handleDeleteModalClose(): void;
6
- handleDeleteMarkdown(markdown: any): void;
1
+ import { MouseEventHandler, PureComponent, ReactElement } from 'react';
2
+ import { ReactComponentConfig } from '@deephaven/golden-layout';
3
+ interface MarkdownStartPageProps {
4
+ closedMarkdowns: ReactComponentConfig[];
5
+ onOpen: (markdown: ReactComponentConfig) => void;
6
+ onCreate: MouseEventHandler<HTMLButtonElement>;
7
+ onDelete: (markdown: ReactComponentConfig) => void;
7
8
  }
8
- declare namespace MarkdownStartPage {
9
- namespace propTypes {
10
- const closedMarkdowns: PropTypes.Requireable<(PropTypes.InferProps<{
11
- title: PropTypes.Requireable<string>;
12
- content: PropTypes.Requireable<string>;
13
- }> | null | undefined)[]>;
14
- const onOpen: PropTypes.Requireable<(...args: any[]) => any>;
15
- const onCreate: PropTypes.Requireable<(...args: any[]) => any>;
16
- const onDelete: PropTypes.Requireable<(...args: any[]) => any>;
17
- }
18
- namespace defaultProps {
19
- const closedMarkdowns_1: never[];
20
- export { closedMarkdowns_1 as closedMarkdowns };
21
- export function onOpen_1(): void;
22
- export { onOpen_1 as onOpen };
23
- export function onCreate_1(): void;
24
- export { onCreate_1 as onCreate };
25
- export function onDelete_1(): void;
26
- export { onDelete_1 as onDelete };
27
- }
9
+ interface MarkdownStartPageState {
10
+ isDeleteModalShown: boolean;
11
+ toBeDeleted?: ReactComponentConfig;
28
12
  }
29
- import React from "react";
30
- import PropTypes from "prop-types";
13
+ declare class MarkdownStartPage extends PureComponent<MarkdownStartPageProps, MarkdownStartPageState> {
14
+ static defaultProps: {
15
+ closedMarkdowns: never[];
16
+ onOpen: () => void;
17
+ onCreate: () => void;
18
+ onDelete: () => void;
19
+ };
20
+ constructor(props: MarkdownStartPageProps);
21
+ handleDeleteButtonClick(markdown: ReactComponentConfig): void;
22
+ handleDeleteModalClose(): void;
23
+ handleDeleteMarkdown(markdown?: ReactComponentConfig): void;
24
+ render(): ReactElement;
25
+ }
26
+ export default MarkdownStartPage;
31
27
  //# sourceMappingURL=MarkdownStartPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownStartPage.d.ts","sourceRoot":"","sources":["../../../src/controls/markdown/MarkdownStartPage.jsx"],"names":[],"mappings":";AAiBA;IACE,wBAQC;IAED,6CAEC;IAED,+BAEC;IAED,0CAOC;CA4EF;;;;;;;;;;;;;;QAgBS,iCAAQ;;QACN,mCAAQ;;QACR,mCAAQ"}
1
+ {"version":3,"file":"MarkdownStartPage.d.ts","sourceRoot":"","sources":["../../../src/controls/markdown/MarkdownStartPage.tsx"],"names":[],"mappings":"AAAA,OAAc,EAEZ,iBAAiB,EACjB,aAAa,EACb,YAAY,EACb,MAAM,OAAO,CAAC;AAWf,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIhE,UAAU,sBAAsB;IAC9B,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,MAAM,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;IACjD,QAAQ,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC/C,QAAQ,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACpD;AAED,UAAU,sBAAsB;IAC9B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,oBAAoB,CAAC;CACpC;AAED,cAAM,iBAAkB,SAAQ,aAAa,CAC3C,sBAAsB,EACtB,sBAAsB,CACvB;IACC,MAAM,CAAC,YAAY;;sBAEL,IAAI;wBACF,IAAI;wBACJ,IAAI;MAClB;gBAEU,KAAK,EAAE,sBAAsB;IASzC,uBAAuB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI;IAI7D,sBAAsB,IAAI,IAAI;IAI9B,oBAAoB,CAAC,QAAQ,CAAC,EAAE,oBAAoB,GAAG,IAAI;IAW3D,MAAM,IAAI,YAAY;CA0EvB;AAED,eAAe,iBAAiB,CAAC"}
@@ -1,5 +1,6 @@
1
+ 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; }
2
+
1
3
  import React, { PureComponent } from 'react';
2
- import PropTypes from 'prop-types';
3
4
  import { Modal, ModalBody, ModalFooter, ModalHeader } from '@deephaven/components';
4
5
  import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
6
  import { vsTrash } from '@deephaven/icons';
@@ -12,8 +13,7 @@ class MarkdownStartPage extends PureComponent {
12
13
  this.handleDeleteButtonClick = this.handleDeleteButtonClick.bind(this);
13
14
  this.handleDeleteModalClose = this.handleDeleteModalClose.bind(this);
14
15
  this.state = {
15
- isDeleteModalShown: false,
16
- toBeDeleted: null
16
+ isDeleteModalShown: false
17
17
  };
18
18
  }
19
19
 
@@ -27,19 +27,23 @@ class MarkdownStartPage extends PureComponent {
27
27
  handleDeleteModalClose() {
28
28
  this.setState({
29
29
  isDeleteModalShown: false,
30
- toBeDeleted: null
30
+ toBeDeleted: undefined
31
31
  });
32
32
  }
33
33
 
34
34
  handleDeleteMarkdown(markdown) {
35
35
  log.debug('delete markdown: ', markdown);
36
- var {
37
- onDelete
38
- } = this.props;
39
- onDelete(markdown);
36
+
37
+ if (markdown !== undefined) {
38
+ var {
39
+ onDelete
40
+ } = this.props;
41
+ onDelete(markdown);
42
+ }
43
+
40
44
  this.setState({
41
45
  isDeleteModalShown: false,
42
- toBeDeleted: null
46
+ toBeDeleted: undefined
43
47
  });
44
48
  }
45
49
 
@@ -105,20 +109,12 @@ class MarkdownStartPage extends PureComponent {
105
109
 
106
110
  }
107
111
 
108
- MarkdownStartPage.propTypes = {
109
- closedMarkdowns: PropTypes.arrayOf(PropTypes.shape({
110
- title: PropTypes.string,
111
- content: PropTypes.string
112
- })),
113
- onOpen: PropTypes.func,
114
- onCreate: PropTypes.func,
115
- onDelete: PropTypes.func
116
- };
117
- MarkdownStartPage.defaultProps = {
112
+ _defineProperty(MarkdownStartPage, "defaultProps", {
118
113
  closedMarkdowns: [],
119
- onOpen: () => {},
120
- onCreate: () => {},
121
- onDelete: () => {}
122
- };
114
+ onOpen: () => undefined,
115
+ onCreate: () => undefined,
116
+ onDelete: () => undefined
117
+ });
118
+
123
119
  export default MarkdownStartPage;
124
120
  //# sourceMappingURL=MarkdownStartPage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownStartPage.js","names":["React","PureComponent","PropTypes","Modal","ModalBody","ModalFooter","ModalHeader","FontAwesomeIcon","vsTrash","Log","log","module","MarkdownStartPage","constructor","props","handleDeleteButtonClick","bind","handleDeleteModalClose","state","isDeleteModalShown","toBeDeleted","markdown","setState","handleDeleteMarkdown","debug","onDelete","render","closedMarkdowns","onOpen","onCreate","map","id","title","propTypes","arrayOf","shape","string","content","func","defaultProps"],"sources":["../../../src/controls/markdown/MarkdownStartPage.jsx"],"sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from '@deephaven/components';\n\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsTrash } from '@deephaven/icons';\n\nimport Log from '@deephaven/log';\n\nconst log = Log.module('MarkdownStartPage');\n\nclass MarkdownStartPage extends PureComponent {\n constructor(props) {\n super(props);\n this.handleDeleteButtonClick = this.handleDeleteButtonClick.bind(this);\n this.handleDeleteModalClose = this.handleDeleteModalClose.bind(this);\n this.state = {\n isDeleteModalShown: false,\n toBeDeleted: null,\n };\n }\n\n handleDeleteButtonClick(markdown) {\n this.setState({ isDeleteModalShown: true, toBeDeleted: markdown });\n }\n\n handleDeleteModalClose() {\n this.setState({ isDeleteModalShown: false, toBeDeleted: null });\n }\n\n handleDeleteMarkdown(markdown) {\n log.debug('delete markdown: ', markdown);\n\n const { onDelete } = this.props;\n onDelete(markdown);\n\n this.setState({ isDeleteModalShown: false, toBeDeleted: null });\n }\n\n render() {\n const { closedMarkdowns, onOpen, onCreate } = this.props;\n const { isDeleteModalShown, toBeDeleted } = this.state;\n\n return (\n <div className=\"markdown-panel-start-page h-100 w-100\">\n <div className=\"markdown-panel-start-page-container\">\n <div className=\"markdown-panel-start-list\">\n <h3 className=\"list-title\">Start</h3>\n <div className=\"list-item\">\n <button\n className=\"btn btn-link title\"\n type=\"button\"\n onClick={onCreate}\n >\n New Markdown Note\n </button>\n </div>\n </div>\n <div className=\"markdown-panel-start-list\">\n <h3 className=\"list-title\">Recently Closed from Dashboard</h3>\n {closedMarkdowns.map(markdown => (\n <div className=\"list-item\" key={markdown.id}>\n <button\n className=\"btn btn-link title\"\n type=\"button\"\n onClick={() => onOpen(markdown)}\n >\n {markdown.title}\n </button>\n <button\n className=\"btn-link icon\"\n type=\"button\"\n onClick={() => {\n this.handleDeleteButtonClick(markdown);\n }}\n >\n <FontAwesomeIcon icon={vsTrash} />\n </button>\n </div>\n ))}\n <Modal\n isOpen={isDeleteModalShown}\n toggle={this.handleDeleteModalClose}\n className=\"modal-dialog-centered markdown-delete-modal theme-bg-light\"\n >\n <ModalHeader>\n Are you sure you want to permanently delete this note?\n </ModalHeader>\n <ModalBody>You can&#39;t undo this action.</ModalBody>\n <ModalFooter>\n <button\n className=\"btn btn-outline-primary\"\n onClick={this.handleDeleteModalClose}\n type=\"button\"\n >\n Cancel\n </button>\n <button\n className=\"btn btn-danger\"\n onClick={() => {\n this.handleDeleteMarkdown(toBeDeleted);\n }}\n type=\"button\"\n >\n Delete\n </button>\n </ModalFooter>\n </Modal>\n </div>\n </div>\n </div>\n );\n }\n}\n\nMarkdownStartPage.propTypes = {\n closedMarkdowns: PropTypes.arrayOf(\n PropTypes.shape({\n title: PropTypes.string,\n content: PropTypes.string,\n })\n ),\n onOpen: PropTypes.func,\n onCreate: PropTypes.func,\n onDelete: PropTypes.func,\n};\n\nMarkdownStartPage.defaultProps = {\n closedMarkdowns: [],\n onOpen: () => {},\n onCreate: () => {},\n onDelete: () => {},\n};\n\nexport default MarkdownStartPage;\n"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/controls/markdown/MarkdownStartPage.tsx"],"names":["React","PureComponent","Modal","ModalBody","ModalFooter","ModalHeader","FontAwesomeIcon","vsTrash","Log","log","module","MarkdownStartPage","constructor","props","handleDeleteButtonClick","bind","handleDeleteModalClose","state","isDeleteModalShown","markdown","setState","toBeDeleted","undefined","handleDeleteMarkdown","debug","onDelete","render","closedMarkdowns","onOpen","onCreate","map","id","title"],"mappings":";;AAAA,OAAOA,KAAP,IAGEC,aAHF,QAKO,OALP;AAMA,SACEC,KADF,EAEEC,SAFF,EAGEC,WAHF,EAIEC,WAJF,QAKO,uBALP;AAMA,SAASC,eAAT,QAAgC,gCAAhC;AACA,SAASC,OAAT,QAAwB,kBAAxB;AAEA,OAAOC,GAAP,MAAgB,gBAAhB;AAGA,IAAMC,GAAG,GAAGD,GAAG,CAACE,MAAJ,CAAW,mBAAX,CAAZ;;AAcA,MAAMC,iBAAN,SAAgCV,aAAhC,CAGE;AAQAW,EAAAA,WAAW,CAACC,KAAD,EAAgC;AACzC,UAAMA,KAAN;AACA,SAAKC,uBAAL,GAA+B,KAAKA,uBAAL,CAA6BC,IAA7B,CAAkC,IAAlC,CAA/B;AACA,SAAKC,sBAAL,GAA8B,KAAKA,sBAAL,CAA4BD,IAA5B,CAAiC,IAAjC,CAA9B;AACA,SAAKE,KAAL,GAAa;AACXC,MAAAA,kBAAkB,EAAE;AADT,KAAb;AAGD;;AAEDJ,EAAAA,uBAAuB,CAACK,QAAD,EAAuC;AAC5D,SAAKC,QAAL,CAAc;AAAEF,MAAAA,kBAAkB,EAAE,IAAtB;AAA4BG,MAAAA,WAAW,EAAEF;AAAzC,KAAd;AACD;;AAEDH,EAAAA,sBAAsB,GAAS;AAC7B,SAAKI,QAAL,CAAc;AAAEF,MAAAA,kBAAkB,EAAE,KAAtB;AAA6BG,MAAAA,WAAW,EAAEC;AAA1C,KAAd;AACD;;AAEDC,EAAAA,oBAAoB,CAACJ,QAAD,EAAwC;AAC1DV,IAAAA,GAAG,CAACe,KAAJ,CAAU,mBAAV,EAA+BL,QAA/B;;AAEA,QAAIA,QAAQ,KAAKG,SAAjB,EAA4B;AAC1B,UAAM;AAAEG,QAAAA;AAAF,UAAe,KAAKZ,KAA1B;AACAY,MAAAA,QAAQ,CAACN,QAAD,CAAR;AACD;;AAED,SAAKC,QAAL,CAAc;AAAEF,MAAAA,kBAAkB,EAAE,KAAtB;AAA6BG,MAAAA,WAAW,EAAEC;AAA1C,KAAd;AACD;;AAEDI,EAAAA,MAAM,GAAiB;AACrB,QAAM;AAAEC,MAAAA,eAAF;AAAmBC,MAAAA,MAAnB;AAA2BC,MAAAA;AAA3B,QAAwC,KAAKhB,KAAnD;AACA,QAAM;AAAEK,MAAAA,kBAAF;AAAsBG,MAAAA;AAAtB,QAAsC,KAAKJ,KAAjD;AAEA,wBACE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAI,MAAA,SAAS,EAAC;AAAd,eADF,eAEE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AACE,MAAA,SAAS,EAAC,oBADZ;AAEE,MAAA,IAAI,EAAC,QAFP;AAGE,MAAA,OAAO,EAAEY;AAHX,2BADF,CAFF,CADF,eAaE;AAAK,MAAA,SAAS,EAAC;AAAf,oBACE;AAAI,MAAA,SAAS,EAAC;AAAd,wCADF,EAEGF,eAAe,CAACG,GAAhB,CAAoBX,QAAQ,iBAC3B;AAAK,MAAA,SAAS,EAAC,WAAf;AAA2B,MAAA,GAAG,EAAEA,QAAQ,CAACY;AAAzC,oBACE;AACE,MAAA,SAAS,EAAC,oBADZ;AAEE,MAAA,IAAI,EAAC,QAFP;AAGE,MAAA,OAAO,EAAE,MAAMH,MAAM,CAACT,QAAD;AAHvB,OAKGA,QAAQ,CAACa,KALZ,CADF,eAQE;AACE,MAAA,SAAS,EAAC,eADZ;AAEE,MAAA,IAAI,EAAC,QAFP;AAGE,MAAA,OAAO,EAAE,MAAM;AACb,aAAKlB,uBAAL,CAA6BK,QAA7B;AACD;AALH,oBAOE,oBAAC,eAAD;AAAiB,MAAA,IAAI,EAAEZ;AAAvB,MAPF,CARF,CADD,CAFH,eAsBE,oBAAC,KAAD;AACE,MAAA,MAAM,EAAEW,kBADV;AAEE,MAAA,MAAM,EAAE,KAAKF,sBAFf;AAGE,MAAA,SAAS,EAAC;AAHZ,oBAKE,oBAAC,WAAD,iEALF,eAQE,oBAAC,SAAD,sCARF,eASE,oBAAC,WAAD,qBACE;AACE,MAAA,SAAS,EAAC,yBADZ;AAEE,MAAA,OAAO,EAAE,KAAKA,sBAFhB;AAGE,MAAA,IAAI,EAAC;AAHP,gBADF,eAQE;AACE,MAAA,SAAS,EAAC,gBADZ;AAEE,MAAA,OAAO,EAAE,MAAM;AACb,aAAKO,oBAAL,CAA0BF,WAA1B;AACD,OAJH;AAKE,MAAA,IAAI,EAAC;AALP,gBARF,CATF,CAtBF,CAbF,CADF,CADF;AAqED;;AA7GD;;gBAHIV,iB,kBAIkB;AACpBgB,EAAAA,eAAe,EAAE,EADG;AAEpBC,EAAAA,MAAM,EAAE,MAAYN,SAFA;AAGpBO,EAAAA,QAAQ,EAAE,MAAYP,SAHF;AAIpBG,EAAAA,QAAQ,EAAE,MAAYH;AAJF,C;;AA+GxB,eAAeX,iBAAf","sourcesContent":["import React, {\n Key,\n MouseEventHandler,\n PureComponent,\n ReactElement,\n} from 'react';\nimport {\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n} from '@deephaven/components';\nimport { FontAwesomeIcon } from '@fortawesome/react-fontawesome';\nimport { vsTrash } from '@deephaven/icons';\n\nimport Log from '@deephaven/log';\nimport { ReactComponentConfig } from '@deephaven/golden-layout';\n\nconst log = Log.module('MarkdownStartPage');\n\ninterface MarkdownStartPageProps {\n closedMarkdowns: ReactComponentConfig[];\n onOpen: (markdown: ReactComponentConfig) => void;\n onCreate: MouseEventHandler<HTMLButtonElement>;\n onDelete: (markdown: ReactComponentConfig) => void;\n}\n\ninterface MarkdownStartPageState {\n isDeleteModalShown: boolean;\n toBeDeleted?: ReactComponentConfig;\n}\n\nclass MarkdownStartPage extends PureComponent<\n MarkdownStartPageProps,\n MarkdownStartPageState\n> {\n static defaultProps = {\n closedMarkdowns: [],\n onOpen: (): void => undefined,\n onCreate: (): void => undefined,\n onDelete: (): void => undefined,\n };\n\n constructor(props: MarkdownStartPageProps) {\n super(props);\n this.handleDeleteButtonClick = this.handleDeleteButtonClick.bind(this);\n this.handleDeleteModalClose = this.handleDeleteModalClose.bind(this);\n this.state = {\n isDeleteModalShown: false,\n };\n }\n\n handleDeleteButtonClick(markdown: ReactComponentConfig): void {\n this.setState({ isDeleteModalShown: true, toBeDeleted: markdown });\n }\n\n handleDeleteModalClose(): void {\n this.setState({ isDeleteModalShown: false, toBeDeleted: undefined });\n }\n\n handleDeleteMarkdown(markdown?: ReactComponentConfig): void {\n log.debug('delete markdown: ', markdown);\n\n if (markdown !== undefined) {\n const { onDelete } = this.props;\n onDelete(markdown);\n }\n\n this.setState({ isDeleteModalShown: false, toBeDeleted: undefined });\n }\n\n render(): ReactElement {\n const { closedMarkdowns, onOpen, onCreate } = this.props;\n const { isDeleteModalShown, toBeDeleted } = this.state;\n\n return (\n <div className=\"markdown-panel-start-page h-100 w-100\">\n <div className=\"markdown-panel-start-page-container\">\n <div className=\"markdown-panel-start-list\">\n <h3 className=\"list-title\">Start</h3>\n <div className=\"list-item\">\n <button\n className=\"btn btn-link title\"\n type=\"button\"\n onClick={onCreate}\n >\n New Markdown Note\n </button>\n </div>\n </div>\n <div className=\"markdown-panel-start-list\">\n <h3 className=\"list-title\">Recently Closed from Dashboard</h3>\n {closedMarkdowns.map(markdown => (\n <div className=\"list-item\" key={markdown.id as Key}>\n <button\n className=\"btn btn-link title\"\n type=\"button\"\n onClick={() => onOpen(markdown)}\n >\n {markdown.title}\n </button>\n <button\n className=\"btn-link icon\"\n type=\"button\"\n onClick={() => {\n this.handleDeleteButtonClick(markdown);\n }}\n >\n <FontAwesomeIcon icon={vsTrash} />\n </button>\n </div>\n ))}\n <Modal\n isOpen={isDeleteModalShown}\n toggle={this.handleDeleteModalClose}\n className=\"modal-dialog-centered markdown-delete-modal theme-bg-light\"\n >\n <ModalHeader>\n Are you sure you want to permanently delete this note?\n </ModalHeader>\n <ModalBody>You can&#39;t undo this action.</ModalBody>\n <ModalFooter>\n <button\n className=\"btn btn-outline-primary\"\n onClick={this.handleDeleteModalClose}\n type=\"button\"\n >\n Cancel\n </button>\n <button\n className=\"btn btn-danger\"\n onClick={() => {\n this.handleDeleteMarkdown(toBeDeleted);\n }}\n type=\"button\"\n >\n Delete\n </button>\n </ModalFooter>\n </Modal>\n </div>\n </div>\n </div>\n );\n }\n}\n\nexport default MarkdownStartPage;\n"],"file":"MarkdownStartPage.js"}
@@ -1,12 +1,12 @@
1
- export default MarkdownUtils;
2
1
  declare class MarkdownUtils {
3
2
  static DEFAULT_TITLE: string;
4
3
  static DEFAULT_CONTENT: string;
5
4
  /**
6
5
  * Retrieves a new markdown title that does not conflict with the current titles
7
- * @param {Array<String>} usedTitles Markdown titles that are already in use
8
- * @returns {String} The new title
6
+ * @param usedTitles Markdown titles that are already in use
7
+ * @returns The new title
9
8
  */
10
- static getNewMarkdownTitle(usedTitles: Array<string>): string;
9
+ static getNewMarkdownTitle(usedTitles: string[]): string;
11
10
  }
11
+ export default MarkdownUtils;
12
12
  //# sourceMappingURL=MarkdownUtils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MarkdownUtils.d.ts","sourceRoot":"","sources":["../../../src/controls/markdown/MarkdownUtils.js"],"names":[],"mappings":";AAAA;IACE,6BAA8B;IAE9B,+BAC+E;IAE/E;;;;OAIG;IACH,uCAHW,aAAa,UAYvB;CACF"}
1
+ {"version":3,"file":"MarkdownUtils.d.ts","sourceRoot":"","sources":["../../../src/controls/markdown/MarkdownUtils.ts"],"names":[],"mappings":"AAAA,cAAM,aAAa;IACjB,MAAM,CAAC,aAAa,SAAU;IAE9B,MAAM,CAAC,eAAe,SACyD;IAE/E;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM;CAUzD;AAED,eAAe,aAAa,CAAC"}
@@ -3,8 +3,8 @@ function _defineProperty(obj, key, value) { if (key in obj) { Object.definePrope
3
3
  class MarkdownUtils {
4
4
  /**
5
5
  * Retrieves a new markdown title that does not conflict with the current titles
6
- * @param {Array<String>} usedTitles Markdown titles that are already in use
7
- * @returns {String} The new title
6
+ * @param usedTitles Markdown titles that are already in use
7
+ * @returns The new title
8
8
  */
9
9
  static getNewMarkdownTitle(usedTitles) {
10
10
  var title = "".concat(MarkdownUtils.DEFAULT_TITLE);