@deephaven/dashboard-core-plugins 0.6.1-markdownnotebooks.7 → 0.6.3-bard.1

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 (44) hide show
  1. package/dist/ConsolePlugin.d.ts.map +1 -1
  2. package/dist/ConsolePlugin.js +5 -11
  3. package/dist/ConsolePlugin.js.map +1 -1
  4. package/dist/controls/ControlType.d.ts +0 -1
  5. package/dist/controls/ControlType.d.ts.map +1 -1
  6. package/dist/controls/ControlType.js +0 -2
  7. package/dist/controls/ControlType.js.map +1 -1
  8. package/dist/events/index.d.ts +0 -1
  9. package/dist/events/index.js +0 -1
  10. package/dist/events/index.js.map +1 -1
  11. package/dist/linker/Linker.d.ts +13 -13
  12. package/dist/linker/Linker.d.ts.map +1 -1
  13. package/dist/linker/Linker.js +5 -6
  14. package/dist/linker/Linker.js.map +1 -1
  15. package/dist/panels/ConsolePanel.d.ts.map +1 -1
  16. package/dist/panels/ConsolePanel.js +3 -3
  17. package/dist/panels/ConsolePanel.js.map +1 -1
  18. package/dist/panels/DropdownFilterPanel.d.ts +1 -1
  19. package/dist/panels/FileExplorerPanel.js.map +1 -1
  20. package/dist/panels/IrisGridPanel.d.ts +9 -3
  21. package/dist/panels/IrisGridPanel.d.ts.map +1 -1
  22. package/dist/panels/IrisGridPanel.js +40 -11
  23. package/dist/panels/IrisGridPanel.js.map +1 -1
  24. package/dist/redux/reducers/sessionWrapper.d.ts +1 -1
  25. package/dist/tsconfig.tsbuildinfo +1 -1
  26. package/package.json +17 -17
  27. package/dist/events/ControlEvent.d.ts +0 -5
  28. package/dist/events/ControlEvent.d.ts.map +0 -1
  29. package/dist/events/ControlEvent.js +0 -8
  30. package/dist/events/ControlEvent.js.map +0 -1
  31. package/dist/panels/MarkdownNotebookContainer.d.ts +0 -21
  32. package/dist/panels/MarkdownNotebookContainer.d.ts.map +0 -1
  33. package/dist/panels/MarkdownNotebookContainer.js +0 -35
  34. package/dist/panels/MarkdownNotebookContainer.js.map +0 -1
  35. package/dist/panels/MarkdownNotebookEditor.d.ts +0 -46
  36. package/dist/panels/MarkdownNotebookEditor.d.ts.map +0 -1
  37. package/dist/panels/MarkdownNotebookEditor.js +0 -257
  38. package/dist/panels/MarkdownNotebookEditor.js.map +0 -1
  39. package/dist/panels/MarkdownNotebookPanel.css +0 -127
  40. package/dist/panels/MarkdownNotebookPanel.css.map +0 -1
  41. package/dist/panels/MarkdownNotebookPanel.d.ts +0 -91
  42. package/dist/panels/MarkdownNotebookPanel.d.ts.map +0 -1
  43. package/dist/panels/MarkdownNotebookPanel.js +0 -446
  44. package/dist/panels/MarkdownNotebookPanel.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/dashboard-core-plugins",
3
- "version": "0.6.1-markdownnotebooks.7+cb9c205",
3
+ "version": "0.6.3-bard.1+efeb75a",
4
4
  "description": "Deephaven Dashboard Core Plugins",
5
5
  "author": "Deephaven Data Labs LLC",
6
6
  "license": "Apache-2.0",
@@ -20,7 +20,7 @@
20
20
  "build-dev": "cross-env NODE_ENV=development run-s clean build-steps",
21
21
  "build-steps": "run-p build:*",
22
22
  "babel": "babel ./src --out-dir ./dist --extensions \".ts,.tsx,.js,.jsx\" --source-maps --root-mode upward",
23
- "sass": "sass --load-path=node_modules ./src:./dist",
23
+ "sass": "sass ./src:./dist",
24
24
  "types": "tsc",
25
25
  "build:babel": "npm run babel",
26
26
  "build:sass": "npm run sass",
@@ -34,15 +34,15 @@
34
34
  "start": "cross-env NODE_ENV=development npm run watch"
35
35
  },
36
36
  "dependencies": {
37
- "@deephaven/chart": "^0.6.1-markdownnotebooks.7+cb9c205",
38
- "@deephaven/console": "^0.6.1-markdownnotebooks.7+cb9c205",
39
- "@deephaven/dashboard": "^0.6.1-markdownnotebooks.7+cb9c205",
40
- "@deephaven/file-explorer": "^0.6.1-markdownnotebooks.7+cb9c205",
41
- "@deephaven/golden-layout": "^0.6.1-markdownnotebooks.7+cb9c205",
42
- "@deephaven/icons": "^0.6.1-markdownnotebooks.7+cb9c205",
43
- "@deephaven/iris-grid": "^0.6.1-markdownnotebooks.7+cb9c205",
44
- "@deephaven/jsapi-shim": "^0.6.1-markdownnotebooks.7+cb9c205",
45
- "@deephaven/utils": "^0.6.1-markdownnotebooks.7+cb9c205",
37
+ "@deephaven/chart": "^0.6.3-bard.1+efeb75a",
38
+ "@deephaven/console": "^0.6.3-bard.1+efeb75a",
39
+ "@deephaven/dashboard": "^0.6.3-bard.1+efeb75a",
40
+ "@deephaven/file-explorer": "^0.6.3-bard.1+efeb75a",
41
+ "@deephaven/golden-layout": "^0.6.3-bard.1+efeb75a",
42
+ "@deephaven/icons": "^0.6.3-bard.1+efeb75a",
43
+ "@deephaven/iris-grid": "^0.6.3-bard.1+efeb75a",
44
+ "@deephaven/jsapi-shim": "^0.6.3-bard.1+efeb75a",
45
+ "@deephaven/utils": "^0.6.3-bard.1+efeb75a",
46
46
  "@fortawesome/react-fontawesome": "^0.1.12",
47
47
  "classnames": "^2.3.1",
48
48
  "deep-equal": "^2.0.4",
@@ -66,11 +66,11 @@
66
66
  },
67
67
  "devDependencies": {
68
68
  "@babel/cli": "^7.14.8",
69
- "@deephaven/components": "^0.6.1-markdownnotebooks.7+cb9c205",
70
- "@deephaven/log": "^0.6.1-markdownnotebooks.7+cb9c205",
71
- "@deephaven/mocks": "^0.6.1-markdownnotebooks.7+cb9c205",
72
- "@deephaven/redux": "^0.6.1-markdownnotebooks.7+cb9c205",
73
- "@deephaven/tsconfig": "^0.6.1-markdownnotebooks.7+cb9c205",
69
+ "@deephaven/components": "^0.6.3-bard.1+efeb75a",
70
+ "@deephaven/log": "^0.6.3-bard.1+efeb75a",
71
+ "@deephaven/mocks": "^0.6.3-bard.1+efeb75a",
72
+ "@deephaven/redux": "^0.6.3-bard.1+efeb75a",
73
+ "@deephaven/tsconfig": "^0.6.3-bard.1+efeb75a",
74
74
  "@storybook/addon-actions": "^6.2.3",
75
75
  "@storybook/addon-essentials": "^6.2.3",
76
76
  "@storybook/addon-links": "^6.2.3",
@@ -92,5 +92,5 @@
92
92
  "publishConfig": {
93
93
  "access": "public"
94
94
  },
95
- "gitHead": "cb9c205657106139bea9a0d2159681b82126adda"
95
+ "gitHead": "efeb75ac28c37ccf3fa966286a3535ebcaae071a"
96
96
  }
@@ -1,5 +0,0 @@
1
- export default ControlEvent;
2
- declare class ControlEvent {
3
- static CLOSE: string;
4
- }
5
- //# sourceMappingURL=ControlEvent.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ControlEvent.d.ts","sourceRoot":"","sources":["../../src/events/ControlEvent.js"],"names":[],"mappings":";AAAA;IACE,qBAAoC;CACrC"}
@@ -1,8 +0,0 @@
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
-
3
- class ControlEvent {}
4
-
5
- _defineProperty(ControlEvent, "CLOSE", 'ControlEvent.CLOSE');
6
-
7
- export default ControlEvent;
8
- //# sourceMappingURL=ControlEvent.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/events/ControlEvent.js"],"names":["ControlEvent"],"mappings":";;AAAA,MAAMA,YAAN,CAAmB;;gBAAbA,Y,WACW,oB;;AAGjB,eAAeA,YAAf","sourcesContent":["class ControlEvent {\n static CLOSE = 'ControlEvent.CLOSE';\n}\n\nexport default ControlEvent;\n"],"file":"ControlEvent.js"}
@@ -1,21 +0,0 @@
1
- declare class MarkdownNotebookContainer extends React.PureComponent<any, any, any> {
2
- constructor(props: any);
3
- constructor(props: any, context: any);
4
- }
5
- declare namespace MarkdownNotebookContainer {
6
- namespace propTypes {
7
- const onDoubleClick: PropTypes.Requireable<(...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
- const onDoubleClick_1: null;
15
- export { onDoubleClick_1 as onDoubleClick };
16
- }
17
- }
18
- export default MarkdownNotebookContainer;
19
- import React from "react";
20
- import PropTypes from "prop-types";
21
- //# sourceMappingURL=MarkdownNotebookContainer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownNotebookContainer.d.ts","sourceRoot":"","sources":["../../src/panels/MarkdownNotebookContainer.jsx"],"names":[],"mappings":"AAMA;IAoCi4kB,wBAA8C;IAAA,sCAAyJ;CAZvklB"}
@@ -1,35 +0,0 @@
1
- import React, { PureComponent } from 'react';
2
- import PropTypes from 'prop-types';
3
- import classNames from 'classnames';
4
- import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
- import { vsEdit } from '@deephaven/icons';
6
- export default class MarkdownNotebookContainer extends PureComponent {
7
- render() {
8
- var {
9
- isEditing,
10
- children,
11
- onDoubleClick
12
- } = this.props;
13
- return /*#__PURE__*/React.createElement("div", {
14
- className: "markdown-notebook-container h-100 w-100",
15
- onDoubleClick: onDoubleClick
16
- }, onDoubleClick && /*#__PURE__*/React.createElement("div", {
17
- className: classNames('text-muted', 'edit-hint', {
18
- viewing: !isEditing
19
- })
20
- }, /*#__PURE__*/React.createElement("span", null, "double-click to edit ", /*#__PURE__*/React.createElement(FontAwesomeIcon, {
21
- icon: vsEdit
22
- }))), children);
23
- }
24
-
25
- }
26
- MarkdownNotebookContainer.propTypes = {
27
- onDoubleClick: PropTypes.func,
28
- children: PropTypes.node.isRequired,
29
- isEditing: PropTypes.bool
30
- };
31
- MarkdownNotebookContainer.defaultProps = {
32
- isEditing: false,
33
- onDoubleClick: null
34
- };
35
- //# sourceMappingURL=MarkdownNotebookContainer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/panels/MarkdownNotebookContainer.jsx"],"names":["React","PureComponent","PropTypes","classNames","FontAwesomeIcon","vsEdit","MarkdownNotebookContainer","render","isEditing","children","onDoubleClick","props","viewing","propTypes","func","node","isRequired","bool","defaultProps"],"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,yBAAN,SAAwCL,aAAxC,CAAsD;AACnEM,EAAAA,MAAM,GAAG;AACP,QAAM;AAAEC,MAAAA,SAAF;AAAaC,MAAAA,QAAb;AAAuBC,MAAAA;AAAvB,QAAyC,KAAKC,KAApD;AAEA,wBACE;AACE,MAAA,SAAS,EAAC,yCADZ;AAEE,MAAA,aAAa,EAAED;AAFjB,OAIGA,aAAa,iBACZ;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,CALJ,EAeGI,QAfH,CADF;AAmBD;;AAvBkE;AA0BrEH,yBAAyB,CAACO,SAA1B,GAAsC;AACpCH,EAAAA,aAAa,EAAER,SAAS,CAACY,IADW;AAEpCL,EAAAA,QAAQ,EAAEP,SAAS,CAACa,IAAV,CAAeC,UAFW;AAGpCR,EAAAA,SAAS,EAAEN,SAAS,CAACe;AAHe,CAAtC;AAMAX,yBAAyB,CAACY,YAA1B,GAAyC;AACvCV,EAAAA,SAAS,EAAE,KAD4B;AAEvCE,EAAAA,aAAa,EAAE;AAFwB,CAAzC","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 MarkdownNotebookContainer extends PureComponent {\n render() {\n const { isEditing, children, onDoubleClick } = this.props;\n\n return (\n <div\n className=\"markdown-notebook-container h-100 w-100\"\n onDoubleClick={onDoubleClick}\n >\n {onDoubleClick && (\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 )}\n {children}\n </div>\n );\n }\n}\n\nMarkdownNotebookContainer.propTypes = {\n onDoubleClick: PropTypes.func,\n children: PropTypes.node.isRequired,\n isEditing: PropTypes.bool,\n};\n\nMarkdownNotebookContainer.defaultProps = {\n isEditing: false,\n onDoubleClick: null,\n};\n"],"file":"MarkdownNotebookContainer.js"}
@@ -1,46 +0,0 @@
1
- declare class MarkdownNotebookEditor extends React.PureComponent<any, any, any> {
2
- constructor(props: any);
3
- handleRunSelected(event: any): void;
4
- renderCodeBlock(props: any): JSX.Element;
5
- renderLink(props: any): JSX.Element;
6
- container: HTMLDivElement | null;
7
- commands: Map<any, any>;
8
- codeElements: Map<any, any>;
9
- editorScrollView: React.RefObject<any>;
10
- resetBlocks(): void;
11
- /**
12
- * @param {number|null} line The line of the code block to start from
13
- * @returns {number} The next line of the code block to start from
14
- */
15
- getNextStartLine(line: number | null): number;
16
- runCode(command: any): void;
17
- }
18
- declare namespace MarkdownNotebookEditor {
19
- namespace propTypes {
20
- const isEditing: PropTypes.Requireable<boolean>;
21
- const onRunCode: PropTypes.Requireable<(...args: any[]) => any>;
22
- const content: PropTypes.Requireable<string>;
23
- const onEditorInitialized: PropTypes.Validator<(...args: any[]) => any>;
24
- const onLinkClick: PropTypes.Requireable<(...args: any[]) => any>;
25
- const transformImageUri: PropTypes.Requireable<(...args: any[]) => any>;
26
- const transformLinkUri: PropTypes.Requireable<(...args: any[]) => any>;
27
- }
28
- namespace defaultProps {
29
- const isEditing_1: boolean;
30
- export { isEditing_1 as isEditing };
31
- const content_1: string;
32
- export { content_1 as content };
33
- const onLinkClick_1: undefined;
34
- export { onLinkClick_1 as onLinkClick };
35
- export function onRunCode_1(): void;
36
- export { onRunCode_1 as onRunCode };
37
- const transformImageUri_1: undefined;
38
- export { transformImageUri_1 as transformImageUri };
39
- const transformLinkUri_1: undefined;
40
- export { transformLinkUri_1 as transformLinkUri };
41
- }
42
- }
43
- export default MarkdownNotebookEditor;
44
- import React from "react";
45
- import PropTypes from "prop-types";
46
- //# sourceMappingURL=MarkdownNotebookEditor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MarkdownNotebookEditor.d.ts","sourceRoot":"","sources":["../../src/panels/MarkdownNotebookEditor.jsx"],"names":[],"mappings":"AASA;IACE,wBAqBC;IA8BD,oCA4BC;IASD,yCAwDC;IAGD,oCAIC;IAhJC,iCAAqB;IAGrB,wBAAyB;IACzB,4BAA6B;IAC7B,uCAAyC;IAkB3C,oBAIC;IAED;;;OAGG;IACH,uBAHW,MAAM,GAAC,IAAI,GACT,MAAM,CAWlB;IAgCD,4BAKC;CA2HF;;;;;;;;;;;;;;;;;;QAgBY,oCAAQ"}
@@ -1,257 +0,0 @@
1
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
-
3
- import React, { PureComponent } from 'react';
4
- import PropTypes from 'prop-types';
5
- import Markdown from 'react-markdown';
6
- import { Button } from '@deephaven/components';
7
- import { Code, Editor } from '@deephaven/console';
8
- import classNames from 'classnames';
9
- import { vsPlay } from '@deephaven/icons';
10
- import remarkGfm from 'remark-gfm';
11
- export default class MarkdownNotebookEditor extends PureComponent {
12
- constructor(props) {
13
- super(props);
14
- this.handleRunSelected = this.handleRunSelected.bind(this);
15
- this.renderCodeBlock = this.renderCodeBlock.bind(this);
16
- this.renderLink = this.renderLink.bind(this);
17
- this.container = null; // Map of each code block from it's starting line number to the code within that block
18
-
19
- this.commands = new Map();
20
- this.codeElements = new Map();
21
- this.editorScrollView = /*#__PURE__*/React.createRef();
22
- this.state = {
23
- // Keep track if any code has been executed yet. If not, make the run button flash
24
- hasRunCode: false,
25
- // Line of the next block to execute. Null to start at the first block
26
- nextStartLine: null
27
- };
28
- }
29
-
30
- componentDidUpdate(prevProps) {
31
- var {
32
- content
33
- } = this.props;
34
-
35
- if (prevProps.content !== content) {
36
- this.resetBlocks();
37
- }
38
- }
39
-
40
- resetBlocks() {
41
- this.codeElements.clear();
42
- this.commands.clear();
43
- this.setState({
44
- nextStartLine: null
45
- });
46
- }
47
- /**
48
- * @param {number|null} line The line of the code block to start from
49
- * @returns {number} The next line of the code block to start from
50
- */
51
-
52
-
53
- getNextStartLine(line) {
54
- var keys = [...this.commands.keys()];
55
- var nextIndex = keys.findIndex(key => key === line) + 1;
56
-
57
- if (nextIndex >= keys.length) {
58
- // We got to the last block, disable
59
- return null;
60
- }
61
-
62
- return keys[nextIndex];
63
- }
64
-
65
- handleRunSelected(event) {
66
- var _this$codeElements$ge, _element$parentElemen;
67
-
68
- event.preventDefault();
69
- event.stopPropagation();
70
- var {
71
- nextStartLine
72
- } = this.state;
73
- var keys = [...this.commands.keys()];
74
- var keyIndex = keys.findIndex(key => key === nextStartLine || nextStartLine == null);
75
-
76
- if (keyIndex < 0) {
77
- return;
78
- }
79
-
80
- var startLine = keys[keyIndex];
81
- var command = this.commands.get(startLine);
82
- var newNextStartLine = this.getNextStartLine(startLine);
83
- var element = (_this$codeElements$ge = this.codeElements.get(startLine)) === null || _this$codeElements$ge === void 0 ? void 0 : _this$codeElements$ge.current;
84
- var nextElement = element === null || element === void 0 ? void 0 : (_element$parentElemen = element.parentElement) === null || _element$parentElemen === void 0 ? void 0 : _element$parentElemen.nextElementSibling;
85
-
86
- if (nextElement) {
87
- var {
88
- offsetTop
89
- } = nextElement;
90
- var top = offsetTop;
91
- this.editorScrollView.current.scroll({
92
- top,
93
- left: 0
94
- });
95
- }
96
-
97
- this.runCode(command);
98
- this.setState({
99
- nextStartLine: newNextStartLine
100
- });
101
- }
102
-
103
- runCode(command) {
104
- var {
105
- onRunCode
106
- } = this.props;
107
- onRunCode(command);
108
- this.setState({
109
- hasRunCode: true
110
- });
111
- }
112
-
113
- renderCodeBlock(props) {
114
- var {
115
- children,
116
- className,
117
- inline,
118
- node
119
- } = props;
120
- var {
121
- hasRunCode,
122
- nextStartLine
123
- } = this.state;
124
- var {
125
- children: nodeChildren,
126
- position
127
- } = node;
128
- var {
129
- start
130
- } = position;
131
- var {
132
- line
133
- } = start;
134
- var command = nodeChildren[0].value;
135
- var ref = /*#__PURE__*/React.createRef();
136
- var isFirstBlock = this.commands.size === 0;
137
- var isSelected = nextStartLine === line || isFirstBlock && nextStartLine == null && !hasRunCode;
138
- var language = className !== null && className !== void 0 && className.startsWith('language-') ? className.substring(9) : 'plaintext';
139
-
140
- if (inline) {
141
- return /*#__PURE__*/React.createElement("code", {
142
- className: className
143
- }, children);
144
- }
145
-
146
- this.commands.set(line, command);
147
- this.codeElements.set(line, ref);
148
- return /*#__PURE__*/React.createElement("div", {
149
- className: classNames('markdown-notebook-editor-code-block', {
150
- 'is-selected': isSelected
151
- }),
152
- ref: ref,
153
- onClick: () => {
154
- this.setState({
155
- nextStartLine: line
156
- });
157
- },
158
- role: "presentation"
159
- }, /*#__PURE__*/React.createElement(Button, {
160
- kind: "ghost",
161
- icon: vsPlay,
162
- className: "btn-play-block",
163
- onClick: event => {
164
- event.stopPropagation();
165
- event.preventDefault();
166
- this.runCode(command);
167
- this.setState({
168
- nextStartLine: line
169
- });
170
- },
171
- tooltip: "Run code"
172
- }), /*#__PURE__*/React.createElement("code", null, /*#__PURE__*/React.createElement(Code, {
173
- language: language
174
- }, React.Children.map(children, child => typeof child === 'string' ? child.trim() : child))));
175
- } // eslint-disable-next-line class-methods-use-this
176
-
177
-
178
- renderLink(props) {
179
- var {
180
- onLinkClick
181
- } = this.props; // eslint-disable-next-line react/jsx-props-no-spreading,jsx-a11y/anchor-has-content,jsx-a11y/no-static-element-interactions
182
-
183
- return /*#__PURE__*/React.createElement("a", _extends({}, props, {
184
- onClick: onLinkClick
185
- }));
186
- }
187
-
188
- render() {
189
- var {
190
- isEditing,
191
- content,
192
- onEditorInitialized,
193
- transformImageUri,
194
- transformLinkUri
195
- } = this.props;
196
- var {
197
- hasRunCode,
198
- nextStartLine
199
- } = this.state;
200
- return /*#__PURE__*/React.createElement("div", {
201
- className: "markdown-notebook-editor-container",
202
- ref: container => {
203
- this.container = container;
204
- }
205
- }, /*#__PURE__*/React.createElement("div", {
206
- className: "markdown-notebook-editor-toolbar"
207
- }, /*#__PURE__*/React.createElement(Button, {
208
- className: classNames('btn-play-selected-cell', {
209
- flashing: !hasRunCode
210
- }),
211
- kind: "ghost",
212
- icon: vsPlay,
213
- onClick: this.handleRunSelected,
214
- tooltip: "Run code and select next",
215
- disabled: hasRunCode && nextStartLine == null
216
- }, "Run Selected Code")), /*#__PURE__*/React.createElement("div", {
217
- className: "markdown-notebook-editor",
218
- ref: this.editorScrollView
219
- }, isEditing ? /*#__PURE__*/React.createElement(Editor, {
220
- settings: {
221
- language: 'markdown',
222
- value: content,
223
- lineNumbers: 'off'
224
- },
225
- onEditorInitialized: onEditorInitialized
226
- }) : /*#__PURE__*/React.createElement(Markdown, {
227
- components: {
228
- code: this.renderCodeBlock,
229
- a: this.renderLink
230
- },
231
- linkTarget: "_blank",
232
- remarkPlugins: [remarkGfm],
233
- transformLinkUri: transformLinkUri,
234
- transformImageUri: transformImageUri,
235
- includeElementIndex: true
236
- }, content)));
237
- }
238
-
239
- }
240
- MarkdownNotebookEditor.propTypes = {
241
- isEditing: PropTypes.bool,
242
- onRunCode: PropTypes.func,
243
- content: PropTypes.string,
244
- onEditorInitialized: PropTypes.func.isRequired,
245
- onLinkClick: PropTypes.func,
246
- transformImageUri: PropTypes.func,
247
- transformLinkUri: PropTypes.func
248
- };
249
- MarkdownNotebookEditor.defaultProps = {
250
- isEditing: false,
251
- content: '',
252
- onLinkClick: undefined,
253
- onRunCode: () => {},
254
- transformImageUri: undefined,
255
- transformLinkUri: undefined
256
- };
257
- //# sourceMappingURL=MarkdownNotebookEditor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../src/panels/MarkdownNotebookEditor.jsx"],"names":["React","PureComponent","PropTypes","Markdown","Button","Code","Editor","classNames","vsPlay","remarkGfm","MarkdownNotebookEditor","constructor","props","handleRunSelected","bind","renderCodeBlock","renderLink","container","commands","Map","codeElements","editorScrollView","createRef","state","hasRunCode","nextStartLine","componentDidUpdate","prevProps","content","resetBlocks","clear","setState","getNextStartLine","line","keys","nextIndex","findIndex","key","length","event","preventDefault","stopPropagation","keyIndex","startLine","command","get","newNextStartLine","element","current","nextElement","parentElement","nextElementSibling","offsetTop","top","scroll","left","runCode","onRunCode","children","className","inline","node","nodeChildren","position","start","value","ref","isFirstBlock","size","isSelected","language","startsWith","substring","set","Children","map","child","trim","onLinkClick","render","isEditing","onEditorInitialized","transformImageUri","transformLinkUri","flashing","lineNumbers","code","a","propTypes","bool","func","string","isRequired","defaultProps","undefined"],"mappings":"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","sourcesContent":["import React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\nimport Markdown from 'react-markdown';\nimport { Button } from '@deephaven/components';\nimport { Code, Editor } from '@deephaven/console';\nimport classNames from 'classnames';\nimport { vsPlay } from '@deephaven/icons';\nimport remarkGfm from 'remark-gfm';\n\nexport default class MarkdownNotebookEditor extends PureComponent {\n constructor(props) {\n super(props);\n\n this.handleRunSelected = this.handleRunSelected.bind(this);\n this.renderCodeBlock = this.renderCodeBlock.bind(this);\n this.renderLink = this.renderLink.bind(this);\n\n this.container = null;\n\n // Map of each code block from it's starting line number to the code within that block\n this.commands = new Map();\n this.codeElements = new Map();\n this.editorScrollView = React.createRef();\n\n this.state = {\n // Keep track if any code has been executed yet. If not, make the run button flash\n hasRunCode: false,\n\n // Line of the next block to execute. Null to start at the first block\n nextStartLine: null,\n };\n }\n\n componentDidUpdate(prevProps) {\n const { content } = this.props;\n if (prevProps.content !== content) {\n this.resetBlocks();\n }\n }\n\n resetBlocks() {\n this.codeElements.clear();\n this.commands.clear();\n this.setState({ nextStartLine: null });\n }\n\n /**\n * @param {number|null} line The line of the code block to start from\n * @returns {number} The next line of the code block to start from\n */\n getNextStartLine(line) {\n const keys = [...this.commands.keys()];\n const nextIndex = keys.findIndex(key => key === line) + 1;\n if (nextIndex >= keys.length) {\n // We got to the last block, disable\n return null;\n }\n\n return keys[nextIndex];\n }\n\n handleRunSelected(event) {\n event.preventDefault();\n event.stopPropagation();\n\n const { nextStartLine } = this.state;\n const keys = [...this.commands.keys()];\n const keyIndex = keys.findIndex(\n key => key === nextStartLine || nextStartLine == null\n );\n if (keyIndex < 0) {\n return;\n }\n const startLine = keys[keyIndex];\n const command = this.commands.get(startLine);\n const newNextStartLine = this.getNextStartLine(startLine);\n const element = this.codeElements.get(startLine)?.current;\n const nextElement = element?.parentElement?.nextElementSibling;\n if (nextElement) {\n const { offsetTop } = nextElement;\n const top = offsetTop;\n this.editorScrollView.current.scroll({\n top,\n left: 0,\n });\n }\n\n this.runCode(command);\n this.setState({ nextStartLine: newNextStartLine });\n }\n\n runCode(command) {\n const { onRunCode } = this.props;\n onRunCode(command);\n\n this.setState({ hasRunCode: true });\n }\n\n renderCodeBlock(props) {\n const { children, className, inline, node } = props;\n const { hasRunCode, nextStartLine } = this.state;\n const { children: nodeChildren, position } = node;\n const { start } = position;\n const { line } = start;\n const command = nodeChildren[0].value;\n const ref = React.createRef();\n const isFirstBlock = this.commands.size === 0;\n const isSelected =\n nextStartLine === line ||\n (isFirstBlock && nextStartLine == null && !hasRunCode);\n const language = className?.startsWith('language-')\n ? className.substring(9)\n : 'plaintext';\n\n if (inline) {\n return <code className={className}>{children}</code>;\n }\n\n this.commands.set(line, command);\n this.codeElements.set(line, ref);\n\n return (\n <div\n className={classNames('markdown-notebook-editor-code-block', {\n 'is-selected': isSelected,\n })}\n ref={ref}\n onClick={() => {\n this.setState({ nextStartLine: line });\n }}\n role=\"presentation\"\n >\n <Button\n kind=\"ghost\"\n icon={vsPlay}\n className=\"btn-play-block\"\n onClick={event => {\n event.stopPropagation();\n event.preventDefault();\n\n this.runCode(command);\n this.setState({ nextStartLine: line });\n }}\n tooltip=\"Run code\"\n />\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 </div>\n );\n }\n\n // eslint-disable-next-line class-methods-use-this\n renderLink(props) {\n const { onLinkClick } = this.props;\n // eslint-disable-next-line react/jsx-props-no-spreading,jsx-a11y/anchor-has-content,jsx-a11y/no-static-element-interactions\n return <a {...props} onClick={onLinkClick} />;\n }\n\n render() {\n const {\n isEditing,\n content,\n onEditorInitialized,\n transformImageUri,\n transformLinkUri,\n } = this.props;\n const { hasRunCode, nextStartLine } = this.state;\n return (\n <div\n className=\"markdown-notebook-editor-container\"\n ref={container => {\n this.container = container;\n }}\n >\n <div className=\"markdown-notebook-editor-toolbar\">\n <Button\n className={classNames('btn-play-selected-cell', {\n flashing: !hasRunCode,\n })}\n kind=\"ghost\"\n icon={vsPlay}\n onClick={this.handleRunSelected}\n tooltip=\"Run code and select next\"\n disabled={hasRunCode && nextStartLine == null}\n >\n Run Selected Code\n </Button>\n </div>\n <div className=\"markdown-notebook-editor\" ref={this.editorScrollView}>\n {isEditing ? (\n <Editor\n settings={{\n language: 'markdown',\n value: content,\n lineNumbers: 'off',\n }}\n onEditorInitialized={onEditorInitialized}\n />\n ) : (\n <Markdown\n components={{ code: this.renderCodeBlock, a: this.renderLink }}\n linkTarget=\"_blank\"\n remarkPlugins={[remarkGfm]}\n transformLinkUri={transformLinkUri}\n transformImageUri={transformImageUri}\n includeElementIndex\n >\n {content}\n </Markdown>\n )}\n </div>\n </div>\n );\n }\n}\n\nMarkdownNotebookEditor.propTypes = {\n isEditing: PropTypes.bool,\n onRunCode: PropTypes.func,\n content: PropTypes.string,\n onEditorInitialized: PropTypes.func.isRequired,\n onLinkClick: PropTypes.func,\n transformImageUri: PropTypes.func,\n transformLinkUri: PropTypes.func,\n};\n\nMarkdownNotebookEditor.defaultProps = {\n isEditing: false,\n content: '',\n onLinkClick: undefined,\n onRunCode: () => {},\n transformImageUri: undefined,\n transformLinkUri: undefined,\n};\n"],"file":"MarkdownNotebookEditor.js"}
@@ -1,127 +0,0 @@
1
- .markdown-notebook-title.is-preview {
2
- font-style: italic;
3
- }
4
-
5
- .markdown-notebook-container .markdown-notebook-editor-container {
6
- width: 100%;
7
- height: 100%;
8
- display: flex;
9
- flex-direction: column;
10
- }
11
- .markdown-notebook-container .markdown-notebook-editor-toolbar {
12
- display: flex;
13
- align-items: center;
14
- padding: 0.25rem;
15
- width: 100%;
16
- flex: 0 0 36px;
17
- border-bottom: 2px solid #1a171a;
18
- }
19
- .markdown-notebook-container .markdown-notebook-editor-toolbar .btn-play-selected-cell {
20
- color: #9edc6f;
21
- min-height: 34px;
22
- }
23
- .markdown-notebook-container .edit-hint {
24
- position: absolute;
25
- top: 0;
26
- right: 0;
27
- padding: 5px 20px;
28
- text-align: right;
29
- width: 100%;
30
- min-height: 30px;
31
- height: 30px;
32
- opacity: 0;
33
- user-select: none;
34
- transition: opacity 0.15s ease-out;
35
- pointer-events: none;
36
- }
37
- .markdown-notebook-container .markdown-notebook-editor {
38
- flex-grow: 1;
39
- width: 100%;
40
- padding: 0 15px;
41
- overflow: auto;
42
- position: relative;
43
- scroll-behavior: smooth;
44
- }
45
- .markdown-notebook-container .markdown-notebook-editor h1,
46
- .markdown-notebook-container .markdown-notebook-editor h2,
47
- .markdown-notebook-container .markdown-notebook-editor h3 {
48
- margin-top: 3rem;
49
- }
50
- .markdown-notebook-container:hover .edit-hint.viewing {
51
- opacity: 1;
52
- }
53
- .markdown-notebook-container blockquote {
54
- border-left: 0.25em solid #929192;
55
- padding: 0 1em;
56
- color: #f0f0ee;
57
- }
58
- .markdown-notebook-container pre {
59
- overflow: hidden;
60
- }
61
- .markdown-notebook-container pre > code {
62
- display: block;
63
- padding: 0.5rem;
64
- }
65
- .markdown-notebook-container a {
66
- color: #4878ea;
67
- }
68
- .markdown-notebook-container a:visited {
69
- color: #aa9af4;
70
- }
71
- .markdown-notebook-container .markdown-notebook-editor-code-block {
72
- position: relative;
73
- border-radius: 0 4px 4px 0;
74
- }
75
- .markdown-notebook-container .markdown-notebook-editor-code-block .btn-play-block {
76
- color: #9edc6f;
77
- opacity: 0;
78
- position: absolute;
79
- top: 0;
80
- right: 0;
81
- margin: 3px;
82
- transition: opacity 0.15s ease-out;
83
- }
84
- .markdown-notebook-container .markdown-notebook-editor-code-block code {
85
- color: #f0f0ee;
86
- background: #403e41;
87
- padding: 0.5rem;
88
- border-radius: 4px;
89
- border: 1px solid #1a171a;
90
- overflow: auto;
91
- display: block;
92
- }
93
- .markdown-notebook-container .markdown-notebook-editor-code-block.is-selected::after {
94
- position: absolute;
95
- top: 0;
96
- left: 0;
97
- bottom: 0;
98
- width: 5px;
99
- margin: 1px 0 1px 0;
100
- background: #4878ea;
101
- content: "";
102
- pointer-events: none;
103
- border-radius: 4px 0 0 4px;
104
- }
105
- .markdown-notebook-container .markdown-notebook-editor-code-block.is-selected .btn-play-block, .markdown-notebook-container .markdown-notebook-editor-code-block:hover .btn-play-block {
106
- opacity: 1;
107
- }
108
- .markdown-notebook-container .flashing {
109
- animation-duration: 1s;
110
- animation-name: flash;
111
- animation-timing-function: ease-in-out;
112
- animation-iteration-count: infinite;
113
- }
114
-
115
- @keyframes flash {
116
- 0% {
117
- text-shadow: 0 0 5px #2d2a2e, 0 0 20px #2d2a2e;
118
- }
119
- 50% {
120
- text-shadow: 0 0 2px rgba(255, 255, 255, 0.5), 0 0 10px #9edc6f;
121
- }
122
- 100% {
123
- text-shadow: 0 0 5px #2d2a2e, 0 0 20px #2d2a2e;
124
- }
125
- }
126
-
127
- /*# sourceMappingURL=MarkdownNotebookPanel.css.map */
@@ -1 +0,0 @@
1
- {"version":3,"sourceRoot":"","sources":["../../src/panels/MarkdownNotebookPanel.scss","../../../components/scss/new_variables.scss","../../../components/scss/bootstrap_overrides.scss"],"names":[],"mappings":"AAME;EACE;;;AAKF;EACE;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA,SCpBO;EDqBP;EACA;EACA;;AACA;EACE,OErBE;EFsBF;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA,YAtCe;EAuCf,QAvCe;EAwCf;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;EAGE;;AAIJ;EACE;;AAGF;EACE;EACA;EACA,OExDa;;AF2Df;EACE;;AAGF;EACE;EACA,SC3EO;;AD8ET;EACE,OEtEY;;AFwEZ;EACE,OE7EG;;AFiFP;EACE;EACA;;AAEA;EACE,OExFE;EFyFF;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE,OE3FW;EF4FX,YEjFK;EFkFL,SCvGK;EDwGL,eEcU;EFbV;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;EACA;EACA;EACA,YE7GQ;EF8GR;EACA;EACA;;AAMF;EACE;;AAKN;EACE;EACA;EACA;EACA;;;AAIJ;EACE;IACE;;EAGF;IACE;;EAGF;IACE","file":"MarkdownNotebookPanel.css"}